@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
@@ -81,5 +81,8 @@ export interface ControllerSeedingResult {
81
81
  * not applicable (opt-out, no declaration, empty fixtures) so the runner can
82
82
  * treat a no-op identically to a non-seeding storyboard.
83
83
  */
84
- export declare function runControllerSeeding(client: TestClient, storyboard: Storyboard, options: StoryboardRunOptions, context: StoryboardContext, discoveryClient?: TestClient): Promise<ControllerSeedingResult | null>;
84
+ export declare function runControllerSeeding(client: TestClient, storyboard: Storyboard, options: StoryboardRunOptions, context: StoryboardContext, discoveryClient?: TestClient, resolveFixtureAgent?: (task: 'comply_test_controller' | 'get_products') => {
85
+ client: TestClient;
86
+ options: StoryboardRunOptions;
87
+ }): Promise<ControllerSeedingResult | null>;
85
88
  export {};
@@ -81,5 +81,8 @@ export interface ControllerSeedingResult {
81
81
  * not applicable (opt-out, no declaration, empty fixtures) so the runner can
82
82
  * treat a no-op identically to a non-seeding storyboard.
83
83
  */
84
- export declare function runControllerSeeding(client: TestClient, storyboard: Storyboard, options: StoryboardRunOptions, context: StoryboardContext, discoveryClient?: TestClient): Promise<ControllerSeedingResult | null>;
84
+ export declare function runControllerSeeding(client: TestClient, storyboard: Storyboard, options: StoryboardRunOptions, context: StoryboardContext, discoveryClient?: TestClient, resolveFixtureAgent?: (task: 'comply_test_controller' | 'get_products') => {
85
+ client: TestClient;
86
+ options: StoryboardRunOptions;
87
+ }): Promise<ControllerSeedingResult | null>;
85
88
  export {};
@@ -205,17 +205,26 @@ function seedFixtureFromFields(fields) {
205
205
  }
206
206
  return fields;
207
207
  }
208
- async function runControllerSeeding(client, storyboard, options, context, discoveryClient = client) {
208
+ async function runControllerSeeding(client, storyboard, options, context, discoveryClient = client, resolveFixtureAgent) {
209
209
  if (options.skip_controller_seeding === true) return null;
210
210
  const calls = buildSeedCalls(storyboard.fixtures);
211
211
  if (calls.length === 0) return null;
212
212
  if (storyboard.fixture_resolution !== void 0) {
213
213
  const resolutionCalls = storyboard.prerequisites?.controller_seeding === true ? calls : calls.filter((call) => call.scenario === "seed_product" || call.scenario === "seed_pricing_option");
214
214
  if (resolutionCalls.length === 0) return null;
215
- return runDeclaredFixtureResolution(client, discoveryClient, storyboard, options, context, resolutionCalls);
215
+ return runDeclaredFixtureResolution(
216
+ client,
217
+ discoveryClient,
218
+ storyboard,
219
+ options,
220
+ context,
221
+ resolutionCalls,
222
+ resolveFixtureAgent
223
+ );
216
224
  }
217
225
  if (storyboard.prerequisites?.controller_seeding !== true) return null;
218
- if (options.agentTools && !options.agentTools.includes("comply_test_controller")) {
226
+ const controllerRouteTools = resolveFixtureAgent ? resolveFixtureAgent("comply_test_controller").options.agentTools : options.agentTools;
227
+ if (controllerRouteTools && !controllerRouteTools.includes("comply_test_controller")) {
219
228
  return buildMissingControllerResult(storyboard, calls, context);
220
229
  }
221
230
  const start = Date.now();
@@ -295,7 +304,7 @@ async function runControllerSeeding(client, storyboard, options, context, discov
295
304
  failedCount
296
305
  };
297
306
  }
298
- async function runDeclaredFixtureResolution(seedClient, discoveryClient, storyboard, options, context, calls) {
307
+ async function runDeclaredFixtureResolution(seedClient, discoveryClient, storyboard, options, context, calls, resolveFixtureAgent) {
299
308
  const start = Date.now();
300
309
  const authoringErrorResult = buildAuthoringErrorResult(storyboard, calls, context, start);
301
310
  if (authoringErrorResult) return authoringErrorResult;
@@ -324,18 +333,40 @@ async function runDeclaredFixtureResolution(seedClient, discoveryClient, storybo
324
333
  const claimedPricingOptions = /* @__PURE__ */ new Map();
325
334
  const productStatuses = /* @__PURE__ */ new Map();
326
335
  const seedContext = { correlation_id: `${storyboardCorrelationPrefix(storyboard)}--__seeding__` };
327
- const controllerMissing = options.agentTools?.includes("comply_test_controller") === false;
328
- let advertisedScenarios = controllerMissing ? /* @__PURE__ */ new Set() : controllerScenarioSetFromOptions(options);
329
- let scenarioLookupAttempted = advertisedScenarios !== null;
336
+ let seedOptions = options;
337
+ let discoveryOptions = options;
338
+ let seedPrepared = false;
339
+ let discoveryPrepared = false;
340
+ const controller = { missing: false, scenarios: null };
341
+ const prepareSeedAgent = async () => {
342
+ if (seedPrepared) return;
343
+ const selected = resolveFixtureAgent?.("comply_test_controller");
344
+ if (selected) {
345
+ seedClient = selected.client;
346
+ seedOptions = selected.options;
347
+ }
348
+ controller.missing = seedOptions.agentTools?.includes("comply_test_controller") === false;
349
+ controller.scenarios = controller.missing ? /* @__PURE__ */ new Set() : controllerScenarioSetFromOptions(seedOptions);
350
+ if (!controller.missing && !controller.scenarios) {
351
+ controller.scenarios = await fetchControllerScenarioSet(seedClient, seedOptions, seedContext);
352
+ }
353
+ seedPrepared = true;
354
+ };
355
+ const prepareDiscoveryAgent = () => {
356
+ if (discoveryPrepared) return;
357
+ const selected = resolveFixtureAgent?.("get_products");
358
+ if (selected) {
359
+ discoveryClient = selected.client;
360
+ discoveryOptions = selected.options;
361
+ }
362
+ discoveryPrepared = true;
363
+ };
330
364
  const legacyCalls = calls.filter((call) => resolutionSpecForCall(call, specByKey) === void 0);
331
365
  if (legacyCalls.length > 0) {
332
- if (controllerMissing) return buildMissingControllerResult(storyboard, legacyCalls, context);
333
- if (!advertisedScenarios) {
334
- advertisedScenarios = await fetchControllerScenarioSet(seedClient, options, seedContext);
335
- scenarioLookupAttempted = true;
336
- }
337
- if (advertisedScenarios) {
338
- const unsupported = legacyCalls.find((call) => !call.authoring_error && !advertisedScenarios.has(call.scenario));
366
+ await prepareSeedAgent();
367
+ if (controller.missing) return buildMissingControllerResult(storyboard, legacyCalls, context);
368
+ if (controller.scenarios) {
369
+ const unsupported = legacyCalls.find((call) => !call.authoring_error && !controller.scenarios.has(call.scenario));
339
370
  if (unsupported) {
340
371
  return buildUnsupportedSeedResult(
341
372
  storyboard,
@@ -351,18 +382,16 @@ async function runDeclaredFixtureResolution(seedClient, discoveryClient, storybo
351
382
  const spec = resolutionSpecForCall(call, specByKey);
352
383
  return !spec || spec.strategies.includes("seed");
353
384
  });
354
- if (needsSeedStrategy && !controllerMissing && !advertisedScenarios && !scenarioLookupAttempted) {
355
- advertisedScenarios = await fetchControllerScenarioSet(seedClient, options, seedContext);
356
- }
385
+ if (!resolveFixtureAgent && needsSeedStrategy && !seedPrepared) await prepareSeedAgent();
357
386
  let catalogPromise;
358
- const catalog = () => catalogPromise ??= discoverProductCatalog(discoveryClient, options, context);
387
+ const catalog = () => catalogPromise ??= discoverProductCatalog(discoveryClient, discoveryOptions, context);
359
388
  let passedCount = 0;
360
389
  let failedCount = 0;
361
390
  let fixtureUnsatisfied = false;
362
391
  for (const call of orderedCalls) {
363
392
  const spec = resolutionSpecForCall(call, specByKey);
364
393
  if (!spec) {
365
- const legacy = await executeLegacySeedCall(seedClient, storyboard, call, options, context, seedContext);
394
+ const legacy = await executeLegacySeedCall(seedClient, storyboard, call, seedOptions, context, seedContext);
366
395
  if (legacy.step.skip_reason === "fixture_unsatisfied") {
367
396
  return buildUnsupportedSeedResult(storyboard, legacyCalls, context, call.scenario, legacy.step.skip?.detail);
368
397
  }
@@ -386,12 +415,13 @@ async function runDeclaredFixtureResolution(seedClient, discoveryClient, storybo
386
415
  }
387
416
  for (const strategy of parentUnavailable ? [] : spec.strategies) {
388
417
  if (strategy === "seed") {
389
- const advertised = advertisedScenarios?.has(call.scenario);
390
- if (controllerMissing || advertised === false) {
418
+ await prepareSeedAgent();
419
+ const advertised = controller.scenarios?.has(call.scenario);
420
+ if (controller.missing || advertised === false) {
391
421
  attempts.push({
392
422
  strategy,
393
423
  disposition: "unavailable",
394
- detail: controllerMissing ? "comply_test_controller is not advertised" : `list_scenarios did not advertise ${call.scenario}`
424
+ detail: controller.missing ? "comply_test_controller is not advertised" : `list_scenarios did not advertise ${call.scenario}`
395
425
  });
396
426
  continue;
397
427
  }
@@ -409,7 +439,7 @@ async function runDeclaredFixtureResolution(seedClient, discoveryClient, storybo
409
439
  params: isPlainRecord(controllerRequest.params) ? controllerRequest.params : call.params,
410
440
  context: seedContext
411
441
  },
412
- options
442
+ seedOptions
413
443
  );
414
444
  const data = raw.data;
415
445
  if (raw.success && data?.success === true) {
@@ -449,7 +479,8 @@ async function runDeclaredFixtureResolution(seedClient, discoveryClient, storybo
449
479
  }
450
480
  }
451
481
  if (strategy === "discover") {
452
- if (options.agentTools && !options.agentTools.includes("get_products")) {
482
+ prepareDiscoveryAgent();
483
+ if (discoveryOptions.agentTools && !discoveryOptions.agentTools.includes("get_products")) {
453
484
  attempts.push({
454
485
  strategy,
455
486
  disposition: "unavailable",
@@ -185,17 +185,26 @@ function seedFixtureFromFields(fields) {
185
185
  }
186
186
  return fields;
187
187
  }
188
- async function runControllerSeeding(client, storyboard, options, context, discoveryClient = client) {
188
+ async function runControllerSeeding(client, storyboard, options, context, discoveryClient = client, resolveFixtureAgent) {
189
189
  if (options.skip_controller_seeding === true) return null;
190
190
  const calls = buildSeedCalls(storyboard.fixtures);
191
191
  if (calls.length === 0) return null;
192
192
  if (storyboard.fixture_resolution !== void 0) {
193
193
  const resolutionCalls = storyboard.prerequisites?.controller_seeding === true ? calls : calls.filter((call) => call.scenario === "seed_product" || call.scenario === "seed_pricing_option");
194
194
  if (resolutionCalls.length === 0) return null;
195
- return runDeclaredFixtureResolution(client, discoveryClient, storyboard, options, context, resolutionCalls);
195
+ return runDeclaredFixtureResolution(
196
+ client,
197
+ discoveryClient,
198
+ storyboard,
199
+ options,
200
+ context,
201
+ resolutionCalls,
202
+ resolveFixtureAgent
203
+ );
196
204
  }
197
205
  if (storyboard.prerequisites?.controller_seeding !== true) return null;
198
- if (options.agentTools && !options.agentTools.includes("comply_test_controller")) {
206
+ const controllerRouteTools = resolveFixtureAgent ? resolveFixtureAgent("comply_test_controller").options.agentTools : options.agentTools;
207
+ if (controllerRouteTools && !controllerRouteTools.includes("comply_test_controller")) {
199
208
  return buildMissingControllerResult(storyboard, calls, context);
200
209
  }
201
210
  const start = Date.now();
@@ -275,7 +284,7 @@ async function runControllerSeeding(client, storyboard, options, context, discov
275
284
  failedCount
276
285
  };
277
286
  }
278
- async function runDeclaredFixtureResolution(seedClient, discoveryClient, storyboard, options, context, calls) {
287
+ async function runDeclaredFixtureResolution(seedClient, discoveryClient, storyboard, options, context, calls, resolveFixtureAgent) {
279
288
  const start = Date.now();
280
289
  const authoringErrorResult = buildAuthoringErrorResult(storyboard, calls, context, start);
281
290
  if (authoringErrorResult) return authoringErrorResult;
@@ -304,18 +313,40 @@ async function runDeclaredFixtureResolution(seedClient, discoveryClient, storybo
304
313
  const claimedPricingOptions = /* @__PURE__ */ new Map();
305
314
  const productStatuses = /* @__PURE__ */ new Map();
306
315
  const seedContext = { correlation_id: `${storyboardCorrelationPrefix(storyboard)}--__seeding__` };
307
- const controllerMissing = options.agentTools?.includes("comply_test_controller") === false;
308
- let advertisedScenarios = controllerMissing ? /* @__PURE__ */ new Set() : controllerScenarioSetFromOptions(options);
309
- let scenarioLookupAttempted = advertisedScenarios !== null;
316
+ let seedOptions = options;
317
+ let discoveryOptions = options;
318
+ let seedPrepared = false;
319
+ let discoveryPrepared = false;
320
+ const controller = { missing: false, scenarios: null };
321
+ const prepareSeedAgent = async () => {
322
+ if (seedPrepared) return;
323
+ const selected = resolveFixtureAgent?.("comply_test_controller");
324
+ if (selected) {
325
+ seedClient = selected.client;
326
+ seedOptions = selected.options;
327
+ }
328
+ controller.missing = seedOptions.agentTools?.includes("comply_test_controller") === false;
329
+ controller.scenarios = controller.missing ? /* @__PURE__ */ new Set() : controllerScenarioSetFromOptions(seedOptions);
330
+ if (!controller.missing && !controller.scenarios) {
331
+ controller.scenarios = await fetchControllerScenarioSet(seedClient, seedOptions, seedContext);
332
+ }
333
+ seedPrepared = true;
334
+ };
335
+ const prepareDiscoveryAgent = () => {
336
+ if (discoveryPrepared) return;
337
+ const selected = resolveFixtureAgent?.("get_products");
338
+ if (selected) {
339
+ discoveryClient = selected.client;
340
+ discoveryOptions = selected.options;
341
+ }
342
+ discoveryPrepared = true;
343
+ };
310
344
  const legacyCalls = calls.filter((call) => resolutionSpecForCall(call, specByKey) === void 0);
311
345
  if (legacyCalls.length > 0) {
312
- if (controllerMissing) return buildMissingControllerResult(storyboard, legacyCalls, context);
313
- if (!advertisedScenarios) {
314
- advertisedScenarios = await fetchControllerScenarioSet(seedClient, options, seedContext);
315
- scenarioLookupAttempted = true;
316
- }
317
- if (advertisedScenarios) {
318
- const unsupported = legacyCalls.find((call) => !call.authoring_error && !advertisedScenarios.has(call.scenario));
346
+ await prepareSeedAgent();
347
+ if (controller.missing) return buildMissingControllerResult(storyboard, legacyCalls, context);
348
+ if (controller.scenarios) {
349
+ const unsupported = legacyCalls.find((call) => !call.authoring_error && !controller.scenarios.has(call.scenario));
319
350
  if (unsupported) {
320
351
  return buildUnsupportedSeedResult(
321
352
  storyboard,
@@ -331,18 +362,16 @@ async function runDeclaredFixtureResolution(seedClient, discoveryClient, storybo
331
362
  const spec = resolutionSpecForCall(call, specByKey);
332
363
  return !spec || spec.strategies.includes("seed");
333
364
  });
334
- if (needsSeedStrategy && !controllerMissing && !advertisedScenarios && !scenarioLookupAttempted) {
335
- advertisedScenarios = await fetchControllerScenarioSet(seedClient, options, seedContext);
336
- }
365
+ if (!resolveFixtureAgent && needsSeedStrategy && !seedPrepared) await prepareSeedAgent();
337
366
  let catalogPromise;
338
- const catalog = () => catalogPromise ??= discoverProductCatalog(discoveryClient, options, context);
367
+ const catalog = () => catalogPromise ??= discoverProductCatalog(discoveryClient, discoveryOptions, context);
339
368
  let passedCount = 0;
340
369
  let failedCount = 0;
341
370
  let fixtureUnsatisfied = false;
342
371
  for (const call of orderedCalls) {
343
372
  const spec = resolutionSpecForCall(call, specByKey);
344
373
  if (!spec) {
345
- const legacy = await executeLegacySeedCall(seedClient, storyboard, call, options, context, seedContext);
374
+ const legacy = await executeLegacySeedCall(seedClient, storyboard, call, seedOptions, context, seedContext);
346
375
  if (legacy.step.skip_reason === "fixture_unsatisfied") {
347
376
  return buildUnsupportedSeedResult(storyboard, legacyCalls, context, call.scenario, legacy.step.skip?.detail);
348
377
  }
@@ -366,12 +395,13 @@ async function runDeclaredFixtureResolution(seedClient, discoveryClient, storybo
366
395
  }
367
396
  for (const strategy of parentUnavailable ? [] : spec.strategies) {
368
397
  if (strategy === "seed") {
369
- const advertised = advertisedScenarios?.has(call.scenario);
370
- if (controllerMissing || advertised === false) {
398
+ await prepareSeedAgent();
399
+ const advertised = controller.scenarios?.has(call.scenario);
400
+ if (controller.missing || advertised === false) {
371
401
  attempts.push({
372
402
  strategy,
373
403
  disposition: "unavailable",
374
- detail: controllerMissing ? "comply_test_controller is not advertised" : `list_scenarios did not advertise ${call.scenario}`
404
+ detail: controller.missing ? "comply_test_controller is not advertised" : `list_scenarios did not advertise ${call.scenario}`
375
405
  });
376
406
  continue;
377
407
  }
@@ -389,7 +419,7 @@ async function runDeclaredFixtureResolution(seedClient, discoveryClient, storybo
389
419
  params: isPlainRecord(controllerRequest.params) ? controllerRequest.params : call.params,
390
420
  context: seedContext
391
421
  },
392
- options
422
+ seedOptions
393
423
  );
394
424
  const data = raw.data;
395
425
  if (raw.success && data?.success === true) {
@@ -429,7 +459,8 @@ async function runDeclaredFixtureResolution(seedClient, discoveryClient, storybo
429
459
  }
430
460
  }
431
461
  if (strategy === "discover") {
432
- if (options.agentTools && !options.agentTools.includes("get_products")) {
462
+ prepareDiscoveryAgent();
463
+ if (discoveryOptions.agentTools && !discoveryOptions.agentTools.includes("get_products")) {
433
464
  attempts.push({
434
465
  strategy,
435
466
  disposition: "unavailable",
@@ -15,6 +15,17 @@
15
15
  * a task with required parameters would make the security_baseline
16
16
  * runner misreport "agent failed auth" when the root cause is that
17
17
  * schema validation rejected the probe before the auth layer ran.
18
+ *
19
+ * An agent that advertises none of the allowlist can still have its auth
20
+ * verified: {@link selectProbeTask} falls back to the MCP session probe, which
21
+ * calls a *canonical* AdCP read task the agent does advertise. An agent whose
22
+ * whole surface is its own invented tool names has nothing the runner will
23
+ * trust as a protected AdCP operation, and is reported
24
+ * `session_probe_ungradable` with a remedy rather than certified. That sentinel
25
+ * is intentionally absent from {@link PROBE_TASK_ALLOWLIST} so a kit cannot
26
+ * name it via `probe_task`; the runner resolves it, or a storyboard may name it
27
+ * directly, and either way `planMcpSessionSentinel` grades it honestly — and
28
+ * only on an explicit `protocol: 'mcp'`.
18
29
  */
19
30
  import type { TestOptions } from '../types.mjs';
20
31
  /**
@@ -34,10 +45,33 @@ export declare const PROBE_TASK_ALLOWLIST: readonly string[];
34
45
  /**
35
46
  * Select an advertised auth probe without dispatching an inapplicable tool.
36
47
  * The configured task is a preference, not permission to call a tool the
37
- * agent did not advertise. Returns undefined when the agent has no safe,
38
- * empty-body read probe (currently true for SI-only agents).
48
+ * agent did not advertise.
49
+ *
50
+ * Resolution order:
51
+ * 1. Discovery unavailable (`advertisedTools === undefined`) → the caller's
52
+ * preference, unchanged. The runner has no tool list to vet it against.
53
+ * 2. The preference, when it is allowlisted AND advertised.
54
+ * 3. The first allowlisted task the agent advertises.
55
+ * 4. **MCP only**: the {@link MCP_SESSION_PROBE_TASK} sentinel
56
+ * (adcp-client#2940). An agent whose entire read surface sits outside the
57
+ * allowlist may still expose a canonical protected read
58
+ * (`get_principal`, `list_tasks`, …), and the sentinel drives a complete
59
+ * session lifecycle (`initialize` → `notifications/initialized` →
60
+ * `tools/call`) against one — so `security_baseline` can verify a
61
+ * correctly configured agent instead of reporting
62
+ * `auth_mechanism_verified: []`. The chosen tool is called with empty
63
+ * arguments; when the agent refuses that shape the probe reports
64
+ * *inconclusive* rather than guessing, which is the hazard the allowlist
65
+ * exists to avoid.
66
+ * 5. Anything other than an explicit `protocol: 'mcp'` → `undefined`
67
+ * (unchanged). A2A's `message/send` requires `params.message` and has no
68
+ * equivalent parameter-free protected operation, and an unset protocol
69
+ * means the caller never declared a transport — neither is a safe place
70
+ * to substitute an MCP probe.
39
71
  */
40
- export declare function selectProbeTask(preferred: string | undefined, advertisedTools: readonly string[] | undefined): string | undefined;
72
+ export declare function selectProbeTask(preferred: string | undefined, advertisedTools: readonly string[] | undefined, options?: {
73
+ protocol?: 'mcp' | 'a2a';
74
+ }): string | undefined;
41
75
  /**
42
76
  * Raised when a test kit violates the schema invariants above. Carries the
43
77
  * field name so upstream loaders can render a YAML-friendly error.
@@ -15,6 +15,17 @@
15
15
  * a task with required parameters would make the security_baseline
16
16
  * runner misreport "agent failed auth" when the root cause is that
17
17
  * schema validation rejected the probe before the auth layer ran.
18
+ *
19
+ * An agent that advertises none of the allowlist can still have its auth
20
+ * verified: {@link selectProbeTask} falls back to the MCP session probe, which
21
+ * calls a *canonical* AdCP read task the agent does advertise. An agent whose
22
+ * whole surface is its own invented tool names has nothing the runner will
23
+ * trust as a protected AdCP operation, and is reported
24
+ * `session_probe_ungradable` with a remedy rather than certified. That sentinel
25
+ * is intentionally absent from {@link PROBE_TASK_ALLOWLIST} so a kit cannot
26
+ * name it via `probe_task`; the runner resolves it, or a storyboard may name it
27
+ * directly, and either way `planMcpSessionSentinel` grades it honestly — and
28
+ * only on an explicit `protocol: 'mcp'`.
18
29
  */
19
30
  import type { TestOptions } from '../types';
20
31
  /**
@@ -34,10 +45,33 @@ export declare const PROBE_TASK_ALLOWLIST: readonly string[];
34
45
  /**
35
46
  * Select an advertised auth probe without dispatching an inapplicable tool.
36
47
  * The configured task is a preference, not permission to call a tool the
37
- * agent did not advertise. Returns undefined when the agent has no safe,
38
- * empty-body read probe (currently true for SI-only agents).
48
+ * agent did not advertise.
49
+ *
50
+ * Resolution order:
51
+ * 1. Discovery unavailable (`advertisedTools === undefined`) → the caller's
52
+ * preference, unchanged. The runner has no tool list to vet it against.
53
+ * 2. The preference, when it is allowlisted AND advertised.
54
+ * 3. The first allowlisted task the agent advertises.
55
+ * 4. **MCP only**: the {@link MCP_SESSION_PROBE_TASK} sentinel
56
+ * (adcp-client#2940). An agent whose entire read surface sits outside the
57
+ * allowlist may still expose a canonical protected read
58
+ * (`get_principal`, `list_tasks`, …), and the sentinel drives a complete
59
+ * session lifecycle (`initialize` → `notifications/initialized` →
60
+ * `tools/call`) against one — so `security_baseline` can verify a
61
+ * correctly configured agent instead of reporting
62
+ * `auth_mechanism_verified: []`. The chosen tool is called with empty
63
+ * arguments; when the agent refuses that shape the probe reports
64
+ * *inconclusive* rather than guessing, which is the hazard the allowlist
65
+ * exists to avoid.
66
+ * 5. Anything other than an explicit `protocol: 'mcp'` → `undefined`
67
+ * (unchanged). A2A's `message/send` requires `params.message` and has no
68
+ * equivalent parameter-free protected operation, and an unset protocol
69
+ * means the caller never declared a transport — neither is a safe place
70
+ * to substitute an MCP probe.
39
71
  */
40
- export declare function selectProbeTask(preferred: string | undefined, advertisedTools: readonly string[] | undefined): string | undefined;
72
+ export declare function selectProbeTask(preferred: string | undefined, advertisedTools: readonly string[] | undefined, options?: {
73
+ protocol?: 'mcp' | 'a2a';
74
+ }): string | undefined;
41
75
  /**
42
76
  * Raised when a test kit violates the schema invariants above. Carries the
43
77
  * field name so upstream loaders can render a YAML-friendly error.
@@ -19,12 +19,14 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
19
19
  var test_kit_exports = {};
20
20
  __export(test_kit_exports, {
21
21
  PROBE_TASK_ALLOWLIST: () => PROBE_TASK_ALLOWLIST,
22
+ PROBE_TASK_ALLOWLIST_SUMMARY: () => PROBE_TASK_ALLOWLIST_SUMMARY,
22
23
  TestKitValidationError: () => TestKitValidationError,
23
24
  resolveDeclaredTestKit: () => resolveDeclaredTestKit,
24
25
  selectProbeTask: () => selectProbeTask,
25
26
  validateTestKit: () => validateTestKit
26
27
  });
27
28
  module.exports = __toCommonJS(test_kit_exports);
29
+ var import_types = require('./types.js');
28
30
  var import_node_fs = require("node:fs");
29
31
  var import_node_path = require("node:path");
30
32
  var import_yaml = require("yaml");
@@ -39,11 +41,14 @@ const PROBE_TASK_ALLOWLIST = Object.freeze([
39
41
  "list_content_standards",
40
42
  "list_accounts"
41
43
  ]);
42
- function selectProbeTask(preferred, advertisedTools) {
44
+ const PROBE_TASK_ALLOWLIST_SUMMARY = PROBE_TASK_ALLOWLIST.join(", ");
45
+ function selectProbeTask(preferred, advertisedTools, options = {}) {
43
46
  if (!advertisedTools) return preferred;
44
47
  const advertised = new Set(advertisedTools);
45
48
  if (preferred && PROBE_TASK_ALLOWLIST.includes(preferred) && advertised.has(preferred)) return preferred;
46
- return PROBE_TASK_ALLOWLIST.find((task) => advertised.has(task));
49
+ const advertisedProbe = PROBE_TASK_ALLOWLIST.find((task) => advertised.has(task));
50
+ if (advertisedProbe !== void 0) return advertisedProbe;
51
+ return options.protocol === "mcp" ? import_types.MCP_SESSION_PROBE_TASK : void 0;
47
52
  }
48
53
  class TestKitValidationError extends Error {
49
54
  field;
@@ -171,6 +176,7 @@ function resolveDeclaredTestKit(storyboard, options) {
171
176
  // Annotate the CommonJS export names for ESM import in node:
172
177
  0 && (module.exports = {
173
178
  PROBE_TASK_ALLOWLIST,
179
+ PROBE_TASK_ALLOWLIST_SUMMARY,
174
180
  TestKitValidationError,
175
181
  resolveDeclaredTestKit,
176
182
  selectProbeTask,
@@ -1,3 +1,4 @@
1
+ import { MCP_SESSION_PROBE_TASK } from "./types.mjs";
1
2
  import { readFileSync, realpathSync, statSync } from "node:fs";
2
3
  import { join, resolve, sep } from "node:path";
3
4
  import { parse } from "yaml";
@@ -12,11 +13,14 @@ const PROBE_TASK_ALLOWLIST = Object.freeze([
12
13
  "list_content_standards",
13
14
  "list_accounts"
14
15
  ]);
15
- function selectProbeTask(preferred, advertisedTools) {
16
+ const PROBE_TASK_ALLOWLIST_SUMMARY = PROBE_TASK_ALLOWLIST.join(", ");
17
+ function selectProbeTask(preferred, advertisedTools, options = {}) {
16
18
  if (!advertisedTools) return preferred;
17
19
  const advertised = new Set(advertisedTools);
18
20
  if (preferred && PROBE_TASK_ALLOWLIST.includes(preferred) && advertised.has(preferred)) return preferred;
19
- return PROBE_TASK_ALLOWLIST.find((task) => advertised.has(task));
21
+ const advertisedProbe = PROBE_TASK_ALLOWLIST.find((task) => advertised.has(task));
22
+ if (advertisedProbe !== void 0) return advertisedProbe;
23
+ return options.protocol === "mcp" ? MCP_SESSION_PROBE_TASK : void 0;
20
24
  }
21
25
  class TestKitValidationError extends Error {
22
26
  field;
@@ -143,6 +147,7 @@ function resolveDeclaredTestKit(storyboard, options) {
143
147
  }
144
148
  export {
145
149
  PROBE_TASK_ALLOWLIST,
150
+ PROBE_TASK_ALLOWLIST_SUMMARY,
146
151
  TestKitValidationError,
147
152
  resolveDeclaredTestKit,
148
153
  selectProbeTask,