@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
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/lib/auth/oauth/index.ts"],"sourcesContent":["/**\n * OAuth module for MCP authentication\n *\n * OAuth tokens are stored directly in AgentConfig, same as static auth tokens.\n *\n * @example\n * ```typescript\n * import { MCPOAuthProvider, CLIFlowHandler } from '@adcp/sdk';\n *\n * // Agent config - tokens will be stored here\n * const agent: AgentConfig = {\n * id: 'my-agent',\n * name: 'My Agent',\n * agent_uri: 'https://agent.example.com/mcp',\n * protocol: 'mcp',\n * // After OAuth flow completes:\n * // oauth_tokens: { access_token: '...', refresh_token: '...' }\n * };\n *\n * // Create provider with CLI flow handler\n * const provider = new MCPOAuthProvider({\n * agent,\n * flowHandler: new CLIFlowHandler(),\n * storage: myConfigStorage // Optional: persists tokens to file/db\n * });\n *\n * // Use with MCP transport\n * const transport = new StreamableHTTPClientTransport(url, {\n * authProvider: provider\n * });\n * ```\n */\n\n// Types\nexport type {\n OAuthFlowHandler,\n OAuthProviderConfig,\n OAuthConfigStorage,\n OAuthClientInformation,\n OAuthClientInformationFull,\n OAuthClientMetadata,\n OAuthTokens,\n AgentConfig,\n AgentOAuthTokens,\n AgentOAuthClient,\n} from './types';\n\nexport {\n DEFAULT_CLIENT_METADATA,\n OAuthError,\n OAuthCancelledError,\n OAuthTimeoutError,\n toMCPTokens,\n fromMCPTokens,\n toMCPClientInfo,\n fromMCPClientInfo,\n} from './types';\n\n// Flow handlers\nexport { CLIFlowHandler, type CLIFlowHandlerConfig } from './CLIFlowHandler';\nexport { NonInteractiveFlowHandler, type NonInteractiveFlowHandlerConfig } from './NonInteractiveFlowHandler';\n\n// Web (server-side) OAuth flow — companion to CLIFlowHandler for environments\n// where /oauth/start and /oauth/callback may be served by different processes.\n// Note: standalone functions, NOT a class implementing OAuthFlowHandler — see\n// docs/guides/WEB-OAUTH.md for the rationale (the contract spans two requests).\nexport {\n startWebOAuthFlow,\n completeWebOAuthFlow,\n safeReturnTo,\n InMemoryPendingFlowStore,\n InvalidOrExpiredFlowError,\n StateMismatchError,\n BrowserBindingRequiredError,\n TokenExchangeError,\n ProtectedResourceMetadataError,\n AgentVanishedDuringFlowError,\n ConfidentialClientNotAllowedError,\n DEFAULT_WEB_FLOW_TTL_MS,\n type PendingWebFlow,\n type PendingWebFlowStore,\n type PendingFlowStore,\n type StartWebFlowOptions,\n type StartWebFlowResult,\n type CompleteWebFlowOptions,\n type CompleteWebFlowResult,\n} from './web-flow';\n\n// Main provider\nexport { MCPOAuthProvider } from './MCPOAuthProvider';\n\n// ========================================\n// Convenience factory functions\n// ========================================\n\nimport { MCPOAuthProvider } from './MCPOAuthProvider';\nimport { CLIFlowHandler, type CLIFlowHandlerConfig } from './CLIFlowHandler';\nimport { NonInteractiveFlowHandler } from './NonInteractiveFlowHandler';\nimport type { OAuthClientMetadata, OAuthConfigStorage, AgentConfig } from './types';\nimport { DEFAULT_CLIENT_METADATA } from './types';\n\n/**\n * Create an OAuth provider for CLI usage\n *\n * @param agent Agent configuration (tokens stored here)\n * @param options Optional configuration\n * @returns Configured OAuth provider\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 * };\n *\n * const provider = createCLIOAuthProvider(agent);\n *\n * const transport = new StreamableHTTPClientTransport(url, {\n * authProvider: provider\n * });\n *\n * try {\n * await client.connect(transport);\n * } catch (error) {\n * if (error instanceof UnauthorizedError) {\n * const code = await provider.waitForCallback();\n * await transport.finishAuth(code);\n * await client.connect(transport);\n * }\n * }\n *\n * // After successful auth, agent.oauth_tokens is populated\n * console.log(agent.oauth_tokens);\n * ```\n */\nexport function createCLIOAuthProvider(\n agent: AgentConfig,\n options?: {\n /** Callback port (default: 8766) */\n callbackPort?: number;\n /** Auth timeout in ms (default: 300000 = 5 min) */\n timeout?: number;\n /** Custom client metadata overrides */\n clientMetadata?: Partial<OAuthClientMetadata>;\n /** Suppress console output */\n quiet?: boolean;\n /** Storage for persisting agent config */\n storage?: OAuthConfigStorage;\n /**\n * Allow non-HTTPS resource URLs advertised in RFC 9728 protected-resource\n * metadata. Mirrors the CLI's `--allow-http` flag. Defaults to `false`.\n */\n allowHttp?: boolean;\n }\n): MCPOAuthProvider {\n const flowConfig: CLIFlowHandlerConfig = {\n callbackPort: options?.callbackPort,\n timeout: options?.timeout,\n quiet: options?.quiet,\n };\n const flowHandler = new CLIFlowHandler(flowConfig);\n\n // Build complete client metadata\n const clientMetadata: OAuthClientMetadata = {\n ...DEFAULT_CLIENT_METADATA,\n redirect_uris: [flowHandler.getRedirectUrl().toString()],\n ...options?.clientMetadata,\n };\n\n return new MCPOAuthProvider({\n agent,\n flowHandler,\n storage: options?.storage,\n clientMetadata,\n allowHttp: options?.allowHttp,\n });\n}\n\n/**\n * Create an OAuth provider that uses and auto-refreshes saved tokens but\n * refuses to start a new interactive browser flow. Use this for storyboard\n * runs, scheduled jobs, and other non-interactive contexts where you've\n * already saved tokens via `createCLIOAuthProvider`.\n *\n * If refresh fails (e.g., the refresh_token is revoked or expired), the\n * MCP SDK will throw `UnauthorizedError` at call time — the caller should\n * treat that as a signal to run `adcp --save-auth <alias> --oauth` and retry.\n */\nexport function createNonInteractiveOAuthProvider(\n agent: AgentConfig,\n options?: {\n /** Hint shown in error messages if an interactive flow is attempted. */\n agentHint?: string;\n /** Custom client metadata overrides (inherited from saved registration in practice). */\n clientMetadata?: Partial<OAuthClientMetadata>;\n /** Storage for persisting refreshed tokens back to disk. */\n storage?: OAuthConfigStorage;\n /**\n * Allow non-HTTPS resource URLs advertised in RFC 9728 protected-resource\n * metadata. Mirrors the CLI's `--allow-http` flag. Defaults to `false`.\n */\n allowHttp?: boolean;\n }\n): MCPOAuthProvider {\n const flowHandler = new NonInteractiveFlowHandler({ agentHint: options?.agentHint });\n\n const clientMetadata: OAuthClientMetadata = {\n ...DEFAULT_CLIENT_METADATA,\n redirect_uris: [flowHandler.getRedirectUrl().toString()],\n ...options?.clientMetadata,\n };\n\n return new MCPOAuthProvider({\n agent,\n flowHandler,\n storage: options?.storage,\n clientMetadata,\n allowHttp: options?.allowHttp,\n });\n}\n\n/**\n * Check if an error indicates OAuth is required\n */\nexport function isOAuthRequired(error: unknown): boolean {\n if (error instanceof Error) {\n if (error.name === 'UnauthorizedError') return true;\n const msg = error.message.toLowerCase();\n if (msg.includes('unauthorized') || msg.includes('authentication required') || msg.includes('oauth')) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * Check if an agent has valid OAuth tokens\n */\nexport function hasValidOAuthTokens(agent: AgentConfig): boolean {\n const tokens = agent.oauth_tokens;\n if (!tokens?.access_token) return false;\n\n if (tokens.expires_at) {\n const expiresAt = new Date(tokens.expires_at);\n // 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 * Clear OAuth tokens from an agent config\n */\nexport function clearOAuthTokens(agent: AgentConfig): void {\n delete agent.oauth_tokens;\n delete agent.oauth_client;\n delete agent.oauth_code_verifier;\n}\n\n/**\n * Get the effective auth token for an agent\n * Returns OAuth access_token if available, otherwise static auth_token\n */\nexport function getEffectiveAuthToken(agent: AgentConfig): string | undefined {\n // Prefer OAuth if available and valid\n if (hasValidOAuthTokens(agent)) {\n return agent.oauth_tokens!.access_token;\n }\n // Fall back to static token\n return agent.auth_token;\n}\n\n// OAuth discovery\nexport {\n discoverOAuthMetadata,\n supportsOAuth,\n supportsDynamicRegistration,\n type OAuthMetadata,\n type DiscoveryOptions,\n} from './discovery';\n\n// Diagnostics utilities — for `adcp diagnose-auth` and consumer introspection\nexport {\n parseWWWAuthenticate,\n decodeAccessTokenClaims,\n validateTokenAudience,\n type WWWAuthenticateChallenge,\n type DecodedJWTHeader,\n type DecodedJWTClaims,\n type DecodedAccessToken,\n type TokenAudienceResult,\n} from './diagnostics';\n\n// End-to-end OAuth handshake diagnosis (powers `adcp diagnose-auth`)\nexport {\n runAuthDiagnosis,\n AUTH_DIAGNOSIS_SCHEMA_VERSION,\n type DiagnoseOptions,\n type HttpCapture,\n type DiagnosisStep,\n type Hypothesis,\n type HypothesisVerdict,\n type AuthDiagnosisReport,\n} from './diagnose';\n\n// Zero-config authorization discovery + actionable error type.\n// Raised automatically by `ProtocolClient.callTool` when an MCP agent returns\n// a 401 Bearer challenge and the caller has no saved tokens.\nexport {\n NeedsAuthorizationError,\n discoverAuthorizationRequirements,\n probeAuthChallenge,\n type AuthorizationRequirements,\n type DiscoverAuthorizationOptions,\n} from './authorization-required';\n\n// File-backed `OAuthConfigStorage` implementation (agents.json format).\nexport { createFileOAuthStorage, type FileOAuthStorageOptions } from './file-storage';\n\n// OAuth 2.0 client credentials grant (RFC 6749 §4.4) for machine-to-machine\n// token exchange. Used by the CLI for automated compliance runs where there\n// is no user to walk through an authorization-code flow.\nexport {\n exchangeClientCredentials,\n ensureClientCredentialsTokens,\n ClientCredentialsExchangeError,\n type ExchangeClientCredentialsOptions,\n type EnsureClientCredentialsOptions,\n} from './ClientCredentialsFlow';\n\n// `$ENV:VAR` indirection for client credentials so secrets can live in env\n// vars (CI) rather than on disk in the agent config.\nexport {\n resolveSecret,\n isEnvSecretReference,\n toEnvSecretReference,\n extractEnvSecretName,\n MissingEnvSecretError,\n} from './secret-resolver';\n\n// Type re-export — the credentials struct itself lives in the ADCP core types\n// module alongside `AgentOAuthTokens` / `AgentOAuthClient`.\nexport type { AgentOAuthClientCredentials } from '../../types/adcp';\n\n// Per-agent storage binding — the bridge that lets `callTool` pick up the\n// caller's chosen `OAuthConfigStorage` without a signature change.\nexport { bindAgentStorage, getAgentStorage, unbindAgentStorage } from './storage-registry';\n\n// Re-exported MCP SDK OAuth error types so consumers can discriminate 401 causes\n// without string-matching on error messages. These originate from the MCP server\n// auth module but are the canonical OAuth error classes for client-side handling too.\nexport { InvalidTokenError, InsufficientScopeError } from '@modelcontextprotocol/sdk/server/auth/errors.js';\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA+CA,mBASO;AAGP,4BAA0D;AAC1D,uCAAgF;AAMhF,sBAoBO;AAGP,8BAAiC;AAMjC,IAAAA,2BAAiC;AACjC,IAAAC,yBAA0D;AAC1D,IAAAC,oCAA0C;AAE1C,IAAAC,gBAAwC;AAmLxC,uBAMO;AAGP,yBASO;AAGP,sBASO;AAKP,oCAMO;AAGP,0BAAqE;AAKrE,mCAMO;AAIP,6BAMO;AAQP,8BAAsE;AAKtE,oBAA0D;AA3NnD,SAAS,uBACd,OACA,SAiBkB;AAClB,QAAM,aAAmC;AAAA,IACvC,cAAc,SAAS;AAAA,IACvB,SAAS,SAAS;AAAA,IAClB,OAAO,SAAS;AAAA,EAClB;AACA,QAAM,cAAc,IAAI,sCAAe,UAAU;AAGjD,QAAM,iBAAsC;AAAA,IAC1C,GAAG;AAAA,IACH,eAAe,CAAC,YAAY,eAAe,EAAE,SAAS,CAAC;AAAA,IACvD,GAAG,SAAS;AAAA,EACd;AAEA,SAAO,IAAI,0CAAiB;AAAA,IAC1B;AAAA,IACA;AAAA,IACA,SAAS,SAAS;AAAA,IAClB;AAAA,IACA,WAAW,SAAS;AAAA,EACtB,CAAC;AACH;AAYO,SAAS,kCACd,OACA,SAakB;AAClB,QAAM,cAAc,IAAI,4DAA0B,EAAE,WAAW,SAAS,UAAU,CAAC;AAEnF,QAAM,iBAAsC;AAAA,IAC1C,GAAG;AAAA,IACH,eAAe,CAAC,YAAY,eAAe,EAAE,SAAS,CAAC;AAAA,IACvD,GAAG,SAAS;AAAA,EACd;AAEA,SAAO,IAAI,0CAAiB;AAAA,IAC1B;AAAA,IACA;AAAA,IACA,SAAS,SAAS;AAAA,IAClB;AAAA,IACA,WAAW,SAAS;AAAA,EACtB,CAAC;AACH;AAKO,SAAS,gBAAgB,OAAyB;AACvD,MAAI,iBAAiB,OAAO;AAC1B,QAAI,MAAM,SAAS,oBAAqB,QAAO;AAC/C,UAAM,MAAM,MAAM,QAAQ,YAAY;AACtC,QAAI,IAAI,SAAS,cAAc,KAAK,IAAI,SAAS,yBAAyB,KAAK,IAAI,SAAS,OAAO,GAAG;AACpG,aAAO;AAAA,IACT;AAAA,EACF;AACA,SAAO;AACT;AAKO,SAAS,oBAAoB,OAA6B;AAC/D,QAAM,SAAS,MAAM;AACrB,MAAI,CAAC,QAAQ,aAAc,QAAO;AAElC,MAAI,OAAO,YAAY;AACrB,UAAM,YAAY,IAAI,KAAK,OAAO,UAAU;AAE5C,QAAI,UAAU,QAAQ,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,KAAM;AACpD,aAAO;AAAA,IACT;AAAA,EACF;AAEA,SAAO;AACT;AAKO,SAAS,iBAAiB,OAA0B;AACzD,SAAO,MAAM;AACb,SAAO,MAAM;AACb,SAAO,MAAM;AACf;AAMO,SAAS,sBAAsB,OAAwC;AAE5E,MAAI,oBAAoB,KAAK,GAAG;AAC9B,WAAO,MAAM,aAAc;AAAA,EAC7B;AAEA,SAAO,MAAM;AACf;","names":["import_MCPOAuthProvider","import_CLIFlowHandler","import_NonInteractiveFlowHandler","import_types"]}
1
+ {"version":3,"sources":["../../../../src/lib/auth/oauth/index.ts"],"sourcesContent":["/**\n * OAuth module for MCP authentication\n *\n * OAuth tokens are stored directly in AgentConfig, same as static auth tokens.\n *\n * @example\n * ```typescript\n * import { MCPOAuthProvider, CLIFlowHandler } from '@adcp/sdk';\n *\n * // Agent config - tokens will be stored here\n * const agent: AgentConfig = {\n * id: 'my-agent',\n * name: 'My Agent',\n * agent_uri: 'https://agent.example.com/mcp',\n * protocol: 'mcp',\n * // After OAuth flow completes:\n * // oauth_tokens: { access_token: '...', refresh_token: '...' }\n * };\n *\n * // Create provider with CLI flow handler\n * const provider = new MCPOAuthProvider({\n * agent,\n * flowHandler: new CLIFlowHandler(),\n * storage: myConfigStorage // Optional: persists tokens to file/db\n * });\n *\n * // Use with MCP transport\n * const transport = new StreamableHTTPClientTransport(url, {\n * authProvider: provider\n * });\n * ```\n */\n\n// Types\nexport type {\n OAuthFlowHandler,\n OAuthProviderConfig,\n OAuthConfigStorage,\n OAuthClientInformation,\n OAuthClientInformationFull,\n OAuthClientMetadata,\n OAuthTokens,\n AgentConfig,\n AgentOAuthTokens,\n AgentOAuthClient,\n} from './types';\n\nexport {\n DEFAULT_CLIENT_METADATA,\n OAuthError,\n OAuthCancelledError,\n OAuthTimeoutError,\n toMCPTokens,\n fromMCPTokens,\n toMCPClientInfo,\n fromMCPClientInfo,\n} from './types';\n\n// Flow handlers\nexport { CLIFlowHandler, type CLIFlowHandlerConfig } from './CLIFlowHandler';\nexport { NonInteractiveFlowHandler, type NonInteractiveFlowHandlerConfig } from './NonInteractiveFlowHandler';\n\n// Web (server-side) OAuth flow — companion to CLIFlowHandler for environments\n// where /oauth/start and /oauth/callback may be served by different processes.\n// Note: standalone functions, NOT a class implementing OAuthFlowHandler — see\n// docs/guides/WEB-OAUTH.md for the rationale (the contract spans two requests).\nexport {\n startWebOAuthFlow,\n completeWebOAuthFlow,\n safeReturnTo,\n InMemoryPendingFlowStore,\n InvalidOrExpiredFlowError,\n StateMismatchError,\n BrowserBindingRequiredError,\n TokenExchangeError,\n ProtectedResourceMetadataError,\n AgentVanishedDuringFlowError,\n AgentChangedDuringFlowError,\n ConfidentialClientNotAllowedError,\n DEFAULT_WEB_FLOW_TTL_MS,\n type PendingWebFlow,\n type PendingWebFlowStore,\n type PendingFlowStore,\n type StartWebFlowOptions,\n type StartWebFlowResult,\n type CompleteWebFlowOptions,\n type CompleteWebFlowResult,\n} from './web-flow';\n\n// Main provider\nexport { MCPOAuthProvider } from './MCPOAuthProvider';\n\n// ========================================\n// Convenience factory functions\n// ========================================\n\nimport { MCPOAuthProvider } from './MCPOAuthProvider';\nimport { CLIFlowHandler, type CLIFlowHandlerConfig } from './CLIFlowHandler';\nimport { NonInteractiveFlowHandler } from './NonInteractiveFlowHandler';\nimport type { OAuthClientMetadata, OAuthConfigStorage, AgentConfig } from './types';\nimport { DEFAULT_CLIENT_METADATA } from './types';\n\n/**\n * Create an OAuth provider for CLI usage\n *\n * @param agent Agent configuration (tokens stored here)\n * @param options Optional configuration\n * @returns Configured OAuth provider\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 * };\n *\n * const provider = createCLIOAuthProvider(agent);\n *\n * const transport = new StreamableHTTPClientTransport(url, {\n * authProvider: provider\n * });\n *\n * try {\n * await client.connect(transport);\n * } catch (error) {\n * if (error instanceof UnauthorizedError) {\n * const code = await provider.waitForCallback();\n * await transport.finishAuth(code);\n * await client.connect(transport);\n * }\n * }\n *\n * // After successful auth, agent.oauth_tokens is populated\n * console.log(agent.oauth_tokens);\n * ```\n */\nexport function createCLIOAuthProvider(\n agent: AgentConfig,\n options?: {\n /** Callback port (default: 8766) */\n callbackPort?: number;\n /** Auth timeout in ms (default: 300000 = 5 min) */\n timeout?: number;\n /** Custom client metadata overrides */\n clientMetadata?: Partial<OAuthClientMetadata>;\n /** Suppress console output */\n quiet?: boolean;\n /** Storage for persisting agent config */\n storage?: OAuthConfigStorage;\n /** Operator RFC 8707 override; `null` returns to metadata discovery. */\n resourceOverride?: string | null;\n /**\n * Allow non-HTTPS resource URLs advertised in RFC 9728 protected-resource\n * metadata. Mirrors the CLI's `--allow-http` flag. Defaults to `false`.\n */\n allowHttp?: boolean;\n }\n): MCPOAuthProvider {\n const flowConfig: CLIFlowHandlerConfig = {\n callbackPort: options?.callbackPort,\n timeout: options?.timeout,\n quiet: options?.quiet,\n };\n const flowHandler = new CLIFlowHandler(flowConfig);\n\n // Build complete client metadata\n const clientMetadata: OAuthClientMetadata = {\n ...DEFAULT_CLIENT_METADATA,\n redirect_uris: [flowHandler.getRedirectUrl().toString()],\n ...options?.clientMetadata,\n };\n\n return new MCPOAuthProvider({\n agent,\n flowHandler,\n storage: options?.storage,\n resourceOverride: options?.resourceOverride,\n clientMetadata,\n allowHttp: options?.allowHttp,\n });\n}\n\n/**\n * Create an OAuth provider that uses and auto-refreshes saved tokens but\n * refuses to start a new interactive browser flow. Use this for storyboard\n * runs, scheduled jobs, and other non-interactive contexts where you've\n * already saved tokens via `createCLIOAuthProvider`.\n *\n * If refresh fails (e.g., the refresh_token is revoked or expired), the\n * MCP SDK will throw `UnauthorizedError` at call time — the caller should\n * treat that as a signal to run `adcp --save-auth <alias> --oauth` and retry.\n */\nexport function createNonInteractiveOAuthProvider(\n agent: AgentConfig,\n options?: {\n /** Hint shown in error messages if an interactive flow is attempted. */\n agentHint?: string;\n /** Custom client metadata overrides (inherited from saved registration in practice). */\n clientMetadata?: Partial<OAuthClientMetadata>;\n /** Storage for persisting refreshed tokens back to disk. */\n storage?: OAuthConfigStorage;\n /** Operator RFC 8707 override reused during refresh; `null` disables it. */\n resourceOverride?: string | null;\n /**\n * Allow non-HTTPS resource URLs advertised in RFC 9728 protected-resource\n * metadata. Mirrors the CLI's `--allow-http` flag. Defaults to `false`.\n */\n allowHttp?: boolean;\n }\n): MCPOAuthProvider {\n const flowHandler = new NonInteractiveFlowHandler({ agentHint: options?.agentHint });\n\n const clientMetadata: OAuthClientMetadata = {\n ...DEFAULT_CLIENT_METADATA,\n redirect_uris: [flowHandler.getRedirectUrl().toString()],\n ...options?.clientMetadata,\n };\n\n return new MCPOAuthProvider({\n agent,\n flowHandler,\n storage: options?.storage,\n resourceOverride: options?.resourceOverride,\n clientMetadata,\n allowHttp: options?.allowHttp,\n });\n}\n\n/**\n * Check if an error indicates OAuth is required\n */\nexport function isOAuthRequired(error: unknown): boolean {\n if (error instanceof Error) {\n if (error.name === 'UnauthorizedError') return true;\n const msg = error.message.toLowerCase();\n if (msg.includes('unauthorized') || msg.includes('authentication required') || msg.includes('oauth')) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * Check if an agent has valid OAuth tokens\n */\nexport function hasValidOAuthTokens(agent: AgentConfig): boolean {\n const tokens = agent.oauth_tokens;\n if (!tokens?.access_token) return false;\n\n if (tokens.expires_at) {\n const expiresAt = new Date(tokens.expires_at);\n // 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 * Clear OAuth tokens from an agent config\n */\nexport function clearOAuthTokens(agent: AgentConfig): void {\n delete agent.oauth_tokens;\n delete agent.oauth_client;\n delete agent.oauth_code_verifier;\n}\n\n/**\n * Get the effective auth token for an agent\n * Returns OAuth access_token if available, otherwise static auth_token\n */\nexport function getEffectiveAuthToken(agent: AgentConfig): string | undefined {\n // Prefer OAuth if available and valid\n if (hasValidOAuthTokens(agent)) {\n return agent.oauth_tokens!.access_token;\n }\n // Fall back to static token\n return agent.auth_token;\n}\n\n// OAuth discovery\nexport {\n discoverOAuthMetadata,\n supportsOAuth,\n supportsDynamicRegistration,\n type OAuthMetadata,\n type DiscoveryOptions,\n} from './discovery';\n\n// Diagnostics utilities — for `adcp diagnose-auth` and consumer introspection\nexport {\n parseWWWAuthenticate,\n decodeAccessTokenClaims,\n validateTokenAudience,\n type WWWAuthenticateChallenge,\n type DecodedJWTHeader,\n type DecodedJWTClaims,\n type DecodedAccessToken,\n type TokenAudienceResult,\n} from './diagnostics';\n\n// End-to-end OAuth handshake diagnosis (powers `adcp diagnose-auth`)\nexport {\n runAuthDiagnosis,\n AUTH_DIAGNOSIS_SCHEMA_VERSION,\n type DiagnoseOptions,\n type HttpCapture,\n type DiagnosisStep,\n type Hypothesis,\n type HypothesisVerdict,\n type AuthDiagnosisReport,\n} from './diagnose';\n\n// Zero-config authorization discovery + actionable error type.\n// Raised automatically by `ProtocolClient.callTool` when an MCP agent returns\n// a 401 Bearer challenge and the caller has no saved tokens.\nexport {\n NeedsAuthorizationError,\n discoverAuthorizationRequirements,\n probeAuthChallenge,\n type AuthorizationRequirements,\n type DiscoverAuthorizationOptions,\n} from './authorization-required';\n\n// File-backed `OAuthConfigStorage` implementation (agents.json format).\nexport { createFileOAuthStorage, type FileOAuthStorageOptions } from './file-storage';\n\n// OAuth 2.0 client credentials grant (RFC 6749 §4.4) for machine-to-machine\n// token exchange. Used by the CLI for automated compliance runs where there\n// is no user to walk through an authorization-code flow.\nexport {\n exchangeClientCredentials,\n ensureClientCredentialsTokens,\n ClientCredentialsExchangeError,\n type ExchangeClientCredentialsOptions,\n type EnsureClientCredentialsOptions,\n} from './ClientCredentialsFlow';\n\n// `$ENV:VAR` indirection for client credentials so secrets can live in env\n// vars (CI) rather than on disk in the agent config.\nexport {\n resolveSecret,\n isEnvSecretReference,\n toEnvSecretReference,\n extractEnvSecretName,\n MissingEnvSecretError,\n} from './secret-resolver';\n\n// Type re-export — the credentials struct itself lives in the ADCP core types\n// module alongside `AgentOAuthTokens` / `AgentOAuthClient`.\nexport type { AgentOAuthClientCredentials } from '../../types/adcp';\n\n// Per-agent storage binding — the bridge that lets `callTool` pick up the\n// caller's chosen `OAuthConfigStorage` without a signature change.\nexport { bindAgentStorage, getAgentStorage, unbindAgentStorage } from './storage-registry';\n\n// Re-exported MCP SDK OAuth error types so consumers can discriminate 401 causes\n// without string-matching on error messages. These originate from the MCP server\n// auth module but are the canonical OAuth error classes for client-side handling too.\nexport { InvalidTokenError, InsufficientScopeError } from '@modelcontextprotocol/sdk/server/auth/errors.js';\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA+CA,mBASO;AAGP,4BAA0D;AAC1D,uCAAgF;AAMhF,sBAqBO;AAGP,8BAAiC;AAMjC,IAAAA,2BAAiC;AACjC,IAAAC,yBAA0D;AAC1D,IAAAC,oCAA0C;AAE1C,IAAAC,gBAAwC;AAyLxC,uBAMO;AAGP,yBASO;AAGP,sBASO;AAKP,oCAMO;AAGP,0BAAqE;AAKrE,mCAMO;AAIP,6BAMO;AAQP,8BAAsE;AAKtE,oBAA0D;AAjOnD,SAAS,uBACd,OACA,SAmBkB;AAClB,QAAM,aAAmC;AAAA,IACvC,cAAc,SAAS;AAAA,IACvB,SAAS,SAAS;AAAA,IAClB,OAAO,SAAS;AAAA,EAClB;AACA,QAAM,cAAc,IAAI,sCAAe,UAAU;AAGjD,QAAM,iBAAsC;AAAA,IAC1C,GAAG;AAAA,IACH,eAAe,CAAC,YAAY,eAAe,EAAE,SAAS,CAAC;AAAA,IACvD,GAAG,SAAS;AAAA,EACd;AAEA,SAAO,IAAI,0CAAiB;AAAA,IAC1B;AAAA,IACA;AAAA,IACA,SAAS,SAAS;AAAA,IAClB,kBAAkB,SAAS;AAAA,IAC3B;AAAA,IACA,WAAW,SAAS;AAAA,EACtB,CAAC;AACH;AAYO,SAAS,kCACd,OACA,SAekB;AAClB,QAAM,cAAc,IAAI,4DAA0B,EAAE,WAAW,SAAS,UAAU,CAAC;AAEnF,QAAM,iBAAsC;AAAA,IAC1C,GAAG;AAAA,IACH,eAAe,CAAC,YAAY,eAAe,EAAE,SAAS,CAAC;AAAA,IACvD,GAAG,SAAS;AAAA,EACd;AAEA,SAAO,IAAI,0CAAiB;AAAA,IAC1B;AAAA,IACA;AAAA,IACA,SAAS,SAAS;AAAA,IAClB,kBAAkB,SAAS;AAAA,IAC3B;AAAA,IACA,WAAW,SAAS;AAAA,EACtB,CAAC;AACH;AAKO,SAAS,gBAAgB,OAAyB;AACvD,MAAI,iBAAiB,OAAO;AAC1B,QAAI,MAAM,SAAS,oBAAqB,QAAO;AAC/C,UAAM,MAAM,MAAM,QAAQ,YAAY;AACtC,QAAI,IAAI,SAAS,cAAc,KAAK,IAAI,SAAS,yBAAyB,KAAK,IAAI,SAAS,OAAO,GAAG;AACpG,aAAO;AAAA,IACT;AAAA,EACF;AACA,SAAO;AACT;AAKO,SAAS,oBAAoB,OAA6B;AAC/D,QAAM,SAAS,MAAM;AACrB,MAAI,CAAC,QAAQ,aAAc,QAAO;AAElC,MAAI,OAAO,YAAY;AACrB,UAAM,YAAY,IAAI,KAAK,OAAO,UAAU;AAE5C,QAAI,UAAU,QAAQ,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,KAAM;AACpD,aAAO;AAAA,IACT;AAAA,EACF;AAEA,SAAO;AACT;AAKO,SAAS,iBAAiB,OAA0B;AACzD,SAAO,MAAM;AACb,SAAO,MAAM;AACb,SAAO,MAAM;AACf;AAMO,SAAS,sBAAsB,OAAwC;AAE5E,MAAI,oBAAoB,KAAK,GAAG;AAC9B,WAAO,MAAM,aAAc;AAAA,EAC7B;AAEA,SAAO,MAAM;AACf;","names":["import_MCPOAuthProvider","import_CLIFlowHandler","import_NonInteractiveFlowHandler","import_types"]}
@@ -21,6 +21,7 @@ import {
21
21
  TokenExchangeError,
22
22
  ProtectedResourceMetadataError,
23
23
  AgentVanishedDuringFlowError,
24
+ AgentChangedDuringFlowError,
24
25
  ConfidentialClientNotAllowedError,
25
26
  DEFAULT_WEB_FLOW_TTL_MS
26
27
  } from "./web-flow.mjs";
@@ -45,6 +46,7 @@ function createCLIOAuthProvider(agent, options) {
45
46
  agent,
46
47
  flowHandler,
47
48
  storage: options?.storage,
49
+ resourceOverride: options?.resourceOverride,
48
50
  clientMetadata,
49
51
  allowHttp: options?.allowHttp
50
52
  });
@@ -60,6 +62,7 @@ function createNonInteractiveOAuthProvider(agent, options) {
60
62
  agent,
61
63
  flowHandler,
62
64
  storage: options?.storage,
65
+ resourceOverride: options?.resourceOverride,
63
66
  clientMetadata,
64
67
  allowHttp: options?.allowHttp
65
68
  });
@@ -132,6 +135,7 @@ import { bindAgentStorage, getAgentStorage, unbindAgentStorage } from "./storage
132
135
  import { InvalidTokenError, InsufficientScopeError } from "@modelcontextprotocol/sdk/server/auth/errors.js";
133
136
  export {
134
137
  AUTH_DIAGNOSIS_SCHEMA_VERSION,
138
+ AgentChangedDuringFlowError,
135
139
  AgentVanishedDuringFlowError,
136
140
  BrowserBindingRequiredError,
137
141
  CLIFlowHandler,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/lib/auth/oauth/index.ts"],"sourcesContent":["/**\n * OAuth module for MCP authentication\n *\n * OAuth tokens are stored directly in AgentConfig, same as static auth tokens.\n *\n * @example\n * ```typescript\n * import { MCPOAuthProvider, CLIFlowHandler } from '@adcp/sdk';\n *\n * // Agent config - tokens will be stored here\n * const agent: AgentConfig = {\n * id: 'my-agent',\n * name: 'My Agent',\n * agent_uri: 'https://agent.example.com/mcp',\n * protocol: 'mcp',\n * // After OAuth flow completes:\n * // oauth_tokens: { access_token: '...', refresh_token: '...' }\n * };\n *\n * // Create provider with CLI flow handler\n * const provider = new MCPOAuthProvider({\n * agent,\n * flowHandler: new CLIFlowHandler(),\n * storage: myConfigStorage // Optional: persists tokens to file/db\n * });\n *\n * // Use with MCP transport\n * const transport = new StreamableHTTPClientTransport(url, {\n * authProvider: provider\n * });\n * ```\n */\n\n// Types\nexport type {\n OAuthFlowHandler,\n OAuthProviderConfig,\n OAuthConfigStorage,\n OAuthClientInformation,\n OAuthClientInformationFull,\n OAuthClientMetadata,\n OAuthTokens,\n AgentConfig,\n AgentOAuthTokens,\n AgentOAuthClient,\n} from './types';\n\nexport {\n DEFAULT_CLIENT_METADATA,\n OAuthError,\n OAuthCancelledError,\n OAuthTimeoutError,\n toMCPTokens,\n fromMCPTokens,\n toMCPClientInfo,\n fromMCPClientInfo,\n} from './types';\n\n// Flow handlers\nexport { CLIFlowHandler, type CLIFlowHandlerConfig } from './CLIFlowHandler';\nexport { NonInteractiveFlowHandler, type NonInteractiveFlowHandlerConfig } from './NonInteractiveFlowHandler';\n\n// Web (server-side) OAuth flow — companion to CLIFlowHandler for environments\n// where /oauth/start and /oauth/callback may be served by different processes.\n// Note: standalone functions, NOT a class implementing OAuthFlowHandler — see\n// docs/guides/WEB-OAUTH.md for the rationale (the contract spans two requests).\nexport {\n startWebOAuthFlow,\n completeWebOAuthFlow,\n safeReturnTo,\n InMemoryPendingFlowStore,\n InvalidOrExpiredFlowError,\n StateMismatchError,\n BrowserBindingRequiredError,\n TokenExchangeError,\n ProtectedResourceMetadataError,\n AgentVanishedDuringFlowError,\n ConfidentialClientNotAllowedError,\n DEFAULT_WEB_FLOW_TTL_MS,\n type PendingWebFlow,\n type PendingWebFlowStore,\n type PendingFlowStore,\n type StartWebFlowOptions,\n type StartWebFlowResult,\n type CompleteWebFlowOptions,\n type CompleteWebFlowResult,\n} from './web-flow';\n\n// Main provider\nexport { MCPOAuthProvider } from './MCPOAuthProvider';\n\n// ========================================\n// Convenience factory functions\n// ========================================\n\nimport { MCPOAuthProvider } from './MCPOAuthProvider';\nimport { CLIFlowHandler, type CLIFlowHandlerConfig } from './CLIFlowHandler';\nimport { NonInteractiveFlowHandler } from './NonInteractiveFlowHandler';\nimport type { OAuthClientMetadata, OAuthConfigStorage, AgentConfig } from './types';\nimport { DEFAULT_CLIENT_METADATA } from './types';\n\n/**\n * Create an OAuth provider for CLI usage\n *\n * @param agent Agent configuration (tokens stored here)\n * @param options Optional configuration\n * @returns Configured OAuth provider\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 * };\n *\n * const provider = createCLIOAuthProvider(agent);\n *\n * const transport = new StreamableHTTPClientTransport(url, {\n * authProvider: provider\n * });\n *\n * try {\n * await client.connect(transport);\n * } catch (error) {\n * if (error instanceof UnauthorizedError) {\n * const code = await provider.waitForCallback();\n * await transport.finishAuth(code);\n * await client.connect(transport);\n * }\n * }\n *\n * // After successful auth, agent.oauth_tokens is populated\n * console.log(agent.oauth_tokens);\n * ```\n */\nexport function createCLIOAuthProvider(\n agent: AgentConfig,\n options?: {\n /** Callback port (default: 8766) */\n callbackPort?: number;\n /** Auth timeout in ms (default: 300000 = 5 min) */\n timeout?: number;\n /** Custom client metadata overrides */\n clientMetadata?: Partial<OAuthClientMetadata>;\n /** Suppress console output */\n quiet?: boolean;\n /** Storage for persisting agent config */\n storage?: OAuthConfigStorage;\n /**\n * Allow non-HTTPS resource URLs advertised in RFC 9728 protected-resource\n * metadata. Mirrors the CLI's `--allow-http` flag. Defaults to `false`.\n */\n allowHttp?: boolean;\n }\n): MCPOAuthProvider {\n const flowConfig: CLIFlowHandlerConfig = {\n callbackPort: options?.callbackPort,\n timeout: options?.timeout,\n quiet: options?.quiet,\n };\n const flowHandler = new CLIFlowHandler(flowConfig);\n\n // Build complete client metadata\n const clientMetadata: OAuthClientMetadata = {\n ...DEFAULT_CLIENT_METADATA,\n redirect_uris: [flowHandler.getRedirectUrl().toString()],\n ...options?.clientMetadata,\n };\n\n return new MCPOAuthProvider({\n agent,\n flowHandler,\n storage: options?.storage,\n clientMetadata,\n allowHttp: options?.allowHttp,\n });\n}\n\n/**\n * Create an OAuth provider that uses and auto-refreshes saved tokens but\n * refuses to start a new interactive browser flow. Use this for storyboard\n * runs, scheduled jobs, and other non-interactive contexts where you've\n * already saved tokens via `createCLIOAuthProvider`.\n *\n * If refresh fails (e.g., the refresh_token is revoked or expired), the\n * MCP SDK will throw `UnauthorizedError` at call time — the caller should\n * treat that as a signal to run `adcp --save-auth <alias> --oauth` and retry.\n */\nexport function createNonInteractiveOAuthProvider(\n agent: AgentConfig,\n options?: {\n /** Hint shown in error messages if an interactive flow is attempted. */\n agentHint?: string;\n /** Custom client metadata overrides (inherited from saved registration in practice). */\n clientMetadata?: Partial<OAuthClientMetadata>;\n /** Storage for persisting refreshed tokens back to disk. */\n storage?: OAuthConfigStorage;\n /**\n * Allow non-HTTPS resource URLs advertised in RFC 9728 protected-resource\n * metadata. Mirrors the CLI's `--allow-http` flag. Defaults to `false`.\n */\n allowHttp?: boolean;\n }\n): MCPOAuthProvider {\n const flowHandler = new NonInteractiveFlowHandler({ agentHint: options?.agentHint });\n\n const clientMetadata: OAuthClientMetadata = {\n ...DEFAULT_CLIENT_METADATA,\n redirect_uris: [flowHandler.getRedirectUrl().toString()],\n ...options?.clientMetadata,\n };\n\n return new MCPOAuthProvider({\n agent,\n flowHandler,\n storage: options?.storage,\n clientMetadata,\n allowHttp: options?.allowHttp,\n });\n}\n\n/**\n * Check if an error indicates OAuth is required\n */\nexport function isOAuthRequired(error: unknown): boolean {\n if (error instanceof Error) {\n if (error.name === 'UnauthorizedError') return true;\n const msg = error.message.toLowerCase();\n if (msg.includes('unauthorized') || msg.includes('authentication required') || msg.includes('oauth')) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * Check if an agent has valid OAuth tokens\n */\nexport function hasValidOAuthTokens(agent: AgentConfig): boolean {\n const tokens = agent.oauth_tokens;\n if (!tokens?.access_token) return false;\n\n if (tokens.expires_at) {\n const expiresAt = new Date(tokens.expires_at);\n // 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 * Clear OAuth tokens from an agent config\n */\nexport function clearOAuthTokens(agent: AgentConfig): void {\n delete agent.oauth_tokens;\n delete agent.oauth_client;\n delete agent.oauth_code_verifier;\n}\n\n/**\n * Get the effective auth token for an agent\n * Returns OAuth access_token if available, otherwise static auth_token\n */\nexport function getEffectiveAuthToken(agent: AgentConfig): string | undefined {\n // Prefer OAuth if available and valid\n if (hasValidOAuthTokens(agent)) {\n return agent.oauth_tokens!.access_token;\n }\n // Fall back to static token\n return agent.auth_token;\n}\n\n// OAuth discovery\nexport {\n discoverOAuthMetadata,\n supportsOAuth,\n supportsDynamicRegistration,\n type OAuthMetadata,\n type DiscoveryOptions,\n} from './discovery';\n\n// Diagnostics utilities — for `adcp diagnose-auth` and consumer introspection\nexport {\n parseWWWAuthenticate,\n decodeAccessTokenClaims,\n validateTokenAudience,\n type WWWAuthenticateChallenge,\n type DecodedJWTHeader,\n type DecodedJWTClaims,\n type DecodedAccessToken,\n type TokenAudienceResult,\n} from './diagnostics';\n\n// End-to-end OAuth handshake diagnosis (powers `adcp diagnose-auth`)\nexport {\n runAuthDiagnosis,\n AUTH_DIAGNOSIS_SCHEMA_VERSION,\n type DiagnoseOptions,\n type HttpCapture,\n type DiagnosisStep,\n type Hypothesis,\n type HypothesisVerdict,\n type AuthDiagnosisReport,\n} from './diagnose';\n\n// Zero-config authorization discovery + actionable error type.\n// Raised automatically by `ProtocolClient.callTool` when an MCP agent returns\n// a 401 Bearer challenge and the caller has no saved tokens.\nexport {\n NeedsAuthorizationError,\n discoverAuthorizationRequirements,\n probeAuthChallenge,\n type AuthorizationRequirements,\n type DiscoverAuthorizationOptions,\n} from './authorization-required';\n\n// File-backed `OAuthConfigStorage` implementation (agents.json format).\nexport { createFileOAuthStorage, type FileOAuthStorageOptions } from './file-storage';\n\n// OAuth 2.0 client credentials grant (RFC 6749 §4.4) for machine-to-machine\n// token exchange. Used by the CLI for automated compliance runs where there\n// is no user to walk through an authorization-code flow.\nexport {\n exchangeClientCredentials,\n ensureClientCredentialsTokens,\n ClientCredentialsExchangeError,\n type ExchangeClientCredentialsOptions,\n type EnsureClientCredentialsOptions,\n} from './ClientCredentialsFlow';\n\n// `$ENV:VAR` indirection for client credentials so secrets can live in env\n// vars (CI) rather than on disk in the agent config.\nexport {\n resolveSecret,\n isEnvSecretReference,\n toEnvSecretReference,\n extractEnvSecretName,\n MissingEnvSecretError,\n} from './secret-resolver';\n\n// Type re-export — the credentials struct itself lives in the ADCP core types\n// module alongside `AgentOAuthTokens` / `AgentOAuthClient`.\nexport type { AgentOAuthClientCredentials } from '../../types/adcp';\n\n// Per-agent storage binding — the bridge that lets `callTool` pick up the\n// caller's chosen `OAuthConfigStorage` without a signature change.\nexport { bindAgentStorage, getAgentStorage, unbindAgentStorage } from './storage-registry';\n\n// Re-exported MCP SDK OAuth error types so consumers can discriminate 401 causes\n// without string-matching on error messages. These originate from the MCP server\n// auth module but are the canonical OAuth error classes for client-side handling too.\nexport { InvalidTokenError, InsufficientScopeError } from '@modelcontextprotocol/sdk/server/auth/errors.js';\n"],"mappings":"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","names":["MCPOAuthProvider","CLIFlowHandler","NonInteractiveFlowHandler","DEFAULT_CLIENT_METADATA"]}
1
+ {"version":3,"sources":["../../../../src/lib/auth/oauth/index.ts"],"sourcesContent":["/**\n * OAuth module for MCP authentication\n *\n * OAuth tokens are stored directly in AgentConfig, same as static auth tokens.\n *\n * @example\n * ```typescript\n * import { MCPOAuthProvider, CLIFlowHandler } from '@adcp/sdk';\n *\n * // Agent config - tokens will be stored here\n * const agent: AgentConfig = {\n * id: 'my-agent',\n * name: 'My Agent',\n * agent_uri: 'https://agent.example.com/mcp',\n * protocol: 'mcp',\n * // After OAuth flow completes:\n * // oauth_tokens: { access_token: '...', refresh_token: '...' }\n * };\n *\n * // Create provider with CLI flow handler\n * const provider = new MCPOAuthProvider({\n * agent,\n * flowHandler: new CLIFlowHandler(),\n * storage: myConfigStorage // Optional: persists tokens to file/db\n * });\n *\n * // Use with MCP transport\n * const transport = new StreamableHTTPClientTransport(url, {\n * authProvider: provider\n * });\n * ```\n */\n\n// Types\nexport type {\n OAuthFlowHandler,\n OAuthProviderConfig,\n OAuthConfigStorage,\n OAuthClientInformation,\n OAuthClientInformationFull,\n OAuthClientMetadata,\n OAuthTokens,\n AgentConfig,\n AgentOAuthTokens,\n AgentOAuthClient,\n} from './types';\n\nexport {\n DEFAULT_CLIENT_METADATA,\n OAuthError,\n OAuthCancelledError,\n OAuthTimeoutError,\n toMCPTokens,\n fromMCPTokens,\n toMCPClientInfo,\n fromMCPClientInfo,\n} from './types';\n\n// Flow handlers\nexport { CLIFlowHandler, type CLIFlowHandlerConfig } from './CLIFlowHandler';\nexport { NonInteractiveFlowHandler, type NonInteractiveFlowHandlerConfig } from './NonInteractiveFlowHandler';\n\n// Web (server-side) OAuth flow — companion to CLIFlowHandler for environments\n// where /oauth/start and /oauth/callback may be served by different processes.\n// Note: standalone functions, NOT a class implementing OAuthFlowHandler — see\n// docs/guides/WEB-OAUTH.md for the rationale (the contract spans two requests).\nexport {\n startWebOAuthFlow,\n completeWebOAuthFlow,\n safeReturnTo,\n InMemoryPendingFlowStore,\n InvalidOrExpiredFlowError,\n StateMismatchError,\n BrowserBindingRequiredError,\n TokenExchangeError,\n ProtectedResourceMetadataError,\n AgentVanishedDuringFlowError,\n AgentChangedDuringFlowError,\n ConfidentialClientNotAllowedError,\n DEFAULT_WEB_FLOW_TTL_MS,\n type PendingWebFlow,\n type PendingWebFlowStore,\n type PendingFlowStore,\n type StartWebFlowOptions,\n type StartWebFlowResult,\n type CompleteWebFlowOptions,\n type CompleteWebFlowResult,\n} from './web-flow';\n\n// Main provider\nexport { MCPOAuthProvider } from './MCPOAuthProvider';\n\n// ========================================\n// Convenience factory functions\n// ========================================\n\nimport { MCPOAuthProvider } from './MCPOAuthProvider';\nimport { CLIFlowHandler, type CLIFlowHandlerConfig } from './CLIFlowHandler';\nimport { NonInteractiveFlowHandler } from './NonInteractiveFlowHandler';\nimport type { OAuthClientMetadata, OAuthConfigStorage, AgentConfig } from './types';\nimport { DEFAULT_CLIENT_METADATA } from './types';\n\n/**\n * Create an OAuth provider for CLI usage\n *\n * @param agent Agent configuration (tokens stored here)\n * @param options Optional configuration\n * @returns Configured OAuth provider\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 * };\n *\n * const provider = createCLIOAuthProvider(agent);\n *\n * const transport = new StreamableHTTPClientTransport(url, {\n * authProvider: provider\n * });\n *\n * try {\n * await client.connect(transport);\n * } catch (error) {\n * if (error instanceof UnauthorizedError) {\n * const code = await provider.waitForCallback();\n * await transport.finishAuth(code);\n * await client.connect(transport);\n * }\n * }\n *\n * // After successful auth, agent.oauth_tokens is populated\n * console.log(agent.oauth_tokens);\n * ```\n */\nexport function createCLIOAuthProvider(\n agent: AgentConfig,\n options?: {\n /** Callback port (default: 8766) */\n callbackPort?: number;\n /** Auth timeout in ms (default: 300000 = 5 min) */\n timeout?: number;\n /** Custom client metadata overrides */\n clientMetadata?: Partial<OAuthClientMetadata>;\n /** Suppress console output */\n quiet?: boolean;\n /** Storage for persisting agent config */\n storage?: OAuthConfigStorage;\n /** Operator RFC 8707 override; `null` returns to metadata discovery. */\n resourceOverride?: string | null;\n /**\n * Allow non-HTTPS resource URLs advertised in RFC 9728 protected-resource\n * metadata. Mirrors the CLI's `--allow-http` flag. Defaults to `false`.\n */\n allowHttp?: boolean;\n }\n): MCPOAuthProvider {\n const flowConfig: CLIFlowHandlerConfig = {\n callbackPort: options?.callbackPort,\n timeout: options?.timeout,\n quiet: options?.quiet,\n };\n const flowHandler = new CLIFlowHandler(flowConfig);\n\n // Build complete client metadata\n const clientMetadata: OAuthClientMetadata = {\n ...DEFAULT_CLIENT_METADATA,\n redirect_uris: [flowHandler.getRedirectUrl().toString()],\n ...options?.clientMetadata,\n };\n\n return new MCPOAuthProvider({\n agent,\n flowHandler,\n storage: options?.storage,\n resourceOverride: options?.resourceOverride,\n clientMetadata,\n allowHttp: options?.allowHttp,\n });\n}\n\n/**\n * Create an OAuth provider that uses and auto-refreshes saved tokens but\n * refuses to start a new interactive browser flow. Use this for storyboard\n * runs, scheduled jobs, and other non-interactive contexts where you've\n * already saved tokens via `createCLIOAuthProvider`.\n *\n * If refresh fails (e.g., the refresh_token is revoked or expired), the\n * MCP SDK will throw `UnauthorizedError` at call time — the caller should\n * treat that as a signal to run `adcp --save-auth <alias> --oauth` and retry.\n */\nexport function createNonInteractiveOAuthProvider(\n agent: AgentConfig,\n options?: {\n /** Hint shown in error messages if an interactive flow is attempted. */\n agentHint?: string;\n /** Custom client metadata overrides (inherited from saved registration in practice). */\n clientMetadata?: Partial<OAuthClientMetadata>;\n /** Storage for persisting refreshed tokens back to disk. */\n storage?: OAuthConfigStorage;\n /** Operator RFC 8707 override reused during refresh; `null` disables it. */\n resourceOverride?: string | null;\n /**\n * Allow non-HTTPS resource URLs advertised in RFC 9728 protected-resource\n * metadata. Mirrors the CLI's `--allow-http` flag. Defaults to `false`.\n */\n allowHttp?: boolean;\n }\n): MCPOAuthProvider {\n const flowHandler = new NonInteractiveFlowHandler({ agentHint: options?.agentHint });\n\n const clientMetadata: OAuthClientMetadata = {\n ...DEFAULT_CLIENT_METADATA,\n redirect_uris: [flowHandler.getRedirectUrl().toString()],\n ...options?.clientMetadata,\n };\n\n return new MCPOAuthProvider({\n agent,\n flowHandler,\n storage: options?.storage,\n resourceOverride: options?.resourceOverride,\n clientMetadata,\n allowHttp: options?.allowHttp,\n });\n}\n\n/**\n * Check if an error indicates OAuth is required\n */\nexport function isOAuthRequired(error: unknown): boolean {\n if (error instanceof Error) {\n if (error.name === 'UnauthorizedError') return true;\n const msg = error.message.toLowerCase();\n if (msg.includes('unauthorized') || msg.includes('authentication required') || msg.includes('oauth')) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * Check if an agent has valid OAuth tokens\n */\nexport function hasValidOAuthTokens(agent: AgentConfig): boolean {\n const tokens = agent.oauth_tokens;\n if (!tokens?.access_token) return false;\n\n if (tokens.expires_at) {\n const expiresAt = new Date(tokens.expires_at);\n // 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 * Clear OAuth tokens from an agent config\n */\nexport function clearOAuthTokens(agent: AgentConfig): void {\n delete agent.oauth_tokens;\n delete agent.oauth_client;\n delete agent.oauth_code_verifier;\n}\n\n/**\n * Get the effective auth token for an agent\n * Returns OAuth access_token if available, otherwise static auth_token\n */\nexport function getEffectiveAuthToken(agent: AgentConfig): string | undefined {\n // Prefer OAuth if available and valid\n if (hasValidOAuthTokens(agent)) {\n return agent.oauth_tokens!.access_token;\n }\n // Fall back to static token\n return agent.auth_token;\n}\n\n// OAuth discovery\nexport {\n discoverOAuthMetadata,\n supportsOAuth,\n supportsDynamicRegistration,\n type OAuthMetadata,\n type DiscoveryOptions,\n} from './discovery';\n\n// Diagnostics utilities — for `adcp diagnose-auth` and consumer introspection\nexport {\n parseWWWAuthenticate,\n decodeAccessTokenClaims,\n validateTokenAudience,\n type WWWAuthenticateChallenge,\n type DecodedJWTHeader,\n type DecodedJWTClaims,\n type DecodedAccessToken,\n type TokenAudienceResult,\n} from './diagnostics';\n\n// End-to-end OAuth handshake diagnosis (powers `adcp diagnose-auth`)\nexport {\n runAuthDiagnosis,\n AUTH_DIAGNOSIS_SCHEMA_VERSION,\n type DiagnoseOptions,\n type HttpCapture,\n type DiagnosisStep,\n type Hypothesis,\n type HypothesisVerdict,\n type AuthDiagnosisReport,\n} from './diagnose';\n\n// Zero-config authorization discovery + actionable error type.\n// Raised automatically by `ProtocolClient.callTool` when an MCP agent returns\n// a 401 Bearer challenge and the caller has no saved tokens.\nexport {\n NeedsAuthorizationError,\n discoverAuthorizationRequirements,\n probeAuthChallenge,\n type AuthorizationRequirements,\n type DiscoverAuthorizationOptions,\n} from './authorization-required';\n\n// File-backed `OAuthConfigStorage` implementation (agents.json format).\nexport { createFileOAuthStorage, type FileOAuthStorageOptions } from './file-storage';\n\n// OAuth 2.0 client credentials grant (RFC 6749 §4.4) for machine-to-machine\n// token exchange. Used by the CLI for automated compliance runs where there\n// is no user to walk through an authorization-code flow.\nexport {\n exchangeClientCredentials,\n ensureClientCredentialsTokens,\n ClientCredentialsExchangeError,\n type ExchangeClientCredentialsOptions,\n type EnsureClientCredentialsOptions,\n} from './ClientCredentialsFlow';\n\n// `$ENV:VAR` indirection for client credentials so secrets can live in env\n// vars (CI) rather than on disk in the agent config.\nexport {\n resolveSecret,\n isEnvSecretReference,\n toEnvSecretReference,\n extractEnvSecretName,\n MissingEnvSecretError,\n} from './secret-resolver';\n\n// Type re-export — the credentials struct itself lives in the ADCP core types\n// module alongside `AgentOAuthTokens` / `AgentOAuthClient`.\nexport type { AgentOAuthClientCredentials } from '../../types/adcp';\n\n// Per-agent storage binding — the bridge that lets `callTool` pick up the\n// caller's chosen `OAuthConfigStorage` without a signature change.\nexport { bindAgentStorage, getAgentStorage, unbindAgentStorage } from './storage-registry';\n\n// Re-exported MCP SDK OAuth error types so consumers can discriminate 401 causes\n// without string-matching on error messages. These originate from the MCP server\n// auth module but are the canonical OAuth error classes for client-side handling too.\nexport { InvalidTokenError, InsufficientScopeError } from '@modelcontextprotocol/sdk/server/auth/errors.js';\n"],"mappings":"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","names":["MCPOAuthProvider","CLIFlowHandler","NonInteractiveFlowHandler","DEFAULT_CLIENT_METADATA"]}
@@ -0,0 +1,4 @@
1
+ /** Validate and canonicalize an operator-configured RFC 8707 resource URI. */
2
+ export declare function validateOAuthResourceUrl(value: string, options?: {
3
+ allowHttp?: boolean;
4
+ }): URL;
@@ -0,0 +1,5 @@
1
+ /** Validate and canonicalize an operator-configured RFC 8707 resource URI. */
2
+ export declare function validateOAuthResourceUrl(value: string, options?: {
3
+ allowHttp?: boolean;
4
+ }): URL;
5
+ //# sourceMappingURL=resource-url.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resource-url.d.ts","sourceRoot":"","sources":["../../../../src/lib/auth/oauth/resource-url.ts"],"names":[],"mappings":"AAIA,8EAA8E;AAC9E,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE;IAAE,SAAS,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,GAAG,CAuBlG"}
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var resource_url_exports = {};
20
+ __export(resource_url_exports, {
21
+ validateOAuthResourceUrl: () => validateOAuthResourceUrl
22
+ });
23
+ module.exports = __toCommonJS(resource_url_exports);
24
+ var import_types = require('./types.js');
25
+ const MAX_RESOURCE_URL_LENGTH = 2048;
26
+ function validateOAuthResourceUrl(value, options = {}) {
27
+ if (value.length === 0 || value.length > MAX_RESOURCE_URL_LENGTH) {
28
+ throw new import_types.OAuthError("OAuth resource override must be between 1 and 2048 characters", "invalid_resource_override");
29
+ }
30
+ let url;
31
+ try {
32
+ url = new URL(value);
33
+ } catch {
34
+ throw new import_types.OAuthError("OAuth resource override must be an absolute URL", "invalid_resource_override");
35
+ }
36
+ if (url.username || url.password) {
37
+ throw new import_types.OAuthError("OAuth resource override must not contain URL userinfo", "invalid_resource_override");
38
+ }
39
+ if (url.hash) {
40
+ throw new import_types.OAuthError("OAuth resource override must not contain a fragment", "invalid_resource_override");
41
+ }
42
+ if (url.protocol !== "https:" && !(options.allowHttp && url.protocol === "http:")) {
43
+ throw new import_types.OAuthError("OAuth resource override must use HTTPS", "invalid_resource_override");
44
+ }
45
+ return url;
46
+ }
47
+ // Annotate the CommonJS export names for ESM import in node:
48
+ 0 && (module.exports = {
49
+ validateOAuthResourceUrl
50
+ });
51
+ //# sourceMappingURL=resource-url.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/lib/auth/oauth/resource-url.ts"],"sourcesContent":["import { OAuthError } from './types';\n\nconst MAX_RESOURCE_URL_LENGTH = 2048;\n\n/** Validate and canonicalize an operator-configured RFC 8707 resource URI. */\nexport function validateOAuthResourceUrl(value: string, options: { allowHttp?: boolean } = {}): URL {\n if (value.length === 0 || value.length > MAX_RESOURCE_URL_LENGTH) {\n throw new OAuthError('OAuth resource override must be between 1 and 2048 characters', 'invalid_resource_override');\n }\n\n let url: URL;\n try {\n url = new URL(value);\n } catch {\n throw new OAuthError('OAuth resource override must be an absolute URL', 'invalid_resource_override');\n }\n\n if (url.username || url.password) {\n throw new OAuthError('OAuth resource override must not contain URL userinfo', 'invalid_resource_override');\n }\n if (url.hash) {\n throw new OAuthError('OAuth resource override must not contain a fragment', 'invalid_resource_override');\n }\n if (url.protocol !== 'https:' && !(options.allowHttp && url.protocol === 'http:')) {\n throw new OAuthError('OAuth resource override must use HTTPS', 'invalid_resource_override');\n }\n\n return url;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAA2B;AAE3B,MAAM,0BAA0B;AAGzB,SAAS,yBAAyB,OAAe,UAAmC,CAAC,GAAQ;AAClG,MAAI,MAAM,WAAW,KAAK,MAAM,SAAS,yBAAyB;AAChE,UAAM,IAAI,wBAAW,iEAAiE,2BAA2B;AAAA,EACnH;AAEA,MAAI;AACJ,MAAI;AACF,UAAM,IAAI,IAAI,KAAK;AAAA,EACrB,QAAQ;AACN,UAAM,IAAI,wBAAW,mDAAmD,2BAA2B;AAAA,EACrG;AAEA,MAAI,IAAI,YAAY,IAAI,UAAU;AAChC,UAAM,IAAI,wBAAW,yDAAyD,2BAA2B;AAAA,EAC3G;AACA,MAAI,IAAI,MAAM;AACZ,UAAM,IAAI,wBAAW,uDAAuD,2BAA2B;AAAA,EACzG;AACA,MAAI,IAAI,aAAa,YAAY,EAAE,QAAQ,aAAa,IAAI,aAAa,UAAU;AACjF,UAAM,IAAI,wBAAW,0CAA0C,2BAA2B;AAAA,EAC5F;AAEA,SAAO;AACT;","names":[]}
@@ -0,0 +1,27 @@
1
+ import { OAuthError } from "./types.mjs";
2
+ const MAX_RESOURCE_URL_LENGTH = 2048;
3
+ function validateOAuthResourceUrl(value, options = {}) {
4
+ if (value.length === 0 || value.length > MAX_RESOURCE_URL_LENGTH) {
5
+ throw new OAuthError("OAuth resource override must be between 1 and 2048 characters", "invalid_resource_override");
6
+ }
7
+ let url;
8
+ try {
9
+ url = new URL(value);
10
+ } catch {
11
+ throw new OAuthError("OAuth resource override must be an absolute URL", "invalid_resource_override");
12
+ }
13
+ if (url.username || url.password) {
14
+ throw new OAuthError("OAuth resource override must not contain URL userinfo", "invalid_resource_override");
15
+ }
16
+ if (url.hash) {
17
+ throw new OAuthError("OAuth resource override must not contain a fragment", "invalid_resource_override");
18
+ }
19
+ if (url.protocol !== "https:" && !(options.allowHttp && url.protocol === "http:")) {
20
+ throw new OAuthError("OAuth resource override must use HTTPS", "invalid_resource_override");
21
+ }
22
+ return url;
23
+ }
24
+ export {
25
+ validateOAuthResourceUrl
26
+ };
27
+ //# sourceMappingURL=resource-url.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/lib/auth/oauth/resource-url.ts"],"sourcesContent":["import { OAuthError } from './types';\n\nconst MAX_RESOURCE_URL_LENGTH = 2048;\n\n/** Validate and canonicalize an operator-configured RFC 8707 resource URI. */\nexport function validateOAuthResourceUrl(value: string, options: { allowHttp?: boolean } = {}): URL {\n if (value.length === 0 || value.length > MAX_RESOURCE_URL_LENGTH) {\n throw new OAuthError('OAuth resource override must be between 1 and 2048 characters', 'invalid_resource_override');\n }\n\n let url: URL;\n try {\n url = new URL(value);\n } catch {\n throw new OAuthError('OAuth resource override must be an absolute URL', 'invalid_resource_override');\n }\n\n if (url.username || url.password) {\n throw new OAuthError('OAuth resource override must not contain URL userinfo', 'invalid_resource_override');\n }\n if (url.hash) {\n throw new OAuthError('OAuth resource override must not contain a fragment', 'invalid_resource_override');\n }\n if (url.protocol !== 'https:' && !(options.allowHttp && url.protocol === 'http:')) {\n throw new OAuthError('OAuth resource override must use HTTPS', 'invalid_resource_override');\n }\n\n return url;\n}\n"],"mappings":"AAAA,SAAS,kBAAkB;AAE3B,MAAM,0BAA0B;AAGzB,SAAS,yBAAyB,OAAe,UAAmC,CAAC,GAAQ;AAClG,MAAI,MAAM,WAAW,KAAK,MAAM,SAAS,yBAAyB;AAChE,UAAM,IAAI,WAAW,iEAAiE,2BAA2B;AAAA,EACnH;AAEA,MAAI;AACJ,MAAI;AACF,UAAM,IAAI,IAAI,KAAK;AAAA,EACrB,QAAQ;AACN,UAAM,IAAI,WAAW,mDAAmD,2BAA2B;AAAA,EACrG;AAEA,MAAI,IAAI,YAAY,IAAI,UAAU;AAChC,UAAM,IAAI,WAAW,yDAAyD,2BAA2B;AAAA,EAC3G;AACA,MAAI,IAAI,MAAM;AACZ,UAAM,IAAI,WAAW,uDAAuD,2BAA2B;AAAA,EACzG;AACA,MAAI,IAAI,aAAa,YAAY,EAAE,QAAQ,aAAa,IAAI,aAAa,UAAU;AACjF,UAAM,IAAI,WAAW,0CAA0C,2BAA2B;AAAA,EAC5F;AAEA,SAAO;AACT;","names":[]}
@@ -76,6 +76,13 @@ export interface OAuthProviderConfig {
76
76
  flowHandler: OAuthFlowHandler;
77
77
  /** OAuth client metadata (required - use DEFAULT_CLIENT_METADATA as base) */
78
78
  clientMetadata: OAuthClientMetadata;
79
+ /**
80
+ * Operator-supplied RFC 8707 resource override. Takes precedence over the
81
+ * resource advertised by protected-resource metadata and is forwarded by
82
+ * the MCP SDK during authorization, code exchange, and refresh. Pass `null`
83
+ * to ignore `agent.oauth_resource` and return to metadata discovery.
84
+ */
85
+ resourceOverride?: string | null;
79
86
  /**
80
87
  * Allow non-HTTPS resource URLs in RFC 9728 protected-resource metadata.
81
88
  * Mirrors the CLI's `--allow-http` flag and matches the operator-driven
@@ -76,6 +76,13 @@ export interface OAuthProviderConfig {
76
76
  flowHandler: OAuthFlowHandler;
77
77
  /** OAuth client metadata (required - use DEFAULT_CLIENT_METADATA as base) */
78
78
  clientMetadata: OAuthClientMetadata;
79
+ /**
80
+ * Operator-supplied RFC 8707 resource override. Takes precedence over the
81
+ * resource advertised by protected-resource metadata and is forwarded by
82
+ * the MCP SDK during authorization, code exchange, and refresh. Pass `null`
83
+ * to ignore `agent.oauth_resource` and return to metadata discovery.
84
+ */
85
+ resourceOverride?: string | null;
79
86
  /**
80
87
  * Allow non-HTTPS resource URLs in RFC 9728 protected-resource metadata.
81
88
  * Mirrors the CLI's `--allow-http` flag and matches the operator-driven
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/lib/auth/oauth/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,sBAAsB,EACtB,0BAA0B,EAC1B,mBAAmB,EACnB,WAAW,EACZ,MAAM,0CAA0C,CAAC;AAClD,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAGxF,YAAY,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,mBAAmB,EAAE,WAAW,EAAE,CAAC;AAGrG,YAAY,EAAE,WAAW,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,CAAC;AAEhE;;;;;;GAMG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;;OAIG;IACH,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,CAAC;IAE7D;;;OAGG;IACH,SAAS,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9C;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,cAAc,IAAI,MAAM,GAAG,GAAG,CAAC;IAE/B;;;;;;;OAOG;IACH,uBAAuB,CAAC,gBAAgB,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE9D;;;;;;OAMG;IACH,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAEnC;;OAEG;IACH,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,uDAAuD;IACvD,KAAK,EAAE,WAAW,CAAC;IAEnB,kDAAkD;IAClD,OAAO,CAAC,EAAE,kBAAkB,CAAC;IAE7B,iCAAiC;IACjC,WAAW,EAAE,gBAAgB,CAAC;IAE9B,6EAA6E;IAC7E,cAAc,EAAE,mBAAmB,CAAC;IAEpC;;;;;;;;;;;;OAYG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;GAEG;AACH,eAAO,MAAM,uBAAuB,EAAE,mBAMrC,CAAC;AAEF;;GAEG;AACH,qBAAa,UAAW,SAAQ,KAAK;aAGjB,IAAI,EAAE,MAAM;aACZ,OAAO,CAAC,EAAE,MAAM;gBAFhC,OAAO,EAAE,MAAM,EACC,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,MAAM,YAAA;CAKnC;AAED,qBAAa,mBAAoB,SAAQ,UAAU;gBACrC,OAAO,CAAC,EAAE,MAAM;CAI7B;AAED,qBAAa,iBAAkB,SAAQ,UAAU;gBACnC,OAAO,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM;CAIjD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,gBAAgB,GAAG,WAAW,CAQjE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,WAAW,GAAG,gBAAgB,CAkBnE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,gBAAgB,GAAG,sBAAsB,CAMhF;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,0BAA0B,GAAG,gBAAgB,CAMpF"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/lib/auth/oauth/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,sBAAsB,EACtB,0BAA0B,EAC1B,mBAAmB,EACnB,WAAW,EACZ,MAAM,0CAA0C,CAAC;AAClD,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAGxF,YAAY,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,mBAAmB,EAAE,WAAW,EAAE,CAAC;AAGrG,YAAY,EAAE,WAAW,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,CAAC;AAEhE;;;;;;GAMG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;;OAIG;IACH,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,CAAC;IAE7D;;;OAGG;IACH,SAAS,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9C;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,cAAc,IAAI,MAAM,GAAG,GAAG,CAAC;IAE/B;;;;;;;OAOG;IACH,uBAAuB,CAAC,gBAAgB,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE9D;;;;;;OAMG;IACH,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAEnC;;OAEG;IACH,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,uDAAuD;IACvD,KAAK,EAAE,WAAW,CAAC;IAEnB,kDAAkD;IAClD,OAAO,CAAC,EAAE,kBAAkB,CAAC;IAE7B,iCAAiC;IACjC,WAAW,EAAE,gBAAgB,CAAC;IAE9B,6EAA6E;IAC7E,cAAc,EAAE,mBAAmB,CAAC;IAEpC;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAEjC;;;;;;;;;;;;OAYG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;GAEG;AACH,eAAO,MAAM,uBAAuB,EAAE,mBAMrC,CAAC;AAEF;;GAEG;AACH,qBAAa,UAAW,SAAQ,KAAK;aAGjB,IAAI,EAAE,MAAM;aACZ,OAAO,CAAC,EAAE,MAAM;gBAFhC,OAAO,EAAE,MAAM,EACC,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,MAAM,YAAA;CAKnC;AAED,qBAAa,mBAAoB,SAAQ,UAAU;gBACrC,OAAO,CAAC,EAAE,MAAM;CAI7B;AAED,qBAAa,iBAAkB,SAAQ,UAAU;gBACnC,OAAO,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM;CAIjD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,gBAAgB,GAAG,WAAW,CAQjE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,WAAW,GAAG,gBAAgB,CAkBnE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,gBAAgB,GAAG,sBAAsB,CAMhF;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,0BAA0B,GAAG,gBAAgB,CAMpF"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/lib/auth/oauth/types.ts"],"sourcesContent":["/**\n * OAuth types for MCP authentication\n *\n * These types support the pluggable OAuth architecture:\n * - OAuthConfigStorage: Interface for reading/writing agent config with OAuth data\n * - OAuthFlowHandler: Abstract interface for authorization flow (CLI vs web)\n */\n\nimport type {\n OAuthClientInformation,\n OAuthClientInformationFull,\n OAuthClientMetadata,\n OAuthTokens,\n} from '@modelcontextprotocol/sdk/shared/auth.js';\nimport type { AgentConfig, AgentOAuthTokens, AgentOAuthClient } from '../../types/adcp';\n\n// Re-export MCP SDK types for convenience\nexport type { OAuthClientInformation, OAuthClientInformationFull, OAuthClientMetadata, OAuthTokens };\n\n// Re-export agent types\nexport type { AgentConfig, AgentOAuthTokens, AgentOAuthClient };\n\n/**\n * Agent config storage interface\n *\n * Implement this to persist OAuth tokens back to agent configuration.\n * This allows different storage backends (file, database, memory)\n * while keeping tokens in the agent config structure.\n */\nexport interface OAuthConfigStorage {\n /**\n * Load agent configuration\n * @param agentId The agent ID\n * @returns Agent config or undefined if not found\n */\n loadAgent(agentId: string): Promise<AgentConfig | undefined>;\n\n /**\n * Save agent configuration (with updated OAuth data)\n * @param agent The agent config to save\n */\n saveAgent(agent: AgentConfig): Promise<void>;\n}\n\n/**\n * Authorization flow handler - implement this for different environments\n *\n * Examples:\n * - CLIFlowHandler: Opens browser, starts callback server\n * - WebFlowHandler: HTTP redirects\n * - HeadlessFlowHandler: Device code flow (future)\n */\nexport interface OAuthFlowHandler {\n /**\n * Get the callback URL for OAuth redirects\n */\n getRedirectUrl(): string | URL;\n\n /**\n * Redirect the user to the authorization URL\n * For CLI: Opens browser\n * For web: HTTP redirect or return URL for client-side redirect\n *\n * @param authorizationUrl The OAuth authorization URL\n * @returns Promise that resolves when user is redirected\n */\n redirectToAuthorization(authorizationUrl: URL): Promise<void>;\n\n /**\n * Wait for the authorization callback and extract the auth code\n * For CLI: Starts a local HTTP server and waits\n * For web: Called by the callback route handler\n *\n * @returns Promise resolving to the authorization code\n */\n waitForCallback(): Promise<string>;\n\n /**\n * Clean up any resources (e.g., callback server)\n */\n cleanup(): Promise<void>;\n}\n\n/**\n * Configuration for creating an OAuth provider\n */\nexport interface OAuthProviderConfig {\n /** Agent configuration (tokens will be stored here) */\n agent: AgentConfig;\n\n /** Storage for persisting agent config changes */\n storage?: OAuthConfigStorage;\n\n /** Authorization flow handler */\n flowHandler: OAuthFlowHandler;\n\n /** OAuth client metadata (required - use DEFAULT_CLIENT_METADATA as base) */\n clientMetadata: OAuthClientMetadata;\n\n /**\n * Allow non-HTTPS resource URLs in RFC 9728 protected-resource metadata.\n * Mirrors the CLI's `--allow-http` flag and matches the operator-driven\n * trust model used elsewhere in the SDK (`ssrfSafeFetch.allowPrivateIp`,\n * the agent-entry URL validators). Defaults to `false`.\n *\n * Scope: relaxes only the HTTPS-only check on the PRM `resource` value.\n * Does NOT widen network-layer SSRF posture (that knob is\n * `ADCP_ALLOW_INTERNAL_PROBES` at module load, fed by the CLI). Intended\n * for local dev loops; do not enable when talking to remote authorization\n * servers — the AS remains the audience gatekeeper, but a non-HTTPS\n * resource URL implies the transport itself is unauthenticated.\n */\n allowHttp?: boolean;\n}\n\n/**\n * Default OAuth client metadata for ADCP clients\n */\nexport const DEFAULT_CLIENT_METADATA: OAuthClientMetadata = {\n client_name: 'ADCP Client',\n redirect_uris: ['http://localhost:8766/callback'],\n grant_types: ['authorization_code', 'refresh_token'],\n response_types: ['code'],\n token_endpoint_auth_method: 'none', // Public client (no client_secret)\n};\n\n/**\n * OAuth error types\n */\nexport class OAuthError extends Error {\n constructor(\n message: string,\n public readonly code: string,\n public readonly agentId?: string\n ) {\n super(message);\n this.name = 'OAuthError';\n }\n}\n\nexport class OAuthCancelledError extends OAuthError {\n constructor(agentId?: string) {\n super('OAuth flow was cancelled by user', 'cancelled', agentId);\n this.name = 'OAuthCancelledError';\n }\n}\n\nexport class OAuthTimeoutError extends OAuthError {\n constructor(agentId?: string, timeoutMs?: number) {\n super(`OAuth flow timed out${timeoutMs ? ` after ${timeoutMs}ms` : ''}`, 'timeout', agentId);\n this.name = 'OAuthTimeoutError';\n }\n}\n\n/**\n * Convert AgentOAuthTokens to MCP SDK OAuthTokens format\n */\nexport function toMCPTokens(tokens: AgentOAuthTokens): OAuthTokens {\n return {\n access_token: tokens.access_token,\n refresh_token: tokens.refresh_token,\n token_type: tokens.token_type || 'Bearer',\n expires_in: tokens.expires_in,\n scope: tokens.scope,\n };\n}\n\n/**\n * Convert MCP SDK OAuthTokens to AgentOAuthTokens format\n */\nexport function fromMCPTokens(tokens: OAuthTokens): AgentOAuthTokens {\n const result: AgentOAuthTokens = {\n access_token: tokens.access_token,\n token_type: tokens.token_type,\n scope: tokens.scope,\n };\n\n if (tokens.refresh_token) {\n result.refresh_token = tokens.refresh_token;\n }\n\n if (tokens.expires_in) {\n result.expires_in = tokens.expires_in;\n // Calculate expiration timestamp\n result.expires_at = new Date(Date.now() + tokens.expires_in * 1000).toISOString();\n }\n\n return result;\n}\n\n/**\n * Convert AgentOAuthClient to MCP SDK OAuthClientInformation format\n */\nexport function toMCPClientInfo(client: AgentOAuthClient): OAuthClientInformation {\n return {\n client_id: client.client_id,\n client_secret: client.client_secret,\n client_secret_expires_at: client.client_secret_expires_at,\n };\n}\n\n/**\n * Convert MCP SDK OAuthClientInformationFull to AgentOAuthClient format\n */\nexport function fromMCPClientInfo(info: OAuthClientInformationFull): AgentOAuthClient {\n return {\n client_id: info.client_id,\n client_secret: info.client_secret,\n client_secret_expires_at: info.client_secret_expires_at,\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAsHO,MAAM,0BAA+C;AAAA,EAC1D,aAAa;AAAA,EACb,eAAe,CAAC,gCAAgC;AAAA,EAChD,aAAa,CAAC,sBAAsB,eAAe;AAAA,EACnD,gBAAgB,CAAC,MAAM;AAAA,EACvB,4BAA4B;AAAA;AAC9B;AAKO,MAAM,mBAAmB,MAAM;AAAA,EACpC,YACE,SACgB,MACA,SAChB;AACA,UAAM,OAAO;AAHG;AACA;AAGhB,SAAK,OAAO;AAAA,EACd;AAAA,EALkB;AAAA,EACA;AAKpB;AAEO,MAAM,4BAA4B,WAAW;AAAA,EAClD,YAAY,SAAkB;AAC5B,UAAM,oCAAoC,aAAa,OAAO;AAC9D,SAAK,OAAO;AAAA,EACd;AACF;AAEO,MAAM,0BAA0B,WAAW;AAAA,EAChD,YAAY,SAAkB,WAAoB;AAChD,UAAM,uBAAuB,YAAY,UAAU,SAAS,OAAO,EAAE,IAAI,WAAW,OAAO;AAC3F,SAAK,OAAO;AAAA,EACd;AACF;AAKO,SAAS,YAAY,QAAuC;AACjE,SAAO;AAAA,IACL,cAAc,OAAO;AAAA,IACrB,eAAe,OAAO;AAAA,IACtB,YAAY,OAAO,cAAc;AAAA,IACjC,YAAY,OAAO;AAAA,IACnB,OAAO,OAAO;AAAA,EAChB;AACF;AAKO,SAAS,cAAc,QAAuC;AACnE,QAAM,SAA2B;AAAA,IAC/B,cAAc,OAAO;AAAA,IACrB,YAAY,OAAO;AAAA,IACnB,OAAO,OAAO;AAAA,EAChB;AAEA,MAAI,OAAO,eAAe;AACxB,WAAO,gBAAgB,OAAO;AAAA,EAChC;AAEA,MAAI,OAAO,YAAY;AACrB,WAAO,aAAa,OAAO;AAE3B,WAAO,aAAa,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,aAAa,GAAI,EAAE,YAAY;AAAA,EAClF;AAEA,SAAO;AACT;AAKO,SAAS,gBAAgB,QAAkD;AAChF,SAAO;AAAA,IACL,WAAW,OAAO;AAAA,IAClB,eAAe,OAAO;AAAA,IACtB,0BAA0B,OAAO;AAAA,EACnC;AACF;AAKO,SAAS,kBAAkB,MAAoD;AACpF,SAAO;AAAA,IACL,WAAW,KAAK;AAAA,IAChB,eAAe,KAAK;AAAA,IACpB,0BAA0B,KAAK;AAAA,EACjC;AACF;","names":[]}
1
+ {"version":3,"sources":["../../../../src/lib/auth/oauth/types.ts"],"sourcesContent":["/**\n * OAuth types for MCP authentication\n *\n * These types support the pluggable OAuth architecture:\n * - OAuthConfigStorage: Interface for reading/writing agent config with OAuth data\n * - OAuthFlowHandler: Abstract interface for authorization flow (CLI vs web)\n */\n\nimport type {\n OAuthClientInformation,\n OAuthClientInformationFull,\n OAuthClientMetadata,\n OAuthTokens,\n} from '@modelcontextprotocol/sdk/shared/auth.js';\nimport type { AgentConfig, AgentOAuthTokens, AgentOAuthClient } from '../../types/adcp';\n\n// Re-export MCP SDK types for convenience\nexport type { OAuthClientInformation, OAuthClientInformationFull, OAuthClientMetadata, OAuthTokens };\n\n// Re-export agent types\nexport type { AgentConfig, AgentOAuthTokens, AgentOAuthClient };\n\n/**\n * Agent config storage interface\n *\n * Implement this to persist OAuth tokens back to agent configuration.\n * This allows different storage backends (file, database, memory)\n * while keeping tokens in the agent config structure.\n */\nexport interface OAuthConfigStorage {\n /**\n * Load agent configuration\n * @param agentId The agent ID\n * @returns Agent config or undefined if not found\n */\n loadAgent(agentId: string): Promise<AgentConfig | undefined>;\n\n /**\n * Save agent configuration (with updated OAuth data)\n * @param agent The agent config to save\n */\n saveAgent(agent: AgentConfig): Promise<void>;\n}\n\n/**\n * Authorization flow handler - implement this for different environments\n *\n * Examples:\n * - CLIFlowHandler: Opens browser, starts callback server\n * - WebFlowHandler: HTTP redirects\n * - HeadlessFlowHandler: Device code flow (future)\n */\nexport interface OAuthFlowHandler {\n /**\n * Get the callback URL for OAuth redirects\n */\n getRedirectUrl(): string | URL;\n\n /**\n * Redirect the user to the authorization URL\n * For CLI: Opens browser\n * For web: HTTP redirect or return URL for client-side redirect\n *\n * @param authorizationUrl The OAuth authorization URL\n * @returns Promise that resolves when user is redirected\n */\n redirectToAuthorization(authorizationUrl: URL): Promise<void>;\n\n /**\n * Wait for the authorization callback and extract the auth code\n * For CLI: Starts a local HTTP server and waits\n * For web: Called by the callback route handler\n *\n * @returns Promise resolving to the authorization code\n */\n waitForCallback(): Promise<string>;\n\n /**\n * Clean up any resources (e.g., callback server)\n */\n cleanup(): Promise<void>;\n}\n\n/**\n * Configuration for creating an OAuth provider\n */\nexport interface OAuthProviderConfig {\n /** Agent configuration (tokens will be stored here) */\n agent: AgentConfig;\n\n /** Storage for persisting agent config changes */\n storage?: OAuthConfigStorage;\n\n /** Authorization flow handler */\n flowHandler: OAuthFlowHandler;\n\n /** OAuth client metadata (required - use DEFAULT_CLIENT_METADATA as base) */\n clientMetadata: OAuthClientMetadata;\n\n /**\n * Operator-supplied RFC 8707 resource override. Takes precedence over the\n * resource advertised by protected-resource metadata and is forwarded by\n * the MCP SDK during authorization, code exchange, and refresh. Pass `null`\n * to ignore `agent.oauth_resource` and return to metadata discovery.\n */\n resourceOverride?: string | null;\n\n /**\n * Allow non-HTTPS resource URLs in RFC 9728 protected-resource metadata.\n * Mirrors the CLI's `--allow-http` flag and matches the operator-driven\n * trust model used elsewhere in the SDK (`ssrfSafeFetch.allowPrivateIp`,\n * the agent-entry URL validators). Defaults to `false`.\n *\n * Scope: relaxes only the HTTPS-only check on the PRM `resource` value.\n * Does NOT widen network-layer SSRF posture (that knob is\n * `ADCP_ALLOW_INTERNAL_PROBES` at module load, fed by the CLI). Intended\n * for local dev loops; do not enable when talking to remote authorization\n * servers — the AS remains the audience gatekeeper, but a non-HTTPS\n * resource URL implies the transport itself is unauthenticated.\n */\n allowHttp?: boolean;\n}\n\n/**\n * Default OAuth client metadata for ADCP clients\n */\nexport const DEFAULT_CLIENT_METADATA: OAuthClientMetadata = {\n client_name: 'ADCP Client',\n redirect_uris: ['http://localhost:8766/callback'],\n grant_types: ['authorization_code', 'refresh_token'],\n response_types: ['code'],\n token_endpoint_auth_method: 'none', // Public client (no client_secret)\n};\n\n/**\n * OAuth error types\n */\nexport class OAuthError extends Error {\n constructor(\n message: string,\n public readonly code: string,\n public readonly agentId?: string\n ) {\n super(message);\n this.name = 'OAuthError';\n }\n}\n\nexport class OAuthCancelledError extends OAuthError {\n constructor(agentId?: string) {\n super('OAuth flow was cancelled by user', 'cancelled', agentId);\n this.name = 'OAuthCancelledError';\n }\n}\n\nexport class OAuthTimeoutError extends OAuthError {\n constructor(agentId?: string, timeoutMs?: number) {\n super(`OAuth flow timed out${timeoutMs ? ` after ${timeoutMs}ms` : ''}`, 'timeout', agentId);\n this.name = 'OAuthTimeoutError';\n }\n}\n\n/**\n * Convert AgentOAuthTokens to MCP SDK OAuthTokens format\n */\nexport function toMCPTokens(tokens: AgentOAuthTokens): OAuthTokens {\n return {\n access_token: tokens.access_token,\n refresh_token: tokens.refresh_token,\n token_type: tokens.token_type || 'Bearer',\n expires_in: tokens.expires_in,\n scope: tokens.scope,\n };\n}\n\n/**\n * Convert MCP SDK OAuthTokens to AgentOAuthTokens format\n */\nexport function fromMCPTokens(tokens: OAuthTokens): AgentOAuthTokens {\n const result: AgentOAuthTokens = {\n access_token: tokens.access_token,\n token_type: tokens.token_type,\n scope: tokens.scope,\n };\n\n if (tokens.refresh_token) {\n result.refresh_token = tokens.refresh_token;\n }\n\n if (tokens.expires_in) {\n result.expires_in = tokens.expires_in;\n // Calculate expiration timestamp\n result.expires_at = new Date(Date.now() + tokens.expires_in * 1000).toISOString();\n }\n\n return result;\n}\n\n/**\n * Convert AgentOAuthClient to MCP SDK OAuthClientInformation format\n */\nexport function toMCPClientInfo(client: AgentOAuthClient): OAuthClientInformation {\n return {\n client_id: client.client_id,\n client_secret: client.client_secret,\n client_secret_expires_at: client.client_secret_expires_at,\n };\n}\n\n/**\n * Convert MCP SDK OAuthClientInformationFull to AgentOAuthClient format\n */\nexport function fromMCPClientInfo(info: OAuthClientInformationFull): AgentOAuthClient {\n return {\n client_id: info.client_id,\n client_secret: info.client_secret,\n client_secret_expires_at: info.client_secret_expires_at,\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA8HO,MAAM,0BAA+C;AAAA,EAC1D,aAAa;AAAA,EACb,eAAe,CAAC,gCAAgC;AAAA,EAChD,aAAa,CAAC,sBAAsB,eAAe;AAAA,EACnD,gBAAgB,CAAC,MAAM;AAAA,EACvB,4BAA4B;AAAA;AAC9B;AAKO,MAAM,mBAAmB,MAAM;AAAA,EACpC,YACE,SACgB,MACA,SAChB;AACA,UAAM,OAAO;AAHG;AACA;AAGhB,SAAK,OAAO;AAAA,EACd;AAAA,EALkB;AAAA,EACA;AAKpB;AAEO,MAAM,4BAA4B,WAAW;AAAA,EAClD,YAAY,SAAkB;AAC5B,UAAM,oCAAoC,aAAa,OAAO;AAC9D,SAAK,OAAO;AAAA,EACd;AACF;AAEO,MAAM,0BAA0B,WAAW;AAAA,EAChD,YAAY,SAAkB,WAAoB;AAChD,UAAM,uBAAuB,YAAY,UAAU,SAAS,OAAO,EAAE,IAAI,WAAW,OAAO;AAC3F,SAAK,OAAO;AAAA,EACd;AACF;AAKO,SAAS,YAAY,QAAuC;AACjE,SAAO;AAAA,IACL,cAAc,OAAO;AAAA,IACrB,eAAe,OAAO;AAAA,IACtB,YAAY,OAAO,cAAc;AAAA,IACjC,YAAY,OAAO;AAAA,IACnB,OAAO,OAAO;AAAA,EAChB;AACF;AAKO,SAAS,cAAc,QAAuC;AACnE,QAAM,SAA2B;AAAA,IAC/B,cAAc,OAAO;AAAA,IACrB,YAAY,OAAO;AAAA,IACnB,OAAO,OAAO;AAAA,EAChB;AAEA,MAAI,OAAO,eAAe;AACxB,WAAO,gBAAgB,OAAO;AAAA,EAChC;AAEA,MAAI,OAAO,YAAY;AACrB,WAAO,aAAa,OAAO;AAE3B,WAAO,aAAa,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,aAAa,GAAI,EAAE,YAAY;AAAA,EAClF;AAEA,SAAO;AACT;AAKO,SAAS,gBAAgB,QAAkD;AAChF,SAAO;AAAA,IACL,WAAW,OAAO;AAAA,IAClB,eAAe,OAAO;AAAA,IACtB,0BAA0B,OAAO;AAAA,EACnC;AACF;AAKO,SAAS,kBAAkB,MAAoD;AACpF,SAAO;AAAA,IACL,WAAW,KAAK;AAAA,IAChB,eAAe,KAAK;AAAA,IACpB,0BAA0B,KAAK;AAAA,EACjC;AACF;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/lib/auth/oauth/types.ts"],"sourcesContent":["/**\n * OAuth types for MCP authentication\n *\n * These types support the pluggable OAuth architecture:\n * - OAuthConfigStorage: Interface for reading/writing agent config with OAuth data\n * - OAuthFlowHandler: Abstract interface for authorization flow (CLI vs web)\n */\n\nimport type {\n OAuthClientInformation,\n OAuthClientInformationFull,\n OAuthClientMetadata,\n OAuthTokens,\n} from '@modelcontextprotocol/sdk/shared/auth.js';\nimport type { AgentConfig, AgentOAuthTokens, AgentOAuthClient } from '../../types/adcp';\n\n// Re-export MCP SDK types for convenience\nexport type { OAuthClientInformation, OAuthClientInformationFull, OAuthClientMetadata, OAuthTokens };\n\n// Re-export agent types\nexport type { AgentConfig, AgentOAuthTokens, AgentOAuthClient };\n\n/**\n * Agent config storage interface\n *\n * Implement this to persist OAuth tokens back to agent configuration.\n * This allows different storage backends (file, database, memory)\n * while keeping tokens in the agent config structure.\n */\nexport interface OAuthConfigStorage {\n /**\n * Load agent configuration\n * @param agentId The agent ID\n * @returns Agent config or undefined if not found\n */\n loadAgent(agentId: string): Promise<AgentConfig | undefined>;\n\n /**\n * Save agent configuration (with updated OAuth data)\n * @param agent The agent config to save\n */\n saveAgent(agent: AgentConfig): Promise<void>;\n}\n\n/**\n * Authorization flow handler - implement this for different environments\n *\n * Examples:\n * - CLIFlowHandler: Opens browser, starts callback server\n * - WebFlowHandler: HTTP redirects\n * - HeadlessFlowHandler: Device code flow (future)\n */\nexport interface OAuthFlowHandler {\n /**\n * Get the callback URL for OAuth redirects\n */\n getRedirectUrl(): string | URL;\n\n /**\n * Redirect the user to the authorization URL\n * For CLI: Opens browser\n * For web: HTTP redirect or return URL for client-side redirect\n *\n * @param authorizationUrl The OAuth authorization URL\n * @returns Promise that resolves when user is redirected\n */\n redirectToAuthorization(authorizationUrl: URL): Promise<void>;\n\n /**\n * Wait for the authorization callback and extract the auth code\n * For CLI: Starts a local HTTP server and waits\n * For web: Called by the callback route handler\n *\n * @returns Promise resolving to the authorization code\n */\n waitForCallback(): Promise<string>;\n\n /**\n * Clean up any resources (e.g., callback server)\n */\n cleanup(): Promise<void>;\n}\n\n/**\n * Configuration for creating an OAuth provider\n */\nexport interface OAuthProviderConfig {\n /** Agent configuration (tokens will be stored here) */\n agent: AgentConfig;\n\n /** Storage for persisting agent config changes */\n storage?: OAuthConfigStorage;\n\n /** Authorization flow handler */\n flowHandler: OAuthFlowHandler;\n\n /** OAuth client metadata (required - use DEFAULT_CLIENT_METADATA as base) */\n clientMetadata: OAuthClientMetadata;\n\n /**\n * Allow non-HTTPS resource URLs in RFC 9728 protected-resource metadata.\n * Mirrors the CLI's `--allow-http` flag and matches the operator-driven\n * trust model used elsewhere in the SDK (`ssrfSafeFetch.allowPrivateIp`,\n * the agent-entry URL validators). Defaults to `false`.\n *\n * Scope: relaxes only the HTTPS-only check on the PRM `resource` value.\n * Does NOT widen network-layer SSRF posture (that knob is\n * `ADCP_ALLOW_INTERNAL_PROBES` at module load, fed by the CLI). Intended\n * for local dev loops; do not enable when talking to remote authorization\n * servers — the AS remains the audience gatekeeper, but a non-HTTPS\n * resource URL implies the transport itself is unauthenticated.\n */\n allowHttp?: boolean;\n}\n\n/**\n * Default OAuth client metadata for ADCP clients\n */\nexport const DEFAULT_CLIENT_METADATA: OAuthClientMetadata = {\n client_name: 'ADCP Client',\n redirect_uris: ['http://localhost:8766/callback'],\n grant_types: ['authorization_code', 'refresh_token'],\n response_types: ['code'],\n token_endpoint_auth_method: 'none', // Public client (no client_secret)\n};\n\n/**\n * OAuth error types\n */\nexport class OAuthError extends Error {\n constructor(\n message: string,\n public readonly code: string,\n public readonly agentId?: string\n ) {\n super(message);\n this.name = 'OAuthError';\n }\n}\n\nexport class OAuthCancelledError extends OAuthError {\n constructor(agentId?: string) {\n super('OAuth flow was cancelled by user', 'cancelled', agentId);\n this.name = 'OAuthCancelledError';\n }\n}\n\nexport class OAuthTimeoutError extends OAuthError {\n constructor(agentId?: string, timeoutMs?: number) {\n super(`OAuth flow timed out${timeoutMs ? ` after ${timeoutMs}ms` : ''}`, 'timeout', agentId);\n this.name = 'OAuthTimeoutError';\n }\n}\n\n/**\n * Convert AgentOAuthTokens to MCP SDK OAuthTokens format\n */\nexport function toMCPTokens(tokens: AgentOAuthTokens): OAuthTokens {\n return {\n access_token: tokens.access_token,\n refresh_token: tokens.refresh_token,\n token_type: tokens.token_type || 'Bearer',\n expires_in: tokens.expires_in,\n scope: tokens.scope,\n };\n}\n\n/**\n * Convert MCP SDK OAuthTokens to AgentOAuthTokens format\n */\nexport function fromMCPTokens(tokens: OAuthTokens): AgentOAuthTokens {\n const result: AgentOAuthTokens = {\n access_token: tokens.access_token,\n token_type: tokens.token_type,\n scope: tokens.scope,\n };\n\n if (tokens.refresh_token) {\n result.refresh_token = tokens.refresh_token;\n }\n\n if (tokens.expires_in) {\n result.expires_in = tokens.expires_in;\n // Calculate expiration timestamp\n result.expires_at = new Date(Date.now() + tokens.expires_in * 1000).toISOString();\n }\n\n return result;\n}\n\n/**\n * Convert AgentOAuthClient to MCP SDK OAuthClientInformation format\n */\nexport function toMCPClientInfo(client: AgentOAuthClient): OAuthClientInformation {\n return {\n client_id: client.client_id,\n client_secret: client.client_secret,\n client_secret_expires_at: client.client_secret_expires_at,\n };\n}\n\n/**\n * Convert MCP SDK OAuthClientInformationFull to AgentOAuthClient format\n */\nexport function fromMCPClientInfo(info: OAuthClientInformationFull): AgentOAuthClient {\n return {\n client_id: info.client_id,\n client_secret: info.client_secret,\n client_secret_expires_at: info.client_secret_expires_at,\n };\n}\n"],"mappings":"AAsHO,MAAM,0BAA+C;AAAA,EAC1D,aAAa;AAAA,EACb,eAAe,CAAC,gCAAgC;AAAA,EAChD,aAAa,CAAC,sBAAsB,eAAe;AAAA,EACnD,gBAAgB,CAAC,MAAM;AAAA,EACvB,4BAA4B;AAAA;AAC9B;AAKO,MAAM,mBAAmB,MAAM;AAAA,EACpC,YACE,SACgB,MACA,SAChB;AACA,UAAM,OAAO;AAHG;AACA;AAGhB,SAAK,OAAO;AAAA,EACd;AAAA,EALkB;AAAA,EACA;AAKpB;AAEO,MAAM,4BAA4B,WAAW;AAAA,EAClD,YAAY,SAAkB;AAC5B,UAAM,oCAAoC,aAAa,OAAO;AAC9D,SAAK,OAAO;AAAA,EACd;AACF;AAEO,MAAM,0BAA0B,WAAW;AAAA,EAChD,YAAY,SAAkB,WAAoB;AAChD,UAAM,uBAAuB,YAAY,UAAU,SAAS,OAAO,EAAE,IAAI,WAAW,OAAO;AAC3F,SAAK,OAAO;AAAA,EACd;AACF;AAKO,SAAS,YAAY,QAAuC;AACjE,SAAO;AAAA,IACL,cAAc,OAAO;AAAA,IACrB,eAAe,OAAO;AAAA,IACtB,YAAY,OAAO,cAAc;AAAA,IACjC,YAAY,OAAO;AAAA,IACnB,OAAO,OAAO;AAAA,EAChB;AACF;AAKO,SAAS,cAAc,QAAuC;AACnE,QAAM,SAA2B;AAAA,IAC/B,cAAc,OAAO;AAAA,IACrB,YAAY,OAAO;AAAA,IACnB,OAAO,OAAO;AAAA,EAChB;AAEA,MAAI,OAAO,eAAe;AACxB,WAAO,gBAAgB,OAAO;AAAA,EAChC;AAEA,MAAI,OAAO,YAAY;AACrB,WAAO,aAAa,OAAO;AAE3B,WAAO,aAAa,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,aAAa,GAAI,EAAE,YAAY;AAAA,EAClF;AAEA,SAAO;AACT;AAKO,SAAS,gBAAgB,QAAkD;AAChF,SAAO;AAAA,IACL,WAAW,OAAO;AAAA,IAClB,eAAe,OAAO;AAAA,IACtB,0BAA0B,OAAO;AAAA,EACnC;AACF;AAKO,SAAS,kBAAkB,MAAoD;AACpF,SAAO;AAAA,IACL,WAAW,KAAK;AAAA,IAChB,eAAe,KAAK;AAAA,IACpB,0BAA0B,KAAK;AAAA,EACjC;AACF;","names":[]}
1
+ {"version":3,"sources":["../../../../src/lib/auth/oauth/types.ts"],"sourcesContent":["/**\n * OAuth types for MCP authentication\n *\n * These types support the pluggable OAuth architecture:\n * - OAuthConfigStorage: Interface for reading/writing agent config with OAuth data\n * - OAuthFlowHandler: Abstract interface for authorization flow (CLI vs web)\n */\n\nimport type {\n OAuthClientInformation,\n OAuthClientInformationFull,\n OAuthClientMetadata,\n OAuthTokens,\n} from '@modelcontextprotocol/sdk/shared/auth.js';\nimport type { AgentConfig, AgentOAuthTokens, AgentOAuthClient } from '../../types/adcp';\n\n// Re-export MCP SDK types for convenience\nexport type { OAuthClientInformation, OAuthClientInformationFull, OAuthClientMetadata, OAuthTokens };\n\n// Re-export agent types\nexport type { AgentConfig, AgentOAuthTokens, AgentOAuthClient };\n\n/**\n * Agent config storage interface\n *\n * Implement this to persist OAuth tokens back to agent configuration.\n * This allows different storage backends (file, database, memory)\n * while keeping tokens in the agent config structure.\n */\nexport interface OAuthConfigStorage {\n /**\n * Load agent configuration\n * @param agentId The agent ID\n * @returns Agent config or undefined if not found\n */\n loadAgent(agentId: string): Promise<AgentConfig | undefined>;\n\n /**\n * Save agent configuration (with updated OAuth data)\n * @param agent The agent config to save\n */\n saveAgent(agent: AgentConfig): Promise<void>;\n}\n\n/**\n * Authorization flow handler - implement this for different environments\n *\n * Examples:\n * - CLIFlowHandler: Opens browser, starts callback server\n * - WebFlowHandler: HTTP redirects\n * - HeadlessFlowHandler: Device code flow (future)\n */\nexport interface OAuthFlowHandler {\n /**\n * Get the callback URL for OAuth redirects\n */\n getRedirectUrl(): string | URL;\n\n /**\n * Redirect the user to the authorization URL\n * For CLI: Opens browser\n * For web: HTTP redirect or return URL for client-side redirect\n *\n * @param authorizationUrl The OAuth authorization URL\n * @returns Promise that resolves when user is redirected\n */\n redirectToAuthorization(authorizationUrl: URL): Promise<void>;\n\n /**\n * Wait for the authorization callback and extract the auth code\n * For CLI: Starts a local HTTP server and waits\n * For web: Called by the callback route handler\n *\n * @returns Promise resolving to the authorization code\n */\n waitForCallback(): Promise<string>;\n\n /**\n * Clean up any resources (e.g., callback server)\n */\n cleanup(): Promise<void>;\n}\n\n/**\n * Configuration for creating an OAuth provider\n */\nexport interface OAuthProviderConfig {\n /** Agent configuration (tokens will be stored here) */\n agent: AgentConfig;\n\n /** Storage for persisting agent config changes */\n storage?: OAuthConfigStorage;\n\n /** Authorization flow handler */\n flowHandler: OAuthFlowHandler;\n\n /** OAuth client metadata (required - use DEFAULT_CLIENT_METADATA as base) */\n clientMetadata: OAuthClientMetadata;\n\n /**\n * Operator-supplied RFC 8707 resource override. Takes precedence over the\n * resource advertised by protected-resource metadata and is forwarded by\n * the MCP SDK during authorization, code exchange, and refresh. Pass `null`\n * to ignore `agent.oauth_resource` and return to metadata discovery.\n */\n resourceOverride?: string | null;\n\n /**\n * Allow non-HTTPS resource URLs in RFC 9728 protected-resource metadata.\n * Mirrors the CLI's `--allow-http` flag and matches the operator-driven\n * trust model used elsewhere in the SDK (`ssrfSafeFetch.allowPrivateIp`,\n * the agent-entry URL validators). Defaults to `false`.\n *\n * Scope: relaxes only the HTTPS-only check on the PRM `resource` value.\n * Does NOT widen network-layer SSRF posture (that knob is\n * `ADCP_ALLOW_INTERNAL_PROBES` at module load, fed by the CLI). Intended\n * for local dev loops; do not enable when talking to remote authorization\n * servers — the AS remains the audience gatekeeper, but a non-HTTPS\n * resource URL implies the transport itself is unauthenticated.\n */\n allowHttp?: boolean;\n}\n\n/**\n * Default OAuth client metadata for ADCP clients\n */\nexport const DEFAULT_CLIENT_METADATA: OAuthClientMetadata = {\n client_name: 'ADCP Client',\n redirect_uris: ['http://localhost:8766/callback'],\n grant_types: ['authorization_code', 'refresh_token'],\n response_types: ['code'],\n token_endpoint_auth_method: 'none', // Public client (no client_secret)\n};\n\n/**\n * OAuth error types\n */\nexport class OAuthError extends Error {\n constructor(\n message: string,\n public readonly code: string,\n public readonly agentId?: string\n ) {\n super(message);\n this.name = 'OAuthError';\n }\n}\n\nexport class OAuthCancelledError extends OAuthError {\n constructor(agentId?: string) {\n super('OAuth flow was cancelled by user', 'cancelled', agentId);\n this.name = 'OAuthCancelledError';\n }\n}\n\nexport class OAuthTimeoutError extends OAuthError {\n constructor(agentId?: string, timeoutMs?: number) {\n super(`OAuth flow timed out${timeoutMs ? ` after ${timeoutMs}ms` : ''}`, 'timeout', agentId);\n this.name = 'OAuthTimeoutError';\n }\n}\n\n/**\n * Convert AgentOAuthTokens to MCP SDK OAuthTokens format\n */\nexport function toMCPTokens(tokens: AgentOAuthTokens): OAuthTokens {\n return {\n access_token: tokens.access_token,\n refresh_token: tokens.refresh_token,\n token_type: tokens.token_type || 'Bearer',\n expires_in: tokens.expires_in,\n scope: tokens.scope,\n };\n}\n\n/**\n * Convert MCP SDK OAuthTokens to AgentOAuthTokens format\n */\nexport function fromMCPTokens(tokens: OAuthTokens): AgentOAuthTokens {\n const result: AgentOAuthTokens = {\n access_token: tokens.access_token,\n token_type: tokens.token_type,\n scope: tokens.scope,\n };\n\n if (tokens.refresh_token) {\n result.refresh_token = tokens.refresh_token;\n }\n\n if (tokens.expires_in) {\n result.expires_in = tokens.expires_in;\n // Calculate expiration timestamp\n result.expires_at = new Date(Date.now() + tokens.expires_in * 1000).toISOString();\n }\n\n return result;\n}\n\n/**\n * Convert AgentOAuthClient to MCP SDK OAuthClientInformation format\n */\nexport function toMCPClientInfo(client: AgentOAuthClient): OAuthClientInformation {\n return {\n client_id: client.client_id,\n client_secret: client.client_secret,\n client_secret_expires_at: client.client_secret_expires_at,\n };\n}\n\n/**\n * Convert MCP SDK OAuthClientInformationFull to AgentOAuthClient format\n */\nexport function fromMCPClientInfo(info: OAuthClientInformationFull): AgentOAuthClient {\n return {\n client_id: info.client_id,\n client_secret: info.client_secret,\n client_secret_expires_at: info.client_secret_expires_at,\n };\n}\n"],"mappings":"AA8HO,MAAM,0BAA+C;AAAA,EAC1D,aAAa;AAAA,EACb,eAAe,CAAC,gCAAgC;AAAA,EAChD,aAAa,CAAC,sBAAsB,eAAe;AAAA,EACnD,gBAAgB,CAAC,MAAM;AAAA,EACvB,4BAA4B;AAAA;AAC9B;AAKO,MAAM,mBAAmB,MAAM;AAAA,EACpC,YACE,SACgB,MACA,SAChB;AACA,UAAM,OAAO;AAHG;AACA;AAGhB,SAAK,OAAO;AAAA,EACd;AAAA,EALkB;AAAA,EACA;AAKpB;AAEO,MAAM,4BAA4B,WAAW;AAAA,EAClD,YAAY,SAAkB;AAC5B,UAAM,oCAAoC,aAAa,OAAO;AAC9D,SAAK,OAAO;AAAA,EACd;AACF;AAEO,MAAM,0BAA0B,WAAW;AAAA,EAChD,YAAY,SAAkB,WAAoB;AAChD,UAAM,uBAAuB,YAAY,UAAU,SAAS,OAAO,EAAE,IAAI,WAAW,OAAO;AAC3F,SAAK,OAAO;AAAA,EACd;AACF;AAKO,SAAS,YAAY,QAAuC;AACjE,SAAO;AAAA,IACL,cAAc,OAAO;AAAA,IACrB,eAAe,OAAO;AAAA,IACtB,YAAY,OAAO,cAAc;AAAA,IACjC,YAAY,OAAO;AAAA,IACnB,OAAO,OAAO;AAAA,EAChB;AACF;AAKO,SAAS,cAAc,QAAuC;AACnE,QAAM,SAA2B;AAAA,IAC/B,cAAc,OAAO;AAAA,IACrB,YAAY,OAAO;AAAA,IACnB,OAAO,OAAO;AAAA,EAChB;AAEA,MAAI,OAAO,eAAe;AACxB,WAAO,gBAAgB,OAAO;AAAA,EAChC;AAEA,MAAI,OAAO,YAAY;AACrB,WAAO,aAAa,OAAO;AAE3B,WAAO,aAAa,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,aAAa,GAAI,EAAE,YAAY;AAAA,EAClF;AAEA,SAAO;AACT;AAKO,SAAS,gBAAgB,QAAkD;AAChF,SAAO;AAAA,IACL,WAAW,OAAO;AAAA,IAClB,eAAe,OAAO;AAAA,IACtB,0BAA0B,OAAO;AAAA,EACnC;AACF;AAKO,SAAS,kBAAkB,MAAoD;AACpF,SAAO;AAAA,IACL,WAAW,KAAK;AAAA,IAChB,eAAe,KAAK;AAAA,IACpB,0BAA0B,KAAK;AAAA,EACjC;AACF;","names":[]}
@@ -8,15 +8,17 @@
8
8
  * store interface — not reimplemented protocol logic.
9
9
  *
10
10
  * Wire contract:
11
- * - PRM (RFC 9728) is consulted first; `prm.resource` is the source of
12
- * truth for the RFC 8707 `resource` indicator. We fall back to
11
+ * - An operator `resourceOverride` takes precedence for legacy or
12
+ * non-conformant integrations. Otherwise PRM (RFC 9728) is consulted;
13
+ * `prm.resource` is the source of truth for the RFC 8707 `resource`
14
+ * indicator. We fall back to
13
15
  * `resourceUrlFromServerUrl(agent.agent_uri)` only when the resource
14
16
  * server does not implement PRM (404). Connection / parse / 5xx
15
17
  * errors throw `ProtectedResourceMetadataError` — never silently
16
18
  * downgrade to local guessing.
17
- * - `prm.resource` must share an origin with the agent URL; the MCP
18
- * SDK's `checkResourceAllowed` guards against a poisoned PRM
19
- * pointing the audience at a third party.
19
+ * - Without a trusted override, `prm.resource` must share an origin with
20
+ * the agent URL; the MCP SDK's `checkResourceAllowed` guards against a
21
+ * poisoned PRM pointing the audience at a third party.
20
22
  * - AS URL = `prm.authorization_servers[0]` when PRM is present, else
21
23
  * the agent origin.
22
24
  * - Scope priority: caller-supplied `scopeHint` (e.g. from a 401
@@ -56,6 +58,12 @@ export interface PendingWebFlow {
56
58
  codeVerifier: string;
57
59
  redirectUri: string;
58
60
  resource?: string;
61
+ /** Explicit operator override, persisted separately so refresh can retain it. */
62
+ resourceOverride?: string;
63
+ /** Mutation requested by this flow. Absent on legacy rows and preserve-only flows. */
64
+ resourceOverrideAction?: 'set' | 'clear';
65
+ /** Value observed at flow start; used to reject concurrent operator edits. */
66
+ resourceOverrideSnapshot?: string | null;
59
67
  scope?: string;
60
68
  authorizationServerUrl: string;
61
69
  /** Persist as JSON (e.g. Postgres `jsonb`); contents are MCP SDK-typed. */
@@ -145,6 +153,9 @@ export declare class ProtectedResourceMetadataError extends OAuthError {
145
153
  export declare class AgentVanishedDuringFlowError extends OAuthError {
146
154
  constructor(agentId: string);
147
155
  }
156
+ export declare class AgentChangedDuringFlowError extends OAuthError {
157
+ constructor(agentId: string);
158
+ }
148
159
  export declare class ConfidentialClientNotAllowedError extends OAuthError {
149
160
  constructor(agentId: string | undefined);
150
161
  }
@@ -172,6 +183,20 @@ export interface StartWebFlowOptions {
172
183
  * value from a prior 401 `WWW-Authenticate` challenge if you have one.
173
184
  */
174
185
  scopeHint?: string;
186
+ /**
187
+ * Operator-supplied RFC 8707 resource override. Takes precedence over
188
+ * `prm.resource` and the agent-URL-derived fallback, and is sent during
189
+ * both authorization and code exchange. Pass `null` to explicitly clear a
190
+ * persisted override and return to metadata/agent-URL discovery.
191
+ */
192
+ resourceOverride?: string | null;
193
+ /**
194
+ * Non-standard Auth0-compatible audience parameter. Sent only to the
195
+ * authorization endpoint. Prefer `resourceOverride` for RFC 8707 servers.
196
+ */
197
+ audience?: string;
198
+ /** Permit an HTTP resource override for local development. Default false. */
199
+ allowHttp?: boolean;
175
200
  /** Override flow TTL. Default: {@link DEFAULT_WEB_FLOW_TTL_MS}. */
176
201
  ttlMs?: number;
177
202
  /** Override the random-state generator (defaults to 32 bytes base64url). */
@@ -8,15 +8,17 @@
8
8
  * store interface — not reimplemented protocol logic.
9
9
  *
10
10
  * Wire contract:
11
- * - PRM (RFC 9728) is consulted first; `prm.resource` is the source of
12
- * truth for the RFC 8707 `resource` indicator. We fall back to
11
+ * - An operator `resourceOverride` takes precedence for legacy or
12
+ * non-conformant integrations. Otherwise PRM (RFC 9728) is consulted;
13
+ * `prm.resource` is the source of truth for the RFC 8707 `resource`
14
+ * indicator. We fall back to
13
15
  * `resourceUrlFromServerUrl(agent.agent_uri)` only when the resource
14
16
  * server does not implement PRM (404). Connection / parse / 5xx
15
17
  * errors throw `ProtectedResourceMetadataError` — never silently
16
18
  * downgrade to local guessing.
17
- * - `prm.resource` must share an origin with the agent URL; the MCP
18
- * SDK's `checkResourceAllowed` guards against a poisoned PRM
19
- * pointing the audience at a third party.
19
+ * - Without a trusted override, `prm.resource` must share an origin with
20
+ * the agent URL; the MCP SDK's `checkResourceAllowed` guards against a
21
+ * poisoned PRM pointing the audience at a third party.
20
22
  * - AS URL = `prm.authorization_servers[0]` when PRM is present, else
21
23
  * the agent origin.
22
24
  * - Scope priority: caller-supplied `scopeHint` (e.g. from a 401
@@ -56,6 +58,12 @@ export interface PendingWebFlow {
56
58
  codeVerifier: string;
57
59
  redirectUri: string;
58
60
  resource?: string;
61
+ /** Explicit operator override, persisted separately so refresh can retain it. */
62
+ resourceOverride?: string;
63
+ /** Mutation requested by this flow. Absent on legacy rows and preserve-only flows. */
64
+ resourceOverrideAction?: 'set' | 'clear';
65
+ /** Value observed at flow start; used to reject concurrent operator edits. */
66
+ resourceOverrideSnapshot?: string | null;
59
67
  scope?: string;
60
68
  authorizationServerUrl: string;
61
69
  /** Persist as JSON (e.g. Postgres `jsonb`); contents are MCP SDK-typed. */
@@ -145,6 +153,9 @@ export declare class ProtectedResourceMetadataError extends OAuthError {
145
153
  export declare class AgentVanishedDuringFlowError extends OAuthError {
146
154
  constructor(agentId: string);
147
155
  }
156
+ export declare class AgentChangedDuringFlowError extends OAuthError {
157
+ constructor(agentId: string);
158
+ }
148
159
  export declare class ConfidentialClientNotAllowedError extends OAuthError {
149
160
  constructor(agentId: string | undefined);
150
161
  }
@@ -172,6 +183,20 @@ export interface StartWebFlowOptions {
172
183
  * value from a prior 401 `WWW-Authenticate` challenge if you have one.
173
184
  */
174
185
  scopeHint?: string;
186
+ /**
187
+ * Operator-supplied RFC 8707 resource override. Takes precedence over
188
+ * `prm.resource` and the agent-URL-derived fallback, and is sent during
189
+ * both authorization and code exchange. Pass `null` to explicitly clear a
190
+ * persisted override and return to metadata/agent-URL discovery.
191
+ */
192
+ resourceOverride?: string | null;
193
+ /**
194
+ * Non-standard Auth0-compatible audience parameter. Sent only to the
195
+ * authorization endpoint. Prefer `resourceOverride` for RFC 8707 servers.
196
+ */
197
+ audience?: string;
198
+ /** Permit an HTTP resource override for local development. Default false. */
199
+ allowHttp?: boolean;
175
200
  /** Override flow TTL. Default: {@link DEFAULT_WEB_FLOW_TTL_MS}. */
176
201
  ttlMs?: number;
177
202
  /** Override the random-state generator (defaults to 32 bytes base64url). */
@@ -1 +1 @@
1
- {"version":3,"file":"web-flow.d.ts","sourceRoot":"","sources":["../../../../src/lib/auth/oauth/web-flow.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"web-flow.d.ts","sourceRoot":"","sources":["../../../../src/lib/auth/oauth/web-flow.ts"],"names":[],"mappings":"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"}