@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
@@ -11,17 +11,30 @@ import type { PostgresReportingLedgerStore, ReportingLedgerRevisionMetadataV1, R
11
11
  * are the adopter's.
12
12
  *
13
13
  * Exactly-once loading: a batch (change-feed range, revision list, job IDs) is
14
- * planned durably in PostgreSQL before any load. A crash between the load and
15
- * the cursor commit replays the same batch under the same job IDs, which
16
- * BigQuery refuses to run twice. A failed load job is retried under a new
17
- * attempt suffix only after BigQuery reports that job finished with an error,
18
- * and each table keeps its own attempt count, so no batch lands twice.
14
+ * planned durably in PostgreSQL before any load. Before every submission the
15
+ * sink looks the deterministic job ID up in the destination project and
16
+ * location: a job that finished cleanly counts as loaded, a job still running
17
+ * is waited for (never uploaded again), and only a missing job is uploaded.
18
+ * A crash or timeout between the load and the cursor commit therefore replays
19
+ * the same batch under the same job IDs without a second upload. A failed load
20
+ * job is retried under a new attempt suffix only after BigQuery reports that
21
+ * job finished with an error, and each table keeps its own attempt count, so
22
+ * no batch lands twice. A load that outlasts the deadline never changes the job
23
+ * ID: the sink grows that table's deadline instead (persisted with the plan).
19
24
  * Concurrent runs claim one durable plan with compare-and-swap. Replays of
20
25
  * that plan share job IDs; stale runs cannot change its attempts or cursor.
21
26
  */
22
- /** Apply after `REPORTING_LEDGER_CHANGES_MIGRATION`. Holds one row per sink. */
27
+ /**
28
+ * Apply after `REPORTING_LEDGER_CHANGES_MIGRATION`. Holds one row per sink.
29
+ *
30
+ * @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
31
+ */
23
32
  export declare const REPORTING_WAREHOUSE_SINK_MIGRATION: string;
24
- /** Structural subset of the official `@google-cloud/bigquery` client the sink uses. */
33
+ /**
34
+ * Structural subset of the official `@google-cloud/bigquery` client the sink uses.
35
+ *
36
+ * @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
37
+ */
25
38
  export interface ReportingBigQueryClientV1 {
26
39
  dataset(datasetId: string, options?: {
27
40
  projectId?: string;
@@ -36,7 +49,7 @@ export interface ReportingBigQueryClientV1 {
36
49
  location?: string;
37
50
  }): {
38
51
  getMetadata(): Promise<unknown>;
39
- /** Request cancellation. Optional so wrappers written before the sink used it still type-check. */
52
+ /** @deprecated Unused: BigQuery does not stop a running load, so the sink never cancels. Kept so wrappers that declare it still type-check. */
40
53
  cancel?(): Promise<unknown>;
41
54
  };
42
55
  query(options: {
@@ -44,10 +57,16 @@ export interface ReportingBigQueryClientV1 {
44
57
  location?: string;
45
58
  }): Promise<unknown>;
46
59
  }
60
+ /**
61
+ * @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
62
+ */
47
63
  export interface ReportingWarehouseRowContextV1 {
48
64
  revision: ReportingLedgerRevisionMetadataV1;
49
65
  ordinal: number;
50
66
  }
67
+ /**
68
+ * @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
69
+ */
51
70
  export interface CreateBigQueryReportingWarehouseSinkOptionsV1 {
52
71
  /** Ledger store with `changeFeed: true`. */
53
72
  store: Pick<PostgresReportingLedgerStore, 'changesAfter' | 'getRevisionMetadata' | 'readRevisionRows'> & {
@@ -74,14 +93,20 @@ export interface CreateBigQueryReportingWarehouseSinkOptionsV1 {
74
93
  datasetId: string;
75
94
  rowsTableId: string;
76
95
  revisionsTableId: string;
77
- /** Dataset location, so jobs run in the dataset's region. */
96
+ /**
97
+ * Dataset location, so jobs run in the dataset's region. Set it for any dataset outside the US and EU
98
+ * multi-regions: BigQuery answers a job lookup without the right location with 404, and the sink then
99
+ * cannot find the jobs it created.
100
+ */
78
101
  location?: string;
79
102
  /** Restrict the sink to one account; omit for the deployment-wide feed. */
80
103
  account_id?: string;
81
104
  /**
82
105
  * Map one verified report row to the adopter's columns. The sink always adds
83
106
  * `reporting_revision_id`, `reporting_obligation_id`, `account_id`,
84
- * `revision_number`, `finality`, `period_date` and `ordinal`. Default: the
107
+ * `revision_number`, `finality`, `period_date` (the period start's calendar date in its
108
+ * `source_timezone`, AdCP's `YYYY-MM-DD`; the batch fails if it cannot be computed) and
109
+ * `ordinal`. Default: the
85
110
  * row as a `row` JSON column.
86
111
  */
87
112
  mapRow?(row: Record<string, unknown>, context: ReportingWarehouseRowContextV1): Record<string, unknown>;
@@ -98,21 +123,30 @@ export interface CreateBigQueryReportingWarehouseSinkOptionsV1 {
98
123
  */
99
124
  labels?: Readonly<Record<string, string>>;
100
125
  /**
101
- * Deadline for one load (and for each status check). Default 10 minutes.
102
- * When a load exceeds it, the sink asks BigQuery to cancel that job by its
103
- * deterministic ID (in `projectId` and `location`) and rejects, leaving the
104
- * plan in place. The next run finds the cancelled job finished with an
105
- * error, advances that table's attempt and rejects; the run after that
106
- * loads under the new attempt. If the cancel has not taken effect yet the
107
- * next run waits for the job. Each attempt doubles the load deadline (up to
108
- * 6 hours), so a load that is slow but healthy converges; set this above
109
- * your slowest expected load to avoid the cancelled attempts. A status
110
- * check that times out is not cancelled. This is a client-side deadline:
111
- * BigQuery's server-side `jobTimeoutMs` cannot be set on a local-file load
112
- * through the official client, and cancellation is best effort.
126
+ * Base deadline for one run's work on one load. Default 10 minutes. It bounds
127
+ * how long a run uploads a file or waits for a running job; it does not bound
128
+ * the job. BigQuery does not stop a load when the client gives up (a cancel
129
+ * is accepted and the job finishes anyway), so the sink never cancels.
130
+ * Before every submission it looks the deterministic job ID up in `projectId`
131
+ * and `location`: a job that finished cleanly is accepted, a job that is
132
+ * pending or running is waited for (polled within the deadline) instead of
133
+ * being uploaded again, and only a missing job is uploaded. When the
134
+ * deadline passes, the run rejects with the plan retained and nothing
135
+ * advanced, and the next run checks the job again. Each such timeout doubles
136
+ * that table's deadline for later runs (up to 6 hours, persisted with the
137
+ * plan, and never changing the job ID), so an upload slower than the
138
+ * deadline eventually gets enough time. Set it above your slowest expected
139
+ * load to avoid the extra runs. Only a job that finished with an error
140
+ * advances the attempt. A status check that times out is bounded by this base
141
+ * deadline and does not grow it. This is a client-side deadline: BigQuery's
142
+ * server-side `jobTimeoutMs` cannot be set on a local-file load through the
143
+ * official client.
113
144
  */
114
145
  loadTimeoutMilliseconds?: number;
115
146
  }
147
+ /**
148
+ * @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
149
+ */
116
150
  export interface BigQueryReportingWarehouseSinkV1 {
117
151
  /**
118
152
  * Load at most one batch. Resolves with what was loaded; `idle` when no
@@ -153,7 +187,8 @@ export interface BigQueryReportingWarehouseSinkV1 {
153
187
  * the destination tables first, or use a new sink name against new tables.
154
188
  * Each reset starts a new job ID generation, so reloaded batches submit
155
189
  * fresh BigQuery jobs instead of matching the finished jobs of the earlier
156
- * history. Nothing holds change retention between `reset()` and the first
190
+ * history. The sink never cancels a load, so stop every worker and let its
191
+ * in-flight uploads and jobs finish before emptying the destination tables. Nothing holds change retention between `reset()` and the first
157
192
  * committed batch. If `reset()` rejects after clearing the sink's state
158
193
  * (the consumer could not be unregistered), call it again before restarting
159
194
  * workers; it is idempotent. Needs a store with `removeFeedConsumer`.
@@ -169,8 +204,22 @@ export interface BigQueryReportingWarehouseSinkV1 {
169
204
  /** DDL for the reference `current_rows` view. */
170
205
  readonly currentRowsViewSql: string;
171
206
  }
207
+ /**
208
+ * @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
209
+ */
172
210
  export declare function createBigQueryReportingWarehouseSinkV1(options: CreateBigQueryReportingWarehouseSinkOptionsV1): BigQueryReportingWarehouseSinkV1;
173
- /** Deterministic load job ID for one planned change-feed range. */
211
+ /**
212
+ * How long one run may upload a file or wait for a running job: the configured
213
+ * base doubled once per earlier timeout of that table's load, capped at 6 hours.
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
+ */
217
+ export declare function reportingWarehouseLoadDeadlineV1(baseMilliseconds: number, timeouts: number): number;
218
+ /**
219
+ * Deterministic load job ID for one planned change-feed range.
220
+ *
221
+ * @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
222
+ */
174
223
  export declare function reportingWarehouseJobIdV1(name: string, from: string | null, to: string, generation?: number): string;
175
224
  interface WarehouseTablesV1 {
176
225
  projectId?: string;
@@ -178,12 +227,18 @@ interface WarehouseTablesV1 {
178
227
  rowsTableId: string;
179
228
  revisionsTableId: string;
180
229
  }
181
- /** DDL for the default warehouse tables: partitioned by period date, clustered by account and revision. */
230
+ /**
231
+ * DDL for the default warehouse tables: partitioned by period date, clustered by account and revision.
232
+ *
233
+ * @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
234
+ */
182
235
  export declare function reportingWarehouseDefaultTablesSqlV1(tables: WarehouseTablesV1): string;
183
236
  /**
184
237
  * DDL for the reference `current_rows` view: only each obligation's current
185
238
  * revision (its official revision, otherwise its latest snapshot). Summing
186
239
  * cumulative snapshots across revisions double-counts; query this view.
240
+ *
241
+ * @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
187
242
  */
188
243
  export declare function reportingWarehouseCurrentRowsViewSqlV1(tables: WarehouseTablesV1 & {
189
244
  viewId?: string;
@@ -11,17 +11,30 @@ import type { PostgresReportingLedgerStore, ReportingLedgerRevisionMetadataV1, R
11
11
  * are the adopter's.
12
12
  *
13
13
  * Exactly-once loading: a batch (change-feed range, revision list, job IDs) is
14
- * planned durably in PostgreSQL before any load. A crash between the load and
15
- * the cursor commit replays the same batch under the same job IDs, which
16
- * BigQuery refuses to run twice. A failed load job is retried under a new
17
- * attempt suffix only after BigQuery reports that job finished with an error,
18
- * and each table keeps its own attempt count, so no batch lands twice.
14
+ * planned durably in PostgreSQL before any load. Before every submission the
15
+ * sink looks the deterministic job ID up in the destination project and
16
+ * location: a job that finished cleanly counts as loaded, a job still running
17
+ * is waited for (never uploaded again), and only a missing job is uploaded.
18
+ * A crash or timeout between the load and the cursor commit therefore replays
19
+ * the same batch under the same job IDs without a second upload. A failed load
20
+ * job is retried under a new attempt suffix only after BigQuery reports that
21
+ * job finished with an error, and each table keeps its own attempt count, so
22
+ * no batch lands twice. A load that outlasts the deadline never changes the job
23
+ * ID: the sink grows that table's deadline instead (persisted with the plan).
19
24
  * Concurrent runs claim one durable plan with compare-and-swap. Replays of
20
25
  * that plan share job IDs; stale runs cannot change its attempts or cursor.
21
26
  */
22
- /** Apply after `REPORTING_LEDGER_CHANGES_MIGRATION`. Holds one row per sink. */
27
+ /**
28
+ * Apply after `REPORTING_LEDGER_CHANGES_MIGRATION`. Holds one row per sink.
29
+ *
30
+ * @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
31
+ */
23
32
  export declare const REPORTING_WAREHOUSE_SINK_MIGRATION: string;
24
- /** Structural subset of the official `@google-cloud/bigquery` client the sink uses. */
33
+ /**
34
+ * Structural subset of the official `@google-cloud/bigquery` client the sink uses.
35
+ *
36
+ * @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
37
+ */
25
38
  export interface ReportingBigQueryClientV1 {
26
39
  dataset(datasetId: string, options?: {
27
40
  projectId?: string;
@@ -36,7 +49,7 @@ export interface ReportingBigQueryClientV1 {
36
49
  location?: string;
37
50
  }): {
38
51
  getMetadata(): Promise<unknown>;
39
- /** Request cancellation. Optional so wrappers written before the sink used it still type-check. */
52
+ /** @deprecated Unused: BigQuery does not stop a running load, so the sink never cancels. Kept so wrappers that declare it still type-check. */
40
53
  cancel?(): Promise<unknown>;
41
54
  };
42
55
  query(options: {
@@ -44,10 +57,16 @@ export interface ReportingBigQueryClientV1 {
44
57
  location?: string;
45
58
  }): Promise<unknown>;
46
59
  }
60
+ /**
61
+ * @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
62
+ */
47
63
  export interface ReportingWarehouseRowContextV1 {
48
64
  revision: ReportingLedgerRevisionMetadataV1;
49
65
  ordinal: number;
50
66
  }
67
+ /**
68
+ * @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
69
+ */
51
70
  export interface CreateBigQueryReportingWarehouseSinkOptionsV1 {
52
71
  /** Ledger store with `changeFeed: true`. */
53
72
  store: Pick<PostgresReportingLedgerStore, 'changesAfter' | 'getRevisionMetadata' | 'readRevisionRows'> & {
@@ -74,14 +93,20 @@ export interface CreateBigQueryReportingWarehouseSinkOptionsV1 {
74
93
  datasetId: string;
75
94
  rowsTableId: string;
76
95
  revisionsTableId: string;
77
- /** Dataset location, so jobs run in the dataset's region. */
96
+ /**
97
+ * Dataset location, so jobs run in the dataset's region. Set it for any dataset outside the US and EU
98
+ * multi-regions: BigQuery answers a job lookup without the right location with 404, and the sink then
99
+ * cannot find the jobs it created.
100
+ */
78
101
  location?: string;
79
102
  /** Restrict the sink to one account; omit for the deployment-wide feed. */
80
103
  account_id?: string;
81
104
  /**
82
105
  * Map one verified report row to the adopter's columns. The sink always adds
83
106
  * `reporting_revision_id`, `reporting_obligation_id`, `account_id`,
84
- * `revision_number`, `finality`, `period_date` and `ordinal`. Default: the
107
+ * `revision_number`, `finality`, `period_date` (the period start's calendar date in its
108
+ * `source_timezone`, AdCP's `YYYY-MM-DD`; the batch fails if it cannot be computed) and
109
+ * `ordinal`. Default: the
85
110
  * row as a `row` JSON column.
86
111
  */
87
112
  mapRow?(row: Record<string, unknown>, context: ReportingWarehouseRowContextV1): Record<string, unknown>;
@@ -98,21 +123,30 @@ export interface CreateBigQueryReportingWarehouseSinkOptionsV1 {
98
123
  */
99
124
  labels?: Readonly<Record<string, string>>;
100
125
  /**
101
- * Deadline for one load (and for each status check). Default 10 minutes.
102
- * When a load exceeds it, the sink asks BigQuery to cancel that job by its
103
- * deterministic ID (in `projectId` and `location`) and rejects, leaving the
104
- * plan in place. The next run finds the cancelled job finished with an
105
- * error, advances that table's attempt and rejects; the run after that
106
- * loads under the new attempt. If the cancel has not taken effect yet the
107
- * next run waits for the job. Each attempt doubles the load deadline (up to
108
- * 6 hours), so a load that is slow but healthy converges; set this above
109
- * your slowest expected load to avoid the cancelled attempts. A status
110
- * check that times out is not cancelled. This is a client-side deadline:
111
- * BigQuery's server-side `jobTimeoutMs` cannot be set on a local-file load
112
- * through the official client, and cancellation is best effort.
126
+ * Base deadline for one run's work on one load. Default 10 minutes. It bounds
127
+ * how long a run uploads a file or waits for a running job; it does not bound
128
+ * the job. BigQuery does not stop a load when the client gives up (a cancel
129
+ * is accepted and the job finishes anyway), so the sink never cancels.
130
+ * Before every submission it looks the deterministic job ID up in `projectId`
131
+ * and `location`: a job that finished cleanly is accepted, a job that is
132
+ * pending or running is waited for (polled within the deadline) instead of
133
+ * being uploaded again, and only a missing job is uploaded. When the
134
+ * deadline passes, the run rejects with the plan retained and nothing
135
+ * advanced, and the next run checks the job again. Each such timeout doubles
136
+ * that table's deadline for later runs (up to 6 hours, persisted with the
137
+ * plan, and never changing the job ID), so an upload slower than the
138
+ * deadline eventually gets enough time. Set it above your slowest expected
139
+ * load to avoid the extra runs. Only a job that finished with an error
140
+ * advances the attempt. A status check that times out is bounded by this base
141
+ * deadline and does not grow it. This is a client-side deadline: BigQuery's
142
+ * server-side `jobTimeoutMs` cannot be set on a local-file load through the
143
+ * official client.
113
144
  */
114
145
  loadTimeoutMilliseconds?: number;
115
146
  }
147
+ /**
148
+ * @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
149
+ */
116
150
  export interface BigQueryReportingWarehouseSinkV1 {
117
151
  /**
118
152
  * Load at most one batch. Resolves with what was loaded; `idle` when no
@@ -153,7 +187,8 @@ export interface BigQueryReportingWarehouseSinkV1 {
153
187
  * the destination tables first, or use a new sink name against new tables.
154
188
  * Each reset starts a new job ID generation, so reloaded batches submit
155
189
  * fresh BigQuery jobs instead of matching the finished jobs of the earlier
156
- * history. Nothing holds change retention between `reset()` and the first
190
+ * history. The sink never cancels a load, so stop every worker and let its
191
+ * in-flight uploads and jobs finish before emptying the destination tables. Nothing holds change retention between `reset()` and the first
157
192
  * committed batch. If `reset()` rejects after clearing the sink's state
158
193
  * (the consumer could not be unregistered), call it again before restarting
159
194
  * workers; it is idempotent. Needs a store with `removeFeedConsumer`.
@@ -169,8 +204,22 @@ export interface BigQueryReportingWarehouseSinkV1 {
169
204
  /** DDL for the reference `current_rows` view. */
170
205
  readonly currentRowsViewSql: string;
171
206
  }
207
+ /**
208
+ * @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
209
+ */
172
210
  export declare function createBigQueryReportingWarehouseSinkV1(options: CreateBigQueryReportingWarehouseSinkOptionsV1): BigQueryReportingWarehouseSinkV1;
173
- /** Deterministic load job ID for one planned change-feed range. */
211
+ /**
212
+ * How long one run may upload a file or wait for a running job: the configured
213
+ * base doubled once per earlier timeout of that table's load, capped at 6 hours.
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
+ */
217
+ export declare function reportingWarehouseLoadDeadlineV1(baseMilliseconds: number, timeouts: number): number;
218
+ /**
219
+ * Deterministic load job ID for one planned change-feed range.
220
+ *
221
+ * @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
222
+ */
174
223
  export declare function reportingWarehouseJobIdV1(name: string, from: string | null, to: string, generation?: number): string;
175
224
  interface WarehouseTablesV1 {
176
225
  projectId?: string;
@@ -178,12 +227,18 @@ interface WarehouseTablesV1 {
178
227
  rowsTableId: string;
179
228
  revisionsTableId: string;
180
229
  }
181
- /** DDL for the default warehouse tables: partitioned by period date, clustered by account and revision. */
230
+ /**
231
+ * DDL for the default warehouse tables: partitioned by period date, clustered by account and revision.
232
+ *
233
+ * @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
234
+ */
182
235
  export declare function reportingWarehouseDefaultTablesSqlV1(tables: WarehouseTablesV1): string;
183
236
  /**
184
237
  * DDL for the reference `current_rows` view: only each obligation's current
185
238
  * revision (its official revision, otherwise its latest snapshot). Summing
186
239
  * cumulative snapshots across revisions double-counts; query this view.
240
+ *
241
+ * @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
187
242
  */
188
243
  export declare function reportingWarehouseCurrentRowsViewSqlV1(tables: WarehouseTablesV1 & {
189
244
  viewId?: string;