@adcp/sdk 15.9.0 → 16.0.0-beta.1

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 (295) hide show
  1. package/bin/adcp-identity.js +74 -0
  2. package/bin/adcp.js +2 -0
  3. package/dist/lib/adapters/keyed-account-backend.d.mts +37 -0
  4. package/dist/lib/adapters/keyed-account-backend.d.ts +37 -0
  5. package/dist/lib/adapters/keyed-account-backend.js +121 -0
  6. package/dist/lib/adapters/keyed-account-backend.mjs +94 -0
  7. package/dist/lib/adapters/keyed-account-store.d.mts +28 -0
  8. package/dist/lib/adapters/keyed-account-store.d.ts +28 -0
  9. package/dist/lib/adapters/keyed-account-store.js +227 -0
  10. package/dist/lib/adapters/keyed-account-store.mjs +203 -0
  11. package/dist/lib/core/SingleAgentClient.d.mts +16 -2
  12. package/dist/lib/core/SingleAgentClient.d.ts +16 -2
  13. package/dist/lib/core/SingleAgentClient.js +259 -62
  14. package/dist/lib/core/SingleAgentClient.mjs +261 -57
  15. package/dist/lib/core/TaskExecutor.d.mts +6 -0
  16. package/dist/lib/core/TaskExecutor.d.ts +6 -0
  17. package/dist/lib/core/TaskExecutor.js +66 -5
  18. package/dist/lib/core/TaskExecutor.mjs +71 -5
  19. package/dist/lib/core/postgres-webhook-registration-store.js +32 -5
  20. package/dist/lib/core/postgres-webhook-registration-store.mjs +32 -5
  21. package/dist/lib/core/redis-webhook-registration-store.js +23 -1
  22. package/dist/lib/core/redis-webhook-registration-store.mjs +23 -1
  23. package/dist/lib/core/webhook-registration.d.mts +7 -1
  24. package/dist/lib/core/webhook-registration.d.ts +7 -1
  25. package/dist/lib/core/webhook-registration.js +24 -2
  26. package/dist/lib/core/webhook-registration.mjs +23 -2
  27. package/dist/lib/identity-3.3/index.d.mts +10 -0
  28. package/dist/lib/identity-3.3/index.d.ts +10 -0
  29. package/dist/lib/identity-3.3/index.js +75 -0
  30. package/dist/lib/identity-3.3/index.mjs +46 -0
  31. package/dist/lib/identity-3.3/lifecycle.d.mts +113 -0
  32. package/dist/lib/identity-3.3/lifecycle.d.ts +113 -0
  33. package/dist/lib/identity-3.3/lifecycle.js +267 -0
  34. package/dist/lib/identity-3.3/lifecycle.mjs +240 -0
  35. package/dist/lib/identity-3.3/revocation.d.mts +50 -0
  36. package/dist/lib/identity-3.3/revocation.d.ts +50 -0
  37. package/dist/lib/identity-3.3/revocation.js +238 -0
  38. package/dist/lib/identity-3.3/revocation.mjs +216 -0
  39. package/dist/lib/identity-3.3/schemas.draft.d.mts +2472 -0
  40. package/dist/lib/identity-3.3/schemas.draft.d.ts +2472 -0
  41. package/dist/lib/identity-3.3/schemas.draft.js +1448 -0
  42. package/dist/lib/identity-3.3/schemas.draft.mjs +1428 -0
  43. package/dist/lib/identity-3.3/server.d.mts +34 -0
  44. package/dist/lib/identity-3.3/server.d.ts +34 -0
  45. package/dist/lib/identity-3.3/server.js +219 -0
  46. package/dist/lib/identity-3.3/server.mjs +194 -0
  47. package/dist/lib/identity-3.3/store.d.mts +24 -0
  48. package/dist/lib/identity-3.3/store.d.ts +24 -0
  49. package/dist/lib/identity-3.3/store.js +191 -0
  50. package/dist/lib/identity-3.3/store.mjs +169 -0
  51. package/dist/lib/identity-3.3/trust.d.mts +94 -0
  52. package/dist/lib/identity-3.3/trust.d.ts +94 -0
  53. package/dist/lib/identity-3.3/trust.js +278 -0
  54. package/dist/lib/identity-3.3/trust.mjs +239 -0
  55. package/dist/lib/identity-3.3/types.d.mts +127 -0
  56. package/dist/lib/identity-3.3/types.d.ts +127 -0
  57. package/dist/lib/identity-3.3/types.js +16 -0
  58. package/dist/lib/identity-3.3/types.mjs +0 -0
  59. package/dist/lib/identity-3.3/validation.d.mts +2 -0
  60. package/dist/lib/identity-3.3/validation.d.ts +2 -0
  61. package/dist/lib/identity-3.3/validation.js +125 -0
  62. package/dist/lib/identity-3.3/validation.mjs +91 -0
  63. package/dist/lib/index.d.mts +1 -1
  64. package/dist/lib/index.d.ts +1 -1
  65. package/dist/lib/reporting/azure/index.d.mts +5 -0
  66. package/dist/lib/reporting/azure/index.d.ts +5 -0
  67. package/dist/lib/reporting/azure/index.js +26 -7
  68. package/dist/lib/reporting/azure/index.mjs +26 -7
  69. package/dist/lib/reporting/bigquery/index.d.mts +80 -25
  70. package/dist/lib/reporting/bigquery/index.d.ts +80 -25
  71. package/dist/lib/reporting/bigquery/index.js +184 -81
  72. package/dist/lib/reporting/bigquery/index.mjs +182 -80
  73. package/dist/lib/reporting/gcs/adapter.d.mts +8 -1
  74. package/dist/lib/reporting/gcs/adapter.d.ts +8 -1
  75. package/dist/lib/reporting/gcs/errors.d.mts +6 -0
  76. package/dist/lib/reporting/gcs/errors.d.ts +6 -0
  77. package/dist/lib/reporting/gcs/fence.d.mts +5 -0
  78. package/dist/lib/reporting/gcs/fence.d.ts +5 -0
  79. package/dist/lib/reporting/gcs/index.d.mts +9 -0
  80. package/dist/lib/reporting/gcs/index.d.ts +9 -0
  81. package/dist/lib/reporting/gcs/reader.d.mts +27 -3
  82. package/dist/lib/reporting/gcs/reader.d.ts +27 -3
  83. package/dist/lib/reporting/gcs/row-provider.d.mts +7 -0
  84. package/dist/lib/reporting/gcs/row-provider.d.ts +7 -0
  85. package/dist/lib/reporting/gcs/row-provider.js +34 -14
  86. package/dist/lib/reporting/gcs/row-provider.mjs +34 -14
  87. package/dist/lib/reporting/ledger/change-feed.d.mts +22 -1
  88. package/dist/lib/reporting/ledger/change-feed.d.ts +22 -1
  89. package/dist/lib/reporting/ledger/index.d.mts +11 -0
  90. package/dist/lib/reporting/ledger/index.d.ts +11 -0
  91. package/dist/lib/reporting/ledger/managed-postgres.d.mts +8 -0
  92. package/dist/lib/reporting/ledger/managed-postgres.d.ts +8 -0
  93. package/dist/lib/reporting/ledger/managed-router.d.mts +27 -2
  94. package/dist/lib/reporting/ledger/managed-router.d.ts +27 -2
  95. package/dist/lib/reporting/ledger/managed.d.mts +86 -6
  96. package/dist/lib/reporting/ledger/managed.d.ts +86 -6
  97. package/dist/lib/reporting/ledger/notification-activity.d.mts +65 -3
  98. package/dist/lib/reporting/ledger/notification-activity.d.ts +65 -3
  99. package/dist/lib/reporting/ledger/object-writes.d.mts +64 -5
  100. package/dist/lib/reporting/ledger/object-writes.d.ts +64 -5
  101. package/dist/lib/reporting/ledger/postgres.d.mts +43 -9
  102. package/dist/lib/reporting/ledger/postgres.d.ts +43 -9
  103. package/dist/lib/reporting/ledger/postgres.js +43 -27
  104. package/dist/lib/reporting/ledger/postgres.mjs +43 -27
  105. package/dist/lib/reporting/ledger/row-encoding.d.mts +92 -6
  106. package/dist/lib/reporting/ledger/row-encoding.d.ts +92 -6
  107. package/dist/lib/reporting/ledger/row-encoding.js +8 -4
  108. package/dist/lib/reporting/ledger/row-encoding.mjs +6 -3
  109. package/dist/lib/reporting/ledger/row-storage-errors.d.mts +11 -1
  110. package/dist/lib/reporting/ledger/row-storage-errors.d.ts +11 -1
  111. package/dist/lib/reporting/ledger/row-storage-migration.d.mts +19 -1
  112. package/dist/lib/reporting/ledger/row-storage-migration.d.ts +19 -1
  113. package/dist/lib/reporting/ledger/row-storage-migration.js +133 -18
  114. package/dist/lib/reporting/ledger/row-storage-migration.mjs +133 -18
  115. package/dist/lib/reporting/ledger/row-storage-object.d.mts +103 -12
  116. package/dist/lib/reporting/ledger/row-storage-object.d.ts +103 -12
  117. package/dist/lib/reporting/ledger/row-storage-object.js +106 -31
  118. package/dist/lib/reporting/ledger/row-storage-object.mjs +104 -31
  119. package/dist/lib/reporting/ledger/row-storage.d.mts +87 -20
  120. package/dist/lib/reporting/ledger/row-storage.d.ts +87 -20
  121. package/dist/lib/reporting/ledger/row-storage.js +126 -66
  122. package/dist/lib/reporting/ledger/row-storage.mjs +129 -67
  123. package/dist/lib/reporting/ledger/schedule.d.mts +13 -0
  124. package/dist/lib/reporting/ledger/schedule.d.ts +13 -0
  125. package/dist/lib/reporting/ledger/schedule.js +24 -0
  126. package/dist/lib/reporting/ledger/schedule.mjs +23 -0
  127. package/dist/lib/reporting/ledger/types.d.mts +23 -1
  128. package/dist/lib/reporting/ledger/types.d.ts +23 -1
  129. package/dist/lib/reporting/s3/index.d.mts +5 -0
  130. package/dist/lib/reporting/s3/index.d.ts +5 -0
  131. package/dist/lib/reporting/s3/index.js +37 -14
  132. package/dist/lib/reporting/s3/index.mjs +37 -14
  133. package/dist/lib/reporting/service/index.d.mts +10 -0
  134. package/dist/lib/reporting/service/index.d.ts +10 -0
  135. package/dist/lib/reporting/service/maintenance.d.mts +28 -2
  136. package/dist/lib/reporting/service/maintenance.d.ts +28 -2
  137. package/dist/lib/schemas-data/v2.5/_provenance.json +1 -1
  138. package/dist/lib/server/account-sync-contract.d.mts +14 -0
  139. package/dist/lib/server/account-sync-contract.d.ts +14 -0
  140. package/dist/lib/server/account-sync-contract.js +225 -0
  141. package/dist/lib/server/account-sync-contract.mjs +197 -0
  142. package/dist/lib/server/adcp-server.js +5 -0
  143. package/dist/lib/server/adcp-server.mjs +10 -0
  144. package/dist/lib/server/auth-signature.d.mts +10 -0
  145. package/dist/lib/server/auth-signature.d.ts +10 -0
  146. package/dist/lib/server/auth-signature.js +61 -2
  147. package/dist/lib/server/auth-signature.mjs +65 -2
  148. package/dist/lib/server/auth.d.mts +6 -0
  149. package/dist/lib/server/auth.d.ts +6 -0
  150. package/dist/lib/server/auth.js +6 -0
  151. package/dist/lib/server/auth.mjs +6 -0
  152. package/dist/lib/server/create-adcp-server.d.mts +19 -5
  153. package/dist/lib/server/create-adcp-server.d.ts +19 -5
  154. package/dist/lib/server/create-adcp-server.js +238 -19
  155. package/dist/lib/server/create-adcp-server.mjs +240 -10
  156. package/dist/lib/server/decisioning/account.d.mts +24 -1
  157. package/dist/lib/server/decisioning/account.d.ts +24 -1
  158. package/dist/lib/server/decisioning/index.d.mts +1 -1
  159. package/dist/lib/server/decisioning/index.d.ts +1 -1
  160. package/dist/lib/server/decisioning/runtime/from-platform.d.mts +0 -50
  161. package/dist/lib/server/decisioning/runtime/from-platform.d.ts +0 -50
  162. package/dist/lib/server/decisioning/runtime/from-platform.js +61 -11
  163. package/dist/lib/server/decisioning/runtime/from-platform.mjs +65 -12
  164. package/dist/lib/server/index.d.mts +2 -0
  165. package/dist/lib/server/index.d.ts +2 -0
  166. package/dist/lib/server/index.js +12 -0
  167. package/dist/lib/server/index.mjs +12 -0
  168. package/dist/lib/server/notification-subscriptions/runtime.js +9 -1
  169. package/dist/lib/server/notification-subscriptions/runtime.mjs +9 -1
  170. package/dist/lib/server/notification-subscriptions/types.d.mts +5 -0
  171. package/dist/lib/server/notification-subscriptions/types.d.ts +5 -0
  172. package/dist/lib/server/principal/types.d.mts +1 -1
  173. package/dist/lib/server/principal/types.d.ts +1 -1
  174. package/dist/lib/server/serve.js +5 -0
  175. package/dist/lib/server/serve.mjs +5 -0
  176. package/dist/lib/server/webhook-delivery/recovery.d.mts +1 -0
  177. package/dist/lib/server/webhook-delivery/recovery.d.ts +1 -0
  178. package/dist/lib/server/webhook-delivery/recovery.js +4 -0
  179. package/dist/lib/server/webhook-delivery/recovery.mjs +4 -0
  180. package/dist/lib/server/webhook-emitter.d.mts +10 -0
  181. package/dist/lib/server/webhook-emitter.d.ts +10 -0
  182. package/dist/lib/server/webhook-emitter.js +22 -0
  183. package/dist/lib/server/webhook-emitter.mjs +22 -0
  184. package/dist/lib/signing/agent-context.d.mts +0 -5
  185. package/dist/lib/signing/agent-context.d.ts +0 -5
  186. package/dist/lib/signing/agent-context.js +9 -1
  187. package/dist/lib/signing/agent-context.mjs +9 -1
  188. package/dist/lib/signing/agent-fetch.js +27 -2
  189. package/dist/lib/signing/agent-fetch.mjs +32 -2
  190. package/dist/lib/signing/agent-resolver/canonicalize.d.mts +10 -15
  191. package/dist/lib/signing/agent-resolver/canonicalize.d.ts +10 -15
  192. package/dist/lib/signing/agent-resolver/canonicalize.js +17 -5
  193. package/dist/lib/signing/agent-resolver/canonicalize.mjs +16 -5
  194. package/dist/lib/signing/agent-resolver/index.d.mts +1 -0
  195. package/dist/lib/signing/agent-resolver/index.d.ts +1 -0
  196. package/dist/lib/signing/agent-resolver/index.js +5 -0
  197. package/dist/lib/signing/agent-resolver/index.mjs +3 -0
  198. package/dist/lib/signing/agent-resolver/resolved-agent-jwks.d.mts +3 -2
  199. package/dist/lib/signing/agent-resolver/resolved-agent-jwks.d.ts +3 -2
  200. package/dist/lib/signing/agent-resolver/resolved-agent-jwks.js +30 -3
  201. package/dist/lib/signing/agent-resolver/resolved-agent-jwks.mjs +30 -3
  202. package/dist/lib/signing/agent-resolver/strict-json.d.mts +2 -2
  203. package/dist/lib/signing/agent-resolver/strict-json.d.ts +2 -2
  204. package/dist/lib/signing/agent-resolver/strict-json.js +5 -3
  205. package/dist/lib/signing/agent-resolver/strict-json.mjs +5 -3
  206. package/dist/lib/signing/brand-jwks.d.mts +2 -2
  207. package/dist/lib/signing/brand-jwks.d.ts +2 -2
  208. package/dist/lib/signing/brand-jwks.js +4 -4
  209. package/dist/lib/signing/brand-jwks.mjs +4 -4
  210. package/dist/lib/signing/client.d.mts +1 -0
  211. package/dist/lib/signing/client.d.ts +1 -0
  212. package/dist/lib/signing/client.js +5 -0
  213. package/dist/lib/signing/client.mjs +3 -0
  214. package/dist/lib/signing/jwks-https.d.mts +1 -1
  215. package/dist/lib/signing/jwks-https.d.ts +1 -1
  216. package/dist/lib/signing/jwks-https.js +1 -1
  217. package/dist/lib/signing/jwks-https.mjs +1 -1
  218. package/dist/lib/signing/jwks.d.mts +11 -3
  219. package/dist/lib/signing/jwks.d.ts +11 -3
  220. package/dist/lib/signing/jwks.js +1 -1
  221. package/dist/lib/signing/jwks.mjs +1 -1
  222. package/dist/lib/signing/parser.d.mts +1 -1
  223. package/dist/lib/signing/parser.d.ts +1 -1
  224. package/dist/lib/signing/parser.js +5 -3
  225. package/dist/lib/signing/parser.mjs +6 -4
  226. package/dist/lib/signing/revocation.d.mts +4 -1
  227. package/dist/lib/signing/revocation.d.ts +4 -1
  228. package/dist/lib/signing/revocation.js +33 -3
  229. package/dist/lib/signing/revocation.mjs +31 -2
  230. package/dist/lib/signing/server.d.mts +1 -1
  231. package/dist/lib/signing/server.d.ts +1 -1
  232. package/dist/lib/signing/server.js +4 -0
  233. package/dist/lib/signing/server.mjs +4 -0
  234. package/dist/lib/signing/types.d.mts +3 -0
  235. package/dist/lib/signing/types.d.ts +3 -0
  236. package/dist/lib/signing/web-bot-auth.d.mts +117 -0
  237. package/dist/lib/signing/web-bot-auth.d.ts +117 -0
  238. package/dist/lib/signing/web-bot-auth.js +660 -0
  239. package/dist/lib/signing/web-bot-auth.mjs +624 -0
  240. package/dist/lib/testing/client.d.mts +1 -4
  241. package/dist/lib/testing/client.d.ts +1 -4
  242. package/dist/lib/testing/client.js +141 -20
  243. package/dist/lib/testing/client.mjs +137 -19
  244. package/dist/lib/testing/compliance/comply.js +29 -10
  245. package/dist/lib/testing/compliance/comply.mjs +37 -11
  246. package/dist/lib/testing/storyboard/account-sync-contract.d.mts +3 -0
  247. package/dist/lib/testing/storyboard/account-sync-contract.d.ts +3 -0
  248. package/dist/lib/testing/storyboard/account-sync-contract.js +79 -0
  249. package/dist/lib/testing/storyboard/account-sync-contract.mjs +55 -0
  250. package/dist/lib/testing/storyboard/default-invariants.js +2 -0
  251. package/dist/lib/testing/storyboard/default-invariants.mjs +2 -0
  252. package/dist/lib/testing/storyboard/runner.js +23 -8
  253. package/dist/lib/testing/storyboard/runner.mjs +24 -8
  254. package/dist/lib/testing/storyboard/validations.d.mts +1 -1
  255. package/dist/lib/testing/storyboard/validations.d.ts +1 -1
  256. package/dist/lib/types/adcp.d.mts +4 -0
  257. package/dist/lib/types/adcp.d.ts +4 -0
  258. package/dist/lib/types/schemas.generated.d.ts +6 -6
  259. package/dist/lib/utils/capabilities.d.mts +1 -0
  260. package/dist/lib/utils/capabilities.d.ts +1 -0
  261. package/dist/lib/utils/capabilities.js +5 -0
  262. package/dist/lib/utils/capabilities.mjs +5 -0
  263. package/dist/lib/v2/projection/creative-delivery.d.mts +3 -1
  264. package/dist/lib/v2/projection/creative-delivery.d.ts +3 -1
  265. package/dist/lib/v2/projection/creative-delivery.js +26 -10
  266. package/dist/lib/v2/projection/creative-delivery.mjs +26 -10
  267. package/dist/lib/v2/projection/index.d.mts +1 -1
  268. package/dist/lib/v2/projection/index.d.ts +1 -1
  269. package/dist/lib/v2/projection/legacy-routes.d.mts +24 -2
  270. package/dist/lib/v2/projection/legacy-routes.d.ts +24 -2
  271. package/dist/lib/v2/projection/legacy-routes.js +28 -2
  272. package/dist/lib/v2/projection/legacy-routes.mjs +26 -2
  273. package/dist/lib/validation/schema-loader.d.mts +2 -0
  274. package/dist/lib/validation/schema-loader.d.ts +2 -0
  275. package/dist/lib/validation/schema-loader.js +43 -4
  276. package/dist/lib/validation/schema-loader.mjs +39 -3
  277. package/dist/lib/version.d.mts +3 -3
  278. package/dist/lib/version.d.ts +3 -3
  279. package/dist/lib/version.js +3 -3
  280. package/dist/lib/version.mjs +3 -3
  281. package/docs/TYPE-SUMMARY.md +2 -2
  282. package/docs/guides/DISCOVERY-CACHE-AND-SESSION-REUSE.md +4 -0
  283. package/docs/guides/REPORTING-LEDGER-CUTOVER.md +1 -1
  284. package/docs/guides/REPORTING-LEDGER.md +132 -46
  285. package/docs/guides/REPORTING-OPERATIONS.md +25 -4
  286. package/docs/guides/REPORTING-STABILITY.md +76 -0
  287. package/docs/guides/account-resolution.md +101 -0
  288. package/docs/llms.txt +3 -2
  289. package/docs/migration-12-to-13.md +7 -0
  290. package/docs/migration-14.x-rc-worksheet.md +4 -4
  291. package/docs/migration-agent-identity-3.3.md +355 -0
  292. package/docs/migration-agent-resolution-3.3.md +5 -0
  293. package/docs/migration-reporting-row-storage-alignment.md +137 -0
  294. package/examples/storyboards/account-sync-contract.yaml +57 -0
  295. package/package.json +15 -1
@@ -0,0 +1,127 @@
1
+ /** Experimental drafts; the released SDK wire/schema pin remains 3.2.4. */
2
+ export type AgentOnboardingMode = 'open' | 'application' | 'invite_only';
3
+ export type BillingParty = 'operator' | 'agent' | 'advertiser';
4
+ export type AgentOnboardingRequirementKind = 'agent_identity' | 'grant' | 'billing_entity' | 'contract' | 'credit_application' | 'aao_verified' | 'storyboard' | 'sandbox' | 'experimental_feature';
5
+ export interface AgentOnboardingRequirement {
6
+ kind: AgentOnboardingRequirementKind | (string & {});
7
+ role?: string;
8
+ verification_modes?: string[];
9
+ specialisms?: string[];
10
+ adcp_version?: string;
11
+ id?: string;
12
+ ext?: Record<string, unknown>;
13
+ }
14
+ export interface AgentOnboardingTier {
15
+ mode: AgentOnboardingMode;
16
+ url?: string;
17
+ requirements?: AgentOnboardingRequirement[];
18
+ ext?: Record<string, unknown>;
19
+ }
20
+ export interface AgentOnboarding {
21
+ sandbox?: AgentOnboardingTier;
22
+ billing?: Partial<Record<BillingParty, AgentOnboardingTier>>;
23
+ url?: string;
24
+ documentation_url?: string;
25
+ message?: string;
26
+ ext?: Record<string, unknown>;
27
+ }
28
+ export interface BuyerOnboardingPosture {
29
+ mode: 'considers_unsolicited' | 'application' | 'invite_only';
30
+ requirements?: AgentOnboardingRequirement[];
31
+ url?: string;
32
+ documentation_url?: string;
33
+ message?: string;
34
+ ext?: Record<string, unknown>;
35
+ }
36
+ export interface PrincipalRelationship {
37
+ status: 'pending' | 'active' | 'suspended' | 'blocked';
38
+ expires_at?: string;
39
+ setup?: {
40
+ message: string;
41
+ url?: string;
42
+ expires_at?: string;
43
+ [key: string]: unknown;
44
+ };
45
+ ext?: Record<string, unknown>;
46
+ }
47
+ export type IdentityPrincipalChangedReason = 'relationship_changed' | 'relationship_expiring';
48
+ export interface TrustAgent {
49
+ url: string;
50
+ roles: string[];
51
+ id?: string;
52
+ protocols?: string[];
53
+ countries?: string[];
54
+ profiles?: {
55
+ adcp?: {
56
+ onboarding?: BuyerOnboardingPosture;
57
+ [key: string]: unknown;
58
+ };
59
+ [key: string]: unknown;
60
+ };
61
+ [key: string]: unknown;
62
+ }
63
+ export interface TrustGrant {
64
+ grantee: string;
65
+ scopes: string[];
66
+ agents?: {
67
+ url: string;
68
+ }[];
69
+ countries?: string[];
70
+ valid_from?: string;
71
+ valid_until?: string;
72
+ profiles?: {
73
+ adcp?: {
74
+ brands?: string[];
75
+ [key: string]: unknown;
76
+ };
77
+ [key: string]: unknown;
78
+ };
79
+ [key: string]: unknown;
80
+ }
81
+ export interface TrustRecord {
82
+ agents?: TrustAgent[];
83
+ grants?: TrustGrant[];
84
+ acknowledgements?: unknown[];
85
+ exclusive_grants?: boolean;
86
+ authoritative_location?: string;
87
+ profiles?: {
88
+ adcp?: {
89
+ onboarding?: BuyerOnboardingPosture;
90
+ [key: string]: unknown;
91
+ };
92
+ [key: string]: unknown;
93
+ };
94
+ [key: string]: unknown;
95
+ }
96
+ export type RevocationReason = 'unspecified' | 'keyCompromise' | 'cACompromise' | 'affiliationChanged' | 'superseded' | 'cessationOfOperation' | 'certificateHold' | 'removeFromCRL' | 'privilegeWithdrawn' | 'aACompromise';
97
+ export interface RevocationDetail {
98
+ reason?: RevocationReason;
99
+ invalidity_date?: string;
100
+ }
101
+ export interface AgentGrantDeniedDetails {
102
+ scope: 'agent';
103
+ reason: 'grant_absent';
104
+ }
105
+ export interface Identity33Capabilities {
106
+ request_signing?: {
107
+ profiles?: ('adcp/request-signing/v1' | 'web-bot-auth')[];
108
+ wba_draft_revision?: string;
109
+ };
110
+ webhook_signing?: {
111
+ supported: boolean;
112
+ profiles?: ('adcp/webhook-signing/v1' | 'web-bot-auth')[];
113
+ wba_draft_revision?: string;
114
+ };
115
+ account?: {
116
+ agent_onboarding?: AgentOnboarding;
117
+ };
118
+ }
119
+ export type Identity33GetPrincipalResponse = Omit<import('../types/tools.generated').GetPrincipalResponse, 'result'> & {
120
+ result: (Exclude<import('../types/tools.generated').GetPrincipalResponse['result'], {
121
+ kind: 'failed';
122
+ }> & {
123
+ relationship?: PrincipalRelationship;
124
+ }) | Extract<import('../types/tools.generated').GetPrincipalResponse['result'], {
125
+ kind: 'failed';
126
+ }>;
127
+ };
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __copyProps = (to, from, except, desc) => {
7
+ if (from && typeof from === "object" || typeof from === "function") {
8
+ for (let key of __getOwnPropNames(from))
9
+ if (!__hasOwnProp.call(to, key) && key !== except)
10
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
11
+ }
12
+ return to;
13
+ };
14
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
15
+ var types_exports = {};
16
+ module.exports = __toCommonJS(types_exports);
File without changes
@@ -0,0 +1,2 @@
1
+ import type { ValidationOutcome } from '../validation/schema-validator.mjs';
2
+ export declare function validateIdentity33Payload(tool: string, direction: 'request' | 'response', payload: unknown, version?: string): ValidationOutcome;
@@ -0,0 +1,2 @@
1
+ import type { ValidationOutcome } from '../validation/schema-validator';
2
+ export declare function validateIdentity33Payload(tool: string, direction: 'request' | 'response', payload: unknown, version?: string): ValidationOutcome;
@@ -0,0 +1,125 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var validation_exports = {};
30
+ __export(validation_exports, {
31
+ validateIdentity33Payload: () => validateIdentity33Payload
32
+ });
33
+ module.exports = __toCommonJS(validation_exports);
34
+ var import_ajv = __toESM(require("ajv"));
35
+ var import_ajv_formats = __toESM(require("ajv-formats"));
36
+ var import_schema_loader = require('../validation/schema-loader.js');
37
+ var import_schemas = __toESM(require('./schemas.draft.js'));
38
+ const validators = /* @__PURE__ */ new WeakMap();
39
+ function validateIdentity33Payload(tool, direction, payload, version) {
40
+ const key = JSON.stringify([tool, direction, version]);
41
+ const stable = (0, import_schema_loader.getValidator)(tool, direction === "request" ? "request" : "sync", version);
42
+ if (!stable) return { valid: true, issues: [], variant: "skipped" };
43
+ let cache = validators.get(stable);
44
+ if (!cache) {
45
+ cache = /* @__PURE__ */ new Map();
46
+ validators.set(stable, cache);
47
+ }
48
+ let validator = cache.get(key);
49
+ if (!validator) {
50
+ let walk2 = function(node, name = "") {
51
+ if (!node || typeof node !== "object") return;
52
+ if (Array.isArray(node)) {
53
+ node.forEach((item) => walk2(item, name));
54
+ return;
55
+ }
56
+ const object = node;
57
+ if ((name === "reporting_webhook" || name === "artifact_webhook" || /Reporting Webhook|Artifact Webhook/i.test(object.title ?? "")) && Array.isArray(object.required))
58
+ object.required = object.required.filter((field) => field !== "authentication");
59
+ if (name === "reason" && Array.isArray(object.enum) && object.enum.includes("destination_state_changed"))
60
+ object.enum = [...object.enum, "relationship_changed", "relationship_expiring"];
61
+ if (object.properties?.url && object.properties?.authentication)
62
+ object.properties.signing_profile = { type: "string", enum: ["adcp/webhook-signing/v1", "web-bot-auth"] };
63
+ if (tool === "get_principal" && direction === "response" && object.properties?.kind && ["current", "recognized", "unconfigured"].includes(object.properties.kind.const))
64
+ object.properties.relationship = { ...relationship, $id: void 0 };
65
+ if (tool === "get_adcp_capabilities" && object.properties?.supported_billing)
66
+ object.properties.agent_onboarding = { ...onboarding, $id: void 0 };
67
+ if (tool === "get_adcp_capabilities" && ["request_signing", "webhook_signing"].includes(name) && object.properties)
68
+ object.properties.profiles = {
69
+ type: "array",
70
+ items: {
71
+ type: "string",
72
+ enum: name === "request_signing" ? ["adcp/request-signing/v1", "web-bot-auth"] : ["adcp/webhook-signing/v1", "web-bot-auth"]
73
+ },
74
+ minItems: 1,
75
+ uniqueItems: true
76
+ };
77
+ if (tool === "get_adcp_capabilities" && ["request_signing", "webhook_signing"].includes(name) && object.properties)
78
+ object.properties.wba_draft_revision = { type: "string", minLength: 1 };
79
+ for (const [k, value] of Object.entries(object)) if (k !== "$id") walk2(value, k);
80
+ };
81
+ var walk = walk2;
82
+ const schema = structuredClone(stable.schema);
83
+ const relationship = import_schemas.default.find((s) => s.$id === "/schemas/core/principal-relationship.json");
84
+ const onboarding = import_schemas.default.find((s) => s.$id === "/schemas/core/agent-onboarding.json");
85
+ walk2(schema);
86
+ const ajv = new import_ajv.default({ strict: false, allErrors: true });
87
+ (0, import_ajv_formats.default)(ajv);
88
+ for (const draft of import_schemas.default) ajv.addSchema({ ...draft, $id: "https://adcontextprotocol.org" + draft.$id });
89
+ validator = ajv.compile(schema);
90
+ cache.set(key, validator);
91
+ }
92
+ let valid = validator(payload) === true;
93
+ if (valid && tool === "get_adcp_capabilities" && payload && typeof payload === "object") {
94
+ const body = payload;
95
+ const posture = body.account?.agent_onboarding;
96
+ if (posture && (!body.experimental_features?.includes("account.agent_onboarding") || posture.sandbox !== void 0 && body.account?.sandbox !== true || Object.keys(posture.billing ?? {}).some((k) => !body.account?.supported_billing?.includes(k))))
97
+ return {
98
+ valid: false,
99
+ variant: "sync",
100
+ issues: [
101
+ {
102
+ pointer: "/account/agent_onboarding",
103
+ keyword: "experimental",
104
+ schemaPath: "/identity33/agent_onboarding",
105
+ message: "Onboarding requires its feature declaration and supported account tiers"
106
+ }
107
+ ]
108
+ };
109
+ }
110
+ return {
111
+ valid,
112
+ variant: direction === "request" ? "request" : "sync",
113
+ issues: valid ? [] : (validator.errors ?? []).map((e) => ({
114
+ pointer: e.instancePath,
115
+ keyword: e.keyword,
116
+ message: e.message ?? "Invalid value",
117
+ params: e.params,
118
+ schemaPath: e.schemaPath
119
+ }))
120
+ };
121
+ }
122
+ // Annotate the CommonJS export names for ESM import in node:
123
+ 0 && (module.exports = {
124
+ validateIdentity33Payload
125
+ });
@@ -0,0 +1,91 @@
1
+ import Ajv from "ajv";
2
+ import addFormats from "ajv-formats";
3
+ import { getValidator } from "../validation/schema-loader.mjs";
4
+ import schemas from "./schemas.draft.mjs";
5
+ const validators = /* @__PURE__ */ new WeakMap();
6
+ function validateIdentity33Payload(tool, direction, payload, version) {
7
+ const key = JSON.stringify([tool, direction, version]);
8
+ const stable = getValidator(tool, direction === "request" ? "request" : "sync", version);
9
+ if (!stable) return { valid: true, issues: [], variant: "skipped" };
10
+ let cache = validators.get(stable);
11
+ if (!cache) {
12
+ cache = /* @__PURE__ */ new Map();
13
+ validators.set(stable, cache);
14
+ }
15
+ let validator = cache.get(key);
16
+ if (!validator) {
17
+ let walk2 = function(node, name = "") {
18
+ if (!node || typeof node !== "object") return;
19
+ if (Array.isArray(node)) {
20
+ node.forEach((item) => walk2(item, name));
21
+ return;
22
+ }
23
+ const object = node;
24
+ if ((name === "reporting_webhook" || name === "artifact_webhook" || /Reporting Webhook|Artifact Webhook/i.test(object.title ?? "")) && Array.isArray(object.required))
25
+ object.required = object.required.filter((field) => field !== "authentication");
26
+ if (name === "reason" && Array.isArray(object.enum) && object.enum.includes("destination_state_changed"))
27
+ object.enum = [...object.enum, "relationship_changed", "relationship_expiring"];
28
+ if (object.properties?.url && object.properties?.authentication)
29
+ object.properties.signing_profile = { type: "string", enum: ["adcp/webhook-signing/v1", "web-bot-auth"] };
30
+ if (tool === "get_principal" && direction === "response" && object.properties?.kind && ["current", "recognized", "unconfigured"].includes(object.properties.kind.const))
31
+ object.properties.relationship = { ...relationship, $id: void 0 };
32
+ if (tool === "get_adcp_capabilities" && object.properties?.supported_billing)
33
+ object.properties.agent_onboarding = { ...onboarding, $id: void 0 };
34
+ if (tool === "get_adcp_capabilities" && ["request_signing", "webhook_signing"].includes(name) && object.properties)
35
+ object.properties.profiles = {
36
+ type: "array",
37
+ items: {
38
+ type: "string",
39
+ enum: name === "request_signing" ? ["adcp/request-signing/v1", "web-bot-auth"] : ["adcp/webhook-signing/v1", "web-bot-auth"]
40
+ },
41
+ minItems: 1,
42
+ uniqueItems: true
43
+ };
44
+ if (tool === "get_adcp_capabilities" && ["request_signing", "webhook_signing"].includes(name) && object.properties)
45
+ object.properties.wba_draft_revision = { type: "string", minLength: 1 };
46
+ for (const [k, value] of Object.entries(object)) if (k !== "$id") walk2(value, k);
47
+ };
48
+ var walk = walk2;
49
+ const schema = structuredClone(stable.schema);
50
+ const relationship = schemas.find((s) => s.$id === "/schemas/core/principal-relationship.json");
51
+ const onboarding = schemas.find((s) => s.$id === "/schemas/core/agent-onboarding.json");
52
+ walk2(schema);
53
+ const ajv = new Ajv({ strict: false, allErrors: true });
54
+ addFormats(ajv);
55
+ for (const draft of schemas) ajv.addSchema({ ...draft, $id: "https://adcontextprotocol.org" + draft.$id });
56
+ validator = ajv.compile(schema);
57
+ cache.set(key, validator);
58
+ }
59
+ let valid = validator(payload) === true;
60
+ if (valid && tool === "get_adcp_capabilities" && payload && typeof payload === "object") {
61
+ const body = payload;
62
+ const posture = body.account?.agent_onboarding;
63
+ if (posture && (!body.experimental_features?.includes("account.agent_onboarding") || posture.sandbox !== void 0 && body.account?.sandbox !== true || Object.keys(posture.billing ?? {}).some((k) => !body.account?.supported_billing?.includes(k))))
64
+ return {
65
+ valid: false,
66
+ variant: "sync",
67
+ issues: [
68
+ {
69
+ pointer: "/account/agent_onboarding",
70
+ keyword: "experimental",
71
+ schemaPath: "/identity33/agent_onboarding",
72
+ message: "Onboarding requires its feature declaration and supported account tiers"
73
+ }
74
+ ]
75
+ };
76
+ }
77
+ return {
78
+ valid,
79
+ variant: direction === "request" ? "request" : "sync",
80
+ issues: valid ? [] : (validator.errors ?? []).map((e) => ({
81
+ pointer: e.instancePath,
82
+ keyword: e.keyword,
83
+ message: e.message ?? "Invalid value",
84
+ params: e.params,
85
+ schemaPath: e.schemaPath
86
+ }))
87
+ };
88
+ }
89
+ export {
90
+ validateIdentity33Payload
91
+ };
@@ -216,7 +216,7 @@ export { FormatAsset, imageAssetSlot, videoAssetSlot, audioAssetSlot, textAssetS
216
216
  export { Render, urlRender, htmlRender, bothRender } from './utils/render-builders.mjs';
217
217
  export { FormatRender, displayRender, parameterizedRender, templateRender, type DimensionsRender, type ParameterizedRender, type RenderItem, } from './utils/format-render-builders.mjs';
218
218
  export { CanonicalFormat, canonicalFormatDeclaration, type CanonicalFormatDeclaration, type CanonicalFormatDeclaration as Format, type CanonicalFormatDeclarationFields, type CanonicalFormatKind, type CanonicalFormatParams, type ProductCardDetailedFields, type ProductCardFields, } from './v2/projection/index.mjs';
219
- export { toCanonicalFormatOptionsWithRoutes, toAdditiveCanonicalProduct, withAdditiveCanonicalFormatOptions, toCanonicalOnlyProduct, toCanonicalOnlyResponse, packageRefsForFormatOptions, FormatOptionRefsLookupError, CreativeFormatCapabilityError, CreativeFormatProjectionError, type CreativeFormatWireMode, type LegacyFormatConversionContext, type LegacyFormatConverter, type LegacyFormatResolutionContext, type LegacyFormatResolver, legacyFormatConverterFromCatalogSnapshots, canonicalFormatLegacyResolverFromCatalogSnapshots, canonicalFormatLegacyResolverFromRoutes, legacyRoutesForProduct, projectionAdaptersFromCatalogSnapshots, type ProjectionCatalogAdapters, type ProjectionCatalogSnapshot, type ProjectionCatalogSource, type CanonicalFormatLegacyResolver, type CanonicalFormatLegacyResolutionContext, type CanonicalFormatLegacyRoute, type AdditiveCanonicalProduct, type CanonicalOnlyProduct, type CanonicalCreativeAsset, type CanonicalCreativeAsset as CreativeAsset, type CanonicalSyncCreativeAsset, type CanonicalCreateMediaBuyInput, type CanonicalCreateMediaBuyRequest, type CanonicalCreateMediaBuyRequest as CreateMediaBuyRequest, type CanonicalCreateMediaBuyResponse, type CanonicalCreateMediaBuyResponse as CreateMediaBuyResponse, type CanonicalCreativeResponse, type CanonicalCreativeFilters, type CanonicalCreativeFilters as CreativeFilters, type CanonicalGetCreativeDeliveryResponse, type CanonicalGetCreativeDeliveryResponse as GetCreativeDeliveryResponse, type CanonicalGetMediaBuyDeliveryResponse, type CanonicalGetMediaBuyDeliveryResponse as GetMediaBuyDeliveryResponse, type CanonicalGetMediaBuysResponse, type CanonicalGetMediaBuysResponse as GetMediaBuysResponse, type CanonicalGetProductsResponse as GetProductsResponse, type CanonicalGetProductsRequest, type CanonicalGetProductsRequest as GetProductsRequest, type CanonicalListCreativesRequest, type CanonicalListCreativesRequest as ListCreativesRequest, type CanonicalListCreativesResponse, type CanonicalListCreativesResponse as ListCreativesResponse, type CanonicalListedCreative, type CanonicalPackageRequest, type CanonicalPackageRequest as PackageRequest, type CanonicalPackageUpdate, type CanonicalPackageUpdate as PackageUpdate, type CanonicalPackage, type CanonicalPackage as Package, type CanonicalPlacement, type CanonicalPlacement as Placement, type CanonicalPreviewCreativeRequest, type CanonicalPreviewCreativeRequest as PreviewCreativeRequest, type CanonicalPreviewCreativeResponse, type CanonicalPreviewCreativeResponse as PreviewCreativeResponse, type CanonicalProduct, type CanonicalProduct as Product, type CanonicalProjectedCreative, type CanonicalSyncCreativesRequest, type CanonicalSyncCreativesRequest as SyncCreativesRequest, type CanonicalSyncCreativesResponse, type CanonicalSyncCreativesResponse as SyncCreativesResponse, type CanonicalUpdateMediaBuyRequest, type CanonicalUpdateMediaBuyRequest as UpdateMediaBuyRequest, type CanonicalUpdateMediaBuyResponse, type CanonicalUpdateMediaBuyResponse as UpdateMediaBuyResponse, type LegacyCreativeAsset, type CanonicalCreativeFormatSelectorContainer, type PackageFormatRefs, type ProjectionDiagnostic, type SyncCreativeFormatProjection, } from './v2/projection/index.mjs';
219
+ export { toCanonicalFormatOptionsWithRoutes, toAdditiveCanonicalProduct, withAdditiveCanonicalFormatOptions, toCanonicalOnlyProduct, toCanonicalOnlyResponse, packageRefsForFormatOptions, FormatOptionRefsLookupError, CreativeFormatCapabilityError, CreativeFormatProjectionError, type CreativeFormatWireMode, type LegacyFormatConversionContext, type LegacyFormatConverter, type LegacyFormatResolutionContext, type LegacyFormatResolver, legacyFormatConverterFromCatalogSnapshots, canonicalFormatLegacyResolverFromCatalogSnapshots, canonicalFormatLegacyResolverFromRoutes, legacyRoutesForProduct, projectionAdaptersFromCatalogSnapshots, type ProjectionCatalogAdapters, type ProjectionCatalogSnapshot, type ProjectionCatalogSource, type CanonicalFormatLegacyResolver, type CanonicalFormatLegacyResolutionContext, type CanonicalFormatLegacyRoute, type LegacyRoutesForProductOptions, type AdditiveCanonicalProduct, type CanonicalOnlyProduct, type CanonicalCreativeAsset, type CanonicalCreativeAsset as CreativeAsset, type CanonicalSyncCreativeAsset, type CanonicalCreateMediaBuyInput, type CanonicalCreateMediaBuyRequest, type CanonicalCreateMediaBuyRequest as CreateMediaBuyRequest, type CanonicalCreateMediaBuyResponse, type CanonicalCreateMediaBuyResponse as CreateMediaBuyResponse, type CanonicalCreativeResponse, type CanonicalCreativeFilters, type CanonicalCreativeFilters as CreativeFilters, type CanonicalGetCreativeDeliveryResponse, type CanonicalGetCreativeDeliveryResponse as GetCreativeDeliveryResponse, type CanonicalGetMediaBuyDeliveryResponse, type CanonicalGetMediaBuyDeliveryResponse as GetMediaBuyDeliveryResponse, type CanonicalGetMediaBuysResponse, type CanonicalGetMediaBuysResponse as GetMediaBuysResponse, type CanonicalGetProductsResponse as GetProductsResponse, type CanonicalGetProductsRequest, type CanonicalGetProductsRequest as GetProductsRequest, type CanonicalListCreativesRequest, type CanonicalListCreativesRequest as ListCreativesRequest, type CanonicalListCreativesResponse, type CanonicalListCreativesResponse as ListCreativesResponse, type CanonicalListedCreative, type CanonicalPackageRequest, type CanonicalPackageRequest as PackageRequest, type CanonicalPackageUpdate, type CanonicalPackageUpdate as PackageUpdate, type CanonicalPackage, type CanonicalPackage as Package, type CanonicalPlacement, type CanonicalPlacement as Placement, type CanonicalPreviewCreativeRequest, type CanonicalPreviewCreativeRequest as PreviewCreativeRequest, type CanonicalPreviewCreativeResponse, type CanonicalPreviewCreativeResponse as PreviewCreativeResponse, type CanonicalProduct, type CanonicalProduct as Product, type CanonicalProjectedCreative, type CanonicalSyncCreativesRequest, type CanonicalSyncCreativesRequest as SyncCreativesRequest, type CanonicalSyncCreativesResponse, type CanonicalSyncCreativesResponse as SyncCreativesResponse, type CanonicalUpdateMediaBuyRequest, type CanonicalUpdateMediaBuyRequest as UpdateMediaBuyRequest, type CanonicalUpdateMediaBuyResponse, type CanonicalUpdateMediaBuyResponse as UpdateMediaBuyResponse, type LegacyCreativeAsset, type CanonicalCreativeFormatSelectorContainer, type PackageFormatRefs, type ProjectionDiagnostic, type SyncCreativeFormatProjection, } from './v2/projection/index.mjs';
220
220
  export { activationKey, segmentIdActivationKey, keyValueActivationKey } from './utils/activation-key-builders.mjs';
221
221
  export { signalId, catalogSignalId, agentSignalId, getSignalId, getSignalIssuer } from './utils/signal-id-builders.mjs';
222
222
  export { buildActivateSignalRequest, getSignalActivationId, getSignalPricingOptionIds, normalizeDiscoveredSignal, } from './utils/signal-discovery-helpers.mjs';
@@ -216,7 +216,7 @@ export { FormatAsset, imageAssetSlot, videoAssetSlot, audioAssetSlot, textAssetS
216
216
  export { Render, urlRender, htmlRender, bothRender } from './utils/render-builders';
217
217
  export { FormatRender, displayRender, parameterizedRender, templateRender, type DimensionsRender, type ParameterizedRender, type RenderItem, } from './utils/format-render-builders';
218
218
  export { CanonicalFormat, canonicalFormatDeclaration, type CanonicalFormatDeclaration, type CanonicalFormatDeclaration as Format, type CanonicalFormatDeclarationFields, type CanonicalFormatKind, type CanonicalFormatParams, type ProductCardDetailedFields, type ProductCardFields, } from './v2/projection';
219
- export { toCanonicalFormatOptionsWithRoutes, toAdditiveCanonicalProduct, withAdditiveCanonicalFormatOptions, toCanonicalOnlyProduct, toCanonicalOnlyResponse, packageRefsForFormatOptions, FormatOptionRefsLookupError, CreativeFormatCapabilityError, CreativeFormatProjectionError, type CreativeFormatWireMode, type LegacyFormatConversionContext, type LegacyFormatConverter, type LegacyFormatResolutionContext, type LegacyFormatResolver, legacyFormatConverterFromCatalogSnapshots, canonicalFormatLegacyResolverFromCatalogSnapshots, canonicalFormatLegacyResolverFromRoutes, legacyRoutesForProduct, projectionAdaptersFromCatalogSnapshots, type ProjectionCatalogAdapters, type ProjectionCatalogSnapshot, type ProjectionCatalogSource, type CanonicalFormatLegacyResolver, type CanonicalFormatLegacyResolutionContext, type CanonicalFormatLegacyRoute, type AdditiveCanonicalProduct, type CanonicalOnlyProduct, type CanonicalCreativeAsset, type CanonicalCreativeAsset as CreativeAsset, type CanonicalSyncCreativeAsset, type CanonicalCreateMediaBuyInput, type CanonicalCreateMediaBuyRequest, type CanonicalCreateMediaBuyRequest as CreateMediaBuyRequest, type CanonicalCreateMediaBuyResponse, type CanonicalCreateMediaBuyResponse as CreateMediaBuyResponse, type CanonicalCreativeResponse, type CanonicalCreativeFilters, type CanonicalCreativeFilters as CreativeFilters, type CanonicalGetCreativeDeliveryResponse, type CanonicalGetCreativeDeliveryResponse as GetCreativeDeliveryResponse, type CanonicalGetMediaBuyDeliveryResponse, type CanonicalGetMediaBuyDeliveryResponse as GetMediaBuyDeliveryResponse, type CanonicalGetMediaBuysResponse, type CanonicalGetMediaBuysResponse as GetMediaBuysResponse, type CanonicalGetProductsResponse as GetProductsResponse, type CanonicalGetProductsRequest, type CanonicalGetProductsRequest as GetProductsRequest, type CanonicalListCreativesRequest, type CanonicalListCreativesRequest as ListCreativesRequest, type CanonicalListCreativesResponse, type CanonicalListCreativesResponse as ListCreativesResponse, type CanonicalListedCreative, type CanonicalPackageRequest, type CanonicalPackageRequest as PackageRequest, type CanonicalPackageUpdate, type CanonicalPackageUpdate as PackageUpdate, type CanonicalPackage, type CanonicalPackage as Package, type CanonicalPlacement, type CanonicalPlacement as Placement, type CanonicalPreviewCreativeRequest, type CanonicalPreviewCreativeRequest as PreviewCreativeRequest, type CanonicalPreviewCreativeResponse, type CanonicalPreviewCreativeResponse as PreviewCreativeResponse, type CanonicalProduct, type CanonicalProduct as Product, type CanonicalProjectedCreative, type CanonicalSyncCreativesRequest, type CanonicalSyncCreativesRequest as SyncCreativesRequest, type CanonicalSyncCreativesResponse, type CanonicalSyncCreativesResponse as SyncCreativesResponse, type CanonicalUpdateMediaBuyRequest, type CanonicalUpdateMediaBuyRequest as UpdateMediaBuyRequest, type CanonicalUpdateMediaBuyResponse, type CanonicalUpdateMediaBuyResponse as UpdateMediaBuyResponse, type LegacyCreativeAsset, type CanonicalCreativeFormatSelectorContainer, type PackageFormatRefs, type ProjectionDiagnostic, type SyncCreativeFormatProjection, } from './v2/projection';
219
+ export { toCanonicalFormatOptionsWithRoutes, toAdditiveCanonicalProduct, withAdditiveCanonicalFormatOptions, toCanonicalOnlyProduct, toCanonicalOnlyResponse, packageRefsForFormatOptions, FormatOptionRefsLookupError, CreativeFormatCapabilityError, CreativeFormatProjectionError, type CreativeFormatWireMode, type LegacyFormatConversionContext, type LegacyFormatConverter, type LegacyFormatResolutionContext, type LegacyFormatResolver, legacyFormatConverterFromCatalogSnapshots, canonicalFormatLegacyResolverFromCatalogSnapshots, canonicalFormatLegacyResolverFromRoutes, legacyRoutesForProduct, projectionAdaptersFromCatalogSnapshots, type ProjectionCatalogAdapters, type ProjectionCatalogSnapshot, type ProjectionCatalogSource, type CanonicalFormatLegacyResolver, type CanonicalFormatLegacyResolutionContext, type CanonicalFormatLegacyRoute, type LegacyRoutesForProductOptions, type AdditiveCanonicalProduct, type CanonicalOnlyProduct, type CanonicalCreativeAsset, type CanonicalCreativeAsset as CreativeAsset, type CanonicalSyncCreativeAsset, type CanonicalCreateMediaBuyInput, type CanonicalCreateMediaBuyRequest, type CanonicalCreateMediaBuyRequest as CreateMediaBuyRequest, type CanonicalCreateMediaBuyResponse, type CanonicalCreateMediaBuyResponse as CreateMediaBuyResponse, type CanonicalCreativeResponse, type CanonicalCreativeFilters, type CanonicalCreativeFilters as CreativeFilters, type CanonicalGetCreativeDeliveryResponse, type CanonicalGetCreativeDeliveryResponse as GetCreativeDeliveryResponse, type CanonicalGetMediaBuyDeliveryResponse, type CanonicalGetMediaBuyDeliveryResponse as GetMediaBuyDeliveryResponse, type CanonicalGetMediaBuysResponse, type CanonicalGetMediaBuysResponse as GetMediaBuysResponse, type CanonicalGetProductsResponse as GetProductsResponse, type CanonicalGetProductsRequest, type CanonicalGetProductsRequest as GetProductsRequest, type CanonicalListCreativesRequest, type CanonicalListCreativesRequest as ListCreativesRequest, type CanonicalListCreativesResponse, type CanonicalListCreativesResponse as ListCreativesResponse, type CanonicalListedCreative, type CanonicalPackageRequest, type CanonicalPackageRequest as PackageRequest, type CanonicalPackageUpdate, type CanonicalPackageUpdate as PackageUpdate, type CanonicalPackage, type CanonicalPackage as Package, type CanonicalPlacement, type CanonicalPlacement as Placement, type CanonicalPreviewCreativeRequest, type CanonicalPreviewCreativeRequest as PreviewCreativeRequest, type CanonicalPreviewCreativeResponse, type CanonicalPreviewCreativeResponse as PreviewCreativeResponse, type CanonicalProduct, type CanonicalProduct as Product, type CanonicalProjectedCreative, type CanonicalSyncCreativesRequest, type CanonicalSyncCreativesRequest as SyncCreativesRequest, type CanonicalSyncCreativesResponse, type CanonicalSyncCreativesResponse as SyncCreativesResponse, type CanonicalUpdateMediaBuyRequest, type CanonicalUpdateMediaBuyRequest as UpdateMediaBuyRequest, type CanonicalUpdateMediaBuyResponse, type CanonicalUpdateMediaBuyResponse as UpdateMediaBuyResponse, type LegacyCreativeAsset, type CanonicalCreativeFormatSelectorContainer, type PackageFormatRefs, type ProjectionDiagnostic, type SyncCreativeFormatProjection, } from './v2/projection';
220
220
  export { activationKey, segmentIdActivationKey, keyValueActivationKey } from './utils/activation-key-builders';
221
221
  export { signalId, catalogSignalId, agentSignalId, getSignalId, getSignalIssuer } from './utils/signal-id-builders';
222
222
  export { buildActivateSignalRequest, getSignalActivationId, getSignalPricingOptionIds, normalizeDiscoveredSignal, } from './utils/signal-discovery-helpers';
@@ -1,5 +1,8 @@
1
1
  import type { BlobServiceClient } from '@azure/storage-blob';
2
2
  import type { ReportingRowObjectProviderV1 } from '../ledger/row-storage-object.mjs';
3
+ /**
4
+ * @experimental Reliable Reporting storage surface: breaking changes may ship in minor releases. See https://github.com/adcontextprotocol/adcp-client/blob/main/docs/guides/REPORTING-STABILITY.md
5
+ */
3
6
  export interface CreateAzureBlobReportingRowObjectProviderOptionsV1 {
4
7
  /** Official client used by bindings without a `credentialRef`. */
5
8
  client?: BlobServiceClient;
@@ -22,5 +25,7 @@ export interface CreateAzureBlobReportingRowObjectProviderOptionsV1 {
22
25
  * identical bytes at the same key (ETags are content-derived and cannot fence that).
23
26
  * The probe refuses accounts without versioning and proves create-only behaviour
24
27
  * empirically.
28
+ *
29
+ * @experimental Reliable Reporting storage surface: breaking changes may ship in minor releases. See https://github.com/adcontextprotocol/adcp-client/blob/main/docs/guides/REPORTING-STABILITY.md
25
30
  */
26
31
  export declare function createAzureBlobReportingRowObjectProviderV1(options: CreateAzureBlobReportingRowObjectProviderOptionsV1): ReportingRowObjectProviderV1;
@@ -1,5 +1,8 @@
1
1
  import type { BlobServiceClient } from '@azure/storage-blob';
2
2
  import type { ReportingRowObjectProviderV1 } from '../ledger/row-storage-object';
3
+ /**
4
+ * @experimental Reliable Reporting storage surface: breaking changes may ship in minor releases. See https://github.com/adcontextprotocol/adcp-client/blob/main/docs/guides/REPORTING-STABILITY.md
5
+ */
3
6
  export interface CreateAzureBlobReportingRowObjectProviderOptionsV1 {
4
7
  /** Official client used by bindings without a `credentialRef`. */
5
8
  client?: BlobServiceClient;
@@ -22,5 +25,7 @@ export interface CreateAzureBlobReportingRowObjectProviderOptionsV1 {
22
25
  * identical bytes at the same key (ETags are content-derived and cannot fence that).
23
26
  * The probe refuses accounts without versioning and proves create-only behaviour
24
27
  * empirically.
28
+ *
29
+ * @experimental Reliable Reporting storage surface: breaking changes may ship in minor releases. See https://github.com/adcontextprotocol/adcp-client/blob/main/docs/guides/REPORTING-STABILITY.md
25
30
  */
26
31
  export declare function createAzureBlobReportingRowObjectProviderV1(options: CreateAzureBlobReportingRowObjectProviderOptionsV1): ReportingRowObjectProviderV1;
@@ -86,12 +86,12 @@ function createAzureBlobReportingRowObjectProviderV1(options) {
86
86
  return client.getContainerClient(input.location.container);
87
87
  };
88
88
  const blobFor = (input) => {
89
- if (typeof input.key !== "string" || input.key.length === 0 || input.key.length > 1024) {
89
+ if (typeof input.objectRef !== "string" || input.objectRef.length === 0 || input.objectRef.length > 1024) {
90
90
  throw new import_row_storage_errors.ReportingRowStoreError("INVALID_INPUT", "object key is invalid");
91
91
  }
92
- return containerFor(input).getBlockBlobClient(input.key);
92
+ return containerFor(input).getBlockBlobClient(input.objectRef);
93
93
  };
94
- const pinned = (blob, nativeVersion) => typeof nativeVersion === "string" && VERSION_ID.test(nativeVersion) ? { blob: blob.withVersion(nativeVersion), versionId: nativeVersion } : null;
94
+ const pinned = (blob, nativeVersionRef) => typeof nativeVersionRef === "string" && VERSION_ID.test(nativeVersionRef) ? { blob: blob.withVersion(nativeVersionRef), versionId: nativeVersionRef } : null;
95
95
  async function assertCreateOnlyEnforced(container, prefix, signal) {
96
96
  const blob = container.getBlockBlobClient(`${prefix}/.adcp-probe/${(0, import_node_crypto.randomUUID)()}`);
97
97
  const versionIds = [];
@@ -158,19 +158,19 @@ function createAzureBlobReportingRowObjectProviderV1(options) {
158
158
  metadata: metadataOf(input.metadata),
159
159
  abortSignal: context.signal
160
160
  });
161
- return { created: true, nativeVersion: versionOf(response) };
161
+ return { created: true, nativeVersionRef: versionOf(response) };
162
162
  } catch (error) {
163
163
  if (!isConflict(error)) throw error;
164
164
  }
165
165
  const existing = await blob.getProperties({ abortSignal: context.signal });
166
- return { created: false, nativeVersion: versionOf(existing) };
166
+ return { created: false, nativeVersionRef: versionOf(existing) };
167
167
  });
168
168
  },
169
169
  get(input, context) {
170
170
  return (0, import_row_storage_provider_io.runReportingRowProviderOperation)(context.signal, async () => {
171
171
  const blob = blobFor(input);
172
172
  (0, import_row_storage_provider_io.assertReportingRowReadBounds)(input);
173
- const target = pinned(blob, input.nativeVersion);
173
+ const target = pinned(blob, input.nativeVersionRef);
174
174
  if (target === null) return null;
175
175
  try {
176
176
  if (input.range?.length === 0) {
@@ -207,10 +207,29 @@ function createAzureBlobReportingRowObjectProviderV1(options) {
207
207
  }
208
208
  });
209
209
  },
210
+ stat(input, context) {
211
+ return (0, import_row_storage_provider_io.runReportingRowProviderOperation)(context.signal, async () => {
212
+ const blob = blobFor(input);
213
+ const target = pinned(blob, input.nativeVersionRef);
214
+ if (target === null) return null;
215
+ try {
216
+ const properties = await target.blob.getProperties({ abortSignal: context.signal });
217
+ if (!servedVersion(properties, target.versionId)) return null;
218
+ const size = properties.contentLength;
219
+ if (typeof size !== "number" || !Number.isSafeInteger(size) || size < 0) {
220
+ throw new import_row_storage_errors.ReportingRowStoreError("PROVIDER_UNAVAILABLE", "blob metadata is malformed");
221
+ }
222
+ return { nativeVersionRef: target.versionId, sizeBytes: size };
223
+ } catch (error) {
224
+ if (isMissing(error) || statusOf(error) === 400) return null;
225
+ throw error;
226
+ }
227
+ });
228
+ },
210
229
  delete(input, context) {
211
230
  return (0, import_row_storage_provider_io.runReportingRowProviderOperation)(context.signal, async () => {
212
231
  const blob = blobFor(input);
213
- const target = pinned(blob, input.nativeVersion);
232
+ const target = pinned(blob, input.nativeVersionRef);
214
233
  if (target === null) return "absent";
215
234
  const signal = context.signal;
216
235
  try {
@@ -70,12 +70,12 @@ function createAzureBlobReportingRowObjectProviderV1(options) {
70
70
  return client.getContainerClient(input.location.container);
71
71
  };
72
72
  const blobFor = (input) => {
73
- if (typeof input.key !== "string" || input.key.length === 0 || input.key.length > 1024) {
73
+ if (typeof input.objectRef !== "string" || input.objectRef.length === 0 || input.objectRef.length > 1024) {
74
74
  throw new ReportingRowStoreError("INVALID_INPUT", "object key is invalid");
75
75
  }
76
- return containerFor(input).getBlockBlobClient(input.key);
76
+ return containerFor(input).getBlockBlobClient(input.objectRef);
77
77
  };
78
- const pinned = (blob, nativeVersion) => typeof nativeVersion === "string" && VERSION_ID.test(nativeVersion) ? { blob: blob.withVersion(nativeVersion), versionId: nativeVersion } : null;
78
+ const pinned = (blob, nativeVersionRef) => typeof nativeVersionRef === "string" && VERSION_ID.test(nativeVersionRef) ? { blob: blob.withVersion(nativeVersionRef), versionId: nativeVersionRef } : null;
79
79
  async function assertCreateOnlyEnforced(container, prefix, signal) {
80
80
  const blob = container.getBlockBlobClient(`${prefix}/.adcp-probe/${randomUUID()}`);
81
81
  const versionIds = [];
@@ -142,19 +142,19 @@ function createAzureBlobReportingRowObjectProviderV1(options) {
142
142
  metadata: metadataOf(input.metadata),
143
143
  abortSignal: context.signal
144
144
  });
145
- return { created: true, nativeVersion: versionOf(response) };
145
+ return { created: true, nativeVersionRef: versionOf(response) };
146
146
  } catch (error) {
147
147
  if (!isConflict(error)) throw error;
148
148
  }
149
149
  const existing = await blob.getProperties({ abortSignal: context.signal });
150
- return { created: false, nativeVersion: versionOf(existing) };
150
+ return { created: false, nativeVersionRef: versionOf(existing) };
151
151
  });
152
152
  },
153
153
  get(input, context) {
154
154
  return runReportingRowProviderOperation(context.signal, async () => {
155
155
  const blob = blobFor(input);
156
156
  assertReportingRowReadBounds(input);
157
- const target = pinned(blob, input.nativeVersion);
157
+ const target = pinned(blob, input.nativeVersionRef);
158
158
  if (target === null) return null;
159
159
  try {
160
160
  if (input.range?.length === 0) {
@@ -191,10 +191,29 @@ function createAzureBlobReportingRowObjectProviderV1(options) {
191
191
  }
192
192
  });
193
193
  },
194
+ stat(input, context) {
195
+ return runReportingRowProviderOperation(context.signal, async () => {
196
+ const blob = blobFor(input);
197
+ const target = pinned(blob, input.nativeVersionRef);
198
+ if (target === null) return null;
199
+ try {
200
+ const properties = await target.blob.getProperties({ abortSignal: context.signal });
201
+ if (!servedVersion(properties, target.versionId)) return null;
202
+ const size = properties.contentLength;
203
+ if (typeof size !== "number" || !Number.isSafeInteger(size) || size < 0) {
204
+ throw new ReportingRowStoreError("PROVIDER_UNAVAILABLE", "blob metadata is malformed");
205
+ }
206
+ return { nativeVersionRef: target.versionId, sizeBytes: size };
207
+ } catch (error) {
208
+ if (isMissing(error) || statusOf(error) === 400) return null;
209
+ throw error;
210
+ }
211
+ });
212
+ },
194
213
  delete(input, context) {
195
214
  return runReportingRowProviderOperation(context.signal, async () => {
196
215
  const blob = blobFor(input);
197
- const target = pinned(blob, input.nativeVersion);
216
+ const target = pinned(blob, input.nativeVersionRef);
198
217
  if (target === null) return "absent";
199
218
  const signal = context.signal;
200
219
  try {