@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,262 @@
1
+ # Nova Motors — Signal-Focused Advertiser Test Kit
2
+ #
3
+ # Entity definition: fictional-entities.yaml → advertisers[nova_motors]
4
+ # Data providers defined in this kit: see fictional-entities.yaml → data_providers
5
+ #
6
+ # This brand is registered as a sandbox brand in AgenticAdvertising.org (AAO).
7
+ # Agents resolve novamotors.example via the standard AAO brand resolution path.
8
+ # AAO returns the brand.json below but excludes sandbox brands from production
9
+ # brand discovery results.
10
+
11
+ id: nova_motors
12
+ name: "Nova Motors"
13
+ description: |
14
+ Signal-focused test kit for the Nova Motors Volta EV launch campaign.
15
+ Provides sample signal definitions, pricing options, and destination
16
+ configurations for testing signal agent storyboards.
17
+ sandbox: true
18
+
19
+ # security_baseline auth fixture — see acme-outdoor.yaml for semantics.
20
+ #
21
+ # probe_task is `get_signals` because this kit's primary consumers are
22
+ # signal agents (specialisms/signal-owned, specialisms/signal-marketplace)
23
+ # where list_creatives is not implemented. Non-signal storyboards that
24
+ # reuse this kit (collection-lists, sales-broadcast-tv, sponsored-
25
+ # intelligence) should select acme-outdoor for security_baseline, or
26
+ # override probe_task at the storyboard layer.
27
+ auth:
28
+ api_key: "demo-nova-motors-v1"
29
+ probe_task: get_signals
30
+
31
+ brand:
32
+ house:
33
+ domain: "novamotors.example"
34
+ name: "Nova Motors"
35
+ brand_id: "nova_motors"
36
+ names:
37
+ - en: "Nova Motors"
38
+ description: "Electric vehicles for the next generation. The Volta EV — performance meets sustainability."
39
+ industry: "automotive"
40
+ keller_type: "master"
41
+ logos:
42
+ - url: "https://test-assets.adcontextprotocol.org/nova-motors/logo-primary.png"
43
+ orientation: "horizontal"
44
+ background: "light-bg"
45
+ variant: "primary"
46
+ width: 400
47
+ height: 100
48
+ - url: "https://test-assets.adcontextprotocol.org/nova-motors/logo-icon.png"
49
+ orientation: "square"
50
+ background: "transparent-bg"
51
+ variant: "icon"
52
+ width: 200
53
+ height: 200
54
+ colors:
55
+ primary: "#0D47A1"
56
+ secondary: "#00BFA5"
57
+ accent: "#FF6D00"
58
+ background: "#F5F5F5"
59
+ text: "#1A1A1A"
60
+ fonts:
61
+ heading:
62
+ family: "Inter"
63
+ weight: 700
64
+ url: "https://fonts.googleapis.com/css2?family=Inter:wght@700"
65
+ body:
66
+ family: "Inter"
67
+ weight: 400
68
+ url: "https://fonts.googleapis.com/css2?family=Inter"
69
+ tone:
70
+ voice: "Forward-thinking and precise. We speak to drivers who care about engineering and the planet — no greenwashing, no hype."
71
+ attributes:
72
+ - "innovative"
73
+ - "precise"
74
+ - "optimistic"
75
+ dos:
76
+ - "Lead with performance specs"
77
+ - "Reference sustainability with evidence"
78
+ - "Use clean, modern language"
79
+ donts:
80
+ - "Greenwash or overstate environmental claims"
81
+ - "Use legacy automotive clichés"
82
+ - "Condescend about range anxiety"
83
+
84
+ campaign:
85
+ brand: "Nova Motors"
86
+ product: "Volta EV"
87
+ brief: "Reach in-market EV buyers with high purchase propensity, near dealerships, who haven't bought a Nova vehicle before."
88
+ budget: 250000
89
+ currency: "USD"
90
+ markets: ["US"]
91
+
92
+ signals:
93
+ marketplace:
94
+ - signal_agent_segment_id: "trident_likely_ev_buyers"
95
+ name: "Likely EV Buyers"
96
+ data_provider_domain: "tridentauto.example"
97
+ signal_id: "likely_ev_buyers"
98
+ value_type: "binary"
99
+ signal_type: "marketplace"
100
+ coverage_percentage: 8
101
+ pricing:
102
+ - pricing_option_id: "po_trident_ev_cpm"
103
+ model: "cpm"
104
+ cpm: 3.50
105
+ currency: "USD"
106
+
107
+ - signal_agent_segment_id: "trident_purchase_propensity"
108
+ name: "Purchase Propensity"
109
+ data_provider_domain: "tridentauto.example"
110
+ signal_id: "purchase_propensity"
111
+ value_type: "numeric"
112
+ signal_type: "marketplace"
113
+ range:
114
+ min: 0
115
+ max: 1
116
+ coverage_percentage: 55
117
+ pricing:
118
+ - pricing_option_id: "po_trident_propensity_cpm"
119
+ model: "cpm"
120
+ cpm: 4.00
121
+ currency: "USD"
122
+
123
+ - signal_agent_segment_id: "meridian_competitor_visitors"
124
+ name: "Competitor Visitors"
125
+ data_provider_domain: "meridiangeo.example"
126
+ signal_id: "competitor_visitors"
127
+ value_type: "binary"
128
+ signal_type: "marketplace"
129
+ coverage_percentage: 6
130
+ pricing:
131
+ - pricing_option_id: "po_meridian_visitors_cpm"
132
+ model: "cpm"
133
+ cpm: 5.00
134
+ currency: "USD"
135
+
136
+ - signal_agent_segment_id: "shopgrid_new_to_brand"
137
+ name: "New to Brand"
138
+ data_provider_domain: "shopgrid.example"
139
+ signal_id: "new_to_brand"
140
+ value_type: "binary"
141
+ signal_type: "marketplace"
142
+ coverage_percentage: 25
143
+ pricing:
144
+ - pricing_option_id: "po_shopgrid_retail_cpm"
145
+ model: "cpm"
146
+ cpm: 3.50
147
+ currency: "USD"
148
+
149
+ owned:
150
+ - signal_agent_segment_id: "prism_high_ltv"
151
+ name: "High LTV Customers"
152
+ value_type: "binary"
153
+ signal_type: "owned"
154
+ coverage_percentage: 12
155
+ pricing:
156
+ - pricing_option_id: "po_prism_flat_monthly"
157
+ model: "flat_fee"
158
+ amount: 5000
159
+ period: "monthly"
160
+ currency: "USD"
161
+
162
+ - signal_agent_segment_id: "prism_cart_abandoner"
163
+ name: "Cart Abandoners"
164
+ value_type: "binary"
165
+ signal_type: "owned"
166
+ coverage_percentage: 18
167
+ pricing:
168
+ - pricing_option_id: "po_prism_abandoner_cpm"
169
+ model: "cpm"
170
+ cpm: 8.00
171
+ currency: "USD"
172
+
173
+ - signal_agent_segment_id: "prism_engagement_score"
174
+ name: "Engagement Score"
175
+ value_type: "numeric"
176
+ signal_type: "owned"
177
+ range:
178
+ min: 0
179
+ max: 100
180
+ coverage_percentage: 65
181
+ pricing:
182
+ - pricing_option_id: "po_prism_engagement_cpm"
183
+ model: "cpm"
184
+ cpm: 2.50
185
+ currency: "USD"
186
+
187
+ - signal_agent_segment_id: "prism_churn_risk"
188
+ name: "Churn Risk"
189
+ value_type: "categorical"
190
+ signal_type: "owned"
191
+ categories: ["low_risk", "medium_risk", "high_risk", "churned"]
192
+ coverage_percentage: 70
193
+ pricing:
194
+ - pricing_option_id: "po_prism_churn_pom"
195
+ model: "percent_of_media"
196
+ percent: 12
197
+ max_cpm: 3.00
198
+ currency: "USD"
199
+
200
+ assets:
201
+ images:
202
+ - id: "hero_300x250"
203
+ url: "https://test-assets.adcontextprotocol.org/nova-motors/hero-300x250.jpg"
204
+ width: 300
205
+ height: 250
206
+ mime_type: "image/jpeg"
207
+ description: "Medium rectangle hero — Volta EV on coastal highway"
208
+
209
+ - id: "hero_728x90"
210
+ url: "https://test-assets.adcontextprotocol.org/nova-motors/hero-728x90.jpg"
211
+ width: 728
212
+ height: 90
213
+ mime_type: "image/jpeg"
214
+ description: "Leaderboard hero — Volta EV front profile with charging station"
215
+
216
+ - id: "hero_320x50"
217
+ url: "https://test-assets.adcontextprotocol.org/nova-motors/hero-320x50.jpg"
218
+ width: 320
219
+ height: 50
220
+ mime_type: "image/jpeg"
221
+ description: "Mobile banner hero — Volta EV dashboard detail"
222
+
223
+ - id: "hero_160x600"
224
+ url: "https://test-assets.adcontextprotocol.org/nova-motors/hero-160x600.jpg"
225
+ width: 160
226
+ height: 600
227
+ mime_type: "image/jpeg"
228
+ description: "Wide skyscraper hero — vertical Volta EV silhouette"
229
+
230
+ - id: "hero_master"
231
+ url: "https://test-assets.adcontextprotocol.org/nova-motors/hero-master.jpg"
232
+ width: 1200
233
+ height: 628
234
+ mime_type: "image/jpeg"
235
+ description: "Master hero image — high-res Volta EV in motion"
236
+
237
+ text:
238
+ headlines:
239
+ - "The Volta EV — 0 to 60 in 3.2s"
240
+ - "Performance Meets Sustainability"
241
+ - "Drive Electric. Drive Nova."
242
+ descriptions:
243
+ - "340 miles of range. 15-minute fast charge. The Volta EV is engineered for drivers who refuse to compromise."
244
+ - "Zero emissions, zero compromises. Test drive the Volta EV at your nearest Nova Motors dealer."
245
+ cta:
246
+ - "Reserve Yours"
247
+ - "Schedule a Test Drive"
248
+ - "Explore the Volta"
249
+
250
+ click_url: "https://novamotors.example/volta-ev"
251
+
252
+ destinations:
253
+ platforms:
254
+ - type: "platform"
255
+ platform: "the-trade-desk"
256
+ account: "agency-123-ttd"
257
+ - type: "platform"
258
+ platform: "streamhaus"
259
+ account: "agency-ctv-seat-456"
260
+ agents:
261
+ - type: "agent"
262
+ agent_url: "https://wonderstruck.salesagents.example"
@@ -0,0 +1,126 @@
1
+ # Osei Natural — Beauty Advertiser Test Kit
2
+ #
3
+ # Entity definition: fictional-entities.yaml → advertisers[osei_natural]
4
+ #
5
+ # 8-person natural skincare company based in Nairobi. Represents the small
6
+ # business that advertising should serve but currently doesn't.
7
+ #
8
+ # This brand is registered as a sandbox brand in AgenticAdvertising.org (AAO).
9
+ # Agents resolve oseinatural.example via the standard AAO brand resolution path.
10
+ # AAO returns the brand.json below but excludes sandbox brands from production
11
+ # brand discovery results.
12
+
13
+ id: osei_natural
14
+ name: "Osei Natural"
15
+ description: "Natural skincare brand for small-business advertiser storyboard testing"
16
+ sandbox: true
17
+
18
+ # security_baseline auth fixture — see acme-outdoor.yaml for semantics.
19
+ auth:
20
+ api_key: "demo-osei-natural-v1"
21
+ probe_task: list_creatives
22
+
23
+ brand:
24
+ house:
25
+ domain: "oseinatural.example"
26
+ name: "Osei Natural"
27
+ brand_id: "osei_natural"
28
+ names:
29
+ - en: "Osei Natural"
30
+ description: "Natural skincare rooted in East African botanicals. Small-batch, founder-led, and unapologetically simple."
31
+ industry: "beauty"
32
+ keller_type: "master"
33
+ logos:
34
+ - url: "https://test-assets.adcontextprotocol.org/osei-natural/logo-primary.png"
35
+ orientation: "horizontal"
36
+ background: "light-bg"
37
+ variant: "primary"
38
+ width: 400
39
+ height: 100
40
+ - url: "https://test-assets.adcontextprotocol.org/osei-natural/logo-icon.png"
41
+ orientation: "square"
42
+ background: "transparent-bg"
43
+ variant: "icon"
44
+ width: 200
45
+ height: 200
46
+ colors:
47
+ primary: "#5D4037"
48
+ secondary: "#C8E6C9"
49
+ accent: "#FF8F00"
50
+ background: "#FBF7F4"
51
+ text: "#2E2E2E"
52
+ fonts:
53
+ heading:
54
+ family: "Cormorant Garamond"
55
+ weight: 600
56
+ url: "https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@600"
57
+ body:
58
+ family: "Lato"
59
+ weight: 400
60
+ url: "https://fonts.googleapis.com/css2?family=Lato"
61
+ tone:
62
+ voice: "Calm, grounded, and personal. Amara speaks directly to customers like a trusted friend sharing what works."
63
+ attributes:
64
+ - "authentic"
65
+ - "gentle"
66
+ - "personal"
67
+ dos:
68
+ - "Name specific botanicals and their origins"
69
+ - "Use first-person when appropriate — the founder is the brand"
70
+ - "Keep it warm and conversational"
71
+ donts:
72
+ - "Use clinical or pharmaceutical language"
73
+ - "Make anti-aging claims — Osei Natural is about care, not correction"
74
+ - "Erase the brand's Kenyan identity — it's a feature, not a detail"
75
+
76
+ assets:
77
+ images:
78
+ - id: "hero_300x250"
79
+ url: "https://test-assets.adcontextprotocol.org/osei-natural/hero-300x250.jpg"
80
+ width: 300
81
+ height: 250
82
+ mime_type: "image/jpeg"
83
+ description: "Medium rectangle hero — product jars with botanical ingredients"
84
+
85
+ - id: "hero_728x90"
86
+ url: "https://test-assets.adcontextprotocol.org/osei-natural/hero-728x90.jpg"
87
+ width: 728
88
+ height: 90
89
+ mime_type: "image/jpeg"
90
+ description: "Leaderboard hero — Amara in workshop with shea butter"
91
+
92
+ - id: "hero_320x50"
93
+ url: "https://test-assets.adcontextprotocol.org/osei-natural/hero-320x50.jpg"
94
+ width: 320
95
+ height: 50
96
+ mime_type: "image/jpeg"
97
+ description: "Mobile banner hero — close-up of baobab oil serum"
98
+
99
+ - id: "hero_160x600"
100
+ url: "https://test-assets.adcontextprotocol.org/osei-natural/hero-160x600.jpg"
101
+ width: 160
102
+ height: 600
103
+ mime_type: "image/jpeg"
104
+ description: "Wide skyscraper hero — vertical product lineup on linen"
105
+
106
+ - id: "hero_master"
107
+ url: "https://test-assets.adcontextprotocol.org/osei-natural/hero-master.jpg"
108
+ width: 1200
109
+ height: 628
110
+ mime_type: "image/jpeg"
111
+ description: "Master hero image — high-res flat lay of full product range"
112
+
113
+ text:
114
+ headlines:
115
+ - "Your Skin Deserves Better Ingredients"
116
+ - "Small-Batch Skincare from Nairobi"
117
+ - "Rooted in East African Botanicals"
118
+ descriptions:
119
+ - "Shea butter, baobab oil, and aloe — sourced from East African growers, blended by hand in Nairobi. Osei Natural."
120
+ - "Eight people, twelve products, zero compromises. Natural skincare that actually works."
121
+ cta:
122
+ - "Shop the Collection"
123
+ - "Meet the Founder"
124
+ - "Try a Sample Kit"
125
+
126
+ click_url: "https://oseinatural.example/shop"
@@ -0,0 +1,155 @@
1
+ # Signed-Requests Runner — Harness Contract Test Kit
2
+ #
3
+ # Applies to: universal/signed-requests.yaml (gated on
4
+ # `request_signing.supported: true` in get_adcp_capabilities).
5
+ #
6
+ # The signed-requests storyboard grades an agent's RFC 9421 verifier against 28
7
+ # conformance vectors at /compliance/{version}/test-vectors/request-signing/.
8
+ # Most vectors are pure black-box: the runner constructs a signed HTTP request,
9
+ # sends it, and checks the response. Three negative vectors assert behavior that
10
+ # depends on verifier state the runner cannot set from the outside:
11
+ #
12
+ # 016-replayed-nonce — replay cache must already contain (keyid, nonce)
13
+ # 017-key-revoked — keyid must already be in the revocation list
14
+ # 020-rate-abuse — per-keyid replay cache must be at its configured cap
15
+ #
16
+ # This test-kit defines the coordination contract between a black-box runner and
17
+ # a request-signing agent under test. Agents advertising
18
+ # `request_signing.supported: true` MUST pre-configure their verifier per this
19
+ # contract before the negative phase runs. The runner reads this file to know
20
+ # (a) the keyids it will sign with, (b) how to provoke each stateful negative
21
+ # vector, and (c) the grading-time cap values it will target (which are NOT
22
+ # production recommendations — see each field). See `scope` below for what the
23
+ # contract does NOT specify.
24
+
25
+ id: signed_requests_runner
26
+ applies_to:
27
+ universal_storyboard: signed-requests
28
+
29
+ description: |
30
+ Coordination contract between a black-box runner and a request-signing agent
31
+ under test. The runner signs vectors dynamically using the keypairs published
32
+ in keys.json. The agent pre-configures its verifier — accepted JWKS, pre-revoked
33
+ keyid, replay TTL, per-keyid cap — so that the three stateful negative vectors
34
+ produce their expected error codes without the runner injecting verifier state.
35
+
36
+ Vectors requiring coordination declare `requires_contract` in their fixture;
37
+ the runner gates those vectors on this contract being in scope.
38
+
39
+ endpoint_scope: sandbox
40
+ # The replay-window contract sends a live, validly-signed mutating request as
41
+ # its first step (the second copy is what the grader expects to be rejected).
42
+ # Running this against a production endpoint would create a real media buy.
43
+ # Graders MUST target a sandbox/staging endpoint or an idempotency-keyed
44
+ # sacrificial path the agent discards post-grading. Agents advertising
45
+ # `request_signing.supported: true` SHOULD expose a dedicated grading endpoint
46
+ # rather than grading in prod.
47
+
48
+ harness_mode: black_box
49
+ # Agents participating in a white-box test harness (e.g., SDK internal tests
50
+ # against the reference verifier) MAY satisfy the stateful vectors via direct
51
+ # state injection using the vector's `test_harness_state` block, and declare
52
+ # `harness_mode: white_box` in their own runner configuration. AdCP Verified
53
+ # grading runs in black_box mode only.
54
+
55
+ runner_signing_keys:
56
+ # Runner signs every non-negative-key vector with one of these keypairs. The
57
+ # agent's verifier MUST treat these keyids as a registered test counterparty
58
+ # whose JWKS contains the corresponding public keys with
59
+ # adcp_use: "request-signing". Private keys for signing live in keys.json
60
+ # under `_private_d_for_test_only`.
61
+ - keyid: test-ed25519-2026
62
+ alg: ed25519
63
+ jwks_source: /compliance/{version}/test-vectors/request-signing/keys.json
64
+ - keyid: test-es256-2026
65
+ alg: ecdsa-p256-sha256
66
+ jwks_source: /compliance/{version}/test-vectors/request-signing/keys.json
67
+
68
+ stateful_vector_contract:
69
+ replay_window:
70
+ # Vector 016-replayed-nonce.
71
+ #
72
+ # The runner provokes the replay rejection by sending the same signed
73
+ # request twice in sequence. The agent MUST accept the first submission
74
+ # (standard positive path) and reject the second with
75
+ # request_signature_replayed at checklist step 12.
76
+ #
77
+ # The agent's replay-cache TTL for this test counterparty MUST be at least
78
+ # `min_replay_ttl_seconds`, which is strictly greater than
79
+ # `max_interval_seconds` to absorb clock skew between runner and agent and
80
+ # scheduler jitter on either side. Otherwise the cache entry for the first
81
+ # request may evict before the second arrives and the vector will pass
82
+ # spuriously (i.e., both requests accepted = no replay rejection). The
83
+ # runner's own interval between the two submissions MUST NOT exceed
84
+ # `max_interval_seconds`.
85
+ #
86
+ # This supersedes vector 016's `test_harness_state.replay_cache_entries`
87
+ # for black-box mode. In white-box mode, the harness MAY inject the cache
88
+ # entry directly and skip the first request.
89
+ vector_id: 016-replayed-nonce
90
+ black_box_behavior: repeat_request
91
+ max_interval_seconds: 5
92
+ min_replay_ttl_seconds: 10
93
+
94
+ revocation:
95
+ # Vector 017-key-revoked.
96
+ #
97
+ # The runner cannot revoke a key on the agent's side. The agent MUST
98
+ # pre-configure its revocation list with `test-revoked-2026` before the
99
+ # negative phase runs. The runner signs vector 017 with this keyid and
100
+ # expects request_signature_key_revoked at checklist step 9.
101
+ #
102
+ # A dedicated revoked keypair (rather than reusing a runner signing key)
103
+ # keeps positive vectors and vector 017 independent: the positive phase
104
+ # remains runnable after vector 017 is graded.
105
+ vector_id: 017-key-revoked
106
+ pre_revoked_keyid: test-revoked-2026
107
+
108
+ rate_abuse:
109
+ # Vector 020-rate-abuse (checklist step 9a).
110
+ #
111
+ # The runner sends N+1 distinct-nonce requests signed by the same keyid
112
+ # within the window. The agent MUST reject the (N+1)th with
113
+ # request_signature_rate_abuse once the per-keyid cap is hit.
114
+ #
115
+ # `grading_target_per_keyid_cap_requests` is the cap the runner will
116
+ # target during grading — NOT a production recommendation. Agents MAY
117
+ # configure a lower cap for the test-kit counterparty only so grading
118
+ # finishes in a reasonable time. Production caps MUST follow the spec
119
+ # recommendation at docs/building/implementation/security.mdx
120
+ # §per-keyid cap (at least 1,000,000 entries per keyid). Implementers
121
+ # copying a value from this file into production code SHOULD use
122
+ # `production_min_per_keyid_cap_requests` below as the floor, not
123
+ # `grading_target_per_keyid_cap_requests`.
124
+ vector_id: 020-rate-abuse
125
+ grading_target_per_keyid_cap_requests: 100
126
+ production_min_per_keyid_cap_requests: 1000000
127
+ window_seconds: 60
128
+
129
+ scope:
130
+ in_scope: |
131
+ - Keyids the runner will sign with and their JWKS source.
132
+ - Agent-side preconditions for each stateful negative vector.
133
+ - Grading-time cap the runner will target for rate-abuse grading (NOT a
134
+ production recommendation; see rate_abuse block).
135
+ - Minimum replay-cache TTL so the replay-window contract is reliable.
136
+ - Black-box vs. white-box harness mode selection.
137
+ - Endpoint scope (sandbox only — see endpoint_scope).
138
+ out_of_scope: |
139
+ - Specific error-code strings — those live in each vector's
140
+ expected_outcome.error_code and are graded byte-for-byte.
141
+ - Checklist step numbers — informational only; grading is on the error
142
+ code, not the step.
143
+ - Pre-signed Signature bytes in the vectors — unchanged by this contract.
144
+ Black-box runners re-sign dynamically; pre-signed bytes remain valid
145
+ for white-box cross-SDK byte-equivalence checks.
146
+ - The agent's internal replay TTL or cap storage mechanism — the contract
147
+ specifies observable behavior, not implementation.
148
+ - Production verifier configuration — this contract configures a test
149
+ counterparty only.
150
+
151
+ references:
152
+ universal_storyboard: static/compliance/source/universal/signed-requests.yaml
153
+ test_vectors: /compliance/{version}/test-vectors/request-signing/
154
+ verifier_checklist: /docs/building/implementation/security.mdx#verifier-checklist-requests
155
+ runner_implementation: https://github.com/adcontextprotocol/adcp-client/issues/585