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

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 (657) hide show
  1. package/README.md +2 -0
  2. package/bin/adcp-storyboard-summary.js +286 -0
  3. package/bin/adcp.js +221 -10
  4. package/dist/lib/conformance/schemaLoader.d.mts +1 -1
  5. package/dist/lib/conformance/schemaLoader.d.ts +1 -1
  6. package/dist/lib/core/AgentClient.d.mts +10 -4
  7. package/dist/lib/core/AgentClient.d.ts +10 -4
  8. package/dist/lib/core/AgentClient.js +9 -0
  9. package/dist/lib/core/AgentClient.mjs +9 -0
  10. package/dist/lib/core/AsyncHandler.d.mts +3 -0
  11. package/dist/lib/core/AsyncHandler.d.ts +3 -0
  12. package/dist/lib/core/AsyncHandler.js +3 -0
  13. package/dist/lib/core/AsyncHandler.mjs +3 -0
  14. package/dist/lib/core/ConversationTypes.d.mts +29 -0
  15. package/dist/lib/core/ConversationTypes.d.ts +29 -0
  16. package/dist/lib/core/SingleAgentClient.d.mts +9 -2
  17. package/dist/lib/core/SingleAgentClient.d.ts +9 -2
  18. package/dist/lib/core/SingleAgentClient.js +66 -18
  19. package/dist/lib/core/SingleAgentClient.mjs +68 -18
  20. package/dist/lib/core/TaskExecutor.d.mts +13 -1
  21. package/dist/lib/core/TaskExecutor.d.ts +13 -1
  22. package/dist/lib/core/TaskExecutor.js +216 -18
  23. package/dist/lib/core/TaskExecutor.mjs +216 -19
  24. package/dist/lib/discovery/adagents-redirects.d.mts +5 -1
  25. package/dist/lib/discovery/adagents-redirects.d.ts +5 -1
  26. package/dist/lib/discovery/adagents-redirects.js +10 -3
  27. package/dist/lib/discovery/adagents-redirects.mjs +10 -3
  28. package/dist/lib/discovery/types.d.mts +42 -0
  29. package/dist/lib/discovery/types.d.ts +42 -0
  30. package/dist/lib/index.d.mts +8 -3
  31. package/dist/lib/index.d.ts +8 -3
  32. package/dist/lib/index.js +12 -1
  33. package/dist/lib/index.mjs +11 -1
  34. package/dist/lib/media-buy/action-assessment.d.mts +77 -0
  35. package/dist/lib/media-buy/action-assessment.d.ts +77 -0
  36. package/dist/lib/media-buy/action-assessment.js +300 -0
  37. package/dist/lib/media-buy/action-assessment.mjs +284 -0
  38. package/dist/lib/media-buy/action-constraints.d.mts +9 -0
  39. package/dist/lib/media-buy/action-constraints.d.ts +9 -0
  40. package/dist/lib/media-buy/action-constraints.js +170 -0
  41. package/dist/lib/media-buy/action-constraints.mjs +146 -0
  42. package/dist/lib/media-buy/action-contracts.d.mts +40 -0
  43. package/dist/lib/media-buy/action-contracts.d.ts +40 -0
  44. package/dist/lib/media-buy/action-contracts.js +304 -0
  45. package/dist/lib/media-buy/action-contracts.mjs +267 -0
  46. package/dist/lib/media-buy/action-metadata.generated.d.mts +37 -0
  47. package/dist/lib/media-buy/action-metadata.generated.d.ts +37 -0
  48. package/dist/lib/media-buy/action-metadata.generated.js +128 -0
  49. package/dist/lib/media-buy/action-metadata.generated.mjs +101 -0
  50. package/dist/lib/media-buy/action-types.d.mts +106 -0
  51. package/dist/lib/media-buy/action-types.d.ts +106 -0
  52. package/dist/lib/{types/v3-1-beta/tools.generated.js → media-buy/action-types.js} +2 -2
  53. package/dist/lib/media-buy/actions.d.mts +6 -0
  54. package/dist/lib/media-buy/actions.d.ts +6 -0
  55. package/dist/lib/media-buy/actions.js +38 -0
  56. package/dist/lib/media-buy/actions.mjs +9 -0
  57. package/dist/lib/media-buy/available-actions.d.mts +2 -1
  58. package/dist/lib/media-buy/available-actions.d.ts +2 -1
  59. package/dist/lib/media-buy/available-actions.js +4 -3
  60. package/dist/lib/media-buy/available-actions.mjs +4 -3
  61. package/dist/lib/media-buy/compatibility.js +3 -0
  62. package/dist/lib/media-buy/compatibility.mjs +3 -0
  63. package/dist/lib/media-buy/index.d.mts +4 -0
  64. package/dist/lib/media-buy/index.d.ts +4 -0
  65. package/dist/lib/media-buy/index.js +3 -1
  66. package/dist/lib/media-buy/index.mjs +1 -0
  67. package/dist/lib/media-buy/legacy-action-ids.d.mts +1 -0
  68. package/dist/lib/media-buy/legacy-action-ids.d.ts +1 -0
  69. package/dist/lib/media-buy/legacy-action-ids.js +50 -0
  70. package/dist/lib/media-buy/legacy-action-ids.mjs +26 -0
  71. package/dist/lib/media-buy/mutations.d.mts +70 -0
  72. package/dist/lib/media-buy/mutations.d.ts +70 -0
  73. package/dist/lib/media-buy/mutations.js +525 -0
  74. package/dist/lib/media-buy/mutations.mjs +498 -0
  75. package/dist/lib/media-buy/preflight.d.mts +20 -69
  76. package/dist/lib/media-buy/preflight.d.ts +20 -69
  77. package/dist/lib/media-buy/preflight.js +100 -336
  78. package/dist/lib/media-buy/preflight.mjs +111 -333
  79. package/dist/lib/media-buy/targeting-input.d.mts +7 -4
  80. package/dist/lib/media-buy/targeting-input.d.ts +7 -4
  81. package/dist/lib/media-buy/types.d.mts +55 -7
  82. package/dist/lib/media-buy/types.d.ts +55 -7
  83. package/dist/lib/net/ssrf-fetch.js +47 -21
  84. package/dist/lib/net/ssrf-fetch.mjs +47 -21
  85. package/dist/lib/protocols/rawResponseCapture.d.mts +12 -0
  86. package/dist/lib/protocols/rawResponseCapture.d.ts +12 -0
  87. package/dist/lib/protocols/rawResponseCapture.js +33 -3
  88. package/dist/lib/protocols/rawResponseCapture.mjs +32 -3
  89. package/dist/lib/registry/index.d.mts +3 -0
  90. package/dist/lib/registry/index.d.ts +3 -0
  91. package/dist/lib/registry/index.js +8 -0
  92. package/dist/lib/registry/index.mjs +8 -0
  93. package/dist/lib/registry/types.d.mts +2 -1
  94. package/dist/lib/registry/types.d.ts +2 -1
  95. package/dist/lib/registry/types.generated.d.mts +377 -9
  96. package/dist/lib/registry/types.generated.d.ts +377 -9
  97. package/dist/lib/reporting/evidence.d.mts +1 -0
  98. package/dist/lib/reporting/evidence.d.ts +1 -0
  99. package/dist/lib/reporting/evidence.js +32 -3
  100. package/dist/lib/reporting/evidence.mjs +31 -3
  101. package/dist/lib/reporting/ledger/handler.d.mts +51 -1
  102. package/dist/lib/reporting/ledger/handler.d.ts +51 -1
  103. package/dist/lib/reporting/ledger/handler.js +306 -38
  104. package/dist/lib/reporting/ledger/handler.mjs +304 -37
  105. package/dist/lib/reporting/ledger/health.d.mts +12 -0
  106. package/dist/lib/reporting/ledger/health.d.ts +12 -0
  107. package/dist/lib/reporting/ledger/health.js +15 -2
  108. package/dist/lib/reporting/ledger/health.mjs +13 -1
  109. package/dist/lib/reporting/ledger/index.d.mts +3 -0
  110. package/dist/lib/reporting/ledger/index.d.ts +3 -0
  111. package/dist/lib/reporting/ledger/index.js +7 -1
  112. package/dist/lib/reporting/ledger/index.mjs +3 -0
  113. package/dist/lib/reporting/ledger/lifecycle.d.mts +31 -4
  114. package/dist/lib/reporting/ledger/lifecycle.d.ts +31 -4
  115. package/dist/lib/reporting/ledger/lifecycle.js +244 -37
  116. package/dist/lib/reporting/ledger/lifecycle.mjs +244 -37
  117. package/dist/lib/reporting/ledger/managed-postgres.d.mts +231 -0
  118. package/dist/lib/reporting/ledger/managed-postgres.d.ts +231 -0
  119. package/dist/lib/reporting/ledger/managed-postgres.js +1797 -0
  120. package/dist/lib/reporting/ledger/managed-postgres.mjs +1776 -0
  121. package/dist/lib/reporting/ledger/managed.d.mts +355 -0
  122. package/dist/lib/reporting/ledger/managed.d.ts +355 -0
  123. package/dist/lib/reporting/ledger/managed.js +661 -0
  124. package/dist/lib/reporting/ledger/managed.mjs +633 -0
  125. package/dist/lib/reporting/ledger/notification-activity.d.mts +222 -0
  126. package/dist/lib/reporting/ledger/notification-activity.d.ts +222 -0
  127. package/dist/lib/reporting/ledger/notification-activity.js +1139 -0
  128. package/dist/lib/reporting/ledger/notification-activity.mjs +1110 -0
  129. package/dist/lib/reporting/ledger/postgres.d.mts +161 -1
  130. package/dist/lib/reporting/ledger/postgres.d.ts +161 -1
  131. package/dist/lib/reporting/ledger/postgres.js +1153 -21
  132. package/dist/lib/reporting/ledger/postgres.mjs +1152 -21
  133. package/dist/lib/reporting/ledger/producer.d.mts +8 -0
  134. package/dist/lib/reporting/ledger/producer.d.ts +8 -0
  135. package/dist/lib/reporting/ledger/producer.js +146 -52
  136. package/dist/lib/reporting/ledger/producer.mjs +146 -51
  137. package/dist/lib/reporting/ledger/types.d.mts +358 -1
  138. package/dist/lib/reporting/ledger/types.d.ts +358 -1
  139. package/dist/lib/reporting/ledger/types.js +3 -0
  140. package/dist/lib/reporting/ledger/types.mjs +2 -0
  141. package/dist/lib/reporting/service/conformance.d.mts +35 -0
  142. package/dist/lib/reporting/service/conformance.d.ts +35 -0
  143. package/dist/lib/reporting/service/conformance.js +89 -0
  144. package/dist/lib/reporting/service/conformance.mjs +68 -0
  145. package/dist/lib/reporting/service/index.d.mts +182 -0
  146. package/dist/lib/reporting/service/index.d.ts +182 -0
  147. package/dist/lib/reporting/service/index.js +793 -0
  148. package/dist/lib/reporting/service/index.mjs +787 -0
  149. package/dist/lib/reporting/source/index.d.mts +2 -1
  150. package/dist/lib/reporting/source/index.d.ts +2 -1
  151. package/dist/lib/reporting/source/index.js +16 -3
  152. package/dist/lib/reporting/source/index.mjs +12 -1
  153. package/dist/lib/reporting/source/inline.d.mts +88 -1
  154. package/dist/lib/reporting/source/inline.d.ts +88 -1
  155. package/dist/lib/reporting/source/inline.js +1161 -163
  156. package/dist/lib/reporting/source/inline.mjs +1166 -163
  157. package/dist/lib/reporting/source/manifest.js +12 -7
  158. package/dist/lib/reporting/source/manifest.mjs +12 -7
  159. package/dist/lib/reporting/source/source.d.mts +26 -0
  160. package/dist/lib/reporting/source/source.d.ts +26 -0
  161. package/dist/lib/reporting/source/source.js +71 -2
  162. package/dist/lib/reporting/source/source.mjs +65 -1
  163. package/dist/lib/schemas-data/v2.5/_provenance.json +1 -1
  164. package/dist/lib/server/create-adcp-server.d.mts +18 -0
  165. package/dist/lib/server/create-adcp-server.d.ts +18 -0
  166. package/dist/lib/server/create-adcp-server.js +52 -2
  167. package/dist/lib/server/create-adcp-server.mjs +52 -2
  168. package/dist/lib/server/decisioning/account.d.mts +1 -1
  169. package/dist/lib/server/decisioning/account.d.ts +1 -1
  170. package/dist/lib/server/decisioning/index.d.mts +1 -0
  171. package/dist/lib/server/decisioning/index.d.ts +1 -0
  172. package/dist/lib/server/decisioning/platform.d.mts +3 -0
  173. package/dist/lib/server/decisioning/platform.d.ts +3 -0
  174. package/dist/lib/server/decisioning/runtime/from-platform.js +88 -10
  175. package/dist/lib/server/decisioning/runtime/from-platform.mjs +88 -10
  176. package/dist/lib/server/decisioning/specialisms/reporting.d.mts +38 -0
  177. package/dist/lib/server/decisioning/specialisms/reporting.d.ts +38 -0
  178. package/dist/lib/{types/v3-1-beta/index.js → server/decisioning/specialisms/reporting.js} +2 -8
  179. package/dist/lib/server/decisioning/specialisms/reporting.mjs +0 -0
  180. package/dist/lib/server/index.d.mts +4 -2
  181. package/dist/lib/server/index.d.ts +4 -2
  182. package/dist/lib/server/index.js +5 -0
  183. package/dist/lib/server/index.mjs +4 -0
  184. package/dist/lib/server/media-buy-action-resolver.d.mts +63 -0
  185. package/dist/lib/server/media-buy-action-resolver.d.ts +63 -0
  186. package/dist/lib/server/media-buy-action-resolver.js +297 -0
  187. package/dist/lib/server/media-buy-action-resolver.mjs +285 -0
  188. package/dist/lib/server/media-buy-actions.d.mts +7 -8
  189. package/dist/lib/server/media-buy-actions.d.ts +7 -8
  190. package/dist/lib/server/media-buy-actions.js +57 -14
  191. package/dist/lib/server/media-buy-actions.mjs +63 -14
  192. package/dist/lib/server/notification-subscriptions/index.d.mts +2 -2
  193. package/dist/lib/server/notification-subscriptions/index.d.ts +2 -2
  194. package/dist/lib/server/notification-subscriptions/index.js +2 -0
  195. package/dist/lib/server/notification-subscriptions/index.mjs +2 -0
  196. package/dist/lib/server/notification-subscriptions/postgres-runtime.d.mts +3 -1
  197. package/dist/lib/server/notification-subscriptions/postgres-runtime.d.ts +3 -1
  198. package/dist/lib/server/notification-subscriptions/postgres-runtime.js +1 -0
  199. package/dist/lib/server/notification-subscriptions/postgres-runtime.mjs +1 -0
  200. package/dist/lib/server/notification-subscriptions/runtime.d.mts +12 -1
  201. package/dist/lib/server/notification-subscriptions/runtime.d.ts +12 -1
  202. package/dist/lib/server/notification-subscriptions/runtime.js +102 -16
  203. package/dist/lib/server/notification-subscriptions/runtime.mjs +101 -16
  204. package/dist/lib/server/notification-subscriptions/types.d.mts +104 -1
  205. package/dist/lib/server/notification-subscriptions/types.d.ts +104 -1
  206. package/dist/lib/server/webhook-emitter.d.mts +40 -5
  207. package/dist/lib/server/webhook-emitter.d.ts +40 -5
  208. package/dist/lib/server/webhook-emitter.js +23 -12
  209. package/dist/lib/server/webhook-emitter.mjs +23 -12
  210. package/dist/lib/storage/interfaces.d.mts +14 -2
  211. package/dist/lib/storage/interfaces.d.ts +14 -2
  212. package/dist/lib/supply-path/evaluate.d.mts +17 -0
  213. package/dist/lib/supply-path/evaluate.d.ts +17 -0
  214. package/dist/lib/supply-path/evaluate.js +436 -0
  215. package/dist/lib/supply-path/evaluate.mjs +407 -0
  216. package/dist/lib/supply-path/fetch-evidence.d.mts +36 -0
  217. package/dist/lib/supply-path/fetch-evidence.d.ts +36 -0
  218. package/dist/lib/supply-path/fetch-evidence.js +293 -0
  219. package/dist/lib/supply-path/fetch-evidence.mjs +268 -0
  220. package/dist/lib/supply-path/index.d.mts +6 -0
  221. package/dist/lib/supply-path/index.d.ts +6 -0
  222. package/dist/lib/supply-path/index.js +49 -0
  223. package/dist/lib/supply-path/index.mjs +23 -0
  224. package/dist/lib/supply-path/products.d.mts +41 -0
  225. package/dist/lib/supply-path/products.d.ts +41 -0
  226. package/dist/lib/supply-path/products.js +228 -0
  227. package/dist/lib/supply-path/products.mjs +204 -0
  228. package/dist/lib/supply-path/revocations.d.mts +55 -0
  229. package/dist/lib/supply-path/revocations.d.ts +55 -0
  230. package/dist/lib/supply-path/revocations.js +127 -0
  231. package/dist/lib/supply-path/revocations.mjs +99 -0
  232. package/dist/lib/supply-path/types.d.mts +168 -0
  233. package/dist/lib/supply-path/types.d.ts +168 -0
  234. package/dist/lib/supply-path/types.js +16 -0
  235. package/dist/lib/supply-path/types.mjs +0 -0
  236. package/dist/lib/supply-path/validation.d.mts +10 -0
  237. package/dist/lib/supply-path/validation.d.ts +10 -0
  238. package/dist/lib/supply-path/validation.js +152 -0
  239. package/dist/lib/supply-path/validation.mjs +122 -0
  240. package/dist/lib/supply-path/verify.d.mts +25 -0
  241. package/dist/lib/supply-path/verify.d.ts +25 -0
  242. package/dist/lib/supply-path/verify.js +218 -0
  243. package/dist/lib/supply-path/verify.mjs +203 -0
  244. package/dist/lib/testing/compliance/comply.d.mts +9 -3
  245. package/dist/lib/testing/compliance/comply.d.ts +9 -3
  246. package/dist/lib/testing/compliance/comply.js +158 -3
  247. package/dist/lib/testing/compliance/comply.mjs +159 -4
  248. package/dist/lib/testing/compliance/storyboard-tracks.js +7 -5
  249. package/dist/lib/testing/compliance/storyboard-tracks.mjs +7 -5
  250. package/dist/lib/testing/compliance/summary.js +10 -1
  251. package/dist/lib/testing/compliance/summary.mjs +10 -1
  252. package/dist/lib/testing/index.d.mts +1 -1
  253. package/dist/lib/testing/index.d.ts +1 -1
  254. package/dist/lib/testing/index.js +2 -0
  255. package/dist/lib/testing/index.mjs +3 -1
  256. package/dist/lib/testing/storyboard/agent-routing.d.mts +12 -43
  257. package/dist/lib/testing/storyboard/agent-routing.d.ts +12 -43
  258. package/dist/lib/testing/storyboard/agent-routing.js +75 -13
  259. package/dist/lib/testing/storyboard/agent-routing.mjs +70 -12
  260. package/dist/lib/testing/storyboard/index.d.mts +1 -0
  261. package/dist/lib/testing/storyboard/index.d.ts +1 -0
  262. package/dist/lib/testing/storyboard/index.js +3 -0
  263. package/dist/lib/testing/storyboard/index.mjs +2 -0
  264. package/dist/lib/testing/storyboard/junit.d.mts +1 -1
  265. package/dist/lib/testing/storyboard/junit.d.ts +1 -1
  266. package/dist/lib/testing/storyboard/junit.js +21 -2
  267. package/dist/lib/testing/storyboard/junit.mjs +21 -2
  268. package/dist/lib/testing/storyboard/probes.d.mts +130 -0
  269. package/dist/lib/testing/storyboard/probes.d.ts +130 -0
  270. package/dist/lib/testing/storyboard/probes.js +682 -10
  271. package/dist/lib/testing/storyboard/probes.mjs +683 -3
  272. package/dist/lib/testing/storyboard/request-signing/builder.d.mts +16 -5
  273. package/dist/lib/testing/storyboard/request-signing/builder.d.ts +16 -5
  274. package/dist/lib/testing/storyboard/request-signing/grader.d.mts +44 -1
  275. package/dist/lib/testing/storyboard/request-signing/grader.d.ts +44 -1
  276. package/dist/lib/testing/storyboard/request-signing/grader.js +65 -31
  277. package/dist/lib/testing/storyboard/request-signing/grader.mjs +62 -30
  278. package/dist/lib/testing/storyboard/request-signing/probe-dispatch.d.mts +86 -11
  279. package/dist/lib/testing/storyboard/request-signing/probe-dispatch.d.ts +86 -11
  280. package/dist/lib/testing/storyboard/request-signing/probe-dispatch.js +119 -25
  281. package/dist/lib/testing/storyboard/request-signing/probe-dispatch.mjs +117 -26
  282. package/dist/lib/testing/storyboard/request-signing/synthesize.js +22 -2
  283. package/dist/lib/testing/storyboard/request-signing/synthesize.mjs +22 -2
  284. package/dist/lib/testing/storyboard/runner.d.mts +103 -0
  285. package/dist/lib/testing/storyboard/runner.d.ts +103 -0
  286. package/dist/lib/testing/storyboard/runner.js +1090 -268
  287. package/dist/lib/testing/storyboard/runner.mjs +1096 -261
  288. package/dist/lib/testing/storyboard/seeding.d.mts +4 -1
  289. package/dist/lib/testing/storyboard/seeding.d.ts +4 -1
  290. package/dist/lib/testing/storyboard/seeding.js +55 -24
  291. package/dist/lib/testing/storyboard/seeding.mjs +55 -24
  292. package/dist/lib/testing/storyboard/test-kit.d.mts +37 -3
  293. package/dist/lib/testing/storyboard/test-kit.d.ts +37 -3
  294. package/dist/lib/testing/storyboard/test-kit.js +8 -2
  295. package/dist/lib/testing/storyboard/test-kit.mjs +7 -2
  296. package/dist/lib/testing/storyboard/types.d.mts +132 -10
  297. package/dist/lib/testing/storyboard/types.d.ts +132 -10
  298. package/dist/lib/testing/storyboard/types.js +17 -0
  299. package/dist/lib/testing/storyboard/types.mjs +16 -0
  300. package/dist/lib/testing/storyboard/validations.d.mts +1 -1
  301. package/dist/lib/testing/storyboard/validations.d.ts +1 -1
  302. package/dist/lib/testing/storyboard/validations.js +16 -0
  303. package/dist/lib/testing/storyboard/validations.mjs +16 -0
  304. package/dist/lib/testing/test-controller.d.mts +1 -1
  305. package/dist/lib/testing/test-controller.d.ts +1 -1
  306. package/dist/lib/types/buy-products.d.ts +71 -6
  307. package/dist/lib/types/control-media-buy.d.ts +25 -11
  308. package/dist/lib/types/core.generated.d.mts +69 -10
  309. package/dist/lib/types/core.generated.d.ts +69 -10
  310. package/dist/lib/types/create-media-buy.d.ts +71 -6
  311. package/dist/lib/types/forward-compat-error-codes.d.mts +7 -6
  312. package/dist/lib/types/forward-compat-error-codes.d.ts +7 -6
  313. package/dist/lib/types/index.d.mts +2 -2
  314. package/dist/lib/types/index.d.ts +2 -2
  315. package/dist/lib/types/schemas.generated.d.ts +8040 -8116
  316. package/dist/lib/types/schemas.generated.js +1074 -309
  317. package/dist/lib/types/schemas.generated.mjs +1068 -309
  318. package/dist/lib/types/tools.generated.d.mts +65 -6
  319. package/dist/lib/types/tools.generated.d.ts +65 -6
  320. package/dist/lib/types/update-media-buy.d.ts +71 -6
  321. package/dist/lib/utils/redact-secrets.d.mts +1 -1
  322. package/dist/lib/utils/redact-secrets.d.ts +1 -1
  323. package/dist/lib/utils/redact-secrets.js +1 -1
  324. package/dist/lib/utils/redact-secrets.mjs +1 -1
  325. package/dist/lib/v2/projection/cache-versions.d.mts +0 -1
  326. package/dist/lib/v2/projection/cache-versions.d.ts +0 -1
  327. package/dist/lib/v2/projection/cache-versions.js +1 -15
  328. package/dist/lib/v2/projection/cache-versions.mjs +1 -14
  329. package/dist/lib/v2/projection/canonical-properties.js +2 -2
  330. package/dist/lib/v2/projection/canonical-properties.mjs +3 -3
  331. package/dist/lib/v2/projection/creative-delivery.d.mts +1 -1
  332. package/dist/lib/v2/projection/creative-delivery.d.ts +1 -1
  333. package/dist/lib/v2/projection/registry.d.mts +1 -1
  334. package/dist/lib/v2/projection/registry.d.ts +1 -1
  335. package/dist/lib/v2/projection/registry.js +2 -2
  336. package/dist/lib/v2/projection/registry.mjs +3 -3
  337. package/dist/lib/validation/schema-loader.js +7 -5
  338. package/dist/lib/validation/schema-loader.mjs +7 -5
  339. package/dist/lib/version.d.mts +5 -5
  340. package/dist/lib/version.d.ts +5 -5
  341. package/dist/lib/version.js +3 -8
  342. package/dist/lib/version.mjs +3 -8
  343. package/dist/lib/wholesale-feed-sync/index.d.mts +1 -0
  344. package/dist/lib/wholesale-feed-sync/index.d.ts +1 -0
  345. package/dist/lib/wholesale-feed-sync/protocol-types.d.mts +42 -0
  346. package/dist/lib/wholesale-feed-sync/protocol-types.d.ts +42 -0
  347. package/dist/lib/wholesale-feed-sync/protocol-types.js +16 -0
  348. package/dist/lib/wholesale-feed-sync/protocol-types.mjs +0 -0
  349. package/dist/lib/wholesale-feed-sync/sync.d.mts +6 -6
  350. package/dist/lib/wholesale-feed-sync/sync.d.ts +6 -6
  351. package/dist/lib/wholesale-feed-sync/sync.js +3 -1
  352. package/dist/lib/wholesale-feed-sync/sync.mjs +3 -1
  353. package/dist/lib/wholesale-feed-sync/types.d.mts +15 -14
  354. package/dist/lib/wholesale-feed-sync/types.d.ts +15 -14
  355. package/dist/lib/wholesale-feed-sync/webhook-notification.d.mts +7 -5
  356. package/dist/lib/wholesale-feed-sync/webhook-notification.d.ts +7 -5
  357. package/dist/lib/wholesale-feed-sync/webhook-notification.js +45 -0
  358. package/dist/lib/wholesale-feed-sync/webhook-notification.mjs +44 -0
  359. package/docs/CLI.md +1 -1
  360. package/docs/TYPE-SUMMARY.md +118 -4
  361. package/docs/guides/ASYNC-API-REFERENCE.md +62 -1
  362. package/docs/guides/ASYNC-DEVELOPER-GUIDE.md +25 -0
  363. package/docs/guides/ASYNC-DOCUMENTATION-INDEX.md +3 -0
  364. package/docs/guides/BUYER-QUICKSTART-3.2.md +5 -0
  365. package/docs/guides/DURABLE-BUYER-WRITES.md +337 -0
  366. package/docs/guides/EXISTING-PLATFORM.md +35 -0
  367. package/docs/guides/MEDIA-BUY-3.2-COMPATIBILITY.md +7 -3
  368. package/docs/guides/MEDIA-BUY-ACTION-ASSESSMENT.md +300 -0
  369. package/docs/guides/REPORTING-LEDGER.md +654 -3
  370. package/docs/guides/REPORTING-SOURCE-EXECUTOR.md +63 -1
  371. package/docs/guides/SELLER-QUICKSTART-3.2.md +2 -0
  372. package/docs/guides/SUPPLY-PATH-VERIFICATION.md +101 -0
  373. package/docs/guides/VALIDATE-YOUR-AGENT.md +35 -0
  374. package/docs/guides/idempotency-crash-recovery.md +4 -0
  375. package/docs/llms.txt +4 -2
  376. package/docs/migration-14.x-rc-worksheet.md +5 -5
  377. package/docs/migration-7.9-to-7.10.md +7 -5
  378. package/examples/README.md +19 -0
  379. package/examples/durable-buyer-writes/caller.ts +745 -0
  380. package/examples/durable-buyer-writes/worker.ts +240 -0
  381. package/examples/reliable-reporting-service/README.md +100 -0
  382. package/examples/seller-3.2-starter.ts +7 -8
  383. package/examples/supply-path-verification.ts +29 -0
  384. package/examples/targeting-input-existing-platform.ts +153 -0
  385. package/package.json +42 -29
  386. package/skills/build-seller-agent/specialisms/signed-requests.md +11 -1
  387. package/skills/cross-cutting.md +28 -11
  388. package/compliance/cache/3.1.0-beta.7/domains/brand/index.yaml +0 -160
  389. package/compliance/cache/3.1.0-beta.7/domains/brand/scenarios/distributed_brand_resolution.yaml +0 -415
  390. package/compliance/cache/3.1.0-beta.7/domains/brand/scenarios/single_side_trust_extension.yaml +0 -454
  391. package/compliance/cache/3.1.0-beta.7/domains/creative/index.yaml +0 -339
  392. package/compliance/cache/3.1.0-beta.7/domains/creative/scenarios/billing_out_of_band.yaml +0 -153
  393. package/compliance/cache/3.1.0-beta.7/domains/creative/scenarios/creative_lifecycle_webhooks.yaml +0 -389
  394. package/compliance/cache/3.1.0-beta.7/domains/creative/scenarios/native_in_feed.yaml +0 -543
  395. package/compliance/cache/3.1.0-beta.7/domains/governance/index.yaml +0 -682
  396. package/compliance/cache/3.1.0-beta.7/domains/media-buy/index.yaml +0 -781
  397. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/audience_buy_flow.yaml +0 -380
  398. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/available_actions.yaml +0 -565
  399. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/billing_finality_delivery.yaml +0 -354
  400. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/canonical_formats.yaml +0 -711
  401. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/clicks_buy_flow.yaml +0 -264
  402. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/completed_views_buy_flow.yaml +0 -344
  403. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/create_media_buy_async.yaml +0 -234
  404. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/creative_fate_after_cancellation.yaml +0 -419
  405. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/creative_reception.yaml +0 -247
  406. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/delivery_reporting.yaml +0 -357
  407. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/dependency_impairment.yaml +0 -633
  408. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/dependency_impairment_cardinality.yaml +0 -800
  409. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/event_dedup_flow.yaml +0 -399
  410. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/frequency_cap_enforcement.yaml +0 -309
  411. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/governance_approved.yaml +0 -214
  412. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/governance_conditions.yaml +0 -199
  413. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/governance_denied.yaml +0 -204
  414. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/governance_denied_recovery.yaml +0 -252
  415. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/invalid_transitions.yaml +0 -289
  416. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/inventory_list_no_match.yaml +0 -148
  417. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/inventory_list_targeting.yaml +0 -276
  418. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/measurement_accountability.yaml +0 -244
  419. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/measurement_terms_rejected.yaml +0 -203
  420. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/pending_creatives_to_start.yaml +0 -274
  421. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/per_creative_conversion_attribution.yaml +0 -500
  422. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/performance_buy_flow.yaml +0 -428
  423. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/performance_buy_flow_roas.yaml +0 -470
  424. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/product_signal_targeting.yaml +0 -373
  425. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/proposal_finalize.yaml +0 -399
  426. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/proposal_finalize_asap_timing.yaml +0 -264
  427. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/proposal_not_found_errors.yaml +0 -257
  428. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/provenance_audit_observation.yaml +0 -333
  429. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/provenance_enforcement.yaml +0 -517
  430. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/provenance_truth_of_claim.yaml +0 -294
  431. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/reach_buy_flow.yaml +0 -823
  432. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/refine_finalize_exclusivity.yaml +0 -360
  433. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/refine_products.yaml +0 -148
  434. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/vendor_metric_accountability.yaml +0 -293
  435. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/vendor_metric_catalog_precondition.yaml +0 -307
  436. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/vendor_metric_optimization_flow.yaml +0 -576
  437. package/compliance/cache/3.1.0-beta.7/domains/media-buy/state-machine.yaml +0 -442
  438. package/compliance/cache/3.1.0-beta.7/domains/signals/index.yaml +0 -266
  439. package/compliance/cache/3.1.0-beta.7/domains/sponsored-intelligence/index.yaml +0 -256
  440. package/compliance/cache/3.1.0-beta.7/index.json +0 -356
  441. package/compliance/cache/3.1.0-beta.7/protocols/brand/index.yaml +0 -160
  442. package/compliance/cache/3.1.0-beta.7/protocols/brand/scenarios/distributed_brand_resolution.yaml +0 -415
  443. package/compliance/cache/3.1.0-beta.7/protocols/brand/scenarios/single_side_trust_extension.yaml +0 -454
  444. package/compliance/cache/3.1.0-beta.7/protocols/creative/index.yaml +0 -339
  445. package/compliance/cache/3.1.0-beta.7/protocols/creative/scenarios/billing_out_of_band.yaml +0 -153
  446. package/compliance/cache/3.1.0-beta.7/protocols/creative/scenarios/creative_lifecycle_webhooks.yaml +0 -389
  447. package/compliance/cache/3.1.0-beta.7/protocols/creative/scenarios/native_in_feed.yaml +0 -543
  448. package/compliance/cache/3.1.0-beta.7/protocols/governance/index.yaml +0 -682
  449. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/index.yaml +0 -781
  450. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/audience_buy_flow.yaml +0 -380
  451. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/available_actions.yaml +0 -565
  452. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/billing_finality_delivery.yaml +0 -354
  453. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/canonical_formats.yaml +0 -711
  454. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/clicks_buy_flow.yaml +0 -264
  455. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/completed_views_buy_flow.yaml +0 -344
  456. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/create_media_buy_async.yaml +0 -234
  457. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/creative_fate_after_cancellation.yaml +0 -419
  458. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/creative_reception.yaml +0 -247
  459. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/delivery_reporting.yaml +0 -357
  460. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/dependency_impairment.yaml +0 -633
  461. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/dependency_impairment_cardinality.yaml +0 -800
  462. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/event_dedup_flow.yaml +0 -399
  463. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/frequency_cap_enforcement.yaml +0 -309
  464. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/governance_approved.yaml +0 -214
  465. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/governance_conditions.yaml +0 -199
  466. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/governance_denied.yaml +0 -204
  467. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/governance_denied_recovery.yaml +0 -252
  468. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/invalid_transitions.yaml +0 -289
  469. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/inventory_list_no_match.yaml +0 -148
  470. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/inventory_list_targeting.yaml +0 -276
  471. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/measurement_accountability.yaml +0 -244
  472. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/measurement_terms_rejected.yaml +0 -203
  473. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/pending_creatives_to_start.yaml +0 -274
  474. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/per_creative_conversion_attribution.yaml +0 -500
  475. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/performance_buy_flow.yaml +0 -428
  476. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/performance_buy_flow_roas.yaml +0 -470
  477. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/product_signal_targeting.yaml +0 -373
  478. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/proposal_finalize.yaml +0 -399
  479. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/proposal_finalize_asap_timing.yaml +0 -264
  480. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/proposal_not_found_errors.yaml +0 -257
  481. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/provenance_audit_observation.yaml +0 -333
  482. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/provenance_enforcement.yaml +0 -517
  483. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/provenance_truth_of_claim.yaml +0 -294
  484. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/reach_buy_flow.yaml +0 -823
  485. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/refine_finalize_exclusivity.yaml +0 -360
  486. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/refine_products.yaml +0 -148
  487. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/vendor_metric_accountability.yaml +0 -293
  488. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/vendor_metric_catalog_precondition.yaml +0 -307
  489. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/vendor_metric_optimization_flow.yaml +0 -576
  490. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/state-machine.yaml +0 -442
  491. package/compliance/cache/3.1.0-beta.7/protocols/signals/index.yaml +0 -266
  492. package/compliance/cache/3.1.0-beta.7/protocols/sponsored-intelligence/index.yaml +0 -256
  493. package/compliance/cache/3.1.0-beta.7/specialisms/audience-sync/index.yaml +0 -313
  494. package/compliance/cache/3.1.0-beta.7/specialisms/brand-rights/index.yaml +0 -350
  495. package/compliance/cache/3.1.0-beta.7/specialisms/brand-rights/scenarios/governance_denied.yaml +0 -226
  496. package/compliance/cache/3.1.0-beta.7/specialisms/collection-lists/index.yaml +0 -359
  497. package/compliance/cache/3.1.0-beta.7/specialisms/content-standards/index.yaml +0 -572
  498. package/compliance/cache/3.1.0-beta.7/specialisms/creative-ad-server/index.yaml +0 -409
  499. package/compliance/cache/3.1.0-beta.7/specialisms/creative-generative/generative-seller.yaml +0 -807
  500. package/compliance/cache/3.1.0-beta.7/specialisms/creative-generative/index.yaml +0 -758
  501. package/compliance/cache/3.1.0-beta.7/specialisms/creative-template/index.yaml +0 -510
  502. package/compliance/cache/3.1.0-beta.7/specialisms/governance-aware-seller/index.yaml +0 -143
  503. package/compliance/cache/3.1.0-beta.7/specialisms/governance-aware-seller/scenarios/governance_multi_agent_rejected.yaml +0 -117
  504. package/compliance/cache/3.1.0-beta.7/specialisms/governance-delivery-monitor/index.yaml +0 -441
  505. package/compliance/cache/3.1.0-beta.7/specialisms/governance-spend-authority/denied.yaml +0 -221
  506. package/compliance/cache/3.1.0-beta.7/specialisms/governance-spend-authority/index.yaml +0 -330
  507. package/compliance/cache/3.1.0-beta.7/specialisms/property-lists/index.yaml +0 -482
  508. package/compliance/cache/3.1.0-beta.7/specialisms/sales-broadcast-tv/index.yaml +0 -738
  509. package/compliance/cache/3.1.0-beta.7/specialisms/sales-catalog-driven/index.yaml +0 -840
  510. package/compliance/cache/3.1.0-beta.7/specialisms/sales-guaranteed/index.yaml +0 -601
  511. package/compliance/cache/3.1.0-beta.7/specialisms/sales-non-guaranteed/index.yaml +0 -546
  512. package/compliance/cache/3.1.0-beta.7/specialisms/sales-proposal-mode/index.yaml +0 -586
  513. package/compliance/cache/3.1.0-beta.7/specialisms/sales-social/index.yaml +0 -919
  514. package/compliance/cache/3.1.0-beta.7/specialisms/signal-marketplace/index.yaml +0 -424
  515. package/compliance/cache/3.1.0-beta.7/specialisms/signal-marketplace/scenarios/governance_denied.yaml +0 -211
  516. package/compliance/cache/3.1.0-beta.7/specialisms/signal-owned/index.yaml +0 -317
  517. package/compliance/cache/3.1.0-beta.7/specialisms/sponsored-intelligence/index.yaml +0 -59
  518. package/compliance/cache/3.1.0-beta.7/test-kits/acme-outdoor-live.yaml +0 -78
  519. package/compliance/cache/3.1.0-beta.7/test-kits/acme-outdoor.yaml +0 -223
  520. package/compliance/cache/3.1.0-beta.7/test-kits/billing-gate-runner.yaml +0 -115
  521. package/compliance/cache/3.1.0-beta.7/test-kits/bistro-oranje.yaml +0 -126
  522. package/compliance/cache/3.1.0-beta.7/test-kits/distributed-brand-runner.yaml +0 -281
  523. package/compliance/cache/3.1.0-beta.7/test-kits/nova-motors.yaml +0 -262
  524. package/compliance/cache/3.1.0-beta.7/test-kits/osei-natural.yaml +0 -126
  525. package/compliance/cache/3.1.0-beta.7/test-kits/parallel-dispatch-runner.yaml +0 -196
  526. package/compliance/cache/3.1.0-beta.7/test-kits/rate-limit-trip-runner.yaml +0 -172
  527. package/compliance/cache/3.1.0-beta.7/test-kits/signed-requests-runner.yaml +0 -155
  528. package/compliance/cache/3.1.0-beta.7/test-kits/single-side-trust-runner.yaml +0 -294
  529. package/compliance/cache/3.1.0-beta.7/test-kits/substitution-observer-runner.yaml +0 -688
  530. package/compliance/cache/3.1.0-beta.7/test-kits/summit-foods.yaml +0 -125
  531. package/compliance/cache/3.1.0-beta.7/test-kits/webhook-receiver-runner.yaml +0 -265
  532. package/compliance/cache/3.1.0-beta.7/test-vectors/plan-hash/001-minimal-plan.json +0 -43
  533. package/compliance/cache/3.1.0-beta.7/test-vectors/plan-hash/002-full-plan.json +0 -217
  534. package/compliance/cache/3.1.0-beta.7/test-vectors/plan-hash/003-bookkeeping-stripped.json +0 -60
  535. package/compliance/cache/3.1.0-beta.7/test-vectors/plan-hash/004a-human-review-omitted.json +0 -43
  536. package/compliance/cache/3.1.0-beta.7/test-vectors/plan-hash/004b-human-review-explicit-null.json +0 -49
  537. package/compliance/cache/3.1.0-beta.7/test-vectors/plan-hash/005a-policy-categories-order-1.json +0 -53
  538. package/compliance/cache/3.1.0-beta.7/test-vectors/plan-hash/005b-policy-categories-order-2.json +0 -57
  539. package/compliance/cache/3.1.0-beta.7/test-vectors/plan-hash/006a-ext-trace-v1.json +0 -49
  540. package/compliance/cache/3.1.0-beta.7/test-vectors/plan-hash/006b-ext-trace-v2.json +0 -53
  541. package/compliance/cache/3.1.0-beta.7/test-vectors/plan-hash/007-unicode-objectives.json +0 -43
  542. package/compliance/cache/3.1.0-beta.7/test-vectors/plan-hash/008-numeric-canonicalization.json +0 -65
  543. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/README.md +0 -220
  544. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/canonicalization.json +0 -241
  545. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/keys.json +0 -60
  546. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/001-no-signature-header.json +0 -24
  547. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/002-wrong-tag.json +0 -26
  548. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/003-expired-signature.json +0 -26
  549. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/004-window-too-long.json +0 -26
  550. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/005-alg-not-allowed.json +0 -26
  551. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/006-missing-covered-component.json +0 -26
  552. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/007-missing-content-digest.json +0 -26
  553. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/008-unknown-keyid.json +0 -26
  554. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/009-key-ops-missing-verify.json +0 -27
  555. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/010-content-digest-mismatch.json +0 -33
  556. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/011-malformed-header.json +0 -27
  557. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/012-missing-expires-param.json +0 -26
  558. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/013-expires-le-created.json +0 -27
  559. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/014-missing-nonce-param.json +0 -27
  560. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/015-signature-invalid.json +0 -28
  561. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/016-replayed-nonce.json +0 -35
  562. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/017-key-revoked.json +0 -38
  563. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/018-digest-covered-when-forbidden.json +0 -28
  564. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/019-signature-without-signature-input.json +0 -26
  565. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/020-rate-abuse.json +0 -34
  566. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/021-duplicate-signature-input-label.json +0 -31
  567. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/022-multi-valued-content-type.json +0 -31
  568. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/023-multi-valued-content-digest.json +0 -32
  569. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/024-unquoted-string-param.json +0 -31
  570. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/025-jwk-alg-crv-mismatch.json +0 -43
  571. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/026-non-ascii-host.json +0 -31
  572. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/027-webhook-registration-authentication-unsigned.json +0 -25
  573. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/028-unsigned-protocol-method-required.json +0 -26
  574. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/positive/001-basic-post.json +0 -30
  575. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/positive/002-post-with-content-digest.json +0 -31
  576. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/positive/003-es256-post.json +0 -30
  577. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/positive/004-multiple-signature-labels.json +0 -26
  578. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/positive/005-default-port-stripped.json +0 -30
  579. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/positive/006-dot-segment-path.json +0 -30
  580. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/positive/007-query-byte-preserved.json +0 -30
  581. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/positive/008-percent-encoded-path.json +0 -30
  582. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/positive/009-percent-encoded-unreserved-decoded.json +0 -30
  583. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/positive/010-percent-encoded-slash-preserved.json +0 -30
  584. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/positive/011-ipv6-authority.json +0 -30
  585. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/positive/012-ipv6-authority-default-port-stripped.json +0 -30
  586. package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/README.md +0 -211
  587. package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/keys.json +0 -61
  588. package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/001-wrong-tag.json +0 -26
  589. package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/002-expired-signature.json +0 -26
  590. package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/003-window-too-long.json +0 -26
  591. package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/004-alg-not-allowed.json +0 -26
  592. package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/005-missing-authority-component.json +0 -26
  593. package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/006-missing-content-digest.json +0 -25
  594. package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/007-unknown-keyid.json +0 -26
  595. package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/008-wrong-adcp-use.json +0 -26
  596. package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/009-content-digest-mismatch.json +0 -26
  597. package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/010-malformed-signature-input.json +0 -26
  598. package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/011-signature-without-input.json +0 -25
  599. package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/012-missing-expires-param.json +0 -26
  600. package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/013-expires-le-created.json +0 -26
  601. package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/014-missing-nonce-param.json +0 -26
  602. package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/015-signature-invalid.json +0 -26
  603. package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/016-replayed-nonce.json +0 -37
  604. package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/017-key-revoked.json +0 -32
  605. package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/018-rate-abuse.json +0 -33
  606. package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/019-revocation-stale.json +0 -32
  607. package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/020-key-ops-missing-verify.json +0 -41
  608. package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/021-base64-alphabet-mixing.json +0 -26
  609. package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/positive/001-basic-post.json +0 -24
  610. package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/positive/002-es256-post.json +0 -24
  611. package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/positive/003-multiple-signature-labels.json +0 -24
  612. package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/positive/004-default-port-stripped.json +0 -24
  613. package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/positive/005-percent-encoded-path.json +0 -24
  614. package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/positive/006-query-byte-preserved.json +0 -24
  615. package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/positive/007-body-without-idempotency-key.json +0 -25
  616. package/compliance/cache/3.1.0-beta.7/universal/billing-gate-dispatch.yaml +0 -450
  617. package/compliance/cache/3.1.0-beta.7/universal/canonical-format-validate-input.yaml +0 -640
  618. package/compliance/cache/3.1.0-beta.7/universal/capability-discovery.yaml +0 -125
  619. package/compliance/cache/3.1.0-beta.7/universal/collection-lists-pagination-integrity.yaml +0 -306
  620. package/compliance/cache/3.1.0-beta.7/universal/comply-controller-mode-gate.yaml +0 -141
  621. package/compliance/cache/3.1.0-beta.7/universal/content-standards-pagination-integrity.yaml +0 -326
  622. package/compliance/cache/3.1.0-beta.7/universal/deterministic-testing.yaml +0 -1430
  623. package/compliance/cache/3.1.0-beta.7/universal/error-compliance-signals.yaml +0 -377
  624. package/compliance/cache/3.1.0-beta.7/universal/error-compliance.yaml +0 -528
  625. package/compliance/cache/3.1.0-beta.7/universal/fictional-entities.yaml +0 -307
  626. package/compliance/cache/3.1.0-beta.7/universal/get-media-buys-pagination-integrity.yaml +0 -160
  627. package/compliance/cache/3.1.0-beta.7/universal/get-signals-pagination-integrity.yaml +0 -211
  628. package/compliance/cache/3.1.0-beta.7/universal/idempotency.yaml +0 -861
  629. package/compliance/cache/3.1.0-beta.7/universal/notification-config-event-scope.yaml +0 -119
  630. package/compliance/cache/3.1.0-beta.7/universal/notification-config-lifecycle.yaml +0 -337
  631. package/compliance/cache/3.1.0-beta.7/universal/notification-config-rejections.yaml +0 -107
  632. package/compliance/cache/3.1.0-beta.7/universal/pagination-integrity-creative-formats.yaml +0 -265
  633. package/compliance/cache/3.1.0-beta.7/universal/pagination-integrity-list-accounts.yaml +0 -245
  634. package/compliance/cache/3.1.0-beta.7/universal/pagination-integrity.yaml +0 -263
  635. package/compliance/cache/3.1.0-beta.7/universal/property-lists-pagination-integrity.yaml +0 -307
  636. package/compliance/cache/3.1.0-beta.7/universal/read-tool-idempotency.yaml +0 -405
  637. package/compliance/cache/3.1.0-beta.7/universal/runner-output-contract.yaml +0 -1266
  638. package/compliance/cache/3.1.0-beta.7/universal/schema-validation-signals.yaml +0 -181
  639. package/compliance/cache/3.1.0-beta.7/universal/schema-validation.yaml +0 -548
  640. package/compliance/cache/3.1.0-beta.7/universal/security.yaml +0 -539
  641. package/compliance/cache/3.1.0-beta.7/universal/signed-requests.yaml +0 -217
  642. package/compliance/cache/3.1.0-beta.7/universal/stale-response-advisory.yaml +0 -295
  643. package/compliance/cache/3.1.0-beta.7/universal/storyboard-schema.yaml +0 -2136
  644. package/compliance/cache/3.1.0-beta.7/universal/v3-envelope-integrity.yaml +0 -117
  645. package/compliance/cache/3.1.0-beta.7/universal/version-negotiation.yaml +0 -130
  646. package/compliance/cache/3.1.0-beta.7/universal/webhook-emission.yaml +0 -411
  647. package/compliance/cache/3.1.0-beta.7/universal/wholesale-feed-bulk-webhooks.yaml +0 -82
  648. package/compliance/cache/3.1.0-beta.7/universal/wholesale-feed-product-webhooks.yaml +0 -83
  649. package/compliance/cache/3.1.0-beta.7/universal/wholesale-feed-products.yaml +0 -151
  650. package/compliance/cache/3.1.0-beta.7/universal/wholesale-feed-signal-webhooks.yaml +0 -83
  651. package/compliance/cache/3.1.0-beta.7/universal/wholesale-feed-signals.yaml +0 -149
  652. package/dist/lib/types/v3-1-beta/index.d.mts +0 -1
  653. package/dist/lib/types/v3-1-beta/index.d.ts +0 -1
  654. package/dist/lib/types/v3-1-beta/index.mjs +0 -1
  655. package/dist/lib/types/v3-1-beta/tools.generated.d.mts +0 -26788
  656. package/dist/lib/types/v3-1-beta/tools.generated.d.ts +0 -26788
  657. /package/dist/lib/{types/v3-1-beta/tools.generated.mjs → media-buy/action-types.mjs} +0 -0
package/README.md CHANGED
@@ -1050,3 +1050,5 @@ Apache 2.0 License - see [LICENSE](LICENSE) file for details.
1050
1050
  - **Documentation**: [docs.adcontextprotocol.org](https://docs.adcontextprotocol.org)
1051
1051
  - **Issues**: [GitHub Issues](https://github.com/adcontextprotocol/adcp-client/issues)
1052
1052
  - **Protocol Spec**: [AdCP Specification](https://github.com/adcontextprotocol/adcp)
1053
+
1054
+ Supply-path verification: use `verifySupplyPath` for authoritative evidence or the canonical registry verdict, and opt into external collection discovery annotations. See [the supply-path guide](docs/guides/SUPPLY-PATH-VERIFICATION.md).
@@ -177,8 +177,294 @@ function printSoftFailBlock(failedScenarios, jsonOutput) {
177
177
  }
178
178
  }
179
179
 
180
+ // ────────────────────────────────────────────────────────────────────────────
181
+ // Skipped-step rendering + request-signing flag parsing
182
+ //
183
+ // Same rationale as the markdown writers above: keep the wording and the
184
+ // argument semantics unit-testable without spawning the CLI. A run that
185
+ // prints `0 passed, N skipped` and nothing else reads as a clean pass, which
186
+ // is how an ungradable conformance surface hides (adcp-client#2954).
187
+ // ────────────────────────────────────────────────────────────────────────────
188
+
189
+ /**
190
+ * The runner's own coverage rule, loaded from the built library rather than
191
+ * restated here. An earlier revision of this file hand-wrote the predicate
192
+ * and drifted from the runner within one change — per-scenario instead of
193
+ * per-storyboard — which failed a run whose report was entirely green.
194
+ *
195
+ * Required lazily: `bin/` modules are loaded by tests that exercise pure
196
+ * helpers, and those should not need `dist` present to do it.
197
+ */
198
+ function signingCoverageOf(steps) {
199
+ const { signingCoverage } = require('../dist/lib/testing/storyboard/runner.js');
200
+ return signingCoverage(steps);
201
+ }
202
+
203
+ /** Project a compliance `TestStepResult` onto the runner's coverage view. */
204
+ function toCoverageStep(step) {
205
+ return {
206
+ task: step?.task,
207
+ skipped: step?.skipped,
208
+ skip_reason: step?.skip_reason,
209
+ // `mapStepToTestStep` carries the probe's `HttpProbeResult` here.
210
+ response: step?.observation_data,
211
+ };
212
+ }
213
+
214
+ /**
215
+ * Escape C0/C1 control characters. Skip details can quote agent-supplied
216
+ * text, and a hostile agent should not be able to rewrite the terminal.
217
+ */
218
+ function escapeTerminalControlChars(text) {
219
+ // eslint-disable-next-line no-control-regex -- the point is to escape control characters
220
+ const CONTROL_CHARS = /[\u0000-\u001f\u007f-\u009f]/g;
221
+ return String(text).replace(CONTROL_CHARS, char => `\\u${char.charCodeAt(0).toString(16).padStart(4, '0')}`);
222
+ }
223
+
224
+ /**
225
+ * Canonical `RunnerSkipReason` values meaning "the runner could not grade
226
+ * this", as opposed to "this does not apply to your agent". Keep in sync with
227
+ * `DETAILED_SKIP_TO_CANONICAL` in `src/lib/testing/storyboard/types.ts`.
228
+ */
229
+ const COVERAGE_GAP_SKIP_REASONS = new Set(['fixture_unavailable']);
230
+
231
+ /**
232
+ * Detailed reasons that are runner-owned coverage gaps even though they
233
+ * canonicalize to `not_applicable` — the canonical layer follows the
234
+ * output contract's registered shapes, so the gap shows up here.
235
+ */
236
+ const COVERAGE_GAP_DETAILED_REASONS = new Set(['signing_transport_unavailable']);
237
+
238
+ /** Whether a skipped step should read as missing coverage rather than as a skip. */
239
+ function isCoverageGapRow(step) {
240
+ return (
241
+ Boolean(step?.skipped) &&
242
+ (COVERAGE_GAP_SKIP_REASONS.has(step.skip?.reason) || COVERAGE_GAP_DETAILED_REASONS.has(step.skip_reason))
243
+ );
244
+ }
245
+
246
+ /**
247
+ * The operator-facing remedy a probe recorded, if any. `skip.detail` carries
248
+ * the output contract's machine-readable sub-reason token for registered
249
+ * reasons, so the human text lives on the probe result.
250
+ */
251
+ function probeRemedy(step) {
252
+ const response = step?.response ?? step?.observation_data;
253
+ if (!response || typeof response !== 'object') return undefined;
254
+ return typeof response.error === 'string' && response.error.length > 0 ? response.error : undefined;
255
+ }
256
+
257
+ /**
258
+ * Lines describing why a step was skipped. Empty when the step ran, or when
259
+ * the caller already printed a reason-specific message for it.
260
+ *
261
+ * @param {object} step storyboard step result
262
+ * @param {{ handledReasons?: Set<string> }} [options]
263
+ * @returns {string[]} indented output lines
264
+ */
265
+ function formatStepSkipLines(step, options = {}) {
266
+ if (!step || !step.skipped) return [];
267
+ const detailed = step.skip_reason;
268
+ if (options.handledReasons?.has(detailed)) return [];
269
+ const canonical = step.skip?.reason;
270
+ if (!canonical && !detailed) return [];
271
+
272
+ const reasonText = detailed && detailed !== canonical ? `${canonical ?? 'skipped'} / ${detailed}` : canonical;
273
+ const lines = [
274
+ ` ${isCoverageGapRow(step) ? 'COVERAGE UNAVAILABLE' : 'Skipped'} (${escapeTerminalControlChars(reasonText)})`,
275
+ ];
276
+ // Prefer the probe's remedy; fall back to `skip.detail` unless it is just
277
+ // the machine-readable token already printed above.
278
+ const detail = probeRemedy(step) ?? (step.skip?.detail !== detailed ? step.skip?.detail : undefined);
279
+ if (detail) lines.push(` ${escapeTerminalControlChars(detail)}`);
280
+ return lines;
281
+ }
282
+
283
+ /**
284
+ * Whether a single-step run should exit nonzero: the step is a
285
+ * request-signing probe and nothing about the agent's verifier was graded
286
+ * because this runner had no way to dispatch it.
287
+ *
288
+ * Scoped to that case on purpose. A step the operator excluded is their own
289
+ * scoping decision, and a legacy `fixture_unavailable` gap keeps its
290
+ * long-standing exit 0 — the runner-output contract says that reason must not
291
+ * move a verdict.
292
+ */
293
+ function isCoverageUnavailableStep(step) {
294
+ return signingCoverageOf([toCoverageStep({ ...step, observation_data: step?.response })]) === 'transport_unverified';
295
+ }
296
+
297
+ /**
298
+ * Storyboards in a `ComplianceResult` whose request-signing coverage went
299
+ * unverified, with why (adcp-client#2954).
300
+ *
301
+ * Grouped by storyboard, because the compliance projection emits one scenario
302
+ * per phase: evaluating `negative_vectors` on its own reports a gap for a run
303
+ * whose `positive_vectors` graded fine, which is a false CI failure on an
304
+ * all-green report.
305
+ *
306
+ * @param {object} complianceResult result from `comply()`
307
+ * @returns {Array<{ storyboard_id: string, coverage: import('../dist/lib/testing/storyboard/runner.js').SigningCoverage }>}
308
+ */
309
+ function unverifiedSigningCoverage(complianceResult) {
310
+ const stepsByStoryboard = new Map();
311
+ for (const track of complianceResult?.tracks ?? []) {
312
+ for (const scenario of track?.scenarios ?? []) {
313
+ const storyboardId = String(scenario?.scenario ?? '').split('/')[0];
314
+ if (!storyboardId) continue;
315
+ const steps = (scenario?.steps ?? []).map(toCoverageStep);
316
+ stepsByStoryboard.set(storyboardId, [...(stepsByStoryboard.get(storyboardId) ?? []), ...steps]);
317
+ }
318
+ }
319
+ const unverified = [];
320
+ for (const [storyboardId, steps] of stepsByStoryboard) {
321
+ const coverage = signingCoverageOf(steps);
322
+ // Every state except "graded" and "no probes at all" means the verifier
323
+ // was not exercised; the state itself tells the operator which remedy
324
+ // applies, and they are not interchangeable.
325
+ if (coverage !== 'graded' && coverage !== 'not_probed') {
326
+ unverified.push({ storyboard_id: storyboardId, coverage });
327
+ }
328
+ }
329
+ return unverified;
330
+ }
331
+
332
+ /**
333
+ * Verdict line(s) for a single-step run (`adcp storyboard step`).
334
+ *
335
+ * A skipped step carries `passed: true` — skip is not failure — so printing
336
+ * the bare verdict renders a coverage gap as a green "Passed". Route skips
337
+ * through the skip renderer instead, and say "Not verified" when the runner
338
+ * could not grade the step at all.
339
+ *
340
+ * @param {object} step storyboard step result
341
+ * @param {{ durationMs?: number }} [options]
342
+ * @returns {string[]} output lines
343
+ */
344
+ function formatStepVerdictLines(step, options = {}) {
345
+ const suffix = typeof options.durationMs === 'number' ? ` (${options.durationMs}ms)` : '';
346
+ if (step?.skipped) {
347
+ const label = isCoverageGapRow(step) ? '⏭️ Not verified' : '⏭️ Skipped';
348
+ return [`${label}${suffix}`, ...formatStepSkipLines(step)];
349
+ }
350
+ return [`${step?.passed ? '✅ Passed' : '❌ Failed'}${suffix}`];
351
+ }
352
+
353
+ const SIGNING_TRANSPORTS = ['raw', 'mcp'];
354
+
355
+ // Tokens only ever passed as a (rejected) value for a boolean flag — no
356
+ // storyboard id or agent URL looks like these, so treating them as a misuse
357
+ // of `--signing-skip-rate-abuse` can't swallow a real positional argument.
358
+ const BOOLEAN_LITERALS = new Set(['true', 'false', 'yes', 'no', '0', '1']);
359
+
360
+ /**
361
+ * Parse the `storyboard run` request-signing knobs.
362
+ *
363
+ * Pure: returns `{ ok: true, options }` (options `null` when no flag was
364
+ * passed) or `{ ok: false, error }`. The CLI turns an error into a usage
365
+ * message and exit 2; keeping the decision here means the argument semantics
366
+ * are testable without spawning a process per case.
367
+ *
368
+ * `--signing-transport` is distinct from `--transport`/`--protocol`: the
369
+ * latter selects how the storyboard talks to the agent, this one selects how
370
+ * the RFC 9421 conformance vectors are framed on the wire.
371
+ *
372
+ * @param {(flag: string) => string | null} readFlag reads `--flag value` / `--flag=value`
373
+ * @param {(flag: string) => boolean} hasFlag whether the bare flag is present
374
+ * @param {{ readInlineValue?: (flag: string) => string | null, knownVectorIds?: string[] | null }} [deps]
375
+ * `readInlineValue` reads the `--flag=value` form only — needed to tell a
376
+ * boolean flag's misuse (`--signing-skip-rate-abuse=false`) from the bare
377
+ * flag, which `readFlag` cannot, since it also returns the next positional.
378
+ * `knownVectorIds` enables vector-id validation; `null`/omitted skips it
379
+ * (the compliance cache may not be readable, and a nicety must not block a
380
+ * run).
381
+ */
382
+ function parseRequestSigningFlags(readFlag, hasFlag, deps = {}) {
383
+ const readInlineValue = deps.readInlineValue ?? (() => null);
384
+ const knownVectorIds = deps.knownVectorIds ?? null;
385
+ const transport = readFlag('--signing-transport');
386
+ if (transport !== null && !SIGNING_TRANSPORTS.includes(transport)) {
387
+ return {
388
+ ok: false,
389
+ error:
390
+ `--signing-transport must be one of ${SIGNING_TRANSPORTS.join('|')}, got: ${transport}\n` +
391
+ ' Omit the flag to infer the vector transport from the agent protocol.',
392
+ };
393
+ }
394
+ if (hasFlag('--signing-transport') && transport === null) {
395
+ return { ok: false, error: `--signing-transport requires a value (${SIGNING_TRANSPORTS.join('|')}).` };
396
+ }
397
+
398
+ const skipVectorsRaw = readFlag('--signing-skip-vectors');
399
+ if (hasFlag('--signing-skip-vectors') && skipVectorsRaw === null) {
400
+ return { ok: false, error: '--signing-skip-vectors requires a value (comma-separated vector ids).' };
401
+ }
402
+ const skipVectors = skipVectorsRaw
403
+ ? skipVectorsRaw
404
+ .split(',')
405
+ .map(id => id.trim())
406
+ .filter(Boolean)
407
+ : [];
408
+ if (skipVectorsRaw !== null && skipVectors.length === 0) {
409
+ return { ok: false, error: '--signing-skip-vectors requires at least one vector id.' };
410
+ }
411
+ // A mistyped id silently skips nothing: the grader matches ids exactly, so
412
+ // the operator gets the full vector run they thought they had trimmed, and
413
+ // on a slow one (`020` sends cap+1 requests) they find out minutes later.
414
+ if (knownVectorIds && skipVectors.length > 0) {
415
+ const known = new Set(knownVectorIds);
416
+ const unknown = skipVectors.filter(id => !known.has(id));
417
+ if (unknown.length > 0) {
418
+ const lines = unknown.map(id => {
419
+ const near = knownVectorIds.filter(k => k.startsWith(id) || k.includes(id)).slice(0, 3);
420
+ return `unknown vector id "${id}"${near.length > 0 ? ` — did you mean: ${near.join(', ')}?` : ''}`;
421
+ });
422
+ return {
423
+ ok: false,
424
+ error:
425
+ `--signing-skip-vectors: ${lines.join('; ')}\n` +
426
+ ' Ids are the fixture file names under ' +
427
+ 'compliance/cache/<version>/test-vectors/request-signing/{positive,negative}/ (e.g. 002-wrong-tag).',
428
+ };
429
+ }
430
+ }
431
+
432
+ // `--signing-skip-rate-abuse` is a bare boolean. Without this check
433
+ // `--signing-skip-rate-abuse=false` reads as "flag present" and skips the
434
+ // vector the operator just asked to run — the inverse of the request, and
435
+ // silent.
436
+ const rateAbuseInline = readInlineValue('--signing-skip-rate-abuse');
437
+ const rateAbuseSpaced = rateAbuseInline === null ? readFlag('--signing-skip-rate-abuse') : null;
438
+ const rateAbuseValue =
439
+ rateAbuseInline ??
440
+ (rateAbuseSpaced !== null && BOOLEAN_LITERALS.has(rateAbuseSpaced.toLowerCase()) ? rateAbuseSpaced : null);
441
+ if (rateAbuseValue !== null) {
442
+ return {
443
+ ok: false,
444
+ error:
445
+ `--signing-skip-rate-abuse takes no value (got "${rateAbuseValue}"). ` +
446
+ 'Pass the bare flag to skip the rate-abuse vector, or omit it to run the vector.',
447
+ };
448
+ }
449
+ const skipRateAbuse = hasFlag('--signing-skip-rate-abuse');
450
+ const requestSigning = {
451
+ ...(transport && { transport }),
452
+ ...(skipVectors.length > 0 && { skipVectors }),
453
+ ...(skipRateAbuse && { skipRateAbuse: true }),
454
+ };
455
+ return { ok: true, options: Object.keys(requestSigning).length > 0 ? { request_signing: requestSigning } : null };
456
+ }
457
+
180
458
  module.exports = {
181
459
  escapeMarkdownCell,
460
+ escapeTerminalControlChars,
461
+ formatStepSkipLines,
462
+ formatStepVerdictLines,
463
+ isCoverageGapRow,
464
+ isCoverageUnavailableStep,
465
+ unverifiedSigningCoverage,
466
+ parseRequestSigningFlags,
467
+ SIGNING_TRANSPORTS,
182
468
  buildComplianceSummaryMarkdown,
183
469
  buildStoryboardSummaryMarkdown,
184
470
  writeSummaryFile,