@adcp/sdk 14.0.0-rc.38 → 14.0.0-rc.39

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 (600) hide show
  1. package/bin/adcp-storyboard-summary.js +286 -0
  2. package/bin/adcp.js +221 -10
  3. package/dist/lib/conformance/schemaLoader.d.mts +1 -1
  4. package/dist/lib/conformance/schemaLoader.d.ts +1 -1
  5. package/dist/lib/core/AgentClient.d.mts +6 -1
  6. package/dist/lib/core/AgentClient.d.ts +6 -1
  7. package/dist/lib/core/AgentClient.js +9 -0
  8. package/dist/lib/core/AgentClient.mjs +9 -0
  9. package/dist/lib/core/ConversationTypes.d.mts +29 -0
  10. package/dist/lib/core/ConversationTypes.d.ts +29 -0
  11. package/dist/lib/core/SingleAgentClient.d.mts +3 -1
  12. package/dist/lib/core/SingleAgentClient.d.ts +3 -1
  13. package/dist/lib/core/SingleAgentClient.js +9 -1
  14. package/dist/lib/core/SingleAgentClient.mjs +9 -1
  15. package/dist/lib/core/TaskExecutor.d.mts +13 -1
  16. package/dist/lib/core/TaskExecutor.d.ts +13 -1
  17. package/dist/lib/core/TaskExecutor.js +216 -18
  18. package/dist/lib/core/TaskExecutor.mjs +216 -19
  19. package/dist/lib/index.d.mts +5 -2
  20. package/dist/lib/index.d.ts +5 -2
  21. package/dist/lib/index.js +10 -1
  22. package/dist/lib/index.mjs +10 -1
  23. package/dist/lib/media-buy/action-assessment.d.mts +77 -0
  24. package/dist/lib/media-buy/action-assessment.d.ts +77 -0
  25. package/dist/lib/media-buy/action-assessment.js +300 -0
  26. package/dist/lib/media-buy/action-assessment.mjs +284 -0
  27. package/dist/lib/media-buy/action-constraints.d.mts +9 -0
  28. package/dist/lib/media-buy/action-constraints.d.ts +9 -0
  29. package/dist/lib/media-buy/action-constraints.js +170 -0
  30. package/dist/lib/media-buy/action-constraints.mjs +146 -0
  31. package/dist/lib/media-buy/action-contracts.d.mts +40 -0
  32. package/dist/lib/media-buy/action-contracts.d.ts +40 -0
  33. package/dist/lib/media-buy/action-contracts.js +304 -0
  34. package/dist/lib/media-buy/action-contracts.mjs +267 -0
  35. package/dist/lib/media-buy/action-metadata.generated.d.mts +37 -0
  36. package/dist/lib/media-buy/action-metadata.generated.d.ts +37 -0
  37. package/dist/lib/media-buy/action-metadata.generated.js +128 -0
  38. package/dist/lib/media-buy/action-metadata.generated.mjs +101 -0
  39. package/dist/lib/media-buy/action-types.d.mts +106 -0
  40. package/dist/lib/media-buy/action-types.d.ts +106 -0
  41. package/dist/lib/{types/v3-1-beta/tools.generated.js → media-buy/action-types.js} +2 -2
  42. package/dist/lib/media-buy/actions.d.mts +6 -0
  43. package/dist/lib/media-buy/actions.d.ts +6 -0
  44. package/dist/lib/media-buy/actions.js +38 -0
  45. package/dist/lib/media-buy/actions.mjs +9 -0
  46. package/dist/lib/media-buy/available-actions.d.mts +2 -1
  47. package/dist/lib/media-buy/available-actions.d.ts +2 -1
  48. package/dist/lib/media-buy/available-actions.js +4 -3
  49. package/dist/lib/media-buy/available-actions.mjs +4 -3
  50. package/dist/lib/media-buy/compatibility.js +3 -0
  51. package/dist/lib/media-buy/compatibility.mjs +3 -0
  52. package/dist/lib/media-buy/index.d.mts +4 -0
  53. package/dist/lib/media-buy/index.d.ts +4 -0
  54. package/dist/lib/media-buy/index.js +3 -1
  55. package/dist/lib/media-buy/index.mjs +1 -0
  56. package/dist/lib/media-buy/legacy-action-ids.d.mts +1 -0
  57. package/dist/lib/media-buy/legacy-action-ids.d.ts +1 -0
  58. package/dist/lib/media-buy/legacy-action-ids.js +50 -0
  59. package/dist/lib/media-buy/legacy-action-ids.mjs +26 -0
  60. package/dist/lib/media-buy/mutations.d.mts +70 -0
  61. package/dist/lib/media-buy/mutations.d.ts +70 -0
  62. package/dist/lib/media-buy/mutations.js +525 -0
  63. package/dist/lib/media-buy/mutations.mjs +498 -0
  64. package/dist/lib/media-buy/preflight.d.mts +20 -69
  65. package/dist/lib/media-buy/preflight.d.ts +20 -69
  66. package/dist/lib/media-buy/preflight.js +100 -336
  67. package/dist/lib/media-buy/preflight.mjs +111 -333
  68. package/dist/lib/media-buy/targeting-input.d.mts +7 -4
  69. package/dist/lib/media-buy/targeting-input.d.ts +7 -4
  70. package/dist/lib/media-buy/types.d.mts +55 -7
  71. package/dist/lib/media-buy/types.d.ts +55 -7
  72. package/dist/lib/protocols/rawResponseCapture.d.mts +12 -0
  73. package/dist/lib/protocols/rawResponseCapture.d.ts +12 -0
  74. package/dist/lib/protocols/rawResponseCapture.js +33 -3
  75. package/dist/lib/protocols/rawResponseCapture.mjs +32 -3
  76. package/dist/lib/registry/types.generated.d.mts +377 -9
  77. package/dist/lib/registry/types.generated.d.ts +377 -9
  78. package/dist/lib/reporting/evidence.d.mts +1 -0
  79. package/dist/lib/reporting/evidence.d.ts +1 -0
  80. package/dist/lib/reporting/evidence.js +32 -3
  81. package/dist/lib/reporting/evidence.mjs +31 -3
  82. package/dist/lib/reporting/ledger/handler.d.mts +51 -1
  83. package/dist/lib/reporting/ledger/handler.d.ts +51 -1
  84. package/dist/lib/reporting/ledger/handler.js +306 -38
  85. package/dist/lib/reporting/ledger/handler.mjs +304 -37
  86. package/dist/lib/reporting/ledger/health.d.mts +12 -0
  87. package/dist/lib/reporting/ledger/health.d.ts +12 -0
  88. package/dist/lib/reporting/ledger/health.js +15 -2
  89. package/dist/lib/reporting/ledger/health.mjs +13 -1
  90. package/dist/lib/reporting/ledger/index.d.mts +3 -0
  91. package/dist/lib/reporting/ledger/index.d.ts +3 -0
  92. package/dist/lib/reporting/ledger/index.js +7 -1
  93. package/dist/lib/reporting/ledger/index.mjs +3 -0
  94. package/dist/lib/reporting/ledger/lifecycle.d.mts +31 -4
  95. package/dist/lib/reporting/ledger/lifecycle.d.ts +31 -4
  96. package/dist/lib/reporting/ledger/lifecycle.js +244 -37
  97. package/dist/lib/reporting/ledger/lifecycle.mjs +244 -37
  98. package/dist/lib/reporting/ledger/managed-postgres.d.mts +231 -0
  99. package/dist/lib/reporting/ledger/managed-postgres.d.ts +231 -0
  100. package/dist/lib/reporting/ledger/managed-postgres.js +1797 -0
  101. package/dist/lib/reporting/ledger/managed-postgres.mjs +1776 -0
  102. package/dist/lib/reporting/ledger/managed.d.mts +355 -0
  103. package/dist/lib/reporting/ledger/managed.d.ts +355 -0
  104. package/dist/lib/reporting/ledger/managed.js +661 -0
  105. package/dist/lib/reporting/ledger/managed.mjs +633 -0
  106. package/dist/lib/reporting/ledger/notification-activity.d.mts +222 -0
  107. package/dist/lib/reporting/ledger/notification-activity.d.ts +222 -0
  108. package/dist/lib/reporting/ledger/notification-activity.js +1139 -0
  109. package/dist/lib/reporting/ledger/notification-activity.mjs +1110 -0
  110. package/dist/lib/reporting/ledger/postgres.d.mts +161 -1
  111. package/dist/lib/reporting/ledger/postgres.d.ts +161 -1
  112. package/dist/lib/reporting/ledger/postgres.js +1153 -21
  113. package/dist/lib/reporting/ledger/postgres.mjs +1152 -21
  114. package/dist/lib/reporting/ledger/producer.d.mts +8 -0
  115. package/dist/lib/reporting/ledger/producer.d.ts +8 -0
  116. package/dist/lib/reporting/ledger/producer.js +146 -52
  117. package/dist/lib/reporting/ledger/producer.mjs +146 -51
  118. package/dist/lib/reporting/ledger/types.d.mts +358 -1
  119. package/dist/lib/reporting/ledger/types.d.ts +358 -1
  120. package/dist/lib/reporting/ledger/types.js +3 -0
  121. package/dist/lib/reporting/ledger/types.mjs +2 -0
  122. package/dist/lib/reporting/service/conformance.d.mts +35 -0
  123. package/dist/lib/reporting/service/conformance.d.ts +35 -0
  124. package/dist/lib/reporting/service/conformance.js +89 -0
  125. package/dist/lib/reporting/service/conformance.mjs +68 -0
  126. package/dist/lib/reporting/service/index.d.mts +182 -0
  127. package/dist/lib/reporting/service/index.d.ts +182 -0
  128. package/dist/lib/reporting/service/index.js +793 -0
  129. package/dist/lib/reporting/service/index.mjs +787 -0
  130. package/dist/lib/reporting/source/index.d.mts +2 -1
  131. package/dist/lib/reporting/source/index.d.ts +2 -1
  132. package/dist/lib/reporting/source/index.js +16 -3
  133. package/dist/lib/reporting/source/index.mjs +12 -1
  134. package/dist/lib/reporting/source/inline.d.mts +88 -1
  135. package/dist/lib/reporting/source/inline.d.ts +88 -1
  136. package/dist/lib/reporting/source/inline.js +1161 -163
  137. package/dist/lib/reporting/source/inline.mjs +1166 -163
  138. package/dist/lib/reporting/source/manifest.js +12 -7
  139. package/dist/lib/reporting/source/manifest.mjs +12 -7
  140. package/dist/lib/reporting/source/source.d.mts +26 -0
  141. package/dist/lib/reporting/source/source.d.ts +26 -0
  142. package/dist/lib/reporting/source/source.js +71 -2
  143. package/dist/lib/reporting/source/source.mjs +65 -1
  144. package/dist/lib/schemas-data/v2.5/_provenance.json +1 -1
  145. package/dist/lib/server/create-adcp-server.d.mts +18 -0
  146. package/dist/lib/server/create-adcp-server.d.ts +18 -0
  147. package/dist/lib/server/create-adcp-server.js +52 -2
  148. package/dist/lib/server/create-adcp-server.mjs +52 -2
  149. package/dist/lib/server/decisioning/account.d.mts +1 -1
  150. package/dist/lib/server/decisioning/account.d.ts +1 -1
  151. package/dist/lib/server/decisioning/index.d.mts +1 -0
  152. package/dist/lib/server/decisioning/index.d.ts +1 -0
  153. package/dist/lib/server/decisioning/platform.d.mts +3 -0
  154. package/dist/lib/server/decisioning/platform.d.ts +3 -0
  155. package/dist/lib/server/decisioning/runtime/from-platform.js +88 -10
  156. package/dist/lib/server/decisioning/runtime/from-platform.mjs +88 -10
  157. package/dist/lib/server/decisioning/specialisms/reporting.d.mts +38 -0
  158. package/dist/lib/server/decisioning/specialisms/reporting.d.ts +38 -0
  159. package/dist/lib/{types/v3-1-beta/index.js → server/decisioning/specialisms/reporting.js} +2 -8
  160. package/dist/lib/server/decisioning/specialisms/reporting.mjs +0 -0
  161. package/dist/lib/server/index.d.mts +4 -2
  162. package/dist/lib/server/index.d.ts +4 -2
  163. package/dist/lib/server/index.js +5 -0
  164. package/dist/lib/server/index.mjs +4 -0
  165. package/dist/lib/server/media-buy-action-resolver.d.mts +63 -0
  166. package/dist/lib/server/media-buy-action-resolver.d.ts +63 -0
  167. package/dist/lib/server/media-buy-action-resolver.js +297 -0
  168. package/dist/lib/server/media-buy-action-resolver.mjs +285 -0
  169. package/dist/lib/server/media-buy-actions.d.mts +7 -8
  170. package/dist/lib/server/media-buy-actions.d.ts +7 -8
  171. package/dist/lib/server/media-buy-actions.js +57 -14
  172. package/dist/lib/server/media-buy-actions.mjs +63 -14
  173. package/dist/lib/server/notification-subscriptions/index.d.mts +2 -2
  174. package/dist/lib/server/notification-subscriptions/index.d.ts +2 -2
  175. package/dist/lib/server/notification-subscriptions/index.js +2 -0
  176. package/dist/lib/server/notification-subscriptions/index.mjs +2 -0
  177. package/dist/lib/server/notification-subscriptions/postgres-runtime.d.mts +3 -1
  178. package/dist/lib/server/notification-subscriptions/postgres-runtime.d.ts +3 -1
  179. package/dist/lib/server/notification-subscriptions/postgres-runtime.js +1 -0
  180. package/dist/lib/server/notification-subscriptions/postgres-runtime.mjs +1 -0
  181. package/dist/lib/server/notification-subscriptions/runtime.d.mts +12 -1
  182. package/dist/lib/server/notification-subscriptions/runtime.d.ts +12 -1
  183. package/dist/lib/server/notification-subscriptions/runtime.js +102 -16
  184. package/dist/lib/server/notification-subscriptions/runtime.mjs +101 -16
  185. package/dist/lib/server/notification-subscriptions/types.d.mts +104 -1
  186. package/dist/lib/server/notification-subscriptions/types.d.ts +104 -1
  187. package/dist/lib/server/webhook-emitter.d.mts +40 -5
  188. package/dist/lib/server/webhook-emitter.d.ts +40 -5
  189. package/dist/lib/server/webhook-emitter.js +23 -12
  190. package/dist/lib/server/webhook-emitter.mjs +23 -12
  191. package/dist/lib/storage/interfaces.d.mts +14 -2
  192. package/dist/lib/storage/interfaces.d.ts +14 -2
  193. package/dist/lib/testing/compliance/comply.d.mts +9 -3
  194. package/dist/lib/testing/compliance/comply.d.ts +9 -3
  195. package/dist/lib/testing/compliance/comply.js +158 -3
  196. package/dist/lib/testing/compliance/comply.mjs +159 -4
  197. package/dist/lib/testing/compliance/storyboard-tracks.js +7 -5
  198. package/dist/lib/testing/compliance/storyboard-tracks.mjs +7 -5
  199. package/dist/lib/testing/compliance/summary.js +10 -1
  200. package/dist/lib/testing/compliance/summary.mjs +10 -1
  201. package/dist/lib/testing/index.d.mts +1 -1
  202. package/dist/lib/testing/index.d.ts +1 -1
  203. package/dist/lib/testing/index.js +2 -0
  204. package/dist/lib/testing/index.mjs +3 -1
  205. package/dist/lib/testing/storyboard/agent-routing.d.mts +12 -43
  206. package/dist/lib/testing/storyboard/agent-routing.d.ts +12 -43
  207. package/dist/lib/testing/storyboard/agent-routing.js +75 -13
  208. package/dist/lib/testing/storyboard/agent-routing.mjs +70 -12
  209. package/dist/lib/testing/storyboard/index.d.mts +1 -0
  210. package/dist/lib/testing/storyboard/index.d.ts +1 -0
  211. package/dist/lib/testing/storyboard/index.js +3 -0
  212. package/dist/lib/testing/storyboard/index.mjs +2 -0
  213. package/dist/lib/testing/storyboard/junit.d.mts +1 -1
  214. package/dist/lib/testing/storyboard/junit.d.ts +1 -1
  215. package/dist/lib/testing/storyboard/junit.js +21 -2
  216. package/dist/lib/testing/storyboard/junit.mjs +21 -2
  217. package/dist/lib/testing/storyboard/probes.d.mts +130 -0
  218. package/dist/lib/testing/storyboard/probes.d.ts +130 -0
  219. package/dist/lib/testing/storyboard/probes.js +682 -10
  220. package/dist/lib/testing/storyboard/probes.mjs +683 -3
  221. package/dist/lib/testing/storyboard/request-signing/builder.d.mts +16 -5
  222. package/dist/lib/testing/storyboard/request-signing/builder.d.ts +16 -5
  223. package/dist/lib/testing/storyboard/request-signing/grader.d.mts +44 -1
  224. package/dist/lib/testing/storyboard/request-signing/grader.d.ts +44 -1
  225. package/dist/lib/testing/storyboard/request-signing/grader.js +46 -22
  226. package/dist/lib/testing/storyboard/request-signing/grader.mjs +43 -21
  227. package/dist/lib/testing/storyboard/request-signing/probe-dispatch.d.mts +86 -11
  228. package/dist/lib/testing/storyboard/request-signing/probe-dispatch.d.ts +86 -11
  229. package/dist/lib/testing/storyboard/request-signing/probe-dispatch.js +119 -25
  230. package/dist/lib/testing/storyboard/request-signing/probe-dispatch.mjs +117 -26
  231. package/dist/lib/testing/storyboard/request-signing/synthesize.js +22 -2
  232. package/dist/lib/testing/storyboard/request-signing/synthesize.mjs +22 -2
  233. package/dist/lib/testing/storyboard/runner.d.mts +103 -0
  234. package/dist/lib/testing/storyboard/runner.d.ts +103 -0
  235. package/dist/lib/testing/storyboard/runner.js +1090 -268
  236. package/dist/lib/testing/storyboard/runner.mjs +1096 -261
  237. package/dist/lib/testing/storyboard/seeding.d.mts +4 -1
  238. package/dist/lib/testing/storyboard/seeding.d.ts +4 -1
  239. package/dist/lib/testing/storyboard/seeding.js +55 -24
  240. package/dist/lib/testing/storyboard/seeding.mjs +55 -24
  241. package/dist/lib/testing/storyboard/test-kit.d.mts +37 -3
  242. package/dist/lib/testing/storyboard/test-kit.d.ts +37 -3
  243. package/dist/lib/testing/storyboard/test-kit.js +8 -2
  244. package/dist/lib/testing/storyboard/test-kit.mjs +7 -2
  245. package/dist/lib/testing/storyboard/types.d.mts +132 -10
  246. package/dist/lib/testing/storyboard/types.d.ts +132 -10
  247. package/dist/lib/testing/storyboard/types.js +17 -0
  248. package/dist/lib/testing/storyboard/types.mjs +16 -0
  249. package/dist/lib/testing/storyboard/validations.d.mts +1 -1
  250. package/dist/lib/testing/storyboard/validations.d.ts +1 -1
  251. package/dist/lib/testing/storyboard/validations.js +16 -0
  252. package/dist/lib/testing/storyboard/validations.mjs +16 -0
  253. package/dist/lib/testing/test-controller.d.mts +1 -1
  254. package/dist/lib/testing/test-controller.d.ts +1 -1
  255. package/dist/lib/types/buy-products.d.ts +71 -6
  256. package/dist/lib/types/control-media-buy.d.ts +25 -11
  257. package/dist/lib/types/core.generated.d.mts +69 -10
  258. package/dist/lib/types/core.generated.d.ts +69 -10
  259. package/dist/lib/types/create-media-buy.d.ts +71 -6
  260. package/dist/lib/types/forward-compat-error-codes.d.mts +7 -6
  261. package/dist/lib/types/forward-compat-error-codes.d.ts +7 -6
  262. package/dist/lib/types/index.d.mts +2 -2
  263. package/dist/lib/types/index.d.ts +2 -2
  264. package/dist/lib/types/schemas.generated.d.ts +8040 -8116
  265. package/dist/lib/types/schemas.generated.js +1074 -309
  266. package/dist/lib/types/schemas.generated.mjs +1068 -309
  267. package/dist/lib/types/tools.generated.d.mts +65 -6
  268. package/dist/lib/types/tools.generated.d.ts +65 -6
  269. package/dist/lib/types/update-media-buy.d.ts +71 -6
  270. package/dist/lib/utils/redact-secrets.d.mts +1 -1
  271. package/dist/lib/utils/redact-secrets.d.ts +1 -1
  272. package/dist/lib/utils/redact-secrets.js +1 -1
  273. package/dist/lib/utils/redact-secrets.mjs +1 -1
  274. package/dist/lib/v2/projection/cache-versions.d.mts +0 -1
  275. package/dist/lib/v2/projection/cache-versions.d.ts +0 -1
  276. package/dist/lib/v2/projection/cache-versions.js +1 -15
  277. package/dist/lib/v2/projection/cache-versions.mjs +1 -14
  278. package/dist/lib/v2/projection/canonical-properties.js +2 -2
  279. package/dist/lib/v2/projection/canonical-properties.mjs +3 -3
  280. package/dist/lib/v2/projection/registry.d.mts +1 -1
  281. package/dist/lib/v2/projection/registry.d.ts +1 -1
  282. package/dist/lib/v2/projection/registry.js +2 -2
  283. package/dist/lib/v2/projection/registry.mjs +3 -3
  284. package/dist/lib/version.d.mts +5 -5
  285. package/dist/lib/version.d.ts +5 -5
  286. package/dist/lib/version.js +3 -8
  287. package/dist/lib/version.mjs +3 -8
  288. package/dist/lib/wholesale-feed-sync/index.d.mts +1 -0
  289. package/dist/lib/wholesale-feed-sync/index.d.ts +1 -0
  290. package/dist/lib/wholesale-feed-sync/protocol-types.d.mts +42 -0
  291. package/dist/lib/wholesale-feed-sync/protocol-types.d.ts +42 -0
  292. package/dist/lib/wholesale-feed-sync/protocol-types.js +16 -0
  293. package/dist/lib/wholesale-feed-sync/protocol-types.mjs +0 -0
  294. package/dist/lib/wholesale-feed-sync/sync.d.mts +6 -6
  295. package/dist/lib/wholesale-feed-sync/sync.d.ts +6 -6
  296. package/dist/lib/wholesale-feed-sync/sync.js +3 -1
  297. package/dist/lib/wholesale-feed-sync/sync.mjs +3 -1
  298. package/dist/lib/wholesale-feed-sync/types.d.mts +15 -14
  299. package/dist/lib/wholesale-feed-sync/types.d.ts +15 -14
  300. package/dist/lib/wholesale-feed-sync/webhook-notification.d.mts +7 -5
  301. package/dist/lib/wholesale-feed-sync/webhook-notification.d.ts +7 -5
  302. package/dist/lib/wholesale-feed-sync/webhook-notification.js +45 -0
  303. package/dist/lib/wholesale-feed-sync/webhook-notification.mjs +44 -0
  304. package/docs/CLI.md +1 -1
  305. package/docs/TYPE-SUMMARY.md +118 -4
  306. package/docs/guides/ASYNC-API-REFERENCE.md +62 -1
  307. package/docs/guides/ASYNC-DEVELOPER-GUIDE.md +25 -0
  308. package/docs/guides/ASYNC-DOCUMENTATION-INDEX.md +3 -0
  309. package/docs/guides/BUYER-QUICKSTART-3.2.md +5 -0
  310. package/docs/guides/DURABLE-BUYER-WRITES.md +337 -0
  311. package/docs/guides/EXISTING-PLATFORM.md +35 -0
  312. package/docs/guides/MEDIA-BUY-3.2-COMPATIBILITY.md +7 -3
  313. package/docs/guides/MEDIA-BUY-ACTION-ASSESSMENT.md +300 -0
  314. package/docs/guides/REPORTING-LEDGER.md +654 -3
  315. package/docs/guides/REPORTING-SOURCE-EXECUTOR.md +63 -1
  316. package/docs/guides/SELLER-QUICKSTART-3.2.md +2 -0
  317. package/docs/guides/VALIDATE-YOUR-AGENT.md +35 -0
  318. package/docs/guides/idempotency-crash-recovery.md +4 -0
  319. package/docs/llms.txt +4 -2
  320. package/docs/migration-14.x-rc-worksheet.md +5 -5
  321. package/docs/migration-7.9-to-7.10.md +7 -5
  322. package/examples/README.md +17 -0
  323. package/examples/durable-buyer-writes/caller.ts +745 -0
  324. package/examples/durable-buyer-writes/worker.ts +240 -0
  325. package/examples/reliable-reporting-service/README.md +100 -0
  326. package/examples/seller-3.2-starter.ts +7 -8
  327. package/examples/targeting-input-existing-platform.ts +153 -0
  328. package/package.json +41 -29
  329. package/skills/build-seller-agent/specialisms/signed-requests.md +11 -1
  330. package/skills/cross-cutting.md +28 -11
  331. package/compliance/cache/3.1.0-beta.7/domains/brand/index.yaml +0 -160
  332. package/compliance/cache/3.1.0-beta.7/domains/brand/scenarios/distributed_brand_resolution.yaml +0 -415
  333. package/compliance/cache/3.1.0-beta.7/domains/brand/scenarios/single_side_trust_extension.yaml +0 -454
  334. package/compliance/cache/3.1.0-beta.7/domains/creative/index.yaml +0 -339
  335. package/compliance/cache/3.1.0-beta.7/domains/creative/scenarios/billing_out_of_band.yaml +0 -153
  336. package/compliance/cache/3.1.0-beta.7/domains/creative/scenarios/creative_lifecycle_webhooks.yaml +0 -389
  337. package/compliance/cache/3.1.0-beta.7/domains/creative/scenarios/native_in_feed.yaml +0 -543
  338. package/compliance/cache/3.1.0-beta.7/domains/governance/index.yaml +0 -682
  339. package/compliance/cache/3.1.0-beta.7/domains/media-buy/index.yaml +0 -781
  340. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/audience_buy_flow.yaml +0 -380
  341. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/available_actions.yaml +0 -565
  342. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/billing_finality_delivery.yaml +0 -354
  343. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/canonical_formats.yaml +0 -711
  344. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/clicks_buy_flow.yaml +0 -264
  345. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/completed_views_buy_flow.yaml +0 -344
  346. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/create_media_buy_async.yaml +0 -234
  347. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/creative_fate_after_cancellation.yaml +0 -419
  348. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/creative_reception.yaml +0 -247
  349. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/delivery_reporting.yaml +0 -357
  350. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/dependency_impairment.yaml +0 -633
  351. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/dependency_impairment_cardinality.yaml +0 -800
  352. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/event_dedup_flow.yaml +0 -399
  353. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/frequency_cap_enforcement.yaml +0 -309
  354. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/governance_approved.yaml +0 -214
  355. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/governance_conditions.yaml +0 -199
  356. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/governance_denied.yaml +0 -204
  357. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/governance_denied_recovery.yaml +0 -252
  358. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/invalid_transitions.yaml +0 -289
  359. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/inventory_list_no_match.yaml +0 -148
  360. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/inventory_list_targeting.yaml +0 -276
  361. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/measurement_accountability.yaml +0 -244
  362. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/measurement_terms_rejected.yaml +0 -203
  363. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/pending_creatives_to_start.yaml +0 -274
  364. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/per_creative_conversion_attribution.yaml +0 -500
  365. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/performance_buy_flow.yaml +0 -428
  366. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/performance_buy_flow_roas.yaml +0 -470
  367. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/product_signal_targeting.yaml +0 -373
  368. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/proposal_finalize.yaml +0 -399
  369. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/proposal_finalize_asap_timing.yaml +0 -264
  370. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/proposal_not_found_errors.yaml +0 -257
  371. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/provenance_audit_observation.yaml +0 -333
  372. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/provenance_enforcement.yaml +0 -517
  373. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/provenance_truth_of_claim.yaml +0 -294
  374. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/reach_buy_flow.yaml +0 -823
  375. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/refine_finalize_exclusivity.yaml +0 -360
  376. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/refine_products.yaml +0 -148
  377. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/vendor_metric_accountability.yaml +0 -293
  378. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/vendor_metric_catalog_precondition.yaml +0 -307
  379. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/vendor_metric_optimization_flow.yaml +0 -576
  380. package/compliance/cache/3.1.0-beta.7/domains/media-buy/state-machine.yaml +0 -442
  381. package/compliance/cache/3.1.0-beta.7/domains/signals/index.yaml +0 -266
  382. package/compliance/cache/3.1.0-beta.7/domains/sponsored-intelligence/index.yaml +0 -256
  383. package/compliance/cache/3.1.0-beta.7/index.json +0 -356
  384. package/compliance/cache/3.1.0-beta.7/protocols/brand/index.yaml +0 -160
  385. package/compliance/cache/3.1.0-beta.7/protocols/brand/scenarios/distributed_brand_resolution.yaml +0 -415
  386. package/compliance/cache/3.1.0-beta.7/protocols/brand/scenarios/single_side_trust_extension.yaml +0 -454
  387. package/compliance/cache/3.1.0-beta.7/protocols/creative/index.yaml +0 -339
  388. package/compliance/cache/3.1.0-beta.7/protocols/creative/scenarios/billing_out_of_band.yaml +0 -153
  389. package/compliance/cache/3.1.0-beta.7/protocols/creative/scenarios/creative_lifecycle_webhooks.yaml +0 -389
  390. package/compliance/cache/3.1.0-beta.7/protocols/creative/scenarios/native_in_feed.yaml +0 -543
  391. package/compliance/cache/3.1.0-beta.7/protocols/governance/index.yaml +0 -682
  392. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/index.yaml +0 -781
  393. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/audience_buy_flow.yaml +0 -380
  394. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/available_actions.yaml +0 -565
  395. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/billing_finality_delivery.yaml +0 -354
  396. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/canonical_formats.yaml +0 -711
  397. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/clicks_buy_flow.yaml +0 -264
  398. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/completed_views_buy_flow.yaml +0 -344
  399. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/create_media_buy_async.yaml +0 -234
  400. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/creative_fate_after_cancellation.yaml +0 -419
  401. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/creative_reception.yaml +0 -247
  402. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/delivery_reporting.yaml +0 -357
  403. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/dependency_impairment.yaml +0 -633
  404. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/dependency_impairment_cardinality.yaml +0 -800
  405. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/event_dedup_flow.yaml +0 -399
  406. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/frequency_cap_enforcement.yaml +0 -309
  407. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/governance_approved.yaml +0 -214
  408. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/governance_conditions.yaml +0 -199
  409. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/governance_denied.yaml +0 -204
  410. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/governance_denied_recovery.yaml +0 -252
  411. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/invalid_transitions.yaml +0 -289
  412. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/inventory_list_no_match.yaml +0 -148
  413. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/inventory_list_targeting.yaml +0 -276
  414. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/measurement_accountability.yaml +0 -244
  415. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/measurement_terms_rejected.yaml +0 -203
  416. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/pending_creatives_to_start.yaml +0 -274
  417. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/per_creative_conversion_attribution.yaml +0 -500
  418. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/performance_buy_flow.yaml +0 -428
  419. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/performance_buy_flow_roas.yaml +0 -470
  420. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/product_signal_targeting.yaml +0 -373
  421. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/proposal_finalize.yaml +0 -399
  422. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/proposal_finalize_asap_timing.yaml +0 -264
  423. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/proposal_not_found_errors.yaml +0 -257
  424. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/provenance_audit_observation.yaml +0 -333
  425. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/provenance_enforcement.yaml +0 -517
  426. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/provenance_truth_of_claim.yaml +0 -294
  427. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/reach_buy_flow.yaml +0 -823
  428. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/refine_finalize_exclusivity.yaml +0 -360
  429. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/refine_products.yaml +0 -148
  430. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/vendor_metric_accountability.yaml +0 -293
  431. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/vendor_metric_catalog_precondition.yaml +0 -307
  432. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/vendor_metric_optimization_flow.yaml +0 -576
  433. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/state-machine.yaml +0 -442
  434. package/compliance/cache/3.1.0-beta.7/protocols/signals/index.yaml +0 -266
  435. package/compliance/cache/3.1.0-beta.7/protocols/sponsored-intelligence/index.yaml +0 -256
  436. package/compliance/cache/3.1.0-beta.7/specialisms/audience-sync/index.yaml +0 -313
  437. package/compliance/cache/3.1.0-beta.7/specialisms/brand-rights/index.yaml +0 -350
  438. package/compliance/cache/3.1.0-beta.7/specialisms/brand-rights/scenarios/governance_denied.yaml +0 -226
  439. package/compliance/cache/3.1.0-beta.7/specialisms/collection-lists/index.yaml +0 -359
  440. package/compliance/cache/3.1.0-beta.7/specialisms/content-standards/index.yaml +0 -572
  441. package/compliance/cache/3.1.0-beta.7/specialisms/creative-ad-server/index.yaml +0 -409
  442. package/compliance/cache/3.1.0-beta.7/specialisms/creative-generative/generative-seller.yaml +0 -807
  443. package/compliance/cache/3.1.0-beta.7/specialisms/creative-generative/index.yaml +0 -758
  444. package/compliance/cache/3.1.0-beta.7/specialisms/creative-template/index.yaml +0 -510
  445. package/compliance/cache/3.1.0-beta.7/specialisms/governance-aware-seller/index.yaml +0 -143
  446. package/compliance/cache/3.1.0-beta.7/specialisms/governance-aware-seller/scenarios/governance_multi_agent_rejected.yaml +0 -117
  447. package/compliance/cache/3.1.0-beta.7/specialisms/governance-delivery-monitor/index.yaml +0 -441
  448. package/compliance/cache/3.1.0-beta.7/specialisms/governance-spend-authority/denied.yaml +0 -221
  449. package/compliance/cache/3.1.0-beta.7/specialisms/governance-spend-authority/index.yaml +0 -330
  450. package/compliance/cache/3.1.0-beta.7/specialisms/property-lists/index.yaml +0 -482
  451. package/compliance/cache/3.1.0-beta.7/specialisms/sales-broadcast-tv/index.yaml +0 -738
  452. package/compliance/cache/3.1.0-beta.7/specialisms/sales-catalog-driven/index.yaml +0 -840
  453. package/compliance/cache/3.1.0-beta.7/specialisms/sales-guaranteed/index.yaml +0 -601
  454. package/compliance/cache/3.1.0-beta.7/specialisms/sales-non-guaranteed/index.yaml +0 -546
  455. package/compliance/cache/3.1.0-beta.7/specialisms/sales-proposal-mode/index.yaml +0 -586
  456. package/compliance/cache/3.1.0-beta.7/specialisms/sales-social/index.yaml +0 -919
  457. package/compliance/cache/3.1.0-beta.7/specialisms/signal-marketplace/index.yaml +0 -424
  458. package/compliance/cache/3.1.0-beta.7/specialisms/signal-marketplace/scenarios/governance_denied.yaml +0 -211
  459. package/compliance/cache/3.1.0-beta.7/specialisms/signal-owned/index.yaml +0 -317
  460. package/compliance/cache/3.1.0-beta.7/specialisms/sponsored-intelligence/index.yaml +0 -59
  461. package/compliance/cache/3.1.0-beta.7/test-kits/acme-outdoor-live.yaml +0 -78
  462. package/compliance/cache/3.1.0-beta.7/test-kits/acme-outdoor.yaml +0 -223
  463. package/compliance/cache/3.1.0-beta.7/test-kits/billing-gate-runner.yaml +0 -115
  464. package/compliance/cache/3.1.0-beta.7/test-kits/bistro-oranje.yaml +0 -126
  465. package/compliance/cache/3.1.0-beta.7/test-kits/distributed-brand-runner.yaml +0 -281
  466. package/compliance/cache/3.1.0-beta.7/test-kits/nova-motors.yaml +0 -262
  467. package/compliance/cache/3.1.0-beta.7/test-kits/osei-natural.yaml +0 -126
  468. package/compliance/cache/3.1.0-beta.7/test-kits/parallel-dispatch-runner.yaml +0 -196
  469. package/compliance/cache/3.1.0-beta.7/test-kits/rate-limit-trip-runner.yaml +0 -172
  470. package/compliance/cache/3.1.0-beta.7/test-kits/signed-requests-runner.yaml +0 -155
  471. package/compliance/cache/3.1.0-beta.7/test-kits/single-side-trust-runner.yaml +0 -294
  472. package/compliance/cache/3.1.0-beta.7/test-kits/substitution-observer-runner.yaml +0 -688
  473. package/compliance/cache/3.1.0-beta.7/test-kits/summit-foods.yaml +0 -125
  474. package/compliance/cache/3.1.0-beta.7/test-kits/webhook-receiver-runner.yaml +0 -265
  475. package/compliance/cache/3.1.0-beta.7/test-vectors/plan-hash/001-minimal-plan.json +0 -43
  476. package/compliance/cache/3.1.0-beta.7/test-vectors/plan-hash/002-full-plan.json +0 -217
  477. package/compliance/cache/3.1.0-beta.7/test-vectors/plan-hash/003-bookkeeping-stripped.json +0 -60
  478. package/compliance/cache/3.1.0-beta.7/test-vectors/plan-hash/004a-human-review-omitted.json +0 -43
  479. package/compliance/cache/3.1.0-beta.7/test-vectors/plan-hash/004b-human-review-explicit-null.json +0 -49
  480. package/compliance/cache/3.1.0-beta.7/test-vectors/plan-hash/005a-policy-categories-order-1.json +0 -53
  481. package/compliance/cache/3.1.0-beta.7/test-vectors/plan-hash/005b-policy-categories-order-2.json +0 -57
  482. package/compliance/cache/3.1.0-beta.7/test-vectors/plan-hash/006a-ext-trace-v1.json +0 -49
  483. package/compliance/cache/3.1.0-beta.7/test-vectors/plan-hash/006b-ext-trace-v2.json +0 -53
  484. package/compliance/cache/3.1.0-beta.7/test-vectors/plan-hash/007-unicode-objectives.json +0 -43
  485. package/compliance/cache/3.1.0-beta.7/test-vectors/plan-hash/008-numeric-canonicalization.json +0 -65
  486. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/README.md +0 -220
  487. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/canonicalization.json +0 -241
  488. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/keys.json +0 -60
  489. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/001-no-signature-header.json +0 -24
  490. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/002-wrong-tag.json +0 -26
  491. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/003-expired-signature.json +0 -26
  492. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/004-window-too-long.json +0 -26
  493. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/005-alg-not-allowed.json +0 -26
  494. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/006-missing-covered-component.json +0 -26
  495. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/007-missing-content-digest.json +0 -26
  496. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/008-unknown-keyid.json +0 -26
  497. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/009-key-ops-missing-verify.json +0 -27
  498. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/010-content-digest-mismatch.json +0 -33
  499. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/011-malformed-header.json +0 -27
  500. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/012-missing-expires-param.json +0 -26
  501. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/013-expires-le-created.json +0 -27
  502. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/014-missing-nonce-param.json +0 -27
  503. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/015-signature-invalid.json +0 -28
  504. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/016-replayed-nonce.json +0 -35
  505. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/017-key-revoked.json +0 -38
  506. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/018-digest-covered-when-forbidden.json +0 -28
  507. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/019-signature-without-signature-input.json +0 -26
  508. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/020-rate-abuse.json +0 -34
  509. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/021-duplicate-signature-input-label.json +0 -31
  510. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/022-multi-valued-content-type.json +0 -31
  511. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/023-multi-valued-content-digest.json +0 -32
  512. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/024-unquoted-string-param.json +0 -31
  513. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/025-jwk-alg-crv-mismatch.json +0 -43
  514. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/026-non-ascii-host.json +0 -31
  515. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/027-webhook-registration-authentication-unsigned.json +0 -25
  516. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/028-unsigned-protocol-method-required.json +0 -26
  517. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/positive/001-basic-post.json +0 -30
  518. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/positive/002-post-with-content-digest.json +0 -31
  519. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/positive/003-es256-post.json +0 -30
  520. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/positive/004-multiple-signature-labels.json +0 -26
  521. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/positive/005-default-port-stripped.json +0 -30
  522. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/positive/006-dot-segment-path.json +0 -30
  523. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/positive/007-query-byte-preserved.json +0 -30
  524. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/positive/008-percent-encoded-path.json +0 -30
  525. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/positive/009-percent-encoded-unreserved-decoded.json +0 -30
  526. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/positive/010-percent-encoded-slash-preserved.json +0 -30
  527. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/positive/011-ipv6-authority.json +0 -30
  528. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/positive/012-ipv6-authority-default-port-stripped.json +0 -30
  529. package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/README.md +0 -211
  530. package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/keys.json +0 -61
  531. package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/001-wrong-tag.json +0 -26
  532. package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/002-expired-signature.json +0 -26
  533. package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/003-window-too-long.json +0 -26
  534. package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/004-alg-not-allowed.json +0 -26
  535. package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/005-missing-authority-component.json +0 -26
  536. package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/006-missing-content-digest.json +0 -25
  537. package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/007-unknown-keyid.json +0 -26
  538. package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/008-wrong-adcp-use.json +0 -26
  539. package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/009-content-digest-mismatch.json +0 -26
  540. package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/010-malformed-signature-input.json +0 -26
  541. package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/011-signature-without-input.json +0 -25
  542. package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/012-missing-expires-param.json +0 -26
  543. package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/013-expires-le-created.json +0 -26
  544. package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/014-missing-nonce-param.json +0 -26
  545. package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/015-signature-invalid.json +0 -26
  546. package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/016-replayed-nonce.json +0 -37
  547. package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/017-key-revoked.json +0 -32
  548. package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/018-rate-abuse.json +0 -33
  549. package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/019-revocation-stale.json +0 -32
  550. package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/020-key-ops-missing-verify.json +0 -41
  551. package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/021-base64-alphabet-mixing.json +0 -26
  552. package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/positive/001-basic-post.json +0 -24
  553. package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/positive/002-es256-post.json +0 -24
  554. package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/positive/003-multiple-signature-labels.json +0 -24
  555. package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/positive/004-default-port-stripped.json +0 -24
  556. package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/positive/005-percent-encoded-path.json +0 -24
  557. package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/positive/006-query-byte-preserved.json +0 -24
  558. package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/positive/007-body-without-idempotency-key.json +0 -25
  559. package/compliance/cache/3.1.0-beta.7/universal/billing-gate-dispatch.yaml +0 -450
  560. package/compliance/cache/3.1.0-beta.7/universal/canonical-format-validate-input.yaml +0 -640
  561. package/compliance/cache/3.1.0-beta.7/universal/capability-discovery.yaml +0 -125
  562. package/compliance/cache/3.1.0-beta.7/universal/collection-lists-pagination-integrity.yaml +0 -306
  563. package/compliance/cache/3.1.0-beta.7/universal/comply-controller-mode-gate.yaml +0 -141
  564. package/compliance/cache/3.1.0-beta.7/universal/content-standards-pagination-integrity.yaml +0 -326
  565. package/compliance/cache/3.1.0-beta.7/universal/deterministic-testing.yaml +0 -1430
  566. package/compliance/cache/3.1.0-beta.7/universal/error-compliance-signals.yaml +0 -377
  567. package/compliance/cache/3.1.0-beta.7/universal/error-compliance.yaml +0 -528
  568. package/compliance/cache/3.1.0-beta.7/universal/fictional-entities.yaml +0 -307
  569. package/compliance/cache/3.1.0-beta.7/universal/get-media-buys-pagination-integrity.yaml +0 -160
  570. package/compliance/cache/3.1.0-beta.7/universal/get-signals-pagination-integrity.yaml +0 -211
  571. package/compliance/cache/3.1.0-beta.7/universal/idempotency.yaml +0 -861
  572. package/compliance/cache/3.1.0-beta.7/universal/notification-config-event-scope.yaml +0 -119
  573. package/compliance/cache/3.1.0-beta.7/universal/notification-config-lifecycle.yaml +0 -337
  574. package/compliance/cache/3.1.0-beta.7/universal/notification-config-rejections.yaml +0 -107
  575. package/compliance/cache/3.1.0-beta.7/universal/pagination-integrity-creative-formats.yaml +0 -265
  576. package/compliance/cache/3.1.0-beta.7/universal/pagination-integrity-list-accounts.yaml +0 -245
  577. package/compliance/cache/3.1.0-beta.7/universal/pagination-integrity.yaml +0 -263
  578. package/compliance/cache/3.1.0-beta.7/universal/property-lists-pagination-integrity.yaml +0 -307
  579. package/compliance/cache/3.1.0-beta.7/universal/read-tool-idempotency.yaml +0 -405
  580. package/compliance/cache/3.1.0-beta.7/universal/runner-output-contract.yaml +0 -1266
  581. package/compliance/cache/3.1.0-beta.7/universal/schema-validation-signals.yaml +0 -181
  582. package/compliance/cache/3.1.0-beta.7/universal/schema-validation.yaml +0 -548
  583. package/compliance/cache/3.1.0-beta.7/universal/security.yaml +0 -539
  584. package/compliance/cache/3.1.0-beta.7/universal/signed-requests.yaml +0 -217
  585. package/compliance/cache/3.1.0-beta.7/universal/stale-response-advisory.yaml +0 -295
  586. package/compliance/cache/3.1.0-beta.7/universal/storyboard-schema.yaml +0 -2136
  587. package/compliance/cache/3.1.0-beta.7/universal/v3-envelope-integrity.yaml +0 -117
  588. package/compliance/cache/3.1.0-beta.7/universal/version-negotiation.yaml +0 -130
  589. package/compliance/cache/3.1.0-beta.7/universal/webhook-emission.yaml +0 -411
  590. package/compliance/cache/3.1.0-beta.7/universal/wholesale-feed-bulk-webhooks.yaml +0 -82
  591. package/compliance/cache/3.1.0-beta.7/universal/wholesale-feed-product-webhooks.yaml +0 -83
  592. package/compliance/cache/3.1.0-beta.7/universal/wholesale-feed-products.yaml +0 -151
  593. package/compliance/cache/3.1.0-beta.7/universal/wholesale-feed-signal-webhooks.yaml +0 -83
  594. package/compliance/cache/3.1.0-beta.7/universal/wholesale-feed-signals.yaml +0 -149
  595. package/dist/lib/types/v3-1-beta/index.d.mts +0 -1
  596. package/dist/lib/types/v3-1-beta/index.d.ts +0 -1
  597. package/dist/lib/types/v3-1-beta/index.mjs +0 -1
  598. package/dist/lib/types/v3-1-beta/tools.generated.d.mts +0 -26788
  599. package/dist/lib/types/v3-1-beta/tools.generated.d.ts +0 -26788
  600. /package/dist/lib/{types/v3-1-beta/tools.generated.mjs → media-buy/action-types.mjs} +0 -0
@@ -1,682 +0,0 @@
1
- id: media_buy_governance_escalation
2
- version: "1.0.0"
3
- title: "Governance denial and human escalation"
4
- category: media_buy_governance_escalation
5
- summary: "Buyer's governance agent denies a media buy that exceeds spending authority, escalates to a human who approves with conditions."
6
- track: campaign_governance
7
- required_tools:
8
- - sync_plans
9
- - check_governance
10
-
11
- narrative: |
12
- The buyer's governance agent denies a media buy because it exceeds the agent's spending
13
- authority. The governance check escalates to a human reviewer who approves with conditions.
14
-
15
- This storyboard shows the full governance loop: plan registration with spending authority
16
- limits, product discovery, pre-buy governance check that gets denied, human escalation
17
- that results in conditional approval, media buy creation with the approved governance
18
- context, outcome reporting, and a complete audit trail.
19
-
20
- Governance exists to ensure that automated agents operate within defined boundaries. When
21
- those boundaries are exceeded, the system escalates to humans rather than blocking
22
- entirely. The audit trail provides accountability for every decision in the chain.
23
-
24
- agent:
25
- interaction_model: media_buy_seller
26
- capabilities:
27
- - sells_media
28
- - governance_aware
29
- examples:
30
- - "Publisher platform integrated with buyer governance"
31
- - "SSP that respects governance checks"
32
- - "Retail media network with governance support"
33
-
34
- caller:
35
- role: buyer_agent
36
- example: "Pinnacle Agency (buyer)"
37
-
38
- prerequisites:
39
- description: |
40
- The caller needs a brand identity, operator credentials, and a governance agent
41
- URL. The test kit provides a sample brand (Acme Outdoor) with campaign parameters
42
- and a governance configuration with spending authority limits.
43
- test_kit: "test-kits/acme-outdoor.yaml"
44
- controller_seeding: true
45
-
46
- fixtures:
47
- products:
48
- - product_id: "sports_ctv_q2"
49
- delivery_type: "guaranteed"
50
- channels: ["ctv"]
51
- format_ids:
52
- - id: "video_30s"
53
- - product_id: "outdoor_video_q2"
54
- delivery_type: "guaranteed"
55
- channels: ["video"]
56
- format_ids:
57
- - id: "video_15s"
58
- pricing_options:
59
- - product_id: "sports_ctv_q2"
60
- pricing_option_id: "cpm_guaranteed"
61
- pricing_model: "cpm"
62
- currency: "USD"
63
- fixed_price: 45.0
64
- - product_id: "outdoor_video_q2"
65
- pricing_option_id: "cpm_standard"
66
- pricing_model: "cpm"
67
- currency: "USD"
68
- fixed_price: 12.0
69
- plans:
70
- - plan_id: "gov_acme_q2_2027"
71
- brand:
72
- domain: "acmeoutdoor.example"
73
- objectives: "Q2 outdoor lifestyle campaign — display and video, Adults 25-54, US"
74
- budget:
75
- total: 50000
76
- currency: "USD"
77
- reallocation_threshold: 20000
78
- flight:
79
- start: "2027-04-01T00:00:00Z"
80
- end: "2027-06-30T23:59:59Z"
81
- countries: ["US"]
82
- custom_policies:
83
- - policy_id: "weekly_reporting_over_10k"
84
- enforcement: "must"
85
- policy: "Weekly reporting required for buys over $10K."
86
- - policy_id: "seller_concentration_cap"
87
- enforcement: "must"
88
- policy: "No single-seller concentration above 60% of total budget."
89
-
90
- phases:
91
- - id: capability_discovery
92
- title: "Capability discovery"
93
- narrative: |
94
- The buyer calls get_adcp_capabilities to confirm the agent supports media buying before sending briefs or creating buys.
95
-
96
- steps:
97
- - id: get_capabilities
98
- title: "Check agent capabilities"
99
- narrative: |
100
- Verify that the agent declares the expected protocol support before
101
- proceeding with domain-specific operations.
102
- task: get_adcp_capabilities
103
- schema_ref: "protocol/get-adcp-capabilities-request.json"
104
- response_schema_ref: "protocol/get-adcp-capabilities-response.json"
105
- doc_ref: "/protocol/get_adcp_capabilities"
106
- comply_scenario: capability_discovery
107
- stateful: false
108
- expected: |
109
- Return capabilities declaring media_buy in supported_protocols, confirming the agent sells media.
110
- sample_request:
111
- context:
112
- correlation_id: "media_buy_governance_escalation--get_capabilities"
113
- validations:
114
- - check: response_schema
115
- description: "Response matches get-adcp-capabilities-response.json schema"
116
- - check: field_present
117
- path: "supported_protocols"
118
- description: "Agent declares supported protocols"
119
-
120
- - check: field_present
121
- path: "context"
122
- description: "Response echoes back the context object"
123
- - check: field_value
124
- path: "context.correlation_id"
125
- value: "media_buy_governance_escalation--get_capabilities"
126
- description: "Context correlation_id returned unchanged"
127
- - id: account_setup
128
- title: "Account and governance setup"
129
- narrative: |
130
- The buyer establishes an account and registers their governance agent with the
131
- seller. The governance agent will be called before media buys are confirmed to
132
- validate spending authority, brand safety, and compliance.
133
-
134
- steps:
135
- - id: sync_accounts
136
- title: "Establish account relationship"
137
- narrative: |
138
- The buyer registers their brand and operator with your platform.
139
- task: sync_accounts
140
- schema_ref: "account/sync-accounts-request.json"
141
- response_schema_ref: "account/sync-accounts-response.json"
142
- doc_ref: "/accounts/tasks/sync_accounts"
143
- stateful: true
144
- expected: |
145
- Return the account with:
146
- - account_id: your platform's identifier
147
- - action: created or updated
148
- - status: active or pending_approval
149
-
150
- sample_request:
151
- accounts:
152
- - brand:
153
- domain: "acmeoutdoor.example"
154
- operator: "pinnacle-agency.example"
155
- billing: "operator"
156
- payment_terms: "net_30"
157
-
158
- idempotency_key: "$generate:uuid_v4#media_buy_governance_escalation_account_setup_sync_accounts"
159
- context:
160
- correlation_id: "media_buy_governance_escalation--sync_accounts"
161
- validations:
162
- - check: response_schema
163
- description: "Response matches sync-accounts-response.json schema"
164
- - check: field_present
165
- path: "accounts[0].account_id"
166
- description: "Account has a platform-assigned ID"
167
-
168
- - check: field_present
169
- path: "context"
170
- description: "Response echoes back the context object"
171
- - check: field_value
172
- path: "context.correlation_id"
173
- value: "media_buy_governance_escalation--sync_accounts"
174
- description: "Context correlation_id returned unchanged"
175
- - id: sync_governance
176
- title: "Register governance agent"
177
- narrative: |
178
- The buyer tells your platform: "Before you confirm any media buy for this
179
- account, call this governance agent to validate it." Your platform stores
180
- the governance agent URL and will call it during create_media_buy.
181
- task: sync_governance
182
- schema_ref: "account/sync-governance-request.json"
183
- response_schema_ref: "account/sync-governance-response.json"
184
- doc_ref: "/accounts/tasks/sync_governance"
185
- stateful: true
186
- expected: |
187
- Acknowledge the governance agents. Your platform should:
188
- - Store the governance agent URLs for the specified accounts
189
- - Return confirmation that agents were registered
190
- - Use these agents during create_media_buy validation
191
-
192
- sample_request:
193
- accounts:
194
- - account:
195
- brand:
196
- domain: "acmeoutdoor.example"
197
- operator: "pinnacle-agency.example"
198
- governance_agents:
199
- - url: "https://governance.pinnacle-agency.example"
200
- authentication:
201
- schemes: ["Bearer"]
202
- credentials: "gov-token-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
203
-
204
- idempotency_key: "$generate:uuid_v4#media_buy_governance_escalation_account_setup_sync_governance"
205
- context:
206
- correlation_id: "media_buy_governance_escalation--sync_governance"
207
- ext:
208
- test_platform:
209
- test_run: true
210
- validations:
211
- - check: response_schema
212
- description: "Response matches sync-governance-response.json schema"
213
-
214
- - check: field_present
215
- path: "context"
216
- description: "Response echoes back the context object"
217
- - check: field_value
218
- path: "context.correlation_id"
219
- value: "media_buy_governance_escalation--sync_governance"
220
- description: "Context correlation_id returned unchanged"
221
- - id: register_plan
222
- title: "Register governance plan with spending limits"
223
- narrative: |
224
- The buyer registers a governance plan that defines the agent's spending authority.
225
- The plan sets a per-transaction threshold below the intended media buy amount.
226
- This ensures the governance check will trigger an escalation when the buy exceeds
227
- the agent's authority.
228
-
229
- steps:
230
- - id: sync_plans
231
- title: "Register a governance plan with agent-limited authority"
232
- narrative: |
233
- The buyer's governance agent registers a plan with spending authority limits.
234
- The plan sets a per-transaction threshold of $20K via reallocation_threshold
235
- on the budget. Any media buy above this amount requires human approval.
236
- task: sync_plans
237
- schema_ref: "governance/sync-plans-request.json"
238
- response_schema_ref: "governance/sync-plans-response.json"
239
- doc_ref: "/governance/campaign/tasks/sync_plans"
240
- comply_scenario: campaign_governance
241
- stateful: true
242
- expected: |
243
- Acknowledge the governance plan:
244
- - plan_id: identifier for this governance plan
245
- - budget.reallocation_threshold: spending limit before re-evaluation
246
- - human_review_required: set when the plan mandates escalation
247
-
248
- sample_request:
249
- idempotency_key: "$generate:uuid_v4#gov-escalation-sync"
250
- plans:
251
- - plan_id: "gov_acme_q2_2027"
252
- brand:
253
- domain: "acmeoutdoor.example"
254
- objectives: "Q2 outdoor lifestyle campaign — display and video, Adults 25-54, US"
255
- budget:
256
- total: 50000
257
- currency: "USD"
258
- reallocation_threshold: 20000
259
- flight:
260
- start: "2027-04-01T00:00:00Z"
261
- end: "2027-06-30T23:59:59Z"
262
- countries: ["US"]
263
- custom_policies:
264
- - policy_id: "weekly_reporting_over_10k"
265
- enforcement: "must"
266
- policy: "Weekly reporting required for buys over $10K."
267
- - policy_id: "seller_concentration_cap"
268
- enforcement: "must"
269
- policy: "No single-seller concentration above 60% of total budget."
270
-
271
- context:
272
- correlation_id: "media_buy_governance_escalation--sync_plans"
273
- context_outputs:
274
- - name: plan_id
275
- path: 'plans[0].plan_id'
276
- validations:
277
- - check: response_schema
278
- description: "Response matches sync-plans-response.json schema"
279
-
280
- - check: field_present
281
- path: "context"
282
- description: "Response echoes back the context object"
283
- - check: field_value
284
- path: "context.correlation_id"
285
- value: "media_buy_governance_escalation--sync_plans"
286
- description: "Context correlation_id returned unchanged"
287
- - check: field_present
288
- path: "plans[0].plan_id"
289
- description: "Governance agent assigns plan_id — must be echoed in check_governance"
290
- - id: discover_products
291
- title: "Product discovery"
292
- narrative: |
293
- The buyer sends a brief to discover products. The products returned will exceed
294
- the governance agent's spending authority when assembled into a media buy.
295
-
296
- steps:
297
- - id: get_products_brief
298
- title: "Send a brief"
299
- narrative: |
300
- The buyer describes what they want. Your platform returns products with
301
- pricing that, when combined, will exceed the $20K per-transaction threshold
302
- set in the governance plan.
303
- task: get_products
304
- schema_ref: "media-buy/get-products-request.json"
305
- response_schema_ref: "media-buy/get-products-response.json"
306
- doc_ref: "/media-buy/task-reference/get_products"
307
- comply_scenario: full_sales_flow
308
- stateful: false
309
- expected: |
310
- Return products matching the brief with pricing that totals above $20K:
311
- - product_id, name, description
312
- - delivery_type: guaranteed or non_guaranteed
313
- - pricing_models with CPM and budget recommendations
314
- - forecast: estimated delivery
315
-
316
- sample_request:
317
- buying_mode: "brief"
318
- brief: "Premium CTV and video on sports publishers. Q2 flight, $50K budget. Adults 25-54, US."
319
- brand:
320
- domain: "acmeoutdoor.example"
321
- account:
322
- brand:
323
- domain: "acmeoutdoor.example"
324
- operator: "pinnacle-agency.example"
325
-
326
- context:
327
- correlation_id: "media_buy_governance_escalation--get_products_brief"
328
- validations:
329
- - check: response_schema
330
- description: "Response matches get-products-response.json schema"
331
- - check: field_present
332
- path: "products"
333
- description: "Response contains a products array"
334
-
335
- - check: field_present
336
- path: "context"
337
- description: "Response echoes back the context object"
338
- - check: field_value
339
- path: "context.correlation_id"
340
- value: "media_buy_governance_escalation--get_products_brief"
341
- description: "Context correlation_id returned unchanged"
342
- - check: field_present
343
- path: "products[0].format_ids"
344
- description: "Products include format_ids for creative requirements"
345
- - check: field_present
346
- path: "products[0].format_ids[0].agent_url"
347
- description: "Format IDs include agent_url — must match this agent's URL"
348
- - check: field_present
349
- path: "products[0].format_ids[0].id"
350
- description: "Format IDs include id — must be accepted back in sync_creatives"
351
- - id: governance_check_denied
352
- title: "Governance check — denied"
353
- narrative: |
354
- Before creating the media buy, the buyer's governance agent runs a pre-buy check.
355
- The proposed buy totals $50K, which exceeds the agent's $20K per-transaction
356
- authority. The governance agent denies the buy with a must-severity finding and
357
- returns escalation instructions for human review.
358
-
359
- steps:
360
- - id: check_governance_denied
361
- title: "Pre-buy governance check (denied)"
362
- narrative: |
363
- The buyer calls check_governance with the proposed media buy binding. The
364
- governance agent evaluates the buy against the registered plan and finds that
365
- the total exceeds the agent's spending authority. The check returns denied
366
- with a must-severity finding and instructions for escalating to a human.
367
- task: check_governance
368
- schema_ref: "governance/check-governance-request.json"
369
- response_schema_ref: "governance/check-governance-response.json"
370
- doc_ref: "/governance/campaign/tasks/check_governance"
371
- comply_scenario: governance_spend_authority/denied
372
- stateful: true
373
- expected: |
374
- Return a denied governance decision:
375
- - decision: denied
376
- - findings: array with at least one must-severity finding
377
- - severity: must
378
- - code: SPENDING_AUTHORITY_EXCEEDED
379
- - message: explains the agent's authority limit and how much the buy exceeds it
380
- - escalation: instructions for human review
381
- - governance_context: token/ID the buyer passes to the next check after escalation
382
- - plan_id: the governance plan that triggered the denial
383
-
384
- sample_request:
385
- plan_id: "$context.plan_id"
386
- caller: "https://pinnacle-agency.example"
387
- tool: "create_media_buy"
388
- payload:
389
- idempotency_key: "$generate:uuid_v4#media_buy_governance_escalation_check_governance_denied_payload"
390
- account:
391
- brand:
392
- domain: "acmeoutdoor.example"
393
- operator: "pinnacle-agency.example"
394
- brand:
395
- domain: "acmeoutdoor.example"
396
- start_time: "2027-01-01T00:00:00Z"
397
- end_time: "2027-03-31T23:59:59Z"
398
- packages:
399
- - product_id: "sports_ctv_q2"
400
- budget: 30000
401
- pricing_option_id: "cpm_standard"
402
- - product_id: "outdoor_video_q2"
403
- budget: 20000
404
- pricing_option_id: "cpm_standard"
405
-
406
- context:
407
- correlation_id: "media_buy_governance_escalation--check_governance_denied"
408
- validations:
409
- - check: response_schema
410
- description: "Response matches check-governance-response.json schema"
411
- - check: field_present
412
- path: "verdict"
413
- description: "Response contains a governance verdict"
414
- - check: field_present
415
- path: "findings"
416
- description: "Response contains findings explaining the denial"
417
-
418
- - check: field_present
419
- path: "context"
420
- description: "Response echoes back the context object"
421
- - check: field_value
422
- path: "context.correlation_id"
423
- value: "media_buy_governance_escalation--check_governance_denied"
424
- description: "Context correlation_id returned unchanged"
425
- - id: human_escalation
426
- title: "Human escalation — conditional approval"
427
- narrative: |
428
- The governance denial triggers human escalation. A human reviewer at the agency
429
- reviews the proposed buy, the denial reason, and the governance plan. The human
430
- approves the buy with conditions — for example, requiring weekly reporting. The
431
- buyer calls check_governance again with the human's approval, and this time
432
- the check returns approved with conditions.
433
-
434
- steps:
435
- - id: check_governance_approved
436
- title: "Re-check governance after human approval (approved with conditions)"
437
- narrative: |
438
- After the human reviewer approves the buy, the buyer calls check_governance
439
- again with the governance_context from the prior denial and the human's
440
- approval. The governance agent returns approved with conditions that the
441
- buyer must honor during the campaign.
442
- task: check_governance
443
- schema_ref: "governance/check-governance-request.json"
444
- response_schema_ref: "governance/check-governance-response.json"
445
- doc_ref: "/governance/campaign/tasks/check_governance"
446
- comply_scenario: governance_spend_authority
447
- stateful: true
448
- expected: |
449
- Return an approved governance decision with conditions:
450
- - decision: approved
451
- - conditions: array of requirements the buyer must honor
452
- - e.g., "Weekly delivery reporting required"
453
- - e.g., "Human review required for any budget increase"
454
- - governance_context: updated token the buyer passes to create_media_buy
455
- - approved_by: identifier of the human who approved
456
- - approved_at: timestamp of approval
457
-
458
- sample_request:
459
- plan_id: "$context.plan_id"
460
- caller: "https://pinnacle-agency.example"
461
- governance_context: "gov_ctx_acme_q2_escalated"
462
- tool: "create_media_buy"
463
- payload:
464
- idempotency_key: "$generate:uuid_v4#media_buy_governance_escalation_check_governance_approved_payload"
465
- account:
466
- brand:
467
- domain: "acmeoutdoor.example"
468
- operator: "pinnacle-agency.example"
469
- brand:
470
- domain: "acmeoutdoor.example"
471
- start_time: "2027-01-01T00:00:00Z"
472
- end_time: "2027-03-31T23:59:59Z"
473
- packages:
474
- - product_id: "sports_ctv_q2"
475
- budget: 30000
476
- pricing_option_id: "cpm_standard"
477
- - product_id: "outdoor_video_q2"
478
- budget: 20000
479
- pricing_option_id: "cpm_standard"
480
-
481
- context:
482
- correlation_id: "media_buy_governance_escalation--check_governance_approved"
483
- context_outputs:
484
- - name: check_id
485
- path: 'check_id'
486
- validations:
487
- - check: response_schema
488
- description: "Response matches check-governance-response.json schema"
489
- - check: field_present
490
- path: "verdict"
491
- description: "Response contains an approved governance verdict"
492
- - check: field_present
493
- path: "conditions"
494
- description: "Approval includes conditions"
495
-
496
- - check: field_present
497
- path: "context"
498
- description: "Response echoes back the context object"
499
- - check: field_value
500
- path: "context.correlation_id"
501
- value: "media_buy_governance_escalation--check_governance_approved"
502
- description: "Context correlation_id returned unchanged"
503
- - check: field_present
504
- path: "check_id"
505
- description: "Check ID for audit trail — must be echoed in report_plan_outcome"
506
- - id: create_buy_with_governance
507
- title: "Create media buy with governance context"
508
- narrative: |
509
- The buyer creates the media buy, passing the governance_context from the approved
510
- governance check. The seller's platform verifies the governance approval before
511
- confirming the buy.
512
-
513
- steps:
514
- - id: create_media_buy
515
- title: "Create a media buy with governance approval"
516
- narrative: |
517
- The buyer creates the media buy with the governance_context token from the
518
- approved check. The seller's platform validates the governance approval and
519
- confirms the buy. Without a valid governance_context, the platform would
520
- reject the buy because the governance agent is registered for this account.
521
- task: create_media_buy
522
- schema_ref: "media-buy/create-media-buy-request.json"
523
- response_schema_ref: "media-buy/create-media-buy-response.json"
524
- doc_ref: "/media-buy/task-reference/create_media_buy"
525
- comply_scenario: create_media_buy
526
- stateful: true
527
- expected: |
528
- Confirm the media buy with governance approval:
529
- - media_buy_id: your platform's identifier
530
- - status: active
531
- - confirmed_at: timestamp
532
- - governance_context: echoed back confirming governance was validated
533
- - packages: confirmed line items
534
- - valid_actions: creative sync, get_delivery, etc.
535
-
536
- sample_request:
537
- account:
538
- brand:
539
- domain: "acmeoutdoor.example"
540
- operator: "pinnacle-agency.example"
541
- brand:
542
- domain: "acmeoutdoor.example"
543
- governance_context: "gov_ctx_acme_q2_approved"
544
- start_time: "2026-04-01T00:00:00Z"
545
- end_time: "2026-06-30T23:59:59Z"
546
- packages:
547
- - product_id: "sports_ctv_q2"
548
- budget: 30000
549
- pricing_option_id: "cpm_guaranteed"
550
- creative_assignments:
551
- - creative_id: "video_30s_trail_pro"
552
- - product_id: "outdoor_video_q2"
553
- budget: 20000
554
- pricing_option_id: "cpm_standard"
555
- creative_assignments:
556
- - creative_id: "video_15s_trail_pro"
557
-
558
- idempotency_key: "$generate:uuid_v4#media_buy_governance_escalation_create_buy_with_governance_create_media_buy"
559
- context:
560
- correlation_id: "media_buy_governance_escalation--create_media_buy"
561
- context_outputs:
562
- - name: media_buy_id
563
- path: "media_buy_id"
564
- validations:
565
- - check: response_schema
566
- description: "Response matches create-media-buy-response.json schema"
567
-
568
- - check: field_present
569
- path: "context"
570
- description: "Response echoes back the context object"
571
- - check: field_value
572
- path: "context.correlation_id"
573
- value: "media_buy_governance_escalation--create_media_buy"
574
- description: "Context correlation_id returned unchanged"
575
- - id: report_outcome
576
- title: "Report governance outcome"
577
- narrative: |
578
- After the media buy is created, the buyer reports the outcome back to the
579
- governance agent. This closes the governance loop by linking the actual media
580
- buy to the governance check that authorized it.
581
-
582
- steps:
583
- - id: report_plan_outcome
584
- title: "Report media buy outcome to governance"
585
- narrative: |
586
- The buyer reports the media buy creation back to the governance agent,
587
- linking the media_buy_id to the governance check. This enables the governance
588
- agent to track what was actually purchased against what was approved.
589
- task: report_plan_outcome
590
- schema_ref: "governance/report-plan-outcome-request.json"
591
- response_schema_ref: "governance/report-plan-outcome-response.json"
592
- doc_ref: "/governance/campaign/tasks/report_plan_outcome"
593
- comply_scenario: campaign_governance
594
- stateful: true
595
- expected: |
596
- Acknowledge the outcome report:
597
- - outcome_id: identifier for this outcome record
598
- - plan_id: the governance plan
599
- - media_buy_id: the buy that was created
600
- - governance_context: the approval that authorized it
601
- - outcome_state: accepted
602
-
603
- sample_request:
604
- plan_id: "$context.plan_id"
605
- governance_context: "gov_ctx_acme_q2_approved"
606
- outcome: "completed"
607
- seller_response:
608
- seller_reference: "$context.media_buy_id"
609
- committed_budget: 50000
610
- packages:
611
- - package_id: "pkg_sports_ctv_q2"
612
- committed_budget: 30000
613
- - package_id: "pkg_outdoor_video_q2"
614
- committed_budget: 20000
615
-
616
- idempotency_key: "$generate:uuid_v4#media_buy_governance_escalation_report_outcome_report_plan_outcome"
617
- context:
618
- correlation_id: "media_buy_governance_escalation--report_plan_outcome"
619
- validations:
620
- - check: response_schema
621
- description: "Response matches report-plan-outcome-response.json schema"
622
-
623
- - check: field_present
624
- path: "context"
625
- description: "Response echoes back the context object"
626
- - check: field_value
627
- path: "context.correlation_id"
628
- value: "media_buy_governance_escalation--report_plan_outcome"
629
- description: "Context correlation_id returned unchanged"
630
- - id: audit_trail
631
- title: "Governance audit trail"
632
- narrative: |
633
- The buyer (or an auditor) retrieves the full audit trail for the governance
634
- plan. This shows every decision in the chain: the initial denial, the human
635
- escalation, the conditional approval, the media buy creation, and the outcome
636
- report. The audit trail provides accountability for automated spending decisions.
637
-
638
- steps:
639
- - id: get_plan_audit_logs
640
- title: "Retrieve the full governance audit trail"
641
- narrative: |
642
- The buyer requests the audit log for the governance plan. The log shows
643
- every governance event: check requests, denials, escalations, approvals,
644
- and outcome reports. Each entry has a timestamp, actor, and decision.
645
- task: get_plan_audit_logs
646
- schema_ref: "governance/get-plan-audit-logs-request.json"
647
- response_schema_ref: "governance/get-plan-audit-logs-response.json"
648
- doc_ref: "/governance/campaign/tasks/get_plan_audit_logs"
649
- comply_scenario: campaign_governance
650
- stateful: false
651
- expected: |
652
- Return the complete audit trail for the governance plan:
653
- - plan_id: the governance plan
654
- - entries: ordered list of governance events, including:
655
- 1. Plan registered with $20K per-transaction threshold
656
- 2. Governance check denied — spending authority exceeded ($50K > $20K)
657
- 3. Human escalation initiated
658
- 4. Human approved with conditions (weekly reporting, budget increase review)
659
- 5. Media buy created with governance approval
660
- 6. Outcome reported linking media_buy_id to governance context
661
- - Each entry includes: timestamp, event_type, actor, decision, details
662
-
663
- sample_request:
664
- plan_ids:
665
- - "$context.plan_id"
666
-
667
- context:
668
- correlation_id: "media_buy_governance_escalation--get_plan_audit_logs"
669
- validations:
670
- - check: response_schema
671
- description: "Response matches get-plan-audit-logs-response.json schema"
672
- - check: field_present
673
- path: "plans"
674
- description: "Response contains audit log entries"
675
-
676
- - check: field_present
677
- path: "context"
678
- description: "Response echoes back the context object"
679
- - check: field_value
680
- path: "context.correlation_id"
681
- value: "media_buy_governance_escalation--get_plan_audit_logs"
682
- description: "Context correlation_id returned unchanged"