@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,22 +1,19 @@
1
1
  import { z } from 'zod';
2
2
  /**
3
- * Coordination wire schema — the ONE canonical source for the three layers
4
- * that keep humans and agents from clobbering each other on a shared row.
5
- * See `packages/sync-engine/docs/coordination.md` ("The model — three layers,
6
- * one decision") for the conceptual model. The layers, outer-to-inner:
3
+ * The wire schemas for coordination — the shapes that keep humans and agents
4
+ * from overwriting each other on a shared row. Coordination works in three
5
+ * layers, from outermost to innermost:
7
6
  *
8
- * 1. PRESENCE (observation) who is working where; NEVER enforces.
9
- * 2. PESSIMISTIC (claims/leases) `claim_begin`/`claim_abandon`;
10
- * mutual exclusion between participants.
11
- * 3. OPTIMISTIC (stale-context) `readAt` + `onStale` write-guard;
12
- * last-writer-wins lost-update detection.
7
+ * 1. Presence (observation): who is working where. It reports, never blocks.
8
+ * 2. Claims (pessimistic leases): `claim_begin` / `claim_abandon` grant one
9
+ * participant exclusive intent on a target while others wait.
10
+ * 3. Stale-context (optimistic): a `readAt` watermark plus an `onStale` write
11
+ * guard that catches a lost update when the row moved after you read it.
13
12
  *
14
- * Both the SDK (`types/streams.ts`) and the sync-server (`hub/types.ts`,
15
- * `presence/*`) derive their TypeScript types from THESE schemas via
16
- * `z.infer`, instead of re-declaring overlapping shapes. That collapses the
17
- * field drift this surface accreted — e.g. the SDK's claim view dropping
18
- * `status`/`error`, `onStale` declared 5×, `ClaimStatus` declared 2× — into
19
- * a single definition that the wire ingest can also validate at runtime.
13
+ * These Zod schemas are the single definition of each shape. Both the client
14
+ * SDK and the server derive their TypeScript types from them with `z.infer`
15
+ * rather than re-declaring the shapes, and the server validates inbound frames
16
+ * against them at runtime.
20
17
  */
21
18
  /** A line/column span within a text-bearing field (slide body, doc, cell). */
22
19
  export declare const targetRangeSchema: z.ZodObject<{
@@ -33,13 +30,12 @@ export declare const participantKindSchema: z.ZodEnum<{
33
30
  }>;
34
31
  export type ParticipantKind = z.infer<typeof participantKindSchema>;
35
32
  /**
36
- * Wire-tolerant participant kind for INGEST. The claim/presence streams
37
- * historically labelled a non-agent participant `'human'`, while the
38
- * capability/identity/lease surfaces all say `'user'` the same participant,
39
- * two dialects. This normalizes the legacy `'human'` to the canonical `'user'`
40
- * on read so every consumer switches on ONE vocabulary. Producers emit
41
- * canonical {@link participantKindSchema} values; this only forgives an older
42
- * frame still carrying `'human'`. Additive — never widens the output union.
33
+ * Parses a participant kind from an inbound frame, tolerating an older wire
34
+ * dialect. Some presence and claim frames label a non-agent participant
35
+ * `'human'`, while the rest of the surface uses `'user'` for the same
36
+ * participant. This normalizes `'human'` to `'user'` on read so every consumer
37
+ * switches on one vocabulary. Producers emit the canonical
38
+ * {@link participantKindSchema} values, and the output union is never widened.
43
39
  */
44
40
  export declare const wireParticipantKindSchema: z.ZodPreprocess<z.ZodEnum<{
45
41
  user: "user";
@@ -47,24 +43,24 @@ export declare const wireParticipantKindSchema: z.ZodPreprocess<z.ZodEnum<{
47
43
  system: "system";
48
44
  }>>;
49
45
  /**
50
- * Resolve a peer's kind from an inbound presence/claim frame. Prefers the
51
- * server-stamped `participantKind` (normalized via
52
- * {@link wireParticipantKindSchema}); frames from servers that predate the
53
- * field fall back to the lossy `isAgent` boolean which can say 'agent' or
54
- * 'user' but never 'system' (the flatten this field exists to remove).
46
+ * Resolves a peer's kind from an inbound presence or claim frame. It prefers
47
+ * the server-stamped `participantKind` (normalized through
48
+ * {@link wireParticipantKindSchema}). A frame from an older server that omits
49
+ * that field falls back to the `isAgent` boolean, which can tell 'agent' from
50
+ * 'user' but can never report 'system'.
55
51
  */
56
52
  export declare function participantKindFromWire(wireKind: unknown, isAgent: boolean | undefined): ParticipantKind;
57
53
  /**
58
- * The peer-visible explanation a claim/claim carries, lifted from its opaque
59
- * `meta.description`. One place for the `typeof meta?.description === 'string'`
60
- * unfold that the claim/claim/presence surfaces each re-implemented callers
61
- * with an explicit `description` field still prefer it (`explicit ?? fromMeta`).
54
+ * Reads the peer-visible description a claim or presence frame carries in its
55
+ * opaque `meta.description`. This is the single place that unpacks that field.
56
+ * A caller that has an explicit `description` should prefer it
57
+ * (`explicit ?? fromMeta`).
62
58
  */
63
59
  export declare function descriptionFromMeta(meta: Record<string, unknown> | undefined | null): string | undefined;
64
60
  /**
65
- * What a claim / claim / activity points at. The common locator shared by
66
- * all three layers an entity, optionally narrowed to a path, range, or
67
- * field, with opaque app metadata.
61
+ * What a coordination event points at the locator shared by all three
62
+ * layers. It names an entity, optionally narrowed to a path, range, or field,
63
+ * and carries opaque application metadata.
68
64
  */
69
65
  export declare const targetRefSchema: z.ZodObject<{
70
66
  entityType: z.ZodString;
@@ -81,15 +77,14 @@ export declare const targetRefSchema: z.ZodObject<{
81
77
  }, z.core.$strip>;
82
78
  export type TargetRef = z.infer<typeof targetRefSchema>;
83
79
  /**
84
- * Mode applied when a write's snapshot watermark (`readAt`) is older than the
85
- * target row's latest delta. Three dispositions, split by the non-coercion
86
- * convention (see docs/concurrency-convention.md):
87
- * `notify` — NON-COERCIVE: hold the write, return a `StaleNotification`
88
- * with the current value; the actor (agent or human) resolves.
89
- * • `reject` — coercive escape hatch: throw `AbloStaleContextError`
90
- * (default when `readAt` is present).
91
- * • `overwrite` — coercive escape hatch: apply blindly last-writer-wins, no
92
- * signal.
80
+ * How the server treats a write whose snapshot watermark (`readAt`) is older
81
+ * than the target row's latest change. There are three dispositions:
82
+ * `notify` — hold the write and return a {@link StaleNotification}
83
+ * carrying the current value, so the actor (agent or human)
84
+ * can resolve it.
85
+ * • `reject` — throw `AbloStaleContextError`, the default when `readAt`
86
+ * is present.
87
+ * • `overwrite` — apply the write blindly, last write wins, with no signal.
93
88
  */
94
89
  export declare const onStaleModeSchema: z.ZodEnum<{
95
90
  reject: "reject";
@@ -114,27 +109,20 @@ export declare const writeGuardSchema: z.ZodObject<{
114
109
  }, z.core.$strip>;
115
110
  export type WriteGuard = z.infer<typeof writeGuardSchema>;
116
111
  /**
117
- * The advisory signal returned to a committer whose write hit a stale-context
118
- * conflict under `onStale: 'notify'` — the engine's answer to "the typed value
119
- * you reasoned against changed while you were away."
112
+ * The advisory returned to a committer whose write hit a stale-context
113
+ * conflict under `onStale: 'notify'` — it reports that the value the committer
114
+ * reasoned against changed while they were away. Rather than throwing, the
115
+ * server hands back the conflicting field's current value as data so the
116
+ * actor — an agent or a human — can reconcile and re-commit. A claim is the
117
+ * prospective form of the same idea (coordinate before acting); this
118
+ * notification is the in-flight form (here is what changed, you resolve). It
119
+ * rides on the commit acknowledgement alongside `lastSyncId`; an empty or
120
+ * absent array means nothing the committer depended on moved.
120
121
  *
121
- * Philosophy: NON-COERCION. The engine's job is to surface the truthful current
122
- * state and let the intelligent actor agent OR human — decide what to do; it
123
- * does NOT force an outcome. The two *forcing* dispositions are `reject`
124
- * (force-abort, discards the work) and `overwrite` (force-clobber). This
125
- * notification is the non-coercive path: instead of throwing, the server hands
126
- * back the conflicting field's *current* value as data so the actor can solve
127
- * it. The CLAIM is the prospective form of the same principle (coordinate
128
- * before acting); this notification is the in-flight form (here's what changed,
129
- * you resolve). Both an agent reasoning over the change and a human watching the
130
- * row are valid resolvers. (Cf. CoAgent/MTPO, arXiv:2606.15376, which bets the
131
- * resolver is specifically an LLM; Ablo's bet is the same non-coercion, actor
132
- * left to agent or human.) Rides on the commit ack alongside `lastSyncId`; an
133
- * empty/absent array means no premise moved.
134
- *
135
- * Only `notify` produces this: the conflicting op was HELD (not written), and
136
- * the actor reconciles against `currentValues` and re-commits. (`reject` throws,
137
- * `overwrite` is silent — neither notifies.)
122
+ * Only `onStale: 'notify'` produces this. The conflicting operation was held,
123
+ * not written, and the actor reconciles against `currentValues` and
124
+ * re-commits. `reject` throws instead, and `overwrite` proceeds silently
125
+ * neither notifies.
138
126
  */
139
127
  export declare const staleNotificationSchema: z.ZodObject<{
140
128
  object: z.ZodOptional<z.ZodLiteral<"stale_notification">>;
@@ -156,18 +144,19 @@ export declare const staleNotificationSchema: z.ZodObject<{
156
144
  }, z.core.$strip>;
157
145
  export type StaleNotification = z.infer<typeof staleNotificationSchema>;
158
146
  /**
159
- * A read DEPENDENCY declared on a commit the STORM "did anything I looked at
160
- * change?" layer (vs. the write-target check that only validates the rows being
161
- * written). The server re-runs stale detection against each declared read at
162
- * `readAt`; a moved premise fires the entry's `onStale` disposition (default
163
- * `reject`) over the WHOLE batch (`notify` holds every write + notifies;
164
- * `reject` aborts; `overwrite` proceeds silently). Two granularities, choice:
147
+ * A read that a commit declares it depended on, so the server can ask "did
148
+ * anything I looked at change?" broader than the write-target check, which
149
+ * only validates the rows being written. The server re-runs stale detection
150
+ * against each declared read at its `readAt`; a moved premise fires the entry's
151
+ * `onStale` disposition (default `reject`) across the whole batch (`notify`
152
+ * holds every write and notifies, `reject` aborts, `overwrite` proceeds
153
+ * silently). A dependency comes at one of two granularities:
165
154
  *
166
- * • ROW — `{ model, id, readAt, fields? }`: did this specific row (optionally
167
- * these fields) change? The literal STORM/per-object premise.
168
- * • GROUP — `{ group, readAt }`: did ANYTHING in this sync group change? `group`
169
- * is a sync-group key like `deck:abc` or `slide:s1` the same unit a
170
- * human/agent watches and claims. Coarser, and more Ablo-native.
155
+ * • Row — `{ model, id, readAt, fields? }`: did this specific row, or these
156
+ * specific fields, change?
157
+ * • Group — `{ group, readAt }`: did anything in this sync group change?
158
+ * `group` is a sync-group key such as `deck:abc` or `slide:s1`, the
159
+ * same unit a participant watches and claims.
171
160
  */
172
161
  export declare const readDependencySchema: z.ZodUnion<readonly [z.ZodObject<{
173
162
  model: z.ZodString;
@@ -190,11 +179,10 @@ export declare const readDependencySchema: z.ZodUnion<readonly [z.ZodObject<{
190
179
  }, z.core.$strip>]>;
191
180
  export type ReadDependency = z.infer<typeof readDependencySchema>;
192
181
  /**
193
- * Lifecycle of an claim the Stripe `PaymentIntent.status` shape. Absent on
194
- * the wire ⇒ `'active'` (additive back-compat). The server stamps `'active'`
195
- * on `claim_begin` and emits a single terminal frame (`committed` /
196
- * `canceled` / `expired`) as the claim ends, so contenders learn *how* it
197
- * resolved, not merely that it vanished.
182
+ * The lifecycle of a claim. When absent on the wire it means `'active'` (an
183
+ * additive back-compat default). The server stamps `'active'` on `claim_begin`
184
+ * and emits one terminal frame `committed`, `canceled`, or `expired` — as the
185
+ * claim ends, so contenders learn how it resolved, not merely that it vanished.
198
186
  */
199
187
  export declare const claimStatusSchema: z.ZodEnum<{
200
188
  active: "active";
@@ -235,16 +223,12 @@ export declare const claimErrorSchema: z.ZodObject<{
235
223
  }, z.core.$strip>;
236
224
  export type ClaimError = z.infer<typeof claimErrorSchema>;
237
225
  /**
238
- * A declared pending-mutation claim — the unit broadcast in presence
239
- * `activeClaims`. Clients supply the descriptive `targetRef` fields, an
240
- * explanatory `reason`, and a chosen `claimId`; the SERVER stamps `declaredAt` /
241
- * `expiresAt` and may set `status` / `error`.
242
- *
243
- * `status` and `error` are OPTIONAL: this single shape serves both the
244
- * server (which sets them) and the SDK view (which historically omitted
245
- * them). The superset is structurally assignable wherever the leaner view
246
- * was used, so the two prior copies collapse into this one without breaking
247
- * SDK consumers.
226
+ * A declared, pending-mutation claim — the unit broadcast inside a presence
227
+ * frame's `activeClaims`. The client supplies the descriptive `targetRef`
228
+ * fields, an explanatory `reason`, and a chosen `claimId`; the server stamps
229
+ * `declaredAt` and `expiresAt` and may set `status` and `error`. Those last
230
+ * two are optional, so one shape serves both the server, which sets them, and
231
+ * the leaner SDK view, which reads a claim without them.
248
232
  */
249
233
  export declare const wireClaimSchema: z.ZodObject<{
250
234
  entityType: z.ZodString;
@@ -321,9 +305,9 @@ export declare const claimRejectionSchema: z.ZodObject<{
321
305
  }, z.core.$strip>;
322
306
  export type ClaimRejection = z.infer<typeof claimRejectionSchema>;
323
307
  /**
324
- * What a {@link ModelClaim} points at — the SDK-facing target locator, keyed by
325
- * `model`/`id` (the `ablo.<model>` vocabulary) rather than the wire's
326
- * `entityType`/`entityId`. Structurally the public `ModelTarget`.
308
+ * What a {@link ModelClaim} points at — the target locator as SDK callers see
309
+ * it, keyed by `model` and `id` rather than the wire schema's `entityType` and
310
+ * `entityId`. This is the public `ModelTarget` shape.
327
311
  */
328
312
  export declare const modelTargetSchema: z.ZodReadonly<z.ZodObject<{
329
313
  model: z.ZodString;
@@ -340,17 +324,16 @@ export declare const modelTargetSchema: z.ZodReadonly<z.ZodObject<{
340
324
  }, z.core.$strip>>;
341
325
  export type ModelTarget = z.infer<typeof modelTargetSchema>;
342
326
  /**
343
- * A claim as surfaced to SDK callers and the HTTP claim routes
344
- * (`ablo.<model>.claim.state`, `/v1/claims`) — the resolved, peer-readable
345
- * view of one active or queued claim. The ONE canonical shape: the client
346
- * (`Ablo.ts`) derives its `ModelClaim` from this, and the sync-server's two
347
- * route copies adopt it once the engine dist is rebuilt.
327
+ * A claim as SDK callers and the HTTP claim routes see it
328
+ * (`ablo.<model>.claim.state`, `/v1/claims`) — the resolved, peer-readable view
329
+ * of one active or queued claim. The client's `ModelClaim` type derives from
330
+ * this shape.
348
331
  *
349
- * `expiresAt` is **epoch-ms** (a number) here — the same representation as the
350
- * WS `WireClaim`, so there is ONE timestamp encoding across wire, SDK, HTTP,
351
- * and errors (Stripe-style integer unix timestamps; no ISO string anywhere).
352
- * `participantKind` ingests via {@link wireParticipantKindSchema} so a legacy
353
- * `'human'` frame normalizes to `'user'`.
332
+ * `expiresAt` is epoch milliseconds (a number), the same encoding as the
333
+ * WebSocket {@link WireClaim}, so one timestamp representation spans the wire,
334
+ * the SDK, HTTP, and errors there is no ISO string anywhere.
335
+ * `participantKind` is parsed through {@link wireParticipantKindSchema}, so a
336
+ * legacy `'human'` frame normalizes to `'user'`.
354
337
  */
355
338
  export declare const modelClaimSchema: z.ZodReadonly<z.ZodObject<{
356
339
  id: z.ZodString;
@@ -385,10 +368,10 @@ export declare const modelClaimSchema: z.ZodReadonly<z.ZodObject<{
385
368
  }, z.core.$strip>>;
386
369
  export type ModelClaim = z.infer<typeof modelClaimSchema>;
387
370
  /**
388
- * `claim_begin` payload (client → server). The descriptive target + reason,
389
- * plus an optional duration hint and the opt-in fair-queue flag. The server
390
- * stamps the lifecycle/timestamp fields, so they are NOT part of the inbound
391
- * shape — this is exactly what the WS ingest validates.
371
+ * The `claim_begin` payload a client sends. It carries the descriptive target
372
+ * and reason, an optional duration hint, and the opt-in fair-queue flag. The
373
+ * server stamps the lifecycle and timestamp fields, so they are not part of
374
+ * this inbound shape — this is exactly what the server validates on ingest.
392
375
  */
393
376
  export declare const claimBeginPayloadSchema: z.ZodObject<{
394
377
  entityType: z.ZodString;
@@ -409,11 +392,9 @@ export declare const claimBeginPayloadSchema: z.ZodObject<{
409
392
  }, z.core.$strip>;
410
393
  export type ClaimBeginPayload = z.infer<typeof claimBeginPayloadSchema>;
411
394
  /**
412
- * `claim_abandon` payload (client → server). `entityType`/`entityId` are
413
- * carried so the server can DEQUEUE a still-*waiting* (not held) claim from
414
- * the FIFO line the held-claim path needs only `claimId`. (The previous
415
- * wire type omitted these two even though the handler reads them; the schema
416
- * documents what the code actually uses.)
395
+ * The `claim_abandon` payload a client sends. `entityType` and `entityId` let
396
+ * the server dequeue a claim that is still waiting (not yet held) from the FIFO
397
+ * line; abandoning a claim that is already held needs only `claimId`.
417
398
  */
418
399
  export declare const claimAbandonPayloadSchema: z.ZodObject<{
419
400
  claimId: z.ZodString;
@@ -422,13 +403,13 @@ export declare const claimAbandonPayloadSchema: z.ZodObject<{
422
403
  }, z.core.$strip>;
423
404
  export type ClaimAbandonPayload = z.infer<typeof claimAbandonPayloadSchema>;
424
405
  /**
425
- * `claim_reorder` payload (client → server). A privileged participant (e.g. a
426
- * supervisor over its sub-agents) re-ranks the FIFO wait queue for an entity:
427
- * `order` lists waiters by `heldBy`+`claimId` in the desired priority. Waiters
428
- * not listed keep their relative order behind the listed ones. The server gates
429
- * who may call this; an unauthorized sender is dropped. Unlike `claim_abandon`
430
- * (acts on the caller's own entry), reorder acts on OTHER participants' queue
431
- * positions — hence the authorization gate.
406
+ * The `claim_reorder` payload a client sends. A privileged participant, such as
407
+ * a supervisor over its sub-agents, re-ranks the FIFO wait queue for an entity:
408
+ * `order` lists waiters by `heldBy` and `claimId` in the desired priority, and
409
+ * any waiter not listed keeps its relative order behind those that are. The
410
+ * server gates who may call this and drops an unauthorized sender. Where
411
+ * `claim_abandon` acts on the caller's own entry, a reorder acts on other
412
+ * participants' queue positions — which is why it is gated.
432
413
  */
433
414
  export declare const claimReorderPayloadSchema: z.ZodObject<{
434
415
  entityType: z.ZodString;
@@ -440,12 +421,79 @@ export declare const claimReorderPayloadSchema: z.ZodObject<{
440
421
  }, z.core.$strip>;
441
422
  export type ClaimReorderPayload = z.infer<typeof claimReorderPayloadSchema>;
442
423
  /**
443
- * `update_subscription` payload (client server). Replaces the connection's
444
- * connection-level read interest with the COMPLETE set of sync groups — the
445
- * READ counterpart to a claim (no write-claim, no TTL). Each entry is a
424
+ * The `claim_heartbeat` payload a client sends to extend a lease it holds (or
425
+ * refresh its slot in the wait queue) past the liveness window — the
426
+ * work-duration signal for long-running holders, distinct from the connection
427
+ * keepalive.
428
+ *
429
+ * The claim is identified either way: by `claimId`, or — since a claim is
430
+ * singular per (actor, entity) — by the full `entityType`/`entityId` target
431
+ * ("my claim on this row"). At least one of the two must be present. The
432
+ * target also lets the server resolve without a scan and is required to
433
+ * refresh a *queued* claim (a waiter is not in the holder set the server
434
+ * would otherwise search).
435
+ */
436
+ export declare const claimHeartbeatPayloadSchema: z.ZodObject<{
437
+ claimId: z.ZodOptional<z.ZodString>;
438
+ entityType: z.ZodOptional<z.ZodString>;
439
+ entityId: z.ZodOptional<z.ZodString>;
440
+ ttlMs: z.ZodOptional<z.ZodNumber>;
441
+ details: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
442
+ }, z.core.$strip>;
443
+ export type ClaimHeartbeatPayload = z.infer<typeof claimHeartbeatPayloadSchema>;
444
+ /**
445
+ * The server's reply to a `claim_heartbeat`. For a socketless worker the
446
+ * heartbeat reply is the only inbound signal path, so it carries the lease's
447
+ * fate rather than a bare ok: `held` (extended to `expiresAt`), `queued`
448
+ * (slot refreshed; `position` is the current place in line), or `lost` (the
449
+ * lease expired and the queue moved on — the worker should abandon or
450
+ * re-queue, and any write it still attempts is caught by its `readAt` guard).
451
+ */
452
+ export declare const claimHeartbeatAckPayloadSchema: z.ZodObject<{
453
+ claimId: z.ZodString;
454
+ status: z.ZodEnum<{
455
+ queued: "queued";
456
+ held: "held";
457
+ lost: "lost";
458
+ }>;
459
+ expiresAt: z.ZodOptional<z.ZodNumber>;
460
+ position: z.ZodOptional<z.ZodNumber>;
461
+ queueDepth: z.ZodOptional<z.ZodNumber>;
462
+ }, z.core.$strip>;
463
+ export type ClaimHeartbeatAckPayload = z.infer<typeof claimHeartbeatAckPayloadSchema>;
464
+ /**
465
+ * The batched heartbeat — one request extends every lease the caller holds
466
+ * on its plane (the socketless twin of the WebSocket keepalive, which renews
467
+ * all held leases on every ping). For a worker holding many rows this is one
468
+ * round trip per cadence instead of one per claim. Queued slots are not
469
+ * batch-refreshed: a waiter knows its target and beats it directly.
470
+ */
471
+ export declare const claimHeartbeatBatchPayloadSchema: z.ZodObject<{
472
+ ttlMs: z.ZodOptional<z.ZodNumber>;
473
+ }, z.core.$strip>;
474
+ export type ClaimHeartbeatBatchPayload = z.infer<typeof claimHeartbeatBatchPayloadSchema>;
475
+ /** Reply to a batched heartbeat: one ack entry per lease that was extended. */
476
+ export declare const claimHeartbeatBatchAckPayloadSchema: z.ZodObject<{
477
+ results: z.ZodArray<z.ZodObject<{
478
+ claimId: z.ZodString;
479
+ status: z.ZodEnum<{
480
+ queued: "queued";
481
+ held: "held";
482
+ lost: "lost";
483
+ }>;
484
+ expiresAt: z.ZodOptional<z.ZodNumber>;
485
+ position: z.ZodOptional<z.ZodNumber>;
486
+ queueDepth: z.ZodOptional<z.ZodNumber>;
487
+ }, z.core.$strip>>;
488
+ }, z.core.$strip>;
489
+ export type ClaimHeartbeatBatchAckPayload = z.infer<typeof claimHeartbeatBatchAckPayloadSchema>;
490
+ /**
491
+ * The `update_subscription` payload a client sends. It replaces the
492
+ * connection's read interest with the complete set of sync groups — the read
493
+ * counterpart to a claim, with no write lock and no TTL. Each entry is a
446
494
  * {@link syncGroupInputSchema} (`'default'` or a branded `kind:id`), so a
447
- * malformed group is rejected at ingest instead of being silently indexed.
448
- * This is untrusted client input, so the element type is strict.
495
+ * malformed group is rejected on ingest rather than silently indexed. The
496
+ * element type is strict because this is untrusted client input.
449
497
  */
450
498
  export declare const updateSubscriptionPayloadSchema: z.ZodObject<{
451
499
  syncGroups: z.ZodArray<z.ZodUnion<readonly [z.ZodLiteral<"default">, z.core.$ZodBranded<z.ZodTemplateLiteral<`${string}:${string}`>, "SyncGroup", "out">]>>;
@@ -504,11 +552,11 @@ export declare const commitOperationSchema: z.ZodObject<{
504
552
  }, z.core.$strip>;
505
553
  export type CommitOperation = z.infer<typeof commitOperationSchema>;
506
554
  /**
507
- * Any commit op on the wire — the runtime-validated ingest contract. Commit
508
- * ops carry replace (last-write-wins) semantics, guarded by the optimistic
509
- * `writeGuard`. Kept as a distinct alias from {@link CommitOperation} so the
510
- * ingest boundary in the server reads as "any op on the wire" even though the
511
- * two are currently structurally identical.
555
+ * Any commit operation on the wire — the runtime-validated ingest contract.
556
+ * Commit operations carry replace (last-write-wins) semantics, guarded by the
557
+ * optimistic write guard. It is a distinct alias from {@link CommitOperation}
558
+ * so the server's ingest boundary reads as "any op on the wire", even though
559
+ * the two shapes are identical.
512
560
  */
513
561
  export type AnyCommitOperation = CommitOperation;
514
562
  export declare const presenceKindSchema: z.ZodEnum<{