@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,330 @@
1
+ id: governance_spend_authority
2
+ version: "1.0.0"
3
+ title: "Campaign governance — conditional approval"
4
+ protocol: governance
5
+ category: governance_spend_authority
6
+ summary: "Governance agent approves a media buy with conditions. Buyer re-checks after meeting the conditions."
7
+ track: campaign_governance
8
+ required_tools:
9
+ - sync_plans
10
+ - check_governance
11
+
12
+ # Cross-step assertion (adcp#2639): silent on approval runs; fires only
13
+ # if a seller surfaces a denial signal mid-flow and then still mutates
14
+ # the plan's resources. Kept wired here so any future "conditions not
15
+ # met → denied" phase added to this storyboard is automatically gated.
16
+ # Cross-step assertion (adcp#2664): status.monotonic rejects media_buy
17
+ # status transitions observed across steps that aren't on the spec
18
+ # lifecycle graph — e.g. active → pending_creatives.
19
+ invariants:
20
+ - governance.denial_blocks_mutation
21
+ - status.monotonic
22
+
23
+ narrative: |
24
+ The buyer's governance agent evaluates a media buy that falls within spending authority but
25
+ triggers policy conditions — for example, the buy targets a channel that requires weekly
26
+ reporting, or the creative format requires brand safety review.
27
+
28
+ The governance agent returns approved_with_conditions, attaching conditions the buyer must
29
+ honor during the campaign. The buyer can proceed with the media buy by passing the
30
+ governance context, but the conditions are binding.
31
+
32
+ This storyboard tests the middle path between outright approval and denial: the buy is
33
+ allowed, but with strings attached.
34
+
35
+ agent:
36
+ interaction_model: media_buy_seller
37
+ capabilities:
38
+ - sells_media
39
+ - governance_aware
40
+ examples:
41
+ - "Publisher platform with governance support"
42
+ - "SSP that respects governance checks"
43
+
44
+ caller:
45
+ role: buyer_agent
46
+ example: "Pinnacle Agency (buyer)"
47
+
48
+ prerequisites:
49
+ description: |
50
+ The caller needs a brand identity, operator credentials, and a governance agent URL.
51
+ The governance plan defines policy conditions that trigger on specific buy parameters.
52
+ test_kit: "test-kits/acme-outdoor.yaml"
53
+ controller_seeding: true
54
+
55
+ fixtures:
56
+ products:
57
+ - product_id: "sports_ctv_q2"
58
+ delivery_type: "guaranteed"
59
+ channels: ["ctv"]
60
+ format_ids:
61
+ - id: "video_30s"
62
+ - product_id: "lifestyle_display_q2"
63
+ delivery_type: "guaranteed"
64
+ channels: ["display"]
65
+ format_ids:
66
+ - id: "display_300x250"
67
+ pricing_options:
68
+ - product_id: "sports_ctv_q2"
69
+ pricing_option_id: "cpm_guaranteed"
70
+ pricing_model: "cpm"
71
+ currency: "USD"
72
+ fixed_price: 45.0
73
+ - product_id: "lifestyle_display_q2"
74
+ pricing_option_id: "cpm_standard"
75
+ pricing_model: "cpm"
76
+ currency: "USD"
77
+ fixed_price: 8.0
78
+ plans:
79
+ - plan_id: "gov_acme_spend_authority_q2_2027"
80
+ brand:
81
+ domain: "acmeoutdoor.example"
82
+ objectives: "Full spending authority with conditional policies on CTV reporting and UGC brand safety"
83
+ budget:
84
+ total: 100000
85
+ currency: "USD"
86
+ reallocation_unlimited: true
87
+ flight:
88
+ start: "2027-01-01T00:00:00Z"
89
+ end: "2027-12-31T23:59:59Z"
90
+ countries: ["US"]
91
+ custom_policies:
92
+ - policy_id: "ctv_weekly_reporting"
93
+ enforcement: "must"
94
+ policy: "CTV buys require weekly delivery reporting."
95
+ - policy_id: "ugc_brand_safety"
96
+ enforcement: "must"
97
+ policy: "UGC placements require brand safety review before go-live."
98
+
99
+ phases:
100
+ - id: capability_discovery
101
+ title: "Capability discovery"
102
+ narrative: |
103
+ The buyer calls get_adcp_capabilities to confirm the agent supports media buying before sending briefs or creating buys.
104
+
105
+ steps:
106
+ - id: get_capabilities
107
+ title: "Check agent capabilities"
108
+ narrative: |
109
+ Verify that the agent declares the expected protocol support before
110
+ proceeding with domain-specific operations.
111
+ task: get_adcp_capabilities
112
+ schema_ref: "protocol/get-adcp-capabilities-request.json"
113
+ response_schema_ref: "protocol/get-adcp-capabilities-response.json"
114
+ doc_ref: "/protocol/get_adcp_capabilities"
115
+ comply_scenario: capability_discovery
116
+ stateful: false
117
+ expected: |
118
+ Return capabilities declaring media_buy in supported_protocols, confirming the agent sells media.
119
+ sample_request:
120
+ context:
121
+ correlation_id: "governance_spend_authority--get_capabilities"
122
+ validations:
123
+ - check: response_schema
124
+ description: "Response matches get-adcp-capabilities-response.json schema"
125
+ - check: field_present
126
+ path: "supported_protocols"
127
+ description: "Agent declares supported protocols"
128
+
129
+ - check: field_present
130
+ path: "context"
131
+ description: "Response echoes back the context object"
132
+ - check: field_value
133
+ path: "context.correlation_id"
134
+ value: "governance_spend_authority--get_capabilities"
135
+ description: "Context correlation_id returned unchanged"
136
+ - id: plan_registration
137
+ title: "Register governance plan with policy conditions"
138
+ narrative: |
139
+ The buyer registers a governance plan that allows the agent full spending authority
140
+ but attaches policy conditions for specific channels or formats. Buys that trigger
141
+ these policies are approved with conditions rather than denied.
142
+
143
+ steps:
144
+ - id: sync_plans
145
+ title: "Register a governance plan with policy conditions"
146
+ narrative: |
147
+ The buyer's governance agent registers a plan with full spending authority but
148
+ custom policies that require weekly reporting for CTV buys and brand safety
149
+ review for user-generated content placements.
150
+ task: sync_plans
151
+ schema_ref: "governance/sync-plans-request.json"
152
+ response_schema_ref: "governance/sync-plans-response.json"
153
+ doc_ref: "/governance/campaign/tasks/sync_plans"
154
+ comply_scenario: governance_spend_authority
155
+ stateful: true
156
+ expected: |
157
+ Acknowledge the governance plan:
158
+ - plan_id: identifier for this governance plan
159
+ - custom_policies: policy conditions registered
160
+
161
+ sample_request:
162
+ idempotency_key: "governance-spend-authority-sync-plans-v1"
163
+ plans:
164
+ - plan_id: "gov_acme_spend_authority_q2_2027"
165
+ brand:
166
+ domain: "acmeoutdoor.example"
167
+ objectives: "Full spending authority with conditional policies on CTV reporting and UGC brand safety"
168
+ budget:
169
+ total: 100000
170
+ currency: "USD"
171
+ reallocation_unlimited: true
172
+ flight:
173
+ start: "2027-01-01T00:00:00Z"
174
+ end: "2027-12-31T23:59:59Z"
175
+ countries: ["US"]
176
+ custom_policies:
177
+ - policy_id: "ctv_weekly_reporting"
178
+ enforcement: "must"
179
+ policy: "CTV buys require weekly delivery reporting."
180
+ - policy_id: "ugc_brand_safety"
181
+ enforcement: "must"
182
+ policy: "UGC placements require brand safety review before go-live."
183
+
184
+ context:
185
+ correlation_id: "governance_spend_authority--sync_plans"
186
+ context_outputs:
187
+ - name: plan_id
188
+ path: 'plans[0].plan_id'
189
+ validations:
190
+ - check: response_schema
191
+ description: "Response matches sync-plans-response.json schema"
192
+
193
+ - check: field_present
194
+ path: "context"
195
+ description: "Response echoes back the context object"
196
+ - check: field_value
197
+ path: "context.correlation_id"
198
+ value: "governance_spend_authority--sync_plans"
199
+ description: "Context correlation_id returned unchanged"
200
+ - check: field_present
201
+ path: "plans[0].plan_id"
202
+ description: "Governance agent assigns plan_id — must be echoed in check_governance"
203
+ - check: field_present
204
+ path: "plans[0].version"
205
+ description: "Plan includes version for concurrency"
206
+ - id: governance_check_conditions
207
+ title: "Governance check — approved with conditions"
208
+ narrative: |
209
+ The buyer proposes a media buy that includes CTV inventory. The governance agent
210
+ approves the buy but attaches the weekly reporting condition from the plan. The
211
+ buyer receives a governance context that encodes these conditions.
212
+
213
+ steps:
214
+ - id: check_governance_conditions
215
+ title: "Pre-buy governance check (approved with conditions)"
216
+ narrative: |
217
+ The buyer calls check_governance with a media buy that includes CTV products.
218
+ The governance agent approves the buy but attaches conditions: weekly delivery
219
+ reporting is required for the CTV line items.
220
+ task: check_governance
221
+ schema_ref: "governance/check-governance-request.json"
222
+ response_schema_ref: "governance/check-governance-response.json"
223
+ doc_ref: "/governance/campaign/tasks/check_governance"
224
+ comply_scenario: governance_spend_authority
225
+ stateful: true
226
+ expected: |
227
+ Return an approved governance decision with conditions:
228
+ - decision: approved
229
+ - conditions: array of requirements the buyer must honor
230
+ - e.g., "Weekly delivery reporting required for CTV line items"
231
+ - governance_context: token the buyer passes to create_media_buy
232
+ - findings: may include warning-severity findings noting the conditions
233
+
234
+ sample_request:
235
+ plan_id: "$context.plan_id"
236
+ caller: "https://pinnacle-agency.example"
237
+ tool: "create_media_buy"
238
+ payload:
239
+ account:
240
+ brand:
241
+ domain: "acmeoutdoor.example"
242
+ operator: "pinnacle-agency.example"
243
+ total_budget: 40000
244
+ packages:
245
+ - product_id: "sports_ctv_q2"
246
+ budget: 25000
247
+ - product_id: "lifestyle_display_q2"
248
+ budget: 15000
249
+
250
+ context:
251
+ correlation_id: "governance_spend_authority--check_governance_conditions"
252
+ validations:
253
+ - check: response_schema
254
+ description: "Response matches check-governance-response.json schema"
255
+ - check: field_present
256
+ path: "status"
257
+ description: "Response contains a governance decision"
258
+ - check: field_present
259
+ path: "conditions"
260
+ description: "Approval includes conditions"
261
+ - check: field_present
262
+ path: "governance_context"
263
+ description: "Response includes governance context for the media buy"
264
+
265
+ - check: field_present
266
+ path: "context"
267
+ description: "Response echoes back the context object"
268
+ - check: field_value
269
+ path: "context.correlation_id"
270
+ value: "governance_spend_authority--check_governance_conditions"
271
+ description: "Context correlation_id returned unchanged"
272
+ - id: create_buy_with_conditions
273
+ title: "Create media buy with governance conditions"
274
+ narrative: |
275
+ The buyer creates the media buy, passing the governance context from the conditional
276
+ approval. The seller validates the governance approval and confirms the buy. The
277
+ conditions from the governance check are now binding for the campaign duration.
278
+
279
+ steps:
280
+ - id: create_media_buy
281
+ title: "Create a media buy with conditional governance approval"
282
+ narrative: |
283
+ The buyer creates the media buy with the governance_context token from the
284
+ conditional approval. The seller confirms the buy. The buyer is now bound by
285
+ the conditions (weekly reporting for CTV line items).
286
+ task: create_media_buy
287
+ schema_ref: "media-buy/create-media-buy-request.json"
288
+ response_schema_ref: "media-buy/create-media-buy-response.json"
289
+ doc_ref: "/media-buy/task-reference/create_media_buy"
290
+ comply_scenario: governance_spend_authority
291
+ stateful: true
292
+ expected: |
293
+ Confirm the media buy with governance approval:
294
+ - media_buy_id: your platform's identifier
295
+ - status: active
296
+ - governance_context: echoed back confirming governance was validated
297
+ - packages: line items
298
+
299
+ sample_request:
300
+ account:
301
+ brand:
302
+ domain: "acmeoutdoor.example"
303
+ operator: "pinnacle-agency.example"
304
+ brand:
305
+ domain: "acmeoutdoor.example"
306
+ governance_context: "gov_ctx_acme_conditional_approved"
307
+ start_time: "2026-04-01T00:00:00Z"
308
+ end_time: "2026-06-30T23:59:59Z"
309
+ packages:
310
+ - product_id: "sports_ctv_q2"
311
+ budget: 25000
312
+ pricing_option_id: "cpm_guaranteed"
313
+ - product_id: "lifestyle_display_q2"
314
+ budget: 15000
315
+ pricing_option_id: "cpm_standard"
316
+
317
+ idempotency_key: "$generate:uuid_v4#governance_spend_authority_create_buy_with_conditions_create_media_buy"
318
+ context:
319
+ correlation_id: "governance_spend_authority--create_media_buy"
320
+ validations:
321
+ - check: response_schema
322
+ description: "Response matches create-media-buy-response.json schema"
323
+
324
+ - check: field_present
325
+ path: "context"
326
+ description: "Response echoes back the context object"
327
+ - check: field_value
328
+ path: "context.correlation_id"
329
+ value: "governance_spend_authority--create_media_buy"
330
+ description: "Context correlation_id returned unchanged"