ai-database 2.1.3 → 2.3.0

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 (260) hide show
  1. package/CHANGELOG.md +35 -1
  2. package/README.md +880 -669
  3. package/dist/actions.d.ts +2 -2
  4. package/dist/actions.d.ts.map +1 -1
  5. package/dist/actions.js +1 -1
  6. package/dist/actions.js.map +1 -1
  7. package/dist/ai-promise-db.d.ts +49 -23
  8. package/dist/ai-promise-db.d.ts.map +1 -1
  9. package/dist/ai-promise-db.js +91 -63
  10. package/dist/ai-promise-db.js.map +1 -1
  11. package/dist/authorization.d.ts.map +1 -1
  12. package/dist/authorization.js +38 -30
  13. package/dist/authorization.js.map +1 -1
  14. package/dist/cascade-orchestrator.d.ts +404 -0
  15. package/dist/cascade-orchestrator.d.ts.map +1 -0
  16. package/dist/cascade-orchestrator.js +828 -0
  17. package/dist/cascade-orchestrator.js.map +1 -0
  18. package/dist/cascade-write-strategy.d.ts +584 -0
  19. package/dist/cascade-write-strategy.d.ts.map +1 -0
  20. package/dist/cascade-write-strategy.js +590 -0
  21. package/dist/cascade-write-strategy.js.map +1 -0
  22. package/dist/ch-adapter.d.ts +358 -0
  23. package/dist/ch-adapter.d.ts.map +1 -0
  24. package/dist/ch-adapter.js +929 -0
  25. package/dist/ch-adapter.js.map +1 -0
  26. package/dist/client/index.d.ts +42 -0
  27. package/dist/client/index.d.ts.map +1 -0
  28. package/dist/client/index.js +43 -0
  29. package/dist/client/index.js.map +1 -0
  30. package/dist/client.d.ts +266 -0
  31. package/dist/client.d.ts.map +1 -0
  32. package/dist/client.js +81 -0
  33. package/dist/client.js.map +1 -0
  34. package/dist/constants.d.ts +64 -1
  35. package/dist/constants.d.ts.map +1 -1
  36. package/dist/constants.js +52 -2
  37. package/dist/constants.js.map +1 -1
  38. package/dist/dataloader.d.ts +99 -0
  39. package/dist/dataloader.d.ts.map +1 -0
  40. package/dist/dataloader.js +225 -0
  41. package/dist/dataloader.js.map +1 -0
  42. package/dist/db-provider-port.d.ts +501 -0
  43. package/dist/db-provider-port.d.ts.map +1 -0
  44. package/dist/db-provider-port.js +113 -0
  45. package/dist/db-provider-port.js.map +1 -0
  46. package/dist/digital-objects-provider.d.ts +49 -0
  47. package/dist/digital-objects-provider.d.ts.map +1 -0
  48. package/dist/digital-objects-provider.js +55 -0
  49. package/dist/digital-objects-provider.js.map +1 -0
  50. package/dist/do-sqlite-adapter.d.ts +402 -0
  51. package/dist/do-sqlite-adapter.d.ts.map +1 -0
  52. package/dist/do-sqlite-adapter.js +745 -0
  53. package/dist/do-sqlite-adapter.js.map +1 -0
  54. package/dist/docs-rels/custom-types.d.ts +134 -0
  55. package/dist/docs-rels/custom-types.d.ts.map +1 -0
  56. package/dist/docs-rels/custom-types.js +70 -0
  57. package/dist/docs-rels/custom-types.js.map +1 -0
  58. package/dist/docs-rels/index.d.ts +16 -0
  59. package/dist/docs-rels/index.d.ts.map +1 -0
  60. package/dist/docs-rels/index.js +16 -0
  61. package/dist/docs-rels/index.js.map +1 -0
  62. package/dist/docs-rels/migrations/index.d.ts +30 -0
  63. package/dist/docs-rels/migrations/index.d.ts.map +1 -0
  64. package/dist/docs-rels/migrations/index.js +128 -0
  65. package/dist/docs-rels/migrations/index.js.map +1 -0
  66. package/dist/docs-rels/schema.d.ts +2961 -0
  67. package/dist/docs-rels/schema.d.ts.map +1 -0
  68. package/dist/docs-rels/schema.js +244 -0
  69. package/dist/docs-rels/schema.js.map +1 -0
  70. package/dist/durable-clickhouse.d.ts.map +1 -1
  71. package/dist/durable-clickhouse.js +16 -13
  72. package/dist/durable-clickhouse.js.map +1 -1
  73. package/dist/durable-promise.d.ts.map +1 -1
  74. package/dist/durable-promise.js +34 -15
  75. package/dist/durable-promise.js.map +1 -1
  76. package/dist/errors.d.ts +127 -0
  77. package/dist/errors.d.ts.map +1 -0
  78. package/dist/errors.js +210 -0
  79. package/dist/errors.js.map +1 -0
  80. package/dist/eventbridge.d.ts +117 -0
  81. package/dist/eventbridge.d.ts.map +1 -0
  82. package/dist/eventbridge.js +238 -0
  83. package/dist/eventbridge.js.map +1 -0
  84. package/dist/events.d.ts +2 -2
  85. package/dist/events.d.ts.map +1 -1
  86. package/dist/events.js +1 -1
  87. package/dist/events.js.map +1 -1
  88. package/dist/execution-queue.d.ts.map +1 -1
  89. package/dist/execution-queue.js +4 -5
  90. package/dist/execution-queue.js.map +1 -1
  91. package/dist/index.d.ts +35 -8
  92. package/dist/index.d.ts.map +1 -1
  93. package/dist/index.js +106 -6
  94. package/dist/index.js.map +1 -1
  95. package/dist/linguistic.d.ts +3 -108
  96. package/dist/linguistic.d.ts.map +1 -1
  97. package/dist/linguistic.js +3 -372
  98. package/dist/linguistic.js.map +1 -1
  99. package/dist/logger.d.ts +132 -0
  100. package/dist/logger.d.ts.map +1 -0
  101. package/dist/logger.js +137 -0
  102. package/dist/logger.js.map +1 -0
  103. package/dist/memory-provider.d.ts +128 -0
  104. package/dist/memory-provider.d.ts.map +1 -1
  105. package/dist/memory-provider.js +592 -257
  106. package/dist/memory-provider.js.map +1 -1
  107. package/dist/pg-adapter.d.ts +424 -0
  108. package/dist/pg-adapter.d.ts.map +1 -0
  109. package/dist/pg-adapter.js +921 -0
  110. package/dist/pg-adapter.js.map +1 -0
  111. package/dist/pipelines-iceberg-emitter.d.ts +327 -0
  112. package/dist/pipelines-iceberg-emitter.d.ts.map +1 -0
  113. package/dist/pipelines-iceberg-emitter.js +351 -0
  114. package/dist/pipelines-iceberg-emitter.js.map +1 -0
  115. package/dist/provider-capabilities.d.ts +146 -0
  116. package/dist/provider-capabilities.d.ts.map +1 -0
  117. package/dist/provider-capabilities.js +214 -0
  118. package/dist/provider-capabilities.js.map +1 -0
  119. package/dist/rdb-provider-adapter.d.ts +195 -0
  120. package/dist/rdb-provider-adapter.d.ts.map +1 -0
  121. package/dist/rdb-provider-adapter.js +291 -0
  122. package/dist/rdb-provider-adapter.js.map +1 -0
  123. package/dist/schema/cascade.d.ts +48 -17
  124. package/dist/schema/cascade.d.ts.map +1 -1
  125. package/dist/schema/cascade.js +477 -278
  126. package/dist/schema/cascade.js.map +1 -1
  127. package/dist/schema/definition-caches.d.ts +24 -0
  128. package/dist/schema/definition-caches.d.ts.map +1 -0
  129. package/dist/schema/definition-caches.js +26 -0
  130. package/dist/schema/definition-caches.js.map +1 -0
  131. package/dist/schema/dependency-graph.d.ts +21 -109
  132. package/dist/schema/dependency-graph.d.ts.map +1 -1
  133. package/dist/schema/dependency-graph.js +25 -333
  134. package/dist/schema/dependency-graph.js.map +1 -1
  135. package/dist/schema/diff.d.ts +103 -0
  136. package/dist/schema/diff.d.ts.map +1 -0
  137. package/dist/schema/diff.js +329 -0
  138. package/dist/schema/diff.js.map +1 -0
  139. package/dist/schema/entity-operations.d.ts +99 -0
  140. package/dist/schema/entity-operations.d.ts.map +1 -0
  141. package/dist/schema/entity-operations.js +818 -0
  142. package/dist/schema/entity-operations.js.map +1 -0
  143. package/dist/schema/index.d.ts +28 -34
  144. package/dist/schema/index.d.ts.map +1 -1
  145. package/dist/schema/index.js +454 -521
  146. package/dist/schema/index.js.map +1 -1
  147. package/dist/schema/migration.d.ts +205 -0
  148. package/dist/schema/migration.d.ts.map +1 -0
  149. package/dist/schema/migration.js +327 -0
  150. package/dist/schema/migration.js.map +1 -0
  151. package/dist/schema/nl-query-generator.d.ts +68 -0
  152. package/dist/schema/nl-query-generator.d.ts.map +1 -0
  153. package/dist/schema/nl-query-generator.js +362 -0
  154. package/dist/schema/nl-query-generator.js.map +1 -0
  155. package/dist/schema/nl-query.d.ts +65 -0
  156. package/dist/schema/nl-query.d.ts.map +1 -0
  157. package/dist/schema/nl-query.js +178 -0
  158. package/dist/schema/nl-query.js.map +1 -0
  159. package/dist/schema/parse.d.ts.map +1 -1
  160. package/dist/schema/parse.js +144 -89
  161. package/dist/schema/parse.js.map +1 -1
  162. package/dist/schema/provider.d.ts +37 -0
  163. package/dist/schema/provider.d.ts.map +1 -1
  164. package/dist/schema/provider.js +15 -7
  165. package/dist/schema/provider.js.map +1 -1
  166. package/dist/schema/resolve.d.ts +46 -5
  167. package/dist/schema/resolve.d.ts.map +1 -1
  168. package/dist/schema/resolve.js +237 -95
  169. package/dist/schema/resolve.js.map +1 -1
  170. package/dist/schema/search-utils.d.ts +76 -0
  171. package/dist/schema/search-utils.d.ts.map +1 -0
  172. package/dist/schema/search-utils.js +86 -0
  173. package/dist/schema/search-utils.js.map +1 -0
  174. package/dist/schema/seed.d.ts +53 -0
  175. package/dist/schema/seed.d.ts.map +1 -0
  176. package/dist/schema/seed.js +94 -0
  177. package/dist/schema/seed.js.map +1 -0
  178. package/dist/schema/semantic.d.ts +10 -0
  179. package/dist/schema/semantic.d.ts.map +1 -1
  180. package/dist/schema/semantic.js +192 -86
  181. package/dist/schema/semantic.js.map +1 -1
  182. package/dist/schema/sub-apis.d.ts +52 -0
  183. package/dist/schema/sub-apis.d.ts.map +1 -0
  184. package/dist/schema/sub-apis.js +216 -0
  185. package/dist/schema/sub-apis.js.map +1 -0
  186. package/dist/schema/system-entities.d.ts +42 -0
  187. package/dist/schema/system-entities.d.ts.map +1 -0
  188. package/dist/schema/system-entities.js +101 -0
  189. package/dist/schema/system-entities.js.map +1 -0
  190. package/dist/schema/types.d.ts +91 -9
  191. package/dist/schema/types.d.ts.map +1 -1
  192. package/dist/schema/union-fallback.d.ts.map +1 -1
  193. package/dist/schema/union-fallback.js +21 -15
  194. package/dist/schema/union-fallback.js.map +1 -1
  195. package/dist/schema/value-generators/ai.d.ts +54 -0
  196. package/dist/schema/value-generators/ai.d.ts.map +1 -0
  197. package/dist/schema/value-generators/ai.js +136 -0
  198. package/dist/schema/value-generators/ai.js.map +1 -0
  199. package/dist/schema/value-generators/index.d.ts +126 -0
  200. package/dist/schema/value-generators/index.d.ts.map +1 -0
  201. package/dist/schema/value-generators/index.js +219 -0
  202. package/dist/schema/value-generators/index.js.map +1 -0
  203. package/dist/schema/value-generators/placeholder.d.ts +52 -0
  204. package/dist/schema/value-generators/placeholder.d.ts.map +1 -0
  205. package/dist/schema/value-generators/placeholder.js +328 -0
  206. package/dist/schema/value-generators/placeholder.js.map +1 -0
  207. package/dist/schema/value-generators/types.d.ts +116 -0
  208. package/dist/schema/value-generators/types.d.ts.map +1 -0
  209. package/dist/schema/value-generators/types.js +11 -0
  210. package/dist/schema/value-generators/types.js.map +1 -0
  211. package/dist/schema/version.d.ts +111 -0
  212. package/dist/schema/version.d.ts.map +1 -0
  213. package/dist/schema/version.js +190 -0
  214. package/dist/schema/version.js.map +1 -0
  215. package/dist/schema.d.ts +1095 -24
  216. package/dist/schema.d.ts.map +1 -1
  217. package/dist/schema.js +2852 -40
  218. package/dist/schema.js.map +1 -1
  219. package/dist/semantic-vectors.d.ts +39 -0
  220. package/dist/semantic-vectors.d.ts.map +1 -0
  221. package/dist/semantic-vectors.js +334 -0
  222. package/dist/semantic-vectors.js.map +1 -0
  223. package/dist/semantic.d.ts +29 -1
  224. package/dist/semantic.d.ts.map +1 -1
  225. package/dist/semantic.js +26 -16
  226. package/dist/semantic.js.map +1 -1
  227. package/dist/telemetry.d.ts +128 -0
  228. package/dist/telemetry.d.ts.map +1 -0
  229. package/dist/telemetry.js +305 -0
  230. package/dist/telemetry.js.map +1 -0
  231. package/dist/tests.d.ts.map +1 -1
  232. package/dist/tests.js +30 -22
  233. package/dist/tests.js.map +1 -1
  234. package/dist/type-guards.d.ts +50 -5
  235. package/dist/type-guards.d.ts.map +1 -1
  236. package/dist/type-guards.js +87 -16
  237. package/dist/type-guards.js.map +1 -1
  238. package/dist/types.d.ts +33 -245
  239. package/dist/types.d.ts.map +1 -1
  240. package/dist/types.js +62 -72
  241. package/dist/types.js.map +1 -1
  242. package/dist/validation.d.ts +2 -5
  243. package/dist/validation.d.ts.map +1 -1
  244. package/dist/validation.js +65 -93
  245. package/dist/validation.js.map +1 -1
  246. package/dist/worker/db-provider.d.ts +168 -0
  247. package/dist/worker/db-provider.d.ts.map +1 -0
  248. package/dist/worker/db-provider.js +277 -0
  249. package/dist/worker/db-provider.js.map +1 -0
  250. package/dist/worker/index.d.ts +35 -0
  251. package/dist/worker/index.d.ts.map +1 -0
  252. package/dist/worker/index.js +37 -0
  253. package/dist/worker/index.js.map +1 -0
  254. package/dist/worker.d.ts +779 -0
  255. package/dist/worker.d.ts.map +1 -0
  256. package/dist/worker.js +2786 -0
  257. package/dist/worker.js.map +1 -0
  258. package/package.json +46 -16
  259. package/src/docs-rels/migrations/0001-init.sql +125 -0
  260. package/LICENSE +0 -21
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pg-adapter.js","sourceRoot":"","sources":["../src/pg-adapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,327 @@
1
+ /**
2
+ * Pipelines → Iceberg analytical fan-out emitter — Phase 2 final, bead `aip-0ypt`.
3
+ *
4
+ * Implements the {@link AnalyticalEmitter} contract surfaced by
5
+ * {@link CascadeWriteStrategy} so cascade writes can dual-write into
6
+ * Iceberg via Cloudflare Pipelines without changing the strategy or
7
+ * orchestrator surface. Per
8
+ * [ADR-0003](../../../docs/adr/0003-storage-strategy-pg-clickhouse-default.md),
9
+ * Stack B's storage shape is:
10
+ *
11
+ * ```text
12
+ * cascade write
13
+ * │
14
+ * ▼
15
+ * DO SQLite (per-cascade, transactional, source of truth for traversal)
16
+ * │
17
+ * └──► CascadeWriteStrategy.analyticalEmitter ──► Cloudflare Pipelines ──► R2 Iceberg
18
+ * (analytical SOR; ClickHouse reads from here)
19
+ * ```
20
+ *
21
+ * The transactional path through DO SQLite is the source of truth for
22
+ * cascade correctness. The analytical fan-out is **fire-and-forget** on
23
+ * the hot path: emitter failures MUST NOT fail the cascade write. The
24
+ * `CascadeWriteStrategy` already swallows thrown errors from the
25
+ * emitter; this module additionally never throws — even on completely
26
+ * misconfigured bindings — so callers get the same shape regardless of
27
+ * runtime.
28
+ *
29
+ * ## Schema mapping
30
+ *
31
+ * Iceberg tables for `things` and `actions` mirror the SVO surface used
32
+ * by the PG/CH/DO SQLite adapters. Columns are kept in lowercase
33
+ * snake_case (Iceberg is case-insensitive but tooling typically
34
+ * normalises this way):
35
+ *
36
+ * **things table**
37
+ * - `id` STRING (Thing id; content-hashed by the orchestrator)
38
+ * - `type` STRING (Thing `$type`)
39
+ * - `data` STRING (jsonb-style — emitted as a stringified JSON blob;
40
+ * downstream readers (CH `JSONExtract`, DataFusion `arrow_cast`) parse
41
+ * on read. Iceberg has STRUCT columns but cascade Things are
42
+ * open-shape so we keep the column STRING)
43
+ * - `cascade_id` STRING (the cascade this row belongs to; partition key)
44
+ * - `tenant_id` STRING NULL (when sharded by tenant)
45
+ * - `shard_key` STRING (the strategy's routing key, e.g. `cascade:abc`)
46
+ * - `created_at` TIMESTAMP (emit time; stable)
47
+ * - `updated_at` TIMESTAMP (emit time; bumped on re-emit)
48
+ *
49
+ * **actions table** — wire-compatible with `SVOAction`
50
+ * - `id` STRING (Action id; orchestrator-supplied or adapter-generated)
51
+ * - `verb` STRING
52
+ * - `subject` STRING NULL
53
+ * - `object` STRING NULL
54
+ * - `roles` STRING (JSON-stringified Frame role map)
55
+ * - `data` STRING (JSON-stringified payload)
56
+ * - `status` STRING (`pending` | `completed` | `failed` | `cancelled`)
57
+ * - `cascade_id` STRING (partition key)
58
+ * - `tenant_id` STRING NULL
59
+ * - `shard_key` STRING
60
+ * - `timestamp` TIMESTAMP (emit time)
61
+ *
62
+ * Schema bootstrap (creating the Iceberg tables) is a deployment-time
63
+ * concern; this emitter only writes records into an existing table
64
+ * via the Pipelines binding's `send()`.
65
+ *
66
+ * ## Bindings
67
+ *
68
+ * The emitter accepts a structurally-typed
69
+ * {@link PipelinesStreamBindingLike} so the module compiles in plain
70
+ * Node tests without `@cloudflare/workers-types`. Real Pipelines
71
+ * bindings produced by `wrangler.toml` satisfy this shape at runtime.
72
+ * For non-Workers callers (Node / dev / batch jobs) an
73
+ * {@link HttpPipelinesEmitterOptions} HTTP fallback is supported,
74
+ * issuing `POST` requests against the Pipelines stream endpoint.
75
+ *
76
+ * ## Exactly-once / dedup
77
+ *
78
+ * Cloudflare Pipelines is at-least-once by default. Cascade entity
79
+ * ids are content-hashed by the orchestrator (same inputs → same id),
80
+ * so re-emits of the same cascade re-use the same `id` field — Iceberg
81
+ * MERGE-on-read jobs (or the Pipelines binding's optional dedup key)
82
+ * collapse duplicates downstream. Callers wanting strict
83
+ * exactly-once semantics should configure dedup on the Pipelines
84
+ * stream itself; this emitter exposes `dedupKey?: 'id' | null` to
85
+ * indicate which field to use.
86
+ *
87
+ * @see {@link ../../../docs/adr/0003-storage-strategy-pg-clickhouse-default.md}
88
+ * @see {@link ./cascade-write-strategy.ts}
89
+ * @packageDocumentation
90
+ */
91
+ import type { AnalyticalEmitter } from './cascade-write-strategy.js';
92
+ /**
93
+ * Minimal Cloudflare Pipelines stream binding shape.
94
+ *
95
+ * The real `Pipeline` binding exposes additional methods the emitter
96
+ * does not need (telemetry, batch flushing, etc.). The shape captured
97
+ * here is the subset we call.
98
+ *
99
+ * @example
100
+ * ```toml
101
+ * # wrangler.toml
102
+ * [[pipelines]]
103
+ * binding = "ANALYTICAL_PIPE"
104
+ * pipeline = "cascade-iceberg"
105
+ * ```
106
+ *
107
+ * @example
108
+ * ```ts
109
+ * import { createPipelinesIcebergEmitter } from 'ai-database'
110
+ *
111
+ * const emitter = createPipelinesIcebergEmitter({
112
+ * binding: env.ANALYTICAL_PIPE,
113
+ * thingsTable: 'aidb.things',
114
+ * actionsTable: 'aidb.actions',
115
+ * })
116
+ * ```
117
+ */
118
+ export interface PipelinesStreamBindingLike {
119
+ /**
120
+ * Push an array of records into the pipeline. Records are JSON-
121
+ * serialisable objects; the Pipelines runtime batches and writes them
122
+ * into the configured destination (R2 Iceberg in this deployment).
123
+ *
124
+ * Cloudflare's runtime returns `void` / `Promise<void>` — the call is
125
+ * a fire-and-forget enqueue. Failures (binding misconfigured, quota
126
+ * exceeded, etc.) surface as rejected promises; this emitter
127
+ * swallows them so the cascade hot path remains correct.
128
+ */
129
+ send(records: ReadonlyArray<Record<string, unknown>>): Promise<void> | void;
130
+ }
131
+ /**
132
+ * Shape of a row written into the Iceberg `things` table. Values are
133
+ * lowered (data is stringified JSON) so the Iceberg writer doesn't
134
+ * need to know about open-shape jsonb. CH / DataFusion readers parse
135
+ * the `data` column back into structures via `JSONExtract` /
136
+ * `arrow_cast`.
137
+ */
138
+ export interface IcebergThingRow {
139
+ id: string;
140
+ type: string;
141
+ data: string;
142
+ cascade_id: string;
143
+ tenant_id: string | null;
144
+ shard_key: string;
145
+ created_at: string;
146
+ updated_at: string;
147
+ }
148
+ /**
149
+ * Shape of a row written into the Iceberg `actions` table. Mirrors
150
+ * the SVO Action surface plus cascade-routing columns.
151
+ */
152
+ export interface IcebergActionRow {
153
+ id: string;
154
+ verb: string;
155
+ subject: string | null;
156
+ object: string | null;
157
+ roles: string;
158
+ data: string;
159
+ status: string;
160
+ cascade_id: string;
161
+ tenant_id: string | null;
162
+ shard_key: string;
163
+ timestamp: string;
164
+ }
165
+ /**
166
+ * Minimal logger shape the emitter calls when fan-out fails. Defaults
167
+ * to a no-op so library callers don't pay for a logger they didn't ask
168
+ * for. Workers callers typically pass `console`; production callers
169
+ * pass their structured logger.
170
+ */
171
+ export interface PipelinesEmitterLoggerLike {
172
+ warn?: (message: string, data?: Record<string, unknown>) => void;
173
+ error?: (message: string, data?: Record<string, unknown>) => void;
174
+ }
175
+ /**
176
+ * Common options shared by binding-mode and HTTP-mode emitters.
177
+ */
178
+ interface PipelinesIcebergEmitterCommonOptions {
179
+ /**
180
+ * Iceberg table name for Things rows. Defaults to `'things'`.
181
+ * Callers running multi-tenant deployments typically use
182
+ * `'tenant_<id>.things'` or similar; pass the fully-qualified table
183
+ * name your Pipelines stream is configured to write into.
184
+ */
185
+ thingsTable?: string;
186
+ /**
187
+ * Iceberg table name for Actions rows. Defaults to `'actions'`.
188
+ */
189
+ actionsTable?: string;
190
+ /**
191
+ * Tenant id stamped onto every row. When omitted the emitter looks
192
+ * for `tenantId` on the {@link ShardRef.context}; if neither is
193
+ * present rows carry `tenant_id = null`.
194
+ */
195
+ tenantId?: string;
196
+ /**
197
+ * Hint to downstream MERGE-on-read jobs about which column carries
198
+ * the dedup key. The emitter doesn't use this internally — it's
199
+ * carried into the row payload as `_dedup_key` so the Pipelines
200
+ * stream / Iceberg compaction can act on it. Default: `'id'`.
201
+ */
202
+ dedupKey?: 'id' | null;
203
+ /**
204
+ * Override `Date.now()` for deterministic tests. Returns an ISO 8601
205
+ * string used for `created_at` / `updated_at` / `timestamp`.
206
+ */
207
+ now?: () => string;
208
+ /**
209
+ * Optional logger. Defaults to no-op. Failures are logged at `warn`
210
+ * level (the cascade local commit is the source of truth).
211
+ */
212
+ logger?: PipelinesEmitterLoggerLike;
213
+ /**
214
+ * When true, `await` the `send()` call before returning from
215
+ * `emit()`. Default: `false` (fire-and-forget). Kept as an escape
216
+ * hatch for tests that want to assert exact ordering; production
217
+ * callers leave this off so the cascade hot path doesn't pay the
218
+ * round-trip latency.
219
+ *
220
+ * Even when `awaitSend` is true, errors are still swallowed —
221
+ * setting this to `true` does NOT change the failure semantics.
222
+ * If you need synchronous "did the analytical write land?"
223
+ * guarantees, that's a different design (the emitter would have
224
+ * to surface a typed error path; bead reserves that as out-of-scope).
225
+ */
226
+ awaitSend?: boolean;
227
+ }
228
+ /**
229
+ * Options for the Workers-binding-mode emitter (canonical Stack B shape).
230
+ */
231
+ export interface PipelinesIcebergEmitterOptions extends PipelinesIcebergEmitterCommonOptions {
232
+ /**
233
+ * The Pipelines stream binding (a single binding fans out into both
234
+ * tables — see {@link thingsTable} / {@link actionsTable}).
235
+ *
236
+ * For separate streams per table, pass {@link thingsBinding} and
237
+ * {@link actionsBinding} instead and leave this field undefined.
238
+ */
239
+ binding?: PipelinesStreamBindingLike;
240
+ /** Optional separate binding for Things rows. Overrides {@link binding}. */
241
+ thingsBinding?: PipelinesStreamBindingLike;
242
+ /** Optional separate binding for Actions rows. Overrides {@link binding}. */
243
+ actionsBinding?: PipelinesStreamBindingLike;
244
+ }
245
+ /**
246
+ * Options for the HTTP-fallback emitter — used by Node / dev / batch
247
+ * jobs that don't have a Pipelines binding available. Issues a `POST`
248
+ * with `Content-Type: application/json` against the Pipelines stream
249
+ * endpoint URL provided. The body is a JSON array of rows (the same
250
+ * shape `send()` would receive).
251
+ */
252
+ export interface HttpPipelinesEmitterOptions extends PipelinesIcebergEmitterCommonOptions {
253
+ /**
254
+ * Pipelines stream endpoint URL. Cloudflare exposes a per-stream
255
+ * HTTPS endpoint; configure the URL out-of-band (e.g. via
256
+ * `PIPELINES_THINGS_URL` / `PIPELINES_ACTIONS_URL` env vars at the
257
+ * call site).
258
+ *
259
+ * If only one URL is configured, both Things and Actions are sent
260
+ * to the same endpoint with a `_table` discriminator.
261
+ */
262
+ url?: string;
263
+ /** Optional separate endpoint for Things rows. Overrides {@link url}. */
264
+ thingsUrl?: string;
265
+ /** Optional separate endpoint for Actions rows. Overrides {@link url}. */
266
+ actionsUrl?: string;
267
+ /**
268
+ * Optional bearer token for authentication. Sent as
269
+ * `Authorization: Bearer <token>` on the `POST`.
270
+ */
271
+ authToken?: string;
272
+ /**
273
+ * Optional fetch implementation. Default: global `fetch`. Tests pass
274
+ * a structural fake.
275
+ */
276
+ fetch?: (input: string, init?: RequestInit) => Promise<Response>;
277
+ }
278
+ /**
279
+ * Create an {@link AnalyticalEmitter} that fans out cascade writes
280
+ * into Iceberg via Cloudflare Pipelines.
281
+ *
282
+ * The returned emitter satisfies the
283
+ * {@link CascadeWriteStrategy.analyticalEmitter} contract — pass it
284
+ * directly to {@link CascadeWriteStrategy} or
285
+ * {@link generateCascade} via the `analyticalEmitter` option.
286
+ *
287
+ * @example Workers binding mode
288
+ * ```ts
289
+ * import { createPipelinesIcebergEmitter, generateCascade } from 'ai-database'
290
+ *
291
+ * const emitter = createPipelinesIcebergEmitter({
292
+ * binding: env.ANALYTICAL_PIPE,
293
+ * thingsTable: 'aidb.things',
294
+ * actionsTable: 'aidb.actions',
295
+ * tenantId: 'acme',
296
+ * })
297
+ *
298
+ * await generateCascade({
299
+ * adapter,
300
+ * rootNoun: 'Customer',
301
+ * analyticalEmitter: emitter,
302
+ * // ...
303
+ * })
304
+ * ```
305
+ *
306
+ * @example Node HTTP fallback (dev / batch)
307
+ * ```ts
308
+ * import { createHttpPipelinesIcebergEmitter } from 'ai-database'
309
+ *
310
+ * const emitter = createHttpPipelinesIcebergEmitter({
311
+ * url: process.env.PIPELINES_URL,
312
+ * authToken: process.env.PIPELINES_TOKEN,
313
+ * })
314
+ * ```
315
+ */
316
+ export declare function createPipelinesIcebergEmitter(options: PipelinesIcebergEmitterOptions): AnalyticalEmitter;
317
+ /**
318
+ * Create an {@link AnalyticalEmitter} that fans out cascade writes
319
+ * into Iceberg via the Pipelines HTTPS stream endpoint.
320
+ *
321
+ * Used by non-Workers callers (Node / dev / batch jobs). Workers
322
+ * deployments should prefer {@link createPipelinesIcebergEmitter}
323
+ * for lower latency.
324
+ */
325
+ export declare function createHttpPipelinesIcebergEmitter(options: HttpPipelinesEmitterOptions): AnalyticalEmitter;
326
+ export {};
327
+ //# sourceMappingURL=pipelines-iceberg-emitter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipelines-iceberg-emitter.d.ts","sourceRoot":"","sources":["../src/pipelines-iceberg-emitter.ts"],"names":[],"mappings":"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"}