@adcp/sdk 6.9.0 → 6.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (261) hide show
  1. package/bin/adcp.js +285 -5
  2. package/compliance/cache/3.0.6.previous/domains/brand/index.yaml +163 -0
  3. package/compliance/cache/3.0.6.previous/domains/creative/index.yaml +412 -0
  4. package/compliance/cache/3.0.6.previous/domains/governance/index.yaml +683 -0
  5. package/compliance/cache/3.0.6.previous/domains/media-buy/creative-reception.yaml +247 -0
  6. package/compliance/cache/3.0.6.previous/domains/media-buy/index.yaml +769 -0
  7. package/compliance/cache/3.0.6.previous/domains/media-buy/scenarios/create_media_buy_async.yaml +232 -0
  8. package/compliance/cache/3.0.6.previous/domains/media-buy/scenarios/creative_fate_after_cancellation.yaml +414 -0
  9. package/compliance/cache/3.0.6.previous/domains/media-buy/scenarios/delivery_reporting.yaml +205 -0
  10. package/compliance/cache/3.0.6.previous/domains/media-buy/scenarios/governance_approved.yaml +211 -0
  11. package/compliance/cache/3.0.6.previous/domains/media-buy/scenarios/governance_conditions.yaml +196 -0
  12. package/compliance/cache/3.0.6.previous/domains/media-buy/scenarios/governance_denied.yaml +192 -0
  13. package/compliance/cache/3.0.6.previous/domains/media-buy/scenarios/governance_denied_recovery.yaml +244 -0
  14. package/compliance/cache/3.0.6.previous/domains/media-buy/scenarios/invalid_transitions.yaml +284 -0
  15. package/compliance/cache/3.0.6.previous/domains/media-buy/scenarios/inventory_list_no_match.yaml +143 -0
  16. package/compliance/cache/3.0.6.previous/domains/media-buy/scenarios/inventory_list_targeting.yaml +271 -0
  17. package/compliance/cache/3.0.6.previous/domains/media-buy/scenarios/measurement_terms_rejected.yaml +195 -0
  18. package/compliance/cache/3.0.6.previous/domains/media-buy/scenarios/pending_creatives_to_start.yaml +250 -0
  19. package/compliance/cache/3.0.6.previous/domains/media-buy/scenarios/proposal_finalize.yaml +243 -0
  20. package/compliance/cache/3.0.6.previous/domains/media-buy/scenarios/refine_products.yaml +148 -0
  21. package/compliance/cache/3.0.6.previous/domains/media-buy/state-machine.yaml +442 -0
  22. package/compliance/cache/3.0.6.previous/domains/signals/index.yaml +266 -0
  23. package/compliance/cache/3.0.6.previous/domains/sponsored-intelligence/index.yaml +256 -0
  24. package/compliance/cache/3.0.6.previous/index.json +324 -0
  25. package/compliance/cache/3.0.6.previous/protocols/brand/index.yaml +163 -0
  26. package/compliance/cache/3.0.6.previous/protocols/creative/index.yaml +412 -0
  27. package/compliance/cache/3.0.6.previous/protocols/governance/index.yaml +683 -0
  28. package/compliance/cache/3.0.6.previous/protocols/media-buy/creative-reception.yaml +247 -0
  29. package/compliance/cache/3.0.6.previous/protocols/media-buy/index.yaml +769 -0
  30. package/compliance/cache/3.0.6.previous/protocols/media-buy/scenarios/create_media_buy_async.yaml +232 -0
  31. package/compliance/cache/3.0.6.previous/protocols/media-buy/scenarios/creative_fate_after_cancellation.yaml +414 -0
  32. package/compliance/cache/3.0.6.previous/protocols/media-buy/scenarios/delivery_reporting.yaml +205 -0
  33. package/compliance/cache/3.0.6.previous/protocols/media-buy/scenarios/governance_approved.yaml +211 -0
  34. package/compliance/cache/3.0.6.previous/protocols/media-buy/scenarios/governance_conditions.yaml +196 -0
  35. package/compliance/cache/3.0.6.previous/protocols/media-buy/scenarios/governance_denied.yaml +192 -0
  36. package/compliance/cache/3.0.6.previous/protocols/media-buy/scenarios/governance_denied_recovery.yaml +244 -0
  37. package/compliance/cache/3.0.6.previous/protocols/media-buy/scenarios/invalid_transitions.yaml +284 -0
  38. package/compliance/cache/3.0.6.previous/protocols/media-buy/scenarios/inventory_list_no_match.yaml +143 -0
  39. package/compliance/cache/3.0.6.previous/protocols/media-buy/scenarios/inventory_list_targeting.yaml +271 -0
  40. package/compliance/cache/3.0.6.previous/protocols/media-buy/scenarios/measurement_terms_rejected.yaml +195 -0
  41. package/compliance/cache/3.0.6.previous/protocols/media-buy/scenarios/pending_creatives_to_start.yaml +250 -0
  42. package/compliance/cache/3.0.6.previous/protocols/media-buy/scenarios/proposal_finalize.yaml +243 -0
  43. package/compliance/cache/3.0.6.previous/protocols/media-buy/scenarios/refine_products.yaml +148 -0
  44. package/compliance/cache/3.0.6.previous/protocols/media-buy/state-machine.yaml +442 -0
  45. package/compliance/cache/3.0.6.previous/protocols/signals/index.yaml +266 -0
  46. package/compliance/cache/3.0.6.previous/protocols/sponsored-intelligence/index.yaml +256 -0
  47. package/compliance/cache/3.0.6.previous/specialisms/audience-sync/index.yaml +280 -0
  48. package/compliance/cache/3.0.6.previous/specialisms/brand-rights/index.yaml +350 -0
  49. package/compliance/cache/3.0.6.previous/specialisms/brand-rights/scenarios/governance_denied.yaml +204 -0
  50. package/compliance/cache/3.0.6.previous/specialisms/collection-lists/index.yaml +359 -0
  51. package/compliance/cache/3.0.6.previous/specialisms/content-standards/index.yaml +572 -0
  52. package/compliance/cache/3.0.6.previous/specialisms/creative-ad-server/index.yaml +383 -0
  53. package/compliance/cache/3.0.6.previous/specialisms/creative-generative/generative-seller.yaml +758 -0
  54. package/compliance/cache/3.0.6.previous/specialisms/creative-generative/index.yaml +746 -0
  55. package/compliance/cache/3.0.6.previous/specialisms/creative-template/index.yaml +413 -0
  56. package/compliance/cache/3.0.6.previous/specialisms/governance-aware-seller/index.yaml +136 -0
  57. package/compliance/cache/3.0.6.previous/specialisms/governance-delivery-monitor/index.yaml +441 -0
  58. package/compliance/cache/3.0.6.previous/specialisms/governance-spend-authority/denied.yaml +221 -0
  59. package/compliance/cache/3.0.6.previous/specialisms/governance-spend-authority/index.yaml +330 -0
  60. package/compliance/cache/3.0.6.previous/specialisms/property-lists/index.yaml +482 -0
  61. package/compliance/cache/3.0.6.previous/specialisms/sales-broadcast-tv/index.yaml +689 -0
  62. package/compliance/cache/3.0.6.previous/specialisms/sales-catalog-driven/index.yaml +779 -0
  63. package/compliance/cache/3.0.6.previous/specialisms/sales-guaranteed/index.yaml +504 -0
  64. package/compliance/cache/3.0.6.previous/specialisms/sales-non-guaranteed/index.yaml +428 -0
  65. package/compliance/cache/3.0.6.previous/specialisms/sales-proposal-mode/index.yaml +520 -0
  66. package/compliance/cache/3.0.6.previous/specialisms/sales-social/index.yaml +584 -0
  67. package/compliance/cache/3.0.6.previous/specialisms/signal-marketplace/index.yaml +415 -0
  68. package/compliance/cache/3.0.6.previous/specialisms/signal-marketplace/scenarios/governance_denied.yaml +207 -0
  69. package/compliance/cache/3.0.6.previous/specialisms/signal-owned/index.yaml +316 -0
  70. package/compliance/cache/3.0.6.previous/test-kits/acme-outdoor.yaml +210 -0
  71. package/compliance/cache/3.0.6.previous/test-kits/bistro-oranje.yaml +126 -0
  72. package/compliance/cache/3.0.6.previous/test-kits/nova-motors.yaml +262 -0
  73. package/compliance/cache/3.0.6.previous/test-kits/osei-natural.yaml +126 -0
  74. package/compliance/cache/3.0.6.previous/test-kits/signed-requests-runner.yaml +155 -0
  75. package/compliance/cache/3.0.6.previous/test-kits/substitution-observer-runner.yaml +690 -0
  76. package/compliance/cache/3.0.6.previous/test-kits/summit-foods.yaml +125 -0
  77. package/compliance/cache/3.0.6.previous/test-kits/webhook-receiver-runner.yaml +265 -0
  78. package/compliance/cache/3.0.6.previous/test-vectors/plan-hash/001-minimal-plan.json +43 -0
  79. package/compliance/cache/3.0.6.previous/test-vectors/plan-hash/002-full-plan.json +217 -0
  80. package/compliance/cache/3.0.6.previous/test-vectors/plan-hash/003-bookkeeping-stripped.json +60 -0
  81. package/compliance/cache/3.0.6.previous/test-vectors/plan-hash/004a-human-review-omitted.json +43 -0
  82. package/compliance/cache/3.0.6.previous/test-vectors/plan-hash/004b-human-review-explicit-null.json +49 -0
  83. package/compliance/cache/3.0.6.previous/test-vectors/plan-hash/005a-policy-categories-order-1.json +53 -0
  84. package/compliance/cache/3.0.6.previous/test-vectors/plan-hash/005b-policy-categories-order-2.json +57 -0
  85. package/compliance/cache/3.0.6.previous/test-vectors/plan-hash/006a-ext-trace-v1.json +49 -0
  86. package/compliance/cache/3.0.6.previous/test-vectors/plan-hash/006b-ext-trace-v2.json +53 -0
  87. package/compliance/cache/3.0.6.previous/test-vectors/plan-hash/007-unicode-objectives.json +43 -0
  88. package/compliance/cache/3.0.6.previous/test-vectors/plan-hash/008-numeric-canonicalization.json +65 -0
  89. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/README.md +219 -0
  90. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/canonicalization.json +241 -0
  91. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/keys.json +60 -0
  92. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/001-no-signature-header.json +24 -0
  93. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/002-wrong-tag.json +26 -0
  94. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/003-expired-signature.json +26 -0
  95. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/004-window-too-long.json +26 -0
  96. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/005-alg-not-allowed.json +26 -0
  97. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/006-missing-covered-component.json +26 -0
  98. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/007-missing-content-digest.json +26 -0
  99. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/008-unknown-keyid.json +26 -0
  100. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/009-key-ops-missing-verify.json +27 -0
  101. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/010-content-digest-mismatch.json +33 -0
  102. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/011-malformed-header.json +27 -0
  103. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/012-missing-expires-param.json +26 -0
  104. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/013-expires-le-created.json +27 -0
  105. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/014-missing-nonce-param.json +27 -0
  106. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/015-signature-invalid.json +28 -0
  107. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/016-replayed-nonce.json +35 -0
  108. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/017-key-revoked.json +38 -0
  109. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/018-digest-covered-when-forbidden.json +28 -0
  110. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/019-signature-without-signature-input.json +26 -0
  111. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/020-rate-abuse.json +34 -0
  112. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/021-duplicate-signature-input-label.json +31 -0
  113. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/022-multi-valued-content-type.json +31 -0
  114. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/023-multi-valued-content-digest.json +32 -0
  115. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/024-unquoted-string-param.json +31 -0
  116. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/025-jwk-alg-crv-mismatch.json +43 -0
  117. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/026-non-ascii-host.json +31 -0
  118. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/027-webhook-registration-authentication-unsigned.json +25 -0
  119. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/positive/001-basic-post.json +30 -0
  120. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/positive/002-post-with-content-digest.json +31 -0
  121. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/positive/003-es256-post.json +30 -0
  122. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/positive/004-multiple-signature-labels.json +26 -0
  123. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/positive/005-default-port-stripped.json +30 -0
  124. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/positive/006-dot-segment-path.json +30 -0
  125. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/positive/007-query-byte-preserved.json +30 -0
  126. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/positive/008-percent-encoded-path.json +30 -0
  127. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/positive/009-percent-encoded-unreserved-decoded.json +30 -0
  128. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/positive/010-percent-encoded-slash-preserved.json +30 -0
  129. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/positive/011-ipv6-authority.json +30 -0
  130. package/compliance/cache/3.0.6.previous/test-vectors/request-signing/positive/012-ipv6-authority-default-port-stripped.json +30 -0
  131. package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/README.md +211 -0
  132. package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/keys.json +61 -0
  133. package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/negative/001-wrong-tag.json +26 -0
  134. package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/negative/002-expired-signature.json +26 -0
  135. package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/negative/003-window-too-long.json +26 -0
  136. package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/negative/004-alg-not-allowed.json +26 -0
  137. package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/negative/005-missing-authority-component.json +26 -0
  138. package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/negative/006-missing-content-digest.json +25 -0
  139. package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/negative/007-unknown-keyid.json +26 -0
  140. package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/negative/008-wrong-adcp-use.json +26 -0
  141. package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/negative/009-content-digest-mismatch.json +26 -0
  142. package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/negative/010-malformed-signature-input.json +26 -0
  143. package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/negative/011-signature-without-input.json +25 -0
  144. package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/negative/012-missing-expires-param.json +26 -0
  145. package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/negative/013-expires-le-created.json +26 -0
  146. package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/negative/014-missing-nonce-param.json +26 -0
  147. package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/negative/015-signature-invalid.json +26 -0
  148. package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/negative/016-replayed-nonce.json +37 -0
  149. package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/negative/017-key-revoked.json +32 -0
  150. package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/negative/018-rate-abuse.json +33 -0
  151. package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/negative/019-revocation-stale.json +32 -0
  152. package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/negative/020-key-ops-missing-verify.json +41 -0
  153. package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/negative/021-base64-alphabet-mixing.json +26 -0
  154. package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/positive/001-basic-post.json +24 -0
  155. package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/positive/002-es256-post.json +24 -0
  156. package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/positive/003-multiple-signature-labels.json +24 -0
  157. package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/positive/004-default-port-stripped.json +24 -0
  158. package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/positive/005-percent-encoded-path.json +24 -0
  159. package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/positive/006-query-byte-preserved.json +24 -0
  160. package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/positive/007-body-without-idempotency-key.json +25 -0
  161. package/compliance/cache/3.0.6.previous/universal/capability-discovery.yaml +125 -0
  162. package/compliance/cache/3.0.6.previous/universal/collection-lists-pagination-integrity.yaml +306 -0
  163. package/compliance/cache/3.0.6.previous/universal/content-standards-pagination-integrity.yaml +326 -0
  164. package/compliance/cache/3.0.6.previous/universal/deterministic-testing.yaml +1343 -0
  165. package/compliance/cache/3.0.6.previous/universal/error-compliance.yaml +474 -0
  166. package/compliance/cache/3.0.6.previous/universal/fictional-entities.yaml +307 -0
  167. package/compliance/cache/3.0.6.previous/universal/get-media-buys-pagination-integrity.yaml +160 -0
  168. package/compliance/cache/3.0.6.previous/universal/get-signals-pagination-integrity.yaml +211 -0
  169. package/compliance/cache/3.0.6.previous/universal/idempotency.yaml +593 -0
  170. package/compliance/cache/3.0.6.previous/universal/pagination-integrity-creative-formats.yaml +258 -0
  171. package/compliance/cache/3.0.6.previous/universal/pagination-integrity-list-accounts.yaml +262 -0
  172. package/compliance/cache/3.0.6.previous/universal/pagination-integrity.yaml +263 -0
  173. package/compliance/cache/3.0.6.previous/universal/property-lists-pagination-integrity.yaml +307 -0
  174. package/compliance/cache/3.0.6.previous/universal/runner-output-contract.yaml +358 -0
  175. package/compliance/cache/3.0.6.previous/universal/schema-validation.yaml +526 -0
  176. package/compliance/cache/3.0.6.previous/universal/security.yaml +431 -0
  177. package/compliance/cache/3.0.6.previous/universal/signed-requests.yaml +205 -0
  178. package/compliance/cache/3.0.6.previous/universal/storyboard-schema.yaml +1176 -0
  179. package/compliance/cache/3.0.6.previous/universal/v3-envelope-integrity.yaml +106 -0
  180. package/compliance/cache/3.0.6.previous/universal/webhook-emission.yaml +337 -0
  181. package/dist/lib/schemas-data/v2.5/_provenance.json +1 -1
  182. package/dist/lib/server/create-adcp-server.d.ts +33 -0
  183. package/dist/lib/server/create-adcp-server.d.ts.map +1 -1
  184. package/dist/lib/server/create-adcp-server.js +127 -1
  185. package/dist/lib/server/create-adcp-server.js.map +1 -1
  186. package/dist/lib/server/credential-policy.d.ts +221 -0
  187. package/dist/lib/server/credential-policy.d.ts.map +1 -0
  188. package/dist/lib/server/credential-policy.js +260 -0
  189. package/dist/lib/server/credential-policy.js.map +1 -0
  190. package/dist/lib/server/decisioning/async-outcome.d.ts +17 -0
  191. package/dist/lib/server/decisioning/async-outcome.d.ts.map +1 -1
  192. package/dist/lib/server/decisioning/async-outcome.js +23 -18
  193. package/dist/lib/server/decisioning/async-outcome.js.map +1 -1
  194. package/dist/lib/server/decisioning/context.d.ts +8 -2
  195. package/dist/lib/server/decisioning/context.d.ts.map +1 -1
  196. package/dist/lib/server/decisioning/index.d.ts +1 -0
  197. package/dist/lib/server/decisioning/index.d.ts.map +1 -1
  198. package/dist/lib/server/decisioning/index.js.map +1 -1
  199. package/dist/lib/server/decisioning/runtime/from-platform.js +6 -4
  200. package/dist/lib/server/decisioning/runtime/from-platform.js.map +1 -1
  201. package/dist/lib/server/decisioning/runtime/postgres-task-registry.d.ts.map +1 -1
  202. package/dist/lib/server/decisioning/runtime/postgres-task-registry.js +5 -2
  203. package/dist/lib/server/decisioning/runtime/postgres-task-registry.js.map +1 -1
  204. package/dist/lib/server/decisioning/runtime/task-registry.d.ts +5 -0
  205. package/dist/lib/server/decisioning/runtime/task-registry.d.ts.map +1 -1
  206. package/dist/lib/server/decisioning/runtime/task-registry.js +4 -1
  207. package/dist/lib/server/decisioning/runtime/task-registry.js.map +1 -1
  208. package/dist/lib/server/decisioning/runtime/to-context.d.ts.map +1 -1
  209. package/dist/lib/server/decisioning/runtime/to-context.js +10 -2
  210. package/dist/lib/server/decisioning/runtime/to-context.js.map +1 -1
  211. package/dist/lib/server/dynamic-registry.d.ts +219 -0
  212. package/dist/lib/server/dynamic-registry.d.ts.map +1 -0
  213. package/dist/lib/server/dynamic-registry.js +245 -0
  214. package/dist/lib/server/dynamic-registry.js.map +1 -0
  215. package/dist/lib/server/index.d.ts +8 -0
  216. package/dist/lib/server/index.d.ts.map +1 -1
  217. package/dist/lib/server/index.js +15 -4
  218. package/dist/lib/server/index.js.map +1 -1
  219. package/dist/lib/server/operational-platform.d.ts +239 -0
  220. package/dist/lib/server/operational-platform.d.ts.map +1 -0
  221. package/dist/lib/server/operational-platform.js +94 -0
  222. package/dist/lib/server/operational-platform.js.map +1 -0
  223. package/dist/lib/server/test-controller.d.ts +2 -0
  224. package/dist/lib/server/test-controller.d.ts.map +1 -1
  225. package/dist/lib/server/test-controller.js +6 -11
  226. package/dist/lib/server/test-controller.js.map +1 -1
  227. package/dist/lib/server/wire-safe.d.ts +211 -0
  228. package/dist/lib/server/wire-safe.d.ts.map +1 -0
  229. package/dist/lib/server/wire-safe.js +231 -0
  230. package/dist/lib/server/wire-safe.js.map +1 -0
  231. package/dist/lib/server/wire-spec-fields.generated.d.ts +168 -0
  232. package/dist/lib/server/wire-spec-fields.generated.d.ts.map +1 -0
  233. package/dist/lib/server/wire-spec-fields.generated.js +172 -0
  234. package/dist/lib/server/wire-spec-fields.generated.js.map +1 -0
  235. package/dist/lib/testing/compliance/index.d.ts +2 -0
  236. package/dist/lib/testing/compliance/index.d.ts.map +1 -1
  237. package/dist/lib/testing/compliance/index.js +6 -1
  238. package/dist/lib/testing/compliance/index.js.map +1 -1
  239. package/dist/lib/testing/compliance/summary.d.ts +77 -0
  240. package/dist/lib/testing/compliance/summary.d.ts.map +1 -0
  241. package/dist/lib/testing/compliance/summary.js +176 -0
  242. package/dist/lib/testing/compliance/summary.js.map +1 -0
  243. package/dist/lib/testing/comply-controller.d.ts +2 -0
  244. package/dist/lib/testing/comply-controller.d.ts.map +1 -1
  245. package/dist/lib/testing/comply-controller.js.map +1 -1
  246. package/dist/lib/testing/storyboard/compliance.d.ts +26 -0
  247. package/dist/lib/testing/storyboard/compliance.d.ts.map +1 -1
  248. package/dist/lib/testing/storyboard/compliance.js +51 -0
  249. package/dist/lib/testing/storyboard/compliance.js.map +1 -1
  250. package/dist/lib/testing/storyboard/index.d.ts +2 -2
  251. package/dist/lib/testing/storyboard/index.d.ts.map +1 -1
  252. package/dist/lib/testing/storyboard/index.js +4 -2
  253. package/dist/lib/testing/storyboard/index.js.map +1 -1
  254. package/dist/lib/testing/storyboard/runner.d.ts.map +1 -1
  255. package/dist/lib/testing/storyboard/runner.js +58 -5
  256. package/dist/lib/testing/storyboard/runner.js.map +1 -1
  257. package/dist/lib/version.d.ts +3 -3
  258. package/dist/lib/version.d.ts.map +1 -1
  259. package/dist/lib/version.js +3 -3
  260. package/dist/lib/version.js.map +1 -1
  261. package/package.json +2 -2
@@ -0,0 +1,482 @@
1
+ id: property_lists
2
+ version: "1.0.0"
3
+ title: "Property lists"
4
+ protocol: governance
5
+ category: property_lists
6
+ summary: "Curated property lists for inventory grouping, targeting governance, and delivery compliance — create, query, update, delete, and validate."
7
+ track: governance
8
+ required_tools:
9
+ - create_property_list
10
+
11
+ # Cross-step assertion (adcp#2664). status.monotonic rejects resource
12
+ # status transitions observed across steps that aren't on the spec
13
+ # lifecycle graph. Silent on property-list-only runs (no tracked
14
+ # lifecycle resource), but wired so phases that touch media_buy /
15
+ # account status (e.g. via a validation run against delivery) are
16
+ # automatically gated.
17
+ invariants:
18
+ - status.monotonic
19
+
20
+ narrative: |
21
+ You run a governance agent that manages property lists for brand safety. Buyers create
22
+ inclusion and exclusion lists that define where their ads can and cannot appear. Your
23
+ agent stores these lists, lets buyers query and update them, and validates that actual
24
+ ad delivery complied with the property constraints.
25
+
26
+ Property governance is how brands control their environment. An inclusion list says
27
+ "only show my ads on these properties." An exclusion list says "never show my ads here."
28
+ The validation step checks after the fact: did the seller actually respect the lists?
29
+
30
+ This storyboard covers the full property list lifecycle: creating lists, querying them,
31
+ updating and deleting, and validating that delivery matched the constraints.
32
+
33
+ agent:
34
+ interaction_model: governance_agent
35
+ capabilities:
36
+ - property_lists
37
+ - brand_safety
38
+ examples:
39
+ - "IAS"
40
+ - "DoubleVerify"
41
+ - "GARM-aligned platforms"
42
+ - "Brand safety services"
43
+
44
+ caller:
45
+ role: buyer_agent
46
+ example: "Pinnacle Agency (buyer)"
47
+
48
+ prerequisites:
49
+ description: |
50
+ The caller needs a brand identity and property domain knowledge. The test kit
51
+ provides a sample brand with campaign context.
52
+ test_kit: "test-kits/acme-outdoor.yaml"
53
+
54
+ phases:
55
+ - id: capability_discovery
56
+ title: "Capability discovery"
57
+ narrative: |
58
+ The buyer calls get_adcp_capabilities to confirm the agent supports governance before registering plans or checking compliance.
59
+
60
+ steps:
61
+ - id: get_capabilities
62
+ title: "Check agent capabilities"
63
+ narrative: |
64
+ Verify that the agent declares the expected protocol support before
65
+ proceeding with domain-specific operations.
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: capability_discovery
71
+ stateful: false
72
+ expected: |
73
+ Return capabilities declaring governance in supported_protocols, confirming the agent provides governance services.
74
+ sample_request:
75
+ context:
76
+ correlation_id: "property_lists--get_capabilities"
77
+ validations:
78
+ - check: response_schema
79
+ description: "Response matches get-adcp-capabilities-response.json schema"
80
+ - check: field_present
81
+ path: "supported_protocols"
82
+ description: "Agent declares supported protocols"
83
+
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: "property_lists--get_capabilities"
90
+ description: "Context correlation_id returned unchanged"
91
+ - id: create_list
92
+ title: "Create property lists"
93
+ narrative: |
94
+ The buyer creates inclusion and exclusion property lists for the campaign. These
95
+ define the safe and unsafe environments for the brand's ads.
96
+
97
+ steps:
98
+ - id: create_inclusion_list
99
+ title: "Create an inclusion list"
100
+ narrative: |
101
+ The buyer creates an inclusion list specifying which properties (domains,
102
+ apps, channels) are approved for ad placement.
103
+ task: create_property_list
104
+ schema_ref: "property/create-property-list-request.json"
105
+ response_schema_ref: "property/create-property-list-response.json"
106
+ doc_ref: "/governance/property/tasks/property_lists"
107
+ comply_scenario: governance_property_lists
108
+ stateful: true
109
+ expected: |
110
+ Return the created property list:
111
+ - list_id: platform-assigned identifier
112
+ - list_type: inclusion
113
+ - Properties registered
114
+ - Status: active
115
+
116
+ sample_request:
117
+ account:
118
+ brand:
119
+ domain: "acmeoutdoor.example"
120
+ operator: "pinnacle-agency.example"
121
+ brand:
122
+ domain: "acmeoutdoor.example"
123
+ name: "Acme Outdoor approved properties"
124
+ base_properties:
125
+ - selection_type: "identifiers"
126
+ identifiers:
127
+ - type: "domain"
128
+ value: "outdoormagazine.example"
129
+ - type: "domain"
130
+ value: "hikingtrails.example"
131
+ - type: "domain"
132
+ value: "campinggear.example"
133
+
134
+ idempotency_key: "$generate:uuid_v4#property_lists_create_list_create_inclusion_list"
135
+ context:
136
+ correlation_id: "property_lists--create_inclusion_list"
137
+ context_outputs:
138
+ - path: "list.list_id"
139
+ key: "property_list_id"
140
+
141
+ validations:
142
+ - check: response_schema
143
+ description: "Response matches create-property-list-response.json schema"
144
+
145
+ - check: field_present
146
+ path: "context"
147
+ description: "Response echoes back the context object"
148
+ - check: field_value
149
+ path: "context.correlation_id"
150
+ value: "property_lists--create_inclusion_list"
151
+ description: "Context correlation_id returned unchanged"
152
+ - check: field_present
153
+ path: "list.list_id"
154
+ description: "Governance agent assigns list_id — must be echoed in get/update/delete"
155
+ - id: list_and_get
156
+ title: "Query property lists"
157
+ narrative: |
158
+ The buyer lists all property lists for the account and retrieves a specific list
159
+ to inspect its contents.
160
+
161
+ steps:
162
+ - id: list_property_lists
163
+ title: "List all property lists"
164
+ narrative: |
165
+ The buyer lists all property lists for the brand. The response includes list
166
+ metadata (name, type, property count) without full property details.
167
+ task: list_property_lists
168
+ schema_ref: "property/list-property-lists-request.json"
169
+ response_schema_ref: "property/list-property-lists-response.json"
170
+ doc_ref: "/governance/property/tasks/property_lists"
171
+ comply_scenario: property_list_filters
172
+ stateful: true
173
+ expected: |
174
+ Return property list summaries:
175
+ - Array of lists with list_id, name, list_type, property_count
176
+ - Includes both inclusion and exclusion lists
177
+
178
+ sample_request:
179
+ account:
180
+ brand:
181
+ domain: "acmeoutdoor.example"
182
+ operator: "pinnacle-agency.example"
183
+ name_contains: "Acme Outdoor"
184
+
185
+ context:
186
+ correlation_id: "property_lists--list_property_lists"
187
+ validations:
188
+ - check: response_schema
189
+ description: "Response matches list-property-lists-response.json schema"
190
+
191
+ - check: field_present
192
+ path: "context"
193
+ description: "Response echoes back the context object"
194
+ - check: field_value
195
+ path: "context.correlation_id"
196
+ value: "property_lists--list_property_lists"
197
+ description: "Context correlation_id returned unchanged"
198
+ - id: get_property_list
199
+ title: "Get a specific property list"
200
+ narrative: |
201
+ The buyer retrieves the full details of a specific property list, including
202
+ all properties in the list.
203
+ task: get_property_list
204
+ schema_ref: "property/get-property-list-request.json"
205
+ response_schema_ref: "property/get-property-list-response.json"
206
+ doc_ref: "/governance/property/tasks/property_lists"
207
+ comply_scenario: governance_property_lists
208
+ stateful: true
209
+ expected: |
210
+ Return the full property list:
211
+ - list_id, name, list_type
212
+ - All properties in the list with their details
213
+
214
+ sample_request:
215
+ list_id: "$context.property_list_id"
216
+ account:
217
+ brand:
218
+ domain: "acmeoutdoor.example"
219
+ operator: "pinnacle-agency.example"
220
+
221
+ context:
222
+ correlation_id: "property_lists--get_property_list"
223
+ validations:
224
+ - check: response_schema
225
+ description: "Response matches get-property-list-response.json schema"
226
+
227
+ - check: field_present
228
+ path: "context"
229
+ description: "Response echoes back the context object"
230
+ - check: field_value
231
+ path: "context.correlation_id"
232
+ value: "property_lists--get_property_list"
233
+ description: "Context correlation_id returned unchanged"
234
+ - id: update_list
235
+ title: "Update property lists"
236
+ narrative: |
237
+ The buyer modifies an existing property list — replacing the base properties
238
+ as brand safety requirements evolve.
239
+
240
+ steps:
241
+ - id: update_property_list
242
+ title: "Update a property list"
243
+ narrative: |
244
+ The buyer replaces the base properties on an existing list with a new set.
245
+ task: update_property_list
246
+ schema_ref: "property/update-property-list-request.json"
247
+ response_schema_ref: "property/update-property-list-response.json"
248
+ doc_ref: "/governance/property/tasks/property_lists"
249
+ comply_scenario: governance_property_lists
250
+ stateful: true
251
+ expected: |
252
+ Return the updated property list:
253
+ - Updated property count
254
+ - Confirmation of the replaced base properties
255
+
256
+ sample_request:
257
+ list_id: "$context.property_list_id"
258
+ account:
259
+ brand:
260
+ domain: "acmeoutdoor.example"
261
+ operator: "pinnacle-agency.example"
262
+ base_properties:
263
+ - selection_type: "identifiers"
264
+ identifiers:
265
+ - type: "domain"
266
+ value: "outdoormagazine.example"
267
+ - type: "domain"
268
+ value: "hikingtrails.example"
269
+ - type: "domain"
270
+ value: "mountaineering.example"
271
+
272
+ idempotency_key: "$generate:uuid_v4#property_lists_update_list_update_property_list"
273
+ context:
274
+ correlation_id: "property_lists--update_property_list"
275
+ validations:
276
+ - check: response_schema
277
+ description: "Response matches update-property-list-response.json schema"
278
+
279
+ - check: field_present
280
+ path: "context"
281
+ description: "Response echoes back the context object"
282
+ - check: field_value
283
+ path: "context.correlation_id"
284
+ value: "property_lists--update_property_list"
285
+ description: "Context correlation_id returned unchanged"
286
+ - id: delivery_validation
287
+ title: "Validate delivery compliance"
288
+ narrative: |
289
+ After ads have been delivered, the buyer validates that the seller respected the
290
+ property lists. The governance agent checks actual delivery data against the
291
+ inclusion/exclusion constraints.
292
+
293
+ steps:
294
+ - id: validate_property_delivery
295
+ title: "Validate property compliance"
296
+ narrative: |
297
+ The buyer submits delivery data and the governance agent checks whether all
298
+ placements complied with the property lists. Non-compliant placements are
299
+ flagged with details.
300
+ task: validate_property_delivery
301
+ schema_ref: "property/validate-property-delivery-request.json"
302
+ response_schema_ref: "property/validate-property-delivery-response.json"
303
+ doc_ref: "/governance/property/tasks/validate_property_delivery"
304
+ comply_scenario: governance_property_lists
305
+ stateful: true
306
+ expected: |
307
+ Return validation results:
308
+ - compliant: boolean overall status
309
+ - summary aggregates compliant/non_compliant/not_covered/unidentified counts
310
+ - Per-placement compliance status
311
+ - features[] entries on each non_compliant record explaining the breach
312
+
313
+ sample_request:
314
+ account:
315
+ brand:
316
+ domain: "acmeoutdoor.example"
317
+ operator: "pinnacle-agency.example"
318
+ list_id: "$context.property_list_id"
319
+ records:
320
+ - record_id: "delivery_outdoor_001"
321
+ identifier:
322
+ type: "domain"
323
+ value: "outdoormagazine.example"
324
+ impressions: 50000
325
+ - record_id: "delivery_random_001"
326
+ identifier:
327
+ type: "domain"
328
+ value: "randomsite.example"
329
+ impressions: 200
330
+
331
+ context:
332
+ correlation_id: "property_lists--validate_property_delivery"
333
+ validations:
334
+ - check: response_schema
335
+ description: "Response matches validate-property-delivery-response.json schema"
336
+ - check: field_value
337
+ path: "compliant"
338
+ value: false
339
+ description: "Overall compliance is false when randomsite.example violates inclusion list"
340
+
341
+
342
+ - check: field_present
343
+ path: "context"
344
+ description: "Response echoes back the context object"
345
+ - check: field_value
346
+ path: "context.correlation_id"
347
+ value: "property_lists--validate_property_delivery"
348
+ description: "Context correlation_id returned unchanged"
349
+
350
+ - id: enforcement
351
+ title: "Property list enforcement"
352
+ narrative: |
353
+ These steps test behavioral compliance beyond schema validation. An agent that
354
+ returns well-shaped responses but does not actually enforce property constraints
355
+ would pass CRUD tests but fail here.
356
+
357
+ steps:
358
+ - id: validate_all_compliant_delivery
359
+ title: "Validate fully compliant delivery"
360
+ narrative: |
361
+ The buyer submits delivery data where all properties are on the inclusion list.
362
+ The governance agent must return records with status: compliant and no failed features.
363
+ task: validate_property_delivery
364
+ schema_ref: "property/validate-property-delivery-request.json"
365
+ response_schema_ref: "property/validate-property-delivery-response.json"
366
+ doc_ref: "/governance/property/tasks/validate_property_delivery"
367
+ comply_scenario: governance_property_lists
368
+ stateful: true
369
+ expected: |
370
+ Return validation results:
371
+ - record status: compliant
372
+ - No failed or warning features
373
+
374
+ sample_request:
375
+ account:
376
+ brand:
377
+ domain: "acmeoutdoor.example"
378
+ operator: "pinnacle-agency.example"
379
+ list_id: "$context.property_list_id"
380
+ records:
381
+ - record_id: "delivery_outdoor_001"
382
+ identifier:
383
+ type: "domain"
384
+ value: "outdoormagazine.example"
385
+ impressions: 50000
386
+ - record_id: "delivery_hiking_001"
387
+ identifier:
388
+ type: "domain"
389
+ value: "hikingtrails.example"
390
+ impressions: 30000
391
+
392
+ validations:
393
+ - check: response_schema
394
+ description: "Response matches validate-property-delivery-response.json schema"
395
+ - check: field_value
396
+ path: "compliant"
397
+ value: true
398
+ description: "Delivery is compliant when all properties are on inclusion list"
399
+
400
+ - id: validate_unauthorized_publisher
401
+ title: "Reject delivery on unlisted domain"
402
+ narrative: |
403
+ The buyer submits delivery data that includes randomsite.example — a domain
404
+ not on the inclusion list. The governance agent must flag this as a violation
405
+ with specific violation details, not just return a generic failure.
406
+ task: validate_property_delivery
407
+ schema_ref: "property/validate-property-delivery-request.json"
408
+ response_schema_ref: "property/validate-property-delivery-response.json"
409
+ doc_ref: "/governance/property/tasks/validate_property_delivery"
410
+ comply_scenario: governance_property_lists
411
+ stateful: true
412
+ expected: |
413
+ Return validation results:
414
+ - record status: non_compliant
415
+ - features array with at least one failed feature entry for randomsite.example
416
+ - feature entry references the inclusion list that was breached (via policy_id or code)
417
+
418
+ sample_request:
419
+ account:
420
+ brand:
421
+ domain: "acmeoutdoor.example"
422
+ operator: "pinnacle-agency.example"
423
+ list_id: "$context.property_list_id"
424
+ records:
425
+ - record_id: "delivery_random_001"
426
+ identifier:
427
+ type: "domain"
428
+ value: "randomsite.example"
429
+ impressions: 500
430
+
431
+ validations:
432
+ - check: response_schema
433
+ description: "Response matches validate-property-delivery-response.json schema"
434
+ - check: field_value
435
+ path: "compliant"
436
+ value: false
437
+ description: "Delivery is non-compliant for unlisted domain"
438
+
439
+ - id: delete_list
440
+ title: "Delete a property list"
441
+ narrative: |
442
+ The buyer removes a property list that is no longer needed. Delete runs after
443
+ validation phases so they can reference the list created earlier.
444
+
445
+ steps:
446
+ - id: delete_property_list
447
+ title: "Delete a property list"
448
+ narrative: |
449
+ The buyer deletes a property list. The governance agent removes the list and
450
+ returns confirmation.
451
+ task: delete_property_list
452
+ schema_ref: "property/delete-property-list-request.json"
453
+ response_schema_ref: "property/delete-property-list-response.json"
454
+ doc_ref: "/governance/property/tasks/property_lists"
455
+ comply_scenario: governance_property_lists
456
+ stateful: true
457
+ expected: |
458
+ Confirm deletion:
459
+ - list_id: the deleted list
460
+ - status: deleted
461
+
462
+ sample_request:
463
+ list_id: "$context.property_list_id"
464
+ account:
465
+ brand:
466
+ domain: "acmeoutdoor.example"
467
+ operator: "pinnacle-agency.example"
468
+
469
+ idempotency_key: "$generate:uuid_v4#property_lists_delete_list_delete_property_list"
470
+ context:
471
+ correlation_id: "property_lists--delete_property_list"
472
+ validations:
473
+ - check: response_schema
474
+ description: "Response matches delete-property-list-response.json schema"
475
+
476
+ - check: field_present
477
+ path: "context"
478
+ description: "Response echoes back the context object"
479
+ - check: field_value
480
+ path: "context.correlation_id"
481
+ value: "property_lists--delete_property_list"
482
+ description: "Context correlation_id returned unchanged"