@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,428 @@
1
+ id: sales_non_guaranteed
2
+ version: "1.0.0"
3
+ title: "Non-guaranteed auction-based media buy"
4
+ protocol: media-buy
5
+ category: sales_non_guaranteed
6
+ summary: "Seller agent for auction-based, non-guaranteed buying where the buyer sets bid prices and budgets."
7
+ track: media_buy
8
+ required_tools:
9
+ - get_products
10
+ - create_media_buy
11
+ requires_scenarios:
12
+ - media_buy_seller/delivery_reporting
13
+ - media_buy_seller/pending_creatives_to_start
14
+ - media_buy_seller/inventory_list_targeting
15
+ - media_buy_seller/inventory_list_no_match
16
+ - media_buy_seller/invalid_transitions
17
+
18
+ # Cross-step assertion (adcp#2664). status.monotonic rejects resource
19
+ # status transitions observed across steps that aren't on the spec
20
+ # lifecycle graph — e.g. active → pending_creatives on a media_buy.
21
+ invariants:
22
+ - status.monotonic
23
+
24
+ narrative: |
25
+ You run a sell-side platform with auction-based inventory. Non-guaranteed buys don't
26
+ require IOs or human approval — the buyer sets a bid price and budget, and your platform
27
+ runs the auction. Delivery is best-effort based on bid competitiveness.
28
+
29
+ The buyer discovers products with floor prices and bid guidance, creates a buy with bid
30
+ prices per package, monitors win rates and pacing, and adjusts bids or budgets in-flight
31
+ to optimize performance.
32
+
33
+ This storyboard covers the non-guaranteed buying path — fast setup, no human approval,
34
+ real-time optimization through bid and budget adjustments.
35
+
36
+ agent:
37
+ interaction_model: media_buy_seller
38
+ capabilities:
39
+ - sells_media
40
+ - supports_non_guaranteed
41
+ - auction_based
42
+ examples:
43
+ - "SSP with programmatic auction inventory"
44
+ - "Exchange-based publisher platform"
45
+ - "Open marketplace seller"
46
+
47
+ caller:
48
+ role: buyer_agent
49
+ example: "Scope3 (DSP)"
50
+
51
+ prerequisites:
52
+ description: |
53
+ The caller needs a brand identity and operator credentials. Non-guaranteed buys
54
+ typically have lower barriers to entry — no IO signing required. The test kit
55
+ provides a sample brand (Acme Outdoor) with bid parameters suitable for testing
56
+ the auction-based flow.
57
+ test_kit: "test-kits/acme-outdoor.yaml"
58
+ controller_seeding: true
59
+
60
+ fixtures:
61
+ products:
62
+ - product_id: "sports_display_auction"
63
+ delivery_type: "non_guaranteed"
64
+ channels: ["display"]
65
+ format_ids:
66
+ - id: "display_300x250"
67
+ - product_id: "outdoor_video_auction"
68
+ delivery_type: "non_guaranteed"
69
+ channels: ["video"]
70
+ format_ids:
71
+ - id: "video_30s"
72
+ pricing_options:
73
+ - product_id: "sports_display_auction"
74
+ pricing_option_id: "cpm_auction"
75
+ pricing_model: "cpm"
76
+ currency: "USD"
77
+ floor_price: 5.0
78
+ - product_id: "outdoor_video_auction"
79
+ pricing_option_id: "cpm_auction"
80
+ pricing_model: "cpm"
81
+ currency: "USD"
82
+ floor_price: 15.0
83
+
84
+ phases:
85
+ - id: capability_discovery
86
+ title: "Capability discovery"
87
+ narrative: |
88
+ The buyer calls get_adcp_capabilities to confirm the agent supports media buying before sending briefs or creating buys.
89
+
90
+ steps:
91
+ - id: get_capabilities
92
+ title: "Check agent capabilities"
93
+ narrative: |
94
+ Verify that the agent declares the expected protocol support before
95
+ proceeding with domain-specific operations.
96
+ task: get_adcp_capabilities
97
+ schema_ref: "protocol/get-adcp-capabilities-request.json"
98
+ response_schema_ref: "protocol/get-adcp-capabilities-response.json"
99
+ doc_ref: "/protocol/get_adcp_capabilities"
100
+ comply_scenario: capability_discovery
101
+ stateful: false
102
+ expected: |
103
+ Return capabilities declaring media_buy in supported_protocols, confirming the agent sells media.
104
+ sample_request:
105
+ context:
106
+ correlation_id: "sales_non_guaranteed--get_capabilities"
107
+ validations:
108
+ - check: response_schema
109
+ description: "Response matches get-adcp-capabilities-response.json schema"
110
+ - check: field_present
111
+ path: "supported_protocols"
112
+ description: "Agent declares supported protocols"
113
+
114
+ - check: field_present
115
+ path: "context"
116
+ description: "Response echoes back the context object"
117
+ - check: field_value
118
+ path: "context.correlation_id"
119
+ value: "sales_non_guaranteed--get_capabilities"
120
+ description: "Context correlation_id returned unchanged"
121
+ - id: product_discovery
122
+ title: "Discover auction-based products"
123
+ narrative: |
124
+ The buyer sends a brief to discover your non-guaranteed inventory. Products
125
+ come back with delivery_type: non_guaranteed, floor prices, and bid guidance
126
+ that helps the buyer set competitive bids.
127
+
128
+ steps:
129
+ - id: get_products_brief
130
+ title: "Send a brief for non-guaranteed inventory"
131
+ narrative: |
132
+ The buyer describes what they want. Your platform returns non-guaranteed
133
+ products with auction mechanics: floor prices, recommended bid ranges,
134
+ estimated win rates at different bid levels, and available audience segments.
135
+ task: get_products
136
+ schema_ref: "media-buy/get-products-request.json"
137
+ response_schema_ref: "media-buy/get-products-response.json"
138
+ doc_ref: "/media-buy/task-reference/get_products"
139
+ comply_scenario: full_sales_flow
140
+ stateful: false
141
+ expected: |
142
+ Return non-guaranteed products matching the brief. Each product should include:
143
+ - product_id: unique identifier
144
+ - name and description
145
+ - delivery_type: non_guaranteed
146
+ - pricing_models: auction-based pricing with floor_price and recommended bid range
147
+ - forecast: estimated impressions at different bid levels (best-effort)
148
+ - creative_format_ids: required creative formats
149
+ - targeting: available audiences and contexts
150
+
151
+ sample_request:
152
+ buying_mode: "brief"
153
+ brief: "Display and video inventory across sports and outdoor lifestyle sites. Q2 flight, $25K budget. Adults 25-54, US. Auction-based, looking for competitive CPMs."
154
+ account:
155
+ brand:
156
+ domain: "acmeoutdoor.example"
157
+ operator: "pinnacle-agency.example"
158
+
159
+ context:
160
+ correlation_id: "sales_non_guaranteed--get_products_brief"
161
+ validations:
162
+ - check: response_schema
163
+ description: "Response matches get-products-response.json schema"
164
+ - check: field_present
165
+ path: "products"
166
+ description: "Response contains a products array"
167
+ - check: field_present
168
+ path: "products[0].product_id"
169
+ description: "Each product has a product_id"
170
+ - check: field_present
171
+ path: "products[0].delivery_type"
172
+ description: "Each product declares delivery_type: non_guaranteed"
173
+
174
+ - check: field_present
175
+ path: "context"
176
+ description: "Response echoes back the context object"
177
+ - check: field_value
178
+ path: "context.correlation_id"
179
+ value: "sales_non_guaranteed--get_products_brief"
180
+ description: "Context correlation_id returned unchanged"
181
+ - check: field_present
182
+ path: "products[0].format_ids"
183
+ description: "Products include format_ids for creative requirements"
184
+ - check: field_present
185
+ path: "products[0].format_ids[0].agent_url"
186
+ description: "Format IDs include agent_url — must match this agent's URL"
187
+ - check: field_present
188
+ path: "products[0].format_ids[0].id"
189
+ description: "Format IDs include id — must be accepted back in sync_creatives"
190
+ - id: create_buy
191
+ title: "Create non-guaranteed buy"
192
+ narrative: |
193
+ The buyer creates a media buy with bid prices per package. Since this is
194
+ non-guaranteed, no IO is required and no human approval is needed. The response
195
+ comes back as completed — the buy is immediately active and your platform starts
196
+ bidding in auctions on the buyer's behalf.
197
+
198
+ steps:
199
+ - id: create_media_buy
200
+ title: "Create a media buy with bid prices"
201
+ narrative: |
202
+ The buyer commits to non-guaranteed products with bid prices and budgets.
203
+ Your platform validates the bids against floor prices, confirms the buy
204
+ immediately (completed status), and begins auction participation.
205
+
206
+ Each package includes a bid_price that the buyer is willing to pay per unit
207
+ (CPM, CPC, etc.). The platform uses this to compete in auctions.
208
+ task: create_media_buy
209
+ schema_ref: "media-buy/create-media-buy-request.json"
210
+ response_schema_ref: "media-buy/create-media-buy-response.json"
211
+ doc_ref: "/media-buy/task-reference/create_media_buy"
212
+ comply_scenario: create_media_buy
213
+ stateful: true
214
+ expected: |
215
+ Return the media buy in completed status:
216
+ - media_buy_id: your platform's identifier
217
+ - status: active (no async approval needed)
218
+ - confirmed_at: timestamp
219
+ - packages: confirmed line items with bid prices acknowledged
220
+ - valid_actions: pause, update_bid, get_delivery
221
+
222
+ Bids below floor_price should be rejected with a clear error.
223
+
224
+ sample_request:
225
+ brand:
226
+ domain: "acmeoutdoor.example"
227
+ account:
228
+ brand:
229
+ domain: "acmeoutdoor.example"
230
+ operator: "pinnacle-agency.example"
231
+ start_time: "2026-04-01T00:00:00Z"
232
+ end_time: "2026-06-30T23:59:59Z"
233
+ packages:
234
+ - product_id: "sports_display_auction"
235
+ budget: 10000
236
+ bid_price: 8.50
237
+ pricing_option_id: "cpm_auction"
238
+ creative_assignments:
239
+ - creative_id: "display_trail_pro_300x250"
240
+ - product_id: "outdoor_video_auction"
241
+ budget: 15000
242
+ bid_price: 22.00
243
+ pricing_option_id: "cpm_auction"
244
+ creative_assignments:
245
+ - creative_id: "video_30s_trail_pro"
246
+
247
+ idempotency_key: "$generate:uuid_v4#sales_non_guaranteed_create_buy_create_media_buy"
248
+ context:
249
+ correlation_id: "sales_non_guaranteed--create_media_buy"
250
+ context_outputs:
251
+ - name: media_buy_id
252
+ path: "media_buy_id"
253
+ - name: first_package_id
254
+ path: "packages[0].package_id"
255
+ - name: second_package_id
256
+ path: "packages[1].package_id"
257
+ validations:
258
+ - check: response_schema
259
+ description: "Response matches create-media-buy-response.json schema"
260
+
261
+ - check: field_present
262
+ path: "context"
263
+ description: "Response echoes back the context object"
264
+ - check: field_value
265
+ path: "context.correlation_id"
266
+ value: "sales_non_guaranteed--create_media_buy"
267
+ description: "Context correlation_id returned unchanged"
268
+ - check: field_present
269
+ path: "packages[0].package_id"
270
+ description: "Seller assigns package_id — must be echoed in update_media_buy"
271
+ - id: monitor_pacing
272
+ title: "Monitor win rates and pacing"
273
+ narrative: |
274
+ The non-guaranteed buy is live and bidding in auctions. The buyer checks
275
+ pacing to understand how competitive their bids are and whether the budget
276
+ is spending at the desired rate.
277
+
278
+ steps:
279
+ - id: get_media_buys_pacing
280
+ title: "Check buy status and pacing"
281
+ narrative: |
282
+ The buyer polls for the media buy status. Your platform returns the active
283
+ buy with pacing data — how much budget has been spent, win rates, and whether
284
+ the buy is on pace to exhaust the budget by the end of the flight.
285
+ task: get_media_buys
286
+ schema_ref: "media-buy/get-media-buys-request.json"
287
+ response_schema_ref: "media-buy/get-media-buys-response.json"
288
+ doc_ref: "/media-buy/task-reference/get_media_buys"
289
+ comply_scenario: media_buy_lifecycle
290
+ stateful: true
291
+ expected: |
292
+ Return the media buy with pacing data:
293
+ - media_buy_id: matches the buy created earlier
294
+ - status: active
295
+ - packages: line items with current spend, win rate, and pacing status
296
+ - valid_actions: update, pause, get_delivery
297
+
298
+ sample_request:
299
+ account:
300
+ brand:
301
+ domain: "acmeoutdoor.example"
302
+ operator: "pinnacle-agency.example"
303
+ media_buy_ids:
304
+ - "$context.media_buy_id"
305
+
306
+ context:
307
+ correlation_id: "sales_non_guaranteed--get_media_buys_pacing"
308
+ validations:
309
+ - check: response_schema
310
+ description: "Response matches get-media-buys-response.json schema"
311
+ - check: field_present
312
+ path: "media_buys[0].status"
313
+ description: "Media buy has a status"
314
+
315
+ - check: field_present
316
+ path: "context"
317
+ description: "Response echoes back the context object"
318
+ - check: field_value
319
+ path: "context.correlation_id"
320
+ value: "sales_non_guaranteed--get_media_buys_pacing"
321
+ description: "Context correlation_id returned unchanged"
322
+ - id: adjust_bids
323
+ title: "Adjust bids and budget"
324
+ narrative: |
325
+ Based on pacing data, the buyer adjusts bids or budgets in-flight. If a package
326
+ is underspending (low win rate), the buyer increases the bid. If a package is
327
+ overspending, the buyer decreases the bid or caps the daily budget.
328
+
329
+ steps:
330
+ - id: update_media_buy
331
+ title: "Update bid prices and budget"
332
+ narrative: |
333
+ The buyer modifies the active media buy — adjusting bid prices, reallocating
334
+ budget between packages, or changing daily spend caps. Your platform applies
335
+ the updates immediately to the live auction participation.
336
+ task: update_media_buy
337
+ schema_ref: "media-buy/update-media-buy-request.json"
338
+ response_schema_ref: "media-buy/update-media-buy-response.json"
339
+ doc_ref: "/media-buy/task-reference/update_media_buy"
340
+ comply_scenario: media_buy_lifecycle
341
+ stateful: true
342
+ expected: |
343
+ Apply the updates and return the modified media buy:
344
+ - media_buy_id: matches the existing buy
345
+ - status: active (still running)
346
+ - packages: updated line items reflecting new bids and budgets
347
+ - Changes take effect immediately for subsequent auctions
348
+
349
+ sample_request:
350
+ account:
351
+ brand:
352
+ domain: "acmeoutdoor.example"
353
+ operator: "pinnacle-agency.example"
354
+ media_buy_id: "$context.media_buy_id"
355
+ packages:
356
+ - package_id: "$context.first_package_id"
357
+ bid_price: 10.00
358
+ budget: 12000
359
+ - package_id: "$context.second_package_id"
360
+ bid_price: 20.00
361
+ budget: 13000
362
+
363
+ idempotency_key: "$generate:uuid_v4#sales_non_guaranteed_adjust_bids_update_media_buy"
364
+ context:
365
+ correlation_id: "sales_non_guaranteed--update_media_buy"
366
+ validations:
367
+ - check: response_schema
368
+ description: "Response matches update-media-buy-response.json schema"
369
+
370
+ - check: field_present
371
+ path: "context"
372
+ description: "Response echoes back the context object"
373
+ - check: field_value
374
+ path: "context.correlation_id"
375
+ value: "sales_non_guaranteed--update_media_buy"
376
+ description: "Context correlation_id returned unchanged"
377
+ - id: delivery
378
+ title: "Delivery and auction metrics"
379
+ narrative: |
380
+ The buyer reviews delivery data including auction-specific metrics: win rates,
381
+ average clearing prices, and bid competitiveness across packages.
382
+
383
+ steps:
384
+ - id: get_delivery
385
+ title: "Check delivery with auction metrics"
386
+ narrative: |
387
+ The buyer requests delivery data for the active non-guaranteed media buy.
388
+ Your platform returns standard delivery metrics plus auction-specific data:
389
+ win rates, average clearing prices, bid-to-win ratios, and budget pacing.
390
+ task: get_media_buy_delivery
391
+ schema_ref: "media-buy/get-media-buy-delivery-request.json"
392
+ response_schema_ref: "media-buy/get-media-buy-delivery-response.json"
393
+ doc_ref: "/media-buy/task-reference/get_media_buy_delivery"
394
+ comply_scenario: reporting_flow
395
+ stateful: true
396
+ expected: |
397
+ Return delivery metrics for the non-guaranteed media buy:
398
+ - Per-package delivery: impressions, clicks, spend
399
+ - Win rate: percentage of auctions won per package
400
+ - Average clearing price: what the buyer actually paid vs. bid price
401
+ - Pacing: on track, ahead, behind relative to budget and flight dates
402
+ - Budget utilization: spent vs. committed
403
+
404
+ sample_request:
405
+ account:
406
+ brand:
407
+ domain: "acmeoutdoor.example"
408
+ operator: "pinnacle-agency.example"
409
+ media_buy_ids:
410
+ - "$context.media_buy_id"
411
+ include_package_daily_breakdown: true
412
+
413
+ context:
414
+ correlation_id: "sales_non_guaranteed--get_delivery"
415
+ validations:
416
+ - check: response_schema
417
+ description: "Response matches get-media-buy-delivery-response.json schema"
418
+ - check: field_present
419
+ path: "media_buy_deliveries"
420
+ description: "Response contains media buy delivery data"
421
+
422
+ - check: field_present
423
+ path: "context"
424
+ description: "Response echoes back the context object"
425
+ - check: field_value
426
+ path: "context.correlation_id"
427
+ value: "sales_non_guaranteed--get_delivery"
428
+ description: "Context correlation_id returned unchanged"