@adcp/sdk 15.9.1 → 16.0.0-beta.2

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 (321) 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 +25 -2
  12. package/dist/lib/core/SingleAgentClient.d.ts +25 -2
  13. package/dist/lib/core/SingleAgentClient.js +280 -62
  14. package/dist/lib/core/SingleAgentClient.mjs +282 -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/generated-compat.d.mts +34 -0
  28. package/dist/lib/identity-3.3/generated-compat.d.ts +34 -0
  29. package/dist/lib/identity-3.3/generated-compat.js +16 -0
  30. package/dist/lib/identity-3.3/generated-compat.mjs +0 -0
  31. package/dist/lib/identity-3.3/index.d.mts +10 -0
  32. package/dist/lib/identity-3.3/index.d.ts +10 -0
  33. package/dist/lib/identity-3.3/index.js +79 -0
  34. package/dist/lib/identity-3.3/index.mjs +50 -0
  35. package/dist/lib/identity-3.3/lifecycle.d.mts +125 -0
  36. package/dist/lib/identity-3.3/lifecycle.d.ts +125 -0
  37. package/dist/lib/identity-3.3/lifecycle.js +294 -0
  38. package/dist/lib/identity-3.3/lifecycle.mjs +272 -0
  39. package/dist/lib/identity-3.3/revocation.d.mts +86 -0
  40. package/dist/lib/identity-3.3/revocation.d.ts +86 -0
  41. package/dist/lib/identity-3.3/revocation.js +308 -0
  42. package/dist/lib/identity-3.3/revocation.mjs +286 -0
  43. package/dist/lib/identity-3.3/schemas.draft.d.mts +2472 -0
  44. package/dist/lib/identity-3.3/schemas.draft.d.ts +2472 -0
  45. package/dist/lib/identity-3.3/schemas.draft.js +1448 -0
  46. package/dist/lib/identity-3.3/schemas.draft.mjs +1428 -0
  47. package/dist/lib/identity-3.3/server.d.mts +46 -0
  48. package/dist/lib/identity-3.3/server.d.ts +46 -0
  49. package/dist/lib/identity-3.3/server.js +279 -0
  50. package/dist/lib/identity-3.3/server.mjs +260 -0
  51. package/dist/lib/identity-3.3/store.d.mts +24 -0
  52. package/dist/lib/identity-3.3/store.d.ts +24 -0
  53. package/dist/lib/identity-3.3/store.js +191 -0
  54. package/dist/lib/identity-3.3/store.mjs +169 -0
  55. package/dist/lib/identity-3.3/trust.d.mts +155 -0
  56. package/dist/lib/identity-3.3/trust.d.ts +155 -0
  57. package/dist/lib/identity-3.3/trust.js +383 -0
  58. package/dist/lib/identity-3.3/trust.mjs +342 -0
  59. package/dist/lib/identity-3.3/types.d.mts +155 -0
  60. package/dist/lib/identity-3.3/types.d.ts +155 -0
  61. package/dist/lib/identity-3.3/types.js +16 -0
  62. package/dist/lib/identity-3.3/types.mjs +0 -0
  63. package/dist/lib/identity-3.3/validation.d.mts +2 -0
  64. package/dist/lib/identity-3.3/validation.d.ts +2 -0
  65. package/dist/lib/identity-3.3/validation.js +125 -0
  66. package/dist/lib/identity-3.3/validation.mjs +91 -0
  67. package/dist/lib/index.d.mts +1 -1
  68. package/dist/lib/index.d.ts +1 -1
  69. package/dist/lib/index.js +2 -0
  70. package/dist/lib/index.mjs +2 -0
  71. package/dist/lib/protocols/index.d.mts +1 -1
  72. package/dist/lib/protocols/index.d.ts +1 -1
  73. package/dist/lib/protocols/index.js +2 -2
  74. package/dist/lib/protocols/index.mjs +2 -2
  75. package/dist/lib/reporting/azure/index.d.mts +5 -0
  76. package/dist/lib/reporting/azure/index.d.ts +5 -0
  77. package/dist/lib/reporting/azure/index.js +26 -7
  78. package/dist/lib/reporting/azure/index.mjs +26 -7
  79. package/dist/lib/reporting/bigquery/index.d.mts +39 -5
  80. package/dist/lib/reporting/bigquery/index.d.ts +39 -5
  81. package/dist/lib/reporting/bigquery/index.js +26 -20
  82. package/dist/lib/reporting/bigquery/index.mjs +26 -20
  83. package/dist/lib/reporting/gcs/adapter.d.mts +8 -1
  84. package/dist/lib/reporting/gcs/adapter.d.ts +8 -1
  85. package/dist/lib/reporting/gcs/errors.d.mts +6 -0
  86. package/dist/lib/reporting/gcs/errors.d.ts +6 -0
  87. package/dist/lib/reporting/gcs/fence.d.mts +5 -0
  88. package/dist/lib/reporting/gcs/fence.d.ts +5 -0
  89. package/dist/lib/reporting/gcs/index.d.mts +9 -0
  90. package/dist/lib/reporting/gcs/index.d.ts +9 -0
  91. package/dist/lib/reporting/gcs/reader.d.mts +27 -3
  92. package/dist/lib/reporting/gcs/reader.d.ts +27 -3
  93. package/dist/lib/reporting/gcs/row-provider.d.mts +7 -0
  94. package/dist/lib/reporting/gcs/row-provider.d.ts +7 -0
  95. package/dist/lib/reporting/gcs/row-provider.js +34 -14
  96. package/dist/lib/reporting/gcs/row-provider.mjs +34 -14
  97. package/dist/lib/reporting/ledger/change-feed.d.mts +22 -1
  98. package/dist/lib/reporting/ledger/change-feed.d.ts +22 -1
  99. package/dist/lib/reporting/ledger/index.d.mts +11 -0
  100. package/dist/lib/reporting/ledger/index.d.ts +11 -0
  101. package/dist/lib/reporting/ledger/managed-postgres.d.mts +8 -0
  102. package/dist/lib/reporting/ledger/managed-postgres.d.ts +8 -0
  103. package/dist/lib/reporting/ledger/managed-router.d.mts +27 -2
  104. package/dist/lib/reporting/ledger/managed-router.d.ts +27 -2
  105. package/dist/lib/reporting/ledger/managed.d.mts +86 -6
  106. package/dist/lib/reporting/ledger/managed.d.ts +86 -6
  107. package/dist/lib/reporting/ledger/notification-activity.d.mts +65 -3
  108. package/dist/lib/reporting/ledger/notification-activity.d.ts +65 -3
  109. package/dist/lib/reporting/ledger/object-writes.d.mts +64 -5
  110. package/dist/lib/reporting/ledger/object-writes.d.ts +64 -5
  111. package/dist/lib/reporting/ledger/postgres.d.mts +43 -9
  112. package/dist/lib/reporting/ledger/postgres.d.ts +43 -9
  113. package/dist/lib/reporting/ledger/postgres.js +43 -27
  114. package/dist/lib/reporting/ledger/postgres.mjs +43 -27
  115. package/dist/lib/reporting/ledger/row-encoding.d.mts +92 -6
  116. package/dist/lib/reporting/ledger/row-encoding.d.ts +92 -6
  117. package/dist/lib/reporting/ledger/row-encoding.js +8 -4
  118. package/dist/lib/reporting/ledger/row-encoding.mjs +6 -3
  119. package/dist/lib/reporting/ledger/row-storage-errors.d.mts +11 -1
  120. package/dist/lib/reporting/ledger/row-storage-errors.d.ts +11 -1
  121. package/dist/lib/reporting/ledger/row-storage-migration.d.mts +19 -1
  122. package/dist/lib/reporting/ledger/row-storage-migration.d.ts +19 -1
  123. package/dist/lib/reporting/ledger/row-storage-migration.js +133 -18
  124. package/dist/lib/reporting/ledger/row-storage-migration.mjs +133 -18
  125. package/dist/lib/reporting/ledger/row-storage-object.d.mts +103 -12
  126. package/dist/lib/reporting/ledger/row-storage-object.d.ts +103 -12
  127. package/dist/lib/reporting/ledger/row-storage-object.js +106 -31
  128. package/dist/lib/reporting/ledger/row-storage-object.mjs +104 -31
  129. package/dist/lib/reporting/ledger/row-storage.d.mts +87 -20
  130. package/dist/lib/reporting/ledger/row-storage.d.ts +87 -20
  131. package/dist/lib/reporting/ledger/row-storage.js +126 -66
  132. package/dist/lib/reporting/ledger/row-storage.mjs +129 -67
  133. package/dist/lib/reporting/ledger/schedule.d.mts +13 -0
  134. package/dist/lib/reporting/ledger/schedule.d.ts +13 -0
  135. package/dist/lib/reporting/ledger/schedule.js +24 -0
  136. package/dist/lib/reporting/ledger/schedule.mjs +23 -0
  137. package/dist/lib/reporting/ledger/types.d.mts +23 -1
  138. package/dist/lib/reporting/ledger/types.d.ts +23 -1
  139. package/dist/lib/reporting/s3/index.d.mts +5 -0
  140. package/dist/lib/reporting/s3/index.d.ts +5 -0
  141. package/dist/lib/reporting/s3/index.js +37 -14
  142. package/dist/lib/reporting/s3/index.mjs +37 -14
  143. package/dist/lib/reporting/service/index.d.mts +10 -0
  144. package/dist/lib/reporting/service/index.d.ts +10 -0
  145. package/dist/lib/reporting/service/maintenance.d.mts +28 -2
  146. package/dist/lib/reporting/service/maintenance.d.ts +28 -2
  147. package/dist/lib/schemas-data/v2.5/_provenance.json +1 -1
  148. package/dist/lib/server/account-sync-contract.d.mts +14 -0
  149. package/dist/lib/server/account-sync-contract.d.ts +14 -0
  150. package/dist/lib/server/account-sync-contract.js +225 -0
  151. package/dist/lib/server/account-sync-contract.mjs +197 -0
  152. package/dist/lib/server/adcp-server.js +5 -0
  153. package/dist/lib/server/adcp-server.mjs +10 -0
  154. package/dist/lib/server/auth-signature.d.mts +15 -0
  155. package/dist/lib/server/auth-signature.d.ts +15 -0
  156. package/dist/lib/server/auth-signature.js +72 -2
  157. package/dist/lib/server/auth-signature.mjs +81 -2
  158. package/dist/lib/server/auth.d.mts +6 -0
  159. package/dist/lib/server/auth.d.ts +6 -0
  160. package/dist/lib/server/auth.js +6 -0
  161. package/dist/lib/server/auth.mjs +6 -0
  162. package/dist/lib/server/create-adcp-server.d.mts +19 -5
  163. package/dist/lib/server/create-adcp-server.d.ts +19 -5
  164. package/dist/lib/server/create-adcp-server.js +259 -19
  165. package/dist/lib/server/create-adcp-server.mjs +266 -10
  166. package/dist/lib/server/decisioning/account.d.mts +24 -1
  167. package/dist/lib/server/decisioning/account.d.ts +24 -1
  168. package/dist/lib/server/decisioning/index.d.mts +1 -1
  169. package/dist/lib/server/decisioning/index.d.ts +1 -1
  170. package/dist/lib/server/decisioning/runtime/from-platform.d.mts +0 -50
  171. package/dist/lib/server/decisioning/runtime/from-platform.d.ts +0 -50
  172. package/dist/lib/server/decisioning/runtime/from-platform.js +61 -11
  173. package/dist/lib/server/decisioning/runtime/from-platform.mjs +65 -12
  174. package/dist/lib/server/index.d.mts +2 -0
  175. package/dist/lib/server/index.d.ts +2 -0
  176. package/dist/lib/server/index.js +12 -0
  177. package/dist/lib/server/index.mjs +12 -0
  178. package/dist/lib/server/notification-subscriptions/runtime.js +9 -1
  179. package/dist/lib/server/notification-subscriptions/runtime.mjs +9 -1
  180. package/dist/lib/server/notification-subscriptions/types.d.mts +5 -0
  181. package/dist/lib/server/notification-subscriptions/types.d.ts +5 -0
  182. package/dist/lib/server/principal/types.d.mts +1 -1
  183. package/dist/lib/server/principal/types.d.ts +1 -1
  184. package/dist/lib/server/serve.js +5 -0
  185. package/dist/lib/server/serve.mjs +5 -0
  186. package/dist/lib/server/webhook-delivery/recovery.d.mts +1 -0
  187. package/dist/lib/server/webhook-delivery/recovery.d.ts +1 -0
  188. package/dist/lib/server/webhook-delivery/recovery.js +4 -0
  189. package/dist/lib/server/webhook-delivery/recovery.mjs +4 -0
  190. package/dist/lib/server/webhook-emitter.d.mts +10 -0
  191. package/dist/lib/server/webhook-emitter.d.ts +10 -0
  192. package/dist/lib/server/webhook-emitter.js +22 -0
  193. package/dist/lib/server/webhook-emitter.mjs +22 -0
  194. package/dist/lib/signing/agent-context.d.mts +0 -5
  195. package/dist/lib/signing/agent-context.d.ts +0 -5
  196. package/dist/lib/signing/agent-context.js +9 -1
  197. package/dist/lib/signing/agent-context.mjs +9 -1
  198. package/dist/lib/signing/agent-fetch.js +27 -2
  199. package/dist/lib/signing/agent-fetch.mjs +32 -2
  200. package/dist/lib/signing/agent-resolver/canonicalize.d.mts +10 -15
  201. package/dist/lib/signing/agent-resolver/canonicalize.d.ts +10 -15
  202. package/dist/lib/signing/agent-resolver/canonicalize.js +17 -5
  203. package/dist/lib/signing/agent-resolver/canonicalize.mjs +16 -5
  204. package/dist/lib/signing/agent-resolver/index.d.mts +1 -0
  205. package/dist/lib/signing/agent-resolver/index.d.ts +1 -0
  206. package/dist/lib/signing/agent-resolver/index.js +5 -0
  207. package/dist/lib/signing/agent-resolver/index.mjs +3 -0
  208. package/dist/lib/signing/agent-resolver/resolved-agent-jwks.d.mts +3 -2
  209. package/dist/lib/signing/agent-resolver/resolved-agent-jwks.d.ts +3 -2
  210. package/dist/lib/signing/agent-resolver/resolved-agent-jwks.js +30 -3
  211. package/dist/lib/signing/agent-resolver/resolved-agent-jwks.mjs +30 -3
  212. package/dist/lib/signing/agent-resolver/strict-json.d.mts +2 -2
  213. package/dist/lib/signing/agent-resolver/strict-json.d.ts +2 -2
  214. package/dist/lib/signing/agent-resolver/strict-json.js +5 -3
  215. package/dist/lib/signing/agent-resolver/strict-json.mjs +5 -3
  216. package/dist/lib/signing/brand-jwks.d.mts +2 -2
  217. package/dist/lib/signing/brand-jwks.d.ts +2 -2
  218. package/dist/lib/signing/brand-jwks.js +4 -4
  219. package/dist/lib/signing/brand-jwks.mjs +4 -4
  220. package/dist/lib/signing/client.d.mts +1 -0
  221. package/dist/lib/signing/client.d.ts +1 -0
  222. package/dist/lib/signing/client.js +5 -0
  223. package/dist/lib/signing/client.mjs +3 -0
  224. package/dist/lib/signing/crypto.js +8 -0
  225. package/dist/lib/signing/crypto.mjs +9 -1
  226. package/dist/lib/signing/fetch-async.js +1 -1
  227. package/dist/lib/signing/fetch-async.mjs +1 -1
  228. package/dist/lib/signing/fetch.js +1 -1
  229. package/dist/lib/signing/fetch.mjs +1 -1
  230. package/dist/lib/signing/jwks-https.d.mts +1 -1
  231. package/dist/lib/signing/jwks-https.d.ts +1 -1
  232. package/dist/lib/signing/jwks-https.js +1 -1
  233. package/dist/lib/signing/jwks-https.mjs +1 -1
  234. package/dist/lib/signing/jwks.d.mts +11 -3
  235. package/dist/lib/signing/jwks.d.ts +11 -3
  236. package/dist/lib/signing/jwks.js +1 -1
  237. package/dist/lib/signing/jwks.mjs +1 -1
  238. package/dist/lib/signing/middleware.js +9 -0
  239. package/dist/lib/signing/middleware.mjs +14 -0
  240. package/dist/lib/signing/parser.d.mts +9 -6
  241. package/dist/lib/signing/parser.d.ts +9 -6
  242. package/dist/lib/signing/parser.js +82 -64
  243. package/dist/lib/signing/parser.mjs +83 -65
  244. package/dist/lib/signing/revocation.d.mts +4 -1
  245. package/dist/lib/signing/revocation.d.ts +4 -1
  246. package/dist/lib/signing/revocation.js +36 -3
  247. package/dist/lib/signing/revocation.mjs +34 -2
  248. package/dist/lib/signing/server.d.mts +1 -1
  249. package/dist/lib/signing/server.d.ts +1 -1
  250. package/dist/lib/signing/server.js +4 -0
  251. package/dist/lib/signing/server.mjs +4 -0
  252. package/dist/lib/signing/types.d.mts +3 -0
  253. package/dist/lib/signing/types.d.ts +3 -0
  254. package/dist/lib/signing/verifier.js +1 -1
  255. package/dist/lib/signing/verifier.mjs +1 -1
  256. package/dist/lib/signing/web-bot-auth.d.mts +191 -0
  257. package/dist/lib/signing/web-bot-auth.d.ts +191 -0
  258. package/dist/lib/signing/web-bot-auth.js +837 -0
  259. package/dist/lib/signing/web-bot-auth.mjs +796 -0
  260. package/dist/lib/signing/webhook-verifier.js +1 -1
  261. package/dist/lib/signing/webhook-verifier.mjs +1 -1
  262. package/dist/lib/testing/client.d.mts +1 -4
  263. package/dist/lib/testing/client.d.ts +1 -4
  264. package/dist/lib/testing/client.js +141 -20
  265. package/dist/lib/testing/client.mjs +137 -19
  266. package/dist/lib/testing/compliance/comply.js +29 -10
  267. package/dist/lib/testing/compliance/comply.mjs +37 -11
  268. package/dist/lib/testing/storyboard/account-sync-contract.d.mts +3 -0
  269. package/dist/lib/testing/storyboard/account-sync-contract.d.ts +3 -0
  270. package/dist/lib/testing/storyboard/account-sync-contract.js +79 -0
  271. package/dist/lib/testing/storyboard/account-sync-contract.mjs +55 -0
  272. package/dist/lib/testing/storyboard/default-invariants.js +2 -0
  273. package/dist/lib/testing/storyboard/default-invariants.mjs +2 -0
  274. package/dist/lib/testing/storyboard/runner.js +23 -8
  275. package/dist/lib/testing/storyboard/runner.mjs +24 -8
  276. package/dist/lib/testing/storyboard/validations.d.mts +1 -1
  277. package/dist/lib/testing/storyboard/validations.d.ts +1 -1
  278. package/dist/lib/types/adcp.d.mts +4 -0
  279. package/dist/lib/types/adcp.d.ts +4 -0
  280. package/dist/lib/types/schemas.generated.d.ts +6 -6
  281. package/dist/lib/utils/capabilities.d.mts +1 -0
  282. package/dist/lib/utils/capabilities.d.ts +1 -0
  283. package/dist/lib/utils/capabilities.js +5 -0
  284. package/dist/lib/utils/capabilities.mjs +5 -0
  285. package/dist/lib/v2/projection/catalog-snapshot.js +3 -1
  286. package/dist/lib/v2/projection/catalog-snapshot.mjs +3 -1
  287. package/dist/lib/v2/projection/creative-delivery.d.mts +34 -10
  288. package/dist/lib/v2/projection/creative-delivery.d.ts +34 -10
  289. package/dist/lib/v2/projection/creative-delivery.js +26 -10
  290. package/dist/lib/v2/projection/creative-delivery.mjs +26 -10
  291. package/dist/lib/v2/projection/index.d.mts +1 -1
  292. package/dist/lib/v2/projection/index.d.ts +1 -1
  293. package/dist/lib/v2/projection/index.js +2 -0
  294. package/dist/lib/v2/projection/index.mjs +2 -0
  295. package/dist/lib/v2/projection/legacy-routes.d.mts +34 -2
  296. package/dist/lib/v2/projection/legacy-routes.d.ts +34 -2
  297. package/dist/lib/v2/projection/legacy-routes.js +35 -2
  298. package/dist/lib/v2/projection/legacy-routes.mjs +32 -2
  299. package/dist/lib/validation/schema-loader.d.mts +2 -0
  300. package/dist/lib/validation/schema-loader.d.ts +2 -0
  301. package/dist/lib/validation/schema-loader.js +43 -4
  302. package/dist/lib/validation/schema-loader.mjs +39 -3
  303. package/dist/lib/version.d.mts +3 -3
  304. package/dist/lib/version.d.ts +3 -3
  305. package/dist/lib/version.js +3 -3
  306. package/dist/lib/version.mjs +3 -3
  307. package/docs/TYPE-SUMMARY.md +2 -2
  308. package/docs/guides/DISCOVERY-CACHE-AND-SESSION-REUSE.md +4 -0
  309. package/docs/guides/REPORTING-LEDGER-CUTOVER.md +1 -1
  310. package/docs/guides/REPORTING-LEDGER.md +99 -29
  311. package/docs/guides/REPORTING-OPERATIONS.md +29 -13
  312. package/docs/guides/REPORTING-STABILITY.md +76 -0
  313. package/docs/guides/account-resolution.md +101 -0
  314. package/docs/llms.txt +3 -2
  315. package/docs/migration-12-to-13.md +15 -0
  316. package/docs/migration-14.x-rc-worksheet.md +4 -4
  317. package/docs/migration-agent-identity-3.3.md +494 -0
  318. package/docs/migration-agent-resolution-3.3.md +5 -0
  319. package/docs/migration-reporting-row-storage-alignment.md +137 -0
  320. package/examples/storyboards/account-sync-contract.yaml +57 -0
  321. package/package.json +17 -1
@@ -199,6 +199,9 @@ export interface ReportingLedgerAdjustmentV1 {
199
199
  export type ReportingLedgerRevisionSnapshotV1 = Omit<ReportingLedgerRevisionV1, 'rows'>;
200
200
  export type ReportingLedgerRevisionMetadataV1 = Omit<ReportingLedgerRevisionV1, 'rows'>;
201
201
  export type ReportingLedgerAdjustmentMetadataV1 = Omit<ReportingLedgerAdjustmentV1, 'rows'>;
202
+ /**
203
+ * @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
204
+ */
202
205
  export interface ReportingRevisionRowsReadV1 {
203
206
  reporting_revision_id: string;
204
207
  account_id: string;
@@ -208,6 +211,9 @@ export interface ReportingRevisionRowsReadV1 {
208
211
  limit: number;
209
212
  signal?: AbortSignal;
210
213
  }
214
+ /**
215
+ * @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
216
+ */
211
217
  export interface ReportingRevisionRowsPageV1 {
212
218
  rows: Record<string, unknown>[];
213
219
  /** Total rows in the revision. */
@@ -434,7 +440,11 @@ export interface ReportingLedgerStatusTransitionV1 {
434
440
  occurredAt: string;
435
441
  notifiedAt?: string;
436
442
  }
437
- /** Minimum transaction surface used by the bundled PostgreSQL ledger. */
443
+ /**
444
+ * Minimum transaction surface used by the bundled PostgreSQL ledger.
445
+ *
446
+ * @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
447
+ */
438
448
  export interface ReportingLedgerTransactionV1 {
439
449
  query<Row extends Record<string, unknown> = Record<string, unknown>>(text: string, values?: unknown[]): Promise<{
440
450
  rows: Row[];
@@ -559,6 +569,8 @@ export interface ReportingLedgerPageV1 {
559
569
  * Immutable opt-in binding between one Core configuration generation and one
560
570
  * caller-owned destination authorization generation. Core configurations do
561
571
  * not carry this shape and remain API-delivered.
572
+ *
573
+ * @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
562
574
  */
563
575
  export interface ReportingManagedDeliveryBindingV1 {
564
576
  configurationId: string;
@@ -701,6 +713,9 @@ export interface ReportingManagedLifecycleProjectionV1 {
701
713
  */
702
714
  obligatedConsumerRosterVersion?: string;
703
715
  }
716
+ /**
717
+ * @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
718
+ */
704
719
  export interface ReportingLedgerLeaseV1 {
705
720
  obligation: ReportingLedgerObligationV1;
706
721
  owner: string;
@@ -717,6 +732,9 @@ export declare class ReportingConsumerStatusConflictError extends Error {
717
732
  */
718
733
  constructor(message?: string);
719
734
  }
735
+ /**
736
+ * @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
737
+ */
720
738
  export interface ReportingLedgerStore {
721
739
  /** Optional substrate identity for an add-on store that must prove shared authority. */
722
740
  readonly [REPORTING_LEDGER_AUTHORITY]?: ReportingLedgerAuthorityV1;
@@ -961,6 +979,8 @@ export interface ReportingLedgerStore {
961
979
  * in duplicate-ID or duplicate-logical-chain groups, then atomically compare
962
980
  * the current leaf, append, and retain the original ordered batch result for
963
981
  * idempotent replay.
982
+ *
983
+ * @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
964
984
  */
965
985
  export interface ReportingConsumerStatusLedgerStore {
966
986
  listConfigurations(account_id: string): Promise<ReportingLedgerConfigurationV1[]>;
@@ -1034,6 +1054,8 @@ export type ReportingDeliveryHandlerV1 = (request: AdcpToolMap['get_media_buy_de
1034
1054
  * belongs to it, so the reader MUST scope the lookup by that account and return
1035
1055
  * `null` for a revision that belongs to another one. Never return a response
1036
1056
  * for a revision the resolved account cannot read.
1057
+ *
1058
+ * @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
1037
1059
  */
1038
1060
  export type ReportingLegacyRevisionReaderV1 = (request: AdcpToolMap['get_media_buy_delivery']['params'], context: HandlerContext<unknown>) => Promise<AdcpToolMap['get_media_buy_delivery']['result'] | null | undefined>;
1039
1061
  export interface CreateReportingDeliveryHandlerOptionsV1 {
@@ -199,6 +199,9 @@ export interface ReportingLedgerAdjustmentV1 {
199
199
  export type ReportingLedgerRevisionSnapshotV1 = Omit<ReportingLedgerRevisionV1, 'rows'>;
200
200
  export type ReportingLedgerRevisionMetadataV1 = Omit<ReportingLedgerRevisionV1, 'rows'>;
201
201
  export type ReportingLedgerAdjustmentMetadataV1 = Omit<ReportingLedgerAdjustmentV1, 'rows'>;
202
+ /**
203
+ * @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
204
+ */
202
205
  export interface ReportingRevisionRowsReadV1 {
203
206
  reporting_revision_id: string;
204
207
  account_id: string;
@@ -208,6 +211,9 @@ export interface ReportingRevisionRowsReadV1 {
208
211
  limit: number;
209
212
  signal?: AbortSignal;
210
213
  }
214
+ /**
215
+ * @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
216
+ */
211
217
  export interface ReportingRevisionRowsPageV1 {
212
218
  rows: Record<string, unknown>[];
213
219
  /** Total rows in the revision. */
@@ -434,7 +440,11 @@ export interface ReportingLedgerStatusTransitionV1 {
434
440
  occurredAt: string;
435
441
  notifiedAt?: string;
436
442
  }
437
- /** Minimum transaction surface used by the bundled PostgreSQL ledger. */
443
+ /**
444
+ * Minimum transaction surface used by the bundled PostgreSQL ledger.
445
+ *
446
+ * @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
447
+ */
438
448
  export interface ReportingLedgerTransactionV1 {
439
449
  query<Row extends Record<string, unknown> = Record<string, unknown>>(text: string, values?: unknown[]): Promise<{
440
450
  rows: Row[];
@@ -559,6 +569,8 @@ export interface ReportingLedgerPageV1 {
559
569
  * Immutable opt-in binding between one Core configuration generation and one
560
570
  * caller-owned destination authorization generation. Core configurations do
561
571
  * not carry this shape and remain API-delivered.
572
+ *
573
+ * @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
562
574
  */
563
575
  export interface ReportingManagedDeliveryBindingV1 {
564
576
  configurationId: string;
@@ -701,6 +713,9 @@ export interface ReportingManagedLifecycleProjectionV1 {
701
713
  */
702
714
  obligatedConsumerRosterVersion?: string;
703
715
  }
716
+ /**
717
+ * @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
718
+ */
704
719
  export interface ReportingLedgerLeaseV1 {
705
720
  obligation: ReportingLedgerObligationV1;
706
721
  owner: string;
@@ -717,6 +732,9 @@ export declare class ReportingConsumerStatusConflictError extends Error {
717
732
  */
718
733
  constructor(message?: string);
719
734
  }
735
+ /**
736
+ * @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
737
+ */
720
738
  export interface ReportingLedgerStore {
721
739
  /** Optional substrate identity for an add-on store that must prove shared authority. */
722
740
  readonly [REPORTING_LEDGER_AUTHORITY]?: ReportingLedgerAuthorityV1;
@@ -961,6 +979,8 @@ export interface ReportingLedgerStore {
961
979
  * in duplicate-ID or duplicate-logical-chain groups, then atomically compare
962
980
  * the current leaf, append, and retain the original ordered batch result for
963
981
  * idempotent replay.
982
+ *
983
+ * @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
964
984
  */
965
985
  export interface ReportingConsumerStatusLedgerStore {
966
986
  listConfigurations(account_id: string): Promise<ReportingLedgerConfigurationV1[]>;
@@ -1034,6 +1054,8 @@ export type ReportingDeliveryHandlerV1 = (request: AdcpToolMap['get_media_buy_de
1034
1054
  * belongs to it, so the reader MUST scope the lookup by that account and return
1035
1055
  * `null` for a revision that belongs to another one. Never return a response
1036
1056
  * for a revision the resolved account cannot read.
1057
+ *
1058
+ * @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
1037
1059
  */
1038
1060
  export type ReportingLegacyRevisionReaderV1 = (request: AdcpToolMap['get_media_buy_delivery']['params'], context: HandlerContext<unknown>) => Promise<AdcpToolMap['get_media_buy_delivery']['result'] | null | undefined>;
1039
1061
  export interface CreateReportingDeliveryHandlerOptionsV1 {
@@ -1,5 +1,8 @@
1
1
  import { type S3Client } from '@aws-sdk/client-s3';
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 CreateS3ReportingRowObjectProviderOptionsV1 {
4
7
  /** Official client used by bindings without a `credentialRef`. */
5
8
  client?: S3Client;
@@ -25,5 +28,7 @@ export interface CreateS3ReportingRowObjectProviderOptionsV1 {
25
28
  * and cannot fence that). The probe refuses unversioned or suspended buckets.
26
29
  * Because S3-compatible stores may silently ignore `If-None-Match`, the probe
27
30
  * also proves create-only behaviour empirically before any binding is used.
31
+ *
32
+ * @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
28
33
  */
29
34
  export declare function createS3ReportingRowObjectProviderV1(options: CreateS3ReportingRowObjectProviderOptionsV1): ReportingRowObjectProviderV1;
@@ -1,5 +1,8 @@
1
1
  import { type S3Client } from '@aws-sdk/client-s3';
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 CreateS3ReportingRowObjectProviderOptionsV1 {
4
7
  /** Official client used by bindings without a `credentialRef`. */
5
8
  client?: S3Client;
@@ -25,5 +28,7 @@ export interface CreateS3ReportingRowObjectProviderOptionsV1 {
25
28
  * and cannot fence that). The probe refuses unversioned or suspended buckets.
26
29
  * Because S3-compatible stores may silently ignore `If-None-Match`, the probe
27
30
  * also proves create-only behaviour empirically before any binding is used.
31
+ *
32
+ * @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
28
33
  */
29
34
  export declare function createS3ReportingRowObjectProviderV1(options: CreateS3ReportingRowObjectProviderOptionsV1): ReportingRowObjectProviderV1;
@@ -52,9 +52,9 @@ function versionOf(output) {
52
52
  }
53
53
  return id;
54
54
  }
55
- function selectorOf(nativeVersion) {
56
- if (typeof nativeVersion !== "string" || nativeVersion === "null") return null;
57
- return VERSION_ID.test(nativeVersion) ? { VersionId: nativeVersion } : null;
55
+ function selectorOf(nativeVersionRef) {
56
+ if (typeof nativeVersionRef !== "string" || nativeVersionRef === "null") return null;
57
+ return VERSION_ID.test(nativeVersionRef) ? { VersionId: nativeVersionRef } : null;
58
58
  }
59
59
  function servedVersion(output, selector) {
60
60
  return output.VersionId === selector.VersionId;
@@ -217,14 +217,14 @@ function createS3ReportingRowObjectProviderV1(options) {
217
217
  putIfAbsent(input, context) {
218
218
  return (0, import_row_storage_provider_io.runReportingRowProviderOperation)(context.signal, async () => {
219
219
  const { client, Bucket } = target(input);
220
- assertKey(input.key);
220
+ assertKey(input.objectRef);
221
221
  const bytes = Buffer.from(input.bytes);
222
222
  try {
223
223
  const output = await putCreateOnly(
224
224
  client,
225
225
  {
226
226
  Bucket,
227
- Key: input.key,
227
+ Key: input.objectRef,
228
228
  Body: bytes,
229
229
  ContentLength: bytes.byteLength,
230
230
  ContentType: input.contentType,
@@ -233,24 +233,24 @@ function createS3ReportingRowObjectProviderV1(options) {
233
233
  },
234
234
  context.signal
235
235
  );
236
- return { created: true, nativeVersion: versionOf(output) };
236
+ return { created: true, nativeVersionRef: versionOf(output) };
237
237
  } catch (error) {
238
238
  if (!isPreconditionFailed(error)) throw error;
239
239
  }
240
- const head = await client.send(new import_client_s3.HeadObjectCommand({ Bucket, Key: input.key }), {
240
+ const head = await client.send(new import_client_s3.HeadObjectCommand({ Bucket, Key: input.objectRef }), {
241
241
  abortSignal: context.signal
242
242
  });
243
- return { created: false, nativeVersion: versionOf(head) };
243
+ return { created: false, nativeVersionRef: versionOf(head) };
244
244
  });
245
245
  },
246
246
  get(input, context) {
247
247
  return (0, import_row_storage_provider_io.runReportingRowProviderOperation)(context.signal, async () => {
248
248
  const { client, Bucket } = target(input);
249
- assertKey(input.key);
249
+ assertKey(input.objectRef);
250
250
  (0, import_row_storage_provider_io.assertReportingRowReadBounds)(input);
251
- const selector = selectorOf(input.nativeVersion);
251
+ const selector = selectorOf(input.nativeVersionRef);
252
252
  if (selector === null) return null;
253
- const Key = input.key;
253
+ const Key = input.objectRef;
254
254
  try {
255
255
  if (input.range?.length === 0) {
256
256
  const head = await client.send(new import_client_s3.HeadObjectCommand({ Bucket, Key, ...selector }), {
@@ -294,13 +294,36 @@ function createS3ReportingRowObjectProviderV1(options) {
294
294
  }
295
295
  });
296
296
  },
297
+ stat(input, context) {
298
+ return (0, import_row_storage_provider_io.runReportingRowProviderOperation)(context.signal, async () => {
299
+ const { client, Bucket } = target(input);
300
+ assertKey(input.objectRef);
301
+ const selector = selectorOf(input.nativeVersionRef);
302
+ if (selector === null) return null;
303
+ try {
304
+ const head = await client.send(new import_client_s3.HeadObjectCommand({ Bucket, Key: input.objectRef, ...selector }), {
305
+ abortSignal: context.signal
306
+ });
307
+ if (!servedVersion(head, selector)) return null;
308
+ const size = head.ContentLength;
309
+ if (typeof size !== "number" || !Number.isSafeInteger(size) || size < 0) {
310
+ throw new import_row_storage_errors.ReportingRowStoreError("PROVIDER_UNAVAILABLE", "object metadata is malformed");
311
+ }
312
+ return { nativeVersionRef: selector.VersionId, sizeBytes: size };
313
+ } catch (error) {
314
+ if (isNotFound(error) || isPreconditionFailed(error)) return null;
315
+ if (statusOf(error) === 400 || statusOf(error) === 405) return null;
316
+ throw error;
317
+ }
318
+ });
319
+ },
297
320
  delete(input, context) {
298
321
  return (0, import_row_storage_provider_io.runReportingRowProviderOperation)(context.signal, async () => {
299
322
  const { client, Bucket } = target(input);
300
- assertKey(input.key);
301
- const selector = selectorOf(input.nativeVersion);
323
+ assertKey(input.objectRef);
324
+ const selector = selectorOf(input.nativeVersionRef);
302
325
  if (selector === null) return "absent";
303
- const Key = input.key;
326
+ const Key = input.objectRef;
304
327
  const signal = context.signal;
305
328
  try {
306
329
  const head = await client.send(new import_client_s3.HeadObjectCommand({ Bucket, Key, ...selector }), { abortSignal: signal });
@@ -46,9 +46,9 @@ function versionOf(output) {
46
46
  }
47
47
  return id;
48
48
  }
49
- function selectorOf(nativeVersion) {
50
- if (typeof nativeVersion !== "string" || nativeVersion === "null") return null;
51
- return VERSION_ID.test(nativeVersion) ? { VersionId: nativeVersion } : null;
49
+ function selectorOf(nativeVersionRef) {
50
+ if (typeof nativeVersionRef !== "string" || nativeVersionRef === "null") return null;
51
+ return VERSION_ID.test(nativeVersionRef) ? { VersionId: nativeVersionRef } : null;
52
52
  }
53
53
  function servedVersion(output, selector) {
54
54
  return output.VersionId === selector.VersionId;
@@ -211,14 +211,14 @@ function createS3ReportingRowObjectProviderV1(options) {
211
211
  putIfAbsent(input, context) {
212
212
  return runReportingRowProviderOperation(context.signal, async () => {
213
213
  const { client, Bucket } = target(input);
214
- assertKey(input.key);
214
+ assertKey(input.objectRef);
215
215
  const bytes = Buffer.from(input.bytes);
216
216
  try {
217
217
  const output = await putCreateOnly(
218
218
  client,
219
219
  {
220
220
  Bucket,
221
- Key: input.key,
221
+ Key: input.objectRef,
222
222
  Body: bytes,
223
223
  ContentLength: bytes.byteLength,
224
224
  ContentType: input.contentType,
@@ -227,24 +227,24 @@ function createS3ReportingRowObjectProviderV1(options) {
227
227
  },
228
228
  context.signal
229
229
  );
230
- return { created: true, nativeVersion: versionOf(output) };
230
+ return { created: true, nativeVersionRef: versionOf(output) };
231
231
  } catch (error) {
232
232
  if (!isPreconditionFailed(error)) throw error;
233
233
  }
234
- const head = await client.send(new HeadObjectCommand({ Bucket, Key: input.key }), {
234
+ const head = await client.send(new HeadObjectCommand({ Bucket, Key: input.objectRef }), {
235
235
  abortSignal: context.signal
236
236
  });
237
- return { created: false, nativeVersion: versionOf(head) };
237
+ return { created: false, nativeVersionRef: versionOf(head) };
238
238
  });
239
239
  },
240
240
  get(input, context) {
241
241
  return runReportingRowProviderOperation(context.signal, async () => {
242
242
  const { client, Bucket } = target(input);
243
- assertKey(input.key);
243
+ assertKey(input.objectRef);
244
244
  assertReportingRowReadBounds(input);
245
- const selector = selectorOf(input.nativeVersion);
245
+ const selector = selectorOf(input.nativeVersionRef);
246
246
  if (selector === null) return null;
247
- const Key = input.key;
247
+ const Key = input.objectRef;
248
248
  try {
249
249
  if (input.range?.length === 0) {
250
250
  const head = await client.send(new HeadObjectCommand({ Bucket, Key, ...selector }), {
@@ -288,13 +288,36 @@ function createS3ReportingRowObjectProviderV1(options) {
288
288
  }
289
289
  });
290
290
  },
291
+ stat(input, context) {
292
+ return runReportingRowProviderOperation(context.signal, async () => {
293
+ const { client, Bucket } = target(input);
294
+ assertKey(input.objectRef);
295
+ const selector = selectorOf(input.nativeVersionRef);
296
+ if (selector === null) return null;
297
+ try {
298
+ const head = await client.send(new HeadObjectCommand({ Bucket, Key: input.objectRef, ...selector }), {
299
+ abortSignal: context.signal
300
+ });
301
+ if (!servedVersion(head, selector)) return null;
302
+ const size = head.ContentLength;
303
+ if (typeof size !== "number" || !Number.isSafeInteger(size) || size < 0) {
304
+ throw new ReportingRowStoreError("PROVIDER_UNAVAILABLE", "object metadata is malformed");
305
+ }
306
+ return { nativeVersionRef: selector.VersionId, sizeBytes: size };
307
+ } catch (error) {
308
+ if (isNotFound(error) || isPreconditionFailed(error)) return null;
309
+ if (statusOf(error) === 400 || statusOf(error) === 405) return null;
310
+ throw error;
311
+ }
312
+ });
313
+ },
291
314
  delete(input, context) {
292
315
  return runReportingRowProviderOperation(context.signal, async () => {
293
316
  const { client, Bucket } = target(input);
294
- assertKey(input.key);
295
- const selector = selectorOf(input.nativeVersion);
317
+ assertKey(input.objectRef);
318
+ const selector = selectorOf(input.nativeVersionRef);
296
319
  if (selector === null) return "absent";
297
- const Key = input.key;
320
+ const Key = input.objectRef;
298
321
  const signal = context.signal;
299
322
  try {
300
323
  const head = await client.send(new HeadObjectCommand({ Bucket, Key, ...selector }), { abortSignal: signal });
@@ -1,3 +1,13 @@
1
+ /**
2
+ * Reliable Reporting service wiring, conformance runner and ledger maintenance.
3
+ *
4
+ * Only the retention, compaction and change-feed maintenance exports (`./maintenance`) are `@experimental`.
5
+ * The service factories and conformance runner follow normal semver.
6
+ *
7
+ * Stability policy: https://github.com/adcontextprotocol/adcp-client/blob/main/docs/guides/REPORTING-STABILITY.md
8
+ *
9
+ * @packageDocumentation
10
+ */
1
11
  import type { Account, ResolveContext } from '../../server/decisioning/account.mjs';
2
12
  import type { RequestContext } from '../../server/decisioning/context.mjs';
3
13
  import type { DecisioningPlatform } from '../../server/decisioning/platform.mjs';
@@ -1,3 +1,13 @@
1
+ /**
2
+ * Reliable Reporting service wiring, conformance runner and ledger maintenance.
3
+ *
4
+ * Only the retention, compaction and change-feed maintenance exports (`./maintenance`) are `@experimental`.
5
+ * The service factories and conformance runner follow normal semver.
6
+ *
7
+ * Stability policy: https://github.com/adcontextprotocol/adcp-client/blob/main/docs/guides/REPORTING-STABILITY.md
8
+ *
9
+ * @packageDocumentation
10
+ */
1
11
  import type { Account, ResolveContext } from '../../server/decisioning/account';
2
12
  import type { RequestContext } from '../../server/decisioning/context';
3
13
  import type { DecisioningPlatform } from '../../server/decisioning/platform';
@@ -5,6 +5,8 @@ import type { PostgresReportingLedgerStore } from '../ledger/index.mjs';
5
5
  * period end and its latest publication. `statusRetentionDays` always comes
6
6
  * from the service, so retention can never disagree with the commitment the
7
7
  * service advertises to buyers.
8
+ *
9
+ * @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
8
10
  */
9
11
  export interface ReportingRetentionOptionsV1 {
10
12
  enabled: true;
@@ -19,18 +21,28 @@ export interface ReportingRetentionOptionsV1 {
19
21
  *
20
22
  * Compaction takes effect in the AdCP release after November 20, 2026; do not
21
23
  * enable it in production before then. See `docs/guides/REPORTING-OPERATIONS.md`.
24
+ *
25
+ * @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
22
26
  */
23
27
  export interface ReportingCompactionOptionsV1 {
24
28
  enabled: true;
25
29
  /** Revisions compacted per pass. Defaults to 100. */
26
30
  limit?: number;
27
31
  }
28
- /** Change-feed pruning window and the consumer hold shared with retention. */
32
+ /**
33
+ * Change-feed pruning window and the consumer hold shared with retention.
34
+ *
35
+ * @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
36
+ */
29
37
  export type ReportingChangeFeedMaintenanceOptionsV1 = boolean | {
30
38
  changeRetentionDays?: number;
31
39
  maxFeedHoldDays?: number;
32
40
  };
33
- /** The ledger-store surface a maintenance pass drives. */
41
+ /**
42
+ * The ledger-store surface a maintenance pass drives.
43
+ *
44
+ * @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
45
+ */
34
46
  export type ReportingLedgerMaintenanceStoreV1 = Pick<PostgresReportingLedgerStore, 'sweepRowWriteIntents' | 'pruneChanges' | 'retireExpiredPeriods'> & Partial<Pick<PostgresReportingLedgerStore, 'compactSupersededSnapshots'>>;
35
47
  interface ReportingLedgerMaintenanceTaskOutcomesV1 {
36
48
  'snapshot sweep': Awaited<ReturnType<PostgresReportingLedgerStore['sweepExpiredState']>>;
@@ -39,11 +51,16 @@ interface ReportingLedgerMaintenanceTaskOutcomesV1 {
39
51
  retention: Awaited<ReturnType<PostgresReportingLedgerStore['retireExpiredPeriods']>>;
40
52
  'snapshot compaction': Awaited<ReturnType<PostgresReportingLedgerStore['compactSupersededSnapshots']>>;
41
53
  }
54
+ /**
55
+ * @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
56
+ */
42
57
  export type ReportingLedgerMaintenanceTaskNameV1 = keyof ReportingLedgerMaintenanceTaskOutcomesV1;
43
58
  /**
44
59
  * A scheduled maintenance pass completed but could not process some items
45
60
  * (for example, a retention period whose objects could not be deleted). The
46
61
  * pass resumes them next time; repeated reports need operator attention.
62
+ *
63
+ * @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
47
64
  */
48
65
  export declare class ReportingMaintenancePartialFailureError extends Error {
49
66
  readonly task: string;
@@ -68,6 +85,8 @@ export declare class ReportingMaintenancePartialFailureError extends Error {
68
85
  * some items (a retention period whose objects would not delete, an upload that
69
86
  * would not sweep) is `completed` with `partialFailure` set; the pass resumes
70
87
  * those items next time.
88
+ *
89
+ * @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
71
90
  */
72
91
  export type ReportingLedgerMaintenanceTaskResultV1 = {
73
92
  [Task in ReportingLedgerMaintenanceTaskNameV1]: {
@@ -81,6 +100,9 @@ export type ReportingLedgerMaintenanceTaskResultV1 = {
81
100
  readonly error: unknown;
82
101
  };
83
102
  }[ReportingLedgerMaintenanceTaskNameV1];
103
+ /**
104
+ * @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
105
+ */
84
106
  export interface RunReportingLedgerMaintenanceInputV1 {
85
107
  store: ReportingLedgerMaintenanceStoreV1;
86
108
  /**
@@ -108,11 +130,15 @@ export interface RunReportingLedgerMaintenanceInputV1 {
108
130
  * retention honours, per-task limits and abort handling cannot drift between
109
131
  * them. Tasks start together, in a fixed order, and are isolated: one task's
110
132
  * failure never prevents another from running.
133
+ *
134
+ * @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
111
135
  */
112
136
  export declare function runReportingLedgerMaintenance(input: RunReportingLedgerMaintenanceInputV1): Promise<ReportingLedgerMaintenanceTaskResultV1[]>;
113
137
  /**
114
138
  * Fail fast on maintenance options the store would otherwise reject on every
115
139
  * pass. Mirrors the checks `retireExpiredPeriods` and `pruneChanges` apply.
140
+ *
141
+ * @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
116
142
  */
117
143
  export declare function assertReportingLedgerMaintenanceOptions(input: {
118
144
  retention?: ReportingRetentionOptionsV1 | undefined;
@@ -5,6 +5,8 @@ import type { PostgresReportingLedgerStore } from '../ledger';
5
5
  * period end and its latest publication. `statusRetentionDays` always comes
6
6
  * from the service, so retention can never disagree with the commitment the
7
7
  * service advertises to buyers.
8
+ *
9
+ * @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
8
10
  */
9
11
  export interface ReportingRetentionOptionsV1 {
10
12
  enabled: true;
@@ -19,18 +21,28 @@ export interface ReportingRetentionOptionsV1 {
19
21
  *
20
22
  * Compaction takes effect in the AdCP release after November 20, 2026; do not
21
23
  * enable it in production before then. See `docs/guides/REPORTING-OPERATIONS.md`.
24
+ *
25
+ * @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
22
26
  */
23
27
  export interface ReportingCompactionOptionsV1 {
24
28
  enabled: true;
25
29
  /** Revisions compacted per pass. Defaults to 100. */
26
30
  limit?: number;
27
31
  }
28
- /** Change-feed pruning window and the consumer hold shared with retention. */
32
+ /**
33
+ * Change-feed pruning window and the consumer hold shared with retention.
34
+ *
35
+ * @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
36
+ */
29
37
  export type ReportingChangeFeedMaintenanceOptionsV1 = boolean | {
30
38
  changeRetentionDays?: number;
31
39
  maxFeedHoldDays?: number;
32
40
  };
33
- /** The ledger-store surface a maintenance pass drives. */
41
+ /**
42
+ * The ledger-store surface a maintenance pass drives.
43
+ *
44
+ * @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
45
+ */
34
46
  export type ReportingLedgerMaintenanceStoreV1 = Pick<PostgresReportingLedgerStore, 'sweepRowWriteIntents' | 'pruneChanges' | 'retireExpiredPeriods'> & Partial<Pick<PostgresReportingLedgerStore, 'compactSupersededSnapshots'>>;
35
47
  interface ReportingLedgerMaintenanceTaskOutcomesV1 {
36
48
  'snapshot sweep': Awaited<ReturnType<PostgresReportingLedgerStore['sweepExpiredState']>>;
@@ -39,11 +51,16 @@ interface ReportingLedgerMaintenanceTaskOutcomesV1 {
39
51
  retention: Awaited<ReturnType<PostgresReportingLedgerStore['retireExpiredPeriods']>>;
40
52
  'snapshot compaction': Awaited<ReturnType<PostgresReportingLedgerStore['compactSupersededSnapshots']>>;
41
53
  }
54
+ /**
55
+ * @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
56
+ */
42
57
  export type ReportingLedgerMaintenanceTaskNameV1 = keyof ReportingLedgerMaintenanceTaskOutcomesV1;
43
58
  /**
44
59
  * A scheduled maintenance pass completed but could not process some items
45
60
  * (for example, a retention period whose objects could not be deleted). The
46
61
  * pass resumes them next time; repeated reports need operator attention.
62
+ *
63
+ * @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
47
64
  */
48
65
  export declare class ReportingMaintenancePartialFailureError extends Error {
49
66
  readonly task: string;
@@ -68,6 +85,8 @@ export declare class ReportingMaintenancePartialFailureError extends Error {
68
85
  * some items (a retention period whose objects would not delete, an upload that
69
86
  * would not sweep) is `completed` with `partialFailure` set; the pass resumes
70
87
  * those items next time.
88
+ *
89
+ * @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
71
90
  */
72
91
  export type ReportingLedgerMaintenanceTaskResultV1 = {
73
92
  [Task in ReportingLedgerMaintenanceTaskNameV1]: {
@@ -81,6 +100,9 @@ export type ReportingLedgerMaintenanceTaskResultV1 = {
81
100
  readonly error: unknown;
82
101
  };
83
102
  }[ReportingLedgerMaintenanceTaskNameV1];
103
+ /**
104
+ * @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
105
+ */
84
106
  export interface RunReportingLedgerMaintenanceInputV1 {
85
107
  store: ReportingLedgerMaintenanceStoreV1;
86
108
  /**
@@ -108,11 +130,15 @@ export interface RunReportingLedgerMaintenanceInputV1 {
108
130
  * retention honours, per-task limits and abort handling cannot drift between
109
131
  * them. Tasks start together, in a fixed order, and are isolated: one task's
110
132
  * failure never prevents another from running.
133
+ *
134
+ * @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
111
135
  */
112
136
  export declare function runReportingLedgerMaintenance(input: RunReportingLedgerMaintenanceInputV1): Promise<ReportingLedgerMaintenanceTaskResultV1[]>;
113
137
  /**
114
138
  * Fail fast on maintenance options the store would otherwise reject on every
115
139
  * pass. Mirrors the checks `retireExpiredPeriods` and `pruneChanges` apply.
140
+ *
141
+ * @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
116
142
  */
117
143
  export declare function assertReportingLedgerMaintenanceOptions(input: {
118
144
  retention?: ReportingRetentionOptionsV1 | undefined;
@@ -4,5 +4,5 @@
4
4
  "source_sha": "4e553ad955f83b49c7d221ab5c3ff78237ad02e3",
5
5
  "source_tarball_sha256": "580656d6466ef9f0d1119985e6726c2efea718dc671e2ad30957fcb2fd54af0f",
6
6
  "upstream_adcp_version": "2.5.3",
7
- "synced_at": "2026-10-14T11:39:27.882Z"
7
+ "synced_at": "2026-10-15T16:11:40.051Z"
8
8
  }
@@ -0,0 +1,14 @@
1
+ import type { AdcpLogger } from './create-adcp-server.mjs';
2
+ import { toWireAccount } from './decisioning/account.mjs';
3
+ import type { Account, AccountStore, AccountSyncDiagnostic, ResolveContext, SyncAccountsResultRow } from './decisioning/account.mjs';
4
+ type Entry = Record<string, unknown>;
5
+ /** Copy request input only when a callback reads it; keep auth capabilities live. */
6
+ export declare function isolateAccountCallbackInput(ctx: ResolveContext): ResolveContext;
7
+ export declare function existingSyncAccounts(accounts: AccountStore, entries: Entry[], ctx: ResolveContext, logger?: AdcpLogger): Promise<(Account | null)[]>;
8
+ export declare function diagnoseAccountBilling(accounts: AccountStore, logger: AdcpLogger, account: {
9
+ billing?: string;
10
+ payment_terms?: string;
11
+ }, toolName: AccountSyncDiagnostic['toolName'], index: number): void;
12
+ export declare function projectAccountList(accounts: AccountStore, items: Account[], ctx: ResolveContext, logger: AdcpLogger): Promise<ReturnType<typeof toWireAccount>[]>;
13
+ export declare function checkSyncAccountRows(accounts: AccountStore, entries: Entry[], existing: (Account | null)[], rows: SyncAccountsResultRow[], indices: number[], ctx: ResolveContext, logger: AdcpLogger): Promise<SyncAccountsResultRow[]>;
14
+ export {};
@@ -0,0 +1,14 @@
1
+ import type { AdcpLogger } from './create-adcp-server';
2
+ import { toWireAccount } from './decisioning/account';
3
+ import type { Account, AccountStore, AccountSyncDiagnostic, ResolveContext, SyncAccountsResultRow } from './decisioning/account';
4
+ type Entry = Record<string, unknown>;
5
+ /** Copy request input only when a callback reads it; keep auth capabilities live. */
6
+ export declare function isolateAccountCallbackInput(ctx: ResolveContext): ResolveContext;
7
+ export declare function existingSyncAccounts(accounts: AccountStore, entries: Entry[], ctx: ResolveContext, logger?: AdcpLogger): Promise<(Account | null)[]>;
8
+ export declare function diagnoseAccountBilling(accounts: AccountStore, logger: AdcpLogger, account: {
9
+ billing?: string;
10
+ payment_terms?: string;
11
+ }, toolName: AccountSyncDiagnostic['toolName'], index: number): void;
12
+ export declare function projectAccountList(accounts: AccountStore, items: Account[], ctx: ResolveContext, logger: AdcpLogger): Promise<ReturnType<typeof toWireAccount>[]>;
13
+ export declare function checkSyncAccountRows(accounts: AccountStore, entries: Entry[], existing: (Account | null)[], rows: SyncAccountsResultRow[], indices: number[], ctx: ResolveContext, logger: AdcpLogger): Promise<SyncAccountsResultRow[]>;
14
+ export {};