@adcp/sdk 6.9.0 → 6.10.0

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 (233) hide show
  1. package/bin/adcp.js +285 -5
  2. package/compliance/cache/3.0.6.previous/domains/brand/index.yaml +163 -0
  3. package/compliance/cache/3.0.6.previous/domains/creative/index.yaml +412 -0
  4. package/compliance/cache/3.0.6.previous/domains/governance/index.yaml +683 -0
  5. package/compliance/cache/3.0.6.previous/domains/media-buy/creative-reception.yaml +247 -0
  6. package/compliance/cache/3.0.6.previous/domains/media-buy/index.yaml +769 -0
  7. package/compliance/cache/3.0.6.previous/domains/media-buy/scenarios/create_media_buy_async.yaml +232 -0
  8. package/compliance/cache/3.0.6.previous/domains/media-buy/scenarios/creative_fate_after_cancellation.yaml +414 -0
  9. package/compliance/cache/3.0.6.previous/domains/media-buy/scenarios/delivery_reporting.yaml +205 -0
  10. package/compliance/cache/3.0.6.previous/domains/media-buy/scenarios/governance_approved.yaml +211 -0
  11. package/compliance/cache/3.0.6.previous/domains/media-buy/scenarios/governance_conditions.yaml +196 -0
  12. package/compliance/cache/3.0.6.previous/domains/media-buy/scenarios/governance_denied.yaml +192 -0
  13. package/compliance/cache/3.0.6.previous/domains/media-buy/scenarios/governance_denied_recovery.yaml +244 -0
  14. package/compliance/cache/3.0.6.previous/domains/media-buy/scenarios/invalid_transitions.yaml +284 -0
  15. package/compliance/cache/3.0.6.previous/domains/media-buy/scenarios/inventory_list_no_match.yaml +143 -0
  16. package/compliance/cache/3.0.6.previous/domains/media-buy/scenarios/inventory_list_targeting.yaml +271 -0
  17. package/compliance/cache/3.0.6.previous/domains/media-buy/scenarios/measurement_terms_rejected.yaml +195 -0
  18. package/compliance/cache/3.0.6.previous/domains/media-buy/scenarios/pending_creatives_to_start.yaml +250 -0
  19. package/compliance/cache/3.0.6.previous/domains/media-buy/scenarios/proposal_finalize.yaml +243 -0
  20. package/compliance/cache/3.0.6.previous/domains/media-buy/scenarios/refine_products.yaml +148 -0
  21. package/compliance/cache/3.0.6.previous/domains/media-buy/state-machine.yaml +442 -0
  22. package/compliance/cache/3.0.6.previous/domains/signals/index.yaml +266 -0
  23. package/compliance/cache/3.0.6.previous/domains/sponsored-intelligence/index.yaml +256 -0
  24. package/compliance/cache/3.0.6.previous/index.json +324 -0
  25. package/compliance/cache/3.0.6.previous/protocols/brand/index.yaml +163 -0
  26. package/compliance/cache/3.0.6.previous/protocols/creative/index.yaml +412 -0
  27. package/compliance/cache/3.0.6.previous/protocols/governance/index.yaml +683 -0
  28. package/compliance/cache/3.0.6.previous/protocols/media-buy/creative-reception.yaml +247 -0
  29. package/compliance/cache/3.0.6.previous/protocols/media-buy/index.yaml +769 -0
  30. package/compliance/cache/3.0.6.previous/protocols/media-buy/scenarios/create_media_buy_async.yaml +232 -0
  31. package/compliance/cache/3.0.6.previous/protocols/media-buy/scenarios/creative_fate_after_cancellation.yaml +414 -0
  32. package/compliance/cache/3.0.6.previous/protocols/media-buy/scenarios/delivery_reporting.yaml +205 -0
  33. package/compliance/cache/3.0.6.previous/protocols/media-buy/scenarios/governance_approved.yaml +211 -0
  34. package/compliance/cache/3.0.6.previous/protocols/media-buy/scenarios/governance_conditions.yaml +196 -0
  35. package/compliance/cache/3.0.6.previous/protocols/media-buy/scenarios/governance_denied.yaml +192 -0
  36. package/compliance/cache/3.0.6.previous/protocols/media-buy/scenarios/governance_denied_recovery.yaml +244 -0
  37. package/compliance/cache/3.0.6.previous/protocols/media-buy/scenarios/invalid_transitions.yaml +284 -0
  38. package/compliance/cache/3.0.6.previous/protocols/media-buy/scenarios/inventory_list_no_match.yaml +143 -0
  39. package/compliance/cache/3.0.6.previous/protocols/media-buy/scenarios/inventory_list_targeting.yaml +271 -0
  40. package/compliance/cache/3.0.6.previous/protocols/media-buy/scenarios/measurement_terms_rejected.yaml +195 -0
  41. package/compliance/cache/3.0.6.previous/protocols/media-buy/scenarios/pending_creatives_to_start.yaml +250 -0
  42. package/compliance/cache/3.0.6.previous/protocols/media-buy/scenarios/proposal_finalize.yaml +243 -0
  43. package/compliance/cache/3.0.6.previous/protocols/media-buy/scenarios/refine_products.yaml +148 -0
  44. package/compliance/cache/3.0.6.previous/protocols/media-buy/state-machine.yaml +442 -0
  45. package/compliance/cache/3.0.6.previous/protocols/signals/index.yaml +266 -0
  46. package/compliance/cache/3.0.6.previous/protocols/sponsored-intelligence/index.yaml +256 -0
  47. package/compliance/cache/3.0.6.previous/specialisms/audience-sync/index.yaml +280 -0
  48. package/compliance/cache/3.0.6.previous/specialisms/brand-rights/index.yaml +350 -0
  49. package/compliance/cache/3.0.6.previous/specialisms/brand-rights/scenarios/governance_denied.yaml +204 -0
  50. package/compliance/cache/3.0.6.previous/specialisms/collection-lists/index.yaml +359 -0
  51. package/compliance/cache/3.0.6.previous/specialisms/content-standards/index.yaml +572 -0
  52. package/compliance/cache/3.0.6.previous/specialisms/creative-ad-server/index.yaml +383 -0
  53. package/compliance/cache/3.0.6.previous/specialisms/creative-generative/generative-seller.yaml +758 -0
  54. package/compliance/cache/3.0.6.previous/specialisms/creative-generative/index.yaml +746 -0
  55. package/compliance/cache/3.0.6.previous/specialisms/creative-template/index.yaml +413 -0
  56. package/compliance/cache/3.0.6.previous/specialisms/governance-aware-seller/index.yaml +136 -0
  57. package/compliance/cache/3.0.6.previous/specialisms/governance-delivery-monitor/index.yaml +441 -0
  58. package/compliance/cache/3.0.6.previous/specialisms/governance-spend-authority/denied.yaml +221 -0
  59. package/compliance/cache/3.0.6.previous/specialisms/governance-spend-authority/index.yaml +330 -0
  60. package/compliance/cache/3.0.6.previous/specialisms/property-lists/index.yaml +482 -0
  61. package/compliance/cache/3.0.6.previous/specialisms/sales-broadcast-tv/index.yaml +689 -0
  62. package/compliance/cache/3.0.6.previous/specialisms/sales-catalog-driven/index.yaml +779 -0
  63. package/compliance/cache/3.0.6.previous/specialisms/sales-guaranteed/index.yaml +504 -0
  64. package/compliance/cache/3.0.6.previous/specialisms/sales-non-guaranteed/index.yaml +428 -0
  65. package/compliance/cache/3.0.6.previous/specialisms/sales-proposal-mode/index.yaml +520 -0
  66. package/compliance/cache/3.0.6.previous/specialisms/sales-social/index.yaml +584 -0
  67. package/compliance/cache/3.0.6.previous/specialisms/signal-marketplace/index.yaml +415 -0
  68. package/compliance/cache/3.0.6.previous/specialisms/signal-marketplace/scenarios/governance_denied.yaml +207 -0
  69. package/compliance/cache/3.0.6.previous/specialisms/signal-owned/index.yaml +316 -0
  70. package/compliance/cache/3.0.6.previous/test-kits/acme-outdoor.yaml +210 -0
  71. package/compliance/cache/3.0.6.previous/test-kits/bistro-oranje.yaml +126 -0
  72. package/compliance/cache/3.0.6.previous/test-kits/nova-motors.yaml +262 -0
  73. package/compliance/cache/3.0.6.previous/test-kits/osei-natural.yaml +126 -0
  74. package/compliance/cache/3.0.6.previous/test-kits/signed-requests-runner.yaml +155 -0
  75. package/compliance/cache/3.0.6.previous/test-kits/substitution-observer-runner.yaml +690 -0
  76. package/compliance/cache/3.0.6.previous/test-kits/summit-foods.yaml +125 -0
  77. package/compliance/cache/3.0.6.previous/test-kits/webhook-receiver-runner.yaml +265 -0
  78. package/compliance/cache/3.0.6.previous/test-vectors/plan-hash/001-minimal-plan.json +43 -0
  79. package/compliance/cache/3.0.6.previous/test-vectors/plan-hash/002-full-plan.json +217 -0
  80. package/compliance/cache/3.0.6.previous/test-vectors/plan-hash/003-bookkeeping-stripped.json +60 -0
  81. package/compliance/cache/3.0.6.previous/test-vectors/plan-hash/004a-human-review-omitted.json +43 -0
  82. package/compliance/cache/3.0.6.previous/test-vectors/plan-hash/004b-human-review-explicit-null.json +49 -0
  83. package/compliance/cache/3.0.6.previous/test-vectors/plan-hash/005a-policy-categories-order-1.json +53 -0
  84. package/compliance/cache/3.0.6.previous/test-vectors/plan-hash/005b-policy-categories-order-2.json +57 -0
  85. package/compliance/cache/3.0.6.previous/test-vectors/plan-hash/006a-ext-trace-v1.json +49 -0
  86. package/compliance/cache/3.0.6.previous/test-vectors/plan-hash/006b-ext-trace-v2.json +53 -0
  87. package/compliance/cache/3.0.6.previous/test-vectors/plan-hash/007-unicode-objectives.json +43 -0
  88. package/compliance/cache/3.0.6.previous/test-vectors/plan-hash/008-numeric-canonicalization.json +65 -0
  89. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/README.md +219 -0
  90. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/canonicalization.json +241 -0
  91. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/keys.json +60 -0
  92. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/001-no-signature-header.json +24 -0
  93. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/002-wrong-tag.json +26 -0
  94. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/003-expired-signature.json +26 -0
  95. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/004-window-too-long.json +26 -0
  96. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/005-alg-not-allowed.json +26 -0
  97. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/006-missing-covered-component.json +26 -0
  98. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/007-missing-content-digest.json +26 -0
  99. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/008-unknown-keyid.json +26 -0
  100. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/009-key-ops-missing-verify.json +27 -0
  101. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/010-content-digest-mismatch.json +33 -0
  102. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/011-malformed-header.json +27 -0
  103. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/012-missing-expires-param.json +26 -0
  104. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/013-expires-le-created.json +27 -0
  105. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/014-missing-nonce-param.json +27 -0
  106. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/015-signature-invalid.json +28 -0
  107. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/016-replayed-nonce.json +35 -0
  108. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/017-key-revoked.json +38 -0
  109. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/018-digest-covered-when-forbidden.json +28 -0
  110. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/019-signature-without-signature-input.json +26 -0
  111. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/020-rate-abuse.json +34 -0
  112. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/021-duplicate-signature-input-label.json +31 -0
  113. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/022-multi-valued-content-type.json +31 -0
  114. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/023-multi-valued-content-digest.json +32 -0
  115. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/024-unquoted-string-param.json +31 -0
  116. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/025-jwk-alg-crv-mismatch.json +43 -0
  117. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/026-non-ascii-host.json +31 -0
  118. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/027-webhook-registration-authentication-unsigned.json +25 -0
  119. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/positive/001-basic-post.json +30 -0
  120. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/positive/002-post-with-content-digest.json +31 -0
  121. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/positive/003-es256-post.json +30 -0
  122. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/positive/004-multiple-signature-labels.json +26 -0
  123. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/positive/005-default-port-stripped.json +30 -0
  124. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/positive/006-dot-segment-path.json +30 -0
  125. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/positive/007-query-byte-preserved.json +30 -0
  126. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/positive/008-percent-encoded-path.json +30 -0
  127. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/positive/009-percent-encoded-unreserved-decoded.json +30 -0
  128. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/positive/010-percent-encoded-slash-preserved.json +30 -0
  129. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/positive/011-ipv6-authority.json +30 -0
  130. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/positive/012-ipv6-authority-default-port-stripped.json +30 -0
  131. package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/README.md +211 -0
  132. package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/keys.json +61 -0
  133. package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/negative/001-wrong-tag.json +26 -0
  134. package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/negative/002-expired-signature.json +26 -0
  135. package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/negative/003-window-too-long.json +26 -0
  136. package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/negative/004-alg-not-allowed.json +26 -0
  137. package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/negative/005-missing-authority-component.json +26 -0
  138. package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/negative/006-missing-content-digest.json +25 -0
  139. package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/negative/007-unknown-keyid.json +26 -0
  140. package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/negative/008-wrong-adcp-use.json +26 -0
  141. package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/negative/009-content-digest-mismatch.json +26 -0
  142. package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/negative/010-malformed-signature-input.json +26 -0
  143. package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/negative/011-signature-without-input.json +25 -0
  144. package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/negative/012-missing-expires-param.json +26 -0
  145. package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/negative/013-expires-le-created.json +26 -0
  146. package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/negative/014-missing-nonce-param.json +26 -0
  147. package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/negative/015-signature-invalid.json +26 -0
  148. package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/negative/016-replayed-nonce.json +37 -0
  149. package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/negative/017-key-revoked.json +32 -0
  150. package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/negative/018-rate-abuse.json +33 -0
  151. package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/negative/019-revocation-stale.json +32 -0
  152. package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/negative/020-key-ops-missing-verify.json +41 -0
  153. package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/negative/021-base64-alphabet-mixing.json +26 -0
  154. package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/positive/001-basic-post.json +24 -0
  155. package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/positive/002-es256-post.json +24 -0
  156. package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/positive/003-multiple-signature-labels.json +24 -0
  157. package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/positive/004-default-port-stripped.json +24 -0
  158. package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/positive/005-percent-encoded-path.json +24 -0
  159. package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/positive/006-query-byte-preserved.json +24 -0
  160. package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/positive/007-body-without-idempotency-key.json +25 -0
  161. package/compliance/cache/3.0.6.previous/universal/capability-discovery.yaml +125 -0
  162. package/compliance/cache/3.0.6.previous/universal/collection-lists-pagination-integrity.yaml +306 -0
  163. package/compliance/cache/3.0.6.previous/universal/content-standards-pagination-integrity.yaml +326 -0
  164. package/compliance/cache/3.0.6.previous/universal/deterministic-testing.yaml +1343 -0
  165. package/compliance/cache/3.0.6.previous/universal/error-compliance.yaml +474 -0
  166. package/compliance/cache/3.0.6.previous/universal/fictional-entities.yaml +307 -0
  167. package/compliance/cache/3.0.6.previous/universal/get-media-buys-pagination-integrity.yaml +160 -0
  168. package/compliance/cache/3.0.6.previous/universal/get-signals-pagination-integrity.yaml +211 -0
  169. package/compliance/cache/3.0.6.previous/universal/idempotency.yaml +593 -0
  170. package/compliance/cache/3.0.6.previous/universal/pagination-integrity-creative-formats.yaml +258 -0
  171. package/compliance/cache/3.0.6.previous/universal/pagination-integrity-list-accounts.yaml +262 -0
  172. package/compliance/cache/3.0.6.previous/universal/pagination-integrity.yaml +263 -0
  173. package/compliance/cache/3.0.6.previous/universal/property-lists-pagination-integrity.yaml +307 -0
  174. package/compliance/cache/3.0.6.previous/universal/runner-output-contract.yaml +358 -0
  175. package/compliance/cache/3.0.6.previous/universal/schema-validation.yaml +526 -0
  176. package/compliance/cache/3.0.6.previous/universal/security.yaml +431 -0
  177. package/compliance/cache/3.0.6.previous/universal/signed-requests.yaml +205 -0
  178. package/compliance/cache/3.0.6.previous/universal/storyboard-schema.yaml +1176 -0
  179. package/compliance/cache/3.0.6.previous/universal/v3-envelope-integrity.yaml +106 -0
  180. package/compliance/cache/3.0.6.previous/universal/webhook-emission.yaml +337 -0
  181. package/dist/lib/schemas-data/v2.5/_provenance.json +1 -1
  182. package/dist/lib/server/create-adcp-server.d.ts +33 -0
  183. package/dist/lib/server/create-adcp-server.d.ts.map +1 -1
  184. package/dist/lib/server/create-adcp-server.js +127 -1
  185. package/dist/lib/server/create-adcp-server.js.map +1 -1
  186. package/dist/lib/server/credential-policy.d.ts +221 -0
  187. package/dist/lib/server/credential-policy.d.ts.map +1 -0
  188. package/dist/lib/server/credential-policy.js +260 -0
  189. package/dist/lib/server/credential-policy.js.map +1 -0
  190. package/dist/lib/server/dynamic-registry.d.ts +219 -0
  191. package/dist/lib/server/dynamic-registry.d.ts.map +1 -0
  192. package/dist/lib/server/dynamic-registry.js +245 -0
  193. package/dist/lib/server/dynamic-registry.js.map +1 -0
  194. package/dist/lib/server/index.d.ts +8 -0
  195. package/dist/lib/server/index.d.ts.map +1 -1
  196. package/dist/lib/server/index.js +15 -4
  197. package/dist/lib/server/index.js.map +1 -1
  198. package/dist/lib/server/operational-platform.d.ts +239 -0
  199. package/dist/lib/server/operational-platform.d.ts.map +1 -0
  200. package/dist/lib/server/operational-platform.js +94 -0
  201. package/dist/lib/server/operational-platform.js.map +1 -0
  202. package/dist/lib/server/wire-safe.d.ts +211 -0
  203. package/dist/lib/server/wire-safe.d.ts.map +1 -0
  204. package/dist/lib/server/wire-safe.js +231 -0
  205. package/dist/lib/server/wire-safe.js.map +1 -0
  206. package/dist/lib/server/wire-spec-fields.generated.d.ts +168 -0
  207. package/dist/lib/server/wire-spec-fields.generated.d.ts.map +1 -0
  208. package/dist/lib/server/wire-spec-fields.generated.js +172 -0
  209. package/dist/lib/server/wire-spec-fields.generated.js.map +1 -0
  210. package/dist/lib/testing/compliance/index.d.ts +2 -0
  211. package/dist/lib/testing/compliance/index.d.ts.map +1 -1
  212. package/dist/lib/testing/compliance/index.js +6 -1
  213. package/dist/lib/testing/compliance/index.js.map +1 -1
  214. package/dist/lib/testing/compliance/summary.d.ts +77 -0
  215. package/dist/lib/testing/compliance/summary.d.ts.map +1 -0
  216. package/dist/lib/testing/compliance/summary.js +176 -0
  217. package/dist/lib/testing/compliance/summary.js.map +1 -0
  218. package/dist/lib/testing/storyboard/compliance.d.ts +26 -0
  219. package/dist/lib/testing/storyboard/compliance.d.ts.map +1 -1
  220. package/dist/lib/testing/storyboard/compliance.js +51 -0
  221. package/dist/lib/testing/storyboard/compliance.js.map +1 -1
  222. package/dist/lib/testing/storyboard/index.d.ts +2 -2
  223. package/dist/lib/testing/storyboard/index.d.ts.map +1 -1
  224. package/dist/lib/testing/storyboard/index.js +4 -2
  225. package/dist/lib/testing/storyboard/index.js.map +1 -1
  226. package/dist/lib/testing/storyboard/runner.d.ts.map +1 -1
  227. package/dist/lib/testing/storyboard/runner.js +58 -5
  228. package/dist/lib/testing/storyboard/runner.js.map +1 -1
  229. package/dist/lib/version.d.ts +3 -3
  230. package/dist/lib/version.d.ts.map +1 -1
  231. package/dist/lib/version.js +3 -3
  232. package/dist/lib/version.js.map +1 -1
  233. package/package.json +2 -2
@@ -0,0 +1,192 @@
1
+ id: media_buy_seller/governance_denied
2
+ version: "1.0.0"
3
+ title: "Seller rejects buy when governance denies"
4
+ category: media_buy_seller
5
+ summary: "Verifies that the seller rejects a media buy and propagates the denial when governance denies the transaction."
6
+ track: media_buy
7
+ required_tools:
8
+ - sync_governance
9
+ - get_products
10
+ - create_media_buy
11
+
12
+ narrative: |
13
+ This is a multi-agent test. The test harness sets up a governance plan on a governance
14
+ agent with a strict $10K budget, then registers that agent with the seller. The buyer
15
+ attempts a $50K media buy which exceeds the plan's budget.
16
+
17
+ When the seller calls check_governance, the governance agent denies because the
18
+ requested budget exceeds the plan total. The seller must reject the buy and propagate
19
+ the denial back to the buyer.
20
+
21
+ By default, the governance agent is the training agent at test-agent.adcontextprotocol.org.
22
+ Override with --governance-agent-url to use a custom governance agent.
23
+
24
+ agent:
25
+ interaction_model: media_buy_seller
26
+ capabilities:
27
+ - sells_media
28
+ - governance_aware
29
+ examples:
30
+ - "Any media buy seller with governance support"
31
+
32
+ caller:
33
+ role: buyer_agent
34
+ example: "Pinnacle Agency (buyer)"
35
+
36
+ prerequisites:
37
+ description: |
38
+ A governance agent that supports sync_plans and check_governance.
39
+ test_kit: "test-kits/acme-outdoor.yaml"
40
+
41
+ phases:
42
+ - id: governance_plan_setup
43
+ title: "Set up strict governance plan"
44
+ narrative: |
45
+ Create a governance plan on the governance agent with a strict $10K budget
46
+ and agent_limited authority. The subsequent $50K buy will exceed the plan
47
+ budget and should be denied.
48
+
49
+ steps:
50
+ - id: sync_plans
51
+ title: "Create strict governance plan"
52
+ task: sync_plans
53
+ schema_ref: "governance/sync-plans-request.json"
54
+ response_schema_ref: "governance/sync-plans-response.json"
55
+ doc_ref: "/governance/campaign/tasks/sync_plans"
56
+ stateful: true
57
+ expected: |
58
+ The governance agent acknowledges the plan with a plan_id.
59
+ sample_request:
60
+ idempotency_key: "comply-gov-denied-sync-plans-v1"
61
+ plans:
62
+ - plan_id: "comply-gov-denied-plan"
63
+ brand:
64
+ domain: "acmeoutdoor.example"
65
+ objectives: "Small test campaign — limited budget authority"
66
+ budget:
67
+ total: 10000
68
+ currency: "USD"
69
+ reallocation_threshold: 5000
70
+ flight:
71
+ start: "2026-04-01T00:00:00Z"
72
+ end: "2026-06-30T23:59:59Z"
73
+ countries: ["US"]
74
+ validations:
75
+ - check: response_schema
76
+ description: "Response matches sync-plans-response.json schema"
77
+
78
+ - id: seller_setup
79
+ title: "Account and governance registration on seller"
80
+ steps:
81
+ - id: sync_accounts
82
+ title: "Establish account with seller"
83
+ task: sync_accounts
84
+ schema_ref: "account/sync-accounts-request.json"
85
+ response_schema_ref: "account/sync-accounts-response.json"
86
+ doc_ref: "/accounts/tasks/sync_accounts"
87
+ stateful: true
88
+ expected: |
89
+ Return the account with account_id and status active.
90
+ sample_request:
91
+ accounts:
92
+ - brand:
93
+ domain: "acmeoutdoor.example"
94
+ operator: "pinnacle-agency.example"
95
+ billing: "operator"
96
+ payment_terms: "net_30"
97
+ idempotency_key: "$generate:uuid_v4#media_buy_seller_governance_denied_seller_setup_sync_accounts"
98
+ validations:
99
+ - check: response_schema
100
+ description: "Response matches sync-accounts-response.json schema"
101
+ - check: field_present
102
+ path: "accounts[0].account_id"
103
+ description: "Account has a platform-assigned ID"
104
+
105
+ - id: sync_governance
106
+ title: "Register governance agent with seller"
107
+ task: sync_governance
108
+ schema_ref: "account/sync-governance-request.json"
109
+ response_schema_ref: "account/sync-governance-response.json"
110
+ doc_ref: "/accounts/tasks/sync_governance"
111
+ stateful: true
112
+ expected: |
113
+ Acknowledge the governance agent registration.
114
+ sample_request:
115
+ accounts:
116
+ - account:
117
+ brand:
118
+ domain: "acmeoutdoor.example"
119
+ operator: "pinnacle-agency.example"
120
+ governance_agents:
121
+ - url: "$context.governance_agent_url"
122
+ authentication:
123
+ schemes: ["Bearer"]
124
+ credentials: "gov-token-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
125
+ categories: ["budget_authority", "brand_policy"]
126
+ idempotency_key: "$generate:uuid_v4#media_buy_seller_governance_denied_seller_setup_sync_governance"
127
+ validations:
128
+ - check: response_schema
129
+ description: "Response matches sync-governance-response.json schema"
130
+
131
+ - id: buy_denied
132
+ title: "Create buy exceeding governance limits"
133
+ steps:
134
+ - id: get_products_brief
135
+ title: "Discover products"
136
+ task: get_products
137
+ schema_ref: "media-buy/get-products-request.json"
138
+ response_schema_ref: "media-buy/get-products-response.json"
139
+ doc_ref: "/media-buy/task-reference/get_products"
140
+ comply_scenario: full_sales_flow
141
+ stateful: false
142
+ expected: |
143
+ Return products matching the brief.
144
+ sample_request:
145
+ buying_mode: "brief"
146
+ brief: "Premium video and display on outdoor lifestyle. Q2 flight, $50K budget. Adults 25-54, US."
147
+ account:
148
+ brand:
149
+ domain: "acmeoutdoor.example"
150
+ operator: "pinnacle-agency.example"
151
+ validations:
152
+ - check: response_schema
153
+ description: "Response matches get-products-response.json schema"
154
+ - check: field_present
155
+ path: "products"
156
+ description: "Response contains products"
157
+
158
+ - id: create_media_buy_denied
159
+ title: "Create buy (governance denies — should fail)"
160
+ task: create_media_buy
161
+ schema_ref: "media-buy/create-media-buy-request.json"
162
+ response_schema_ref: "media-buy/create-media-buy-response.json"
163
+ doc_ref: "/media-buy/task-reference/create_media_buy"
164
+ comply_scenario: create_media_buy
165
+ stateful: true
166
+ expect_error: true
167
+ negative_path: payload_well_formed
168
+ expected: |
169
+ The buy is rejected because governance denied — the $50K buy exceeds
170
+ the plan's $10K budget. The seller propagates the denial with findings.
171
+ sample_request:
172
+ brand:
173
+ domain: "acmeoutdoor.example"
174
+ account:
175
+ brand:
176
+ domain: "acmeoutdoor.example"
177
+ operator: "pinnacle-agency.example"
178
+ sandbox: true
179
+ idempotency_key: "$generate:uuid_v4#governance_denied_create_media_buy"
180
+ start_time: "2026-04-01T00:00:00Z"
181
+ end_time: "2026-06-30T23:59:59Z"
182
+ packages:
183
+ - product_id: "outdoor_display_q2"
184
+ budget: 30000
185
+ pricing_option_id: "cpm_standard"
186
+ - product_id: "outdoor_video_q2"
187
+ budget: 20000
188
+ pricing_option_id: "cpm_standard"
189
+ validations:
190
+ - check: error_code
191
+ value: "GOVERNANCE_DENIED"
192
+ description: "Error code indicates governance denial"
@@ -0,0 +1,244 @@
1
+ id: media_buy_seller/governance_denied_recovery
2
+ version: "1.0.0"
3
+ title: "Seller accepts corrected buy after governance denial"
4
+ category: media_buy_seller
5
+ summary: "Verifies that a buyer can recover from GOVERNANCE_DENIED by shrinking the buy to within plan limits and retrying."
6
+ track: media_buy
7
+ required_tools:
8
+ - sync_governance
9
+ - get_products
10
+ - create_media_buy
11
+
12
+ narrative: |
13
+ GOVERNANCE_DENIED is a correctable error, not a dead end. The buyer must be able to
14
+ read the denial findings, adjust the media buy, and retry. This scenario exercises the
15
+ full loop: strict governance plan ($10K), failed $50K buy that is denied, then a
16
+ corrected $8K buy that fits within the plan and is approved.
17
+
18
+ The seller must propagate the governance findings unchanged so the buyer can identify
19
+ exactly which constraint was violated (budget authority, brand policy, etc.) and
20
+ correct it.
21
+
22
+ By default, the governance agent is the training agent at test-agent.adcontextprotocol.org.
23
+ Override with --governance-agent-url to use a custom governance agent.
24
+
25
+ agent:
26
+ interaction_model: media_buy_seller
27
+ capabilities:
28
+ - sells_media
29
+ - governance_aware
30
+ examples:
31
+ - "Any media buy seller with governance support"
32
+
33
+ caller:
34
+ role: buyer_agent
35
+ example: "Pinnacle Agency (buyer)"
36
+
37
+ prerequisites:
38
+ description: |
39
+ A governance agent that supports sync_plans and check_governance.
40
+ test_kit: "test-kits/acme-outdoor.yaml"
41
+
42
+ phases:
43
+ - id: governance_plan_setup
44
+ title: "Set up strict governance plan"
45
+ narrative: |
46
+ Create a governance plan with a $10K budget. The initial $50K buy will exceed this
47
+ limit; the retry at $8K will fit.
48
+
49
+ steps:
50
+ - id: sync_plans
51
+ title: "Create strict governance plan"
52
+ task: sync_plans
53
+ schema_ref: "governance/sync-plans-request.json"
54
+ response_schema_ref: "governance/sync-plans-response.json"
55
+ doc_ref: "/governance/campaign/tasks/sync_plans"
56
+ stateful: true
57
+ expected: |
58
+ The governance agent acknowledges the plan.
59
+ sample_request:
60
+ idempotency_key: "comply-gov-recovery-sync-plans-v1"
61
+ plans:
62
+ - plan_id: "comply-gov-recovery-plan"
63
+ brand:
64
+ domain: "acmeoutdoor.example"
65
+ objectives: "Strict-budget plan for denial + recovery validation"
66
+ budget:
67
+ total: 10000
68
+ currency: "USD"
69
+ reallocation_threshold: 5000
70
+ flight:
71
+ start: "2026-04-01T00:00:00Z"
72
+ end: "2026-06-30T23:59:59Z"
73
+ countries: ["US"]
74
+ validations:
75
+ - check: response_schema
76
+ description: "Response matches sync-plans-response.json schema"
77
+
78
+ - id: seller_setup
79
+ title: "Account and governance registration on seller"
80
+ steps:
81
+ - id: sync_accounts
82
+ title: "Establish account with seller"
83
+ task: sync_accounts
84
+ schema_ref: "account/sync-accounts-request.json"
85
+ response_schema_ref: "account/sync-accounts-response.json"
86
+ doc_ref: "/accounts/tasks/sync_accounts"
87
+ stateful: true
88
+ expected: |
89
+ Return the account with account_id active.
90
+ sample_request:
91
+ accounts:
92
+ - brand:
93
+ domain: "acmeoutdoor.example"
94
+ operator: "pinnacle-agency.example"
95
+ billing: "operator"
96
+ payment_terms: "net_30"
97
+ idempotency_key: "$generate:uuid_v4#media_buy_seller_governance_denied_recovery_seller_setup_sync_accounts"
98
+ validations:
99
+ - check: response_schema
100
+ description: "Response matches sync-accounts-response.json schema"
101
+ - check: field_present
102
+ path: "accounts[0].account_id"
103
+ description: "Account has a platform-assigned ID"
104
+
105
+ - id: sync_governance
106
+ title: "Register governance agent with seller"
107
+ task: sync_governance
108
+ schema_ref: "account/sync-governance-request.json"
109
+ response_schema_ref: "account/sync-governance-response.json"
110
+ doc_ref: "/accounts/tasks/sync_governance"
111
+ stateful: true
112
+ expected: |
113
+ Acknowledge the governance agent registration.
114
+ sample_request:
115
+ accounts:
116
+ - account:
117
+ brand:
118
+ domain: "acmeoutdoor.example"
119
+ operator: "pinnacle-agency.example"
120
+ governance_agents:
121
+ - url: "$context.governance_agent_url"
122
+ authentication:
123
+ schemes: ["Bearer"]
124
+ credentials: "gov-token-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
125
+ categories: ["budget_authority"]
126
+ idempotency_key: "$generate:uuid_v4#media_buy_seller_governance_denied_recovery_seller_setup_sync_governance"
127
+ validations:
128
+ - check: response_schema
129
+ description: "Response matches sync-governance-response.json schema"
130
+
131
+ - id: buy_denied
132
+ title: "Initial buy exceeds plan — governance denies"
133
+ steps:
134
+ - id: get_products_brief
135
+ title: "Discover products"
136
+ task: get_products
137
+ schema_ref: "media-buy/get-products-request.json"
138
+ response_schema_ref: "media-buy/get-products-response.json"
139
+ doc_ref: "/media-buy/task-reference/get_products"
140
+ comply_scenario: full_sales_flow
141
+ stateful: false
142
+ expected: |
143
+ Return products matching the brief.
144
+ sample_request:
145
+ buying_mode: "brief"
146
+ brief: "Display inventory on outdoor lifestyle content. Q2 flight."
147
+ account:
148
+ brand:
149
+ domain: "acmeoutdoor.example"
150
+ operator: "pinnacle-agency.example"
151
+ context_outputs:
152
+ - path: "products[0].product_id"
153
+ key: "product_id"
154
+ - path: "products[0].pricing_options[0].pricing_option_id"
155
+ key: "pricing_option_id"
156
+ validations:
157
+ - check: response_schema
158
+ description: "Response matches get-products-response.json schema"
159
+ - check: field_present
160
+ path: "products"
161
+ description: "Response contains products"
162
+
163
+ - id: create_media_buy_denied
164
+ title: "Attempt $50K buy — denied"
165
+ task: create_media_buy
166
+ schema_ref: "media-buy/create-media-buy-request.json"
167
+ response_schema_ref: "media-buy/create-media-buy-response.json"
168
+ doc_ref: "/media-buy/task-reference/create_media_buy"
169
+ comply_scenario: create_media_buy
170
+ expect_error: true
171
+ negative_path: payload_well_formed
172
+ stateful: true
173
+ expected: |
174
+ The buy is rejected with GOVERNANCE_DENIED. The response includes findings
175
+ from the governance agent explaining which constraint was exceeded.
176
+
177
+ sample_request:
178
+ brand:
179
+ domain: "acmeoutdoor.example"
180
+ account:
181
+ brand:
182
+ domain: "acmeoutdoor.example"
183
+ operator: "pinnacle-agency.example"
184
+ idempotency_key: "gov-recovery-initial-denied-v1"
185
+ start_time: "2026-04-01T00:00:00Z"
186
+ end_time: "2026-06-30T23:59:59Z"
187
+ packages:
188
+ - product_id: "$context.product_id"
189
+ budget: 50000
190
+ pricing_option_id: "$context.pricing_option_id"
191
+ context:
192
+ correlation_id: "governance_denied_recovery--create_media_buy_denied"
193
+ validations:
194
+ - check: error_code
195
+ value: "GOVERNANCE_DENIED"
196
+ description: "Error code is GOVERNANCE_DENIED"
197
+ - check: field_value
198
+ path: "context.correlation_id"
199
+ value: "governance_denied_recovery--create_media_buy_denied"
200
+ description: "Response echoes context.correlation_id verbatim on error responses (echo contract applies to both success and failure)"
201
+
202
+ - id: buy_retried
203
+ title: "Corrected buy within plan — governance approves"
204
+ narrative: |
205
+ The buyer reads the denial findings, shrinks the budget to $8K (within the $10K
206
+ plan), and retries with a fresh idempotency_key. The seller consults governance
207
+ again, which now approves.
208
+
209
+ steps:
210
+ - id: create_media_buy_retry
211
+ title: "Retry with $8K — approved"
212
+ task: create_media_buy
213
+ schema_ref: "media-buy/create-media-buy-request.json"
214
+ response_schema_ref: "media-buy/create-media-buy-response.json"
215
+ doc_ref: "/media-buy/task-reference/create_media_buy"
216
+ comply_scenario: create_media_buy
217
+ stateful: true
218
+ expected: |
219
+ The buy succeeds. Governance approves because $8K fits within the $10K plan
220
+ budget. The seller returns a media_buy_id.
221
+
222
+ sample_request:
223
+ brand:
224
+ domain: "acmeoutdoor.example"
225
+ account:
226
+ brand:
227
+ domain: "acmeoutdoor.example"
228
+ operator: "pinnacle-agency.example"
229
+ idempotency_key: "gov-recovery-retry-approved-v1"
230
+ start_time: "2026-04-01T00:00:00Z"
231
+ end_time: "2026-06-30T23:59:59Z"
232
+ packages:
233
+ - product_id: "$context.product_id"
234
+ budget: 8000
235
+ pricing_option_id: "$context.pricing_option_id"
236
+ context_outputs:
237
+ - name: media_buy_id
238
+ path: "media_buy_id"
239
+ validations:
240
+ - check: response_schema
241
+ description: "Response matches create-media-buy-response.json schema"
242
+ - check: field_present
243
+ path: "media_buy_id"
244
+ description: "Seller returns a media_buy_id after governance approves"