@abloatai/ablo 0.34.0 → 0.35.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 (483) hide show
  1. package/AGENTS.md +4 -1
  2. package/CHANGELOG.md +684 -5
  3. package/README.md +39 -22
  4. package/dist/BaseSyncedStore.d.ts +152 -44
  5. package/dist/BaseSyncedStore.js +300 -184
  6. package/dist/Database.d.ts +9 -24
  7. package/dist/Database.js +37 -22
  8. package/dist/InstanceCache.d.ts +25 -4
  9. package/dist/InstanceCache.js +48 -15
  10. package/dist/LazyReferenceCollection.d.ts +3 -3
  11. package/dist/LazyReferenceCollection.js +4 -4
  12. package/dist/Model.d.ts +6 -6
  13. package/dist/Model.js +10 -10
  14. package/dist/ModelRegistry.d.ts +4 -4
  15. package/dist/ModelRegistry.js +3 -3
  16. package/dist/{SyncEngineContext.d.ts → RuntimeContext.d.ts} +20 -13
  17. package/dist/{SyncEngineContext.js → RuntimeContext.js} +11 -12
  18. package/dist/SyncClient.d.ts +42 -32
  19. package/dist/SyncClient.js +166 -110
  20. package/dist/ai-sdk/coordinatedTool.d.ts +2 -2
  21. package/dist/ai-sdk/coordinatedTool.js +1 -1
  22. package/dist/ai-sdk/coordinationContext.d.ts +2 -2
  23. package/dist/ai-sdk/coordinationContext.js +1 -1
  24. package/dist/ai-sdk/wrap.d.ts +3 -3
  25. package/dist/ai-sdk/wrap.js +2 -2
  26. package/dist/auth/index.d.ts +1 -156
  27. package/dist/auth/index.js +8 -301
  28. package/dist/cli.cjs +3459 -1126
  29. package/dist/client/Ablo.d.ts +42 -287
  30. package/dist/client/Ablo.js +118 -963
  31. package/dist/client/abloClient.d.ts +309 -0
  32. package/dist/client/abloClient.js +13 -0
  33. package/dist/client/clientPrelude.d.ts +52 -0
  34. package/dist/client/clientPrelude.js +60 -0
  35. package/dist/client/consoleLogger.d.ts +2 -2
  36. package/dist/client/coreClient.d.ts +60 -0
  37. package/dist/client/coreClient.js +118 -0
  38. package/dist/client/createInternalComponents.d.ts +4 -4
  39. package/dist/client/createInternalComponents.js +9 -8
  40. package/dist/client/createModelProxy.d.ts +78 -373
  41. package/dist/client/createModelProxy.js +114 -86
  42. package/dist/client/humans.d.ts +48 -0
  43. package/dist/client/humans.js +52 -0
  44. package/dist/client/modelRegistration.d.ts +1 -1
  45. package/dist/client/modelRegistration.js +9 -9
  46. package/dist/client/options.d.ts +73 -17
  47. package/dist/client/reactiveEngine.d.ts +48 -0
  48. package/dist/client/reactiveEngine.js +910 -0
  49. package/dist/client/resourceTypes.d.ts +9 -250
  50. package/dist/client/resourceTypes.js +8 -5
  51. package/dist/client/schemaConfig.d.ts +4 -4
  52. package/dist/client/schemaConfig.js +6 -2
  53. package/dist/client/validateAbloOptions.d.ts +3 -2
  54. package/dist/client/validateAbloOptions.js +1 -1
  55. package/dist/client/wsMutationExecutor.d.ts +3 -3
  56. package/dist/client/wsMutationExecutor.js +3 -3
  57. package/dist/context.d.ts +9 -9
  58. package/dist/context.js +10 -9
  59. package/dist/coordination/ClaimLog.d.ts +26 -0
  60. package/dist/coordination/ClaimLog.js +32 -0
  61. package/dist/coordination/index.d.ts +1 -15
  62. package/dist/coordination/index.js +8 -31
  63. package/dist/core/DatabaseManager.js +1 -1
  64. package/dist/core/QueryView.d.ts +1 -1
  65. package/dist/core/QueryView.js +1 -1
  66. package/dist/core/StoreManager.d.ts +4 -23
  67. package/dist/core/StoreManager.js +5 -55
  68. package/dist/core/index.d.ts +2 -2
  69. package/dist/core/index.js +2 -2
  70. package/dist/core/storeContract.d.ts +2 -2
  71. package/dist/docs/catalog.d.ts +72 -0
  72. package/dist/docs/catalog.js +227 -0
  73. package/dist/docs/index.d.ts +10 -0
  74. package/dist/docs/index.js +10 -0
  75. package/dist/environment.d.ts +1 -40
  76. package/dist/environment.js +8 -37
  77. package/dist/index.d.ts +40 -34
  78. package/dist/index.js +26 -20
  79. package/dist/interfaces/index.d.ts +44 -134
  80. package/dist/keys/index.d.ts +1 -77
  81. package/dist/keys/index.js +8 -190
  82. package/dist/mutators/{RecordingTransaction.d.ts → RecordingMutation.d.ts} +4 -4
  83. package/dist/mutators/{RecordingTransaction.js → RecordingMutation.js} +2 -2
  84. package/dist/mutators/Transaction.d.ts +1 -1
  85. package/dist/mutators/Transaction.js +1 -1
  86. package/dist/mutators/UndoManager.d.ts +6 -6
  87. package/dist/mutators/UndoManager.js +5 -5
  88. package/dist/mutators/defineMutators.d.ts +3 -3
  89. package/dist/mutators/defineMutators.js +1 -1
  90. package/dist/mutators/inverseOp.js +2 -2
  91. package/dist/mutators/mutateActions.d.ts +3 -3
  92. package/dist/mutators/mutateActions.js +1 -1
  93. package/dist/mutators/readerActions.d.ts +1 -1
  94. package/dist/mutators/undoApply.d.ts +1 -1
  95. package/dist/mutators/undoApply.js +1 -1
  96. package/dist/policy/index.d.ts +2 -2
  97. package/dist/policy/index.js +1 -1
  98. package/dist/query/client.d.ts +2 -2
  99. package/dist/query/client.js +4 -4
  100. package/dist/query/types.d.ts +6 -41
  101. package/dist/query/types.js +2 -2
  102. package/dist/react/AbloProvider.d.ts +6 -8
  103. package/dist/react/AbloProvider.js +5 -7
  104. package/dist/react/context.d.ts +1 -1
  105. package/dist/react/context.js +1 -1
  106. package/dist/react/index.d.ts +5 -5
  107. package/dist/react/index.js +3 -3
  108. package/dist/react/internalContext.d.ts +1 -1
  109. package/dist/react/useAblo.d.ts +3 -3
  110. package/dist/react/useAblo.js +1 -1
  111. package/dist/react/useCurrentUserId.js +1 -1
  112. package/dist/react/useErrorListener.js +1 -1
  113. package/dist/react/useMutationFailureListener.d.ts +2 -2
  114. package/dist/react/useMutationFailureListener.js +1 -1
  115. package/dist/react/useMutators.d.ts +3 -3
  116. package/dist/react/useMutators.js +3 -3
  117. package/dist/react/useUndoScope.d.ts +5 -5
  118. package/dist/react/useUndoScope.js +1 -1
  119. package/dist/schema/coordination.d.ts +69 -10
  120. package/dist/schema/coordination.js +86 -9
  121. package/dist/schema/ddl.js +2 -2
  122. package/dist/schema/diff.d.ts +1 -1
  123. package/dist/schema/generate.js +1 -1
  124. package/dist/schema/index.d.ts +10 -10
  125. package/dist/schema/index.js +18 -18
  126. package/dist/schema/queries.d.ts +27 -27
  127. package/dist/schema/queries.js +23 -23
  128. package/dist/schema/select.d.ts +3 -3
  129. package/dist/schema/select.js +3 -3
  130. package/dist/schema/serialize.d.ts +15 -6
  131. package/dist/schema/serialize.js +17 -3
  132. package/dist/schema/sugar.d.ts +6 -7
  133. package/dist/schema/sugar.js +9 -12
  134. package/dist/schema/syncDeltaRow.d.ts +4 -152
  135. package/dist/schema/syncDeltaRow.js +4 -105
  136. package/dist/server/adapter.d.ts +18 -1
  137. package/dist/server/commit.d.ts +10 -16
  138. package/dist/server/index.d.ts +1 -1
  139. package/dist/server/index.js +1 -1
  140. package/dist/server/readConfig.d.ts +1 -1
  141. package/dist/source/adapters/drizzle.d.ts +1 -1
  142. package/dist/source/adapters/drizzle.js +2 -2
  143. package/dist/source/adapters/kysely.d.ts +1 -1
  144. package/dist/source/adapters/kysely.js +1 -1
  145. package/dist/source/adapters/kyselyMutationCore.d.ts +1 -1
  146. package/dist/source/adapters/kyselyMutationCore.js +2 -2
  147. package/dist/source/adapters/memory.js +1 -1
  148. package/dist/source/adapters/prisma.d.ts +8 -3
  149. package/dist/source/adapters/prisma.js +1 -1
  150. package/dist/source/connector.js +1 -1
  151. package/dist/source/connectorProtocol.d.ts +2 -8
  152. package/dist/source/connectorProtocol.js +3 -2
  153. package/dist/source/contract.d.ts +29 -17
  154. package/dist/source/contract.js +27 -22
  155. package/dist/source/factory.d.ts +1 -1
  156. package/dist/source/footprint.d.ts +111 -0
  157. package/dist/source/footprint.js +0 -0
  158. package/dist/source/idempotency.js +2 -2
  159. package/dist/source/index.d.ts +1 -0
  160. package/dist/source/index.js +3 -0
  161. package/dist/source/next.d.ts +1 -1
  162. package/dist/source/signing.d.ts +9 -2
  163. package/dist/source/signing.js +4 -1
  164. package/dist/source/types.d.ts +6 -4
  165. package/dist/source/types.js +1 -1
  166. package/dist/stores/ObjectStore.d.ts +1 -1
  167. package/dist/stores/SyncActionStore.d.ts +1 -1
  168. package/dist/stores/SyncActionStore.js +2 -10
  169. package/dist/stores/syncAction.d.ts +26 -0
  170. package/dist/stores/syncAction.js +16 -0
  171. package/dist/surface.d.ts +3 -3
  172. package/dist/surface.js +6 -4
  173. package/dist/sync/BootstrapFetcher.d.ts +123 -6
  174. package/dist/sync/BootstrapFetcher.js +492 -66
  175. package/dist/sync/ConnectionManager.d.ts +6 -198
  176. package/dist/sync/ConnectionManager.js +6 -677
  177. package/dist/sync/OnDemandLoader.d.ts +2 -2
  178. package/dist/sync/OnDemandLoader.js +60 -21
  179. package/dist/sync/SubscriptionManager.d.ts +13 -2
  180. package/dist/sync/SubscriptionManager.js +23 -5
  181. package/dist/sync/SyncWebSocket.d.ts +27 -510
  182. package/dist/sync/SyncWebSocket.js +76 -954
  183. package/dist/sync/awaitClaimGrant.d.ts +4 -44
  184. package/dist/sync/awaitClaimGrant.js +4 -109
  185. package/dist/sync/commitFrames.d.ts +6 -40
  186. package/dist/sync/commitFrames.js +6 -97
  187. package/dist/sync/contextPorts.d.ts +18 -0
  188. package/dist/sync/contextPorts.js +31 -0
  189. package/dist/sync/createClaimStream.d.ts +5 -49
  190. package/dist/sync/createClaimStream.js +5 -469
  191. package/dist/sync/createPresenceStream.d.ts +26 -4
  192. package/dist/sync/createPresenceStream.js +28 -20
  193. package/dist/sync/createSnapshot.d.ts +2 -2
  194. package/dist/sync/createSnapshot.js +1 -1
  195. package/dist/sync/credentialLifecycle.d.ts +5 -173
  196. package/dist/sync/credentialLifecycle.js +5 -320
  197. package/dist/sync/deltaPipeline.d.ts +1 -1
  198. package/dist/sync/participants.d.ts +5 -4
  199. package/dist/sync/participants.js +29 -22
  200. package/dist/sync/schemaDrift.d.ts +55 -0
  201. package/dist/sync/schemaDrift.js +53 -0
  202. package/dist/sync/schemas.d.ts +21 -32
  203. package/dist/sync/schemas.js +26 -17
  204. package/dist/sync/syncPlan.d.ts +3 -3
  205. package/dist/sync/wsFrameHandlers.d.ts +6 -114
  206. package/dist/sync/wsFrameHandlers.js +6 -392
  207. package/dist/testing/fixtures/bootstrap.d.ts +1 -1
  208. package/dist/testing/fixtures/deltas.d.ts +1 -1
  209. package/dist/testing/fixtures/httpResponses.d.ts +70 -0
  210. package/dist/testing/fixtures/httpResponses.js +90 -0
  211. package/dist/testing/fixtures/models.js +1 -1
  212. package/dist/testing/helpers/wait.js +1 -1
  213. package/dist/testing/mocks/MockMutationExecutor.d.ts +2 -2
  214. package/dist/testing/mocks/MockMutationExecutor.js +8 -14
  215. package/dist/testing/mocks/MockSyncContext.d.ts +11 -11
  216. package/dist/testing/mocks/MockSyncContext.js +10 -9
  217. package/dist/testing/mocks/MockSyncStore.js +1 -1
  218. package/dist/testing/mocks/MockWebSocket.d.ts +2 -2
  219. package/dist/transaction/ablo.d.ts +88 -0
  220. package/dist/transaction/ablo.js +33 -0
  221. package/dist/{client/auth.d.ts → transaction/auth/apiKey.d.ts} +43 -8
  222. package/dist/{client/auth.js → transaction/auth/apiKey.js} +19 -0
  223. package/dist/transaction/auth/bootstrapScope.d.ts +15 -0
  224. package/dist/transaction/auth/bootstrapScope.js +1 -0
  225. package/dist/transaction/auth/capability.d.ts +177 -0
  226. package/dist/transaction/auth/capability.js +199 -0
  227. package/dist/{auth → transaction/auth}/credentialSource.d.ts +8 -1
  228. package/dist/{client → transaction/auth}/identity.d.ts +8 -7
  229. package/dist/{client → transaction/auth}/identity.js +1 -1
  230. package/dist/transaction/auth/index.d.ts +162 -0
  231. package/dist/transaction/auth/index.js +304 -0
  232. package/dist/{auth → transaction/auth}/schemas.d.ts +1 -1
  233. package/dist/{auth → transaction/auth}/schemas.js +13 -13
  234. package/dist/{client → transaction/auth}/sessionMint.d.ts +8 -8
  235. package/dist/{client → transaction/auth}/sessionMint.js +4 -7
  236. package/dist/transaction/coordination/awaitClaimGrant.d.ts +49 -0
  237. package/dist/transaction/coordination/awaitClaimGrant.js +112 -0
  238. package/dist/transaction/coordination/claimMeta.d.ts +49 -0
  239. package/dist/transaction/coordination/claimMeta.js +52 -0
  240. package/dist/transaction/coordination/createClaimStream.d.ts +64 -0
  241. package/dist/transaction/coordination/createClaimStream.js +475 -0
  242. package/dist/transaction/coordination/events.d.ts +74 -0
  243. package/dist/transaction/coordination/events.js +7 -0
  244. package/dist/transaction/coordination/index.d.ts +19 -0
  245. package/dist/transaction/coordination/index.js +44 -0
  246. package/dist/transaction/coordination/locator.d.ts +83 -0
  247. package/dist/transaction/coordination/locator.js +82 -0
  248. package/dist/transaction/coordination/schema.d.ts +1473 -0
  249. package/dist/{coordination → transaction/coordination}/schema.js +490 -55
  250. package/dist/transaction/coordination/targetConflict.d.ts +2 -0
  251. package/dist/transaction/coordination/targetConflict.js +103 -0
  252. package/dist/{coordination → transaction/coordination}/trace.d.ts +7 -18
  253. package/dist/{coordination → transaction/coordination}/trace.js +18 -25
  254. package/dist/transaction/durableWrites.d.ts +62 -0
  255. package/dist/{client → transaction}/durableWrites.js +28 -3
  256. package/dist/transaction/environment.d.ts +105 -0
  257. package/dist/transaction/environment.js +108 -0
  258. package/dist/{errorCodes.d.ts → transaction/errorCodes.d.ts} +11 -11
  259. package/dist/{errorCodes.js → transaction/errorCodes.js} +35 -12
  260. package/dist/{errors.d.ts → transaction/errors.d.ts} +37 -13
  261. package/dist/{errors.js → transaction/errors.js} +85 -16
  262. package/dist/transaction/index.d.ts +20 -0
  263. package/dist/transaction/index.js +20 -0
  264. package/dist/transaction/keys/index.d.ts +87 -0
  265. package/dist/transaction/keys/index.js +207 -0
  266. package/dist/transaction/log/syncDeltaRow.d.ts +158 -0
  267. package/dist/transaction/log/syncDeltaRow.js +95 -0
  268. package/dist/{sync/syncPosition.d.ts → transaction/logPosition.d.ts} +22 -8
  269. package/dist/{sync/syncPosition.js → transaction/logPosition.js} +15 -6
  270. package/dist/transaction/logger.d.ts +16 -0
  271. package/dist/transaction/logger.js +7 -0
  272. package/dist/transaction/observability.d.ts +53 -0
  273. package/dist/transaction/observability.js +19 -0
  274. package/dist/transaction/plugin.d.ts +192 -0
  275. package/dist/transaction/plugin.js +87 -0
  276. package/dist/{policy → transaction/policy}/types.d.ts +3 -3
  277. package/dist/{policy → transaction/policy}/types.js +2 -0
  278. package/dist/transaction/resources/httpResources.d.ts +266 -0
  279. package/dist/transaction/resources/httpResources.js +7 -0
  280. package/dist/transaction/resources/modelOperations.d.ts +319 -0
  281. package/dist/transaction/resources/modelOperations.js +12 -0
  282. package/dist/transaction/resources/mutationOptions.d.ts +66 -0
  283. package/dist/transaction/resources/mutationOptions.js +9 -0
  284. package/dist/transaction/resources/where.d.ts +85 -0
  285. package/dist/transaction/resources/where.js +70 -0
  286. package/dist/{client → transaction/resources}/writeOptionsSchema.d.ts +2 -6
  287. package/dist/{client → transaction/resources}/writeOptionsSchema.js +9 -5
  288. package/dist/{schema → transaction/schema}/field.d.ts +5 -5
  289. package/dist/{schema → transaction/schema}/field.js +5 -5
  290. package/dist/transaction/schema/loadStrategy.d.ts +45 -0
  291. package/dist/transaction/schema/loadStrategy.js +46 -0
  292. package/dist/{schema → transaction/schema}/model.d.ts +50 -35
  293. package/dist/{schema → transaction/schema}/model.js +30 -20
  294. package/dist/transaction/schema/openapi.d.ts +57 -0
  295. package/dist/transaction/schema/openapi.js +340 -0
  296. package/dist/{schema → transaction/schema}/relation.d.ts +14 -14
  297. package/dist/{schema → transaction/schema}/relation.js +7 -7
  298. package/dist/{schema → transaction/schema}/residency.d.ts +0 -9
  299. package/dist/{schema → transaction/schema}/residency.js +0 -5
  300. package/dist/{schema → transaction/schema}/roles.d.ts +5 -5
  301. package/dist/{schema → transaction/schema}/roles.js +5 -5
  302. package/dist/{schema → transaction/schema}/schema.d.ts +12 -10
  303. package/dist/{schema → transaction/schema}/schema.js +4 -3
  304. package/dist/{schema → transaction/schema}/tenancy.d.ts +1 -1
  305. package/dist/{schema → transaction/schema}/tenancy.js +7 -4
  306. package/dist/transaction/transactionLayer.d.ts +82 -0
  307. package/dist/transaction/transactionLayer.js +24 -0
  308. package/dist/{transactions → transaction/transactions/settlement}/commitEnvelope.d.ts +4 -5
  309. package/dist/{transactions → transaction/transactions/settlement}/commitEnvelope.js +9 -13
  310. package/dist/{transactions → transaction/transactions/settlement}/httpCommitEnvelope.d.ts +9 -2
  311. package/dist/{transactions → transaction/transactions/settlement}/httpCommitEnvelope.js +5 -9
  312. package/dist/{transactions/durableWriteStore.d.ts → transaction/transactions/settlement/pendingWrite.d.ts} +10 -36
  313. package/dist/transaction/transactions/settlement/pendingWrite.js +20 -0
  314. package/dist/transaction/transport/commitFrames.d.ts +90 -0
  315. package/dist/transaction/transport/commitFrames.js +134 -0
  316. package/dist/transaction/transport/connectionManager.d.ts +215 -0
  317. package/dist/transaction/transport/connectionManager.js +673 -0
  318. package/dist/transaction/transport/credentialLifecycle.d.ts +177 -0
  319. package/dist/transaction/transport/credentialLifecycle.js +324 -0
  320. package/dist/{sync → transaction/transport}/heartbeat.d.ts +3 -1
  321. package/dist/{sync → transaction/transport}/heartbeat.js +6 -4
  322. package/dist/{client → transaction/transport}/httpClient.d.ts +59 -16
  323. package/dist/{client → transaction/transport}/httpClient.js +5 -5
  324. package/dist/transaction/transport/httpOptions.d.ts +33 -0
  325. package/dist/transaction/transport/httpOptions.js +12 -0
  326. package/dist/{client → transaction/transport}/httpTransport.js +171 -85
  327. package/dist/{sync/NetworkProbe.d.ts → transaction/transport/networkProbe.d.ts} +7 -4
  328. package/dist/{sync/NetworkProbe.js → transaction/transport/networkProbe.js} +14 -13
  329. package/dist/transaction/transport/wsFrameHandlers.d.ts +128 -0
  330. package/dist/transaction/transport/wsFrameHandlers.js +429 -0
  331. package/dist/transaction/transport/wsTransport.d.ts +576 -0
  332. package/dist/transaction/transport/wsTransport.js +1017 -0
  333. package/dist/transaction/types/assertExact.d.ts +17 -0
  334. package/dist/transaction/types/assertExact.js +1 -0
  335. package/dist/{types → transaction/types}/global.d.ts +17 -2
  336. package/dist/{types → transaction/types}/global.js +2 -1
  337. package/dist/{types → transaction/types}/index.d.ts +14 -46
  338. package/dist/{types → transaction/types}/index.js +7 -16
  339. package/dist/{types → transaction/types}/streams.d.ts +63 -45
  340. package/dist/{utils → transaction/utils}/json.d.ts +18 -0
  341. package/dist/transaction/utils/json.js +276 -0
  342. package/dist/transaction/wire/accountResponses.d.ts +351 -0
  343. package/dist/transaction/wire/accountResponses.js +255 -0
  344. package/dist/transaction/wire/auth.d.ts +49 -0
  345. package/dist/transaction/wire/auth.js +57 -0
  346. package/dist/transaction/wire/claimEvent.d.ts +76 -0
  347. package/dist/transaction/wire/claimEvent.js +73 -0
  348. package/dist/transaction/wire/claims.d.ts +463 -0
  349. package/dist/transaction/wire/claims.js +229 -0
  350. package/dist/{wire → transaction/wire}/commit.d.ts +125 -193
  351. package/dist/{wire → transaction/wire}/commit.js +68 -47
  352. package/dist/{wire → transaction/wire}/delta.d.ts +66 -17
  353. package/dist/{wire → transaction/wire}/delta.js +37 -13
  354. package/dist/transaction/wire/errorEnvelope.d.ts +72 -0
  355. package/dist/{wire → transaction/wire}/errorEnvelope.js +36 -5
  356. package/dist/transaction/wire/feedCursor.d.ts +60 -0
  357. package/dist/transaction/wire/feedCursor.js +82 -0
  358. package/dist/transaction/wire/feedEvent.d.ts +177 -0
  359. package/dist/transaction/wire/feedEvent.js +39 -0
  360. package/dist/transaction/wire/frames.d.ts +194 -0
  361. package/dist/transaction/wire/frames.js +50 -0
  362. package/dist/transaction/wire/inboundFrames.d.ts +552 -0
  363. package/dist/transaction/wire/inboundFrames.js +116 -0
  364. package/dist/transaction/wire/index.d.ts +50 -0
  365. package/dist/transaction/wire/index.js +74 -0
  366. package/dist/{wire → transaction/wire}/listEnvelope.d.ts +13 -14
  367. package/dist/transaction/wire/listEnvelope.js +42 -0
  368. package/dist/transaction/wire/modelResponses.d.ts +85 -0
  369. package/dist/transaction/wire/modelResponses.js +43 -0
  370. package/dist/transactions/{TransactionQueue.d.ts → mutations/MutationQueue.d.ts} +79 -38
  371. package/dist/transactions/{TransactionQueue.js → mutations/MutationQueue.js} +110 -59
  372. package/dist/transactions/{TransactionStore.d.ts → mutations/MutationStore.d.ts} +8 -8
  373. package/dist/transactions/{TransactionStore.js → mutations/MutationStore.js} +2 -2
  374. package/dist/transactions/{coalesceRules.d.ts → mutations/coalesceRules.d.ts} +10 -10
  375. package/dist/transactions/{coalesceRules.js → mutations/coalesceRules.js} +1 -1
  376. package/dist/transactions/mutations/commitLatency.d.ts +52 -0
  377. package/dist/transactions/mutations/commitLatency.js +130 -0
  378. package/dist/transactions/{commitOutboxStore.d.ts → mutations/commitOutboxStore.d.ts} +1 -5
  379. package/dist/transactions/{commitOutboxStore.js → mutations/commitOutboxStore.js} +1 -1
  380. package/dist/transactions/{commitPayload.d.ts → mutations/commitPayload.d.ts} +16 -15
  381. package/dist/transactions/{commitPayload.js → mutations/commitPayload.js} +12 -12
  382. package/dist/transactions/{deltaConfirmation.d.ts → mutations/deltaConfirmation.d.ts} +11 -11
  383. package/dist/transactions/{deltaConfirmation.js → mutations/deltaConfirmation.js} +7 -7
  384. package/dist/transactions/mutations/durableWriteStore.d.ts +14 -0
  385. package/dist/transactions/mutations/durableWriteStore.js +12 -0
  386. package/dist/transactions/{optimisticApply.d.ts → mutations/optimisticApply.d.ts} +7 -7
  387. package/dist/transactions/{replayValidation.d.ts → mutations/replayValidation.d.ts} +3 -3
  388. package/dist/transactions/{replayValidation.js → mutations/replayValidation.js} +4 -3
  389. package/dist/utils/mobxSetup.d.ts +1 -1
  390. package/dist/utils/mobxSetup.js +5 -2
  391. package/dist/webhooks/events.d.ts +2 -2
  392. package/dist/wire/index.d.ts +1 -34
  393. package/dist/wire/index.js +8 -49
  394. package/docs/agent-messaging.md +3 -3
  395. package/docs/agents.md +19 -12
  396. package/docs/api-keys.md +8 -4
  397. package/docs/api.md +22 -18
  398. package/docs/audit.md +2 -0
  399. package/docs/cli.md +31 -3
  400. package/docs/client-behavior.md +8 -6
  401. package/docs/concurrency-convention.md +30 -24
  402. package/docs/coordination.md +48 -38
  403. package/docs/data-sources.md +3 -1
  404. package/docs/debugging.md +5 -3
  405. package/docs/deployment.md +267 -0
  406. package/docs/examples/agent-human.md +49 -42
  407. package/docs/examples/ai-sdk-tool.md +69 -44
  408. package/docs/examples/existing-python-backend.md +8 -6
  409. package/docs/examples/nextjs.md +129 -47
  410. package/docs/examples/scoped-agent.md +45 -44
  411. package/docs/examples/server-agent.md +46 -26
  412. package/docs/groups.md +32 -29
  413. package/docs/guarantees.md +4 -2
  414. package/docs/how-it-works.md +9 -7
  415. package/docs/idempotency.md +126 -0
  416. package/docs/identity.md +58 -54
  417. package/docs/index.md +172 -84
  418. package/docs/integration-guide.md +17 -16
  419. package/docs/interaction-model.md +6 -4
  420. package/docs/mcp.md +41 -16
  421. package/docs/migration.md +63 -5
  422. package/docs/operating-on-your-database.md +111 -0
  423. package/docs/projects.md +2 -0
  424. package/docs/quickstart.md +22 -5
  425. package/docs/react.md +12 -10
  426. package/docs/schema-contract.md +5 -3
  427. package/docs/session-settings.md +108 -0
  428. package/docs/sessions.md +3 -1
  429. package/docs/webhooks.md +3 -1
  430. package/llms.txt +47 -17
  431. package/package.json +10 -8
  432. package/dist/agent/Agent.d.ts +0 -366
  433. package/dist/agent/Agent.js +0 -514
  434. package/dist/agent/index.d.ts +0 -115
  435. package/dist/agent/index.js +0 -128
  436. package/dist/agent/session.d.ts +0 -93
  437. package/dist/agent/session.js +0 -149
  438. package/dist/agent/types.d.ts +0 -68
  439. package/dist/agent/types.js +0 -9
  440. package/dist/client/durableWrites.d.ts +0 -21
  441. package/dist/coordination/schema.d.ts +0 -722
  442. package/dist/schema/openapi.d.ts +0 -29
  443. package/dist/schema/openapi.js +0 -124
  444. package/dist/transactions/durableWriteStore.js +0 -30
  445. package/dist/utils/json.js +0 -88
  446. package/dist/wire/errorEnvelope.d.ts +0 -55
  447. package/dist/wire/frames.d.ts +0 -197
  448. package/dist/wire/frames.js +0 -49
  449. package/dist/wire/listEnvelope.js +0 -18
  450. /package/dist/{client → transaction/auth}/credentialEndpoint.d.ts +0 -0
  451. /package/dist/{client → transaction/auth}/credentialEndpoint.js +0 -0
  452. /package/dist/{auth → transaction/auth}/credentialPolicy.d.ts +0 -0
  453. /package/dist/{auth → transaction/auth}/credentialPolicy.js +0 -0
  454. /package/dist/{auth → transaction/auth}/credentialSource.js +0 -0
  455. /package/dist/{client → transaction/auth}/hostedEndpoints.d.ts +0 -0
  456. /package/dist/{client → transaction/auth}/hostedEndpoints.js +0 -0
  457. /package/dist/{client → transaction/coordination}/claimHeartbeatLoop.d.ts +0 -0
  458. /package/dist/{client → transaction/coordination}/claimHeartbeatLoop.js +0 -0
  459. /package/dist/{client → transaction}/persistence.d.ts +0 -0
  460. /package/dist/{client → transaction}/persistence.js +0 -0
  461. /package/dist/{client → transaction/resources}/functionalUpdate.d.ts +0 -0
  462. /package/dist/{client → transaction/resources}/functionalUpdate.js +0 -0
  463. /package/dist/{transactions → transaction/transactions/settlement}/idempotencyKey.d.ts +0 -0
  464. /package/dist/{transactions → transaction/transactions/settlement}/idempotencyKey.js +0 -0
  465. /package/dist/{client → transaction/transport}/httpTransport.d.ts +0 -0
  466. /package/dist/{types → transaction/types}/modelData.d.ts +0 -0
  467. /package/dist/{types → transaction/types}/modelData.js +0 -0
  468. /package/dist/{types → transaction/types}/participant.d.ts +0 -0
  469. /package/dist/{types → transaction/types}/participant.js +0 -0
  470. /package/dist/{types → transaction/types}/streams.js +0 -0
  471. /package/dist/{utils → transaction/utils}/asyncIterator.d.ts +0 -0
  472. /package/dist/{utils → transaction/utils}/asyncIterator.js +0 -0
  473. /package/dist/{utils → transaction/utils}/duration.d.ts +0 -0
  474. /package/dist/{utils → transaction/utils}/duration.js +0 -0
  475. /package/dist/{wire → transaction/wire}/bootstrapReason.d.ts +0 -0
  476. /package/dist/{wire → transaction/wire}/bootstrapReason.js +0 -0
  477. /package/dist/{wire → transaction/wire}/protocol.d.ts +0 -0
  478. /package/dist/{wire → transaction/wire}/protocol.js +0 -0
  479. /package/dist/{wire → transaction/wire}/protocolVersion.d.ts +0 -0
  480. /package/dist/{wire → transaction/wire}/protocolVersion.js +0 -0
  481. /package/dist/transactions/{UnconfirmedWrites.d.ts → mutations/UnconfirmedWrites.d.ts} +0 -0
  482. /package/dist/transactions/{UnconfirmedWrites.js → mutations/UnconfirmedWrites.js} +0 -0
  483. /package/dist/transactions/{optimisticApply.js → mutations/optimisticApply.js} +0 -0
@@ -1,17 +1,18 @@
1
1
  /**
2
- * SyncEngineContext — Runtime dependency container
2
+ * RuntimeContext — Runtime dependency container
3
3
  *
4
4
  * All SDK classes receive this context at construction time.
5
5
  * It bundles every injectable dependency so constructors stay clean.
6
6
  */
7
- import type { SyncLogger, SyncObservabilityProvider, SyncAnalytics, SessionErrorDetector, OnlineStatusProvider, ModelDebugLoggerContract, MutationExecutor, SyncEngineConfig } from './interfaces/index.js';
8
- export interface SyncEngineContext {
7
+ import type { Logger, ObservabilityProvider, Analytics, SessionErrorDetector, OnlineStatusProvider, ModelDebugLoggerContract, MutationExecutor, RuntimeConfig } from './interfaces/index.js';
8
+ import type { ModelMetadata } from './transaction/types/index.js';
9
+ export interface RuntimeContext {
9
10
  /** Structured logger */
10
- logger: SyncLogger;
11
+ logger: Logger;
11
12
  /** Error tracking & performance monitoring */
12
- observability: SyncObservabilityProvider;
13
+ observability: ObservabilityProvider;
13
14
  /** Product analytics (optional) */
14
- analytics?: SyncAnalytics;
15
+ analytics?: Analytics;
15
16
  /** Session error detection for auth redirect decisions */
16
17
  sessionErrorDetector: SessionErrorDetector;
17
18
  /** Network connectivity detection */
@@ -21,17 +22,23 @@ export interface SyncEngineContext {
21
22
  /** Backend mutation transport (GraphQL, REST, etc.) */
22
23
  mutationExecutor: MutationExecutor;
23
24
  /** Application-specific sync configuration */
24
- config: SyncEngineConfig;
25
+ config: RuntimeConfig;
26
+ /**
27
+ * Model metadata lookup. Injected by the client (it wires this from its
28
+ * `ModelRegistry`) so the settlement core can resolve a model's metadata
29
+ * without importing the registry — the dependency inversion that keeps the
30
+ * core free of the client's `Model` layer (ADR 0013).
31
+ */
32
+ getModelMetadata: (name: string) => ModelMetadata | undefined;
25
33
  }
26
- /** No-op logger silently discards all log calls */
27
- export declare const noopLogger: SyncLogger;
34
+ export { noopLogger } from './transaction/logger.js';
28
35
  /** No-op observability — silently discards all observability calls */
29
- export declare const noopObservability: SyncObservabilityProvider;
36
+ export declare const noopObservability: ObservabilityProvider;
30
37
  /** No-op analytics — silently discards all analytics calls */
31
- export declare const noopAnalytics: SyncAnalytics;
38
+ export declare const noopAnalytics: Analytics;
32
39
  /** Browser-native online status provider */
33
40
  export declare const browserOnlineStatus: OnlineStatusProvider;
34
- /** Session error detector — delegates to SyncSessionError so detection is
41
+ /** Session error detector — delegates to AbloSessionError so detection is
35
42
  * code-aware (only genuine session/JWT expiry counts), not a blunt 401/403. */
36
43
  export declare const defaultSessionErrorDetector: SessionErrorDetector;
37
44
  /**
@@ -42,4 +49,4 @@ export declare const defaultSessionErrorDetector: SessionErrorDetector;
42
49
  * never exercise FK ordering; consumers who do rely on it should finish
43
50
  * wiring the engine before the first `create()` fires.
44
51
  */
45
- export declare const emptyConfig: SyncEngineConfig;
52
+ export declare const emptyConfig: RuntimeConfig;
@@ -1,27 +1,26 @@
1
1
  /**
2
- * SyncEngineContext — Runtime dependency container
2
+ * RuntimeContext — Runtime dependency container
3
3
  *
4
4
  * All SDK classes receive this context at construction time.
5
5
  * It bundles every injectable dependency so constructors stay clean.
6
6
  */
7
- import { SyncSessionError } from './errors.js';
7
+ import { AbloSessionError } from './transaction/errors.js';
8
8
  // ─────────────────────────────────────────────
9
9
  // No-op defaults for optional dependencies
10
10
  // ─────────────────────────────────────────────
11
- /** No-op logger silently discards all log calls */
12
- export const noopLogger = {
13
- debug() { },
14
- info() { },
15
- warn() { },
16
- error() { },
17
- };
11
+ // Re-exported, not redeclared. `@ablo/transaction/logger` owns the no-op that
12
+ // sits beside the `Logger` port. This package held a second, behaviourally
13
+ // identical copy, and half of it imported the canonical one while the other
14
+ // half imported this — so any change of semantics there would have reached
15
+ // only one side, invisibly, because the identifier reads the same at both.
16
+ export { noopLogger } from './transaction/logger.js';
18
17
  /** No-op observability — silently discards all observability calls */
19
18
  export const noopObservability = {
20
19
  setContext() { },
21
20
  setConnectionState() { },
22
21
  breadcrumb() { },
23
22
  captureRollback() { },
24
- captureTransactionFailure() { },
23
+ captureMutationFailure() { },
25
24
  captureBootstrapFailure() { },
26
25
  captureReconciliation() { },
27
26
  captureDeltaRetryExhausted() { },
@@ -51,7 +50,7 @@ export const browserOnlineStatus = {
51
50
  return !(typeof navigator !== 'undefined' && navigator.onLine === false);
52
51
  },
53
52
  };
54
- /** Session error detector — delegates to SyncSessionError so detection is
53
+ /** Session error detector — delegates to AbloSessionError so detection is
55
54
  * code-aware (only genuine session/JWT expiry counts), not a blunt 401/403. */
56
55
  export const defaultSessionErrorDetector = {
57
56
  isSessionError(error) {
@@ -61,7 +60,7 @@ export const defaultSessionErrorDetector = {
61
60
  return false;
62
61
  },
63
62
  isSessionErrorResponse(status, body) {
64
- return SyncSessionError.isSessionErrorResponse(status, body);
63
+ return AbloSessionError.isSessionErrorResponse(status, body);
65
64
  },
66
65
  };
67
66
  /**
@@ -4,18 +4,19 @@
4
4
  * optimistic changes, holds them while the client is offline, sends them to
5
5
  * the server when connectivity returns, and resolves conflicts when the
6
6
  * server's version of a row disagrees with the local one. It sits between the
7
- * reactive object pool and the {@link TransactionQueue} that delivers writes
7
+ * reactive object pool and the {@link MutationQueue} that delivers writes
8
8
  * over the network.
9
9
  */
10
10
  import { InstanceCache } from './InstanceCache.js';
11
11
  import { Model } from './Model.js';
12
12
  import { EventEmitter } from 'events';
13
- import { TransactionQueue } from './transactions/TransactionQueue.js';
14
- import { type UnconfirmedWritesMetrics } from './transactions/UnconfirmedWrites.js';
13
+ import { MutationQueue } from './transactions/mutations/MutationQueue.js';
14
+ import { type CommitLatencySample } from './transactions/mutations/commitLatency.js';
15
+ import { type UnconfirmedWritesMetrics } from './transactions/mutations/UnconfirmedWrites.js';
15
16
  import type { Database } from './Database.js';
16
17
  import type { WriteOptions } from './interfaces/index.js';
17
- import { SyncPosition } from './sync/syncPosition.js';
18
- import type { DurableWriteStore } from './transactions/durableWriteStore.js';
18
+ import { LogPosition } from './transaction/logPosition.js';
19
+ import type { DurableWriteStore } from './transactions/mutations/durableWriteStore.js';
19
20
  interface SyncObserver {
20
21
  onSync?: (event: SyncEvent) => void;
21
22
  }
@@ -71,11 +72,11 @@ export declare class SyncClient extends EventEmitter {
71
72
  private isDisposed;
72
73
  /**
73
74
  * The client's position in the global delta order, held as the single
74
- * canonical {@link SyncPosition} instance. The store advances `applied` and
75
+ * canonical {@link LogPosition} instance. The store advances `applied` and
75
76
  * `persisted` as deltas land, the queue advances `acked` on commit
76
77
  * responses, and snapshots and claims read `readFloor`.
77
78
  */
78
- readonly position: SyncPosition;
79
+ readonly position: LogPosition;
79
80
  constructor(objectPool: InstanceCache, database: Database, commitOutbox?: DurableWriteStore, commitOutboxNamespace?: string);
80
81
  /**
81
82
  * Setup network monitoring handlers
@@ -98,13 +99,13 @@ export declare class SyncClient extends EventEmitter {
98
99
  * discard the optimistic state silently.
99
100
  *
100
101
  * Treating both paths the same caused the deletion-flicker bug: every
101
- * cancelled update on a multi-layer chart fired a per-model observer
102
+ * cancelled update on a multi-child record fired a per-model observer
102
103
  * event and a `[SyncClient.rollback]` warn, producing N renders and N
103
104
  * spam log lines for one user-initiated delete.
104
105
  */
105
106
  private setupTransactionRollbackHandling;
106
107
  /**
107
- * Forward reconciliation requests from the {@link TransactionQueue} to the
108
+ * Forward reconciliation requests from the {@link MutationQueue} to the
108
109
  * sync layer. When delta confirmation times out, the queue emits
109
110
  * `reconciliation:needed` instead of rolling back, so optimistic state the
110
111
  * server may already have committed is never destroyed.
@@ -145,7 +146,7 @@ export declare class SyncClient extends EventEmitter {
145
146
  * 2. **Required-field gate** — if the row is missing any field listed
146
147
  * in the model's `requiredFields`, return `null` so the caller
147
148
  * skips this record. Used for FK columns whose absence renders the
148
- * row unrecoverable (e.g. a SlideLayer with no slideId).
149
+ * row unrecoverable (e.g. a Block with no sectionId).
149
150
  *
150
151
  * The engine itself is product-neutral: model identity (which fields
151
152
  * to back-fill, which absences are fatal) lives entirely in the
@@ -196,10 +197,10 @@ export declare class SyncClient extends EventEmitter {
196
197
  /**
197
198
  * Update existing model with pre-computed changes.
198
199
  * Used by saveManyOptimized when incoming models have empty change-tracking
199
- * (e.g. freshly constructed SpreadsheetCellModels from decomposeSpreadsheetDocument).
200
+ * (e.g. freshly constructed cell models from a bulk document decomposition).
200
201
  */
201
202
  updateWithChanges(model: Model, changes?: Record<string, unknown>): void;
202
- /** Expose the GraphQL client for atomic mutations (e.g., createSlideWithLayers).
203
+ /** Expose the GraphQL client for atomic mutations (e.g., createSectionWithBlocks).
203
204
  * Used by SyncedStore for operations that bypass the transaction queue
204
205
  * but still need optimistic pool updates at the sync layer. */
205
206
  get gql(): import("./interfaces/index.js").MutationExecutor;
@@ -207,12 +208,12 @@ export declare class SyncClient extends EventEmitter {
207
208
  delete(model: Model, options?: WriteOptions): void;
208
209
  /**
209
210
  * Clear all pending mutations for a specific model
210
- * Called before deletion to prevent "layer not found" errors on the server
211
+ * Called before deletion to prevent "record not found" errors on the server
211
212
  */
212
213
  private clearPendingMutationsForModel;
213
214
  /**
214
215
  * Upload a file and create its attachment record. The upload runs through
215
- * the {@link TransactionQueue}, and a model is built from the server's
216
+ * the {@link MutationQueue}, and a model is built from the server's
216
217
  * response and added to the pool.
217
218
  */
218
219
  uploadFile(file: File, options: {
@@ -246,7 +247,7 @@ export declare class SyncClient extends EventEmitter {
246
247
  * IndexedDB persistence and the server push are deferred to a microtask, so
247
248
  * many pushes within the same tick collapse into a single serialization and
248
249
  * a single process call. Without the deferral, queueing a hundred mutations
249
- * at once — a large paste, a document import, bulk layer creation — would
250
+ * at once — a large paste, a document import, bulk row creation — would
250
251
  * reserialize the whole growing queue a hundred times, an O(N²) cost in
251
252
  * `model.toJSON()`.
252
253
  *
@@ -275,11 +276,11 @@ export declare class SyncClient extends EventEmitter {
275
276
  *
276
277
  * Best Practice: Only sync models that still exist locally (local-first principle)
277
278
  * - If a model was deleted locally → skip any pending updates/creates for it
278
- * - This prevents "layer not found" errors from fast copy-paste-delete workflows
279
+ * - This prevents "record not found" errors from fast copy-paste-delete workflows
279
280
  */
280
281
  processPendingMutations(): Promise<void>;
281
282
  /**
282
- * Stage mutation to TransactionQueue - mutations in same tick are batched via microtask
283
+ * Stage mutation to MutationQueue - mutations in same tick are batched via microtask
283
284
  *
284
285
  * @param mutation.capturedChanges - Pre-captured changes to use instead of re-reading from model
285
286
  */
@@ -347,7 +348,7 @@ export declare class SyncClient extends EventEmitter {
347
348
  */
348
349
  dispose(): void;
349
350
  /**
350
- * Notify the {@link TransactionQueue} of an incoming delta so it can confirm
351
+ * Notify the {@link MutationQueue} of an incoming delta so it can confirm
351
352
  * hosted writes by sync-id threshold and queued forwards by their echoed
352
353
  * source-batch correlation id.
353
354
  * @param syncId - The sync id of the received delta.
@@ -360,15 +361,15 @@ export declare class SyncClient extends EventEmitter {
360
361
  * deletion. The store calls this when a delete delta arrives for a parent,
361
362
  * cancelling any queued writes on children that reference it.
362
363
  *
363
- * @param childModelName - The child model type (for example, `SlideLayer`).
364
- * @param foreignKey - The foreign-key property name (for example, `slideId`).
364
+ * @param childModelName - The child model type (for example, `Block`).
365
+ * @param foreignKey - The foreign-key property name (for example, `sectionId`).
365
366
  * @param parentId - The id of the deleted parent.
366
367
  * @returns The number of transactions cancelled.
367
368
  */
368
369
  cancelTransactionsByForeignKey(childModelName: string, foreignKey: string, parentId: string): number;
369
370
  /**
370
371
  * Wait for a transaction to be confirmed by its delta echo. Delegates to the
371
- * {@link TransactionQueue}, which handles the confirmation timeout.
372
+ * {@link MutationQueue}, which handles the confirmation timeout.
372
373
  */
373
374
  waitForDeltaConfirmation(transactionId: string): Promise<void>;
374
375
  /**
@@ -386,7 +387,7 @@ export declare class SyncClient extends EventEmitter {
386
387
  objectPoolStats: ReturnType<InstanceCache['getStats']>;
387
388
  };
388
389
  /**
389
- * Get pending transaction count from TransactionQueue
390
+ * Get pending transaction count from MutationQueue
390
391
  * Used by SyncedStore to compute hasUnsyncedChanges
391
392
  */
392
393
  getPendingTransactionCount(): number;
@@ -397,7 +398,7 @@ export declare class SyncClient extends EventEmitter {
397
398
  onTransactionEvent(event: 'created' | 'completed' | 'failed', callback: () => void): () => void;
398
399
  /**
399
400
  * Subscribe to mutation failures with the full payload. Mirrors the
400
- * underlying TransactionQueue 'transaction:failed' shape so consumers
401
+ * underlying MutationQueue 'transaction:failed' shape so consumers
401
402
  * can render typed UI (toast keyed by `AbloError.type`, route-level
402
403
  * "this entity reverted" boundaries, telemetry).
403
404
  *
@@ -407,28 +408,37 @@ export declare class SyncClient extends EventEmitter {
407
408
  * this typed listener drives user-visible surfaces.
408
409
  */
409
410
  onMutationFailure(listener: (payload: {
410
- transaction: import('./transactions/TransactionQueue.js').Transaction;
411
+ transaction: import('./transactions/mutations/MutationQueue.js').QueuedMutation;
411
412
  error: Error;
412
413
  permanent?: boolean;
413
414
  }) => void): () => void;
414
415
  /**
415
- * Subscribe to local transaction creation with the full {@link Transaction}
416
+ * Subscribe to commit round-trip latency, split into the local seal and the
417
+ * remote acknowledgement. Fires once per completed commit.
418
+ *
419
+ * Taps the {@link MutationQueue} emitter for the same reason
420
+ * {@link onMutationFailure} does: the commit lifecycle events originate
421
+ * there and the SyncClient's own emitter never rebroadcasts them.
422
+ */
423
+ onCommitLatency(listener: (sample: CommitLatencySample) => void): () => void;
424
+ /**
425
+ * Subscribe to local transaction creation with the full {@link QueuedMutation}
416
426
  * payload (`type`, `modelName`, `modelId`, `data`, `previousData`). This is
417
427
  * the feed the store's local-mutation subscription taps for undo recording.
418
428
  *
419
- * It subscribes to the {@link TransactionQueue}'s emitter directly, since
429
+ * It subscribes to the {@link MutationQueue}'s emitter directly, since
420
430
  * that is the only emitter that fires `transaction:created`. The SyncClient's
421
431
  * own emitter (reached through {@link subscribe}) never rebroadcasts that
422
432
  * event, so routing undo through `subscribe('transaction:created')` would
423
433
  * record nothing. {@link onMutationFailure} taps the queue for the same
424
434
  * reason.
425
435
  */
426
- onLocalTransaction(listener: (tx: import('./transactions/TransactionQueue.js').Transaction) => void): () => void;
436
+ onLocalTransaction(listener: (tx: import('./transactions/mutations/MutationQueue.js').QueuedMutation) => void): () => void;
427
437
  /**
428
438
  * Wait for the latest in-flight transaction for (modelName, modelId)
429
439
  * to be confirmed by the server, or reject if it's rolled back.
430
440
  * Resolves immediately when no transaction is in flight — see
431
- * `TransactionQueue.confirmationFor` for the lookup contract.
441
+ * `MutationQueue.confirmationFor` for the lookup contract.
432
442
  *
433
443
  * Distinct from `waitForDeltaConfirmation(transactionId)` which keys
434
444
  * off a known tx id; this variant is for call sites that hold a
@@ -441,7 +451,7 @@ export declare class SyncClient extends EventEmitter {
441
451
  getDebugInfo(): {
442
452
  connectionState: "connected" | "disconnected" | "connecting";
443
453
  pendingMutationsCount: number;
444
- transactionQueue: {
454
+ mutationQueue: {
445
455
  lastSeenSyncId: number;
446
456
  awaitingDeltaCount: number;
447
457
  awaitingDeltaTransactions: {
@@ -478,7 +488,7 @@ export declare class SyncClient extends EventEmitter {
478
488
  * Mark a local transaction as optimistically applied. The matching
479
489
  * server delta (when it arrives with the same `transactionId`) will
480
490
  * be recognized as an echo and skip the pool mutation. Called
481
- * automatically by `TransactionQueue` when a transaction is staged;
491
+ * automatically by `MutationQueue` when a transaction is staged;
482
492
  * exposed publicly so tests can drive the API directly.
483
493
  */
484
494
  markTransactionPending(transactionId: string): void;
@@ -490,14 +500,14 @@ export declare class SyncClient extends EventEmitter {
490
500
  */
491
501
  getEchoMetrics(): Readonly<UnconfirmedWritesMetrics>;
492
502
  /**
493
- * Package-internal accessor for the {@link TransactionQueue}. Used by
503
+ * Package-internal accessor for the {@link MutationQueue}. Used by
494
504
  * `Ablo.commits.create()` to route raw multi-operation envelopes through the
495
505
  * same retry-on-reconnect lane as the model proxy path, and by tests to
496
506
  * exercise the queue's interaction with {@link markTransactionPending} on the
497
507
  * real instance the SyncClient subscribes to. It is not re-exported to SDK
498
508
  * consumers; `Ablo` is the public surface.
499
509
  */
500
- getTransactionQueue(): TransactionQueue;
510
+ getMutationQueue(): MutationQueue;
501
511
  applyDeltaBatchToPool(dbResults: {
502
512
  action: string;
503
513
  modelName: string;