@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,10 @@
1
1
  /**
2
- * credentialLifecycle reconnect-credential re-mint + proactive pre-roll.
3
- *
4
- * Extracted from BaseSyncedStore.ts as a cohesive leaf: owns the re-mint
5
- * hook, the single-flight guard, and the browser-only proactive refresh
6
- * (timer + OS-wake listener). The store keeps thin public delegates
7
- * (`setCredentialRefresher` / `performCredentialRefresh` /
8
- * `startCredentialLifecycle`) so its published surface is unchanged, and
9
- * talks back through the minimal {@link CredentialLifecycleContext} —
10
- * never the store's class type — so no module cycle forms.
2
+ * Keeps the short-lived access credential fresh. It owns the re-mint hook, a
3
+ * single-flight guard that stops concurrent triggers from minting more than
4
+ * once, and a browser-only proactive refresh — a timer plus an OS-wake listener
5
+ * that renews the credential ahead of expiry. It reaches the rest of the
6
+ * client only through the small {@link CredentialLifecycleContext} interface,
7
+ * so the two can reference each other without an import cycle.
11
8
  */
12
9
  import type { RecoveryClass } from '../errorCodes.js';
13
10
  /**
@@ -16,19 +13,19 @@ import type { RecoveryClass } from '../errorCodes.js';
16
13
  */
17
14
  export type CredentialRefreshOutcome = 'refreshed' | 'session_error' | 'network_error';
18
15
  /**
19
- * What an auth-rejected transport should do after the backbone has run:
20
- * `'retry'` = a fresh credential is in the credential source, replay the
21
- * request ONCE; `'stop'` = don't replay (terminal session loss, a rejection
22
- * a re-mint can't cure, or a transient mint failure the caller's own
23
- * retry/revalidation path will recover later).
16
+ * What an auth-rejected transport should do after recovery has run. `'retry'`
17
+ * means a fresh credential is now in place replay the request once. `'stop'`
18
+ * means don't replay: either the session is gone for good, the rejection is one
19
+ * a re-mint can't cure, or the mint failed transiently and the caller's own
20
+ * retry path will recover later.
24
21
  */
25
22
  export type CredentialRecoveryOutcome = 'retry' | 'stop';
26
23
  /**
27
- * What a credential refresher may resolve with. The plain-string form is the
28
- * classic `getToken` contract; the object form additionally carries the mint
29
- * response's `expiresAt` (ISO string / epoch ms / Date) so the proactive
30
- * pre-roll can schedule off the credential's ACTUAL lifetime instead of
31
- * assuming the server's default TTL.
24
+ * What a credential refresher may resolve with. The plain-string form returns
25
+ * just the token. The object form also carries the mint response's `expiresAt`
26
+ * (an ISO string, epoch milliseconds, or a `Date`), which lets the proactive
27
+ * pre-roll schedule against the credential's real lifetime rather than assume
28
+ * the server's default expiry.
32
29
  */
33
30
  export type CredentialRefreshResult = string | {
34
31
  readonly token: string;
@@ -37,135 +34,138 @@ export type CredentialRefreshResult = string | {
37
34
  /** A credential re-mint hook. `Promise<string | null>` resolvers remain
38
35
  * assignable — the widened result type is a superset. */
39
36
  export type CredentialRefresher = () => Promise<CredentialRefreshResult>;
40
- /** Fallback pre-roll cadence AND ceiling the historical 10-minute value,
41
- * comfortably inside the server's 15m default `ek_` TTL. Used verbatim when
42
- * the refresher reports no expiry. */
37
+ /** The fallback pre-roll interval, and also its ceiling: 10 minutes, which sits
38
+ * comfortably inside the server's 15-minute default credential lifetime. Used
39
+ * as-is when the refresher reports no expiry. */
43
40
  export declare const DEFAULT_PREROLL_INTERVAL_MS: number;
44
41
  /** Floor so a very short (or already-elapsed) TTL can't hot-loop the mint. */
45
42
  export declare const MIN_PREROLL_DELAY_MS: number;
46
43
  /**
47
- * When to pre-roll a credential that expires at `expiresAtMs`: after ~2/3 of
48
- * the REMAINING lifetime (15m TTL 10m, exactly the historical cadence),
49
- * clamped to [{@link MIN_PREROLL_DELAY_MS}, {@link DEFAULT_PREROLL_INTERVAL_MS}].
50
- * Unknown expiry (`null`) → the 10-minute fallback. Exported for unit tests.
44
+ * Computes how long to wait before pre-rolling a credential that expires at
45
+ * `expiresAtMs`: about two-thirds of the remaining lifetime (a 15-minute
46
+ * credential yields 10 minutes), clamped to
47
+ * [{@link MIN_PREROLL_DELAY_MS}, {@link DEFAULT_PREROLL_INTERVAL_MS}]. An
48
+ * unknown expiry (`null`) falls back to the 10-minute interval. Exported for
49
+ * unit tests.
51
50
  */
52
51
  export declare function computePrerollDelayMs(expiresAtMs: number | null, nowMs: number): number;
53
52
  /**
54
- * What the lifecycle needs back from its host store. Deliberately minimal —
55
- * three callbacks, all resolved lazily at call time (the ConnectionManager
56
- * behind two of them doesn't exist until `setupWebSocketSync`).
53
+ * The callbacks this lifecycle needs back from the surrounding client. It is
54
+ * deliberately minimal — three callbacks, each resolved lazily at call time,
55
+ * because the connection machinery behind two of them isn't constructed until
56
+ * the sync connection is set up.
57
57
  */
58
58
  export interface CredentialLifecycleContext {
59
59
  /** Push a freshly-minted access token into the shared credential source
60
60
  * (no-op when the deployment wired no credential source). */
61
61
  setAuthToken(token: string): void;
62
- /** Nudge the connection FSM to re-probe with the current credential
63
- * the host's `nudgeReconnect()` (`CREDENTIAL_REFRESHED`). */
62
+ /** Nudge the connection to re-probe using the credential now in place. */
64
63
  nudgeReconnect(): void;
65
- /** Surface a terminal session loss to the connection FSM
66
- * (`BOOTSTRAP_FAILED_SESSION`) — the long-lived login is gone. */
64
+ /** Report that the long-lived login is gone, so the connection can move to
65
+ * its signed-out state. */
67
66
  reportSessionExpired(): void;
68
67
  }
69
68
  export declare class CredentialLifecycle {
70
69
  private readonly ctx;
71
70
  /**
72
- * Re-mint hook for the short-lived access credential (the Stripe-style
73
- * `ek_`/`rk_`). Wired by the React provider from its `getToken`/`authEndpoint`
74
- * the engine owns WHEN to refresh (a stale-credential probe / an external
75
- * nudge), the integrator owns HOW to mint. Mirrors the `getToken` contract:
76
- * resolves a token string on success, `null` when the long-lived login is
77
- * gone (terminal), and THROWS on a transient/offline failure. Used by
78
- * {@link refresh}. Absent no silent re-mint (e.g. a static
79
- * `apiKey` deployment whose credential source refreshes out-of-band).
71
+ * The hook that mints a fresh short-lived access credential (the `ek_`/`rk_`
72
+ * key). An integrator wires it from their own token endpoint: this lifecycle
73
+ * decides when to refresh (a stale-credential probe or an external nudge),
74
+ * and the hook decides how to mint. It follows the same contract as a
75
+ * `getToken` function — it resolves a token string on success, `null` when
76
+ * the long-lived login is gone (a terminal state), and throws on a transient
77
+ * or offline failure. Used by {@link refresh}. When it is absent there is no
78
+ * silent re-mint, as with a static `apiKey` whose credential source is
79
+ * refreshed elsewhere.
80
80
  */
81
81
  private credentialRefresher;
82
82
  /** Single-flight guard so a wake nudge + an in-flight request + a probe don't
83
83
  * all mint at once (the classic "token thrash → random logout" bug). */
84
84
  private inFlightCredentialRefresh;
85
- /** Teardown for the proactive credential lifecycle (refresh timer + wake/
86
- * online/focus listeners) installed by {@link start};
87
- * cleared on `BaseSyncedStore.disconnect`. Null when no resolver is wired. */
85
+ /** Tears down the proactive credential lifecycle (the refresh timer and the
86
+ * OS-wake listener) installed by {@link start}; cleared when the client
87
+ * disconnects. Null when no refresher is wired. */
88
88
  private credentialLifecycleTeardown;
89
- /** Epoch ms the CURRENT credential expires, when the refresher reports it
90
- * (object-form {@link CredentialRefreshResult}); `null` for the classic
91
- * string-form resolver the pre-roll falls back to its fixed cadence. */
89
+ /** Epoch milliseconds at which the current credential expires, when the
90
+ * refresher reports it (the object form of {@link CredentialRefreshResult}).
91
+ * `null` for the string-form resolver, in which case the pre-roll uses its
92
+ * fixed interval. */
92
93
  private credentialExpiresAtMs;
93
- /** Re-arm hook for the proactive pre-roll timer (set by {@link start}).
94
- * Invoked after every successful mint so a REACTIVE refresh (probe, wake,
95
- * the initial `ready()` mint) immediately re-anchors the schedule to the
96
- * fresh credential's real expiry instead of a stale fixed delay. */
94
+ /** Re-arms the proactive pre-roll timer (set by {@link start}). Called after
95
+ * every successful mint, so a refresh triggered reactively (by a probe, an
96
+ * OS wake, or the first mint) re-anchors the schedule to the fresh
97
+ * credential's real expiry instead of a stale fixed delay. */
97
98
  private prerollReschedule;
98
99
  constructor(ctx: CredentialLifecycleContext);
99
100
  /**
100
- * Register the access-credential re-mint hook. Called by the React provider
101
- * with a thunk that mints a fresh `ek_`/`rk_` (typically its `getToken`).
102
- * See {@link credentialRefresher}.
101
+ * Registers the re-mint hook for the access credential — a function that
102
+ * mints a fresh `ek_`/`rk_` key, typically the integrator's `getToken`. See
103
+ * {@link credentialRefresher}.
103
104
  */
104
105
  setRefresher(refresher: CredentialRefresher | null): void;
105
106
  /**
106
- * Re-mint the short-lived access credential and push it into the credential
107
- * source, reporting a tri-state outcome the `ConnectionManager` maps to
108
- * its FSM. The contract mirrors `getToken` (and PowerSync's `fetchCredentials`
109
- * / Liveblocks' `authEndpoint`, but made explicit instead of overloading
110
- * return/throw):
111
- * - token string → `'refreshed'` (fresh key in place; re-probe & reconnect)
112
- * - `null` → `'session_error'` (login itself is gone → terminal, sign out)
113
- * - throw → `'network_error'` (couldn't reach the mint endpoint → transient)
107
+ * Re-mints the short-lived access credential, pushes it into the credential
108
+ * source, and reports a three-way outcome the connection layer acts on:
109
+ * - a token string `'refreshed'` (the fresh key is in place; re-probe and reconnect)
110
+ * - `null` → `'session_error'` (the login itself is gone — terminal, sign out)
111
+ * - a thrown error → `'network_error'` (the mint endpoint was unreachable — transient)
114
112
  *
115
- * SINGLE-FLIGHT: concurrent callers (a wake nudge, an in-flight request, the
116
- * probe) share one in-flight promise so we never double-mint — the canonical
117
- * fix for the "every 401 mints a token thrash spurious logout" anti-pattern.
113
+ * The call is single-flight: concurrent triggers (an OS wake, an in-flight
114
+ * request, a probe) share one in-flight promise, so the credential is never
115
+ * minted twice at once. This avoids the failure where every rejected request
116
+ * mints a new token and the resulting thrash logs the user out.
118
117
  *
119
- * No refresher wired `'refreshed'` (a no-op re-probe): a static-`apiKey`
120
- * deployment has no session to re-mint from; its credential source refreshes
121
- * out-of-band, so we just re-probe with whatever it currently holds.
118
+ * With no refresher wired, it resolves `'refreshed'` as a no-op re-probe: a
119
+ * static-`apiKey` client has no session to mint from and its credential
120
+ * source is refreshed elsewhere, so it simply re-probes with what it holds.
122
121
  */
123
122
  refresh(): Promise<CredentialRefreshOutcome>;
124
123
  /**
125
- * Route a refresh outcome into the FSM — the ONE place the tri-state is
126
- * interpreted, shared by the proactive pre-roll, the wake nudge, and the
127
- * HTTP auth-recovery path so every trigger converges on identical behavior.
124
+ * Interprets a refresh outcome and drives the connection accordingly. This is
125
+ * the single place the three-way outcome is acted on, shared by the proactive
126
+ * pre-roll, the OS-wake nudge, and the HTTP auth-recovery path, so every
127
+ * trigger converges on the same behavior.
128
128
  */
129
129
  private routeRefreshOutcome;
130
130
  /**
131
- * THE recovery backbone for auth-rejected requests, whatever the transport.
132
- * The WS probe already routes 401s through the FSM; HTTP consumers (the
133
- * lazy-query lane, bootstrap helpers) call THIS instead of inventing their
134
- * own handling — one single-flight mint, one outcome routing, one taxonomy.
135
- *
136
- * Mirrors `NetworkProbe`'s classification of the same codes:
137
- * - `access_credential_expiry` the routine case (an expired `ek_`/`rk_`):
138
- * silently re-mint via the single-flight {@link refresh} and tell the
139
- * caller to replay ONCE on success. Never a sign-out by itself — the
140
- * only terminal path is the mint itself resolving `null`.
141
- * - `session_expiry` the login is gone. Report to the FSM (sign-out
142
- * path) and stop; replaying is pointless.
143
- * - `auth_blocked` / `permission` / everything else re-minting produces
144
- * the same rejected credential; stop without touching the FSM.
131
+ * The shared recovery path for a request rejected on authentication, over any
132
+ * transport. The WebSocket probe already routes its own 401s; HTTP callers
133
+ * call this instead of inventing their own handling, so every path shares one
134
+ * single-flight mint, one outcome routing, and one taxonomy. It classifies
135
+ * the same recovery codes the connection probe does:
136
+ * - `access_credential_expiry` the routine case, an expired `ek_`/`rk_`:
137
+ * silently re-mint through the single-flight {@link refresh} and tell the
138
+ * caller to replay once on success. This never signs out on its own; the
139
+ * only terminal path is the mint resolving `null`.
140
+ * - `session_expiry` the login is gone: report it (which drives sign-out)
141
+ * and stop, since replaying is pointless.
142
+ * - `auth_blocked`, `permission`, and everything else re-minting would
143
+ * produce the same rejected credential, so stop and leave the connection
144
+ * alone.
145
145
  */
146
146
  recoverFromAuthRejection(recovery: RecoveryClass): Promise<CredentialRecoveryOutcome>;
147
147
  /**
148
- * Install the access-credential lifecycle the CLIENT owns (this used to live
149
- * in the React provider wrong layer). Two parts:
150
- * 1. REACTIVE register `getToken` as the re-mint hook the FSM calls when a
151
- * probe finds the key stale (`credential_stale`) or on a nudge.
152
- * 2. PROACTIVE keep the short-lived key fresh ahead of trouble: a refresh
153
- * timer inside the TTL, plus re-mint on OS wake. The ENTIRE proactive
154
- * block is browser-gated (`typeof window`): server/SSR has no socket to
155
- * keep warm and the resolver is browser-oriented, so arming it in Node
156
- * would fire a relative-URL fetch and throw. (Agents pass a static
157
- * `apiKey` with no resolver, so this method is never called for them.)
148
+ * Installs the credential lifecycle. It has two parts:
149
+ * 1. Reactive registers `getToken` as the re-mint hook the connection
150
+ * calls when a probe finds the key stale, or on a nudge.
151
+ * 2. Proactive — keeps the short-lived key fresh ahead of expiry with a
152
+ * refresh timer inside the credential's lifetime, plus a re-mint on OS
153
+ * wake. The whole proactive block is browser-gated on `typeof window`,
154
+ * because a server render has no socket to keep warm and the resolver is
155
+ * browser-oriented; arming it under Node would fire a relative-URL fetch
156
+ * and throw. (Agents pass a static `apiKey` with no resolver, so this
157
+ * method is never called for them.)
158
158
  *
159
- * Config-driven and invisible, like Supabase's `autoRefreshToken` consumers
160
- * never call a refresh method. Idempotent (a second call replaces the first);
161
- * torn down on `BaseSyncedStore.disconnect`.
159
+ * Refreshing is automatic a consumer never calls a refresh method. The call
160
+ * is idempotent: a second call replaces the first, and it is torn down when
161
+ * the client disconnects.
162
162
  *
163
- * `opts.proactiveInNode` arms the refresh TIMER on a windowless host too
164
- * set for agent/system participants (long-lived server sockets whose
165
- * `rk_`/`ek_` must renew BEFORE the hub's keepalive reaper closes them; the
166
- * PowerSync/Ably "SDK renews everywhere" model). Node timers are `unref`ed
167
- * so a finishing script is never kept alive by the pre-roll. The OS-wake
168
- * listener remains browser-only regardless (no `window` to listen on).
163
+ * `opts.proactiveInNode` arms the refresh timer on a windowless host as well.
164
+ * Set it for agent or system participants long-lived server sockets whose
165
+ * `rk_`/`ek_` must renew before the server's keepalive check closes them.
166
+ * Node timers are `unref`ed, so a finishing script is never held alive by the
167
+ * pre-roll. The OS-wake listener stays browser-only regardless, since there
168
+ * is no `window` to listen on.
169
169
  */
170
170
  start(getToken: CredentialRefresher, opts?: {
171
171
  proactiveInNode?: boolean;