@abloatai/ablo 0.26.0 → 0.28.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 (418) hide show
  1. package/CHANGELOG.md +42 -2
  2. package/README.md +102 -86
  3. package/dist/BaseSyncedStore.d.ts +85 -88
  4. package/dist/BaseSyncedStore.js +134 -151
  5. package/dist/Database.d.ts +68 -69
  6. package/dist/Database.js +316 -135
  7. package/dist/{ObjectPool.d.ts → InstanceCache.d.ts} +10 -13
  8. package/dist/{ObjectPool.js → InstanceCache.js} +85 -83
  9. package/dist/LazyReferenceCollection.d.ts +11 -15
  10. package/dist/LazyReferenceCollection.js +12 -16
  11. package/dist/Model.d.ts +54 -52
  12. package/dist/Model.js +78 -62
  13. package/dist/ModelRegistry.d.ts +21 -19
  14. package/dist/ModelRegistry.js +23 -27
  15. package/dist/NetworkMonitor.d.ts +5 -6
  16. package/dist/NetworkMonitor.js +5 -6
  17. package/dist/SyncClient.d.ts +122 -118
  18. package/dist/SyncClient.js +541 -245
  19. package/dist/adapters/alwaysOnline.d.ts +6 -8
  20. package/dist/adapters/alwaysOnline.js +6 -8
  21. package/dist/adapters/inMemoryStorage.d.ts +10 -9
  22. package/dist/adapters/inMemoryStorage.js +21 -9
  23. package/dist/agent/Agent.d.ts +27 -32
  24. package/dist/agent/Agent.js +18 -19
  25. package/dist/agent/index.d.ts +4 -4
  26. package/dist/agent/index.js +5 -5
  27. package/dist/agent/session.d.ts +47 -44
  28. package/dist/agent/session.js +37 -48
  29. package/dist/agent/types.d.ts +26 -31
  30. package/dist/agent/types.js +6 -7
  31. package/dist/ai-sdk/coordinatedTool.d.ts +108 -0
  32. package/dist/ai-sdk/{coordinated-tool.js → coordinatedTool.js} +44 -38
  33. package/dist/ai-sdk/coordinationContext.d.ts +46 -0
  34. package/dist/ai-sdk/{coordination-context.js → coordinationContext.js} +26 -33
  35. package/dist/ai-sdk/index.d.ts +25 -22
  36. package/dist/ai-sdk/index.js +25 -22
  37. package/dist/ai-sdk/wrap.d.ts +6 -7
  38. package/dist/ai-sdk/wrap.js +1 -1
  39. package/dist/auth/credentialPolicy.d.ts +69 -74
  40. package/dist/auth/credentialPolicy.js +51 -56
  41. package/dist/auth/credentialSource.d.ts +6 -5
  42. package/dist/auth/credentialSource.js +9 -10
  43. package/dist/auth/index.d.ts +59 -58
  44. package/dist/auth/index.js +31 -37
  45. package/dist/auth/schemas.d.ts +5 -4
  46. package/dist/auth/schemas.js +5 -4
  47. package/dist/batching/index.d.ts +19 -21
  48. package/dist/batching/index.js +14 -17
  49. package/dist/cli.cjs +173 -121
  50. package/dist/client/Ablo.d.ts +97 -74
  51. package/dist/client/Ablo.js +129 -163
  52. package/dist/client/ApiClient.d.ts +30 -19
  53. package/dist/client/ApiClient.js +442 -81
  54. package/dist/client/auth.d.ts +47 -47
  55. package/dist/client/auth.js +108 -117
  56. package/dist/client/claimHeartbeatLoop.d.ts +50 -0
  57. package/dist/client/claimHeartbeatLoop.js +88 -0
  58. package/dist/client/consoleLogger.d.ts +5 -6
  59. package/dist/client/consoleLogger.js +5 -6
  60. package/dist/client/createInternalComponents.d.ts +16 -17
  61. package/dist/client/createInternalComponents.js +26 -31
  62. package/dist/client/createModelProxy.d.ts +130 -120
  63. package/dist/client/createModelProxy.js +152 -122
  64. package/dist/client/credentialEndpoint.d.ts +40 -42
  65. package/dist/client/credentialEndpoint.js +35 -36
  66. package/dist/client/functionalUpdate.d.ts +29 -27
  67. package/dist/client/functionalUpdate.js +21 -21
  68. package/dist/client/hostedEndpoints.d.ts +9 -12
  69. package/dist/client/hostedEndpoints.js +9 -12
  70. package/dist/client/httpClient.d.ts +59 -53
  71. package/dist/client/httpClient.js +29 -31
  72. package/dist/client/identity.d.ts +15 -20
  73. package/dist/client/identity.js +47 -58
  74. package/dist/client/modelRegistration.d.ts +5 -9
  75. package/dist/client/modelRegistration.js +78 -87
  76. package/dist/client/options.d.ts +157 -157
  77. package/dist/client/options.js +3 -7
  78. package/dist/client/registerDataSource.d.ts +9 -9
  79. package/dist/client/registerDataSource.js +15 -16
  80. package/dist/client/resourceTypes.d.ts +64 -75
  81. package/dist/client/resourceTypes.js +4 -10
  82. package/dist/client/schemaConfig.d.ts +31 -43
  83. package/dist/client/schemaConfig.js +38 -50
  84. package/dist/client/sessionMint.d.ts +16 -12
  85. package/dist/client/sessionMint.js +26 -31
  86. package/dist/client/validateAbloOptions.d.ts +12 -14
  87. package/dist/client/validateAbloOptions.js +8 -9
  88. package/dist/client/writeOptionsSchema.d.ts +18 -16
  89. package/dist/client/writeOptionsSchema.js +23 -20
  90. package/dist/client/wsMutationExecutor.d.ts +16 -20
  91. package/dist/client/wsMutationExecutor.js +18 -23
  92. package/dist/commit/contract.d.ts +493 -0
  93. package/dist/commit/contract.js +187 -0
  94. package/dist/commit/index.d.ts +6 -0
  95. package/dist/commit/index.js +5 -0
  96. package/dist/context.d.ts +6 -4
  97. package/dist/context.js +6 -4
  98. package/dist/coordination/index.d.ts +10 -8
  99. package/dist/coordination/index.js +14 -12
  100. package/dist/coordination/schema.d.ts +176 -128
  101. package/dist/coordination/schema.js +197 -133
  102. package/dist/coordination/trace.d.ts +9 -10
  103. package/dist/coordination/trace.js +13 -14
  104. package/dist/core/DatabaseManager.d.ts +5 -7
  105. package/dist/core/DatabaseManager.js +15 -19
  106. package/dist/core/QueryProcessor.d.ts +7 -9
  107. package/dist/core/QueryProcessor.js +22 -28
  108. package/dist/core/QueryView.d.ts +8 -8
  109. package/dist/core/QueryView.js +2 -2
  110. package/dist/core/StoreManager.d.ts +14 -14
  111. package/dist/core/StoreManager.js +33 -24
  112. package/dist/core/ViewRegistry.d.ts +5 -5
  113. package/dist/core/ViewRegistry.js +4 -4
  114. package/dist/core/index.d.ts +17 -12
  115. package/dist/core/index.js +32 -26
  116. package/dist/core/openIDBWithTimeout.d.ts +38 -36
  117. package/dist/core/openIDBWithTimeout.js +42 -43
  118. package/dist/core/queryUtils.d.ts +45 -0
  119. package/dist/core/queryUtils.js +69 -0
  120. package/dist/core/storeContract.d.ts +63 -61
  121. package/dist/core/storeContract.js +8 -12
  122. package/dist/environment.d.ts +28 -0
  123. package/dist/environment.js +21 -0
  124. package/dist/errorCodes.d.ts +107 -99
  125. package/dist/errorCodes.js +137 -134
  126. package/dist/errors.d.ts +160 -166
  127. package/dist/errors.js +155 -158
  128. package/dist/index.d.ts +36 -27
  129. package/dist/index.js +91 -86
  130. package/dist/interfaces/index.d.ts +102 -113
  131. package/dist/interfaces/index.js +5 -4
  132. package/dist/keys/index.d.ts +27 -29
  133. package/dist/keys/index.js +41 -40
  134. package/dist/mutators/RecordingTransaction.d.ts +16 -16
  135. package/dist/mutators/RecordingTransaction.js +31 -37
  136. package/dist/mutators/Transaction.d.ts +18 -26
  137. package/dist/mutators/Transaction.js +14 -20
  138. package/dist/mutators/UndoManager.d.ts +124 -131
  139. package/dist/mutators/UndoManager.js +177 -156
  140. package/dist/mutators/defineMutators.d.ts +23 -34
  141. package/dist/mutators/defineMutators.js +14 -20
  142. package/dist/mutators/inverseOp.d.ts +12 -15
  143. package/dist/mutators/inverseOp.js +12 -15
  144. package/dist/mutators/mutateActions.d.ts +10 -9
  145. package/dist/mutators/mutateActions.js +1 -1
  146. package/dist/mutators/readerActions.d.ts +9 -8
  147. package/dist/mutators/readerActions.js +2 -2
  148. package/dist/mutators/undoApply.d.ts +31 -27
  149. package/dist/mutators/undoApply.js +26 -24
  150. package/dist/policy/index.d.ts +5 -3
  151. package/dist/policy/index.js +5 -3
  152. package/dist/policy/types.d.ts +104 -100
  153. package/dist/policy/types.js +67 -66
  154. package/dist/query/client.d.ts +28 -23
  155. package/dist/query/client.js +45 -43
  156. package/dist/query/types.d.ts +37 -60
  157. package/dist/query/types.js +13 -33
  158. package/dist/react/AbloProvider.d.ts +1 -1
  159. package/dist/react/AbloProvider.js +2 -2
  160. package/dist/react/context.d.ts +25 -28
  161. package/dist/react/context.js +9 -10
  162. package/dist/react/index.d.ts +41 -42
  163. package/dist/react/index.js +37 -38
  164. package/dist/react/internalContext.d.ts +17 -19
  165. package/dist/react/useAblo.d.ts +28 -25
  166. package/dist/react/useAblo.js +41 -17
  167. package/dist/react/useCurrentUserId.d.ts +8 -7
  168. package/dist/react/useCurrentUserId.js +8 -7
  169. package/dist/react/useErrorListener.d.ts +7 -7
  170. package/dist/react/useErrorListener.js +10 -11
  171. package/dist/react/useMutationFailureListener.d.ts +8 -8
  172. package/dist/react/useMutationFailureListener.js +8 -8
  173. package/dist/react/useMutators.d.ts +11 -11
  174. package/dist/react/useMutators.js +3 -3
  175. package/dist/react/useReactive.js +2 -2
  176. package/dist/react/useSyncStatus.d.ts +4 -6
  177. package/dist/react/useUndoScope.d.ts +7 -9
  178. package/dist/react/useUndoScope.js +1 -1
  179. package/dist/schema/coordination.d.ts +21 -25
  180. package/dist/schema/coordination.js +21 -25
  181. package/dist/schema/ddl.d.ts +43 -39
  182. package/dist/schema/ddl.js +75 -68
  183. package/dist/schema/ddlLock.d.ts +20 -24
  184. package/dist/schema/ddlLock.js +18 -23
  185. package/dist/schema/diff.d.ts +99 -61
  186. package/dist/schema/diff.js +43 -34
  187. package/dist/schema/field.d.ts +37 -42
  188. package/dist/schema/field.js +35 -48
  189. package/dist/schema/generate.d.ts +12 -12
  190. package/dist/schema/generate.js +12 -12
  191. package/dist/schema/index.d.ts +3 -3
  192. package/dist/schema/index.js +21 -23
  193. package/dist/schema/model.d.ts +118 -143
  194. package/dist/schema/model.js +22 -33
  195. package/dist/schema/openapi.d.ts +10 -9
  196. package/dist/schema/openapi.js +5 -3
  197. package/dist/schema/queries.d.ts +29 -31
  198. package/dist/schema/queries.js +23 -25
  199. package/dist/schema/relation.d.ts +89 -99
  200. package/dist/schema/relation.js +13 -13
  201. package/dist/schema/residency.d.ts +16 -13
  202. package/dist/schema/residency.js +16 -13
  203. package/dist/schema/roles.d.ts +36 -43
  204. package/dist/schema/roles.js +31 -37
  205. package/dist/schema/schema.d.ts +64 -43
  206. package/dist/schema/schema.js +31 -32
  207. package/dist/schema/select.d.ts +13 -13
  208. package/dist/schema/select.js +13 -13
  209. package/dist/schema/serialize.d.ts +28 -31
  210. package/dist/schema/serialize.js +27 -31
  211. package/dist/schema/sugar.d.ts +17 -32
  212. package/dist/schema/sugar.js +14 -29
  213. package/dist/schema/{sync-delta-row.d.ts → syncDeltaRow.d.ts} +26 -49
  214. package/dist/schema/syncDeltaRow.js +89 -0
  215. package/dist/schema/tenancy.d.ts +44 -46
  216. package/dist/schema/tenancy.js +46 -48
  217. package/dist/server/adapter.d.ts +58 -58
  218. package/dist/server/adapter.js +13 -14
  219. package/dist/server/commit.d.ts +60 -64
  220. package/dist/server/index.d.ts +9 -10
  221. package/dist/server/index.js +1 -1
  222. package/dist/server/readConfig.d.ts +70 -0
  223. package/dist/server/readConfig.js +8 -0
  224. package/dist/server/storageMode.d.ts +23 -0
  225. package/dist/server/storageMode.js +17 -0
  226. package/dist/source/adapter.d.ts +30 -25
  227. package/dist/source/adapter.js +10 -10
  228. package/dist/source/adapters/drizzle.d.ts +28 -23
  229. package/dist/source/adapters/drizzle.js +30 -25
  230. package/dist/source/adapters/kysely.d.ts +27 -25
  231. package/dist/source/adapters/kysely.js +24 -23
  232. package/dist/source/adapters/memory.d.ts +8 -7
  233. package/dist/source/adapters/memory.js +9 -8
  234. package/dist/source/adapters/prisma.d.ts +13 -12
  235. package/dist/source/adapters/prisma.js +22 -25
  236. package/dist/source/conformance.d.ts +18 -11
  237. package/dist/source/conformance.js +17 -11
  238. package/dist/source/connector.d.ts +31 -32
  239. package/dist/source/connector.js +28 -28
  240. package/dist/source/connectorProtocol.d.ts +160 -0
  241. package/dist/source/connectorProtocol.js +162 -0
  242. package/dist/source/contract.d.ts +26 -27
  243. package/dist/source/contract.js +28 -29
  244. package/dist/source/factory.d.ts +46 -58
  245. package/dist/source/factory.js +22 -27
  246. package/dist/source/index.d.ts +7 -9
  247. package/dist/source/index.js +12 -14
  248. package/dist/source/migrations.d.ts +9 -9
  249. package/dist/source/migrations.js +9 -9
  250. package/dist/source/next.d.ts +9 -10
  251. package/dist/source/next.js +6 -7
  252. package/dist/source/pushQueue.d.ts +69 -47
  253. package/dist/source/pushQueue.js +32 -28
  254. package/dist/source/signing.d.ts +46 -17
  255. package/dist/source/signing.js +28 -11
  256. package/dist/source/types.d.ts +121 -104
  257. package/dist/source/types.js +13 -14
  258. package/dist/stores/ObjectStore.d.ts +24 -12
  259. package/dist/stores/ObjectStore.js +38 -16
  260. package/dist/stores/ObjectStoreContract.d.ts +14 -15
  261. package/dist/stores/SyncActionStore.d.ts +7 -11
  262. package/dist/stores/SyncActionStore.js +13 -17
  263. package/dist/surface.d.ts +28 -21
  264. package/dist/surface.js +29 -20
  265. package/dist/sync/{BootstrapHelper.d.ts → BootstrapFetcher.d.ts} +36 -42
  266. package/dist/sync/{BootstrapHelper.js → BootstrapFetcher.js} +76 -76
  267. package/dist/sync/ConnectionManager.d.ts +39 -50
  268. package/dist/sync/ConnectionManager.js +55 -66
  269. package/dist/sync/NetworkProbe.d.ts +24 -29
  270. package/dist/sync/NetworkProbe.js +63 -69
  271. package/dist/sync/{HydrationCoordinator.d.ts → OnDemandLoader.d.ts} +42 -41
  272. package/dist/sync/{HydrationCoordinator.js → OnDemandLoader.js} +59 -54
  273. package/dist/sync/{AreaOfInterestManager.d.ts → SubscriptionManager.d.ts} +43 -57
  274. package/dist/sync/{AreaOfInterestManager.js → SubscriptionManager.js} +43 -51
  275. package/dist/sync/SyncWebSocket.d.ts +141 -166
  276. package/dist/sync/SyncWebSocket.js +191 -223
  277. package/dist/sync/awaitClaimGrant.d.ts +18 -18
  278. package/dist/sync/awaitClaimGrant.js +11 -11
  279. package/dist/sync/bootstrapApply.d.ts +34 -24
  280. package/dist/sync/bootstrapApply.js +27 -19
  281. package/dist/sync/commitFrames.d.ts +21 -20
  282. package/dist/sync/commitFrames.js +18 -18
  283. package/dist/sync/createClaimStream.d.ts +23 -22
  284. package/dist/sync/createClaimStream.js +105 -23
  285. package/dist/sync/createPresenceStream.d.ts +19 -18
  286. package/dist/sync/createPresenceStream.js +25 -26
  287. package/dist/sync/createSnapshot.d.ts +12 -14
  288. package/dist/sync/createSnapshot.js +20 -26
  289. package/dist/sync/credentialLifecycle.d.ts +104 -104
  290. package/dist/sync/credentialLifecycle.js +140 -147
  291. package/dist/sync/deltaPipeline.d.ts +36 -34
  292. package/dist/sync/deltaPipeline.js +64 -65
  293. package/dist/sync/groupChange.d.ts +63 -61
  294. package/dist/sync/groupChange.js +74 -78
  295. package/dist/sync/heartbeat.d.ts +34 -33
  296. package/dist/sync/heartbeat.js +31 -31
  297. package/dist/sync/participants.d.ts +19 -19
  298. package/dist/sync/persistedPrefix.d.ts +12 -0
  299. package/dist/sync/persistedPrefix.js +22 -0
  300. package/dist/sync/schemas.d.ts +3 -2
  301. package/dist/sync/schemas.js +14 -10
  302. package/dist/sync/syncCursor.d.ts +17 -21
  303. package/dist/sync/syncCursor.js +17 -21
  304. package/dist/sync/syncPlan.d.ts +28 -36
  305. package/dist/sync/syncPlan.js +18 -19
  306. package/dist/sync/syncPosition.d.ts +54 -49
  307. package/dist/sync/syncPosition.js +57 -52
  308. package/dist/sync/wsFrameHandlers.d.ts +35 -36
  309. package/dist/sync/wsFrameHandlers.js +63 -67
  310. package/dist/testing/fixtures/bootstrap.d.ts +12 -6
  311. package/dist/testing/fixtures/bootstrap.js +12 -6
  312. package/dist/testing/fixtures/deltas.d.ts +30 -33
  313. package/dist/testing/fixtures/deltas.js +30 -33
  314. package/dist/testing/fixtures/models.d.ts +11 -10
  315. package/dist/testing/fixtures/models.js +11 -10
  316. package/dist/testing/helpers/{react-wrapper.d.ts → reactWrapper.d.ts} +13 -10
  317. package/dist/testing/helpers/{react-wrapper.js → reactWrapper.js} +15 -12
  318. package/dist/testing/helpers/{sync-engine-harness.d.ts → syncEngineHarness.d.ts} +17 -15
  319. package/dist/testing/helpers/{sync-engine-harness.js → syncEngineHarness.js} +12 -10
  320. package/dist/testing/helpers/wait.d.ts +13 -8
  321. package/dist/testing/helpers/wait.js +13 -8
  322. package/dist/testing/index.d.ts +5 -3
  323. package/dist/testing/index.js +3 -2
  324. package/dist/testing/mocks/FakeDatabase.d.ts +18 -0
  325. package/dist/testing/mocks/FakeDatabase.js +10 -0
  326. package/dist/testing/mocks/MockMutationExecutor.d.ts +18 -17
  327. package/dist/testing/mocks/MockMutationExecutor.js +15 -14
  328. package/dist/testing/mocks/MockNetworkMonitor.d.ts +8 -8
  329. package/dist/testing/mocks/MockNetworkMonitor.js +8 -8
  330. package/dist/testing/mocks/MockSyncContext.d.ts +20 -17
  331. package/dist/testing/mocks/MockSyncContext.js +15 -13
  332. package/dist/testing/mocks/MockSyncStore.d.ts +10 -10
  333. package/dist/testing/mocks/MockSyncStore.js +11 -11
  334. package/dist/testing/mocks/MockWebSocket.d.ts +28 -23
  335. package/dist/testing/mocks/MockWebSocket.js +22 -21
  336. package/dist/transactions/TransactionQueue.d.ts +244 -181
  337. package/dist/transactions/TransactionQueue.js +929 -423
  338. package/dist/transactions/TransactionStore.d.ts +6 -4
  339. package/dist/transactions/TransactionStore.js +6 -4
  340. package/dist/transactions/UnconfirmedWrites.d.ts +82 -0
  341. package/dist/transactions/UnconfirmedWrites.js +104 -0
  342. package/dist/transactions/coalesceRules.d.ts +41 -17
  343. package/dist/transactions/coalesceRules.js +40 -17
  344. package/dist/transactions/commitEnvelope.d.ts +132 -0
  345. package/dist/transactions/commitEnvelope.js +139 -0
  346. package/dist/transactions/commitOutboxStore.d.ts +32 -0
  347. package/dist/transactions/commitOutboxStore.js +26 -0
  348. package/dist/transactions/commitPayload.d.ts +63 -52
  349. package/dist/transactions/commitPayload.js +54 -57
  350. package/dist/transactions/deltaConfirmation.d.ts +20 -22
  351. package/dist/transactions/deltaConfirmation.js +37 -45
  352. package/dist/transactions/httpCommitEnvelope.d.ts +43 -0
  353. package/dist/transactions/httpCommitEnvelope.js +179 -0
  354. package/dist/transactions/optimisticApply.d.ts +49 -0
  355. package/dist/transactions/optimisticApply.js +65 -0
  356. package/dist/transactions/replayValidation.d.ts +182 -0
  357. package/dist/transactions/replayValidation.js +156 -0
  358. package/dist/types/global.d.ts +46 -41
  359. package/dist/types/global.js +20 -19
  360. package/dist/types/index.d.ts +71 -77
  361. package/dist/types/index.js +22 -22
  362. package/dist/types/modelData.d.ts +6 -8
  363. package/dist/types/modelData.js +5 -7
  364. package/dist/types/participant.d.ts +10 -11
  365. package/dist/types/participant.js +6 -8
  366. package/dist/types/streams.d.ts +208 -195
  367. package/dist/types/streams.js +7 -7
  368. package/dist/utils/asyncIterator.d.ts +25 -32
  369. package/dist/utils/asyncIterator.js +25 -32
  370. package/dist/utils/duration.d.ts +12 -15
  371. package/dist/utils/duration.js +12 -15
  372. package/dist/utils/mobxSetup.d.ts +53 -0
  373. package/dist/utils/{mobx-setup.js → mobxSetup.js} +42 -98
  374. package/dist/webhooks/events.d.ts +21 -16
  375. package/dist/webhooks/events.js +10 -8
  376. package/dist/webhooks/index.d.ts +5 -7
  377. package/dist/webhooks/index.js +5 -7
  378. package/dist/wire/bootstrapReason.d.ts +9 -0
  379. package/dist/wire/bootstrapReason.js +8 -0
  380. package/dist/{schema/sync-delta-wire.d.ts → wire/delta.d.ts} +58 -41
  381. package/dist/wire/delta.js +114 -0
  382. package/dist/wire/errorEnvelope.d.ts +30 -31
  383. package/dist/wire/errorEnvelope.js +34 -40
  384. package/dist/wire/frames.d.ts +315 -86
  385. package/dist/wire/frames.js +47 -33
  386. package/dist/wire/index.d.ts +18 -14
  387. package/dist/wire/index.js +32 -27
  388. package/dist/wire/listEnvelope.d.ts +16 -23
  389. package/dist/wire/listEnvelope.js +7 -6
  390. package/dist/wire/protocol.d.ts +25 -32
  391. package/dist/wire/protocol.js +25 -32
  392. package/dist/wire/protocolVersion.d.ts +44 -40
  393. package/dist/wire/protocolVersion.js +44 -40
  394. package/docs/api.md +10 -10
  395. package/docs/coordination.md +59 -0
  396. package/docs/mcp.md +1 -1
  397. package/package.json +17 -11
  398. package/dist/ai-sdk/coordinated-tool.d.ts +0 -101
  399. package/dist/ai-sdk/coordination-context.d.ts +0 -52
  400. package/dist/core/query-utils.d.ts +0 -34
  401. package/dist/core/query-utils.js +0 -59
  402. package/dist/schema/sync-delta-row.js +0 -103
  403. package/dist/schema/sync-delta-wire.js +0 -102
  404. package/dist/server/read-config.d.ts +0 -67
  405. package/dist/server/read-config.js +0 -8
  406. package/dist/server/storage-mode.d.ts +0 -8
  407. package/dist/server/storage-mode.js +0 -28
  408. package/dist/source/connector-protocol.d.ts +0 -159
  409. package/dist/source/connector-protocol.js +0 -161
  410. package/dist/transactions/OptimisticEchoTracker.d.ts +0 -82
  411. package/dist/transactions/OptimisticEchoTracker.js +0 -104
  412. package/dist/transactions/mutation-error-handler.d.ts +0 -5
  413. package/dist/transactions/mutation-error-handler.js +0 -39
  414. package/dist/transactions/optimistic.d.ts +0 -24
  415. package/dist/transactions/optimistic.js +0 -45
  416. package/dist/transactions/persistedReplay.d.ts +0 -93
  417. package/dist/transactions/persistedReplay.js +0 -105
  418. package/dist/utils/mobx-setup.d.ts +0 -42
@@ -1,8 +1,8 @@
1
1
  /**
2
- * Ablo — The one-liner consumer API.
3
- *
4
- * Hides all internal wiring (ObjectPool, Database, SyncClient, WebSocket,
5
- * bootstrap, offline queue, DI adapters) behind a single function call.
2
+ * `Ablo`the one-call entry point to the sync engine client. It hides the
3
+ * internal wiring — the object pool, local database, sync client, WebSocket,
4
+ * bootstrap, and offline queue behind a single function that returns a typed
5
+ * client with one property per model in your schema.
6
6
  *
7
7
  * Usage:
8
8
  * import { Ablo } from '@abloatai/ablo';
@@ -18,10 +18,10 @@
18
18
  * });
19
19
  * await sync.reports.delete({ id: reportId });
20
20
  */
21
- import type { Schema, SchemaRecord, InferModel, InferCreate } from '../schema/schema.js';
21
+ import type { Schema, SchemaRecord, InferModel, InferCreate, InferRow } from '../schema/schema.js';
22
22
  import type { ModelTarget, ModelClaim } from '../coordination/schema.js';
23
23
  export type { ModelTarget, ModelClaim };
24
- import { ObjectPool } from '../ObjectPool.js';
24
+ import { InstanceCache } from '../InstanceCache.js';
25
25
  import type { SyncStoreContract } from '../react/context.js';
26
26
  import type { SyncWebSocket } from '../sync/SyncWebSocket.js';
27
27
  import { type SyncStatus } from '../BaseSyncedStore.js';
@@ -31,9 +31,21 @@ import { type AbloHttpClient, type AbloHttpClientOptions } from './httpClient.js
31
31
  import type { AbloOptions } from './options.js';
32
32
  import type { AbloSession, CommitResource, CreateAgentClientParams, CreateSessionParams, ModelClient } from './resourceTypes.js';
33
33
  export type { ApiKeySetter, AbloOptions, InternalAbloOptions } from './options.js';
34
- export type { LocalCountOptions, LocalReadOptions, ModelListScope, ServerReadOptions, ModelRetrieveParams, ModelCreateParams, ModelUpdateParams, ModelDeleteParams, ClaimOptions, ClaimParams, ClaimLookupParams, ClaimReorderParams, Claim, HeldClaim, ModelOperations, ModelOperationAction, CommitWait, ModelRead, IfClaimedPolicy, ClaimedOptions, ClaimWaitOptions, ModelReadOptions, ClaimCreateOptions, CommitOperationInput, CommitCreateOptions, CommitReceipt, CommitResource, ClaimResource, ModelMutationOptions, HttpClaimApi, ModelClient, SessionOperation, CreateUserSessionParams, CreateAgentSessionParams, CreateSessionParams, CreateAgentClientParams, AbloSession, } from './resourceTypes.js';
34
+ export type { LocalCountOptions, LocalReadOptions, ModelListScope, ServerReadOptions, ModelRetrieveParams, ModelCreateParams, ModelUpdateParams, ModelDeleteParams, ClaimOptions, ClaimParams, ClaimLookupParams, ClaimReorderParams, Claim, ClaimHeartbeat, ClaimHeartbeatOptions, HeldClaim, ModelOperations, ModelOperationAction, CommitWait, ModelRead, IfClaimedPolicy, ClaimedOptions, ClaimWaitOptions, ModelReadOptions, ClaimCreateOptions, CommitOperationInput, CommitCreateOptions, CommitReceipt, CommitResource, ClaimResource, ModelMutationOptions, HttpClaimApi, ModelClient, SessionOperation, CreateUserSessionParams, CreateAgentSessionParams, CreateSessionParams, CreateAgentClientParams, AbloSession, } from './resourceTypes.js';
35
35
  export { computeFKDepthPriority } from './schemaConfig.js';
36
36
  import type { ModelOperations } from './createModelProxy.js';
37
+ /**
38
+ * The reactive-read client a `useAblo` selector receives. The same surface as
39
+ * {@link Ablo}, except model reads are typed as reactive rows
40
+ * ({@link InferRow}: data fields + computeds, no relation accessors, no model
41
+ * methods) — the shape a reactive read actually delivers after
42
+ * `toReactiveSnapshot()`. Reading `row.layers` off a reactive read is a
43
+ * compile error here instead of a silent runtime `undefined`; compose
44
+ * relations through selectors or hooks that resolve the pool's instance.
45
+ */
46
+ export type AbloReads<S extends SchemaRecord> = Omit<Ablo<S>, keyof S & string> & {
47
+ readonly [K in keyof S & string]: ModelOperations<InferRow<Schema<S>, K>, InferCreate<Schema<S>, K>>;
48
+ };
37
49
  /** The typed sync engine client — one property per model in the schema */
38
50
  export type Ablo<S extends SchemaRecord> = {
39
51
  readonly [K in keyof S & string]: ModelOperations<InferModel<Schema<S>, K>, InferCreate<Schema<S>, K>>;
@@ -78,31 +90,32 @@ export type Ablo<S extends SchemaRecord> = {
78
90
  /** Disconnect and clean up */
79
91
  dispose(): Promise<void>;
80
92
  /**
81
- * Replace the bearer auth token used for the WebSocket upgrade and HTTP
82
- * requests, WITHOUT tearing down the engine. Use to push a refreshed
83
- * short-lived access key (the Stripe-style `ek_`/`rk_`) before it expires —
84
- * the client's `apiKey`-resolver refresh loop calls this. Reuses the same
85
- * rotation path as the internal capability-token refresh; safe to call before
86
- * `ready()`. Also nudges a parked connection to re-probe with the new token.
93
+ * Replace the bearer token used for the WebSocket upgrade and HTTP requests,
94
+ * without tearing down the engine. Use it to push a refreshed short-lived
95
+ * access key (an `ek_` or `rk_`) before it expires — the client's `apiKey`
96
+ * resolver refresh loop calls this for you. It reuses the same rotation path as
97
+ * the internal capability-token refresh and is safe to call before `ready()`.
98
+ * It also nudges a parked connection to re-probe with the new token.
87
99
  */
88
100
  setAuthToken(token: string): void;
89
101
  /**
90
102
  * Resolve the active bearer credential this engine authenticates with — the
91
- * live `ek_`/`rk_` the WebSocket and HTTP transports currently carry (kept
92
- * fresh by the `apiKey`-resolver refresh loop), falling back to a configured
103
+ * live `ek_` or `rk_` the WebSocket and HTTP transports currently carry (kept
104
+ * fresh by the `apiKey` resolver refresh loop), falling back to a configured
93
105
  * API key. Returns `null` when no credential is set yet. Use it to authenticate
94
- * a side-band request to the same server with the very token this client
95
- * already holds no extra mint round-trip.
106
+ * a side-band request to the same server with the token this client already
107
+ * holds, avoiding an extra mint round-trip.
96
108
  */
97
109
  getAuthToken(): Promise<string | null>;
98
110
  /**
99
- * Register a re-mint hook for the short-lived access key. The connection
100
- * layer calls it WHEN it finds the key stale (a `credential_stale` probe) or
101
- * on an external nudge; the hook mints a fresh `ek_`/`rk_` from the still-valid
102
- * login. Mirrors the `apiKey`-resolver contract: resolve a token, resolve
103
- * `null` when the login itself is gone ( sign out), or THROW on a transient
104
- * failure ( back off, never sign out). The client wires this automatically
105
- * from a function `apiKey`. Safe to call before `ready()`.
111
+ * Register a re-mint hook for the short-lived access key. The connection layer
112
+ * calls it when it finds the key stale (a `credential_stale` probe) or on an
113
+ * external nudge; the hook mints a fresh `ek_` or `rk_` from the still-valid
114
+ * login. It follows the same contract as the `apiKey` resolver: resolve a
115
+ * token, resolve `null` when the login itself is gone (which signs the user
116
+ * out), or throw on a transient failure (which backs off without signing out).
117
+ * The client wires this automatically from a function `apiKey`. Safe to call
118
+ * before `ready()`.
106
119
  */
107
120
  setCredentialRefresher(refresher: (() => Promise<string | null>) | null): void;
108
121
  /**
@@ -114,21 +127,19 @@ export type Ablo<S extends SchemaRecord> = {
114
127
  */
115
128
  nudgeReconnect(): void;
116
129
  /**
117
- * Mint a short-lived, scoped **session token** for one end user the
118
- * Stripe `ephemeralKeys.create` / Supabase session shape. Call this on YOUR
119
- * BACKEND (where the `sk_` secret key lives), then hand the returned
120
- * `token` to that user's browser (typically via a token route the browser's
121
- * `apiKey` resolver fetches). The browser presents it as the bearer; the sync-server verifies
122
- * it via `apiKeyProvider`.
130
+ * Mint a short-lived, scoped session token for one end user. Call this on your
131
+ * backend, where the `sk_` secret key lives, then hand the returned `token` to
132
+ * that user's browser typically through a token route the browser's `apiKey`
133
+ * resolver fetches. The browser presents the token as its bearer, and the
134
+ * server verifies it. The browser must never see the `sk_` key, only the
135
+ * per-user session token.
123
136
  *
124
- * The browser must NEVER see the `sk_` key only the per-user session token.
125
- *
126
- * Pass `{ user: { id } }` for a full-authority end-user session (mints `ek_`,
127
- * `participantKind: 'user'` attribution, stored as `actor_kind` on the delta
128
- * row), or `{ agent: { id }, can: { tasks:
129
- * ['update'] } }` for a scoped agent session (mints `rk_`); `can` is typed
130
- * against your schema's model names. Always authenticates with the original
131
- * `sk_` — never the client's exchanged sync credential.
137
+ * Pass `{ user: { id } }` for a full-authority end-user session, which mints an
138
+ * `ek_` and attributes writes to a user (recorded as `actor_kind` on the delta
139
+ * row). Pass `{ agent: { id }, can: { tasks: ['update'] } }` for a scoped agent
140
+ * session, which mints an `rk_`; `can` is typed against your schema's model
141
+ * names. This always authenticates with the original `sk_`, never the client's
142
+ * exchanged sync credential.
132
143
  */
133
144
  sessions: {
134
145
  create(params: CreateSessionParams<S>): Promise<AbloSession>;
@@ -149,15 +160,16 @@ export type Ablo<S extends SchemaRecord> = {
149
160
  * await agent.dispose(); // when the agent is done
150
161
  * ```
151
162
  *
152
- * Server-side only (requires the `sk_` secret key, like `sessions.create`);
153
- * throws `AbloAuthenticationError` in the browser. The returned client holds
154
- * its own auto-refreshing `rk_`, so a long run never hits token expiry, and
155
- * the `sk_` never leaves this process. Each call is a DISTINCT participant by
156
- * default (omit `id` fresh uuid), so even two agents sharing a `name` queue
157
- * behind one another on a contended row — `name` is display only and never
158
- * collapses identity. Humans don't get a server-built client ship them a
159
- * token via `sessions.create({ user })`. Need the raw token for revocation,
160
- * or a stable re-attachable id? Use `sessions.create({ agent })` / pass `id`.
163
+ * Server-side only: it requires the `sk_` secret key (like `sessions.create`)
164
+ * and throws `AbloAuthenticationError` in the browser. The returned client
165
+ * holds its own auto-refreshing `rk_`, so a long run never hits token expiry,
166
+ * and the `sk_` never leaves this process. Each call is a distinct participant
167
+ * by default (omit `id` for a fresh uuid), so even two agents sharing a `name`
168
+ * queue behind one another on a contended row — `name` is display only and
169
+ * never collapses identity. Humans don't get a server-built client; ship them a
170
+ * token via `sessions.create({ user })`. If you need the raw token for
171
+ * revocation, or a stable re-attachable id, use `sessions.create({ agent })`
172
+ * or pass `id`.
161
173
  */
162
174
  agents: {
163
175
  create(params: CreateAgentClientParams<S>): Promise<Ablo<S>>;
@@ -245,14 +257,14 @@ export type Ablo<S extends SchemaRecord> = {
245
257
  /** The underlying schema */
246
258
  readonly schema: Schema<S>;
247
259
  /**
248
- * Real-time presence livestream — who else is connected on this
249
- * engine's sync groups, what they're doing, and a write surface for
250
- * announcing this user's own activity. Rides the engine's existing
251
- * WebSocket; opening a participant for presence does NOT open a
252
- * second socket. See `PresenceStream` in `types/streams.ts`.
260
+ * A real-time presence livestream — who else is connected on this engine's
261
+ * sync groups, what they're doing, and a write surface for announcing this
262
+ * user's own activity. It rides the engine's existing WebSocket; opening a
263
+ * participant for presence does not open a second socket. See
264
+ * {@link PresenceStream}.
253
265
  *
254
- * Stable reference for the engine's lifetime — the underlying
255
- * connection is rotated on `dispose()` but this object is the same.
266
+ * The reference is stable for the engine's lifetime — the underlying connection
267
+ * is rotated on `dispose()`, but this object stays the same.
256
268
  */
257
269
  readonly presence: PresenceStream;
258
270
  /**
@@ -270,7 +282,7 @@ export type Ablo<S extends SchemaRecord> = {
270
282
  * Capture a context-staleness watermark over a set of entities.
271
283
  * Returns a flat snapshot with `stamp` (thread into writes as
272
284
  * `readAt`), `signal` (aborts on any captured-entity delta), and
273
- * `onChange` (callback form). Reads from the engine's ObjectPool;
285
+ * `onChange` (callback form). Reads from the engine's InstanceCache;
274
286
  * subscription is on the engine's existing transport.
275
287
  *
276
288
  * Use before an LLM call to prevent the model from completing
@@ -282,13 +294,13 @@ export type Ablo<S extends SchemaRecord> = {
282
294
  */
283
295
  snapshot<ModelName extends keyof S & string>(entities: Readonly<Record<ModelName, string | readonly string[]>>): Snapshot<Schema<S>, ModelName>;
284
296
  /**
285
- * The internal BaseSyncedStore. Implements SyncStoreContract — pass to
286
- * SyncContext.Provider so the SDK's useModel/useModels/useMutations hooks
287
- * can access it. Also satisfies useSyncStore() consumers during migration.
297
+ * The internal store. It implements {@link SyncStoreContract} — pass it to
298
+ * `SyncContext.Provider` so the SDK's `useModel` / `useModels` / `useMutations`
299
+ * hooks can reach it.
288
300
  */
289
301
  readonly _store: SyncStoreContract;
290
- /** The ObjectPool — for demand loaders and direct pool operations. */
291
- readonly _pool: ObjectPool;
302
+ /** The InstanceCache — for demand loaders and direct pool operations. */
303
+ readonly _pool: InstanceCache;
292
304
  /**
293
305
  * The SyncWebSocket handle — for collaboration events (slide selection,
294
306
  * cursor broadcast). Null until the engine connects.
@@ -334,25 +346,28 @@ import type * as _Tx from '../mutators/Transaction.js';
334
346
  import type * as _Undo from '../mutators/UndoManager.js';
335
347
  import type * as _SchemaTypes from '../schema/schema.js';
336
348
  /**
337
- * Canonical type namespace.
338
- *
339
- * Locked rules — apply uniformly to every future addition:
349
+ * The canonical type namespace.
340
350
  *
341
- * 1. Flat by default. `Ablo.X`. Fewest dots wins.
342
- * 2. Sub-namespace ONLY when (a) 4+ types share a single conceptual
343
- * prefix, AND (b) names read better with the prefix (`Conflict.Kind`
344
- * over `ConflictKind`). If the cluster is heterogeneous (streams +
345
- * data + handles), keep flat.
346
- * 3. Only types a consumer would write `: Ablo.X` for. Inferred-only
347
- * types stay un-exported.
348
- * 4. Wire shapes never on `Ablo.*`. Engine vocabulary only.
349
- * 5. Advanced / framework-integration types stay internal unless they
350
- * graduate into one of the public subpaths.
351
+ * Rules applied uniformly to every addition:
351
352
  *
352
- * Anything not on this list stays internal.
353
+ * 1. Flat by default. `Ablo.X`. Fewest dots wins.
354
+ * 2. Sub-namespace only when (a) four or more types share a single conceptual
355
+ * prefix and (b) the names read better with it (`Conflict.Kind` over
356
+ * `ConflictKind`). If the cluster is heterogeneous (streams, data, handles),
357
+ * keep it flat.
358
+ * 3. Only types a consumer would write `: Ablo.X` for. Inferred-only types stay
359
+ * unexported.
360
+ * 4. Wire shapes never appear on `Ablo.*` — engine vocabulary only.
361
+ * 5. Advanced or framework-integration types stay internal unless they graduate
362
+ * into one of the public subpaths.
353
363
  */
354
364
  export declare namespace Ablo {
355
365
  type Options<S extends SchemaRecord = SchemaRecord> = AbloOptions<S>;
366
+ /**
367
+ * The read view of the client that `useAblo` selectors receive: model reads
368
+ * typed as reactive rows (data fields + computeds, no relation accessors).
369
+ */
370
+ type Reads<S extends SchemaRecord = SchemaRecord> = AbloReads<S>;
356
371
  type Api = AbloApi;
357
372
  type ApiClaims = AbloApiClaims;
358
373
  type Capability = import('./ApiClient.js').Capability;
@@ -375,6 +390,8 @@ export declare namespace Ablo {
375
390
  type Claim = _Streams.Claim;
376
391
  type ClaimRejection = _Streams.ClaimRejection;
377
392
  type ClaimLost = _Streams.ClaimLost;
393
+ type ClaimHeartbeat = _Streams.ClaimHeartbeat;
394
+ type ClaimHeartbeatOptions = _Streams.ClaimHeartbeatOptions;
378
395
  type Snapshot<TSchema extends _SchemaTypes.Schema = _SchemaTypes.Schema, K extends keyof TSchema['models'] = keyof TSchema['models']> = _Streams.Snapshot<TSchema, K>;
379
396
  namespace Auth {
380
397
  type Actor = _Streams.ParticipantRef;
@@ -390,6 +407,12 @@ export declare namespace Ablo {
390
407
  namespace Schema {
391
408
  type InferModel<S extends _SchemaTypes.Schema, K extends keyof S['models']> = _SchemaTypes.InferModel<S, K>;
392
409
  type InferCreate<S extends _SchemaTypes.Schema, K extends keyof S['models']> = _SchemaTypes.InferCreate<S, K>;
410
+ /**
411
+ * The reactive-row companion to {@link InferModel}: data fields + computed
412
+ * getters, no relation accessors, no model methods — the shape `useAblo`
413
+ * reads return.
414
+ */
415
+ type InferRow<S extends _SchemaTypes.Schema, K extends keyof S['models']> = _SchemaTypes.InferRow<S, K>;
393
416
  type InferModelNames<S extends _SchemaTypes.Schema> = _SchemaTypes.InferModelNames<S>;
394
417
  }
395
418
  type Conflict = _Policy.Conflict;