@abloatai/ablo 0.25.0 → 0.27.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 (425) hide show
  1. package/AGENTS.md +5 -3
  2. package/CHANGELOG.md +34 -0
  3. package/README.md +104 -88
  4. package/dist/BaseSyncedStore.d.ts +140 -266
  5. package/dist/BaseSyncedStore.js +338 -739
  6. package/dist/Database.d.ts +62 -77
  7. package/dist/Database.js +106 -127
  8. package/dist/{ObjectPool.d.ts → InstanceCache.d.ts} +10 -13
  9. package/dist/{ObjectPool.js → InstanceCache.js} +91 -83
  10. package/dist/LazyReferenceCollection.d.ts +11 -15
  11. package/dist/LazyReferenceCollection.js +16 -15
  12. package/dist/Model.d.ts +37 -52
  13. package/dist/Model.js +52 -69
  14. package/dist/ModelRegistry.d.ts +46 -25
  15. package/dist/ModelRegistry.js +32 -30
  16. package/dist/NetworkMonitor.d.ts +5 -6
  17. package/dist/NetworkMonitor.js +6 -7
  18. package/dist/SyncClient.d.ts +119 -109
  19. package/dist/SyncClient.js +303 -224
  20. package/dist/SyncEngineContext.d.ts +1 -3
  21. package/dist/SyncEngineContext.js +1 -2
  22. package/dist/adapters/alwaysOnline.d.ts +6 -8
  23. package/dist/adapters/alwaysOnline.js +6 -8
  24. package/dist/adapters/inMemoryStorage.d.ts +9 -9
  25. package/dist/adapters/inMemoryStorage.js +9 -9
  26. package/dist/agent/Agent.d.ts +39 -31
  27. package/dist/agent/Agent.js +35 -23
  28. package/dist/agent/index.d.ts +4 -4
  29. package/dist/agent/index.js +5 -5
  30. package/dist/agent/session.d.ts +47 -44
  31. package/dist/agent/session.js +37 -48
  32. package/dist/agent/types.d.ts +26 -31
  33. package/dist/agent/types.js +6 -7
  34. package/dist/ai-sdk/coordinatedTool.d.ts +108 -0
  35. package/dist/ai-sdk/{coordinated-tool.js → coordinatedTool.js} +44 -38
  36. package/dist/ai-sdk/coordinationContext.d.ts +46 -0
  37. package/dist/ai-sdk/{coordination-context.js → coordinationContext.js} +30 -31
  38. package/dist/ai-sdk/index.d.ts +25 -22
  39. package/dist/ai-sdk/index.js +25 -22
  40. package/dist/ai-sdk/wrap.d.ts +7 -8
  41. package/dist/ai-sdk/wrap.js +2 -2
  42. package/dist/auth/credentialPolicy.d.ts +74 -71
  43. package/dist/auth/credentialPolicy.js +51 -56
  44. package/dist/auth/credentialSource.d.ts +7 -18
  45. package/dist/auth/credentialSource.js +10 -18
  46. package/dist/auth/index.d.ts +59 -58
  47. package/dist/auth/index.js +34 -40
  48. package/dist/auth/schemas.d.ts +5 -4
  49. package/dist/auth/schemas.js +5 -4
  50. package/dist/batching/index.d.ts +19 -21
  51. package/dist/batching/index.js +14 -17
  52. package/dist/cli.cjs +483 -369
  53. package/dist/client/Ablo.d.ts +107 -836
  54. package/dist/client/Ablo.js +174 -833
  55. package/dist/client/ApiClient.d.ts +44 -20
  56. package/dist/client/ApiClient.js +193 -44
  57. package/dist/client/auth.d.ts +51 -60
  58. package/dist/client/auth.js +137 -110
  59. package/dist/client/claimHeartbeatLoop.d.ts +50 -0
  60. package/dist/client/claimHeartbeatLoop.js +88 -0
  61. package/dist/client/consoleLogger.d.ts +35 -0
  62. package/dist/client/consoleLogger.js +44 -0
  63. package/dist/client/createInternalComponents.d.ts +14 -17
  64. package/dist/client/createInternalComponents.js +26 -31
  65. package/dist/client/createModelProxy.d.ts +130 -120
  66. package/dist/client/createModelProxy.js +158 -124
  67. package/dist/client/credentialEndpoint.d.ts +61 -0
  68. package/dist/client/credentialEndpoint.js +86 -0
  69. package/dist/client/functionalUpdate.d.ts +29 -27
  70. package/dist/client/functionalUpdate.js +21 -21
  71. package/dist/client/hostedEndpoints.d.ts +21 -0
  72. package/dist/client/hostedEndpoints.js +21 -0
  73. package/dist/client/httpClient.d.ts +58 -54
  74. package/dist/client/httpClient.js +29 -31
  75. package/dist/client/identity.d.ts +15 -20
  76. package/dist/client/identity.js +49 -59
  77. package/dist/client/modelRegistration.d.ts +10 -0
  78. package/dist/client/modelRegistration.js +301 -0
  79. package/dist/client/options.d.ts +373 -0
  80. package/dist/client/options.js +6 -0
  81. package/dist/client/registerDataSource.d.ts +9 -9
  82. package/dist/client/registerDataSource.js +15 -16
  83. package/dist/client/resourceTypes.d.ts +333 -0
  84. package/dist/client/resourceTypes.js +7 -0
  85. package/dist/client/schemaConfig.d.ts +44 -0
  86. package/dist/client/schemaConfig.js +176 -0
  87. package/dist/client/sessionMint.d.ts +17 -13
  88. package/dist/client/sessionMint.js +26 -31
  89. package/dist/client/validateAbloOptions.d.ts +12 -14
  90. package/dist/client/validateAbloOptions.js +9 -10
  91. package/dist/client/writeOptionsSchema.d.ts +18 -16
  92. package/dist/client/writeOptionsSchema.js +23 -20
  93. package/dist/client/wsMutationExecutor.d.ts +28 -0
  94. package/dist/client/wsMutationExecutor.js +71 -0
  95. package/dist/context.d.ts +6 -4
  96. package/dist/context.js +6 -7
  97. package/dist/coordination/index.d.ts +13 -4
  98. package/dist/coordination/index.js +29 -4
  99. package/dist/coordination/schema.d.ts +176 -128
  100. package/dist/coordination/schema.js +197 -133
  101. package/dist/coordination/trace.d.ts +9 -11
  102. package/dist/coordination/trace.js +13 -15
  103. package/dist/core/DatabaseManager.d.ts +5 -8
  104. package/dist/core/DatabaseManager.js +38 -40
  105. package/dist/core/QueryProcessor.d.ts +7 -9
  106. package/dist/core/QueryProcessor.js +27 -34
  107. package/dist/core/QueryView.d.ts +17 -5
  108. package/dist/core/QueryView.js +6 -7
  109. package/dist/core/StoreManager.d.ts +14 -16
  110. package/dist/core/StoreManager.js +26 -25
  111. package/dist/core/ViewRegistry.d.ts +5 -5
  112. package/dist/core/ViewRegistry.js +4 -4
  113. package/dist/core/index.d.ts +18 -13
  114. package/dist/core/index.js +32 -26
  115. package/dist/core/openIDBWithTimeout.d.ts +38 -36
  116. package/dist/core/openIDBWithTimeout.js +57 -54
  117. package/dist/core/queryUtils.d.ts +45 -0
  118. package/dist/core/queryUtils.js +69 -0
  119. package/dist/core/storeContract.d.ts +145 -0
  120. package/dist/core/storeContract.js +12 -0
  121. package/dist/environment.d.ts +28 -0
  122. package/dist/environment.js +21 -0
  123. package/dist/errorCodes.d.ts +118 -101
  124. package/dist/errorCodes.js +277 -260
  125. package/dist/errors.d.ts +170 -165
  126. package/dist/errors.js +161 -151
  127. package/dist/index.d.ts +30 -27
  128. package/dist/index.js +90 -82
  129. package/dist/interfaces/index.d.ts +108 -133
  130. package/dist/interfaces/index.js +5 -4
  131. package/dist/keys/index.d.ts +27 -29
  132. package/dist/keys/index.js +59 -49
  133. package/dist/mutators/RecordingTransaction.d.ts +16 -16
  134. package/dist/mutators/RecordingTransaction.js +31 -37
  135. package/dist/mutators/Transaction.d.ts +18 -26
  136. package/dist/mutators/Transaction.js +14 -20
  137. package/dist/mutators/UndoManager.d.ts +122 -131
  138. package/dist/mutators/UndoManager.js +149 -155
  139. package/dist/mutators/defineMutators.d.ts +24 -37
  140. package/dist/mutators/defineMutators.js +14 -20
  141. package/dist/mutators/inverseOp.d.ts +12 -15
  142. package/dist/mutators/inverseOp.js +12 -15
  143. package/dist/mutators/mutateActions.d.ts +10 -9
  144. package/dist/mutators/mutateActions.js +1 -1
  145. package/dist/mutators/readerActions.d.ts +9 -8
  146. package/dist/mutators/readerActions.js +2 -2
  147. package/dist/mutators/undoApply.d.ts +31 -27
  148. package/dist/mutators/undoApply.js +26 -24
  149. package/dist/policy/index.d.ts +5 -3
  150. package/dist/policy/index.js +5 -3
  151. package/dist/policy/types.d.ts +105 -101
  152. package/dist/policy/types.js +67 -66
  153. package/dist/query/client.d.ts +32 -16
  154. package/dist/query/client.js +103 -72
  155. package/dist/query/types.d.ts +37 -60
  156. package/dist/query/types.js +13 -33
  157. package/dist/react/AbloProvider.d.ts +7 -11
  158. package/dist/react/AbloProvider.js +24 -17
  159. package/dist/react/context.d.ts +27 -146
  160. package/dist/react/context.js +9 -10
  161. package/dist/react/index.d.ts +41 -42
  162. package/dist/react/index.js +37 -38
  163. package/dist/react/internalContext.d.ts +17 -19
  164. package/dist/react/useAblo.d.ts +23 -22
  165. package/dist/react/useAblo.js +17 -15
  166. package/dist/react/useCurrentUserId.d.ts +8 -7
  167. package/dist/react/useCurrentUserId.js +8 -7
  168. package/dist/react/useErrorListener.d.ts +7 -7
  169. package/dist/react/useErrorListener.js +11 -12
  170. package/dist/react/useMutationFailureListener.d.ts +8 -8
  171. package/dist/react/useMutationFailureListener.js +9 -9
  172. package/dist/react/useMutators.d.ts +11 -11
  173. package/dist/react/useMutators.js +10 -4
  174. package/dist/react/useReactive.js +2 -3
  175. package/dist/react/useSyncStatus.d.ts +4 -6
  176. package/dist/react/useUndoScope.d.ts +7 -9
  177. package/dist/react/useUndoScope.js +3 -3
  178. package/dist/schema/coordination.d.ts +21 -25
  179. package/dist/schema/coordination.js +21 -25
  180. package/dist/schema/ddl.d.ts +43 -39
  181. package/dist/schema/ddl.js +75 -68
  182. package/dist/schema/ddlLock.d.ts +35 -0
  183. package/dist/schema/ddlLock.js +46 -0
  184. package/dist/schema/diff.d.ts +99 -61
  185. package/dist/schema/diff.js +43 -34
  186. package/dist/schema/field.d.ts +37 -42
  187. package/dist/schema/field.js +36 -49
  188. package/dist/schema/generate.d.ts +12 -12
  189. package/dist/schema/generate.js +12 -12
  190. package/dist/schema/index.d.ts +5 -4
  191. package/dist/schema/index.js +29 -21
  192. package/dist/schema/model.d.ts +121 -146
  193. package/dist/schema/model.js +24 -35
  194. package/dist/schema/openapi.d.ts +10 -9
  195. package/dist/schema/openapi.js +7 -1
  196. package/dist/schema/queries.d.ts +30 -32
  197. package/dist/schema/queries.js +24 -25
  198. package/dist/schema/relation.d.ts +89 -99
  199. package/dist/schema/relation.js +13 -13
  200. package/dist/schema/residency.d.ts +38 -0
  201. package/dist/schema/residency.js +30 -0
  202. package/dist/schema/roles.d.ts +45 -27
  203. package/dist/schema/roles.js +52 -21
  204. package/dist/schema/schema.d.ts +36 -45
  205. package/dist/schema/schema.js +42 -39
  206. package/dist/schema/select.d.ts +13 -13
  207. package/dist/schema/select.js +13 -13
  208. package/dist/schema/serialize.d.ts +36 -39
  209. package/dist/schema/serialize.js +27 -31
  210. package/dist/schema/sugar.d.ts +17 -32
  211. package/dist/schema/sugar.js +14 -29
  212. package/dist/schema/{sync-delta-row.d.ts → syncDeltaRow.d.ts} +27 -50
  213. package/dist/schema/syncDeltaRow.js +89 -0
  214. package/dist/schema/tenancy.d.ts +44 -46
  215. package/dist/schema/tenancy.js +46 -48
  216. package/dist/server/adapter.d.ts +58 -58
  217. package/dist/server/adapter.js +13 -14
  218. package/dist/server/commit.d.ts +60 -64
  219. package/dist/server/index.d.ts +9 -10
  220. package/dist/server/index.js +1 -1
  221. package/dist/server/readConfig.d.ts +70 -0
  222. package/dist/server/readConfig.js +8 -0
  223. package/dist/server/storageMode.d.ts +23 -0
  224. package/dist/server/storageMode.js +17 -0
  225. package/dist/source/adapter.d.ts +31 -26
  226. package/dist/source/adapter.js +10 -10
  227. package/dist/source/adapters/drizzle.d.ts +28 -23
  228. package/dist/source/adapters/drizzle.js +34 -28
  229. package/dist/source/adapters/kysely.d.ts +27 -25
  230. package/dist/source/adapters/kysely.js +28 -26
  231. package/dist/source/adapters/memory.d.ts +8 -7
  232. package/dist/source/adapters/memory.js +10 -9
  233. package/dist/source/adapters/prisma.d.ts +13 -12
  234. package/dist/source/adapters/prisma.js +27 -29
  235. package/dist/source/conformance.d.ts +18 -11
  236. package/dist/source/conformance.js +27 -19
  237. package/dist/source/connector.d.ts +31 -32
  238. package/dist/source/connector.js +30 -28
  239. package/dist/source/connectorProtocol.d.ts +160 -0
  240. package/dist/source/connectorProtocol.js +162 -0
  241. package/dist/source/contract.d.ts +26 -27
  242. package/dist/source/contract.js +28 -29
  243. package/dist/source/factory.d.ts +94 -0
  244. package/dist/source/factory.js +268 -0
  245. package/dist/source/index.d.ts +10 -462
  246. package/dist/source/index.js +17 -421
  247. package/dist/source/migrations.d.ts +9 -9
  248. package/dist/source/migrations.js +9 -9
  249. package/dist/source/next.d.ts +10 -11
  250. package/dist/source/next.js +7 -8
  251. package/dist/source/pushQueue.d.ts +70 -48
  252. package/dist/source/pushQueue.js +36 -29
  253. package/dist/source/signing.d.ts +88 -0
  254. package/dist/source/signing.js +159 -0
  255. package/dist/source/types.d.ts +351 -0
  256. package/dist/source/types.js +43 -0
  257. package/dist/stores/ObjectStore.d.ts +11 -12
  258. package/dist/stores/ObjectStore.js +34 -35
  259. package/dist/stores/ObjectStoreContract.d.ts +12 -15
  260. package/dist/stores/SyncActionStore.d.ts +8 -12
  261. package/dist/stores/SyncActionStore.js +77 -46
  262. package/dist/surface.d.ts +28 -21
  263. package/dist/surface.js +28 -20
  264. package/dist/sync/{BootstrapHelper.d.ts → BootstrapFetcher.d.ts} +37 -45
  265. package/dist/sync/{BootstrapHelper.js → BootstrapFetcher.js} +101 -80
  266. package/dist/sync/ConnectionManager.d.ts +47 -50
  267. package/dist/sync/ConnectionManager.js +74 -70
  268. package/dist/sync/NetworkProbe.d.ts +27 -31
  269. package/dist/sync/NetworkProbe.js +67 -72
  270. package/dist/sync/{HydrationCoordinator.d.ts → OnDemandLoader.d.ts} +49 -36
  271. package/dist/sync/{HydrationCoordinator.js → OnDemandLoader.js} +79 -54
  272. package/dist/sync/{AreaOfInterestManager.d.ts → SubscriptionManager.d.ts} +45 -59
  273. package/dist/sync/{AreaOfInterestManager.js → SubscriptionManager.js} +44 -52
  274. package/dist/sync/SyncWebSocket.d.ts +175 -250
  275. package/dist/sync/SyncWebSocket.js +431 -769
  276. package/dist/sync/awaitClaimGrant.d.ts +18 -18
  277. package/dist/sync/awaitClaimGrant.js +38 -30
  278. package/dist/sync/bootstrapApply.d.ts +70 -0
  279. package/dist/sync/bootstrapApply.js +73 -0
  280. package/dist/sync/commitFrames.d.ts +44 -0
  281. package/dist/sync/commitFrames.js +94 -0
  282. package/dist/sync/createClaimStream.d.ts +23 -22
  283. package/dist/sync/createClaimStream.js +108 -25
  284. package/dist/sync/createPresenceStream.d.ts +19 -18
  285. package/dist/sync/createPresenceStream.js +25 -26
  286. package/dist/sync/createSnapshot.d.ts +13 -17
  287. package/dist/sync/createSnapshot.js +20 -26
  288. package/dist/sync/credentialLifecycle.d.ts +175 -0
  289. package/dist/sync/credentialLifecycle.js +322 -0
  290. package/dist/sync/deltaPipeline.d.ts +113 -0
  291. package/dist/sync/deltaPipeline.js +261 -0
  292. package/dist/sync/groupChange.d.ts +113 -0
  293. package/dist/sync/groupChange.js +242 -0
  294. package/dist/sync/heartbeat.d.ts +63 -0
  295. package/dist/sync/heartbeat.js +91 -0
  296. package/dist/sync/participants.d.ts +27 -27
  297. package/dist/sync/schemas.d.ts +3 -2
  298. package/dist/sync/schemas.js +14 -10
  299. package/dist/sync/syncCursor.d.ts +40 -0
  300. package/dist/sync/syncCursor.js +55 -0
  301. package/dist/sync/syncPlan.d.ts +54 -0
  302. package/dist/sync/syncPlan.js +50 -0
  303. package/dist/sync/syncPosition.d.ts +54 -49
  304. package/dist/sync/syncPosition.js +57 -52
  305. package/dist/sync/wsFrameHandlers.d.ts +116 -0
  306. package/dist/sync/wsFrameHandlers.js +374 -0
  307. package/dist/testing/fixtures/bootstrap.d.ts +21 -17
  308. package/dist/testing/fixtures/bootstrap.js +12 -6
  309. package/dist/testing/fixtures/deltas.d.ts +31 -34
  310. package/dist/testing/fixtures/deltas.js +30 -33
  311. package/dist/testing/fixtures/models.d.ts +11 -10
  312. package/dist/testing/fixtures/models.js +12 -10
  313. package/dist/testing/helpers/{react-wrapper.d.ts → reactWrapper.d.ts} +13 -10
  314. package/dist/testing/helpers/{react-wrapper.js → reactWrapper.js} +15 -12
  315. package/dist/testing/helpers/{sync-engine-harness.d.ts → syncEngineHarness.d.ts} +17 -18
  316. package/dist/testing/helpers/{sync-engine-harness.js → syncEngineHarness.js} +14 -11
  317. package/dist/testing/helpers/wait.d.ts +13 -8
  318. package/dist/testing/helpers/wait.js +13 -8
  319. package/dist/testing/index.d.ts +4 -4
  320. package/dist/testing/index.js +3 -3
  321. package/dist/testing/mocks/MockMutationExecutor.d.ts +18 -17
  322. package/dist/testing/mocks/MockMutationExecutor.js +15 -14
  323. package/dist/testing/mocks/MockNetworkMonitor.d.ts +8 -8
  324. package/dist/testing/mocks/MockNetworkMonitor.js +8 -8
  325. package/dist/testing/mocks/MockSyncContext.d.ts +21 -34
  326. package/dist/testing/mocks/MockSyncContext.js +16 -45
  327. package/dist/testing/mocks/MockSyncStore.d.ts +14 -14
  328. package/dist/testing/mocks/MockSyncStore.js +11 -11
  329. package/dist/testing/mocks/MockWebSocket.d.ts +28 -24
  330. package/dist/testing/mocks/MockWebSocket.js +22 -21
  331. package/dist/transactions/TransactionQueue.d.ts +190 -221
  332. package/dist/transactions/TransactionQueue.js +424 -822
  333. package/dist/transactions/TransactionStore.d.ts +20 -0
  334. package/dist/transactions/TransactionStore.js +53 -0
  335. package/dist/transactions/UnconfirmedWrites.d.ts +82 -0
  336. package/dist/transactions/UnconfirmedWrites.js +104 -0
  337. package/dist/transactions/coalesceRules.d.ts +58 -0
  338. package/dist/transactions/coalesceRules.js +140 -0
  339. package/dist/transactions/commitPayload.d.ts +130 -0
  340. package/dist/transactions/commitPayload.js +143 -0
  341. package/dist/transactions/deltaConfirmation.d.ts +58 -0
  342. package/dist/transactions/deltaConfirmation.js +215 -0
  343. package/dist/transactions/optimisticApply.d.ts +49 -0
  344. package/dist/transactions/optimisticApply.js +65 -0
  345. package/dist/transactions/replayValidation.d.ts +99 -0
  346. package/dist/transactions/replayValidation.js +111 -0
  347. package/dist/types/global.d.ts +46 -41
  348. package/dist/types/global.js +20 -19
  349. package/dist/types/index.d.ts +74 -80
  350. package/dist/types/index.js +22 -27
  351. package/dist/types/modelData.d.ts +10 -0
  352. package/dist/types/modelData.js +9 -0
  353. package/dist/types/participant.d.ts +20 -0
  354. package/dist/types/participant.js +10 -0
  355. package/dist/types/streams.d.ts +216 -209
  356. package/dist/types/streams.js +7 -7
  357. package/dist/utils/asyncIterator.d.ts +25 -32
  358. package/dist/utils/asyncIterator.js +25 -32
  359. package/dist/utils/duration.d.ts +12 -15
  360. package/dist/utils/duration.js +12 -15
  361. package/dist/utils/mobxSetup.d.ts +53 -0
  362. package/dist/utils/{mobx-setup.js → mobxSetup.js} +44 -100
  363. package/dist/webhooks/events.d.ts +21 -16
  364. package/dist/webhooks/events.js +10 -8
  365. package/dist/webhooks/index.d.ts +5 -7
  366. package/dist/webhooks/index.js +5 -7
  367. package/dist/{schema/sync-delta-wire.d.ts → wire/delta.d.ts} +58 -41
  368. package/dist/wire/delta.js +114 -0
  369. package/dist/wire/errorEnvelope.d.ts +35 -27
  370. package/dist/wire/errorEnvelope.js +38 -32
  371. package/dist/wire/frames.d.ts +150 -67
  372. package/dist/wire/frames.js +48 -1
  373. package/dist/wire/index.d.ts +18 -13
  374. package/dist/wire/index.js +36 -13
  375. package/dist/wire/listEnvelope.d.ts +16 -23
  376. package/dist/wire/listEnvelope.js +7 -6
  377. package/dist/wire/protocol.d.ts +38 -0
  378. package/dist/wire/protocol.js +38 -0
  379. package/dist/wire/protocolVersion.d.ts +60 -0
  380. package/dist/wire/protocolVersion.js +67 -0
  381. package/docs/api-keys.md +4 -3
  382. package/docs/coordination.md +59 -0
  383. package/docs/examples/existing-python-backend.md +3 -3
  384. package/docs/identity.md +4 -4
  385. package/docs/integration-guide.md +1 -1
  386. package/docs/react.md +1 -1
  387. package/docs/sessions.md +5 -7
  388. package/package.json +24 -21
  389. package/dist/ai-sdk/coordinated-tool.d.ts +0 -101
  390. package/dist/ai-sdk/coordination-context.d.ts +0 -52
  391. package/dist/client/index.d.ts +0 -36
  392. package/dist/client/index.js +0 -33
  393. package/dist/config/index.d.ts +0 -10
  394. package/dist/config/index.js +0 -12
  395. package/dist/core/query-utils.d.ts +0 -34
  396. package/dist/core/query-utils.js +0 -59
  397. package/dist/interfaces/headless.d.ts +0 -95
  398. package/dist/interfaces/headless.js +0 -41
  399. package/dist/query/index.d.ts +0 -6
  400. package/dist/query/index.js +0 -5
  401. package/dist/realtime/index.d.ts +0 -10
  402. package/dist/realtime/index.js +0 -9
  403. package/dist/schema/plane.d.ts +0 -23
  404. package/dist/schema/plane.js +0 -19
  405. package/dist/schema/sync-delta-row.js +0 -103
  406. package/dist/schema/sync-delta-wire.js +0 -102
  407. package/dist/server/next.d.ts +0 -51
  408. package/dist/server/next.js +0 -47
  409. package/dist/server/read-config.d.ts +0 -67
  410. package/dist/server/read-config.js +0 -8
  411. package/dist/server/storage-mode.d.ts +0 -1
  412. package/dist/server/storage-mode.js +0 -18
  413. package/dist/source/connector-protocol.d.ts +0 -159
  414. package/dist/source/connector-protocol.js +0 -161
  415. package/dist/sync/OfflineFlush.d.ts +0 -9
  416. package/dist/sync/OfflineFlush.js +0 -22
  417. package/dist/sync/OfflineTransactionStore.d.ts +0 -37
  418. package/dist/sync/OfflineTransactionStore.js +0 -263
  419. package/dist/transactions/OptimisticEchoTracker.d.ts +0 -82
  420. package/dist/transactions/OptimisticEchoTracker.js +0 -104
  421. package/dist/transactions/index.d.ts +0 -16
  422. package/dist/transactions/index.js +0 -7
  423. package/dist/transactions/mutation-error-handler.d.ts +0 -5
  424. package/dist/transactions/mutation-error-handler.js +0 -39
  425. package/dist/utils/mobx-setup.d.ts +0 -42
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @abloatai/ablo — The Collaboration Layer for AI and Humans
2
+ * @abloatai/ablo — the collaboration layer for AI agents and people.
3
3
  *
4
4
  * ```ts
5
5
  * import Ablo from '@abloatai/ablo';
@@ -14,48 +14,54 @@
14
14
  * type Entry = Ablo.Peer;
15
15
  * ```
16
16
  *
17
- * `Ablo({ schema, apiKey })` gives typed model clients. `Ablo({ apiKey })`
18
- * gives the HTTP model/commit client for agents, MCP routes, and custom
19
- * runtimes.
17
+ * `Ablo({ schema, apiKey })` returns typed model clients. `Ablo({ apiKey })`
18
+ * returns the stateless HTTP model and commit client, which suits agents, MCP
19
+ * route handlers, and custom runtimes.
20
20
  *
21
- * Stripe / Anthropic / OpenAI all do this: one import, model clients
22
- * reached via dot-access on the engine, types via namespace dots.
21
+ * The whole package reaches you through one name: `Ablo` is at once a factory
22
+ * function, a type, and a namespace. You call model clients with dot access on
23
+ * the instance (`ablo.reports.retrieve(...)`) and reach every supporting type
24
+ * through the namespace (`Ablo.Peer`, `Ablo.Claim`).
23
25
  *
24
- * Public subpaths:
26
+ * Related surfaces live on their own import subpaths:
25
27
  * @abloatai/ablo/schema — defineSchema, model, z (Zod)
26
28
  * @abloatai/ablo/react — <AbloProvider>, useQuery, useMutate
27
- * @abloatai/ablo/testing — test harnesses + mocks
29
+ * @abloatai/ablo/testing — test harnesses and fixtures
28
30
  *
29
- * Reads split by where the data comes from. `ablo.<model>.retrieve({ id })` and
30
- * `.list({ where })` are the async **server** reads (pool → IDB → network via
31
- * the `HydrationCoordinator`, single-flight deduped); they're the default and
32
- * what hosted/stateless callers want, since their local graph starts empty.
33
- * `ablo.<model>.get(id)` / `.getAll(...)` / `.getCount(...)` are synchronous
34
- * **local-graph** snapshots with no network round-trip — for reactive React
35
- * selectors (`useAblo((ablo) => ablo.<model>.get(id))`) once the graph is warm.
31
+ * Reads come in two flavors, distinguished by where the data is fetched from.
32
+ * `ablo.<model>.retrieve({ id })` and `.list({ where })` are asynchronous reads
33
+ * that consult the local cache first and fall back to the network, de-duplicating
34
+ * concurrent requests for the same row. They are the default, and the right
35
+ * choice for stateless callers whose local graph starts empty.
36
+ * `ablo.<model>.get(id)`, `.getAll(...)`, and `.getCount(...)` are synchronous
37
+ * snapshots of the already-loaded local graph with no network round-trip — use
38
+ * them in reactive React selectors (`useAblo((ablo) => ablo.<model>.get(id))`)
39
+ * once the graph is warm.
36
40
  *
37
- * ── What to import (read this first) ────────────────────────────────
38
- * Default path this is all most apps and agents ever need:
39
- * `Ablo` (default export) + `AbloOptions` + the `Model*Params` bags
40
- * • the `Ablo*Error` classes, to discriminate failures in catch blocks
41
- * That's it. If you're reaching past those, you're in advanced territory.
41
+ * What to import, in short:
42
+ * `Ablo` (the default export), `AbloOptions`, and the `Model*Params` option
43
+ * bags cover what most applications and agents ever need.
44
+ * • the `Ablo*Error` classes let you discriminate failures in catch blocks.
42
45
  *
43
- * Advanced opt-in, most apps never import these (each is tagged
44
- * "Advanced —" at its export below, with the one situation it's for):
45
- * • `dataSource` / `abloSource` — only if your own DB stays canonical
46
- * • `defaultPolicy` — only to customize conflict resolution
47
- * • `defineMutators` / `createTransaction` — only for custom mutators
48
- * If you don't recognize one, you don't need it — the default path covers you.
46
+ * A handful of exports are for advanced use and are marked "Advanced" at their
47
+ * declaration below, each with the one situation it is for:
48
+ * • `dataSource` / `abloSource` — when your own database stays canonical.
49
+ * • `defaultPolicy` — when you customize conflict resolution.
50
+ * • `defineMutators` / `createTransaction` — when you write custom mutators.
51
+ * If you don't recognize one of these, you don't need it.
49
52
  */
50
53
  // ── Consumer API ──────────────────────────────────────────────────────────
51
54
  // These are the only symbols external consumers should need from this path.
52
55
  // Everything else is in a subpath.
53
- // The canonical surface `Ablo` is a function, type, and namespace under
54
- // one name. Matches `Stripe`, `OpenAI`, `Anthropic`. Default export so
55
- // `import Ablo from '@abloatai/ablo'` works; named export so
56
- // `import { Ablo }` also compiles.
56
+ // The primary surface. `Ablo` is a function, a type, and a namespace sharing
57
+ // one name. It is the default export, so `import Ablo from '@abloatai/ablo'`
58
+ // works, and a named export, so `import { Ablo }` compiles too.
57
59
  export { Ablo } from './client/Ablo.js';
58
60
  export { DEFAULT_CONTENTION_RETRIES } from './client/functionalUpdate.js';
61
+ // The stateless HTTP client is constructed through `Ablo({ transport: 'http' })`.
62
+ // There is no separate constructor to import; annotate values with the
63
+ // `AbloHttpClient` type, which is the return type of that call.
64
+ export {} from './client/httpClient.js';
59
65
  export { ABLO_DEFAULT_BASE_URL, ABLO_HOSTED_API_DOMAIN, ABLO_HOSTED_HTTP_BASE_URL, normalizeAbloHostedBaseUrl, } from './client/auth.js';
60
66
  // Participant types live under `Ablo.Participant.*` —
61
67
  // `Ablo.Participant.Joined`, `Ablo.Participant.Manager`,
@@ -63,81 +69,83 @@ export { ABLO_DEFAULT_BASE_URL, ABLO_HOSTED_API_DOMAIN, ABLO_HOSTED_HTTP_BASE_UR
63
69
  // `Ablo.Peer`, `Ablo.Claim`. No flat re-exports.
64
70
  import { Ablo } from './client/Ablo.js';
65
71
  export default Ablo;
66
- // Advanced most apps never import this. Customer-owned storage adapter
67
- // for Data Source mode: only when Ablo Cloud coordinates state while
68
- // canonical rows stay in YOUR database. The default is Ablo-managed
69
- // storage — if you haven't deliberately chosen to keep your own DB
70
- // canonical, skip this entirely. Type counterparts live under
71
- // `Ablo.Source.*` (`Ablo.Source.Operation`, `Ablo.Source.Commit.Params`).
72
+ // Advanced, and rarely imported. The storage adapter for Data Source mode,
73
+ // where Ablo coordinates state while the canonical rows stay in your own
74
+ // database. The default is Ablo-managed storage; reach for this only when you
75
+ // have deliberately chosen to keep your database canonical. The matching types
76
+ // live under `Ablo.Source.*` (`Ablo.Source.Operation`, `Ablo.Source.Commit.Params`).
72
77
  export { dataSource, abloSource, sourceEventForOperation, signAbloSourceRequest, verifyAbloSourceRequest, } from './source/index.js';
73
- // Reverse-channel connector: serve the Data Source `commit`/`load`/`list` leg
74
- // over an OUTBOUND WebSocket (localhost / locked-down VPC, no public inbound
75
- // URL). The dial-out counterpart to `createPushQueue` for the `events` leg.
78
+ // Serves the Data Source `commit`, `load`, and `list` operations over an
79
+ // outbound WebSocket, so a database with no public inbound URL (running on a
80
+ // developer's machine or inside a locked-down network) can still be reached by
81
+ // dialing out to Ablo rather than accepting an inbound connection.
76
82
  export { createSourceConnector, } from './source/connector.js';
77
83
  // Schema DSL is intentionally published from `@abloatai/ablo/schema`.
78
84
  // Keeping it out of the root import preserves one clean runtime surface:
79
85
  // `import Ablo from '@abloatai/ablo'`.
80
- // Advanced most apps never import this. Conflict policy: `defaultPolicy`
81
- // (reject-on-stale) is already applied server-side, so you only import it
82
- // to COMPOSE a custom policy. Leave it alone and stale writes are rejected
83
- // safely by default. Type counterparts live under `Ablo.Conflict.*`.
86
+ // Advanced, and rarely imported. The default conflict policy rejects writes
87
+ // premised on stale data and is already applied on the server, so import
88
+ // `defaultPolicy` only to build a custom policy on top of it. Leave it be and
89
+ // stale writes are rejected safely. The matching types live under `Ablo.Conflict.*`.
84
90
  export { defaultPolicy, capabilityPreemptPolicy, interpretConflictAxis } from './policy/index.js';
85
- // Typed error hierarchy — Stripe-style. One import gets every class
86
- // consumers need to discriminate failures (`e instanceof AbloX` or
87
- // `e.type === 'AbloX'`) plus the HTTP-response translator.
91
+ // The typed error hierarchy. One import brings in every class you need to
92
+ // tell failures apart by `e instanceof AbloX` or `e.type === 'AbloX'` — along
93
+ // with the helper that translates an HTTP response into the right class.
88
94
  export { SyncSessionError, AbloError, AbloAuthenticationError, AbloPermissionError, AbloRateLimitError, AbloIdempotencyError, AbloConnectionError, AbloValidationError, AbloNotFoundError, AbloServerError, AbloStaleContextError, AbloClaimedError, AbloContentionError, CapabilityError, translateHttpError, hasWireCode, errorFromWire, toAbloError, ERROR_CODES, ERROR_CONTRACT_VERSION, errorCodeSpec, isRetryableCode, classifyRecovery, recoveryClassSchema, RECOVERY_CLASSES, } from './errors.js';
89
- // Canonical wire-egress contract (dependency-free): the error envelope shape +
90
- // the AbloError-subclassHTTP-status table. Re-exported so server consumers
91
- // (e.g. apps/sync-server, which keeps its own self-contained copy) can assert
92
- // against the ONE source instead of silently drifting. See wire/errorEnvelope.ts.
95
+ // The wire contract for errors, with no dependencies: the JSON envelope shape
96
+ // plus the table mapping each AbloError subclass to an HTTP status. A server
97
+ // that returns Ablo errors can assert against these so its responses never
98
+ // drift from what the client expects.
93
99
  export { errorEnvelope, statusForType } from './wire/errorEnvelope.js';
94
100
  export { WS_BEARER_SUBPROTOCOL_PREFIX, WS_SYNC_SUBPROTOCOL } from './auth/credentialSource.js';
95
101
  export { ENVIRONMENTS, environmentSchema, normalizeEnvironment, environmentFromKeyPrefix, environmentToKeyPrefix, isSandboxEnvironment, } from './environment.js';
96
- // THE write-options contract the one Zod schema for the option bag every
97
- // write door accepts (`ablo.<model>.create/update/delete`, `commits.create`,
98
- // the HTTP model routes). The SDK validates against it at each boundary;
99
- // it's exported so consumers can validate/compose options ahead of a call
100
- // (e.g. an agent tool's input schema). Runtime twin of `MutationOptions`,
101
- // drift-guarded at compile time.
102
+ // The write-options contract: the single Zod schema for the option bag every
103
+ // write accepts (`ablo.<model>.create/update/delete`, `commits.create`, and the
104
+ // HTTP model routes). The SDK validates against it at each boundary, and it is
105
+ // exported so you can validate or assemble options before a call — for example,
106
+ // as the input schema of an agent tool. It is the runtime counterpart of the
107
+ // `MutationOptions` type.
102
108
  export { writeOptionsSchema, onStaleModeSchema, assertWriteOptions, } from './client/writeOptionsSchema.js';
103
- // Notify-instead-of-abort signal: the value handed back to a committer whose
104
- // write hit a stale-context conflict under `onStale: 'notify' so its
105
- // agent can self-heal rather than discard work (see coordination/schema.ts and
106
- // docs/coordination.md "Notify, do not abort").
109
+ // The value handed back to a writer whose change hit a stale-context conflict
110
+ // under `onStale: 'notify'`. Instead of throwing, the commit succeeds and
111
+ // returns this notification so the caller can reconcile against the current
112
+ // value and retry rather than discard its work.
107
113
  export { staleNotificationSchema, readDependencySchema } from './coordination/schema.js';
108
- // Claim log — collect claim events + stale-write collisions into an ordered list
109
- // you can print for eyeballing or collisions() for evals assertions. Hand
110
- // `new ClaimLog()` to `Ablo({ observability })`.
114
+ // Collects claim events and stale-write collisions into an ordered list you can
115
+ // print to inspect coordination, or read through `collisions()` to assert on in
116
+ // tests. Pass `new ClaimLog()` as `Ablo({ observability })`.
111
117
  export { ClaimLog, formatClaim, formatConflict } from './coordination/trace.js';
112
118
  // Spread this to provide a custom `observability` that overrides only the hooks
113
119
  // you care about (e.g. captureClaim) and no-ops the rest.
114
120
  export { noopObservability } from './SyncEngineContext.js';
115
- // Storage-wedge detection lets app shells render a recovery screen when the
116
- // IndexedDB backing store is stuck (see core/openIDBWithTimeout.ts).
121
+ // Detects a stuck local store: use these to recognize when the browser's
122
+ // IndexedDB backing store fails to open in time, so your app can show a
123
+ // recovery screen instead of hanging.
117
124
  export { IDBOpenTimeoutError, isStorageOpenTimeout } from './core/openIDBWithTimeout.js';
118
- // Machine-checked surface manifest the SDK's own description of its public
119
- // verb/option names, compile-time-bound to the real types (see surface.ts).
120
- // The MCP `get_api_surface` imports these so docs can't name a phantom verb.
125
+ // A machine-readable manifest of the SDK's public verb and option names, bound
126
+ // at compile time to the real types so the lists can never name a method or
127
+ // option the API doesn't have. Useful for generating documentation or tooling
128
+ // that needs to enumerate the surface.
121
129
  export { PUBLIC_MODEL_VERBS, PUBLIC_LIST_OPTION_KEYS, PUBLIC_ABLO_OPTION_KEYS, } from './surface.js';
122
- // Advanced most apps never import this. Custom (Zero-style) mutators:
123
- // `ablo.<model>.create/update/delete` already covers normal writes. Reach
124
- // for `defineMutators` only when you need a named, multi-step mutation with
125
- // custom undo. Type counterparts live under the `Ablo` namespace:
130
+ // Advanced, and rarely imported. Custom mutators. Ordinary writes go through
131
+ // `ablo.<model>.create/update/delete`; reach for `defineMutators` only when you
132
+ // need a named, multi-step mutation with its own undo behavior. The matching
133
+ // types live under the `Ablo` namespace:
126
134
  // Ablo.Mutator.Fn, Ablo.Transaction
127
135
  // Ablo.Mutator.UndoEntry, Ablo.Mutator.InverseOp
128
136
  // Ablo.Query, Ablo.QueryBatch, Ablo.QueryBatchResult
129
137
  export { defineMutators } from './mutators/defineMutators.js';
130
- // `createTransaction` is exposed so non-React callers (the sandbox AI
131
- // executor, server-side workers) can invoke `defineMutators`-style
132
- // custom mutators without going through `useMutators`. Construct a tx
133
- // against `ablo.schema` + `ablo._store` + `ablo.organizationId` and
134
- // pass it as `{ tx, args }` to the mutator function.
138
+ // `createTransaction` lets callers outside React server-side workers, agent
139
+ // runtimes run custom mutators without the `useMutators` hook. Build a
140
+ // transaction from the client's schema, store, and organization id, then pass
141
+ // it to your mutator function as `{ tx, args }`.
135
142
  export { createTransaction } from './mutators/Transaction.js';
136
143
  // Undo runtime is intentionally not part of the public root surface. App code
137
144
  // uses `useUndoScope` from `@abloatai/ablo/react`.
138
- // JSON comparison helpers. A `field.json()` value backed by a Postgres `jsonb`
139
- // column round-trips with reordered object keys (jsonb doesn't preserve key
140
- // order), so a naive `JSON.stringify(a) === JSON.stringify(b)` guard misfires
141
- // when an app reconciles an Ablo row against external editor state. Use these
142
- // (key-order-insensitive) instead. See `utils/json.ts` for the full rationale.
145
+ // JSON comparison helpers. A `field.json()` value stored in a Postgres `jsonb`
146
+ // column can come back with its object keys reordered, because jsonb does not
147
+ // preserve key order. A naive `JSON.stringify(a) === JSON.stringify(b)` check
148
+ // then reports a difference that isn't real a common trap when reconciling an
149
+ // Ablo row against external editor state. These compare independent of key
150
+ // order, so use them instead.
143
151
  export { deepEqual, stableStringify } from './utils/json.js';