@abloatai/ablo 0.34.1 → 0.36.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 (536) hide show
  1. package/AGENTS.md +2 -1
  2. package/CHANGELOG.md +758 -5
  3. package/README.md +56 -502
  4. package/bin/ablo.cjs +39 -0
  5. package/dist/BaseSyncedStore.d.ts +176 -48
  6. package/dist/BaseSyncedStore.js +346 -214
  7. package/dist/Database.d.ts +17 -44
  8. package/dist/Database.js +96 -79
  9. package/dist/InstanceCache.d.ts +31 -6
  10. package/dist/InstanceCache.js +65 -30
  11. package/dist/LazyReferenceCollection.d.ts +3 -3
  12. package/dist/LazyReferenceCollection.js +4 -4
  13. package/dist/Model.d.ts +23 -13
  14. package/dist/Model.js +27 -17
  15. package/dist/ModelRegistry.d.ts +8 -4
  16. package/dist/ModelRegistry.js +20 -18
  17. package/dist/NetworkMonitor.d.ts +3 -1
  18. package/dist/NetworkMonitor.js +7 -5
  19. package/dist/{SyncEngineContext.d.ts → RuntimeContext.d.ts} +20 -13
  20. package/dist/{SyncEngineContext.js → RuntimeContext.js} +11 -12
  21. package/dist/SyncClient.d.ts +47 -47
  22. package/dist/SyncClient.js +215 -156
  23. package/dist/ai-sdk/coordinatedTool.d.ts +2 -2
  24. package/dist/ai-sdk/coordinatedTool.js +1 -1
  25. package/dist/ai-sdk/coordinationContext.d.ts +2 -2
  26. package/dist/ai-sdk/coordinationContext.js +1 -1
  27. package/dist/ai-sdk/wrap.d.ts +3 -3
  28. package/dist/ai-sdk/wrap.js +2 -2
  29. package/dist/auth/index.d.ts +1 -156
  30. package/dist/auth/index.js +8 -301
  31. package/dist/client/Ablo.d.ts +42 -287
  32. package/dist/client/Ablo.js +129 -963
  33. package/dist/client/abloClient.d.ts +309 -0
  34. package/dist/client/abloClient.js +13 -0
  35. package/dist/client/clientPrelude.d.ts +52 -0
  36. package/dist/client/clientPrelude.js +60 -0
  37. package/dist/client/consoleLogger.d.ts +2 -2
  38. package/dist/client/coreClient.d.ts +60 -0
  39. package/dist/client/coreClient.js +118 -0
  40. package/dist/client/createInternalComponents.d.ts +8 -4
  41. package/dist/client/createInternalComponents.js +17 -10
  42. package/dist/client/createModelProxy.d.ts +98 -373
  43. package/dist/client/createModelProxy.js +233 -139
  44. package/dist/client/humans.d.ts +69 -0
  45. package/dist/client/humans.js +78 -0
  46. package/dist/client/modelRegistration.d.ts +1 -1
  47. package/dist/client/modelRegistration.js +9 -9
  48. package/dist/client/options.d.ts +73 -17
  49. package/dist/client/reactiveEngine.d.ts +53 -0
  50. package/dist/client/reactiveEngine.js +688 -0
  51. package/dist/client/resourceTypes.d.ts +9 -250
  52. package/dist/client/resourceTypes.js +8 -5
  53. package/dist/client/schemaConfig.d.ts +4 -4
  54. package/dist/client/schemaConfig.js +6 -2
  55. package/dist/client/storeCluster.d.ts +47 -0
  56. package/dist/client/storeCluster.js +118 -0
  57. package/dist/client/storeLifecycle.d.ts +61 -0
  58. package/dist/client/storeLifecycle.js +231 -0
  59. package/dist/client/validateAbloOptions.d.ts +3 -2
  60. package/dist/client/validateAbloOptions.js +1 -1
  61. package/dist/client/wsMutationExecutor.d.ts +3 -3
  62. package/dist/client/wsMutationExecutor.js +3 -3
  63. package/dist/context.d.ts +22 -9
  64. package/dist/context.js +33 -9
  65. package/dist/coordination/ClaimLog.d.ts +26 -0
  66. package/dist/coordination/ClaimLog.js +32 -0
  67. package/dist/coordination/index.d.ts +1 -15
  68. package/dist/coordination/index.js +8 -31
  69. package/dist/core/index.d.ts +3 -3
  70. package/dist/core/index.js +2 -2
  71. package/dist/docs/catalog.d.ts +72 -0
  72. package/dist/docs/catalog.js +230 -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 +44 -36
  78. package/dist/index.js +30 -22
  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 +5 -2
  99. package/dist/query/client.js +10 -9
  100. package/dist/query/types.d.ts +6 -41
  101. package/dist/query/types.js +2 -2
  102. package/dist/react/AbloProvider.d.ts +18 -8
  103. package/dist/react/AbloProvider.js +10 -9
  104. package/dist/react/context.d.ts +3 -3
  105. package/dist/react/context.js +1 -1
  106. package/dist/react/createAbloReact.d.ts +56 -0
  107. package/dist/react/createAbloReact.js +51 -0
  108. package/dist/react/index.d.ts +6 -5
  109. package/dist/react/index.js +6 -3
  110. package/dist/react/internalContext.d.ts +1 -1
  111. package/dist/react/useAblo.d.ts +12 -5
  112. package/dist/react/useAblo.js +26 -8
  113. package/dist/react/useCurrentUserId.js +1 -1
  114. package/dist/react/useErrorListener.js +1 -1
  115. package/dist/react/useMutationFailureListener.d.ts +2 -2
  116. package/dist/react/useMutationFailureListener.js +1 -1
  117. package/dist/react/useMutators.d.ts +3 -3
  118. package/dist/react/useMutators.js +3 -3
  119. package/dist/react/useUndoScope.d.ts +5 -5
  120. package/dist/react/useUndoScope.js +1 -1
  121. package/dist/schema/coordination.d.ts +69 -10
  122. package/dist/schema/coordination.js +90 -9
  123. package/dist/schema/ddl.js +2 -2
  124. package/dist/schema/diff.d.ts +1 -1
  125. package/dist/schema/generate.js +1 -1
  126. package/dist/schema/index.d.ts +11 -10
  127. package/dist/schema/index.js +22 -18
  128. package/dist/schema/queries.d.ts +27 -27
  129. package/dist/schema/queries.js +23 -23
  130. package/dist/schema/select.d.ts +3 -3
  131. package/dist/schema/select.js +6 -3
  132. package/dist/schema/serialize.d.ts +15 -6
  133. package/dist/schema/serialize.js +20 -3
  134. package/dist/schema/sugar.d.ts +6 -7
  135. package/dist/schema/sugar.js +9 -12
  136. package/dist/schema/syncDeltaRow.d.ts +4 -152
  137. package/dist/schema/syncDeltaRow.js +4 -105
  138. package/dist/server/adapter.d.ts +18 -1
  139. package/dist/server/commit.d.ts +10 -16
  140. package/dist/server/index.d.ts +1 -1
  141. package/dist/server/index.js +1 -1
  142. package/dist/server/readConfig.d.ts +1 -1
  143. package/dist/source/adapter.d.ts +7 -5
  144. package/dist/source/adapter.js +7 -5
  145. package/dist/source/adapters/drizzle.d.ts +1 -1
  146. package/dist/source/adapters/drizzle.js +2 -2
  147. package/dist/source/adapters/kysely.d.ts +1 -1
  148. package/dist/source/adapters/kysely.js +1 -1
  149. package/dist/source/adapters/kyselyMutationCore.d.ts +1 -1
  150. package/dist/source/adapters/kyselyMutationCore.js +2 -2
  151. package/dist/source/adapters/memory.js +1 -1
  152. package/dist/source/adapters/prisma.d.ts +8 -3
  153. package/dist/source/adapters/prisma.js +1 -1
  154. package/dist/source/connector.js +1 -1
  155. package/dist/source/connectorProtocol.d.ts +2 -8
  156. package/dist/source/connectorProtocol.js +3 -2
  157. package/dist/source/contract.d.ts +29 -17
  158. package/dist/source/contract.js +27 -22
  159. package/dist/source/factory.d.ts +1 -1
  160. package/dist/source/idempotency.js +2 -2
  161. package/dist/source/index.d.ts +1 -0
  162. package/dist/source/index.js +3 -0
  163. package/dist/source/next.d.ts +1 -1
  164. package/dist/source/signing.d.ts +9 -2
  165. package/dist/source/signing.js +4 -1
  166. package/dist/source/types.d.ts +6 -4
  167. package/dist/source/types.js +1 -1
  168. package/dist/{core/storeContract.d.ts → storeContract.d.ts} +6 -6
  169. package/dist/{core → stores}/DatabaseManager.d.ts +3 -1
  170. package/dist/{core → stores}/DatabaseManager.js +14 -13
  171. package/dist/stores/ObjectStore.d.ts +1 -1
  172. package/dist/{core → stores}/StoreManager.d.ts +9 -26
  173. package/dist/{core → stores}/StoreManager.js +29 -77
  174. package/dist/stores/SyncActionStore.d.ts +4 -2
  175. package/dist/stores/SyncActionStore.js +11 -17
  176. package/dist/stores/syncAction.d.ts +26 -0
  177. package/dist/stores/syncAction.js +16 -0
  178. package/dist/surface.d.ts +3 -3
  179. package/dist/surface.js +6 -4
  180. package/dist/sync/BootstrapFetcher.d.ts +127 -6
  181. package/dist/sync/BootstrapFetcher.js +511 -83
  182. package/dist/sync/ConnectionManager.d.ts +6 -198
  183. package/dist/sync/ConnectionManager.js +6 -677
  184. package/dist/sync/OnDemandLoader.d.ts +5 -2
  185. package/dist/sync/OnDemandLoader.js +61 -21
  186. package/dist/sync/SubscriptionManager.d.ts +13 -2
  187. package/dist/sync/SubscriptionManager.js +23 -5
  188. package/dist/sync/SyncWebSocket.d.ts +27 -510
  189. package/dist/sync/SyncWebSocket.js +76 -954
  190. package/dist/sync/awaitClaimGrant.d.ts +4 -44
  191. package/dist/sync/awaitClaimGrant.js +4 -109
  192. package/dist/sync/bootstrapApply.d.ts +3 -0
  193. package/dist/sync/bootstrapApply.js +2 -2
  194. package/dist/sync/commitFrames.d.ts +6 -40
  195. package/dist/sync/commitFrames.js +6 -97
  196. package/dist/sync/contextPorts.d.ts +18 -0
  197. package/dist/sync/contextPorts.js +31 -0
  198. package/dist/sync/createClaimStream.d.ts +5 -49
  199. package/dist/sync/createClaimStream.js +5 -469
  200. package/dist/sync/createPresenceStream.d.ts +26 -4
  201. package/dist/sync/createPresenceStream.js +28 -20
  202. package/dist/sync/createSnapshot.d.ts +2 -2
  203. package/dist/sync/createSnapshot.js +1 -1
  204. package/dist/sync/credentialLifecycle.d.ts +5 -173
  205. package/dist/sync/credentialLifecycle.js +5 -320
  206. package/dist/sync/deltaPipeline.d.ts +13 -12
  207. package/dist/sync/deltaPipeline.js +21 -4
  208. package/dist/sync/groupChange.d.ts +3 -0
  209. package/dist/sync/groupChange.js +16 -14
  210. package/dist/sync/participants.d.ts +24 -6
  211. package/dist/sync/participants.js +32 -23
  212. package/dist/sync/schemaDrift.d.ts +55 -0
  213. package/dist/sync/schemaDrift.js +53 -0
  214. package/dist/sync/schemas.d.ts +23 -33
  215. package/dist/sync/schemas.js +29 -20
  216. package/dist/sync/syncPlan.d.ts +3 -3
  217. package/dist/sync/wsFrameHandlers.d.ts +6 -114
  218. package/dist/sync/wsFrameHandlers.js +6 -392
  219. package/dist/syncLog/contract.d.ts +20 -0
  220. package/dist/syncLog/contract.js +19 -0
  221. package/dist/syncLog/index.d.ts +1 -0
  222. package/dist/syncLog/index.js +1 -0
  223. package/dist/transaction/ablo.d.ts +88 -0
  224. package/dist/transaction/ablo.js +33 -0
  225. package/dist/{client/auth.d.ts → transaction/auth/apiKey.d.ts} +43 -8
  226. package/dist/{client/auth.js → transaction/auth/apiKey.js} +19 -0
  227. package/dist/transaction/auth/bootstrapScope.d.ts +15 -0
  228. package/dist/transaction/auth/bootstrapScope.js +1 -0
  229. package/dist/transaction/auth/capability.d.ts +212 -0
  230. package/dist/transaction/auth/capability.js +224 -0
  231. package/dist/{auth → transaction/auth}/credentialSource.d.ts +8 -1
  232. package/dist/{client → transaction/auth}/identity.d.ts +8 -7
  233. package/dist/{client → transaction/auth}/identity.js +1 -1
  234. package/dist/transaction/auth/index.d.ts +162 -0
  235. package/dist/transaction/auth/index.js +304 -0
  236. package/dist/{auth → transaction/auth}/schemas.d.ts +1 -1
  237. package/dist/{auth → transaction/auth}/schemas.js +13 -13
  238. package/dist/{client → transaction/auth}/sessionMint.d.ts +8 -8
  239. package/dist/{client → transaction/auth}/sessionMint.js +4 -7
  240. package/dist/transaction/coordination/awaitClaimGrant.d.ts +56 -0
  241. package/dist/transaction/coordination/awaitClaimGrant.js +124 -0
  242. package/dist/{client → transaction/coordination}/claimHeartbeatLoop.d.ts +34 -0
  243. package/dist/{client → transaction/coordination}/claimHeartbeatLoop.js +20 -0
  244. package/dist/transaction/coordination/claimMeta.d.ts +49 -0
  245. package/dist/transaction/coordination/claimMeta.js +52 -0
  246. package/dist/transaction/coordination/createClaimStream.d.ts +64 -0
  247. package/dist/transaction/coordination/createClaimStream.js +475 -0
  248. package/dist/transaction/coordination/events.d.ts +74 -0
  249. package/dist/transaction/coordination/events.js +7 -0
  250. package/dist/transaction/coordination/index.d.ts +19 -0
  251. package/dist/transaction/coordination/index.js +45 -0
  252. package/dist/transaction/coordination/locator.d.ts +104 -0
  253. package/dist/transaction/coordination/locator.js +102 -0
  254. package/dist/transaction/coordination/schema.d.ts +1536 -0
  255. package/dist/transaction/coordination/schema.js +1177 -0
  256. package/dist/transaction/coordination/targetConflict.d.ts +2 -0
  257. package/dist/transaction/coordination/targetConflict.js +107 -0
  258. package/dist/{coordination → transaction/coordination}/trace.d.ts +7 -18
  259. package/dist/{coordination → transaction/coordination}/trace.js +18 -25
  260. package/dist/transaction/durableWrites.d.ts +62 -0
  261. package/dist/{client → transaction}/durableWrites.js +28 -3
  262. package/dist/transaction/environment.d.ts +105 -0
  263. package/dist/transaction/environment.js +108 -0
  264. package/dist/{errorCodes.d.ts → transaction/errorCodes.d.ts} +12 -12
  265. package/dist/{errorCodes.js → transaction/errorCodes.js} +45 -18
  266. package/dist/{errors.d.ts → transaction/errors.d.ts} +37 -13
  267. package/dist/{errors.js → transaction/errors.js} +85 -16
  268. package/dist/transaction/footprint.d.ts +111 -0
  269. package/dist/transaction/footprint.js +0 -0
  270. package/dist/transaction/index.d.ts +20 -0
  271. package/dist/transaction/index.js +20 -0
  272. package/dist/transaction/keys/index.d.ts +87 -0
  273. package/dist/transaction/keys/index.js +207 -0
  274. package/dist/transaction/log/syncDeltaRow.d.ts +158 -0
  275. package/dist/transaction/log/syncDeltaRow.js +95 -0
  276. package/dist/{sync/syncPosition.d.ts → transaction/logPosition.d.ts} +22 -8
  277. package/dist/{sync/syncPosition.js → transaction/logPosition.js} +15 -6
  278. package/dist/transaction/logger.d.ts +16 -0
  279. package/dist/transaction/logger.js +7 -0
  280. package/dist/transaction/observability.d.ts +53 -0
  281. package/dist/transaction/observability.js +19 -0
  282. package/dist/transaction/plugin.d.ts +285 -0
  283. package/dist/transaction/plugin.js +106 -0
  284. package/dist/{policy → transaction/policy}/types.d.ts +3 -3
  285. package/dist/{policy → transaction/policy}/types.js +2 -0
  286. package/dist/transaction/resources/httpResources.d.ts +321 -0
  287. package/dist/transaction/resources/httpResources.js +7 -0
  288. package/dist/transaction/resources/modelOperations.d.ts +427 -0
  289. package/dist/transaction/resources/modelOperations.js +12 -0
  290. package/dist/transaction/resources/mutationOptions.d.ts +66 -0
  291. package/dist/transaction/resources/mutationOptions.js +9 -0
  292. package/dist/transaction/resources/where.d.ts +101 -0
  293. package/dist/transaction/resources/where.js +115 -0
  294. package/dist/{client → transaction/resources}/writeOptionsSchema.d.ts +2 -6
  295. package/dist/{client → transaction/resources}/writeOptionsSchema.js +9 -5
  296. package/dist/{schema → transaction/schema}/field.d.ts +17 -23
  297. package/dist/{schema → transaction/schema}/field.js +5 -5
  298. package/dist/transaction/schema/fieldRef.d.ts +38 -0
  299. package/dist/transaction/schema/fieldRef.js +11 -0
  300. package/dist/transaction/schema/loadStrategy.d.ts +45 -0
  301. package/dist/transaction/schema/loadStrategy.js +46 -0
  302. package/dist/{schema → transaction/schema}/model.d.ts +50 -35
  303. package/dist/{schema → transaction/schema}/model.js +30 -20
  304. package/dist/transaction/schema/openapi.d.ts +58 -0
  305. package/dist/transaction/schema/openapi.js +501 -0
  306. package/dist/{schema → transaction/schema}/relation.d.ts +21 -16
  307. package/dist/{schema → transaction/schema}/relation.js +7 -7
  308. package/dist/{schema → transaction/schema}/residency.d.ts +0 -9
  309. package/dist/{schema → transaction/schema}/residency.js +0 -5
  310. package/dist/{schema → transaction/schema}/roles.d.ts +5 -5
  311. package/dist/{schema → transaction/schema}/roles.js +5 -5
  312. package/dist/{schema → transaction/schema}/schema.d.ts +39 -10
  313. package/dist/{schema → transaction/schema}/schema.js +24 -3
  314. package/dist/{schema → transaction/schema}/tenancy.d.ts +1 -1
  315. package/dist/{schema → transaction/schema}/tenancy.js +7 -4
  316. package/dist/transaction/transactionLayer.d.ts +82 -0
  317. package/dist/transaction/transactionLayer.js +24 -0
  318. package/dist/{transactions → transaction/transactions/settlement}/commitEnvelope.d.ts +5 -6
  319. package/dist/{transactions → transaction/transactions/settlement}/commitEnvelope.js +9 -13
  320. package/dist/{transactions → transaction/transactions/settlement}/httpCommitEnvelope.d.ts +9 -2
  321. package/dist/{transactions → transaction/transactions/settlement}/httpCommitEnvelope.js +5 -9
  322. package/dist/{transactions/durableWriteStore.d.ts → transaction/transactions/settlement/pendingWrite.d.ts} +11 -37
  323. package/dist/transaction/transactions/settlement/pendingWrite.js +20 -0
  324. package/dist/transaction/transport/commitFrames.d.ts +90 -0
  325. package/dist/transaction/transport/commitFrames.js +134 -0
  326. package/dist/transaction/transport/connectionManager.d.ts +215 -0
  327. package/dist/transaction/transport/connectionManager.js +673 -0
  328. package/dist/transaction/transport/credentialLifecycle.d.ts +177 -0
  329. package/dist/transaction/transport/credentialLifecycle.js +324 -0
  330. package/dist/{sync → transaction/transport}/heartbeat.d.ts +3 -1
  331. package/dist/{sync → transaction/transport}/heartbeat.js +6 -4
  332. package/dist/transaction/transport/httpClient.d.ts +131 -0
  333. package/dist/{client → transaction/transport}/httpClient.js +6 -5
  334. package/dist/transaction/transport/httpOptions.d.ts +33 -0
  335. package/dist/transaction/transport/httpOptions.js +12 -0
  336. package/dist/{client → transaction/transport}/httpTransport.js +295 -97
  337. package/dist/{sync/NetworkProbe.d.ts → transaction/transport/networkProbe.d.ts} +7 -4
  338. package/dist/{sync/NetworkProbe.js → transaction/transport/networkProbe.js} +14 -13
  339. package/dist/transaction/transport/wsFrameHandlers.d.ts +128 -0
  340. package/dist/transaction/transport/wsFrameHandlers.js +429 -0
  341. package/dist/transaction/transport/wsTransport.d.ts +574 -0
  342. package/dist/transaction/transport/wsTransport.js +1023 -0
  343. package/dist/transaction/types/assertExact.d.ts +17 -0
  344. package/dist/transaction/types/assertExact.js +1 -0
  345. package/dist/{types → transaction/types}/global.d.ts +17 -2
  346. package/dist/{types → transaction/types}/global.js +2 -1
  347. package/dist/{types → transaction/types}/index.d.ts +14 -46
  348. package/dist/{types → transaction/types}/index.js +7 -16
  349. package/dist/{types → transaction/types}/streams.d.ts +73 -45
  350. package/dist/transaction/utils/duration.d.ts +50 -0
  351. package/dist/{utils → transaction/utils}/duration.js +32 -0
  352. package/dist/{utils → transaction/utils}/json.d.ts +18 -0
  353. package/dist/transaction/utils/json.js +276 -0
  354. package/dist/transaction/wire/accountResponses.d.ts +420 -0
  355. package/dist/transaction/wire/accountResponses.js +290 -0
  356. package/dist/transaction/wire/auth.d.ts +56 -0
  357. package/dist/transaction/wire/auth.js +63 -0
  358. package/dist/transaction/wire/claimEvent.d.ts +76 -0
  359. package/dist/transaction/wire/claimEvent.js +73 -0
  360. package/dist/transaction/wire/claims.d.ts +530 -0
  361. package/dist/transaction/wire/claims.js +327 -0
  362. package/dist/{wire → transaction/wire}/commit.d.ts +125 -193
  363. package/dist/{wire → transaction/wire}/commit.js +68 -47
  364. package/dist/{wire → transaction/wire}/delta.d.ts +66 -17
  365. package/dist/{wire → transaction/wire}/delta.js +37 -13
  366. package/dist/transaction/wire/errorEnvelope.d.ts +72 -0
  367. package/dist/{wire → transaction/wire}/errorEnvelope.js +36 -5
  368. package/dist/transaction/wire/feedCursor.d.ts +60 -0
  369. package/dist/transaction/wire/feedCursor.js +82 -0
  370. package/dist/transaction/wire/feedEvent.d.ts +204 -0
  371. package/dist/transaction/wire/feedEvent.js +65 -0
  372. package/dist/transaction/wire/frames.d.ts +194 -0
  373. package/dist/transaction/wire/frames.js +50 -0
  374. package/dist/transaction/wire/inboundFrames.d.ts +562 -0
  375. package/dist/transaction/wire/inboundFrames.js +116 -0
  376. package/dist/transaction/wire/index.d.ts +54 -0
  377. package/dist/transaction/wire/index.js +83 -0
  378. package/dist/{wire → transaction/wire}/listEnvelope.d.ts +13 -14
  379. package/dist/transaction/wire/listEnvelope.js +42 -0
  380. package/dist/transaction/wire/modelMutations.d.ts +31 -0
  381. package/dist/transaction/wire/modelMutations.js +52 -0
  382. package/dist/transaction/wire/modelResponses.d.ts +85 -0
  383. package/dist/transaction/wire/modelResponses.js +43 -0
  384. package/dist/transaction/wire/modelShape.d.ts +78 -0
  385. package/dist/transaction/wire/modelShape.js +74 -0
  386. package/dist/transactions/{TransactionQueue.d.ts → mutations/MutationQueue.d.ts} +85 -38
  387. package/dist/transactions/{TransactionQueue.js → mutations/MutationQueue.js} +141 -80
  388. package/dist/transactions/{TransactionStore.d.ts → mutations/MutationStore.d.ts} +8 -8
  389. package/dist/transactions/{TransactionStore.js → mutations/MutationStore.js} +2 -2
  390. package/dist/transactions/{coalesceRules.d.ts → mutations/coalesceRules.d.ts} +10 -10
  391. package/dist/transactions/{coalesceRules.js → mutations/coalesceRules.js} +1 -1
  392. package/dist/transactions/mutations/commitLatency.d.ts +52 -0
  393. package/dist/transactions/mutations/commitLatency.js +130 -0
  394. package/dist/transactions/{commitOutboxStore.d.ts → mutations/commitOutboxStore.d.ts} +1 -5
  395. package/dist/transactions/{commitOutboxStore.js → mutations/commitOutboxStore.js} +1 -1
  396. package/dist/transactions/{commitPayload.d.ts → mutations/commitPayload.d.ts} +18 -16
  397. package/dist/transactions/{commitPayload.js → mutations/commitPayload.js} +15 -15
  398. package/dist/transactions/{deltaConfirmation.d.ts → mutations/deltaConfirmation.d.ts} +15 -11
  399. package/dist/transactions/{deltaConfirmation.js → mutations/deltaConfirmation.js} +14 -12
  400. package/dist/transactions/mutations/durableWriteStore.d.ts +14 -0
  401. package/dist/transactions/mutations/durableWriteStore.js +12 -0
  402. package/dist/transactions/{optimisticApply.d.ts → mutations/optimisticApply.d.ts} +7 -7
  403. package/dist/transactions/{replayValidation.d.ts → mutations/replayValidation.d.ts} +4 -3
  404. package/dist/transactions/{replayValidation.js → mutations/replayValidation.js} +7 -5
  405. package/dist/utils/mobxSetup.d.ts +1 -1
  406. package/dist/utils/mobxSetup.js +5 -2
  407. package/dist/{core → views}/QueryView.d.ts +2 -2
  408. package/dist/{core → views}/QueryView.js +2 -2
  409. package/dist/{core → views}/ViewRegistry.d.ts +1 -1
  410. package/dist/{core/queryUtils.d.ts → views/incrementalView.d.ts} +6 -6
  411. package/dist/{core/queryUtils.js → views/incrementalView.js} +6 -6
  412. package/dist/webhooks/events.d.ts +2 -2
  413. package/dist/wire/index.d.ts +1 -34
  414. package/dist/wire/index.js +8 -49
  415. package/docs/agent-messaging.md +3 -3
  416. package/docs/agents.md +20 -13
  417. package/docs/api-keys.md +14 -10
  418. package/docs/api.md +27 -61
  419. package/docs/audit.md +6 -3
  420. package/docs/cli.md +41 -13
  421. package/docs/client-behavior.md +11 -9
  422. package/docs/concurrency-convention.md +49 -57
  423. package/docs/coordination.md +283 -121
  424. package/docs/data-sources.md +7 -5
  425. package/docs/debugging.md +39 -15
  426. package/docs/deployment.md +267 -0
  427. package/docs/examples/agent-human.md +49 -42
  428. package/docs/examples/ai-sdk-tool.md +69 -44
  429. package/docs/examples/existing-python-backend.md +8 -6
  430. package/docs/examples/nextjs.md +129 -47
  431. package/docs/examples/scoped-agent.md +46 -45
  432. package/docs/examples/server-agent.md +46 -26
  433. package/docs/groups.md +87 -30
  434. package/docs/guarantees.md +41 -12
  435. package/docs/how-it-works.md +38 -12
  436. package/docs/idempotency.md +126 -0
  437. package/docs/identity.md +77 -74
  438. package/docs/index.md +172 -86
  439. package/docs/integration-guide.md +31 -19
  440. package/docs/mcp.md +46 -21
  441. package/docs/migration.md +95 -18
  442. package/docs/operating-on-your-database.md +3 -1
  443. package/docs/projects.md +3 -1
  444. package/docs/quickstart.md +22 -5
  445. package/docs/react.md +31 -18
  446. package/docs/schema-contract.md +5 -3
  447. package/docs/session-settings.md +108 -0
  448. package/docs/sessions.md +4 -2
  449. package/docs/webhooks.md +12 -10
  450. package/llms.txt +48 -18
  451. package/package.json +21 -26
  452. package/dist/agent/Agent.d.ts +0 -366
  453. package/dist/agent/Agent.js +0 -514
  454. package/dist/agent/index.d.ts +0 -115
  455. package/dist/agent/index.js +0 -128
  456. package/dist/agent/session.d.ts +0 -93
  457. package/dist/agent/session.js +0 -149
  458. package/dist/agent/types.d.ts +0 -68
  459. package/dist/agent/types.js +0 -9
  460. package/dist/cli.cjs +0 -286329
  461. package/dist/client/durableWrites.d.ts +0 -21
  462. package/dist/client/httpClient.d.ts +0 -80
  463. package/dist/coordination/schema.d.ts +0 -722
  464. package/dist/coordination/schema.js +0 -578
  465. package/dist/schema/openapi.d.ts +0 -29
  466. package/dist/schema/openapi.js +0 -124
  467. package/dist/testing/fixtures/bootstrap.d.ts +0 -49
  468. package/dist/testing/fixtures/bootstrap.js +0 -59
  469. package/dist/testing/fixtures/deltas.d.ts +0 -83
  470. package/dist/testing/fixtures/deltas.js +0 -136
  471. package/dist/testing/fixtures/models.d.ts +0 -83
  472. package/dist/testing/fixtures/models.js +0 -272
  473. package/dist/testing/helpers/reactWrapper.d.ts +0 -69
  474. package/dist/testing/helpers/reactWrapper.js +0 -67
  475. package/dist/testing/helpers/syncEngineHarness.d.ts +0 -54
  476. package/dist/testing/helpers/syncEngineHarness.js +0 -73
  477. package/dist/testing/helpers/wait.d.ts +0 -30
  478. package/dist/testing/helpers/wait.js +0 -49
  479. package/dist/testing/index.d.ts +0 -23
  480. package/dist/testing/index.js +0 -33
  481. package/dist/testing/mocks/FakeDatabase.d.ts +0 -18
  482. package/dist/testing/mocks/FakeDatabase.js +0 -10
  483. package/dist/testing/mocks/MockMutationExecutor.d.ts +0 -87
  484. package/dist/testing/mocks/MockMutationExecutor.js +0 -192
  485. package/dist/testing/mocks/MockNetworkMonitor.d.ts +0 -20
  486. package/dist/testing/mocks/MockNetworkMonitor.js +0 -46
  487. package/dist/testing/mocks/MockSyncContext.d.ts +0 -51
  488. package/dist/testing/mocks/MockSyncContext.js +0 -71
  489. package/dist/testing/mocks/MockSyncStore.d.ts +0 -88
  490. package/dist/testing/mocks/MockSyncStore.js +0 -171
  491. package/dist/testing/mocks/MockWebSocket.d.ts +0 -71
  492. package/dist/testing/mocks/MockWebSocket.js +0 -118
  493. package/dist/transactions/durableWriteStore.js +0 -30
  494. package/dist/utils/duration.d.ts +0 -25
  495. package/dist/utils/json.js +0 -88
  496. package/dist/wire/errorEnvelope.d.ts +0 -55
  497. package/dist/wire/frames.d.ts +0 -197
  498. package/dist/wire/frames.js +0 -49
  499. package/dist/wire/listEnvelope.js +0 -18
  500. package/docs/interaction-model.md +0 -97
  501. /package/dist/{core → query}/QueryProcessor.d.ts +0 -0
  502. /package/dist/{core → query}/QueryProcessor.js +0 -0
  503. /package/dist/{core/storeContract.js → storeContract.js} +0 -0
  504. /package/dist/{core → stores}/openIDBWithTimeout.d.ts +0 -0
  505. /package/dist/{core → stores}/openIDBWithTimeout.js +0 -0
  506. /package/dist/{client → transaction/auth}/credentialEndpoint.d.ts +0 -0
  507. /package/dist/{client → transaction/auth}/credentialEndpoint.js +0 -0
  508. /package/dist/{auth → transaction/auth}/credentialPolicy.d.ts +0 -0
  509. /package/dist/{auth → transaction/auth}/credentialPolicy.js +0 -0
  510. /package/dist/{auth → transaction/auth}/credentialSource.js +0 -0
  511. /package/dist/{client → transaction/auth}/hostedEndpoints.d.ts +0 -0
  512. /package/dist/{client → transaction/auth}/hostedEndpoints.js +0 -0
  513. /package/dist/{client → transaction}/persistence.d.ts +0 -0
  514. /package/dist/{client → transaction}/persistence.js +0 -0
  515. /package/dist/{client → transaction/resources}/functionalUpdate.d.ts +0 -0
  516. /package/dist/{client → transaction/resources}/functionalUpdate.js +0 -0
  517. /package/dist/{transactions → transaction/transactions/settlement}/idempotencyKey.d.ts +0 -0
  518. /package/dist/{transactions → transaction/transactions/settlement}/idempotencyKey.js +0 -0
  519. /package/dist/{client → transaction/transport}/httpTransport.d.ts +0 -0
  520. /package/dist/{types → transaction/types}/modelData.d.ts +0 -0
  521. /package/dist/{types → transaction/types}/modelData.js +0 -0
  522. /package/dist/{types → transaction/types}/participant.d.ts +0 -0
  523. /package/dist/{types → transaction/types}/participant.js +0 -0
  524. /package/dist/{types → transaction/types}/streams.js +0 -0
  525. /package/dist/{utils → transaction/utils}/asyncIterator.d.ts +0 -0
  526. /package/dist/{utils → transaction/utils}/asyncIterator.js +0 -0
  527. /package/dist/{wire → transaction/wire}/bootstrapReason.d.ts +0 -0
  528. /package/dist/{wire → transaction/wire}/bootstrapReason.js +0 -0
  529. /package/dist/{wire → transaction/wire}/protocol.d.ts +0 -0
  530. /package/dist/{wire → transaction/wire}/protocol.js +0 -0
  531. /package/dist/{wire → transaction/wire}/protocolVersion.d.ts +0 -0
  532. /package/dist/{wire → transaction/wire}/protocolVersion.js +0 -0
  533. /package/dist/transactions/{UnconfirmedWrites.d.ts → mutations/UnconfirmedWrites.d.ts} +0 -0
  534. /package/dist/transactions/{UnconfirmedWrites.js → mutations/UnconfirmedWrites.js} +0 -0
  535. /package/dist/transactions/{optimisticApply.js → mutations/optimisticApply.js} +0 -0
  536. /package/dist/{core → views}/ViewRegistry.js +0 -0
@@ -0,0 +1,530 @@
1
+ /**
2
+ * The request bodies for the claim routes.
3
+ *
4
+ * A claim is a lease over a row, so these cross the same boundary the commit
5
+ * body does and belong here for the same reason: one definition site, which the
6
+ * server validates against and the published OpenAPI reference derives from.
7
+ *
8
+ * Before this existed both claim routes cast `JSON.parse` output to a
9
+ * hand-written interface, so an untrusted body reached the coordinator
10
+ * unvalidated and the reference described the shape from memory.
11
+ */
12
+ import { z } from 'zod';
13
+ /**
14
+ * How long a lease runs when the caller does not ask for a length.
15
+ *
16
+ * One definition for both ends: the server stamps `expiresAt` with it, and the
17
+ * client's auto-heartbeat derives its cadence from it, so a claim that names no
18
+ * TTL beats comfortably inside the window the server actually granted.
19
+ */
20
+ export declare const DEFAULT_CLAIM_TTL_MS = 60000;
21
+ /**
22
+ * A lease length on the wire, in the SDK's one duration grammar: a
23
+ * unit-suffixed string (`'500ms'`, `'30s'`, `'5m'`, `'24h'`) or a bare number of
24
+ * **seconds** — the same reading `ttlSeconds` has everywhere else in the API.
25
+ *
26
+ * It used to be `z.union([z.string(), z.number()])`, and the units lived only in
27
+ * the route's private parser, which read a bare number as MILLISECONDS. So the
28
+ * SDK computed its heartbeat cadence from one grammar while the server granted a
29
+ * lease under another, and `ttl: 300` meant five minutes to the client and three
30
+ * hundred milliseconds to the server. Publishing the grammar is what makes that
31
+ * class of disagreement impossible: there is now one pattern, emitted into the
32
+ * contract, and one parser behind it.
33
+ */
34
+ export declare const claimTtlSchema: z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>;
35
+ /**
36
+ * A wire TTL as milliseconds — the single reading of the grammar above.
37
+ *
38
+ * The server calls this rather than carrying its own parser. An absent TTL takes
39
+ * {@link DEFAULT_CLAIM_TTL_MS}; anything present has already been validated by
40
+ * {@link claimTtlSchema} at the boundary, so a malformed duration is a 400 at the
41
+ * door rather than a silent one-minute lease that lapses mid-work.
42
+ */
43
+ export declare function claimTtlMs(ttl: z.infer<typeof claimTtlSchema> | null | undefined): number;
44
+ /** The row a claim points at, when it is not already given by the URL. */
45
+ export declare const claimTargetSchema: z.ZodObject<{
46
+ model: z.ZodOptional<z.ZodString>;
47
+ id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
48
+ path: z.ZodOptional<z.ZodString>;
49
+ range: z.ZodOptional<z.ZodObject<{
50
+ startLine: z.ZodNumber;
51
+ endLine: z.ZodNumber;
52
+ startColumn: z.ZodOptional<z.ZodNumber>;
53
+ endColumn: z.ZodOptional<z.ZodNumber>;
54
+ }, z.core.$strip>>;
55
+ field: z.ZodOptional<z.ZodString>;
56
+ fields: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodString>>>;
57
+ meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
58
+ }, z.core.$strip>;
59
+ export type ClaimTargetBody = z.infer<typeof claimTargetSchema>;
60
+ /**
61
+ * `POST /v1/claims` and `POST /v1/models/{model}/{id}/claim`.
62
+ *
63
+ * Every field is optional: on the model-scoped route the target comes from the
64
+ * URL, and a bare claim means "I'm editing this row".
65
+ */
66
+ export declare const claimRequestSchema: z.ZodObject<{
67
+ claimId: z.ZodOptional<z.ZodString>;
68
+ target: z.ZodOptional<z.ZodNullable<z.ZodObject<{
69
+ model: z.ZodOptional<z.ZodString>;
70
+ id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
71
+ path: z.ZodOptional<z.ZodString>;
72
+ range: z.ZodOptional<z.ZodObject<{
73
+ startLine: z.ZodNumber;
74
+ endLine: z.ZodNumber;
75
+ startColumn: z.ZodOptional<z.ZodNumber>;
76
+ endColumn: z.ZodOptional<z.ZodNumber>;
77
+ }, z.core.$strip>>;
78
+ field: z.ZodOptional<z.ZodString>;
79
+ fields: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodString>>>;
80
+ meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
81
+ }, z.core.$strip>>>;
82
+ reason: z.ZodOptional<z.ZodString>;
83
+ description: z.ZodOptional<z.ZodString>;
84
+ meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
85
+ ttl: z.ZodOptional<z.ZodNullable<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>>>;
86
+ queue: z.ZodOptional<z.ZodBoolean>;
87
+ }, z.core.$strip>;
88
+ export type ClaimRequest = z.infer<typeof claimRequestSchema>;
89
+ /**
90
+ * `POST /v1/models/{model}/{id}/claim/heartbeat`.
91
+ *
92
+ * An empty body is a plain "still working" beat. `ttl` extends the lease;
93
+ * `claimId` names the exact lease instead of "my claim on this row".
94
+ */
95
+ export declare const claimHeartbeatRequestSchema: z.ZodObject<{
96
+ claimId: z.ZodOptional<z.ZodString>;
97
+ ttl: z.ZodOptional<z.ZodNullable<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>>>;
98
+ details: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
99
+ }, z.core.$strip>;
100
+ export type ClaimHeartbeatRequest = z.infer<typeof claimHeartbeatRequestSchema>;
101
+ /**
102
+ * The query string on `GET /v1/models/{model}`.
103
+ *
104
+ * Values arrive as strings, so this describes the wire spelling rather than the
105
+ * parsed result — which is what a caller and the reference both need.
106
+ */
107
+ export declare const listQuerySchema: z.ZodObject<{
108
+ limit: z.ZodOptional<z.ZodString>;
109
+ order_by: z.ZodOptional<z.ZodString>;
110
+ order: z.ZodOptional<z.ZodEnum<{
111
+ asc: "asc";
112
+ desc: "desc";
113
+ }>>;
114
+ starting_after: z.ZodOptional<z.ZodString>;
115
+ }, z.core.$strip>;
116
+ export type ListQuery = z.infer<typeof listQuerySchema>;
117
+ /**
118
+ * A claim's current state, as returned by `GET /v1/claims/{claimId}`.
119
+ *
120
+ * This is the polling shape, and only the polling shape. Acquiring a claim
121
+ * answers with {@link claimAcquireResponseSchema}, whose two arms are spelled
122
+ * differently — that route was documented against this schema for a while, and
123
+ * the reference described a response the server has never sent.
124
+ *
125
+ * This is the shape that makes queued grants reachable without a socket: the
126
+ * caller enqueues, receives `queued`, heartbeats to stay in line, and polls
127
+ * until `status` becomes `active`, at which point `fenceToken` is present and
128
+ * the work can begin.
129
+ *
130
+ * Two properties are load-bearing and easy to get wrong from the outside:
131
+ *
132
+ * **`position` is advisory.** A privileged caller can reorder the wait line, so
133
+ * a position can go UP between polls. Only `status` is authoritative — a client
134
+ * that asserts monotonic position will fail in production, not in review.
135
+ *
136
+ * **`fenceToken` appears at grant, never at enqueue.** It orders by acquisition
137
+ * rather than by arrival, which is what the fence watermark depends on; a token
138
+ * handed out while queued would break that ordering.
139
+ *
140
+ * There is deliberately no `readAt` here. A watermark records the state a
141
+ * writer reasoned against, and a caller that has just been granted a claim has
142
+ * not read anything yet — it reads next. Stamping one at grant would assert a
143
+ * premise the caller never established, so the holder gets its watermark from
144
+ * its own read, the same way the socket path takes it from a local snapshot.
145
+ */
146
+ export declare const claimStateSchema: z.ZodObject<{
147
+ id: z.ZodString;
148
+ expiresAt: z.ZodOptional<z.ZodNumber>;
149
+ fenceToken: z.ZodOptional<z.ZodNumber>;
150
+ position: z.ZodOptional<z.ZodNumber>;
151
+ object: z.ZodLiteral<"claim">;
152
+ status: z.ZodEnum<{
153
+ active: "active";
154
+ committed: "committed";
155
+ expired: "expired";
156
+ canceled: "canceled";
157
+ queued: "queued";
158
+ }>;
159
+ }, z.core.$strip>;
160
+ export type ClaimState = z.infer<typeof claimStateSchema>;
161
+ /**
162
+ * `POST /v1/claims` and `POST /v1/models/{model}/{id}/claim`, **201** — the
163
+ * target was free and the lease is yours. The claim is nested rather than
164
+ * flattened because the outer object is the created resource's envelope, and
165
+ * `id` is its identity.
166
+ */
167
+ export declare const claimAcquiredResponseSchema: z.ZodObject<{
168
+ id: z.ZodString;
169
+ object: z.ZodLiteral<"claim">;
170
+ status: z.ZodLiteral<"active">;
171
+ fenceToken: z.ZodOptional<z.ZodNumber>;
172
+ expiresAt: z.ZodOptional<z.ZodNumber>;
173
+ claim: z.ZodReadonly<z.ZodObject<{
174
+ id: z.ZodString;
175
+ actor: z.ZodString;
176
+ participantKind: z.ZodPreprocess<z.ZodEnum<{
177
+ user: "user";
178
+ agent: "agent";
179
+ system: "system";
180
+ }>>;
181
+ onBehalfOfId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
182
+ onBehalfOfKind: z.ZodOptional<z.ZodNullable<z.ZodPreprocess<z.ZodEnum<{
183
+ user: "user";
184
+ agent: "agent";
185
+ system: "system";
186
+ }>>>>;
187
+ capabilityId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
188
+ description: z.ZodOptional<z.ZodString>;
189
+ status: z.ZodOptional<z.ZodEnum<{
190
+ active: "active";
191
+ queued: "queued";
192
+ }>>;
193
+ position: z.ZodOptional<z.ZodNumber>;
194
+ expiresAt: z.ZodNumber;
195
+ fenceToken: z.ZodOptional<z.ZodNumber>;
196
+ target: z.ZodReadonly<z.ZodObject<{
197
+ model: z.ZodString;
198
+ id: z.ZodString;
199
+ path: z.ZodOptional<z.ZodString>;
200
+ range: z.ZodOptional<z.ZodObject<{
201
+ startLine: z.ZodNumber;
202
+ endLine: z.ZodNumber;
203
+ startColumn: z.ZodOptional<z.ZodNumber>;
204
+ endColumn: z.ZodOptional<z.ZodNumber>;
205
+ }, z.core.$strip>>;
206
+ field: z.ZodOptional<z.ZodString>;
207
+ fields: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodString>>>;
208
+ meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
209
+ }, z.core.$strip>>;
210
+ meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
211
+ field: z.ZodOptional<z.ZodString>;
212
+ }, z.core.$strip>>;
213
+ }, z.core.$strip>;
214
+ export type ClaimAcquiredResponse = z.infer<typeof claimAcquiredResponseSchema>;
215
+ /**
216
+ * The same two routes, **202** — the row was already held and `queue: true`
217
+ * put you in line. The grant arrives later on the caller's stream, or through
218
+ * `GET /v1/claims/{claimId}`.
219
+ *
220
+ * Shaped as a claim resource, exactly like the 201, because that is what it is:
221
+ * a queue entry is a lease in a different state — the reason one `DELETE`
222
+ * serves both, and the reason the poll can move one to the other. It once
223
+ * withheld `object` and `id` on the argument that a queued claim is not yet a
224
+ * created resource, which read as principled and cost a caller the ability to
225
+ * treat the two answers as one type.
226
+ */
227
+ export declare const claimQueuedResponseSchema: z.ZodObject<{
228
+ id: z.ZodString;
229
+ object: z.ZodLiteral<"claim">;
230
+ status: z.ZodLiteral<"queued">;
231
+ position: z.ZodNumber;
232
+ heldBy: z.ZodOptional<z.ZodString>;
233
+ expiresAt: z.ZodOptional<z.ZodNumber>;
234
+ heldByClaim: z.ZodOptional<z.ZodObject<{
235
+ entityType: z.ZodString;
236
+ entityId: z.ZodString;
237
+ path: z.ZodOptional<z.ZodString>;
238
+ range: z.ZodOptional<z.ZodObject<{
239
+ startLine: z.ZodNumber;
240
+ endLine: z.ZodNumber;
241
+ startColumn: z.ZodOptional<z.ZodNumber>;
242
+ endColumn: z.ZodOptional<z.ZodNumber>;
243
+ }, z.core.$strip>>;
244
+ field: z.ZodOptional<z.ZodString>;
245
+ fields: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodString>>>;
246
+ meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
247
+ claimId: z.ZodString;
248
+ description: z.ZodOptional<z.ZodString>;
249
+ declaredAt: z.ZodNumber;
250
+ expiresAt: z.ZodNumber;
251
+ onBehalfOfId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
252
+ onBehalfOfKind: z.ZodOptional<z.ZodNullable<z.ZodPreprocess<z.ZodEnum<{
253
+ user: "user";
254
+ agent: "agent";
255
+ system: "system";
256
+ }>>>>;
257
+ capabilityId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
258
+ }, z.core.$strip>>;
259
+ }, z.core.$strip>;
260
+ export type ClaimQueuedResponse = z.infer<typeof claimQueuedResponseSchema>;
261
+ /**
262
+ * Either answer to a claim acquire — one resource, two states, told apart by
263
+ * `status`.
264
+ *
265
+ * A real discriminated union, which it could not be while the arms disagreed
266
+ * about what the handle was called (`id` on the 201, `claimId` on the 202) and
267
+ * only one of them said `object`. `claimRecordSchema.id` states the rule both
268
+ * now follow: `id` where the claim IS the resource, `claimId` where some other
269
+ * object names one.
270
+ */
271
+ export declare const claimAcquireResponseSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
272
+ id: z.ZodString;
273
+ object: z.ZodLiteral<"claim">;
274
+ status: z.ZodLiteral<"active">;
275
+ fenceToken: z.ZodOptional<z.ZodNumber>;
276
+ expiresAt: z.ZodOptional<z.ZodNumber>;
277
+ claim: z.ZodReadonly<z.ZodObject<{
278
+ id: z.ZodString;
279
+ actor: z.ZodString;
280
+ participantKind: z.ZodPreprocess<z.ZodEnum<{
281
+ user: "user";
282
+ agent: "agent";
283
+ system: "system";
284
+ }>>;
285
+ onBehalfOfId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
286
+ onBehalfOfKind: z.ZodOptional<z.ZodNullable<z.ZodPreprocess<z.ZodEnum<{
287
+ user: "user";
288
+ agent: "agent";
289
+ system: "system";
290
+ }>>>>;
291
+ capabilityId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
292
+ description: z.ZodOptional<z.ZodString>;
293
+ status: z.ZodOptional<z.ZodEnum<{
294
+ active: "active";
295
+ queued: "queued";
296
+ }>>;
297
+ position: z.ZodOptional<z.ZodNumber>;
298
+ expiresAt: z.ZodNumber;
299
+ fenceToken: z.ZodOptional<z.ZodNumber>;
300
+ target: z.ZodReadonly<z.ZodObject<{
301
+ model: z.ZodString;
302
+ id: z.ZodString;
303
+ path: z.ZodOptional<z.ZodString>;
304
+ range: z.ZodOptional<z.ZodObject<{
305
+ startLine: z.ZodNumber;
306
+ endLine: z.ZodNumber;
307
+ startColumn: z.ZodOptional<z.ZodNumber>;
308
+ endColumn: z.ZodOptional<z.ZodNumber>;
309
+ }, z.core.$strip>>;
310
+ field: z.ZodOptional<z.ZodString>;
311
+ fields: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodString>>>;
312
+ meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
313
+ }, z.core.$strip>>;
314
+ meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
315
+ field: z.ZodOptional<z.ZodString>;
316
+ }, z.core.$strip>>;
317
+ }, z.core.$strip>, z.ZodObject<{
318
+ id: z.ZodString;
319
+ object: z.ZodLiteral<"claim">;
320
+ status: z.ZodLiteral<"queued">;
321
+ position: z.ZodNumber;
322
+ heldBy: z.ZodOptional<z.ZodString>;
323
+ expiresAt: z.ZodOptional<z.ZodNumber>;
324
+ heldByClaim: z.ZodOptional<z.ZodObject<{
325
+ entityType: z.ZodString;
326
+ entityId: z.ZodString;
327
+ path: z.ZodOptional<z.ZodString>;
328
+ range: z.ZodOptional<z.ZodObject<{
329
+ startLine: z.ZodNumber;
330
+ endLine: z.ZodNumber;
331
+ startColumn: z.ZodOptional<z.ZodNumber>;
332
+ endColumn: z.ZodOptional<z.ZodNumber>;
333
+ }, z.core.$strip>>;
334
+ field: z.ZodOptional<z.ZodString>;
335
+ fields: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodString>>>;
336
+ meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
337
+ claimId: z.ZodString;
338
+ description: z.ZodOptional<z.ZodString>;
339
+ declaredAt: z.ZodNumber;
340
+ expiresAt: z.ZodNumber;
341
+ onBehalfOfId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
342
+ onBehalfOfKind: z.ZodOptional<z.ZodNullable<z.ZodPreprocess<z.ZodEnum<{
343
+ user: "user";
344
+ agent: "agent";
345
+ system: "system";
346
+ }>>>>;
347
+ capabilityId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
348
+ }, z.core.$strip>>;
349
+ }, z.core.$strip>], "status">;
350
+ export type ClaimAcquireResponse = z.infer<typeof claimAcquireResponseSchema>;
351
+ /**
352
+ * `POST /v1/models/{model}/{id}/claim/heartbeat`.
353
+ *
354
+ * `status` never carries `'lost'` in a body: a lease that ended answers with a
355
+ * 409 `claim_lost` instead, which the error mapping raises as
356
+ * `AbloClaimedError` before any of this is read. That is the one way this
357
+ * differs from the WebSocket {@link claimHeartbeatAckPayloadSchema}, whose
358
+ * three-state status includes the loss.
359
+ */
360
+ export declare const claimHeartbeatReplySchema: z.ZodObject<{
361
+ object: z.ZodLiteral<"claim_heartbeat">;
362
+ claimId: z.ZodString;
363
+ status: z.ZodEnum<{
364
+ queued: "queued";
365
+ held: "held";
366
+ }>;
367
+ expiresAt: z.ZodOptional<z.ZodNumber>;
368
+ queueDepth: z.ZodOptional<z.ZodNumber>;
369
+ position: z.ZodOptional<z.ZodNumber>;
370
+ }, z.core.$strip>;
371
+ export type ClaimHeartbeatReply = z.infer<typeof claimHeartbeatReplySchema>;
372
+ /** `POST /v1/claims/heartbeat` — one ack per lease the batch extended. */
373
+ export declare const claimHeartbeatBatchReplySchema: z.ZodObject<{
374
+ object: z.ZodLiteral<"list">;
375
+ results: z.ZodArray<z.ZodObject<{
376
+ claimId: z.ZodString;
377
+ status: z.ZodEnum<{
378
+ queued: "queued";
379
+ held: "held";
380
+ lost: "lost";
381
+ }>;
382
+ expiresAt: z.ZodOptional<z.ZodNumber>;
383
+ position: z.ZodOptional<z.ZodNumber>;
384
+ queueDepth: z.ZodOptional<z.ZodNumber>;
385
+ }, z.core.$strip>>;
386
+ }, z.core.$strip>;
387
+ export type ClaimHeartbeatBatchReply = z.infer<typeof claimHeartbeatBatchReplySchema>;
388
+ /**
389
+ * The query string on `GET /v1/claims` — the four questions you may ask about
390
+ * live work, which are the same four the audit log already answers about
391
+ * finished work.
392
+ *
393
+ * The names are audit's names on purpose (`routes/dashboard/audit.ts` filters on
394
+ * `actorId`, `actorKind`, `onBehalfOfId`, `capabilityId`). Asking "everything
395
+ * agent A is doing" and "everything agent A did" should not require learning two
396
+ * vocabularies for one idea; the tense is the only thing that differs.
397
+ *
398
+ * `model` and `id` scope to a row and are the original axis. The other three
399
+ * scope to a participant, and a request may combine them — "what is this agent
400
+ * doing to this invoice" is both.
401
+ *
402
+ * Every value is optional, and an omitted filter is not a filter: a bare request
403
+ * lists everything the caller's organization holds.
404
+ */
405
+ export declare const claimListQuerySchema: z.ZodObject<{
406
+ model: z.ZodOptional<z.ZodString>;
407
+ id: z.ZodOptional<z.ZodString>;
408
+ field: z.ZodOptional<z.ZodString>;
409
+ actorId: z.ZodOptional<z.ZodString>;
410
+ actorKind: z.ZodOptional<z.ZodPreprocess<z.ZodEnum<{
411
+ user: "user";
412
+ agent: "agent";
413
+ system: "system";
414
+ }>>>;
415
+ onBehalfOfId: z.ZodOptional<z.ZodString>;
416
+ capabilityId: z.ZodOptional<z.ZodString>;
417
+ }, z.core.$strip>;
418
+ export type ClaimListQuery = z.infer<typeof claimListQuerySchema>;
419
+ /**
420
+ * `GET /v1/claims` — who holds what, and who waits.
421
+ *
422
+ * One list in the shape every other list has, because holders and waiters are
423
+ * the same resource in two states: each entry carries `status`, and a `queued`
424
+ * one carries its `position`. Holders come first, then the wait line in order.
425
+ *
426
+ * It used to answer `{ claims[], queue[] }` — a bespoke envelope on the endpoint
427
+ * a coordination client touches most, which cost a generated client a
428
+ * special-cased model to read the one call it makes constantly.
429
+ *
430
+ * Waiters appear only when the request names both a `model` and an `id`: a wait
431
+ * line belongs to one row, so an unscoped listing has none to report.
432
+ */
433
+ export declare const claimListResponseSchema: z.ZodObject<{
434
+ object: z.ZodLiteral<"list">;
435
+ data: z.ZodReadonly<z.ZodArray<z.ZodType<Readonly<{
436
+ id: string;
437
+ actor: string;
438
+ participantKind: "user" | "agent" | "system";
439
+ expiresAt: number;
440
+ target: Readonly<{
441
+ model: string;
442
+ id: string;
443
+ path?: string | undefined;
444
+ range?: {
445
+ startLine: number;
446
+ endLine: number;
447
+ startColumn?: number | undefined;
448
+ endColumn?: number | undefined;
449
+ } | undefined;
450
+ field?: string | undefined;
451
+ fields?: readonly string[] | undefined;
452
+ meta?: Record<string, unknown> | undefined;
453
+ }>;
454
+ onBehalfOfId?: string | null | undefined;
455
+ onBehalfOfKind?: "user" | "agent" | "system" | null | undefined;
456
+ capabilityId?: string | null | undefined;
457
+ description?: string | undefined;
458
+ status?: "active" | "queued" | undefined;
459
+ position?: number | undefined;
460
+ fenceToken?: number | undefined;
461
+ meta?: Record<string, unknown> | undefined;
462
+ field?: string | undefined;
463
+ }>, unknown, z.core.$ZodTypeInternals<Readonly<{
464
+ id: string;
465
+ actor: string;
466
+ participantKind: "user" | "agent" | "system";
467
+ expiresAt: number;
468
+ target: Readonly<{
469
+ model: string;
470
+ id: string;
471
+ path?: string | undefined;
472
+ range?: {
473
+ startLine: number;
474
+ endLine: number;
475
+ startColumn?: number | undefined;
476
+ endColumn?: number | undefined;
477
+ } | undefined;
478
+ field?: string | undefined;
479
+ fields?: readonly string[] | undefined;
480
+ meta?: Record<string, unknown> | undefined;
481
+ }>;
482
+ onBehalfOfId?: string | null | undefined;
483
+ onBehalfOfKind?: "user" | "agent" | "system" | null | undefined;
484
+ capabilityId?: string | null | undefined;
485
+ description?: string | undefined;
486
+ status?: "active" | "queued" | undefined;
487
+ position?: number | undefined;
488
+ fenceToken?: number | undefined;
489
+ meta?: Record<string, unknown> | undefined;
490
+ field?: string | undefined;
491
+ }>, unknown>>>>;
492
+ has_more: z.ZodBoolean;
493
+ next_cursor: z.ZodNullable<z.ZodString>;
494
+ }, z.core.$strip>;
495
+ export type ClaimListResponse = z.infer<typeof claimListResponseSchema>;
496
+ /**
497
+ * `POST /v1/models/{model}/{id}/claim/reorder` — re-rank the wait line.
498
+ *
499
+ * `claimId` rather than `id` here by the rule in {@link claimRecordSchema}: an
500
+ * entry in this list names a claim, it is not one. The server parsed this body
501
+ * by hand — `JSON.parse(raw) as { order?: … }`, a cast onto an inline shape at a
502
+ * wire boundary — until it had a schema to parse against.
503
+ */
504
+ export declare const claimReorderRequestSchema: z.ZodObject<{
505
+ order: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodObject<{
506
+ heldBy: z.ZodString;
507
+ claimId: z.ZodString;
508
+ }, z.core.$strip>>>>;
509
+ }, z.core.$strip>;
510
+ export type ClaimReorderRequest = z.infer<typeof claimReorderRequestSchema>;
511
+ /** The reorder reply. */
512
+ export declare const claimReorderReplySchema: z.ZodObject<{
513
+ object: z.ZodLiteral<"claim_reorder">;
514
+ reordered: z.ZodBoolean;
515
+ }, z.core.$strip>;
516
+ export type ClaimReorderReply = z.infer<typeof claimReorderReplySchema>;
517
+ /**
518
+ * `DELETE /v1/claims/{claimId}` and `DELETE /v1/models/{model}/{id}/claim`.
519
+ *
520
+ * `released` distinguishes "your lease is gone because this call ended it" from
521
+ * "there was nothing of yours to end" — both are success, and a caller
522
+ * retrying a release deserves to know which happened. The two routes answered
523
+ * `{ ok: true }` and `{ ok, released }`: two shapes, neither written down, and
524
+ * `ok` restating the status code.
525
+ */
526
+ export declare const claimReleaseReplySchema: z.ZodObject<{
527
+ object: z.ZodLiteral<"claim_release">;
528
+ released: z.ZodBoolean;
529
+ }, z.core.$strip>;
530
+ export type ClaimReleaseReply = z.infer<typeof claimReleaseReplySchema>;