@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,13 +1,13 @@
1
1
  /**
2
- * Linear Sync Engine - Core Types
2
+ * Core type definitions for the model-driven sync layer.
3
3
  *
4
- * Foundational type definitions for the model-driven sync architecture.
5
- * These types define how properties are tracked, loaded, and synchronized.
4
+ * These types describe how a model's properties are declared, when their data
5
+ * is loaded, and how changes are represented on the wire as they synchronize.
6
6
  */
7
7
  import type { FieldMeta } from '../schema/field.js';
8
8
  /**
9
- * Model Scope - lifecycle filter for queries.
10
- * Controls whether live, archived, or all entities are returned.
9
+ * A lifecycle filter for queries: whether to return live entities, archived
10
+ * ones, or both.
11
11
  */
12
12
  export declare enum ModelScope {
13
13
  live = "live",
@@ -15,43 +15,43 @@ export declare enum ModelScope {
15
15
  all = "all"
16
16
  }
17
17
  /**
18
- * Property Types - EXACTLY 7 types as per Linear Sync Engine
19
- * These define how model properties behave in the sync system
18
+ * The kinds of property a model can declare. Each kind determines how the
19
+ * property behaves in the sync system whether it is persisted, how it relates
20
+ * to other models, and how it is loaded.
20
21
  */
21
22
  export declare enum PropertyType {
22
- /** Standard observable property - owned by model, persisted and synced */
23
+ /** A standard observable field owned by the model, both persisted and synced. */
23
24
  property = "property",
24
- /** Property that doesn't persist or sync - runtime only */
25
+ /** A runtime-only field that is neither persisted nor synced. */
25
26
  ephemeralProperty = "ephemeralProperty",
26
- /** Foreign key reference - stores ID only */
27
+ /** A foreign-key reference that stores only the related model's id. */
27
28
  reference = "reference",
28
- /** Lazy-loaded model reference - getter/setter for model based on ID */
29
+ /** A single related model resolved on demand from its id, exposed as a getter and setter. */
29
30
  referenceModel = "referenceModel",
30
- /** Collection of related models - one-to-many relationship */
31
+ /** A collection of related models the many side of a one-to-many relationship. */
31
32
  referenceCollection = "referenceCollection",
32
- /** Back-reference computed property - inverse relationship */
33
+ /** A computed field that follows a relationship in the inverse direction. */
33
34
  backReference = "backReference",
34
- /** Array of foreign key references - many-to-many relationship */
35
+ /** An array of foreign-key ids a many-to-many relationship. */
35
36
  referenceArray = "referenceArray"
36
37
  }
37
38
  /**
38
- * Load Strategies - EXACTLY 5 strategies as per Linear Sync Engine
39
- * Controls when and how model data is loaded from the server
39
+ * When and how a model's data is loaded from the server.
40
40
  */
41
41
  export declare enum LoadStrategy {
42
- /** Load immediately into ObjectPool during bootstrap - for critical models */
42
+ /** Loaded during startup, before it is first used — for models needed right away. */
43
43
  instant = "instant",
44
- /** Load all at once when first needed - for secondary models */
44
+ /** Loaded all at once the first time it is needed for secondary models. */
45
45
  lazy = "lazy",
46
- /** Load on demand in subsets - for large collections */
46
+ /** Loaded on demand in subsets for large collections. */
47
47
  partial = "partial",
48
- /** Only load when explicitly requested - for optional data */
48
+ /** Loaded only when the application asks for it — for optional data. */
49
49
  explicitlyRequested = "explicitlyRequested",
50
- /** Never sync with server, local only - for client-side state */
50
+ /** Never synced with the server; kept only on the client — for local-only state. */
51
51
  local = "local"
52
52
  }
53
53
  /**
54
- * Property Metadata - Configuration for decorated properties
54
+ * The resolved configuration for a single model property.
55
55
  */
56
56
  export interface PropertyMetadata {
57
57
  type: PropertyType;
@@ -61,31 +61,32 @@ export interface PropertyMetadata {
61
61
  defaultValue?: unknown;
62
62
  loadStrategy?: LoadStrategy;
63
63
  /**
64
- * MobX observability annotation for this property. Controls how deeply
65
- * MobX wraps the value when `M1` registers the model.
64
+ * How deeply the reactivity layer wraps this property's value when the model
65
+ * is registered. The engine uses MobX, so the choice maps directly to MobX's
66
+ * observability modes.
66
67
  *
67
- * - `'deep'` (default): full recursive observability. Every nested
68
- * object/array becomes its own atom. Correct for scalar fields and
69
- * small structured values where consumers subscribe to inner
70
- * properties.
71
- * - `'shallow'`: track the reference and array/map/set operations, but
72
- * do NOT recurse into element internals. Right for collections whose
68
+ * - `'deep'` (the default): full recursive observability, where every nested
69
+ * object or array becomes its own reactive node. Correct for scalar fields
70
+ * and small structured values whose inner properties are read directly.
71
+ * - `'shallow'`: track the reference and array, map, and set operations, but
72
+ * do not recurse into element internals. Right for collections whose
73
73
  * elements are replaced wholesale.
74
- * - `'ref'`: track ONLY reassignment. Right for opaque JSON blobs
75
- * (chart specs, ProseMirror docs, style maps) that are treated as
76
- * immutable values consumers always read the whole blob and pass
77
- * it to a renderer. Deep enhancement on these produces a microtask
78
- * storm with no benefit.
74
+ * - `'ref'`: track only reassignment of the value. Right for opaque JSON
75
+ * blobs — chart specs, rich-text documents, style maps that are treated
76
+ * as immutable values and always read whole before being handed to a
77
+ * renderer. Deep-wrapping these produces many needless reactions for no
78
+ * benefit.
79
79
  *
80
- * Schema-driven registration auto-sets this to `'ref'` for fields with
81
- * wire type `'json'`, which is the right default for the blob pattern.
80
+ * Schema-driven registration sets this to `'ref'` automatically for fields
81
+ * whose wire type is `'json'`, the right default for the blob pattern.
82
82
  */
83
83
  observability?: 'deep' | 'shallow' | 'ref';
84
84
  }
85
- /** Model constructor type for reference metadata */
85
+ /** The constructor type of a model class, used by reference metadata to point at the related model. */
86
86
  type ModelConstructor = abstract new (...args: never[]) => unknown;
87
87
  /**
88
- * Reference Metadata - Configuration for reference properties
88
+ * The configuration for a reference property — which model it points to and how
89
+ * the relationship behaves.
89
90
  */
90
91
  export interface ReferenceMetadata {
91
92
  referencedModel: () => ModelConstructor;
@@ -94,7 +95,7 @@ export interface ReferenceMetadata {
94
95
  nullable?: boolean;
95
96
  }
96
97
  /**
97
- * Model Metadata - Configuration for model classes
98
+ * The resolved configuration for a model class.
98
99
  */
99
100
  export interface ModelMetadata {
100
101
  loadStrategy: LoadStrategy;
@@ -104,45 +105,35 @@ export interface ModelMetadata {
104
105
  usedForPartialIndexes?: boolean;
105
106
  schemaVersion?: number;
106
107
  /**
107
- * Schema-declared fields for this model, keyed by field name. Drives
108
- * commit payload projection (filter to declared fields + stringify
109
- * JSON-typed values) inside the transaction queue.
108
+ * The schema-declared fields for this model, keyed by field name. When a
109
+ * change is committed, the transaction queue uses this to project the payload
110
+ * down to the declared fields and to serialize JSON-typed values.
110
111
  *
111
- * Populated by `registerModelsFromSchema`. Each entry carries the
112
- * sync-engine type tag (the canonical {@link FieldMeta.type} union),
113
- * which tells the wire serializer how to handle the value. Missing →
114
- * projection becomes identity pass-through (back-compat for models
115
- * registered outside the schema path).
116
- *
117
- * Narrowed to the canonical union via `Pick` rather than re-declared —
118
- * a hand-rolled copy silently drifts when a new field type lands.
112
+ * Each entry carries the field's {@link FieldMeta.type} tag, which tells the
113
+ * wire serializer how to encode the value. When this is absent — a model
114
+ * registered without a schema the payload is passed through unchanged.
119
115
  */
120
116
  fields?: Readonly<Record<string, Pick<FieldMeta, 'type'>>>;
121
117
  /**
122
- * Fields to back-fill from the sync client identity when missing
123
- * during IndexedDB self-healing. Populated from
124
- * `ModelOptions.autoFill` in the schema. Each entry maps a field on
125
- * this model to one of the identity values held by `SyncClient`
126
- * (`organizationId` or `userId`).
127
- *
128
- * Used by `SyncClient.healModelRecord` to keep the engine
129
- * product-neutral: the engine no longer hardcodes which models carry
130
- * `organizationId` / `createdBy` — the consumer's schema declares it.
118
+ * Fields to fill in from the signed-in identity when they are missing from a
119
+ * stored row during self-healing. Each entry maps a field on this model to
120
+ * one of the identity values the client holds `organizationId` or `userId`.
121
+ * Declaring it in the schema keeps the engine product-neutral: it does not
122
+ * assume which models carry an organization or owner field.
131
123
  */
132
124
  autoFill?: readonly {
133
125
  field: string;
134
126
  from: 'organizationId' | 'userId';
135
127
  }[];
136
128
  /**
137
- * Fields whose absence makes a stored row orphaned. When healing
138
- * encounters a record missing any of these fields, it returns `null`
139
- * to signal the caller to skip the row. Populated from
140
- * `ModelOptions.requiredFields` in the schema.
129
+ * Fields a stored row must have to be usable. During self-healing, a row
130
+ * missing any of these is treated as orphaned and skipped rather than loaded.
141
131
  */
142
132
  requiredFields?: readonly string[];
143
133
  }
144
134
  /**
145
- * Model Options - Options for @ClientModel decorator
135
+ * The options accepted when declaring a model — its load strategy, optional
136
+ * sync group, and optional table name.
146
137
  */
147
138
  export interface ModelOptions {
148
139
  loadStrategy: LoadStrategy;
@@ -150,7 +141,7 @@ export interface ModelOptions {
150
141
  tableName?: string;
151
142
  }
152
143
  /**
153
- * Property Options - Options for @Property decorator
144
+ * The options accepted when declaring a model property.
154
145
  */
155
146
  export interface PropertyOptions {
156
147
  indexed?: boolean;
@@ -159,21 +150,22 @@ export interface PropertyOptions {
159
150
  ephemeral?: boolean;
160
151
  }
161
152
  /**
162
- * Reference Options - Options for @Reference decorator
153
+ * The options accepted when declaring a reference property.
163
154
  */
164
155
  export interface ReferenceOptions {
165
156
  indexed?: boolean;
166
157
  nullable?: boolean;
167
158
  }
168
159
  /**
169
- * GraphQL Mutation Interface
160
+ * A GraphQL mutation: its query text and the variables to run it with.
170
161
  */
171
162
  export interface GraphQLMutation {
172
163
  mutationText: string;
173
164
  variables: Record<string, unknown>;
174
165
  }
175
166
  /**
176
- * Load Request Interface
167
+ * A request to load model rows by an indexed key. When the load completes,
168
+ * `resolve` is called with the matching rows.
177
169
  */
178
170
  export interface LoadRequest {
179
171
  modelName: string;
@@ -182,11 +174,11 @@ export interface LoadRequest {
182
174
  resolve?: (value: unknown[]) => void;
183
175
  }
184
176
  /**
185
- * Sync Action Types - Complete Linear specification
177
+ * The one-letter code identifying what kind of change a sync action carries.
186
178
  */
187
179
  export type SyncActionType = 'I' | 'U' | 'A' | 'D' | 'C' | 'G' | 'S' | 'V';
188
180
  /**
189
- * Sync Action Interface - Linear format
181
+ * A single change to one model row, as carried on the sync stream.
190
182
  */
191
183
  export interface SyncAction {
192
184
  id: number;
@@ -197,22 +189,24 @@ export interface SyncAction {
197
189
  __class: 'SyncAction';
198
190
  }
199
191
  /**
200
- * Delta Packet - Array of sync actions
192
+ * A batch of sync actions delivered together.
201
193
  */
202
194
  export type DeltaPacket = SyncAction[];
203
195
  /**
204
- * Bootstrap Types
196
+ * The kind of initial data load performed when a client starts: a full load, a
197
+ * partial subset, or local-only.
205
198
  */
206
199
  export type BootstrapType = 'full' | 'partial' | 'local';
207
200
  /**
208
- * Bootstrap Metadata
201
+ * The metadata returned with a bootstrap: the last sync id seen and the sync
202
+ * groups the client is subscribed to.
209
203
  */
210
204
  export interface BootstrapMetadata {
211
205
  lastSyncId: number;
212
206
  subscribedSyncGroups: string[];
213
207
  }
214
208
  /**
215
- * Database Metadata - Sync engine state tracking
209
+ * The locally tracked sync state that lets a client resume where it left off.
216
210
  */
217
211
  export interface DatabaseMetadata {
218
212
  lastSyncId: number;
@@ -222,7 +216,7 @@ export interface DatabaseMetadata {
222
216
  updatedAt: Date;
223
217
  }
224
218
  /**
225
- * Mutation operation types for batch mutations.
219
+ * The operation a batch mutation performs on a model row.
226
220
  */
227
221
  export declare enum MutationOperationType {
228
222
  ARCHIVE = "ARCHIVE",
@@ -232,7 +226,7 @@ export declare enum MutationOperationType {
232
226
  UPDATE = "UPDATE"
233
227
  }
234
228
  /**
235
- * Partial Index Information - For complex querying
229
+ * Describes a partial index used to load subsets of a large model.
236
230
  */
237
231
  export interface PartialIndexInfo {
238
232
  modelName: string;
@@ -1,12 +1,12 @@
1
1
  /**
2
- * Linear Sync Engine - Core Types
2
+ * Core type definitions for the model-driven sync layer.
3
3
  *
4
- * Foundational type definitions for the model-driven sync architecture.
5
- * These types define how properties are tracked, loaded, and synchronized.
4
+ * These types describe how a model's properties are declared, when their data
5
+ * is loaded, and how changes are represented on the wire as they synchronize.
6
6
  */
7
7
  /**
8
- * Model Scope - lifecycle filter for queries.
9
- * Controls whether live, archived, or all entities are returned.
8
+ * A lifecycle filter for queries: whether to return live entities, archived
9
+ * ones, or both.
10
10
  */
11
11
  export var ModelScope;
12
12
  (function (ModelScope) {
@@ -15,45 +15,45 @@ export var ModelScope;
15
15
  ModelScope["all"] = "all";
16
16
  })(ModelScope || (ModelScope = {}));
17
17
  /**
18
- * Property Types - EXACTLY 7 types as per Linear Sync Engine
19
- * These define how model properties behave in the sync system
18
+ * The kinds of property a model can declare. Each kind determines how the
19
+ * property behaves in the sync system whether it is persisted, how it relates
20
+ * to other models, and how it is loaded.
20
21
  */
21
22
  export var PropertyType;
22
23
  (function (PropertyType) {
23
- /** Standard observable property - owned by model, persisted and synced */
24
+ /** A standard observable field owned by the model, both persisted and synced. */
24
25
  PropertyType["property"] = "property";
25
- /** Property that doesn't persist or sync - runtime only */
26
+ /** A runtime-only field that is neither persisted nor synced. */
26
27
  PropertyType["ephemeralProperty"] = "ephemeralProperty";
27
- /** Foreign key reference - stores ID only */
28
+ /** A foreign-key reference that stores only the related model's id. */
28
29
  PropertyType["reference"] = "reference";
29
- /** Lazy-loaded model reference - getter/setter for model based on ID */
30
+ /** A single related model resolved on demand from its id, exposed as a getter and setter. */
30
31
  PropertyType["referenceModel"] = "referenceModel";
31
- /** Collection of related models - one-to-many relationship */
32
+ /** A collection of related models the many side of a one-to-many relationship. */
32
33
  PropertyType["referenceCollection"] = "referenceCollection";
33
- /** Back-reference computed property - inverse relationship */
34
+ /** A computed field that follows a relationship in the inverse direction. */
34
35
  PropertyType["backReference"] = "backReference";
35
- /** Array of foreign key references - many-to-many relationship */
36
+ /** An array of foreign-key ids a many-to-many relationship. */
36
37
  PropertyType["referenceArray"] = "referenceArray";
37
38
  })(PropertyType || (PropertyType = {}));
38
39
  /**
39
- * Load Strategies - EXACTLY 5 strategies as per Linear Sync Engine
40
- * Controls when and how model data is loaded from the server
40
+ * When and how a model's data is loaded from the server.
41
41
  */
42
42
  export var LoadStrategy;
43
43
  (function (LoadStrategy) {
44
- /** Load immediately into ObjectPool during bootstrap - for critical models */
44
+ /** Loaded during startup, before it is first used — for models needed right away. */
45
45
  LoadStrategy["instant"] = "instant";
46
- /** Load all at once when first needed - for secondary models */
46
+ /** Loaded all at once the first time it is needed for secondary models. */
47
47
  LoadStrategy["lazy"] = "lazy";
48
- /** Load on demand in subsets - for large collections */
48
+ /** Loaded on demand in subsets for large collections. */
49
49
  LoadStrategy["partial"] = "partial";
50
- /** Only load when explicitly requested - for optional data */
50
+ /** Loaded only when the application asks for it — for optional data. */
51
51
  LoadStrategy["explicitlyRequested"] = "explicitlyRequested";
52
- /** Never sync with server, local only - for client-side state */
52
+ /** Never synced with the server; kept only on the client — for local-only state. */
53
53
  LoadStrategy["local"] = "local";
54
54
  })(LoadStrategy || (LoadStrategy = {}));
55
55
  /**
56
- * Mutation operation types for batch mutations.
56
+ * The operation a batch mutation performs on a model row.
57
57
  */
58
58
  export var MutationOperationType;
59
59
  (function (MutationOperationType) {
@@ -1,12 +1,10 @@
1
1
  /**
2
- * ModelData — the generic record shape for model payloads.
2
+ * The generic record shape for a model's data — a map from field name to value.
3
3
  *
4
- * Lives in its own dependency-free leaf so BOTH `BaseSyncedStore` and
5
- * `SyncClient` can import it without importing each other. (The alias
6
- * used to live in BaseSyncedStore.ts, which made SyncClient.ts and
7
- * BaseSyncedStore.ts a mutual type cycle: the store needs the SyncClient
8
- * class type, and SyncClient needed this alias back from the store.)
9
- * `BaseSyncedStore` re-exports it, so existing importers are unchanged.
4
+ * Because the values are typed as `unknown`, read the data as the
5
+ * schema-inferred entity type rather than accessing fields off this shape
6
+ * directly. It has no imports of its own, so any module can depend on it
7
+ * without creating an import cycle.
10
8
  */
11
- /** Generic record type for model data */
9
+ /** A record mapping each model field name to its value. */
12
10
  export type ModelData = Record<string, unknown>;
@@ -1,11 +1,9 @@
1
1
  /**
2
- * ModelData — the generic record shape for model payloads.
2
+ * The generic record shape for a model's data — a map from field name to value.
3
3
  *
4
- * Lives in its own dependency-free leaf so BOTH `BaseSyncedStore` and
5
- * `SyncClient` can import it without importing each other. (The alias
6
- * used to live in BaseSyncedStore.ts, which made SyncClient.ts and
7
- * BaseSyncedStore.ts a mutual type cycle: the store needs the SyncClient
8
- * class type, and SyncClient needed this alias back from the store.)
9
- * `BaseSyncedStore` re-exports it, so existing importers are unchanged.
4
+ * Because the values are typed as `unknown`, read the data as the
5
+ * schema-inferred entity type rather than accessing fields off this shape
6
+ * directly. It has no imports of its own, so any module can depend on it
7
+ * without creating an import cycle.
10
8
  */
11
9
  export {};
@@ -1,19 +1,18 @@
1
1
  /**
2
- * Participant identity — a zero-import leaf of the type graph.
2
+ * The identity of a participant — a person's session, an AI agent, or a system
3
+ * actor — in the coordination protocol.
3
4
  *
4
- * `ParticipantRef` (and the participant-kind literals it carries) is the one
5
- * identity shape shared by the streams surface (`types/streams.ts`) and the
6
- * conflict-policy layer (`policy/types.ts`). It lives in its own leaf module
7
- * importing nothing so both layers can depend on it without forming the
8
- * foundation triangle `types/streams → schema/model → policy/types →
9
- * types/streams`. The runtime validator for the same literals stays in
10
- * `coordination/schema.ts` (`participantKindSchema`).
5
+ * {@link ParticipantRef} is the single identity shape shared by the streams
6
+ * types and the conflict-policy types. It has no imports of its own, so both
7
+ * can depend on it without creating an import cycle. The runtime validator for
8
+ * the same participant kinds lives alongside the other coordination schemas.
11
9
  */
12
- /** The participant-kind vocabulary: human session, AI agent, or system actor. */
10
+ /** The kind of actor a participant is: a human session, an AI agent, or a system actor. */
13
11
  export type ParticipantKind = 'user' | 'agent' | 'system';
14
12
  /**
15
- * Identity reference for an actor / on-behalf-of slot. Generic
16
- * protocol vocabulary; works for sessions, agents, and system roles.
13
+ * A reference to one participant: its {@link ParticipantKind} and its id. Used
14
+ * both for the actor performing an action and for the participant it acts on
15
+ * behalf of.
17
16
  */
18
17
  export interface ParticipantRef {
19
18
  kind: ParticipantKind;
@@ -1,12 +1,10 @@
1
1
  /**
2
- * Participant identity — a zero-import leaf of the type graph.
2
+ * The identity of a participant — a person's session, an AI agent, or a system
3
+ * actor — in the coordination protocol.
3
4
  *
4
- * `ParticipantRef` (and the participant-kind literals it carries) is the one
5
- * identity shape shared by the streams surface (`types/streams.ts`) and the
6
- * conflict-policy layer (`policy/types.ts`). It lives in its own leaf module
7
- * importing nothing so both layers can depend on it without forming the
8
- * foundation triangle `types/streams → schema/model → policy/types →
9
- * types/streams`. The runtime validator for the same literals stays in
10
- * `coordination/schema.ts` (`participantKindSchema`).
5
+ * {@link ParticipantRef} is the single identity shape shared by the streams
6
+ * types and the conflict-policy types. It has no imports of its own, so both
7
+ * can depend on it without creating an import cycle. The runtime validator for
8
+ * the same participant kinds lives alongside the other coordination schemas.
11
9
  */
12
10
  export {};