@adcp/sdk 6.9.0 → 6.11.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 (261) 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/decisioning/async-outcome.d.ts +17 -0
  191. package/dist/lib/server/decisioning/async-outcome.d.ts.map +1 -1
  192. package/dist/lib/server/decisioning/async-outcome.js +23 -18
  193. package/dist/lib/server/decisioning/async-outcome.js.map +1 -1
  194. package/dist/lib/server/decisioning/context.d.ts +8 -2
  195. package/dist/lib/server/decisioning/context.d.ts.map +1 -1
  196. package/dist/lib/server/decisioning/index.d.ts +1 -0
  197. package/dist/lib/server/decisioning/index.d.ts.map +1 -1
  198. package/dist/lib/server/decisioning/index.js.map +1 -1
  199. package/dist/lib/server/decisioning/runtime/from-platform.js +6 -4
  200. package/dist/lib/server/decisioning/runtime/from-platform.js.map +1 -1
  201. package/dist/lib/server/decisioning/runtime/postgres-task-registry.d.ts.map +1 -1
  202. package/dist/lib/server/decisioning/runtime/postgres-task-registry.js +5 -2
  203. package/dist/lib/server/decisioning/runtime/postgres-task-registry.js.map +1 -1
  204. package/dist/lib/server/decisioning/runtime/task-registry.d.ts +5 -0
  205. package/dist/lib/server/decisioning/runtime/task-registry.d.ts.map +1 -1
  206. package/dist/lib/server/decisioning/runtime/task-registry.js +4 -1
  207. package/dist/lib/server/decisioning/runtime/task-registry.js.map +1 -1
  208. package/dist/lib/server/decisioning/runtime/to-context.d.ts.map +1 -1
  209. package/dist/lib/server/decisioning/runtime/to-context.js +10 -2
  210. package/dist/lib/server/decisioning/runtime/to-context.js.map +1 -1
  211. package/dist/lib/server/dynamic-registry.d.ts +219 -0
  212. package/dist/lib/server/dynamic-registry.d.ts.map +1 -0
  213. package/dist/lib/server/dynamic-registry.js +245 -0
  214. package/dist/lib/server/dynamic-registry.js.map +1 -0
  215. package/dist/lib/server/index.d.ts +8 -0
  216. package/dist/lib/server/index.d.ts.map +1 -1
  217. package/dist/lib/server/index.js +15 -4
  218. package/dist/lib/server/index.js.map +1 -1
  219. package/dist/lib/server/operational-platform.d.ts +239 -0
  220. package/dist/lib/server/operational-platform.d.ts.map +1 -0
  221. package/dist/lib/server/operational-platform.js +94 -0
  222. package/dist/lib/server/operational-platform.js.map +1 -0
  223. package/dist/lib/server/test-controller.d.ts +2 -0
  224. package/dist/lib/server/test-controller.d.ts.map +1 -1
  225. package/dist/lib/server/test-controller.js +6 -11
  226. package/dist/lib/server/test-controller.js.map +1 -1
  227. package/dist/lib/server/wire-safe.d.ts +211 -0
  228. package/dist/lib/server/wire-safe.d.ts.map +1 -0
  229. package/dist/lib/server/wire-safe.js +231 -0
  230. package/dist/lib/server/wire-safe.js.map +1 -0
  231. package/dist/lib/server/wire-spec-fields.generated.d.ts +168 -0
  232. package/dist/lib/server/wire-spec-fields.generated.d.ts.map +1 -0
  233. package/dist/lib/server/wire-spec-fields.generated.js +172 -0
  234. package/dist/lib/server/wire-spec-fields.generated.js.map +1 -0
  235. package/dist/lib/testing/compliance/index.d.ts +2 -0
  236. package/dist/lib/testing/compliance/index.d.ts.map +1 -1
  237. package/dist/lib/testing/compliance/index.js +6 -1
  238. package/dist/lib/testing/compliance/index.js.map +1 -1
  239. package/dist/lib/testing/compliance/summary.d.ts +77 -0
  240. package/dist/lib/testing/compliance/summary.d.ts.map +1 -0
  241. package/dist/lib/testing/compliance/summary.js +176 -0
  242. package/dist/lib/testing/compliance/summary.js.map +1 -0
  243. package/dist/lib/testing/comply-controller.d.ts +2 -0
  244. package/dist/lib/testing/comply-controller.d.ts.map +1 -1
  245. package/dist/lib/testing/comply-controller.js.map +1 -1
  246. package/dist/lib/testing/storyboard/compliance.d.ts +26 -0
  247. package/dist/lib/testing/storyboard/compliance.d.ts.map +1 -1
  248. package/dist/lib/testing/storyboard/compliance.js +51 -0
  249. package/dist/lib/testing/storyboard/compliance.js.map +1 -1
  250. package/dist/lib/testing/storyboard/index.d.ts +2 -2
  251. package/dist/lib/testing/storyboard/index.d.ts.map +1 -1
  252. package/dist/lib/testing/storyboard/index.js +4 -2
  253. package/dist/lib/testing/storyboard/index.js.map +1 -1
  254. package/dist/lib/testing/storyboard/runner.d.ts.map +1 -1
  255. package/dist/lib/testing/storyboard/runner.js +58 -5
  256. package/dist/lib/testing/storyboard/runner.js.map +1 -1
  257. package/dist/lib/version.d.ts +3 -3
  258. package/dist/lib/version.d.ts.map +1 -1
  259. package/dist/lib/version.js +3 -3
  260. package/dist/lib/version.js.map +1 -1
  261. package/package.json +2 -2
@@ -0,0 +1,204 @@
1
+ id: brand_rights/governance_denied
2
+ version: "1.0.0"
3
+ title: "Brand agent rejects rights acquisition when governance denies"
4
+ category: brand_rights
5
+ summary: "Verifies that a brand agent propagates GOVERNANCE_DENIED when the buyer's governance plan denies a rights license."
6
+ track: brand
7
+ required_tools:
8
+ - sync_governance
9
+ - get_rights
10
+ - acquire_rights
11
+
12
+ narrative: |
13
+ Acquiring rights is a spending event. The brand agent must consult the buyer's
14
+ governance agent before issuing a license and deny the acquisition when governance
15
+ returns denied. This keeps licensing authority consistent with media buy spending
16
+ authority — a buyer cannot commit to a generative campaign budget that exceeds the
17
+ plan even when the spending flows to a brand agent instead of a seller.
18
+
19
+ This scenario sets up a strict $50 governance plan, registers governance with the
20
+ brand agent via sync_governance, then attempts to acquire rights whose pricing
21
+ exceeds the plan. The brand agent must return GOVERNANCE_DENIED with findings
22
+ propagated from the governance agent.
23
+
24
+ By default, the governance agent is the training agent at test-agent.adcontextprotocol.org.
25
+ Override with --governance-agent-url to use a custom governance agent.
26
+
27
+ agent:
28
+ interaction_model: brand_rights_holder
29
+ capabilities:
30
+ - rights_licensing
31
+ - governance_aware
32
+ examples:
33
+ - "Any brand rights agent that honors governance before licensing"
34
+
35
+ caller:
36
+ role: buyer_agent
37
+ example: "Pinnacle Agency (buyer)"
38
+
39
+ prerequisites:
40
+ description: |
41
+ A governance agent that supports sync_plans and check_governance, and a brand
42
+ agent that supports sync_governance + acquire_rights.
43
+ test_kit: "test-kits/acme-outdoor.yaml"
44
+
45
+ phases:
46
+ - id: governance_plan_setup
47
+ title: "Set up strict governance plan"
48
+ steps:
49
+ - id: sync_plans
50
+ title: "Create strict governance plan"
51
+ task: sync_plans
52
+ schema_ref: "governance/sync-plans-request.json"
53
+ response_schema_ref: "governance/sync-plans-response.json"
54
+ doc_ref: "/governance/campaign/tasks/sync_plans"
55
+ stateful: true
56
+ expected: |
57
+ The governance agent acknowledges the plan.
58
+ sample_request:
59
+ plans:
60
+ - plan_id: "comply-rights-gov-denied"
61
+ brand:
62
+ domain: "acmeoutdoor.example"
63
+ objectives: "Restricted plan — rights licensing test"
64
+ budget:
65
+ total: 50
66
+ currency: "USD"
67
+ reallocation_threshold: 25
68
+ flight:
69
+ start: "2026-04-01T00:00:00Z"
70
+ end: "2026-06-30T23:59:59Z"
71
+ countries: ["US"]
72
+ idempotency_key: "$generate:uuid_v4#brand_rights_governance_denied_governance_plan_setup_sync_plans"
73
+ validations:
74
+ - check: response_schema
75
+ description: "Response matches sync-plans-response.json schema"
76
+
77
+ - id: brand_agent_setup
78
+ title: "Register account and governance with the brand agent"
79
+ steps:
80
+ - id: sync_accounts
81
+ title: "Establish account with brand agent"
82
+ task: sync_accounts
83
+ schema_ref: "account/sync-accounts-request.json"
84
+ response_schema_ref: "account/sync-accounts-response.json"
85
+ doc_ref: "/accounts/tasks/sync_accounts"
86
+ stateful: true
87
+ expected: |
88
+ Brand agent returns the account with account_id active.
89
+ sample_request:
90
+ accounts:
91
+ - brand:
92
+ domain: "acmeoutdoor.example"
93
+ operator: "pinnacle-agency.example"
94
+ billing: "operator"
95
+ payment_terms: "net_30"
96
+ idempotency_key: "$generate:uuid_v4#brand_rights_governance_denied_brand_agent_setup_sync_accounts"
97
+ validations:
98
+ - check: response_schema
99
+ description: "Response matches sync-accounts-response.json schema"
100
+ - check: field_present
101
+ path: "accounts[0].account_id"
102
+ description: "Account has a platform-assigned ID"
103
+
104
+ - id: sync_governance
105
+ title: "Register governance agent with brand agent"
106
+ task: sync_governance
107
+ schema_ref: "account/sync-governance-request.json"
108
+ response_schema_ref: "account/sync-governance-response.json"
109
+ doc_ref: "/accounts/tasks/sync_governance"
110
+ stateful: true
111
+ expected: |
112
+ Brand agent acknowledges governance registration.
113
+ sample_request:
114
+ accounts:
115
+ - account:
116
+ brand:
117
+ domain: "acmeoutdoor.example"
118
+ operator: "pinnacle-agency.example"
119
+ governance_agents:
120
+ - url: "$context.governance_agent_url"
121
+ authentication:
122
+ schemes: ["Bearer"]
123
+ credentials: "gov-token-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
124
+ categories: ["budget_authority"]
125
+ idempotency_key: "$generate:uuid_v4#brand_rights_governance_denied_brand_agent_setup_sync_governance"
126
+ validations:
127
+ - check: response_schema
128
+ description: "Response matches sync-governance-response.json schema"
129
+
130
+ - id: rights_denied
131
+ title: "Attempt rights acquisition — governance denies"
132
+ steps:
133
+ - id: get_rights_catalog
134
+ title: "Discover rights to license"
135
+ task: get_rights
136
+ schema_ref: "brand/get-rights-request.json"
137
+ response_schema_ref: "brand/get-rights-response.json"
138
+ doc_ref: "/brand-protocol/tasks/get_rights"
139
+ stateful: false
140
+ expected: |
141
+ Return rights available for licensing, each with pricing_options.
142
+ sample_request:
143
+ buyer:
144
+ domain: "pinnacle-agency.example"
145
+ query: "licensed commercial rights for a regional outdoor retail campaign"
146
+ uses:
147
+ - "commercial"
148
+ - "endorsement"
149
+ context_outputs:
150
+ - path: "rights[0].rights_id"
151
+ key: "rights_id"
152
+ - path: "rights[0].pricing_options[0].pricing_option_id"
153
+ key: "pricing_option_id"
154
+ validations:
155
+ - check: response_schema
156
+ description: "Response matches get-rights-response.json schema"
157
+
158
+ - id: acquire_rights_denied
159
+ title: "acquire_rights — governance denies"
160
+ task: acquire_rights
161
+ schema_ref: "brand/acquire-rights-request.json"
162
+ response_schema_ref: "brand/acquire-rights-response.json"
163
+ doc_ref: "/brand-protocol/tasks/acquire_rights"
164
+ expect_error: true
165
+ negative_path: payload_well_formed
166
+ stateful: true
167
+ expected: |
168
+ Brand agent rejects with:
169
+ - code: GOVERNANCE_DENIED
170
+ - findings propagated from the governance agent
171
+
172
+ sample_request:
173
+ account:
174
+ brand:
175
+ domain: "acmeoutdoor.example"
176
+ operator: "pinnacle-agency.example"
177
+ rights_id: "$context.rights_id"
178
+ pricing_option_id: "$context.pricing_option_id"
179
+ buyer:
180
+ domain: "pinnacle-agency.example"
181
+ campaign:
182
+ description: "Governance-denied rights acquisition probe"
183
+ uses:
184
+ - "likeness"
185
+ - "commercial"
186
+ start_date: "2026-04-01"
187
+ end_date: "2026-06-30"
188
+ revocation_webhook:
189
+ url: "https://pinnacle-agency.example/webhooks/revocation"
190
+ authentication:
191
+ schemes:
192
+ - "Bearer"
193
+ credentials: "pinnacle-revocation-webhook-secret-token"
194
+ idempotency_key: "$generate:uuid_v4#brand_rights_governance_denied_acquire_rights_denied"
195
+
196
+ context:
197
+ correlation_id: "brand_rights--governance_denied--acquire"
198
+ validations:
199
+ - check: error_code
200
+ value: "GOVERNANCE_DENIED"
201
+ description: "Error code is GOVERNANCE_DENIED"
202
+ - check: field_present
203
+ path: "context"
204
+ description: "Response echoes back the context object even on errors"
@@ -0,0 +1,359 @@
1
+ id: collection_lists
2
+ version: "1.0.0"
3
+ title: "Collection lists"
4
+ protocol: governance
5
+ category: collection_lists
6
+ summary: "Curated collection lists for program-level brand safety and content targeting — create, query, update, and delete lists of content programs (shows, series, podcasts)."
7
+ track: governance
8
+ required_tools:
9
+ - create_collection_list
10
+
11
+ # Cross-step assertion (adcp#2664). status.monotonic rejects resource
12
+ # status transitions observed across steps that aren't on the spec
13
+ # lifecycle graph. Silent on collection-list-only runs (no tracked
14
+ # lifecycle resource), but wired so phases that touch media_buy /
15
+ # account status are automatically gated.
16
+ invariants:
17
+ - status.monotonic
18
+
19
+ narrative: |
20
+ You run a governance agent that manages collection lists for brand safety. Unlike
21
+ property lists which operate on technical surfaces (domains, apps), collection lists
22
+ operate on content programs (shows, series, podcasts) identified by platform-independent
23
+ IDs like IMDb, Gracenote, or EIDR.
24
+
25
+ Buyers create inclusion and exclusion lists that define which programs their ads can
26
+ and cannot appear against. Your agent resolves the base collections and filters into a
27
+ concrete list of program identifiers that sellers can cache and enforce at bid time.
28
+
29
+ Collection lists are setup-time resources: the governance agent resolves them once and
30
+ sellers cache the result. Unlike property lists, there is no post-delivery validation
31
+ task yet — enforcement happens at serve time via the cached list, not via after-the-fact
32
+ compliance checks. This storyboard therefore exercises the full CRUD lifecycle (create,
33
+ query, update, delete) but does not test delivery validation.
34
+
35
+ agent:
36
+ interaction_model: governance_agent
37
+ capabilities:
38
+ - collection_lists
39
+ - brand_safety
40
+ examples:
41
+ - "IAS"
42
+ - "DoubleVerify"
43
+ - "GARM-aligned platforms"
44
+ - "Brand safety services"
45
+
46
+ caller:
47
+ role: buyer_agent
48
+ example: "Nova Motors (buyer)"
49
+
50
+ prerequisites:
51
+ description: |
52
+ The caller needs a brand identity and content-program knowledge (distribution IDs,
53
+ publisher identifiers, or genre taxonomies). The test kit provides a sample brand
54
+ with campaign context.
55
+ test_kit: "test-kits/nova-motors.yaml"
56
+
57
+ phases:
58
+ - id: capability_discovery
59
+ title: "Capability discovery"
60
+ narrative: |
61
+ The buyer calls get_adcp_capabilities to confirm the agent supports governance
62
+ before creating or fetching collection lists.
63
+
64
+ steps:
65
+ - id: get_capabilities
66
+ title: "Check agent capabilities"
67
+ narrative: |
68
+ Verify that the agent declares the expected protocol support before
69
+ proceeding with domain-specific operations.
70
+ task: get_adcp_capabilities
71
+ schema_ref: "protocol/get-adcp-capabilities-request.json"
72
+ response_schema_ref: "protocol/get-adcp-capabilities-response.json"
73
+ doc_ref: "/protocol/get_adcp_capabilities"
74
+ comply_scenario: capability_discovery
75
+ stateful: false
76
+ expected: |
77
+ Return capabilities declaring governance in supported_protocols, confirming
78
+ the agent provides governance services.
79
+ sample_request:
80
+ context:
81
+ correlation_id: "collection_lists--get_capabilities"
82
+ validations:
83
+ - check: response_schema
84
+ description: "Response matches get-adcp-capabilities-response.json schema"
85
+ - check: field_present
86
+ path: "supported_protocols"
87
+ description: "Agent declares supported protocols"
88
+ - check: field_present
89
+ path: "context"
90
+ description: "Response echoes back the context object"
91
+ - check: field_value
92
+ path: "context.correlation_id"
93
+ value: "collection_lists--get_capabilities"
94
+ description: "Context correlation_id returned unchanged"
95
+
96
+ - id: create_list
97
+ title: "Create collection lists"
98
+ narrative: |
99
+ The buyer creates an inclusion collection list for the campaign. The list defines
100
+ which content programs the brand is willing to advertise against, selected by
101
+ platform-independent distribution identifiers.
102
+
103
+ steps:
104
+ - id: create_inclusion_list
105
+ title: "Create an inclusion collection list"
106
+ narrative: |
107
+ The buyer creates an inclusion list of programs the brand considers safe to
108
+ advertise against, referenced by distribution IDs (e.g. IMDb) so the selection
109
+ is portable across publishers.
110
+ task: create_collection_list
111
+ schema_ref: "collection/create-collection-list-request.json"
112
+ response_schema_ref: "collection/create-collection-list-response.json"
113
+ doc_ref: "/governance/collection/tasks/collection_lists"
114
+ comply_scenario: governance_collection_lists
115
+ stateful: true
116
+ expected: |
117
+ Return the created collection list:
118
+ - list_id: platform-assigned identifier
119
+ - collection_count reflecting the resolved programs
120
+ - auth_token issued for sellers to fetch the list
121
+ - Timestamps populated
122
+
123
+ sample_request:
124
+ account:
125
+ brand:
126
+ domain: "novamotors.example"
127
+ operator: "pinnacle-agency.example"
128
+ brand:
129
+ domain: "novamotors.example"
130
+ name: "Nova Motors approved programs"
131
+ base_collections:
132
+ - selection_type: "distribution_ids"
133
+ identifiers:
134
+ - type: "imdb_id"
135
+ value: "tt9999901"
136
+ - type: "imdb_id"
137
+ value: "tt9999902"
138
+ - type: "imdb_id"
139
+ value: "tt9999903"
140
+ filters:
141
+ kinds: ["series"]
142
+
143
+ idempotency_key: "$generate:uuid_v4#collection_lists_create_list_create_inclusion_list"
144
+ context:
145
+ correlation_id: "collection_lists--create_inclusion_list"
146
+ context_outputs:
147
+ - path: "list.list_id"
148
+ key: "collection_list_id"
149
+
150
+ validations:
151
+ - check: response_schema
152
+ description: "Response matches create-collection-list-response.json schema"
153
+ - check: field_present
154
+ path: "list.list_id"
155
+ description: "Governance agent assigns list_id — must be echoed in get/update/delete"
156
+ - check: field_present
157
+ path: "auth_token"
158
+ description: "Agent issues an auth_token at creation time for seller fetches"
159
+ - check: field_present
160
+ path: "context"
161
+ description: "Response echoes back the context object"
162
+ - check: field_value
163
+ path: "context.correlation_id"
164
+ value: "collection_lists--create_inclusion_list"
165
+ description: "Context correlation_id returned unchanged"
166
+
167
+ - id: list_and_get
168
+ title: "Query collection lists"
169
+ narrative: |
170
+ The buyer lists all collection lists for the brand and retrieves a specific list
171
+ with resolved collections.
172
+
173
+ steps:
174
+ - id: list_collection_lists
175
+ title: "List all collection lists"
176
+ narrative: |
177
+ The buyer lists all collection lists for the brand. The response includes
178
+ list metadata without full resolved collection details.
179
+ task: list_collection_lists
180
+ schema_ref: "collection/list-collection-lists-request.json"
181
+ response_schema_ref: "collection/list-collection-lists-response.json"
182
+ doc_ref: "/governance/collection/tasks/collection_lists"
183
+ comply_scenario: governance_collection_lists
184
+ stateful: true
185
+ expected: |
186
+ Return collection list summaries:
187
+ - Array of lists with list_id, name, collection_count
188
+ - Includes the list created in the prior phase
189
+
190
+ sample_request:
191
+ account:
192
+ brand:
193
+ domain: "novamotors.example"
194
+ operator: "pinnacle-agency.example"
195
+ name_contains: "Nova Motors"
196
+
197
+ context:
198
+ correlation_id: "collection_lists--list_collection_lists"
199
+ validations:
200
+ - check: response_schema
201
+ description: "Response matches list-collection-lists-response.json schema"
202
+ - check: field_present
203
+ path: "context"
204
+ description: "Response echoes back the context object"
205
+ - check: field_value
206
+ path: "context.correlation_id"
207
+ value: "collection_lists--list_collection_lists"
208
+ description: "Context correlation_id returned unchanged"
209
+
210
+ - id: get_collection_list
211
+ title: "Get a specific collection list with resolved collections"
212
+ narrative: |
213
+ The buyer retrieves a specific collection list with resolve:true to confirm
214
+ the agent can materialize the programs the list references.
215
+ task: get_collection_list
216
+ schema_ref: "collection/get-collection-list-request.json"
217
+ response_schema_ref: "collection/get-collection-list-response.json"
218
+ doc_ref: "/governance/collection/tasks/collection_lists"
219
+ comply_scenario: governance_collection_lists
220
+ stateful: true
221
+ expected: |
222
+ Return the full collection list:
223
+ - list_id, name, collection_count
224
+ - Resolved collections with distribution_ids, content_rating, genre
225
+ - cache_valid_until timestamp for seller caching
226
+
227
+ sample_request:
228
+ list_id: "$context.collection_list_id"
229
+ resolve: true
230
+ account:
231
+ brand:
232
+ domain: "novamotors.example"
233
+ operator: "pinnacle-agency.example"
234
+
235
+ context:
236
+ correlation_id: "collection_lists--get_collection_list"
237
+ validations:
238
+ - check: response_schema
239
+ description: "Response matches get-collection-list-response.json schema"
240
+ - check: field_present
241
+ path: "list.list_id"
242
+ description: "List id returned"
243
+ - check: field_present
244
+ path: "collections"
245
+ description: "Resolved collections returned when resolve:true"
246
+ - check: field_present
247
+ path: "context"
248
+ description: "Response echoes back the context object"
249
+ - check: field_value
250
+ path: "context.correlation_id"
251
+ value: "collection_lists--get_collection_list"
252
+ description: "Context correlation_id returned unchanged"
253
+
254
+ - id: update_list
255
+ title: "Update collection lists"
256
+ narrative: |
257
+ The buyer modifies an existing collection list — replacing the base collections
258
+ as the campaign's content preferences evolve.
259
+
260
+ steps:
261
+ - id: update_collection_list
262
+ title: "Update a collection list"
263
+ narrative: |
264
+ The buyer replaces the base collections on an existing list with a new set
265
+ of distribution identifiers.
266
+ task: update_collection_list
267
+ schema_ref: "collection/update-collection-list-request.json"
268
+ response_schema_ref: "collection/update-collection-list-response.json"
269
+ doc_ref: "/governance/collection/tasks/collection_lists"
270
+ comply_scenario: governance_collection_lists
271
+ stateful: true
272
+ expected: |
273
+ Return the updated collection list:
274
+ - Same list_id
275
+ - Updated collection_count reflecting the replaced base collections
276
+ - Updated updated_at timestamp
277
+
278
+ sample_request:
279
+ list_id: "$context.collection_list_id"
280
+ account:
281
+ brand:
282
+ domain: "novamotors.example"
283
+ operator: "pinnacle-agency.example"
284
+ base_collections:
285
+ - selection_type: "distribution_ids"
286
+ identifiers:
287
+ - type: "imdb_id"
288
+ value: "tt9999901"
289
+ - type: "imdb_id"
290
+ value: "tt9999904"
291
+ - type: "imdb_id"
292
+ value: "tt9999905"
293
+ - type: "imdb_id"
294
+ value: "tt9999906"
295
+
296
+ idempotency_key: "$generate:uuid_v4#collection_lists_update_list_update_collection_list"
297
+ context:
298
+ correlation_id: "collection_lists--update_collection_list"
299
+ validations:
300
+ - check: response_schema
301
+ description: "Response matches update-collection-list-response.json schema"
302
+ - check: field_present
303
+ path: "list.list_id"
304
+ description: "Updated list retains its list_id"
305
+ - check: field_present
306
+ path: "context"
307
+ description: "Response echoes back the context object"
308
+ - check: field_value
309
+ path: "context.correlation_id"
310
+ value: "collection_lists--update_collection_list"
311
+ description: "Context correlation_id returned unchanged"
312
+
313
+ - id: delete_list
314
+ title: "Delete a collection list"
315
+ narrative: |
316
+ The buyer removes a collection list that is no longer needed. Deleting a list
317
+ revokes the associated auth_token.
318
+
319
+ steps:
320
+ - id: delete_collection_list
321
+ title: "Delete a collection list"
322
+ narrative: |
323
+ The buyer deletes a collection list. The governance agent removes the list
324
+ and returns confirmation.
325
+ task: delete_collection_list
326
+ schema_ref: "collection/delete-collection-list-request.json"
327
+ response_schema_ref: "collection/delete-collection-list-response.json"
328
+ doc_ref: "/governance/collection/tasks/collection_lists"
329
+ comply_scenario: governance_collection_lists
330
+ stateful: true
331
+ expected: |
332
+ Confirm deletion:
333
+ - deleted: true
334
+ - list_id: the deleted list
335
+
336
+ sample_request:
337
+ list_id: "$context.collection_list_id"
338
+ account:
339
+ brand:
340
+ domain: "novamotors.example"
341
+ operator: "pinnacle-agency.example"
342
+
343
+ idempotency_key: "$generate:uuid_v4#collection_lists_delete_list_delete_collection_list"
344
+ context:
345
+ correlation_id: "collection_lists--delete_collection_list"
346
+ validations:
347
+ - check: response_schema
348
+ description: "Response matches delete-collection-list-response.json schema"
349
+ - check: field_value
350
+ path: "deleted"
351
+ value: true
352
+ description: "Delete returns deleted: true"
353
+ - check: field_present
354
+ path: "context"
355
+ description: "Response echoes back the context object"
356
+ - check: field_value
357
+ path: "context.correlation_id"
358
+ value: "collection_lists--delete_collection_list"
359
+ description: "Context correlation_id returned unchanged"