@abloatai/ablo 0.36.0 → 0.37.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 (597) hide show
  1. package/AGENTS.md +2 -2
  2. package/CHANGELOG.md +71 -2013
  3. package/NOTICE +2 -2
  4. package/README.md +25 -71
  5. package/assets/banner.png +0 -0
  6. package/dist/auth.d.ts +2 -0
  7. package/dist/auth.d.ts.map +1 -0
  8. package/dist/auth.js +2 -0
  9. package/dist/auth.js.map +1 -0
  10. package/dist/client.d.ts +3 -0
  11. package/dist/client.d.ts.map +1 -0
  12. package/dist/client.js +3 -0
  13. package/dist/client.js.map +1 -0
  14. package/dist/coordination.d.ts +2 -0
  15. package/dist/coordination.d.ts.map +1 -0
  16. package/dist/coordination.js +2 -0
  17. package/dist/coordination.js.map +1 -0
  18. package/dist/index.d.ts +3 -114
  19. package/dist/index.d.ts.map +1 -0
  20. package/dist/index.js +3 -163
  21. package/dist/index.js.map +1 -0
  22. package/dist/react.d.ts +4 -0
  23. package/dist/react.d.ts.map +1 -0
  24. package/dist/react.js +3 -0
  25. package/dist/react.js.map +1 -0
  26. package/dist/schema.d.ts +2 -0
  27. package/dist/schema.d.ts.map +1 -0
  28. package/dist/schema.js +2 -0
  29. package/dist/schema.js.map +1 -0
  30. package/dist/server.d.ts +2 -0
  31. package/dist/server.d.ts.map +1 -0
  32. package/dist/server.js +2 -0
  33. package/dist/server.js.map +1 -0
  34. package/dist/source-conformance.d.ts +2 -0
  35. package/dist/source-conformance.d.ts.map +1 -0
  36. package/dist/source-conformance.js +2 -0
  37. package/dist/source-conformance.js.map +1 -0
  38. package/dist/source-drizzle.d.ts +2 -0
  39. package/dist/source-drizzle.d.ts.map +1 -0
  40. package/dist/source-drizzle.js +2 -0
  41. package/dist/source-drizzle.js.map +1 -0
  42. package/dist/source-kysely.d.ts +2 -0
  43. package/dist/source-kysely.d.ts.map +1 -0
  44. package/dist/source-kysely.js +2 -0
  45. package/dist/source-kysely.js.map +1 -0
  46. package/dist/source-next.d.ts +2 -0
  47. package/dist/source-next.d.ts.map +1 -0
  48. package/dist/source-next.js +2 -0
  49. package/dist/source-next.js.map +1 -0
  50. package/dist/source.d.ts +2 -0
  51. package/dist/source.d.ts.map +1 -0
  52. package/dist/source.js +2 -0
  53. package/dist/source.js.map +1 -0
  54. package/dist/wire.d.ts +2 -0
  55. package/dist/wire.d.ts.map +1 -0
  56. package/dist/wire.js +2 -0
  57. package/dist/wire.js.map +1 -0
  58. package/docs/agents.md +1 -1
  59. package/docs/api-keys.md +7 -6
  60. package/docs/api.md +10 -10
  61. package/docs/client-behavior.md +5 -5
  62. package/docs/coordination.md +52 -62
  63. package/docs/data-sources.md +1 -1
  64. package/docs/examples/agent-human.md +4 -4
  65. package/docs/examples/ai-sdk-tool.md +1 -1
  66. package/docs/examples/existing-python-backend.md +15 -4
  67. package/docs/examples/nextjs.md +27 -6
  68. package/docs/examples/server-agent.md +2 -2
  69. package/docs/how-it-works.md +4 -4
  70. package/docs/identity.md +2 -1
  71. package/docs/integration-guide.md +24 -13
  72. package/docs/internal/README.md +18 -0
  73. package/docs/internal/agent-fleet-coordination-design.md +171 -0
  74. package/docs/internal/agent-orchestration.md +58 -0
  75. package/docs/internal/commit-identifiers.md +91 -0
  76. package/docs/internal/concurrency-open-decisions.md +37 -0
  77. package/docs/internal/data-source-reverse-channel.md +150 -0
  78. package/docs/internal/per-field-conflict-detection.md +165 -0
  79. package/docs/internal/postgres-replication.md +64 -0
  80. package/docs/internal/serializable-schema.md +119 -0
  81. package/docs/internal/structure.md +32 -0
  82. package/docs/mcp.md +2 -2
  83. package/docs/migration.md +3 -3
  84. package/docs/quickstart.md +2 -2
  85. package/docs/react.md +5 -5
  86. package/docs/schema-contract.md +3 -3
  87. package/docs/sessions.md +91 -37
  88. package/examples/README.md +2 -2
  89. package/examples/data-source/README.md +1 -1
  90. package/examples/data-source/ablo-driver.ts +1 -1
  91. package/examples/data-source/customer-server.ts +1 -1
  92. package/examples/data-source/run.ts +1 -1
  93. package/examples/data-source/schema.ts +1 -1
  94. package/examples/quickstart.ts +2 -2
  95. package/llms.txt +8 -8
  96. package/package.json +63 -166
  97. package/bin/ablo.cjs +0 -39
  98. package/dist/BaseSyncedStore.d.ts +0 -843
  99. package/dist/BaseSyncedStore.js +0 -1971
  100. package/dist/Database.d.ts +0 -323
  101. package/dist/Database.js +0 -1502
  102. package/dist/InstanceCache.d.ts +0 -237
  103. package/dist/InstanceCache.js +0 -1166
  104. package/dist/LazyReferenceCollection.d.ts +0 -177
  105. package/dist/LazyReferenceCollection.js +0 -461
  106. package/dist/Model.d.ts +0 -454
  107. package/dist/Model.js +0 -919
  108. package/dist/ModelRegistry.d.ts +0 -225
  109. package/dist/ModelRegistry.js +0 -539
  110. package/dist/NetworkMonitor.d.ts +0 -28
  111. package/dist/NetworkMonitor.js +0 -79
  112. package/dist/RuntimeContext.d.ts +0 -52
  113. package/dist/RuntimeContext.js +0 -80
  114. package/dist/SyncClient.d.ts +0 -541
  115. package/dist/SyncClient.js +0 -2202
  116. package/dist/adapters/alwaysOnline.d.ts +0 -14
  117. package/dist/adapters/alwaysOnline.js +0 -17
  118. package/dist/adapters/inMemoryStorage.d.ts +0 -31
  119. package/dist/adapters/inMemoryStorage.js +0 -110
  120. package/dist/ai-sdk/coordinatedTool.d.ts +0 -120
  121. package/dist/ai-sdk/coordinatedTool.js +0 -134
  122. package/dist/ai-sdk/coordinationContext.d.ts +0 -46
  123. package/dist/ai-sdk/coordinationContext.js +0 -106
  124. package/dist/ai-sdk/index.d.ts +0 -121
  125. package/dist/ai-sdk/index.js +0 -121
  126. package/dist/ai-sdk/wrap.d.ts +0 -65
  127. package/dist/ai-sdk/wrap.js +0 -39
  128. package/dist/auth/index.d.ts +0 -1
  129. package/dist/auth/index.js +0 -8
  130. package/dist/batching/index.d.ts +0 -55
  131. package/dist/batching/index.js +0 -147
  132. package/dist/client/Ablo.d.ts +0 -231
  133. package/dist/client/Ablo.js +0 -160
  134. package/dist/client/abloClient.d.ts +0 -309
  135. package/dist/client/abloClient.js +0 -13
  136. package/dist/client/clientPrelude.d.ts +0 -52
  137. package/dist/client/clientPrelude.js +0 -60
  138. package/dist/client/consoleLogger.d.ts +0 -35
  139. package/dist/client/consoleLogger.js +0 -44
  140. package/dist/client/coreClient.d.ts +0 -60
  141. package/dist/client/coreClient.js +0 -118
  142. package/dist/client/createInternalComponents.d.ts +0 -50
  143. package/dist/client/createInternalComponents.js +0 -98
  144. package/dist/client/createModelProxy.d.ts +0 -248
  145. package/dist/client/createModelProxy.js +0 -884
  146. package/dist/client/humans.d.ts +0 -69
  147. package/dist/client/humans.js +0 -78
  148. package/dist/client/modelRegistration.d.ts +0 -10
  149. package/dist/client/modelRegistration.js +0 -312
  150. package/dist/client/options.d.ts +0 -461
  151. package/dist/client/options.js +0 -7
  152. package/dist/client/reactiveEngine.d.ts +0 -53
  153. package/dist/client/reactiveEngine.js +0 -688
  154. package/dist/client/resourceTypes.d.ts +0 -12
  155. package/dist/client/resourceTypes.js +0 -10
  156. package/dist/client/schemaConfig.d.ts +0 -44
  157. package/dist/client/schemaConfig.js +0 -185
  158. package/dist/client/storeCluster.d.ts +0 -47
  159. package/dist/client/storeCluster.js +0 -118
  160. package/dist/client/storeLifecycle.d.ts +0 -61
  161. package/dist/client/storeLifecycle.js +0 -231
  162. package/dist/client/validateAbloOptions.d.ts +0 -42
  163. package/dist/client/validateAbloOptions.js +0 -43
  164. package/dist/client/wsMutationExecutor.d.ts +0 -27
  165. package/dist/client/wsMutationExecutor.js +0 -72
  166. package/dist/context.d.ts +0 -42
  167. package/dist/context.js +0 -81
  168. package/dist/coordination/ClaimLog.d.ts +0 -26
  169. package/dist/coordination/ClaimLog.js +0 -32
  170. package/dist/coordination/index.d.ts +0 -1
  171. package/dist/coordination/index.js +0 -8
  172. package/dist/core/index.d.ts +0 -33
  173. package/dist/core/index.js +0 -48
  174. package/dist/docs/catalog.d.ts +0 -72
  175. package/dist/docs/catalog.js +0 -230
  176. package/dist/docs/index.d.ts +0 -10
  177. package/dist/docs/index.js +0 -10
  178. package/dist/environment.d.ts +0 -1
  179. package/dist/environment.js +0 -8
  180. package/dist/interfaces/index.d.ts +0 -311
  181. package/dist/interfaces/index.js +0 -9
  182. package/dist/keys/index.d.ts +0 -1
  183. package/dist/keys/index.js +0 -8
  184. package/dist/mutators/RecordingMutation.d.ts +0 -36
  185. package/dist/mutators/RecordingMutation.js +0 -182
  186. package/dist/mutators/Transaction.d.ts +0 -40
  187. package/dist/mutators/Transaction.js +0 -58
  188. package/dist/mutators/UndoManager.d.ts +0 -258
  189. package/dist/mutators/UndoManager.js +0 -658
  190. package/dist/mutators/defineMutators.d.ts +0 -60
  191. package/dist/mutators/defineMutators.js +0 -18
  192. package/dist/mutators/inverseOp.d.ts +0 -126
  193. package/dist/mutators/inverseOp.js +0 -71
  194. package/dist/mutators/mutateActions.d.ts +0 -45
  195. package/dist/mutators/mutateActions.js +0 -105
  196. package/dist/mutators/readerActions.d.ts +0 -33
  197. package/dist/mutators/readerActions.js +0 -57
  198. package/dist/mutators/undoApply.d.ts +0 -51
  199. package/dist/mutators/undoApply.js +0 -117
  200. package/dist/policy/index.d.ts +0 -21
  201. package/dist/policy/index.js +0 -20
  202. package/dist/query/QueryProcessor.d.ts +0 -75
  203. package/dist/query/QueryProcessor.js +0 -255
  204. package/dist/query/client.d.ts +0 -64
  205. package/dist/query/client.js +0 -138
  206. package/dist/query/types.d.ts +0 -85
  207. package/dist/query/types.js +0 -16
  208. package/dist/react/AbloProvider.d.ts +0 -242
  209. package/dist/react/AbloProvider.js +0 -458
  210. package/dist/react/ClientSideSuspense.d.ts +0 -36
  211. package/dist/react/ClientSideSuspense.js +0 -17
  212. package/dist/react/DefaultFallback.d.ts +0 -24
  213. package/dist/react/DefaultFallback.js +0 -43
  214. package/dist/react/context.d.ts +0 -55
  215. package/dist/react/context.js +0 -29
  216. package/dist/react/createAbloReact.d.ts +0 -56
  217. package/dist/react/createAbloReact.js +0 -51
  218. package/dist/react/index.d.ts +0 -62
  219. package/dist/react/index.js +0 -69
  220. package/dist/react/internalContext.d.ts +0 -33
  221. package/dist/react/internalContext.js +0 -3
  222. package/dist/react/useAblo.d.ts +0 -82
  223. package/dist/react/useAblo.js +0 -120
  224. package/dist/react/useCurrentUserId.d.ts +0 -22
  225. package/dist/react/useCurrentUserId.js +0 -34
  226. package/dist/react/useErrorListener.d.ts +0 -20
  227. package/dist/react/useErrorListener.js +0 -38
  228. package/dist/react/useMutationFailureListener.d.ts +0 -26
  229. package/dist/react/useMutationFailureListener.js +0 -38
  230. package/dist/react/useMutators.d.ts +0 -56
  231. package/dist/react/useMutators.js +0 -84
  232. package/dist/react/useReactive.d.ts +0 -35
  233. package/dist/react/useReactive.js +0 -123
  234. package/dist/react/useSyncStatus.d.ts +0 -59
  235. package/dist/react/useSyncStatus.js +0 -76
  236. package/dist/react/useUndoScope.d.ts +0 -34
  237. package/dist/react/useUndoScope.js +0 -81
  238. package/dist/schema/coordination.d.ts +0 -112
  239. package/dist/schema/coordination.js +0 -133
  240. package/dist/schema/ddl.d.ts +0 -97
  241. package/dist/schema/ddl.js +0 -491
  242. package/dist/schema/ddlLock.d.ts +0 -35
  243. package/dist/schema/ddlLock.js +0 -46
  244. package/dist/schema/diff.d.ts +0 -225
  245. package/dist/schema/diff.js +0 -289
  246. package/dist/schema/generate.d.ts +0 -19
  247. package/dist/schema/generate.js +0 -86
  248. package/dist/schema/index.d.ts +0 -42
  249. package/dist/schema/index.js +0 -80
  250. package/dist/schema/queries.d.ts +0 -201
  251. package/dist/schema/queries.js +0 -144
  252. package/dist/schema/select.d.ts +0 -40
  253. package/dist/schema/select.js +0 -90
  254. package/dist/schema/serialize.d.ts +0 -115
  255. package/dist/schema/serialize.js +0 -265
  256. package/dist/schema/sugar.d.ts +0 -109
  257. package/dist/schema/sugar.js +0 -83
  258. package/dist/schema/syncDeltaRow.d.ts +0 -6
  259. package/dist/schema/syncDeltaRow.js +0 -6
  260. package/dist/server/adapter.d.ts +0 -173
  261. package/dist/server/adapter.js +0 -18
  262. package/dist/server/commit.d.ts +0 -107
  263. package/dist/server/commit.js +0 -1
  264. package/dist/server/index.d.ts +0 -14
  265. package/dist/server/index.js +0 -2
  266. package/dist/server/readConfig.d.ts +0 -80
  267. package/dist/server/readConfig.js +0 -8
  268. package/dist/server/storageMode.d.ts +0 -23
  269. package/dist/server/storageMode.js +0 -17
  270. package/dist/source/adapter.d.ts +0 -83
  271. package/dist/source/adapter.js +0 -24
  272. package/dist/source/adapters/drizzle.d.ts +0 -48
  273. package/dist/source/adapters/drizzle.js +0 -219
  274. package/dist/source/adapters/kysely.d.ts +0 -42
  275. package/dist/source/adapters/kysely.js +0 -205
  276. package/dist/source/adapters/kyselyMutationCore.d.ts +0 -76
  277. package/dist/source/adapters/kyselyMutationCore.js +0 -125
  278. package/dist/source/adapters/memory.d.ts +0 -13
  279. package/dist/source/adapters/memory.js +0 -130
  280. package/dist/source/adapters/prisma.d.ts +0 -63
  281. package/dist/source/adapters/prisma.js +0 -202
  282. package/dist/source/conformance.d.ts +0 -37
  283. package/dist/source/conformance.js +0 -215
  284. package/dist/source/connector.d.ts +0 -95
  285. package/dist/source/connector.js +0 -266
  286. package/dist/source/connectorProtocol.d.ts +0 -154
  287. package/dist/source/connectorProtocol.js +0 -163
  288. package/dist/source/contract.d.ts +0 -195
  289. package/dist/source/contract.js +0 -164
  290. package/dist/source/factory.d.ts +0 -92
  291. package/dist/source/factory.js +0 -286
  292. package/dist/source/idempotency.d.ts +0 -61
  293. package/dist/source/idempotency.js +0 -144
  294. package/dist/source/index.d.ts +0 -23
  295. package/dist/source/index.js +0 -30
  296. package/dist/source/migrations.d.ts +0 -21
  297. package/dist/source/migrations.js +0 -103
  298. package/dist/source/next.d.ts +0 -32
  299. package/dist/source/next.js +0 -25
  300. package/dist/source/pushQueue.d.ts +0 -134
  301. package/dist/source/pushQueue.js +0 -256
  302. package/dist/source/signing.d.ts +0 -92
  303. package/dist/source/signing.js +0 -162
  304. package/dist/source/types.d.ts +0 -401
  305. package/dist/source/types.js +0 -59
  306. package/dist/storeContract.d.ts +0 -145
  307. package/dist/storeContract.js +0 -12
  308. package/dist/stores/DatabaseManager.d.ts +0 -107
  309. package/dist/stores/DatabaseManager.js +0 -388
  310. package/dist/stores/ObjectStore.d.ts +0 -115
  311. package/dist/stores/ObjectStore.js +0 -393
  312. package/dist/stores/ObjectStoreContract.d.ts +0 -38
  313. package/dist/stores/ObjectStoreContract.js +0 -1
  314. package/dist/stores/StoreManager.d.ts +0 -114
  315. package/dist/stores/StoreManager.js +0 -304
  316. package/dist/stores/SyncActionStore.d.ts +0 -99
  317. package/dist/stores/SyncActionStore.js +0 -506
  318. package/dist/stores/openIDBWithTimeout.d.ts +0 -65
  319. package/dist/stores/openIDBWithTimeout.js +0 -153
  320. package/dist/stores/syncAction.d.ts +0 -26
  321. package/dist/stores/syncAction.js +0 -16
  322. package/dist/surface.d.ts +0 -36
  323. package/dist/surface.js +0 -75
  324. package/dist/sync/BootstrapFetcher.d.ts +0 -284
  325. package/dist/sync/BootstrapFetcher.js +0 -964
  326. package/dist/sync/ConnectionManager.d.ts +0 -8
  327. package/dist/sync/ConnectionManager.js +0 -8
  328. package/dist/sync/OnDemandLoader.d.ts +0 -231
  329. package/dist/sync/OnDemandLoader.js +0 -743
  330. package/dist/sync/SubscriptionManager.d.ts +0 -159
  331. package/dist/sync/SubscriptionManager.js +0 -243
  332. package/dist/sync/SyncWebSocket.d.ts +0 -173
  333. package/dist/sync/SyncWebSocket.js +0 -438
  334. package/dist/sync/awaitClaimGrant.d.ts +0 -6
  335. package/dist/sync/awaitClaimGrant.js +0 -6
  336. package/dist/sync/bootstrapApply.d.ts +0 -73
  337. package/dist/sync/bootstrapApply.js +0 -73
  338. package/dist/sync/commitFrames.d.ts +0 -8
  339. package/dist/sync/commitFrames.js +0 -8
  340. package/dist/sync/contextPorts.d.ts +0 -18
  341. package/dist/sync/contextPorts.js +0 -31
  342. package/dist/sync/createClaimStream.d.ts +0 -7
  343. package/dist/sync/createClaimStream.js +0 -7
  344. package/dist/sync/createPresenceStream.d.ts +0 -69
  345. package/dist/sync/createPresenceStream.js +0 -200
  346. package/dist/sync/createSnapshot.d.ts +0 -29
  347. package/dist/sync/createSnapshot.js +0 -118
  348. package/dist/sync/credentialLifecycle.d.ts +0 -7
  349. package/dist/sync/credentialLifecycle.js +0 -7
  350. package/dist/sync/deltaPipeline.d.ts +0 -114
  351. package/dist/sync/deltaPipeline.js +0 -278
  352. package/dist/sync/groupChange.d.ts +0 -116
  353. package/dist/sync/groupChange.js +0 -244
  354. package/dist/sync/participants.d.ts +0 -132
  355. package/dist/sync/participants.js +0 -346
  356. package/dist/sync/persistedPrefix.d.ts +0 -12
  357. package/dist/sync/persistedPrefix.js +0 -22
  358. package/dist/sync/schemaDrift.d.ts +0 -55
  359. package/dist/sync/schemaDrift.js +0 -53
  360. package/dist/sync/schemas.d.ts +0 -71
  361. package/dist/sync/schemas.js +0 -94
  362. package/dist/sync/syncCursor.d.ts +0 -40
  363. package/dist/sync/syncCursor.js +0 -55
  364. package/dist/sync/syncPlan.d.ts +0 -54
  365. package/dist/sync/syncPlan.js +0 -50
  366. package/dist/sync/wsFrameHandlers.d.ts +0 -8
  367. package/dist/sync/wsFrameHandlers.js +0 -8
  368. package/dist/syncLog/contract.d.ts +0 -20
  369. package/dist/syncLog/contract.js +0 -19
  370. package/dist/syncLog/index.d.ts +0 -1
  371. package/dist/syncLog/index.js +0 -1
  372. package/dist/transaction/ablo.d.ts +0 -88
  373. package/dist/transaction/ablo.js +0 -33
  374. package/dist/transaction/auth/apiKey.d.ts +0 -152
  375. package/dist/transaction/auth/apiKey.js +0 -419
  376. package/dist/transaction/auth/bootstrapScope.d.ts +0 -15
  377. package/dist/transaction/auth/bootstrapScope.js +0 -1
  378. package/dist/transaction/auth/capability.d.ts +0 -212
  379. package/dist/transaction/auth/capability.js +0 -224
  380. package/dist/transaction/auth/credentialEndpoint.d.ts +0 -61
  381. package/dist/transaction/auth/credentialEndpoint.js +0 -86
  382. package/dist/transaction/auth/credentialPolicy.d.ts +0 -148
  383. package/dist/transaction/auth/credentialPolicy.js +0 -125
  384. package/dist/transaction/auth/credentialSource.d.ts +0 -30
  385. package/dist/transaction/auth/credentialSource.js +0 -55
  386. package/dist/transaction/auth/hostedEndpoints.d.ts +0 -21
  387. package/dist/transaction/auth/hostedEndpoints.js +0 -21
  388. package/dist/transaction/auth/identity.d.ts +0 -55
  389. package/dist/transaction/auth/identity.js +0 -210
  390. package/dist/transaction/auth/index.d.ts +0 -162
  391. package/dist/transaction/auth/index.js +0 -304
  392. package/dist/transaction/auth/schemas.d.ts +0 -59
  393. package/dist/transaction/auth/schemas.js +0 -85
  394. package/dist/transaction/auth/sessionMint.d.ts +0 -28
  395. package/dist/transaction/auth/sessionMint.js +0 -85
  396. package/dist/transaction/coordination/awaitClaimGrant.d.ts +0 -56
  397. package/dist/transaction/coordination/awaitClaimGrant.js +0 -124
  398. package/dist/transaction/coordination/claimHeartbeatLoop.d.ts +0 -84
  399. package/dist/transaction/coordination/claimHeartbeatLoop.js +0 -108
  400. package/dist/transaction/coordination/claimMeta.d.ts +0 -49
  401. package/dist/transaction/coordination/claimMeta.js +0 -52
  402. package/dist/transaction/coordination/createClaimStream.d.ts +0 -64
  403. package/dist/transaction/coordination/createClaimStream.js +0 -475
  404. package/dist/transaction/coordination/events.d.ts +0 -74
  405. package/dist/transaction/coordination/events.js +0 -7
  406. package/dist/transaction/coordination/index.d.ts +0 -19
  407. package/dist/transaction/coordination/index.js +0 -45
  408. package/dist/transaction/coordination/locator.d.ts +0 -104
  409. package/dist/transaction/coordination/locator.js +0 -102
  410. package/dist/transaction/coordination/schema.d.ts +0 -1536
  411. package/dist/transaction/coordination/schema.js +0 -1177
  412. package/dist/transaction/coordination/targetConflict.d.ts +0 -2
  413. package/dist/transaction/coordination/targetConflict.js +0 -107
  414. package/dist/transaction/coordination/trace.d.ts +0 -78
  415. package/dist/transaction/coordination/trace.js +0 -138
  416. package/dist/transaction/durableWrites.d.ts +0 -62
  417. package/dist/transaction/durableWrites.js +0 -71
  418. package/dist/transaction/environment.d.ts +0 -105
  419. package/dist/transaction/environment.js +0 -108
  420. package/dist/transaction/errorCodes.d.ts +0 -403
  421. package/dist/transaction/errorCodes.js +0 -484
  422. package/dist/transaction/errors.d.ts +0 -428
  423. package/dist/transaction/errors.js +0 -686
  424. package/dist/transaction/footprint.d.ts +0 -111
  425. package/dist/transaction/footprint.js +0 -0
  426. package/dist/transaction/index.d.ts +0 -20
  427. package/dist/transaction/index.js +0 -20
  428. package/dist/transaction/keys/index.d.ts +0 -87
  429. package/dist/transaction/keys/index.js +0 -207
  430. package/dist/transaction/log/syncDeltaRow.d.ts +0 -158
  431. package/dist/transaction/log/syncDeltaRow.js +0 -95
  432. package/dist/transaction/logPosition.d.ts +0 -97
  433. package/dist/transaction/logPosition.js +0 -125
  434. package/dist/transaction/logger.d.ts +0 -16
  435. package/dist/transaction/logger.js +0 -7
  436. package/dist/transaction/observability.d.ts +0 -53
  437. package/dist/transaction/observability.js +0 -19
  438. package/dist/transaction/persistence.d.ts +0 -12
  439. package/dist/transaction/persistence.js +0 -11
  440. package/dist/transaction/plugin.d.ts +0 -285
  441. package/dist/transaction/plugin.js +0 -106
  442. package/dist/transaction/policy/types.d.ts +0 -217
  443. package/dist/transaction/policy/types.js +0 -126
  444. package/dist/transaction/resources/functionalUpdate.d.ts +0 -79
  445. package/dist/transaction/resources/functionalUpdate.js +0 -87
  446. package/dist/transaction/resources/httpResources.d.ts +0 -321
  447. package/dist/transaction/resources/httpResources.js +0 -7
  448. package/dist/transaction/resources/modelOperations.d.ts +0 -427
  449. package/dist/transaction/resources/modelOperations.js +0 -12
  450. package/dist/transaction/resources/mutationOptions.d.ts +0 -66
  451. package/dist/transaction/resources/mutationOptions.js +0 -9
  452. package/dist/transaction/resources/where.d.ts +0 -101
  453. package/dist/transaction/resources/where.js +0 -115
  454. package/dist/transaction/resources/writeOptionsSchema.d.ts +0 -47
  455. package/dist/transaction/resources/writeOptionsSchema.js +0 -73
  456. package/dist/transaction/schema/field.d.ts +0 -120
  457. package/dist/transaction/schema/field.js +0 -265
  458. package/dist/transaction/schema/fieldRef.d.ts +0 -38
  459. package/dist/transaction/schema/fieldRef.js +0 -11
  460. package/dist/transaction/schema/loadStrategy.d.ts +0 -45
  461. package/dist/transaction/schema/loadStrategy.js +0 -46
  462. package/dist/transaction/schema/model.d.ts +0 -379
  463. package/dist/transaction/schema/model.js +0 -123
  464. package/dist/transaction/schema/openapi.d.ts +0 -58
  465. package/dist/transaction/schema/openapi.js +0 -501
  466. package/dist/transaction/schema/relation.d.ts +0 -204
  467. package/dist/transaction/schema/relation.js +0 -104
  468. package/dist/transaction/schema/residency.d.ts +0 -29
  469. package/dist/transaction/schema/residency.js +0 -25
  470. package/dist/transaction/schema/roles.d.ts +0 -249
  471. package/dist/transaction/schema/roles.js +0 -230
  472. package/dist/transaction/schema/schema.d.ts +0 -351
  473. package/dist/transaction/schema/schema.js +0 -325
  474. package/dist/transaction/schema/tenancy.d.ts +0 -139
  475. package/dist/transaction/schema/tenancy.js +0 -190
  476. package/dist/transaction/transactionLayer.d.ts +0 -82
  477. package/dist/transaction/transactionLayer.js +0 -24
  478. package/dist/transaction/transactions/settlement/commitEnvelope.d.ts +0 -143
  479. package/dist/transaction/transactions/settlement/commitEnvelope.js +0 -161
  480. package/dist/transaction/transactions/settlement/httpCommitEnvelope.d.ts +0 -53
  481. package/dist/transaction/transactions/settlement/httpCommitEnvelope.js +0 -207
  482. package/dist/transaction/transactions/settlement/idempotencyKey.d.ts +0 -10
  483. package/dist/transaction/transactions/settlement/idempotencyKey.js +0 -9
  484. package/dist/transaction/transactions/settlement/pendingWrite.d.ts +0 -112
  485. package/dist/transaction/transactions/settlement/pendingWrite.js +0 -20
  486. package/dist/transaction/transport/commitFrames.d.ts +0 -90
  487. package/dist/transaction/transport/commitFrames.js +0 -134
  488. package/dist/transaction/transport/connectionManager.d.ts +0 -215
  489. package/dist/transaction/transport/connectionManager.js +0 -673
  490. package/dist/transaction/transport/credentialLifecycle.d.ts +0 -177
  491. package/dist/transaction/transport/credentialLifecycle.js +0 -324
  492. package/dist/transaction/transport/heartbeat.d.ts +0 -65
  493. package/dist/transaction/transport/heartbeat.js +0 -93
  494. package/dist/transaction/transport/httpClient.d.ts +0 -131
  495. package/dist/transaction/transport/httpClient.js +0 -146
  496. package/dist/transaction/transport/httpOptions.d.ts +0 -33
  497. package/dist/transaction/transport/httpOptions.js +0 -12
  498. package/dist/transaction/transport/httpTransport.d.ts +0 -8
  499. package/dist/transaction/transport/httpTransport.js +0 -1388
  500. package/dist/transaction/transport/networkProbe.d.ts +0 -84
  501. package/dist/transaction/transport/networkProbe.js +0 -207
  502. package/dist/transaction/transport/wsFrameHandlers.d.ts +0 -128
  503. package/dist/transaction/transport/wsFrameHandlers.js +0 -429
  504. package/dist/transaction/transport/wsTransport.d.ts +0 -574
  505. package/dist/transaction/transport/wsTransport.js +0 -1023
  506. package/dist/transaction/types/assertExact.d.ts +0 -17
  507. package/dist/transaction/types/assertExact.js +0 -1
  508. package/dist/transaction/types/global.d.ts +0 -107
  509. package/dist/transaction/types/global.js +0 -40
  510. package/dist/transaction/types/index.d.ts +0 -205
  511. package/dist/transaction/types/index.js +0 -56
  512. package/dist/transaction/types/modelData.d.ts +0 -10
  513. package/dist/transaction/types/modelData.js +0 -9
  514. package/dist/transaction/types/participant.d.ts +0 -20
  515. package/dist/transaction/types/participant.js +0 -10
  516. package/dist/transaction/types/streams.d.ts +0 -550
  517. package/dist/transaction/types/streams.js +0 -11
  518. package/dist/transaction/utils/asyncIterator.d.ts +0 -34
  519. package/dist/transaction/utils/asyncIterator.js +0 -135
  520. package/dist/transaction/utils/duration.d.ts +0 -50
  521. package/dist/transaction/utils/duration.js +0 -77
  522. package/dist/transaction/utils/json.d.ts +0 -57
  523. package/dist/transaction/utils/json.js +0 -276
  524. package/dist/transaction/wire/accountResponses.d.ts +0 -420
  525. package/dist/transaction/wire/accountResponses.js +0 -290
  526. package/dist/transaction/wire/auth.d.ts +0 -56
  527. package/dist/transaction/wire/auth.js +0 -63
  528. package/dist/transaction/wire/bootstrapReason.d.ts +0 -9
  529. package/dist/transaction/wire/bootstrapReason.js +0 -8
  530. package/dist/transaction/wire/claimEvent.d.ts +0 -76
  531. package/dist/transaction/wire/claimEvent.js +0 -73
  532. package/dist/transaction/wire/claims.d.ts +0 -530
  533. package/dist/transaction/wire/claims.js +0 -327
  534. package/dist/transaction/wire/commit.d.ts +0 -603
  535. package/dist/transaction/wire/commit.js +0 -321
  536. package/dist/transaction/wire/delta.d.ts +0 -250
  537. package/dist/transaction/wire/delta.js +0 -147
  538. package/dist/transaction/wire/errorEnvelope.d.ts +0 -72
  539. package/dist/transaction/wire/errorEnvelope.js +0 -123
  540. package/dist/transaction/wire/feedCursor.d.ts +0 -60
  541. package/dist/transaction/wire/feedCursor.js +0 -82
  542. package/dist/transaction/wire/feedEvent.d.ts +0 -204
  543. package/dist/transaction/wire/feedEvent.js +0 -65
  544. package/dist/transaction/wire/frames.d.ts +0 -194
  545. package/dist/transaction/wire/frames.js +0 -50
  546. package/dist/transaction/wire/inboundFrames.d.ts +0 -562
  547. package/dist/transaction/wire/inboundFrames.js +0 -116
  548. package/dist/transaction/wire/index.d.ts +0 -54
  549. package/dist/transaction/wire/index.js +0 -83
  550. package/dist/transaction/wire/listEnvelope.d.ts +0 -37
  551. package/dist/transaction/wire/listEnvelope.js +0 -42
  552. package/dist/transaction/wire/modelMutations.d.ts +0 -31
  553. package/dist/transaction/wire/modelMutations.js +0 -52
  554. package/dist/transaction/wire/modelResponses.d.ts +0 -85
  555. package/dist/transaction/wire/modelResponses.js +0 -43
  556. package/dist/transaction/wire/modelShape.d.ts +0 -78
  557. package/dist/transaction/wire/modelShape.js +0 -74
  558. package/dist/transaction/wire/protocol.d.ts +0 -38
  559. package/dist/transaction/wire/protocol.js +0 -38
  560. package/dist/transaction/wire/protocolVersion.d.ts +0 -73
  561. package/dist/transaction/wire/protocolVersion.js +0 -83
  562. package/dist/transactions/mutations/MutationQueue.d.ts +0 -661
  563. package/dist/transactions/mutations/MutationQueue.js +0 -2807
  564. package/dist/transactions/mutations/MutationStore.d.ts +0 -20
  565. package/dist/transactions/mutations/MutationStore.js +0 -53
  566. package/dist/transactions/mutations/UnconfirmedWrites.d.ts +0 -82
  567. package/dist/transactions/mutations/UnconfirmedWrites.js +0 -104
  568. package/dist/transactions/mutations/coalesceRules.d.ts +0 -58
  569. package/dist/transactions/mutations/coalesceRules.js +0 -140
  570. package/dist/transactions/mutations/commitLatency.d.ts +0 -52
  571. package/dist/transactions/mutations/commitLatency.js +0 -130
  572. package/dist/transactions/mutations/commitOutboxStore.d.ts +0 -28
  573. package/dist/transactions/mutations/commitOutboxStore.js +0 -26
  574. package/dist/transactions/mutations/commitPayload.d.ts +0 -165
  575. package/dist/transactions/mutations/commitPayload.js +0 -152
  576. package/dist/transactions/mutations/deltaConfirmation.d.ts +0 -63
  577. package/dist/transactions/mutations/deltaConfirmation.js +0 -235
  578. package/dist/transactions/mutations/durableWriteStore.d.ts +0 -14
  579. package/dist/transactions/mutations/durableWriteStore.js +0 -12
  580. package/dist/transactions/mutations/optimisticApply.d.ts +0 -49
  581. package/dist/transactions/mutations/optimisticApply.js +0 -65
  582. package/dist/transactions/mutations/replayValidation.d.ts +0 -187
  583. package/dist/transactions/mutations/replayValidation.js +0 -164
  584. package/dist/utils/mobxSetup.d.ts +0 -53
  585. package/dist/utils/mobxSetup.js +0 -330
  586. package/dist/views/QueryView.d.ts +0 -79
  587. package/dist/views/QueryView.js +0 -218
  588. package/dist/views/ViewRegistry.d.ts +0 -20
  589. package/dist/views/ViewRegistry.js +0 -55
  590. package/dist/views/incrementalView.d.ts +0 -45
  591. package/dist/views/incrementalView.js +0 -69
  592. package/dist/webhooks/events.d.ts +0 -43
  593. package/dist/webhooks/events.js +0 -42
  594. package/dist/webhooks/index.d.ts +0 -8
  595. package/dist/webhooks/index.js +0 -8
  596. package/dist/wire/index.d.ts +0 -1
  597. package/dist/wire/index.js +0 -8
@@ -1,12 +0,0 @@
1
- /**
2
- * The public resource-type surface.
3
- *
4
- * The transport-facing half of these types moved down into the settlement core
5
- * (ADR 0016). This module keeps the
6
- * consumer-facing import path intact and rejoins it with the model-proxy types
7
- * that stay here — `ModelOperations` chief among them, because it returns the
8
- * live participant handle.
9
- */
10
- export * from '../transaction/resources/httpResources.js';
11
- export type { LocalCountOptions, LocalReadOptions, ModelListScope, ServerReadOptions, ModelRetrieveParams, ModelCreateParams, ModelUpdateParams, ModelDeleteParams, ClaimOptions, ClaimParams, ClaimLookupParams, ClaimReorderParams, Claim, ClaimHeartbeat, ClaimHeartbeatOptions, HeldClaim, HeldLease, } from '../transaction/resources/modelOperations.js';
12
- export type { ModelOperations } from './createModelProxy.js';
@@ -1,10 +0,0 @@
1
- /**
2
- * The public resource-type surface.
3
- *
4
- * The transport-facing half of these types moved down into the settlement core
5
- * (ADR 0016). This module keeps the
6
- * consumer-facing import path intact and rejoins it with the model-proxy types
7
- * that stay here — `ModelOperations` chief among them, because it returns the
8
- * live participant handle.
9
- */
10
- export * from '../transaction/resources/httpResources.js';
@@ -1,44 +0,0 @@
1
- /**
2
- * Derives engine configuration from a schema. This module holds two pure
3
- * functions: {@link computeFKDepthPriority} works out a safe row-insertion
4
- * order from the schema's foreign-key relations, and
5
- * {@link deriveConfigFromSchema} packages that ordering, together with a few
6
- * defaults, into the {@link RuntimeConfig} a client uses at startup. Both
7
- * are deterministic transforms of the schema and hold no engine state.
8
- */
9
- import type { Schema } from '../transaction/schema/schema.js';
10
- import type { RuntimeConfig } from '../interfaces/index.js';
11
- /**
12
- * Computes a create-priority map that gives the engine a safe order for
13
- * inserting rows, so a child row is never written before the parent its
14
- * foreign key references.
15
- *
16
- * Every `belongsTo` relation is an edge from a child model to its parent. This
17
- * function runs Tarjan's strongly-connected-components algorithm over that
18
- * graph, which does two things at once: it groups any models that reference
19
- * each other in a cycle into a single component, and it produces those
20
- * components in an order where parents come before children. Each model then
21
- * gets a numeric priority from that order, where a lower number means "insert
22
- * earlier". Top-level models with no parent — an organization or a theme, say —
23
- * come first, and the deepest descendants come last.
24
- *
25
- * Models in the same cycle share a priority, so within a cycle the order rows
26
- * were queued in breaks the tie. To break a cycle deterministically instead,
27
- * mark one side of it with `belongsTo(target, fk, { defer: true })`. A deferred
28
- * edge is left out of the graph, which turns the cycle into a chain and gives
29
- * the deferred child a strictly higher priority than its parent. Pair it with a
30
- * Postgres `DEFERRABLE INITIALLY DEFERRED` constraint if you also want the
31
- * database to relax its check. See {@link BelongsToOptions.defer}.
32
- *
33
- * The returned map is keyed by each model's wire type name
34
- * ({@link ModelDef.typename}, falling back to the schema key), because that is
35
- * the name the engine looks up at commit time. Keying by the schema key would
36
- * miss that lookup, and every model would fall back to the default priority.
37
- *
38
- * The result does not depend on which model the walk starts from, and the
39
- * algorithm runs in time linear in the number of models plus relations.
40
- * Reference: Tarjan, R. (1972), "Depth-first search and linear graph
41
- * algorithms."
42
- */
43
- export declare function computeFKDepthPriority(schema: Schema): ReadonlyMap<string, number>;
44
- export declare function deriveConfigFromSchema(schema: Schema): RuntimeConfig;
@@ -1,185 +0,0 @@
1
- /**
2
- * Derives engine configuration from a schema. This module holds two pure
3
- * functions: {@link computeFKDepthPriority} works out a safe row-insertion
4
- * order from the schema's foreign-key relations, and
5
- * {@link deriveConfigFromSchema} packages that ordering, together with a few
6
- * defaults, into the {@link RuntimeConfig} a client uses at startup. Both
7
- * are deterministic transforms of the schema and hold no engine state.
8
- */
9
- import { schemaHash, modelHash, toSchemaJSON } from '../schema/serialize.js';
10
- // ── Config derivation from schema ─────────────────────────────────────────
11
- /**
12
- * Computes a create-priority map that gives the engine a safe order for
13
- * inserting rows, so a child row is never written before the parent its
14
- * foreign key references.
15
- *
16
- * Every `belongsTo` relation is an edge from a child model to its parent. This
17
- * function runs Tarjan's strongly-connected-components algorithm over that
18
- * graph, which does two things at once: it groups any models that reference
19
- * each other in a cycle into a single component, and it produces those
20
- * components in an order where parents come before children. Each model then
21
- * gets a numeric priority from that order, where a lower number means "insert
22
- * earlier". Top-level models with no parent — an organization or a theme, say —
23
- * come first, and the deepest descendants come last.
24
- *
25
- * Models in the same cycle share a priority, so within a cycle the order rows
26
- * were queued in breaks the tie. To break a cycle deterministically instead,
27
- * mark one side of it with `belongsTo(target, fk, { defer: true })`. A deferred
28
- * edge is left out of the graph, which turns the cycle into a chain and gives
29
- * the deferred child a strictly higher priority than its parent. Pair it with a
30
- * Postgres `DEFERRABLE INITIALLY DEFERRED` constraint if you also want the
31
- * database to relax its check. See {@link BelongsToOptions.defer}.
32
- *
33
- * The returned map is keyed by each model's wire type name
34
- * ({@link ModelDef.typename}, falling back to the schema key), because that is
35
- * the name the engine looks up at commit time. Keying by the schema key would
36
- * miss that lookup, and every model would fall back to the default priority.
37
- *
38
- * The result does not depend on which model the walk starts from, and the
39
- * algorithm runs in time linear in the number of models plus relations.
40
- * Reference: Tarjan, R. (1972), "Depth-first search and linear graph
41
- * algorithms."
42
- */
43
- export function computeFKDepthPriority(schema) {
44
- // schemaKey → typename (wire name used at transaction time)
45
- const keyToTypename = new Map();
46
- for (const [key, def] of Object.entries(schema.models)) {
47
- keyToTypename.set(key, def.typename ?? key);
48
- }
49
- // Adjacency: schemaKey → parent schema keys pulled from `belongsTo`.
50
- // Parents not in the schema (e.g. external types) are dropped so the
51
- // graph stays closed. Edges marked `{ defer: true }` are also
52
- // dropped — the schema author has declared this side of a cycle to
53
- // be the "soft" one (insert with null FK, patch later), so the
54
- // dependency-graph walker treats it as if the edge weren't there.
55
- // That breaks the cycle deterministically and lets the other side
56
- // become a strict topological predecessor.
57
- const parentsOf = new Map();
58
- for (const [key, def] of Object.entries(schema.models)) {
59
- const out = [];
60
- for (const rel of Object.values(def.relations)) {
61
- if (rel.type !== 'belongsTo')
62
- continue;
63
- if (!keyToTypename.has(rel.target))
64
- continue;
65
- if (rel.options?.defer === true)
66
- continue;
67
- out.push(rel.target);
68
- }
69
- parentsOf.set(key, out);
70
- }
71
- // Tarjan SCC bookkeeping
72
- const dfsIndex = new Map();
73
- const lowlink = new Map();
74
- const onStack = new Set();
75
- const stack = [];
76
- const sccs = [];
77
- let counter = 0;
78
- function strongconnect(v) {
79
- dfsIndex.set(v, counter);
80
- lowlink.set(v, counter);
81
- counter++;
82
- stack.push(v);
83
- onStack.add(v);
84
- for (const w of parentsOf.get(v) ?? []) {
85
- if (!dfsIndex.has(w)) {
86
- strongconnect(w);
87
- lowlink.set(v, Math.min(lowlink.get(v), lowlink.get(w)));
88
- }
89
- else if (onStack.has(w)) {
90
- // Back-edge into the active DFS path — w is in the same SCC as v.
91
- lowlink.set(v, Math.min(lowlink.get(v), dfsIndex.get(w)));
92
- }
93
- }
94
- // v is the root of an SCC: pop everything down to v inclusive.
95
- if (lowlink.get(v) === dfsIndex.get(v)) {
96
- const component = [];
97
- let w;
98
- do {
99
- w = stack.pop();
100
- onStack.delete(w);
101
- component.push(w);
102
- } while (w !== v);
103
- sccs.push(component);
104
- }
105
- }
106
- for (const key of keyToTypename.keys()) {
107
- if (!dfsIndex.has(key))
108
- strongconnect(key);
109
- }
110
- // Tarjan emits SCCs in reverse topological order of the condensation.
111
- // In our edge convention (child→parent), reverse-topo of the
112
- // condensation means root-SCCs (no outgoing edges = no parents)
113
- // first, leaf-SCCs (deepest descendants) last. We could just use
114
- // emit-order as the priority — but that gives independent sibling
115
- // SCCs different priorities, which is semantically wrong: siblings
116
- // don't depend on each other and shouldn't be ordered relative to
117
- // each other.
118
- //
119
- // Instead, do one more pass to compute *longest-path depth* on the
120
- // condensation DAG: depth(SCC) = max(depth(parent SCC)) + 1, or 0
121
- // for SCCs with no in-schema parents. SCCs at the same depth get
122
- // the same priority — siblings stay tied, insertion order in the
123
- // queue breaks the tie. Priority = (depth + 1) * 10.
124
- //
125
- // We can compute this in a single pass over the SCCs because
126
- // Tarjan's emit-order *is* a valid topological order of the
127
- // condensation: when we process sccs[i], every parent SCC has
128
- // already been assigned a depth.
129
- const nodeToSccIdx = new Map();
130
- sccs.forEach((scc, i) => {
131
- for (const node of scc)
132
- nodeToSccIdx.set(node, i);
133
- });
134
- const sccDepth = new Map();
135
- sccs.forEach((scc, i) => {
136
- let maxParentDepth = -1;
137
- for (const node of scc) {
138
- for (const parent of parentsOf.get(node) ?? []) {
139
- const parentSccIdx = nodeToSccIdx.get(parent);
140
- if (parentSccIdx === undefined)
141
- continue;
142
- if (parentSccIdx === i)
143
- continue; // intra-SCC edge — not a dep
144
- const d = sccDepth.get(parentSccIdx);
145
- if (d !== undefined && d > maxParentDepth)
146
- maxParentDepth = d;
147
- }
148
- }
149
- sccDepth.set(i, maxParentDepth + 1);
150
- });
151
- const out = new Map();
152
- sccs.forEach((scc, i) => {
153
- const priority = (sccDepth.get(i) + 1) * 10;
154
- for (const key of scc) {
155
- out.set(keyToTypename.get(key), priority);
156
- }
157
- });
158
- return out;
159
- }
160
- export function deriveConfigFromSchema(schema) {
161
- // Field-level serialization for commits happens in the transaction queue,
162
- // which reads each model's declared fields from the model registry at commit
163
- // time. There is no per-field metadata to configure here, so these maps stay
164
- // empty.
165
- return {
166
- modelCreatePriority: computeFKDepthPriority(schema),
167
- defaultCreatePriority: 40,
168
- defaultNonCreatePriority: 50,
169
- essentialFields: {},
170
- classNameFallbackMap: {},
171
- // Hash this schema once, so startup can detect when it has drifted from the
172
- // schema the server currently has active. The server and the `ablo push`
173
- // command compute this same hash.
174
- expectedSchemaHash: schemaHash(schema),
175
- // Per-model hashes for the SEMANTIC drift check: on a whole-hash mismatch
176
- // the client compares only the models it declares, so an additive server
177
- // change stays silent and a real divergence names the exact models.
178
- expectedModelHashes: Object.fromEntries(Object.entries(toSchemaJSON(schema).models).map(([key, model]) => [key, modelHash(model)])),
179
- // For a projection (`selectModels`/`omitModels`), also carry the full source
180
- // schema's hash. The drift check accepts a server match on either hash, so a
181
- // subset client stays quiet against a server running its full source schema.
182
- // Undefined for a directly-authored schema — plain equality applies there.
183
- expectedSourceSchemaHash: schema.sourceSchemaHash,
184
- };
185
- }
@@ -1,47 +0,0 @@
1
- /**
2
- * The store cluster — what `humans()` constructs at `init` now that the
3
- * plugin context carries the resolved url and the credential source
4
- * (ADR 0016; docs/plans/package-split.md, sequence step 2): this client's
5
- * runtime, the internal component graph, the registered model classes, and
6
- * the `BaseSyncedStore` that orchestrates them. The engine consumes the
7
- * cluster instead of constructing it; what remains in the composition root
8
- * (credential lifecycle, ready(), model proxies, resources) migrates in
9
- * later steps.
10
- *
11
- * The cluster rides the humans surface under {@link kStoreCluster}, a
12
- * symbol: `layerPluginSurface` merges only string-keyed members onto the
13
- * client, so the handoff never becomes public client API. When the plugin
14
- * contract adopts context patches (the decoration end-state), this channel
15
- * dissolves into them.
16
- */
17
- import type { PluginContext } from '../transaction/plugin.js';
18
- import type { Schema, SchemaRecord } from '../transaction/schema/schema.js';
19
- import { type RuntimeContext } from '../RuntimeContext.js';
20
- import { BaseSyncedStore } from '../BaseSyncedStore.js';
21
- import { type DefaultCollaborationEvents } from '../sync/SyncWebSocket.js';
22
- import { type InternalComponents } from './createInternalComponents.js';
23
- import type { InternalAbloOptions } from './options.js';
24
- /**
25
- * The private handoff slot on the humans surface. Symbol-keyed on purpose:
26
- * surface members merge onto the client by string key, and the cluster is
27
- * construction machinery, not client API.
28
- */
29
- export declare const kStoreCluster: unique symbol;
30
- /** What `humans().init` constructs and the engine consumes. */
31
- export interface StoreCluster {
32
- /** This client's runtime — every component below was constructed with it. */
33
- readonly runtime: RuntimeContext;
34
- /** The component graph: registry, pool, bootstrap, database, sync client, hydration. */
35
- readonly components: InternalComponents;
36
- /** The store orchestrating the graph, holding the host-built connection. */
37
- readonly store: BaseSyncedStore<DefaultCollaborationEvents, Schema<SchemaRecord>>;
38
- }
39
- /**
40
- * Builds the cluster from what the context carries, or returns `null` when
41
- * it does not carry enough (no connection, no resolved url, no credential
42
- * source, or no schema on the options bag) — the same tolerance the
43
- * presence stream established: `init` constructs what the context can
44
- * support and no more. The reactive factory always supplies all four and
45
- * treats a missing cluster as a configuration fault.
46
- */
47
- export declare function buildStoreCluster(context: PluginContext<InternalAbloOptions<SchemaRecord>>): StoreCluster | null;
@@ -1,118 +0,0 @@
1
- /**
2
- * The store cluster — what `humans()` constructs at `init` now that the
3
- * plugin context carries the resolved url and the credential source
4
- * (ADR 0016; docs/plans/package-split.md, sequence step 2): this client's
5
- * runtime, the internal component graph, the registered model classes, and
6
- * the `BaseSyncedStore` that orchestrates them. The engine consumes the
7
- * cluster instead of constructing it; what remains in the composition root
8
- * (credential lifecycle, ready(), model proxies, resources) migrates in
9
- * later steps.
10
- *
11
- * The cluster rides the humans surface under {@link kStoreCluster}, a
12
- * symbol: `layerPluginSurface` merges only string-keyed members onto the
13
- * client, so the handoff never becomes public client API. When the plugin
14
- * contract adopts context patches (the decoration end-state), this channel
15
- * dissolves into them.
16
- */
17
- import { shouldUseInMemoryPersistence } from '../transaction/persistence.js';
18
- import { noopObservability, browserOnlineStatus, defaultSessionErrorDetector, noopAnalytics, } from '../RuntimeContext.js';
19
- import { initRuntime } from '../context.js';
20
- import { alwaysOnline } from '../adapters/alwaysOnline.js';
21
- import { BaseSyncedStore } from '../BaseSyncedStore.js';
22
- import { SyncWebSocket } from '../sync/SyncWebSocket.js';
23
- import { createInternalComponents, } from './createInternalComponents.js';
24
- import { registerModelsFromSchema } from './modelRegistration.js';
25
- import { deriveConfigFromSchema } from './schemaConfig.js';
26
- import { createDefaultMutationExecutor } from './wsMutationExecutor.js';
27
- /**
28
- * The private handoff slot on the humans surface. Symbol-keyed on purpose:
29
- * surface members merge onto the client by string key, and the cluster is
30
- * construction machinery, not client API.
31
- */
32
- export const kStoreCluster = Symbol('ablo.humans.storeCluster');
33
- /**
34
- * The contract types the connection as the core `WsTransport`; on the
35
- * reactive path the factory constructs the materialising subclass with the
36
- * default collaboration vocabulary, and this guard is where that knowledge
37
- * becomes a type. A connection that is not the subclass means the cluster
38
- * cannot be built here.
39
- */
40
- function isReactiveSocket(transport) {
41
- return transport instanceof SyncWebSocket;
42
- }
43
- /**
44
- * Builds the cluster from what the context carries, or returns `null` when
45
- * it does not carry enough (no connection, no resolved url, no credential
46
- * source, or no schema on the options bag) — the same tolerance the
47
- * presence stream established: `init` constructs what the context can
48
- * support and no more. The reactive factory always supplies all four and
49
- * treats a missing cluster as a configuration fault.
50
- */
51
- export function buildStoreCluster(context) {
52
- const options = context.options;
53
- const { url, auth, transport, logger } = context;
54
- if (!options?.schema || !url || !auth || !isReactiveSocket(transport)) {
55
- return null;
56
- }
57
- const schema = options.schema;
58
- // Config derives from the schema; caller-supplied overrides layer on top,
59
- // caller winning per key.
60
- const config = {
61
- ...deriveConfigFromSchema(schema),
62
- ...options.configOverrides,
63
- };
64
- // The default executor sends `{ type: 'commit', ... }` over the context's
65
- // connection; before it opens, sends reject with the diagnosed not-ready
66
- // error and the MutationQueue owns the retry. A caller-supplied executor
67
- // still wins (test mocks, alternative transports).
68
- const executor = options.mutationExecutor ?? createDefaultMutationExecutor(() => transport);
69
- // This client's runtime — the instance the whole graph is constructed
70
- // with, so two clients in one process never read each other's logger,
71
- // config, or executor. `getModelMetadata` closes over this client's own
72
- // registry (assigned once the graph exists below), never the
73
- // active-registry global.
74
- let registryForMetadata;
75
- const runtime = {
76
- logger,
77
- observability: options.observability ?? noopObservability,
78
- analytics: options.analytics ?? noopAnalytics,
79
- sessionErrorDetector: options.sessionErrorDetector ?? defaultSessionErrorDetector,
80
- onlineStatus: options.onlineStatus ??
81
- (shouldUseInMemoryPersistence(options) ? alwaysOnline() : browserOnlineStatus),
82
- config,
83
- mutationExecutor: executor,
84
- getModelMetadata: (name) => registryForMetadata?.getMetadata(name),
85
- };
86
- // The module-global bridge: code not yet constructed with an instance
87
- // (model instances, the react hooks, the socket's context ports) still
88
- // reads it. Last-writer-wins there, exactly as before the runtime became
89
- // per-client. Retired reference by reference (docs/plans/package-split.md).
90
- initRuntime(runtime);
91
- const components = createInternalComponents({
92
- schema,
93
- url,
94
- options,
95
- auth,
96
- runtime,
97
- });
98
- registryForMetadata = components.modelRegistry;
99
- registerModelsFromSchema(schema, components.modelRegistry);
100
- const store = new BaseSyncedStore({
101
- syncClient: components.syncClient,
102
- database: components.database,
103
- objectPool: components.objectPool,
104
- modelRegistry: components.modelRegistry,
105
- syncWebSocket: transport,
106
- schema,
107
- url,
108
- auth,
109
- runtime,
110
- // The resolved list, so the store's delta pipeline dispatches the
111
- // declared stage handlers — including this plugin's own `apply`.
112
- stagePlugins: context.plugins ?? [],
113
- },
114
- // Collaboration vocabulary is the application's: the SDK subscribes to
115
- // the event types the caller declares and to nothing by default.
116
- { collaborationEvents: options.collaborationEvents ?? [] });
117
- return { runtime, components, store };
118
- }
@@ -1,61 +0,0 @@
1
- /**
2
- * The materialiser's lifecycle: the first credential mint, identity
3
- * resolution, the credential-refresh machinery, and the idempotent `ready()`
4
- * that drives the store's initialize generator to completion. Extracted from
5
- * the composition root along the humans() seam (docs/plans/package-split.md):
6
- * the engine wires it with the prelude's credential slice and consumes
7
- * `ready`; resolved identity flows back through one callback, so the
8
- * engine-side state it seeds (the self locals, the streams) stays with the
9
- * engine.
10
- */
11
- import type { SchemaRecord, Schema } from '../transaction/schema/schema.js';
12
- import type { ParticipantKind } from '../transaction/types/participant.js';
13
- import type { Logger } from '../transaction/logger.js';
14
- import type { AuthCredentialSource } from '../transaction/auth/credentialSource.js';
15
- import type { ApiKeySetter } from '../transaction/auth/apiKey.js';
16
- import type { AbloError } from '../transaction/errors.js';
17
- import type { InternalAbloOptions } from './options.js';
18
- import type { StoreCluster } from './storeCluster.js';
19
- /** What identity resolution settled, handed back for the engine to seed. */
20
- export interface IdentitySeed {
21
- readonly userId: string;
22
- readonly participantKind: ParticipantKind;
23
- /** The resolved account scope; null until known. */
24
- readonly accountScope: string | null;
25
- readonly syncGroups: readonly string[];
26
- }
27
- export interface StoreLifecycle {
28
- /**
29
- * Drives initialization to completion: first mint, identity resolution,
30
- * seeding, then the store's initialize generator. Idempotent — the first
31
- * call starts it, later calls share the promise; a failed attempt clears
32
- * the memo so retry triggers can re-bootstrap.
33
- */
34
- ready(): Promise<void>;
35
- /** Stops the credential refresh scheduler, if identity resolution installed one. */
36
- dispose(): void;
37
- }
38
- export interface StoreLifecycleDeps<S extends SchemaRecord> {
39
- readonly cluster: StoreCluster;
40
- readonly schema: Schema<S>;
41
- readonly internalOptions: InternalAbloOptions<S>;
42
- readonly authCredentials: AuthCredentialSource;
43
- readonly credentialResolver: (() => Promise<string | null>) | null;
44
- readonly configuredApiKey: string | ApiKeySetter | null;
45
- readonly configuredAuthToken: string | null;
46
- readonly url: string;
47
- readonly kind: ParticipantKind;
48
- readonly logger: Logger;
49
- /** The engine's up-front options validation; a present error makes `ready()` reject with it. */
50
- readonly validationError: AbloError | null;
51
- /** Seeds resolved identity into the engine's own state: the self locals and the streams. */
52
- readonly onIdentityResolved: (seed: IdentitySeed) => void;
53
- }
54
- /**
55
- * Wires the credential machinery onto the cluster and returns the `ready`
56
- * the client exposes. Wiring happens now — the refresh lifecycle, the
57
- * lazy-query auth recovery, the executor binding, and the opt-in auto-start;
58
- * the first mint waits for `ready()` so the first connection carries a
59
- * token.
60
- */
61
- export declare function startStoreLifecycle<S extends SchemaRecord>(deps: StoreLifecycleDeps<S>): StoreLifecycle;