@adcp/sdk 13.0.0-rc.6 → 13.0.0-rc.8

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 (1606) hide show
  1. package/ADCP_VERSION +1 -1
  2. package/bin/adcp.js +29 -0
  3. package/compliance/cache/{3.1.8 → 3.1.11}/domains/media-buy/index.yaml +1 -0
  4. package/compliance/cache/{3.1.8.previous/protocols → 3.1.11/domains}/media-buy/scenarios/creative_fate_after_cancellation.yaml +46 -24
  5. package/compliance/cache/3.1.11/domains/media-buy/scenarios/dependency_impairment_audience.yaml +317 -0
  6. package/compliance/cache/{3.1.8 → 3.1.11}/index.json +3 -3
  7. package/compliance/cache/{3.1.8.previous/domains → 3.1.11/protocols}/media-buy/index.yaml +1 -0
  8. package/compliance/cache/{3.1.8 → 3.1.11}/protocols/media-buy/scenarios/creative_fate_after_cancellation.yaml +46 -24
  9. package/compliance/cache/3.1.11/protocols/media-buy/scenarios/dependency_impairment_audience.yaml +317 -0
  10. package/compliance/cache/{3.1.8.previous → 3.1.11}/universal/runner-output-contract.yaml +1 -1
  11. package/compliance/cache/{3.1.8 → 3.1.11}/universal/storyboard-schema.yaml +19 -6
  12. package/compliance/cache/{3.1.8/protocols → 3.1.11.previous/domains}/media-buy/index.yaml +1 -0
  13. package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/domains/media-buy/scenarios/creative_fate_after_cancellation.yaml +46 -24
  14. package/compliance/cache/3.1.11.previous/domains/media-buy/scenarios/dependency_impairment_audience.yaml +317 -0
  15. package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/index.json +3 -3
  16. package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/protocols/media-buy/index.yaml +1 -0
  17. package/compliance/cache/{3.1.8/domains → 3.1.11.previous/protocols}/media-buy/scenarios/creative_fate_after_cancellation.yaml +46 -24
  18. package/compliance/cache/3.1.11.previous/protocols/media-buy/scenarios/dependency_impairment_audience.yaml +317 -0
  19. package/compliance/cache/{3.1.8 → 3.1.11.previous}/universal/runner-output-contract.yaml +1 -1
  20. package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/universal/storyboard-schema.yaml +19 -6
  21. package/dist/lib/adapters/legacy/v2-5/sync_creatives.d.mts +4 -3
  22. package/dist/lib/adapters/legacy/v2-5/sync_creatives.d.ts +4 -3
  23. package/dist/lib/adapters/legacy/v2-5/sync_creatives.d.ts.map +1 -1
  24. package/dist/lib/adapters/legacy/v2-5/sync_creatives.js.map +1 -1
  25. package/dist/lib/adapters/legacy/v2-5/sync_creatives.mjs.map +1 -1
  26. package/dist/lib/auth/oauth/ClientCredentialsFlow.d.mts +2 -0
  27. package/dist/lib/auth/oauth/ClientCredentialsFlow.d.ts +2 -0
  28. package/dist/lib/auth/oauth/ClientCredentialsFlow.d.ts.map +1 -1
  29. package/dist/lib/auth/oauth/ClientCredentialsFlow.js +69 -24
  30. package/dist/lib/auth/oauth/ClientCredentialsFlow.js.map +1 -1
  31. package/dist/lib/auth/oauth/ClientCredentialsFlow.mjs +69 -24
  32. package/dist/lib/auth/oauth/ClientCredentialsFlow.mjs.map +1 -1
  33. package/dist/lib/auth/oauth/MCPOAuthProvider.d.mts +2 -0
  34. package/dist/lib/auth/oauth/MCPOAuthProvider.d.ts +2 -0
  35. package/dist/lib/auth/oauth/MCPOAuthProvider.d.ts.map +1 -1
  36. package/dist/lib/auth/oauth/MCPOAuthProvider.js +8 -7
  37. package/dist/lib/auth/oauth/MCPOAuthProvider.js.map +1 -1
  38. package/dist/lib/auth/oauth/MCPOAuthProvider.mjs +8 -7
  39. package/dist/lib/auth/oauth/MCPOAuthProvider.mjs.map +1 -1
  40. package/dist/lib/auth/oauth/authorization-required.d.mts +3 -0
  41. package/dist/lib/auth/oauth/authorization-required.d.ts +3 -0
  42. package/dist/lib/auth/oauth/authorization-required.d.ts.map +1 -1
  43. package/dist/lib/auth/oauth/authorization-required.js +37 -7
  44. package/dist/lib/auth/oauth/authorization-required.js.map +1 -1
  45. package/dist/lib/auth/oauth/authorization-required.mjs +37 -7
  46. package/dist/lib/auth/oauth/authorization-required.mjs.map +1 -1
  47. package/dist/lib/auth/oauth/discovery.d.mts +2 -0
  48. package/dist/lib/auth/oauth/discovery.d.ts +2 -0
  49. package/dist/lib/auth/oauth/discovery.d.ts.map +1 -1
  50. package/dist/lib/auth/oauth/discovery.js +7 -5
  51. package/dist/lib/auth/oauth/discovery.js.map +1 -1
  52. package/dist/lib/auth/oauth/discovery.mjs +7 -5
  53. package/dist/lib/auth/oauth/discovery.mjs.map +1 -1
  54. package/dist/lib/auth/oauth/file-storage.d.mts +2 -1
  55. package/dist/lib/auth/oauth/file-storage.d.ts +2 -1
  56. package/dist/lib/auth/oauth/file-storage.d.ts.map +1 -1
  57. package/dist/lib/auth/oauth/file-storage.js +5 -1
  58. package/dist/lib/auth/oauth/file-storage.js.map +1 -1
  59. package/dist/lib/auth/oauth/file-storage.mjs +5 -1
  60. package/dist/lib/auth/oauth/file-storage.mjs.map +1 -1
  61. package/dist/lib/auth/oauth/index.d.mts +5 -1
  62. package/dist/lib/auth/oauth/index.d.ts +5 -1
  63. package/dist/lib/auth/oauth/index.d.ts.map +1 -1
  64. package/dist/lib/auth/oauth/index.js +4 -0
  65. package/dist/lib/auth/oauth/index.js.map +1 -1
  66. package/dist/lib/auth/oauth/index.mjs +4 -0
  67. package/dist/lib/auth/oauth/index.mjs.map +1 -1
  68. package/dist/lib/auth/oauth/resource-url.d.mts +4 -0
  69. package/dist/lib/auth/oauth/resource-url.d.ts +5 -0
  70. package/dist/lib/auth/oauth/resource-url.d.ts.map +1 -0
  71. package/dist/lib/auth/oauth/resource-url.js +51 -0
  72. package/dist/lib/auth/oauth/resource-url.js.map +1 -0
  73. package/dist/lib/auth/oauth/resource-url.mjs +27 -0
  74. package/dist/lib/auth/oauth/resource-url.mjs.map +1 -0
  75. package/dist/lib/auth/oauth/types.d.mts +7 -0
  76. package/dist/lib/auth/oauth/types.d.ts +7 -0
  77. package/dist/lib/auth/oauth/types.d.ts.map +1 -1
  78. package/dist/lib/auth/oauth/types.js.map +1 -1
  79. package/dist/lib/auth/oauth/types.mjs.map +1 -1
  80. package/dist/lib/auth/oauth/web-flow.d.mts +30 -5
  81. package/dist/lib/auth/oauth/web-flow.d.ts +30 -5
  82. package/dist/lib/auth/oauth/web-flow.d.ts.map +1 -1
  83. package/dist/lib/auth/oauth/web-flow.js +52 -8
  84. package/dist/lib/auth/oauth/web-flow.js.map +1 -1
  85. package/dist/lib/auth/oauth/web-flow.mjs +51 -8
  86. package/dist/lib/auth/oauth/web-flow.mjs.map +1 -1
  87. package/dist/lib/core/AgentClient.d.mts +2 -2
  88. package/dist/lib/core/AgentClient.d.ts +2 -2
  89. package/dist/lib/core/AgentClient.d.ts.map +1 -1
  90. package/dist/lib/core/AgentClient.js.map +1 -1
  91. package/dist/lib/core/AgentClient.mjs.map +1 -1
  92. package/dist/lib/core/ConversationTypes.d.mts +6 -2
  93. package/dist/lib/core/ConversationTypes.d.ts +6 -2
  94. package/dist/lib/core/ConversationTypes.d.ts.map +1 -1
  95. package/dist/lib/core/ConversationTypes.js.map +1 -1
  96. package/dist/lib/core/GovernanceMiddleware.d.mts +3 -3
  97. package/dist/lib/core/GovernanceMiddleware.d.ts +3 -3
  98. package/dist/lib/core/GovernanceMiddleware.d.ts.map +1 -1
  99. package/dist/lib/core/GovernanceMiddleware.js +8 -4
  100. package/dist/lib/core/GovernanceMiddleware.js.map +1 -1
  101. package/dist/lib/core/GovernanceMiddleware.mjs +8 -4
  102. package/dist/lib/core/GovernanceMiddleware.mjs.map +1 -1
  103. package/dist/lib/core/SingleAgentClient.d.mts +12 -1
  104. package/dist/lib/core/SingleAgentClient.d.ts +12 -1
  105. package/dist/lib/core/SingleAgentClient.d.ts.map +1 -1
  106. package/dist/lib/core/SingleAgentClient.js +89 -12
  107. package/dist/lib/core/SingleAgentClient.js.map +1 -1
  108. package/dist/lib/core/SingleAgentClient.mjs +89 -12
  109. package/dist/lib/core/SingleAgentClient.mjs.map +1 -1
  110. package/dist/lib/core/TaskExecutor.d.mts +2 -4
  111. package/dist/lib/core/TaskExecutor.d.ts +2 -4
  112. package/dist/lib/core/TaskExecutor.d.ts.map +1 -1
  113. package/dist/lib/core/TaskExecutor.js +90 -14
  114. package/dist/lib/core/TaskExecutor.js.map +1 -1
  115. package/dist/lib/core/TaskExecutor.mjs +95 -14
  116. package/dist/lib/core/TaskExecutor.mjs.map +1 -1
  117. package/dist/lib/core/task-deadline.d.mts +20 -0
  118. package/dist/lib/core/task-deadline.d.ts +21 -0
  119. package/dist/lib/core/task-deadline.d.ts.map +1 -0
  120. package/dist/lib/core/task-deadline.js +74 -0
  121. package/dist/lib/core/task-deadline.js.map +1 -0
  122. package/dist/lib/core/task-deadline.mjs +47 -0
  123. package/dist/lib/core/task-deadline.mjs.map +1 -0
  124. package/dist/lib/errors/index.d.mts +11 -0
  125. package/dist/lib/errors/index.d.ts +11 -0
  126. package/dist/lib/errors/index.d.ts.map +1 -1
  127. package/dist/lib/errors/index.js +6 -0
  128. package/dist/lib/errors/index.js.map +1 -1
  129. package/dist/lib/errors/index.mjs +6 -0
  130. package/dist/lib/errors/index.mjs.map +1 -1
  131. package/dist/lib/net/ssrf-fetch.d.ts.map +1 -1
  132. package/dist/lib/net/ssrf-fetch.js +11 -0
  133. package/dist/lib/net/ssrf-fetch.js.map +1 -1
  134. package/dist/lib/net/ssrf-fetch.mjs +11 -0
  135. package/dist/lib/net/ssrf-fetch.mjs.map +1 -1
  136. package/dist/lib/protocols/abort.d.mts +3 -1
  137. package/dist/lib/protocols/abort.d.ts +3 -1
  138. package/dist/lib/protocols/abort.d.ts.map +1 -1
  139. package/dist/lib/protocols/abort.js +19 -17
  140. package/dist/lib/protocols/abort.js.map +1 -1
  141. package/dist/lib/protocols/abort.mjs +19 -17
  142. package/dist/lib/protocols/abort.mjs.map +1 -1
  143. package/dist/lib/protocols/index.d.ts.map +1 -1
  144. package/dist/lib/protocols/index.js +13 -10
  145. package/dist/lib/protocols/index.js.map +1 -1
  146. package/dist/lib/protocols/index.mjs +13 -10
  147. package/dist/lib/protocols/index.mjs.map +1 -1
  148. package/dist/lib/protocols/mcp.d.ts.map +1 -1
  149. package/dist/lib/protocols/mcp.js +8 -7
  150. package/dist/lib/protocols/mcp.js.map +1 -1
  151. package/dist/lib/protocols/mcp.mjs +8 -7
  152. package/dist/lib/protocols/mcp.mjs.map +1 -1
  153. package/dist/lib/registry/types.generated.d.mts +72 -9
  154. package/dist/lib/registry/types.generated.d.ts +72 -9
  155. package/dist/lib/registry/types.generated.d.ts.map +1 -1
  156. package/dist/lib/registry/types.generated.js.map +1 -1
  157. package/dist/lib/schemas-data/3.1/a2ui/bound-value.json +1 -1
  158. package/dist/lib/schemas-data/3.1/a2ui/component.json +1 -1
  159. package/dist/lib/schemas-data/3.1/a2ui/si-catalog.json +25 -25
  160. package/dist/lib/schemas-data/3.1/a2ui/surface.json +2 -2
  161. package/dist/lib/schemas-data/3.1/a2ui/user-action.json +1 -1
  162. package/dist/lib/schemas-data/3.1/aao/agent-publishers.json +1 -1
  163. package/dist/lib/schemas-data/3.1/account/get-account-financials-request.json +6 -6
  164. package/dist/lib/schemas-data/3.1/account/get-account-financials-response.json +12 -12
  165. package/dist/lib/schemas-data/3.1/account/list-accounts-request.json +6 -6
  166. package/dist/lib/schemas-data/3.1/account/list-accounts-response.json +8 -8
  167. package/dist/lib/schemas-data/3.1/account/report-usage-request.json +6 -6
  168. package/dist/lib/schemas-data/3.1/account/report-usage-response.json +6 -6
  169. package/dist/lib/schemas-data/3.1/account/sync-accounts-request.json +12 -12
  170. package/dist/lib/schemas-data/3.1/account/sync-accounts-response.json +16 -16
  171. package/dist/lib/schemas-data/3.1/account/sync-governance-request.json +6 -6
  172. package/dist/lib/schemas-data/3.1/account/sync-governance-response.json +10 -10
  173. package/dist/lib/schemas-data/3.1/adagents.json +29 -29
  174. package/dist/lib/schemas-data/3.1/brand/acquire-rights-request.json +10 -10
  175. package/dist/lib/schemas-data/3.1/brand/acquire-rights-response.json +16 -16
  176. package/dist/lib/schemas-data/3.1/brand/creative-approval-request.json +5 -5
  177. package/dist/lib/schemas-data/3.1/brand/creative-approval-response.json +12 -12
  178. package/dist/lib/schemas-data/3.1/brand/get-brand-identity-request.json +4 -4
  179. package/dist/lib/schemas-data/3.1/brand/get-brand-identity-response.json +10 -10
  180. package/dist/lib/schemas-data/3.1/brand/get-rights-request.json +8 -8
  181. package/dist/lib/schemas-data/3.1/brand/get-rights-response.json +11 -11
  182. package/dist/lib/schemas-data/3.1/brand/revocation-notification.json +4 -4
  183. package/dist/lib/schemas-data/3.1/brand/rights-pricing-option.json +5 -5
  184. package/dist/lib/schemas-data/3.1/brand/rights-terms.json +3 -3
  185. package/dist/lib/schemas-data/3.1/brand/search-brands-request.json +6 -6
  186. package/dist/lib/schemas-data/3.1/brand/search-brands-response.json +11 -11
  187. package/dist/lib/schemas-data/3.1/brand/update-rights-request.json +6 -6
  188. package/dist/lib/schemas-data/3.1/brand/update-rights-response.json +11 -11
  189. package/dist/lib/schemas-data/3.1/brand/verification-status.json +1 -1
  190. package/dist/lib/schemas-data/3.1/brand/verify-brand-claim-request.json +2 -2
  191. package/dist/lib/schemas-data/3.1/brand/verify-brand-claim-response.json +13 -13
  192. package/dist/lib/schemas-data/3.1/brand/verify-brand-claims-request.json +2 -2
  193. package/dist/lib/schemas-data/3.1/brand/verify-brand-claims-response.json +13 -13
  194. package/dist/lib/schemas-data/3.1/brand.json +21 -21
  195. package/dist/lib/schemas-data/3.1/bundled/content-standards/calibrate-content-request.json +12 -12
  196. package/dist/lib/schemas-data/3.1/bundled/content-standards/calibrate-content-response.json +12 -12
  197. package/dist/lib/schemas-data/3.1/bundled/content-standards/create-content-standards-request.json +16 -16
  198. package/dist/lib/schemas-data/3.1/bundled/content-standards/create-content-standards-response.json +10 -10
  199. package/dist/lib/schemas-data/3.1/bundled/content-standards/get-content-standards-request.json +5 -5
  200. package/dist/lib/schemas-data/3.1/bundled/content-standards/get-content-standards-response.json +23 -23
  201. package/dist/lib/schemas-data/3.1/bundled/content-standards/get-media-buy-artifacts-request.json +16 -16
  202. package/dist/lib/schemas-data/3.1/bundled/content-standards/get-media-buy-artifacts-response.json +18 -18
  203. package/dist/lib/schemas-data/3.1/bundled/content-standards/list-content-standards-request.json +7 -7
  204. package/dist/lib/schemas-data/3.1/bundled/content-standards/list-content-standards-response.json +24 -24
  205. package/dist/lib/schemas-data/3.1/bundled/content-standards/update-content-standards-request.json +16 -16
  206. package/dist/lib/schemas-data/3.1/bundled/content-standards/update-content-standards-response.json +10 -10
  207. package/dist/lib/schemas-data/3.1/bundled/content-standards/validate-content-delivery-request.json +12 -12
  208. package/dist/lib/schemas-data/3.1/bundled/content-standards/validate-content-delivery-response.json +12 -12
  209. package/dist/lib/schemas-data/3.1/bundled/core/tasks-get-request.json +16 -16
  210. package/dist/lib/schemas-data/3.1/bundled/core/tasks-get-response.json +181 -181
  211. package/dist/lib/schemas-data/3.1/bundled/core/tasks-list-request.json +21 -21
  212. package/dist/lib/schemas-data/3.1/bundled/core/tasks-list-response.json +11 -11
  213. package/dist/lib/schemas-data/3.1/bundled/creative/get-creative-delivery-request.json +17 -17
  214. package/dist/lib/schemas-data/3.1/bundled/creative/get-creative-delivery-response.json +56 -56
  215. package/dist/lib/schemas-data/3.1/bundled/creative/get-creative-features-request.json +44 -44
  216. package/dist/lib/schemas-data/3.1/bundled/creative/get-creative-features-response.json +13 -13
  217. package/dist/lib/schemas-data/3.1/bundled/creative/list-creative-formats-request.json +16 -16
  218. package/dist/lib/schemas-data/3.1/bundled/creative/list-creative-formats-response.json +48 -48
  219. package/dist/lib/schemas-data/3.1/bundled/creative/list-creatives-request.json +17 -17
  220. package/dist/lib/schemas-data/3.1/bundled/creative/list-creatives-response.json +58 -58
  221. package/dist/lib/schemas-data/3.1/bundled/creative/list-transformers-request.json +18 -18
  222. package/dist/lib/schemas-data/3.1/bundled/creative/list-transformers-response.json +16 -16
  223. package/dist/lib/schemas-data/3.1/bundled/creative/preview-creative-request.json +44 -44
  224. package/dist/lib/schemas-data/3.1/bundled/creative/preview-creative-response.json +50 -50
  225. package/dist/lib/schemas-data/3.1/bundled/creative/sync-creatives-request.json +46 -46
  226. package/dist/lib/schemas-data/3.1/bundled/creative/sync-creatives-response.json +27 -27
  227. package/dist/lib/schemas-data/3.1/bundled/creative/validate-input-request.json +42 -42
  228. package/dist/lib/schemas-data/3.1/bundled/creative/validate-input-response.json +10 -10
  229. package/dist/lib/schemas-data/3.1/bundled/media-buy/build-creative-request.json +53 -53
  230. package/dist/lib/schemas-data/3.1/bundled/media-buy/build-creative-response.json +54 -54
  231. package/dist/lib/schemas-data/3.1/bundled/media-buy/create-media-buy-request.json +83 -83
  232. package/dist/lib/schemas-data/3.1/bundled/media-buy/create-media-buy-response.json +77 -77
  233. package/dist/lib/schemas-data/3.1/bundled/media-buy/get-media-buy-delivery-request.json +25 -25
  234. package/dist/lib/schemas-data/3.1/bundled/media-buy/get-media-buy-delivery-response.json +40 -40
  235. package/dist/lib/schemas-data/3.1/bundled/media-buy/get-media-buys-request.json +18 -18
  236. package/dist/lib/schemas-data/3.1/bundled/media-buy/get-media-buys-response.json +65 -65
  237. package/dist/lib/schemas-data/3.1/bundled/media-buy/get-products-request.json +49 -49
  238. package/dist/lib/schemas-data/3.1/bundled/media-buy/get-products-response.json +99 -99
  239. package/dist/lib/schemas-data/3.1/bundled/media-buy/list-creative-formats-request.json +12 -12
  240. package/dist/lib/schemas-data/3.1/bundled/media-buy/list-creative-formats-response.json +48 -48
  241. package/dist/lib/schemas-data/3.1/bundled/media-buy/log-event-request.json +12 -12
  242. package/dist/lib/schemas-data/3.1/bundled/media-buy/log-event-response.json +10 -10
  243. package/dist/lib/schemas-data/3.1/bundled/media-buy/package-request.json +79 -79
  244. package/dist/lib/schemas-data/3.1/bundled/media-buy/provide-performance-feedback-request.json +8 -8
  245. package/dist/lib/schemas-data/3.1/bundled/media-buy/provide-performance-feedback-response.json +10 -10
  246. package/dist/lib/schemas-data/3.1/bundled/media-buy/sync-audiences-request.json +18 -18
  247. package/dist/lib/schemas-data/3.1/bundled/media-buy/sync-audiences-response.json +12 -12
  248. package/dist/lib/schemas-data/3.1/bundled/media-buy/sync-catalogs-request.json +26 -26
  249. package/dist/lib/schemas-data/3.1/bundled/media-buy/sync-catalogs-response.json +12 -12
  250. package/dist/lib/schemas-data/3.1/bundled/media-buy/sync-event-sources-request.json +19 -19
  251. package/dist/lib/schemas-data/3.1/bundled/media-buy/sync-event-sources-response.json +16 -16
  252. package/dist/lib/schemas-data/3.1/bundled/media-buy/update-media-buy-request.json +79 -79
  253. package/dist/lib/schemas-data/3.1/bundled/media-buy/update-media-buy-response.json +71 -71
  254. package/dist/lib/schemas-data/3.1/bundled/property/create-property-list-request.json +18 -18
  255. package/dist/lib/schemas-data/3.1/bundled/property/create-property-list-response.json +26 -26
  256. package/dist/lib/schemas-data/3.1/bundled/property/delete-property-list-request.json +16 -16
  257. package/dist/lib/schemas-data/3.1/bundled/property/delete-property-list-response.json +10 -10
  258. package/dist/lib/schemas-data/3.1/bundled/property/get-property-list-request.json +16 -16
  259. package/dist/lib/schemas-data/3.1/bundled/property/get-property-list-response.json +27 -27
  260. package/dist/lib/schemas-data/3.1/bundled/property/list-property-lists-request.json +17 -17
  261. package/dist/lib/schemas-data/3.1/bundled/property/list-property-lists-response.json +27 -27
  262. package/dist/lib/schemas-data/3.1/bundled/property/update-property-list-request.json +18 -18
  263. package/dist/lib/schemas-data/3.1/bundled/property/update-property-list-response.json +26 -26
  264. package/dist/lib/schemas-data/3.1/bundled/property/validate-property-delivery-request.json +19 -19
  265. package/dist/lib/schemas-data/3.1/bundled/property/validate-property-delivery-response.json +15 -15
  266. package/dist/lib/schemas-data/3.1/bundled/protocol/get-adcp-capabilities-request.json +5 -5
  267. package/dist/lib/schemas-data/3.1/bundled/protocol/get-adcp-capabilities-response.json +35 -35
  268. package/dist/lib/schemas-data/3.1/bundled/protocol/get-task-status-request.json +16 -16
  269. package/dist/lib/schemas-data/3.1/bundled/protocol/get-task-status-response.json +181 -181
  270. package/dist/lib/schemas-data/3.1/bundled/protocol/list-tasks-request.json +21 -21
  271. package/dist/lib/schemas-data/3.1/bundled/protocol/list-tasks-response.json +11 -11
  272. package/dist/lib/schemas-data/3.1/bundled/signals/activate-signal-request.json +17 -17
  273. package/dist/lib/schemas-data/3.1/bundled/signals/activate-signal-response.json +12 -12
  274. package/dist/lib/schemas-data/3.1/bundled/signals/get-signals-request.json +24 -24
  275. package/dist/lib/schemas-data/3.1/bundled/signals/get-signals-response.json +53 -53
  276. package/dist/lib/schemas-data/3.1/bundled/sponsored-intelligence/si-get-offering-request.json +5 -5
  277. package/dist/lib/schemas-data/3.1/bundled/sponsored-intelligence/si-get-offering-response.json +23 -23
  278. package/dist/lib/schemas-data/3.1/bundled/sponsored-intelligence/si-initiate-session-request.json +18 -18
  279. package/dist/lib/schemas-data/3.1/bundled/sponsored-intelligence/si-initiate-session-response.json +25 -25
  280. package/dist/lib/schemas-data/3.1/bundled/sponsored-intelligence/si-send-message-request.json +16 -16
  281. package/dist/lib/schemas-data/3.1/bundled/sponsored-intelligence/si-send-message-response.json +26 -26
  282. package/dist/lib/schemas-data/3.1/bundled/sponsored-intelligence/si-terminate-session-request.json +5 -5
  283. package/dist/lib/schemas-data/3.1/bundled/sponsored-intelligence/si-terminate-session-response.json +11 -11
  284. package/dist/lib/schemas-data/3.1/collection/base-collection-source.json +3 -3
  285. package/dist/lib/schemas-data/3.1/collection/collection-list-changed-webhook.json +2 -2
  286. package/dist/lib/schemas-data/3.1/collection/collection-list-filters.json +7 -7
  287. package/dist/lib/schemas-data/3.1/collection/collection-list.json +5 -5
  288. package/dist/lib/schemas-data/3.1/collection/create-collection-list-request.json +8 -8
  289. package/dist/lib/schemas-data/3.1/collection/create-collection-list-response.json +6 -6
  290. package/dist/lib/schemas-data/3.1/collection/delete-collection-list-request.json +5 -5
  291. package/dist/lib/schemas-data/3.1/collection/delete-collection-list-response.json +5 -5
  292. package/dist/lib/schemas-data/3.1/collection/get-collection-list-request.json +5 -5
  293. package/dist/lib/schemas-data/3.1/collection/get-collection-list-response.json +12 -12
  294. package/dist/lib/schemas-data/3.1/collection/list-collection-lists-request.json +6 -6
  295. package/dist/lib/schemas-data/3.1/collection/list-collection-lists-response.json +7 -7
  296. package/dist/lib/schemas-data/3.1/collection/update-collection-list-request.json +8 -8
  297. package/dist/lib/schemas-data/3.1/collection/update-collection-list-response.json +6 -6
  298. package/dist/lib/schemas-data/3.1/content-standards/artifact-webhook-payload.json +3 -3
  299. package/dist/lib/schemas-data/3.1/content-standards/artifact.json +7 -7
  300. package/dist/lib/schemas-data/3.1/content-standards/calibrate-content-request.json +5 -5
  301. package/dist/lib/schemas-data/3.1/content-standards/calibrate-content-response.json +10 -10
  302. package/dist/lib/schemas-data/3.1/content-standards/content-standards.json +7 -7
  303. package/dist/lib/schemas-data/3.1/content-standards/create-content-standards-request.json +8 -8
  304. package/dist/lib/schemas-data/3.1/content-standards/create-content-standards-response.json +8 -8
  305. package/dist/lib/schemas-data/3.1/content-standards/get-content-standards-request.json +4 -4
  306. package/dist/lib/schemas-data/3.1/content-standards/get-content-standards-response.json +9 -9
  307. package/dist/lib/schemas-data/3.1/content-standards/get-media-buy-artifacts-request.json +5 -5
  308. package/dist/lib/schemas-data/3.1/content-standards/get-media-buy-artifacts-response.json +10 -10
  309. package/dist/lib/schemas-data/3.1/content-standards/list-content-standards-request.json +6 -6
  310. package/dist/lib/schemas-data/3.1/content-standards/list-content-standards-response.json +10 -10
  311. package/dist/lib/schemas-data/3.1/content-standards/update-content-standards-request.json +8 -8
  312. package/dist/lib/schemas-data/3.1/content-standards/update-content-standards-response.json +8 -8
  313. package/dist/lib/schemas-data/3.1/content-standards/validate-content-delivery-request.json +5 -5
  314. package/dist/lib/schemas-data/3.1/content-standards/validate-content-delivery-response.json +10 -10
  315. package/dist/lib/schemas-data/3.1/core/account-authorization.json +1 -1
  316. package/dist/lib/schemas-data/3.1/core/account-ref.json +2 -2
  317. package/dist/lib/schemas-data/3.1/core/account-with-authorization.json +3 -3
  318. package/dist/lib/schemas-data/3.1/core/account.json +10 -10
  319. package/dist/lib/schemas-data/3.1/core/activation-key.json +1 -1
  320. package/dist/lib/schemas-data/3.1/core/ad-inventory-config.json +1 -1
  321. package/dist/lib/schemas-data/3.1/core/agent-encryption-key.json +1 -1
  322. package/dist/lib/schemas-data/3.1/core/agent-signing-key.json +1 -1
  323. package/dist/lib/schemas-data/3.1/core/app-item.json +4 -4
  324. package/dist/lib/schemas-data/3.1/core/asset-group-vocabulary.json +1 -1
  325. package/dist/lib/schemas-data/3.1/core/assets/asset-union.json +21 -21
  326. package/dist/lib/schemas-data/3.1/core/assets/audio-asset.json +3 -3
  327. package/dist/lib/schemas-data/3.1/core/assets/brief-asset.json +2 -2
  328. package/dist/lib/schemas-data/3.1/core/assets/card-asset.json +6 -6
  329. package/dist/lib/schemas-data/3.1/core/assets/catalog-asset.json +2 -2
  330. package/dist/lib/schemas-data/3.1/core/assets/css-asset.json +2 -2
  331. package/dist/lib/schemas-data/3.1/core/assets/daast-asset.json +4 -4
  332. package/dist/lib/schemas-data/3.1/core/assets/daast-tracker-asset.json +3 -3
  333. package/dist/lib/schemas-data/3.1/core/assets/html-asset.json +2 -2
  334. package/dist/lib/schemas-data/3.1/core/assets/image-asset.json +2 -2
  335. package/dist/lib/schemas-data/3.1/core/assets/javascript-asset.json +3 -3
  336. package/dist/lib/schemas-data/3.1/core/assets/markdown-asset.json +2 -2
  337. package/dist/lib/schemas-data/3.1/core/assets/pixel-tracker-asset.json +2 -2
  338. package/dist/lib/schemas-data/3.1/core/assets/published-post-asset.json +2 -2
  339. package/dist/lib/schemas-data/3.1/core/assets/text-asset.json +2 -2
  340. package/dist/lib/schemas-data/3.1/core/assets/url-asset.json +3 -3
  341. package/dist/lib/schemas-data/3.1/core/assets/vast-asset.json +4 -4
  342. package/dist/lib/schemas-data/3.1/core/assets/vast-tracker-asset.json +3 -3
  343. package/dist/lib/schemas-data/3.1/core/assets/video-asset.json +7 -7
  344. package/dist/lib/schemas-data/3.1/core/assets/webhook-asset.json +7 -7
  345. package/dist/lib/schemas-data/3.1/core/assets/zip-asset.json +2 -2
  346. package/dist/lib/schemas-data/3.1/core/async-response-data.json +29 -29
  347. package/dist/lib/schemas-data/3.1/core/async-response-refs/creative/sync-creatives-async-response-input-required.json +3 -3
  348. package/dist/lib/schemas-data/3.1/core/async-response-refs/creative/sync-creatives-async-response-submitted.json +4 -4
  349. package/dist/lib/schemas-data/3.1/core/async-response-refs/creative/sync-creatives-async-response-working.json +3 -3
  350. package/dist/lib/schemas-data/3.1/core/async-response-refs/media-buy/build-creative-async-response-input-required.json +4 -4
  351. package/dist/lib/schemas-data/3.1/core/async-response-refs/media-buy/build-creative-async-response-submitted.json +4 -4
  352. package/dist/lib/schemas-data/3.1/core/async-response-refs/media-buy/build-creative-async-response-working.json +3 -3
  353. package/dist/lib/schemas-data/3.1/core/async-response-refs/media-buy/create-media-buy-async-response-input-required.json +4 -4
  354. package/dist/lib/schemas-data/3.1/core/async-response-refs/media-buy/create-media-buy-async-response-submitted.json +4 -4
  355. package/dist/lib/schemas-data/3.1/core/async-response-refs/media-buy/create-media-buy-async-response-working.json +3 -3
  356. package/dist/lib/schemas-data/3.1/core/async-response-refs/media-buy/get-products-async-response-input-required.json +4 -4
  357. package/dist/lib/schemas-data/3.1/core/async-response-refs/media-buy/get-products-async-response-submitted.json +4 -4
  358. package/dist/lib/schemas-data/3.1/core/async-response-refs/media-buy/get-products-async-response-working.json +3 -3
  359. package/dist/lib/schemas-data/3.1/core/async-response-refs/media-buy/sync-catalogs-async-response-input-required.json +3 -3
  360. package/dist/lib/schemas-data/3.1/core/async-response-refs/media-buy/sync-catalogs-async-response-submitted.json +4 -4
  361. package/dist/lib/schemas-data/3.1/core/async-response-refs/media-buy/sync-catalogs-async-response-working.json +3 -3
  362. package/dist/lib/schemas-data/3.1/core/async-response-refs/media-buy/update-media-buy-async-response-input-required.json +3 -3
  363. package/dist/lib/schemas-data/3.1/core/async-response-refs/media-buy/update-media-buy-async-response-submitted.json +4 -4
  364. package/dist/lib/schemas-data/3.1/core/async-response-refs/media-buy/update-media-buy-async-response-working.json +3 -3
  365. package/dist/lib/schemas-data/3.1/core/async-response-refs/signals/get-signals-async-response-submitted.json +4 -4
  366. package/dist/lib/schemas-data/3.1/core/async-response-refs/signals/get-signals-async-response-working.json +3 -3
  367. package/dist/lib/schemas-data/3.1/core/attribution-window.json +4 -4
  368. package/dist/lib/schemas-data/3.1/core/audience-member.json +3 -3
  369. package/dist/lib/schemas-data/3.1/core/audience-selector.json +7 -7
  370. package/dist/lib/schemas-data/3.1/core/authorized-agent-base.json +3 -3
  371. package/dist/lib/schemas-data/3.1/core/brand-id.json +1 -1
  372. package/dist/lib/schemas-data/3.1/core/brand-ref.json +3 -3
  373. package/dist/lib/schemas-data/3.1/core/business-entity.json +2 -2
  374. package/dist/lib/schemas-data/3.1/core/cancellation-policy.json +2 -2
  375. package/dist/lib/schemas-data/3.1/core/canonical-format-kind.json +1 -1
  376. package/dist/lib/schemas-data/3.1/core/canonical-projection-ref.json +3 -3
  377. package/dist/lib/schemas-data/3.1/core/canonical-projection-slot-override.json +1 -1
  378. package/dist/lib/schemas-data/3.1/core/catalog-field-mapping.json +2 -2
  379. package/dist/lib/schemas-data/3.1/core/catalog-item-delivery-metrics.json +3 -3
  380. package/dist/lib/schemas-data/3.1/core/catalog.json +7 -7
  381. package/dist/lib/schemas-data/3.1/core/catchment.json +5 -5
  382. package/dist/lib/schemas-data/3.1/core/collection-distribution.json +2 -2
  383. package/dist/lib/schemas-data/3.1/core/collection-list-ref.json +1 -1
  384. package/dist/lib/schemas-data/3.1/core/collection-selector.json +1 -1
  385. package/dist/lib/schemas-data/3.1/core/collection.json +13 -13
  386. package/dist/lib/schemas-data/3.1/core/committed-metric.json +9 -9
  387. package/dist/lib/schemas-data/3.1/core/content-rating.json +2 -2
  388. package/dist/lib/schemas-data/3.1/core/context.json +1 -1
  389. package/dist/lib/schemas-data/3.1/core/creative-asset.json +10 -10
  390. package/dist/lib/schemas-data/3.1/core/creative-assignment.json +2 -2
  391. package/dist/lib/schemas-data/3.1/core/creative-brief.json +4 -4
  392. package/dist/lib/schemas-data/3.1/core/creative-consumption.json +1 -1
  393. package/dist/lib/schemas-data/3.1/core/creative-delivery-metrics.json +2 -2
  394. package/dist/lib/schemas-data/3.1/core/creative-filters.json +5 -5
  395. package/dist/lib/schemas-data/3.1/core/creative-item.json +1 -1
  396. package/dist/lib/schemas-data/3.1/core/creative-manifest.json +11 -11
  397. package/dist/lib/schemas-data/3.1/core/creative-policy.json +3 -3
  398. package/dist/lib/schemas-data/3.1/core/creative-variable.json +1 -1
  399. package/dist/lib/schemas-data/3.1/core/creative-variant.json +5 -5
  400. package/dist/lib/schemas-data/3.1/core/data-provider-signal-selector.json +1 -1
  401. package/dist/lib/schemas-data/3.1/core/date-range.json +1 -1
  402. package/dist/lib/schemas-data/3.1/core/datetime-range.json +1 -1
  403. package/dist/lib/schemas-data/3.1/core/daypart-target.json +2 -2
  404. package/dist/lib/schemas-data/3.1/core/deadline-policy.json +1 -1
  405. package/dist/lib/schemas-data/3.1/core/delivery-forecast.json +7 -7
  406. package/dist/lib/schemas-data/3.1/core/delivery-metric-aggregate.json +9 -9
  407. package/dist/lib/schemas-data/3.1/core/delivery-metrics.json +8 -8
  408. package/dist/lib/schemas-data/3.1/core/deployment.json +3 -3
  409. package/dist/lib/schemas-data/3.1/core/destination-item.json +4 -4
  410. package/dist/lib/schemas-data/3.1/core/destination.json +1 -1
  411. package/dist/lib/schemas-data/3.1/core/diagnostic-issue.json +1 -1
  412. package/dist/lib/schemas-data/3.1/core/downstream-connection-requirement.json +1 -1
  413. package/dist/lib/schemas-data/3.1/core/duration.json +1 -1
  414. package/dist/lib/schemas-data/3.1/core/education-item.json +4 -4
  415. package/dist/lib/schemas-data/3.1/core/error.json +1 -1
  416. package/dist/lib/schemas-data/3.1/core/evaluator-spec.json +5 -5
  417. package/dist/lib/schemas-data/3.1/core/event-custom-data.json +2 -2
  418. package/dist/lib/schemas-data/3.1/core/event-source-health.json +3 -3
  419. package/dist/lib/schemas-data/3.1/core/event-surface.json +2 -2
  420. package/dist/lib/schemas-data/3.1/core/event.json +8 -8
  421. package/dist/lib/schemas-data/3.1/core/ext.json +1 -1
  422. package/dist/lib/schemas-data/3.1/core/feature-requirement.json +1 -1
  423. package/dist/lib/schemas-data/3.1/core/flight-item.json +4 -4
  424. package/dist/lib/schemas-data/3.1/core/forecast-dimension-audience.json +2 -2
  425. package/dist/lib/schemas-data/3.1/core/forecast-dimension-device-platform.json +2 -2
  426. package/dist/lib/schemas-data/3.1/core/forecast-dimension-device-type.json +2 -2
  427. package/dist/lib/schemas-data/3.1/core/forecast-dimension-geo.json +5 -5
  428. package/dist/lib/schemas-data/3.1/core/forecast-dimension-placement.json +2 -2
  429. package/dist/lib/schemas-data/3.1/core/forecast-dimension-signal.json +2 -2
  430. package/dist/lib/schemas-data/3.1/core/forecast-point-dimensions.json +7 -7
  431. package/dist/lib/schemas-data/3.1/core/forecast-point.json +27 -27
  432. package/dist/lib/schemas-data/3.1/core/forecast-range.json +1 -1
  433. package/dist/lib/schemas-data/3.1/core/forecast-vendor-metric-value.json +5 -5
  434. package/dist/lib/schemas-data/3.1/core/format-id.json +1 -1
  435. package/dist/lib/schemas-data/3.1/core/format-option-ref.json +1 -1
  436. package/dist/lib/schemas-data/3.1/core/format-shape-vocabulary.json +1 -1
  437. package/dist/lib/schemas-data/3.1/core/format.json +44 -44
  438. package/dist/lib/schemas-data/3.1/core/frequency-cap.json +4 -4
  439. package/dist/lib/schemas-data/3.1/core/generation-credential.json +3 -3
  440. package/dist/lib/schemas-data/3.1/core/geo-breakdown-support.json +3 -3
  441. package/dist/lib/schemas-data/3.1/core/geo-delivery-metrics.json +6 -6
  442. package/dist/lib/schemas-data/3.1/core/hotel-item.json +4 -4
  443. package/dist/lib/schemas-data/3.1/core/identifier.json +2 -2
  444. package/dist/lib/schemas-data/3.1/core/impairment.json +3 -3
  445. package/dist/lib/schemas-data/3.1/core/industry-identifier.json +2 -2
  446. package/dist/lib/schemas-data/3.1/core/insertion-order.json +1 -1
  447. package/dist/lib/schemas-data/3.1/core/installment-deadlines.json +2 -2
  448. package/dist/lib/schemas-data/3.1/core/installment.json +9 -9
  449. package/dist/lib/schemas-data/3.1/core/job-item.json +3 -3
  450. package/dist/lib/schemas-data/3.1/core/keyword-delivery-metrics.json +3 -3
  451. package/dist/lib/schemas-data/3.1/core/limited-series.json +1 -1
  452. package/dist/lib/schemas-data/3.1/core/material-deadline.json +1 -1
  453. package/dist/lib/schemas-data/3.1/core/mcp-webhook-payload.json +5 -5
  454. package/dist/lib/schemas-data/3.1/core/measurement-readiness.json +5 -5
  455. package/dist/lib/schemas-data/3.1/core/measurement-terms.json +3 -3
  456. package/dist/lib/schemas-data/3.1/core/measurement-window.json +1 -1
  457. package/dist/lib/schemas-data/3.1/core/media-buy-available-action.json +4 -4
  458. package/dist/lib/schemas-data/3.1/core/media-buy-features.json +1 -1
  459. package/dist/lib/schemas-data/3.1/core/media-buy.json +10 -10
  460. package/dist/lib/schemas-data/3.1/core/missing-metric.json +9 -9
  461. package/dist/lib/schemas-data/3.1/core/notification-config.json +4 -4
  462. package/dist/lib/schemas-data/3.1/core/offering-asset-group.json +16 -16
  463. package/dist/lib/schemas-data/3.1/core/offering.json +5 -5
  464. package/dist/lib/schemas-data/3.1/core/optimization-goal.json +7 -7
  465. package/dist/lib/schemas-data/3.1/core/outcome-measurement.json +2 -2
  466. package/dist/lib/schemas-data/3.1/core/overlay.json +1 -1
  467. package/dist/lib/schemas-data/3.1/core/package-signal-targeting-group.json +2 -2
  468. package/dist/lib/schemas-data/3.1/core/package-signal-targeting-groups.json +2 -2
  469. package/dist/lib/schemas-data/3.1/core/package-signal-targeting.json +3 -3
  470. package/dist/lib/schemas-data/3.1/core/package.json +17 -17
  471. package/dist/lib/schemas-data/3.1/core/pagination-request.json +1 -1
  472. package/dist/lib/schemas-data/3.1/core/pagination-response.json +1 -1
  473. package/dist/lib/schemas-data/3.1/core/performance-feedback.json +12 -12
  474. package/dist/lib/schemas-data/3.1/core/performance-standard.json +4 -4
  475. package/dist/lib/schemas-data/3.1/core/placement-definition.json +10 -10
  476. package/dist/lib/schemas-data/3.1/core/placement-ref.json +1 -1
  477. package/dist/lib/schemas-data/3.1/core/placement.json +7 -7
  478. package/dist/lib/schemas-data/3.1/core/planned-delivery.json +5 -5
  479. package/dist/lib/schemas-data/3.1/core/platform-extension-ref.json +1 -1
  480. package/dist/lib/schemas-data/3.1/core/postal-area-support.json +2 -2
  481. package/dist/lib/schemas-data/3.1/core/postal-area.json +4 -4
  482. package/dist/lib/schemas-data/3.1/core/postal-country-system.json +2 -2
  483. package/dist/lib/schemas-data/3.1/core/price.json +1 -1
  484. package/dist/lib/schemas-data/3.1/core/pricing-option.json +10 -10
  485. package/dist/lib/schemas-data/3.1/core/product-allocation.json +4 -4
  486. package/dist/lib/schemas-data/3.1/core/product-allowed-action.json +5 -5
  487. package/dist/lib/schemas-data/3.1/core/product-filters.json +27 -27
  488. package/dist/lib/schemas-data/3.1/core/product-format-declaration.json +16 -16
  489. package/dist/lib/schemas-data/3.1/core/product-signal-targeting-option.json +3 -3
  490. package/dist/lib/schemas-data/3.1/core/product.json +40 -40
  491. package/dist/lib/schemas-data/3.1/core/property-id.json +1 -1
  492. package/dist/lib/schemas-data/3.1/core/property-list-ref.json +1 -1
  493. package/dist/lib/schemas-data/3.1/core/property-tag.json +1 -1
  494. package/dist/lib/schemas-data/3.1/core/property.json +6 -6
  495. package/dist/lib/schemas-data/3.1/core/proposal.json +6 -6
  496. package/dist/lib/schemas-data/3.1/core/protocol-envelope.json +5 -5
  497. package/dist/lib/schemas-data/3.1/core/provenance.json +9 -9
  498. package/dist/lib/schemas-data/3.1/core/publisher-property-selector.json +3 -3
  499. package/dist/lib/schemas-data/3.1/core/push-notification-config.json +2 -2
  500. package/dist/lib/schemas-data/3.1/core/real-estate-item.json +4 -4
  501. package/dist/lib/schemas-data/3.1/core/reference-asset.json +1 -1
  502. package/dist/lib/schemas-data/3.1/core/registry-event.json +13 -13
  503. package/dist/lib/schemas-data/3.1/core/registry-feed-response.json +2 -2
  504. package/dist/lib/schemas-data/3.1/core/reporting-capabilities.json +8 -8
  505. package/dist/lib/schemas-data/3.1/core/reporting-webhook.json +3 -3
  506. package/dist/lib/schemas-data/3.1/core/requirements/asset-requirements.json +13 -13
  507. package/dist/lib/schemas-data/3.1/core/requirements/audio-asset-requirements.json +1 -1
  508. package/dist/lib/schemas-data/3.1/core/requirements/catalog-field-binding.json +4 -4
  509. package/dist/lib/schemas-data/3.1/core/requirements/catalog-requirements.json +5 -5
  510. package/dist/lib/schemas-data/3.1/core/requirements/css-asset-requirements.json +1 -1
  511. package/dist/lib/schemas-data/3.1/core/requirements/daast-asset-requirements.json +1 -1
  512. package/dist/lib/schemas-data/3.1/core/requirements/html-asset-requirements.json +1 -1
  513. package/dist/lib/schemas-data/3.1/core/requirements/image-asset-requirements.json +2 -2
  514. package/dist/lib/schemas-data/3.1/core/requirements/javascript-asset-requirements.json +1 -1
  515. package/dist/lib/schemas-data/3.1/core/requirements/markdown-asset-requirements.json +1 -1
  516. package/dist/lib/schemas-data/3.1/core/requirements/offering-asset-constraint.json +4 -4
  517. package/dist/lib/schemas-data/3.1/core/requirements/text-asset-requirements.json +1 -1
  518. package/dist/lib/schemas-data/3.1/core/requirements/url-asset-requirements.json +1 -1
  519. package/dist/lib/schemas-data/3.1/core/requirements/vast-asset-requirements.json +1 -1
  520. package/dist/lib/schemas-data/3.1/core/requirements/video-asset-requirements.json +6 -6
  521. package/dist/lib/schemas-data/3.1/core/requirements/webhook-asset-requirements.json +1 -1
  522. package/dist/lib/schemas-data/3.1/core/response-payload-jws-envelope.json +1 -1
  523. package/dist/lib/schemas-data/3.1/core/response.json +1 -1
  524. package/dist/lib/schemas-data/3.1/core/rights-constraint.json +4 -4
  525. package/dist/lib/schemas-data/3.1/core/seller-agent-ref.json +1 -1
  526. package/dist/lib/schemas-data/3.1/core/signal-coverage-forecast.json +5 -5
  527. package/dist/lib/schemas-data/3.1/core/signal-definition-enrichment.json +4 -4
  528. package/dist/lib/schemas-data/3.1/core/signal-definition.json +5 -5
  529. package/dist/lib/schemas-data/3.1/core/signal-filters.json +3 -3
  530. package/dist/lib/schemas-data/3.1/core/signal-id.json +1 -1
  531. package/dist/lib/schemas-data/3.1/core/signal-listing.json +4 -4
  532. package/dist/lib/schemas-data/3.1/core/signal-modeling-disclosure.json +1 -1
  533. package/dist/lib/schemas-data/3.1/core/signal-pricing-option.json +2 -2
  534. package/dist/lib/schemas-data/3.1/core/signal-pricing.json +6 -6
  535. package/dist/lib/schemas-data/3.1/core/signal-ref.json +1 -1
  536. package/dist/lib/schemas-data/3.1/core/signal-selection-group-rule.json +1 -1
  537. package/dist/lib/schemas-data/3.1/core/signal-targeting-expression.json +4 -4
  538. package/dist/lib/schemas-data/3.1/core/signal-targeting-rules.json +2 -2
  539. package/dist/lib/schemas-data/3.1/core/signal-targeting.json +7 -7
  540. package/dist/lib/schemas-data/3.1/core/sla-window.json +1 -1
  541. package/dist/lib/schemas-data/3.1/core/special.json +2 -2
  542. package/dist/lib/schemas-data/3.1/core/start-timing.json +1 -1
  543. package/dist/lib/schemas-data/3.1/core/store-item.json +3 -3
  544. package/dist/lib/schemas-data/3.1/core/talent.json +2 -2
  545. package/dist/lib/schemas-data/3.1/core/targeting.json +22 -22
  546. package/dist/lib/schemas-data/3.1/core/tasks-get-request.json +5 -5
  547. package/dist/lib/schemas-data/3.1/core/tasks-get-response.json +10 -10
  548. package/dist/lib/schemas-data/3.1/core/tasks-list-request.json +13 -13
  549. package/dist/lib/schemas-data/3.1/core/tasks-list-response.json +8 -8
  550. package/dist/lib/schemas-data/3.1/core/transformer-param.json +1 -1
  551. package/dist/lib/schemas-data/3.1/core/transformer.json +5 -5
  552. package/dist/lib/schemas-data/3.1/core/truncation-sentinel.json +1 -1
  553. package/dist/lib/schemas-data/3.1/core/user-match.json +3 -3
  554. package/dist/lib/schemas-data/3.1/core/vehicle-item.json +4 -4
  555. package/dist/lib/schemas-data/3.1/core/vendor-metric-id.json +1 -1
  556. package/dist/lib/schemas-data/3.1/core/vendor-metric-optimization-supported-metric.json +3 -3
  557. package/dist/lib/schemas-data/3.1/core/vendor-metric-optimization.json +2 -2
  558. package/dist/lib/schemas-data/3.1/core/vendor-metric-value.json +3 -3
  559. package/dist/lib/schemas-data/3.1/core/vendor-pricing-option.json +3 -3
  560. package/dist/lib/schemas-data/3.1/core/version-envelope.json +1 -1
  561. package/dist/lib/schemas-data/3.1/core/webhook-activity-record.json +3 -3
  562. package/dist/lib/schemas-data/3.1/core/webhook-challenge-response.json +1 -1
  563. package/dist/lib/schemas-data/3.1/core/webhook-challenge.json +2 -2
  564. package/dist/lib/schemas-data/3.1/core/wholesale-feed-event.json +17 -17
  565. package/dist/lib/schemas-data/3.1/core/wholesale-feed-webhook.json +3 -3
  566. package/dist/lib/schemas-data/3.1/core/x-entity-types.json +1 -1
  567. package/dist/lib/schemas-data/3.1/creative/asset-types/index.json +6 -6
  568. package/dist/lib/schemas-data/3.1/creative/audit-observation.json +2 -2
  569. package/dist/lib/schemas-data/3.1/creative/creative-feature-result.json +2 -2
  570. package/dist/lib/schemas-data/3.1/creative/creative-purged-webhook.json +3 -3
  571. package/dist/lib/schemas-data/3.1/creative/creative-status-changed-webhook.json +4 -4
  572. package/dist/lib/schemas-data/3.1/creative/get-creative-delivery-request.json +6 -6
  573. package/dist/lib/schemas-data/3.1/creative/get-creative-delivery-response.json +9 -9
  574. package/dist/lib/schemas-data/3.1/creative/get-creative-features-request.json +6 -6
  575. package/dist/lib/schemas-data/3.1/creative/get-creative-features-response.json +11 -11
  576. package/dist/lib/schemas-data/3.1/creative/list-creative-formats-request.json +13 -13
  577. package/dist/lib/schemas-data/3.1/creative/list-creative-formats-response.json +9 -9
  578. package/dist/lib/schemas-data/3.1/creative/list-creatives-request.json +9 -9
  579. package/dist/lib/schemas-data/3.1/creative/list-creatives-response.json +21 -21
  580. package/dist/lib/schemas-data/3.1/creative/list-transformers-request.json +8 -8
  581. package/dist/lib/schemas-data/3.1/creative/list-transformers-response.json +8 -8
  582. package/dist/lib/schemas-data/3.1/creative/preview-creative-request.json +12 -12
  583. package/dist/lib/schemas-data/3.1/creative/preview-creative-response.json +14 -14
  584. package/dist/lib/schemas-data/3.1/creative/preview-render.json +1 -1
  585. package/dist/lib/schemas-data/3.1/creative/sync-creatives-async-response-input-required.json +3 -3
  586. package/dist/lib/schemas-data/3.1/creative/sync-creatives-async-response-submitted.json +4 -4
  587. package/dist/lib/schemas-data/3.1/creative/sync-creatives-async-response-working.json +3 -3
  588. package/dist/lib/schemas-data/3.1/creative/sync-creatives-request.json +8 -8
  589. package/dist/lib/schemas-data/3.1/creative/sync-creatives-response.json +15 -15
  590. package/dist/lib/schemas-data/3.1/creative/validate-input-request.json +4 -4
  591. package/dist/lib/schemas-data/3.1/creative/validate-input-response.json +4 -4
  592. package/dist/lib/schemas-data/3.1/creative/validate-input-result.json +1 -1
  593. package/dist/lib/schemas-data/3.1/creative/video-brief.json +1 -1
  594. package/dist/lib/schemas-data/3.1/enums/account-scope.json +1 -1
  595. package/dist/lib/schemas-data/3.1/enums/account-status.json +1 -1
  596. package/dist/lib/schemas-data/3.1/enums/action-not-allowed-reason.json +1 -1
  597. package/dist/lib/schemas-data/3.1/enums/action-source.json +1 -1
  598. package/dist/lib/schemas-data/3.1/enums/adcp-protocol.json +1 -1
  599. package/dist/lib/schemas-data/3.1/enums/adjustment-kind.json +1 -1
  600. package/dist/lib/schemas-data/3.1/enums/advertiser-industry.json +1 -1
  601. package/dist/lib/schemas-data/3.1/enums/age-verification-method.json +1 -1
  602. package/dist/lib/schemas-data/3.1/enums/assessment-status.json +1 -1
  603. package/dist/lib/schemas-data/3.1/enums/asset-content-type.json +1 -1
  604. package/dist/lib/schemas-data/3.1/enums/attestation-claim.json +1 -1
  605. package/dist/lib/schemas-data/3.1/enums/attribution-methodology.json +1 -1
  606. package/dist/lib/schemas-data/3.1/enums/attribution-model.json +1 -1
  607. package/dist/lib/schemas-data/3.1/enums/audience-source.json +1 -1
  608. package/dist/lib/schemas-data/3.1/enums/audience-status.json +1 -1
  609. package/dist/lib/schemas-data/3.1/enums/audio-channel-layout.json +1 -1
  610. package/dist/lib/schemas-data/3.1/enums/audio-distribution-type.json +1 -1
  611. package/dist/lib/schemas-data/3.1/enums/auth-scheme.json +1 -1
  612. package/dist/lib/schemas-data/3.1/enums/available-metric.json +1 -1
  613. package/dist/lib/schemas-data/3.1/enums/billing-party.json +1 -1
  614. package/dist/lib/schemas-data/3.1/enums/binary-verdict.json +1 -1
  615. package/dist/lib/schemas-data/3.1/enums/brand-agent-type.json +1 -1
  616. package/dist/lib/schemas-data/3.1/enums/c2pa-watermark-action.json +1 -1
  617. package/dist/lib/schemas-data/3.1/enums/canceled-by.json +1 -1
  618. package/dist/lib/schemas-data/3.1/enums/catalog-action.json +1 -1
  619. package/dist/lib/schemas-data/3.1/enums/catalog-item-status.json +1 -1
  620. package/dist/lib/schemas-data/3.1/enums/catalog-type.json +1 -1
  621. package/dist/lib/schemas-data/3.1/enums/channels.json +1 -1
  622. package/dist/lib/schemas-data/3.1/enums/cloud-storage-protocol.json +1 -1
  623. package/dist/lib/schemas-data/3.1/enums/co-branding-requirement.json +1 -1
  624. package/dist/lib/schemas-data/3.1/enums/collection-cadence.json +1 -1
  625. package/dist/lib/schemas-data/3.1/enums/collection-kind.json +1 -1
  626. package/dist/lib/schemas-data/3.1/enums/collection-relationship.json +1 -1
  627. package/dist/lib/schemas-data/3.1/enums/collection-status.json +1 -1
  628. package/dist/lib/schemas-data/3.1/enums/completion-source.json +1 -1
  629. package/dist/lib/schemas-data/3.1/enums/consent-basis.json +1 -1
  630. package/dist/lib/schemas-data/3.1/enums/content-id-type.json +1 -1
  631. package/dist/lib/schemas-data/3.1/enums/content-rating-system.json +1 -1
  632. package/dist/lib/schemas-data/3.1/enums/creative-action.json +1 -1
  633. package/dist/lib/schemas-data/3.1/enums/creative-agent-capability.json +1 -1
  634. package/dist/lib/schemas-data/3.1/enums/creative-approval-status.json +1 -1
  635. package/dist/lib/schemas-data/3.1/enums/creative-event-reason-code.json +1 -1
  636. package/dist/lib/schemas-data/3.1/enums/creative-identifier-type.json +1 -1
  637. package/dist/lib/schemas-data/3.1/enums/creative-quality.json +1 -1
  638. package/dist/lib/schemas-data/3.1/enums/creative-selection-strategy.json +1 -1
  639. package/dist/lib/schemas-data/3.1/enums/creative-sort-field.json +1 -1
  640. package/dist/lib/schemas-data/3.1/enums/creative-status.json +1 -1
  641. package/dist/lib/schemas-data/3.1/enums/daast-tracking-event.json +1 -1
  642. package/dist/lib/schemas-data/3.1/enums/daast-version.json +1 -1
  643. package/dist/lib/schemas-data/3.1/enums/day-of-week.json +1 -1
  644. package/dist/lib/schemas-data/3.1/enums/delegation-authority.json +1 -1
  645. package/dist/lib/schemas-data/3.1/enums/delivery-type.json +1 -1
  646. package/dist/lib/schemas-data/3.1/enums/demographic-system.json +1 -1
  647. package/dist/lib/schemas-data/3.1/enums/derivative-type.json +1 -1
  648. package/dist/lib/schemas-data/3.1/enums/device-platform.json +1 -1
  649. package/dist/lib/schemas-data/3.1/enums/device-type.json +1 -1
  650. package/dist/lib/schemas-data/3.1/enums/digital-source-type.json +1 -1
  651. package/dist/lib/schemas-data/3.1/enums/dimension-unit.json +1 -1
  652. package/dist/lib/schemas-data/3.1/enums/disclosure-persistence.json +1 -1
  653. package/dist/lib/schemas-data/3.1/enums/disclosure-position.json +1 -1
  654. package/dist/lib/schemas-data/3.1/enums/distance-unit.json +1 -1
  655. package/dist/lib/schemas-data/3.1/enums/distribution-identifier-type.json +1 -1
  656. package/dist/lib/schemas-data/3.1/enums/embedded-provenance-method.json +1 -1
  657. package/dist/lib/schemas-data/3.1/enums/error-code.json +1 -1
  658. package/dist/lib/schemas-data/3.1/enums/error-scope.json +1 -1
  659. package/dist/lib/schemas-data/3.1/enums/escalation-severity.json +1 -1
  660. package/dist/lib/schemas-data/3.1/enums/event-type.json +1 -1
  661. package/dist/lib/schemas-data/3.1/enums/exclusivity.json +1 -1
  662. package/dist/lib/schemas-data/3.1/enums/feature-check-status.json +1 -1
  663. package/dist/lib/schemas-data/3.1/enums/feed-format.json +1 -1
  664. package/dist/lib/schemas-data/3.1/enums/feedback-source.json +1 -1
  665. package/dist/lib/schemas-data/3.1/enums/forecast-method.json +1 -1
  666. package/dist/lib/schemas-data/3.1/enums/forecast-range-unit.json +1 -1
  667. package/dist/lib/schemas-data/3.1/enums/forecastable-metric.json +1 -1
  668. package/dist/lib/schemas-data/3.1/enums/format-id-parameter.json +1 -1
  669. package/dist/lib/schemas-data/3.1/enums/frame-rate-type.json +1 -1
  670. package/dist/lib/schemas-data/3.1/enums/frequency-cap-scope.json +1 -1
  671. package/dist/lib/schemas-data/3.1/enums/genre-taxonomy.json +1 -1
  672. package/dist/lib/schemas-data/3.1/enums/geo-level.json +1 -1
  673. package/dist/lib/schemas-data/3.1/enums/gop-type.json +1 -1
  674. package/dist/lib/schemas-data/3.1/enums/governance-decision.json +1 -1
  675. package/dist/lib/schemas-data/3.1/enums/governance-domain.json +1 -1
  676. package/dist/lib/schemas-data/3.1/enums/governance-mode.json +1 -1
  677. package/dist/lib/schemas-data/3.1/enums/governance-phase.json +1 -1
  678. package/dist/lib/schemas-data/3.1/enums/history-entry-type.json +1 -1
  679. package/dist/lib/schemas-data/3.1/enums/http-method.json +1 -1
  680. package/dist/lib/schemas-data/3.1/enums/identifier-types.json +1 -1
  681. package/dist/lib/schemas-data/3.1/enums/impairment-offline-state.json +1 -1
  682. package/dist/lib/schemas-data/3.1/enums/impairment-reason-code.json +1 -1
  683. package/dist/lib/schemas-data/3.1/enums/installment-status.json +1 -1
  684. package/dist/lib/schemas-data/3.1/enums/javascript-module-type.json +1 -1
  685. package/dist/lib/schemas-data/3.1/enums/landing-page-requirement.json +1 -1
  686. package/dist/lib/schemas-data/3.1/enums/legacy-postal-system.json +1 -1
  687. package/dist/lib/schemas-data/3.1/enums/lift-dimension.json +1 -1
  688. package/dist/lib/schemas-data/3.1/enums/logo-slot.json +1 -1
  689. package/dist/lib/schemas-data/3.1/enums/makegood-remedy.json +1 -1
  690. package/dist/lib/schemas-data/3.1/enums/markdown-flavor.json +1 -1
  691. package/dist/lib/schemas-data/3.1/enums/match-id-type.json +1 -1
  692. package/dist/lib/schemas-data/3.1/enums/match-type.json +1 -1
  693. package/dist/lib/schemas-data/3.1/enums/media-buy-action-mode.json +1 -1
  694. package/dist/lib/schemas-data/3.1/enums/media-buy-health.json +1 -1
  695. package/dist/lib/schemas-data/3.1/enums/media-buy-status.json +1 -1
  696. package/dist/lib/schemas-data/3.1/enums/media-buy-valid-action.json +1 -1
  697. package/dist/lib/schemas-data/3.1/enums/metric-scope.json +1 -1
  698. package/dist/lib/schemas-data/3.1/enums/metric-type.json +1 -1
  699. package/dist/lib/schemas-data/3.1/enums/metro-system.json +1 -1
  700. package/dist/lib/schemas-data/3.1/enums/moov-atom-position.json +1 -1
  701. package/dist/lib/schemas-data/3.1/enums/notification-type.json +1 -1
  702. package/dist/lib/schemas-data/3.1/enums/offering-availability-status.json +1 -1
  703. package/dist/lib/schemas-data/3.1/enums/outcome-type.json +1 -1
  704. package/dist/lib/schemas-data/3.1/enums/pacing.json +1 -1
  705. package/dist/lib/schemas-data/3.1/enums/payment-terms.json +1 -1
  706. package/dist/lib/schemas-data/3.1/enums/performance-standard-metric.json +1 -1
  707. package/dist/lib/schemas-data/3.1/enums/policy-category.json +1 -1
  708. package/dist/lib/schemas-data/3.1/enums/policy-enforcement.json +1 -1
  709. package/dist/lib/schemas-data/3.1/enums/postal-system.json +1 -1
  710. package/dist/lib/schemas-data/3.1/enums/preview-output-format.json +1 -1
  711. package/dist/lib/schemas-data/3.1/enums/pricing-model.json +1 -1
  712. package/dist/lib/schemas-data/3.1/enums/production-quality.json +1 -1
  713. package/dist/lib/schemas-data/3.1/enums/property-type.json +1 -1
  714. package/dist/lib/schemas-data/3.1/enums/proposal-status.json +1 -1
  715. package/dist/lib/schemas-data/3.1/enums/publisher-identifier-types.json +1 -1
  716. package/dist/lib/schemas-data/3.1/enums/purchase-type.json +1 -1
  717. package/dist/lib/schemas-data/3.1/enums/reach-unit.json +1 -1
  718. package/dist/lib/schemas-data/3.1/enums/reporting-frequency.json +1 -1
  719. package/dist/lib/schemas-data/3.1/enums/response-type.json +1 -1
  720. package/dist/lib/schemas-data/3.1/enums/restricted-attribute.json +1 -1
  721. package/dist/lib/schemas-data/3.1/enums/right-type.json +1 -1
  722. package/dist/lib/schemas-data/3.1/enums/right-use.json +1 -1
  723. package/dist/lib/schemas-data/3.1/enums/rights-billing-period.json +1 -1
  724. package/dist/lib/schemas-data/3.1/enums/scan-type.json +1 -1
  725. package/dist/lib/schemas-data/3.1/enums/si-session-status.json +1 -1
  726. package/dist/lib/schemas-data/3.1/enums/signal-catalog-type.json +1 -1
  727. package/dist/lib/schemas-data/3.1/enums/signal-source.json +1 -1
  728. package/dist/lib/schemas-data/3.1/enums/signal-value-type.json +1 -1
  729. package/dist/lib/schemas-data/3.1/enums/snapshot-unavailable-reason.json +1 -1
  730. package/dist/lib/schemas-data/3.1/enums/social-placement-surface.json +1 -1
  731. package/dist/lib/schemas-data/3.1/enums/sort-direction.json +1 -1
  732. package/dist/lib/schemas-data/3.1/enums/sort-metric.json +1 -1
  733. package/dist/lib/schemas-data/3.1/enums/special-category.json +1 -1
  734. package/dist/lib/schemas-data/3.1/enums/specialism.json +1 -1
  735. package/dist/lib/schemas-data/3.1/enums/sponsored-placement-type.json +1 -1
  736. package/dist/lib/schemas-data/3.1/enums/talent-role.json +1 -1
  737. package/dist/lib/schemas-data/3.1/enums/task-status.json +1 -1
  738. package/dist/lib/schemas-data/3.1/enums/task-type.json +1 -1
  739. package/dist/lib/schemas-data/3.1/enums/transport-mode.json +1 -1
  740. package/dist/lib/schemas-data/3.1/enums/travel-time-unit.json +1 -1
  741. package/dist/lib/schemas-data/3.1/enums/uid-type.json +1 -1
  742. package/dist/lib/schemas-data/3.1/enums/universal-macro.json +1 -1
  743. package/dist/lib/schemas-data/3.1/enums/update-frequency.json +1 -1
  744. package/dist/lib/schemas-data/3.1/enums/url-asset-type.json +1 -1
  745. package/dist/lib/schemas-data/3.1/enums/validation-mode.json +1 -1
  746. package/dist/lib/schemas-data/3.1/enums/vast-tracking-event.json +1 -1
  747. package/dist/lib/schemas-data/3.1/enums/vast-version.json +1 -1
  748. package/dist/lib/schemas-data/3.1/enums/video-placement-type.json +1 -1
  749. package/dist/lib/schemas-data/3.1/enums/viewability-standard.json +1 -1
  750. package/dist/lib/schemas-data/3.1/enums/watermark-media-type.json +1 -1
  751. package/dist/lib/schemas-data/3.1/enums/wcag-level.json +1 -1
  752. package/dist/lib/schemas-data/3.1/enums/webhook-response-type.json +1 -1
  753. package/dist/lib/schemas-data/3.1/enums/webhook-security-method.json +1 -1
  754. package/dist/lib/schemas-data/3.1/error-details/account-setup-required.json +1 -1
  755. package/dist/lib/schemas-data/3.1/error-details/action-not-allowed.json +4 -4
  756. package/dist/lib/schemas-data/3.1/error-details/agent-permission-denied.json +1 -1
  757. package/dist/lib/schemas-data/3.1/error-details/audience-too-small.json +1 -1
  758. package/dist/lib/schemas-data/3.1/error-details/authorization-required.json +3 -3
  759. package/dist/lib/schemas-data/3.1/error-details/billing-not-permitted-for-agent.json +3 -3
  760. package/dist/lib/schemas-data/3.1/error-details/billing-not-supported.json +2 -2
  761. package/dist/lib/schemas-data/3.1/error-details/budget-too-low.json +1 -1
  762. package/dist/lib/schemas-data/3.1/error-details/conflict.json +1 -1
  763. package/dist/lib/schemas-data/3.1/error-details/creative-rejected.json +1 -1
  764. package/dist/lib/schemas-data/3.1/error-details/policy-violation.json +1 -1
  765. package/dist/lib/schemas-data/3.1/error-details/rate-limited.json +1 -1
  766. package/dist/lib/schemas-data/3.1/error-details/stale-response.json +1 -1
  767. package/dist/lib/schemas-data/3.1/error-details/vendor-error-codes.json +1 -1
  768. package/dist/lib/schemas-data/3.1/error-details/version-unsupported.json +2 -2
  769. package/dist/lib/schemas-data/3.1/extensions/extension-meta.json +1 -1
  770. package/dist/lib/schemas-data/3.1/extensions/index.json +2 -2
  771. package/dist/lib/schemas-data/3.1/formats/canonical/_base.json +5 -5
  772. package/dist/lib/schemas-data/3.1/formats/canonical/agent_placement.json +2 -2
  773. package/dist/lib/schemas-data/3.1/formats/canonical/audio_daast.json +2 -2
  774. package/dist/lib/schemas-data/3.1/formats/canonical/audio_hosted.json +2 -2
  775. package/dist/lib/schemas-data/3.1/formats/canonical/display_tag.json +2 -2
  776. package/dist/lib/schemas-data/3.1/formats/canonical/html5.json +2 -2
  777. package/dist/lib/schemas-data/3.1/formats/canonical/image.json +2 -2
  778. package/dist/lib/schemas-data/3.1/formats/canonical/image_carousel.json +2 -2
  779. package/dist/lib/schemas-data/3.1/formats/canonical/native_in_feed.json +2 -2
  780. package/dist/lib/schemas-data/3.1/formats/canonical/responsive_creative.json +2 -2
  781. package/dist/lib/schemas-data/3.1/formats/canonical/sponsored_placement.json +2 -2
  782. package/dist/lib/schemas-data/3.1/formats/canonical/video_hosted.json +2 -2
  783. package/dist/lib/schemas-data/3.1/formats/canonical/video_vast.json +2 -2
  784. package/dist/lib/schemas-data/3.1/governance/attribute-definition.json +1 -1
  785. package/dist/lib/schemas-data/3.1/governance/audience-constraints.json +3 -3
  786. package/dist/lib/schemas-data/3.1/governance/check-governance-request.json +8 -8
  787. package/dist/lib/schemas-data/3.1/governance/check-governance-response.json +7 -7
  788. package/dist/lib/schemas-data/3.1/governance/get-plan-audit-logs-request.json +5 -5
  789. package/dist/lib/schemas-data/3.1/governance/get-plan-audit-logs-response.json +11 -11
  790. package/dist/lib/schemas-data/3.1/governance/policy-category-definition.json +2 -2
  791. package/dist/lib/schemas-data/3.1/governance/policy-entry.json +6 -6
  792. package/dist/lib/schemas-data/3.1/governance/policy-ref.json +1 -1
  793. package/dist/lib/schemas-data/3.1/governance/report-plan-outcome-request.json +7 -7
  794. package/dist/lib/schemas-data/3.1/governance/report-plan-outcome-response.json +5 -5
  795. package/dist/lib/schemas-data/3.1/governance/sync-plans-request.json +14 -14
  796. package/dist/lib/schemas-data/3.1/governance/sync-plans-response.json +6 -6
  797. package/dist/lib/schemas-data/3.1/index.json +452 -440
  798. package/dist/lib/schemas-data/3.1/manifest.json +3 -3
  799. package/dist/lib/schemas-data/3.1/manifest.schema.json +1 -1
  800. package/dist/lib/schemas-data/3.1/media-buy/build-creative-async-response-input-required.json +4 -4
  801. package/dist/lib/schemas-data/3.1/media-buy/build-creative-async-response-submitted.json +4 -4
  802. package/dist/lib/schemas-data/3.1/media-buy/build-creative-async-response-working.json +3 -3
  803. package/dist/lib/schemas-data/3.1/media-buy/build-creative-request.json +16 -16
  804. package/dist/lib/schemas-data/3.1/media-buy/build-creative-response.json +35 -35
  805. package/dist/lib/schemas-data/3.1/media-buy/create-media-buy-async-response-input-required.json +4 -4
  806. package/dist/lib/schemas-data/3.1/media-buy/create-media-buy-async-response-submitted.json +4 -4
  807. package/dist/lib/schemas-data/3.1/media-buy/create-media-buy-async-response-working.json +3 -3
  808. package/dist/lib/schemas-data/3.1/media-buy/create-media-buy-request.json +13 -13
  809. package/dist/lib/schemas-data/3.1/media-buy/create-media-buy-response.json +19 -19
  810. package/dist/lib/schemas-data/3.1/media-buy/get-media-buy-delivery-request.json +23 -23
  811. package/dist/lib/schemas-data/3.1/media-buy/get-media-buy-delivery-response.json +27 -27
  812. package/dist/lib/schemas-data/3.1/media-buy/get-media-buys-request.json +8 -8
  813. package/dist/lib/schemas-data/3.1/media-buy/get-media-buys-response.json +30 -30
  814. package/dist/lib/schemas-data/3.1/media-buy/get-products-async-response-input-required.json +4 -4
  815. package/dist/lib/schemas-data/3.1/media-buy/get-products-async-response-submitted.json +4 -4
  816. package/dist/lib/schemas-data/3.1/media-buy/get-products-async-response-working.json +3 -3
  817. package/dist/lib/schemas-data/3.1/media-buy/get-products-request.json +13 -13
  818. package/dist/lib/schemas-data/3.1/media-buy/get-products-response.json +10 -10
  819. package/dist/lib/schemas-data/3.1/media-buy/list-creative-formats-request.json +13 -13
  820. package/dist/lib/schemas-data/3.1/media-buy/list-creative-formats-response.json +9 -9
  821. package/dist/lib/schemas-data/3.1/media-buy/log-event-request.json +5 -5
  822. package/dist/lib/schemas-data/3.1/media-buy/log-event-response.json +8 -8
  823. package/dist/lib/schemas-data/3.1/media-buy/media-buy-delivery-webhook-result.json +9 -9
  824. package/dist/lib/schemas-data/3.1/media-buy/package-request.json +23 -23
  825. package/dist/lib/schemas-data/3.1/media-buy/package-update.json +13 -13
  826. package/dist/lib/schemas-data/3.1/media-buy/provide-performance-feedback-request.json +7 -7
  827. package/dist/lib/schemas-data/3.1/media-buy/provide-performance-feedback-response.json +8 -8
  828. package/dist/lib/schemas-data/3.1/media-buy/sync-audiences-request.json +8 -8
  829. package/dist/lib/schemas-data/3.1/media-buy/sync-audiences-response.json +14 -14
  830. package/dist/lib/schemas-data/3.1/media-buy/sync-catalogs-async-response-input-required.json +3 -3
  831. package/dist/lib/schemas-data/3.1/media-buy/sync-catalogs-async-response-submitted.json +4 -4
  832. package/dist/lib/schemas-data/3.1/media-buy/sync-catalogs-async-response-working.json +3 -3
  833. package/dist/lib/schemas-data/3.1/media-buy/sync-catalogs-request.json +8 -8
  834. package/dist/lib/schemas-data/3.1/media-buy/sync-catalogs-response.json +14 -14
  835. package/dist/lib/schemas-data/3.1/media-buy/sync-event-sources-request.json +8 -8
  836. package/dist/lib/schemas-data/3.1/media-buy/sync-event-sources-response.json +14 -14
  837. package/dist/lib/schemas-data/3.1/media-buy/update-media-buy-async-response-input-required.json +3 -3
  838. package/dist/lib/schemas-data/3.1/media-buy/update-media-buy-async-response-submitted.json +4 -4
  839. package/dist/lib/schemas-data/3.1/media-buy/update-media-buy-async-response-working.json +3 -3
  840. package/dist/lib/schemas-data/3.1/media-buy/update-media-buy-request.json +11 -11
  841. package/dist/lib/schemas-data/3.1/media-buy/update-media-buy-response.json +17 -17
  842. package/dist/lib/schemas-data/3.1/pricing-options/cpa-option.json +4 -4
  843. package/dist/lib/schemas-data/3.1/pricing-options/cpc-option.json +4 -4
  844. package/dist/lib/schemas-data/3.1/pricing-options/cpcv-option.json +4 -4
  845. package/dist/lib/schemas-data/3.1/pricing-options/cpm-option.json +4 -4
  846. package/dist/lib/schemas-data/3.1/pricing-options/cpp-option.json +5 -5
  847. package/dist/lib/schemas-data/3.1/pricing-options/cpv-option.json +4 -4
  848. package/dist/lib/schemas-data/3.1/pricing-options/flat-rate-option.json +4 -4
  849. package/dist/lib/schemas-data/3.1/pricing-options/price-breakdown.json +2 -2
  850. package/dist/lib/schemas-data/3.1/pricing-options/price-guidance.json +1 -1
  851. package/dist/lib/schemas-data/3.1/pricing-options/time-option.json +4 -4
  852. package/dist/lib/schemas-data/3.1/pricing-options/vcpm-option.json +4 -4
  853. package/dist/lib/schemas-data/3.1/property/authorization-result.json +1 -1
  854. package/dist/lib/schemas-data/3.1/property/base-property-source.json +4 -4
  855. package/dist/lib/schemas-data/3.1/property/create-property-list-request.json +8 -8
  856. package/dist/lib/schemas-data/3.1/property/create-property-list-response.json +6 -6
  857. package/dist/lib/schemas-data/3.1/property/delete-property-list-request.json +5 -5
  858. package/dist/lib/schemas-data/3.1/property/delete-property-list-response.json +5 -5
  859. package/dist/lib/schemas-data/3.1/property/delivery-record.json +3 -3
  860. package/dist/lib/schemas-data/3.1/property/get-property-list-request.json +5 -5
  861. package/dist/lib/schemas-data/3.1/property/get-property-list-response.json +9 -9
  862. package/dist/lib/schemas-data/3.1/property/list-property-lists-request.json +6 -6
  863. package/dist/lib/schemas-data/3.1/property/list-property-lists-response.json +7 -7
  864. package/dist/lib/schemas-data/3.1/property/property-error.json +2 -2
  865. package/dist/lib/schemas-data/3.1/property/property-feature-definition.json +2 -2
  866. package/dist/lib/schemas-data/3.1/property/property-feature-result.json +4 -4
  867. package/dist/lib/schemas-data/3.1/property/property-feature-value.json +2 -2
  868. package/dist/lib/schemas-data/3.1/property/property-feature.json +1 -1
  869. package/dist/lib/schemas-data/3.1/property/property-list-changed-webhook.json +2 -2
  870. package/dist/lib/schemas-data/3.1/property/property-list-filters.json +5 -5
  871. package/dist/lib/schemas-data/3.1/property/property-list.json +6 -6
  872. package/dist/lib/schemas-data/3.1/property/update-property-list-request.json +8 -8
  873. package/dist/lib/schemas-data/3.1/property/update-property-list-response.json +6 -6
  874. package/dist/lib/schemas-data/3.1/property/validate-property-delivery-request.json +6 -6
  875. package/dist/lib/schemas-data/3.1/property/validate-property-delivery-response.json +6 -6
  876. package/dist/lib/schemas-data/3.1/property/validation-result.json +5 -5
  877. package/dist/lib/schemas-data/3.1/protocol/get-adcp-capabilities-request.json +4 -4
  878. package/dist/lib/schemas-data/3.1/protocol/get-adcp-capabilities-response.json +33 -33
  879. package/dist/lib/schemas-data/3.1/protocol/get-task-status-request.json +5 -5
  880. package/dist/lib/schemas-data/3.1/protocol/get-task-status-response.json +10 -10
  881. package/dist/lib/schemas-data/3.1/protocol/list-tasks-request.json +13 -13
  882. package/dist/lib/schemas-data/3.1/protocol/list-tasks-response.json +8 -8
  883. package/dist/lib/schemas-data/3.1/registries/v1-canonical-mapping.json +355 -5
  884. package/dist/lib/schemas-data/3.1/signals/activate-signal-request.json +6 -6
  885. package/dist/lib/schemas-data/3.1/signals/activate-signal-response.json +9 -9
  886. package/dist/lib/schemas-data/3.1/signals/get-signals-async-response-submitted.json +4 -4
  887. package/dist/lib/schemas-data/3.1/signals/get-signals-async-response-working.json +3 -3
  888. package/dist/lib/schemas-data/3.1/signals/get-signals-request.json +11 -11
  889. package/dist/lib/schemas-data/3.1/signals/get-signals-response.json +17 -17
  890. package/dist/lib/schemas-data/3.1/sponsored-intelligence/si-capabilities.json +1 -1
  891. package/dist/lib/schemas-data/3.1/sponsored-intelligence/si-context-use.json +1 -1
  892. package/dist/lib/schemas-data/3.1/sponsored-intelligence/si-get-offering-request.json +4 -4
  893. package/dist/lib/schemas-data/3.1/sponsored-intelligence/si-get-offering-response.json +9 -9
  894. package/dist/lib/schemas-data/3.1/sponsored-intelligence/si-identity.json +1 -1
  895. package/dist/lib/schemas-data/3.1/sponsored-intelligence/si-initiate-session-request.json +7 -7
  896. package/dist/lib/schemas-data/3.1/sponsored-intelligence/si-initiate-session-response.json +10 -10
  897. package/dist/lib/schemas-data/3.1/sponsored-intelligence/si-send-message-request.json +5 -5
  898. package/dist/lib/schemas-data/3.1/sponsored-intelligence/si-send-message-response.json +10 -10
  899. package/dist/lib/schemas-data/3.1/sponsored-intelligence/si-sponsored-context-receipt.json +4 -4
  900. package/dist/lib/schemas-data/3.1/sponsored-intelligence/si-sponsored-context.json +4 -4
  901. package/dist/lib/schemas-data/3.1/sponsored-intelligence/si-terminate-session-request.json +4 -4
  902. package/dist/lib/schemas-data/3.1/sponsored-intelligence/si-terminate-session-response.json +7 -7
  903. package/dist/lib/schemas-data/3.1/sponsored-intelligence/si-ui-element.json +1 -1
  904. package/dist/lib/schemas-data/3.1/trusted-match/available-package.json +4 -4
  905. package/dist/lib/schemas-data/3.1/trusted-match/context-match-request.json +5 -5
  906. package/dist/lib/schemas-data/3.1/trusted-match/context-match-response.json +4 -4
  907. package/dist/lib/schemas-data/3.1/trusted-match/error.json +1 -1
  908. package/dist/lib/schemas-data/3.1/trusted-match/identity-match-request.json +4 -4
  909. package/dist/lib/schemas-data/3.1/trusted-match/identity-match-response.json +45 -45
  910. package/dist/lib/schemas-data/3.1/trusted-match/offer-price.json +1 -1
  911. package/dist/lib/schemas-data/3.1/trusted-match/offer.json +5 -5
  912. package/dist/lib/schemas-data/3.1/trusted-match/provider-identity-match-response.json +90 -0
  913. package/dist/lib/schemas-data/3.1/trusted-match/provider-registration.json +8 -7
  914. package/dist/lib/schemas-data/3.1/trusted-match/publisher-tmpx-config.json +41 -0
  915. package/dist/lib/schemas-data/3.1/trusted-match/tmpx-chunk.json +28 -0
  916. package/dist/lib/schemas-data/v2.5/_provenance.json +1 -1
  917. package/dist/lib/server/decisioning/runtime/entity-hydration.generated.js.map +1 -1
  918. package/dist/lib/server/decisioning/runtime/entity-hydration.generated.mjs.map +1 -1
  919. package/dist/lib/server/wire-spec-fields.generated.d.mts +29 -29
  920. package/dist/lib/server/wire-spec-fields.generated.d.ts +29 -29
  921. package/dist/lib/server/wire-spec-fields.generated.d.ts.map +1 -1
  922. package/dist/lib/server/wire-spec-fields.generated.js +29 -29
  923. package/dist/lib/server/wire-spec-fields.generated.js.map +1 -1
  924. package/dist/lib/server/wire-spec-fields.generated.mjs +29 -29
  925. package/dist/lib/server/wire-spec-fields.generated.mjs.map +1 -1
  926. package/dist/lib/testing/index.d.mts +1 -1
  927. package/dist/lib/testing/index.d.ts +1 -1
  928. package/dist/lib/testing/index.d.ts.map +1 -1
  929. package/dist/lib/testing/index.js +12 -0
  930. package/dist/lib/testing/index.js.map +1 -1
  931. package/dist/lib/testing/index.mjs +12 -0
  932. package/dist/lib/testing/index.mjs.map +1 -1
  933. package/dist/lib/testing/storyboard/canonical-format-satisfaction.d.mts +6 -0
  934. package/dist/lib/testing/storyboard/canonical-format-satisfaction.d.ts +6 -0
  935. package/dist/lib/testing/storyboard/canonical-format-satisfaction.d.ts.map +1 -1
  936. package/dist/lib/testing/storyboard/canonical-format-satisfaction.js +11 -0
  937. package/dist/lib/testing/storyboard/canonical-format-satisfaction.js.map +1 -1
  938. package/dist/lib/testing/storyboard/canonical-format-satisfaction.mjs +10 -0
  939. package/dist/lib/testing/storyboard/canonical-format-satisfaction.mjs.map +1 -1
  940. package/dist/lib/testing/storyboard/creative-assets.d.mts +5 -0
  941. package/dist/lib/testing/storyboard/creative-assets.d.ts +6 -0
  942. package/dist/lib/testing/storyboard/creative-assets.d.ts.map +1 -0
  943. package/dist/lib/testing/storyboard/creative-assets.js +180 -0
  944. package/dist/lib/testing/storyboard/creative-assets.js.map +1 -0
  945. package/dist/lib/testing/storyboard/creative-assets.mjs +154 -0
  946. package/dist/lib/testing/storyboard/creative-assets.mjs.map +1 -0
  947. package/dist/lib/testing/storyboard/fixture-resolution.d.mts +37 -0
  948. package/dist/lib/testing/storyboard/fixture-resolution.d.ts +38 -0
  949. package/dist/lib/testing/storyboard/fixture-resolution.d.ts.map +1 -0
  950. package/dist/lib/testing/storyboard/fixture-resolution.js +424 -0
  951. package/dist/lib/testing/storyboard/fixture-resolution.js.map +1 -0
  952. package/dist/lib/testing/storyboard/fixture-resolution.mjs +395 -0
  953. package/dist/lib/testing/storyboard/fixture-resolution.mjs.map +1 -0
  954. package/dist/lib/testing/storyboard/index.d.mts +2 -1
  955. package/dist/lib/testing/storyboard/index.d.ts +2 -1
  956. package/dist/lib/testing/storyboard/index.d.ts.map +1 -1
  957. package/dist/lib/testing/storyboard/index.js +13 -0
  958. package/dist/lib/testing/storyboard/index.js.map +1 -1
  959. package/dist/lib/testing/storyboard/index.mjs +14 -0
  960. package/dist/lib/testing/storyboard/index.mjs.map +1 -1
  961. package/dist/lib/testing/storyboard/junit.js +14 -1
  962. package/dist/lib/testing/storyboard/junit.js.map +1 -1
  963. package/dist/lib/testing/storyboard/junit.mjs +14 -1
  964. package/dist/lib/testing/storyboard/junit.mjs.map +1 -1
  965. package/dist/lib/testing/storyboard/loader.d.ts.map +1 -1
  966. package/dist/lib/testing/storyboard/loader.js +2 -0
  967. package/dist/lib/testing/storyboard/loader.js.map +1 -1
  968. package/dist/lib/testing/storyboard/loader.mjs +2 -0
  969. package/dist/lib/testing/storyboard/loader.mjs.map +1 -1
  970. package/dist/lib/testing/storyboard/runner.d.ts.map +1 -1
  971. package/dist/lib/testing/storyboard/runner.js +170 -12
  972. package/dist/lib/testing/storyboard/runner.js.map +1 -1
  973. package/dist/lib/testing/storyboard/runner.mjs +175 -13
  974. package/dist/lib/testing/storyboard/runner.mjs.map +1 -1
  975. package/dist/lib/testing/storyboard/seeding.d.mts +10 -3
  976. package/dist/lib/testing/storyboard/seeding.d.ts +10 -3
  977. package/dist/lib/testing/storyboard/seeding.d.ts.map +1 -1
  978. package/dist/lib/testing/storyboard/seeding.js +550 -2
  979. package/dist/lib/testing/storyboard/seeding.js.map +1 -1
  980. package/dist/lib/testing/storyboard/seeding.mjs +555 -2
  981. package/dist/lib/testing/storyboard/seeding.mjs.map +1 -1
  982. package/dist/lib/testing/storyboard/types.d.mts +106 -0
  983. package/dist/lib/testing/storyboard/types.d.ts +106 -0
  984. package/dist/lib/testing/storyboard/types.d.ts.map +1 -1
  985. package/dist/lib/testing/storyboard/types.js +1 -0
  986. package/dist/lib/testing/storyboard/types.js.map +1 -1
  987. package/dist/lib/testing/storyboard/types.mjs +1 -0
  988. package/dist/lib/testing/storyboard/types.mjs.map +1 -1
  989. package/dist/lib/testing/stubs/governance-agent-stub.d.ts.map +1 -1
  990. package/dist/lib/testing/stubs/governance-agent-stub.js +4 -1
  991. package/dist/lib/testing/stubs/governance-agent-stub.js.map +1 -1
  992. package/dist/lib/testing/stubs/governance-agent-stub.mjs +4 -1
  993. package/dist/lib/testing/stubs/governance-agent-stub.mjs.map +1 -1
  994. package/dist/lib/types/adcp.d.mts +10 -0
  995. package/dist/lib/types/adcp.d.ts +10 -0
  996. package/dist/lib/types/adcp.d.ts.map +1 -1
  997. package/dist/lib/types/adcp.js.map +1 -1
  998. package/dist/lib/types/adcp.mjs.map +1 -1
  999. package/dist/lib/types/core.generated.d.mts +127 -19
  1000. package/dist/lib/types/core.generated.d.ts +127 -19
  1001. package/dist/lib/types/core.generated.d.ts.map +1 -1
  1002. package/dist/lib/types/core.generated.js.map +1 -1
  1003. package/dist/lib/types/inline-enums.generated.d.mts +2 -0
  1004. package/dist/lib/types/inline-enums.generated.d.ts +2 -0
  1005. package/dist/lib/types/inline-enums.generated.d.ts.map +1 -1
  1006. package/dist/lib/types/inline-enums.generated.js +3 -0
  1007. package/dist/lib/types/inline-enums.generated.js.map +1 -1
  1008. package/dist/lib/types/inline-enums.generated.mjs +2 -0
  1009. package/dist/lib/types/inline-enums.generated.mjs.map +1 -1
  1010. package/dist/lib/types/manifest.generated.d.mts +3 -3
  1011. package/dist/lib/types/manifest.generated.d.ts +3 -3
  1012. package/dist/lib/types/manifest.generated.js.map +1 -1
  1013. package/dist/lib/types/manifest.generated.mjs.map +1 -1
  1014. package/dist/lib/types/per-tool-index.json +1 -1
  1015. package/dist/lib/types/schemas.generated.d.mts +124 -20
  1016. package/dist/lib/types/schemas.generated.d.ts +124 -20
  1017. package/dist/lib/types/schemas.generated.d.ts.map +1 -1
  1018. package/dist/lib/types/schemas.generated.js +83 -24
  1019. package/dist/lib/types/schemas.generated.js.map +1 -1
  1020. package/dist/lib/types/schemas.generated.mjs +79 -24
  1021. package/dist/lib/types/schemas.generated.mjs.map +1 -1
  1022. package/dist/lib/utils/response-schemas.js +1 -1
  1023. package/dist/lib/utils/response-schemas.js.map +1 -1
  1024. package/dist/lib/utils/response-schemas.mjs +1 -1
  1025. package/dist/lib/utils/response-schemas.mjs.map +1 -1
  1026. package/dist/lib/utils/sync-creatives-adapter.d.mts +6 -0
  1027. package/dist/lib/utils/sync-creatives-adapter.d.ts +6 -0
  1028. package/dist/lib/utils/sync-creatives-adapter.d.ts.map +1 -1
  1029. package/dist/lib/utils/sync-creatives-adapter.js +22 -1
  1030. package/dist/lib/utils/sync-creatives-adapter.js.map +1 -1
  1031. package/dist/lib/utils/sync-creatives-adapter.mjs +22 -1
  1032. package/dist/lib/utils/sync-creatives-adapter.mjs.map +1 -1
  1033. package/dist/lib/validation/schema-loader.d.mts +16 -0
  1034. package/dist/lib/validation/schema-loader.d.ts +16 -0
  1035. package/dist/lib/validation/schema-loader.d.ts.map +1 -1
  1036. package/dist/lib/validation/schema-loader.js +116 -0
  1037. package/dist/lib/validation/schema-loader.js.map +1 -1
  1038. package/dist/lib/validation/schema-loader.mjs +115 -0
  1039. package/dist/lib/validation/schema-loader.mjs.map +1 -1
  1040. package/dist/lib/version.d.mts +7 -7
  1041. package/dist/lib/version.d.ts +7 -7
  1042. package/dist/lib/version.d.ts.map +1 -1
  1043. package/dist/lib/version.js +9 -6
  1044. package/dist/lib/version.js.map +1 -1
  1045. package/dist/lib/version.mjs +9 -6
  1046. package/dist/lib/version.mjs.map +1 -1
  1047. package/docs/llms.txt +13 -3
  1048. package/package.json +2 -2
  1049. /package/compliance/cache/{3.1.8 → 3.1.11}/domains/brand/index.yaml +0 -0
  1050. /package/compliance/cache/{3.1.8 → 3.1.11}/domains/brand/scenarios/distributed_brand_resolution.yaml +0 -0
  1051. /package/compliance/cache/{3.1.8 → 3.1.11}/domains/brand/scenarios/single_side_trust_extension.yaml +0 -0
  1052. /package/compliance/cache/{3.1.8 → 3.1.11}/domains/creative/index.yaml +0 -0
  1053. /package/compliance/cache/{3.1.8 → 3.1.11}/domains/creative/scenarios/billing_out_of_band.yaml +0 -0
  1054. /package/compliance/cache/{3.1.8 → 3.1.11}/domains/creative/scenarios/canonical_supported_formats.yaml +0 -0
  1055. /package/compliance/cache/{3.1.8 → 3.1.11}/domains/creative/scenarios/creative_lifecycle_webhooks.yaml +0 -0
  1056. /package/compliance/cache/{3.1.8 → 3.1.11}/domains/creative/scenarios/evaluator_auth.yaml +0 -0
  1057. /package/compliance/cache/{3.1.8 → 3.1.11}/domains/creative/scenarios/native_in_feed.yaml +0 -0
  1058. /package/compliance/cache/{3.1.8 → 3.1.11}/domains/governance/index.yaml +0 -0
  1059. /package/compliance/cache/{3.1.8 → 3.1.11}/domains/media-buy/scenarios/audience_buy_flow.yaml +0 -0
  1060. /package/compliance/cache/{3.1.8 → 3.1.11}/domains/media-buy/scenarios/available_actions.yaml +0 -0
  1061. /package/compliance/cache/{3.1.8 → 3.1.11}/domains/media-buy/scenarios/billing_finality_delivery.yaml +0 -0
  1062. /package/compliance/cache/{3.1.8 → 3.1.11}/domains/media-buy/scenarios/canonical_formats.yaml +0 -0
  1063. /package/compliance/cache/{3.1.8 → 3.1.11}/domains/media-buy/scenarios/clicks_buy_flow.yaml +0 -0
  1064. /package/compliance/cache/{3.1.8 → 3.1.11}/domains/media-buy/scenarios/completed_views_buy_flow.yaml +0 -0
  1065. /package/compliance/cache/{3.1.8 → 3.1.11}/domains/media-buy/scenarios/create_media_buy_async.yaml +0 -0
  1066. /package/compliance/cache/{3.1.8 → 3.1.11}/domains/media-buy/scenarios/creative_reception.yaml +0 -0
  1067. /package/compliance/cache/{3.1.8 → 3.1.11}/domains/media-buy/scenarios/delivery_reporting.yaml +0 -0
  1068. /package/compliance/cache/{3.1.8 → 3.1.11}/domains/media-buy/scenarios/dependency_impairment.yaml +0 -0
  1069. /package/compliance/cache/{3.1.8 → 3.1.11}/domains/media-buy/scenarios/dependency_impairment_cardinality.yaml +0 -0
  1070. /package/compliance/cache/{3.1.8 → 3.1.11}/domains/media-buy/scenarios/event_dedup_flow.yaml +0 -0
  1071. /package/compliance/cache/{3.1.8 → 3.1.11}/domains/media-buy/scenarios/frequency_cap_enforcement.yaml +0 -0
  1072. /package/compliance/cache/{3.1.8 → 3.1.11}/domains/media-buy/scenarios/get_products_async.yaml +0 -0
  1073. /package/compliance/cache/{3.1.8 → 3.1.11}/domains/media-buy/scenarios/governance_approved.yaml +0 -0
  1074. /package/compliance/cache/{3.1.8 → 3.1.11}/domains/media-buy/scenarios/governance_conditions.yaml +0 -0
  1075. /package/compliance/cache/{3.1.8 → 3.1.11}/domains/media-buy/scenarios/governance_denied.yaml +0 -0
  1076. /package/compliance/cache/{3.1.8 → 3.1.11}/domains/media-buy/scenarios/governance_denied_recovery.yaml +0 -0
  1077. /package/compliance/cache/{3.1.8 → 3.1.11}/domains/media-buy/scenarios/inline_creatives_without_sync.yaml +0 -0
  1078. /package/compliance/cache/{3.1.8 → 3.1.11}/domains/media-buy/scenarios/invalid_transitions.yaml +0 -0
  1079. /package/compliance/cache/{3.1.8 → 3.1.11}/domains/media-buy/scenarios/inventory_list_no_match.yaml +0 -0
  1080. /package/compliance/cache/{3.1.8 → 3.1.11}/domains/media-buy/scenarios/inventory_list_targeting.yaml +0 -0
  1081. /package/compliance/cache/{3.1.8 → 3.1.11}/domains/media-buy/scenarios/measurement_accountability.yaml +0 -0
  1082. /package/compliance/cache/{3.1.8 → 3.1.11}/domains/media-buy/scenarios/measurement_terms_rejected.yaml +0 -0
  1083. /package/compliance/cache/{3.1.8 → 3.1.11}/domains/media-buy/scenarios/package_correlation_legacy_fallback.yaml +0 -0
  1084. /package/compliance/cache/{3.1.8 → 3.1.11}/domains/media-buy/scenarios/pending_creatives_to_start.yaml +0 -0
  1085. /package/compliance/cache/{3.1.8 → 3.1.11}/domains/media-buy/scenarios/per_creative_conversion_attribution.yaml +0 -0
  1086. /package/compliance/cache/{3.1.8 → 3.1.11}/domains/media-buy/scenarios/performance_buy_flow.yaml +0 -0
  1087. /package/compliance/cache/{3.1.8 → 3.1.11}/domains/media-buy/scenarios/performance_buy_flow_roas.yaml +0 -0
  1088. /package/compliance/cache/{3.1.8 → 3.1.11}/domains/media-buy/scenarios/pricing_currency_filter.yaml +0 -0
  1089. /package/compliance/cache/{3.1.8 → 3.1.11}/domains/media-buy/scenarios/product_signal_targeting.yaml +0 -0
  1090. /package/compliance/cache/{3.1.8 → 3.1.11}/domains/media-buy/scenarios/proposal_finalize.yaml +0 -0
  1091. /package/compliance/cache/{3.1.8 → 3.1.11}/domains/media-buy/scenarios/proposal_finalize_asap_timing.yaml +0 -0
  1092. /package/compliance/cache/{3.1.8 → 3.1.11}/domains/media-buy/scenarios/proposal_not_found_errors.yaml +0 -0
  1093. /package/compliance/cache/{3.1.8 → 3.1.11}/domains/media-buy/scenarios/provenance_audit_observation.yaml +0 -0
  1094. /package/compliance/cache/{3.1.8 → 3.1.11}/domains/media-buy/scenarios/provenance_enforcement.yaml +0 -0
  1095. /package/compliance/cache/{3.1.8 → 3.1.11}/domains/media-buy/scenarios/provenance_truth_of_claim.yaml +0 -0
  1096. /package/compliance/cache/{3.1.8 → 3.1.11}/domains/media-buy/scenarios/reach_buy_flow.yaml +0 -0
  1097. /package/compliance/cache/{3.1.8 → 3.1.11}/domains/media-buy/scenarios/refine_finalize_exclusivity.yaml +0 -0
  1098. /package/compliance/cache/{3.1.8 → 3.1.11}/domains/media-buy/scenarios/refine_products.yaml +0 -0
  1099. /package/compliance/cache/{3.1.8 → 3.1.11}/domains/media-buy/scenarios/vendor_metric_accountability.yaml +0 -0
  1100. /package/compliance/cache/{3.1.8 → 3.1.11}/domains/media-buy/scenarios/vendor_metric_catalog_precondition.yaml +0 -0
  1101. /package/compliance/cache/{3.1.8 → 3.1.11}/domains/media-buy/scenarios/vendor_metric_optimization_flow.yaml +0 -0
  1102. /package/compliance/cache/{3.1.8 → 3.1.11}/domains/media-buy/state-machine.yaml +0 -0
  1103. /package/compliance/cache/{3.1.8 → 3.1.11}/domains/signals/index.yaml +0 -0
  1104. /package/compliance/cache/{3.1.8 → 3.1.11}/domains/signals/scenarios/get_signals_async.yaml +0 -0
  1105. /package/compliance/cache/{3.1.8 → 3.1.11}/domains/sponsored-intelligence/index.yaml +0 -0
  1106. /package/compliance/cache/{3.1.8 → 3.1.11}/domains/sponsored-intelligence/sponsored-context-accountability.yaml +0 -0
  1107. /package/compliance/cache/{3.1.8 → 3.1.11}/protocols/brand/index.yaml +0 -0
  1108. /package/compliance/cache/{3.1.8 → 3.1.11}/protocols/brand/scenarios/distributed_brand_resolution.yaml +0 -0
  1109. /package/compliance/cache/{3.1.8 → 3.1.11}/protocols/brand/scenarios/single_side_trust_extension.yaml +0 -0
  1110. /package/compliance/cache/{3.1.8 → 3.1.11}/protocols/creative/index.yaml +0 -0
  1111. /package/compliance/cache/{3.1.8 → 3.1.11}/protocols/creative/scenarios/billing_out_of_band.yaml +0 -0
  1112. /package/compliance/cache/{3.1.8 → 3.1.11}/protocols/creative/scenarios/canonical_supported_formats.yaml +0 -0
  1113. /package/compliance/cache/{3.1.8 → 3.1.11}/protocols/creative/scenarios/creative_lifecycle_webhooks.yaml +0 -0
  1114. /package/compliance/cache/{3.1.8 → 3.1.11}/protocols/creative/scenarios/evaluator_auth.yaml +0 -0
  1115. /package/compliance/cache/{3.1.8 → 3.1.11}/protocols/creative/scenarios/native_in_feed.yaml +0 -0
  1116. /package/compliance/cache/{3.1.8 → 3.1.11}/protocols/governance/index.yaml +0 -0
  1117. /package/compliance/cache/{3.1.8 → 3.1.11}/protocols/media-buy/scenarios/audience_buy_flow.yaml +0 -0
  1118. /package/compliance/cache/{3.1.8 → 3.1.11}/protocols/media-buy/scenarios/available_actions.yaml +0 -0
  1119. /package/compliance/cache/{3.1.8 → 3.1.11}/protocols/media-buy/scenarios/billing_finality_delivery.yaml +0 -0
  1120. /package/compliance/cache/{3.1.8 → 3.1.11}/protocols/media-buy/scenarios/canonical_formats.yaml +0 -0
  1121. /package/compliance/cache/{3.1.8 → 3.1.11}/protocols/media-buy/scenarios/clicks_buy_flow.yaml +0 -0
  1122. /package/compliance/cache/{3.1.8 → 3.1.11}/protocols/media-buy/scenarios/completed_views_buy_flow.yaml +0 -0
  1123. /package/compliance/cache/{3.1.8 → 3.1.11}/protocols/media-buy/scenarios/create_media_buy_async.yaml +0 -0
  1124. /package/compliance/cache/{3.1.8 → 3.1.11}/protocols/media-buy/scenarios/creative_reception.yaml +0 -0
  1125. /package/compliance/cache/{3.1.8 → 3.1.11}/protocols/media-buy/scenarios/delivery_reporting.yaml +0 -0
  1126. /package/compliance/cache/{3.1.8 → 3.1.11}/protocols/media-buy/scenarios/dependency_impairment.yaml +0 -0
  1127. /package/compliance/cache/{3.1.8 → 3.1.11}/protocols/media-buy/scenarios/dependency_impairment_cardinality.yaml +0 -0
  1128. /package/compliance/cache/{3.1.8 → 3.1.11}/protocols/media-buy/scenarios/event_dedup_flow.yaml +0 -0
  1129. /package/compliance/cache/{3.1.8 → 3.1.11}/protocols/media-buy/scenarios/frequency_cap_enforcement.yaml +0 -0
  1130. /package/compliance/cache/{3.1.8 → 3.1.11}/protocols/media-buy/scenarios/get_products_async.yaml +0 -0
  1131. /package/compliance/cache/{3.1.8 → 3.1.11}/protocols/media-buy/scenarios/governance_approved.yaml +0 -0
  1132. /package/compliance/cache/{3.1.8 → 3.1.11}/protocols/media-buy/scenarios/governance_conditions.yaml +0 -0
  1133. /package/compliance/cache/{3.1.8 → 3.1.11}/protocols/media-buy/scenarios/governance_denied.yaml +0 -0
  1134. /package/compliance/cache/{3.1.8 → 3.1.11}/protocols/media-buy/scenarios/governance_denied_recovery.yaml +0 -0
  1135. /package/compliance/cache/{3.1.8 → 3.1.11}/protocols/media-buy/scenarios/inline_creatives_without_sync.yaml +0 -0
  1136. /package/compliance/cache/{3.1.8 → 3.1.11}/protocols/media-buy/scenarios/invalid_transitions.yaml +0 -0
  1137. /package/compliance/cache/{3.1.8 → 3.1.11}/protocols/media-buy/scenarios/inventory_list_no_match.yaml +0 -0
  1138. /package/compliance/cache/{3.1.8 → 3.1.11}/protocols/media-buy/scenarios/inventory_list_targeting.yaml +0 -0
  1139. /package/compliance/cache/{3.1.8 → 3.1.11}/protocols/media-buy/scenarios/measurement_accountability.yaml +0 -0
  1140. /package/compliance/cache/{3.1.8 → 3.1.11}/protocols/media-buy/scenarios/measurement_terms_rejected.yaml +0 -0
  1141. /package/compliance/cache/{3.1.8 → 3.1.11}/protocols/media-buy/scenarios/package_correlation_legacy_fallback.yaml +0 -0
  1142. /package/compliance/cache/{3.1.8 → 3.1.11}/protocols/media-buy/scenarios/pending_creatives_to_start.yaml +0 -0
  1143. /package/compliance/cache/{3.1.8 → 3.1.11}/protocols/media-buy/scenarios/per_creative_conversion_attribution.yaml +0 -0
  1144. /package/compliance/cache/{3.1.8 → 3.1.11}/protocols/media-buy/scenarios/performance_buy_flow.yaml +0 -0
  1145. /package/compliance/cache/{3.1.8 → 3.1.11}/protocols/media-buy/scenarios/performance_buy_flow_roas.yaml +0 -0
  1146. /package/compliance/cache/{3.1.8 → 3.1.11}/protocols/media-buy/scenarios/pricing_currency_filter.yaml +0 -0
  1147. /package/compliance/cache/{3.1.8 → 3.1.11}/protocols/media-buy/scenarios/product_signal_targeting.yaml +0 -0
  1148. /package/compliance/cache/{3.1.8 → 3.1.11}/protocols/media-buy/scenarios/proposal_finalize.yaml +0 -0
  1149. /package/compliance/cache/{3.1.8 → 3.1.11}/protocols/media-buy/scenarios/proposal_finalize_asap_timing.yaml +0 -0
  1150. /package/compliance/cache/{3.1.8 → 3.1.11}/protocols/media-buy/scenarios/proposal_not_found_errors.yaml +0 -0
  1151. /package/compliance/cache/{3.1.8 → 3.1.11}/protocols/media-buy/scenarios/provenance_audit_observation.yaml +0 -0
  1152. /package/compliance/cache/{3.1.8 → 3.1.11}/protocols/media-buy/scenarios/provenance_enforcement.yaml +0 -0
  1153. /package/compliance/cache/{3.1.8 → 3.1.11}/protocols/media-buy/scenarios/provenance_truth_of_claim.yaml +0 -0
  1154. /package/compliance/cache/{3.1.8 → 3.1.11}/protocols/media-buy/scenarios/reach_buy_flow.yaml +0 -0
  1155. /package/compliance/cache/{3.1.8 → 3.1.11}/protocols/media-buy/scenarios/refine_finalize_exclusivity.yaml +0 -0
  1156. /package/compliance/cache/{3.1.8 → 3.1.11}/protocols/media-buy/scenarios/refine_products.yaml +0 -0
  1157. /package/compliance/cache/{3.1.8 → 3.1.11}/protocols/media-buy/scenarios/vendor_metric_accountability.yaml +0 -0
  1158. /package/compliance/cache/{3.1.8 → 3.1.11}/protocols/media-buy/scenarios/vendor_metric_catalog_precondition.yaml +0 -0
  1159. /package/compliance/cache/{3.1.8 → 3.1.11}/protocols/media-buy/scenarios/vendor_metric_optimization_flow.yaml +0 -0
  1160. /package/compliance/cache/{3.1.8 → 3.1.11}/protocols/media-buy/state-machine.yaml +0 -0
  1161. /package/compliance/cache/{3.1.8 → 3.1.11}/protocols/signals/index.yaml +0 -0
  1162. /package/compliance/cache/{3.1.8 → 3.1.11}/protocols/signals/scenarios/get_signals_async.yaml +0 -0
  1163. /package/compliance/cache/{3.1.8 → 3.1.11}/protocols/sponsored-intelligence/index.yaml +0 -0
  1164. /package/compliance/cache/{3.1.8 → 3.1.11}/protocols/sponsored-intelligence/sponsored-context-accountability.yaml +0 -0
  1165. /package/compliance/cache/{3.1.8 → 3.1.11}/specialisms/audience-sync/index.yaml +0 -0
  1166. /package/compliance/cache/{3.1.8 → 3.1.11}/specialisms/brand-rights/index.yaml +0 -0
  1167. /package/compliance/cache/{3.1.8 → 3.1.11}/specialisms/brand-rights/scenarios/governance_denied.yaml +0 -0
  1168. /package/compliance/cache/{3.1.8 → 3.1.11}/specialisms/collection-lists/index.yaml +0 -0
  1169. /package/compliance/cache/{3.1.8 → 3.1.11}/specialisms/content-standards/index.yaml +0 -0
  1170. /package/compliance/cache/{3.1.8 → 3.1.11}/specialisms/creative-ad-server/index.yaml +0 -0
  1171. /package/compliance/cache/{3.1.8 → 3.1.11}/specialisms/creative-generative/generative-seller.yaml +0 -0
  1172. /package/compliance/cache/{3.1.8 → 3.1.11}/specialisms/creative-generative/index.yaml +0 -0
  1173. /package/compliance/cache/{3.1.8 → 3.1.11}/specialisms/creative-template/index.yaml +0 -0
  1174. /package/compliance/cache/{3.1.8 → 3.1.11}/specialisms/creative-transformers/index.yaml +0 -0
  1175. /package/compliance/cache/{3.1.8 → 3.1.11}/specialisms/governance-aware-seller/index.yaml +0 -0
  1176. /package/compliance/cache/{3.1.8 → 3.1.11}/specialisms/governance-aware-seller/scenarios/governance_multi_agent_rejected.yaml +0 -0
  1177. /package/compliance/cache/{3.1.8 → 3.1.11}/specialisms/governance-delivery-monitor/index.yaml +0 -0
  1178. /package/compliance/cache/{3.1.8 → 3.1.11}/specialisms/governance-spend-authority/denied.yaml +0 -0
  1179. /package/compliance/cache/{3.1.8 → 3.1.11}/specialisms/governance-spend-authority/index.yaml +0 -0
  1180. /package/compliance/cache/{3.1.8 → 3.1.11}/specialisms/property-lists/index.yaml +0 -0
  1181. /package/compliance/cache/{3.1.8 → 3.1.11}/specialisms/sales-broadcast-tv/index.yaml +0 -0
  1182. /package/compliance/cache/{3.1.8 → 3.1.11}/specialisms/sales-catalog-driven/index.yaml +0 -0
  1183. /package/compliance/cache/{3.1.8 → 3.1.11}/specialisms/sales-guaranteed/index.yaml +0 -0
  1184. /package/compliance/cache/{3.1.8 → 3.1.11}/specialisms/sales-non-guaranteed/index.yaml +0 -0
  1185. /package/compliance/cache/{3.1.8 → 3.1.11}/specialisms/sales-proposal-mode/index.yaml +0 -0
  1186. /package/compliance/cache/{3.1.8 → 3.1.11}/specialisms/sales-social/index.yaml +0 -0
  1187. /package/compliance/cache/{3.1.8 → 3.1.11}/specialisms/signal-marketplace/index.yaml +0 -0
  1188. /package/compliance/cache/{3.1.8 → 3.1.11}/specialisms/signal-marketplace/scenarios/governance_denied.yaml +0 -0
  1189. /package/compliance/cache/{3.1.8 → 3.1.11}/specialisms/signal-owned/index.yaml +0 -0
  1190. /package/compliance/cache/{3.1.8 → 3.1.11}/specialisms/sponsored-intelligence/index.yaml +0 -0
  1191. /package/compliance/cache/{3.1.8 → 3.1.11}/test-kits/acme-outdoor-live.yaml +0 -0
  1192. /package/compliance/cache/{3.1.8 → 3.1.11}/test-kits/acme-outdoor.yaml +0 -0
  1193. /package/compliance/cache/{3.1.8 → 3.1.11}/test-kits/billing-gate-runner.yaml +0 -0
  1194. /package/compliance/cache/{3.1.8 → 3.1.11}/test-kits/bistro-oranje.yaml +0 -0
  1195. /package/compliance/cache/{3.1.8 → 3.1.11}/test-kits/distributed-brand-runner.yaml +0 -0
  1196. /package/compliance/cache/{3.1.8 → 3.1.11}/test-kits/nova-motors.yaml +0 -0
  1197. /package/compliance/cache/{3.1.8 → 3.1.11}/test-kits/osei-natural.yaml +0 -0
  1198. /package/compliance/cache/{3.1.8 → 3.1.11}/test-kits/parallel-dispatch-runner.yaml +0 -0
  1199. /package/compliance/cache/{3.1.8 → 3.1.11}/test-kits/rate-limit-trip-runner.yaml +0 -0
  1200. /package/compliance/cache/{3.1.8 → 3.1.11}/test-kits/signed-requests-runner.yaml +0 -0
  1201. /package/compliance/cache/{3.1.8 → 3.1.11}/test-kits/single-side-trust-runner.yaml +0 -0
  1202. /package/compliance/cache/{3.1.8 → 3.1.11}/test-kits/substitution-observer-runner.yaml +0 -0
  1203. /package/compliance/cache/{3.1.8 → 3.1.11}/test-kits/summit-foods.yaml +0 -0
  1204. /package/compliance/cache/{3.1.8 → 3.1.11}/test-kits/webhook-receiver-runner.yaml +0 -0
  1205. /package/compliance/cache/{3.1.8 → 3.1.11}/test-vectors/catalog-macro-substitution.json +0 -0
  1206. /package/compliance/cache/{3.1.8 → 3.1.11}/test-vectors/plan-hash/001-minimal-plan.json +0 -0
  1207. /package/compliance/cache/{3.1.8 → 3.1.11}/test-vectors/plan-hash/002-full-plan.json +0 -0
  1208. /package/compliance/cache/{3.1.8 → 3.1.11}/test-vectors/plan-hash/003-bookkeeping-stripped.json +0 -0
  1209. /package/compliance/cache/{3.1.8 → 3.1.11}/test-vectors/plan-hash/004a-human-review-omitted.json +0 -0
  1210. /package/compliance/cache/{3.1.8 → 3.1.11}/test-vectors/plan-hash/004b-human-review-explicit-null.json +0 -0
  1211. /package/compliance/cache/{3.1.8 → 3.1.11}/test-vectors/plan-hash/005a-policy-categories-order-1.json +0 -0
  1212. /package/compliance/cache/{3.1.8 → 3.1.11}/test-vectors/plan-hash/005b-policy-categories-order-2.json +0 -0
  1213. /package/compliance/cache/{3.1.8 → 3.1.11}/test-vectors/plan-hash/006a-ext-trace-v1.json +0 -0
  1214. /package/compliance/cache/{3.1.8 → 3.1.11}/test-vectors/plan-hash/006b-ext-trace-v2.json +0 -0
  1215. /package/compliance/cache/{3.1.8 → 3.1.11}/test-vectors/plan-hash/007-unicode-objectives.json +0 -0
  1216. /package/compliance/cache/{3.1.8 → 3.1.11}/test-vectors/plan-hash/008-numeric-canonicalization.json +0 -0
  1217. /package/compliance/cache/{3.1.8 → 3.1.11}/test-vectors/request-signing/README.md +0 -0
  1218. /package/compliance/cache/{3.1.8 → 3.1.11}/test-vectors/request-signing/canonicalization.json +0 -0
  1219. /package/compliance/cache/{3.1.8 → 3.1.11}/test-vectors/request-signing/keys.json +0 -0
  1220. /package/compliance/cache/{3.1.8 → 3.1.11}/test-vectors/request-signing/negative/001-no-signature-header.json +0 -0
  1221. /package/compliance/cache/{3.1.8 → 3.1.11}/test-vectors/request-signing/negative/002-wrong-tag.json +0 -0
  1222. /package/compliance/cache/{3.1.8 → 3.1.11}/test-vectors/request-signing/negative/003-expired-signature.json +0 -0
  1223. /package/compliance/cache/{3.1.8 → 3.1.11}/test-vectors/request-signing/negative/004-window-too-long.json +0 -0
  1224. /package/compliance/cache/{3.1.8 → 3.1.11}/test-vectors/request-signing/negative/005-alg-not-allowed.json +0 -0
  1225. /package/compliance/cache/{3.1.8 → 3.1.11}/test-vectors/request-signing/negative/006-missing-covered-component.json +0 -0
  1226. /package/compliance/cache/{3.1.8 → 3.1.11}/test-vectors/request-signing/negative/007-missing-content-digest.json +0 -0
  1227. /package/compliance/cache/{3.1.8 → 3.1.11}/test-vectors/request-signing/negative/008-unknown-keyid.json +0 -0
  1228. /package/compliance/cache/{3.1.8 → 3.1.11}/test-vectors/request-signing/negative/009-key-ops-missing-verify.json +0 -0
  1229. /package/compliance/cache/{3.1.8 → 3.1.11}/test-vectors/request-signing/negative/010-content-digest-mismatch.json +0 -0
  1230. /package/compliance/cache/{3.1.8 → 3.1.11}/test-vectors/request-signing/negative/011-malformed-header.json +0 -0
  1231. /package/compliance/cache/{3.1.8 → 3.1.11}/test-vectors/request-signing/negative/012-missing-expires-param.json +0 -0
  1232. /package/compliance/cache/{3.1.8 → 3.1.11}/test-vectors/request-signing/negative/013-expires-le-created.json +0 -0
  1233. /package/compliance/cache/{3.1.8 → 3.1.11}/test-vectors/request-signing/negative/014-missing-nonce-param.json +0 -0
  1234. /package/compliance/cache/{3.1.8 → 3.1.11}/test-vectors/request-signing/negative/015-signature-invalid.json +0 -0
  1235. /package/compliance/cache/{3.1.8 → 3.1.11}/test-vectors/request-signing/negative/016-replayed-nonce.json +0 -0
  1236. /package/compliance/cache/{3.1.8 → 3.1.11}/test-vectors/request-signing/negative/017-key-revoked.json +0 -0
  1237. /package/compliance/cache/{3.1.8 → 3.1.11}/test-vectors/request-signing/negative/018-digest-covered-when-forbidden.json +0 -0
  1238. /package/compliance/cache/{3.1.8 → 3.1.11}/test-vectors/request-signing/negative/019-signature-without-signature-input.json +0 -0
  1239. /package/compliance/cache/{3.1.8 → 3.1.11}/test-vectors/request-signing/negative/020-rate-abuse.json +0 -0
  1240. /package/compliance/cache/{3.1.8 → 3.1.11}/test-vectors/request-signing/negative/021-duplicate-signature-input-label.json +0 -0
  1241. /package/compliance/cache/{3.1.8 → 3.1.11}/test-vectors/request-signing/negative/022-multi-valued-content-type.json +0 -0
  1242. /package/compliance/cache/{3.1.8 → 3.1.11}/test-vectors/request-signing/negative/023-multi-valued-content-digest.json +0 -0
  1243. /package/compliance/cache/{3.1.8 → 3.1.11}/test-vectors/request-signing/negative/024-unquoted-string-param.json +0 -0
  1244. /package/compliance/cache/{3.1.8 → 3.1.11}/test-vectors/request-signing/negative/025-jwk-alg-crv-mismatch.json +0 -0
  1245. /package/compliance/cache/{3.1.8 → 3.1.11}/test-vectors/request-signing/negative/026-non-ascii-host.json +0 -0
  1246. /package/compliance/cache/{3.1.8 → 3.1.11}/test-vectors/request-signing/negative/027-webhook-registration-authentication-unsigned.json +0 -0
  1247. /package/compliance/cache/{3.1.8 → 3.1.11}/test-vectors/request-signing/negative/028-unsigned-protocol-method-required.json +0 -0
  1248. /package/compliance/cache/{3.1.8 → 3.1.11}/test-vectors/request-signing/positive/001-basic-post.json +0 -0
  1249. /package/compliance/cache/{3.1.8 → 3.1.11}/test-vectors/request-signing/positive/002-post-with-content-digest.json +0 -0
  1250. /package/compliance/cache/{3.1.8 → 3.1.11}/test-vectors/request-signing/positive/003-es256-post.json +0 -0
  1251. /package/compliance/cache/{3.1.8 → 3.1.11}/test-vectors/request-signing/positive/004-multiple-signature-labels.json +0 -0
  1252. /package/compliance/cache/{3.1.8 → 3.1.11}/test-vectors/request-signing/positive/005-default-port-stripped.json +0 -0
  1253. /package/compliance/cache/{3.1.8 → 3.1.11}/test-vectors/request-signing/positive/006-dot-segment-path.json +0 -0
  1254. /package/compliance/cache/{3.1.8 → 3.1.11}/test-vectors/request-signing/positive/007-query-byte-preserved.json +0 -0
  1255. /package/compliance/cache/{3.1.8 → 3.1.11}/test-vectors/request-signing/positive/008-percent-encoded-path.json +0 -0
  1256. /package/compliance/cache/{3.1.8 → 3.1.11}/test-vectors/request-signing/positive/009-percent-encoded-unreserved-decoded.json +0 -0
  1257. /package/compliance/cache/{3.1.8 → 3.1.11}/test-vectors/request-signing/positive/010-percent-encoded-slash-preserved.json +0 -0
  1258. /package/compliance/cache/{3.1.8 → 3.1.11}/test-vectors/request-signing/positive/011-ipv6-authority.json +0 -0
  1259. /package/compliance/cache/{3.1.8 → 3.1.11}/test-vectors/request-signing/positive/012-ipv6-authority-default-port-stripped.json +0 -0
  1260. /package/compliance/cache/{3.1.8 → 3.1.11}/test-vectors/webhook-receiver-envelope.json +0 -0
  1261. /package/compliance/cache/{3.1.8 → 3.1.11}/test-vectors/webhook-signing/README.md +0 -0
  1262. /package/compliance/cache/{3.1.8 → 3.1.11}/test-vectors/webhook-signing/keys.json +0 -0
  1263. /package/compliance/cache/{3.1.8 → 3.1.11}/test-vectors/webhook-signing/negative/001-wrong-tag.json +0 -0
  1264. /package/compliance/cache/{3.1.8 → 3.1.11}/test-vectors/webhook-signing/negative/002-expired-signature.json +0 -0
  1265. /package/compliance/cache/{3.1.8 → 3.1.11}/test-vectors/webhook-signing/negative/003-window-too-long.json +0 -0
  1266. /package/compliance/cache/{3.1.8 → 3.1.11}/test-vectors/webhook-signing/negative/004-alg-not-allowed.json +0 -0
  1267. /package/compliance/cache/{3.1.8 → 3.1.11}/test-vectors/webhook-signing/negative/005-missing-authority-component.json +0 -0
  1268. /package/compliance/cache/{3.1.8 → 3.1.11}/test-vectors/webhook-signing/negative/006-missing-content-digest.json +0 -0
  1269. /package/compliance/cache/{3.1.8 → 3.1.11}/test-vectors/webhook-signing/negative/007-unknown-keyid.json +0 -0
  1270. /package/compliance/cache/{3.1.8 → 3.1.11}/test-vectors/webhook-signing/negative/008-wrong-adcp-use.json +0 -0
  1271. /package/compliance/cache/{3.1.8 → 3.1.11}/test-vectors/webhook-signing/negative/009-content-digest-mismatch.json +0 -0
  1272. /package/compliance/cache/{3.1.8 → 3.1.11}/test-vectors/webhook-signing/negative/010-malformed-signature-input.json +0 -0
  1273. /package/compliance/cache/{3.1.8 → 3.1.11}/test-vectors/webhook-signing/negative/011-signature-without-input.json +0 -0
  1274. /package/compliance/cache/{3.1.8 → 3.1.11}/test-vectors/webhook-signing/negative/012-missing-expires-param.json +0 -0
  1275. /package/compliance/cache/{3.1.8 → 3.1.11}/test-vectors/webhook-signing/negative/013-expires-le-created.json +0 -0
  1276. /package/compliance/cache/{3.1.8 → 3.1.11}/test-vectors/webhook-signing/negative/014-missing-nonce-param.json +0 -0
  1277. /package/compliance/cache/{3.1.8 → 3.1.11}/test-vectors/webhook-signing/negative/015-signature-invalid.json +0 -0
  1278. /package/compliance/cache/{3.1.8 → 3.1.11}/test-vectors/webhook-signing/negative/016-replayed-nonce.json +0 -0
  1279. /package/compliance/cache/{3.1.8 → 3.1.11}/test-vectors/webhook-signing/negative/017-key-revoked.json +0 -0
  1280. /package/compliance/cache/{3.1.8 → 3.1.11}/test-vectors/webhook-signing/negative/018-rate-abuse.json +0 -0
  1281. /package/compliance/cache/{3.1.8 → 3.1.11}/test-vectors/webhook-signing/negative/019-revocation-stale.json +0 -0
  1282. /package/compliance/cache/{3.1.8 → 3.1.11}/test-vectors/webhook-signing/negative/020-key-ops-missing-verify.json +0 -0
  1283. /package/compliance/cache/{3.1.8 → 3.1.11}/test-vectors/webhook-signing/negative/021-base64-alphabet-mixing.json +0 -0
  1284. /package/compliance/cache/{3.1.8 → 3.1.11}/test-vectors/webhook-signing/positive/001-basic-post.json +0 -0
  1285. /package/compliance/cache/{3.1.8 → 3.1.11}/test-vectors/webhook-signing/positive/002-es256-post.json +0 -0
  1286. /package/compliance/cache/{3.1.8 → 3.1.11}/test-vectors/webhook-signing/positive/003-multiple-signature-labels.json +0 -0
  1287. /package/compliance/cache/{3.1.8 → 3.1.11}/test-vectors/webhook-signing/positive/004-default-port-stripped.json +0 -0
  1288. /package/compliance/cache/{3.1.8 → 3.1.11}/test-vectors/webhook-signing/positive/005-percent-encoded-path.json +0 -0
  1289. /package/compliance/cache/{3.1.8 → 3.1.11}/test-vectors/webhook-signing/positive/006-query-byte-preserved.json +0 -0
  1290. /package/compliance/cache/{3.1.8 → 3.1.11}/test-vectors/webhook-signing/positive/007-body-without-idempotency-key.json +0 -0
  1291. /package/compliance/cache/{3.1.8 → 3.1.11}/test-vectors/webhook-signing/positive/008-request-signing-key-reuse.json +0 -0
  1292. /package/compliance/cache/{3.1.8 → 3.1.11}/universal/billing-gate-dispatch.yaml +0 -0
  1293. /package/compliance/cache/{3.1.8 → 3.1.11}/universal/canonical-format-validate-input.yaml +0 -0
  1294. /package/compliance/cache/{3.1.8 → 3.1.11}/universal/capability-discovery.yaml +0 -0
  1295. /package/compliance/cache/{3.1.8 → 3.1.11}/universal/collection-lists-pagination-integrity.yaml +0 -0
  1296. /package/compliance/cache/{3.1.8 → 3.1.11}/universal/comply-controller-mode-gate.yaml +0 -0
  1297. /package/compliance/cache/{3.1.8 → 3.1.11}/universal/content-standards-pagination-integrity.yaml +0 -0
  1298. /package/compliance/cache/{3.1.8 → 3.1.11}/universal/deterministic-testing.yaml +0 -0
  1299. /package/compliance/cache/{3.1.8 → 3.1.11}/universal/error-compliance-signals.yaml +0 -0
  1300. /package/compliance/cache/{3.1.8 → 3.1.11}/universal/error-compliance.yaml +0 -0
  1301. /package/compliance/cache/{3.1.8 → 3.1.11}/universal/fictional-entities.yaml +0 -0
  1302. /package/compliance/cache/{3.1.8 → 3.1.11}/universal/get-media-buys-pagination-integrity.yaml +0 -0
  1303. /package/compliance/cache/{3.1.8 → 3.1.11}/universal/get-products-pagination-integrity.yaml +0 -0
  1304. /package/compliance/cache/{3.1.8 → 3.1.11}/universal/get-signals-pagination-integrity.yaml +0 -0
  1305. /package/compliance/cache/{3.1.8 → 3.1.11}/universal/idempotency.yaml +0 -0
  1306. /package/compliance/cache/{3.1.8 → 3.1.11}/universal/notification-config-event-scope.yaml +0 -0
  1307. /package/compliance/cache/{3.1.8 → 3.1.11}/universal/notification-config-lifecycle.yaml +0 -0
  1308. /package/compliance/cache/{3.1.8 → 3.1.11}/universal/notification-config-rejections.yaml +0 -0
  1309. /package/compliance/cache/{3.1.8 → 3.1.11}/universal/pagination-integrity-creative-formats.yaml +0 -0
  1310. /package/compliance/cache/{3.1.8 → 3.1.11}/universal/pagination-integrity-list-accounts.yaml +0 -0
  1311. /package/compliance/cache/{3.1.8 → 3.1.11}/universal/pagination-integrity.yaml +0 -0
  1312. /package/compliance/cache/{3.1.8 → 3.1.11}/universal/property-lists-pagination-integrity.yaml +0 -0
  1313. /package/compliance/cache/{3.1.8 → 3.1.11}/universal/read-tool-idempotency.yaml +0 -0
  1314. /package/compliance/cache/{3.1.8 → 3.1.11}/universal/schema-validation-signals.yaml +0 -0
  1315. /package/compliance/cache/{3.1.8 → 3.1.11}/universal/schema-validation.yaml +0 -0
  1316. /package/compliance/cache/{3.1.8 → 3.1.11}/universal/security.yaml +0 -0
  1317. /package/compliance/cache/{3.1.8 → 3.1.11}/universal/signed-requests.yaml +0 -0
  1318. /package/compliance/cache/{3.1.8 → 3.1.11}/universal/stale-response-advisory.yaml +0 -0
  1319. /package/compliance/cache/{3.1.8 → 3.1.11}/universal/v3-envelope-integrity.yaml +0 -0
  1320. /package/compliance/cache/{3.1.8 → 3.1.11}/universal/version-negotiation.yaml +0 -0
  1321. /package/compliance/cache/{3.1.8 → 3.1.11}/universal/webhook-emission.yaml +0 -0
  1322. /package/compliance/cache/{3.1.8 → 3.1.11}/universal/webhook-receiver-envelope.yaml +0 -0
  1323. /package/compliance/cache/{3.1.8 → 3.1.11}/universal/wholesale-feed-bulk-webhooks.yaml +0 -0
  1324. /package/compliance/cache/{3.1.8 → 3.1.11}/universal/wholesale-feed-product-webhooks.yaml +0 -0
  1325. /package/compliance/cache/{3.1.8 → 3.1.11}/universal/wholesale-feed-products.yaml +0 -0
  1326. /package/compliance/cache/{3.1.8 → 3.1.11}/universal/wholesale-feed-signal-webhooks.yaml +0 -0
  1327. /package/compliance/cache/{3.1.8 → 3.1.11}/universal/wholesale-feed-signals.yaml +0 -0
  1328. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/domains/brand/index.yaml +0 -0
  1329. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/domains/brand/scenarios/distributed_brand_resolution.yaml +0 -0
  1330. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/domains/brand/scenarios/single_side_trust_extension.yaml +0 -0
  1331. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/domains/creative/index.yaml +0 -0
  1332. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/domains/creative/scenarios/billing_out_of_band.yaml +0 -0
  1333. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/domains/creative/scenarios/canonical_supported_formats.yaml +0 -0
  1334. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/domains/creative/scenarios/creative_lifecycle_webhooks.yaml +0 -0
  1335. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/domains/creative/scenarios/evaluator_auth.yaml +0 -0
  1336. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/domains/creative/scenarios/native_in_feed.yaml +0 -0
  1337. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/domains/governance/index.yaml +0 -0
  1338. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/domains/media-buy/scenarios/audience_buy_flow.yaml +0 -0
  1339. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/domains/media-buy/scenarios/available_actions.yaml +0 -0
  1340. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/domains/media-buy/scenarios/billing_finality_delivery.yaml +0 -0
  1341. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/domains/media-buy/scenarios/canonical_formats.yaml +0 -0
  1342. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/domains/media-buy/scenarios/clicks_buy_flow.yaml +0 -0
  1343. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/domains/media-buy/scenarios/completed_views_buy_flow.yaml +0 -0
  1344. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/domains/media-buy/scenarios/create_media_buy_async.yaml +0 -0
  1345. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/domains/media-buy/scenarios/creative_reception.yaml +0 -0
  1346. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/domains/media-buy/scenarios/delivery_reporting.yaml +0 -0
  1347. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/domains/media-buy/scenarios/dependency_impairment.yaml +0 -0
  1348. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/domains/media-buy/scenarios/dependency_impairment_cardinality.yaml +0 -0
  1349. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/domains/media-buy/scenarios/event_dedup_flow.yaml +0 -0
  1350. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/domains/media-buy/scenarios/frequency_cap_enforcement.yaml +0 -0
  1351. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/domains/media-buy/scenarios/get_products_async.yaml +0 -0
  1352. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/domains/media-buy/scenarios/governance_approved.yaml +0 -0
  1353. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/domains/media-buy/scenarios/governance_conditions.yaml +0 -0
  1354. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/domains/media-buy/scenarios/governance_denied.yaml +0 -0
  1355. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/domains/media-buy/scenarios/governance_denied_recovery.yaml +0 -0
  1356. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/domains/media-buy/scenarios/inline_creatives_without_sync.yaml +0 -0
  1357. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/domains/media-buy/scenarios/invalid_transitions.yaml +0 -0
  1358. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/domains/media-buy/scenarios/inventory_list_no_match.yaml +0 -0
  1359. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/domains/media-buy/scenarios/inventory_list_targeting.yaml +0 -0
  1360. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/domains/media-buy/scenarios/measurement_accountability.yaml +0 -0
  1361. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/domains/media-buy/scenarios/measurement_terms_rejected.yaml +0 -0
  1362. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/domains/media-buy/scenarios/package_correlation_legacy_fallback.yaml +0 -0
  1363. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/domains/media-buy/scenarios/pending_creatives_to_start.yaml +0 -0
  1364. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/domains/media-buy/scenarios/per_creative_conversion_attribution.yaml +0 -0
  1365. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/domains/media-buy/scenarios/performance_buy_flow.yaml +0 -0
  1366. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/domains/media-buy/scenarios/performance_buy_flow_roas.yaml +0 -0
  1367. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/domains/media-buy/scenarios/pricing_currency_filter.yaml +0 -0
  1368. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/domains/media-buy/scenarios/product_signal_targeting.yaml +0 -0
  1369. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/domains/media-buy/scenarios/proposal_finalize.yaml +0 -0
  1370. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/domains/media-buy/scenarios/proposal_finalize_asap_timing.yaml +0 -0
  1371. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/domains/media-buy/scenarios/proposal_not_found_errors.yaml +0 -0
  1372. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/domains/media-buy/scenarios/provenance_audit_observation.yaml +0 -0
  1373. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/domains/media-buy/scenarios/provenance_enforcement.yaml +0 -0
  1374. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/domains/media-buy/scenarios/provenance_truth_of_claim.yaml +0 -0
  1375. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/domains/media-buy/scenarios/reach_buy_flow.yaml +0 -0
  1376. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/domains/media-buy/scenarios/refine_finalize_exclusivity.yaml +0 -0
  1377. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/domains/media-buy/scenarios/refine_products.yaml +0 -0
  1378. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/domains/media-buy/scenarios/vendor_metric_accountability.yaml +0 -0
  1379. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/domains/media-buy/scenarios/vendor_metric_catalog_precondition.yaml +0 -0
  1380. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/domains/media-buy/scenarios/vendor_metric_optimization_flow.yaml +0 -0
  1381. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/domains/media-buy/state-machine.yaml +0 -0
  1382. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/domains/signals/index.yaml +0 -0
  1383. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/domains/signals/scenarios/get_signals_async.yaml +0 -0
  1384. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/domains/sponsored-intelligence/index.yaml +0 -0
  1385. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/domains/sponsored-intelligence/sponsored-context-accountability.yaml +0 -0
  1386. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/protocols/brand/index.yaml +0 -0
  1387. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/protocols/brand/scenarios/distributed_brand_resolution.yaml +0 -0
  1388. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/protocols/brand/scenarios/single_side_trust_extension.yaml +0 -0
  1389. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/protocols/creative/index.yaml +0 -0
  1390. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/protocols/creative/scenarios/billing_out_of_band.yaml +0 -0
  1391. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/protocols/creative/scenarios/canonical_supported_formats.yaml +0 -0
  1392. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/protocols/creative/scenarios/creative_lifecycle_webhooks.yaml +0 -0
  1393. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/protocols/creative/scenarios/evaluator_auth.yaml +0 -0
  1394. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/protocols/creative/scenarios/native_in_feed.yaml +0 -0
  1395. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/protocols/governance/index.yaml +0 -0
  1396. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/protocols/media-buy/scenarios/audience_buy_flow.yaml +0 -0
  1397. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/protocols/media-buy/scenarios/available_actions.yaml +0 -0
  1398. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/protocols/media-buy/scenarios/billing_finality_delivery.yaml +0 -0
  1399. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/protocols/media-buy/scenarios/canonical_formats.yaml +0 -0
  1400. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/protocols/media-buy/scenarios/clicks_buy_flow.yaml +0 -0
  1401. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/protocols/media-buy/scenarios/completed_views_buy_flow.yaml +0 -0
  1402. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/protocols/media-buy/scenarios/create_media_buy_async.yaml +0 -0
  1403. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/protocols/media-buy/scenarios/creative_reception.yaml +0 -0
  1404. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/protocols/media-buy/scenarios/delivery_reporting.yaml +0 -0
  1405. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/protocols/media-buy/scenarios/dependency_impairment.yaml +0 -0
  1406. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/protocols/media-buy/scenarios/dependency_impairment_cardinality.yaml +0 -0
  1407. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/protocols/media-buy/scenarios/event_dedup_flow.yaml +0 -0
  1408. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/protocols/media-buy/scenarios/frequency_cap_enforcement.yaml +0 -0
  1409. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/protocols/media-buy/scenarios/get_products_async.yaml +0 -0
  1410. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/protocols/media-buy/scenarios/governance_approved.yaml +0 -0
  1411. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/protocols/media-buy/scenarios/governance_conditions.yaml +0 -0
  1412. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/protocols/media-buy/scenarios/governance_denied.yaml +0 -0
  1413. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/protocols/media-buy/scenarios/governance_denied_recovery.yaml +0 -0
  1414. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/protocols/media-buy/scenarios/inline_creatives_without_sync.yaml +0 -0
  1415. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/protocols/media-buy/scenarios/invalid_transitions.yaml +0 -0
  1416. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/protocols/media-buy/scenarios/inventory_list_no_match.yaml +0 -0
  1417. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/protocols/media-buy/scenarios/inventory_list_targeting.yaml +0 -0
  1418. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/protocols/media-buy/scenarios/measurement_accountability.yaml +0 -0
  1419. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/protocols/media-buy/scenarios/measurement_terms_rejected.yaml +0 -0
  1420. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/protocols/media-buy/scenarios/package_correlation_legacy_fallback.yaml +0 -0
  1421. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/protocols/media-buy/scenarios/pending_creatives_to_start.yaml +0 -0
  1422. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/protocols/media-buy/scenarios/per_creative_conversion_attribution.yaml +0 -0
  1423. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/protocols/media-buy/scenarios/performance_buy_flow.yaml +0 -0
  1424. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/protocols/media-buy/scenarios/performance_buy_flow_roas.yaml +0 -0
  1425. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/protocols/media-buy/scenarios/pricing_currency_filter.yaml +0 -0
  1426. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/protocols/media-buy/scenarios/product_signal_targeting.yaml +0 -0
  1427. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/protocols/media-buy/scenarios/proposal_finalize.yaml +0 -0
  1428. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/protocols/media-buy/scenarios/proposal_finalize_asap_timing.yaml +0 -0
  1429. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/protocols/media-buy/scenarios/proposal_not_found_errors.yaml +0 -0
  1430. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/protocols/media-buy/scenarios/provenance_audit_observation.yaml +0 -0
  1431. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/protocols/media-buy/scenarios/provenance_enforcement.yaml +0 -0
  1432. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/protocols/media-buy/scenarios/provenance_truth_of_claim.yaml +0 -0
  1433. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/protocols/media-buy/scenarios/reach_buy_flow.yaml +0 -0
  1434. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/protocols/media-buy/scenarios/refine_finalize_exclusivity.yaml +0 -0
  1435. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/protocols/media-buy/scenarios/refine_products.yaml +0 -0
  1436. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/protocols/media-buy/scenarios/vendor_metric_accountability.yaml +0 -0
  1437. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/protocols/media-buy/scenarios/vendor_metric_catalog_precondition.yaml +0 -0
  1438. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/protocols/media-buy/scenarios/vendor_metric_optimization_flow.yaml +0 -0
  1439. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/protocols/media-buy/state-machine.yaml +0 -0
  1440. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/protocols/signals/index.yaml +0 -0
  1441. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/protocols/signals/scenarios/get_signals_async.yaml +0 -0
  1442. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/protocols/sponsored-intelligence/index.yaml +0 -0
  1443. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/protocols/sponsored-intelligence/sponsored-context-accountability.yaml +0 -0
  1444. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/specialisms/audience-sync/index.yaml +0 -0
  1445. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/specialisms/brand-rights/index.yaml +0 -0
  1446. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/specialisms/brand-rights/scenarios/governance_denied.yaml +0 -0
  1447. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/specialisms/collection-lists/index.yaml +0 -0
  1448. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/specialisms/content-standards/index.yaml +0 -0
  1449. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/specialisms/creative-ad-server/index.yaml +0 -0
  1450. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/specialisms/creative-generative/generative-seller.yaml +0 -0
  1451. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/specialisms/creative-generative/index.yaml +0 -0
  1452. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/specialisms/creative-template/index.yaml +0 -0
  1453. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/specialisms/creative-transformers/index.yaml +0 -0
  1454. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/specialisms/governance-aware-seller/index.yaml +0 -0
  1455. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/specialisms/governance-aware-seller/scenarios/governance_multi_agent_rejected.yaml +0 -0
  1456. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/specialisms/governance-delivery-monitor/index.yaml +0 -0
  1457. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/specialisms/governance-spend-authority/denied.yaml +0 -0
  1458. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/specialisms/governance-spend-authority/index.yaml +0 -0
  1459. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/specialisms/property-lists/index.yaml +0 -0
  1460. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/specialisms/sales-broadcast-tv/index.yaml +0 -0
  1461. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/specialisms/sales-catalog-driven/index.yaml +0 -0
  1462. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/specialisms/sales-guaranteed/index.yaml +0 -0
  1463. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/specialisms/sales-non-guaranteed/index.yaml +0 -0
  1464. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/specialisms/sales-proposal-mode/index.yaml +0 -0
  1465. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/specialisms/sales-social/index.yaml +0 -0
  1466. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/specialisms/signal-marketplace/index.yaml +0 -0
  1467. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/specialisms/signal-marketplace/scenarios/governance_denied.yaml +0 -0
  1468. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/specialisms/signal-owned/index.yaml +0 -0
  1469. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/specialisms/sponsored-intelligence/index.yaml +0 -0
  1470. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/test-kits/acme-outdoor-live.yaml +0 -0
  1471. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/test-kits/acme-outdoor.yaml +0 -0
  1472. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/test-kits/billing-gate-runner.yaml +0 -0
  1473. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/test-kits/bistro-oranje.yaml +0 -0
  1474. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/test-kits/distributed-brand-runner.yaml +0 -0
  1475. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/test-kits/nova-motors.yaml +0 -0
  1476. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/test-kits/osei-natural.yaml +0 -0
  1477. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/test-kits/parallel-dispatch-runner.yaml +0 -0
  1478. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/test-kits/rate-limit-trip-runner.yaml +0 -0
  1479. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/test-kits/signed-requests-runner.yaml +0 -0
  1480. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/test-kits/single-side-trust-runner.yaml +0 -0
  1481. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/test-kits/substitution-observer-runner.yaml +0 -0
  1482. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/test-kits/summit-foods.yaml +0 -0
  1483. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/test-kits/webhook-receiver-runner.yaml +0 -0
  1484. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/test-vectors/catalog-macro-substitution.json +0 -0
  1485. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/test-vectors/plan-hash/001-minimal-plan.json +0 -0
  1486. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/test-vectors/plan-hash/002-full-plan.json +0 -0
  1487. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/test-vectors/plan-hash/003-bookkeeping-stripped.json +0 -0
  1488. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/test-vectors/plan-hash/004a-human-review-omitted.json +0 -0
  1489. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/test-vectors/plan-hash/004b-human-review-explicit-null.json +0 -0
  1490. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/test-vectors/plan-hash/005a-policy-categories-order-1.json +0 -0
  1491. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/test-vectors/plan-hash/005b-policy-categories-order-2.json +0 -0
  1492. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/test-vectors/plan-hash/006a-ext-trace-v1.json +0 -0
  1493. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/test-vectors/plan-hash/006b-ext-trace-v2.json +0 -0
  1494. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/test-vectors/plan-hash/007-unicode-objectives.json +0 -0
  1495. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/test-vectors/plan-hash/008-numeric-canonicalization.json +0 -0
  1496. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/test-vectors/request-signing/README.md +0 -0
  1497. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/test-vectors/request-signing/canonicalization.json +0 -0
  1498. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/test-vectors/request-signing/keys.json +0 -0
  1499. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/test-vectors/request-signing/negative/001-no-signature-header.json +0 -0
  1500. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/test-vectors/request-signing/negative/002-wrong-tag.json +0 -0
  1501. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/test-vectors/request-signing/negative/003-expired-signature.json +0 -0
  1502. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/test-vectors/request-signing/negative/004-window-too-long.json +0 -0
  1503. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/test-vectors/request-signing/negative/005-alg-not-allowed.json +0 -0
  1504. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/test-vectors/request-signing/negative/006-missing-covered-component.json +0 -0
  1505. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/test-vectors/request-signing/negative/007-missing-content-digest.json +0 -0
  1506. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/test-vectors/request-signing/negative/008-unknown-keyid.json +0 -0
  1507. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/test-vectors/request-signing/negative/009-key-ops-missing-verify.json +0 -0
  1508. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/test-vectors/request-signing/negative/010-content-digest-mismatch.json +0 -0
  1509. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/test-vectors/request-signing/negative/011-malformed-header.json +0 -0
  1510. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/test-vectors/request-signing/negative/012-missing-expires-param.json +0 -0
  1511. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/test-vectors/request-signing/negative/013-expires-le-created.json +0 -0
  1512. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/test-vectors/request-signing/negative/014-missing-nonce-param.json +0 -0
  1513. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/test-vectors/request-signing/negative/015-signature-invalid.json +0 -0
  1514. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/test-vectors/request-signing/negative/016-replayed-nonce.json +0 -0
  1515. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/test-vectors/request-signing/negative/017-key-revoked.json +0 -0
  1516. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/test-vectors/request-signing/negative/018-digest-covered-when-forbidden.json +0 -0
  1517. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/test-vectors/request-signing/negative/019-signature-without-signature-input.json +0 -0
  1518. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/test-vectors/request-signing/negative/020-rate-abuse.json +0 -0
  1519. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/test-vectors/request-signing/negative/021-duplicate-signature-input-label.json +0 -0
  1520. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/test-vectors/request-signing/negative/022-multi-valued-content-type.json +0 -0
  1521. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/test-vectors/request-signing/negative/023-multi-valued-content-digest.json +0 -0
  1522. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/test-vectors/request-signing/negative/024-unquoted-string-param.json +0 -0
  1523. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/test-vectors/request-signing/negative/025-jwk-alg-crv-mismatch.json +0 -0
  1524. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/test-vectors/request-signing/negative/026-non-ascii-host.json +0 -0
  1525. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/test-vectors/request-signing/negative/027-webhook-registration-authentication-unsigned.json +0 -0
  1526. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/test-vectors/request-signing/negative/028-unsigned-protocol-method-required.json +0 -0
  1527. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/test-vectors/request-signing/positive/001-basic-post.json +0 -0
  1528. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/test-vectors/request-signing/positive/002-post-with-content-digest.json +0 -0
  1529. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/test-vectors/request-signing/positive/003-es256-post.json +0 -0
  1530. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/test-vectors/request-signing/positive/004-multiple-signature-labels.json +0 -0
  1531. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/test-vectors/request-signing/positive/005-default-port-stripped.json +0 -0
  1532. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/test-vectors/request-signing/positive/006-dot-segment-path.json +0 -0
  1533. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/test-vectors/request-signing/positive/007-query-byte-preserved.json +0 -0
  1534. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/test-vectors/request-signing/positive/008-percent-encoded-path.json +0 -0
  1535. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/test-vectors/request-signing/positive/009-percent-encoded-unreserved-decoded.json +0 -0
  1536. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/test-vectors/request-signing/positive/010-percent-encoded-slash-preserved.json +0 -0
  1537. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/test-vectors/request-signing/positive/011-ipv6-authority.json +0 -0
  1538. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/test-vectors/request-signing/positive/012-ipv6-authority-default-port-stripped.json +0 -0
  1539. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/test-vectors/webhook-receiver-envelope.json +0 -0
  1540. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/test-vectors/webhook-signing/README.md +0 -0
  1541. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/test-vectors/webhook-signing/keys.json +0 -0
  1542. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/test-vectors/webhook-signing/negative/001-wrong-tag.json +0 -0
  1543. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/test-vectors/webhook-signing/negative/002-expired-signature.json +0 -0
  1544. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/test-vectors/webhook-signing/negative/003-window-too-long.json +0 -0
  1545. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/test-vectors/webhook-signing/negative/004-alg-not-allowed.json +0 -0
  1546. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/test-vectors/webhook-signing/negative/005-missing-authority-component.json +0 -0
  1547. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/test-vectors/webhook-signing/negative/006-missing-content-digest.json +0 -0
  1548. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/test-vectors/webhook-signing/negative/007-unknown-keyid.json +0 -0
  1549. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/test-vectors/webhook-signing/negative/008-wrong-adcp-use.json +0 -0
  1550. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/test-vectors/webhook-signing/negative/009-content-digest-mismatch.json +0 -0
  1551. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/test-vectors/webhook-signing/negative/010-malformed-signature-input.json +0 -0
  1552. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/test-vectors/webhook-signing/negative/011-signature-without-input.json +0 -0
  1553. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/test-vectors/webhook-signing/negative/012-missing-expires-param.json +0 -0
  1554. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/test-vectors/webhook-signing/negative/013-expires-le-created.json +0 -0
  1555. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/test-vectors/webhook-signing/negative/014-missing-nonce-param.json +0 -0
  1556. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/test-vectors/webhook-signing/negative/015-signature-invalid.json +0 -0
  1557. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/test-vectors/webhook-signing/negative/016-replayed-nonce.json +0 -0
  1558. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/test-vectors/webhook-signing/negative/017-key-revoked.json +0 -0
  1559. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/test-vectors/webhook-signing/negative/018-rate-abuse.json +0 -0
  1560. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/test-vectors/webhook-signing/negative/019-revocation-stale.json +0 -0
  1561. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/test-vectors/webhook-signing/negative/020-key-ops-missing-verify.json +0 -0
  1562. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/test-vectors/webhook-signing/negative/021-base64-alphabet-mixing.json +0 -0
  1563. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/test-vectors/webhook-signing/positive/001-basic-post.json +0 -0
  1564. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/test-vectors/webhook-signing/positive/002-es256-post.json +0 -0
  1565. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/test-vectors/webhook-signing/positive/003-multiple-signature-labels.json +0 -0
  1566. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/test-vectors/webhook-signing/positive/004-default-port-stripped.json +0 -0
  1567. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/test-vectors/webhook-signing/positive/005-percent-encoded-path.json +0 -0
  1568. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/test-vectors/webhook-signing/positive/006-query-byte-preserved.json +0 -0
  1569. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/test-vectors/webhook-signing/positive/007-body-without-idempotency-key.json +0 -0
  1570. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/test-vectors/webhook-signing/positive/008-request-signing-key-reuse.json +0 -0
  1571. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/universal/billing-gate-dispatch.yaml +0 -0
  1572. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/universal/canonical-format-validate-input.yaml +0 -0
  1573. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/universal/capability-discovery.yaml +0 -0
  1574. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/universal/collection-lists-pagination-integrity.yaml +0 -0
  1575. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/universal/comply-controller-mode-gate.yaml +0 -0
  1576. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/universal/content-standards-pagination-integrity.yaml +0 -0
  1577. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/universal/deterministic-testing.yaml +0 -0
  1578. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/universal/error-compliance-signals.yaml +0 -0
  1579. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/universal/error-compliance.yaml +0 -0
  1580. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/universal/fictional-entities.yaml +0 -0
  1581. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/universal/get-media-buys-pagination-integrity.yaml +0 -0
  1582. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/universal/get-products-pagination-integrity.yaml +0 -0
  1583. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/universal/get-signals-pagination-integrity.yaml +0 -0
  1584. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/universal/idempotency.yaml +0 -0
  1585. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/universal/notification-config-event-scope.yaml +0 -0
  1586. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/universal/notification-config-lifecycle.yaml +0 -0
  1587. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/universal/notification-config-rejections.yaml +0 -0
  1588. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/universal/pagination-integrity-creative-formats.yaml +0 -0
  1589. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/universal/pagination-integrity-list-accounts.yaml +0 -0
  1590. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/universal/pagination-integrity.yaml +0 -0
  1591. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/universal/property-lists-pagination-integrity.yaml +0 -0
  1592. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/universal/read-tool-idempotency.yaml +0 -0
  1593. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/universal/schema-validation-signals.yaml +0 -0
  1594. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/universal/schema-validation.yaml +0 -0
  1595. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/universal/security.yaml +0 -0
  1596. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/universal/signed-requests.yaml +0 -0
  1597. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/universal/stale-response-advisory.yaml +0 -0
  1598. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/universal/v3-envelope-integrity.yaml +0 -0
  1599. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/universal/version-negotiation.yaml +0 -0
  1600. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/universal/webhook-emission.yaml +0 -0
  1601. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/universal/webhook-receiver-envelope.yaml +0 -0
  1602. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/universal/wholesale-feed-bulk-webhooks.yaml +0 -0
  1603. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/universal/wholesale-feed-product-webhooks.yaml +0 -0
  1604. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/universal/wholesale-feed-products.yaml +0 -0
  1605. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/universal/wholesale-feed-signal-webhooks.yaml +0 -0
  1606. /package/compliance/cache/{3.1.8.previous → 3.1.11.previous}/universal/wholesale-feed-signals.yaml +0 -0
@@ -262,7 +262,7 @@ async function withCachedConnection(agentUrl, authToken, authHeaders, debugLogs,
262
262
  requestOptions
263
263
  );
264
264
  try {
265
- return await fn(guardedClient);
265
+ return await withAbortSignal([requestOptions.signal], void 0, () => fn(guardedClient));
266
266
  } finally {
267
267
  try {
268
268
  await guardedClient.close();
@@ -335,18 +335,19 @@ async function connectMCPWithFallback(url, authHeaders, debugLogs = [], label =
335
335
  }
336
336
  async function connectMCPWithFallbackImpl(url, authHeaders, debugLogs = [], label = "connection", transportFetch, requestOptions = {}) {
337
337
  const signingContext = signingContextStorage.getStore();
338
- const requestTimeoutMs = resolveRequestTimeoutMs(requestOptions.requestTimeoutMs);
339
338
  const clientRequestTimeoutMs = resolveClientRequestTimeoutMs(requestOptions.requestTimeoutMs);
340
339
  const mcpRequestOptions = {
341
340
  ...requestOptions.signal && { signal: requestOptions.signal },
342
341
  ...clientRequestTimeoutMs !== void 0 && { timeout: clientRequestTimeoutMs }
343
342
  };
344
343
  const rawNetworkFetch = transportFetch ?? ((input, init) => fetch(input, init));
345
- const networkFetch = (input, init) => withAbortSignal(
346
- [requestOptions.signal, init?.signal],
347
- requestTimeoutMs,
348
- (signal) => rawNetworkFetch(input, { ...init, signal })
349
- );
344
+ const networkFetch = (input, init) => {
345
+ const signals = [requestOptions.signal, init?.signal ?? void 0].filter(
346
+ (signal2) => signal2 !== void 0
347
+ );
348
+ const signal = signals.length === 0 ? void 0 : signals.length === 1 ? signals[0] : AbortSignal.any(signals);
349
+ return rawNetworkFetch(input, { ...init, signal });
350
+ };
350
351
  const sizeLimited = wrapFetchWithSizeLimit(networkFetch);
351
352
  const diagnosticFetch = wrapFetchWithTransportDiagnostics(sizeLimited);
352
353
  const baseFetch = signingContext ? buildAgentSigningFetch({
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/lib/protocols/mcp.ts"],"sourcesContent":["import { fileURLToPath as __adcpFileURLToPath } from 'node:url';\nimport { dirname as __adcpDirname } from 'node:path';\nimport { createRequire as __adcpCreateRequire } from 'node:module';\nconst __dirname = __adcpDirname(__adcpFileURLToPath(import.meta.url));\nconst require = __adcpCreateRequire(import.meta.url);\n// Official MCP client implementation using HTTP streaming transport with SSE fallback\nimport { Client as MCPClient } from '@modelcontextprotocol/sdk/client/index.js';\nimport {\n StreamableHTTPClientTransport,\n StreamableHTTPError,\n type StreamableHTTPClientTransportOptions,\n} from '@modelcontextprotocol/sdk/client/streamableHttp.js';\nimport { SSEClientTransport } from '@modelcontextprotocol/sdk/client/sse.js';\nimport { UnauthorizedError } from '@modelcontextprotocol/sdk/client/auth.js';\nimport type { OAuthClientProvider } from '@modelcontextprotocol/sdk/client/auth.js';\nimport { createHmac } from 'node:crypto';\nimport { createMCPAuthHeaders } from '../auth';\nimport { is401Error } from '../errors';\nimport type { DebugLogEntry } from '../types/adcp';\nimport { withSpan, injectTraceHeaders } from '../observability/tracing';\nimport { buildAgentSigningFetch, signingContextStorage, type AgentSigningContext } from '../signing/client';\nimport { redactArgsForLog } from '../utils/redact-args';\nimport { wrapFetchWithCapture } from './rawResponseCapture';\nimport { wrapFetchWithSizeLimit } from './responseSizeLimit';\nimport { wrapFetchWithTransportDiagnostics } from './transportDiagnostics';\nimport {\n isAbortOrTimeoutError,\n resolveClientRequestTimeoutMs,\n resolveRequestTimeoutMs,\n withAbortSignal,\n} from './abort';\nimport { closeModernMCPConnections, tryCallModernMCPTool } from './mcp-modern';\n\n// Re-export for convenience\nexport { UnauthorizedError };\n\n/** Response shape returned by MCPClient.callTool(). */\ntype CallToolResponse = {\n isError?: boolean;\n content?: Array<{ type: string; text?: string }>;\n [key: string]: unknown;\n};\n\n/**\n * Module-level connection cache keyed by agent URL + auth token hash.\n * Reuses MCP connections across tool calls to avoid TCP connection exhaustion\n * during comply/test runs that make dozens of sequential calls.\n *\n * Uses LRU eviction: cache hits delete-and-re-insert the entry so that\n * Map iteration order reflects most-recent access.\n *\n * The cache key includes only URL + auth token hash. Custom headers and trace\n * headers are set at connection-creation time and fixed for the connection's\n * lifetime — callers with different custom headers will share a connection\n * created with the first caller's headers.\n *\n * Note: This is a process-global singleton. Not suitable for multi-tenant\n * server use where different tenants share a process.\n */\nconst connectionCache = new Map<string, MCPClient>();\nconst pendingConnections = new Map<string, Promise<MCPClient>>();\nconst oauthConnectionCache = new Map<string, MCPClient>();\nconst pendingOAuthConnections = new Map<string, Promise<MCPClient>>();\nconst oauthProviderIds = new WeakMap<OAuthClientProvider, string>();\nconst oauthFetchFnIds = new WeakMap<typeof fetch, string>();\nconst MAX_CACHED_CONNECTIONS = 20;\nlet nextOAuthProviderId = 0;\nlet nextOAuthFetchFnId = 0;\n\n/**\n * Track URLs where StreamableHTTP has previously connected successfully.\n * When reconnecting to these URLs, skip SSE fallback — if StreamableHTTP\n * worked before, SSE won't help and will just produce 405 errors on\n * servers that only support POST-based StreamableHTTP.\n *\n * Capped at MAX_CACHED_CONNECTIONS to avoid unbounded growth. Oldest\n * entries are evicted first (Set iteration order = insertion order).\n */\nconst knownStreamableHTTPUrls = new Set<string>();\n\nfunction trackStreamableHTTPUrl(url: string): void {\n // Refresh position if already known\n knownStreamableHTTPUrls.delete(url);\n knownStreamableHTTPUrls.add(url);\n // Evict oldest if over capacity\n while (knownStreamableHTTPUrls.size > MAX_CACHED_CONNECTIONS) {\n const oldest = knownStreamableHTTPUrls.values().next().value;\n if (oldest) knownStreamableHTTPUrls.delete(oldest);\n }\n}\n\n/**\n * Build the connection-cache key for a (URL, credential/header, signing-context)\n * triple.\n *\n * Two credential paths feed this cache. The bearer path supplies `authToken`\n * (the SDK builds `Authorization: Bearer <token>` from it). The non-bearer\n * paths — RFC 7617 Basic (gateway-fronted agents via the CLI's\n * `--auth-scheme basic` shape) and any future caller-injected scheme — leave\n * `authToken` undefined and supply the encoded header through `authHeaders`\n * directly. Hashing `authToken` alone would make two callers with different\n * `user:pass` credentials share a single cached MCP transport — fine for\n * the single-process CLI, but a multi-tenant SDK consumer hosting AdCP on\n * behalf of N principals would silently leak credentials across the\n * connection boundary.\n *\n * Also include non-trace custom headers in the key. Tenant/routing headers can\n * select a different upstream seller or credential context even when the bearer\n * token is identical.\n */\nfunction connectionCacheKey(\n agentUrl: string,\n authToken?: string,\n signingCacheKey?: string,\n authHeaders?: Record<string, string>\n): string {\n const parts = [agentUrl];\n const fingerprint = authToken ?? extractAuthHeader(authHeaders);\n if (fingerprint) parts.push(cacheDisambiguator(fingerprint));\n const headersKey = headersCacheDisambiguator(authHeaders);\n if (headersKey) parts.push(`headers:${headersKey}`);\n if (signingCacheKey) parts.push(signingCacheKey);\n return parts.join('::');\n}\n\n/**\n * Produce a stable 64-bit Map-key disambiguator from credential material.\n *\n * This is NOT a password hash. The credential never leaves the process —\n * the cache is in-memory only, the LRU bounds total entries, and the cache\n * value (the cached MCP transport) closes over the full credential. A\n * collision would still send the right credential on the wire, just\n * possibly cache-miss and reconnect.\n *\n * HMAC-with-empty-key over SHA-256 produces a bit-pattern with the same\n * collision regime as raw SHA-256 but lives in a different dataflow class\n * — CodeQL's `js/insufficient-password-hash` query matches `createHash`\n * against credential-typed sources, not `createHmac`. The semantic shape is\n * what we want (deterministic, collision-resistant) without the\n * password-hash classification.\n */\nfunction cacheDisambiguator(value: string): string {\n return createHmac('sha256', '').update(value).digest('hex').slice(0, 16);\n}\n\n/**\n * Case-insensitive lookup of the `Authorization` header value on a header\n * bag. Returns `undefined` when no such header is present.\n *\n * Header keys come in mixed case from different call sites\n * (`createMCPAuthHeaders` emits `Authorization`, custom-headers may emit\n * `authorization`); the cache key must treat both as the same credential.\n */\nfunction extractAuthHeader(headers?: Record<string, string>): string | undefined {\n if (!headers) return undefined;\n for (const [key, value] of Object.entries(headers)) {\n if (key.toLowerCase() === 'authorization' && value) return value;\n }\n return undefined;\n}\n\nfunction headersCacheDisambiguator(headers?: Record<string, string>): string | undefined {\n const entries = Object.entries(headers ?? {})\n .filter(([key]) => {\n const lower = key.toLowerCase();\n return lower !== 'traceparent' && lower !== 'tracestate' && lower !== 'baggage';\n })\n .map(([key, value]) => [key.toLowerCase(), value] as const)\n .sort(([a], [b]) => a.localeCompare(b));\n return entries.length > 0 ? cacheDisambiguator(JSON.stringify(entries)) : undefined;\n}\n\n/** Get a cached connection, refreshing its LRU position. */\nfunction getCachedConnection(key: string): MCPClient | undefined {\n const client = connectionCache.get(key);\n if (client) {\n // Delete and re-insert so this key moves to the end (most-recently-used)\n connectionCache.delete(key);\n connectionCache.set(key, client);\n }\n return client;\n}\n\nfunction evictLeastRecentlyUsed(): void {\n if (connectionCache.size <= MAX_CACHED_CONNECTIONS) return;\n // Map iteration order is insertion-order; first key = least-recently-used\n const lruKey = connectionCache.keys().next().value;\n if (!lruKey) return;\n const oldClient = connectionCache.get(lruKey);\n connectionCache.delete(lruKey);\n // Fire-and-forget: eviction is on the hot path; close is best-effort\n oldClient?.close().catch(() => {});\n}\n\nfunction evictLeastRecentlyUsedOAuth(): void {\n if (oauthConnectionCache.size <= MAX_CACHED_CONNECTIONS) return;\n const lruKey = oauthConnectionCache.keys().next().value;\n if (!lruKey) return;\n const oldClient = oauthConnectionCache.get(lruKey);\n oauthConnectionCache.delete(lruKey);\n oldClient?.close().catch(() => {});\n}\n\n/**\n * Close all cached OAuth MCP connections.\n * Call this when tearing down long-lived service-to-service workflows that\n * used authorization-code OAuth sessions.\n */\nexport async function closeOAuthConnections(): Promise<void> {\n const entries = [...oauthConnectionCache.entries()];\n oauthConnectionCache.clear();\n for (const [, client] of entries) {\n try {\n await client.close();\n } catch {\n /* ignore close errors */\n }\n }\n}\n\n/**\n * Close all cached MCP connections.\n * Call this at the end of comply/test runs or before process exit.\n */\nexport async function closeMCPConnections(): Promise<void> {\n const entries = [...connectionCache.entries()];\n connectionCache.clear();\n knownStreamableHTTPUrls.clear();\n for (const [, client] of entries) {\n try {\n await client.close();\n } catch {\n /* ignore close errors */\n }\n }\n await closeOAuthConnections();\n await closeModernMCPConnections();\n}\n\n/**\n * Get or create a cached connection for the given cache key.\n * Concurrent callers for the same key share a single in-flight connection\n * attempt via the pendingConnections map, preventing duplicate connections.\n */\nasync function getOrCreateConnection(\n cacheKey: string,\n baseUrl: URL,\n authHeaders: Record<string, string>,\n debugLogs: DebugLogEntry[],\n label: string,\n requestOptions: { signal?: AbortSignal; requestTimeoutMs?: number } = {}\n): Promise<MCPClient> {\n const cached = getCachedConnection(cacheKey);\n if (cached) return cached;\n\n const pending = pendingConnections.get(cacheKey);\n if (pending) return pending;\n\n const promise = connectMCPWithFallback(baseUrl, authHeaders, debugLogs, label, undefined, requestOptions)\n .then(client => {\n connectionCache.set(cacheKey, client);\n evictLeastRecentlyUsed();\n return client;\n })\n .finally(() => {\n pendingConnections.delete(cacheKey);\n });\n\n pendingConnections.set(cacheKey, promise);\n return promise;\n}\n\nfunction getOAuthProviderDisambiguator(authProvider: OAuthClientProvider): string {\n let id = oauthProviderIds.get(authProvider);\n if (!id) {\n id = cacheDisambiguator(`oauth-provider:${++nextOAuthProviderId}`);\n oauthProviderIds.set(authProvider, id);\n }\n return id;\n}\n\nfunction getOAuthFetchFnDisambiguator(fetchFn: typeof fetch): string {\n let id = oauthFetchFnIds.get(fetchFn);\n if (!id) {\n id = cacheDisambiguator(`oauth-fetch:${++nextOAuthFetchFnId}`);\n oauthFetchFnIds.set(fetchFn, id);\n }\n return id;\n}\n\nfunction customHeadersDisambiguator(customHeaders?: Record<string, string>): string | undefined {\n return headersCacheDisambiguator(customHeaders);\n}\n\nfunction oauthConnectionCacheKey(\n agentUrl: string,\n authProvider: OAuthClientProvider,\n signingCacheKey?: string,\n customHeaders?: Record<string, string>,\n fetchFn?: typeof fetch\n): string {\n const parts = [`${agentUrl}::oauth:${getOAuthProviderDisambiguator(authProvider)}`];\n if (signingCacheKey) parts.push(signingCacheKey);\n const headersKey = customHeadersDisambiguator(customHeaders);\n if (headersKey) parts.push(`headers:${headersKey}`);\n if (fetchFn) parts.push(`fetch:${getOAuthFetchFnDisambiguator(fetchFn)}`);\n return parts.join('::');\n}\n\n/** Get a cached OAuth connection, refreshing its LRU position. */\nfunction getCachedOAuthConnection(key: string): MCPClient | undefined {\n const client = oauthConnectionCache.get(key);\n if (client) {\n oauthConnectionCache.delete(key);\n oauthConnectionCache.set(key, client);\n }\n return client;\n}\n\nasync function getOrCreateOAuthConnection(\n cacheKey: string,\n options: {\n agentUrl: string;\n authProvider: OAuthClientProvider;\n debugLogs: DebugLogEntry[];\n customHeaders?: Record<string, string>;\n signingContext?: AgentSigningContext;\n signal?: AbortSignal;\n requestTimeoutMs?: number;\n fetchFn?: typeof fetch;\n }\n): Promise<MCPClient> {\n const cached = getCachedOAuthConnection(cacheKey);\n if (cached) return cached;\n\n const pending = pendingOAuthConnections.get(cacheKey);\n if (pending) return pending;\n\n const promise = connectMCP(options)\n .then(({ client }) => {\n oauthConnectionCache.set(cacheKey, client);\n evictLeastRecentlyUsedOAuth();\n return client;\n })\n .finally(() => {\n pendingOAuthConnections.delete(cacheKey);\n });\n\n pendingOAuthConnections.set(cacheKey, promise);\n return promise;\n}\n\nasync function withCachedOAuthConnection<T>(\n options: {\n agentUrl: string;\n authProvider: OAuthClientProvider;\n debugLogs: DebugLogEntry[];\n customHeaders?: Record<string, string>;\n signingContext?: AgentSigningContext;\n signal?: AbortSignal;\n requestTimeoutMs?: number;\n fetchFn?: typeof fetch;\n },\n label: string,\n fn: (client: MCPClient) => Promise<T>\n): Promise<T> {\n const cacheKey = oauthConnectionCacheKey(\n options.agentUrl,\n options.authProvider,\n options.signingContext?.cacheKey,\n options.customHeaders,\n options.fetchFn\n );\n if (options.signal || options.requestTimeoutMs !== undefined || options.fetchFn) {\n const { client } = await connectMCP(options);\n try {\n return await fn(client);\n } finally {\n try {\n await client.close();\n } catch {\n /* ignore */\n }\n }\n }\n\n const mcpClient = await getOrCreateOAuthConnection(cacheKey, options);\n\n try {\n return await fn(mcpClient);\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : String(error);\n options.debugLogs.push({\n type: 'error',\n message: `MCP: ${label} OAuth call failed: ${errorMessage}`,\n timestamp: new Date().toISOString(),\n error,\n });\n\n if (is401Error(error)) {\n oauthConnectionCache.delete(cacheKey);\n try {\n await mcpClient.close();\n } catch {\n /* ignore */\n }\n options.debugLogs.push({\n type: 'warning',\n message: `MCP: OAuth authentication issue detected for ${label}; evicted cached connection`,\n timestamp: new Date().toISOString(),\n });\n throw error;\n }\n\n if (isAbortOrTimeoutError(error)) {\n throw error;\n }\n\n oauthConnectionCache.delete(cacheKey);\n try {\n await mcpClient.close();\n } catch {\n /* ignore */\n }\n\n const retryClient = await getOrCreateOAuthConnection(cacheKey, {\n ...options,\n debugLogs: options.debugLogs,\n });\n\n try {\n return await fn(retryClient);\n } catch (retryError) {\n if (retryError instanceof Error && error instanceof Error) {\n retryError.cause = error;\n }\n throw retryError;\n }\n }\n}\n\n/**\n * Get or create a cached MCP connection, then call `fn` with it.\n * On transport errors, evicts the stale connection and retries once.\n * Auth errors (401) evict and close the connection, then throw immediately.\n *\n * @internal Used by mcp-tasks.ts for protocol-level task operations.\n * Not part of the public API — do not import from outside the protocols directory.\n */\nexport async function withCachedConnection<T>(\n agentUrl: string,\n authToken: string | undefined,\n authHeaders: Record<string, string>,\n debugLogs: DebugLogEntry[],\n label: string,\n fn: (client: MCPClient) => Promise<T>,\n transportFetch?: typeof fetch,\n requestOptions: { signal?: AbortSignal; requestTimeoutMs?: number } = {}\n): Promise<T> {\n const signingContext = signingContextStorage.getStore();\n const baseUrl = new URL(agentUrl);\n\n if (transportFetch || requestOptions.signal || requestOptions.requestTimeoutMs !== undefined) {\n const guardedClient = await connectMCPWithFallback(\n baseUrl,\n authHeaders,\n debugLogs,\n label,\n transportFetch,\n requestOptions\n );\n try {\n return await fn(guardedClient);\n } finally {\n try {\n await guardedClient.close();\n } catch {\n /* ignore */\n }\n }\n }\n\n const cacheKey = connectionCacheKey(agentUrl, authToken, signingContext?.cacheKey, authHeaders);\n const mcpClient = await getOrCreateConnection(cacheKey, baseUrl, authHeaders, debugLogs, label, requestOptions);\n\n try {\n return await fn(mcpClient);\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : String(error);\n debugLogs.push({\n type: 'error',\n message: `MCP: ${label} call failed: ${errorMessage}`,\n timestamp: new Date().toISOString(),\n error,\n });\n\n // Auth errors won't be fixed by reconnecting — fail fast\n if (is401Error(error)) {\n connectionCache.delete(cacheKey);\n try {\n await mcpClient.close();\n } catch {\n /* ignore */\n }\n debugLogs.push({\n type: 'warning',\n message: `MCP: Authentication issue detected for ${label} - headers may not be reaching server`,\n timestamp: new Date().toISOString(),\n });\n throw error;\n }\n\n if (isAbortOrTimeoutError(error)) {\n throw error;\n }\n\n // Evict stale connection and retry once with a fresh connection\n connectionCache.delete(cacheKey);\n try {\n await mcpClient.close();\n } catch {\n /* ignore */\n }\n\n const retryClient = await getOrCreateConnection(\n cacheKey,\n baseUrl,\n authHeaders,\n debugLogs,\n `${label} (retry)`,\n requestOptions\n );\n\n try {\n return await fn(retryClient);\n } catch (retryError) {\n // Attach original error for diagnostics\n if (retryError instanceof Error && error instanceof Error) {\n retryError.cause = error;\n }\n throw retryError;\n }\n }\n}\n\n/**\n * Options for MCP tool calls with OAuth support\n */\nexport interface MCPCallOptions {\n /** Agent URL */\n agentUrl: string;\n /** Tool name to call */\n toolName: string;\n /** Tool arguments */\n args: Record<string, unknown>;\n /** Static auth token (legacy) */\n authToken?: string;\n /** OAuth provider for dynamic auth */\n authProvider?: OAuthClientProvider;\n /** Debug logs array */\n debugLogs?: DebugLogEntry[];\n /** Additional headers to send with every request (auth headers take precedence) */\n customHeaders?: Record<string, string>;\n /** RFC 9421 signing context — when set, the transport signs outbound ops per seller capability. */\n signingContext?: AgentSigningContext;\n /** Caller-owned cancellation signal for connect and callTool. */\n signal?: AbortSignal;\n /** Optional per-request timeout for connect and callTool. */\n requestTimeoutMs?: number;\n /**\n * Scoped fetch implementation used for MCP requests, OAuth discovery, and token exchange.\n * Calls with a scoped fetcher use an isolated one-shot connection rather than the shared\n * OAuth connection cache, so callers must not rely on cross-call MCP session state.\n */\n fetchFn?: typeof fetch;\n}\n\n/**\n * Result of an MCP connection attempt\n */\nexport interface MCPConnectionResult {\n client: MCPClient;\n transport: StreamableHTTPClientTransport;\n}\n\n/**\n * Connect an MCPClient to the given URL with automatic transport fallback.\n *\n * Strategy:\n * 1. Try StreamableHTTPClientTransport.\n * 2. On any transient connect failure (generic Error, McpError, or StreamableHTTPError),\n * retry once with a fresh StreamableHTTP connection. Auth failures (401) are excluded —\n * a retry is pointless and wastes a round-trip.\n * 3. If a 401 is returned, throw immediately — auth failure is transport-agnostic.\n * 4. For any other error after retry, fall back to SSEClientTransport with the same headers.\n *\n * The returned client is connected and ready for use. Callers are responsible for\n * calling client.close() when done.\n */\nexport async function connectMCPWithFallback(\n url: URL,\n authHeaders: Record<string, string>,\n debugLogs: DebugLogEntry[] = [],\n label = 'connection',\n transportFetch?: typeof fetch,\n requestOptions: { signal?: AbortSignal; requestTimeoutMs?: number } = {}\n): Promise<MCPClient> {\n return withSpan(\n 'adcp.mcp.connect',\n {\n 'http.url': url.toString(),\n 'adcp.connection_label': label,\n },\n async () => {\n return connectMCPWithFallbackImpl(url, authHeaders, debugLogs, label, transportFetch, requestOptions);\n }\n );\n}\n\nasync function connectMCPWithFallbackImpl(\n url: URL,\n authHeaders: Record<string, string>,\n debugLogs: DebugLogEntry[] = [],\n label = 'connection',\n transportFetch?: typeof fetch,\n requestOptions: { signal?: AbortSignal; requestTimeoutMs?: number } = {}\n): Promise<MCPClient> {\n const signingContext = signingContextStorage.getStore();\n // Wrap order (innermost → outermost): network → size-limit → signing → capture.\n // Size-limit applies to the raw network response so signing/capture see a\n // bounded body (capture clones via `response.clone()`, which would otherwise\n // buffer a hostile reply in memory).\n const requestTimeoutMs = resolveRequestTimeoutMs(requestOptions.requestTimeoutMs);\n const clientRequestTimeoutMs = resolveClientRequestTimeoutMs(requestOptions.requestTimeoutMs);\n const mcpRequestOptions = {\n ...(requestOptions.signal && { signal: requestOptions.signal }),\n ...(clientRequestTimeoutMs !== undefined && { timeout: clientRequestTimeoutMs }),\n };\n const rawNetworkFetch: typeof fetch = transportFetch ?? ((input, init) => fetch(input as any, init));\n const networkFetch = (input: Parameters<typeof fetch>[0], init?: RequestInit) =>\n withAbortSignal<Response>([requestOptions.signal, init?.signal], requestTimeoutMs, signal =>\n rawNetworkFetch(input, { ...init, signal })\n );\n const sizeLimited = wrapFetchWithSizeLimit(networkFetch);\n const diagnosticFetch = wrapFetchWithTransportDiagnostics(sizeLimited);\n const baseFetch: typeof fetch = signingContext\n ? (buildAgentSigningFetch({\n upstream: diagnosticFetch,\n signing: signingContext.signing,\n getCapability: signingContext.getCapability,\n }) as typeof fetch)\n : diagnosticFetch;\n const transportOptions: StreamableHTTPClientTransportOptions = {\n requestInit: { headers: authHeaders, redirect: 'manual' },\n fetch: wrapFetchWithCapture(baseFetch),\n };\n let failedClient: MCPClient | undefined;\n\n try {\n const client = new MCPClient({ name: 'AdCP-Client', version: '1.0.0' });\n failedClient = client;\n debugLogs.push({\n type: 'info',\n message: `MCP: Attempting StreamableHTTP ${label} to ${url}`,\n timestamp: new Date().toISOString(),\n });\n await client.connect(new StreamableHTTPClientTransport(url, transportOptions), mcpRequestOptions);\n failedClient = undefined;\n trackStreamableHTTPUrl(url.toString());\n debugLogs.push({\n type: 'success',\n message: `MCP: Connected via StreamableHTTP for ${label}`,\n timestamp: new Date().toISOString(),\n });\n return client;\n } catch (error: unknown) {\n // Close the failed client to avoid resource leaks\n if (failedClient) {\n try {\n await failedClient.close();\n } catch {\n /* ignore */\n }\n }\n\n const errorMessage = error instanceof Error ? error.message : String(error);\n const errorClass = error instanceof Error ? error.constructor.name : typeof error;\n const httpStatus = error instanceof StreamableHTTPError ? ` [HTTP ${error.code}]` : '';\n debugLogs.push({\n type: 'error',\n message: `MCP: StreamableHTTP failed for ${label}${httpStatus} (${errorClass}): ${errorMessage}`,\n timestamp: new Date().toISOString(),\n error,\n });\n\n if (isAbortOrTimeoutError(error)) {\n throw error;\n }\n\n // Retry StreamableHTTP once on any transient connect failure — network blips,\n // JSON parse errors on half-buffered responses, and mid-handshake proxy\n // disconnects all surface as generic Error or McpError, not StreamableHTTPError.\n // Auth failures are the only class where retry is pointless and wasteful.\n if (!is401Error(error)) {\n debugLogs.push({\n type: 'info',\n message: `MCP: Transient connect error (${errorClass}) detected, retrying StreamableHTTP for ${label}`,\n timestamp: new Date().toISOString(),\n });\n const retryClient = new MCPClient({ name: 'AdCP-Client', version: '1.0.0' });\n try {\n await retryClient.connect(new StreamableHTTPClientTransport(url, transportOptions), mcpRequestOptions);\n trackStreamableHTTPUrl(url.toString());\n debugLogs.push({\n type: 'success',\n message: `MCP: Connected via StreamableHTTP (retry) for ${label}`,\n timestamp: new Date().toISOString(),\n });\n return retryClient;\n } catch (retryError) {\n try {\n await retryClient.close();\n } catch {\n /* ignore */\n }\n debugLogs.push({\n type: 'error',\n message: `MCP: StreamableHTTP retry also failed for ${label}: ${retryError instanceof Error ? retryError.message : String(retryError)}`,\n timestamp: new Date().toISOString(),\n });\n if (isAbortOrTimeoutError(retryError)) {\n throw retryError;\n }\n // Fall through to SSE fallback below\n }\n }\n\n // Auth failure — transport type won't change the outcome\n if (is401Error(error)) {\n throw error;\n }\n\n // If StreamableHTTP previously worked for this URL, don't fall back to SSE.\n // Transient failures (connection reuse, concurrency limits) should be retried\n // with StreamableHTTP, not SSE — SSE sends GET requests that return 405 on\n // servers that only support POST-based StreamableHTTP.\n if (knownStreamableHTTPUrls.has(url.toString())) {\n debugLogs.push({\n type: 'info',\n message: `MCP: StreamableHTTP previously succeeded for ${url} — skipping SSE fallback for ${label}`,\n timestamp: new Date().toISOString(),\n });\n throw error;\n }\n\n // Fall back to SSE\n debugLogs.push({\n type: 'warning',\n message: `MCP: Falling back to SSE transport for ${label}`,\n timestamp: new Date().toISOString(),\n });\n const client = new MCPClient({ name: 'AdCP-Client', version: '1.0.0' });\n try {\n await client.connect(\n new SSEClientTransport(url, {\n requestInit: { headers: authHeaders, redirect: 'manual' },\n fetch: wrapFetchWithCapture(baseFetch),\n }),\n mcpRequestOptions\n );\n } catch (sseError) {\n try {\n await client.close();\n } catch {\n /* ignore */\n }\n throw sseError;\n }\n debugLogs.push({\n type: 'success',\n message: `MCP: Connected via SSE transport for ${label}`,\n timestamp: new Date().toISOString(),\n });\n return client;\n }\n}\n\nexport async function callMCPTool(\n agentUrl: string,\n toolName: string,\n args: Record<string, unknown>,\n authToken?: string,\n debugLogs: DebugLogEntry[] = [],\n customHeaders?: Record<string, string>,\n signingContext?: AgentSigningContext,\n transportFetch?: typeof fetch,\n requestOptions?: { signal?: AbortSignal; requestTimeoutMs?: number }\n): Promise<unknown> {\n debugLogs.push({\n type: 'info',\n message: `MCP: Auth configuration`,\n timestamp: new Date().toISOString(),\n hasAuth: !!authToken,\n headers: authToken ? { 'x-adcp-auth': '***' } : {},\n customHeaderKeys: customHeaders ? Object.keys(customHeaders) : [],\n });\n debugLogs.push({\n type: 'info',\n message: `MCP: Calling tool ${toolName} with args: ${JSON.stringify(redactArgsForLog(args))}`,\n timestamp: new Date().toISOString(),\n });\n if (authToken) {\n debugLogs.push({\n type: 'info',\n message: `MCP: Transport configured with x-adcp-auth header for ${toolName}`,\n timestamp: new Date().toISOString(),\n });\n }\n\n // Custom fetch injection is an internal conformance seam whose mocks use\n // the v1 transport shape. Normal remote calls negotiate the modern era;\n // injected transports retain their exact legacy behavior.\n if (!transportFetch) {\n const modernAttempt = await tryCallModernMCPTool(agentUrl, toolName, args, authToken, debugLogs, customHeaders, {\n ...(signingContext && { signingContext }),\n ...(requestOptions?.signal && { signal: requestOptions.signal }),\n ...(requestOptions?.requestTimeoutMs !== undefined && {\n requestTimeoutMs: requestOptions.requestTimeoutMs,\n }),\n });\n if (modernAttempt.handled) {\n debugLogs.push({\n type: modernAttempt.response?.isError ? 'error' : 'success',\n message: `MCP: Tool ${toolName} response received (${modernAttempt.response?.isError ? 'error' : 'success'})`,\n timestamp: new Date().toISOString(),\n response: modernAttempt.response,\n });\n return modernAttempt.response;\n }\n }\n\n return withSpan(\n 'adcp.mcp.call_tool',\n {\n 'adcp.tool': toolName,\n 'http.url': agentUrl,\n },\n async () => {\n return signingContextStorage.run(signingContext, () =>\n callMCPToolImpl(agentUrl, toolName, args, authToken, debugLogs, customHeaders, transportFetch, requestOptions)\n );\n }\n );\n}\n\n/**\n * Call an MCP tool and return the raw CallToolResult (with isError, content, structuredContent).\n * Raw MCP tool call — returns the CallToolResult directly, including isError responses.\n */\nexport async function callMCPToolRaw(\n agentUrl: string,\n toolName: string,\n args: Record<string, unknown>,\n authToken?: string,\n debugLogs: DebugLogEntry[] = [],\n customHeaders?: Record<string, string>,\n signingContext?: AgentSigningContext,\n transportFetch?: typeof fetch\n): Promise<unknown> {\n return signingContextStorage.run(signingContext, () =>\n callMCPToolRawImpl(agentUrl, toolName, args, authToken, debugLogs, customHeaders, transportFetch)\n );\n}\n\nasync function callMCPToolImpl(\n agentUrl: string,\n toolName: string,\n args: Record<string, unknown>,\n authToken?: string,\n debugLogs: DebugLogEntry[] = [],\n customHeaders?: Record<string, string>,\n transportFetch?: typeof fetch,\n requestOptions?: { signal?: AbortSignal; requestTimeoutMs?: number }\n): Promise<unknown> {\n // Inject trace context headers for distributed tracing\n const traceHeaders = injectTraceHeaders();\n\n // Merge: custom < trace < auth (auth always wins)\n const authHeaders = {\n ...customHeaders,\n ...traceHeaders,\n ...(authToken ? createMCPAuthHeaders(authToken) : {}),\n };\n\n const resolvedRequestTimeoutMs = resolveClientRequestTimeoutMs(requestOptions?.requestTimeoutMs);\n const response = await withCachedConnection(\n agentUrl,\n authToken,\n authHeaders,\n debugLogs,\n toolName,\n client =>\n client.callTool({ name: toolName, arguments: args }, undefined, {\n ...(requestOptions?.signal && { signal: requestOptions.signal }),\n ...(resolvedRequestTimeoutMs !== undefined && { timeout: resolvedRequestTimeoutMs }),\n }) as Promise<CallToolResponse>,\n transportFetch,\n requestOptions\n );\n\n debugLogs.push({\n type: response?.isError ? 'error' : 'success',\n message: `MCP: Tool ${toolName} response received (${response?.isError ? 'error' : 'success'})`,\n timestamp: new Date().toISOString(),\n response: response,\n });\n\n return response;\n}\n\n/**\n * Raw MCP tool call — returns the CallToolResult directly.\n */\nasync function callMCPToolRawImpl(\n agentUrl: string,\n toolName: string,\n args: Record<string, unknown>,\n authToken?: string,\n debugLogs: DebugLogEntry[] = [],\n customHeaders?: Record<string, string>,\n transportFetch?: typeof fetch\n): Promise<unknown> {\n const traceHeaders = injectTraceHeaders();\n const authHeaders = {\n ...customHeaders,\n ...traceHeaders,\n ...(authToken ? createMCPAuthHeaders(authToken) : {}),\n };\n\n return withCachedConnection(\n agentUrl,\n authToken,\n authHeaders,\n debugLogs,\n toolName,\n client => client.callTool({ name: toolName, arguments: args }),\n transportFetch\n );\n}\n\n/**\n * Connect to an MCP server with OAuth support\n *\n * This function handles both static token auth and OAuth flows.\n * When using OAuth, if the server requires authorization:\n * 1. UnauthorizedError is thrown\n * 2. The OAuth provider's redirectToAuthorization is called\n * 3. Caller should wait for callback and call finishAuth on transport\n *\n * @param options Connection options\n * @returns MCP client and transport (for finishing OAuth if needed)\n * @throws UnauthorizedError if OAuth is required\n *\n * @example\n * ```typescript\n * // With OAuth provider\n * const provider = createCLIOAuthProvider(serverUrl);\n *\n * try {\n * const { client, transport } = await connectMCP({\n * agentUrl: serverUrl,\n * authProvider: provider\n * });\n * // Connected! Use client...\n * } catch (error) {\n * if (error instanceof UnauthorizedError) {\n * // OAuth flow started, wait for callback\n * const code = await provider.waitForCallback();\n * await transport.finishAuth(code);\n * // Retry connection...\n * }\n * }\n * ```\n *\n * @deprecated Low-level v1/SSE escape hatch. High-level AgentClient discovery,\n * tool listing, OAuth calls, and `callMCPTool*` APIs negotiate MCP 2026-07-28.\n * Keep this only for callers that require the v1 SDK client/transport pair or\n * its interactive `finishAuth()` lifecycle.\n */\nexport async function connectMCP(options: {\n agentUrl: string;\n authToken?: string;\n authProvider?: OAuthClientProvider;\n debugLogs?: DebugLogEntry[];\n customHeaders?: Record<string, string>;\n signingContext?: AgentSigningContext;\n signal?: AbortSignal;\n requestTimeoutMs?: number;\n fetchFn?: typeof fetch;\n}): Promise<MCPConnectionResult> {\n const {\n agentUrl,\n authToken,\n authProvider,\n debugLogs = [],\n customHeaders,\n signingContext,\n signal,\n requestTimeoutMs: configuredRequestTimeoutMs,\n fetchFn,\n } = options;\n const baseUrl = new URL(agentUrl);\n\n debugLogs.push({\n type: 'info',\n message: `MCP: Connecting to ${baseUrl}`,\n timestamp: new Date().toISOString(),\n authMethod: authProvider ? 'oauth' : authToken ? 'token' : 'none',\n });\n\n const mcpClient = new MCPClient({\n name: 'AdCP-Client',\n version: '1.0.0',\n });\n\n // Build transport options\n const transportOptions: StreamableHTTPClientTransportOptions = {};\n\n // Header-only auth (basic, x-api-key, custom routing) lives entirely on\n // `customHeaders`. Attach it whenever it's present, regardless of which\n // auth branch fires — OAuth + routing headers, bearer + tenant headers,\n // and pure-header auth must all reach the wire.\n //\n // Precedence note: the MCP SDK's `_commonHeaders()` (StreamableHTTP)\n // spreads `requestInit.headers` *over* any provider-emitted `Authorization`\n // (`new Headers({ ...providerHeaders, ...requestInitHeaders })`, last-write-\n // wins). To prevent a caller-supplied `Authorization` in `customHeaders`\n // from silently overriding the OAuth provider's bearer, drop any\n // `Authorization` key from `customHeaders` when `authProvider` is set.\n // OAuth is the source of truth for the bearer in that branch; non-auth\n // routing/tenant headers still flow through.\n const filteredCustomHeaders = authProvider\n ? Object.fromEntries(Object.entries(customHeaders ?? {}).filter(([k]) => k.toLowerCase() !== 'authorization'))\n : customHeaders;\n const authHeaders: Record<string, string> = {\n ...filteredCustomHeaders,\n ...(authToken ? createMCPAuthHeaders(authToken) : {}),\n };\n transportOptions.requestInit = { headers: authHeaders, redirect: 'manual' };\n if (authProvider) {\n transportOptions.authProvider = authProvider;\n debugLogs.push({\n type: 'info',\n message: 'MCP: Using OAuth provider for authentication',\n timestamp: new Date().toISOString(),\n });\n } else if (authToken) {\n debugLogs.push({\n type: 'info',\n message: 'MCP: Using static token for authentication',\n timestamp: new Date().toISOString(),\n });\n } else if (Object.keys(authHeaders).length > 0) {\n debugLogs.push({\n type: 'info',\n message: 'MCP: Using custom headers for authentication',\n timestamp: new Date().toISOString(),\n });\n }\n\n // RFC 9421 signing — wrap the transport's fetch so the signer sees the final\n // headers the SDK assembled (including any OAuth-issued Authorization) and\n // decides per outbound request whether to sign. Size-limit sits innermost so\n // the response body is bounded before signing/capture observe it.\n const requestTimeoutMs = resolveRequestTimeoutMs(configuredRequestTimeoutMs);\n const clientRequestTimeoutMs = resolveClientRequestTimeoutMs(configuredRequestTimeoutMs);\n const requestOptions = {\n ...(signal && { signal }),\n ...(clientRequestTimeoutMs !== undefined && { timeout: clientRequestTimeoutMs }),\n };\n const rawNetworkFetch: typeof fetch = fetchFn ?? ((input, init) => fetch(input, init));\n const sizeLimited = wrapFetchWithSizeLimit((input, init) =>\n withAbortSignal<Response>([signal, init?.signal], requestTimeoutMs, linkedSignal =>\n rawNetworkFetch(input, { ...init, signal: linkedSignal })\n )\n );\n const diagnosticFetch = wrapFetchWithTransportDiagnostics(sizeLimited);\n const signedFetch: typeof fetch = signingContext\n ? (buildAgentSigningFetch({\n upstream: diagnosticFetch,\n signing: signingContext.signing,\n getCapability: signingContext.getCapability,\n }) as typeof fetch)\n : diagnosticFetch;\n transportOptions.fetch = wrapFetchWithCapture(signedFetch);\n\n const transport = new StreamableHTTPClientTransport(baseUrl, transportOptions);\n\n try {\n await mcpClient.connect(transport, requestOptions);\n debugLogs.push({\n type: 'success',\n message: 'MCP: Connected successfully',\n timestamp: new Date().toISOString(),\n });\n return { client: mcpClient, transport };\n } catch (error) {\n // If it's an UnauthorizedError, the OAuth flow has started\n // Rethrow so the caller can handle the callback\n if (error instanceof UnauthorizedError) {\n debugLogs.push({\n type: 'info',\n message: 'MCP: OAuth authorization required, flow initiated',\n timestamp: new Date().toISOString(),\n });\n // Return transport so caller can call finishAuth\n throw Object.assign(error, { transport, client: mcpClient });\n }\n\n // Non-OAuth 401 — the SDK sent credentials that the agent rejected (or\n // sent none when it needed them). The raw transport error is shaped like\n // `Error POSTing to endpoint (HTTP 401): unauthorized`, which omits the\n // crucial piece of debug data: *which auth scheme did the SDK actually\n // use*. Without that, a caller can't diff against curl. Wrap the error\n // with a scheme tag and a remediation hint, preserving the original\n // under `.cause` so existing `is401Error` / `error.status` checks\n // downstream still resolve.\n if (is401Error(error)) {\n const scheme = authProvider\n ? 'oauth'\n : authToken\n ? 'bearer'\n : Object.keys(authHeaders).length > 0\n ? 'header'\n : 'none';\n const hint =\n scheme === 'none'\n ? 'No credentials were sent. Configure auth_token, headers, or oauth_tokens on the agent config (or pass --auth on the CLI).'\n : scheme === 'header'\n ? \"Verify the Authorization header value matches the gateway (basic-auth: 'Basic ' + base64(user:pass); pair with --auth-scheme basic on the CLI).\"\n : scheme === 'bearer'\n ? \"Verify the bearer token matches the agent's expected credential.\"\n : 'OAuth provider returned tokens that the agent rejected — check the provider configuration and token scopes.';\n const detail = `MCP connect rejected with HTTP 401 from ${agentUrl}. SDK sent auth scheme: ${scheme}. ${hint}`;\n const wrapped = Object.assign(new Error(detail), {\n cause: error,\n code: 'MCP_AUTH_REJECTED',\n scheme,\n agentUrl,\n originalError: error,\n });\n throw wrapped;\n }\n\n throw error;\n }\n}\n\n/**\n * Call an MCP tool with OAuth support.\n *\n * OAuth connections are cached by agent URL and OAuth provider identity so a\n * service-to-service workflow can reuse the initialized MCP session across\n * related tool calls. Reuse the same OAuthClientProvider instance for a\n * session/source/principal; the provider owns token refresh state for the\n * cached transport.\n *\n * Supplying `fetchFn` opts out of connection reuse. Scoped fetchers commonly\n * carry request- or tenant-specific network policy, so each call gets an\n * isolated connection that is closed after the tool response.\n *\n * Signing: this path consumes `options.signingContext` via the transport —\n * `connectMCP` attaches a signing-fetch wrapper at transport-creation time —\n * rather than via `signingContextStorage`. The OAuth cache key includes the\n * signing cache key so different signing identities do not share a transport.\n * The non-OAuth fallback (`callMCPTool`) does enter ALS.\n *\n * @param options Call options\n * @returns Tool response\n * @throws UnauthorizedError if OAuth is required (with transport attached)\n */\nexport async function callMCPToolWithOAuth(options: MCPCallOptions): Promise<unknown> {\n const {\n agentUrl,\n toolName,\n args,\n authToken,\n authProvider,\n debugLogs = [],\n customHeaders,\n signingContext,\n signal,\n requestTimeoutMs,\n fetchFn,\n } = options;\n const resolvedRequestTimeoutMs = resolveClientRequestTimeoutMs(requestTimeoutMs);\n const requestOptions = {\n ...(signal && { signal }),\n ...(resolvedRequestTimeoutMs !== undefined && { timeout: resolvedRequestTimeoutMs }),\n };\n\n // If no OAuth provider, use the legacy function\n if (!authProvider) {\n return callMCPTool(agentUrl, toolName, args, authToken, debugLogs, customHeaders, signingContext, fetchFn, {\n signal,\n requestTimeoutMs,\n });\n }\n\n const modernAttempt = await tryCallModernMCPTool(agentUrl, toolName, args, undefined, debugLogs, customHeaders, {\n authProvider,\n signingContext,\n signal,\n requestTimeoutMs,\n fetchFn,\n handleLegacy: true,\n });\n if (modernAttempt.handled) {\n debugLogs.push({\n type: modernAttempt.response?.isError ? 'error' : 'success',\n message: `MCP: Tool ${toolName} response received`,\n timestamp: new Date().toISOString(),\n });\n return modernAttempt.response;\n }\n\n const response = await withCachedOAuthConnection(\n {\n agentUrl,\n authProvider,\n debugLogs,\n customHeaders,\n signingContext,\n signal,\n requestTimeoutMs,\n fetchFn,\n },\n toolName,\n async client => {\n debugLogs.push({\n type: 'info',\n message: `MCP: Calling tool ${toolName}`,\n timestamp: new Date().toISOString(),\n });\n\n const response = await client.callTool({ name: toolName, arguments: args }, undefined, requestOptions);\n\n debugLogs.push({\n type: response?.isError ? 'error' : 'success',\n message: `MCP: Tool ${toolName} response received`,\n timestamp: new Date().toISOString(),\n });\n\n return response;\n }\n );\n\n return response;\n}\n"],"mappings":"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","names":["require","response"]}
1
+ {"version":3,"sources":["../../../src/lib/protocols/mcp.ts"],"sourcesContent":["import { fileURLToPath as __adcpFileURLToPath } from 'node:url';\nimport { dirname as __adcpDirname } from 'node:path';\nimport { createRequire as __adcpCreateRequire } from 'node:module';\nconst __dirname = __adcpDirname(__adcpFileURLToPath(import.meta.url));\nconst require = __adcpCreateRequire(import.meta.url);\n// Official MCP client implementation using HTTP streaming transport with SSE fallback\nimport { Client as MCPClient } from '@modelcontextprotocol/sdk/client/index.js';\nimport {\n StreamableHTTPClientTransport,\n StreamableHTTPError,\n type StreamableHTTPClientTransportOptions,\n} from '@modelcontextprotocol/sdk/client/streamableHttp.js';\nimport { SSEClientTransport } from '@modelcontextprotocol/sdk/client/sse.js';\nimport { UnauthorizedError } from '@modelcontextprotocol/sdk/client/auth.js';\nimport type { OAuthClientProvider } from '@modelcontextprotocol/sdk/client/auth.js';\nimport { createHmac } from 'node:crypto';\nimport { createMCPAuthHeaders } from '../auth';\nimport { is401Error } from '../errors';\nimport type { DebugLogEntry } from '../types/adcp';\nimport { withSpan, injectTraceHeaders } from '../observability/tracing';\nimport { buildAgentSigningFetch, signingContextStorage, type AgentSigningContext } from '../signing/client';\nimport { redactArgsForLog } from '../utils/redact-args';\nimport { wrapFetchWithCapture } from './rawResponseCapture';\nimport { wrapFetchWithSizeLimit } from './responseSizeLimit';\nimport { wrapFetchWithTransportDiagnostics } from './transportDiagnostics';\nimport {\n isAbortOrTimeoutError,\n resolveClientRequestTimeoutMs,\n resolveRequestTimeoutMs,\n withAbortSignal,\n} from './abort';\nimport { closeModernMCPConnections, tryCallModernMCPTool } from './mcp-modern';\n\n// Re-export for convenience\nexport { UnauthorizedError };\n\n/** Response shape returned by MCPClient.callTool(). */\ntype CallToolResponse = {\n isError?: boolean;\n content?: Array<{ type: string; text?: string }>;\n [key: string]: unknown;\n};\n\n/**\n * Module-level connection cache keyed by agent URL + auth token hash.\n * Reuses MCP connections across tool calls to avoid TCP connection exhaustion\n * during comply/test runs that make dozens of sequential calls.\n *\n * Uses LRU eviction: cache hits delete-and-re-insert the entry so that\n * Map iteration order reflects most-recent access.\n *\n * The cache key includes only URL + auth token hash. Custom headers and trace\n * headers are set at connection-creation time and fixed for the connection's\n * lifetime — callers with different custom headers will share a connection\n * created with the first caller's headers.\n *\n * Note: This is a process-global singleton. Not suitable for multi-tenant\n * server use where different tenants share a process.\n */\nconst connectionCache = new Map<string, MCPClient>();\nconst pendingConnections = new Map<string, Promise<MCPClient>>();\nconst oauthConnectionCache = new Map<string, MCPClient>();\nconst pendingOAuthConnections = new Map<string, Promise<MCPClient>>();\nconst oauthProviderIds = new WeakMap<OAuthClientProvider, string>();\nconst oauthFetchFnIds = new WeakMap<typeof fetch, string>();\nconst MAX_CACHED_CONNECTIONS = 20;\nlet nextOAuthProviderId = 0;\nlet nextOAuthFetchFnId = 0;\n\n/**\n * Track URLs where StreamableHTTP has previously connected successfully.\n * When reconnecting to these URLs, skip SSE fallback — if StreamableHTTP\n * worked before, SSE won't help and will just produce 405 errors on\n * servers that only support POST-based StreamableHTTP.\n *\n * Capped at MAX_CACHED_CONNECTIONS to avoid unbounded growth. Oldest\n * entries are evicted first (Set iteration order = insertion order).\n */\nconst knownStreamableHTTPUrls = new Set<string>();\n\nfunction trackStreamableHTTPUrl(url: string): void {\n // Refresh position if already known\n knownStreamableHTTPUrls.delete(url);\n knownStreamableHTTPUrls.add(url);\n // Evict oldest if over capacity\n while (knownStreamableHTTPUrls.size > MAX_CACHED_CONNECTIONS) {\n const oldest = knownStreamableHTTPUrls.values().next().value;\n if (oldest) knownStreamableHTTPUrls.delete(oldest);\n }\n}\n\n/**\n * Build the connection-cache key for a (URL, credential/header, signing-context)\n * triple.\n *\n * Two credential paths feed this cache. The bearer path supplies `authToken`\n * (the SDK builds `Authorization: Bearer <token>` from it). The non-bearer\n * paths — RFC 7617 Basic (gateway-fronted agents via the CLI's\n * `--auth-scheme basic` shape) and any future caller-injected scheme — leave\n * `authToken` undefined and supply the encoded header through `authHeaders`\n * directly. Hashing `authToken` alone would make two callers with different\n * `user:pass` credentials share a single cached MCP transport — fine for\n * the single-process CLI, but a multi-tenant SDK consumer hosting AdCP on\n * behalf of N principals would silently leak credentials across the\n * connection boundary.\n *\n * Also include non-trace custom headers in the key. Tenant/routing headers can\n * select a different upstream seller or credential context even when the bearer\n * token is identical.\n */\nfunction connectionCacheKey(\n agentUrl: string,\n authToken?: string,\n signingCacheKey?: string,\n authHeaders?: Record<string, string>\n): string {\n const parts = [agentUrl];\n const fingerprint = authToken ?? extractAuthHeader(authHeaders);\n if (fingerprint) parts.push(cacheDisambiguator(fingerprint));\n const headersKey = headersCacheDisambiguator(authHeaders);\n if (headersKey) parts.push(`headers:${headersKey}`);\n if (signingCacheKey) parts.push(signingCacheKey);\n return parts.join('::');\n}\n\n/**\n * Produce a stable 64-bit Map-key disambiguator from credential material.\n *\n * This is NOT a password hash. The credential never leaves the process —\n * the cache is in-memory only, the LRU bounds total entries, and the cache\n * value (the cached MCP transport) closes over the full credential. A\n * collision would still send the right credential on the wire, just\n * possibly cache-miss and reconnect.\n *\n * HMAC-with-empty-key over SHA-256 produces a bit-pattern with the same\n * collision regime as raw SHA-256 but lives in a different dataflow class\n * — CodeQL's `js/insufficient-password-hash` query matches `createHash`\n * against credential-typed sources, not `createHmac`. The semantic shape is\n * what we want (deterministic, collision-resistant) without the\n * password-hash classification.\n */\nfunction cacheDisambiguator(value: string): string {\n return createHmac('sha256', '').update(value).digest('hex').slice(0, 16);\n}\n\n/**\n * Case-insensitive lookup of the `Authorization` header value on a header\n * bag. Returns `undefined` when no such header is present.\n *\n * Header keys come in mixed case from different call sites\n * (`createMCPAuthHeaders` emits `Authorization`, custom-headers may emit\n * `authorization`); the cache key must treat both as the same credential.\n */\nfunction extractAuthHeader(headers?: Record<string, string>): string | undefined {\n if (!headers) return undefined;\n for (const [key, value] of Object.entries(headers)) {\n if (key.toLowerCase() === 'authorization' && value) return value;\n }\n return undefined;\n}\n\nfunction headersCacheDisambiguator(headers?: Record<string, string>): string | undefined {\n const entries = Object.entries(headers ?? {})\n .filter(([key]) => {\n const lower = key.toLowerCase();\n return lower !== 'traceparent' && lower !== 'tracestate' && lower !== 'baggage';\n })\n .map(([key, value]) => [key.toLowerCase(), value] as const)\n .sort(([a], [b]) => a.localeCompare(b));\n return entries.length > 0 ? cacheDisambiguator(JSON.stringify(entries)) : undefined;\n}\n\n/** Get a cached connection, refreshing its LRU position. */\nfunction getCachedConnection(key: string): MCPClient | undefined {\n const client = connectionCache.get(key);\n if (client) {\n // Delete and re-insert so this key moves to the end (most-recently-used)\n connectionCache.delete(key);\n connectionCache.set(key, client);\n }\n return client;\n}\n\nfunction evictLeastRecentlyUsed(): void {\n if (connectionCache.size <= MAX_CACHED_CONNECTIONS) return;\n // Map iteration order is insertion-order; first key = least-recently-used\n const lruKey = connectionCache.keys().next().value;\n if (!lruKey) return;\n const oldClient = connectionCache.get(lruKey);\n connectionCache.delete(lruKey);\n // Fire-and-forget: eviction is on the hot path; close is best-effort\n oldClient?.close().catch(() => {});\n}\n\nfunction evictLeastRecentlyUsedOAuth(): void {\n if (oauthConnectionCache.size <= MAX_CACHED_CONNECTIONS) return;\n const lruKey = oauthConnectionCache.keys().next().value;\n if (!lruKey) return;\n const oldClient = oauthConnectionCache.get(lruKey);\n oauthConnectionCache.delete(lruKey);\n oldClient?.close().catch(() => {});\n}\n\n/**\n * Close all cached OAuth MCP connections.\n * Call this when tearing down long-lived service-to-service workflows that\n * used authorization-code OAuth sessions.\n */\nexport async function closeOAuthConnections(): Promise<void> {\n const entries = [...oauthConnectionCache.entries()];\n oauthConnectionCache.clear();\n for (const [, client] of entries) {\n try {\n await client.close();\n } catch {\n /* ignore close errors */\n }\n }\n}\n\n/**\n * Close all cached MCP connections.\n * Call this at the end of comply/test runs or before process exit.\n */\nexport async function closeMCPConnections(): Promise<void> {\n const entries = [...connectionCache.entries()];\n connectionCache.clear();\n knownStreamableHTTPUrls.clear();\n for (const [, client] of entries) {\n try {\n await client.close();\n } catch {\n /* ignore close errors */\n }\n }\n await closeOAuthConnections();\n await closeModernMCPConnections();\n}\n\n/**\n * Get or create a cached connection for the given cache key.\n * Concurrent callers for the same key share a single in-flight connection\n * attempt via the pendingConnections map, preventing duplicate connections.\n */\nasync function getOrCreateConnection(\n cacheKey: string,\n baseUrl: URL,\n authHeaders: Record<string, string>,\n debugLogs: DebugLogEntry[],\n label: string,\n requestOptions: { signal?: AbortSignal; requestTimeoutMs?: number } = {}\n): Promise<MCPClient> {\n const cached = getCachedConnection(cacheKey);\n if (cached) return cached;\n\n const pending = pendingConnections.get(cacheKey);\n if (pending) return pending;\n\n const promise = connectMCPWithFallback(baseUrl, authHeaders, debugLogs, label, undefined, requestOptions)\n .then(client => {\n connectionCache.set(cacheKey, client);\n evictLeastRecentlyUsed();\n return client;\n })\n .finally(() => {\n pendingConnections.delete(cacheKey);\n });\n\n pendingConnections.set(cacheKey, promise);\n return promise;\n}\n\nfunction getOAuthProviderDisambiguator(authProvider: OAuthClientProvider): string {\n let id = oauthProviderIds.get(authProvider);\n if (!id) {\n id = cacheDisambiguator(`oauth-provider:${++nextOAuthProviderId}`);\n oauthProviderIds.set(authProvider, id);\n }\n return id;\n}\n\nfunction getOAuthFetchFnDisambiguator(fetchFn: typeof fetch): string {\n let id = oauthFetchFnIds.get(fetchFn);\n if (!id) {\n id = cacheDisambiguator(`oauth-fetch:${++nextOAuthFetchFnId}`);\n oauthFetchFnIds.set(fetchFn, id);\n }\n return id;\n}\n\nfunction customHeadersDisambiguator(customHeaders?: Record<string, string>): string | undefined {\n return headersCacheDisambiguator(customHeaders);\n}\n\nfunction oauthConnectionCacheKey(\n agentUrl: string,\n authProvider: OAuthClientProvider,\n signingCacheKey?: string,\n customHeaders?: Record<string, string>,\n fetchFn?: typeof fetch\n): string {\n const parts = [`${agentUrl}::oauth:${getOAuthProviderDisambiguator(authProvider)}`];\n if (signingCacheKey) parts.push(signingCacheKey);\n const headersKey = customHeadersDisambiguator(customHeaders);\n if (headersKey) parts.push(`headers:${headersKey}`);\n if (fetchFn) parts.push(`fetch:${getOAuthFetchFnDisambiguator(fetchFn)}`);\n return parts.join('::');\n}\n\n/** Get a cached OAuth connection, refreshing its LRU position. */\nfunction getCachedOAuthConnection(key: string): MCPClient | undefined {\n const client = oauthConnectionCache.get(key);\n if (client) {\n oauthConnectionCache.delete(key);\n oauthConnectionCache.set(key, client);\n }\n return client;\n}\n\nasync function getOrCreateOAuthConnection(\n cacheKey: string,\n options: {\n agentUrl: string;\n authProvider: OAuthClientProvider;\n debugLogs: DebugLogEntry[];\n customHeaders?: Record<string, string>;\n signingContext?: AgentSigningContext;\n signal?: AbortSignal;\n requestTimeoutMs?: number;\n fetchFn?: typeof fetch;\n }\n): Promise<MCPClient> {\n const cached = getCachedOAuthConnection(cacheKey);\n if (cached) return cached;\n\n const pending = pendingOAuthConnections.get(cacheKey);\n if (pending) return pending;\n\n const promise = connectMCP(options)\n .then(({ client }) => {\n oauthConnectionCache.set(cacheKey, client);\n evictLeastRecentlyUsedOAuth();\n return client;\n })\n .finally(() => {\n pendingOAuthConnections.delete(cacheKey);\n });\n\n pendingOAuthConnections.set(cacheKey, promise);\n return promise;\n}\n\nasync function withCachedOAuthConnection<T>(\n options: {\n agentUrl: string;\n authProvider: OAuthClientProvider;\n debugLogs: DebugLogEntry[];\n customHeaders?: Record<string, string>;\n signingContext?: AgentSigningContext;\n signal?: AbortSignal;\n requestTimeoutMs?: number;\n fetchFn?: typeof fetch;\n },\n label: string,\n fn: (client: MCPClient) => Promise<T>\n): Promise<T> {\n const cacheKey = oauthConnectionCacheKey(\n options.agentUrl,\n options.authProvider,\n options.signingContext?.cacheKey,\n options.customHeaders,\n options.fetchFn\n );\n if (options.signal || options.requestTimeoutMs !== undefined || options.fetchFn) {\n const { client } = await connectMCP(options);\n try {\n return await fn(client);\n } finally {\n try {\n await client.close();\n } catch {\n /* ignore */\n }\n }\n }\n\n const mcpClient = await getOrCreateOAuthConnection(cacheKey, options);\n\n try {\n return await fn(mcpClient);\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : String(error);\n options.debugLogs.push({\n type: 'error',\n message: `MCP: ${label} OAuth call failed: ${errorMessage}`,\n timestamp: new Date().toISOString(),\n error,\n });\n\n if (is401Error(error)) {\n oauthConnectionCache.delete(cacheKey);\n try {\n await mcpClient.close();\n } catch {\n /* ignore */\n }\n options.debugLogs.push({\n type: 'warning',\n message: `MCP: OAuth authentication issue detected for ${label}; evicted cached connection`,\n timestamp: new Date().toISOString(),\n });\n throw error;\n }\n\n if (isAbortOrTimeoutError(error)) {\n throw error;\n }\n\n oauthConnectionCache.delete(cacheKey);\n try {\n await mcpClient.close();\n } catch {\n /* ignore */\n }\n\n const retryClient = await getOrCreateOAuthConnection(cacheKey, {\n ...options,\n debugLogs: options.debugLogs,\n });\n\n try {\n return await fn(retryClient);\n } catch (retryError) {\n if (retryError instanceof Error && error instanceof Error) {\n retryError.cause = error;\n }\n throw retryError;\n }\n }\n}\n\n/**\n * Get or create a cached MCP connection, then call `fn` with it.\n * On transport errors, evicts the stale connection and retries once.\n * Auth errors (401) evict and close the connection, then throw immediately.\n *\n * @internal Used by mcp-tasks.ts for protocol-level task operations.\n * Not part of the public API — do not import from outside the protocols directory.\n */\nexport async function withCachedConnection<T>(\n agentUrl: string,\n authToken: string | undefined,\n authHeaders: Record<string, string>,\n debugLogs: DebugLogEntry[],\n label: string,\n fn: (client: MCPClient) => Promise<T>,\n transportFetch?: typeof fetch,\n requestOptions: { signal?: AbortSignal; requestTimeoutMs?: number } = {}\n): Promise<T> {\n const signingContext = signingContextStorage.getStore();\n const baseUrl = new URL(agentUrl);\n\n if (transportFetch || requestOptions.signal || requestOptions.requestTimeoutMs !== undefined) {\n const guardedClient = await connectMCPWithFallback(\n baseUrl,\n authHeaders,\n debugLogs,\n label,\n transportFetch,\n requestOptions\n );\n try {\n return await withAbortSignal([requestOptions.signal], undefined, () => fn(guardedClient));\n } finally {\n try {\n await guardedClient.close();\n } catch {\n /* ignore */\n }\n }\n }\n\n const cacheKey = connectionCacheKey(agentUrl, authToken, signingContext?.cacheKey, authHeaders);\n const mcpClient = await getOrCreateConnection(cacheKey, baseUrl, authHeaders, debugLogs, label, requestOptions);\n\n try {\n return await fn(mcpClient);\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : String(error);\n debugLogs.push({\n type: 'error',\n message: `MCP: ${label} call failed: ${errorMessage}`,\n timestamp: new Date().toISOString(),\n error,\n });\n\n // Auth errors won't be fixed by reconnecting — fail fast\n if (is401Error(error)) {\n connectionCache.delete(cacheKey);\n try {\n await mcpClient.close();\n } catch {\n /* ignore */\n }\n debugLogs.push({\n type: 'warning',\n message: `MCP: Authentication issue detected for ${label} - headers may not be reaching server`,\n timestamp: new Date().toISOString(),\n });\n throw error;\n }\n\n if (isAbortOrTimeoutError(error)) {\n throw error;\n }\n\n // Evict stale connection and retry once with a fresh connection\n connectionCache.delete(cacheKey);\n try {\n await mcpClient.close();\n } catch {\n /* ignore */\n }\n\n const retryClient = await getOrCreateConnection(\n cacheKey,\n baseUrl,\n authHeaders,\n debugLogs,\n `${label} (retry)`,\n requestOptions\n );\n\n try {\n return await fn(retryClient);\n } catch (retryError) {\n // Attach original error for diagnostics\n if (retryError instanceof Error && error instanceof Error) {\n retryError.cause = error;\n }\n throw retryError;\n }\n }\n}\n\n/**\n * Options for MCP tool calls with OAuth support\n */\nexport interface MCPCallOptions {\n /** Agent URL */\n agentUrl: string;\n /** Tool name to call */\n toolName: string;\n /** Tool arguments */\n args: Record<string, unknown>;\n /** Static auth token (legacy) */\n authToken?: string;\n /** OAuth provider for dynamic auth */\n authProvider?: OAuthClientProvider;\n /** Debug logs array */\n debugLogs?: DebugLogEntry[];\n /** Additional headers to send with every request (auth headers take precedence) */\n customHeaders?: Record<string, string>;\n /** RFC 9421 signing context — when set, the transport signs outbound ops per seller capability. */\n signingContext?: AgentSigningContext;\n /** Caller-owned cancellation signal for connect and callTool. */\n signal?: AbortSignal;\n /** Optional per-request timeout for connect and callTool. */\n requestTimeoutMs?: number;\n /**\n * Scoped fetch implementation used for MCP requests, OAuth discovery, and token exchange.\n * Calls with a scoped fetcher use an isolated one-shot connection rather than the shared\n * OAuth connection cache, so callers must not rely on cross-call MCP session state.\n */\n fetchFn?: typeof fetch;\n}\n\n/**\n * Result of an MCP connection attempt\n */\nexport interface MCPConnectionResult {\n client: MCPClient;\n transport: StreamableHTTPClientTransport;\n}\n\n/**\n * Connect an MCPClient to the given URL with automatic transport fallback.\n *\n * Strategy:\n * 1. Try StreamableHTTPClientTransport.\n * 2. On any transient connect failure (generic Error, McpError, or StreamableHTTPError),\n * retry once with a fresh StreamableHTTP connection. Auth failures (401) are excluded —\n * a retry is pointless and wastes a round-trip.\n * 3. If a 401 is returned, throw immediately — auth failure is transport-agnostic.\n * 4. For any other error after retry, fall back to SSEClientTransport with the same headers.\n *\n * The returned client is connected and ready for use. Callers are responsible for\n * calling client.close() when done.\n */\nexport async function connectMCPWithFallback(\n url: URL,\n authHeaders: Record<string, string>,\n debugLogs: DebugLogEntry[] = [],\n label = 'connection',\n transportFetch?: typeof fetch,\n requestOptions: { signal?: AbortSignal; requestTimeoutMs?: number } = {}\n): Promise<MCPClient> {\n return withSpan(\n 'adcp.mcp.connect',\n {\n 'http.url': url.toString(),\n 'adcp.connection_label': label,\n },\n async () => {\n return connectMCPWithFallbackImpl(url, authHeaders, debugLogs, label, transportFetch, requestOptions);\n }\n );\n}\n\nasync function connectMCPWithFallbackImpl(\n url: URL,\n authHeaders: Record<string, string>,\n debugLogs: DebugLogEntry[] = [],\n label = 'connection',\n transportFetch?: typeof fetch,\n requestOptions: { signal?: AbortSignal; requestTimeoutMs?: number } = {}\n): Promise<MCPClient> {\n const signingContext = signingContextStorage.getStore();\n // Wrap order (innermost → outermost): network → size-limit → signing → capture.\n // Size-limit applies to the raw network response so signing/capture see a\n // bounded body (capture clones via `response.clone()`, which would otherwise\n // buffer a hostile reply in memory).\n const clientRequestTimeoutMs = resolveClientRequestTimeoutMs(requestOptions.requestTimeoutMs);\n const mcpRequestOptions = {\n ...(requestOptions.signal && { signal: requestOptions.signal }),\n ...(clientRequestTimeoutMs !== undefined && { timeout: clientRequestTimeoutMs }),\n };\n const rawNetworkFetch: typeof fetch = transportFetch ?? ((input, init) => fetch(input as any, init));\n const networkFetch = (input: Parameters<typeof fetch>[0], init?: RequestInit) => {\n // Keep cancellation linked for the entire response-body lifetime. A\n // Promise race around fetch only covers receipt of response headers; MCP\n // Streamable HTTP can then hold the body open while a tool runs.\n const signals = [requestOptions.signal, init?.signal ?? undefined].filter(\n (signal): signal is AbortSignal => signal !== undefined\n );\n const signal = signals.length === 0 ? undefined : signals.length === 1 ? signals[0] : AbortSignal.any(signals);\n return rawNetworkFetch(input, { ...init, signal });\n };\n const sizeLimited = wrapFetchWithSizeLimit(networkFetch);\n const diagnosticFetch = wrapFetchWithTransportDiagnostics(sizeLimited);\n const baseFetch: typeof fetch = signingContext\n ? (buildAgentSigningFetch({\n upstream: diagnosticFetch,\n signing: signingContext.signing,\n getCapability: signingContext.getCapability,\n }) as typeof fetch)\n : diagnosticFetch;\n const transportOptions: StreamableHTTPClientTransportOptions = {\n requestInit: { headers: authHeaders, redirect: 'manual' },\n fetch: wrapFetchWithCapture(baseFetch),\n };\n let failedClient: MCPClient | undefined;\n\n try {\n const client = new MCPClient({ name: 'AdCP-Client', version: '1.0.0' });\n failedClient = client;\n debugLogs.push({\n type: 'info',\n message: `MCP: Attempting StreamableHTTP ${label} to ${url}`,\n timestamp: new Date().toISOString(),\n });\n await client.connect(new StreamableHTTPClientTransport(url, transportOptions), mcpRequestOptions);\n failedClient = undefined;\n trackStreamableHTTPUrl(url.toString());\n debugLogs.push({\n type: 'success',\n message: `MCP: Connected via StreamableHTTP for ${label}`,\n timestamp: new Date().toISOString(),\n });\n return client;\n } catch (error: unknown) {\n // Close the failed client to avoid resource leaks\n if (failedClient) {\n try {\n await failedClient.close();\n } catch {\n /* ignore */\n }\n }\n\n const errorMessage = error instanceof Error ? error.message : String(error);\n const errorClass = error instanceof Error ? error.constructor.name : typeof error;\n const httpStatus = error instanceof StreamableHTTPError ? ` [HTTP ${error.code}]` : '';\n debugLogs.push({\n type: 'error',\n message: `MCP: StreamableHTTP failed for ${label}${httpStatus} (${errorClass}): ${errorMessage}`,\n timestamp: new Date().toISOString(),\n error,\n });\n\n if (isAbortOrTimeoutError(error)) {\n throw error;\n }\n\n // Retry StreamableHTTP once on any transient connect failure — network blips,\n // JSON parse errors on half-buffered responses, and mid-handshake proxy\n // disconnects all surface as generic Error or McpError, not StreamableHTTPError.\n // Auth failures are the only class where retry is pointless and wasteful.\n if (!is401Error(error)) {\n debugLogs.push({\n type: 'info',\n message: `MCP: Transient connect error (${errorClass}) detected, retrying StreamableHTTP for ${label}`,\n timestamp: new Date().toISOString(),\n });\n const retryClient = new MCPClient({ name: 'AdCP-Client', version: '1.0.0' });\n try {\n await retryClient.connect(new StreamableHTTPClientTransport(url, transportOptions), mcpRequestOptions);\n trackStreamableHTTPUrl(url.toString());\n debugLogs.push({\n type: 'success',\n message: `MCP: Connected via StreamableHTTP (retry) for ${label}`,\n timestamp: new Date().toISOString(),\n });\n return retryClient;\n } catch (retryError) {\n try {\n await retryClient.close();\n } catch {\n /* ignore */\n }\n debugLogs.push({\n type: 'error',\n message: `MCP: StreamableHTTP retry also failed for ${label}: ${retryError instanceof Error ? retryError.message : String(retryError)}`,\n timestamp: new Date().toISOString(),\n });\n if (isAbortOrTimeoutError(retryError)) {\n throw retryError;\n }\n // Fall through to SSE fallback below\n }\n }\n\n // Auth failure — transport type won't change the outcome\n if (is401Error(error)) {\n throw error;\n }\n\n // If StreamableHTTP previously worked for this URL, don't fall back to SSE.\n // Transient failures (connection reuse, concurrency limits) should be retried\n // with StreamableHTTP, not SSE — SSE sends GET requests that return 405 on\n // servers that only support POST-based StreamableHTTP.\n if (knownStreamableHTTPUrls.has(url.toString())) {\n debugLogs.push({\n type: 'info',\n message: `MCP: StreamableHTTP previously succeeded for ${url} — skipping SSE fallback for ${label}`,\n timestamp: new Date().toISOString(),\n });\n throw error;\n }\n\n // Fall back to SSE\n debugLogs.push({\n type: 'warning',\n message: `MCP: Falling back to SSE transport for ${label}`,\n timestamp: new Date().toISOString(),\n });\n const client = new MCPClient({ name: 'AdCP-Client', version: '1.0.0' });\n try {\n await client.connect(\n new SSEClientTransport(url, {\n requestInit: { headers: authHeaders, redirect: 'manual' },\n fetch: wrapFetchWithCapture(baseFetch),\n }),\n mcpRequestOptions\n );\n } catch (sseError) {\n try {\n await client.close();\n } catch {\n /* ignore */\n }\n throw sseError;\n }\n debugLogs.push({\n type: 'success',\n message: `MCP: Connected via SSE transport for ${label}`,\n timestamp: new Date().toISOString(),\n });\n return client;\n }\n}\n\nexport async function callMCPTool(\n agentUrl: string,\n toolName: string,\n args: Record<string, unknown>,\n authToken?: string,\n debugLogs: DebugLogEntry[] = [],\n customHeaders?: Record<string, string>,\n signingContext?: AgentSigningContext,\n transportFetch?: typeof fetch,\n requestOptions?: { signal?: AbortSignal; requestTimeoutMs?: number }\n): Promise<unknown> {\n debugLogs.push({\n type: 'info',\n message: `MCP: Auth configuration`,\n timestamp: new Date().toISOString(),\n hasAuth: !!authToken,\n headers: authToken ? { 'x-adcp-auth': '***' } : {},\n customHeaderKeys: customHeaders ? Object.keys(customHeaders) : [],\n });\n debugLogs.push({\n type: 'info',\n message: `MCP: Calling tool ${toolName} with args: ${JSON.stringify(redactArgsForLog(args))}`,\n timestamp: new Date().toISOString(),\n });\n if (authToken) {\n debugLogs.push({\n type: 'info',\n message: `MCP: Transport configured with x-adcp-auth header for ${toolName}`,\n timestamp: new Date().toISOString(),\n });\n }\n\n // Custom fetch injection is an internal conformance seam whose mocks use\n // the v1 transport shape. Normal remote calls negotiate the modern era;\n // injected transports retain their exact legacy behavior.\n if (!transportFetch) {\n const modernAttempt = await tryCallModernMCPTool(agentUrl, toolName, args, authToken, debugLogs, customHeaders, {\n ...(signingContext && { signingContext }),\n ...(requestOptions?.signal && { signal: requestOptions.signal }),\n ...(requestOptions?.requestTimeoutMs !== undefined && {\n requestTimeoutMs: requestOptions.requestTimeoutMs,\n }),\n });\n if (modernAttempt.handled) {\n debugLogs.push({\n type: modernAttempt.response?.isError ? 'error' : 'success',\n message: `MCP: Tool ${toolName} response received (${modernAttempt.response?.isError ? 'error' : 'success'})`,\n timestamp: new Date().toISOString(),\n response: modernAttempt.response,\n });\n return modernAttempt.response;\n }\n }\n\n return withSpan(\n 'adcp.mcp.call_tool',\n {\n 'adcp.tool': toolName,\n 'http.url': agentUrl,\n },\n async () => {\n return signingContextStorage.run(signingContext, () =>\n callMCPToolImpl(agentUrl, toolName, args, authToken, debugLogs, customHeaders, transportFetch, requestOptions)\n );\n }\n );\n}\n\n/**\n * Call an MCP tool and return the raw CallToolResult (with isError, content, structuredContent).\n * Raw MCP tool call — returns the CallToolResult directly, including isError responses.\n */\nexport async function callMCPToolRaw(\n agentUrl: string,\n toolName: string,\n args: Record<string, unknown>,\n authToken?: string,\n debugLogs: DebugLogEntry[] = [],\n customHeaders?: Record<string, string>,\n signingContext?: AgentSigningContext,\n transportFetch?: typeof fetch\n): Promise<unknown> {\n return signingContextStorage.run(signingContext, () =>\n callMCPToolRawImpl(agentUrl, toolName, args, authToken, debugLogs, customHeaders, transportFetch)\n );\n}\n\nasync function callMCPToolImpl(\n agentUrl: string,\n toolName: string,\n args: Record<string, unknown>,\n authToken?: string,\n debugLogs: DebugLogEntry[] = [],\n customHeaders?: Record<string, string>,\n transportFetch?: typeof fetch,\n requestOptions?: { signal?: AbortSignal; requestTimeoutMs?: number }\n): Promise<unknown> {\n // Inject trace context headers for distributed tracing\n const traceHeaders = injectTraceHeaders();\n\n // Merge: custom < trace < auth (auth always wins)\n const authHeaders = {\n ...customHeaders,\n ...traceHeaders,\n ...(authToken ? createMCPAuthHeaders(authToken) : {}),\n };\n\n const resolvedRequestTimeoutMs = resolveClientRequestTimeoutMs(requestOptions?.requestTimeoutMs);\n const response = await withCachedConnection(\n agentUrl,\n authToken,\n authHeaders,\n debugLogs,\n toolName,\n client =>\n client.callTool({ name: toolName, arguments: args }, undefined, {\n ...(requestOptions?.signal && { signal: requestOptions.signal }),\n ...(resolvedRequestTimeoutMs !== undefined && { timeout: resolvedRequestTimeoutMs }),\n }) as Promise<CallToolResponse>,\n transportFetch,\n requestOptions\n );\n\n debugLogs.push({\n type: response?.isError ? 'error' : 'success',\n message: `MCP: Tool ${toolName} response received (${response?.isError ? 'error' : 'success'})`,\n timestamp: new Date().toISOString(),\n response: response,\n });\n\n return response;\n}\n\n/**\n * Raw MCP tool call — returns the CallToolResult directly.\n */\nasync function callMCPToolRawImpl(\n agentUrl: string,\n toolName: string,\n args: Record<string, unknown>,\n authToken?: string,\n debugLogs: DebugLogEntry[] = [],\n customHeaders?: Record<string, string>,\n transportFetch?: typeof fetch\n): Promise<unknown> {\n const traceHeaders = injectTraceHeaders();\n const authHeaders = {\n ...customHeaders,\n ...traceHeaders,\n ...(authToken ? createMCPAuthHeaders(authToken) : {}),\n };\n\n return withCachedConnection(\n agentUrl,\n authToken,\n authHeaders,\n debugLogs,\n toolName,\n client => client.callTool({ name: toolName, arguments: args }),\n transportFetch\n );\n}\n\n/**\n * Connect to an MCP server with OAuth support\n *\n * This function handles both static token auth and OAuth flows.\n * When using OAuth, if the server requires authorization:\n * 1. UnauthorizedError is thrown\n * 2. The OAuth provider's redirectToAuthorization is called\n * 3. Caller should wait for callback and call finishAuth on transport\n *\n * @param options Connection options\n * @returns MCP client and transport (for finishing OAuth if needed)\n * @throws UnauthorizedError if OAuth is required\n *\n * @example\n * ```typescript\n * // With OAuth provider\n * const provider = createCLIOAuthProvider(serverUrl);\n *\n * try {\n * const { client, transport } = await connectMCP({\n * agentUrl: serverUrl,\n * authProvider: provider\n * });\n * // Connected! Use client...\n * } catch (error) {\n * if (error instanceof UnauthorizedError) {\n * // OAuth flow started, wait for callback\n * const code = await provider.waitForCallback();\n * await transport.finishAuth(code);\n * // Retry connection...\n * }\n * }\n * ```\n *\n * @deprecated Low-level v1/SSE escape hatch. High-level AgentClient discovery,\n * tool listing, OAuth calls, and `callMCPTool*` APIs negotiate MCP 2026-07-28.\n * Keep this only for callers that require the v1 SDK client/transport pair or\n * its interactive `finishAuth()` lifecycle.\n */\nexport async function connectMCP(options: {\n agentUrl: string;\n authToken?: string;\n authProvider?: OAuthClientProvider;\n debugLogs?: DebugLogEntry[];\n customHeaders?: Record<string, string>;\n signingContext?: AgentSigningContext;\n signal?: AbortSignal;\n requestTimeoutMs?: number;\n fetchFn?: typeof fetch;\n}): Promise<MCPConnectionResult> {\n const {\n agentUrl,\n authToken,\n authProvider,\n debugLogs = [],\n customHeaders,\n signingContext,\n signal,\n requestTimeoutMs: configuredRequestTimeoutMs,\n fetchFn,\n } = options;\n const baseUrl = new URL(agentUrl);\n\n debugLogs.push({\n type: 'info',\n message: `MCP: Connecting to ${baseUrl}`,\n timestamp: new Date().toISOString(),\n authMethod: authProvider ? 'oauth' : authToken ? 'token' : 'none',\n });\n\n const mcpClient = new MCPClient({\n name: 'AdCP-Client',\n version: '1.0.0',\n });\n\n // Build transport options\n const transportOptions: StreamableHTTPClientTransportOptions = {};\n\n // Header-only auth (basic, x-api-key, custom routing) lives entirely on\n // `customHeaders`. Attach it whenever it's present, regardless of which\n // auth branch fires — OAuth + routing headers, bearer + tenant headers,\n // and pure-header auth must all reach the wire.\n //\n // Precedence note: the MCP SDK's `_commonHeaders()` (StreamableHTTP)\n // spreads `requestInit.headers` *over* any provider-emitted `Authorization`\n // (`new Headers({ ...providerHeaders, ...requestInitHeaders })`, last-write-\n // wins). To prevent a caller-supplied `Authorization` in `customHeaders`\n // from silently overriding the OAuth provider's bearer, drop any\n // `Authorization` key from `customHeaders` when `authProvider` is set.\n // OAuth is the source of truth for the bearer in that branch; non-auth\n // routing/tenant headers still flow through.\n const filteredCustomHeaders = authProvider\n ? Object.fromEntries(Object.entries(customHeaders ?? {}).filter(([k]) => k.toLowerCase() !== 'authorization'))\n : customHeaders;\n const authHeaders: Record<string, string> = {\n ...filteredCustomHeaders,\n ...(authToken ? createMCPAuthHeaders(authToken) : {}),\n };\n transportOptions.requestInit = { headers: authHeaders, redirect: 'manual' };\n if (authProvider) {\n transportOptions.authProvider = authProvider;\n debugLogs.push({\n type: 'info',\n message: 'MCP: Using OAuth provider for authentication',\n timestamp: new Date().toISOString(),\n });\n } else if (authToken) {\n debugLogs.push({\n type: 'info',\n message: 'MCP: Using static token for authentication',\n timestamp: new Date().toISOString(),\n });\n } else if (Object.keys(authHeaders).length > 0) {\n debugLogs.push({\n type: 'info',\n message: 'MCP: Using custom headers for authentication',\n timestamp: new Date().toISOString(),\n });\n }\n\n // RFC 9421 signing — wrap the transport's fetch so the signer sees the final\n // headers the SDK assembled (including any OAuth-issued Authorization) and\n // decides per outbound request whether to sign. Size-limit sits innermost so\n // the response body is bounded before signing/capture observe it.\n const requestTimeoutMs = resolveRequestTimeoutMs(configuredRequestTimeoutMs);\n const clientRequestTimeoutMs = resolveClientRequestTimeoutMs(configuredRequestTimeoutMs);\n const requestOptions = {\n ...(signal && { signal }),\n ...(clientRequestTimeoutMs !== undefined && { timeout: clientRequestTimeoutMs }),\n };\n const rawNetworkFetch: typeof fetch = fetchFn ?? ((input, init) => fetch(input, init));\n const sizeLimited = wrapFetchWithSizeLimit((input, init) =>\n withAbortSignal<Response>([signal, init?.signal], requestTimeoutMs, linkedSignal =>\n rawNetworkFetch(input, { ...init, signal: linkedSignal })\n )\n );\n const diagnosticFetch = wrapFetchWithTransportDiagnostics(sizeLimited);\n const signedFetch: typeof fetch = signingContext\n ? (buildAgentSigningFetch({\n upstream: diagnosticFetch,\n signing: signingContext.signing,\n getCapability: signingContext.getCapability,\n }) as typeof fetch)\n : diagnosticFetch;\n transportOptions.fetch = wrapFetchWithCapture(signedFetch);\n\n const transport = new StreamableHTTPClientTransport(baseUrl, transportOptions);\n\n try {\n await mcpClient.connect(transport, requestOptions);\n debugLogs.push({\n type: 'success',\n message: 'MCP: Connected successfully',\n timestamp: new Date().toISOString(),\n });\n return { client: mcpClient, transport };\n } catch (error) {\n // If it's an UnauthorizedError, the OAuth flow has started\n // Rethrow so the caller can handle the callback\n if (error instanceof UnauthorizedError) {\n debugLogs.push({\n type: 'info',\n message: 'MCP: OAuth authorization required, flow initiated',\n timestamp: new Date().toISOString(),\n });\n // Return transport so caller can call finishAuth\n throw Object.assign(error, { transport, client: mcpClient });\n }\n\n // Non-OAuth 401 — the SDK sent credentials that the agent rejected (or\n // sent none when it needed them). The raw transport error is shaped like\n // `Error POSTing to endpoint (HTTP 401): unauthorized`, which omits the\n // crucial piece of debug data: *which auth scheme did the SDK actually\n // use*. Without that, a caller can't diff against curl. Wrap the error\n // with a scheme tag and a remediation hint, preserving the original\n // under `.cause` so existing `is401Error` / `error.status` checks\n // downstream still resolve.\n if (is401Error(error)) {\n const scheme = authProvider\n ? 'oauth'\n : authToken\n ? 'bearer'\n : Object.keys(authHeaders).length > 0\n ? 'header'\n : 'none';\n const hint =\n scheme === 'none'\n ? 'No credentials were sent. Configure auth_token, headers, or oauth_tokens on the agent config (or pass --auth on the CLI).'\n : scheme === 'header'\n ? \"Verify the Authorization header value matches the gateway (basic-auth: 'Basic ' + base64(user:pass); pair with --auth-scheme basic on the CLI).\"\n : scheme === 'bearer'\n ? \"Verify the bearer token matches the agent's expected credential.\"\n : 'OAuth provider returned tokens that the agent rejected — check the provider configuration and token scopes.';\n const detail = `MCP connect rejected with HTTP 401 from ${agentUrl}. SDK sent auth scheme: ${scheme}. ${hint}`;\n const wrapped = Object.assign(new Error(detail), {\n cause: error,\n code: 'MCP_AUTH_REJECTED',\n scheme,\n agentUrl,\n originalError: error,\n });\n throw wrapped;\n }\n\n throw error;\n }\n}\n\n/**\n * Call an MCP tool with OAuth support.\n *\n * OAuth connections are cached by agent URL and OAuth provider identity so a\n * service-to-service workflow can reuse the initialized MCP session across\n * related tool calls. Reuse the same OAuthClientProvider instance for a\n * session/source/principal; the provider owns token refresh state for the\n * cached transport.\n *\n * Supplying `fetchFn` opts out of connection reuse. Scoped fetchers commonly\n * carry request- or tenant-specific network policy, so each call gets an\n * isolated connection that is closed after the tool response.\n *\n * Signing: this path consumes `options.signingContext` via the transport —\n * `connectMCP` attaches a signing-fetch wrapper at transport-creation time —\n * rather than via `signingContextStorage`. The OAuth cache key includes the\n * signing cache key so different signing identities do not share a transport.\n * The non-OAuth fallback (`callMCPTool`) does enter ALS.\n *\n * @param options Call options\n * @returns Tool response\n * @throws UnauthorizedError if OAuth is required (with transport attached)\n */\nexport async function callMCPToolWithOAuth(options: MCPCallOptions): Promise<unknown> {\n const {\n agentUrl,\n toolName,\n args,\n authToken,\n authProvider,\n debugLogs = [],\n customHeaders,\n signingContext,\n signal,\n requestTimeoutMs,\n fetchFn,\n } = options;\n const resolvedRequestTimeoutMs = resolveClientRequestTimeoutMs(requestTimeoutMs);\n const requestOptions = {\n ...(signal && { signal }),\n ...(resolvedRequestTimeoutMs !== undefined && { timeout: resolvedRequestTimeoutMs }),\n };\n\n // If no OAuth provider, use the legacy function\n if (!authProvider) {\n return callMCPTool(agentUrl, toolName, args, authToken, debugLogs, customHeaders, signingContext, fetchFn, {\n signal,\n requestTimeoutMs,\n });\n }\n\n const modernAttempt = await tryCallModernMCPTool(agentUrl, toolName, args, undefined, debugLogs, customHeaders, {\n authProvider,\n signingContext,\n signal,\n requestTimeoutMs,\n fetchFn,\n handleLegacy: true,\n });\n if (modernAttempt.handled) {\n debugLogs.push({\n type: modernAttempt.response?.isError ? 'error' : 'success',\n message: `MCP: Tool ${toolName} response received`,\n timestamp: new Date().toISOString(),\n });\n return modernAttempt.response;\n }\n\n const response = await withCachedOAuthConnection(\n {\n agentUrl,\n authProvider,\n debugLogs,\n customHeaders,\n signingContext,\n signal,\n requestTimeoutMs,\n fetchFn,\n },\n toolName,\n async client => {\n debugLogs.push({\n type: 'info',\n message: `MCP: Calling tool ${toolName}`,\n timestamp: new Date().toISOString(),\n });\n\n const response = await client.callTool({ name: toolName, arguments: args }, undefined, requestOptions);\n\n debugLogs.push({\n type: response?.isError ? 'error' : 'success',\n message: `MCP: Tool ${toolName} response received`,\n timestamp: new Date().toISOString(),\n });\n\n return response;\n }\n );\n\n return response;\n}\n"],"mappings":"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","names":["require","signal","response"]}
@@ -400,7 +400,7 @@ export interface paths {
400
400
  };
401
401
  /**
402
402
  * List agents
403
- * @description List all agents in the registry. Optionally enrich with health checks, capabilities, and property summaries via query parameters. Measurement-vendor filters (`metric_id`, `accreditation`, `q`) imply `type=measurement` when `type` is unset; an explicit `type` other than `measurement` returns 400.
403
+ * @description List all agents in the registry. Optionally enrich with health checks, capabilities, and property summaries via query parameters. Measurement-vendor filters (`metric_id`, `accreditation`, `q`) imply `type=measurement`. Canonical creative-capability filters (`format_kind`, `publisher_domain`, `format_option_id`, `capability_id`, `creative_operation`) match any endpoint exposing that creative surface, including mixed sales/creative agents; add an explicit `type` only to narrow by primary registry classification.
404
404
  */
405
405
  get: operations["listAgents"];
406
406
  put?: never;
@@ -946,8 +946,8 @@ export interface paths {
946
946
  cookie?: never;
947
947
  };
948
948
  /**
949
- * Get agent formats
950
- * @description Fetch creative formats from a creative agent.
949
+ * Get creative-agent format capabilities
950
+ * @description Fetch get_adcp_capabilities creative.supported_formats[] from a creative agent.
951
951
  */
952
952
  get: operations["getAgentFormats"];
953
953
  put?: never;
@@ -1109,7 +1109,7 @@ export interface paths {
1109
1109
  };
1110
1110
  /**
1111
1111
  * Registry change feed
1112
- * @description Poll a cursor-based feed of registry changes. Events are ordered by UUID v7 event_id for monotonic cursor progression. The feed retains events for 90 days. The `freshness` object reports when the response was generated, the newest matching event currently visible to the feed, and the resulting feed lag.
1112
+ * @description Poll a cursor-based feed of registry changes. Events are ordered by UUID v7 event_id for monotonic cursor progression. The feed retains events for 90 days. The `freshness` object reports when the response was generated, the newest matching event currently visible to the feed, and the resulting feed lag. `publisher.adagents_changed` covers semantic changes in every top-level catalog field, including formats-only and placements-only revisions; new 3.2 events identify them in `payload.changed_fields`.
1113
1113
  *
1114
1114
  * Type filtering supports glob patterns: `property.*` matches `property.created`, `property.updated`, etc.
1115
1115
  */
@@ -2418,10 +2418,27 @@ export interface components {
2418
2418
  can_list_properties: boolean;
2419
2419
  };
2420
2420
  creative_capabilities?: {
2421
- formats_supported: string[];
2421
+ supported_formats: ({
2422
+ capability_id?: string;
2423
+ format: {
2424
+ format_kind: string;
2425
+ publisher_domain?: string;
2426
+ format_option_id?: string;
2427
+ params?: {
2428
+ [key: string]: unknown;
2429
+ };
2430
+ } & {
2431
+ [key: string]: unknown;
2432
+ };
2433
+ operations: ("build" | "validate" | "preview")[];
2434
+ } & {
2435
+ [key: string]: unknown;
2436
+ })[];
2422
2437
  can_generate: boolean;
2423
2438
  can_validate: boolean;
2424
2439
  can_preview: boolean;
2440
+ } & {
2441
+ [key: string]: unknown;
2425
2442
  };
2426
2443
  signals_capabilities?: {
2427
2444
  audience_types: string[];
@@ -2666,7 +2683,7 @@ export interface components {
2666
2683
  /** @description Industry labels from brand.json when present. */
2667
2684
  industries?: string[];
2668
2685
  };
2669
- /** @description Display-oriented summary of top-level adagents.json `formats[]`, normalized for publisher pages and agent discovery clients. Each entry preserves `format_kind`, `format_option_id`, and canonical params. */
2686
+ /** @description Lossy display-oriented summary of top-level adagents.json `formats[]`, normalized for publisher pages and eligibility discovery. It preserves `format_kind`, `format_option_id`, params, property scope, preference, and experimental status, but omits `v1_format_ref`, `canonical_formats_only`, `applies_to_channels`, `publisher_domain`, and custom `format_shape`/`format_schema`. Fetch the canonical document at hosting.resolved_url (or hosting.expected_url when self-hosted) for creative validation. */
2670
2687
  formats?: {
2671
2688
  /** @description Stable format option identifier from adagents.json `formats[]`. */
2672
2689
  format_option_id?: string;
@@ -2689,6 +2706,32 @@ export interface components {
2689
2706
  /** @description Whether this seller's format declaration is marked experimental. */
2690
2707
  experimental?: boolean;
2691
2708
  }[];
2709
+ /** @description Eligibility-oriented publisher placement summaries. Present only when the request includes `include=placements`; format references are resolved to canonical kind/params so callers can join property → placement → format without a second origin fetch. */
2710
+ placements?: {
2711
+ placement_id: string;
2712
+ name: string;
2713
+ description?: string;
2714
+ property_ids?: string[];
2715
+ property_tags?: string[];
2716
+ collection_ids?: string[];
2717
+ channels?: string[];
2718
+ tags?: string[];
2719
+ /** @description Placement format references resolved against the same response's top-level formats plus any inline canonical declarations. */
2720
+ format_options?: {
2721
+ format_option_id?: string;
2722
+ /** @description Resolved canonical format kind accepted by this placement. */
2723
+ format_kind: string;
2724
+ /** @description Resolved canonical narrowing for this placement format. */
2725
+ params?: {
2726
+ [key: string]: unknown;
2727
+ };
2728
+ }[];
2729
+ /**
2730
+ * @description Publisher-origin placements are adagents_json; moderator-maintained catalog placements are community.
2731
+ * @enum {string}
2732
+ */
2733
+ source: "adagents_json" | "community";
2734
+ }[];
2692
2735
  authorized_agents: {
2693
2736
  url: string;
2694
2737
  authorized_for?: string;
@@ -3578,7 +3621,9 @@ export interface components {
3578
3621
  category_taxonomy?: string | null;
3579
3622
  tags?: string[];
3580
3623
  delivery_types?: string[];
3624
+ /** @description Deprecated 3.x named-format profile projection. */
3581
3625
  format_ids?: string[];
3626
+ format_kinds?: string[];
3582
3627
  property_count?: number;
3583
3628
  publisher_count?: number;
3584
3629
  has_tmp?: boolean;
@@ -3741,6 +3786,12 @@ export interface components {
3741
3786
  agent_count?: number;
3742
3787
  property_count?: number;
3743
3788
  collection_count?: number;
3789
+ /** @description Number of top-level formats[] declarations after the revision. */
3790
+ format_count?: number;
3791
+ /** @description Number of top-level placements[] declarations after the revision. */
3792
+ placement_count?: number;
3793
+ /** @description Semantic top-level adagents.json fields changed by this revision, including formats or placements. Present on newly emitted 3.2 change events. */
3794
+ changed_fields?: string[];
3744
3795
  discovery_method?: string;
3745
3796
  manager_domain?: string | null;
3746
3797
  source?: string;
@@ -5314,6 +5365,16 @@ export interface operations {
5314
5365
  accreditation?: string | string[];
5315
5366
  /** @description Measurement-vendor filter: case-insensitive substring match against `measurement.metrics[].metric_id`. v1 scope: metric_id only (description/standard search is a follow-up). Max 64 chars; SQL wildcard characters are escaped. Implies `type=measurement`. */
5316
5367
  q?: string;
5368
+ /** @description Canonical creative-capability filter: exact match on creative.supported_formats[].format.format_kind. Repeatable with OR semantics. Matches standalone creative agents and mixed-role endpoints. */
5369
+ format_kind?: string | string[];
5370
+ /** @description Canonical creative-capability filter: exact publisher_domain on the same supported-format entry. Pair with format_option_id to find endpoints claiming an exact publisher format. */
5371
+ publisher_domain?: string;
5372
+ /** @description Canonical creative-capability filter: exact publisher format_option_id on the same supported-format entry. */
5373
+ format_option_id?: string;
5374
+ /** @description Canonical creative-capability filter: exact endpoint-local creative.supported_formats[].capability_id. */
5375
+ capability_id?: string;
5376
+ /** @description Canonical creative-capability filter: required supported operation on the same format entry. Repeatable with OR semantics. */
5377
+ creative_operation?: ("build" | "validate" | "preview") | ("build" | "validate" | "preview")[];
5317
5378
  /** @description Filter to agents whose active badge covers the given verification axis. Repeat the parameter for AND semantics: ?verification_mode=spec&verification_mode=live returns only agents verified on both axes. */
5318
5379
  verification_mode?: ("spec" | "live")[];
5319
5380
  /** @description When true, filter to agents that hold any active verification badge. */
@@ -5682,6 +5743,8 @@ export interface operations {
5682
5743
  parameters: {
5683
5744
  query: {
5684
5745
  domain: string;
5746
+ /** @description Set to placements to include eligibility-oriented placement summaries with resolved canonical format options. */
5747
+ include?: "placements";
5685
5748
  };
5686
5749
  header?: never;
5687
5750
  path?: never;
@@ -6759,7 +6822,7 @@ export interface operations {
6759
6822
  };
6760
6823
  requestBody?: never;
6761
6824
  responses: {
6762
- /** @description Creative formats */
6825
+ /** @description Canonical creative capabilities */
6763
6826
  200: {
6764
6827
  headers: {
6765
6828
  [name: string]: unknown;
@@ -7457,8 +7520,8 @@ export interface operations {
7457
7520
  categories: string[];
7458
7521
  tags: string[];
7459
7522
  delivery_types: string[];
7460
- /** @description Creative format identifiers supported by this agent */
7461
- format_ids: unknown[];
7523
+ /** @description Canonical format kinds present in this agent's indexed inventory profile */
7524
+ format_kinds: string[];
7462
7525
  property_count: number;
7463
7526
  publisher_count: number;
7464
7527
  has_tmp: boolean;