ai-database 2.1.1 → 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 (268) hide show
  1. package/CHANGELOG.md +47 -1
  2. package/README.md +1063 -186
  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 +52 -23
  8. package/dist/ai-promise-db.d.ts.map +1 -1
  9. package/dist/ai-promise-db.js +185 -164
  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 +37 -8
  92. package/dist/index.d.ts.map +1 -1
  93. package/dist/index.js +112 -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 +129 -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 +49 -10
  124. package/dist/schema/cascade.d.ts.map +1 -1
  125. package/dist/schema/cascade.js +491 -273
  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 +45 -0
  132. package/dist/schema/dependency-graph.d.ts.map +1 -0
  133. package/dist/schema/dependency-graph.js +47 -0
  134. package/dist/schema/dependency-graph.js.map +1 -0
  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/generation-context.d.ts +202 -0
  144. package/dist/schema/generation-context.d.ts.map +1 -0
  145. package/dist/schema/generation-context.js +393 -0
  146. package/dist/schema/generation-context.js.map +1 -0
  147. package/dist/schema/index.d.ts +32 -34
  148. package/dist/schema/index.d.ts.map +1 -1
  149. package/dist/schema/index.js +462 -519
  150. package/dist/schema/index.js.map +1 -1
  151. package/dist/schema/migration.d.ts +205 -0
  152. package/dist/schema/migration.d.ts.map +1 -0
  153. package/dist/schema/migration.js +327 -0
  154. package/dist/schema/migration.js.map +1 -0
  155. package/dist/schema/nl-query-generator.d.ts +68 -0
  156. package/dist/schema/nl-query-generator.d.ts.map +1 -0
  157. package/dist/schema/nl-query-generator.js +362 -0
  158. package/dist/schema/nl-query-generator.js.map +1 -0
  159. package/dist/schema/nl-query.d.ts +65 -0
  160. package/dist/schema/nl-query.d.ts.map +1 -0
  161. package/dist/schema/nl-query.js +178 -0
  162. package/dist/schema/nl-query.js.map +1 -0
  163. package/dist/schema/parse.d.ts.map +1 -1
  164. package/dist/schema/parse.js +152 -89
  165. package/dist/schema/parse.js.map +1 -1
  166. package/dist/schema/provider.d.ts +38 -0
  167. package/dist/schema/provider.d.ts.map +1 -1
  168. package/dist/schema/provider.js +15 -7
  169. package/dist/schema/provider.js.map +1 -1
  170. package/dist/schema/resolve.d.ts +46 -5
  171. package/dist/schema/resolve.d.ts.map +1 -1
  172. package/dist/schema/resolve.js +334 -117
  173. package/dist/schema/resolve.js.map +1 -1
  174. package/dist/schema/search-utils.d.ts +76 -0
  175. package/dist/schema/search-utils.d.ts.map +1 -0
  176. package/dist/schema/search-utils.js +86 -0
  177. package/dist/schema/search-utils.js.map +1 -0
  178. package/dist/schema/seed.d.ts +53 -0
  179. package/dist/schema/seed.d.ts.map +1 -0
  180. package/dist/schema/seed.js +94 -0
  181. package/dist/schema/seed.js.map +1 -0
  182. package/dist/schema/semantic.d.ts +11 -0
  183. package/dist/schema/semantic.d.ts.map +1 -1
  184. package/dist/schema/semantic.js +262 -68
  185. package/dist/schema/semantic.js.map +1 -1
  186. package/dist/schema/sub-apis.d.ts +52 -0
  187. package/dist/schema/sub-apis.d.ts.map +1 -0
  188. package/dist/schema/sub-apis.js +216 -0
  189. package/dist/schema/sub-apis.js.map +1 -0
  190. package/dist/schema/system-entities.d.ts +42 -0
  191. package/dist/schema/system-entities.d.ts.map +1 -0
  192. package/dist/schema/system-entities.js +101 -0
  193. package/dist/schema/system-entities.js.map +1 -0
  194. package/dist/schema/types.d.ts +91 -9
  195. package/dist/schema/types.d.ts.map +1 -1
  196. package/dist/schema/union-fallback.d.ts +219 -0
  197. package/dist/schema/union-fallback.d.ts.map +1 -0
  198. package/dist/schema/union-fallback.js +331 -0
  199. package/dist/schema/union-fallback.js.map +1 -0
  200. package/dist/schema/value-generators/ai.d.ts +54 -0
  201. package/dist/schema/value-generators/ai.d.ts.map +1 -0
  202. package/dist/schema/value-generators/ai.js +136 -0
  203. package/dist/schema/value-generators/ai.js.map +1 -0
  204. package/dist/schema/value-generators/index.d.ts +126 -0
  205. package/dist/schema/value-generators/index.d.ts.map +1 -0
  206. package/dist/schema/value-generators/index.js +219 -0
  207. package/dist/schema/value-generators/index.js.map +1 -0
  208. package/dist/schema/value-generators/placeholder.d.ts +52 -0
  209. package/dist/schema/value-generators/placeholder.d.ts.map +1 -0
  210. package/dist/schema/value-generators/placeholder.js +328 -0
  211. package/dist/schema/value-generators/placeholder.js.map +1 -0
  212. package/dist/schema/value-generators/types.d.ts +116 -0
  213. package/dist/schema/value-generators/types.d.ts.map +1 -0
  214. package/dist/schema/value-generators/types.js +11 -0
  215. package/dist/schema/value-generators/types.js.map +1 -0
  216. package/dist/schema/verb-derivation.d.ts +167 -0
  217. package/dist/schema/verb-derivation.d.ts.map +1 -0
  218. package/dist/schema/verb-derivation.js +281 -0
  219. package/dist/schema/verb-derivation.js.map +1 -0
  220. package/dist/schema/version.d.ts +111 -0
  221. package/dist/schema/version.d.ts.map +1 -0
  222. package/dist/schema/version.js +190 -0
  223. package/dist/schema/version.js.map +1 -0
  224. package/dist/schema.d.ts +1095 -23
  225. package/dist/schema.d.ts.map +1 -1
  226. package/dist/schema.js +2854 -38
  227. package/dist/schema.js.map +1 -1
  228. package/dist/semantic-vectors.d.ts +39 -0
  229. package/dist/semantic-vectors.d.ts.map +1 -0
  230. package/dist/semantic-vectors.js +334 -0
  231. package/dist/semantic-vectors.js.map +1 -0
  232. package/dist/semantic.d.ts +29 -1
  233. package/dist/semantic.d.ts.map +1 -1
  234. package/dist/semantic.js +26 -16
  235. package/dist/semantic.js.map +1 -1
  236. package/dist/telemetry.d.ts +128 -0
  237. package/dist/telemetry.d.ts.map +1 -0
  238. package/dist/telemetry.js +305 -0
  239. package/dist/telemetry.js.map +1 -0
  240. package/dist/tests.d.ts.map +1 -1
  241. package/dist/tests.js +30 -22
  242. package/dist/tests.js.map +1 -1
  243. package/dist/type-guards.d.ts +212 -0
  244. package/dist/type-guards.d.ts.map +1 -0
  245. package/dist/type-guards.js +318 -0
  246. package/dist/type-guards.js.map +1 -0
  247. package/dist/types.d.ts +33 -245
  248. package/dist/types.d.ts.map +1 -1
  249. package/dist/types.js +62 -72
  250. package/dist/types.js.map +1 -1
  251. package/dist/validation.d.ts +165 -0
  252. package/dist/validation.d.ts.map +1 -0
  253. package/dist/validation.js +639 -0
  254. package/dist/validation.js.map +1 -0
  255. package/dist/worker/db-provider.d.ts +168 -0
  256. package/dist/worker/db-provider.d.ts.map +1 -0
  257. package/dist/worker/db-provider.js +277 -0
  258. package/dist/worker/db-provider.js.map +1 -0
  259. package/dist/worker/index.d.ts +35 -0
  260. package/dist/worker/index.d.ts.map +1 -0
  261. package/dist/worker/index.js +37 -0
  262. package/dist/worker/index.js.map +1 -0
  263. package/dist/worker.d.ts +779 -0
  264. package/dist/worker.d.ts.map +1 -0
  265. package/dist/worker.js +2786 -0
  266. package/dist/worker.js.map +1 -0
  267. package/package.json +38 -8
  268. package/src/docs-rels/migrations/0001-init.sql +125 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cascade-orchestrator.js","sourceRoot":"","sources":["../src/cascade-orchestrator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,584 @@
1
+ /**
2
+ * Cascade Write Strategy — sharded parallel writes for cascade generation
3
+ *
4
+ * Phase 2 entry point of the cascade epic per
5
+ * [ADR-0003](../../../docs/adr/0003-storage-strategy-pg-clickhouse-default.md)
6
+ * and the
7
+ * [implementation plan](../../../docs/plans/2026-05-05-cascade-storage-execution-implementation.md).
8
+ *
9
+ * This module is **strategy + scaffolding** — the *primitive* the cascade
10
+ * orchestrator (`aip-8yal`) calls. It does not run the orchestration loop
11
+ * itself, does not call LLMs, and does not implement the dual-write to
12
+ * Pipelines/Iceberg fan-out (that's `aip-0ypt`). It does:
13
+ *
14
+ * 1. **Shard-key derivation** — given a cascade context, pick the
15
+ * {@link ShardRef} the next batch should land in. Built-in strategies
16
+ * cover the three sharding models declared on `DBProvider`:
17
+ * `per-cascade` (DO SQLite default), `partitioned-by-tenant` (PG
18
+ * schema-per-tenant or `tenant_id` partition key), `unsharded`.
19
+ *
20
+ * 2. **Bulk-write API** — {@link writeBatch} routes a batch of Things +
21
+ * Actions through the adapter's cascade fast path. For PG, that's the
22
+ * **CTE jsonb-bulk shape** proven by the substrate-write-probes
23
+ * (91 ms p50 for 500 things + 499 actions on Neon HTTP — see
24
+ * `docs/reviews/2026-05-05-cascade-poc-evaluation.md`). For DO SQLite,
25
+ * the routing layer pins the shard and forwards the batch into the
26
+ * per-cascade DO. For ClickHouse, JSONEachRow is the path.
27
+ *
28
+ * 3. **Read-back-during-traversal API** — {@link readShardLocal} performs a
29
+ * point read against the same shard the batch was written to. Cascade
30
+ * generation reads back just-written entities to inform the next
31
+ * generation step; cross-shard reads on the hot path are explicitly
32
+ * not supported.
33
+ *
34
+ * 4. **Pipelines fan-out hook** — a {@link AnalyticalEmitter} callback the
35
+ * caller may pass to {@link writeBatch}. The cascade-write-strategy
36
+ * invokes it post-commit so Stack B's dual-write
37
+ * (DO SQLite local → Pipelines → Iceberg → ClickHouse) can be wired
38
+ * later by `aip-0ypt` without changing this surface.
39
+ *
40
+ * ## Why a separate module
41
+ *
42
+ * The cascade orchestrator is long, has its own retry/validation/policy
43
+ * concerns, and needs swappable storage. Pulling the write-strategy
44
+ * primitive out keeps the orchestration module focused, lets us unit-test
45
+ * shard-key derivation independently of LLM calls, and keeps the
46
+ * provenance of the write shape (the substrate-write-probes verdict)
47
+ * documented in one place rather than scattered through orchestrator code.
48
+ *
49
+ * @see {@link ../docs/adr/0003-storage-strategy-pg-clickhouse-default.md}
50
+ * @see {@link ../docs/reviews/2026-05-05-cascade-poc-evaluation.md}
51
+ * @packageDocumentation
52
+ */
53
+ import type { DBProvider } from './schema/provider.js';
54
+ import type { DBProviderPort, ShardingModel, SVOAction } from './db-provider-port.js';
55
+ /**
56
+ * Stable handle the cascade orchestrator carries between
57
+ * {@link CascadeWriteStrategy.pickShard} and subsequent calls to
58
+ * {@link CascadeWriteStrategy.writeBatch} / {@link CascadeWriteStrategy.readShardLocal}.
59
+ *
60
+ * `key` is the routing key the strategy emitted (e.g. `'cascade:abc'`,
61
+ * `'tenant:acme'`, `'__shared__'`); adapters consume it through
62
+ * `context.cascadeId` / `context.tenantId` / a custom hook. `model` is the
63
+ * sharding model that produced the key — useful for diagnostics and for
64
+ * orchestrators that route differently when shards are per-cascade vs.
65
+ * per-tenant.
66
+ *
67
+ * The opaque `context` field carries the full cascade context that
68
+ * produced this `ShardRef`; the DO SQLite shard-routing helper consumes
69
+ * it via {@link DOSqliteAdapter.withContext} so per-op operations land in
70
+ * the correct DO.
71
+ */
72
+ export interface ShardRef {
73
+ /** Routing key emitted by the active sharding strategy. */
74
+ key: string;
75
+ /** Sharding model declared on the underlying DBProvider adapter. */
76
+ model: ShardingModel;
77
+ /** Cascade context that produced the key (for read-back routing). */
78
+ context: CascadeShardContext;
79
+ }
80
+ /**
81
+ * Per-batch context the cascade orchestrator passes into
82
+ * {@link CascadeWriteStrategy.pickShard}.
83
+ *
84
+ * Required fields are deliberately small. The full shape is open via
85
+ * `[key: string]: unknown` so callers can carry deployment-specific
86
+ * routing hints (e.g. region pin, A/B bucket) without changing this
87
+ * port.
88
+ *
89
+ * `rootEntity` is the cascade's root (e.g. `FoundingHypothesis-abc123`);
90
+ * the strategy may inspect its `$type` for type-aware sharding. It is
91
+ * NOT used as the routing key directly — that's `cascadeId`.
92
+ */
93
+ export interface CascadeShardContext {
94
+ /**
95
+ * The cascade root entity reference. The strategy may derive type-aware
96
+ * routing from this (e.g. type-per-shard) but the canonical
97
+ * `'per-cascade'` strategy uses {@link CascadeShardContext.cascadeId}.
98
+ */
99
+ rootEntity?: {
100
+ $id: string;
101
+ $type: string;
102
+ };
103
+ /**
104
+ * Stable cascade id. Required for `'per-cascade'` strategy. The
105
+ * orchestrator typically derives this from a content hash of the
106
+ * root entity + cascade definition so re-runs route to the same shard.
107
+ */
108
+ cascadeId?: string;
109
+ /**
110
+ * Tenant id. Required for `'partitioned-by-tenant'` strategy.
111
+ */
112
+ tenantId?: string;
113
+ /**
114
+ * Free-form context the caller may consult inside a custom strategy.
115
+ */
116
+ [key: string]: unknown;
117
+ }
118
+ /**
119
+ * A sharding strategy maps a {@link CascadeShardContext} to a
120
+ * {@link ShardRef}.
121
+ *
122
+ * Strategies MUST be deterministic — the same context MUST produce the
123
+ * same key — so the cascade orchestrator's read-back during traversal
124
+ * lands on the shard that received the write.
125
+ *
126
+ * Built-in strategies are exported as constants on
127
+ * {@link CascadeShardingStrategies}; callers can also pass any
128
+ * `(ctx) => ShardRef` callback.
129
+ */
130
+ export type CascadeShardingStrategy = (ctx: CascadeShardContext) => ShardRef;
131
+ /**
132
+ * Built-in cascade sharding strategies.
133
+ *
134
+ * Each maps the abstract {@link ShardingModel} declared on a `DBProvider`
135
+ * to a concrete routing-key derivation. Adapters consult their adapter's
136
+ * declared sharding model via {@link getProviderCapabilities} when
137
+ * picking a default; callers can override.
138
+ *
139
+ * - {@link perCascade} — one shard per cascade. Default for
140
+ * `do-sqlite` adapter (per ADR-0003 enabling pattern). Throws if
141
+ * {@link CascadeShardContext.cascadeId} is missing.
142
+ * - {@link partitionedByTenant} — one shard per tenant. Default for
143
+ * `pg+pgvector` adapter. Throws if {@link CascadeShardContext.tenantId}
144
+ * is missing.
145
+ * - {@link unsharded} — single global shard. Default for `memory` and any
146
+ * adapter that does not declare a sharding model. Always returns the
147
+ * constant key `'__shared__'`.
148
+ */
149
+ export declare const CascadeShardingStrategies: {
150
+ /**
151
+ * One shard per cascade. Stack B's enabling pattern: every active
152
+ * cascade gets its own DO (or its own PG partition / temp schema)
153
+ * giving full single-shard write throughput in parallel.
154
+ *
155
+ * @param defaultCascadeId - Fallback when the per-op context omits
156
+ * `cascadeId`. Useful when the orchestrator has a stable cascade
157
+ * scope but individual write batches don't restate it.
158
+ */
159
+ readonly perCascade: (defaultCascadeId?: string) => CascadeShardingStrategy;
160
+ /**
161
+ * One shard per tenant. The natural shape for multi-tenant Postgres
162
+ * (schema-per-tenant or `tenant_id` partition key). Many cascades
163
+ * within the same tenant share a partition; tenants are isolated.
164
+ *
165
+ * @param defaultTenantId - Fallback when the per-op context omits
166
+ * `tenantId`.
167
+ */
168
+ readonly partitionedByTenant: (defaultTenantId?: string) => CascadeShardingStrategy;
169
+ /**
170
+ * Single global shard. Default for in-memory / dev / single small PG
171
+ * deployments. Cascade throughput hits the underlying adapter's
172
+ * single-writer ceiling.
173
+ */
174
+ readonly unsharded: () => CascadeShardingStrategy;
175
+ };
176
+ /**
177
+ * A Thing to write in a cascade batch.
178
+ *
179
+ * The cascade orchestrator pre-derives stable ids (content hashes
180
+ * including the parent's full idempotency key per the lineage-key
181
+ * discipline from `cf-substrate/tierA-cascade`) before commit so
182
+ * grandchildren backrefs point at the right parent. This module
183
+ * trusts the caller's id discipline and writes verbatim.
184
+ */
185
+ export interface CascadeThing {
186
+ /** Stable, content-hashed id derived upstream by the orchestrator. */
187
+ id: string;
188
+ /** Thing `$type` (e.g. `'Customer'`, `'Order'`, `'NameCandidate'`). */
189
+ type: string;
190
+ /** Thing payload. The adapter writes this as a jsonb / String column. */
191
+ data: Record<string, unknown>;
192
+ }
193
+ /**
194
+ * An Action to write in a cascade batch.
195
+ *
196
+ * Wire-compatible with {@link SVOAction} minus `id` (caller-supplied or
197
+ * adapter-generated) and lifecycle timestamps (adapters set these at
198
+ * commit time). Actions carry **subject** + **object** + **Frame
199
+ * roles** — the post-SVO recording shape; adapters route them to the
200
+ * per-row columns / role jsonb map per their schema.
201
+ *
202
+ * `relateTuple` is the legacy `(fromType, fromId, relation, toType, toId)`
203
+ * shape some callers may carry; for backward compatibility the cascade
204
+ * orchestrator can populate it and the strategy converts to an Action
205
+ * before write. Pure SVO callers omit it.
206
+ */
207
+ export interface CascadeAction {
208
+ /** Optional caller-supplied id. Adapter generates if omitted. */
209
+ id?: string;
210
+ /** Verb name. References a Verb in the adapter's registry. */
211
+ verb: string;
212
+ /** Subject Thing id (actor / who-acts). */
213
+ subject?: string;
214
+ /** Object Thing id (what-is-acted-on). */
215
+ object?: string;
216
+ /** Frame role assignments beyond subject/object (recipient/source/...). */
217
+ roles?: Record<string, string>;
218
+ /** Verb-specific payload. */
219
+ data?: Record<string, unknown>;
220
+ /**
221
+ * Action lifecycle status. Defaults to `'completed'` for cascade
222
+ * relations (the relation is observed-as-true at write time). The
223
+ * orchestrator may pass `'pending'` for Actions that record an
224
+ * in-flight LLM step and transition to `'completed'`/`'failed'`
225
+ * after the call returns.
226
+ */
227
+ status?: SVOAction['status'];
228
+ }
229
+ /**
230
+ * The unit of work the cascade orchestrator hands the strategy.
231
+ *
232
+ * Both arrays may be empty independently — a batch may be Things-only
233
+ * (entity creation) or Actions-only (relation recording).
234
+ */
235
+ export interface CascadeBatch {
236
+ things?: ReadonlyArray<CascadeThing>;
237
+ actions?: ReadonlyArray<CascadeAction>;
238
+ }
239
+ /**
240
+ * Result returned by {@link CascadeWriteStrategy.writeBatch}.
241
+ *
242
+ * `thingsInserted` / `actionsInserted` reflect the count actually inserted
243
+ * (excludes idempotent conflicts). Adapters whose drivers don't surface
244
+ * row counts (some ClickHouse paths) report the input batch size — see
245
+ * adapter-specific docs.
246
+ */
247
+ export interface CascadeBatchResult {
248
+ thingsInserted: number;
249
+ actionsInserted: number;
250
+ shard: ShardRef;
251
+ }
252
+ /**
253
+ * Optional `commitBatch` shape adapters expose to opt into the cascade
254
+ * fast path. PG and CH adapters in this package implement this; in-memory
255
+ * and DO SQLite do not (they fall back to per-op writes).
256
+ *
257
+ * When present, the strategy routes the entire batch through
258
+ * `commitBatch` — for PG that's the CTE jsonb-bulk shape, for CH it's
259
+ * the JSONEachRow path.
260
+ */
261
+ export interface BulkCommitCapable {
262
+ commitBatch(input: {
263
+ things?: ReadonlyArray<{
264
+ id: string;
265
+ type: string;
266
+ data: Record<string, unknown>;
267
+ }>;
268
+ actions?: ReadonlyArray<{
269
+ id?: string;
270
+ verb: string;
271
+ subject?: string | undefined;
272
+ object?: string | undefined;
273
+ roles?: Record<string, string> | undefined;
274
+ data?: Record<string, unknown> | undefined;
275
+ status?: SVOAction['status'] | undefined;
276
+ }>;
277
+ }): Promise<{
278
+ thingsInserted: number;
279
+ actionsInserted: number;
280
+ }>;
281
+ }
282
+ /**
283
+ * Optional context-binding shape adapters expose to receive shard
284
+ * routing for every subsequent operation. The DO SQLite adapter
285
+ * implements `withCascade`/`withTenant`/`withContext`; PG and CH
286
+ * adapters return `this` (no per-shard binding needed — their `ns`
287
+ * column carries the partition key already).
288
+ */
289
+ export interface ShardContextBindable<T> {
290
+ withContext(context: Record<string, unknown>): T;
291
+ withCascade?(cascadeId: string): T;
292
+ withTenant?(tenantId: string): T;
293
+ }
294
+ /**
295
+ * Hook the cascade-write-strategy invokes after a successful commit so
296
+ * Stack B's dual-write (DO SQLite local → Pipelines → Iceberg → CH) can
297
+ * fan-out the same batch to the analytical store.
298
+ *
299
+ * Implementation lives in `aip-0ypt`; this strategy only surfaces the
300
+ * extension point. Failures inside the emitter are logged and swallowed
301
+ * — the analytical fan-out is not load-bearing for cascade correctness.
302
+ */
303
+ export type AnalyticalEmitter = (input: {
304
+ shard: ShardRef;
305
+ batch: CascadeBatch;
306
+ result: {
307
+ thingsInserted: number;
308
+ actionsInserted: number;
309
+ };
310
+ }) => Promise<void> | void;
311
+ /**
312
+ * Constructor options for {@link CascadeWriteStrategy}.
313
+ */
314
+ export interface CascadeWriteStrategyOptions {
315
+ /**
316
+ * The DBProvider adapter to write through. Must be
317
+ * {@link BulkCommitCapable} for the cascade fast path; if not, the
318
+ * strategy falls back to per-op writes (`create()` + `relate()`).
319
+ */
320
+ adapter: DBProvider | DBProviderPort;
321
+ /**
322
+ * Sharding strategy. One of:
323
+ * - A built-in strategy from {@link CascadeShardingStrategies}.
324
+ * - A custom `(ctx) => ShardRef` callback.
325
+ * - A shorthand string mapped to a built-in:
326
+ * - `'per-cascade'` → `CascadeShardingStrategies.perCascade()`
327
+ * - `'partitioned-by-tenant'` → `CascadeShardingStrategies.partitionedByTenant()`
328
+ * - `'unsharded'` → `CascadeShardingStrategies.unsharded()`
329
+ *
330
+ * Default: derived from the adapter's declared
331
+ * {@link ProviderTierCapabilities.shardingModel} via
332
+ * {@link getProviderCapabilities}. Adapters that don't declare default
333
+ * to `'unsharded'`.
334
+ */
335
+ sharding?: CascadeShardingStrategy | 'per-cascade' | 'partitioned-by-tenant' | 'unsharded';
336
+ /**
337
+ * Default cascade id used when {@link CascadeShardingStrategies.perCascade}
338
+ * is the active strategy and the per-op context omits it.
339
+ */
340
+ defaultCascadeId?: string;
341
+ /**
342
+ * Default tenant id used when
343
+ * {@link CascadeShardingStrategies.partitionedByTenant} is the active
344
+ * strategy and the per-op context omits it.
345
+ */
346
+ defaultTenantId?: string;
347
+ /**
348
+ * Maximum number of Things + Actions per round-trip to the adapter.
349
+ * Per the substrate-write-probes verdict the CTE jsonb-bulk shape
350
+ * achieves sublinear scaling above N=100 and 91 ms p50 at N=500. We
351
+ * default to **1000** — well within the sweet spot for both PG and
352
+ * DO SQLite per-op limits — and chunk larger batches into rounds.
353
+ *
354
+ * @default 1000
355
+ */
356
+ maxBatchSize?: number;
357
+ /**
358
+ * Optional analytical fan-out hook (see {@link AnalyticalEmitter}).
359
+ * Implementation deferred to `aip-0ypt`; surfaced here as a
360
+ * non-blocking extension point.
361
+ */
362
+ analyticalEmitter?: AnalyticalEmitter;
363
+ }
364
+ /**
365
+ * The cascade write strategy primitive.
366
+ *
367
+ * Composes a `DBProvider` adapter with a sharding strategy and exposes
368
+ * the bulk-write + read-back surface the cascade orchestrator
369
+ * (`aip-8yal`) calls per traversal step. This module owns:
370
+ *
371
+ * - Routing-key derivation ({@link pickShard})
372
+ * - Bulk write via the adapter's cascade fast path ({@link writeBatch})
373
+ * - Local read-back from the same shard ({@link readShardLocal})
374
+ * - Analytical fan-out hook (post-commit; opt-in)
375
+ *
376
+ * It does NOT own:
377
+ *
378
+ * - LLM-driven generation (the orchestrator calls it before issuing batches)
379
+ * - Validation / policy / retry (the orchestrator wraps the strategy)
380
+ * - Pipelines→Iceberg dual-write semantics (`aip-0ypt`)
381
+ * - Cross-shard joins (out of scope per ADR-0003 hot-path constraint)
382
+ *
383
+ * @example
384
+ * ```ts
385
+ * import {
386
+ * CascadeWriteStrategy,
387
+ * createPostgresProvider,
388
+ * } from 'ai-database'
389
+ *
390
+ * const adapter = createPostgresProvider({ executor, namespace: 'tenant-9' })
391
+ * const strategy = new CascadeWriteStrategy({
392
+ * adapter,
393
+ * sharding: 'partitioned-by-tenant',
394
+ * defaultTenantId: 'tenant-9',
395
+ * })
396
+ *
397
+ * const shard = strategy.pickShard({
398
+ * rootEntity: { $id: 'fh-1', $type: 'FoundingHypothesis' },
399
+ * tenantId: 'tenant-9',
400
+ * })
401
+ *
402
+ * await strategy.writeBatch(shard, {
403
+ * things: [{ id: 'cust-1', type: 'Customer', data: { name: 'Acme' } }],
404
+ * actions: [{ verb: 'placedBy', subject: 'order-1', object: 'cust-1', status: 'completed' }],
405
+ * })
406
+ * ```
407
+ */
408
+ export declare class CascadeWriteStrategy {
409
+ private readonly adapter;
410
+ private readonly strategy;
411
+ readonly maxBatchSize: number;
412
+ private readonly emitter;
413
+ constructor(options: CascadeWriteStrategyOptions);
414
+ /**
415
+ * Derive the {@link ShardRef} the next batch should land in. Pure —
416
+ * never touches the adapter.
417
+ *
418
+ * Throws when the active strategy needs context the caller didn't
419
+ * supply (e.g. `'per-cascade'` with no `cascadeId`).
420
+ */
421
+ pickShard(context: CascadeShardContext): ShardRef;
422
+ /**
423
+ * Bulk-commit a batch of Things + Actions to the shard.
424
+ *
425
+ * - When the adapter is {@link BulkCommitCapable}, the entire batch
426
+ * travels in a single fast-path call — for PG that's the CTE
427
+ * jsonb-bulk shape (91 ms p50 / 500 things on Neon HTTP), for CH
428
+ * the JSONEachRow path.
429
+ * - When the adapter is not bulk-capable (in-memory, DO SQLite via
430
+ * the current wire shape), the strategy falls back to per-op
431
+ * `create()` + `relate()` calls. This still flows through the
432
+ * shard-aware adapter so reads land on the same shard, but
433
+ * throughput is the per-op ceiling.
434
+ * - Batches larger than {@link maxBatchSize} are split into rounds.
435
+ * Rounds run sequentially within a single `writeBatch` call to
436
+ * preserve write-order guarantees the orchestrator may rely on
437
+ * (e.g. parents before children). Sibling parallelism is the
438
+ * orchestrator's concern, not this primitive's.
439
+ *
440
+ * Post-commit, if an {@link AnalyticalEmitter} was configured, it is
441
+ * invoked once per chunk so Stack B's analytical fan-out can mirror
442
+ * the same batch into Pipelines→Iceberg. Emitter failures are logged
443
+ * and swallowed — they MUST NOT fail the cascade write.
444
+ */
445
+ writeBatch(shard: ShardRef, batch: CascadeBatch): Promise<CascadeBatchResult>;
446
+ /**
447
+ * Read a Thing back from the same shard the batch was written to.
448
+ *
449
+ * Cascade generation reads back just-written entities to inform the
450
+ * next traversal step (e.g. resolve a freshly-written `Customer`
451
+ * before generating its `Orders`). Cross-shard reads are explicitly
452
+ * not supported on the hot path per ADR-0003.
453
+ *
454
+ * Returns `null` if the entity is not in the shard. The caller may
455
+ * still attempt a cross-shard read via the unsharded adapter surface
456
+ * if needed for cold-path reconciliation.
457
+ */
458
+ readShardLocal(shard: ShardRef, type: string, id: string): Promise<Record<string, unknown> | null>;
459
+ /**
460
+ * Read a list of just-written entities from the shard. Wraps
461
+ * `adapter.list(type)` after binding the shard context.
462
+ *
463
+ * Use when the cascade needs to enumerate all of a type the current
464
+ * cascade has produced (e.g. all `OrderItem` for the current
465
+ * `Order`). For point reads, prefer {@link readShardLocal}.
466
+ */
467
+ listShardLocal(shard: ShardRef, type: string, options?: {
468
+ limit?: number;
469
+ offset?: number;
470
+ }): Promise<Record<string, unknown>[]>;
471
+ /**
472
+ * Bind the adapter to the shard so subsequent ops route correctly.
473
+ *
474
+ * For DO SQLite, {@link DOSqliteAdapter.withContext} is used to pin
475
+ * the cascade/tenant id. For PG/CH, the `ns` column on the adapter
476
+ * already carries the partition key, so this is a no-op (return
477
+ * `this`).
478
+ */
479
+ private bindAdapterToShard;
480
+ /**
481
+ * Write a single chunk through the adapter's cascade fast path or
482
+ * the per-op fallback.
483
+ */
484
+ private writeChunk;
485
+ }
486
+ /**
487
+ * Stand-alone helper that emits the PG cascade-write SQL the
488
+ * substrate-write-probes proved out: a single CTE round-trip with
489
+ * bulk `VALUES (...), (...)` inserts and `ON CONFLICT DO NOTHING`.
490
+ *
491
+ * **This is the shape the canonical PG adapter's
492
+ * {@link PostgresProvider.commitBatch} uses.** The helper is exported so
493
+ * cascade orchestrators that bypass the adapter (e.g. running raw SQL
494
+ * for benchmarking) can still use the proven shape without re-deriving
495
+ * it. The adapter's `commitBatch` remains the recommended path.
496
+ *
497
+ * Returns the SQL text + ordered positional params. Things take 4
498
+ * columns: `(ns, id, type, data)`. Actions take 10 columns:
499
+ * `(ns, id, verb, subject, object, roles, data, status, created_at, completed_at)`.
500
+ *
501
+ * Why: documenting the shape in a stand-alone helper anchors the write
502
+ * shape to the substrate-write-probes evidence (91 ms p50 for 500 docs +
503
+ * 499 rels on Neon HTTP, sublinear scaling above N=100). Future schema
504
+ * changes that invalidate the column list will land here visibly.
505
+ *
506
+ * @internal Use {@link PostgresProvider.commitBatch} for production code.
507
+ */
508
+ export declare function buildPgCommitBatchSql(input: {
509
+ schema: string;
510
+ namespace: string;
511
+ things: ReadonlyArray<CascadeThing>;
512
+ actions: ReadonlyArray<CascadeAction>;
513
+ /** ISO-8601 string for `created_at` / `completed_at` columns. */
514
+ now: string;
515
+ }): {
516
+ sql: string;
517
+ params: unknown[];
518
+ } | null;
519
+ /**
520
+ * Resolve the DO id name for a given shard from a Cloudflare DO
521
+ * namespace binding.
522
+ *
523
+ * The actual shard pinning happens inside `DOSqliteAdapter` —
524
+ * {@link DOSqliteAdapter.withContext} consumes the `ShardRef.context`
525
+ * when subsequent ops are issued, and the adapter's internal
526
+ * `resolveStub` calls `namespace.idFromName(...).` This helper exposes
527
+ * the same routing logic for callers that need to **manually** route a
528
+ * batch into a per-cascade DO without going through the adapter (e.g.
529
+ * direct fetch into a DO that hasn't been wrapped yet).
530
+ *
531
+ * For canonical use, prefer the adapter — `withContext(shard.context)`
532
+ * encapsulates this.
533
+ *
534
+ * @example
535
+ * ```ts
536
+ * import { resolveDOIdName, CascadeShardingStrategies } from 'ai-database'
537
+ *
538
+ * const strategy = CascadeShardingStrategies.perCascade()
539
+ * const shard = strategy({ cascadeId: 'abc' })
540
+ * const idName = resolveDOIdName(shard) // 'cascade:abc'
541
+ * const id = env.DATABASE.idFromName(idName)
542
+ * const stub = env.DATABASE.get(id)
543
+ * await stub.fetch(...)
544
+ * ```
545
+ */
546
+ export declare function resolveDOIdName(shard: ShardRef): string;
547
+ /**
548
+ * Split a batch into chunks no larger than `maxBatchSize` rows
549
+ * (Things + Actions counted together).
550
+ *
551
+ * The substrate-write-probes verdict shows sublinear scaling above N=100
552
+ * for the CTE shape — a single round-trip carrying 500 things + 499 rels
553
+ * lands in 91 ms p50. We default to 1000 rows/chunk in the strategy;
554
+ * callers can override via {@link CascadeWriteStrategyOptions.maxBatchSize}.
555
+ *
556
+ * Things and Actions are kept together within a chunk so a parent +
557
+ * child + their relation can fit in one round-trip when the orchestrator
558
+ * emits them as one batch. When the chunk boundary falls inside a
559
+ * Thing/Action group the orchestrator built, callers should size their
560
+ * batches (or the `maxBatchSize`) to avoid splitting groups.
561
+ *
562
+ * @internal exported for tests.
563
+ */
564
+ export declare function chunkBatch(batch: CascadeBatch, maxBatchSize: number): CascadeBatch[];
565
+ /**
566
+ * Convenience factory.
567
+ *
568
+ * @example
569
+ * ```ts
570
+ * import {
571
+ * createCascadeWriteStrategy,
572
+ * createPostgresProvider,
573
+ * } from 'ai-database'
574
+ *
575
+ * const adapter = createPostgresProvider({ executor, namespace: 't9' })
576
+ * const strategy = createCascadeWriteStrategy({
577
+ * adapter,
578
+ * sharding: 'partitioned-by-tenant',
579
+ * defaultTenantId: 't9',
580
+ * })
581
+ * ```
582
+ */
583
+ export declare function createCascadeWriteStrategy(options: CascadeWriteStrategyOptions): CascadeWriteStrategy;
584
+ //# sourceMappingURL=cascade-write-strategy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cascade-write-strategy.d.ts","sourceRoot":"","sources":["../src/cascade-write-strategy.ts"],"names":[],"mappings":"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"}