@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,16 +1,37 @@
1
1
  import { z } from 'zod';
2
+ /**
3
+ * The two environments an Ablo project runs in: `production` for live data and
4
+ * `sandbox` for isolated test data. Every credential and every stored row
5
+ * belongs to exactly one of them.
6
+ */
2
7
  export const ENVIRONMENTS = ['production', 'sandbox'];
8
+ /** A Zod schema that validates a value as one of the {@link ENVIRONMENTS}. */
3
9
  export const environmentSchema = z.enum(ENVIRONMENTS);
10
+ /**
11
+ * Coerces an untrusted value into a valid {@link Environment}, returning
12
+ * `fallback` (which defaults to `'production'`) when the value is not a
13
+ * recognized environment. Use it when reading an environment from configuration
14
+ * or off the wire.
15
+ */
4
16
  export function normalizeEnvironment(value, fallback = 'production') {
5
17
  const parsed = environmentSchema.safeParse(value);
6
18
  return parsed.success ? parsed.data : fallback;
7
19
  }
20
+ /**
21
+ * Maps an API-key prefix spelling to its {@link Environment}: a `'test'` key
22
+ * operates on the sandbox, and anything else on production.
23
+ */
8
24
  export function environmentFromKeyPrefix(value) {
9
25
  return value === 'test' ? 'sandbox' : 'production';
10
26
  }
27
+ /**
28
+ * Maps an {@link Environment} to the spelling used in an API-key prefix: the
29
+ * sandbox is `'test'` and production is `'live'`.
30
+ */
11
31
  export function environmentToKeyPrefix(value) {
12
32
  return value === 'sandbox' ? 'test' : 'live';
13
33
  }
34
+ /** Returns true when the given environment is the sandbox. */
14
35
  export function isSandboxEnvironment(value) {
15
36
  return value === 'sandbox';
16
37
  }
@@ -1,74 +1,76 @@
1
1
  /**
2
- * The canonical Ablo error-code registry the **`code` tier** of the
3
- * Stripe-style two-tier error model.
2
+ * The registry of every stable error code Ablo can produce. Error handling has
3
+ * two levels, and this file defines the finer one.
4
4
  *
5
- * ### The two tiers (mirrors Stripe)
5
+ * - The `type` is the coarse category, and each one corresponds to an
6
+ * {@link AbloError} subclass such as `AbloPermissionError` or
7
+ * `AbloValidationError`. Catching by `instanceof` is equivalent to switching
8
+ * on `error.type`.
9
+ * - The `code` is the fine-grained, machine-readable identifier defined here,
10
+ * written in `snake_case` (for example `entity_claimed` or `queue_too_deep`).
11
+ * This is what you switch on to handle a specific situation, and what the
12
+ * documentation link for an error is built from.
6
13
  *
7
- * - **`type`** coarse category, 1:1 with an {@link AbloError} subclass
8
- * (`AbloPermissionError`, `AbloValidationError`, …). "Catch by
9
- * `instanceof`" "switch on `e.type`". This tier lives in `errors.ts`.
10
- * - **`code`** — the fine-grained, machine-readable identifier in this
11
- * file. `snake_case`, ordered noun→state (`entity_claimed`) or
12
- * condition→constraint (`queue_too_deep`). This is what callers
13
- * `switch` on for specific handling, and what `doc_url` is derived from.
14
+ * The client, the server, and the tool-calling boundary all speak this same
15
+ * vocabulary, which makes the registry part of the API contract. Two things
16
+ * follow from that:
14
17
  *
15
- * Because sync-engine sync-server MCP all speak this code vocabulary,
16
- * the registry **is** the wire contract. Two consequences:
17
- *
18
- * 1. `ErrorCode` is a *closed* union (plus the `policy:${string}`
19
- * dynamic family). Producing an unregistered code is a compile error
20
- * that's the whole point. {@link AbloError}'s constructor param is
21
- * narrowed to `ErrorCode`; only the wire-parse boundary
22
- * (`translateHttpError`, frame deserialization) casts an incoming
23
- * string to `ErrorCode`, so an *older* SDK still tolerates a *newer*
24
- * server's code (forward compat) while internal producers stay checked.
25
- * 2. The `surface: 'wire'` subset is what an HTTP/MCP boundary maps from
26
- * and what the public error docs are generated from. `surface:
27
- * 'client'` codes are local SDK invariants (you forgot to open the DB,
28
- * a model isn't registered) — never sent over the network, so they
29
- * carry no `httpStatus`, exactly as Stripe omits client-side
30
- * programmer errors from its published code list.
18
+ * 1. {@link ErrorCode} is a closed set plus the dynamic `policy:${string}`
19
+ * family so producing a code that is not registered here is a
20
+ * compile-time error. The {@link AbloError} constructor accepts only a
21
+ * registered code. The one place an arbitrary string is accepted as a code
22
+ * is where an incoming response is parsed, which lets an older client
23
+ * tolerate a code from a newer server it does not yet recognize.
24
+ * 2. The codes marked `surface: 'wire'` are the ones that cross the network
25
+ * and are mapped at the HTTP and tool-calling boundaries; the public error
26
+ * documentation is generated from them. Codes marked `surface: 'client'`
27
+ * describe local mistakes accessing the database before opening it, or
28
+ * writing to a model that was never registered and are never sent over
29
+ * the network, so they carry no HTTP status.
31
30
  */
32
31
  import { z } from 'zod';
33
32
  /**
34
- * Version of the error contract the envelope shape + the set of codes and
35
- * their semantics. Date-based, like Stripe's API versions. Bump it (and only
36
- * it) when the contract changes in a way consumers can observe: a new/removed
37
- * code, a changed HTTP status, an envelope field. Emitted in `errors.json`
38
- * and on the `Ablo-Version` response header so a consumer can detect drift.
33
+ * The version of the error contract: the envelope shape together with the set of
34
+ * codes and their meanings. It is date-based, and changes only when the contract
35
+ * changes in a way a consumer can observe a code added or removed, an HTTP
36
+ * status changed, or an envelope field changed. It is emitted in the generated
37
+ * error documentation and returned on the `Ablo-Version` response header, so a
38
+ * consumer can detect when its expected contract has drifted from the server's.
39
39
  */
40
40
  export declare const ERROR_CONTRACT_VERSION = "2026-07-03";
41
- /** Coarse grouping for metrics dashboards and docs sectioning. */
41
+ /** A coarse grouping of error codes, used to organize metrics and documentation. */
42
42
  export type ErrorCategory = 'auth' | 'permission' | 'capability' | 'claim' | 'conflict' | 'validation' | 'not_found' | 'tenant' | 'schema' | 'bootstrap' | 'transport' | 'rate_limit' | 'server' | 'client';
43
43
  /**
44
- * The closed taxonomy of *how a failure recovers*one rung above the raw
45
- * `code`. Where `code` says **what** went wrong, `RecoveryClass` says **what
46
- * the client should do about it**, which is exactly the discriminant the sync
47
- * FSM and the network probe need. It collapses what used to be three scattered
48
- * booleans (`retryable`, `authBlocked`, `sessionValid`) into one exhaustive,
49
- * Zod-validated enum so the connection layer branches on a single value with
50
- * compile-time completeness instead of ad-hoc `if (!isRetryableCode(...))`
51
- * chains.
44
+ * A closed classification of how a failure can be recovered from a level above
45
+ * the raw {@link ErrorCode}. Where a code says what went wrong, a recovery class
46
+ * says what a client should do about it, which is exactly the distinction the
47
+ * connection layer needs to decide between retrying, re-minting a credential, and
48
+ * signing the user out. Every code maps to one of these, and the set is
49
+ * validated at runtime.
52
50
  *
53
- * - `access_credential_expiry` — the Stripe-style ephemeral key (`ek_`/`rk_`)
54
- * the sync-engine presents as its Bearer has expired. The long-lived login
55
- * is fine; the remedy is to silently RE-MINT a fresh key from the session
56
- * and retry the same request. This MUST NOT sign the user out (the whole
57
- * point of the wake-from-sleep fix: a 15-min `ek_` dying after a laptop nap
58
- * is routine, not a logout).
59
- * - `session_expiry` — the LONG-LIVED login itself is gone. Terminal:
51
+ * - `access_credential_expiry` — the short-lived access credential the client
52
+ * presents (its ephemeral `ek_` or `rk_` key) has expired, while the
53
+ * underlying login is still valid. The remedy is to mint a fresh key from the
54
+ * session and retry the same request. This does not sign the user out; a
55
+ * short-lived key expiring for example after a laptop resumes from sleep —
56
+ * is routine.
57
+ * - `session_expiry` — the long-lived login itself is gone. This is terminal:
60
58
  * sign out and route to re-authentication.
61
- * - `auth_blocked` — reachable, but the credential TYPE/config was rejected
62
- * (wrong key kind, untrusted issuer, no org). Re-auth re-mints the same
63
- * rejected credential and loops, so STOP don't reconnect, don't sign out.
64
- * - `permission` a 403 authorization denial (scope/role/membership).
65
- * - `transient` — retry the same request unchanged (5xx, lease contention…).
66
- * - `none` — not a recoverable-auth condition (validation, not-found, local
67
- * invariants, and any forward-compat code an older SDK doesn't know).
59
+ * - `auth_blocked` — the server was reachable but rejected the kind or
60
+ * configuration of the credential (wrong key type, untrusted issuer, no
61
+ * organization). Re-authenticating would present the same rejected credential
62
+ * and loop, so the client should stop rather than reconnect or sign out.
63
+ * - `permission` — an authorization denial (403) based on scope, role, or
64
+ * membership.
65
+ * - `transient` a temporary failure, such as a server error or lease
66
+ * contention, that may succeed if the same request is retried unchanged.
67
+ * - `none` — not a recoverable authentication condition: validation errors,
68
+ * not-found, local invariants, and any code an older client does not
69
+ * recognize.
68
70
  */
69
71
  export declare const RECOVERY_CLASSES: readonly ["access_credential_expiry", "session_expiry", "auth_blocked", "permission", "transient", "none"];
70
- /** Zod enum derived from {@link RECOVERY_CLASSES} the runtime-validatable
71
- * form of the recovery taxonomy. */
72
+ /** A Zod enum over {@link RECOVERY_CLASSES}, for validating a recovery class at
73
+ * runtime. */
72
74
  export declare const recoveryClassSchema: z.ZodEnum<{
73
75
  permission: "permission";
74
76
  access_credential_expiry: "access_credential_expiry";
@@ -77,36 +79,40 @@ export declare const recoveryClassSchema: z.ZodEnum<{
77
79
  transient: "transient";
78
80
  none: "none";
79
81
  }>;
80
- /** How a failure recovers. See {@link RECOVERY_CLASSES}. */
82
+ /** The recovery classification of a failure. See {@link RECOVERY_CLASSES}. */
81
83
  export type RecoveryClass = z.infer<typeof recoveryClassSchema>;
82
- /** One registry entry. `httpStatus` is present only for `surface: 'wire'`
83
- * codes status is a property of the wire boundary, never of a
84
- * purely-local client invariant. */
84
+ /** One entry in the registry: everything known about a single error code.
85
+ * `httpStatus` is present only for codes that cross the network, since an HTTP
86
+ * status is a property of the wire boundary rather than of a purely local
87
+ * error. */
85
88
  export interface ErrorCodeSpec {
86
89
  readonly category: ErrorCategory;
87
- /** `'wire'` = crosses the network and is part of the API/MCP contract;
88
- * `'client'` = local SDK invariant, never serialized. */
90
+ /** `'wire'` for a code that crosses the network and is part of the API
91
+ * contract; `'client'` for a local error that is never serialized. */
89
92
  readonly surface: 'wire' | 'client';
90
93
  /** Canonical HTTP status for the wire boundary. Omitted for client codes. */
91
94
  readonly httpStatus?: number;
92
- /** Whether the same request can succeed on a later retry without the
93
- * caller changing anything. `false` for permission / validation /
94
- * not-found; `true` for transient transport / lease contention. */
95
+ /** Whether the same request can succeed on a later retry without the caller
96
+ * changing anything. `false` for permission, validation, and not-found;
97
+ * `true` for transient transport failures and lease contention. */
95
98
  readonly retryable: boolean;
96
- /** One-line human description the source text for the `doc_url` page. */
99
+ /** A one-line, human-readable description of the error also the source text
100
+ * for its documentation page. */
97
101
  readonly message: string;
98
102
  /**
99
- * Explicit recovery class. Set ONLY where it diverges from what `category` /
100
- * `httpStatus` / `retryable` already imply — i.e. the handful of auth codes
101
- * whose remedy (`session_expiry` vs `access_credential_expiry`) the bare
102
- * status can't distinguish. Everything else is derived by
103
- * {@link classifyRecovery}, so adding a normal code needs no `recovery`.
103
+ * An explicit {@link RecoveryClass}, set only where it differs from what the
104
+ * category, HTTP status, and `retryable` flag already imply — mainly the few
105
+ * authentication codes whose remedy the status alone cannot reveal, such as
106
+ * telling a session expiry apart from an access-credential expiry. For every
107
+ * other code the recovery class is derived by {@link classifyRecovery}, so
108
+ * this field can be left unset.
104
109
  */
105
110
  readonly recovery?: RecoveryClass;
106
111
  }
107
112
  /**
108
- * The closed set of stable error codes. Add a code here BEFORE throwing it
109
- * the narrowed {@link AbloError} constructor param enforces this.
113
+ * The complete set of stable error codes, keyed by code. A code must be added
114
+ * here before it can be thrown, since the {@link AbloError} constructor accepts
115
+ * only codes from this set.
110
116
  */
111
117
  export declare const ERROR_CODES: {
112
118
  readonly apikey_invalid: ErrorCodeSpec;
@@ -317,6 +323,7 @@ export declare const ERROR_CODES: {
317
323
  readonly protocol_version_unsupported: ErrorCodeSpec;
318
324
  readonly database_unreachable: ErrorCodeSpec;
319
325
  readonly database_not_replication_ready: ErrorCodeSpec;
326
+ readonly replication_publication_drift: ErrorCodeSpec;
320
327
  readonly query_unknown_relation: ErrorCodeSpec;
321
328
  readonly query_relation_target_unknown: ErrorCodeSpec;
322
329
  readonly query_invalid_identifier: ErrorCodeSpec;
@@ -349,41 +356,42 @@ export declare const ERROR_CODES: {
349
356
  readonly incompatible_change: ErrorCodeSpec;
350
357
  };
351
358
  /**
352
- * The closed set of registered codes, plus the `policy:${reason}` dynamic
353
- * family (conflict-policy rejections name their reason inline, the same way
354
- * Stripe carries a `decline_code` sub-detail). The constructor of
355
- * {@link AbloError} narrows its `code` option to this type, so a typo or an
356
- * unregistered code is a compile error. The wire-parse boundary casts
357
- * incoming strings to this type to preserve forward compatibility.
359
+ * The type of a valid error code: any key registered in {@link ERROR_CODES},
360
+ * plus the dynamic `policy:${reason}` family, where a conflict-policy rejection
361
+ * names its reason inline. The {@link AbloError} constructor accepts only this
362
+ * type, so a typo or an unregistered code is a compile-time error. Only the
363
+ * boundary that parses an incoming response casts an arbitrary string to this
364
+ * type, which preserves forward compatibility with a newer server.
358
365
  */
359
366
  export type ErrorCode = keyof typeof ERROR_CODES | `policy:${string}`;
360
- /** The subset of codes that cross the network — the actual API/MCP wire
361
- * contract. HTTP/MCP boundaries map from this set; docs are generated
362
- * from it. */
367
+ /** The subset of {@link ErrorCode} values that cross the network — the codes
368
+ * that make up the API contract, from which the HTTP and tool-calling
369
+ * boundaries map and the public documentation is generated. */
363
370
  export type WireErrorCode = {
364
371
  [K in keyof typeof ERROR_CODES]: (typeof ERROR_CODES)[K]['surface'] extends 'wire' ? K : never;
365
372
  }[keyof typeof ERROR_CODES];
366
- /** Look up an error code's spec. Returns `undefined` for the dynamic
367
- * `policy:*` family and for any forward-compat code an older SDK doesn't
368
- * yet know. */
373
+ /** Looks up the {@link ErrorCodeSpec} for a code. Returns `undefined` for the
374
+ * dynamic `policy:*` family and for any newer code this client does not yet
375
+ * recognize. */
369
376
  export declare function errorCodeSpec(code: string): ErrorCodeSpec | undefined;
370
- /** Whether a code's spec marks it retryable. Unknown / dynamic codes
371
- * default to non-retryable (safe default don't auto-retry the unknown). */
377
+ /** Reports whether a code is marked retryable. Unknown and dynamic codes
378
+ * default to non-retryable, so an unrecognized failure is never retried
379
+ * automatically. */
372
380
  export declare function isRetryableCode(code: string): boolean;
373
381
  /**
374
- * Classify a `code` into its {@link RecoveryClass} — the single discriminant
375
- * the connection FSM and the network probe branch on.
382
+ * Classifies a code into its {@link RecoveryClass} — the single value the
383
+ * connection layer and the network probe branch on to decide how to recover.
376
384
  *
377
- * The registry stays the source of truth: an explicit `spec.recovery` wins
378
- * (set only on the few auth codes whose remedy the status can't reveal), and
379
- * everything else is DERIVED from the spec so the registry stays terse:
380
- * - retryable → `transient`
381
- * - 403 → `permission`
382
- * - residual `auth`-category → `auth_blocked` (the 401 credential-type codes)
383
- * - otherwise / unknown → `none`
385
+ * The registry is the source of truth. An explicit `recovery` on the code's spec
386
+ * wins; it is set only on the few authentication codes whose remedy the HTTP
387
+ * status cannot reveal. Every other code is derived from its spec:
388
+ * - retryable → `transient`
389
+ * - HTTP 403 → `permission`
390
+ * - remaining `auth` category → `auth_blocked` (the credential-type 401s)
391
+ * - anything else, or unknown → `none`
384
392
  *
385
- * Unknown / dynamic `policy:*` / forward-compat codes (`spec === undefined`)
386
- * default to `none`, mirroring {@link isRetryableCode}'s safe default — never
387
- * silently treat an unrecognised code as a credential expiry or a logout.
393
+ * An unknown code, a dynamic `policy:*` code, or a code this client predates
394
+ * (no spec) defaults to `none`, the same safe default as {@link isRetryableCode}:
395
+ * an unrecognized code is never treated as a credential expiry or a sign-out.
388
396
  */
389
397
  export declare function classifyRecovery(code: string): RecoveryClass;