@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,24 +0,0 @@
1
- /**
2
- * Optimistic apply/rollback — the queue's local-first bookkeeping, lifted out
3
- * of `TransactionQueue.ts` as a pure leaf. The queue never mutates the pool
4
- * itself: applying/rolling back records an entry in the host-owned ledger and
5
- * emits `optimistic:*` events that the pool-side listeners act on. These
6
- * functions take that ledger plus a minimal emitter interface (never the host
7
- * class type), so the rules stay cycle-free and testable in isolation.
8
- */
9
- import type { Model } from '../Model.js';
10
- import type { MutationInput, Transaction } from './commitPayload.js';
11
- /** One tracked optimistic mutation: the live model + its pre-image. */
12
- export interface OptimisticUpdateEntry {
13
- model: Model;
14
- previousState: MutationInput | null | undefined;
15
- transaction: Transaction;
16
- }
17
- /** The host's event surface — the only queue capability these rules need. */
18
- export interface OptimisticEmitter {
19
- emit(event: string, payload: unknown): void;
20
- }
21
- export declare function applyOptimisticCreate(optimisticUpdates: Map<string, OptimisticUpdateEntry>, emitter: OptimisticEmitter, model: Model, transaction: Transaction): void;
22
- export declare function applyOptimisticUpdate(optimisticUpdates: Map<string, OptimisticUpdateEntry>, emitter: OptimisticEmitter, model: Model, transaction: Transaction): void;
23
- export declare function applyOptimisticDelete(optimisticUpdates: Map<string, OptimisticUpdateEntry>, emitter: OptimisticEmitter, model: Model, transaction: Transaction): void;
24
- export declare function rollbackOptimistic(optimisticUpdates: Map<string, OptimisticUpdateEntry>, emitter: OptimisticEmitter, transaction: Transaction, reason?: string, error?: Error): Promise<void>;
@@ -1,45 +0,0 @@
1
- /**
2
- * Optimistic apply/rollback — the queue's local-first bookkeeping, lifted out
3
- * of `TransactionQueue.ts` as a pure leaf. The queue never mutates the pool
4
- * itself: applying/rolling back records an entry in the host-owned ledger and
5
- * emits `optimistic:*` events that the pool-side listeners act on. These
6
- * functions take that ledger plus a minimal emitter interface (never the host
7
- * class type), so the rules stay cycle-free and testable in isolation.
8
- */
9
- export function applyOptimisticCreate(optimisticUpdates, emitter, model, transaction) {
10
- optimisticUpdates.set(transaction.id, {
11
- model,
12
- previousState: null,
13
- transaction,
14
- });
15
- emitter.emit('optimistic:create', { model, transaction });
16
- }
17
- export function applyOptimisticUpdate(optimisticUpdates, emitter, model, transaction) {
18
- optimisticUpdates.set(transaction.id, {
19
- model,
20
- previousState: transaction.previousData,
21
- transaction,
22
- });
23
- emitter.emit('optimistic:update', { model, transaction });
24
- }
25
- export function applyOptimisticDelete(optimisticUpdates, emitter, model, transaction) {
26
- optimisticUpdates.set(transaction.id, {
27
- model,
28
- previousState: transaction.previousData,
29
- transaction,
30
- });
31
- emitter.emit('optimistic:delete', { model, transaction });
32
- }
33
- export async function rollbackOptimistic(optimisticUpdates, emitter, transaction, reason, error) {
34
- const optimistic = optimisticUpdates.get(transaction.id);
35
- if (!optimistic)
36
- return;
37
- emitter.emit('optimistic:rollback', {
38
- model: optimistic.model,
39
- previousState: optimistic.previousState,
40
- transaction,
41
- reason: reason ?? 'unknown',
42
- error,
43
- });
44
- optimisticUpdates.delete(transaction.id);
45
- }
@@ -1,93 +0,0 @@
1
- /**
2
- * persistedReplay — the Zod boundary for IDB → commit replay (T1.8).
3
- *
4
- * Rows read back from the persisted-transaction store were written by a
5
- * PREVIOUS session — possibly by an older SDK version, possibly corrupted.
6
- * Spreading them straight into a `Transaction` re-entered the commit path
7
- * with zero validation. These schemas validate exactly the fields the queue
8
- * (and the offline mutation-queue restore) actually read on replay; rows
9
- * that don't parse are DROPPED (and surfaced through observability), never
10
- * replayed as garbage commits.
11
- *
12
- * The same IDB store also holds two NON-replayable row kinds written by
13
- * other subsystems — the `'queue'` record (`SyncClient.persistMutationQueue`)
14
- * and `'awaiting_delta'` markers (`setupAwaitingTransactionPersistence`).
15
- * Those are recognized and skipped silently: they are expected neighbors,
16
- * not corruption.
17
- */
18
- import { z } from 'zod';
19
- import type { Transaction } from './commitPayload.js';
20
- /**
21
- * A replayable persisted transaction — the fields `TransactionQueue`
22
- * actually reads when re-enqueueing (id/type/model addressing + payload +
23
- * identity context). Everything else is defaulted at rehydration time.
24
- */
25
- export declare const persistedTransactionSchema: z.ZodObject<{
26
- id: z.ZodString;
27
- type: z.ZodEnum<{
28
- update: "update";
29
- create: "create";
30
- delete: "delete";
31
- archive: "archive";
32
- unarchive: "unarchive";
33
- }>;
34
- modelName: z.ZodString;
35
- modelId: z.ZodString;
36
- modelKey: z.ZodOptional<z.ZodString>;
37
- data: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
38
- previousData: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
39
- context: z.ZodObject<{
40
- userId: z.ZodString;
41
- organizationId: z.ZodString;
42
- role: z.ZodOptional<z.ZodString>;
43
- teamIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
44
- }, z.core.$strip>;
45
- createdAt: z.ZodOptional<z.ZodNumber>;
46
- batchId: z.ZodOptional<z.ZodString>;
47
- writeOptions: z.ZodOptional<z.ZodObject<{
48
- readAt: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
49
- onStale: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
50
- reject: "reject";
51
- overwrite: "overwrite";
52
- notify: "notify";
53
- }>>>;
54
- idempotencyKey: z.ZodOptional<z.ZodString>;
55
- label: z.ZodOptional<z.ZodString>;
56
- }, z.core.$loose>>;
57
- localOnly: z.ZodOptional<z.ZodBoolean>;
58
- }, z.core.$loose>;
59
- export type PersistedReplayableTransaction = z.infer<typeof persistedTransactionSchema>;
60
- /** Whether a persisted row belongs to another subsystem (skip, don't flag). */
61
- export declare function isNonReplayablePersistedRow(row: unknown): boolean;
62
- /**
63
- * Validate + rehydrate one persisted row into a replayable `Transaction`,
64
- * or `null` when the row doesn't parse. Missing bookkeeping fields are
65
- * re-derived exactly like a fresh staging would derive them.
66
- */
67
- export declare function deserializePersistedTransaction(row: unknown): Transaction | null;
68
- /**
69
- * One entry of the persisted offline mutation queue (the `'queue'` row's
70
- * `mutations` array) — the fields `SyncClient.restoreMutationQueue` reads.
71
- */
72
- export declare const persistedMutationSchema: z.ZodObject<{
73
- type: z.ZodEnum<{
74
- update: "update";
75
- create: "create";
76
- delete: "delete";
77
- archive: "archive";
78
- }>;
79
- modelData: z.ZodRecord<z.ZodString, z.ZodUnknown>;
80
- modelName: z.ZodString;
81
- timestamp: z.ZodString;
82
- writeOptions: z.ZodOptional<z.ZodObject<{
83
- readAt: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
84
- onStale: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
85
- reject: "reject";
86
- overwrite: "overwrite";
87
- notify: "notify";
88
- }>>>;
89
- idempotencyKey: z.ZodOptional<z.ZodString>;
90
- label: z.ZodOptional<z.ZodString>;
91
- }, z.core.$loose>>;
92
- }, z.core.$loose>;
93
- export type PersistedQueuedMutation = z.infer<typeof persistedMutationSchema>;
@@ -1,105 +0,0 @@
1
- /**
2
- * persistedReplay — the Zod boundary for IDB → commit replay (T1.8).
3
- *
4
- * Rows read back from the persisted-transaction store were written by a
5
- * PREVIOUS session — possibly by an older SDK version, possibly corrupted.
6
- * Spreading them straight into a `Transaction` re-entered the commit path
7
- * with zero validation. These schemas validate exactly the fields the queue
8
- * (and the offline mutation-queue restore) actually read on replay; rows
9
- * that don't parse are DROPPED (and surfaced through observability), never
10
- * replayed as garbage commits.
11
- *
12
- * The same IDB store also holds two NON-replayable row kinds written by
13
- * other subsystems — the `'queue'` record (`SyncClient.persistMutationQueue`)
14
- * and `'awaiting_delta'` markers (`setupAwaitingTransactionPersistence`).
15
- * Those are recognized and skipped silently: they are expected neighbors,
16
- * not corruption.
17
- */
18
- import { z } from 'zod';
19
- import { computePriorityScore, normalizeModelKey } from './commitPayload.js';
20
- /** Write-option subset persisted per transaction / mutation. */
21
- const persistedWriteOptionsSchema = z
22
- .object({
23
- readAt: z.number().nullable().optional(),
24
- onStale: z.enum(['reject', 'overwrite', 'notify']).nullable().optional(),
25
- idempotencyKey: z.string().optional(),
26
- label: z.string().optional(),
27
- })
28
- .passthrough();
29
- /**
30
- * A replayable persisted transaction — the fields `TransactionQueue`
31
- * actually reads when re-enqueueing (id/type/model addressing + payload +
32
- * identity context). Everything else is defaulted at rehydration time.
33
- */
34
- export const persistedTransactionSchema = z
35
- .object({
36
- id: z.string().min(1),
37
- type: z.enum(['create', 'update', 'delete', 'archive', 'unarchive']),
38
- modelName: z.string().min(1),
39
- modelId: z.string().min(1),
40
- modelKey: z.string().min(1).optional(),
41
- data: z.record(z.string(), z.unknown()).optional(),
42
- previousData: z.record(z.string(), z.unknown()).nullable().optional(),
43
- context: z.object({
44
- userId: z.string().min(1),
45
- organizationId: z.string().min(1),
46
- role: z.string().optional(),
47
- teamIds: z.array(z.string()).optional(),
48
- }),
49
- createdAt: z.number().optional(),
50
- batchId: z.string().optional(),
51
- writeOptions: persistedWriteOptionsSchema.optional(),
52
- localOnly: z.boolean().optional(),
53
- })
54
- .passthrough();
55
- /** Row kinds that share the store but are owned by other subsystems. */
56
- const NON_REPLAYABLE_TYPES = new Set(['queue', 'awaiting_delta']);
57
- /** Whether a persisted row belongs to another subsystem (skip, don't flag). */
58
- export function isNonReplayablePersistedRow(row) {
59
- return (typeof row === 'object' &&
60
- row !== null &&
61
- typeof row.type === 'string' &&
62
- NON_REPLAYABLE_TYPES.has(row.type));
63
- }
64
- /**
65
- * Validate + rehydrate one persisted row into a replayable `Transaction`,
66
- * or `null` when the row doesn't parse. Missing bookkeeping fields are
67
- * re-derived exactly like a fresh staging would derive them.
68
- */
69
- export function deserializePersistedTransaction(row) {
70
- const parsed = persistedTransactionSchema.safeParse(row);
71
- if (!parsed.success)
72
- return null;
73
- const tx = parsed.data;
74
- return {
75
- id: tx.id,
76
- type: tx.type,
77
- modelName: tx.modelName,
78
- modelId: tx.modelId,
79
- modelKey: tx.modelKey ?? normalizeModelKey(tx.modelName),
80
- ...(tx.data !== undefined ? { data: tx.data } : {}),
81
- ...(tx.previousData !== undefined ? { previousData: tx.previousData } : {}),
82
- context: tx.context,
83
- status: 'pending',
84
- createdAt: tx.createdAt ?? Date.now(),
85
- attempts: 0,
86
- priority: 'normal',
87
- priorityScore: computePriorityScore(tx.type, tx.modelName),
88
- ...(tx.batchId !== undefined ? { batchId: tx.batchId } : {}),
89
- ...(tx.writeOptions !== undefined ? { writeOptions: tx.writeOptions } : {}),
90
- ...(tx.localOnly !== undefined ? { localOnly: tx.localOnly } : {}),
91
- };
92
- }
93
- /**
94
- * One entry of the persisted offline mutation queue (the `'queue'` row's
95
- * `mutations` array) — the fields `SyncClient.restoreMutationQueue` reads.
96
- */
97
- export const persistedMutationSchema = z
98
- .object({
99
- type: z.enum(['create', 'update', 'delete', 'archive']),
100
- modelData: z.record(z.string(), z.unknown()),
101
- modelName: z.string().min(1),
102
- timestamp: z.string(),
103
- writeOptions: persistedWriteOptionsSchema.optional(),
104
- })
105
- .passthrough();
@@ -1,42 +0,0 @@
1
- /**
2
- * M1 Helper - Simplified MobX Setup
3
- *
4
- * Fixed version that doesn't conflict with existing getters/setters
5
- */
6
- import { type AnnotationMapEntry } from 'mobx';
7
- import { type PropertyMetadata, type ReferenceMetadata } from '../types/index.js';
8
- /**
9
- * The internal contract M1 relies on. Models invoke M1 from inside
10
- * their constructor, where these fields are guaranteed to exist on
11
- * `this`. Declared here as the bound on M1's generic so the body can
12
- * reference them without `as any` casts. Each field is optional so a
13
- * partial Model implementation (e.g., a test fixture) still satisfies
14
- * the bound.
15
- */
16
- interface M1Target {
17
- _hasCustomObservability?: boolean;
18
- _isConstructing?: boolean;
19
- _extraMobxAnnotations?: Record<string, AnnotationMapEntry>;
20
- setupObservability?(): void;
21
- propertyChanged?(name: string, oldValue: unknown, newValue: unknown): void;
22
- }
23
- /**
24
- * M1 - Make properties observable with proper MobX setup
25
- *
26
- * Simplified version that respects existing getters/setters
27
- */
28
- export declare function M1<T extends M1Target>(target: T, propertyMetadata: Map<string, PropertyMetadata>, referenceMetadata?: Map<string, ReferenceMetadata>): void;
29
- /**
30
- * Helper to make a class observable
31
- * For classes that don't have custom observability
32
- */
33
- export declare function makeModelObservable(modelClass: any, propertyMetadata: Map<string, PropertyMetadata>, referenceMetadata?: Map<string, any>): any;
34
- /**
35
- * Utility to check if a property is observable
36
- */
37
- export declare function isObservableProperty(target: any, propName: string, propertyMetadata: Map<string, PropertyMetadata>): boolean;
38
- /**
39
- * Utility to get computed properties
40
- */
41
- export declare function getComputedProperties(propertyMetadata: Map<string, PropertyMetadata>): string[];
42
- export {};