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

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 (1441) hide show
  1. package/ADCP_VERSION +1 -1
  2. package/compliance/cache/{3.1.8 → 3.1.10}/domains/media-buy/index.yaml +1 -0
  3. package/compliance/cache/3.1.10/domains/media-buy/scenarios/dependency_impairment_audience.yaml +317 -0
  4. package/compliance/cache/{3.1.8 → 3.1.10}/index.json +3 -3
  5. package/compliance/cache/{3.1.8.previous/domains → 3.1.10/protocols}/media-buy/index.yaml +1 -0
  6. package/compliance/cache/3.1.10/protocols/media-buy/scenarios/dependency_impairment_audience.yaml +317 -0
  7. package/compliance/cache/{3.1.8.previous → 3.1.10}/universal/runner-output-contract.yaml +1 -1
  8. package/compliance/cache/{3.1.8/protocols → 3.1.10.previous/domains}/media-buy/index.yaml +1 -0
  9. package/compliance/cache/3.1.10.previous/domains/media-buy/scenarios/dependency_impairment_audience.yaml +317 -0
  10. package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/index.json +3 -3
  11. package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/protocols/media-buy/index.yaml +1 -0
  12. package/compliance/cache/3.1.10.previous/protocols/media-buy/scenarios/dependency_impairment_audience.yaml +317 -0
  13. package/compliance/cache/{3.1.8 → 3.1.10.previous}/universal/runner-output-contract.yaml +1 -1
  14. package/dist/lib/adapters/legacy/v2-5/sync_creatives.d.mts +4 -3
  15. package/dist/lib/adapters/legacy/v2-5/sync_creatives.d.ts +4 -3
  16. package/dist/lib/adapters/legacy/v2-5/sync_creatives.d.ts.map +1 -1
  17. package/dist/lib/adapters/legacy/v2-5/sync_creatives.js.map +1 -1
  18. package/dist/lib/adapters/legacy/v2-5/sync_creatives.mjs.map +1 -1
  19. package/dist/lib/auth/oauth/MCPOAuthProvider.d.mts +2 -0
  20. package/dist/lib/auth/oauth/MCPOAuthProvider.d.ts +2 -0
  21. package/dist/lib/auth/oauth/MCPOAuthProvider.d.ts.map +1 -1
  22. package/dist/lib/auth/oauth/MCPOAuthProvider.js +8 -7
  23. package/dist/lib/auth/oauth/MCPOAuthProvider.js.map +1 -1
  24. package/dist/lib/auth/oauth/MCPOAuthProvider.mjs +8 -7
  25. package/dist/lib/auth/oauth/MCPOAuthProvider.mjs.map +1 -1
  26. package/dist/lib/auth/oauth/file-storage.d.mts +2 -1
  27. package/dist/lib/auth/oauth/file-storage.d.ts +2 -1
  28. package/dist/lib/auth/oauth/file-storage.d.ts.map +1 -1
  29. package/dist/lib/auth/oauth/file-storage.js +5 -1
  30. package/dist/lib/auth/oauth/file-storage.js.map +1 -1
  31. package/dist/lib/auth/oauth/file-storage.mjs +5 -1
  32. package/dist/lib/auth/oauth/file-storage.mjs.map +1 -1
  33. package/dist/lib/auth/oauth/index.d.mts +5 -1
  34. package/dist/lib/auth/oauth/index.d.ts +5 -1
  35. package/dist/lib/auth/oauth/index.d.ts.map +1 -1
  36. package/dist/lib/auth/oauth/index.js +4 -0
  37. package/dist/lib/auth/oauth/index.js.map +1 -1
  38. package/dist/lib/auth/oauth/index.mjs +4 -0
  39. package/dist/lib/auth/oauth/index.mjs.map +1 -1
  40. package/dist/lib/auth/oauth/resource-url.d.mts +4 -0
  41. package/dist/lib/auth/oauth/resource-url.d.ts +5 -0
  42. package/dist/lib/auth/oauth/resource-url.d.ts.map +1 -0
  43. package/dist/lib/auth/oauth/resource-url.js +51 -0
  44. package/dist/lib/auth/oauth/resource-url.js.map +1 -0
  45. package/dist/lib/auth/oauth/resource-url.mjs +27 -0
  46. package/dist/lib/auth/oauth/resource-url.mjs.map +1 -0
  47. package/dist/lib/auth/oauth/types.d.mts +7 -0
  48. package/dist/lib/auth/oauth/types.d.ts +7 -0
  49. package/dist/lib/auth/oauth/types.d.ts.map +1 -1
  50. package/dist/lib/auth/oauth/types.js.map +1 -1
  51. package/dist/lib/auth/oauth/types.mjs.map +1 -1
  52. package/dist/lib/auth/oauth/web-flow.d.mts +30 -5
  53. package/dist/lib/auth/oauth/web-flow.d.ts +30 -5
  54. package/dist/lib/auth/oauth/web-flow.d.ts.map +1 -1
  55. package/dist/lib/auth/oauth/web-flow.js +52 -8
  56. package/dist/lib/auth/oauth/web-flow.js.map +1 -1
  57. package/dist/lib/auth/oauth/web-flow.mjs +51 -8
  58. package/dist/lib/auth/oauth/web-flow.mjs.map +1 -1
  59. package/dist/lib/core/AgentClient.d.mts +2 -2
  60. package/dist/lib/core/AgentClient.d.ts +2 -2
  61. package/dist/lib/core/AgentClient.d.ts.map +1 -1
  62. package/dist/lib/core/AgentClient.js.map +1 -1
  63. package/dist/lib/core/AgentClient.mjs.map +1 -1
  64. package/dist/lib/registry/types.generated.d.mts +72 -9
  65. package/dist/lib/registry/types.generated.d.ts +72 -9
  66. package/dist/lib/registry/types.generated.d.ts.map +1 -1
  67. package/dist/lib/registry/types.generated.js.map +1 -1
  68. package/dist/lib/schemas-data/3.1/a2ui/bound-value.json +1 -1
  69. package/dist/lib/schemas-data/3.1/a2ui/component.json +1 -1
  70. package/dist/lib/schemas-data/3.1/a2ui/si-catalog.json +25 -25
  71. package/dist/lib/schemas-data/3.1/a2ui/surface.json +2 -2
  72. package/dist/lib/schemas-data/3.1/a2ui/user-action.json +1 -1
  73. package/dist/lib/schemas-data/3.1/aao/agent-publishers.json +1 -1
  74. package/dist/lib/schemas-data/3.1/account/get-account-financials-request.json +6 -6
  75. package/dist/lib/schemas-data/3.1/account/get-account-financials-response.json +12 -12
  76. package/dist/lib/schemas-data/3.1/account/list-accounts-request.json +6 -6
  77. package/dist/lib/schemas-data/3.1/account/list-accounts-response.json +8 -8
  78. package/dist/lib/schemas-data/3.1/account/report-usage-request.json +6 -6
  79. package/dist/lib/schemas-data/3.1/account/report-usage-response.json +6 -6
  80. package/dist/lib/schemas-data/3.1/account/sync-accounts-request.json +12 -12
  81. package/dist/lib/schemas-data/3.1/account/sync-accounts-response.json +16 -16
  82. package/dist/lib/schemas-data/3.1/account/sync-governance-request.json +6 -6
  83. package/dist/lib/schemas-data/3.1/account/sync-governance-response.json +10 -10
  84. package/dist/lib/schemas-data/3.1/adagents.json +29 -29
  85. package/dist/lib/schemas-data/3.1/brand/acquire-rights-request.json +10 -10
  86. package/dist/lib/schemas-data/3.1/brand/acquire-rights-response.json +16 -16
  87. package/dist/lib/schemas-data/3.1/brand/creative-approval-request.json +5 -5
  88. package/dist/lib/schemas-data/3.1/brand/creative-approval-response.json +12 -12
  89. package/dist/lib/schemas-data/3.1/brand/get-brand-identity-request.json +4 -4
  90. package/dist/lib/schemas-data/3.1/brand/get-brand-identity-response.json +10 -10
  91. package/dist/lib/schemas-data/3.1/brand/get-rights-request.json +8 -8
  92. package/dist/lib/schemas-data/3.1/brand/get-rights-response.json +11 -11
  93. package/dist/lib/schemas-data/3.1/brand/revocation-notification.json +4 -4
  94. package/dist/lib/schemas-data/3.1/brand/rights-pricing-option.json +5 -5
  95. package/dist/lib/schemas-data/3.1/brand/rights-terms.json +3 -3
  96. package/dist/lib/schemas-data/3.1/brand/search-brands-request.json +6 -6
  97. package/dist/lib/schemas-data/3.1/brand/search-brands-response.json +11 -11
  98. package/dist/lib/schemas-data/3.1/brand/update-rights-request.json +6 -6
  99. package/dist/lib/schemas-data/3.1/brand/update-rights-response.json +11 -11
  100. package/dist/lib/schemas-data/3.1/brand/verification-status.json +1 -1
  101. package/dist/lib/schemas-data/3.1/brand/verify-brand-claim-request.json +2 -2
  102. package/dist/lib/schemas-data/3.1/brand/verify-brand-claim-response.json +13 -13
  103. package/dist/lib/schemas-data/3.1/brand/verify-brand-claims-request.json +2 -2
  104. package/dist/lib/schemas-data/3.1/brand/verify-brand-claims-response.json +13 -13
  105. package/dist/lib/schemas-data/3.1/brand.json +21 -21
  106. package/dist/lib/schemas-data/3.1/bundled/content-standards/calibrate-content-request.json +12 -12
  107. package/dist/lib/schemas-data/3.1/bundled/content-standards/calibrate-content-response.json +12 -12
  108. package/dist/lib/schemas-data/3.1/bundled/content-standards/create-content-standards-request.json +16 -16
  109. package/dist/lib/schemas-data/3.1/bundled/content-standards/create-content-standards-response.json +10 -10
  110. package/dist/lib/schemas-data/3.1/bundled/content-standards/get-content-standards-request.json +5 -5
  111. package/dist/lib/schemas-data/3.1/bundled/content-standards/get-content-standards-response.json +23 -23
  112. package/dist/lib/schemas-data/3.1/bundled/content-standards/get-media-buy-artifacts-request.json +16 -16
  113. package/dist/lib/schemas-data/3.1/bundled/content-standards/get-media-buy-artifacts-response.json +18 -18
  114. package/dist/lib/schemas-data/3.1/bundled/content-standards/list-content-standards-request.json +7 -7
  115. package/dist/lib/schemas-data/3.1/bundled/content-standards/list-content-standards-response.json +24 -24
  116. package/dist/lib/schemas-data/3.1/bundled/content-standards/update-content-standards-request.json +16 -16
  117. package/dist/lib/schemas-data/3.1/bundled/content-standards/update-content-standards-response.json +10 -10
  118. package/dist/lib/schemas-data/3.1/bundled/content-standards/validate-content-delivery-request.json +12 -12
  119. package/dist/lib/schemas-data/3.1/bundled/content-standards/validate-content-delivery-response.json +12 -12
  120. package/dist/lib/schemas-data/3.1/bundled/core/tasks-get-request.json +16 -16
  121. package/dist/lib/schemas-data/3.1/bundled/core/tasks-get-response.json +181 -181
  122. package/dist/lib/schemas-data/3.1/bundled/core/tasks-list-request.json +21 -21
  123. package/dist/lib/schemas-data/3.1/bundled/core/tasks-list-response.json +11 -11
  124. package/dist/lib/schemas-data/3.1/bundled/creative/get-creative-delivery-request.json +17 -17
  125. package/dist/lib/schemas-data/3.1/bundled/creative/get-creative-delivery-response.json +56 -56
  126. package/dist/lib/schemas-data/3.1/bundled/creative/get-creative-features-request.json +44 -44
  127. package/dist/lib/schemas-data/3.1/bundled/creative/get-creative-features-response.json +13 -13
  128. package/dist/lib/schemas-data/3.1/bundled/creative/list-creative-formats-request.json +16 -16
  129. package/dist/lib/schemas-data/3.1/bundled/creative/list-creative-formats-response.json +48 -48
  130. package/dist/lib/schemas-data/3.1/bundled/creative/list-creatives-request.json +17 -17
  131. package/dist/lib/schemas-data/3.1/bundled/creative/list-creatives-response.json +58 -58
  132. package/dist/lib/schemas-data/3.1/bundled/creative/list-transformers-request.json +18 -18
  133. package/dist/lib/schemas-data/3.1/bundled/creative/list-transformers-response.json +16 -16
  134. package/dist/lib/schemas-data/3.1/bundled/creative/preview-creative-request.json +44 -44
  135. package/dist/lib/schemas-data/3.1/bundled/creative/preview-creative-response.json +50 -50
  136. package/dist/lib/schemas-data/3.1/bundled/creative/sync-creatives-request.json +46 -46
  137. package/dist/lib/schemas-data/3.1/bundled/creative/sync-creatives-response.json +27 -27
  138. package/dist/lib/schemas-data/3.1/bundled/creative/validate-input-request.json +42 -42
  139. package/dist/lib/schemas-data/3.1/bundled/creative/validate-input-response.json +10 -10
  140. package/dist/lib/schemas-data/3.1/bundled/media-buy/build-creative-request.json +53 -53
  141. package/dist/lib/schemas-data/3.1/bundled/media-buy/build-creative-response.json +54 -54
  142. package/dist/lib/schemas-data/3.1/bundled/media-buy/create-media-buy-request.json +83 -83
  143. package/dist/lib/schemas-data/3.1/bundled/media-buy/create-media-buy-response.json +77 -77
  144. package/dist/lib/schemas-data/3.1/bundled/media-buy/get-media-buy-delivery-request.json +25 -25
  145. package/dist/lib/schemas-data/3.1/bundled/media-buy/get-media-buy-delivery-response.json +40 -40
  146. package/dist/lib/schemas-data/3.1/bundled/media-buy/get-media-buys-request.json +18 -18
  147. package/dist/lib/schemas-data/3.1/bundled/media-buy/get-media-buys-response.json +65 -65
  148. package/dist/lib/schemas-data/3.1/bundled/media-buy/get-products-request.json +49 -49
  149. package/dist/lib/schemas-data/3.1/bundled/media-buy/get-products-response.json +99 -99
  150. package/dist/lib/schemas-data/3.1/bundled/media-buy/list-creative-formats-request.json +12 -12
  151. package/dist/lib/schemas-data/3.1/bundled/media-buy/list-creative-formats-response.json +48 -48
  152. package/dist/lib/schemas-data/3.1/bundled/media-buy/log-event-request.json +12 -12
  153. package/dist/lib/schemas-data/3.1/bundled/media-buy/log-event-response.json +10 -10
  154. package/dist/lib/schemas-data/3.1/bundled/media-buy/package-request.json +79 -79
  155. package/dist/lib/schemas-data/3.1/bundled/media-buy/provide-performance-feedback-request.json +8 -8
  156. package/dist/lib/schemas-data/3.1/bundled/media-buy/provide-performance-feedback-response.json +10 -10
  157. package/dist/lib/schemas-data/3.1/bundled/media-buy/sync-audiences-request.json +18 -18
  158. package/dist/lib/schemas-data/3.1/bundled/media-buy/sync-audiences-response.json +12 -12
  159. package/dist/lib/schemas-data/3.1/bundled/media-buy/sync-catalogs-request.json +26 -26
  160. package/dist/lib/schemas-data/3.1/bundled/media-buy/sync-catalogs-response.json +12 -12
  161. package/dist/lib/schemas-data/3.1/bundled/media-buy/sync-event-sources-request.json +19 -19
  162. package/dist/lib/schemas-data/3.1/bundled/media-buy/sync-event-sources-response.json +16 -16
  163. package/dist/lib/schemas-data/3.1/bundled/media-buy/update-media-buy-request.json +79 -79
  164. package/dist/lib/schemas-data/3.1/bundled/media-buy/update-media-buy-response.json +71 -71
  165. package/dist/lib/schemas-data/3.1/bundled/property/create-property-list-request.json +18 -18
  166. package/dist/lib/schemas-data/3.1/bundled/property/create-property-list-response.json +26 -26
  167. package/dist/lib/schemas-data/3.1/bundled/property/delete-property-list-request.json +16 -16
  168. package/dist/lib/schemas-data/3.1/bundled/property/delete-property-list-response.json +10 -10
  169. package/dist/lib/schemas-data/3.1/bundled/property/get-property-list-request.json +16 -16
  170. package/dist/lib/schemas-data/3.1/bundled/property/get-property-list-response.json +27 -27
  171. package/dist/lib/schemas-data/3.1/bundled/property/list-property-lists-request.json +17 -17
  172. package/dist/lib/schemas-data/3.1/bundled/property/list-property-lists-response.json +27 -27
  173. package/dist/lib/schemas-data/3.1/bundled/property/update-property-list-request.json +18 -18
  174. package/dist/lib/schemas-data/3.1/bundled/property/update-property-list-response.json +26 -26
  175. package/dist/lib/schemas-data/3.1/bundled/property/validate-property-delivery-request.json +19 -19
  176. package/dist/lib/schemas-data/3.1/bundled/property/validate-property-delivery-response.json +15 -15
  177. package/dist/lib/schemas-data/3.1/bundled/protocol/get-adcp-capabilities-request.json +5 -5
  178. package/dist/lib/schemas-data/3.1/bundled/protocol/get-adcp-capabilities-response.json +35 -35
  179. package/dist/lib/schemas-data/3.1/bundled/protocol/get-task-status-request.json +16 -16
  180. package/dist/lib/schemas-data/3.1/bundled/protocol/get-task-status-response.json +181 -181
  181. package/dist/lib/schemas-data/3.1/bundled/protocol/list-tasks-request.json +21 -21
  182. package/dist/lib/schemas-data/3.1/bundled/protocol/list-tasks-response.json +11 -11
  183. package/dist/lib/schemas-data/3.1/bundled/signals/activate-signal-request.json +17 -17
  184. package/dist/lib/schemas-data/3.1/bundled/signals/activate-signal-response.json +12 -12
  185. package/dist/lib/schemas-data/3.1/bundled/signals/get-signals-request.json +24 -24
  186. package/dist/lib/schemas-data/3.1/bundled/signals/get-signals-response.json +53 -53
  187. package/dist/lib/schemas-data/3.1/bundled/sponsored-intelligence/si-get-offering-request.json +5 -5
  188. package/dist/lib/schemas-data/3.1/bundled/sponsored-intelligence/si-get-offering-response.json +23 -23
  189. package/dist/lib/schemas-data/3.1/bundled/sponsored-intelligence/si-initiate-session-request.json +18 -18
  190. package/dist/lib/schemas-data/3.1/bundled/sponsored-intelligence/si-initiate-session-response.json +25 -25
  191. package/dist/lib/schemas-data/3.1/bundled/sponsored-intelligence/si-send-message-request.json +16 -16
  192. package/dist/lib/schemas-data/3.1/bundled/sponsored-intelligence/si-send-message-response.json +26 -26
  193. package/dist/lib/schemas-data/3.1/bundled/sponsored-intelligence/si-terminate-session-request.json +5 -5
  194. package/dist/lib/schemas-data/3.1/bundled/sponsored-intelligence/si-terminate-session-response.json +11 -11
  195. package/dist/lib/schemas-data/3.1/collection/base-collection-source.json +3 -3
  196. package/dist/lib/schemas-data/3.1/collection/collection-list-changed-webhook.json +2 -2
  197. package/dist/lib/schemas-data/3.1/collection/collection-list-filters.json +7 -7
  198. package/dist/lib/schemas-data/3.1/collection/collection-list.json +5 -5
  199. package/dist/lib/schemas-data/3.1/collection/create-collection-list-request.json +8 -8
  200. package/dist/lib/schemas-data/3.1/collection/create-collection-list-response.json +6 -6
  201. package/dist/lib/schemas-data/3.1/collection/delete-collection-list-request.json +5 -5
  202. package/dist/lib/schemas-data/3.1/collection/delete-collection-list-response.json +5 -5
  203. package/dist/lib/schemas-data/3.1/collection/get-collection-list-request.json +5 -5
  204. package/dist/lib/schemas-data/3.1/collection/get-collection-list-response.json +12 -12
  205. package/dist/lib/schemas-data/3.1/collection/list-collection-lists-request.json +6 -6
  206. package/dist/lib/schemas-data/3.1/collection/list-collection-lists-response.json +7 -7
  207. package/dist/lib/schemas-data/3.1/collection/update-collection-list-request.json +8 -8
  208. package/dist/lib/schemas-data/3.1/collection/update-collection-list-response.json +6 -6
  209. package/dist/lib/schemas-data/3.1/content-standards/artifact-webhook-payload.json +3 -3
  210. package/dist/lib/schemas-data/3.1/content-standards/artifact.json +7 -7
  211. package/dist/lib/schemas-data/3.1/content-standards/calibrate-content-request.json +5 -5
  212. package/dist/lib/schemas-data/3.1/content-standards/calibrate-content-response.json +10 -10
  213. package/dist/lib/schemas-data/3.1/content-standards/content-standards.json +7 -7
  214. package/dist/lib/schemas-data/3.1/content-standards/create-content-standards-request.json +8 -8
  215. package/dist/lib/schemas-data/3.1/content-standards/create-content-standards-response.json +8 -8
  216. package/dist/lib/schemas-data/3.1/content-standards/get-content-standards-request.json +4 -4
  217. package/dist/lib/schemas-data/3.1/content-standards/get-content-standards-response.json +9 -9
  218. package/dist/lib/schemas-data/3.1/content-standards/get-media-buy-artifacts-request.json +5 -5
  219. package/dist/lib/schemas-data/3.1/content-standards/get-media-buy-artifacts-response.json +10 -10
  220. package/dist/lib/schemas-data/3.1/content-standards/list-content-standards-request.json +6 -6
  221. package/dist/lib/schemas-data/3.1/content-standards/list-content-standards-response.json +10 -10
  222. package/dist/lib/schemas-data/3.1/content-standards/update-content-standards-request.json +8 -8
  223. package/dist/lib/schemas-data/3.1/content-standards/update-content-standards-response.json +8 -8
  224. package/dist/lib/schemas-data/3.1/content-standards/validate-content-delivery-request.json +5 -5
  225. package/dist/lib/schemas-data/3.1/content-standards/validate-content-delivery-response.json +10 -10
  226. package/dist/lib/schemas-data/3.1/core/account-authorization.json +1 -1
  227. package/dist/lib/schemas-data/3.1/core/account-ref.json +2 -2
  228. package/dist/lib/schemas-data/3.1/core/account-with-authorization.json +3 -3
  229. package/dist/lib/schemas-data/3.1/core/account.json +10 -10
  230. package/dist/lib/schemas-data/3.1/core/activation-key.json +1 -1
  231. package/dist/lib/schemas-data/3.1/core/ad-inventory-config.json +1 -1
  232. package/dist/lib/schemas-data/3.1/core/agent-encryption-key.json +1 -1
  233. package/dist/lib/schemas-data/3.1/core/agent-signing-key.json +1 -1
  234. package/dist/lib/schemas-data/3.1/core/app-item.json +4 -4
  235. package/dist/lib/schemas-data/3.1/core/asset-group-vocabulary.json +1 -1
  236. package/dist/lib/schemas-data/3.1/core/assets/asset-union.json +21 -21
  237. package/dist/lib/schemas-data/3.1/core/assets/audio-asset.json +3 -3
  238. package/dist/lib/schemas-data/3.1/core/assets/brief-asset.json +2 -2
  239. package/dist/lib/schemas-data/3.1/core/assets/card-asset.json +6 -6
  240. package/dist/lib/schemas-data/3.1/core/assets/catalog-asset.json +2 -2
  241. package/dist/lib/schemas-data/3.1/core/assets/css-asset.json +2 -2
  242. package/dist/lib/schemas-data/3.1/core/assets/daast-asset.json +4 -4
  243. package/dist/lib/schemas-data/3.1/core/assets/daast-tracker-asset.json +3 -3
  244. package/dist/lib/schemas-data/3.1/core/assets/html-asset.json +2 -2
  245. package/dist/lib/schemas-data/3.1/core/assets/image-asset.json +2 -2
  246. package/dist/lib/schemas-data/3.1/core/assets/javascript-asset.json +3 -3
  247. package/dist/lib/schemas-data/3.1/core/assets/markdown-asset.json +2 -2
  248. package/dist/lib/schemas-data/3.1/core/assets/pixel-tracker-asset.json +2 -2
  249. package/dist/lib/schemas-data/3.1/core/assets/published-post-asset.json +2 -2
  250. package/dist/lib/schemas-data/3.1/core/assets/text-asset.json +2 -2
  251. package/dist/lib/schemas-data/3.1/core/assets/url-asset.json +3 -3
  252. package/dist/lib/schemas-data/3.1/core/assets/vast-asset.json +4 -4
  253. package/dist/lib/schemas-data/3.1/core/assets/vast-tracker-asset.json +3 -3
  254. package/dist/lib/schemas-data/3.1/core/assets/video-asset.json +7 -7
  255. package/dist/lib/schemas-data/3.1/core/assets/webhook-asset.json +7 -7
  256. package/dist/lib/schemas-data/3.1/core/assets/zip-asset.json +2 -2
  257. package/dist/lib/schemas-data/3.1/core/async-response-data.json +29 -29
  258. package/dist/lib/schemas-data/3.1/core/async-response-refs/creative/sync-creatives-async-response-input-required.json +3 -3
  259. package/dist/lib/schemas-data/3.1/core/async-response-refs/creative/sync-creatives-async-response-submitted.json +4 -4
  260. package/dist/lib/schemas-data/3.1/core/async-response-refs/creative/sync-creatives-async-response-working.json +3 -3
  261. package/dist/lib/schemas-data/3.1/core/async-response-refs/media-buy/build-creative-async-response-input-required.json +4 -4
  262. package/dist/lib/schemas-data/3.1/core/async-response-refs/media-buy/build-creative-async-response-submitted.json +4 -4
  263. package/dist/lib/schemas-data/3.1/core/async-response-refs/media-buy/build-creative-async-response-working.json +3 -3
  264. package/dist/lib/schemas-data/3.1/core/async-response-refs/media-buy/create-media-buy-async-response-input-required.json +4 -4
  265. package/dist/lib/schemas-data/3.1/core/async-response-refs/media-buy/create-media-buy-async-response-submitted.json +4 -4
  266. package/dist/lib/schemas-data/3.1/core/async-response-refs/media-buy/create-media-buy-async-response-working.json +3 -3
  267. package/dist/lib/schemas-data/3.1/core/async-response-refs/media-buy/get-products-async-response-input-required.json +4 -4
  268. package/dist/lib/schemas-data/3.1/core/async-response-refs/media-buy/get-products-async-response-submitted.json +4 -4
  269. package/dist/lib/schemas-data/3.1/core/async-response-refs/media-buy/get-products-async-response-working.json +3 -3
  270. package/dist/lib/schemas-data/3.1/core/async-response-refs/media-buy/sync-catalogs-async-response-input-required.json +3 -3
  271. package/dist/lib/schemas-data/3.1/core/async-response-refs/media-buy/sync-catalogs-async-response-submitted.json +4 -4
  272. package/dist/lib/schemas-data/3.1/core/async-response-refs/media-buy/sync-catalogs-async-response-working.json +3 -3
  273. package/dist/lib/schemas-data/3.1/core/async-response-refs/media-buy/update-media-buy-async-response-input-required.json +3 -3
  274. package/dist/lib/schemas-data/3.1/core/async-response-refs/media-buy/update-media-buy-async-response-submitted.json +4 -4
  275. package/dist/lib/schemas-data/3.1/core/async-response-refs/media-buy/update-media-buy-async-response-working.json +3 -3
  276. package/dist/lib/schemas-data/3.1/core/async-response-refs/signals/get-signals-async-response-submitted.json +4 -4
  277. package/dist/lib/schemas-data/3.1/core/async-response-refs/signals/get-signals-async-response-working.json +3 -3
  278. package/dist/lib/schemas-data/3.1/core/attribution-window.json +4 -4
  279. package/dist/lib/schemas-data/3.1/core/audience-member.json +3 -3
  280. package/dist/lib/schemas-data/3.1/core/audience-selector.json +7 -7
  281. package/dist/lib/schemas-data/3.1/core/authorized-agent-base.json +3 -3
  282. package/dist/lib/schemas-data/3.1/core/brand-id.json +1 -1
  283. package/dist/lib/schemas-data/3.1/core/brand-ref.json +3 -3
  284. package/dist/lib/schemas-data/3.1/core/business-entity.json +2 -2
  285. package/dist/lib/schemas-data/3.1/core/cancellation-policy.json +2 -2
  286. package/dist/lib/schemas-data/3.1/core/canonical-format-kind.json +1 -1
  287. package/dist/lib/schemas-data/3.1/core/canonical-projection-ref.json +3 -3
  288. package/dist/lib/schemas-data/3.1/core/canonical-projection-slot-override.json +1 -1
  289. package/dist/lib/schemas-data/3.1/core/catalog-field-mapping.json +2 -2
  290. package/dist/lib/schemas-data/3.1/core/catalog-item-delivery-metrics.json +3 -3
  291. package/dist/lib/schemas-data/3.1/core/catalog.json +7 -7
  292. package/dist/lib/schemas-data/3.1/core/catchment.json +5 -5
  293. package/dist/lib/schemas-data/3.1/core/collection-distribution.json +2 -2
  294. package/dist/lib/schemas-data/3.1/core/collection-list-ref.json +1 -1
  295. package/dist/lib/schemas-data/3.1/core/collection-selector.json +1 -1
  296. package/dist/lib/schemas-data/3.1/core/collection.json +13 -13
  297. package/dist/lib/schemas-data/3.1/core/committed-metric.json +9 -9
  298. package/dist/lib/schemas-data/3.1/core/content-rating.json +2 -2
  299. package/dist/lib/schemas-data/3.1/core/context.json +1 -1
  300. package/dist/lib/schemas-data/3.1/core/creative-asset.json +10 -10
  301. package/dist/lib/schemas-data/3.1/core/creative-assignment.json +2 -2
  302. package/dist/lib/schemas-data/3.1/core/creative-brief.json +4 -4
  303. package/dist/lib/schemas-data/3.1/core/creative-consumption.json +1 -1
  304. package/dist/lib/schemas-data/3.1/core/creative-delivery-metrics.json +2 -2
  305. package/dist/lib/schemas-data/3.1/core/creative-filters.json +5 -5
  306. package/dist/lib/schemas-data/3.1/core/creative-item.json +1 -1
  307. package/dist/lib/schemas-data/3.1/core/creative-manifest.json +11 -11
  308. package/dist/lib/schemas-data/3.1/core/creative-policy.json +3 -3
  309. package/dist/lib/schemas-data/3.1/core/creative-variable.json +1 -1
  310. package/dist/lib/schemas-data/3.1/core/creative-variant.json +5 -5
  311. package/dist/lib/schemas-data/3.1/core/data-provider-signal-selector.json +1 -1
  312. package/dist/lib/schemas-data/3.1/core/date-range.json +1 -1
  313. package/dist/lib/schemas-data/3.1/core/datetime-range.json +1 -1
  314. package/dist/lib/schemas-data/3.1/core/daypart-target.json +2 -2
  315. package/dist/lib/schemas-data/3.1/core/deadline-policy.json +1 -1
  316. package/dist/lib/schemas-data/3.1/core/delivery-forecast.json +7 -7
  317. package/dist/lib/schemas-data/3.1/core/delivery-metric-aggregate.json +9 -9
  318. package/dist/lib/schemas-data/3.1/core/delivery-metrics.json +8 -8
  319. package/dist/lib/schemas-data/3.1/core/deployment.json +3 -3
  320. package/dist/lib/schemas-data/3.1/core/destination-item.json +4 -4
  321. package/dist/lib/schemas-data/3.1/core/destination.json +1 -1
  322. package/dist/lib/schemas-data/3.1/core/diagnostic-issue.json +1 -1
  323. package/dist/lib/schemas-data/3.1/core/downstream-connection-requirement.json +1 -1
  324. package/dist/lib/schemas-data/3.1/core/duration.json +1 -1
  325. package/dist/lib/schemas-data/3.1/core/education-item.json +4 -4
  326. package/dist/lib/schemas-data/3.1/core/error.json +1 -1
  327. package/dist/lib/schemas-data/3.1/core/evaluator-spec.json +5 -5
  328. package/dist/lib/schemas-data/3.1/core/event-custom-data.json +2 -2
  329. package/dist/lib/schemas-data/3.1/core/event-source-health.json +3 -3
  330. package/dist/lib/schemas-data/3.1/core/event-surface.json +2 -2
  331. package/dist/lib/schemas-data/3.1/core/event.json +8 -8
  332. package/dist/lib/schemas-data/3.1/core/ext.json +1 -1
  333. package/dist/lib/schemas-data/3.1/core/feature-requirement.json +1 -1
  334. package/dist/lib/schemas-data/3.1/core/flight-item.json +4 -4
  335. package/dist/lib/schemas-data/3.1/core/forecast-dimension-audience.json +2 -2
  336. package/dist/lib/schemas-data/3.1/core/forecast-dimension-device-platform.json +2 -2
  337. package/dist/lib/schemas-data/3.1/core/forecast-dimension-device-type.json +2 -2
  338. package/dist/lib/schemas-data/3.1/core/forecast-dimension-geo.json +5 -5
  339. package/dist/lib/schemas-data/3.1/core/forecast-dimension-placement.json +2 -2
  340. package/dist/lib/schemas-data/3.1/core/forecast-dimension-signal.json +2 -2
  341. package/dist/lib/schemas-data/3.1/core/forecast-point-dimensions.json +7 -7
  342. package/dist/lib/schemas-data/3.1/core/forecast-point.json +27 -27
  343. package/dist/lib/schemas-data/3.1/core/forecast-range.json +1 -1
  344. package/dist/lib/schemas-data/3.1/core/forecast-vendor-metric-value.json +5 -5
  345. package/dist/lib/schemas-data/3.1/core/format-id.json +1 -1
  346. package/dist/lib/schemas-data/3.1/core/format-option-ref.json +1 -1
  347. package/dist/lib/schemas-data/3.1/core/format-shape-vocabulary.json +1 -1
  348. package/dist/lib/schemas-data/3.1/core/format.json +44 -44
  349. package/dist/lib/schemas-data/3.1/core/frequency-cap.json +4 -4
  350. package/dist/lib/schemas-data/3.1/core/generation-credential.json +3 -3
  351. package/dist/lib/schemas-data/3.1/core/geo-breakdown-support.json +3 -3
  352. package/dist/lib/schemas-data/3.1/core/geo-delivery-metrics.json +6 -6
  353. package/dist/lib/schemas-data/3.1/core/hotel-item.json +4 -4
  354. package/dist/lib/schemas-data/3.1/core/identifier.json +2 -2
  355. package/dist/lib/schemas-data/3.1/core/impairment.json +3 -3
  356. package/dist/lib/schemas-data/3.1/core/industry-identifier.json +2 -2
  357. package/dist/lib/schemas-data/3.1/core/insertion-order.json +1 -1
  358. package/dist/lib/schemas-data/3.1/core/installment-deadlines.json +2 -2
  359. package/dist/lib/schemas-data/3.1/core/installment.json +9 -9
  360. package/dist/lib/schemas-data/3.1/core/job-item.json +3 -3
  361. package/dist/lib/schemas-data/3.1/core/keyword-delivery-metrics.json +3 -3
  362. package/dist/lib/schemas-data/3.1/core/limited-series.json +1 -1
  363. package/dist/lib/schemas-data/3.1/core/material-deadline.json +1 -1
  364. package/dist/lib/schemas-data/3.1/core/mcp-webhook-payload.json +5 -5
  365. package/dist/lib/schemas-data/3.1/core/measurement-readiness.json +5 -5
  366. package/dist/lib/schemas-data/3.1/core/measurement-terms.json +3 -3
  367. package/dist/lib/schemas-data/3.1/core/measurement-window.json +1 -1
  368. package/dist/lib/schemas-data/3.1/core/media-buy-available-action.json +4 -4
  369. package/dist/lib/schemas-data/3.1/core/media-buy-features.json +1 -1
  370. package/dist/lib/schemas-data/3.1/core/media-buy.json +10 -10
  371. package/dist/lib/schemas-data/3.1/core/missing-metric.json +9 -9
  372. package/dist/lib/schemas-data/3.1/core/notification-config.json +4 -4
  373. package/dist/lib/schemas-data/3.1/core/offering-asset-group.json +16 -16
  374. package/dist/lib/schemas-data/3.1/core/offering.json +5 -5
  375. package/dist/lib/schemas-data/3.1/core/optimization-goal.json +7 -7
  376. package/dist/lib/schemas-data/3.1/core/outcome-measurement.json +2 -2
  377. package/dist/lib/schemas-data/3.1/core/overlay.json +1 -1
  378. package/dist/lib/schemas-data/3.1/core/package-signal-targeting-group.json +2 -2
  379. package/dist/lib/schemas-data/3.1/core/package-signal-targeting-groups.json +2 -2
  380. package/dist/lib/schemas-data/3.1/core/package-signal-targeting.json +3 -3
  381. package/dist/lib/schemas-data/3.1/core/package.json +17 -17
  382. package/dist/lib/schemas-data/3.1/core/pagination-request.json +1 -1
  383. package/dist/lib/schemas-data/3.1/core/pagination-response.json +1 -1
  384. package/dist/lib/schemas-data/3.1/core/performance-feedback.json +12 -12
  385. package/dist/lib/schemas-data/3.1/core/performance-standard.json +4 -4
  386. package/dist/lib/schemas-data/3.1/core/placement-definition.json +10 -10
  387. package/dist/lib/schemas-data/3.1/core/placement-ref.json +1 -1
  388. package/dist/lib/schemas-data/3.1/core/placement.json +7 -7
  389. package/dist/lib/schemas-data/3.1/core/planned-delivery.json +5 -5
  390. package/dist/lib/schemas-data/3.1/core/platform-extension-ref.json +1 -1
  391. package/dist/lib/schemas-data/3.1/core/postal-area-support.json +2 -2
  392. package/dist/lib/schemas-data/3.1/core/postal-area.json +4 -4
  393. package/dist/lib/schemas-data/3.1/core/postal-country-system.json +2 -2
  394. package/dist/lib/schemas-data/3.1/core/price.json +1 -1
  395. package/dist/lib/schemas-data/3.1/core/pricing-option.json +10 -10
  396. package/dist/lib/schemas-data/3.1/core/product-allocation.json +4 -4
  397. package/dist/lib/schemas-data/3.1/core/product-allowed-action.json +5 -5
  398. package/dist/lib/schemas-data/3.1/core/product-filters.json +27 -27
  399. package/dist/lib/schemas-data/3.1/core/product-format-declaration.json +16 -16
  400. package/dist/lib/schemas-data/3.1/core/product-signal-targeting-option.json +3 -3
  401. package/dist/lib/schemas-data/3.1/core/product.json +40 -40
  402. package/dist/lib/schemas-data/3.1/core/property-id.json +1 -1
  403. package/dist/lib/schemas-data/3.1/core/property-list-ref.json +1 -1
  404. package/dist/lib/schemas-data/3.1/core/property-tag.json +1 -1
  405. package/dist/lib/schemas-data/3.1/core/property.json +6 -6
  406. package/dist/lib/schemas-data/3.1/core/proposal.json +6 -6
  407. package/dist/lib/schemas-data/3.1/core/protocol-envelope.json +5 -5
  408. package/dist/lib/schemas-data/3.1/core/provenance.json +9 -9
  409. package/dist/lib/schemas-data/3.1/core/publisher-property-selector.json +3 -3
  410. package/dist/lib/schemas-data/3.1/core/push-notification-config.json +2 -2
  411. package/dist/lib/schemas-data/3.1/core/real-estate-item.json +4 -4
  412. package/dist/lib/schemas-data/3.1/core/reference-asset.json +1 -1
  413. package/dist/lib/schemas-data/3.1/core/registry-event.json +13 -13
  414. package/dist/lib/schemas-data/3.1/core/registry-feed-response.json +2 -2
  415. package/dist/lib/schemas-data/3.1/core/reporting-capabilities.json +8 -8
  416. package/dist/lib/schemas-data/3.1/core/reporting-webhook.json +3 -3
  417. package/dist/lib/schemas-data/3.1/core/requirements/asset-requirements.json +13 -13
  418. package/dist/lib/schemas-data/3.1/core/requirements/audio-asset-requirements.json +1 -1
  419. package/dist/lib/schemas-data/3.1/core/requirements/catalog-field-binding.json +4 -4
  420. package/dist/lib/schemas-data/3.1/core/requirements/catalog-requirements.json +5 -5
  421. package/dist/lib/schemas-data/3.1/core/requirements/css-asset-requirements.json +1 -1
  422. package/dist/lib/schemas-data/3.1/core/requirements/daast-asset-requirements.json +1 -1
  423. package/dist/lib/schemas-data/3.1/core/requirements/html-asset-requirements.json +1 -1
  424. package/dist/lib/schemas-data/3.1/core/requirements/image-asset-requirements.json +2 -2
  425. package/dist/lib/schemas-data/3.1/core/requirements/javascript-asset-requirements.json +1 -1
  426. package/dist/lib/schemas-data/3.1/core/requirements/markdown-asset-requirements.json +1 -1
  427. package/dist/lib/schemas-data/3.1/core/requirements/offering-asset-constraint.json +4 -4
  428. package/dist/lib/schemas-data/3.1/core/requirements/text-asset-requirements.json +1 -1
  429. package/dist/lib/schemas-data/3.1/core/requirements/url-asset-requirements.json +1 -1
  430. package/dist/lib/schemas-data/3.1/core/requirements/vast-asset-requirements.json +1 -1
  431. package/dist/lib/schemas-data/3.1/core/requirements/video-asset-requirements.json +6 -6
  432. package/dist/lib/schemas-data/3.1/core/requirements/webhook-asset-requirements.json +1 -1
  433. package/dist/lib/schemas-data/3.1/core/response-payload-jws-envelope.json +1 -1
  434. package/dist/lib/schemas-data/3.1/core/response.json +1 -1
  435. package/dist/lib/schemas-data/3.1/core/rights-constraint.json +4 -4
  436. package/dist/lib/schemas-data/3.1/core/seller-agent-ref.json +1 -1
  437. package/dist/lib/schemas-data/3.1/core/signal-coverage-forecast.json +5 -5
  438. package/dist/lib/schemas-data/3.1/core/signal-definition-enrichment.json +4 -4
  439. package/dist/lib/schemas-data/3.1/core/signal-definition.json +5 -5
  440. package/dist/lib/schemas-data/3.1/core/signal-filters.json +3 -3
  441. package/dist/lib/schemas-data/3.1/core/signal-id.json +1 -1
  442. package/dist/lib/schemas-data/3.1/core/signal-listing.json +4 -4
  443. package/dist/lib/schemas-data/3.1/core/signal-modeling-disclosure.json +1 -1
  444. package/dist/lib/schemas-data/3.1/core/signal-pricing-option.json +2 -2
  445. package/dist/lib/schemas-data/3.1/core/signal-pricing.json +6 -6
  446. package/dist/lib/schemas-data/3.1/core/signal-ref.json +1 -1
  447. package/dist/lib/schemas-data/3.1/core/signal-selection-group-rule.json +1 -1
  448. package/dist/lib/schemas-data/3.1/core/signal-targeting-expression.json +4 -4
  449. package/dist/lib/schemas-data/3.1/core/signal-targeting-rules.json +2 -2
  450. package/dist/lib/schemas-data/3.1/core/signal-targeting.json +7 -7
  451. package/dist/lib/schemas-data/3.1/core/sla-window.json +1 -1
  452. package/dist/lib/schemas-data/3.1/core/special.json +2 -2
  453. package/dist/lib/schemas-data/3.1/core/start-timing.json +1 -1
  454. package/dist/lib/schemas-data/3.1/core/store-item.json +3 -3
  455. package/dist/lib/schemas-data/3.1/core/talent.json +2 -2
  456. package/dist/lib/schemas-data/3.1/core/targeting.json +22 -22
  457. package/dist/lib/schemas-data/3.1/core/tasks-get-request.json +5 -5
  458. package/dist/lib/schemas-data/3.1/core/tasks-get-response.json +10 -10
  459. package/dist/lib/schemas-data/3.1/core/tasks-list-request.json +13 -13
  460. package/dist/lib/schemas-data/3.1/core/tasks-list-response.json +8 -8
  461. package/dist/lib/schemas-data/3.1/core/transformer-param.json +1 -1
  462. package/dist/lib/schemas-data/3.1/core/transformer.json +5 -5
  463. package/dist/lib/schemas-data/3.1/core/truncation-sentinel.json +1 -1
  464. package/dist/lib/schemas-data/3.1/core/user-match.json +3 -3
  465. package/dist/lib/schemas-data/3.1/core/vehicle-item.json +4 -4
  466. package/dist/lib/schemas-data/3.1/core/vendor-metric-id.json +1 -1
  467. package/dist/lib/schemas-data/3.1/core/vendor-metric-optimization-supported-metric.json +3 -3
  468. package/dist/lib/schemas-data/3.1/core/vendor-metric-optimization.json +2 -2
  469. package/dist/lib/schemas-data/3.1/core/vendor-metric-value.json +3 -3
  470. package/dist/lib/schemas-data/3.1/core/vendor-pricing-option.json +3 -3
  471. package/dist/lib/schemas-data/3.1/core/version-envelope.json +1 -1
  472. package/dist/lib/schemas-data/3.1/core/webhook-activity-record.json +3 -3
  473. package/dist/lib/schemas-data/3.1/core/webhook-challenge-response.json +1 -1
  474. package/dist/lib/schemas-data/3.1/core/webhook-challenge.json +2 -2
  475. package/dist/lib/schemas-data/3.1/core/wholesale-feed-event.json +17 -17
  476. package/dist/lib/schemas-data/3.1/core/wholesale-feed-webhook.json +3 -3
  477. package/dist/lib/schemas-data/3.1/core/x-entity-types.json +1 -1
  478. package/dist/lib/schemas-data/3.1/creative/asset-types/index.json +6 -6
  479. package/dist/lib/schemas-data/3.1/creative/audit-observation.json +2 -2
  480. package/dist/lib/schemas-data/3.1/creative/creative-feature-result.json +2 -2
  481. package/dist/lib/schemas-data/3.1/creative/creative-purged-webhook.json +3 -3
  482. package/dist/lib/schemas-data/3.1/creative/creative-status-changed-webhook.json +4 -4
  483. package/dist/lib/schemas-data/3.1/creative/get-creative-delivery-request.json +6 -6
  484. package/dist/lib/schemas-data/3.1/creative/get-creative-delivery-response.json +9 -9
  485. package/dist/lib/schemas-data/3.1/creative/get-creative-features-request.json +6 -6
  486. package/dist/lib/schemas-data/3.1/creative/get-creative-features-response.json +11 -11
  487. package/dist/lib/schemas-data/3.1/creative/list-creative-formats-request.json +13 -13
  488. package/dist/lib/schemas-data/3.1/creative/list-creative-formats-response.json +9 -9
  489. package/dist/lib/schemas-data/3.1/creative/list-creatives-request.json +9 -9
  490. package/dist/lib/schemas-data/3.1/creative/list-creatives-response.json +21 -21
  491. package/dist/lib/schemas-data/3.1/creative/list-transformers-request.json +8 -8
  492. package/dist/lib/schemas-data/3.1/creative/list-transformers-response.json +8 -8
  493. package/dist/lib/schemas-data/3.1/creative/preview-creative-request.json +12 -12
  494. package/dist/lib/schemas-data/3.1/creative/preview-creative-response.json +14 -14
  495. package/dist/lib/schemas-data/3.1/creative/preview-render.json +1 -1
  496. package/dist/lib/schemas-data/3.1/creative/sync-creatives-async-response-input-required.json +3 -3
  497. package/dist/lib/schemas-data/3.1/creative/sync-creatives-async-response-submitted.json +4 -4
  498. package/dist/lib/schemas-data/3.1/creative/sync-creatives-async-response-working.json +3 -3
  499. package/dist/lib/schemas-data/3.1/creative/sync-creatives-request.json +8 -8
  500. package/dist/lib/schemas-data/3.1/creative/sync-creatives-response.json +15 -15
  501. package/dist/lib/schemas-data/3.1/creative/validate-input-request.json +4 -4
  502. package/dist/lib/schemas-data/3.1/creative/validate-input-response.json +4 -4
  503. package/dist/lib/schemas-data/3.1/creative/validate-input-result.json +1 -1
  504. package/dist/lib/schemas-data/3.1/creative/video-brief.json +1 -1
  505. package/dist/lib/schemas-data/3.1/enums/account-scope.json +1 -1
  506. package/dist/lib/schemas-data/3.1/enums/account-status.json +1 -1
  507. package/dist/lib/schemas-data/3.1/enums/action-not-allowed-reason.json +1 -1
  508. package/dist/lib/schemas-data/3.1/enums/action-source.json +1 -1
  509. package/dist/lib/schemas-data/3.1/enums/adcp-protocol.json +1 -1
  510. package/dist/lib/schemas-data/3.1/enums/adjustment-kind.json +1 -1
  511. package/dist/lib/schemas-data/3.1/enums/advertiser-industry.json +1 -1
  512. package/dist/lib/schemas-data/3.1/enums/age-verification-method.json +1 -1
  513. package/dist/lib/schemas-data/3.1/enums/assessment-status.json +1 -1
  514. package/dist/lib/schemas-data/3.1/enums/asset-content-type.json +1 -1
  515. package/dist/lib/schemas-data/3.1/enums/attestation-claim.json +1 -1
  516. package/dist/lib/schemas-data/3.1/enums/attribution-methodology.json +1 -1
  517. package/dist/lib/schemas-data/3.1/enums/attribution-model.json +1 -1
  518. package/dist/lib/schemas-data/3.1/enums/audience-source.json +1 -1
  519. package/dist/lib/schemas-data/3.1/enums/audience-status.json +1 -1
  520. package/dist/lib/schemas-data/3.1/enums/audio-channel-layout.json +1 -1
  521. package/dist/lib/schemas-data/3.1/enums/audio-distribution-type.json +1 -1
  522. package/dist/lib/schemas-data/3.1/enums/auth-scheme.json +1 -1
  523. package/dist/lib/schemas-data/3.1/enums/available-metric.json +1 -1
  524. package/dist/lib/schemas-data/3.1/enums/billing-party.json +1 -1
  525. package/dist/lib/schemas-data/3.1/enums/binary-verdict.json +1 -1
  526. package/dist/lib/schemas-data/3.1/enums/brand-agent-type.json +1 -1
  527. package/dist/lib/schemas-data/3.1/enums/c2pa-watermark-action.json +1 -1
  528. package/dist/lib/schemas-data/3.1/enums/canceled-by.json +1 -1
  529. package/dist/lib/schemas-data/3.1/enums/catalog-action.json +1 -1
  530. package/dist/lib/schemas-data/3.1/enums/catalog-item-status.json +1 -1
  531. package/dist/lib/schemas-data/3.1/enums/catalog-type.json +1 -1
  532. package/dist/lib/schemas-data/3.1/enums/channels.json +1 -1
  533. package/dist/lib/schemas-data/3.1/enums/cloud-storage-protocol.json +1 -1
  534. package/dist/lib/schemas-data/3.1/enums/co-branding-requirement.json +1 -1
  535. package/dist/lib/schemas-data/3.1/enums/collection-cadence.json +1 -1
  536. package/dist/lib/schemas-data/3.1/enums/collection-kind.json +1 -1
  537. package/dist/lib/schemas-data/3.1/enums/collection-relationship.json +1 -1
  538. package/dist/lib/schemas-data/3.1/enums/collection-status.json +1 -1
  539. package/dist/lib/schemas-data/3.1/enums/completion-source.json +1 -1
  540. package/dist/lib/schemas-data/3.1/enums/consent-basis.json +1 -1
  541. package/dist/lib/schemas-data/3.1/enums/content-id-type.json +1 -1
  542. package/dist/lib/schemas-data/3.1/enums/content-rating-system.json +1 -1
  543. package/dist/lib/schemas-data/3.1/enums/creative-action.json +1 -1
  544. package/dist/lib/schemas-data/3.1/enums/creative-agent-capability.json +1 -1
  545. package/dist/lib/schemas-data/3.1/enums/creative-approval-status.json +1 -1
  546. package/dist/lib/schemas-data/3.1/enums/creative-event-reason-code.json +1 -1
  547. package/dist/lib/schemas-data/3.1/enums/creative-identifier-type.json +1 -1
  548. package/dist/lib/schemas-data/3.1/enums/creative-quality.json +1 -1
  549. package/dist/lib/schemas-data/3.1/enums/creative-selection-strategy.json +1 -1
  550. package/dist/lib/schemas-data/3.1/enums/creative-sort-field.json +1 -1
  551. package/dist/lib/schemas-data/3.1/enums/creative-status.json +1 -1
  552. package/dist/lib/schemas-data/3.1/enums/daast-tracking-event.json +1 -1
  553. package/dist/lib/schemas-data/3.1/enums/daast-version.json +1 -1
  554. package/dist/lib/schemas-data/3.1/enums/day-of-week.json +1 -1
  555. package/dist/lib/schemas-data/3.1/enums/delegation-authority.json +1 -1
  556. package/dist/lib/schemas-data/3.1/enums/delivery-type.json +1 -1
  557. package/dist/lib/schemas-data/3.1/enums/demographic-system.json +1 -1
  558. package/dist/lib/schemas-data/3.1/enums/derivative-type.json +1 -1
  559. package/dist/lib/schemas-data/3.1/enums/device-platform.json +1 -1
  560. package/dist/lib/schemas-data/3.1/enums/device-type.json +1 -1
  561. package/dist/lib/schemas-data/3.1/enums/digital-source-type.json +1 -1
  562. package/dist/lib/schemas-data/3.1/enums/dimension-unit.json +1 -1
  563. package/dist/lib/schemas-data/3.1/enums/disclosure-persistence.json +1 -1
  564. package/dist/lib/schemas-data/3.1/enums/disclosure-position.json +1 -1
  565. package/dist/lib/schemas-data/3.1/enums/distance-unit.json +1 -1
  566. package/dist/lib/schemas-data/3.1/enums/distribution-identifier-type.json +1 -1
  567. package/dist/lib/schemas-data/3.1/enums/embedded-provenance-method.json +1 -1
  568. package/dist/lib/schemas-data/3.1/enums/error-code.json +1 -1
  569. package/dist/lib/schemas-data/3.1/enums/error-scope.json +1 -1
  570. package/dist/lib/schemas-data/3.1/enums/escalation-severity.json +1 -1
  571. package/dist/lib/schemas-data/3.1/enums/event-type.json +1 -1
  572. package/dist/lib/schemas-data/3.1/enums/exclusivity.json +1 -1
  573. package/dist/lib/schemas-data/3.1/enums/feature-check-status.json +1 -1
  574. package/dist/lib/schemas-data/3.1/enums/feed-format.json +1 -1
  575. package/dist/lib/schemas-data/3.1/enums/feedback-source.json +1 -1
  576. package/dist/lib/schemas-data/3.1/enums/forecast-method.json +1 -1
  577. package/dist/lib/schemas-data/3.1/enums/forecast-range-unit.json +1 -1
  578. package/dist/lib/schemas-data/3.1/enums/forecastable-metric.json +1 -1
  579. package/dist/lib/schemas-data/3.1/enums/format-id-parameter.json +1 -1
  580. package/dist/lib/schemas-data/3.1/enums/frame-rate-type.json +1 -1
  581. package/dist/lib/schemas-data/3.1/enums/frequency-cap-scope.json +1 -1
  582. package/dist/lib/schemas-data/3.1/enums/genre-taxonomy.json +1 -1
  583. package/dist/lib/schemas-data/3.1/enums/geo-level.json +1 -1
  584. package/dist/lib/schemas-data/3.1/enums/gop-type.json +1 -1
  585. package/dist/lib/schemas-data/3.1/enums/governance-decision.json +1 -1
  586. package/dist/lib/schemas-data/3.1/enums/governance-domain.json +1 -1
  587. package/dist/lib/schemas-data/3.1/enums/governance-mode.json +1 -1
  588. package/dist/lib/schemas-data/3.1/enums/governance-phase.json +1 -1
  589. package/dist/lib/schemas-data/3.1/enums/history-entry-type.json +1 -1
  590. package/dist/lib/schemas-data/3.1/enums/http-method.json +1 -1
  591. package/dist/lib/schemas-data/3.1/enums/identifier-types.json +1 -1
  592. package/dist/lib/schemas-data/3.1/enums/impairment-offline-state.json +1 -1
  593. package/dist/lib/schemas-data/3.1/enums/impairment-reason-code.json +1 -1
  594. package/dist/lib/schemas-data/3.1/enums/installment-status.json +1 -1
  595. package/dist/lib/schemas-data/3.1/enums/javascript-module-type.json +1 -1
  596. package/dist/lib/schemas-data/3.1/enums/landing-page-requirement.json +1 -1
  597. package/dist/lib/schemas-data/3.1/enums/legacy-postal-system.json +1 -1
  598. package/dist/lib/schemas-data/3.1/enums/lift-dimension.json +1 -1
  599. package/dist/lib/schemas-data/3.1/enums/logo-slot.json +1 -1
  600. package/dist/lib/schemas-data/3.1/enums/makegood-remedy.json +1 -1
  601. package/dist/lib/schemas-data/3.1/enums/markdown-flavor.json +1 -1
  602. package/dist/lib/schemas-data/3.1/enums/match-id-type.json +1 -1
  603. package/dist/lib/schemas-data/3.1/enums/match-type.json +1 -1
  604. package/dist/lib/schemas-data/3.1/enums/media-buy-action-mode.json +1 -1
  605. package/dist/lib/schemas-data/3.1/enums/media-buy-health.json +1 -1
  606. package/dist/lib/schemas-data/3.1/enums/media-buy-status.json +1 -1
  607. package/dist/lib/schemas-data/3.1/enums/media-buy-valid-action.json +1 -1
  608. package/dist/lib/schemas-data/3.1/enums/metric-scope.json +1 -1
  609. package/dist/lib/schemas-data/3.1/enums/metric-type.json +1 -1
  610. package/dist/lib/schemas-data/3.1/enums/metro-system.json +1 -1
  611. package/dist/lib/schemas-data/3.1/enums/moov-atom-position.json +1 -1
  612. package/dist/lib/schemas-data/3.1/enums/notification-type.json +1 -1
  613. package/dist/lib/schemas-data/3.1/enums/offering-availability-status.json +1 -1
  614. package/dist/lib/schemas-data/3.1/enums/outcome-type.json +1 -1
  615. package/dist/lib/schemas-data/3.1/enums/pacing.json +1 -1
  616. package/dist/lib/schemas-data/3.1/enums/payment-terms.json +1 -1
  617. package/dist/lib/schemas-data/3.1/enums/performance-standard-metric.json +1 -1
  618. package/dist/lib/schemas-data/3.1/enums/policy-category.json +1 -1
  619. package/dist/lib/schemas-data/3.1/enums/policy-enforcement.json +1 -1
  620. package/dist/lib/schemas-data/3.1/enums/postal-system.json +1 -1
  621. package/dist/lib/schemas-data/3.1/enums/preview-output-format.json +1 -1
  622. package/dist/lib/schemas-data/3.1/enums/pricing-model.json +1 -1
  623. package/dist/lib/schemas-data/3.1/enums/production-quality.json +1 -1
  624. package/dist/lib/schemas-data/3.1/enums/property-type.json +1 -1
  625. package/dist/lib/schemas-data/3.1/enums/proposal-status.json +1 -1
  626. package/dist/lib/schemas-data/3.1/enums/publisher-identifier-types.json +1 -1
  627. package/dist/lib/schemas-data/3.1/enums/purchase-type.json +1 -1
  628. package/dist/lib/schemas-data/3.1/enums/reach-unit.json +1 -1
  629. package/dist/lib/schemas-data/3.1/enums/reporting-frequency.json +1 -1
  630. package/dist/lib/schemas-data/3.1/enums/response-type.json +1 -1
  631. package/dist/lib/schemas-data/3.1/enums/restricted-attribute.json +1 -1
  632. package/dist/lib/schemas-data/3.1/enums/right-type.json +1 -1
  633. package/dist/lib/schemas-data/3.1/enums/right-use.json +1 -1
  634. package/dist/lib/schemas-data/3.1/enums/rights-billing-period.json +1 -1
  635. package/dist/lib/schemas-data/3.1/enums/scan-type.json +1 -1
  636. package/dist/lib/schemas-data/3.1/enums/si-session-status.json +1 -1
  637. package/dist/lib/schemas-data/3.1/enums/signal-catalog-type.json +1 -1
  638. package/dist/lib/schemas-data/3.1/enums/signal-source.json +1 -1
  639. package/dist/lib/schemas-data/3.1/enums/signal-value-type.json +1 -1
  640. package/dist/lib/schemas-data/3.1/enums/snapshot-unavailable-reason.json +1 -1
  641. package/dist/lib/schemas-data/3.1/enums/social-placement-surface.json +1 -1
  642. package/dist/lib/schemas-data/3.1/enums/sort-direction.json +1 -1
  643. package/dist/lib/schemas-data/3.1/enums/sort-metric.json +1 -1
  644. package/dist/lib/schemas-data/3.1/enums/special-category.json +1 -1
  645. package/dist/lib/schemas-data/3.1/enums/specialism.json +1 -1
  646. package/dist/lib/schemas-data/3.1/enums/sponsored-placement-type.json +1 -1
  647. package/dist/lib/schemas-data/3.1/enums/talent-role.json +1 -1
  648. package/dist/lib/schemas-data/3.1/enums/task-status.json +1 -1
  649. package/dist/lib/schemas-data/3.1/enums/task-type.json +1 -1
  650. package/dist/lib/schemas-data/3.1/enums/transport-mode.json +1 -1
  651. package/dist/lib/schemas-data/3.1/enums/travel-time-unit.json +1 -1
  652. package/dist/lib/schemas-data/3.1/enums/uid-type.json +1 -1
  653. package/dist/lib/schemas-data/3.1/enums/universal-macro.json +1 -1
  654. package/dist/lib/schemas-data/3.1/enums/update-frequency.json +1 -1
  655. package/dist/lib/schemas-data/3.1/enums/url-asset-type.json +1 -1
  656. package/dist/lib/schemas-data/3.1/enums/validation-mode.json +1 -1
  657. package/dist/lib/schemas-data/3.1/enums/vast-tracking-event.json +1 -1
  658. package/dist/lib/schemas-data/3.1/enums/vast-version.json +1 -1
  659. package/dist/lib/schemas-data/3.1/enums/video-placement-type.json +1 -1
  660. package/dist/lib/schemas-data/3.1/enums/viewability-standard.json +1 -1
  661. package/dist/lib/schemas-data/3.1/enums/watermark-media-type.json +1 -1
  662. package/dist/lib/schemas-data/3.1/enums/wcag-level.json +1 -1
  663. package/dist/lib/schemas-data/3.1/enums/webhook-response-type.json +1 -1
  664. package/dist/lib/schemas-data/3.1/enums/webhook-security-method.json +1 -1
  665. package/dist/lib/schemas-data/3.1/error-details/account-setup-required.json +1 -1
  666. package/dist/lib/schemas-data/3.1/error-details/action-not-allowed.json +4 -4
  667. package/dist/lib/schemas-data/3.1/error-details/agent-permission-denied.json +1 -1
  668. package/dist/lib/schemas-data/3.1/error-details/audience-too-small.json +1 -1
  669. package/dist/lib/schemas-data/3.1/error-details/authorization-required.json +3 -3
  670. package/dist/lib/schemas-data/3.1/error-details/billing-not-permitted-for-agent.json +3 -3
  671. package/dist/lib/schemas-data/3.1/error-details/billing-not-supported.json +2 -2
  672. package/dist/lib/schemas-data/3.1/error-details/budget-too-low.json +1 -1
  673. package/dist/lib/schemas-data/3.1/error-details/conflict.json +1 -1
  674. package/dist/lib/schemas-data/3.1/error-details/creative-rejected.json +1 -1
  675. package/dist/lib/schemas-data/3.1/error-details/policy-violation.json +1 -1
  676. package/dist/lib/schemas-data/3.1/error-details/rate-limited.json +1 -1
  677. package/dist/lib/schemas-data/3.1/error-details/stale-response.json +1 -1
  678. package/dist/lib/schemas-data/3.1/error-details/vendor-error-codes.json +1 -1
  679. package/dist/lib/schemas-data/3.1/error-details/version-unsupported.json +2 -2
  680. package/dist/lib/schemas-data/3.1/extensions/extension-meta.json +1 -1
  681. package/dist/lib/schemas-data/3.1/extensions/index.json +2 -2
  682. package/dist/lib/schemas-data/3.1/formats/canonical/_base.json +5 -5
  683. package/dist/lib/schemas-data/3.1/formats/canonical/agent_placement.json +2 -2
  684. package/dist/lib/schemas-data/3.1/formats/canonical/audio_daast.json +2 -2
  685. package/dist/lib/schemas-data/3.1/formats/canonical/audio_hosted.json +2 -2
  686. package/dist/lib/schemas-data/3.1/formats/canonical/display_tag.json +2 -2
  687. package/dist/lib/schemas-data/3.1/formats/canonical/html5.json +2 -2
  688. package/dist/lib/schemas-data/3.1/formats/canonical/image.json +2 -2
  689. package/dist/lib/schemas-data/3.1/formats/canonical/image_carousel.json +2 -2
  690. package/dist/lib/schemas-data/3.1/formats/canonical/native_in_feed.json +2 -2
  691. package/dist/lib/schemas-data/3.1/formats/canonical/responsive_creative.json +2 -2
  692. package/dist/lib/schemas-data/3.1/formats/canonical/sponsored_placement.json +2 -2
  693. package/dist/lib/schemas-data/3.1/formats/canonical/video_hosted.json +2 -2
  694. package/dist/lib/schemas-data/3.1/formats/canonical/video_vast.json +2 -2
  695. package/dist/lib/schemas-data/3.1/governance/attribute-definition.json +1 -1
  696. package/dist/lib/schemas-data/3.1/governance/audience-constraints.json +3 -3
  697. package/dist/lib/schemas-data/3.1/governance/check-governance-request.json +8 -8
  698. package/dist/lib/schemas-data/3.1/governance/check-governance-response.json +7 -7
  699. package/dist/lib/schemas-data/3.1/governance/get-plan-audit-logs-request.json +5 -5
  700. package/dist/lib/schemas-data/3.1/governance/get-plan-audit-logs-response.json +11 -11
  701. package/dist/lib/schemas-data/3.1/governance/policy-category-definition.json +2 -2
  702. package/dist/lib/schemas-data/3.1/governance/policy-entry.json +6 -6
  703. package/dist/lib/schemas-data/3.1/governance/policy-ref.json +1 -1
  704. package/dist/lib/schemas-data/3.1/governance/report-plan-outcome-request.json +7 -7
  705. package/dist/lib/schemas-data/3.1/governance/report-plan-outcome-response.json +5 -5
  706. package/dist/lib/schemas-data/3.1/governance/sync-plans-request.json +14 -14
  707. package/dist/lib/schemas-data/3.1/governance/sync-plans-response.json +6 -6
  708. package/dist/lib/schemas-data/3.1/index.json +452 -440
  709. package/dist/lib/schemas-data/3.1/manifest.json +3 -3
  710. package/dist/lib/schemas-data/3.1/manifest.schema.json +1 -1
  711. package/dist/lib/schemas-data/3.1/media-buy/build-creative-async-response-input-required.json +4 -4
  712. package/dist/lib/schemas-data/3.1/media-buy/build-creative-async-response-submitted.json +4 -4
  713. package/dist/lib/schemas-data/3.1/media-buy/build-creative-async-response-working.json +3 -3
  714. package/dist/lib/schemas-data/3.1/media-buy/build-creative-request.json +16 -16
  715. package/dist/lib/schemas-data/3.1/media-buy/build-creative-response.json +35 -35
  716. package/dist/lib/schemas-data/3.1/media-buy/create-media-buy-async-response-input-required.json +4 -4
  717. package/dist/lib/schemas-data/3.1/media-buy/create-media-buy-async-response-submitted.json +4 -4
  718. package/dist/lib/schemas-data/3.1/media-buy/create-media-buy-async-response-working.json +3 -3
  719. package/dist/lib/schemas-data/3.1/media-buy/create-media-buy-request.json +13 -13
  720. package/dist/lib/schemas-data/3.1/media-buy/create-media-buy-response.json +19 -19
  721. package/dist/lib/schemas-data/3.1/media-buy/get-media-buy-delivery-request.json +23 -23
  722. package/dist/lib/schemas-data/3.1/media-buy/get-media-buy-delivery-response.json +27 -27
  723. package/dist/lib/schemas-data/3.1/media-buy/get-media-buys-request.json +8 -8
  724. package/dist/lib/schemas-data/3.1/media-buy/get-media-buys-response.json +30 -30
  725. package/dist/lib/schemas-data/3.1/media-buy/get-products-async-response-input-required.json +4 -4
  726. package/dist/lib/schemas-data/3.1/media-buy/get-products-async-response-submitted.json +4 -4
  727. package/dist/lib/schemas-data/3.1/media-buy/get-products-async-response-working.json +3 -3
  728. package/dist/lib/schemas-data/3.1/media-buy/get-products-request.json +13 -13
  729. package/dist/lib/schemas-data/3.1/media-buy/get-products-response.json +10 -10
  730. package/dist/lib/schemas-data/3.1/media-buy/list-creative-formats-request.json +13 -13
  731. package/dist/lib/schemas-data/3.1/media-buy/list-creative-formats-response.json +9 -9
  732. package/dist/lib/schemas-data/3.1/media-buy/log-event-request.json +5 -5
  733. package/dist/lib/schemas-data/3.1/media-buy/log-event-response.json +8 -8
  734. package/dist/lib/schemas-data/3.1/media-buy/media-buy-delivery-webhook-result.json +9 -9
  735. package/dist/lib/schemas-data/3.1/media-buy/package-request.json +23 -23
  736. package/dist/lib/schemas-data/3.1/media-buy/package-update.json +13 -13
  737. package/dist/lib/schemas-data/3.1/media-buy/provide-performance-feedback-request.json +7 -7
  738. package/dist/lib/schemas-data/3.1/media-buy/provide-performance-feedback-response.json +8 -8
  739. package/dist/lib/schemas-data/3.1/media-buy/sync-audiences-request.json +8 -8
  740. package/dist/lib/schemas-data/3.1/media-buy/sync-audiences-response.json +14 -14
  741. package/dist/lib/schemas-data/3.1/media-buy/sync-catalogs-async-response-input-required.json +3 -3
  742. package/dist/lib/schemas-data/3.1/media-buy/sync-catalogs-async-response-submitted.json +4 -4
  743. package/dist/lib/schemas-data/3.1/media-buy/sync-catalogs-async-response-working.json +3 -3
  744. package/dist/lib/schemas-data/3.1/media-buy/sync-catalogs-request.json +8 -8
  745. package/dist/lib/schemas-data/3.1/media-buy/sync-catalogs-response.json +14 -14
  746. package/dist/lib/schemas-data/3.1/media-buy/sync-event-sources-request.json +8 -8
  747. package/dist/lib/schemas-data/3.1/media-buy/sync-event-sources-response.json +14 -14
  748. package/dist/lib/schemas-data/3.1/media-buy/update-media-buy-async-response-input-required.json +3 -3
  749. package/dist/lib/schemas-data/3.1/media-buy/update-media-buy-async-response-submitted.json +4 -4
  750. package/dist/lib/schemas-data/3.1/media-buy/update-media-buy-async-response-working.json +3 -3
  751. package/dist/lib/schemas-data/3.1/media-buy/update-media-buy-request.json +11 -11
  752. package/dist/lib/schemas-data/3.1/media-buy/update-media-buy-response.json +17 -17
  753. package/dist/lib/schemas-data/3.1/pricing-options/cpa-option.json +4 -4
  754. package/dist/lib/schemas-data/3.1/pricing-options/cpc-option.json +4 -4
  755. package/dist/lib/schemas-data/3.1/pricing-options/cpcv-option.json +4 -4
  756. package/dist/lib/schemas-data/3.1/pricing-options/cpm-option.json +4 -4
  757. package/dist/lib/schemas-data/3.1/pricing-options/cpp-option.json +5 -5
  758. package/dist/lib/schemas-data/3.1/pricing-options/cpv-option.json +4 -4
  759. package/dist/lib/schemas-data/3.1/pricing-options/flat-rate-option.json +4 -4
  760. package/dist/lib/schemas-data/3.1/pricing-options/price-breakdown.json +2 -2
  761. package/dist/lib/schemas-data/3.1/pricing-options/price-guidance.json +1 -1
  762. package/dist/lib/schemas-data/3.1/pricing-options/time-option.json +4 -4
  763. package/dist/lib/schemas-data/3.1/pricing-options/vcpm-option.json +4 -4
  764. package/dist/lib/schemas-data/3.1/property/authorization-result.json +1 -1
  765. package/dist/lib/schemas-data/3.1/property/base-property-source.json +4 -4
  766. package/dist/lib/schemas-data/3.1/property/create-property-list-request.json +8 -8
  767. package/dist/lib/schemas-data/3.1/property/create-property-list-response.json +6 -6
  768. package/dist/lib/schemas-data/3.1/property/delete-property-list-request.json +5 -5
  769. package/dist/lib/schemas-data/3.1/property/delete-property-list-response.json +5 -5
  770. package/dist/lib/schemas-data/3.1/property/delivery-record.json +3 -3
  771. package/dist/lib/schemas-data/3.1/property/get-property-list-request.json +5 -5
  772. package/dist/lib/schemas-data/3.1/property/get-property-list-response.json +9 -9
  773. package/dist/lib/schemas-data/3.1/property/list-property-lists-request.json +6 -6
  774. package/dist/lib/schemas-data/3.1/property/list-property-lists-response.json +7 -7
  775. package/dist/lib/schemas-data/3.1/property/property-error.json +2 -2
  776. package/dist/lib/schemas-data/3.1/property/property-feature-definition.json +2 -2
  777. package/dist/lib/schemas-data/3.1/property/property-feature-result.json +4 -4
  778. package/dist/lib/schemas-data/3.1/property/property-feature-value.json +2 -2
  779. package/dist/lib/schemas-data/3.1/property/property-feature.json +1 -1
  780. package/dist/lib/schemas-data/3.1/property/property-list-changed-webhook.json +2 -2
  781. package/dist/lib/schemas-data/3.1/property/property-list-filters.json +5 -5
  782. package/dist/lib/schemas-data/3.1/property/property-list.json +6 -6
  783. package/dist/lib/schemas-data/3.1/property/update-property-list-request.json +8 -8
  784. package/dist/lib/schemas-data/3.1/property/update-property-list-response.json +6 -6
  785. package/dist/lib/schemas-data/3.1/property/validate-property-delivery-request.json +6 -6
  786. package/dist/lib/schemas-data/3.1/property/validate-property-delivery-response.json +6 -6
  787. package/dist/lib/schemas-data/3.1/property/validation-result.json +5 -5
  788. package/dist/lib/schemas-data/3.1/protocol/get-adcp-capabilities-request.json +4 -4
  789. package/dist/lib/schemas-data/3.1/protocol/get-adcp-capabilities-response.json +33 -33
  790. package/dist/lib/schemas-data/3.1/protocol/get-task-status-request.json +5 -5
  791. package/dist/lib/schemas-data/3.1/protocol/get-task-status-response.json +10 -10
  792. package/dist/lib/schemas-data/3.1/protocol/list-tasks-request.json +13 -13
  793. package/dist/lib/schemas-data/3.1/protocol/list-tasks-response.json +8 -8
  794. package/dist/lib/schemas-data/3.1/registries/v1-canonical-mapping.json +355 -5
  795. package/dist/lib/schemas-data/3.1/signals/activate-signal-request.json +6 -6
  796. package/dist/lib/schemas-data/3.1/signals/activate-signal-response.json +9 -9
  797. package/dist/lib/schemas-data/3.1/signals/get-signals-async-response-submitted.json +4 -4
  798. package/dist/lib/schemas-data/3.1/signals/get-signals-async-response-working.json +3 -3
  799. package/dist/lib/schemas-data/3.1/signals/get-signals-request.json +11 -11
  800. package/dist/lib/schemas-data/3.1/signals/get-signals-response.json +17 -17
  801. package/dist/lib/schemas-data/3.1/sponsored-intelligence/si-capabilities.json +1 -1
  802. package/dist/lib/schemas-data/3.1/sponsored-intelligence/si-context-use.json +1 -1
  803. package/dist/lib/schemas-data/3.1/sponsored-intelligence/si-get-offering-request.json +4 -4
  804. package/dist/lib/schemas-data/3.1/sponsored-intelligence/si-get-offering-response.json +9 -9
  805. package/dist/lib/schemas-data/3.1/sponsored-intelligence/si-identity.json +1 -1
  806. package/dist/lib/schemas-data/3.1/sponsored-intelligence/si-initiate-session-request.json +7 -7
  807. package/dist/lib/schemas-data/3.1/sponsored-intelligence/si-initiate-session-response.json +10 -10
  808. package/dist/lib/schemas-data/3.1/sponsored-intelligence/si-send-message-request.json +5 -5
  809. package/dist/lib/schemas-data/3.1/sponsored-intelligence/si-send-message-response.json +10 -10
  810. package/dist/lib/schemas-data/3.1/sponsored-intelligence/si-sponsored-context-receipt.json +4 -4
  811. package/dist/lib/schemas-data/3.1/sponsored-intelligence/si-sponsored-context.json +4 -4
  812. package/dist/lib/schemas-data/3.1/sponsored-intelligence/si-terminate-session-request.json +4 -4
  813. package/dist/lib/schemas-data/3.1/sponsored-intelligence/si-terminate-session-response.json +7 -7
  814. package/dist/lib/schemas-data/3.1/sponsored-intelligence/si-ui-element.json +1 -1
  815. package/dist/lib/schemas-data/3.1/trusted-match/available-package.json +4 -4
  816. package/dist/lib/schemas-data/3.1/trusted-match/context-match-request.json +5 -5
  817. package/dist/lib/schemas-data/3.1/trusted-match/context-match-response.json +4 -4
  818. package/dist/lib/schemas-data/3.1/trusted-match/error.json +1 -1
  819. package/dist/lib/schemas-data/3.1/trusted-match/identity-match-request.json +4 -4
  820. package/dist/lib/schemas-data/3.1/trusted-match/identity-match-response.json +45 -45
  821. package/dist/lib/schemas-data/3.1/trusted-match/offer-price.json +1 -1
  822. package/dist/lib/schemas-data/3.1/trusted-match/offer.json +5 -5
  823. package/dist/lib/schemas-data/3.1/trusted-match/provider-identity-match-response.json +90 -0
  824. package/dist/lib/schemas-data/3.1/trusted-match/provider-registration.json +8 -7
  825. package/dist/lib/schemas-data/3.1/trusted-match/publisher-tmpx-config.json +41 -0
  826. package/dist/lib/schemas-data/3.1/trusted-match/tmpx-chunk.json +28 -0
  827. package/dist/lib/schemas-data/v2.5/_provenance.json +1 -1
  828. package/dist/lib/server/decisioning/runtime/entity-hydration.generated.js.map +1 -1
  829. package/dist/lib/server/decisioning/runtime/entity-hydration.generated.mjs.map +1 -1
  830. package/dist/lib/server/wire-spec-fields.generated.d.mts +29 -29
  831. package/dist/lib/server/wire-spec-fields.generated.d.ts +29 -29
  832. package/dist/lib/server/wire-spec-fields.generated.d.ts.map +1 -1
  833. package/dist/lib/server/wire-spec-fields.generated.js +29 -29
  834. package/dist/lib/server/wire-spec-fields.generated.js.map +1 -1
  835. package/dist/lib/server/wire-spec-fields.generated.mjs +29 -29
  836. package/dist/lib/server/wire-spec-fields.generated.mjs.map +1 -1
  837. package/dist/lib/types/adcp.d.mts +10 -0
  838. package/dist/lib/types/adcp.d.ts +10 -0
  839. package/dist/lib/types/adcp.d.ts.map +1 -1
  840. package/dist/lib/types/adcp.js.map +1 -1
  841. package/dist/lib/types/adcp.mjs.map +1 -1
  842. package/dist/lib/types/core.generated.d.mts +125 -19
  843. package/dist/lib/types/core.generated.d.ts +125 -19
  844. package/dist/lib/types/core.generated.d.ts.map +1 -1
  845. package/dist/lib/types/core.generated.js.map +1 -1
  846. package/dist/lib/types/manifest.generated.d.mts +3 -3
  847. package/dist/lib/types/manifest.generated.d.ts +3 -3
  848. package/dist/lib/types/manifest.generated.js.map +1 -1
  849. package/dist/lib/types/manifest.generated.mjs.map +1 -1
  850. package/dist/lib/types/per-tool-index.json +1 -1
  851. package/dist/lib/types/schemas.generated.d.mts +124 -20
  852. package/dist/lib/types/schemas.generated.d.ts +124 -20
  853. package/dist/lib/types/schemas.generated.d.ts.map +1 -1
  854. package/dist/lib/types/schemas.generated.js +83 -24
  855. package/dist/lib/types/schemas.generated.js.map +1 -1
  856. package/dist/lib/types/schemas.generated.mjs +79 -24
  857. package/dist/lib/types/schemas.generated.mjs.map +1 -1
  858. package/dist/lib/utils/response-schemas.js +1 -1
  859. package/dist/lib/utils/response-schemas.js.map +1 -1
  860. package/dist/lib/utils/response-schemas.mjs +1 -1
  861. package/dist/lib/utils/response-schemas.mjs.map +1 -1
  862. package/dist/lib/utils/sync-creatives-adapter.d.mts +6 -0
  863. package/dist/lib/utils/sync-creatives-adapter.d.ts +6 -0
  864. package/dist/lib/utils/sync-creatives-adapter.d.ts.map +1 -1
  865. package/dist/lib/utils/sync-creatives-adapter.js +22 -1
  866. package/dist/lib/utils/sync-creatives-adapter.js.map +1 -1
  867. package/dist/lib/utils/sync-creatives-adapter.mjs +22 -1
  868. package/dist/lib/utils/sync-creatives-adapter.mjs.map +1 -1
  869. package/dist/lib/version.d.mts +7 -7
  870. package/dist/lib/version.d.ts +7 -7
  871. package/dist/lib/version.d.ts.map +1 -1
  872. package/dist/lib/version.js +8 -6
  873. package/dist/lib/version.js.map +1 -1
  874. package/dist/lib/version.mjs +8 -6
  875. package/dist/lib/version.mjs.map +1 -1
  876. package/docs/llms.txt +12 -2
  877. package/package.json +2 -2
  878. /package/compliance/cache/{3.1.8 → 3.1.10}/domains/brand/index.yaml +0 -0
  879. /package/compliance/cache/{3.1.8 → 3.1.10}/domains/brand/scenarios/distributed_brand_resolution.yaml +0 -0
  880. /package/compliance/cache/{3.1.8 → 3.1.10}/domains/brand/scenarios/single_side_trust_extension.yaml +0 -0
  881. /package/compliance/cache/{3.1.8 → 3.1.10}/domains/creative/index.yaml +0 -0
  882. /package/compliance/cache/{3.1.8 → 3.1.10}/domains/creative/scenarios/billing_out_of_band.yaml +0 -0
  883. /package/compliance/cache/{3.1.8 → 3.1.10}/domains/creative/scenarios/canonical_supported_formats.yaml +0 -0
  884. /package/compliance/cache/{3.1.8 → 3.1.10}/domains/creative/scenarios/creative_lifecycle_webhooks.yaml +0 -0
  885. /package/compliance/cache/{3.1.8 → 3.1.10}/domains/creative/scenarios/evaluator_auth.yaml +0 -0
  886. /package/compliance/cache/{3.1.8 → 3.1.10}/domains/creative/scenarios/native_in_feed.yaml +0 -0
  887. /package/compliance/cache/{3.1.8 → 3.1.10}/domains/governance/index.yaml +0 -0
  888. /package/compliance/cache/{3.1.8 → 3.1.10}/domains/media-buy/scenarios/audience_buy_flow.yaml +0 -0
  889. /package/compliance/cache/{3.1.8 → 3.1.10}/domains/media-buy/scenarios/available_actions.yaml +0 -0
  890. /package/compliance/cache/{3.1.8 → 3.1.10}/domains/media-buy/scenarios/billing_finality_delivery.yaml +0 -0
  891. /package/compliance/cache/{3.1.8 → 3.1.10}/domains/media-buy/scenarios/canonical_formats.yaml +0 -0
  892. /package/compliance/cache/{3.1.8 → 3.1.10}/domains/media-buy/scenarios/clicks_buy_flow.yaml +0 -0
  893. /package/compliance/cache/{3.1.8 → 3.1.10}/domains/media-buy/scenarios/completed_views_buy_flow.yaml +0 -0
  894. /package/compliance/cache/{3.1.8 → 3.1.10}/domains/media-buy/scenarios/create_media_buy_async.yaml +0 -0
  895. /package/compliance/cache/{3.1.8 → 3.1.10}/domains/media-buy/scenarios/creative_fate_after_cancellation.yaml +0 -0
  896. /package/compliance/cache/{3.1.8 → 3.1.10}/domains/media-buy/scenarios/creative_reception.yaml +0 -0
  897. /package/compliance/cache/{3.1.8 → 3.1.10}/domains/media-buy/scenarios/delivery_reporting.yaml +0 -0
  898. /package/compliance/cache/{3.1.8 → 3.1.10}/domains/media-buy/scenarios/dependency_impairment.yaml +0 -0
  899. /package/compliance/cache/{3.1.8 → 3.1.10}/domains/media-buy/scenarios/dependency_impairment_cardinality.yaml +0 -0
  900. /package/compliance/cache/{3.1.8 → 3.1.10}/domains/media-buy/scenarios/event_dedup_flow.yaml +0 -0
  901. /package/compliance/cache/{3.1.8 → 3.1.10}/domains/media-buy/scenarios/frequency_cap_enforcement.yaml +0 -0
  902. /package/compliance/cache/{3.1.8 → 3.1.10}/domains/media-buy/scenarios/get_products_async.yaml +0 -0
  903. /package/compliance/cache/{3.1.8 → 3.1.10}/domains/media-buy/scenarios/governance_approved.yaml +0 -0
  904. /package/compliance/cache/{3.1.8 → 3.1.10}/domains/media-buy/scenarios/governance_conditions.yaml +0 -0
  905. /package/compliance/cache/{3.1.8 → 3.1.10}/domains/media-buy/scenarios/governance_denied.yaml +0 -0
  906. /package/compliance/cache/{3.1.8 → 3.1.10}/domains/media-buy/scenarios/governance_denied_recovery.yaml +0 -0
  907. /package/compliance/cache/{3.1.8 → 3.1.10}/domains/media-buy/scenarios/inline_creatives_without_sync.yaml +0 -0
  908. /package/compliance/cache/{3.1.8 → 3.1.10}/domains/media-buy/scenarios/invalid_transitions.yaml +0 -0
  909. /package/compliance/cache/{3.1.8 → 3.1.10}/domains/media-buy/scenarios/inventory_list_no_match.yaml +0 -0
  910. /package/compliance/cache/{3.1.8 → 3.1.10}/domains/media-buy/scenarios/inventory_list_targeting.yaml +0 -0
  911. /package/compliance/cache/{3.1.8 → 3.1.10}/domains/media-buy/scenarios/measurement_accountability.yaml +0 -0
  912. /package/compliance/cache/{3.1.8 → 3.1.10}/domains/media-buy/scenarios/measurement_terms_rejected.yaml +0 -0
  913. /package/compliance/cache/{3.1.8 → 3.1.10}/domains/media-buy/scenarios/package_correlation_legacy_fallback.yaml +0 -0
  914. /package/compliance/cache/{3.1.8 → 3.1.10}/domains/media-buy/scenarios/pending_creatives_to_start.yaml +0 -0
  915. /package/compliance/cache/{3.1.8 → 3.1.10}/domains/media-buy/scenarios/per_creative_conversion_attribution.yaml +0 -0
  916. /package/compliance/cache/{3.1.8 → 3.1.10}/domains/media-buy/scenarios/performance_buy_flow.yaml +0 -0
  917. /package/compliance/cache/{3.1.8 → 3.1.10}/domains/media-buy/scenarios/performance_buy_flow_roas.yaml +0 -0
  918. /package/compliance/cache/{3.1.8 → 3.1.10}/domains/media-buy/scenarios/pricing_currency_filter.yaml +0 -0
  919. /package/compliance/cache/{3.1.8 → 3.1.10}/domains/media-buy/scenarios/product_signal_targeting.yaml +0 -0
  920. /package/compliance/cache/{3.1.8 → 3.1.10}/domains/media-buy/scenarios/proposal_finalize.yaml +0 -0
  921. /package/compliance/cache/{3.1.8 → 3.1.10}/domains/media-buy/scenarios/proposal_finalize_asap_timing.yaml +0 -0
  922. /package/compliance/cache/{3.1.8 → 3.1.10}/domains/media-buy/scenarios/proposal_not_found_errors.yaml +0 -0
  923. /package/compliance/cache/{3.1.8 → 3.1.10}/domains/media-buy/scenarios/provenance_audit_observation.yaml +0 -0
  924. /package/compliance/cache/{3.1.8 → 3.1.10}/domains/media-buy/scenarios/provenance_enforcement.yaml +0 -0
  925. /package/compliance/cache/{3.1.8 → 3.1.10}/domains/media-buy/scenarios/provenance_truth_of_claim.yaml +0 -0
  926. /package/compliance/cache/{3.1.8 → 3.1.10}/domains/media-buy/scenarios/reach_buy_flow.yaml +0 -0
  927. /package/compliance/cache/{3.1.8 → 3.1.10}/domains/media-buy/scenarios/refine_finalize_exclusivity.yaml +0 -0
  928. /package/compliance/cache/{3.1.8 → 3.1.10}/domains/media-buy/scenarios/refine_products.yaml +0 -0
  929. /package/compliance/cache/{3.1.8 → 3.1.10}/domains/media-buy/scenarios/vendor_metric_accountability.yaml +0 -0
  930. /package/compliance/cache/{3.1.8 → 3.1.10}/domains/media-buy/scenarios/vendor_metric_catalog_precondition.yaml +0 -0
  931. /package/compliance/cache/{3.1.8 → 3.1.10}/domains/media-buy/scenarios/vendor_metric_optimization_flow.yaml +0 -0
  932. /package/compliance/cache/{3.1.8 → 3.1.10}/domains/media-buy/state-machine.yaml +0 -0
  933. /package/compliance/cache/{3.1.8 → 3.1.10}/domains/signals/index.yaml +0 -0
  934. /package/compliance/cache/{3.1.8 → 3.1.10}/domains/signals/scenarios/get_signals_async.yaml +0 -0
  935. /package/compliance/cache/{3.1.8 → 3.1.10}/domains/sponsored-intelligence/index.yaml +0 -0
  936. /package/compliance/cache/{3.1.8 → 3.1.10}/domains/sponsored-intelligence/sponsored-context-accountability.yaml +0 -0
  937. /package/compliance/cache/{3.1.8 → 3.1.10}/protocols/brand/index.yaml +0 -0
  938. /package/compliance/cache/{3.1.8 → 3.1.10}/protocols/brand/scenarios/distributed_brand_resolution.yaml +0 -0
  939. /package/compliance/cache/{3.1.8 → 3.1.10}/protocols/brand/scenarios/single_side_trust_extension.yaml +0 -0
  940. /package/compliance/cache/{3.1.8 → 3.1.10}/protocols/creative/index.yaml +0 -0
  941. /package/compliance/cache/{3.1.8 → 3.1.10}/protocols/creative/scenarios/billing_out_of_band.yaml +0 -0
  942. /package/compliance/cache/{3.1.8 → 3.1.10}/protocols/creative/scenarios/canonical_supported_formats.yaml +0 -0
  943. /package/compliance/cache/{3.1.8 → 3.1.10}/protocols/creative/scenarios/creative_lifecycle_webhooks.yaml +0 -0
  944. /package/compliance/cache/{3.1.8 → 3.1.10}/protocols/creative/scenarios/evaluator_auth.yaml +0 -0
  945. /package/compliance/cache/{3.1.8 → 3.1.10}/protocols/creative/scenarios/native_in_feed.yaml +0 -0
  946. /package/compliance/cache/{3.1.8 → 3.1.10}/protocols/governance/index.yaml +0 -0
  947. /package/compliance/cache/{3.1.8 → 3.1.10}/protocols/media-buy/scenarios/audience_buy_flow.yaml +0 -0
  948. /package/compliance/cache/{3.1.8 → 3.1.10}/protocols/media-buy/scenarios/available_actions.yaml +0 -0
  949. /package/compliance/cache/{3.1.8 → 3.1.10}/protocols/media-buy/scenarios/billing_finality_delivery.yaml +0 -0
  950. /package/compliance/cache/{3.1.8 → 3.1.10}/protocols/media-buy/scenarios/canonical_formats.yaml +0 -0
  951. /package/compliance/cache/{3.1.8 → 3.1.10}/protocols/media-buy/scenarios/clicks_buy_flow.yaml +0 -0
  952. /package/compliance/cache/{3.1.8 → 3.1.10}/protocols/media-buy/scenarios/completed_views_buy_flow.yaml +0 -0
  953. /package/compliance/cache/{3.1.8 → 3.1.10}/protocols/media-buy/scenarios/create_media_buy_async.yaml +0 -0
  954. /package/compliance/cache/{3.1.8 → 3.1.10}/protocols/media-buy/scenarios/creative_fate_after_cancellation.yaml +0 -0
  955. /package/compliance/cache/{3.1.8 → 3.1.10}/protocols/media-buy/scenarios/creative_reception.yaml +0 -0
  956. /package/compliance/cache/{3.1.8 → 3.1.10}/protocols/media-buy/scenarios/delivery_reporting.yaml +0 -0
  957. /package/compliance/cache/{3.1.8 → 3.1.10}/protocols/media-buy/scenarios/dependency_impairment.yaml +0 -0
  958. /package/compliance/cache/{3.1.8 → 3.1.10}/protocols/media-buy/scenarios/dependency_impairment_cardinality.yaml +0 -0
  959. /package/compliance/cache/{3.1.8 → 3.1.10}/protocols/media-buy/scenarios/event_dedup_flow.yaml +0 -0
  960. /package/compliance/cache/{3.1.8 → 3.1.10}/protocols/media-buy/scenarios/frequency_cap_enforcement.yaml +0 -0
  961. /package/compliance/cache/{3.1.8 → 3.1.10}/protocols/media-buy/scenarios/get_products_async.yaml +0 -0
  962. /package/compliance/cache/{3.1.8 → 3.1.10}/protocols/media-buy/scenarios/governance_approved.yaml +0 -0
  963. /package/compliance/cache/{3.1.8 → 3.1.10}/protocols/media-buy/scenarios/governance_conditions.yaml +0 -0
  964. /package/compliance/cache/{3.1.8 → 3.1.10}/protocols/media-buy/scenarios/governance_denied.yaml +0 -0
  965. /package/compliance/cache/{3.1.8 → 3.1.10}/protocols/media-buy/scenarios/governance_denied_recovery.yaml +0 -0
  966. /package/compliance/cache/{3.1.8 → 3.1.10}/protocols/media-buy/scenarios/inline_creatives_without_sync.yaml +0 -0
  967. /package/compliance/cache/{3.1.8 → 3.1.10}/protocols/media-buy/scenarios/invalid_transitions.yaml +0 -0
  968. /package/compliance/cache/{3.1.8 → 3.1.10}/protocols/media-buy/scenarios/inventory_list_no_match.yaml +0 -0
  969. /package/compliance/cache/{3.1.8 → 3.1.10}/protocols/media-buy/scenarios/inventory_list_targeting.yaml +0 -0
  970. /package/compliance/cache/{3.1.8 → 3.1.10}/protocols/media-buy/scenarios/measurement_accountability.yaml +0 -0
  971. /package/compliance/cache/{3.1.8 → 3.1.10}/protocols/media-buy/scenarios/measurement_terms_rejected.yaml +0 -0
  972. /package/compliance/cache/{3.1.8 → 3.1.10}/protocols/media-buy/scenarios/package_correlation_legacy_fallback.yaml +0 -0
  973. /package/compliance/cache/{3.1.8 → 3.1.10}/protocols/media-buy/scenarios/pending_creatives_to_start.yaml +0 -0
  974. /package/compliance/cache/{3.1.8 → 3.1.10}/protocols/media-buy/scenarios/per_creative_conversion_attribution.yaml +0 -0
  975. /package/compliance/cache/{3.1.8 → 3.1.10}/protocols/media-buy/scenarios/performance_buy_flow.yaml +0 -0
  976. /package/compliance/cache/{3.1.8 → 3.1.10}/protocols/media-buy/scenarios/performance_buy_flow_roas.yaml +0 -0
  977. /package/compliance/cache/{3.1.8 → 3.1.10}/protocols/media-buy/scenarios/pricing_currency_filter.yaml +0 -0
  978. /package/compliance/cache/{3.1.8 → 3.1.10}/protocols/media-buy/scenarios/product_signal_targeting.yaml +0 -0
  979. /package/compliance/cache/{3.1.8 → 3.1.10}/protocols/media-buy/scenarios/proposal_finalize.yaml +0 -0
  980. /package/compliance/cache/{3.1.8 → 3.1.10}/protocols/media-buy/scenarios/proposal_finalize_asap_timing.yaml +0 -0
  981. /package/compliance/cache/{3.1.8 → 3.1.10}/protocols/media-buy/scenarios/proposal_not_found_errors.yaml +0 -0
  982. /package/compliance/cache/{3.1.8 → 3.1.10}/protocols/media-buy/scenarios/provenance_audit_observation.yaml +0 -0
  983. /package/compliance/cache/{3.1.8 → 3.1.10}/protocols/media-buy/scenarios/provenance_enforcement.yaml +0 -0
  984. /package/compliance/cache/{3.1.8 → 3.1.10}/protocols/media-buy/scenarios/provenance_truth_of_claim.yaml +0 -0
  985. /package/compliance/cache/{3.1.8 → 3.1.10}/protocols/media-buy/scenarios/reach_buy_flow.yaml +0 -0
  986. /package/compliance/cache/{3.1.8 → 3.1.10}/protocols/media-buy/scenarios/refine_finalize_exclusivity.yaml +0 -0
  987. /package/compliance/cache/{3.1.8 → 3.1.10}/protocols/media-buy/scenarios/refine_products.yaml +0 -0
  988. /package/compliance/cache/{3.1.8 → 3.1.10}/protocols/media-buy/scenarios/vendor_metric_accountability.yaml +0 -0
  989. /package/compliance/cache/{3.1.8 → 3.1.10}/protocols/media-buy/scenarios/vendor_metric_catalog_precondition.yaml +0 -0
  990. /package/compliance/cache/{3.1.8 → 3.1.10}/protocols/media-buy/scenarios/vendor_metric_optimization_flow.yaml +0 -0
  991. /package/compliance/cache/{3.1.8 → 3.1.10}/protocols/media-buy/state-machine.yaml +0 -0
  992. /package/compliance/cache/{3.1.8 → 3.1.10}/protocols/signals/index.yaml +0 -0
  993. /package/compliance/cache/{3.1.8 → 3.1.10}/protocols/signals/scenarios/get_signals_async.yaml +0 -0
  994. /package/compliance/cache/{3.1.8 → 3.1.10}/protocols/sponsored-intelligence/index.yaml +0 -0
  995. /package/compliance/cache/{3.1.8 → 3.1.10}/protocols/sponsored-intelligence/sponsored-context-accountability.yaml +0 -0
  996. /package/compliance/cache/{3.1.8 → 3.1.10}/specialisms/audience-sync/index.yaml +0 -0
  997. /package/compliance/cache/{3.1.8 → 3.1.10}/specialisms/brand-rights/index.yaml +0 -0
  998. /package/compliance/cache/{3.1.8 → 3.1.10}/specialisms/brand-rights/scenarios/governance_denied.yaml +0 -0
  999. /package/compliance/cache/{3.1.8 → 3.1.10}/specialisms/collection-lists/index.yaml +0 -0
  1000. /package/compliance/cache/{3.1.8 → 3.1.10}/specialisms/content-standards/index.yaml +0 -0
  1001. /package/compliance/cache/{3.1.8 → 3.1.10}/specialisms/creative-ad-server/index.yaml +0 -0
  1002. /package/compliance/cache/{3.1.8 → 3.1.10}/specialisms/creative-generative/generative-seller.yaml +0 -0
  1003. /package/compliance/cache/{3.1.8 → 3.1.10}/specialisms/creative-generative/index.yaml +0 -0
  1004. /package/compliance/cache/{3.1.8 → 3.1.10}/specialisms/creative-template/index.yaml +0 -0
  1005. /package/compliance/cache/{3.1.8 → 3.1.10}/specialisms/creative-transformers/index.yaml +0 -0
  1006. /package/compliance/cache/{3.1.8 → 3.1.10}/specialisms/governance-aware-seller/index.yaml +0 -0
  1007. /package/compliance/cache/{3.1.8 → 3.1.10}/specialisms/governance-aware-seller/scenarios/governance_multi_agent_rejected.yaml +0 -0
  1008. /package/compliance/cache/{3.1.8 → 3.1.10}/specialisms/governance-delivery-monitor/index.yaml +0 -0
  1009. /package/compliance/cache/{3.1.8 → 3.1.10}/specialisms/governance-spend-authority/denied.yaml +0 -0
  1010. /package/compliance/cache/{3.1.8 → 3.1.10}/specialisms/governance-spend-authority/index.yaml +0 -0
  1011. /package/compliance/cache/{3.1.8 → 3.1.10}/specialisms/property-lists/index.yaml +0 -0
  1012. /package/compliance/cache/{3.1.8 → 3.1.10}/specialisms/sales-broadcast-tv/index.yaml +0 -0
  1013. /package/compliance/cache/{3.1.8 → 3.1.10}/specialisms/sales-catalog-driven/index.yaml +0 -0
  1014. /package/compliance/cache/{3.1.8 → 3.1.10}/specialisms/sales-guaranteed/index.yaml +0 -0
  1015. /package/compliance/cache/{3.1.8 → 3.1.10}/specialisms/sales-non-guaranteed/index.yaml +0 -0
  1016. /package/compliance/cache/{3.1.8 → 3.1.10}/specialisms/sales-proposal-mode/index.yaml +0 -0
  1017. /package/compliance/cache/{3.1.8 → 3.1.10}/specialisms/sales-social/index.yaml +0 -0
  1018. /package/compliance/cache/{3.1.8 → 3.1.10}/specialisms/signal-marketplace/index.yaml +0 -0
  1019. /package/compliance/cache/{3.1.8 → 3.1.10}/specialisms/signal-marketplace/scenarios/governance_denied.yaml +0 -0
  1020. /package/compliance/cache/{3.1.8 → 3.1.10}/specialisms/signal-owned/index.yaml +0 -0
  1021. /package/compliance/cache/{3.1.8 → 3.1.10}/specialisms/sponsored-intelligence/index.yaml +0 -0
  1022. /package/compliance/cache/{3.1.8 → 3.1.10}/test-kits/acme-outdoor-live.yaml +0 -0
  1023. /package/compliance/cache/{3.1.8 → 3.1.10}/test-kits/acme-outdoor.yaml +0 -0
  1024. /package/compliance/cache/{3.1.8 → 3.1.10}/test-kits/billing-gate-runner.yaml +0 -0
  1025. /package/compliance/cache/{3.1.8 → 3.1.10}/test-kits/bistro-oranje.yaml +0 -0
  1026. /package/compliance/cache/{3.1.8 → 3.1.10}/test-kits/distributed-brand-runner.yaml +0 -0
  1027. /package/compliance/cache/{3.1.8 → 3.1.10}/test-kits/nova-motors.yaml +0 -0
  1028. /package/compliance/cache/{3.1.8 → 3.1.10}/test-kits/osei-natural.yaml +0 -0
  1029. /package/compliance/cache/{3.1.8 → 3.1.10}/test-kits/parallel-dispatch-runner.yaml +0 -0
  1030. /package/compliance/cache/{3.1.8 → 3.1.10}/test-kits/rate-limit-trip-runner.yaml +0 -0
  1031. /package/compliance/cache/{3.1.8 → 3.1.10}/test-kits/signed-requests-runner.yaml +0 -0
  1032. /package/compliance/cache/{3.1.8 → 3.1.10}/test-kits/single-side-trust-runner.yaml +0 -0
  1033. /package/compliance/cache/{3.1.8 → 3.1.10}/test-kits/substitution-observer-runner.yaml +0 -0
  1034. /package/compliance/cache/{3.1.8 → 3.1.10}/test-kits/summit-foods.yaml +0 -0
  1035. /package/compliance/cache/{3.1.8 → 3.1.10}/test-kits/webhook-receiver-runner.yaml +0 -0
  1036. /package/compliance/cache/{3.1.8 → 3.1.10}/test-vectors/catalog-macro-substitution.json +0 -0
  1037. /package/compliance/cache/{3.1.8 → 3.1.10}/test-vectors/plan-hash/001-minimal-plan.json +0 -0
  1038. /package/compliance/cache/{3.1.8 → 3.1.10}/test-vectors/plan-hash/002-full-plan.json +0 -0
  1039. /package/compliance/cache/{3.1.8 → 3.1.10}/test-vectors/plan-hash/003-bookkeeping-stripped.json +0 -0
  1040. /package/compliance/cache/{3.1.8 → 3.1.10}/test-vectors/plan-hash/004a-human-review-omitted.json +0 -0
  1041. /package/compliance/cache/{3.1.8 → 3.1.10}/test-vectors/plan-hash/004b-human-review-explicit-null.json +0 -0
  1042. /package/compliance/cache/{3.1.8 → 3.1.10}/test-vectors/plan-hash/005a-policy-categories-order-1.json +0 -0
  1043. /package/compliance/cache/{3.1.8 → 3.1.10}/test-vectors/plan-hash/005b-policy-categories-order-2.json +0 -0
  1044. /package/compliance/cache/{3.1.8 → 3.1.10}/test-vectors/plan-hash/006a-ext-trace-v1.json +0 -0
  1045. /package/compliance/cache/{3.1.8 → 3.1.10}/test-vectors/plan-hash/006b-ext-trace-v2.json +0 -0
  1046. /package/compliance/cache/{3.1.8 → 3.1.10}/test-vectors/plan-hash/007-unicode-objectives.json +0 -0
  1047. /package/compliance/cache/{3.1.8 → 3.1.10}/test-vectors/plan-hash/008-numeric-canonicalization.json +0 -0
  1048. /package/compliance/cache/{3.1.8 → 3.1.10}/test-vectors/request-signing/README.md +0 -0
  1049. /package/compliance/cache/{3.1.8 → 3.1.10}/test-vectors/request-signing/canonicalization.json +0 -0
  1050. /package/compliance/cache/{3.1.8 → 3.1.10}/test-vectors/request-signing/keys.json +0 -0
  1051. /package/compliance/cache/{3.1.8 → 3.1.10}/test-vectors/request-signing/negative/001-no-signature-header.json +0 -0
  1052. /package/compliance/cache/{3.1.8 → 3.1.10}/test-vectors/request-signing/negative/002-wrong-tag.json +0 -0
  1053. /package/compliance/cache/{3.1.8 → 3.1.10}/test-vectors/request-signing/negative/003-expired-signature.json +0 -0
  1054. /package/compliance/cache/{3.1.8 → 3.1.10}/test-vectors/request-signing/negative/004-window-too-long.json +0 -0
  1055. /package/compliance/cache/{3.1.8 → 3.1.10}/test-vectors/request-signing/negative/005-alg-not-allowed.json +0 -0
  1056. /package/compliance/cache/{3.1.8 → 3.1.10}/test-vectors/request-signing/negative/006-missing-covered-component.json +0 -0
  1057. /package/compliance/cache/{3.1.8 → 3.1.10}/test-vectors/request-signing/negative/007-missing-content-digest.json +0 -0
  1058. /package/compliance/cache/{3.1.8 → 3.1.10}/test-vectors/request-signing/negative/008-unknown-keyid.json +0 -0
  1059. /package/compliance/cache/{3.1.8 → 3.1.10}/test-vectors/request-signing/negative/009-key-ops-missing-verify.json +0 -0
  1060. /package/compliance/cache/{3.1.8 → 3.1.10}/test-vectors/request-signing/negative/010-content-digest-mismatch.json +0 -0
  1061. /package/compliance/cache/{3.1.8 → 3.1.10}/test-vectors/request-signing/negative/011-malformed-header.json +0 -0
  1062. /package/compliance/cache/{3.1.8 → 3.1.10}/test-vectors/request-signing/negative/012-missing-expires-param.json +0 -0
  1063. /package/compliance/cache/{3.1.8 → 3.1.10}/test-vectors/request-signing/negative/013-expires-le-created.json +0 -0
  1064. /package/compliance/cache/{3.1.8 → 3.1.10}/test-vectors/request-signing/negative/014-missing-nonce-param.json +0 -0
  1065. /package/compliance/cache/{3.1.8 → 3.1.10}/test-vectors/request-signing/negative/015-signature-invalid.json +0 -0
  1066. /package/compliance/cache/{3.1.8 → 3.1.10}/test-vectors/request-signing/negative/016-replayed-nonce.json +0 -0
  1067. /package/compliance/cache/{3.1.8 → 3.1.10}/test-vectors/request-signing/negative/017-key-revoked.json +0 -0
  1068. /package/compliance/cache/{3.1.8 → 3.1.10}/test-vectors/request-signing/negative/018-digest-covered-when-forbidden.json +0 -0
  1069. /package/compliance/cache/{3.1.8 → 3.1.10}/test-vectors/request-signing/negative/019-signature-without-signature-input.json +0 -0
  1070. /package/compliance/cache/{3.1.8 → 3.1.10}/test-vectors/request-signing/negative/020-rate-abuse.json +0 -0
  1071. /package/compliance/cache/{3.1.8 → 3.1.10}/test-vectors/request-signing/negative/021-duplicate-signature-input-label.json +0 -0
  1072. /package/compliance/cache/{3.1.8 → 3.1.10}/test-vectors/request-signing/negative/022-multi-valued-content-type.json +0 -0
  1073. /package/compliance/cache/{3.1.8 → 3.1.10}/test-vectors/request-signing/negative/023-multi-valued-content-digest.json +0 -0
  1074. /package/compliance/cache/{3.1.8 → 3.1.10}/test-vectors/request-signing/negative/024-unquoted-string-param.json +0 -0
  1075. /package/compliance/cache/{3.1.8 → 3.1.10}/test-vectors/request-signing/negative/025-jwk-alg-crv-mismatch.json +0 -0
  1076. /package/compliance/cache/{3.1.8 → 3.1.10}/test-vectors/request-signing/negative/026-non-ascii-host.json +0 -0
  1077. /package/compliance/cache/{3.1.8 → 3.1.10}/test-vectors/request-signing/negative/027-webhook-registration-authentication-unsigned.json +0 -0
  1078. /package/compliance/cache/{3.1.8 → 3.1.10}/test-vectors/request-signing/negative/028-unsigned-protocol-method-required.json +0 -0
  1079. /package/compliance/cache/{3.1.8 → 3.1.10}/test-vectors/request-signing/positive/001-basic-post.json +0 -0
  1080. /package/compliance/cache/{3.1.8 → 3.1.10}/test-vectors/request-signing/positive/002-post-with-content-digest.json +0 -0
  1081. /package/compliance/cache/{3.1.8 → 3.1.10}/test-vectors/request-signing/positive/003-es256-post.json +0 -0
  1082. /package/compliance/cache/{3.1.8 → 3.1.10}/test-vectors/request-signing/positive/004-multiple-signature-labels.json +0 -0
  1083. /package/compliance/cache/{3.1.8 → 3.1.10}/test-vectors/request-signing/positive/005-default-port-stripped.json +0 -0
  1084. /package/compliance/cache/{3.1.8 → 3.1.10}/test-vectors/request-signing/positive/006-dot-segment-path.json +0 -0
  1085. /package/compliance/cache/{3.1.8 → 3.1.10}/test-vectors/request-signing/positive/007-query-byte-preserved.json +0 -0
  1086. /package/compliance/cache/{3.1.8 → 3.1.10}/test-vectors/request-signing/positive/008-percent-encoded-path.json +0 -0
  1087. /package/compliance/cache/{3.1.8 → 3.1.10}/test-vectors/request-signing/positive/009-percent-encoded-unreserved-decoded.json +0 -0
  1088. /package/compliance/cache/{3.1.8 → 3.1.10}/test-vectors/request-signing/positive/010-percent-encoded-slash-preserved.json +0 -0
  1089. /package/compliance/cache/{3.1.8 → 3.1.10}/test-vectors/request-signing/positive/011-ipv6-authority.json +0 -0
  1090. /package/compliance/cache/{3.1.8 → 3.1.10}/test-vectors/request-signing/positive/012-ipv6-authority-default-port-stripped.json +0 -0
  1091. /package/compliance/cache/{3.1.8 → 3.1.10}/test-vectors/webhook-receiver-envelope.json +0 -0
  1092. /package/compliance/cache/{3.1.8 → 3.1.10}/test-vectors/webhook-signing/README.md +0 -0
  1093. /package/compliance/cache/{3.1.8 → 3.1.10}/test-vectors/webhook-signing/keys.json +0 -0
  1094. /package/compliance/cache/{3.1.8 → 3.1.10}/test-vectors/webhook-signing/negative/001-wrong-tag.json +0 -0
  1095. /package/compliance/cache/{3.1.8 → 3.1.10}/test-vectors/webhook-signing/negative/002-expired-signature.json +0 -0
  1096. /package/compliance/cache/{3.1.8 → 3.1.10}/test-vectors/webhook-signing/negative/003-window-too-long.json +0 -0
  1097. /package/compliance/cache/{3.1.8 → 3.1.10}/test-vectors/webhook-signing/negative/004-alg-not-allowed.json +0 -0
  1098. /package/compliance/cache/{3.1.8 → 3.1.10}/test-vectors/webhook-signing/negative/005-missing-authority-component.json +0 -0
  1099. /package/compliance/cache/{3.1.8 → 3.1.10}/test-vectors/webhook-signing/negative/006-missing-content-digest.json +0 -0
  1100. /package/compliance/cache/{3.1.8 → 3.1.10}/test-vectors/webhook-signing/negative/007-unknown-keyid.json +0 -0
  1101. /package/compliance/cache/{3.1.8 → 3.1.10}/test-vectors/webhook-signing/negative/008-wrong-adcp-use.json +0 -0
  1102. /package/compliance/cache/{3.1.8 → 3.1.10}/test-vectors/webhook-signing/negative/009-content-digest-mismatch.json +0 -0
  1103. /package/compliance/cache/{3.1.8 → 3.1.10}/test-vectors/webhook-signing/negative/010-malformed-signature-input.json +0 -0
  1104. /package/compliance/cache/{3.1.8 → 3.1.10}/test-vectors/webhook-signing/negative/011-signature-without-input.json +0 -0
  1105. /package/compliance/cache/{3.1.8 → 3.1.10}/test-vectors/webhook-signing/negative/012-missing-expires-param.json +0 -0
  1106. /package/compliance/cache/{3.1.8 → 3.1.10}/test-vectors/webhook-signing/negative/013-expires-le-created.json +0 -0
  1107. /package/compliance/cache/{3.1.8 → 3.1.10}/test-vectors/webhook-signing/negative/014-missing-nonce-param.json +0 -0
  1108. /package/compliance/cache/{3.1.8 → 3.1.10}/test-vectors/webhook-signing/negative/015-signature-invalid.json +0 -0
  1109. /package/compliance/cache/{3.1.8 → 3.1.10}/test-vectors/webhook-signing/negative/016-replayed-nonce.json +0 -0
  1110. /package/compliance/cache/{3.1.8 → 3.1.10}/test-vectors/webhook-signing/negative/017-key-revoked.json +0 -0
  1111. /package/compliance/cache/{3.1.8 → 3.1.10}/test-vectors/webhook-signing/negative/018-rate-abuse.json +0 -0
  1112. /package/compliance/cache/{3.1.8 → 3.1.10}/test-vectors/webhook-signing/negative/019-revocation-stale.json +0 -0
  1113. /package/compliance/cache/{3.1.8 → 3.1.10}/test-vectors/webhook-signing/negative/020-key-ops-missing-verify.json +0 -0
  1114. /package/compliance/cache/{3.1.8 → 3.1.10}/test-vectors/webhook-signing/negative/021-base64-alphabet-mixing.json +0 -0
  1115. /package/compliance/cache/{3.1.8 → 3.1.10}/test-vectors/webhook-signing/positive/001-basic-post.json +0 -0
  1116. /package/compliance/cache/{3.1.8 → 3.1.10}/test-vectors/webhook-signing/positive/002-es256-post.json +0 -0
  1117. /package/compliance/cache/{3.1.8 → 3.1.10}/test-vectors/webhook-signing/positive/003-multiple-signature-labels.json +0 -0
  1118. /package/compliance/cache/{3.1.8 → 3.1.10}/test-vectors/webhook-signing/positive/004-default-port-stripped.json +0 -0
  1119. /package/compliance/cache/{3.1.8 → 3.1.10}/test-vectors/webhook-signing/positive/005-percent-encoded-path.json +0 -0
  1120. /package/compliance/cache/{3.1.8 → 3.1.10}/test-vectors/webhook-signing/positive/006-query-byte-preserved.json +0 -0
  1121. /package/compliance/cache/{3.1.8 → 3.1.10}/test-vectors/webhook-signing/positive/007-body-without-idempotency-key.json +0 -0
  1122. /package/compliance/cache/{3.1.8 → 3.1.10}/test-vectors/webhook-signing/positive/008-request-signing-key-reuse.json +0 -0
  1123. /package/compliance/cache/{3.1.8 → 3.1.10}/universal/billing-gate-dispatch.yaml +0 -0
  1124. /package/compliance/cache/{3.1.8 → 3.1.10}/universal/canonical-format-validate-input.yaml +0 -0
  1125. /package/compliance/cache/{3.1.8 → 3.1.10}/universal/capability-discovery.yaml +0 -0
  1126. /package/compliance/cache/{3.1.8 → 3.1.10}/universal/collection-lists-pagination-integrity.yaml +0 -0
  1127. /package/compliance/cache/{3.1.8 → 3.1.10}/universal/comply-controller-mode-gate.yaml +0 -0
  1128. /package/compliance/cache/{3.1.8 → 3.1.10}/universal/content-standards-pagination-integrity.yaml +0 -0
  1129. /package/compliance/cache/{3.1.8 → 3.1.10}/universal/deterministic-testing.yaml +0 -0
  1130. /package/compliance/cache/{3.1.8 → 3.1.10}/universal/error-compliance-signals.yaml +0 -0
  1131. /package/compliance/cache/{3.1.8 → 3.1.10}/universal/error-compliance.yaml +0 -0
  1132. /package/compliance/cache/{3.1.8 → 3.1.10}/universal/fictional-entities.yaml +0 -0
  1133. /package/compliance/cache/{3.1.8 → 3.1.10}/universal/get-media-buys-pagination-integrity.yaml +0 -0
  1134. /package/compliance/cache/{3.1.8 → 3.1.10}/universal/get-products-pagination-integrity.yaml +0 -0
  1135. /package/compliance/cache/{3.1.8 → 3.1.10}/universal/get-signals-pagination-integrity.yaml +0 -0
  1136. /package/compliance/cache/{3.1.8 → 3.1.10}/universal/idempotency.yaml +0 -0
  1137. /package/compliance/cache/{3.1.8 → 3.1.10}/universal/notification-config-event-scope.yaml +0 -0
  1138. /package/compliance/cache/{3.1.8 → 3.1.10}/universal/notification-config-lifecycle.yaml +0 -0
  1139. /package/compliance/cache/{3.1.8 → 3.1.10}/universal/notification-config-rejections.yaml +0 -0
  1140. /package/compliance/cache/{3.1.8 → 3.1.10}/universal/pagination-integrity-creative-formats.yaml +0 -0
  1141. /package/compliance/cache/{3.1.8 → 3.1.10}/universal/pagination-integrity-list-accounts.yaml +0 -0
  1142. /package/compliance/cache/{3.1.8 → 3.1.10}/universal/pagination-integrity.yaml +0 -0
  1143. /package/compliance/cache/{3.1.8 → 3.1.10}/universal/property-lists-pagination-integrity.yaml +0 -0
  1144. /package/compliance/cache/{3.1.8 → 3.1.10}/universal/read-tool-idempotency.yaml +0 -0
  1145. /package/compliance/cache/{3.1.8 → 3.1.10}/universal/schema-validation-signals.yaml +0 -0
  1146. /package/compliance/cache/{3.1.8 → 3.1.10}/universal/schema-validation.yaml +0 -0
  1147. /package/compliance/cache/{3.1.8 → 3.1.10}/universal/security.yaml +0 -0
  1148. /package/compliance/cache/{3.1.8 → 3.1.10}/universal/signed-requests.yaml +0 -0
  1149. /package/compliance/cache/{3.1.8 → 3.1.10}/universal/stale-response-advisory.yaml +0 -0
  1150. /package/compliance/cache/{3.1.8 → 3.1.10}/universal/storyboard-schema.yaml +0 -0
  1151. /package/compliance/cache/{3.1.8 → 3.1.10}/universal/v3-envelope-integrity.yaml +0 -0
  1152. /package/compliance/cache/{3.1.8 → 3.1.10}/universal/version-negotiation.yaml +0 -0
  1153. /package/compliance/cache/{3.1.8 → 3.1.10}/universal/webhook-emission.yaml +0 -0
  1154. /package/compliance/cache/{3.1.8 → 3.1.10}/universal/webhook-receiver-envelope.yaml +0 -0
  1155. /package/compliance/cache/{3.1.8 → 3.1.10}/universal/wholesale-feed-bulk-webhooks.yaml +0 -0
  1156. /package/compliance/cache/{3.1.8 → 3.1.10}/universal/wholesale-feed-product-webhooks.yaml +0 -0
  1157. /package/compliance/cache/{3.1.8 → 3.1.10}/universal/wholesale-feed-products.yaml +0 -0
  1158. /package/compliance/cache/{3.1.8 → 3.1.10}/universal/wholesale-feed-signal-webhooks.yaml +0 -0
  1159. /package/compliance/cache/{3.1.8 → 3.1.10}/universal/wholesale-feed-signals.yaml +0 -0
  1160. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/domains/brand/index.yaml +0 -0
  1161. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/domains/brand/scenarios/distributed_brand_resolution.yaml +0 -0
  1162. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/domains/brand/scenarios/single_side_trust_extension.yaml +0 -0
  1163. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/domains/creative/index.yaml +0 -0
  1164. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/domains/creative/scenarios/billing_out_of_band.yaml +0 -0
  1165. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/domains/creative/scenarios/canonical_supported_formats.yaml +0 -0
  1166. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/domains/creative/scenarios/creative_lifecycle_webhooks.yaml +0 -0
  1167. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/domains/creative/scenarios/evaluator_auth.yaml +0 -0
  1168. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/domains/creative/scenarios/native_in_feed.yaml +0 -0
  1169. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/domains/governance/index.yaml +0 -0
  1170. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/domains/media-buy/scenarios/audience_buy_flow.yaml +0 -0
  1171. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/domains/media-buy/scenarios/available_actions.yaml +0 -0
  1172. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/domains/media-buy/scenarios/billing_finality_delivery.yaml +0 -0
  1173. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/domains/media-buy/scenarios/canonical_formats.yaml +0 -0
  1174. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/domains/media-buy/scenarios/clicks_buy_flow.yaml +0 -0
  1175. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/domains/media-buy/scenarios/completed_views_buy_flow.yaml +0 -0
  1176. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/domains/media-buy/scenarios/create_media_buy_async.yaml +0 -0
  1177. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/domains/media-buy/scenarios/creative_fate_after_cancellation.yaml +0 -0
  1178. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/domains/media-buy/scenarios/creative_reception.yaml +0 -0
  1179. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/domains/media-buy/scenarios/delivery_reporting.yaml +0 -0
  1180. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/domains/media-buy/scenarios/dependency_impairment.yaml +0 -0
  1181. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/domains/media-buy/scenarios/dependency_impairment_cardinality.yaml +0 -0
  1182. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/domains/media-buy/scenarios/event_dedup_flow.yaml +0 -0
  1183. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/domains/media-buy/scenarios/frequency_cap_enforcement.yaml +0 -0
  1184. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/domains/media-buy/scenarios/get_products_async.yaml +0 -0
  1185. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/domains/media-buy/scenarios/governance_approved.yaml +0 -0
  1186. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/domains/media-buy/scenarios/governance_conditions.yaml +0 -0
  1187. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/domains/media-buy/scenarios/governance_denied.yaml +0 -0
  1188. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/domains/media-buy/scenarios/governance_denied_recovery.yaml +0 -0
  1189. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/domains/media-buy/scenarios/inline_creatives_without_sync.yaml +0 -0
  1190. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/domains/media-buy/scenarios/invalid_transitions.yaml +0 -0
  1191. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/domains/media-buy/scenarios/inventory_list_no_match.yaml +0 -0
  1192. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/domains/media-buy/scenarios/inventory_list_targeting.yaml +0 -0
  1193. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/domains/media-buy/scenarios/measurement_accountability.yaml +0 -0
  1194. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/domains/media-buy/scenarios/measurement_terms_rejected.yaml +0 -0
  1195. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/domains/media-buy/scenarios/package_correlation_legacy_fallback.yaml +0 -0
  1196. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/domains/media-buy/scenarios/pending_creatives_to_start.yaml +0 -0
  1197. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/domains/media-buy/scenarios/per_creative_conversion_attribution.yaml +0 -0
  1198. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/domains/media-buy/scenarios/performance_buy_flow.yaml +0 -0
  1199. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/domains/media-buy/scenarios/performance_buy_flow_roas.yaml +0 -0
  1200. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/domains/media-buy/scenarios/pricing_currency_filter.yaml +0 -0
  1201. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/domains/media-buy/scenarios/product_signal_targeting.yaml +0 -0
  1202. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/domains/media-buy/scenarios/proposal_finalize.yaml +0 -0
  1203. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/domains/media-buy/scenarios/proposal_finalize_asap_timing.yaml +0 -0
  1204. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/domains/media-buy/scenarios/proposal_not_found_errors.yaml +0 -0
  1205. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/domains/media-buy/scenarios/provenance_audit_observation.yaml +0 -0
  1206. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/domains/media-buy/scenarios/provenance_enforcement.yaml +0 -0
  1207. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/domains/media-buy/scenarios/provenance_truth_of_claim.yaml +0 -0
  1208. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/domains/media-buy/scenarios/reach_buy_flow.yaml +0 -0
  1209. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/domains/media-buy/scenarios/refine_finalize_exclusivity.yaml +0 -0
  1210. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/domains/media-buy/scenarios/refine_products.yaml +0 -0
  1211. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/domains/media-buy/scenarios/vendor_metric_accountability.yaml +0 -0
  1212. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/domains/media-buy/scenarios/vendor_metric_catalog_precondition.yaml +0 -0
  1213. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/domains/media-buy/scenarios/vendor_metric_optimization_flow.yaml +0 -0
  1214. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/domains/media-buy/state-machine.yaml +0 -0
  1215. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/domains/signals/index.yaml +0 -0
  1216. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/domains/signals/scenarios/get_signals_async.yaml +0 -0
  1217. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/domains/sponsored-intelligence/index.yaml +0 -0
  1218. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/domains/sponsored-intelligence/sponsored-context-accountability.yaml +0 -0
  1219. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/protocols/brand/index.yaml +0 -0
  1220. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/protocols/brand/scenarios/distributed_brand_resolution.yaml +0 -0
  1221. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/protocols/brand/scenarios/single_side_trust_extension.yaml +0 -0
  1222. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/protocols/creative/index.yaml +0 -0
  1223. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/protocols/creative/scenarios/billing_out_of_band.yaml +0 -0
  1224. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/protocols/creative/scenarios/canonical_supported_formats.yaml +0 -0
  1225. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/protocols/creative/scenarios/creative_lifecycle_webhooks.yaml +0 -0
  1226. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/protocols/creative/scenarios/evaluator_auth.yaml +0 -0
  1227. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/protocols/creative/scenarios/native_in_feed.yaml +0 -0
  1228. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/protocols/governance/index.yaml +0 -0
  1229. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/protocols/media-buy/scenarios/audience_buy_flow.yaml +0 -0
  1230. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/protocols/media-buy/scenarios/available_actions.yaml +0 -0
  1231. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/protocols/media-buy/scenarios/billing_finality_delivery.yaml +0 -0
  1232. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/protocols/media-buy/scenarios/canonical_formats.yaml +0 -0
  1233. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/protocols/media-buy/scenarios/clicks_buy_flow.yaml +0 -0
  1234. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/protocols/media-buy/scenarios/completed_views_buy_flow.yaml +0 -0
  1235. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/protocols/media-buy/scenarios/create_media_buy_async.yaml +0 -0
  1236. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/protocols/media-buy/scenarios/creative_fate_after_cancellation.yaml +0 -0
  1237. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/protocols/media-buy/scenarios/creative_reception.yaml +0 -0
  1238. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/protocols/media-buy/scenarios/delivery_reporting.yaml +0 -0
  1239. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/protocols/media-buy/scenarios/dependency_impairment.yaml +0 -0
  1240. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/protocols/media-buy/scenarios/dependency_impairment_cardinality.yaml +0 -0
  1241. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/protocols/media-buy/scenarios/event_dedup_flow.yaml +0 -0
  1242. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/protocols/media-buy/scenarios/frequency_cap_enforcement.yaml +0 -0
  1243. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/protocols/media-buy/scenarios/get_products_async.yaml +0 -0
  1244. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/protocols/media-buy/scenarios/governance_approved.yaml +0 -0
  1245. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/protocols/media-buy/scenarios/governance_conditions.yaml +0 -0
  1246. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/protocols/media-buy/scenarios/governance_denied.yaml +0 -0
  1247. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/protocols/media-buy/scenarios/governance_denied_recovery.yaml +0 -0
  1248. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/protocols/media-buy/scenarios/inline_creatives_without_sync.yaml +0 -0
  1249. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/protocols/media-buy/scenarios/invalid_transitions.yaml +0 -0
  1250. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/protocols/media-buy/scenarios/inventory_list_no_match.yaml +0 -0
  1251. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/protocols/media-buy/scenarios/inventory_list_targeting.yaml +0 -0
  1252. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/protocols/media-buy/scenarios/measurement_accountability.yaml +0 -0
  1253. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/protocols/media-buy/scenarios/measurement_terms_rejected.yaml +0 -0
  1254. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/protocols/media-buy/scenarios/package_correlation_legacy_fallback.yaml +0 -0
  1255. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/protocols/media-buy/scenarios/pending_creatives_to_start.yaml +0 -0
  1256. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/protocols/media-buy/scenarios/per_creative_conversion_attribution.yaml +0 -0
  1257. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/protocols/media-buy/scenarios/performance_buy_flow.yaml +0 -0
  1258. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/protocols/media-buy/scenarios/performance_buy_flow_roas.yaml +0 -0
  1259. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/protocols/media-buy/scenarios/pricing_currency_filter.yaml +0 -0
  1260. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/protocols/media-buy/scenarios/product_signal_targeting.yaml +0 -0
  1261. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/protocols/media-buy/scenarios/proposal_finalize.yaml +0 -0
  1262. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/protocols/media-buy/scenarios/proposal_finalize_asap_timing.yaml +0 -0
  1263. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/protocols/media-buy/scenarios/proposal_not_found_errors.yaml +0 -0
  1264. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/protocols/media-buy/scenarios/provenance_audit_observation.yaml +0 -0
  1265. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/protocols/media-buy/scenarios/provenance_enforcement.yaml +0 -0
  1266. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/protocols/media-buy/scenarios/provenance_truth_of_claim.yaml +0 -0
  1267. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/protocols/media-buy/scenarios/reach_buy_flow.yaml +0 -0
  1268. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/protocols/media-buy/scenarios/refine_finalize_exclusivity.yaml +0 -0
  1269. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/protocols/media-buy/scenarios/refine_products.yaml +0 -0
  1270. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/protocols/media-buy/scenarios/vendor_metric_accountability.yaml +0 -0
  1271. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/protocols/media-buy/scenarios/vendor_metric_catalog_precondition.yaml +0 -0
  1272. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/protocols/media-buy/scenarios/vendor_metric_optimization_flow.yaml +0 -0
  1273. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/protocols/media-buy/state-machine.yaml +0 -0
  1274. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/protocols/signals/index.yaml +0 -0
  1275. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/protocols/signals/scenarios/get_signals_async.yaml +0 -0
  1276. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/protocols/sponsored-intelligence/index.yaml +0 -0
  1277. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/protocols/sponsored-intelligence/sponsored-context-accountability.yaml +0 -0
  1278. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/specialisms/audience-sync/index.yaml +0 -0
  1279. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/specialisms/brand-rights/index.yaml +0 -0
  1280. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/specialisms/brand-rights/scenarios/governance_denied.yaml +0 -0
  1281. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/specialisms/collection-lists/index.yaml +0 -0
  1282. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/specialisms/content-standards/index.yaml +0 -0
  1283. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/specialisms/creative-ad-server/index.yaml +0 -0
  1284. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/specialisms/creative-generative/generative-seller.yaml +0 -0
  1285. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/specialisms/creative-generative/index.yaml +0 -0
  1286. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/specialisms/creative-template/index.yaml +0 -0
  1287. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/specialisms/creative-transformers/index.yaml +0 -0
  1288. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/specialisms/governance-aware-seller/index.yaml +0 -0
  1289. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/specialisms/governance-aware-seller/scenarios/governance_multi_agent_rejected.yaml +0 -0
  1290. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/specialisms/governance-delivery-monitor/index.yaml +0 -0
  1291. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/specialisms/governance-spend-authority/denied.yaml +0 -0
  1292. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/specialisms/governance-spend-authority/index.yaml +0 -0
  1293. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/specialisms/property-lists/index.yaml +0 -0
  1294. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/specialisms/sales-broadcast-tv/index.yaml +0 -0
  1295. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/specialisms/sales-catalog-driven/index.yaml +0 -0
  1296. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/specialisms/sales-guaranteed/index.yaml +0 -0
  1297. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/specialisms/sales-non-guaranteed/index.yaml +0 -0
  1298. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/specialisms/sales-proposal-mode/index.yaml +0 -0
  1299. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/specialisms/sales-social/index.yaml +0 -0
  1300. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/specialisms/signal-marketplace/index.yaml +0 -0
  1301. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/specialisms/signal-marketplace/scenarios/governance_denied.yaml +0 -0
  1302. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/specialisms/signal-owned/index.yaml +0 -0
  1303. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/specialisms/sponsored-intelligence/index.yaml +0 -0
  1304. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/test-kits/acme-outdoor-live.yaml +0 -0
  1305. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/test-kits/acme-outdoor.yaml +0 -0
  1306. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/test-kits/billing-gate-runner.yaml +0 -0
  1307. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/test-kits/bistro-oranje.yaml +0 -0
  1308. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/test-kits/distributed-brand-runner.yaml +0 -0
  1309. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/test-kits/nova-motors.yaml +0 -0
  1310. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/test-kits/osei-natural.yaml +0 -0
  1311. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/test-kits/parallel-dispatch-runner.yaml +0 -0
  1312. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/test-kits/rate-limit-trip-runner.yaml +0 -0
  1313. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/test-kits/signed-requests-runner.yaml +0 -0
  1314. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/test-kits/single-side-trust-runner.yaml +0 -0
  1315. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/test-kits/substitution-observer-runner.yaml +0 -0
  1316. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/test-kits/summit-foods.yaml +0 -0
  1317. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/test-kits/webhook-receiver-runner.yaml +0 -0
  1318. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/test-vectors/catalog-macro-substitution.json +0 -0
  1319. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/test-vectors/plan-hash/001-minimal-plan.json +0 -0
  1320. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/test-vectors/plan-hash/002-full-plan.json +0 -0
  1321. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/test-vectors/plan-hash/003-bookkeeping-stripped.json +0 -0
  1322. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/test-vectors/plan-hash/004a-human-review-omitted.json +0 -0
  1323. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/test-vectors/plan-hash/004b-human-review-explicit-null.json +0 -0
  1324. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/test-vectors/plan-hash/005a-policy-categories-order-1.json +0 -0
  1325. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/test-vectors/plan-hash/005b-policy-categories-order-2.json +0 -0
  1326. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/test-vectors/plan-hash/006a-ext-trace-v1.json +0 -0
  1327. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/test-vectors/plan-hash/006b-ext-trace-v2.json +0 -0
  1328. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/test-vectors/plan-hash/007-unicode-objectives.json +0 -0
  1329. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/test-vectors/plan-hash/008-numeric-canonicalization.json +0 -0
  1330. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/test-vectors/request-signing/README.md +0 -0
  1331. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/test-vectors/request-signing/canonicalization.json +0 -0
  1332. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/test-vectors/request-signing/keys.json +0 -0
  1333. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/test-vectors/request-signing/negative/001-no-signature-header.json +0 -0
  1334. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/test-vectors/request-signing/negative/002-wrong-tag.json +0 -0
  1335. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/test-vectors/request-signing/negative/003-expired-signature.json +0 -0
  1336. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/test-vectors/request-signing/negative/004-window-too-long.json +0 -0
  1337. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/test-vectors/request-signing/negative/005-alg-not-allowed.json +0 -0
  1338. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/test-vectors/request-signing/negative/006-missing-covered-component.json +0 -0
  1339. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/test-vectors/request-signing/negative/007-missing-content-digest.json +0 -0
  1340. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/test-vectors/request-signing/negative/008-unknown-keyid.json +0 -0
  1341. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/test-vectors/request-signing/negative/009-key-ops-missing-verify.json +0 -0
  1342. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/test-vectors/request-signing/negative/010-content-digest-mismatch.json +0 -0
  1343. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/test-vectors/request-signing/negative/011-malformed-header.json +0 -0
  1344. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/test-vectors/request-signing/negative/012-missing-expires-param.json +0 -0
  1345. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/test-vectors/request-signing/negative/013-expires-le-created.json +0 -0
  1346. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/test-vectors/request-signing/negative/014-missing-nonce-param.json +0 -0
  1347. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/test-vectors/request-signing/negative/015-signature-invalid.json +0 -0
  1348. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/test-vectors/request-signing/negative/016-replayed-nonce.json +0 -0
  1349. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/test-vectors/request-signing/negative/017-key-revoked.json +0 -0
  1350. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/test-vectors/request-signing/negative/018-digest-covered-when-forbidden.json +0 -0
  1351. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/test-vectors/request-signing/negative/019-signature-without-signature-input.json +0 -0
  1352. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/test-vectors/request-signing/negative/020-rate-abuse.json +0 -0
  1353. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/test-vectors/request-signing/negative/021-duplicate-signature-input-label.json +0 -0
  1354. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/test-vectors/request-signing/negative/022-multi-valued-content-type.json +0 -0
  1355. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/test-vectors/request-signing/negative/023-multi-valued-content-digest.json +0 -0
  1356. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/test-vectors/request-signing/negative/024-unquoted-string-param.json +0 -0
  1357. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/test-vectors/request-signing/negative/025-jwk-alg-crv-mismatch.json +0 -0
  1358. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/test-vectors/request-signing/negative/026-non-ascii-host.json +0 -0
  1359. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/test-vectors/request-signing/negative/027-webhook-registration-authentication-unsigned.json +0 -0
  1360. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/test-vectors/request-signing/negative/028-unsigned-protocol-method-required.json +0 -0
  1361. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/test-vectors/request-signing/positive/001-basic-post.json +0 -0
  1362. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/test-vectors/request-signing/positive/002-post-with-content-digest.json +0 -0
  1363. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/test-vectors/request-signing/positive/003-es256-post.json +0 -0
  1364. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/test-vectors/request-signing/positive/004-multiple-signature-labels.json +0 -0
  1365. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/test-vectors/request-signing/positive/005-default-port-stripped.json +0 -0
  1366. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/test-vectors/request-signing/positive/006-dot-segment-path.json +0 -0
  1367. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/test-vectors/request-signing/positive/007-query-byte-preserved.json +0 -0
  1368. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/test-vectors/request-signing/positive/008-percent-encoded-path.json +0 -0
  1369. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/test-vectors/request-signing/positive/009-percent-encoded-unreserved-decoded.json +0 -0
  1370. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/test-vectors/request-signing/positive/010-percent-encoded-slash-preserved.json +0 -0
  1371. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/test-vectors/request-signing/positive/011-ipv6-authority.json +0 -0
  1372. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/test-vectors/request-signing/positive/012-ipv6-authority-default-port-stripped.json +0 -0
  1373. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/test-vectors/webhook-receiver-envelope.json +0 -0
  1374. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/test-vectors/webhook-signing/README.md +0 -0
  1375. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/test-vectors/webhook-signing/keys.json +0 -0
  1376. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/test-vectors/webhook-signing/negative/001-wrong-tag.json +0 -0
  1377. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/test-vectors/webhook-signing/negative/002-expired-signature.json +0 -0
  1378. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/test-vectors/webhook-signing/negative/003-window-too-long.json +0 -0
  1379. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/test-vectors/webhook-signing/negative/004-alg-not-allowed.json +0 -0
  1380. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/test-vectors/webhook-signing/negative/005-missing-authority-component.json +0 -0
  1381. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/test-vectors/webhook-signing/negative/006-missing-content-digest.json +0 -0
  1382. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/test-vectors/webhook-signing/negative/007-unknown-keyid.json +0 -0
  1383. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/test-vectors/webhook-signing/negative/008-wrong-adcp-use.json +0 -0
  1384. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/test-vectors/webhook-signing/negative/009-content-digest-mismatch.json +0 -0
  1385. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/test-vectors/webhook-signing/negative/010-malformed-signature-input.json +0 -0
  1386. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/test-vectors/webhook-signing/negative/011-signature-without-input.json +0 -0
  1387. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/test-vectors/webhook-signing/negative/012-missing-expires-param.json +0 -0
  1388. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/test-vectors/webhook-signing/negative/013-expires-le-created.json +0 -0
  1389. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/test-vectors/webhook-signing/negative/014-missing-nonce-param.json +0 -0
  1390. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/test-vectors/webhook-signing/negative/015-signature-invalid.json +0 -0
  1391. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/test-vectors/webhook-signing/negative/016-replayed-nonce.json +0 -0
  1392. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/test-vectors/webhook-signing/negative/017-key-revoked.json +0 -0
  1393. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/test-vectors/webhook-signing/negative/018-rate-abuse.json +0 -0
  1394. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/test-vectors/webhook-signing/negative/019-revocation-stale.json +0 -0
  1395. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/test-vectors/webhook-signing/negative/020-key-ops-missing-verify.json +0 -0
  1396. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/test-vectors/webhook-signing/negative/021-base64-alphabet-mixing.json +0 -0
  1397. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/test-vectors/webhook-signing/positive/001-basic-post.json +0 -0
  1398. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/test-vectors/webhook-signing/positive/002-es256-post.json +0 -0
  1399. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/test-vectors/webhook-signing/positive/003-multiple-signature-labels.json +0 -0
  1400. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/test-vectors/webhook-signing/positive/004-default-port-stripped.json +0 -0
  1401. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/test-vectors/webhook-signing/positive/005-percent-encoded-path.json +0 -0
  1402. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/test-vectors/webhook-signing/positive/006-query-byte-preserved.json +0 -0
  1403. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/test-vectors/webhook-signing/positive/007-body-without-idempotency-key.json +0 -0
  1404. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/test-vectors/webhook-signing/positive/008-request-signing-key-reuse.json +0 -0
  1405. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/universal/billing-gate-dispatch.yaml +0 -0
  1406. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/universal/canonical-format-validate-input.yaml +0 -0
  1407. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/universal/capability-discovery.yaml +0 -0
  1408. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/universal/collection-lists-pagination-integrity.yaml +0 -0
  1409. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/universal/comply-controller-mode-gate.yaml +0 -0
  1410. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/universal/content-standards-pagination-integrity.yaml +0 -0
  1411. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/universal/deterministic-testing.yaml +0 -0
  1412. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/universal/error-compliance-signals.yaml +0 -0
  1413. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/universal/error-compliance.yaml +0 -0
  1414. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/universal/fictional-entities.yaml +0 -0
  1415. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/universal/get-media-buys-pagination-integrity.yaml +0 -0
  1416. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/universal/get-products-pagination-integrity.yaml +0 -0
  1417. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/universal/get-signals-pagination-integrity.yaml +0 -0
  1418. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/universal/idempotency.yaml +0 -0
  1419. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/universal/notification-config-event-scope.yaml +0 -0
  1420. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/universal/notification-config-lifecycle.yaml +0 -0
  1421. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/universal/notification-config-rejections.yaml +0 -0
  1422. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/universal/pagination-integrity-creative-formats.yaml +0 -0
  1423. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/universal/pagination-integrity-list-accounts.yaml +0 -0
  1424. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/universal/pagination-integrity.yaml +0 -0
  1425. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/universal/property-lists-pagination-integrity.yaml +0 -0
  1426. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/universal/read-tool-idempotency.yaml +0 -0
  1427. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/universal/schema-validation-signals.yaml +0 -0
  1428. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/universal/schema-validation.yaml +0 -0
  1429. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/universal/security.yaml +0 -0
  1430. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/universal/signed-requests.yaml +0 -0
  1431. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/universal/stale-response-advisory.yaml +0 -0
  1432. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/universal/storyboard-schema.yaml +0 -0
  1433. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/universal/v3-envelope-integrity.yaml +0 -0
  1434. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/universal/version-negotiation.yaml +0 -0
  1435. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/universal/webhook-emission.yaml +0 -0
  1436. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/universal/webhook-receiver-envelope.yaml +0 -0
  1437. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/universal/wholesale-feed-bulk-webhooks.yaml +0 -0
  1438. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/universal/wholesale-feed-product-webhooks.yaml +0 -0
  1439. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/universal/wholesale-feed-products.yaml +0 -0
  1440. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/universal/wholesale-feed-signal-webhooks.yaml +0 -0
  1441. /package/compliance/cache/{3.1.8.previous → 3.1.10.previous}/universal/wholesale-feed-signals.yaml +0 -0
@@ -3,9 +3,10 @@ import type { AdapterPair } from './types';
3
3
  /**
4
4
  * `sync_creatives` adapter pair. Currently has no v2.5 → v3 response
5
5
  * normalizer — sync responses are pass-through. The request adapter strips
6
- * v3-only fields and converts `status` enum → `approved` boolean; `assets`
7
- * passes through verbatim because v2.5 uses the same role-keyed manifest
8
- * shape as v3.
6
+ * v3-only fields, converts `status` enum → `approved` boolean, and groups
7
+ * v3 assignment edges into v2.5's creative-keyed package mapping. `assets`
8
+ * passes through with the v3 `asset_type` discriminator stripped because
9
+ * v2.5 does not declare that embedded field and structurally matches assets.
9
10
  */
10
11
  export declare const syncCreativesAdapter: AdapterPair<unknown, SyncCreativesRequest, SyncCreativesResponse, unknown>;
11
12
  //# sourceMappingURL=sync_creatives.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sync_creatives.d.ts","sourceRoot":"","sources":["../../../../../src/lib/adapters/legacy/v2-5/sync_creatives.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AACvF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE3C;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,EAAE,WAAW,CAAC,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,OAAO,CAG3G,CAAC"}
1
+ {"version":3,"file":"sync_creatives.d.ts","sourceRoot":"","sources":["../../../../../src/lib/adapters/legacy/v2-5/sync_creatives.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AACvF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE3C;;;;;;;GAOG;AACH,eAAO,MAAM,oBAAoB,EAAE,WAAW,CAAC,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,OAAO,CAG3G,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/lib/adapters/legacy/v2-5/sync_creatives.ts"],"sourcesContent":["import { adaptSyncCreativesRequestForV2 } from '../../../utils/sync-creatives-adapter';\nimport type { SyncCreativesRequest, SyncCreativesResponse } from '../../../types/v2-5';\nimport type { AdapterPair } from './types';\n\n/**\n * `sync_creatives` adapter pair. Currently has no v2.5 → v3 response\n * normalizer — sync responses are pass-through. The request adapter strips\n * v3-only fields and converts `status` enum → `approved` boolean; `assets`\n * passes through verbatim because v2.5 uses the same role-keyed manifest\n * shape as v3.\n */\nexport const syncCreativesAdapter: AdapterPair<unknown, SyncCreativesRequest, SyncCreativesResponse, unknown> = {\n toolName: 'sync_creatives',\n adaptRequest: adaptSyncCreativesRequestForV2,\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oCAA+C;AAWxC,MAAM,uBAAmG;AAAA,EAC9G,UAAU;AAAA,EACV,cAAc;AAChB;","names":[]}
1
+ {"version":3,"sources":["../../../../../src/lib/adapters/legacy/v2-5/sync_creatives.ts"],"sourcesContent":["import { adaptSyncCreativesRequestForV2 } from '../../../utils/sync-creatives-adapter';\nimport type { SyncCreativesRequest, SyncCreativesResponse } from '../../../types/v2-5';\nimport type { AdapterPair } from './types';\n\n/**\n * `sync_creatives` adapter pair. Currently has no v2.5 → v3 response\n * normalizer — sync responses are pass-through. The request adapter strips\n * v3-only fields, converts `status` enum → `approved` boolean, and groups\n * v3 assignment edges into v2.5's creative-keyed package mapping. `assets`\n * passes through with the v3 `asset_type` discriminator stripped because\n * v2.5 does not declare that embedded field and structurally matches assets.\n */\nexport const syncCreativesAdapter: AdapterPair<unknown, SyncCreativesRequest, SyncCreativesResponse, unknown> = {\n toolName: 'sync_creatives',\n adaptRequest: adaptSyncCreativesRequestForV2,\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oCAA+C;AAYxC,MAAM,uBAAmG;AAAA,EAC9G,UAAU;AAAA,EACV,cAAc;AAChB;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/lib/adapters/legacy/v2-5/sync_creatives.ts"],"sourcesContent":["import { adaptSyncCreativesRequestForV2 } from '../../../utils/sync-creatives-adapter';\nimport type { SyncCreativesRequest, SyncCreativesResponse } from '../../../types/v2-5';\nimport type { AdapterPair } from './types';\n\n/**\n * `sync_creatives` adapter pair. Currently has no v2.5 → v3 response\n * normalizer — sync responses are pass-through. The request adapter strips\n * v3-only fields and converts `status` enum → `approved` boolean; `assets`\n * passes through verbatim because v2.5 uses the same role-keyed manifest\n * shape as v3.\n */\nexport const syncCreativesAdapter: AdapterPair<unknown, SyncCreativesRequest, SyncCreativesResponse, unknown> = {\n toolName: 'sync_creatives',\n adaptRequest: adaptSyncCreativesRequestForV2,\n};\n"],"mappings":"AAAA,SAAS,sCAAsC;AAWxC,MAAM,uBAAmG;AAAA,EAC9G,UAAU;AAAA,EACV,cAAc;AAChB;","names":[]}
1
+ {"version":3,"sources":["../../../../../src/lib/adapters/legacy/v2-5/sync_creatives.ts"],"sourcesContent":["import { adaptSyncCreativesRequestForV2 } from '../../../utils/sync-creatives-adapter';\nimport type { SyncCreativesRequest, SyncCreativesResponse } from '../../../types/v2-5';\nimport type { AdapterPair } from './types';\n\n/**\n * `sync_creatives` adapter pair. Currently has no v2.5 → v3 response\n * normalizer — sync responses are pass-through. The request adapter strips\n * v3-only fields, converts `status` enum → `approved` boolean, and groups\n * v3 assignment edges into v2.5's creative-keyed package mapping. `assets`\n * passes through with the v3 `asset_type` discriminator stripped because\n * v2.5 does not declare that embedded field and structurally matches assets.\n */\nexport const syncCreativesAdapter: AdapterPair<unknown, SyncCreativesRequest, SyncCreativesResponse, unknown> = {\n toolName: 'sync_creatives',\n adaptRequest: adaptSyncCreativesRequestForV2,\n};\n"],"mappings":"AAAA,SAAS,sCAAsC;AAYxC,MAAM,uBAAmG;AAAA,EAC9G,UAAU;AAAA,EACV,cAAc;AAChB;","names":[]}
@@ -40,12 +40,14 @@ export declare class MCPOAuthProvider implements OAuthClientProvider {
40
40
  private readonly flowHandler;
41
41
  private readonly _clientMetadata;
42
42
  private readonly allowHttp;
43
+ private readonly configuredResourceOverride?;
43
44
  constructor(config: OAuthProviderConfig);
44
45
  /**
45
46
  * Create a provider for CLI usage
46
47
  */
47
48
  static forCLI(agent: AgentConfig, flowHandler: OAuthFlowHandler, storage?: OAuthConfigStorage, clientMetadataOverrides?: Partial<OAuthClientMetadata>, options?: {
48
49
  allowHttp?: boolean;
50
+ resourceOverride?: string | null;
49
51
  }): MCPOAuthProvider;
50
52
  get redirectUrl(): string | URL;
51
53
  get clientMetadata(): OAuthClientMetadata;
@@ -40,12 +40,14 @@ export declare class MCPOAuthProvider implements OAuthClientProvider {
40
40
  private readonly flowHandler;
41
41
  private readonly _clientMetadata;
42
42
  private readonly allowHttp;
43
+ private readonly configuredResourceOverride?;
43
44
  constructor(config: OAuthProviderConfig);
44
45
  /**
45
46
  * Create a provider for CLI usage
46
47
  */
47
48
  static forCLI(agent: AgentConfig, flowHandler: OAuthFlowHandler, storage?: OAuthConfigStorage, clientMetadataOverrides?: Partial<OAuthClientMetadata>, options?: {
48
49
  allowHttp?: boolean;
50
+ resourceOverride?: string | null;
49
51
  }): MCPOAuthProvider;
50
52
  get redirectUrl(): string | URL;
51
53
  get clientMetadata(): OAuthClientMetadata;
@@ -1 +1 @@
1
- {"version":3,"file":"MCPOAuthProvider.d.ts","sourceRoot":"","sources":["../../../../src/lib/auth/oauth/MCPOAuthProvider.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AACpF,OAAO,KAAK,EACV,mBAAmB,EACnB,sBAAsB,EACtB,0BAA0B,EAC1B,WAAW,EACX,gBAAgB,EAChB,mBAAmB,EACnB,kBAAkB,EAClB,WAAW,EACZ,MAAM,SAAS,CAAC;AAIjB;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,qBAAa,gBAAiB,YAAW,mBAAmB;IAC1D,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAqB;IAC9C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAmB;IAC/C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAsB;IACtD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAU;gBAExB,MAAM,EAAE,mBAAmB;IAQvC;;OAEG;IACH,MAAM,CAAC,MAAM,CACX,KAAK,EAAE,WAAW,EAClB,WAAW,EAAE,gBAAgB,EAC7B,OAAO,CAAC,EAAE,kBAAkB,EAC5B,uBAAuB,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,EACtD,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,GAChC,gBAAgB;IAqBnB,IAAI,WAAW,IAAI,MAAM,GAAG,GAAG,CAE9B;IAED,IAAI,cAAc,IAAI,mBAAmB,CAExC;IAED;;;;;;;;;;;;OAYG;IACG,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,GAAG,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,GAAG,SAAS,CAAC;IAc/F;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC;IAI9B;;OAEG;IACG,iBAAiB,IAAI,OAAO,CAAC,sBAAsB,GAAG,SAAS,CAAC;IAOtE;;OAEG;IACG,qBAAqB,CAAC,UAAU,EAAE,0BAA0B,GAAG,OAAO,CAAC,IAAI,CAAC;IAKlF;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC;IAOhD;;;OAGG;IACG,UAAU,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAOpD;;OAEG;IACG,uBAAuB,CAAC,gBAAgB,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAInE;;OAEG;IACG,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAK3D;;;;OAIG;IACG,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC;IAUrC;;OAEG;IACG,qBAAqB,CAAC,KAAK,EAAE,KAAK,GAAG,QAAQ,GAAG,QAAQ,GAAG,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAwB3F;;OAEG;YACW,YAAY;IAM1B;;;OAGG;IACG,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC;IAIxC;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAI9B;;;OAGG;IACH,cAAc,IAAI,OAAO;IAgBzB;;;OAGG;IACH,eAAe,IAAI,OAAO;IAI1B;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAIhC;;;OAGG;IACH,QAAQ,IAAI,WAAW;IAIvB;;;OAGG;IACH,UAAU,IAAI,MAAM;CAGrB"}
1
+ {"version":3,"file":"MCPOAuthProvider.d.ts","sourceRoot":"","sources":["../../../../src/lib/auth/oauth/MCPOAuthProvider.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AACpF,OAAO,KAAK,EACV,mBAAmB,EACnB,sBAAsB,EACtB,0BAA0B,EAC1B,WAAW,EACX,gBAAgB,EAChB,mBAAmB,EACnB,kBAAkB,EAClB,WAAW,EACZ,MAAM,SAAS,CAAC;AAKjB;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,qBAAa,gBAAiB,YAAW,mBAAmB;IAC1D,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAqB;IAC9C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAmB;IAC/C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAsB;IACtD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAU;IACpC,OAAO,CAAC,QAAQ,CAAC,0BAA0B,CAAC,CAAgB;gBAEhD,MAAM,EAAE,mBAAmB;IASvC;;OAEG;IACH,MAAM,CAAC,MAAM,CACX,KAAK,EAAE,WAAW,EAClB,WAAW,EAAE,gBAAgB,EAC7B,OAAO,CAAC,EAAE,kBAAkB,EAC5B,uBAAuB,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,EACtD,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,OAAO,CAAC;QAAC,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,GAClE,gBAAgB;IAsBnB,IAAI,WAAW,IAAI,MAAM,GAAG,GAAG,CAE9B;IAED,IAAI,cAAc,IAAI,mBAAmB,CAExC;IAED;;;;;;;;;;;;OAYG;IACG,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,GAAG,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,GAAG,SAAS,CAAC;IAY/F;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC;IAI9B;;OAEG;IACG,iBAAiB,IAAI,OAAO,CAAC,sBAAsB,GAAG,SAAS,CAAC;IAOtE;;OAEG;IACG,qBAAqB,CAAC,UAAU,EAAE,0BAA0B,GAAG,OAAO,CAAC,IAAI,CAAC;IAKlF;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC;IAOhD;;;OAGG;IACG,UAAU,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAOpD;;OAEG;IACG,uBAAuB,CAAC,gBAAgB,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAInE;;OAEG;IACG,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAK3D;;;;OAIG;IACG,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC;IAUrC;;OAEG;IACG,qBAAqB,CAAC,KAAK,EAAE,KAAK,GAAG,QAAQ,GAAG,QAAQ,GAAG,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAwB3F;;OAEG;YACW,YAAY;IAM1B;;;OAGG;IACG,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC;IAIxC;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAI9B;;;OAGG;IACH,cAAc,IAAI,OAAO;IAgBzB;;;OAGG;IACH,eAAe,IAAI,OAAO;IAI1B;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAIhC;;;OAGG;IACH,QAAQ,IAAI,WAAW;IAIvB;;;OAGG;IACH,UAAU,IAAI,MAAM;CAGrB"}
@@ -23,18 +23,21 @@ __export(MCPOAuthProvider_exports, {
23
23
  module.exports = __toCommonJS(MCPOAuthProvider_exports);
24
24
  var import_types = require('./types.js');
25
25
  var import_crypto = require("crypto");
26
+ var import_resource_url = require('./resource-url.js');
26
27
  class MCPOAuthProvider {
27
28
  agent;
28
29
  storage;
29
30
  flowHandler;
30
31
  _clientMetadata;
31
32
  allowHttp;
33
+ configuredResourceOverride;
32
34
  constructor(config) {
33
35
  this.agent = config.agent;
34
36
  this.storage = config.storage;
35
37
  this.flowHandler = config.flowHandler;
36
38
  this._clientMetadata = config.clientMetadata;
37
39
  this.allowHttp = config.allowHttp === true;
40
+ this.configuredResourceOverride = config.resourceOverride;
38
41
  }
39
42
  /**
40
43
  * Create a provider for CLI usage
@@ -50,7 +53,8 @@ class MCPOAuthProvider {
50
53
  flowHandler,
51
54
  storage,
52
55
  clientMetadata,
53
- allowHttp: options?.allowHttp
56
+ allowHttp: options?.allowHttp,
57
+ resourceOverride: options?.resourceOverride
54
58
  });
55
59
  }
56
60
  // ========================================
@@ -76,14 +80,11 @@ class MCPOAuthProvider {
76
80
  * mirrors the CLI's `--allow-http` flag.
77
81
  */
78
82
  async validateResourceURL(serverUrl, resource) {
79
- if (!resource) {
83
+ const selectedResource = this.configuredResourceOverride === null ? resource : this.configuredResourceOverride ?? this.agent.oauth_resource ?? resource;
84
+ if (!selectedResource) {
80
85
  return void 0;
81
86
  }
82
- const resourceURL = new URL(resource);
83
- if (resourceURL.protocol !== "https:" && !this.allowHttp) {
84
- throw new Error(`Server at ${serverUrl} advertised non-HTTPS resource URL: ${resource}`);
85
- }
86
- return resourceURL;
87
+ return (0, import_resource_url.validateOAuthResourceUrl)(selectedResource, { allowHttp: this.allowHttp });
87
88
  }
88
89
  /**
89
90
  * Generate OAuth state parameter
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/lib/auth/oauth/MCPOAuthProvider.ts"],"sourcesContent":["/**\n * MCP OAuth Provider\n *\n * Implements the MCP SDK's OAuthClientProvider interface\n * using AgentConfig for token storage.\n */\n\nimport type { OAuthClientProvider } from '@modelcontextprotocol/sdk/client/auth.js';\nimport type {\n OAuthClientMetadata,\n OAuthClientInformation,\n OAuthClientInformationFull,\n OAuthTokens,\n OAuthFlowHandler,\n OAuthProviderConfig,\n OAuthConfigStorage,\n AgentConfig,\n} from './types';\nimport { DEFAULT_CLIENT_METADATA, toMCPTokens, fromMCPTokens, toMCPClientInfo, fromMCPClientInfo } from './types';\nimport { randomBytes } from 'crypto';\n\n/**\n * MCP OAuth Client Provider\n *\n * This provider stores OAuth tokens directly in the AgentConfig,\n * using the same structure as static auth tokens.\n *\n * @example\n * ```typescript\n * const agent: AgentConfig = {\n * id: 'my-agent',\n * name: 'My Agent',\n * agent_uri: 'https://agent.example.com/mcp',\n * protocol: 'mcp',\n * // OAuth tokens stored here after auth flow\n * oauth_tokens: { access_token: '...', refresh_token: '...' }\n * };\n *\n * const provider = new MCPOAuthProvider({\n * agent,\n * flowHandler: new CLIFlowHandler(),\n * storage: myConfigStorage // Optional: persists tokens\n * });\n *\n * const transport = new StreamableHTTPClientTransport(url, {\n * authProvider: provider\n * });\n * ```\n */\nexport class MCPOAuthProvider implements OAuthClientProvider {\n private agent: AgentConfig;\n private readonly storage?: OAuthConfigStorage;\n private readonly flowHandler: OAuthFlowHandler;\n private readonly _clientMetadata: OAuthClientMetadata;\n private readonly allowHttp: boolean;\n\n constructor(config: OAuthProviderConfig) {\n this.agent = config.agent;\n this.storage = config.storage;\n this.flowHandler = config.flowHandler;\n this._clientMetadata = config.clientMetadata;\n this.allowHttp = config.allowHttp === true;\n }\n\n /**\n * Create a provider for CLI usage\n */\n static forCLI(\n agent: AgentConfig,\n flowHandler: OAuthFlowHandler,\n storage?: OAuthConfigStorage,\n clientMetadataOverrides?: Partial<OAuthClientMetadata>,\n options?: { allowHttp?: boolean }\n ): MCPOAuthProvider {\n // Build complete client metadata with required fields\n const clientMetadata: OAuthClientMetadata = {\n ...DEFAULT_CLIENT_METADATA,\n redirect_uris: [flowHandler.getRedirectUrl().toString()],\n ...clientMetadataOverrides,\n };\n\n return new MCPOAuthProvider({\n agent,\n flowHandler,\n storage,\n clientMetadata,\n allowHttp: options?.allowHttp,\n });\n }\n\n // ========================================\n // OAuthClientProvider interface\n // ========================================\n\n get redirectUrl(): string | URL {\n return this.flowHandler.getRedirectUrl();\n }\n\n get clientMetadata(): OAuthClientMetadata {\n return this._clientMetadata;\n }\n\n /**\n * Validate the protected resource URL from server metadata (RFC 9728).\n *\n * Servers behind reverse proxies or DNS aliases may advertise a canonical\n * resource URL (RFC 8707) that differs from the URL the client connected to.\n * We allow cross-origin resource URLs because agent configs are pre-configured\n * by the user, not discovered from untrusted sources. The authorization server\n * remains the final gatekeeper for token audience validation.\n *\n * Non-HTTPS resource URLs are rejected by default. Construct the provider\n * with `allowHttp: true` to lift that restriction for local development —\n * mirrors the CLI's `--allow-http` flag.\n */\n async validateResourceURL(serverUrl: string | URL, resource?: string): Promise<URL | undefined> {\n if (!resource) {\n return undefined;\n }\n\n const resourceURL = new URL(resource);\n\n if (resourceURL.protocol !== 'https:' && !this.allowHttp) {\n throw new Error(`Server at ${serverUrl} advertised non-HTTPS resource URL: ${resource}`);\n }\n\n return resourceURL;\n }\n\n /**\n * Generate OAuth state parameter\n */\n async state(): Promise<string> {\n return randomBytes(32).toString('base64url');\n }\n\n /**\n * Load client information from agent config\n */\n async clientInformation(): Promise<OAuthClientInformation | undefined> {\n if (this.agent.oauth_client) {\n return toMCPClientInfo(this.agent.oauth_client);\n }\n return undefined;\n }\n\n /**\n * Save client information after dynamic registration\n */\n async saveClientInformation(clientInfo: OAuthClientInformationFull): Promise<void> {\n this.agent.oauth_client = fromMCPClientInfo(clientInfo);\n await this.persistAgent();\n }\n\n /**\n * Load existing tokens from agent config\n */\n async tokens(): Promise<OAuthTokens | undefined> {\n if (this.agent.oauth_tokens) {\n return toMCPTokens(this.agent.oauth_tokens);\n }\n return undefined;\n }\n\n /**\n * Save tokens after authorization\n * Also cleans up the temporary code verifier\n */\n async saveTokens(tokens: OAuthTokens): Promise<void> {\n this.agent.oauth_tokens = fromMCPTokens(tokens);\n // Clean up temporary code verifier after successful token exchange\n delete this.agent.oauth_code_verifier;\n await this.persistAgent();\n }\n\n /**\n * Redirect user to authorization URL\n */\n async redirectToAuthorization(authorizationUrl: URL): Promise<void> {\n await this.flowHandler.redirectToAuthorization(authorizationUrl);\n }\n\n /**\n * Save PKCE code verifier\n */\n async saveCodeVerifier(codeVerifier: string): Promise<void> {\n this.agent.oauth_code_verifier = codeVerifier;\n await this.persistAgent();\n }\n\n /**\n * Load PKCE code verifier\n * The MCP SDK calls saveCodeVerifier() before authorization and\n * retrieves it here during token exchange.\n */\n async codeVerifier(): Promise<string> {\n if (!this.agent.oauth_code_verifier) {\n throw new Error(\n 'No PKCE code verifier found. The OAuth flow may have been interrupted or ' +\n 'the agent config was modified. Please try authenticating again.'\n );\n }\n return this.agent.oauth_code_verifier;\n }\n\n /**\n * Invalidate credentials when server indicates they're invalid\n */\n async invalidateCredentials(scope: 'all' | 'client' | 'tokens' | 'verifier'): Promise<void> {\n switch (scope) {\n case 'all':\n delete this.agent.oauth_tokens;\n delete this.agent.oauth_client;\n delete this.agent.oauth_code_verifier;\n break;\n case 'tokens':\n delete this.agent.oauth_tokens;\n break;\n case 'client':\n delete this.agent.oauth_client;\n break;\n case 'verifier':\n delete this.agent.oauth_code_verifier;\n break;\n }\n await this.persistAgent();\n }\n\n // ========================================\n // Additional methods\n // ========================================\n\n /**\n * Persist agent config to storage if configured\n */\n private async persistAgent(): Promise<void> {\n if (this.storage) {\n await this.storage.saveAgent(this.agent);\n }\n }\n\n /**\n * Wait for the OAuth callback\n * Call this after UnauthorizedError is thrown\n */\n async waitForCallback(): Promise<string> {\n return this.flowHandler.waitForCallback();\n }\n\n /**\n * Clean up resources\n */\n async cleanup(): Promise<void> {\n await this.flowHandler.cleanup();\n }\n\n /**\n * Check if we have valid, non-expired OAuth tokens\n * @returns true if access_token exists and hasn't expired (with 5 minute buffer)\n */\n hasValidTokens(): boolean {\n const tokens = this.agent.oauth_tokens;\n if (!tokens?.access_token) return false;\n\n // Check expiration if available\n if (tokens.expires_at) {\n const expiresAt = new Date(tokens.expires_at);\n // Consider expired if within 5 minutes of expiration\n if (expiresAt.getTime() - Date.now() < 5 * 60 * 1000) {\n return false;\n }\n }\n\n return true;\n }\n\n /**\n * Check if we have a refresh token available for token refresh\n * @returns true if refresh_token is present\n */\n hasRefreshToken(): boolean {\n return !!this.agent.oauth_tokens?.refresh_token;\n }\n\n /**\n * Clear all OAuth data for this agent\n */\n async clearAuth(): Promise<void> {\n await this.invalidateCredentials('all');\n }\n\n /**\n * Get the agent config this provider manages\n * @returns The AgentConfig with OAuth tokens populated after successful auth\n */\n getAgent(): AgentConfig {\n return this.agent;\n }\n\n /**\n * Get the agent identifier\n * @returns The agent's unique ID\n */\n getAgentId(): string {\n return this.agent.id;\n }\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../../../src/lib/auth/oauth/MCPOAuthProvider.ts"],"sourcesContent":["/**\n * MCP OAuth Provider\n *\n * Implements the MCP SDK's OAuthClientProvider interface\n * using AgentConfig for token storage.\n */\n\nimport type { OAuthClientProvider } from '@modelcontextprotocol/sdk/client/auth.js';\nimport type {\n OAuthClientMetadata,\n OAuthClientInformation,\n OAuthClientInformationFull,\n OAuthTokens,\n OAuthFlowHandler,\n OAuthProviderConfig,\n OAuthConfigStorage,\n AgentConfig,\n} from './types';\nimport { DEFAULT_CLIENT_METADATA, toMCPTokens, fromMCPTokens, toMCPClientInfo, fromMCPClientInfo } from './types';\nimport { randomBytes } from 'crypto';\nimport { validateOAuthResourceUrl } from './resource-url';\n\n/**\n * MCP OAuth Client Provider\n *\n * This provider stores OAuth tokens directly in the AgentConfig,\n * using the same structure as static auth tokens.\n *\n * @example\n * ```typescript\n * const agent: AgentConfig = {\n * id: 'my-agent',\n * name: 'My Agent',\n * agent_uri: 'https://agent.example.com/mcp',\n * protocol: 'mcp',\n * // OAuth tokens stored here after auth flow\n * oauth_tokens: { access_token: '...', refresh_token: '...' }\n * };\n *\n * const provider = new MCPOAuthProvider({\n * agent,\n * flowHandler: new CLIFlowHandler(),\n * storage: myConfigStorage // Optional: persists tokens\n * });\n *\n * const transport = new StreamableHTTPClientTransport(url, {\n * authProvider: provider\n * });\n * ```\n */\nexport class MCPOAuthProvider implements OAuthClientProvider {\n private agent: AgentConfig;\n private readonly storage?: OAuthConfigStorage;\n private readonly flowHandler: OAuthFlowHandler;\n private readonly _clientMetadata: OAuthClientMetadata;\n private readonly allowHttp: boolean;\n private readonly configuredResourceOverride?: string | null;\n\n constructor(config: OAuthProviderConfig) {\n this.agent = config.agent;\n this.storage = config.storage;\n this.flowHandler = config.flowHandler;\n this._clientMetadata = config.clientMetadata;\n this.allowHttp = config.allowHttp === true;\n this.configuredResourceOverride = config.resourceOverride;\n }\n\n /**\n * Create a provider for CLI usage\n */\n static forCLI(\n agent: AgentConfig,\n flowHandler: OAuthFlowHandler,\n storage?: OAuthConfigStorage,\n clientMetadataOverrides?: Partial<OAuthClientMetadata>,\n options?: { allowHttp?: boolean; resourceOverride?: string | null }\n ): MCPOAuthProvider {\n // Build complete client metadata with required fields\n const clientMetadata: OAuthClientMetadata = {\n ...DEFAULT_CLIENT_METADATA,\n redirect_uris: [flowHandler.getRedirectUrl().toString()],\n ...clientMetadataOverrides,\n };\n\n return new MCPOAuthProvider({\n agent,\n flowHandler,\n storage,\n clientMetadata,\n allowHttp: options?.allowHttp,\n resourceOverride: options?.resourceOverride,\n });\n }\n\n // ========================================\n // OAuthClientProvider interface\n // ========================================\n\n get redirectUrl(): string | URL {\n return this.flowHandler.getRedirectUrl();\n }\n\n get clientMetadata(): OAuthClientMetadata {\n return this._clientMetadata;\n }\n\n /**\n * Validate the protected resource URL from server metadata (RFC 9728).\n *\n * Servers behind reverse proxies or DNS aliases may advertise a canonical\n * resource URL (RFC 8707) that differs from the URL the client connected to.\n * We allow cross-origin resource URLs because agent configs are pre-configured\n * by the user, not discovered from untrusted sources. The authorization server\n * remains the final gatekeeper for token audience validation.\n *\n * Non-HTTPS resource URLs are rejected by default. Construct the provider\n * with `allowHttp: true` to lift that restriction for local development —\n * mirrors the CLI's `--allow-http` flag.\n */\n async validateResourceURL(serverUrl: string | URL, resource?: string): Promise<URL | undefined> {\n const selectedResource =\n this.configuredResourceOverride === null\n ? resource\n : (this.configuredResourceOverride ?? this.agent.oauth_resource ?? resource);\n if (!selectedResource) {\n return undefined;\n }\n\n return validateOAuthResourceUrl(selectedResource, { allowHttp: this.allowHttp });\n }\n\n /**\n * Generate OAuth state parameter\n */\n async state(): Promise<string> {\n return randomBytes(32).toString('base64url');\n }\n\n /**\n * Load client information from agent config\n */\n async clientInformation(): Promise<OAuthClientInformation | undefined> {\n if (this.agent.oauth_client) {\n return toMCPClientInfo(this.agent.oauth_client);\n }\n return undefined;\n }\n\n /**\n * Save client information after dynamic registration\n */\n async saveClientInformation(clientInfo: OAuthClientInformationFull): Promise<void> {\n this.agent.oauth_client = fromMCPClientInfo(clientInfo);\n await this.persistAgent();\n }\n\n /**\n * Load existing tokens from agent config\n */\n async tokens(): Promise<OAuthTokens | undefined> {\n if (this.agent.oauth_tokens) {\n return toMCPTokens(this.agent.oauth_tokens);\n }\n return undefined;\n }\n\n /**\n * Save tokens after authorization\n * Also cleans up the temporary code verifier\n */\n async saveTokens(tokens: OAuthTokens): Promise<void> {\n this.agent.oauth_tokens = fromMCPTokens(tokens);\n // Clean up temporary code verifier after successful token exchange\n delete this.agent.oauth_code_verifier;\n await this.persistAgent();\n }\n\n /**\n * Redirect user to authorization URL\n */\n async redirectToAuthorization(authorizationUrl: URL): Promise<void> {\n await this.flowHandler.redirectToAuthorization(authorizationUrl);\n }\n\n /**\n * Save PKCE code verifier\n */\n async saveCodeVerifier(codeVerifier: string): Promise<void> {\n this.agent.oauth_code_verifier = codeVerifier;\n await this.persistAgent();\n }\n\n /**\n * Load PKCE code verifier\n * The MCP SDK calls saveCodeVerifier() before authorization and\n * retrieves it here during token exchange.\n */\n async codeVerifier(): Promise<string> {\n if (!this.agent.oauth_code_verifier) {\n throw new Error(\n 'No PKCE code verifier found. The OAuth flow may have been interrupted or ' +\n 'the agent config was modified. Please try authenticating again.'\n );\n }\n return this.agent.oauth_code_verifier;\n }\n\n /**\n * Invalidate credentials when server indicates they're invalid\n */\n async invalidateCredentials(scope: 'all' | 'client' | 'tokens' | 'verifier'): Promise<void> {\n switch (scope) {\n case 'all':\n delete this.agent.oauth_tokens;\n delete this.agent.oauth_client;\n delete this.agent.oauth_code_verifier;\n break;\n case 'tokens':\n delete this.agent.oauth_tokens;\n break;\n case 'client':\n delete this.agent.oauth_client;\n break;\n case 'verifier':\n delete this.agent.oauth_code_verifier;\n break;\n }\n await this.persistAgent();\n }\n\n // ========================================\n // Additional methods\n // ========================================\n\n /**\n * Persist agent config to storage if configured\n */\n private async persistAgent(): Promise<void> {\n if (this.storage) {\n await this.storage.saveAgent(this.agent);\n }\n }\n\n /**\n * Wait for the OAuth callback\n * Call this after UnauthorizedError is thrown\n */\n async waitForCallback(): Promise<string> {\n return this.flowHandler.waitForCallback();\n }\n\n /**\n * Clean up resources\n */\n async cleanup(): Promise<void> {\n await this.flowHandler.cleanup();\n }\n\n /**\n * Check if we have valid, non-expired OAuth tokens\n * @returns true if access_token exists and hasn't expired (with 5 minute buffer)\n */\n hasValidTokens(): boolean {\n const tokens = this.agent.oauth_tokens;\n if (!tokens?.access_token) return false;\n\n // Check expiration if available\n if (tokens.expires_at) {\n const expiresAt = new Date(tokens.expires_at);\n // Consider expired if within 5 minutes of expiration\n if (expiresAt.getTime() - Date.now() < 5 * 60 * 1000) {\n return false;\n }\n }\n\n return true;\n }\n\n /**\n * Check if we have a refresh token available for token refresh\n * @returns true if refresh_token is present\n */\n hasRefreshToken(): boolean {\n return !!this.agent.oauth_tokens?.refresh_token;\n }\n\n /**\n * Clear all OAuth data for this agent\n */\n async clearAuth(): Promise<void> {\n await this.invalidateCredentials('all');\n }\n\n /**\n * Get the agent config this provider manages\n * @returns The AgentConfig with OAuth tokens populated after successful auth\n */\n getAgent(): AgentConfig {\n return this.agent;\n }\n\n /**\n * Get the agent identifier\n * @returns The agent's unique ID\n */\n getAgentId(): string {\n return this.agent.id;\n }\n}\n"],"mappings":"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","names":[]}
@@ -1,17 +1,20 @@
1
1
  import { DEFAULT_CLIENT_METADATA, toMCPTokens, fromMCPTokens, toMCPClientInfo, fromMCPClientInfo } from "./types.mjs";
2
2
  import { randomBytes } from "crypto";
3
+ import { validateOAuthResourceUrl } from "./resource-url.mjs";
3
4
  class MCPOAuthProvider {
4
5
  agent;
5
6
  storage;
6
7
  flowHandler;
7
8
  _clientMetadata;
8
9
  allowHttp;
10
+ configuredResourceOverride;
9
11
  constructor(config) {
10
12
  this.agent = config.agent;
11
13
  this.storage = config.storage;
12
14
  this.flowHandler = config.flowHandler;
13
15
  this._clientMetadata = config.clientMetadata;
14
16
  this.allowHttp = config.allowHttp === true;
17
+ this.configuredResourceOverride = config.resourceOverride;
15
18
  }
16
19
  /**
17
20
  * Create a provider for CLI usage
@@ -27,7 +30,8 @@ class MCPOAuthProvider {
27
30
  flowHandler,
28
31
  storage,
29
32
  clientMetadata,
30
- allowHttp: options?.allowHttp
33
+ allowHttp: options?.allowHttp,
34
+ resourceOverride: options?.resourceOverride
31
35
  });
32
36
  }
33
37
  // ========================================
@@ -53,14 +57,11 @@ class MCPOAuthProvider {
53
57
  * mirrors the CLI's `--allow-http` flag.
54
58
  */
55
59
  async validateResourceURL(serverUrl, resource) {
56
- if (!resource) {
60
+ const selectedResource = this.configuredResourceOverride === null ? resource : this.configuredResourceOverride ?? this.agent.oauth_resource ?? resource;
61
+ if (!selectedResource) {
57
62
  return void 0;
58
63
  }
59
- const resourceURL = new URL(resource);
60
- if (resourceURL.protocol !== "https:" && !this.allowHttp) {
61
- throw new Error(`Server at ${serverUrl} advertised non-HTTPS resource URL: ${resource}`);
62
- }
63
- return resourceURL;
64
+ return validateOAuthResourceUrl(selectedResource, { allowHttp: this.allowHttp });
64
65
  }
65
66
  /**
66
67
  * Generate OAuth state parameter
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/lib/auth/oauth/MCPOAuthProvider.ts"],"sourcesContent":["/**\n * MCP OAuth Provider\n *\n * Implements the MCP SDK's OAuthClientProvider interface\n * using AgentConfig for token storage.\n */\n\nimport type { OAuthClientProvider } from '@modelcontextprotocol/sdk/client/auth.js';\nimport type {\n OAuthClientMetadata,\n OAuthClientInformation,\n OAuthClientInformationFull,\n OAuthTokens,\n OAuthFlowHandler,\n OAuthProviderConfig,\n OAuthConfigStorage,\n AgentConfig,\n} from './types';\nimport { DEFAULT_CLIENT_METADATA, toMCPTokens, fromMCPTokens, toMCPClientInfo, fromMCPClientInfo } from './types';\nimport { randomBytes } from 'crypto';\n\n/**\n * MCP OAuth Client Provider\n *\n * This provider stores OAuth tokens directly in the AgentConfig,\n * using the same structure as static auth tokens.\n *\n * @example\n * ```typescript\n * const agent: AgentConfig = {\n * id: 'my-agent',\n * name: 'My Agent',\n * agent_uri: 'https://agent.example.com/mcp',\n * protocol: 'mcp',\n * // OAuth tokens stored here after auth flow\n * oauth_tokens: { access_token: '...', refresh_token: '...' }\n * };\n *\n * const provider = new MCPOAuthProvider({\n * agent,\n * flowHandler: new CLIFlowHandler(),\n * storage: myConfigStorage // Optional: persists tokens\n * });\n *\n * const transport = new StreamableHTTPClientTransport(url, {\n * authProvider: provider\n * });\n * ```\n */\nexport class MCPOAuthProvider implements OAuthClientProvider {\n private agent: AgentConfig;\n private readonly storage?: OAuthConfigStorage;\n private readonly flowHandler: OAuthFlowHandler;\n private readonly _clientMetadata: OAuthClientMetadata;\n private readonly allowHttp: boolean;\n\n constructor(config: OAuthProviderConfig) {\n this.agent = config.agent;\n this.storage = config.storage;\n this.flowHandler = config.flowHandler;\n this._clientMetadata = config.clientMetadata;\n this.allowHttp = config.allowHttp === true;\n }\n\n /**\n * Create a provider for CLI usage\n */\n static forCLI(\n agent: AgentConfig,\n flowHandler: OAuthFlowHandler,\n storage?: OAuthConfigStorage,\n clientMetadataOverrides?: Partial<OAuthClientMetadata>,\n options?: { allowHttp?: boolean }\n ): MCPOAuthProvider {\n // Build complete client metadata with required fields\n const clientMetadata: OAuthClientMetadata = {\n ...DEFAULT_CLIENT_METADATA,\n redirect_uris: [flowHandler.getRedirectUrl().toString()],\n ...clientMetadataOverrides,\n };\n\n return new MCPOAuthProvider({\n agent,\n flowHandler,\n storage,\n clientMetadata,\n allowHttp: options?.allowHttp,\n });\n }\n\n // ========================================\n // OAuthClientProvider interface\n // ========================================\n\n get redirectUrl(): string | URL {\n return this.flowHandler.getRedirectUrl();\n }\n\n get clientMetadata(): OAuthClientMetadata {\n return this._clientMetadata;\n }\n\n /**\n * Validate the protected resource URL from server metadata (RFC 9728).\n *\n * Servers behind reverse proxies or DNS aliases may advertise a canonical\n * resource URL (RFC 8707) that differs from the URL the client connected to.\n * We allow cross-origin resource URLs because agent configs are pre-configured\n * by the user, not discovered from untrusted sources. The authorization server\n * remains the final gatekeeper for token audience validation.\n *\n * Non-HTTPS resource URLs are rejected by default. Construct the provider\n * with `allowHttp: true` to lift that restriction for local development —\n * mirrors the CLI's `--allow-http` flag.\n */\n async validateResourceURL(serverUrl: string | URL, resource?: string): Promise<URL | undefined> {\n if (!resource) {\n return undefined;\n }\n\n const resourceURL = new URL(resource);\n\n if (resourceURL.protocol !== 'https:' && !this.allowHttp) {\n throw new Error(`Server at ${serverUrl} advertised non-HTTPS resource URL: ${resource}`);\n }\n\n return resourceURL;\n }\n\n /**\n * Generate OAuth state parameter\n */\n async state(): Promise<string> {\n return randomBytes(32).toString('base64url');\n }\n\n /**\n * Load client information from agent config\n */\n async clientInformation(): Promise<OAuthClientInformation | undefined> {\n if (this.agent.oauth_client) {\n return toMCPClientInfo(this.agent.oauth_client);\n }\n return undefined;\n }\n\n /**\n * Save client information after dynamic registration\n */\n async saveClientInformation(clientInfo: OAuthClientInformationFull): Promise<void> {\n this.agent.oauth_client = fromMCPClientInfo(clientInfo);\n await this.persistAgent();\n }\n\n /**\n * Load existing tokens from agent config\n */\n async tokens(): Promise<OAuthTokens | undefined> {\n if (this.agent.oauth_tokens) {\n return toMCPTokens(this.agent.oauth_tokens);\n }\n return undefined;\n }\n\n /**\n * Save tokens after authorization\n * Also cleans up the temporary code verifier\n */\n async saveTokens(tokens: OAuthTokens): Promise<void> {\n this.agent.oauth_tokens = fromMCPTokens(tokens);\n // Clean up temporary code verifier after successful token exchange\n delete this.agent.oauth_code_verifier;\n await this.persistAgent();\n }\n\n /**\n * Redirect user to authorization URL\n */\n async redirectToAuthorization(authorizationUrl: URL): Promise<void> {\n await this.flowHandler.redirectToAuthorization(authorizationUrl);\n }\n\n /**\n * Save PKCE code verifier\n */\n async saveCodeVerifier(codeVerifier: string): Promise<void> {\n this.agent.oauth_code_verifier = codeVerifier;\n await this.persistAgent();\n }\n\n /**\n * Load PKCE code verifier\n * The MCP SDK calls saveCodeVerifier() before authorization and\n * retrieves it here during token exchange.\n */\n async codeVerifier(): Promise<string> {\n if (!this.agent.oauth_code_verifier) {\n throw new Error(\n 'No PKCE code verifier found. The OAuth flow may have been interrupted or ' +\n 'the agent config was modified. Please try authenticating again.'\n );\n }\n return this.agent.oauth_code_verifier;\n }\n\n /**\n * Invalidate credentials when server indicates they're invalid\n */\n async invalidateCredentials(scope: 'all' | 'client' | 'tokens' | 'verifier'): Promise<void> {\n switch (scope) {\n case 'all':\n delete this.agent.oauth_tokens;\n delete this.agent.oauth_client;\n delete this.agent.oauth_code_verifier;\n break;\n case 'tokens':\n delete this.agent.oauth_tokens;\n break;\n case 'client':\n delete this.agent.oauth_client;\n break;\n case 'verifier':\n delete this.agent.oauth_code_verifier;\n break;\n }\n await this.persistAgent();\n }\n\n // ========================================\n // Additional methods\n // ========================================\n\n /**\n * Persist agent config to storage if configured\n */\n private async persistAgent(): Promise<void> {\n if (this.storage) {\n await this.storage.saveAgent(this.agent);\n }\n }\n\n /**\n * Wait for the OAuth callback\n * Call this after UnauthorizedError is thrown\n */\n async waitForCallback(): Promise<string> {\n return this.flowHandler.waitForCallback();\n }\n\n /**\n * Clean up resources\n */\n async cleanup(): Promise<void> {\n await this.flowHandler.cleanup();\n }\n\n /**\n * Check if we have valid, non-expired OAuth tokens\n * @returns true if access_token exists and hasn't expired (with 5 minute buffer)\n */\n hasValidTokens(): boolean {\n const tokens = this.agent.oauth_tokens;\n if (!tokens?.access_token) return false;\n\n // Check expiration if available\n if (tokens.expires_at) {\n const expiresAt = new Date(tokens.expires_at);\n // Consider expired if within 5 minutes of expiration\n if (expiresAt.getTime() - Date.now() < 5 * 60 * 1000) {\n return false;\n }\n }\n\n return true;\n }\n\n /**\n * Check if we have a refresh token available for token refresh\n * @returns true if refresh_token is present\n */\n hasRefreshToken(): boolean {\n return !!this.agent.oauth_tokens?.refresh_token;\n }\n\n /**\n * Clear all OAuth data for this agent\n */\n async clearAuth(): Promise<void> {\n await this.invalidateCredentials('all');\n }\n\n /**\n * Get the agent config this provider manages\n * @returns The AgentConfig with OAuth tokens populated after successful auth\n */\n getAgent(): AgentConfig {\n return this.agent;\n }\n\n /**\n * Get the agent identifier\n * @returns The agent's unique ID\n */\n getAgentId(): string {\n return this.agent.id;\n }\n}\n"],"mappings":"AAkBA,SAAS,yBAAyB,aAAa,eAAe,iBAAiB,yBAAyB;AACxG,SAAS,mBAAmB;AA8BrB,MAAM,iBAAgD;AAAA,EACnD;AAAA,EACS;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAEjB,YAAY,QAA6B;AACvC,SAAK,QAAQ,OAAO;AACpB,SAAK,UAAU,OAAO;AACtB,SAAK,cAAc,OAAO;AAC1B,SAAK,kBAAkB,OAAO;AAC9B,SAAK,YAAY,OAAO,cAAc;AAAA,EACxC;AAAA;AAAA;AAAA;AAAA,EAKA,OAAO,OACL,OACA,aACA,SACA,yBACA,SACkB;AAElB,UAAM,iBAAsC;AAAA,MAC1C,GAAG;AAAA,MACH,eAAe,CAAC,YAAY,eAAe,EAAE,SAAS,CAAC;AAAA,MACvD,GAAG;AAAA,IACL;AAEA,WAAO,IAAI,iBAAiB;AAAA,MAC1B;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,WAAW,SAAS;AAAA,IACtB,CAAC;AAAA,EACH;AAAA;AAAA;AAAA;AAAA,EAMA,IAAI,cAA4B;AAC9B,WAAO,KAAK,YAAY,eAAe;AAAA,EACzC;AAAA,EAEA,IAAI,iBAAsC;AACxC,WAAO,KAAK;AAAA,EACd;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAeA,MAAM,oBAAoB,WAAyB,UAA6C;AAC9F,QAAI,CAAC,UAAU;AACb,aAAO;AAAA,IACT;AAEA,UAAM,cAAc,IAAI,IAAI,QAAQ;AAEpC,QAAI,YAAY,aAAa,YAAY,CAAC,KAAK,WAAW;AACxD,YAAM,IAAI,MAAM,aAAa,SAAS,uCAAuC,QAAQ,EAAE;AAAA,IACzF;AAEA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,QAAyB;AAC7B,WAAO,YAAY,EAAE,EAAE,SAAS,WAAW;AAAA,EAC7C;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,oBAAiE;AACrE,QAAI,KAAK,MAAM,cAAc;AAC3B,aAAO,gBAAgB,KAAK,MAAM,YAAY;AAAA,IAChD;AACA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,sBAAsB,YAAuD;AACjF,SAAK,MAAM,eAAe,kBAAkB,UAAU;AACtD,UAAM,KAAK,aAAa;AAAA,EAC1B;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,SAA2C;AAC/C,QAAI,KAAK,MAAM,cAAc;AAC3B,aAAO,YAAY,KAAK,MAAM,YAAY;AAAA,IAC5C;AACA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,WAAW,QAAoC;AACnD,SAAK,MAAM,eAAe,cAAc,MAAM;AAE9C,WAAO,KAAK,MAAM;AAClB,UAAM,KAAK,aAAa;AAAA,EAC1B;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,wBAAwB,kBAAsC;AAClE,UAAM,KAAK,YAAY,wBAAwB,gBAAgB;AAAA,EACjE;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,iBAAiB,cAAqC;AAC1D,SAAK,MAAM,sBAAsB;AACjC,UAAM,KAAK,aAAa;AAAA,EAC1B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,eAAgC;AACpC,QAAI,CAAC,KAAK,MAAM,qBAAqB;AACnC,YAAM,IAAI;AAAA,QACR;AAAA,MAEF;AAAA,IACF;AACA,WAAO,KAAK,MAAM;AAAA,EACpB;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,sBAAsB,OAAgE;AAC1F,YAAQ,OAAO;AAAA,MACb,KAAK;AACH,eAAO,KAAK,MAAM;AAClB,eAAO,KAAK,MAAM;AAClB,eAAO,KAAK,MAAM;AAClB;AAAA,MACF,KAAK;AACH,eAAO,KAAK,MAAM;AAClB;AAAA,MACF,KAAK;AACH,eAAO,KAAK,MAAM;AAClB;AAAA,MACF,KAAK;AACH,eAAO,KAAK,MAAM;AAClB;AAAA,IACJ;AACA,UAAM,KAAK,aAAa;AAAA,EAC1B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,MAAc,eAA8B;AAC1C,QAAI,KAAK,SAAS;AAChB,YAAM,KAAK,QAAQ,UAAU,KAAK,KAAK;AAAA,IACzC;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,kBAAmC;AACvC,WAAO,KAAK,YAAY,gBAAgB;AAAA,EAC1C;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,UAAyB;AAC7B,UAAM,KAAK,YAAY,QAAQ;AAAA,EACjC;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,iBAA0B;AACxB,UAAM,SAAS,KAAK,MAAM;AAC1B,QAAI,CAAC,QAAQ,aAAc,QAAO;AAGlC,QAAI,OAAO,YAAY;AACrB,YAAM,YAAY,IAAI,KAAK,OAAO,UAAU;AAE5C,UAAI,UAAU,QAAQ,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,KAAM;AACpD,eAAO;AAAA,MACT;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,kBAA2B;AACzB,WAAO,CAAC,CAAC,KAAK,MAAM,cAAc;AAAA,EACpC;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,YAA2B;AAC/B,UAAM,KAAK,sBAAsB,KAAK;AAAA,EACxC;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,WAAwB;AACtB,WAAO,KAAK;AAAA,EACd;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,aAAqB;AACnB,WAAO,KAAK,MAAM;AAAA,EACpB;AACF;","names":[]}
1
+ {"version":3,"sources":["../../../../src/lib/auth/oauth/MCPOAuthProvider.ts"],"sourcesContent":["/**\n * MCP OAuth Provider\n *\n * Implements the MCP SDK's OAuthClientProvider interface\n * using AgentConfig for token storage.\n */\n\nimport type { OAuthClientProvider } from '@modelcontextprotocol/sdk/client/auth.js';\nimport type {\n OAuthClientMetadata,\n OAuthClientInformation,\n OAuthClientInformationFull,\n OAuthTokens,\n OAuthFlowHandler,\n OAuthProviderConfig,\n OAuthConfigStorage,\n AgentConfig,\n} from './types';\nimport { DEFAULT_CLIENT_METADATA, toMCPTokens, fromMCPTokens, toMCPClientInfo, fromMCPClientInfo } from './types';\nimport { randomBytes } from 'crypto';\nimport { validateOAuthResourceUrl } from './resource-url';\n\n/**\n * MCP OAuth Client Provider\n *\n * This provider stores OAuth tokens directly in the AgentConfig,\n * using the same structure as static auth tokens.\n *\n * @example\n * ```typescript\n * const agent: AgentConfig = {\n * id: 'my-agent',\n * name: 'My Agent',\n * agent_uri: 'https://agent.example.com/mcp',\n * protocol: 'mcp',\n * // OAuth tokens stored here after auth flow\n * oauth_tokens: { access_token: '...', refresh_token: '...' }\n * };\n *\n * const provider = new MCPOAuthProvider({\n * agent,\n * flowHandler: new CLIFlowHandler(),\n * storage: myConfigStorage // Optional: persists tokens\n * });\n *\n * const transport = new StreamableHTTPClientTransport(url, {\n * authProvider: provider\n * });\n * ```\n */\nexport class MCPOAuthProvider implements OAuthClientProvider {\n private agent: AgentConfig;\n private readonly storage?: OAuthConfigStorage;\n private readonly flowHandler: OAuthFlowHandler;\n private readonly _clientMetadata: OAuthClientMetadata;\n private readonly allowHttp: boolean;\n private readonly configuredResourceOverride?: string | null;\n\n constructor(config: OAuthProviderConfig) {\n this.agent = config.agent;\n this.storage = config.storage;\n this.flowHandler = config.flowHandler;\n this._clientMetadata = config.clientMetadata;\n this.allowHttp = config.allowHttp === true;\n this.configuredResourceOverride = config.resourceOverride;\n }\n\n /**\n * Create a provider for CLI usage\n */\n static forCLI(\n agent: AgentConfig,\n flowHandler: OAuthFlowHandler,\n storage?: OAuthConfigStorage,\n clientMetadataOverrides?: Partial<OAuthClientMetadata>,\n options?: { allowHttp?: boolean; resourceOverride?: string | null }\n ): MCPOAuthProvider {\n // Build complete client metadata with required fields\n const clientMetadata: OAuthClientMetadata = {\n ...DEFAULT_CLIENT_METADATA,\n redirect_uris: [flowHandler.getRedirectUrl().toString()],\n ...clientMetadataOverrides,\n };\n\n return new MCPOAuthProvider({\n agent,\n flowHandler,\n storage,\n clientMetadata,\n allowHttp: options?.allowHttp,\n resourceOverride: options?.resourceOverride,\n });\n }\n\n // ========================================\n // OAuthClientProvider interface\n // ========================================\n\n get redirectUrl(): string | URL {\n return this.flowHandler.getRedirectUrl();\n }\n\n get clientMetadata(): OAuthClientMetadata {\n return this._clientMetadata;\n }\n\n /**\n * Validate the protected resource URL from server metadata (RFC 9728).\n *\n * Servers behind reverse proxies or DNS aliases may advertise a canonical\n * resource URL (RFC 8707) that differs from the URL the client connected to.\n * We allow cross-origin resource URLs because agent configs are pre-configured\n * by the user, not discovered from untrusted sources. The authorization server\n * remains the final gatekeeper for token audience validation.\n *\n * Non-HTTPS resource URLs are rejected by default. Construct the provider\n * with `allowHttp: true` to lift that restriction for local development —\n * mirrors the CLI's `--allow-http` flag.\n */\n async validateResourceURL(serverUrl: string | URL, resource?: string): Promise<URL | undefined> {\n const selectedResource =\n this.configuredResourceOverride === null\n ? resource\n : (this.configuredResourceOverride ?? this.agent.oauth_resource ?? resource);\n if (!selectedResource) {\n return undefined;\n }\n\n return validateOAuthResourceUrl(selectedResource, { allowHttp: this.allowHttp });\n }\n\n /**\n * Generate OAuth state parameter\n */\n async state(): Promise<string> {\n return randomBytes(32).toString('base64url');\n }\n\n /**\n * Load client information from agent config\n */\n async clientInformation(): Promise<OAuthClientInformation | undefined> {\n if (this.agent.oauth_client) {\n return toMCPClientInfo(this.agent.oauth_client);\n }\n return undefined;\n }\n\n /**\n * Save client information after dynamic registration\n */\n async saveClientInformation(clientInfo: OAuthClientInformationFull): Promise<void> {\n this.agent.oauth_client = fromMCPClientInfo(clientInfo);\n await this.persistAgent();\n }\n\n /**\n * Load existing tokens from agent config\n */\n async tokens(): Promise<OAuthTokens | undefined> {\n if (this.agent.oauth_tokens) {\n return toMCPTokens(this.agent.oauth_tokens);\n }\n return undefined;\n }\n\n /**\n * Save tokens after authorization\n * Also cleans up the temporary code verifier\n */\n async saveTokens(tokens: OAuthTokens): Promise<void> {\n this.agent.oauth_tokens = fromMCPTokens(tokens);\n // Clean up temporary code verifier after successful token exchange\n delete this.agent.oauth_code_verifier;\n await this.persistAgent();\n }\n\n /**\n * Redirect user to authorization URL\n */\n async redirectToAuthorization(authorizationUrl: URL): Promise<void> {\n await this.flowHandler.redirectToAuthorization(authorizationUrl);\n }\n\n /**\n * Save PKCE code verifier\n */\n async saveCodeVerifier(codeVerifier: string): Promise<void> {\n this.agent.oauth_code_verifier = codeVerifier;\n await this.persistAgent();\n }\n\n /**\n * Load PKCE code verifier\n * The MCP SDK calls saveCodeVerifier() before authorization and\n * retrieves it here during token exchange.\n */\n async codeVerifier(): Promise<string> {\n if (!this.agent.oauth_code_verifier) {\n throw new Error(\n 'No PKCE code verifier found. The OAuth flow may have been interrupted or ' +\n 'the agent config was modified. Please try authenticating again.'\n );\n }\n return this.agent.oauth_code_verifier;\n }\n\n /**\n * Invalidate credentials when server indicates they're invalid\n */\n async invalidateCredentials(scope: 'all' | 'client' | 'tokens' | 'verifier'): Promise<void> {\n switch (scope) {\n case 'all':\n delete this.agent.oauth_tokens;\n delete this.agent.oauth_client;\n delete this.agent.oauth_code_verifier;\n break;\n case 'tokens':\n delete this.agent.oauth_tokens;\n break;\n case 'client':\n delete this.agent.oauth_client;\n break;\n case 'verifier':\n delete this.agent.oauth_code_verifier;\n break;\n }\n await this.persistAgent();\n }\n\n // ========================================\n // Additional methods\n // ========================================\n\n /**\n * Persist agent config to storage if configured\n */\n private async persistAgent(): Promise<void> {\n if (this.storage) {\n await this.storage.saveAgent(this.agent);\n }\n }\n\n /**\n * Wait for the OAuth callback\n * Call this after UnauthorizedError is thrown\n */\n async waitForCallback(): Promise<string> {\n return this.flowHandler.waitForCallback();\n }\n\n /**\n * Clean up resources\n */\n async cleanup(): Promise<void> {\n await this.flowHandler.cleanup();\n }\n\n /**\n * Check if we have valid, non-expired OAuth tokens\n * @returns true if access_token exists and hasn't expired (with 5 minute buffer)\n */\n hasValidTokens(): boolean {\n const tokens = this.agent.oauth_tokens;\n if (!tokens?.access_token) return false;\n\n // Check expiration if available\n if (tokens.expires_at) {\n const expiresAt = new Date(tokens.expires_at);\n // Consider expired if within 5 minutes of expiration\n if (expiresAt.getTime() - Date.now() < 5 * 60 * 1000) {\n return false;\n }\n }\n\n return true;\n }\n\n /**\n * Check if we have a refresh token available for token refresh\n * @returns true if refresh_token is present\n */\n hasRefreshToken(): boolean {\n return !!this.agent.oauth_tokens?.refresh_token;\n }\n\n /**\n * Clear all OAuth data for this agent\n */\n async clearAuth(): Promise<void> {\n await this.invalidateCredentials('all');\n }\n\n /**\n * Get the agent config this provider manages\n * @returns The AgentConfig with OAuth tokens populated after successful auth\n */\n getAgent(): AgentConfig {\n return this.agent;\n }\n\n /**\n * Get the agent identifier\n * @returns The agent's unique ID\n */\n getAgentId(): string {\n return this.agent.id;\n }\n}\n"],"mappings":"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","names":[]}
@@ -28,7 +28,8 @@ export interface FileOAuthStorageOptions {
28
28
  *
29
29
  * Does NOT touch fields outside the OAuth envelope (`auth_token`, custom
30
30
  * fields) when saving — the MCP provider only mutates `oauth_tokens`,
31
- * `oauth_client`, and `oauth_code_verifier`, and we preserve everything else.
31
+ * `oauth_client`, `oauth_resource`, and `oauth_code_verifier`, and we preserve
32
+ * everything else.
32
33
  *
33
34
  * @example
34
35
  * ```ts
@@ -28,7 +28,8 @@ export interface FileOAuthStorageOptions {
28
28
  *
29
29
  * Does NOT touch fields outside the OAuth envelope (`auth_token`, custom
30
30
  * fields) when saving — the MCP provider only mutates `oauth_tokens`,
31
- * `oauth_client`, and `oauth_code_verifier`, and we preserve everything else.
31
+ * `oauth_client`, `oauth_resource`, and `oauth_code_verifier`, and we preserve
32
+ * everything else.
32
33
  *
33
34
  * @example
34
35
  * ```ts
@@ -1 +1 @@
1
- {"version":3,"file":"file-storage.d.ts","sourceRoot":"","sources":["../../../../src/lib/auth/oauth/file-storage.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAuBlD;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,8EAA8E;IAC9E,UAAU,EAAE,MAAM,CAAC;IACnB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,sEAAsE;IACtE,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,uBAAuB,GAAG,kBAAkB,CAsE3F"}
1
+ {"version":3,"file":"file-storage.d.ts","sourceRoot":"","sources":["../../../../src/lib/auth/oauth/file-storage.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAwBlD;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,8EAA8E;IAC9E,UAAU,EAAE,MAAM,CAAC;IACnB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,sEAAsE;IACtE,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,uBAAuB,GAAG,kBAAkB,CA0E3F"}
@@ -73,6 +73,7 @@ function createFileOAuthStorage(options) {
73
73
  auth_token: stored.auth_token,
74
74
  oauth_tokens: stored.oauth_tokens,
75
75
  oauth_client: stored.oauth_client,
76
+ oauth_resource: stored.oauth_resource,
76
77
  oauth_client_credentials: stored.oauth_client_credentials,
77
78
  oauth_code_verifier: stored.oauth_code_verifier
78
79
  };
@@ -81,16 +82,19 @@ function createFileOAuthStorage(options) {
81
82
  const key = agentKeyOverride ?? agent.id;
82
83
  const config = await readConfig();
83
84
  const existing = config.agents[key] ?? { url: agent.agent_uri };
84
- config.agents[key] = {
85
+ const next = {
85
86
  ...existing,
86
87
  url: agent.agent_uri,
87
88
  protocol: agent.protocol,
88
89
  ...agent.auth_token !== void 0 ? { auth_token: agent.auth_token } : {},
89
90
  ...agent.oauth_tokens !== void 0 ? { oauth_tokens: agent.oauth_tokens } : {},
90
91
  ...agent.oauth_client !== void 0 ? { oauth_client: agent.oauth_client } : {},
92
+ ...agent.oauth_resource !== void 0 ? { oauth_resource: agent.oauth_resource } : {},
91
93
  ...agent.oauth_client_credentials !== void 0 ? { oauth_client_credentials: agent.oauth_client_credentials } : {},
92
94
  ...agent.oauth_code_verifier !== void 0 ? { oauth_code_verifier: agent.oauth_code_verifier } : {}
93
95
  };
96
+ if (agent.oauth_resource === void 0) delete next.oauth_resource;
97
+ config.agents[key] = next;
94
98
  await writeConfig(config);
95
99
  }
96
100
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/lib/auth/oauth/file-storage.ts"],"sourcesContent":["/**\n * File-backed {@link OAuthConfigStorage} implementation.\n *\n * Persists refreshed OAuth tokens back to a JSON file so that subsequent\n * `callTool` invocations use the latest access + refresh tokens without\n * triggering a redundant refresh (or worse, a re-login).\n *\n * On-disk format is the shape used by the `adcp` CLI's agents.json — agents\n * keyed by alias, each with `{ url, protocol, auth_token?, oauth_tokens?, oauth_client? }`.\n * Library consumers who want a different shape can implement\n * {@link OAuthConfigStorage} directly.\n */\nimport { promises as fs } from 'fs';\nimport path from 'path';\nimport { randomBytes } from 'crypto';\nimport type { AgentConfig } from '../../types/adcp';\nimport type { OAuthConfigStorage } from './types';\n\n/**\n * Shape of a single agent record on disk (matches the `adcp` CLI's config format).\n */\ninterface StoredAgent {\n url: string;\n protocol?: 'mcp' | 'a2a';\n auth_token?: string;\n oauth_tokens?: AgentConfig['oauth_tokens'];\n oauth_client?: AgentConfig['oauth_client'];\n oauth_client_credentials?: AgentConfig['oauth_client_credentials'];\n oauth_code_verifier?: string;\n}\n\n/**\n * Shape of the whole config file.\n */\ninterface StoredConfig {\n agents: Record<string, StoredAgent>;\n defaults?: Record<string, unknown>;\n}\n\n/**\n * Options for {@link createFileOAuthStorage}.\n */\nexport interface FileOAuthStorageOptions {\n /** Absolute path to the config JSON file. Must be a file, not a directory. */\n configPath: string;\n /**\n * Key persistence under a stable alias regardless of `agent.id`. Use this\n * when the in-memory `AgentConfig` carries an ephemeral identifier (e.g.\n * a per-request tenant id, or a synthetic `cli-agent`) but on-disk storage\n * should be organized by a long-lived alias chosen by the operator.\n */\n agentKey?: string;\n /**\n * Create the parent directory (with mode 0o700) if it doesn't exist.\n * Default true — CLI users expect first-run to create `~/.adcp/`.\n */\n autoCreateDir?: boolean;\n /** File mode for the config file when we create it. Default 0o600. */\n fileMode?: number;\n}\n\n/**\n * Create a file-backed `OAuthConfigStorage`.\n *\n * Reads are cheap: a single JSON.parse per call. Writes are atomic via\n * `write-then-rename` so a crash mid-save cannot produce a half-written file.\n *\n * Does NOT touch fields outside the OAuth envelope (`auth_token`, custom\n * fields) when saving — the MCP provider only mutates `oauth_tokens`,\n * `oauth_client`, and `oauth_code_verifier`, and we preserve everything else.\n *\n * @example\n * ```ts\n * const storage = createFileOAuthStorage({ configPath: '/home/user/.adcp/config.json' });\n * const provider = createNonInteractiveOAuthProvider(agent, { storage });\n * ```\n */\nexport function createFileOAuthStorage(options: FileOAuthStorageOptions): OAuthConfigStorage {\n const configPath = options.configPath;\n const agentKeyOverride = options.agentKey;\n const autoCreateDir = options.autoCreateDir ?? true;\n const fileMode = options.fileMode ?? 0o600;\n\n async function readConfig(): Promise<StoredConfig> {\n try {\n const raw = await fs.readFile(configPath, 'utf-8');\n const parsed = JSON.parse(raw) as StoredConfig;\n if (!parsed.agents || typeof parsed.agents !== 'object') parsed.agents = {};\n return parsed;\n } catch (err) {\n if (isNotFound(err)) return { agents: {} };\n throw err;\n }\n }\n\n async function writeConfig(config: StoredConfig): Promise<void> {\n if (autoCreateDir) {\n await fs.mkdir(path.dirname(configPath), { recursive: true, mode: 0o700 });\n }\n // Atomic write: stage next to the target, then rename. Same filesystem →\n // rename is atomic on POSIX and on NTFS (MoveFileEx under the hood).\n // Random suffix guards against two concurrent saves in the same process\n // racing on the same temp path.\n const tempPath = `${configPath}.${process.pid}.${randomBytes(4).toString('hex')}.tmp`;\n const serialized = JSON.stringify(config, null, 2);\n await fs.writeFile(tempPath, serialized, { mode: fileMode });\n await fs.rename(tempPath, configPath);\n }\n\n return {\n async loadAgent(agentId: string): Promise<AgentConfig | undefined> {\n const key = agentKeyOverride ?? agentId;\n const config = await readConfig();\n const stored = config.agents[key];\n if (!stored) return undefined;\n return {\n id: agentId,\n name: agentId,\n agent_uri: stored.url,\n protocol: stored.protocol ?? 'mcp',\n auth_token: stored.auth_token,\n oauth_tokens: stored.oauth_tokens,\n oauth_client: stored.oauth_client,\n oauth_client_credentials: stored.oauth_client_credentials,\n oauth_code_verifier: stored.oauth_code_verifier,\n };\n },\n\n async saveAgent(agent: AgentConfig): Promise<void> {\n const key = agentKeyOverride ?? agent.id;\n const config = await readConfig();\n const existing = config.agents[key] ?? { url: agent.agent_uri };\n config.agents[key] = {\n ...existing,\n url: agent.agent_uri,\n protocol: agent.protocol,\n ...(agent.auth_token !== undefined ? { auth_token: agent.auth_token } : {}),\n ...(agent.oauth_tokens !== undefined ? { oauth_tokens: agent.oauth_tokens } : {}),\n ...(agent.oauth_client !== undefined ? { oauth_client: agent.oauth_client } : {}),\n ...(agent.oauth_client_credentials !== undefined\n ? { oauth_client_credentials: agent.oauth_client_credentials }\n : {}),\n ...(agent.oauth_code_verifier !== undefined ? { oauth_code_verifier: agent.oauth_code_verifier } : {}),\n };\n await writeConfig(config);\n },\n };\n}\n\nfunction isNotFound(err: unknown): boolean {\n return Boolean(err && typeof err === 'object' && (err as { code?: string }).code === 'ENOENT');\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAYA,gBAA+B;AAC/B,kBAAiB;AACjB,oBAA4B;AA+DrB,SAAS,uBAAuB,SAAsD;AAC3F,QAAM,aAAa,QAAQ;AAC3B,QAAM,mBAAmB,QAAQ;AACjC,QAAM,gBAAgB,QAAQ,iBAAiB;AAC/C,QAAM,WAAW,QAAQ,YAAY;AAErC,iBAAe,aAAoC;AACjD,QAAI;AACF,YAAM,MAAM,MAAM,UAAAA,SAAG,SAAS,YAAY,OAAO;AACjD,YAAM,SAAS,KAAK,MAAM,GAAG;AAC7B,UAAI,CAAC,OAAO,UAAU,OAAO,OAAO,WAAW,SAAU,QAAO,SAAS,CAAC;AAC1E,aAAO;AAAA,IACT,SAAS,KAAK;AACZ,UAAI,WAAW,GAAG,EAAG,QAAO,EAAE,QAAQ,CAAC,EAAE;AACzC,YAAM;AAAA,IACR;AAAA,EACF;AAEA,iBAAe,YAAY,QAAqC;AAC9D,QAAI,eAAe;AACjB,YAAM,UAAAA,SAAG,MAAM,YAAAC,QAAK,QAAQ,UAAU,GAAG,EAAE,WAAW,MAAM,MAAM,IAAM,CAAC;AAAA,IAC3E;AAKA,UAAM,WAAW,GAAG,UAAU,IAAI,QAAQ,GAAG,QAAI,2BAAY,CAAC,EAAE,SAAS,KAAK,CAAC;AAC/E,UAAM,aAAa,KAAK,UAAU,QAAQ,MAAM,CAAC;AACjD,UAAM,UAAAD,SAAG,UAAU,UAAU,YAAY,EAAE,MAAM,SAAS,CAAC;AAC3D,UAAM,UAAAA,SAAG,OAAO,UAAU,UAAU;AAAA,EACtC;AAEA,SAAO;AAAA,IACL,MAAM,UAAU,SAAmD;AACjE,YAAM,MAAM,oBAAoB;AAChC,YAAM,SAAS,MAAM,WAAW;AAChC,YAAM,SAAS,OAAO,OAAO,GAAG;AAChC,UAAI,CAAC,OAAQ,QAAO;AACpB,aAAO;AAAA,QACL,IAAI;AAAA,QACJ,MAAM;AAAA,QACN,WAAW,OAAO;AAAA,QAClB,UAAU,OAAO,YAAY;AAAA,QAC7B,YAAY,OAAO;AAAA,QACnB,cAAc,OAAO;AAAA,QACrB,cAAc,OAAO;AAAA,QACrB,0BAA0B,OAAO;AAAA,QACjC,qBAAqB,OAAO;AAAA,MAC9B;AAAA,IACF;AAAA,IAEA,MAAM,UAAU,OAAmC;AACjD,YAAM,MAAM,oBAAoB,MAAM;AACtC,YAAM,SAAS,MAAM,WAAW;AAChC,YAAM,WAAW,OAAO,OAAO,GAAG,KAAK,EAAE,KAAK,MAAM,UAAU;AAC9D,aAAO,OAAO,GAAG,IAAI;AAAA,QACnB,GAAG;AAAA,QACH,KAAK,MAAM;AAAA,QACX,UAAU,MAAM;AAAA,QAChB,GAAI,MAAM,eAAe,SAAY,EAAE,YAAY,MAAM,WAAW,IAAI,CAAC;AAAA,QACzE,GAAI,MAAM,iBAAiB,SAAY,EAAE,cAAc,MAAM,aAAa,IAAI,CAAC;AAAA,QAC/E,GAAI,MAAM,iBAAiB,SAAY,EAAE,cAAc,MAAM,aAAa,IAAI,CAAC;AAAA,QAC/E,GAAI,MAAM,6BAA6B,SACnC,EAAE,0BAA0B,MAAM,yBAAyB,IAC3D,CAAC;AAAA,QACL,GAAI,MAAM,wBAAwB,SAAY,EAAE,qBAAqB,MAAM,oBAAoB,IAAI,CAAC;AAAA,MACtG;AACA,YAAM,YAAY,MAAM;AAAA,IAC1B;AAAA,EACF;AACF;AAEA,SAAS,WAAW,KAAuB;AACzC,SAAO,QAAQ,OAAO,OAAO,QAAQ,YAAa,IAA0B,SAAS,QAAQ;AAC/F;","names":["fs","path"]}
1
+ {"version":3,"sources":["../../../../src/lib/auth/oauth/file-storage.ts"],"sourcesContent":["/**\n * File-backed {@link OAuthConfigStorage} implementation.\n *\n * Persists refreshed OAuth tokens back to a JSON file so that subsequent\n * `callTool` invocations use the latest access + refresh tokens without\n * triggering a redundant refresh (or worse, a re-login).\n *\n * On-disk format is the shape used by the `adcp` CLI's agents.json — agents\n * keyed by alias, each with\n * `{ url, protocol, auth_token?, oauth_tokens?, oauth_client?, oauth_resource? }`.\n * Library consumers who want a different shape can implement\n * {@link OAuthConfigStorage} directly.\n */\nimport { promises as fs } from 'fs';\nimport path from 'path';\nimport { randomBytes } from 'crypto';\nimport type { AgentConfig } from '../../types/adcp';\nimport type { OAuthConfigStorage } from './types';\n\n/**\n * Shape of a single agent record on disk (matches the `adcp` CLI's config format).\n */\ninterface StoredAgent {\n url: string;\n protocol?: 'mcp' | 'a2a';\n auth_token?: string;\n oauth_tokens?: AgentConfig['oauth_tokens'];\n oauth_client?: AgentConfig['oauth_client'];\n oauth_resource?: string;\n oauth_client_credentials?: AgentConfig['oauth_client_credentials'];\n oauth_code_verifier?: string;\n}\n\n/**\n * Shape of the whole config file.\n */\ninterface StoredConfig {\n agents: Record<string, StoredAgent>;\n defaults?: Record<string, unknown>;\n}\n\n/**\n * Options for {@link createFileOAuthStorage}.\n */\nexport interface FileOAuthStorageOptions {\n /** Absolute path to the config JSON file. Must be a file, not a directory. */\n configPath: string;\n /**\n * Key persistence under a stable alias regardless of `agent.id`. Use this\n * when the in-memory `AgentConfig` carries an ephemeral identifier (e.g.\n * a per-request tenant id, or a synthetic `cli-agent`) but on-disk storage\n * should be organized by a long-lived alias chosen by the operator.\n */\n agentKey?: string;\n /**\n * Create the parent directory (with mode 0o700) if it doesn't exist.\n * Default true — CLI users expect first-run to create `~/.adcp/`.\n */\n autoCreateDir?: boolean;\n /** File mode for the config file when we create it. Default 0o600. */\n fileMode?: number;\n}\n\n/**\n * Create a file-backed `OAuthConfigStorage`.\n *\n * Reads are cheap: a single JSON.parse per call. Writes are atomic via\n * `write-then-rename` so a crash mid-save cannot produce a half-written file.\n *\n * Does NOT touch fields outside the OAuth envelope (`auth_token`, custom\n * fields) when saving — the MCP provider only mutates `oauth_tokens`,\n * `oauth_client`, `oauth_resource`, and `oauth_code_verifier`, and we preserve\n * everything else.\n *\n * @example\n * ```ts\n * const storage = createFileOAuthStorage({ configPath: '/home/user/.adcp/config.json' });\n * const provider = createNonInteractiveOAuthProvider(agent, { storage });\n * ```\n */\nexport function createFileOAuthStorage(options: FileOAuthStorageOptions): OAuthConfigStorage {\n const configPath = options.configPath;\n const agentKeyOverride = options.agentKey;\n const autoCreateDir = options.autoCreateDir ?? true;\n const fileMode = options.fileMode ?? 0o600;\n\n async function readConfig(): Promise<StoredConfig> {\n try {\n const raw = await fs.readFile(configPath, 'utf-8');\n const parsed = JSON.parse(raw) as StoredConfig;\n if (!parsed.agents || typeof parsed.agents !== 'object') parsed.agents = {};\n return parsed;\n } catch (err) {\n if (isNotFound(err)) return { agents: {} };\n throw err;\n }\n }\n\n async function writeConfig(config: StoredConfig): Promise<void> {\n if (autoCreateDir) {\n await fs.mkdir(path.dirname(configPath), { recursive: true, mode: 0o700 });\n }\n // Atomic write: stage next to the target, then rename. Same filesystem →\n // rename is atomic on POSIX and on NTFS (MoveFileEx under the hood).\n // Random suffix guards against two concurrent saves in the same process\n // racing on the same temp path.\n const tempPath = `${configPath}.${process.pid}.${randomBytes(4).toString('hex')}.tmp`;\n const serialized = JSON.stringify(config, null, 2);\n await fs.writeFile(tempPath, serialized, { mode: fileMode });\n await fs.rename(tempPath, configPath);\n }\n\n return {\n async loadAgent(agentId: string): Promise<AgentConfig | undefined> {\n const key = agentKeyOverride ?? agentId;\n const config = await readConfig();\n const stored = config.agents[key];\n if (!stored) return undefined;\n return {\n id: agentId,\n name: agentId,\n agent_uri: stored.url,\n protocol: stored.protocol ?? 'mcp',\n auth_token: stored.auth_token,\n oauth_tokens: stored.oauth_tokens,\n oauth_client: stored.oauth_client,\n oauth_resource: stored.oauth_resource,\n oauth_client_credentials: stored.oauth_client_credentials,\n oauth_code_verifier: stored.oauth_code_verifier,\n };\n },\n\n async saveAgent(agent: AgentConfig): Promise<void> {\n const key = agentKeyOverride ?? agent.id;\n const config = await readConfig();\n const existing = config.agents[key] ?? { url: agent.agent_uri };\n const next: StoredAgent = {\n ...existing,\n url: agent.agent_uri,\n protocol: agent.protocol,\n ...(agent.auth_token !== undefined ? { auth_token: agent.auth_token } : {}),\n ...(agent.oauth_tokens !== undefined ? { oauth_tokens: agent.oauth_tokens } : {}),\n ...(agent.oauth_client !== undefined ? { oauth_client: agent.oauth_client } : {}),\n ...(agent.oauth_resource !== undefined ? { oauth_resource: agent.oauth_resource } : {}),\n ...(agent.oauth_client_credentials !== undefined\n ? { oauth_client_credentials: agent.oauth_client_credentials }\n : {}),\n ...(agent.oauth_code_verifier !== undefined ? { oauth_code_verifier: agent.oauth_code_verifier } : {}),\n };\n if (agent.oauth_resource === undefined) delete next.oauth_resource;\n config.agents[key] = next;\n await writeConfig(config);\n },\n };\n}\n\nfunction isNotFound(err: unknown): boolean {\n return Boolean(err && typeof err === 'object' && (err as { code?: string }).code === 'ENOENT');\n}\n"],"mappings":"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","names":["fs","path"]}
@@ -40,6 +40,7 @@ function createFileOAuthStorage(options) {
40
40
  auth_token: stored.auth_token,
41
41
  oauth_tokens: stored.oauth_tokens,
42
42
  oauth_client: stored.oauth_client,
43
+ oauth_resource: stored.oauth_resource,
43
44
  oauth_client_credentials: stored.oauth_client_credentials,
44
45
  oauth_code_verifier: stored.oauth_code_verifier
45
46
  };
@@ -48,16 +49,19 @@ function createFileOAuthStorage(options) {
48
49
  const key = agentKeyOverride ?? agent.id;
49
50
  const config = await readConfig();
50
51
  const existing = config.agents[key] ?? { url: agent.agent_uri };
51
- config.agents[key] = {
52
+ const next = {
52
53
  ...existing,
53
54
  url: agent.agent_uri,
54
55
  protocol: agent.protocol,
55
56
  ...agent.auth_token !== void 0 ? { auth_token: agent.auth_token } : {},
56
57
  ...agent.oauth_tokens !== void 0 ? { oauth_tokens: agent.oauth_tokens } : {},
57
58
  ...agent.oauth_client !== void 0 ? { oauth_client: agent.oauth_client } : {},
59
+ ...agent.oauth_resource !== void 0 ? { oauth_resource: agent.oauth_resource } : {},
58
60
  ...agent.oauth_client_credentials !== void 0 ? { oauth_client_credentials: agent.oauth_client_credentials } : {},
59
61
  ...agent.oauth_code_verifier !== void 0 ? { oauth_code_verifier: agent.oauth_code_verifier } : {}
60
62
  };
63
+ if (agent.oauth_resource === void 0) delete next.oauth_resource;
64
+ config.agents[key] = next;
61
65
  await writeConfig(config);
62
66
  }
63
67
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/lib/auth/oauth/file-storage.ts"],"sourcesContent":["/**\n * File-backed {@link OAuthConfigStorage} implementation.\n *\n * Persists refreshed OAuth tokens back to a JSON file so that subsequent\n * `callTool` invocations use the latest access + refresh tokens without\n * triggering a redundant refresh (or worse, a re-login).\n *\n * On-disk format is the shape used by the `adcp` CLI's agents.json — agents\n * keyed by alias, each with `{ url, protocol, auth_token?, oauth_tokens?, oauth_client? }`.\n * Library consumers who want a different shape can implement\n * {@link OAuthConfigStorage} directly.\n */\nimport { promises as fs } from 'fs';\nimport path from 'path';\nimport { randomBytes } from 'crypto';\nimport type { AgentConfig } from '../../types/adcp';\nimport type { OAuthConfigStorage } from './types';\n\n/**\n * Shape of a single agent record on disk (matches the `adcp` CLI's config format).\n */\ninterface StoredAgent {\n url: string;\n protocol?: 'mcp' | 'a2a';\n auth_token?: string;\n oauth_tokens?: AgentConfig['oauth_tokens'];\n oauth_client?: AgentConfig['oauth_client'];\n oauth_client_credentials?: AgentConfig['oauth_client_credentials'];\n oauth_code_verifier?: string;\n}\n\n/**\n * Shape of the whole config file.\n */\ninterface StoredConfig {\n agents: Record<string, StoredAgent>;\n defaults?: Record<string, unknown>;\n}\n\n/**\n * Options for {@link createFileOAuthStorage}.\n */\nexport interface FileOAuthStorageOptions {\n /** Absolute path to the config JSON file. Must be a file, not a directory. */\n configPath: string;\n /**\n * Key persistence under a stable alias regardless of `agent.id`. Use this\n * when the in-memory `AgentConfig` carries an ephemeral identifier (e.g.\n * a per-request tenant id, or a synthetic `cli-agent`) but on-disk storage\n * should be organized by a long-lived alias chosen by the operator.\n */\n agentKey?: string;\n /**\n * Create the parent directory (with mode 0o700) if it doesn't exist.\n * Default true — CLI users expect first-run to create `~/.adcp/`.\n */\n autoCreateDir?: boolean;\n /** File mode for the config file when we create it. Default 0o600. */\n fileMode?: number;\n}\n\n/**\n * Create a file-backed `OAuthConfigStorage`.\n *\n * Reads are cheap: a single JSON.parse per call. Writes are atomic via\n * `write-then-rename` so a crash mid-save cannot produce a half-written file.\n *\n * Does NOT touch fields outside the OAuth envelope (`auth_token`, custom\n * fields) when saving — the MCP provider only mutates `oauth_tokens`,\n * `oauth_client`, and `oauth_code_verifier`, and we preserve everything else.\n *\n * @example\n * ```ts\n * const storage = createFileOAuthStorage({ configPath: '/home/user/.adcp/config.json' });\n * const provider = createNonInteractiveOAuthProvider(agent, { storage });\n * ```\n */\nexport function createFileOAuthStorage(options: FileOAuthStorageOptions): OAuthConfigStorage {\n const configPath = options.configPath;\n const agentKeyOverride = options.agentKey;\n const autoCreateDir = options.autoCreateDir ?? true;\n const fileMode = options.fileMode ?? 0o600;\n\n async function readConfig(): Promise<StoredConfig> {\n try {\n const raw = await fs.readFile(configPath, 'utf-8');\n const parsed = JSON.parse(raw) as StoredConfig;\n if (!parsed.agents || typeof parsed.agents !== 'object') parsed.agents = {};\n return parsed;\n } catch (err) {\n if (isNotFound(err)) return { agents: {} };\n throw err;\n }\n }\n\n async function writeConfig(config: StoredConfig): Promise<void> {\n if (autoCreateDir) {\n await fs.mkdir(path.dirname(configPath), { recursive: true, mode: 0o700 });\n }\n // Atomic write: stage next to the target, then rename. Same filesystem →\n // rename is atomic on POSIX and on NTFS (MoveFileEx under the hood).\n // Random suffix guards against two concurrent saves in the same process\n // racing on the same temp path.\n const tempPath = `${configPath}.${process.pid}.${randomBytes(4).toString('hex')}.tmp`;\n const serialized = JSON.stringify(config, null, 2);\n await fs.writeFile(tempPath, serialized, { mode: fileMode });\n await fs.rename(tempPath, configPath);\n }\n\n return {\n async loadAgent(agentId: string): Promise<AgentConfig | undefined> {\n const key = agentKeyOverride ?? agentId;\n const config = await readConfig();\n const stored = config.agents[key];\n if (!stored) return undefined;\n return {\n id: agentId,\n name: agentId,\n agent_uri: stored.url,\n protocol: stored.protocol ?? 'mcp',\n auth_token: stored.auth_token,\n oauth_tokens: stored.oauth_tokens,\n oauth_client: stored.oauth_client,\n oauth_client_credentials: stored.oauth_client_credentials,\n oauth_code_verifier: stored.oauth_code_verifier,\n };\n },\n\n async saveAgent(agent: AgentConfig): Promise<void> {\n const key = agentKeyOverride ?? agent.id;\n const config = await readConfig();\n const existing = config.agents[key] ?? { url: agent.agent_uri };\n config.agents[key] = {\n ...existing,\n url: agent.agent_uri,\n protocol: agent.protocol,\n ...(agent.auth_token !== undefined ? { auth_token: agent.auth_token } : {}),\n ...(agent.oauth_tokens !== undefined ? { oauth_tokens: agent.oauth_tokens } : {}),\n ...(agent.oauth_client !== undefined ? { oauth_client: agent.oauth_client } : {}),\n ...(agent.oauth_client_credentials !== undefined\n ? { oauth_client_credentials: agent.oauth_client_credentials }\n : {}),\n ...(agent.oauth_code_verifier !== undefined ? { oauth_code_verifier: agent.oauth_code_verifier } : {}),\n };\n await writeConfig(config);\n },\n };\n}\n\nfunction isNotFound(err: unknown): boolean {\n return Boolean(err && typeof err === 'object' && (err as { code?: string }).code === 'ENOENT');\n}\n"],"mappings":"AAYA,SAAS,YAAY,UAAU;AAC/B,OAAO,UAAU;AACjB,SAAS,mBAAmB;AA+DrB,SAAS,uBAAuB,SAAsD;AAC3F,QAAM,aAAa,QAAQ;AAC3B,QAAM,mBAAmB,QAAQ;AACjC,QAAM,gBAAgB,QAAQ,iBAAiB;AAC/C,QAAM,WAAW,QAAQ,YAAY;AAErC,iBAAe,aAAoC;AACjD,QAAI;AACF,YAAM,MAAM,MAAM,GAAG,SAAS,YAAY,OAAO;AACjD,YAAM,SAAS,KAAK,MAAM,GAAG;AAC7B,UAAI,CAAC,OAAO,UAAU,OAAO,OAAO,WAAW,SAAU,QAAO,SAAS,CAAC;AAC1E,aAAO;AAAA,IACT,SAAS,KAAK;AACZ,UAAI,WAAW,GAAG,EAAG,QAAO,EAAE,QAAQ,CAAC,EAAE;AACzC,YAAM;AAAA,IACR;AAAA,EACF;AAEA,iBAAe,YAAY,QAAqC;AAC9D,QAAI,eAAe;AACjB,YAAM,GAAG,MAAM,KAAK,QAAQ,UAAU,GAAG,EAAE,WAAW,MAAM,MAAM,IAAM,CAAC;AAAA,IAC3E;AAKA,UAAM,WAAW,GAAG,UAAU,IAAI,QAAQ,GAAG,IAAI,YAAY,CAAC,EAAE,SAAS,KAAK,CAAC;AAC/E,UAAM,aAAa,KAAK,UAAU,QAAQ,MAAM,CAAC;AACjD,UAAM,GAAG,UAAU,UAAU,YAAY,EAAE,MAAM,SAAS,CAAC;AAC3D,UAAM,GAAG,OAAO,UAAU,UAAU;AAAA,EACtC;AAEA,SAAO;AAAA,IACL,MAAM,UAAU,SAAmD;AACjE,YAAM,MAAM,oBAAoB;AAChC,YAAM,SAAS,MAAM,WAAW;AAChC,YAAM,SAAS,OAAO,OAAO,GAAG;AAChC,UAAI,CAAC,OAAQ,QAAO;AACpB,aAAO;AAAA,QACL,IAAI;AAAA,QACJ,MAAM;AAAA,QACN,WAAW,OAAO;AAAA,QAClB,UAAU,OAAO,YAAY;AAAA,QAC7B,YAAY,OAAO;AAAA,QACnB,cAAc,OAAO;AAAA,QACrB,cAAc,OAAO;AAAA,QACrB,0BAA0B,OAAO;AAAA,QACjC,qBAAqB,OAAO;AAAA,MAC9B;AAAA,IACF;AAAA,IAEA,MAAM,UAAU,OAAmC;AACjD,YAAM,MAAM,oBAAoB,MAAM;AACtC,YAAM,SAAS,MAAM,WAAW;AAChC,YAAM,WAAW,OAAO,OAAO,GAAG,KAAK,EAAE,KAAK,MAAM,UAAU;AAC9D,aAAO,OAAO,GAAG,IAAI;AAAA,QACnB,GAAG;AAAA,QACH,KAAK,MAAM;AAAA,QACX,UAAU,MAAM;AAAA,QAChB,GAAI,MAAM,eAAe,SAAY,EAAE,YAAY,MAAM,WAAW,IAAI,CAAC;AAAA,QACzE,GAAI,MAAM,iBAAiB,SAAY,EAAE,cAAc,MAAM,aAAa,IAAI,CAAC;AAAA,QAC/E,GAAI,MAAM,iBAAiB,SAAY,EAAE,cAAc,MAAM,aAAa,IAAI,CAAC;AAAA,QAC/E,GAAI,MAAM,6BAA6B,SACnC,EAAE,0BAA0B,MAAM,yBAAyB,IAC3D,CAAC;AAAA,QACL,GAAI,MAAM,wBAAwB,SAAY,EAAE,qBAAqB,MAAM,oBAAoB,IAAI,CAAC;AAAA,MACtG;AACA,YAAM,YAAY,MAAM;AAAA,IAC1B;AAAA,EACF;AACF;AAEA,SAAS,WAAW,KAAuB;AACzC,SAAO,QAAQ,OAAO,OAAO,QAAQ,YAAa,IAA0B,SAAS,QAAQ;AAC/F;","names":[]}
1
+ {"version":3,"sources":["../../../../src/lib/auth/oauth/file-storage.ts"],"sourcesContent":["/**\n * File-backed {@link OAuthConfigStorage} implementation.\n *\n * Persists refreshed OAuth tokens back to a JSON file so that subsequent\n * `callTool` invocations use the latest access + refresh tokens without\n * triggering a redundant refresh (or worse, a re-login).\n *\n * On-disk format is the shape used by the `adcp` CLI's agents.json — agents\n * keyed by alias, each with\n * `{ url, protocol, auth_token?, oauth_tokens?, oauth_client?, oauth_resource? }`.\n * Library consumers who want a different shape can implement\n * {@link OAuthConfigStorage} directly.\n */\nimport { promises as fs } from 'fs';\nimport path from 'path';\nimport { randomBytes } from 'crypto';\nimport type { AgentConfig } from '../../types/adcp';\nimport type { OAuthConfigStorage } from './types';\n\n/**\n * Shape of a single agent record on disk (matches the `adcp` CLI's config format).\n */\ninterface StoredAgent {\n url: string;\n protocol?: 'mcp' | 'a2a';\n auth_token?: string;\n oauth_tokens?: AgentConfig['oauth_tokens'];\n oauth_client?: AgentConfig['oauth_client'];\n oauth_resource?: string;\n oauth_client_credentials?: AgentConfig['oauth_client_credentials'];\n oauth_code_verifier?: string;\n}\n\n/**\n * Shape of the whole config file.\n */\ninterface StoredConfig {\n agents: Record<string, StoredAgent>;\n defaults?: Record<string, unknown>;\n}\n\n/**\n * Options for {@link createFileOAuthStorage}.\n */\nexport interface FileOAuthStorageOptions {\n /** Absolute path to the config JSON file. Must be a file, not a directory. */\n configPath: string;\n /**\n * Key persistence under a stable alias regardless of `agent.id`. Use this\n * when the in-memory `AgentConfig` carries an ephemeral identifier (e.g.\n * a per-request tenant id, or a synthetic `cli-agent`) but on-disk storage\n * should be organized by a long-lived alias chosen by the operator.\n */\n agentKey?: string;\n /**\n * Create the parent directory (with mode 0o700) if it doesn't exist.\n * Default true — CLI users expect first-run to create `~/.adcp/`.\n */\n autoCreateDir?: boolean;\n /** File mode for the config file when we create it. Default 0o600. */\n fileMode?: number;\n}\n\n/**\n * Create a file-backed `OAuthConfigStorage`.\n *\n * Reads are cheap: a single JSON.parse per call. Writes are atomic via\n * `write-then-rename` so a crash mid-save cannot produce a half-written file.\n *\n * Does NOT touch fields outside the OAuth envelope (`auth_token`, custom\n * fields) when saving — the MCP provider only mutates `oauth_tokens`,\n * `oauth_client`, `oauth_resource`, and `oauth_code_verifier`, and we preserve\n * everything else.\n *\n * @example\n * ```ts\n * const storage = createFileOAuthStorage({ configPath: '/home/user/.adcp/config.json' });\n * const provider = createNonInteractiveOAuthProvider(agent, { storage });\n * ```\n */\nexport function createFileOAuthStorage(options: FileOAuthStorageOptions): OAuthConfigStorage {\n const configPath = options.configPath;\n const agentKeyOverride = options.agentKey;\n const autoCreateDir = options.autoCreateDir ?? true;\n const fileMode = options.fileMode ?? 0o600;\n\n async function readConfig(): Promise<StoredConfig> {\n try {\n const raw = await fs.readFile(configPath, 'utf-8');\n const parsed = JSON.parse(raw) as StoredConfig;\n if (!parsed.agents || typeof parsed.agents !== 'object') parsed.agents = {};\n return parsed;\n } catch (err) {\n if (isNotFound(err)) return { agents: {} };\n throw err;\n }\n }\n\n async function writeConfig(config: StoredConfig): Promise<void> {\n if (autoCreateDir) {\n await fs.mkdir(path.dirname(configPath), { recursive: true, mode: 0o700 });\n }\n // Atomic write: stage next to the target, then rename. Same filesystem →\n // rename is atomic on POSIX and on NTFS (MoveFileEx under the hood).\n // Random suffix guards against two concurrent saves in the same process\n // racing on the same temp path.\n const tempPath = `${configPath}.${process.pid}.${randomBytes(4).toString('hex')}.tmp`;\n const serialized = JSON.stringify(config, null, 2);\n await fs.writeFile(tempPath, serialized, { mode: fileMode });\n await fs.rename(tempPath, configPath);\n }\n\n return {\n async loadAgent(agentId: string): Promise<AgentConfig | undefined> {\n const key = agentKeyOverride ?? agentId;\n const config = await readConfig();\n const stored = config.agents[key];\n if (!stored) return undefined;\n return {\n id: agentId,\n name: agentId,\n agent_uri: stored.url,\n protocol: stored.protocol ?? 'mcp',\n auth_token: stored.auth_token,\n oauth_tokens: stored.oauth_tokens,\n oauth_client: stored.oauth_client,\n oauth_resource: stored.oauth_resource,\n oauth_client_credentials: stored.oauth_client_credentials,\n oauth_code_verifier: stored.oauth_code_verifier,\n };\n },\n\n async saveAgent(agent: AgentConfig): Promise<void> {\n const key = agentKeyOverride ?? agent.id;\n const config = await readConfig();\n const existing = config.agents[key] ?? { url: agent.agent_uri };\n const next: StoredAgent = {\n ...existing,\n url: agent.agent_uri,\n protocol: agent.protocol,\n ...(agent.auth_token !== undefined ? { auth_token: agent.auth_token } : {}),\n ...(agent.oauth_tokens !== undefined ? { oauth_tokens: agent.oauth_tokens } : {}),\n ...(agent.oauth_client !== undefined ? { oauth_client: agent.oauth_client } : {}),\n ...(agent.oauth_resource !== undefined ? { oauth_resource: agent.oauth_resource } : {}),\n ...(agent.oauth_client_credentials !== undefined\n ? { oauth_client_credentials: agent.oauth_client_credentials }\n : {}),\n ...(agent.oauth_code_verifier !== undefined ? { oauth_code_verifier: agent.oauth_code_verifier } : {}),\n };\n if (agent.oauth_resource === undefined) delete next.oauth_resource;\n config.agents[key] = next;\n await writeConfig(config);\n },\n };\n}\n\nfunction isNotFound(err: unknown): boolean {\n return Boolean(err && typeof err === 'object' && (err as { code?: string }).code === 'ENOENT');\n}\n"],"mappings":"AAaA,SAAS,YAAY,UAAU;AAC/B,OAAO,UAAU;AACjB,SAAS,mBAAmB;AAiErB,SAAS,uBAAuB,SAAsD;AAC3F,QAAM,aAAa,QAAQ;AAC3B,QAAM,mBAAmB,QAAQ;AACjC,QAAM,gBAAgB,QAAQ,iBAAiB;AAC/C,QAAM,WAAW,QAAQ,YAAY;AAErC,iBAAe,aAAoC;AACjD,QAAI;AACF,YAAM,MAAM,MAAM,GAAG,SAAS,YAAY,OAAO;AACjD,YAAM,SAAS,KAAK,MAAM,GAAG;AAC7B,UAAI,CAAC,OAAO,UAAU,OAAO,OAAO,WAAW,SAAU,QAAO,SAAS,CAAC;AAC1E,aAAO;AAAA,IACT,SAAS,KAAK;AACZ,UAAI,WAAW,GAAG,EAAG,QAAO,EAAE,QAAQ,CAAC,EAAE;AACzC,YAAM;AAAA,IACR;AAAA,EACF;AAEA,iBAAe,YAAY,QAAqC;AAC9D,QAAI,eAAe;AACjB,YAAM,GAAG,MAAM,KAAK,QAAQ,UAAU,GAAG,EAAE,WAAW,MAAM,MAAM,IAAM,CAAC;AAAA,IAC3E;AAKA,UAAM,WAAW,GAAG,UAAU,IAAI,QAAQ,GAAG,IAAI,YAAY,CAAC,EAAE,SAAS,KAAK,CAAC;AAC/E,UAAM,aAAa,KAAK,UAAU,QAAQ,MAAM,CAAC;AACjD,UAAM,GAAG,UAAU,UAAU,YAAY,EAAE,MAAM,SAAS,CAAC;AAC3D,UAAM,GAAG,OAAO,UAAU,UAAU;AAAA,EACtC;AAEA,SAAO;AAAA,IACL,MAAM,UAAU,SAAmD;AACjE,YAAM,MAAM,oBAAoB;AAChC,YAAM,SAAS,MAAM,WAAW;AAChC,YAAM,SAAS,OAAO,OAAO,GAAG;AAChC,UAAI,CAAC,OAAQ,QAAO;AACpB,aAAO;AAAA,QACL,IAAI;AAAA,QACJ,MAAM;AAAA,QACN,WAAW,OAAO;AAAA,QAClB,UAAU,OAAO,YAAY;AAAA,QAC7B,YAAY,OAAO;AAAA,QACnB,cAAc,OAAO;AAAA,QACrB,cAAc,OAAO;AAAA,QACrB,gBAAgB,OAAO;AAAA,QACvB,0BAA0B,OAAO;AAAA,QACjC,qBAAqB,OAAO;AAAA,MAC9B;AAAA,IACF;AAAA,IAEA,MAAM,UAAU,OAAmC;AACjD,YAAM,MAAM,oBAAoB,MAAM;AACtC,YAAM,SAAS,MAAM,WAAW;AAChC,YAAM,WAAW,OAAO,OAAO,GAAG,KAAK,EAAE,KAAK,MAAM,UAAU;AAC9D,YAAM,OAAoB;AAAA,QACxB,GAAG;AAAA,QACH,KAAK,MAAM;AAAA,QACX,UAAU,MAAM;AAAA,QAChB,GAAI,MAAM,eAAe,SAAY,EAAE,YAAY,MAAM,WAAW,IAAI,CAAC;AAAA,QACzE,GAAI,MAAM,iBAAiB,SAAY,EAAE,cAAc,MAAM,aAAa,IAAI,CAAC;AAAA,QAC/E,GAAI,MAAM,iBAAiB,SAAY,EAAE,cAAc,MAAM,aAAa,IAAI,CAAC;AAAA,QAC/E,GAAI,MAAM,mBAAmB,SAAY,EAAE,gBAAgB,MAAM,eAAe,IAAI,CAAC;AAAA,QACrF,GAAI,MAAM,6BAA6B,SACnC,EAAE,0BAA0B,MAAM,yBAAyB,IAC3D,CAAC;AAAA,QACL,GAAI,MAAM,wBAAwB,SAAY,EAAE,qBAAqB,MAAM,oBAAoB,IAAI,CAAC;AAAA,MACtG;AACA,UAAI,MAAM,mBAAmB,OAAW,QAAO,KAAK;AACpD,aAAO,OAAO,GAAG,IAAI;AACrB,YAAM,YAAY,MAAM;AAAA,IAC1B;AAAA,EACF;AACF;AAEA,SAAS,WAAW,KAAuB;AACzC,SAAO,QAAQ,OAAO,OAAO,QAAQ,YAAa,IAA0B,SAAS,QAAQ;AAC/F;","names":[]}
@@ -34,7 +34,7 @@ export type { OAuthFlowHandler, OAuthProviderConfig, OAuthConfigStorage, OAuthCl
34
34
  export { DEFAULT_CLIENT_METADATA, OAuthError, OAuthCancelledError, OAuthTimeoutError, toMCPTokens, fromMCPTokens, toMCPClientInfo, fromMCPClientInfo, } from './types.mjs';
35
35
  export { CLIFlowHandler, type CLIFlowHandlerConfig } from './CLIFlowHandler.mjs';
36
36
  export { NonInteractiveFlowHandler, type NonInteractiveFlowHandlerConfig } from './NonInteractiveFlowHandler.mjs';
37
- export { startWebOAuthFlow, completeWebOAuthFlow, safeReturnTo, InMemoryPendingFlowStore, InvalidOrExpiredFlowError, StateMismatchError, BrowserBindingRequiredError, TokenExchangeError, ProtectedResourceMetadataError, AgentVanishedDuringFlowError, ConfidentialClientNotAllowedError, DEFAULT_WEB_FLOW_TTL_MS, type PendingWebFlow, type PendingWebFlowStore, type PendingFlowStore, type StartWebFlowOptions, type StartWebFlowResult, type CompleteWebFlowOptions, type CompleteWebFlowResult, } from './web-flow.mjs';
37
+ export { startWebOAuthFlow, completeWebOAuthFlow, safeReturnTo, InMemoryPendingFlowStore, InvalidOrExpiredFlowError, StateMismatchError, BrowserBindingRequiredError, TokenExchangeError, ProtectedResourceMetadataError, AgentVanishedDuringFlowError, AgentChangedDuringFlowError, ConfidentialClientNotAllowedError, DEFAULT_WEB_FLOW_TTL_MS, type PendingWebFlow, type PendingWebFlowStore, type PendingFlowStore, type StartWebFlowOptions, type StartWebFlowResult, type CompleteWebFlowOptions, type CompleteWebFlowResult, } from './web-flow.mjs';
38
38
  export { MCPOAuthProvider } from './MCPOAuthProvider.mjs';
39
39
  import { MCPOAuthProvider } from './MCPOAuthProvider.mjs';
40
40
  import type { OAuthClientMetadata, OAuthConfigStorage, AgentConfig } from './types.mjs';
@@ -85,6 +85,8 @@ export declare function createCLIOAuthProvider(agent: AgentConfig, options?: {
85
85
  quiet?: boolean;
86
86
  /** Storage for persisting agent config */
87
87
  storage?: OAuthConfigStorage;
88
+ /** Operator RFC 8707 override; `null` returns to metadata discovery. */
89
+ resourceOverride?: string | null;
88
90
  /**
89
91
  * Allow non-HTTPS resource URLs advertised in RFC 9728 protected-resource
90
92
  * metadata. Mirrors the CLI's `--allow-http` flag. Defaults to `false`.
@@ -108,6 +110,8 @@ export declare function createNonInteractiveOAuthProvider(agent: AgentConfig, op
108
110
  clientMetadata?: Partial<OAuthClientMetadata>;
109
111
  /** Storage for persisting refreshed tokens back to disk. */
110
112
  storage?: OAuthConfigStorage;
113
+ /** Operator RFC 8707 override reused during refresh; `null` disables it. */
114
+ resourceOverride?: string | null;
111
115
  /**
112
116
  * Allow non-HTTPS resource URLs advertised in RFC 9728 protected-resource
113
117
  * metadata. Mirrors the CLI's `--allow-http` flag. Defaults to `false`.
@@ -34,7 +34,7 @@ export type { OAuthFlowHandler, OAuthProviderConfig, OAuthConfigStorage, OAuthCl
34
34
  export { DEFAULT_CLIENT_METADATA, OAuthError, OAuthCancelledError, OAuthTimeoutError, toMCPTokens, fromMCPTokens, toMCPClientInfo, fromMCPClientInfo, } from './types';
35
35
  export { CLIFlowHandler, type CLIFlowHandlerConfig } from './CLIFlowHandler';
36
36
  export { NonInteractiveFlowHandler, type NonInteractiveFlowHandlerConfig } from './NonInteractiveFlowHandler';
37
- export { startWebOAuthFlow, completeWebOAuthFlow, safeReturnTo, InMemoryPendingFlowStore, InvalidOrExpiredFlowError, StateMismatchError, BrowserBindingRequiredError, TokenExchangeError, ProtectedResourceMetadataError, AgentVanishedDuringFlowError, ConfidentialClientNotAllowedError, DEFAULT_WEB_FLOW_TTL_MS, type PendingWebFlow, type PendingWebFlowStore, type PendingFlowStore, type StartWebFlowOptions, type StartWebFlowResult, type CompleteWebFlowOptions, type CompleteWebFlowResult, } from './web-flow';
37
+ export { startWebOAuthFlow, completeWebOAuthFlow, safeReturnTo, InMemoryPendingFlowStore, InvalidOrExpiredFlowError, StateMismatchError, BrowserBindingRequiredError, TokenExchangeError, ProtectedResourceMetadataError, AgentVanishedDuringFlowError, AgentChangedDuringFlowError, ConfidentialClientNotAllowedError, DEFAULT_WEB_FLOW_TTL_MS, type PendingWebFlow, type PendingWebFlowStore, type PendingFlowStore, type StartWebFlowOptions, type StartWebFlowResult, type CompleteWebFlowOptions, type CompleteWebFlowResult, } from './web-flow';
38
38
  export { MCPOAuthProvider } from './MCPOAuthProvider';
39
39
  import { MCPOAuthProvider } from './MCPOAuthProvider';
40
40
  import type { OAuthClientMetadata, OAuthConfigStorage, AgentConfig } from './types';
@@ -85,6 +85,8 @@ export declare function createCLIOAuthProvider(agent: AgentConfig, options?: {
85
85
  quiet?: boolean;
86
86
  /** Storage for persisting agent config */
87
87
  storage?: OAuthConfigStorage;
88
+ /** Operator RFC 8707 override; `null` returns to metadata discovery. */
89
+ resourceOverride?: string | null;
88
90
  /**
89
91
  * Allow non-HTTPS resource URLs advertised in RFC 9728 protected-resource
90
92
  * metadata. Mirrors the CLI's `--allow-http` flag. Defaults to `false`.
@@ -108,6 +110,8 @@ export declare function createNonInteractiveOAuthProvider(agent: AgentConfig, op
108
110
  clientMetadata?: Partial<OAuthClientMetadata>;
109
111
  /** Storage for persisting refreshed tokens back to disk. */
110
112
  storage?: OAuthConfigStorage;
113
+ /** Operator RFC 8707 override reused during refresh; `null` disables it. */
114
+ resourceOverride?: string | null;
111
115
  /**
112
116
  * Allow non-HTTPS resource URLs advertised in RFC 9728 protected-resource
113
117
  * metadata. Mirrors the CLI's `--allow-http` flag. Defaults to `false`.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/auth/oauth/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/auth/oauth/index.ts"],"names":[],"mappings":"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"}
@@ -19,6 +19,7 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
19
19
  var oauth_exports = {};
20
20
  __export(oauth_exports, {
21
21
  AUTH_DIAGNOSIS_SCHEMA_VERSION: () => import_diagnose.AUTH_DIAGNOSIS_SCHEMA_VERSION,
22
+ AgentChangedDuringFlowError: () => import_web_flow.AgentChangedDuringFlowError,
22
23
  AgentVanishedDuringFlowError: () => import_web_flow.AgentVanishedDuringFlowError,
23
24
  BrowserBindingRequiredError: () => import_web_flow.BrowserBindingRequiredError,
24
25
  CLIFlowHandler: () => import_CLIFlowHandler.CLIFlowHandler,
@@ -108,6 +109,7 @@ function createCLIOAuthProvider(agent, options) {
108
109
  agent,
109
110
  flowHandler,
110
111
  storage: options?.storage,
112
+ resourceOverride: options?.resourceOverride,
111
113
  clientMetadata,
112
114
  allowHttp: options?.allowHttp
113
115
  });
@@ -123,6 +125,7 @@ function createNonInteractiveOAuthProvider(agent, options) {
123
125
  agent,
124
126
  flowHandler,
125
127
  storage: options?.storage,
128
+ resourceOverride: options?.resourceOverride,
126
129
  clientMetadata,
127
130
  allowHttp: options?.allowHttp
128
131
  });
@@ -162,6 +165,7 @@ function getEffectiveAuthToken(agent) {
162
165
  // Annotate the CommonJS export names for ESM import in node:
163
166
  0 && (module.exports = {
164
167
  AUTH_DIAGNOSIS_SCHEMA_VERSION,
168
+ AgentChangedDuringFlowError,
165
169
  AgentVanishedDuringFlowError,
166
170
  BrowserBindingRequiredError,
167
171
  CLIFlowHandler,