@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,9 +1,10 @@
1
1
  /**
2
- * Schema Field Helpers
3
- *
4
- * Thin wrappers around Zod that add sync-engine metadata (type tag, indexed).
5
- * Metadata is stored in `z.describe()` as a JSON-encoded string so it
6
- * survives `.optional()`, `.nullable()`, and `.default()` chain calls.
2
+ * Field builders for schema definitions. Each helper — {@link field}.string(),
3
+ * .number(), .enum(), and so on — returns an ordinary Zod schema with a little
4
+ * sync-engine metadata attached (its type tag and whether it is indexed) plus a
5
+ * couple of chainable methods. The metadata is tucked into the schema's description
6
+ * as a JSON string so it survives `.optional()`, `.nullable()`, and `.default()`
7
+ * chaining, and {@link resolveFieldMeta} reads it back out as a {@link FieldMeta}.
7
8
  *
8
9
  * Usage:
9
10
  * import { field } from '@abloatai/ablo/schema';
@@ -92,17 +93,11 @@ export function getFieldMeta(schema) {
92
93
  return { ...base, isOptional };
93
94
  }
94
95
  /**
95
- * Fallback: infer FieldMeta directly from a raw Zod schema when no
96
- * `field.*()` metadata was attached.
97
- *
98
- * Walks through `.optional()` / `.nullable()` / `.default()` wrappers
99
- * to find the inner primitive, then maps Zod's `_def.typeName` to
100
- * the sync-engine type tag. Used by `resolveFieldMeta` and by
101
- * `model()` / `query()` at definition time.
102
- *
103
- * Kept as an internal helper rather than exported directly — the
104
- * public API is `resolveFieldMeta`, which combines this fallback
105
- * with the `getFieldMeta` fast path.
96
+ * Infers a {@link FieldMeta} from a plain Zod schema that carries no field-builder
97
+ * metadata — for example a bare `z.string()`. It unwraps `.optional()`,
98
+ * `.nullable()`, and `.default()` to reach the inner type, then maps that Zod type
99
+ * to a sync-engine type tag. Most callers should use {@link resolveFieldMeta}
100
+ * instead, which tries the attached metadata first and falls back to this.
106
101
  */
107
102
  export function inferFieldMetaFromZod(schema) {
108
103
  let current = schema;
@@ -144,33 +139,24 @@ export function inferFieldMetaFromZod(schema) {
144
139
  current instanceof z.ZodRecord ||
145
140
  current instanceof z.ZodUnion ||
146
141
  current instanceof z.ZodUnknown ||
147
- // `z.custom<T>()` is an opaque, structurally-uninspectable blob
148
- // by construction the engine can't see its shape, which is exactly
149
- // the JSON-blob pattern (ProseMirror docs, LayerData/LayerStyle maps,
150
- // chart specs). Classifying it as `'string'` (the fallthrough default)
151
- // gave these fields deep MobX observability instead of the intended
152
- // `observable.ref` (see Ablo.ts registerProperty), producing the
153
- // microtask-storm + nested-reactivity-drift bug on live updates.
142
+ // `z.custom<T>()` is opaque its shape cannot be inspected so it is treated
143
+ // as a JSON blob rather than falling through to the `'string'` default. The type
144
+ // tag drives how the runtime observes the field, and an opaque custom value
145
+ // should be tracked by reference rather than deeply.
154
146
  current instanceof z.ZodCustom) {
155
147
  type = 'json';
156
148
  }
157
149
  return { type, isOptional, isIndexed: false, enumValues };
158
150
  }
159
151
  /**
160
- * Resolve FieldMeta for any Zod schema whether it was built with
161
- * `field.*()` (which attaches sync-engine metadata) or with raw Zod
162
- * (which requires fallback inference from `_def.typeName`).
163
- *
164
- * This is the single public entry point for "given a Zod field, tell
165
- * me its sync-engine type tag and optionality." Both `model()` and
166
- * `query()` use it to populate their `fields` / `inputFields` maps at
167
- * definition time, and the schema serializer reads those maps at
168
- * serialization time.
152
+ * Resolves a {@link FieldMeta} for any Zod schema, whether it was built with a
153
+ * {@link field} builder (which attaches metadata) or with plain Zod (which needs
154
+ * inference). This is the single entry point for "given a Zod field, tell me its
155
+ * sync-engine type tag and whether it is optional"; the model and query builders use
156
+ * it to populate their field maps, and the serializer reads those maps.
169
157
  *
170
- * Contract: always returns a value. Never returns null. Unknown Zod
171
- * types fall through to `'string'` this is intentional and matches
172
- * the existing behavior that was previously duplicated in
173
- * `model.ts:inferMetaFromZod`.
158
+ * It always returns a value and never returns null. A Zod type it does not recognize
159
+ * falls through to the `string` tag by design.
174
160
  */
175
161
  export function resolveFieldMeta(schema) {
176
162
  const attached = getFieldMeta(schema);
@@ -197,28 +183,28 @@ function buildField(schema, baseMeta) {
197
183
  return withFieldMethods(schema, { ...baseMeta, isIndexed: false });
198
184
  }
199
185
  export const field = {
200
- /** String field */
186
+ /** Defines a text field. */
201
187
  string() {
202
188
  return buildField(z.string(), { type: 'string' });
203
189
  },
204
- /** Number field */
190
+ /** Defines a numeric field. */
205
191
  number() {
206
192
  return buildField(z.number(), { type: 'number' });
207
193
  },
208
- /** Boolean field */
194
+ /** Defines a true/false field. */
209
195
  boolean() {
210
196
  return buildField(z.boolean(), { type: 'boolean' });
211
197
  },
212
- /** Date field */
198
+ /** Defines a timestamp field, represented as a JavaScript `Date`. */
213
199
  date() {
214
200
  return buildField(z.date(), { type: 'date' });
215
201
  },
216
- /** Enum field with constrained string values */
202
+ /** Defines a field constrained to a fixed set of string values. */
217
203
  enum(values) {
218
204
  return buildField(z.enum(values), { type: 'enum', enumValues: values });
219
205
  },
220
206
  /**
221
- * JSON field. Three call shapes:
207
+ * Defines a JSON field, with three call shapes:
222
208
  *
223
209
  * ```ts
224
210
  * field.json() // unknown JSON blob
@@ -226,9 +212,9 @@ export const field = {
226
212
  * field.json({ icon: z.string().default('default') }) // typed sub-properties with defaults
227
213
  * ```
228
214
  *
229
- * The third form is the key DX feature for metadata fields. It wraps the
230
- * plain object in `z.object()` automatically, and the model runtime generates
231
- * a `${field}Json` getter that parses the JSON string on read, applies Zod
215
+ * The third form is especially handy for metadata fields. It wraps the plain
216
+ * object in `z.object()` automatically, and the model runtime adds a
217
+ * `${field}Json` getter that parses the JSON string on read, applies the Zod
232
218
  * defaults, and caches the result.
233
219
  *
234
220
  * Example:
@@ -261,13 +247,14 @@ export const field = {
261
247
  }
262
248
  return buildField(inner, { type: 'json' });
263
249
  },
264
- /** Indexed string field (shorthand for `field.string().indexed()`). */
250
+ /** Defines an indexed text field shorthand for `field.string().indexed()`. */
265
251
  id() {
266
252
  return field.string().indexed();
267
253
  },
268
254
  };
269
- // ── Legacy function form (kept for backward compat) ──────────────────────
270
- /** Mark a Zod schema as indexed for fast lookups (function form). */
255
+ // ── Function form ────────────────────────────────────────────────────────
256
+ /** Marks a Zod schema as indexed so lookups on it use a database index. This is the
257
+ * standalone-function form of the `.indexed()` chain method. */
271
258
  export function indexed(schema) {
272
259
  // Try to preserve existing metadata type tag if present.
273
260
  const meta = decodeMeta(schema.description);
@@ -1,18 +1,18 @@
1
1
  /**
2
- * Schema TypeScript type emission the `generate` half of the loop (the
3
- * counterpart to `diff`/migrate). Lowers a serialized schema to a `.ts` file of
4
- * row interfaces + an `AbloSchema` map, so a consumer's app is typed against the
5
- * exact schema that the database and sync layer enforce. Pure (returns source
6
- * text); the CLI writes it to disk.
2
+ * Generates TypeScript types from a serialized schema. Given the schema, it produces
3
+ * the source text of a `.ts` module containing one row interface per model plus an
4
+ * `AbloSchema` map, so an app is typed against the same schema the database and sync
5
+ * layer enforce. This function is pure and returns the source as a string; the
6
+ * command-line tool writes it to disk.
7
7
  *
8
- * This is the SDK's front door: the developer writes ONE `defineSchema`, pushes
9
- * it (which migrates the DB), and generates types FROM the same schema — so the
10
- * types they code against, the rows the DB stores, and the entities sync moves
11
- * are provably the same thing.
8
+ * It is the counterpart to the migration planner in {@link diffSchema}: you write one
9
+ * schema definition, push it (which migrates the database), and generate types from
10
+ * that same schema, so the types you code against, the rows the database stores, and
11
+ * the entities the sync layer moves all describe the same thing.
12
12
  *
13
- * v1 emits the row shape (base columns + declared fields, enums as literal
14
- * unions). Relations are resolved by the runtime SDK's typed accessors and are
15
- * not expanded here.
13
+ * The generated interface covers the base columns plus each declared field, with
14
+ * enums emitted as string-literal unions. Relations are not expanded here the
15
+ * runtime SDK resolves those through its typed accessors.
16
16
  */
17
17
  import type { SchemaJSON } from './serialize.js';
18
18
  /** Emit a TypeScript module of row interfaces + the `AbloSchema` map. */
@@ -1,18 +1,18 @@
1
1
  /**
2
- * Schema TypeScript type emission the `generate` half of the loop (the
3
- * counterpart to `diff`/migrate). Lowers a serialized schema to a `.ts` file of
4
- * row interfaces + an `AbloSchema` map, so a consumer's app is typed against the
5
- * exact schema that the database and sync layer enforce. Pure (returns source
6
- * text); the CLI writes it to disk.
2
+ * Generates TypeScript types from a serialized schema. Given the schema, it produces
3
+ * the source text of a `.ts` module containing one row interface per model plus an
4
+ * `AbloSchema` map, so an app is typed against the same schema the database and sync
5
+ * layer enforce. This function is pure and returns the source as a string; the
6
+ * command-line tool writes it to disk.
7
7
  *
8
- * This is the SDK's front door: the developer writes ONE `defineSchema`, pushes
9
- * it (which migrates the DB), and generates types FROM the same schema — so the
10
- * types they code against, the rows the DB stores, and the entities sync moves
11
- * are provably the same thing.
8
+ * It is the counterpart to the migration planner in {@link diffSchema}: you write one
9
+ * schema definition, push it (which migrates the database), and generate types from
10
+ * that same schema, so the types you code against, the rows the database stores, and
11
+ * the entities the sync layer moves all describe the same thing.
12
12
  *
13
- * v1 emits the row shape (base columns + declared fields, enums as literal
14
- * unions). Relations are resolved by the runtime SDK's typed accessors and are
15
- * not expanded here.
13
+ * The generated interface covers the base columns plus each declared field, with
14
+ * enums emitted as string-literal unions. Relations are not expanded here the
15
+ * runtime SDK resolves those through its typed accessors.
16
16
  */
17
17
  import { BASE_FIELDS } from './schema.js';
18
18
  function tsType(meta) {
@@ -25,12 +25,12 @@ export { field, indexed, getFieldMeta, type FieldBuilder, type FieldMeta } from
25
25
  export { relation, type RelationDef, type RelationType } from './relation.js';
26
26
  export { tenancySchema, scopedViaRefSchema, policyInputSchema, resolvePolicy, resolveTenancy, tenancyColumn, DEFAULT_ORG_COLUMN, type Tenancy, type ScopedViaRef, type PolicyInput, } from './tenancy.js';
27
27
  export { residencySchema, DEFAULT_RESIDENCY, type ModelResidency, planeSchema, DEFAULT_PLANE, type SchemaPlane, } from './residency.js';
28
- export { syncDeltaCoreSchema, deltaAttributionSchema, deltaProvenanceSchema, syncDeltaRowSchema, participantKindSchema, confirmationStateSchema, backfillProvenanceSchema, DELTA_RESIDENCY, type SyncDeltaCore, type DeltaAttribution, type DeltaProvenance, type SyncDeltaRow, type ParticipantKind, type ConfirmationState, type BackfillProvenance, } from './sync-delta-row.js';
29
- export { syncDeltaActionSchema, wireDeltaDataSchema, participantRefSchema, syncDeltaWireCoreSchema, clientSyncDeltaSchema, serverSyncDeltaSchema, type SyncDeltaAction, type WireDeltaData, type ParticipantRef, type SyncDeltaWireCore, type ClientSyncDelta, type ServerSyncDelta, } from './sync-delta-wire.js';
28
+ export { syncDeltaCoreSchema, deltaAttributionSchema, deltaProvenanceSchema, syncDeltaRowSchema, participantKindSchema, confirmationStateSchema, backfillProvenanceSchema, DELTA_RESIDENCY, type SyncDeltaCore, type DeltaAttribution, type DeltaProvenance, type SyncDeltaRow, type ParticipantKind, type ConfirmationState, type BackfillProvenance, } from './syncDeltaRow.js';
29
+ export { syncDeltaActionSchema, wireDeltaDataSchema, participantRefSchema, syncDeltaWireCoreSchema, clientSyncDeltaSchema, serverSyncDeltaSchema, type SyncDeltaAction, type WireDeltaData, type ParticipantRef, type SyncDeltaWireCore, type ClientSyncDelta, type ServerSyncDelta, } from '../wire/delta.js';
30
30
  export { model, scopeKindOf, type ModelDef, type ModelOptions, type LoadStrategy, type PersistOptions, type RelationRecord, type GrantsRef, type ConflictAxis, } from './model.js';
31
31
  export { coordination, humansOverwrite, humansReject, humansNotify, agentsOverwrite, agentsReject, agentsNotify, systemOverwrite, systemReject, systemNotify, type ConflictRule, } from './coordination.js';
32
32
  export { mutable, readOnly, type SugarOptions } from './sugar.js';
33
- export { defineSchema, composeIdentitySyncGroups, type Schema, type SchemaRecord, type Model, type InferModel, type InferCreate, type InferModelNames, type BaseModelFields, type InsertValue, type UpsertValue, type UpdateValue, type DeleteId, type DefineSchemaOptions, type Casing, type CasingConvention, type CasingFn, composeEntitySyncGroups, intersectRequestedWithAllowed, type IdentityRole, type IdentityContext, type IdentityRoleSource, type EntityRole, type EntityContext, type EntityRoleSource, type RoleSource, type RoleContext, type SyncGroup, type SyncGroupInput, identityRole, entityRole, extractIdentityIds, extractEntityIds, syncGroup, syncGroupSchema, syncGroupInputSchema, isSyncGroupInput, identityRoleSchema, entityRoleSchema, roleSchema, roleSourceSchema, scopeSchema, grantsRefSchema, groupsInputSchema, type GroupsInput, } from './schema.js';
33
+ export { defineSchema, composeIdentitySyncGroups, type Schema, type SchemaRecord, type Model, type Row, type InferModel, type InferCreate, type InferRow, type InferModelNames, type BaseModelFields, type InsertValue, type UpsertValue, type UpdateValue, type DeleteId, type DefineSchemaOptions, type Casing, type CasingConvention, type CasingFn, composeEntitySyncGroups, intersectRequestedWithAllowed, type IdentityRole, type IdentityContext, type IdentityRoleSource, type EntityRole, type EntityContext, type EntityRoleSource, type RoleSource, type RoleContext, type SyncGroup, type SyncGroupInput, identityRole, entityRole, extractIdentityIds, extractEntityIds, syncGroup, syncGroupSchema, syncGroupInputSchema, isSyncGroupInput, identityRoleSchema, entityRoleSchema, roleSchema, roleSourceSchema, scopeSchema, grantsRefSchema, groupsInputSchema, type GroupsInput, } from './schema.js';
34
34
  export { serializeSchema, parseSchema, toSchemaJSON, fromSchemaJSON, schemaHash, type SchemaJSON, type ModelJSON, type RelationJSON, } from './serialize.js';
35
35
  export { selectModels } from './select.js';
36
36
  export { generateProvisionPlan, generateMigrationPlan, appSchemaName, camelToSnake, snakeToCamel, q, sqlType, type ProvisionPlan, type MigrationPlan, } from './ddl.js';
@@ -28,47 +28,45 @@ export { field, indexed, getFieldMeta } from './field.js';
28
28
  export { relation } from './relation.js';
29
29
  // Tenancy — the single source of truth for how a model's rows are tenant-scoped.
30
30
  export { tenancySchema, scopedViaRefSchema, policyInputSchema, resolvePolicy, resolveTenancy, tenancyColumn, DEFAULT_ORG_COLUMN, } from './tenancy.js';
31
- // Model residency — which DB a model's rows live in (`tenant` portable to a
32
- // customer's own DB, `control` = Ablo's own). Sibling axis to `tenancy`.
33
- // (Renamed from "plane" — that word is the server's tenancy scope.)
31
+ // Model residency — which database a model's rows live in (`tenant` can be a
32
+ // customer's own database, `control` is Ablo's). A sibling axis to `tenancy`.
34
33
  export { residencySchema, DEFAULT_RESIDENCY,
35
34
  // Deliberate back-compat re-export of the deprecated aliases:
36
35
  // eslint-disable-next-line @typescript-eslint/no-deprecated
37
36
  planeSchema,
38
37
  // eslint-disable-next-line @typescript-eslint/no-deprecated
39
38
  DEFAULT_PLANE, } from './residency.js';
40
- // Decomposed sync-delta storage row (P0 of the control/tenant plane split
41
- // see docs/plans/sync-delta-zod-decomposition.md). Describes the existing
42
- // `sync_deltas` columns as Zod schemas grouped by subsystem + database plane.
43
- export { syncDeltaCoreSchema, deltaAttributionSchema, deltaProvenanceSchema, syncDeltaRowSchema, participantKindSchema, confirmationStateSchema, backfillProvenanceSchema, DELTA_RESIDENCY, } from './sync-delta-row.js';
44
- // Canonical WIRE delta contract the broadcast (server→client) projection of
45
- // the stored row. The SDK client and the sync-server both derive their
46
- // `SyncDelta` type from these via `z.infer` so the contract cannot drift.
47
- export { syncDeltaActionSchema, wireDeltaDataSchema, participantRefSchema, syncDeltaWireCoreSchema, clientSyncDeltaSchema, serverSyncDeltaSchema, } from './sync-delta-wire.js';
39
+ // The stored `sync_deltas` row, described as Zod schemas grouped by subsystem and by
40
+ // which database the columns live in.
41
+ export { syncDeltaCoreSchema, deltaAttributionSchema, deltaProvenanceSchema, syncDeltaRowSchema, participantKindSchema, confirmationStateSchema, backfillProvenanceSchema, DELTA_RESIDENCY, } from './syncDeltaRow.js';
42
+ // The wire delta contract the server-to-client projection of the stored row.
43
+ // Both the client SDK and the server derive their `SyncDelta` type from these with
44
+ // `z.infer`, so the two ends cannot drift apart.
45
+ export { syncDeltaActionSchema, wireDeltaDataSchema, participantRefSchema, syncDeltaWireCoreSchema, clientSyncDeltaSchema, serverSyncDeltaSchema, } from '../wire/delta.js';
48
46
  // Model builder
49
47
  export { model, scopeKindOf, } from './model.js';
50
- // Axis 3 — coordination authoring helpers for the `conflict` axis (composable
51
- // disposition fns + a `cn`-style combinator).
48
+ // Coordination authoring helpers for the `conflict` axis composable disposition
49
+ // functions plus a combinator that merges them.
52
50
  export { coordination, humansOverwrite, humansReject, humansNotify, agentsOverwrite, agentsReject, agentsNotify, systemOverwrite, systemReject, systemNotify, } from './coordination.js';
53
- // Claim-first shorthand: `mutable.lazy({...})` and friends. Read the
54
- // safety posture and load shape off the verb tokens; everything else
55
- // falls back to sensible defaults. See sugar.ts for the full pattern.
51
+ // Claim-first shorthand for common model options: `mutable.lazy({...})` and friends
52
+ // encode a model's write-safety and load strategy in the verb, and fall back to
53
+ // sensible defaults for everything else.
56
54
  export { mutable, readOnly } from './sugar.js';
57
55
  // Schema definition + type inference
58
56
  export { defineSchema, composeIdentitySyncGroups, composeEntitySyncGroups, intersectRequestedWithAllowed, identityRole, entityRole, extractIdentityIds, extractEntityIds, syncGroup, syncGroupSchema, syncGroupInputSchema, isSyncGroupInput, identityRoleSchema, entityRoleSchema, roleSchema, roleSourceSchema, scopeSchema, grantsRefSchema, groupsInputSchema, } from './schema.js';
59
- // Schema ⇄ JSON (control-plane transport for hosted multi-tenant)
57
+ // Schema ⇄ JSON serialize a schema for transport and rebuild it on the far side.
60
58
  export { serializeSchema, parseSchema, toSchemaJSON, fromSchemaJSON, schemaHash, } from './serialize.js';
61
59
  // Schema projection — derive an app's subset from one canonical schema.
62
60
  export { selectModels } from './select.js';
63
- // Schema → Postgres DDL (pure; shared by the hosted server and the CLI)
61
+ // Schema → Postgres DDL shared by the host implementation and the command-line tools.
64
62
  export { generateProvisionPlan, generateMigrationPlan, appSchemaName, camelToSnake, snakeToCamel, q, sqlType, } from './ddl.js';
65
- // Safe-DDL locking knobs (lock_timeout + bounded 55P03 retry) the ONE
66
- // reader shared by `ablo migrate` and the hosted executor (ddlExec.ts), so an
67
- // operator tuning ABLO_SCHEMA_LOCK_* gets the same behavior on both paths.
63
+ // Safe-DDL locking knobs (lock_timeout plus a bounded retry on lock contention),
64
+ // shared by `ablo migrate` and the host that applies a schema push, so tuning the
65
+ // ABLO_SCHEMA_LOCK_* variables changes both paths the same way.
68
66
  export { PG_LOCK_NOT_AVAILABLE, resolveDdlLockTimeout, resolveDdlMaxLockAttempts, ddlLockRetryBackoffMs, } from './ddlLock.js';
69
- // Schema diff + migration planning (pure; SQL emission lowered by ddl.ts)
67
+ // Schema diff + migration planning produces the plan the DDL layer turns into SQL.
70
68
  export { diffSchema, classifyMigration, classifyCast, isAutoApplicable, isBlockerResolved, unresolvedBlockers, } from './diff.js';
71
- // Schema → TypeScript type emission (the `generate` half; pure)
69
+ // Schema → TypeScript type emission.
72
70
  export { generateTypes } from './generate.js';
73
71
  // Query definition DSL + type inference
74
72
  export { query, defineQueries, } from './queries.js';