@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,125 @@
1
+ id: capability_discovery
2
+ version: "1.0.0"
3
+ title: "Capability discovery"
4
+ category: capability_discovery
5
+ summary: "Buyer calls get_adcp_capabilities to discover what an agent supports before making any buying or creative decisions."
6
+ track: core
7
+
8
+ narrative: |
9
+ Before doing anything else, a buyer agent calls get_adcp_capabilities to learn what your
10
+ platform supports. This is the first call in any new relationship — the buyer needs to know
11
+ your protocol version, supported domains (media buy, creative, governance, signals, SI),
12
+ pricing models, targeting capabilities, and creative specs.
13
+
14
+ The response shapes every subsequent call. If you declare media_buy support, the buyer knows
15
+ it can send briefs and create media buys. If you declare creative support, the buyer knows
16
+ it can sync or build creatives. The buyer uses this to decide which storyboards apply to your
17
+ agent and what flows to attempt.
18
+
19
+ agent:
20
+ interaction_model: media_buy_seller
21
+ capabilities:
22
+ - sells_media
23
+ examples:
24
+ - "Any AdCP-compliant agent"
25
+ - "Publisher platforms"
26
+ - "Creative ad servers"
27
+ - "DSPs"
28
+
29
+ caller:
30
+ role: buyer_agent
31
+ example: "Scope3 (DSP)"
32
+
33
+ prerequisites:
34
+ description: |
35
+ No prerequisites. This is the very first call a buyer makes to any agent.
36
+ The test kit provides brand context but it is not required for this storyboard.
37
+ test_kit: "test-kits/acme-outdoor.yaml"
38
+
39
+ phases:
40
+ - id: protocol_discovery
41
+ title: "Protocol and capability discovery"
42
+ narrative: |
43
+ The buyer calls get_adcp_capabilities to learn what your agent supports. This call
44
+ takes no required arguments — it is a read-only introspection of the agent's
45
+ capabilities. The buyer may optionally filter by protocol domain or major version.
46
+
47
+ steps:
48
+ - id: get_capabilities
49
+ title: "Discover agent capabilities"
50
+ narrative: |
51
+ The buyer calls get_adcp_capabilities with no arguments. Your agent returns its
52
+ full capability declaration: protocol version, supported domains, pricing models,
53
+ targeting options, creative specs, and any extensions.
54
+
55
+ This response is the source of truth for what the buyer can do with your agent.
56
+ Every field the buyer reads here determines which tasks it will call next.
57
+ task: get_adcp_capabilities
58
+ schema_ref: "protocol/get-adcp-capabilities-request.json"
59
+ response_schema_ref: "protocol/get-adcp-capabilities-response.json"
60
+ doc_ref: "/protocol/get_adcp_capabilities"
61
+ comply_scenario: capability_discovery
62
+ stateful: false
63
+ expected: |
64
+ Return your agent's full capability declaration:
65
+ - adcp.major_versions: which protocol versions you support (e.g., [3])
66
+ - supported_protocols: which domains are available (media_buy, creative, governance, signals, sponsored_intelligence)
67
+ - media_buy: pricing models, delivery types, targeting, reporting features
68
+ - creative: library support, generation, transformation capabilities
69
+ - governance: property and creative features the governance agent can evaluate
70
+ - account: auth model, billing support, sandbox mode
71
+
72
+ sample_request:
73
+ context:
74
+ correlation_id: "capability_discovery--get_capabilities"
75
+
76
+ validations:
77
+ - check: response_schema
78
+ description: "Response matches get-adcp-capabilities-response.json schema"
79
+ - check: field_present
80
+ path: "adcp.major_versions"
81
+ description: "Agent declares supported protocol versions"
82
+ - check: field_present
83
+ path: "supported_protocols"
84
+ description: "Agent declares which protocol domains it supports"
85
+
86
+ - check: field_present
87
+ path: "context"
88
+ description: "Response echoes back the context object"
89
+ - check: field_value
90
+ path: "context.correlation_id"
91
+ value: "capability_discovery--get_capabilities"
92
+ description: "Context correlation_id returned unchanged"
93
+ - id: get_capabilities_filtered
94
+ title: "Discover capabilities filtered by protocol"
95
+ narrative: |
96
+ The buyer calls get_adcp_capabilities again, this time filtering for a specific
97
+ protocol domain. This is useful when the buyer already knows what it wants and
98
+ only needs details for one domain (e.g., just media_buy capabilities).
99
+ task: get_adcp_capabilities
100
+ schema_ref: "protocol/get-adcp-capabilities-request.json"
101
+ response_schema_ref: "protocol/get-adcp-capabilities-response.json"
102
+ doc_ref: "/protocol/get_adcp_capabilities"
103
+ comply_scenario: capability_discovery
104
+ stateful: false
105
+ expected: |
106
+ Return capabilities filtered to the requested protocol domain. The response
107
+ should include the same structure but only the requested domain details.
108
+
109
+ sample_request:
110
+ protocols:
111
+ - "media_buy"
112
+
113
+ context:
114
+ correlation_id: "capability_discovery--get_capabilities_filtered"
115
+ validations:
116
+ - check: response_schema
117
+ description: "Response matches get-adcp-capabilities-response.json schema"
118
+
119
+ - check: field_present
120
+ path: "context"
121
+ description: "Response echoes back the context object"
122
+ - check: field_value
123
+ path: "context.correlation_id"
124
+ value: "capability_discovery--get_capabilities_filtered"
125
+ description: "Context correlation_id returned unchanged"
@@ -0,0 +1,306 @@
1
+ id: pagination_integrity_collection_lists
2
+ version: "1.0.0"
3
+ title: "Pagination cursor integrity — list_collection_lists"
4
+ category: schema_validation
5
+ summary: "Validates the cursor↔has_more invariant by walking a paginated list_collection_lists response from a continuation page to a terminal page."
6
+ track: core
7
+ required_tools:
8
+ - list_collection_lists
9
+
10
+ narrative: |
11
+ Pagination is cursor-based across AdCP. Every response carrying a
12
+ `pagination` block satisfies a single invariant: when `has_more` is true the
13
+ `cursor` MUST be present (callers need it to fetch the next page); when
14
+ `has_more` is false the `cursor` MUST be absent (a stale token on a terminal
15
+ page invites callers to follow it into undefined behavior).
16
+
17
+ The invariant is documented in prose on
18
+ `static/schemas/source/core/pagination-response.json` but JSON Schema does
19
+ not gate the two fields against each other. This storyboard exercises both
20
+ sides of the invariant on `list_collection_lists` in a single run.
21
+
22
+ The runner bootstraps three collection lists via `create_collection_list`,
23
+ then lists them back with `max_results=2`. The first page MUST cap at two
24
+ lists and signal continuation with `has_more=true` plus a cursor. The runner
25
+ then follows that cursor; the second call MUST return the terminal page with
26
+ `has_more=false` and no cursor. An agent that hides the third list by
27
+ reporting `has_more=false` on the first page fails the first-page assertion.
28
+ An agent that carries a stale cursor onto the terminal page fails the
29
+ second-page assertion.
30
+
31
+ The `total_count` field is allowed to be absent (some backends cannot
32
+ compute it cheaply per the pagination-response schema) but when an agent
33
+ volunteers it, the value MUST match the seeded count of three.
34
+
35
+ agent:
36
+ interaction_model: stateful_preloaded
37
+ capabilities: []
38
+ examples:
39
+ - "Any AdCP agent that exposes a paginated list_collection_lists"
40
+
41
+ caller:
42
+ role: buyer_agent
43
+ example: "Compliance test harness"
44
+
45
+ prerequisites:
46
+ description: |
47
+ The storyboard bootstraps three collection lists in the setup phase via
48
+ `create_collection_list`. The seed-DAG does not include collection lists,
49
+ so this storyboard uses the create-then-list pattern to keep itself
50
+ self-contained without extending the seed taxonomy.
51
+ test_kit: "test-kits/acme-outdoor.yaml"
52
+ controller_seeding: false
53
+
54
+ phases:
55
+ - id: capability_discovery
56
+ title: "Capability discovery"
57
+ narrative: |
58
+ Confirm the agent responds to get_adcp_capabilities before
59
+ exercising list_collection_lists.
60
+ steps:
61
+ - id: get_capabilities
62
+ title: "Check agent capabilities"
63
+ narrative: |
64
+ Verify that the agent declares supported protocols before
65
+ driving paginated list_collection_lists.
66
+ task: get_adcp_capabilities
67
+ schema_ref: "protocol/get-adcp-capabilities-request.json"
68
+ response_schema_ref: "protocol/get-adcp-capabilities-response.json"
69
+ doc_ref: "/protocol/get_adcp_capabilities"
70
+ comply_scenario: pagination_integrity_collection_lists
71
+ stateful: false
72
+ expected: |
73
+ Return capabilities declaring supported protocols.
74
+
75
+ sample_request:
76
+ context:
77
+ correlation_id: "pagination_integrity_collection_lists--get_capabilities"
78
+ validations:
79
+ - check: response_schema
80
+ description: "Response matches get-adcp-capabilities-response.json schema"
81
+ - check: field_present
82
+ path: "supported_protocols"
83
+ description: "Agent declares supported protocols"
84
+ - check: field_present
85
+ path: "context"
86
+ description: "Response echoes back the context object"
87
+ - check: field_value
88
+ path: "context.correlation_id"
89
+ value: "pagination_integrity_collection_lists--get_capabilities"
90
+ description: "Context correlation_id returned unchanged"
91
+
92
+ - id: setup
93
+ title: "Bootstrap three collection lists"
94
+ narrative: |
95
+ Create three collection lists so the pagination walk has a deterministic
96
+ set of three items to page through with max_results=2.
97
+ steps:
98
+ - id: create_list_1
99
+ title: "Create first collection list"
100
+ narrative: |
101
+ Create a collection list for primetime drama programs. The agent MUST
102
+ accept this and return a list_id.
103
+ task: create_collection_list
104
+ schema_ref: "collection/create-collection-list-request.json"
105
+ response_schema_ref: "collection/create-collection-list-response.json"
106
+ doc_ref: "/governance/task-reference/create_collection_list"
107
+ comply_scenario: pagination_integrity_collection_lists
108
+ stateful: true
109
+ expected: |
110
+ Accept the collection list and return a list.list_id.
111
+
112
+ sample_request:
113
+ account:
114
+ brand:
115
+ domain: "acmeoutdoor.example"
116
+ operator: "pinnacle-agency.example"
117
+ name: "Primetime Drama Allowlist"
118
+ description: "Collection of approved primetime drama programs."
119
+ idempotency_key: "$generate:uuid_v4#pagination_integrity_collection_lists_setup_create_list_1"
120
+ context:
121
+ correlation_id: "pagination_integrity_collection_lists--setup_1"
122
+ validations:
123
+ - check: response_schema
124
+ description: "Response matches create-collection-list-response.json schema"
125
+ - check: field_present
126
+ path: "list.list_id"
127
+ description: "Response contains list.list_id"
128
+
129
+ - id: create_list_2
130
+ title: "Create second collection list"
131
+ narrative: |
132
+ Create a collection list for news programs.
133
+ task: create_collection_list
134
+ schema_ref: "collection/create-collection-list-request.json"
135
+ response_schema_ref: "collection/create-collection-list-response.json"
136
+ doc_ref: "/governance/task-reference/create_collection_list"
137
+ comply_scenario: pagination_integrity_collection_lists
138
+ stateful: true
139
+ expected: |
140
+ Accept the collection list and return a list.list_id.
141
+
142
+ sample_request:
143
+ account:
144
+ brand:
145
+ domain: "acmeoutdoor.example"
146
+ operator: "pinnacle-agency.example"
147
+ name: "News Programs Allowlist"
148
+ description: "Approved national news broadcast programs."
149
+ idempotency_key: "$generate:uuid_v4#pagination_integrity_collection_lists_setup_create_list_2"
150
+ context:
151
+ correlation_id: "pagination_integrity_collection_lists--setup_2"
152
+ validations:
153
+ - check: response_schema
154
+ description: "Response matches create-collection-list-response.json schema"
155
+ - check: field_present
156
+ path: "list.list_id"
157
+ description: "Response contains list.list_id"
158
+
159
+ - id: create_list_3
160
+ title: "Create third collection list"
161
+ narrative: |
162
+ Create a collection list for sports programs.
163
+ task: create_collection_list
164
+ schema_ref: "collection/create-collection-list-request.json"
165
+ response_schema_ref: "collection/create-collection-list-response.json"
166
+ doc_ref: "/governance/task-reference/create_collection_list"
167
+ comply_scenario: pagination_integrity_collection_lists
168
+ stateful: true
169
+ expected: |
170
+ Accept the collection list and return a list.list_id.
171
+
172
+ sample_request:
173
+ account:
174
+ brand:
175
+ domain: "acmeoutdoor.example"
176
+ operator: "pinnacle-agency.example"
177
+ name: "Sports Programs Allowlist"
178
+ description: "Approved live sports broadcasts."
179
+ idempotency_key: "$generate:uuid_v4#pagination_integrity_collection_lists_setup_create_list_3"
180
+ context:
181
+ correlation_id: "pagination_integrity_collection_lists--setup_3"
182
+ validations:
183
+ - check: response_schema
184
+ description: "Response matches create-collection-list-response.json schema"
185
+ - check: field_present
186
+ path: "list.list_id"
187
+ description: "Response contains list.list_id"
188
+
189
+ - id: pagination_walk
190
+ title: "Walk pages with a small max_results"
191
+ narrative: |
192
+ With three collection lists seeded and `max_results: 2`, the first call
193
+ MUST return a continuation page (has_more=true with a cursor). The runner
194
+ then follows the cursor; the second call MUST return the terminal page
195
+ (has_more=false with no cursor).
196
+
197
+ steps:
198
+ - id: first_page
199
+ title: "Request the first page with max_results=2"
200
+ narrative: |
201
+ The buyer asks for up to two collection lists. The agent has three
202
+ matching lists, so the request is non-terminal: callers expect
203
+ `has_more=true` and a `cursor` they can follow to retrieve the
204
+ remaining list.
205
+
206
+ The runner captures `pagination.cursor` into `$context.next_cursor`
207
+ for the follow-up step. If the agent reports `has_more=false` on
208
+ this page (hiding the seeded third list behind a dishonest terminal
209
+ signal), the field_value check on `pagination.has_more` fails.
210
+ task: list_collection_lists
211
+ schema_ref: "collection/list-collection-lists-request.json"
212
+ response_schema_ref: "collection/list-collection-lists-response.json"
213
+ doc_ref: "/governance/task-reference/list_collection_lists"
214
+ comply_scenario: pagination_integrity_collection_lists
215
+ stateful: true
216
+ context_outputs:
217
+ - name: next_cursor
218
+ path: "pagination.cursor"
219
+ expected: |
220
+ Return up to two collection lists with:
221
+ - pagination.has_more = true
222
+ - pagination.cursor present (an opaque continuation token)
223
+
224
+ sample_request:
225
+ account:
226
+ brand:
227
+ domain: "acmeoutdoor.example"
228
+ operator: "pinnacle-agency.example"
229
+ pagination:
230
+ max_results: 2
231
+
232
+ context:
233
+ correlation_id: "pagination_integrity_collection_lists--first_page"
234
+ validations:
235
+ - check: response_schema
236
+ description: "Response matches list-collection-lists-response.json schema"
237
+ - check: field_value
238
+ path: "pagination.has_more"
239
+ value: true
240
+ description: "Three lists seeded with max_results=2 → first page is non-terminal"
241
+ - check: field_present
242
+ path: "pagination.cursor"
243
+ description: "has_more=true requires a cursor — without one the caller cannot continue"
244
+ - check: field_value_or_absent
245
+ path: "pagination.total_count"
246
+ allowed_values: [3]
247
+ description: "If volunteered, total_count MUST equal the seeded set size"
248
+ - check: field_present
249
+ path: "context"
250
+ description: "Response echoes back the context object"
251
+ - check: field_value
252
+ path: "context.correlation_id"
253
+ value: "pagination_integrity_collection_lists--first_page"
254
+ description: "Context correlation_id returned unchanged"
255
+
256
+ - id: terminal_page
257
+ title: "Follow the cursor to the terminal page"
258
+ narrative: |
259
+ The buyer follows the captured cursor. With at most one remaining
260
+ list the agent MUST return a terminal page: `has_more=false` with no
261
+ `cursor` field. A cursor on `has_more=false` is a stale token that
262
+ invites callers to follow it past the end of results.
263
+ task: list_collection_lists
264
+ schema_ref: "collection/list-collection-lists-request.json"
265
+ response_schema_ref: "collection/list-collection-lists-response.json"
266
+ doc_ref: "/governance/task-reference/list_collection_lists"
267
+ comply_scenario: pagination_integrity_collection_lists
268
+ stateful: true
269
+ expected: |
270
+ Return the remaining list(s) with:
271
+ - pagination.has_more = false
272
+ - pagination.cursor absent
273
+
274
+ sample_request:
275
+ account:
276
+ brand:
277
+ domain: "acmeoutdoor.example"
278
+ operator: "pinnacle-agency.example"
279
+ pagination:
280
+ cursor: "$context.next_cursor"
281
+ max_results: 2
282
+
283
+ context:
284
+ correlation_id: "pagination_integrity_collection_lists--terminal_page"
285
+ validations:
286
+ - check: response_schema
287
+ description: "Response matches list-collection-lists-response.json schema"
288
+ - check: field_value
289
+ path: "pagination.has_more"
290
+ value: false
291
+ description: "After two pages of two items the seeded set is exhausted"
292
+ - check: field_value_or_absent
293
+ path: "pagination.cursor"
294
+ allowed_values: [null]
295
+ description: "Terminal page MUST omit cursor (null also accepted for clients that explicitly clear the field)"
296
+ - check: field_value_or_absent
297
+ path: "pagination.total_count"
298
+ allowed_values: [3]
299
+ description: "total_count (when volunteered) MUST stay stable across pages and equal the seeded set size"
300
+ - check: field_present
301
+ path: "context"
302
+ description: "Response echoes back the context object"
303
+ - check: field_value
304
+ path: "context.correlation_id"
305
+ value: "pagination_integrity_collection_lists--terminal_page"
306
+ description: "Context correlation_id returned unchanged"