@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
@@ -0,0 +1,187 @@
1
+ /**
2
+ * The transport-independent v2 commit contract.
3
+ *
4
+ * A commit is a caller's atomic write intent. It contains ordered operations,
5
+ * a stable idempotency key, and explicit write preconditions. HTTP and
6
+ * WebSocket transports wrap these schemas; they do not redefine their data.
7
+ * Every public data type in this module is inferred from the Zod schema that
8
+ * validates it at a trust boundary.
9
+ */
10
+ import { z } from 'zod';
11
+ import { ERROR_CODES } from '../errorCodes.js';
12
+ /** Current version of the transport-independent commit contract. */
13
+ export const COMMIT_CONTRACT_VERSION = 2;
14
+ // ── Opaque identifiers ───────────────────────────────────────────────────
15
+ /** Stable identity of one logical commit. Reused unchanged for every retry. */
16
+ export const idempotencyKeySchema = z.string().min(1).max(255).brand();
17
+ /** Server-issued identity of a durable commit execution. */
18
+ export const commitIdSchema = z.uuid().brand();
19
+ /** Stable identity of one operation within a commit. */
20
+ export const operationIdSchema = z.string().min(1).max(255).brand();
21
+ /** Identity of a pessimistic claim whose generation fences a write. */
22
+ export const claimIdSchema = z.string().min(1).max(255).brand();
23
+ /**
24
+ * Internal committed-log offset. Decimal strings preserve PostgreSQL BIGINT
25
+ * precision across JavaScript and JSON boundaries.
26
+ */
27
+ export const syncOffsetSchema = z
28
+ .string()
29
+ .regex(/^(0|[1-9]\d*)$/, 'Expected a non-negative decimal sync offset')
30
+ .brand();
31
+ /** Opaque resumable cursor returned to clients; consumers must not inspect it. */
32
+ export const syncCursorSchema = z.string().min(1).max(4096).brand();
33
+ // ── JSON values ──────────────────────────────────────────────────────────
34
+ /** JSON-safe value accepted by a persisted or fingerprinted commit payload. */
35
+ export const jsonValueSchema = z.json();
36
+ /** JSON object accepted for entity values, patches, and structured details. */
37
+ export const jsonObjectSchema = z.record(z.string(), jsonValueSchema);
38
+ const nonEmptyJsonObjectSchema = jsonObjectSchema.refine((value) => Object.keys(value).length > 0, 'Expected at least one changed field');
39
+ // ── Intent ───────────────────────────────────────────────────────────────
40
+ /** Model and row addressed by an operation. */
41
+ export const entityRefSchema = z.strictObject({
42
+ model: z.string().min(1).max(255),
43
+ id: z.string().min(1).max(1024),
44
+ });
45
+ const fieldPathSchema = z.string().min(1).max(1024);
46
+ /**
47
+ * A condition that must still hold when an operation is applied. Preconditions
48
+ * are data rather than option flags so they are included in the request
49
+ * fingerprint and can be reported precisely when a commit conflicts.
50
+ */
51
+ export const writePreconditionSchema = z.discriminatedUnion('type', [
52
+ z.strictObject({
53
+ type: z.literal('unchanged_since'),
54
+ cursor: syncOffsetSchema,
55
+ fields: z.array(fieldPathSchema).min(1).max(256).optional(),
56
+ }),
57
+ z.strictObject({
58
+ type: z.literal('version_matches'),
59
+ version: z.number().int().nonnegative(),
60
+ }),
61
+ z.strictObject({
62
+ type: z.literal('claim_fence'),
63
+ claimId: claimIdSchema,
64
+ generation: z.number().int().positive(),
65
+ }),
66
+ ]);
67
+ const operationBaseShape = {
68
+ operationId: operationIdSchema,
69
+ target: entityRefSchema,
70
+ preconditions: z.array(writePreconditionSchema).max(16).default([]),
71
+ };
72
+ /**
73
+ * One ordered entity change within a commit. The discriminant makes illegal
74
+ * combinations unrepresentable: only create carries `value`, only patch
75
+ * carries `changes`, and destructive actions carry neither.
76
+ */
77
+ export const commitOperationSchema = z.discriminatedUnion('type', [
78
+ z.strictObject({
79
+ ...operationBaseShape,
80
+ type: z.literal('create'),
81
+ value: jsonObjectSchema,
82
+ }),
83
+ z.strictObject({
84
+ ...operationBaseShape,
85
+ type: z.literal('patch'),
86
+ changes: nonEmptyJsonObjectSchema,
87
+ }),
88
+ z.strictObject({
89
+ ...operationBaseShape,
90
+ type: z.literal('delete'),
91
+ }),
92
+ z.strictObject({
93
+ ...operationBaseShape,
94
+ type: z.literal('archive'),
95
+ }),
96
+ z.strictObject({
97
+ ...operationBaseShape,
98
+ type: z.literal('unarchive'),
99
+ }),
100
+ ]);
101
+ /** Semantic lineage included in the durable intent and its fingerprint. */
102
+ export const commitMetadataSchema = z.strictObject({
103
+ label: z.string().min(1).max(255).optional(),
104
+ causedByTaskId: z.string().min(1).max(255).optional(),
105
+ });
106
+ const commitIntentShape = {
107
+ schemaVersion: z.literal(COMMIT_CONTRACT_VERSION),
108
+ operations: z.array(commitOperationSchema).min(1).max(500),
109
+ metadata: commitMetadataSchema.optional(),
110
+ };
111
+ /** The portion of a request that is fingerprinted, preserving operation order. */
112
+ export const commitIntentSchema = z.strictObject(commitIntentShape);
113
+ /** A caller's stable idempotency identity plus the intent it identifies. */
114
+ export const commitRequestSchema = z.strictObject({
115
+ ...commitIntentShape,
116
+ idempotencyKey: idempotencyKeySchema,
117
+ });
118
+ /** Returns the exact semantic value that an idempotency fingerprint covers. */
119
+ export function commitIntentOf(request) {
120
+ const { idempotencyKey, ...intent } = request;
121
+ void idempotencyKey;
122
+ return intent;
123
+ }
124
+ // ── Result ───────────────────────────────────────────────────────────────
125
+ const registeredWireErrorCodes = Object.entries(ERROR_CODES)
126
+ .filter(([, spec]) => spec.surface === 'wire')
127
+ .map(([code]) => code);
128
+ const policyErrorCodeSchema = z.custom((value) => typeof value === 'string' && /^policy:.+$/.test(value), 'Expected a registered error code or policy:<reason>');
129
+ /** Machine-readable failure code carried by a rejected v2 commit. */
130
+ export const commitErrorCodeSchema = z.union([
131
+ z.enum(registeredWireErrorCodes),
132
+ policyErrorCodeSchema,
133
+ ]);
134
+ /** Structured capability a rejected commit would require on retry. */
135
+ export const requiredCapabilitySchema = z.strictObject({
136
+ scope: z.string().min(1),
137
+ constraints: z.record(z.string(), z.union([z.string(), z.array(z.string())])).optional(),
138
+ issuer: z.string().min(1).optional(),
139
+ ttlSeconds: z.number().int().positive().optional(),
140
+ nonce: z.string().min(1).optional(),
141
+ });
142
+ /** Structured terminal error for a commit that did not apply. */
143
+ export const commitErrorSchema = z.strictObject({
144
+ code: commitErrorCodeSchema,
145
+ message: z.string().min(1),
146
+ field: fieldPathSchema.optional(),
147
+ requiredCapability: requiredCapabilitySchema.optional(),
148
+ details: jsonObjectSchema.optional(),
149
+ });
150
+ /** One failed precondition and the smallest current state needed to reconcile. */
151
+ export const commitConflictSchema = z.strictObject({
152
+ operationId: operationIdSchema,
153
+ target: entityRefSchema,
154
+ fields: z.array(fieldPathSchema).max(256),
155
+ currentValues: jsonObjectSchema,
156
+ observedAt: syncOffsetSchema,
157
+ });
158
+ const commitReceiptBaseShape = {
159
+ object: z.literal('commit_receipt'),
160
+ schemaVersion: z.literal(COMMIT_CONTRACT_VERSION),
161
+ idempotencyKey: idempotencyKeySchema,
162
+ commitId: commitIdSchema,
163
+ };
164
+ /**
165
+ * Terminal result of a commit execution. Expected outcomes are a discriminated
166
+ * union, so committed, conflicted, and rejected results cannot expose fields
167
+ * belonging to another state.
168
+ */
169
+ export const commitReceiptSchema = z.discriminatedUnion('status', [
170
+ z.strictObject({
171
+ ...commitReceiptBaseShape,
172
+ status: z.literal('committed'),
173
+ syncCursor: syncCursorSchema,
174
+ operationCount: z.number().int().min(1).max(500),
175
+ }),
176
+ z.strictObject({
177
+ ...commitReceiptBaseShape,
178
+ status: z.literal('conflicted'),
179
+ syncCursor: syncCursorSchema,
180
+ conflicts: z.array(commitConflictSchema).min(1).max(500),
181
+ }),
182
+ z.strictObject({
183
+ ...commitReceiptBaseShape,
184
+ status: z.literal('rejected'),
185
+ error: commitErrorSchema,
186
+ }),
187
+ ]);
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Stable commit-contract entry point. Import from `@abloatai/ablo/commit`
3
+ * when validating, persisting, or fingerprinting v2 commit data.
4
+ */
5
+ export { COMMIT_CONTRACT_VERSION, idempotencyKeySchema, commitIdSchema, operationIdSchema, claimIdSchema, syncOffsetSchema, syncCursorSchema, jsonValueSchema, jsonObjectSchema, entityRefSchema, writePreconditionSchema, commitOperationSchema, commitMetadataSchema, commitIntentSchema, commitRequestSchema, commitIntentOf, commitErrorCodeSchema, requiredCapabilitySchema, commitErrorSchema, commitConflictSchema, commitReceiptSchema, } from './contract.js';
6
+ export type { IdempotencyKey, CommitId, OperationId, ClaimId, SyncOffset, SyncCursor, JsonValue, JsonObject, EntityRef, WritePrecondition, CommitOperationInput, CommitOperation, CommitMetadata, CommitIntentInput, CommitIntent, CommitRequestInput, CommitRequest, CommitErrorCode, RequiredCapability, CommitError, CommitConflict, CommitReceiptInput, CommitReceipt, CommittedCommitReceipt, ConflictedCommitReceipt, RejectedCommitReceipt, } from './contract.js';
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Stable commit-contract entry point. Import from `@abloatai/ablo/commit`
3
+ * when validating, persisting, or fingerprinting v2 commit data.
4
+ */
5
+ export { COMMIT_CONTRACT_VERSION, idempotencyKeySchema, commitIdSchema, operationIdSchema, claimIdSchema, syncOffsetSchema, syncCursorSchema, jsonValueSchema, jsonObjectSchema, entityRefSchema, writePreconditionSchema, commitOperationSchema, commitMetadataSchema, commitIntentSchema, commitRequestSchema, commitIntentOf, commitErrorCodeSchema, requiredCapabilitySchema, commitErrorSchema, commitConflictSchema, commitReceiptSchema, } from './contract.js';
package/dist/context.d.ts CHANGED
@@ -1,9 +1,11 @@
1
1
  /**
2
- * Module-level context accessor
2
+ * Module-level accessor for the sync engine's shared context.
3
3
  *
4
- * Set once during SDK initialization via `initSyncEngine(context)`.
5
- * All internal SDK files access dependencies through `getContext()`.
6
- * This avoids threading context through every constructor.
4
+ * The context is set once, during initialization, by {@link initSyncEngine}.
5
+ * Code throughout the package reaches its shared dependencies logger,
6
+ * observability, online-status detector, configuration, and the mutation
7
+ * executor — through {@link getContext} instead of receiving them through every
8
+ * constructor.
7
9
  */
8
10
  import type { SyncEngineContext } from './SyncEngineContext.js';
9
11
  /**
package/dist/context.js CHANGED
@@ -1,9 +1,11 @@
1
1
  /**
2
- * Module-level context accessor
2
+ * Module-level accessor for the sync engine's shared context.
3
3
  *
4
- * Set once during SDK initialization via `initSyncEngine(context)`.
5
- * All internal SDK files access dependencies through `getContext()`.
6
- * This avoids threading context through every constructor.
4
+ * The context is set once, during initialization, by {@link initSyncEngine}.
5
+ * Code throughout the package reaches its shared dependencies logger,
6
+ * observability, online-status detector, configuration, and the mutation
7
+ * executor — through {@link getContext} instead of receiving them through every
8
+ * constructor.
7
9
  */
8
10
  import { noopLogger, noopObservability, browserOnlineStatus, defaultSessionErrorDetector, emptyConfig, } from './SyncEngineContext.js';
9
11
  let _context = null;
@@ -1,13 +1,15 @@
1
1
  /**
2
- * `@abloatai/ablo/coordination` the canonical wire schema for the three
3
- * coordination layers (presence, pessimistic claims, optimistic stale-context).
4
- * See `./schema.ts` for the model and the per-layer schemas.
2
+ * The `@abloatai/ablo/coordination` entry point. It re-exports the wire
3
+ * schemas and inferred types for the three coordination layers: presence (who
4
+ * is currently active), claims (taking exclusive hold of a target before
5
+ * writing it), and stale-context guards (rejecting a write that was based on an
6
+ * out-of-date read). The definitions themselves live in the sibling schema
7
+ * module.
5
8
  *
6
- * Explicit named list (not `export *`): every addition to schema.ts must be a
7
- * deliberate export decision here, so new symbols don't silently become public
8
- * API of the published package.
9
+ * Exports are listed by name rather than re-exported wholesale, so every symbol
10
+ * that becomes part of this package's public API is a deliberate choice.
9
11
  */
10
- export { targetRangeSchema, participantKindSchema, wireParticipantKindSchema, participantKindFromWire, descriptionFromMeta, targetRefSchema, onStaleModeSchema, writeGuardSchema, staleNotificationSchema, readDependencySchema, claimStatusSchema, wireClaimSummarySchema, claimErrorSchema, wireClaimSchema, claimRejectionSchema, modelTargetSchema, modelClaimSchema, claimBeginPayloadSchema, claimAbandonPayloadSchema, claimReorderPayloadSchema, updateSubscriptionPayloadSchema, subscriptionAckPayloadSchema, commitOperationTypeSchema, commitOperationSchema, presenceKindSchema, presenceActivitySchema, presenceUpdateFrameSchema, } from './schema.js';
12
+ export { targetRangeSchema, participantKindSchema, wireParticipantKindSchema, participantKindFromWire, descriptionFromMeta, targetRefSchema, onStaleModeSchema, writeGuardSchema, staleNotificationSchema, readDependencySchema, claimStatusSchema, wireClaimSummarySchema, claimErrorSchema, wireClaimSchema, claimRejectionSchema, modelTargetSchema, modelClaimSchema, claimBeginPayloadSchema, claimAbandonPayloadSchema, claimReorderPayloadSchema, claimHeartbeatPayloadSchema, claimHeartbeatAckPayloadSchema, claimHeartbeatBatchPayloadSchema, claimHeartbeatBatchAckPayloadSchema, updateSubscriptionPayloadSchema, subscriptionAckPayloadSchema, commitOperationTypeSchema, commitOperationSchema, presenceKindSchema, presenceActivitySchema, presenceUpdateFrameSchema, } from './schema.js';
11
13
  export { defaultPolicy, capabilityPreemptPolicy, interpretConflictAxis } from '../policy/types.js';
12
14
  export type { Conflict, ConflictAxis, ConflictDecision, ConflictKind, ConflictOperation, ConflictPolicy, StaleContextConflict, ClaimHeldConflict, } from '../policy/types.js';
13
- export type { TargetRange, ParticipantKind, TargetRef, OnStaleMode, WriteGuard, StaleNotification, ReadDependency, ClaimStatus, WireClaimSummary, ClaimError, WireClaim, ClaimRejection, ModelTarget, ModelClaim, ClaimBeginPayload, ClaimAbandonPayload, ClaimReorderPayload, UpdateSubscriptionPayload, SubscriptionAckPayload, CommitOperationType, CommitOperation, AnyCommitOperation, PresenceKind, PresenceActivity, PresenceUpdateFrame, } from './schema.js';
15
+ export type { TargetRange, ParticipantKind, TargetRef, OnStaleMode, WriteGuard, StaleNotification, ReadDependency, ClaimStatus, WireClaimSummary, ClaimError, WireClaim, ClaimRejection, ModelTarget, ModelClaim, ClaimBeginPayload, ClaimAbandonPayload, ClaimReorderPayload, ClaimHeartbeatPayload, ClaimHeartbeatAckPayload, ClaimHeartbeatBatchPayload, ClaimHeartbeatBatchAckPayload, UpdateSubscriptionPayload, SubscriptionAckPayload, CommitOperationType, CommitOperation, AnyCommitOperation, PresenceKind, PresenceActivity, PresenceUpdateFrame, } from './schema.js';
@@ -1,11 +1,13 @@
1
1
  /**
2
- * `@abloatai/ablo/coordination` the canonical wire schema for the three
3
- * coordination layers (presence, pessimistic claims, optimistic stale-context).
4
- * See `./schema.ts` for the model and the per-layer schemas.
2
+ * The `@abloatai/ablo/coordination` entry point. It re-exports the wire
3
+ * schemas and inferred types for the three coordination layers: presence (who
4
+ * is currently active), claims (taking exclusive hold of a target before
5
+ * writing it), and stale-context guards (rejecting a write that was based on an
6
+ * out-of-date read). The definitions themselves live in the sibling schema
7
+ * module.
5
8
  *
6
- * Explicit named list (not `export *`): every addition to schema.ts must be a
7
- * deliberate export decision here, so new symbols don't silently become public
8
- * API of the published package.
9
+ * Exports are listed by name rather than re-exported wholesale, so every symbol
10
+ * that becomes part of this package's public API is a deliberate choice.
9
11
  */
10
12
  // Runtime schemas + helpers.
11
13
  export {
@@ -14,16 +16,16 @@ targetRangeSchema, participantKindSchema, wireParticipantKindSchema, participant
14
16
  // Layer 3 — optimistic stale-context
15
17
  onStaleModeSchema, writeGuardSchema, staleNotificationSchema, readDependencySchema,
16
18
  // Layer 2 — pessimistic claim / claim-lease
17
- claimStatusSchema, wireClaimSummarySchema, claimErrorSchema, wireClaimSchema, claimRejectionSchema, modelTargetSchema, modelClaimSchema, claimBeginPayloadSchema, claimAbandonPayloadSchema, claimReorderPayloadSchema,
19
+ claimStatusSchema, wireClaimSummarySchema, claimErrorSchema, wireClaimSchema, claimRejectionSchema, modelTargetSchema, modelClaimSchema, claimBeginPayloadSchema, claimAbandonPayloadSchema, claimReorderPayloadSchema, claimHeartbeatPayloadSchema, claimHeartbeatAckPayloadSchema, claimHeartbeatBatchPayloadSchema, claimHeartbeatBatchAckPayloadSchema,
18
20
  // Read interest — area-of-interest navigation
19
21
  updateSubscriptionPayloadSchema, subscriptionAckPayloadSchema,
20
22
  // Commit operation — carries the optimistic write-guard
21
23
  commitOperationTypeSchema, commitOperationSchema,
22
24
  // Layer 1 — presence
23
25
  presenceKindSchema, presenceActivitySchema, presenceUpdateFrameSchema, } from './schema.js';
24
- // Conflict-policy runtime — the engine detects, the policy decides. Lives in
25
- // `../policy/types.js` (a dependency-free leaf: its only imports are types),
26
- // exported here so a server-side consumer reaches the coordination vocabulary
27
- // AND its default resolution through one leaf subpath instead of the root
28
- // barrel (which would evaluate the whole browser client stack in Node).
26
+ // Conflict-policy runtime — the engine detects a conflict, and the policy
27
+ // decides what to do about it. These are re-exported here so that server-side
28
+ // code can reach both the coordination vocabulary and its default conflict
29
+ // resolution from this one subpath, without importing the full client from the
30
+ // package root.
29
31
  export { defaultPolicy, capabilityPreemptPolicy, interpretConflictAxis } from '../policy/types.js';