@abloatai/ablo 0.35.0 → 0.37.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 (622) hide show
  1. package/AGENTS.md +2 -2
  2. package/CHANGELOG.md +71 -1929
  3. package/NOTICE +2 -2
  4. package/README.md +23 -532
  5. package/assets/banner.png +0 -0
  6. package/dist/auth.d.ts +2 -0
  7. package/dist/auth.d.ts.map +1 -0
  8. package/dist/auth.js +2 -0
  9. package/dist/auth.js.map +1 -0
  10. package/dist/client.d.ts +3 -0
  11. package/dist/client.d.ts.map +1 -0
  12. package/dist/client.js +3 -0
  13. package/dist/client.js.map +1 -0
  14. package/dist/coordination.d.ts +2 -0
  15. package/dist/coordination.d.ts.map +1 -0
  16. package/dist/coordination.js +2 -0
  17. package/dist/coordination.js.map +1 -0
  18. package/dist/index.d.ts +3 -112
  19. package/dist/index.d.ts.map +1 -0
  20. package/dist/index.js +3 -161
  21. package/dist/index.js.map +1 -0
  22. package/dist/react.d.ts +4 -0
  23. package/dist/react.d.ts.map +1 -0
  24. package/dist/react.js +3 -0
  25. package/dist/react.js.map +1 -0
  26. package/dist/schema.d.ts +2 -0
  27. package/dist/schema.d.ts.map +1 -0
  28. package/dist/schema.js +2 -0
  29. package/dist/schema.js.map +1 -0
  30. package/dist/server.d.ts +2 -0
  31. package/dist/server.d.ts.map +1 -0
  32. package/dist/server.js +2 -0
  33. package/dist/server.js.map +1 -0
  34. package/dist/source-conformance.d.ts +2 -0
  35. package/dist/source-conformance.d.ts.map +1 -0
  36. package/dist/source-conformance.js +2 -0
  37. package/dist/source-conformance.js.map +1 -0
  38. package/dist/source-drizzle.d.ts +2 -0
  39. package/dist/source-drizzle.d.ts.map +1 -0
  40. package/dist/source-drizzle.js +2 -0
  41. package/dist/source-drizzle.js.map +1 -0
  42. package/dist/source-kysely.d.ts +2 -0
  43. package/dist/source-kysely.d.ts.map +1 -0
  44. package/dist/source-kysely.js +2 -0
  45. package/dist/source-kysely.js.map +1 -0
  46. package/dist/source-next.d.ts +2 -0
  47. package/dist/source-next.d.ts.map +1 -0
  48. package/dist/source-next.js +2 -0
  49. package/dist/source-next.js.map +1 -0
  50. package/dist/source.d.ts +2 -0
  51. package/dist/source.d.ts.map +1 -0
  52. package/dist/source.js +2 -0
  53. package/dist/source.js.map +1 -0
  54. package/dist/wire.d.ts +2 -0
  55. package/dist/wire.d.ts.map +1 -0
  56. package/dist/wire.js +2 -0
  57. package/dist/wire.js.map +1 -0
  58. package/docs/agents.md +2 -2
  59. package/docs/api-keys.md +13 -12
  60. package/docs/api.md +15 -53
  61. package/docs/audit.md +4 -3
  62. package/docs/cli.md +11 -11
  63. package/docs/client-behavior.md +9 -9
  64. package/docs/concurrency-convention.md +28 -42
  65. package/docs/coordination.md +228 -86
  66. package/docs/data-sources.md +5 -5
  67. package/docs/debugging.md +34 -12
  68. package/docs/deployment.md +8 -8
  69. package/docs/examples/agent-human.md +4 -4
  70. package/docs/examples/ai-sdk-tool.md +1 -1
  71. package/docs/examples/existing-python-backend.md +15 -4
  72. package/docs/examples/nextjs.md +27 -6
  73. package/docs/examples/scoped-agent.md +3 -3
  74. package/docs/examples/server-agent.md +2 -2
  75. package/docs/groups.md +57 -3
  76. package/docs/guarantees.md +37 -10
  77. package/docs/how-it-works.md +32 -8
  78. package/docs/idempotency.md +6 -6
  79. package/docs/identity.md +24 -24
  80. package/docs/index.md +8 -8
  81. package/docs/integration-guide.md +38 -16
  82. package/docs/internal/README.md +18 -0
  83. package/docs/internal/agent-fleet-coordination-design.md +171 -0
  84. package/docs/internal/agent-orchestration.md +58 -0
  85. package/docs/internal/commit-identifiers.md +91 -0
  86. package/docs/internal/concurrency-open-decisions.md +37 -0
  87. package/docs/internal/data-source-reverse-channel.md +150 -0
  88. package/docs/internal/per-field-conflict-detection.md +165 -0
  89. package/docs/internal/postgres-replication.md +64 -0
  90. package/docs/internal/serializable-schema.md +119 -0
  91. package/docs/internal/structure.md +32 -0
  92. package/docs/mcp.md +9 -9
  93. package/docs/migration.md +37 -18
  94. package/docs/projects.md +1 -1
  95. package/docs/quickstart.md +2 -2
  96. package/docs/react.md +24 -13
  97. package/docs/schema-contract.md +3 -3
  98. package/docs/sessions.md +91 -37
  99. package/docs/webhooks.md +9 -9
  100. package/examples/README.md +2 -2
  101. package/examples/data-source/README.md +1 -1
  102. package/examples/data-source/ablo-driver.ts +1 -1
  103. package/examples/data-source/customer-server.ts +1 -1
  104. package/examples/data-source/run.ts +1 -1
  105. package/examples/data-source/schema.ts +1 -1
  106. package/examples/quickstart.ts +2 -2
  107. package/llms.txt +12 -12
  108. package/package.json +64 -174
  109. package/dist/BaseSyncedStore.d.ts +0 -823
  110. package/dist/BaseSyncedStore.js +0 -1955
  111. package/dist/Database.d.ts +0 -335
  112. package/dist/Database.js +0 -1500
  113. package/dist/InstanceCache.d.ts +0 -233
  114. package/dist/InstanceCache.js +0 -1164
  115. package/dist/LazyReferenceCollection.d.ts +0 -177
  116. package/dist/LazyReferenceCollection.js +0 -461
  117. package/dist/Model.d.ts +0 -444
  118. package/dist/Model.js +0 -909
  119. package/dist/ModelRegistry.d.ts +0 -221
  120. package/dist/ModelRegistry.js +0 -537
  121. package/dist/NetworkMonitor.d.ts +0 -26
  122. package/dist/NetworkMonitor.js +0 -77
  123. package/dist/RuntimeContext.d.ts +0 -52
  124. package/dist/RuntimeContext.js +0 -80
  125. package/dist/SyncClient.d.ts +0 -551
  126. package/dist/SyncClient.js +0 -2199
  127. package/dist/adapters/alwaysOnline.d.ts +0 -14
  128. package/dist/adapters/alwaysOnline.js +0 -17
  129. package/dist/adapters/inMemoryStorage.d.ts +0 -31
  130. package/dist/adapters/inMemoryStorage.js +0 -110
  131. package/dist/ai-sdk/coordinatedTool.d.ts +0 -120
  132. package/dist/ai-sdk/coordinatedTool.js +0 -134
  133. package/dist/ai-sdk/coordinationContext.d.ts +0 -46
  134. package/dist/ai-sdk/coordinationContext.js +0 -106
  135. package/dist/ai-sdk/index.d.ts +0 -121
  136. package/dist/ai-sdk/index.js +0 -121
  137. package/dist/ai-sdk/wrap.d.ts +0 -65
  138. package/dist/ai-sdk/wrap.js +0 -39
  139. package/dist/auth/index.d.ts +0 -1
  140. package/dist/auth/index.js +0 -8
  141. package/dist/batching/index.d.ts +0 -55
  142. package/dist/batching/index.js +0 -147
  143. package/dist/cli.cjs +0 -288600
  144. package/dist/client/Ablo.d.ts +0 -231
  145. package/dist/client/Ablo.js +0 -149
  146. package/dist/client/abloClient.d.ts +0 -309
  147. package/dist/client/abloClient.js +0 -13
  148. package/dist/client/clientPrelude.d.ts +0 -52
  149. package/dist/client/clientPrelude.js +0 -60
  150. package/dist/client/consoleLogger.d.ts +0 -35
  151. package/dist/client/consoleLogger.js +0 -44
  152. package/dist/client/coreClient.d.ts +0 -60
  153. package/dist/client/coreClient.js +0 -118
  154. package/dist/client/createInternalComponents.d.ts +0 -46
  155. package/dist/client/createInternalComponents.js +0 -92
  156. package/dist/client/createModelProxy.d.ts +0 -228
  157. package/dist/client/createModelProxy.js +0 -818
  158. package/dist/client/humans.d.ts +0 -48
  159. package/dist/client/humans.js +0 -52
  160. package/dist/client/modelRegistration.d.ts +0 -10
  161. package/dist/client/modelRegistration.js +0 -312
  162. package/dist/client/options.d.ts +0 -461
  163. package/dist/client/options.js +0 -7
  164. package/dist/client/reactiveEngine.d.ts +0 -48
  165. package/dist/client/reactiveEngine.js +0 -910
  166. package/dist/client/resourceTypes.d.ts +0 -12
  167. package/dist/client/resourceTypes.js +0 -10
  168. package/dist/client/schemaConfig.d.ts +0 -44
  169. package/dist/client/schemaConfig.js +0 -185
  170. package/dist/client/validateAbloOptions.d.ts +0 -42
  171. package/dist/client/validateAbloOptions.js +0 -43
  172. package/dist/client/wsMutationExecutor.d.ts +0 -27
  173. package/dist/client/wsMutationExecutor.js +0 -72
  174. package/dist/context.d.ts +0 -29
  175. package/dist/context.js +0 -58
  176. package/dist/coordination/ClaimLog.d.ts +0 -26
  177. package/dist/coordination/ClaimLog.js +0 -32
  178. package/dist/coordination/index.d.ts +0 -1
  179. package/dist/coordination/index.js +0 -8
  180. package/dist/core/DatabaseManager.d.ts +0 -105
  181. package/dist/core/DatabaseManager.js +0 -387
  182. package/dist/core/QueryProcessor.d.ts +0 -75
  183. package/dist/core/QueryProcessor.js +0 -255
  184. package/dist/core/QueryView.d.ts +0 -79
  185. package/dist/core/QueryView.js +0 -218
  186. package/dist/core/StoreManager.d.ts +0 -112
  187. package/dist/core/StoreManager.js +0 -302
  188. package/dist/core/ViewRegistry.d.ts +0 -20
  189. package/dist/core/ViewRegistry.js +0 -55
  190. package/dist/core/index.d.ts +0 -33
  191. package/dist/core/index.js +0 -48
  192. package/dist/core/openIDBWithTimeout.d.ts +0 -65
  193. package/dist/core/openIDBWithTimeout.js +0 -153
  194. package/dist/core/queryUtils.d.ts +0 -45
  195. package/dist/core/queryUtils.js +0 -69
  196. package/dist/core/storeContract.d.ts +0 -145
  197. package/dist/core/storeContract.js +0 -12
  198. package/dist/docs/catalog.d.ts +0 -72
  199. package/dist/docs/catalog.js +0 -227
  200. package/dist/docs/index.d.ts +0 -10
  201. package/dist/docs/index.js +0 -10
  202. package/dist/environment.d.ts +0 -1
  203. package/dist/environment.js +0 -8
  204. package/dist/interfaces/index.d.ts +0 -311
  205. package/dist/interfaces/index.js +0 -9
  206. package/dist/keys/index.d.ts +0 -1
  207. package/dist/keys/index.js +0 -8
  208. package/dist/mutators/RecordingMutation.d.ts +0 -36
  209. package/dist/mutators/RecordingMutation.js +0 -182
  210. package/dist/mutators/Transaction.d.ts +0 -40
  211. package/dist/mutators/Transaction.js +0 -58
  212. package/dist/mutators/UndoManager.d.ts +0 -258
  213. package/dist/mutators/UndoManager.js +0 -658
  214. package/dist/mutators/defineMutators.d.ts +0 -60
  215. package/dist/mutators/defineMutators.js +0 -18
  216. package/dist/mutators/inverseOp.d.ts +0 -126
  217. package/dist/mutators/inverseOp.js +0 -71
  218. package/dist/mutators/mutateActions.d.ts +0 -45
  219. package/dist/mutators/mutateActions.js +0 -105
  220. package/dist/mutators/readerActions.d.ts +0 -33
  221. package/dist/mutators/readerActions.js +0 -57
  222. package/dist/mutators/undoApply.d.ts +0 -51
  223. package/dist/mutators/undoApply.js +0 -117
  224. package/dist/policy/index.d.ts +0 -21
  225. package/dist/policy/index.js +0 -20
  226. package/dist/query/client.d.ts +0 -61
  227. package/dist/query/client.js +0 -137
  228. package/dist/query/types.d.ts +0 -85
  229. package/dist/query/types.js +0 -16
  230. package/dist/react/AbloProvider.d.ts +0 -230
  231. package/dist/react/AbloProvider.js +0 -455
  232. package/dist/react/ClientSideSuspense.d.ts +0 -36
  233. package/dist/react/ClientSideSuspense.js +0 -17
  234. package/dist/react/DefaultFallback.d.ts +0 -24
  235. package/dist/react/DefaultFallback.js +0 -43
  236. package/dist/react/context.d.ts +0 -55
  237. package/dist/react/context.js +0 -29
  238. package/dist/react/index.d.ts +0 -61
  239. package/dist/react/index.js +0 -66
  240. package/dist/react/internalContext.d.ts +0 -33
  241. package/dist/react/internalContext.js +0 -3
  242. package/dist/react/useAblo.d.ts +0 -75
  243. package/dist/react/useAblo.js +0 -102
  244. package/dist/react/useCurrentUserId.d.ts +0 -22
  245. package/dist/react/useCurrentUserId.js +0 -34
  246. package/dist/react/useErrorListener.d.ts +0 -20
  247. package/dist/react/useErrorListener.js +0 -38
  248. package/dist/react/useMutationFailureListener.d.ts +0 -26
  249. package/dist/react/useMutationFailureListener.js +0 -38
  250. package/dist/react/useMutators.d.ts +0 -56
  251. package/dist/react/useMutators.js +0 -84
  252. package/dist/react/useReactive.d.ts +0 -35
  253. package/dist/react/useReactive.js +0 -123
  254. package/dist/react/useSyncStatus.d.ts +0 -59
  255. package/dist/react/useSyncStatus.js +0 -76
  256. package/dist/react/useUndoScope.d.ts +0 -34
  257. package/dist/react/useUndoScope.js +0 -81
  258. package/dist/schema/coordination.d.ts +0 -112
  259. package/dist/schema/coordination.js +0 -129
  260. package/dist/schema/ddl.d.ts +0 -97
  261. package/dist/schema/ddl.js +0 -491
  262. package/dist/schema/ddlLock.d.ts +0 -35
  263. package/dist/schema/ddlLock.js +0 -46
  264. package/dist/schema/diff.d.ts +0 -225
  265. package/dist/schema/diff.js +0 -289
  266. package/dist/schema/generate.d.ts +0 -19
  267. package/dist/schema/generate.js +0 -86
  268. package/dist/schema/index.d.ts +0 -41
  269. package/dist/schema/index.js +0 -76
  270. package/dist/schema/queries.d.ts +0 -201
  271. package/dist/schema/queries.js +0 -144
  272. package/dist/schema/select.d.ts +0 -40
  273. package/dist/schema/select.js +0 -87
  274. package/dist/schema/serialize.d.ts +0 -115
  275. package/dist/schema/serialize.js +0 -262
  276. package/dist/schema/sugar.d.ts +0 -109
  277. package/dist/schema/sugar.js +0 -83
  278. package/dist/schema/syncDeltaRow.d.ts +0 -6
  279. package/dist/schema/syncDeltaRow.js +0 -6
  280. package/dist/server/adapter.d.ts +0 -173
  281. package/dist/server/adapter.js +0 -18
  282. package/dist/server/commit.d.ts +0 -107
  283. package/dist/server/commit.js +0 -1
  284. package/dist/server/index.d.ts +0 -14
  285. package/dist/server/index.js +0 -2
  286. package/dist/server/readConfig.d.ts +0 -80
  287. package/dist/server/readConfig.js +0 -8
  288. package/dist/server/storageMode.d.ts +0 -23
  289. package/dist/server/storageMode.js +0 -17
  290. package/dist/source/adapter.d.ts +0 -81
  291. package/dist/source/adapter.js +0 -22
  292. package/dist/source/adapters/drizzle.d.ts +0 -48
  293. package/dist/source/adapters/drizzle.js +0 -219
  294. package/dist/source/adapters/kysely.d.ts +0 -42
  295. package/dist/source/adapters/kysely.js +0 -205
  296. package/dist/source/adapters/kyselyMutationCore.d.ts +0 -76
  297. package/dist/source/adapters/kyselyMutationCore.js +0 -125
  298. package/dist/source/adapters/memory.d.ts +0 -13
  299. package/dist/source/adapters/memory.js +0 -130
  300. package/dist/source/adapters/prisma.d.ts +0 -63
  301. package/dist/source/adapters/prisma.js +0 -202
  302. package/dist/source/conformance.d.ts +0 -37
  303. package/dist/source/conformance.js +0 -215
  304. package/dist/source/connector.d.ts +0 -95
  305. package/dist/source/connector.js +0 -266
  306. package/dist/source/connectorProtocol.d.ts +0 -154
  307. package/dist/source/connectorProtocol.js +0 -163
  308. package/dist/source/contract.d.ts +0 -195
  309. package/dist/source/contract.js +0 -164
  310. package/dist/source/factory.d.ts +0 -92
  311. package/dist/source/factory.js +0 -286
  312. package/dist/source/footprint.d.ts +0 -111
  313. package/dist/source/footprint.js +0 -0
  314. package/dist/source/idempotency.d.ts +0 -61
  315. package/dist/source/idempotency.js +0 -144
  316. package/dist/source/index.d.ts +0 -23
  317. package/dist/source/index.js +0 -30
  318. package/dist/source/migrations.d.ts +0 -21
  319. package/dist/source/migrations.js +0 -103
  320. package/dist/source/next.d.ts +0 -32
  321. package/dist/source/next.js +0 -25
  322. package/dist/source/pushQueue.d.ts +0 -134
  323. package/dist/source/pushQueue.js +0 -256
  324. package/dist/source/signing.d.ts +0 -92
  325. package/dist/source/signing.js +0 -162
  326. package/dist/source/types.d.ts +0 -401
  327. package/dist/source/types.js +0 -59
  328. package/dist/stores/ObjectStore.d.ts +0 -115
  329. package/dist/stores/ObjectStore.js +0 -393
  330. package/dist/stores/ObjectStoreContract.d.ts +0 -38
  331. package/dist/stores/ObjectStoreContract.js +0 -1
  332. package/dist/stores/SyncActionStore.d.ts +0 -97
  333. package/dist/stores/SyncActionStore.js +0 -504
  334. package/dist/stores/syncAction.d.ts +0 -26
  335. package/dist/stores/syncAction.js +0 -16
  336. package/dist/surface.d.ts +0 -36
  337. package/dist/surface.js +0 -75
  338. package/dist/sync/BootstrapFetcher.d.ts +0 -280
  339. package/dist/sync/BootstrapFetcher.js +0 -962
  340. package/dist/sync/ConnectionManager.d.ts +0 -8
  341. package/dist/sync/ConnectionManager.js +0 -8
  342. package/dist/sync/OnDemandLoader.d.ts +0 -228
  343. package/dist/sync/OnDemandLoader.js +0 -742
  344. package/dist/sync/SubscriptionManager.d.ts +0 -159
  345. package/dist/sync/SubscriptionManager.js +0 -243
  346. package/dist/sync/SyncWebSocket.d.ts +0 -173
  347. package/dist/sync/SyncWebSocket.js +0 -438
  348. package/dist/sync/awaitClaimGrant.d.ts +0 -6
  349. package/dist/sync/awaitClaimGrant.js +0 -6
  350. package/dist/sync/bootstrapApply.d.ts +0 -70
  351. package/dist/sync/bootstrapApply.js +0 -73
  352. package/dist/sync/commitFrames.d.ts +0 -8
  353. package/dist/sync/commitFrames.js +0 -8
  354. package/dist/sync/contextPorts.d.ts +0 -18
  355. package/dist/sync/contextPorts.js +0 -31
  356. package/dist/sync/createClaimStream.d.ts +0 -7
  357. package/dist/sync/createClaimStream.js +0 -7
  358. package/dist/sync/createPresenceStream.d.ts +0 -69
  359. package/dist/sync/createPresenceStream.js +0 -200
  360. package/dist/sync/createSnapshot.d.ts +0 -29
  361. package/dist/sync/createSnapshot.js +0 -118
  362. package/dist/sync/credentialLifecycle.d.ts +0 -7
  363. package/dist/sync/credentialLifecycle.js +0 -7
  364. package/dist/sync/deltaPipeline.d.ts +0 -113
  365. package/dist/sync/deltaPipeline.js +0 -261
  366. package/dist/sync/groupChange.d.ts +0 -113
  367. package/dist/sync/groupChange.js +0 -242
  368. package/dist/sync/participants.d.ts +0 -115
  369. package/dist/sync/participants.js +0 -344
  370. package/dist/sync/persistedPrefix.d.ts +0 -12
  371. package/dist/sync/persistedPrefix.js +0 -22
  372. package/dist/sync/schemaDrift.d.ts +0 -55
  373. package/dist/sync/schemaDrift.js +0 -53
  374. package/dist/sync/schemas.d.ts +0 -70
  375. package/dist/sync/schemas.js +0 -94
  376. package/dist/sync/syncCursor.d.ts +0 -40
  377. package/dist/sync/syncCursor.js +0 -55
  378. package/dist/sync/syncPlan.d.ts +0 -54
  379. package/dist/sync/syncPlan.js +0 -50
  380. package/dist/sync/wsFrameHandlers.d.ts +0 -8
  381. package/dist/sync/wsFrameHandlers.js +0 -8
  382. package/dist/testing/fixtures/bootstrap.d.ts +0 -49
  383. package/dist/testing/fixtures/bootstrap.js +0 -59
  384. package/dist/testing/fixtures/deltas.d.ts +0 -83
  385. package/dist/testing/fixtures/deltas.js +0 -136
  386. package/dist/testing/fixtures/httpResponses.d.ts +0 -70
  387. package/dist/testing/fixtures/httpResponses.js +0 -90
  388. package/dist/testing/fixtures/models.d.ts +0 -83
  389. package/dist/testing/fixtures/models.js +0 -272
  390. package/dist/testing/helpers/reactWrapper.d.ts +0 -69
  391. package/dist/testing/helpers/reactWrapper.js +0 -67
  392. package/dist/testing/helpers/syncEngineHarness.d.ts +0 -54
  393. package/dist/testing/helpers/syncEngineHarness.js +0 -73
  394. package/dist/testing/helpers/wait.d.ts +0 -30
  395. package/dist/testing/helpers/wait.js +0 -49
  396. package/dist/testing/index.d.ts +0 -23
  397. package/dist/testing/index.js +0 -33
  398. package/dist/testing/mocks/FakeDatabase.d.ts +0 -18
  399. package/dist/testing/mocks/FakeDatabase.js +0 -10
  400. package/dist/testing/mocks/MockMutationExecutor.d.ts +0 -87
  401. package/dist/testing/mocks/MockMutationExecutor.js +0 -186
  402. package/dist/testing/mocks/MockNetworkMonitor.d.ts +0 -20
  403. package/dist/testing/mocks/MockNetworkMonitor.js +0 -46
  404. package/dist/testing/mocks/MockSyncContext.d.ts +0 -51
  405. package/dist/testing/mocks/MockSyncContext.js +0 -72
  406. package/dist/testing/mocks/MockSyncStore.d.ts +0 -88
  407. package/dist/testing/mocks/MockSyncStore.js +0 -171
  408. package/dist/testing/mocks/MockWebSocket.d.ts +0 -71
  409. package/dist/testing/mocks/MockWebSocket.js +0 -118
  410. package/dist/transaction/ablo.d.ts +0 -88
  411. package/dist/transaction/ablo.js +0 -33
  412. package/dist/transaction/auth/apiKey.d.ts +0 -152
  413. package/dist/transaction/auth/apiKey.js +0 -419
  414. package/dist/transaction/auth/bootstrapScope.d.ts +0 -15
  415. package/dist/transaction/auth/bootstrapScope.js +0 -1
  416. package/dist/transaction/auth/capability.d.ts +0 -177
  417. package/dist/transaction/auth/capability.js +0 -199
  418. package/dist/transaction/auth/credentialEndpoint.d.ts +0 -61
  419. package/dist/transaction/auth/credentialEndpoint.js +0 -86
  420. package/dist/transaction/auth/credentialPolicy.d.ts +0 -148
  421. package/dist/transaction/auth/credentialPolicy.js +0 -125
  422. package/dist/transaction/auth/credentialSource.d.ts +0 -30
  423. package/dist/transaction/auth/credentialSource.js +0 -55
  424. package/dist/transaction/auth/hostedEndpoints.d.ts +0 -21
  425. package/dist/transaction/auth/hostedEndpoints.js +0 -21
  426. package/dist/transaction/auth/identity.d.ts +0 -55
  427. package/dist/transaction/auth/identity.js +0 -210
  428. package/dist/transaction/auth/index.d.ts +0 -162
  429. package/dist/transaction/auth/index.js +0 -304
  430. package/dist/transaction/auth/schemas.d.ts +0 -59
  431. package/dist/transaction/auth/schemas.js +0 -85
  432. package/dist/transaction/auth/sessionMint.d.ts +0 -28
  433. package/dist/transaction/auth/sessionMint.js +0 -85
  434. package/dist/transaction/coordination/awaitClaimGrant.d.ts +0 -49
  435. package/dist/transaction/coordination/awaitClaimGrant.js +0 -112
  436. package/dist/transaction/coordination/claimHeartbeatLoop.d.ts +0 -50
  437. package/dist/transaction/coordination/claimHeartbeatLoop.js +0 -88
  438. package/dist/transaction/coordination/claimMeta.d.ts +0 -49
  439. package/dist/transaction/coordination/claimMeta.js +0 -52
  440. package/dist/transaction/coordination/createClaimStream.d.ts +0 -64
  441. package/dist/transaction/coordination/createClaimStream.js +0 -475
  442. package/dist/transaction/coordination/events.d.ts +0 -74
  443. package/dist/transaction/coordination/events.js +0 -7
  444. package/dist/transaction/coordination/index.d.ts +0 -19
  445. package/dist/transaction/coordination/index.js +0 -44
  446. package/dist/transaction/coordination/locator.d.ts +0 -83
  447. package/dist/transaction/coordination/locator.js +0 -82
  448. package/dist/transaction/coordination/schema.d.ts +0 -1473
  449. package/dist/transaction/coordination/schema.js +0 -1013
  450. package/dist/transaction/coordination/targetConflict.d.ts +0 -2
  451. package/dist/transaction/coordination/targetConflict.js +0 -103
  452. package/dist/transaction/coordination/trace.d.ts +0 -78
  453. package/dist/transaction/coordination/trace.js +0 -138
  454. package/dist/transaction/durableWrites.d.ts +0 -62
  455. package/dist/transaction/durableWrites.js +0 -71
  456. package/dist/transaction/environment.d.ts +0 -105
  457. package/dist/transaction/environment.js +0 -108
  458. package/dist/transaction/errorCodes.d.ts +0 -403
  459. package/dist/transaction/errorCodes.js +0 -480
  460. package/dist/transaction/errors.d.ts +0 -428
  461. package/dist/transaction/errors.js +0 -686
  462. package/dist/transaction/index.d.ts +0 -20
  463. package/dist/transaction/index.js +0 -20
  464. package/dist/transaction/keys/index.d.ts +0 -87
  465. package/dist/transaction/keys/index.js +0 -207
  466. package/dist/transaction/log/syncDeltaRow.d.ts +0 -158
  467. package/dist/transaction/log/syncDeltaRow.js +0 -95
  468. package/dist/transaction/logPosition.d.ts +0 -97
  469. package/dist/transaction/logPosition.js +0 -125
  470. package/dist/transaction/logger.d.ts +0 -16
  471. package/dist/transaction/logger.js +0 -7
  472. package/dist/transaction/observability.d.ts +0 -53
  473. package/dist/transaction/observability.js +0 -19
  474. package/dist/transaction/persistence.d.ts +0 -12
  475. package/dist/transaction/persistence.js +0 -11
  476. package/dist/transaction/plugin.d.ts +0 -192
  477. package/dist/transaction/plugin.js +0 -87
  478. package/dist/transaction/policy/types.d.ts +0 -217
  479. package/dist/transaction/policy/types.js +0 -126
  480. package/dist/transaction/resources/functionalUpdate.d.ts +0 -79
  481. package/dist/transaction/resources/functionalUpdate.js +0 -87
  482. package/dist/transaction/resources/httpResources.d.ts +0 -266
  483. package/dist/transaction/resources/httpResources.js +0 -7
  484. package/dist/transaction/resources/modelOperations.d.ts +0 -319
  485. package/dist/transaction/resources/modelOperations.js +0 -12
  486. package/dist/transaction/resources/mutationOptions.d.ts +0 -66
  487. package/dist/transaction/resources/mutationOptions.js +0 -9
  488. package/dist/transaction/resources/where.d.ts +0 -85
  489. package/dist/transaction/resources/where.js +0 -70
  490. package/dist/transaction/resources/writeOptionsSchema.d.ts +0 -47
  491. package/dist/transaction/resources/writeOptionsSchema.js +0 -73
  492. package/dist/transaction/schema/field.d.ts +0 -126
  493. package/dist/transaction/schema/field.js +0 -265
  494. package/dist/transaction/schema/loadStrategy.d.ts +0 -45
  495. package/dist/transaction/schema/loadStrategy.js +0 -46
  496. package/dist/transaction/schema/model.d.ts +0 -379
  497. package/dist/transaction/schema/model.js +0 -123
  498. package/dist/transaction/schema/openapi.d.ts +0 -57
  499. package/dist/transaction/schema/openapi.js +0 -340
  500. package/dist/transaction/schema/relation.d.ts +0 -199
  501. package/dist/transaction/schema/relation.js +0 -104
  502. package/dist/transaction/schema/residency.d.ts +0 -29
  503. package/dist/transaction/schema/residency.js +0 -25
  504. package/dist/transaction/schema/roles.d.ts +0 -249
  505. package/dist/transaction/schema/roles.js +0 -230
  506. package/dist/transaction/schema/schema.d.ts +0 -324
  507. package/dist/transaction/schema/schema.js +0 -305
  508. package/dist/transaction/schema/tenancy.d.ts +0 -139
  509. package/dist/transaction/schema/tenancy.js +0 -190
  510. package/dist/transaction/transactionLayer.d.ts +0 -82
  511. package/dist/transaction/transactionLayer.js +0 -24
  512. package/dist/transaction/transactions/settlement/commitEnvelope.d.ts +0 -143
  513. package/dist/transaction/transactions/settlement/commitEnvelope.js +0 -161
  514. package/dist/transaction/transactions/settlement/httpCommitEnvelope.d.ts +0 -53
  515. package/dist/transaction/transactions/settlement/httpCommitEnvelope.js +0 -207
  516. package/dist/transaction/transactions/settlement/idempotencyKey.d.ts +0 -10
  517. package/dist/transaction/transactions/settlement/idempotencyKey.js +0 -9
  518. package/dist/transaction/transactions/settlement/pendingWrite.d.ts +0 -112
  519. package/dist/transaction/transactions/settlement/pendingWrite.js +0 -20
  520. package/dist/transaction/transport/commitFrames.d.ts +0 -90
  521. package/dist/transaction/transport/commitFrames.js +0 -134
  522. package/dist/transaction/transport/connectionManager.d.ts +0 -215
  523. package/dist/transaction/transport/connectionManager.js +0 -673
  524. package/dist/transaction/transport/credentialLifecycle.d.ts +0 -177
  525. package/dist/transaction/transport/credentialLifecycle.js +0 -324
  526. package/dist/transaction/transport/heartbeat.d.ts +0 -65
  527. package/dist/transaction/transport/heartbeat.js +0 -93
  528. package/dist/transaction/transport/httpClient.d.ts +0 -123
  529. package/dist/transaction/transport/httpClient.js +0 -145
  530. package/dist/transaction/transport/httpOptions.d.ts +0 -33
  531. package/dist/transaction/transport/httpOptions.js +0 -12
  532. package/dist/transaction/transport/httpTransport.d.ts +0 -8
  533. package/dist/transaction/transport/httpTransport.js +0 -1276
  534. package/dist/transaction/transport/networkProbe.d.ts +0 -84
  535. package/dist/transaction/transport/networkProbe.js +0 -207
  536. package/dist/transaction/transport/wsFrameHandlers.d.ts +0 -128
  537. package/dist/transaction/transport/wsFrameHandlers.js +0 -429
  538. package/dist/transaction/transport/wsTransport.d.ts +0 -576
  539. package/dist/transaction/transport/wsTransport.js +0 -1017
  540. package/dist/transaction/types/assertExact.d.ts +0 -17
  541. package/dist/transaction/types/assertExact.js +0 -1
  542. package/dist/transaction/types/global.d.ts +0 -107
  543. package/dist/transaction/types/global.js +0 -40
  544. package/dist/transaction/types/index.d.ts +0 -205
  545. package/dist/transaction/types/index.js +0 -56
  546. package/dist/transaction/types/modelData.d.ts +0 -10
  547. package/dist/transaction/types/modelData.js +0 -9
  548. package/dist/transaction/types/participant.d.ts +0 -20
  549. package/dist/transaction/types/participant.js +0 -10
  550. package/dist/transaction/types/streams.d.ts +0 -540
  551. package/dist/transaction/types/streams.js +0 -11
  552. package/dist/transaction/utils/asyncIterator.d.ts +0 -34
  553. package/dist/transaction/utils/asyncIterator.js +0 -135
  554. package/dist/transaction/utils/duration.d.ts +0 -25
  555. package/dist/transaction/utils/duration.js +0 -45
  556. package/dist/transaction/utils/json.d.ts +0 -57
  557. package/dist/transaction/utils/json.js +0 -276
  558. package/dist/transaction/wire/accountResponses.d.ts +0 -351
  559. package/dist/transaction/wire/accountResponses.js +0 -255
  560. package/dist/transaction/wire/auth.d.ts +0 -49
  561. package/dist/transaction/wire/auth.js +0 -57
  562. package/dist/transaction/wire/bootstrapReason.d.ts +0 -9
  563. package/dist/transaction/wire/bootstrapReason.js +0 -8
  564. package/dist/transaction/wire/claimEvent.d.ts +0 -76
  565. package/dist/transaction/wire/claimEvent.js +0 -73
  566. package/dist/transaction/wire/claims.d.ts +0 -463
  567. package/dist/transaction/wire/claims.js +0 -229
  568. package/dist/transaction/wire/commit.d.ts +0 -603
  569. package/dist/transaction/wire/commit.js +0 -321
  570. package/dist/transaction/wire/delta.d.ts +0 -250
  571. package/dist/transaction/wire/delta.js +0 -147
  572. package/dist/transaction/wire/errorEnvelope.d.ts +0 -72
  573. package/dist/transaction/wire/errorEnvelope.js +0 -123
  574. package/dist/transaction/wire/feedCursor.d.ts +0 -60
  575. package/dist/transaction/wire/feedCursor.js +0 -82
  576. package/dist/transaction/wire/feedEvent.d.ts +0 -177
  577. package/dist/transaction/wire/feedEvent.js +0 -39
  578. package/dist/transaction/wire/frames.d.ts +0 -194
  579. package/dist/transaction/wire/frames.js +0 -50
  580. package/dist/transaction/wire/inboundFrames.d.ts +0 -552
  581. package/dist/transaction/wire/inboundFrames.js +0 -116
  582. package/dist/transaction/wire/index.d.ts +0 -50
  583. package/dist/transaction/wire/index.js +0 -74
  584. package/dist/transaction/wire/listEnvelope.d.ts +0 -37
  585. package/dist/transaction/wire/listEnvelope.js +0 -42
  586. package/dist/transaction/wire/modelResponses.d.ts +0 -85
  587. package/dist/transaction/wire/modelResponses.js +0 -43
  588. package/dist/transaction/wire/protocol.d.ts +0 -38
  589. package/dist/transaction/wire/protocol.js +0 -38
  590. package/dist/transaction/wire/protocolVersion.d.ts +0 -73
  591. package/dist/transaction/wire/protocolVersion.js +0 -83
  592. package/dist/transactions/mutations/MutationQueue.d.ts +0 -655
  593. package/dist/transactions/mutations/MutationQueue.js +0 -2797
  594. package/dist/transactions/mutations/MutationStore.d.ts +0 -20
  595. package/dist/transactions/mutations/MutationStore.js +0 -53
  596. package/dist/transactions/mutations/UnconfirmedWrites.d.ts +0 -82
  597. package/dist/transactions/mutations/UnconfirmedWrites.js +0 -104
  598. package/dist/transactions/mutations/coalesceRules.d.ts +0 -58
  599. package/dist/transactions/mutations/coalesceRules.js +0 -140
  600. package/dist/transactions/mutations/commitLatency.d.ts +0 -52
  601. package/dist/transactions/mutations/commitLatency.js +0 -130
  602. package/dist/transactions/mutations/commitOutboxStore.d.ts +0 -28
  603. package/dist/transactions/mutations/commitOutboxStore.js +0 -26
  604. package/dist/transactions/mutations/commitPayload.d.ts +0 -164
  605. package/dist/transactions/mutations/commitPayload.js +0 -152
  606. package/dist/transactions/mutations/deltaConfirmation.d.ts +0 -59
  607. package/dist/transactions/mutations/deltaConfirmation.js +0 -233
  608. package/dist/transactions/mutations/durableWriteStore.d.ts +0 -14
  609. package/dist/transactions/mutations/durableWriteStore.js +0 -12
  610. package/dist/transactions/mutations/optimisticApply.d.ts +0 -49
  611. package/dist/transactions/mutations/optimisticApply.js +0 -65
  612. package/dist/transactions/mutations/replayValidation.d.ts +0 -186
  613. package/dist/transactions/mutations/replayValidation.js +0 -163
  614. package/dist/utils/mobxSetup.d.ts +0 -53
  615. package/dist/utils/mobxSetup.js +0 -330
  616. package/dist/webhooks/events.d.ts +0 -43
  617. package/dist/webhooks/events.js +0 -42
  618. package/dist/webhooks/index.d.ts +0 -8
  619. package/dist/webhooks/index.js +0 -8
  620. package/dist/wire/index.d.ts +0 -1
  621. package/dist/wire/index.js +0 -8
  622. package/docs/interaction-model.md +0 -99
@@ -1,463 +0,0 @@
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
- /** The row a claim points at, when it is not already given by the URL. */
14
- export declare const claimTargetSchema: z.ZodObject<{
15
- model: z.ZodOptional<z.ZodString>;
16
- id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
17
- path: z.ZodOptional<z.ZodString>;
18
- range: z.ZodOptional<z.ZodObject<{
19
- startLine: z.ZodNumber;
20
- endLine: z.ZodNumber;
21
- startColumn: z.ZodOptional<z.ZodNumber>;
22
- endColumn: z.ZodOptional<z.ZodNumber>;
23
- }, z.core.$strip>>;
24
- field: z.ZodOptional<z.ZodString>;
25
- fields: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodString>>>;
26
- meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
27
- }, z.core.$strip>;
28
- export type ClaimTargetBody = z.infer<typeof claimTargetSchema>;
29
- /**
30
- * `POST /v1/claims` and `POST /v1/models/{model}/{id}/claim`.
31
- *
32
- * Every field is optional: on the model-scoped route the target comes from the
33
- * URL, and a bare claim means "I'm editing this row".
34
- */
35
- export declare const claimRequestSchema: z.ZodObject<{
36
- claimId: z.ZodOptional<z.ZodString>;
37
- target: z.ZodOptional<z.ZodNullable<z.ZodObject<{
38
- model: z.ZodOptional<z.ZodString>;
39
- id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
40
- path: z.ZodOptional<z.ZodString>;
41
- range: z.ZodOptional<z.ZodObject<{
42
- startLine: z.ZodNumber;
43
- endLine: z.ZodNumber;
44
- startColumn: z.ZodOptional<z.ZodNumber>;
45
- endColumn: z.ZodOptional<z.ZodNumber>;
46
- }, z.core.$strip>>;
47
- field: z.ZodOptional<z.ZodString>;
48
- fields: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodString>>>;
49
- meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
50
- }, z.core.$strip>>>;
51
- reason: z.ZodOptional<z.ZodString>;
52
- description: z.ZodOptional<z.ZodString>;
53
- meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
54
- ttl: z.ZodOptional<z.ZodNullable<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
55
- queue: z.ZodOptional<z.ZodBoolean>;
56
- }, z.core.$strip>;
57
- export type ClaimRequest = z.infer<typeof claimRequestSchema>;
58
- /**
59
- * `POST /v1/models/{model}/{id}/claim/heartbeat`.
60
- *
61
- * An empty body is a plain "still working" beat. `ttl` extends the lease;
62
- * `claimId` names the exact lease instead of "my claim on this row".
63
- */
64
- export declare const claimHeartbeatRequestSchema: z.ZodObject<{
65
- claimId: z.ZodOptional<z.ZodString>;
66
- ttl: z.ZodOptional<z.ZodNullable<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
67
- details: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
68
- }, z.core.$strip>;
69
- export type ClaimHeartbeatRequest = z.infer<typeof claimHeartbeatRequestSchema>;
70
- /**
71
- * The query string on `GET /v1/models/{model}`.
72
- *
73
- * Values arrive as strings, so this describes the wire spelling rather than the
74
- * parsed result — which is what a caller and the reference both need.
75
- */
76
- export declare const listQuerySchema: z.ZodObject<{
77
- limit: z.ZodOptional<z.ZodString>;
78
- order_by: z.ZodOptional<z.ZodString>;
79
- order: z.ZodOptional<z.ZodEnum<{
80
- asc: "asc";
81
- desc: "desc";
82
- }>>;
83
- starting_after: z.ZodOptional<z.ZodString>;
84
- }, z.core.$strip>;
85
- export type ListQuery = z.infer<typeof listQuerySchema>;
86
- /**
87
- * A claim's current state, as returned by `GET /v1/claims/{claimId}`.
88
- *
89
- * This is the polling shape, and only the polling shape. Acquiring a claim
90
- * answers with {@link claimAcquireResponseSchema}, whose two arms are spelled
91
- * differently — that route was documented against this schema for a while, and
92
- * the reference described a response the server has never sent.
93
- *
94
- * This is the shape that makes queued grants reachable without a socket: the
95
- * caller enqueues, receives `queued`, heartbeats to stay in line, and polls
96
- * until `status` becomes `active`, at which point `fenceToken` is present and
97
- * the work can begin.
98
- *
99
- * Two properties are load-bearing and easy to get wrong from the outside:
100
- *
101
- * **`position` is advisory.** A privileged caller can reorder the wait line, so
102
- * a position can go UP between polls. Only `status` is authoritative — a client
103
- * that asserts monotonic position will fail in production, not in review.
104
- *
105
- * **`fenceToken` appears at grant, never at enqueue.** It orders by acquisition
106
- * rather than by arrival, which is what the fence watermark depends on; a token
107
- * handed out while queued would break that ordering.
108
- *
109
- * There is deliberately no `readAt` here. A watermark records the state a
110
- * writer reasoned against, and a caller that has just been granted a claim has
111
- * not read anything yet — it reads next. Stamping one at grant would assert a
112
- * premise the caller never established, so the holder gets its watermark from
113
- * its own read, the same way the socket path takes it from a local snapshot.
114
- */
115
- export declare const claimStateSchema: z.ZodObject<{
116
- expiresAt: z.ZodOptional<z.ZodNumber>;
117
- fenceToken: z.ZodOptional<z.ZodNumber>;
118
- position: z.ZodOptional<z.ZodNumber>;
119
- object: z.ZodLiteral<"claim">;
120
- claimId: z.ZodString;
121
- status: z.ZodEnum<{
122
- active: "active";
123
- committed: "committed";
124
- expired: "expired";
125
- canceled: "canceled";
126
- queued: "queued";
127
- }>;
128
- }, z.core.$strip>;
129
- export type ClaimState = z.infer<typeof claimStateSchema>;
130
- /**
131
- * `POST /v1/claims` and `POST /v1/models/{model}/{id}/claim`, **201** — the
132
- * target was free and the lease is yours. The claim is nested rather than
133
- * flattened because the outer object is the created resource's envelope, and
134
- * `id` is its identity.
135
- */
136
- export declare const claimAcquiredResponseSchema: z.ZodObject<{
137
- id: z.ZodString;
138
- object: z.ZodLiteral<"claim">;
139
- claim: z.ZodReadonly<z.ZodObject<{
140
- id: z.ZodString;
141
- actor: z.ZodString;
142
- participantKind: z.ZodPreprocess<z.ZodEnum<{
143
- user: "user";
144
- agent: "agent";
145
- system: "system";
146
- }>>;
147
- onBehalfOfId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
148
- onBehalfOfKind: z.ZodOptional<z.ZodNullable<z.ZodPreprocess<z.ZodEnum<{
149
- user: "user";
150
- agent: "agent";
151
- system: "system";
152
- }>>>>;
153
- capabilityId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
154
- description: z.ZodOptional<z.ZodString>;
155
- status: z.ZodOptional<z.ZodEnum<{
156
- active: "active";
157
- queued: "queued";
158
- }>>;
159
- position: z.ZodOptional<z.ZodNumber>;
160
- expiresAt: z.ZodNumber;
161
- fenceToken: z.ZodOptional<z.ZodNumber>;
162
- target: z.ZodReadonly<z.ZodObject<{
163
- model: z.ZodString;
164
- id: z.ZodString;
165
- path: z.ZodOptional<z.ZodString>;
166
- range: z.ZodOptional<z.ZodObject<{
167
- startLine: z.ZodNumber;
168
- endLine: z.ZodNumber;
169
- startColumn: z.ZodOptional<z.ZodNumber>;
170
- endColumn: z.ZodOptional<z.ZodNumber>;
171
- }, z.core.$strip>>;
172
- field: z.ZodOptional<z.ZodString>;
173
- fields: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodString>>>;
174
- meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
175
- }, z.core.$strip>>;
176
- meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
177
- field: z.ZodOptional<z.ZodString>;
178
- }, z.core.$strip>>;
179
- }, z.core.$strip>;
180
- export type ClaimAcquiredResponse = z.infer<typeof claimAcquiredResponseSchema>;
181
- /**
182
- * The same two routes, **202** — the row was already held and `queue: true`
183
- * put you in line. The grant arrives later on the caller's stream, or through
184
- * `GET /v1/claims/{claimId}`.
185
- *
186
- * There is deliberately no `object` field here: a queued claim is not yet a
187
- * created resource, and the status code plus `status: 'queued'` already carry
188
- * the distinction.
189
- */
190
- export declare const claimQueuedResponseSchema: z.ZodObject<{
191
- status: z.ZodLiteral<"queued">;
192
- claimId: z.ZodString;
193
- position: z.ZodNumber;
194
- heldBy: z.ZodOptional<z.ZodString>;
195
- expiresAt: z.ZodOptional<z.ZodNumber>;
196
- heldByClaim: z.ZodOptional<z.ZodObject<{
197
- entityType: z.ZodString;
198
- entityId: 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
- claimId: z.ZodString;
210
- description: z.ZodOptional<z.ZodString>;
211
- declaredAt: z.ZodNumber;
212
- expiresAt: z.ZodNumber;
213
- onBehalfOfId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
214
- onBehalfOfKind: z.ZodOptional<z.ZodNullable<z.ZodPreprocess<z.ZodEnum<{
215
- user: "user";
216
- agent: "agent";
217
- system: "system";
218
- }>>>>;
219
- capabilityId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
220
- }, z.core.$strip>>;
221
- }, z.core.$strip>;
222
- export type ClaimQueuedResponse = z.infer<typeof claimQueuedResponseSchema>;
223
- /**
224
- * Either answer to a claim acquire. The two arms cannot be a discriminated
225
- * union — the 201 keys on `object` and the 202 on `status`, and neither field
226
- * appears in both — so a caller branches on `status === 'queued'`, which is
227
- * what the HTTP transport does.
228
- */
229
- export declare const claimAcquireResponseSchema: z.ZodUnion<readonly [z.ZodObject<{
230
- id: z.ZodString;
231
- object: z.ZodLiteral<"claim">;
232
- claim: z.ZodReadonly<z.ZodObject<{
233
- id: z.ZodString;
234
- actor: z.ZodString;
235
- participantKind: z.ZodPreprocess<z.ZodEnum<{
236
- user: "user";
237
- agent: "agent";
238
- system: "system";
239
- }>>;
240
- onBehalfOfId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
241
- onBehalfOfKind: z.ZodOptional<z.ZodNullable<z.ZodPreprocess<z.ZodEnum<{
242
- user: "user";
243
- agent: "agent";
244
- system: "system";
245
- }>>>>;
246
- capabilityId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
247
- description: z.ZodOptional<z.ZodString>;
248
- status: z.ZodOptional<z.ZodEnum<{
249
- active: "active";
250
- queued: "queued";
251
- }>>;
252
- position: z.ZodOptional<z.ZodNumber>;
253
- expiresAt: z.ZodNumber;
254
- fenceToken: z.ZodOptional<z.ZodNumber>;
255
- target: z.ZodReadonly<z.ZodObject<{
256
- model: z.ZodString;
257
- id: z.ZodString;
258
- path: z.ZodOptional<z.ZodString>;
259
- range: z.ZodOptional<z.ZodObject<{
260
- startLine: z.ZodNumber;
261
- endLine: z.ZodNumber;
262
- startColumn: z.ZodOptional<z.ZodNumber>;
263
- endColumn: z.ZodOptional<z.ZodNumber>;
264
- }, z.core.$strip>>;
265
- field: z.ZodOptional<z.ZodString>;
266
- fields: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodString>>>;
267
- meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
268
- }, z.core.$strip>>;
269
- meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
270
- field: z.ZodOptional<z.ZodString>;
271
- }, z.core.$strip>>;
272
- }, z.core.$strip>, z.ZodObject<{
273
- status: z.ZodLiteral<"queued">;
274
- claimId: z.ZodString;
275
- position: z.ZodNumber;
276
- heldBy: z.ZodOptional<z.ZodString>;
277
- expiresAt: z.ZodOptional<z.ZodNumber>;
278
- heldByClaim: z.ZodOptional<z.ZodObject<{
279
- entityType: z.ZodString;
280
- entityId: z.ZodString;
281
- path: z.ZodOptional<z.ZodString>;
282
- range: z.ZodOptional<z.ZodObject<{
283
- startLine: z.ZodNumber;
284
- endLine: z.ZodNumber;
285
- startColumn: z.ZodOptional<z.ZodNumber>;
286
- endColumn: z.ZodOptional<z.ZodNumber>;
287
- }, z.core.$strip>>;
288
- field: z.ZodOptional<z.ZodString>;
289
- fields: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodString>>>;
290
- meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
291
- claimId: z.ZodString;
292
- description: z.ZodOptional<z.ZodString>;
293
- declaredAt: z.ZodNumber;
294
- expiresAt: z.ZodNumber;
295
- onBehalfOfId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
296
- onBehalfOfKind: z.ZodOptional<z.ZodNullable<z.ZodPreprocess<z.ZodEnum<{
297
- user: "user";
298
- agent: "agent";
299
- system: "system";
300
- }>>>>;
301
- capabilityId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
302
- }, z.core.$strip>>;
303
- }, z.core.$strip>]>;
304
- export type ClaimAcquireResponse = z.infer<typeof claimAcquireResponseSchema>;
305
- /**
306
- * `POST /v1/models/{model}/{id}/claim/heartbeat`.
307
- *
308
- * `status` never carries `'lost'` in a body: a lease that ended answers with a
309
- * 409 `claim_lost` instead, which the error mapping raises as
310
- * `AbloClaimedError` before any of this is read. That is the one way this
311
- * differs from the WebSocket {@link claimHeartbeatAckPayloadSchema}, whose
312
- * three-state status includes the loss.
313
- */
314
- export declare const claimHeartbeatReplySchema: z.ZodObject<{
315
- object: z.ZodLiteral<"claim_heartbeat">;
316
- claimId: z.ZodString;
317
- status: z.ZodEnum<{
318
- queued: "queued";
319
- held: "held";
320
- }>;
321
- expiresAt: z.ZodOptional<z.ZodNumber>;
322
- queueDepth: z.ZodOptional<z.ZodNumber>;
323
- position: z.ZodOptional<z.ZodNumber>;
324
- }, z.core.$strip>;
325
- export type ClaimHeartbeatReply = z.infer<typeof claimHeartbeatReplySchema>;
326
- /** `POST /v1/claims/heartbeat` — one ack per lease the batch extended. */
327
- export declare const claimHeartbeatBatchReplySchema: z.ZodObject<{
328
- object: z.ZodLiteral<"list">;
329
- results: z.ZodArray<z.ZodObject<{
330
- claimId: z.ZodString;
331
- status: z.ZodEnum<{
332
- queued: "queued";
333
- held: "held";
334
- lost: "lost";
335
- }>;
336
- expiresAt: z.ZodOptional<z.ZodNumber>;
337
- position: z.ZodOptional<z.ZodNumber>;
338
- queueDepth: z.ZodOptional<z.ZodNumber>;
339
- }, z.core.$strip>>;
340
- }, z.core.$strip>;
341
- export type ClaimHeartbeatBatchReply = z.infer<typeof claimHeartbeatBatchReplySchema>;
342
- /**
343
- * The query string on `GET /v1/claims` — the four questions you may ask about
344
- * live work, which are the same four the audit log already answers about
345
- * finished work.
346
- *
347
- * The names are audit's names on purpose (`routes/dashboard/audit.ts` filters on
348
- * `actorId`, `actorKind`, `onBehalfOfId`, `capabilityId`). Asking "everything
349
- * agent A is doing" and "everything agent A did" should not require learning two
350
- * vocabularies for one idea; the tense is the only thing that differs.
351
- *
352
- * `model` and `id` scope to a row and are the original axis. The other three
353
- * scope to a participant, and a request may combine them — "what is this agent
354
- * doing to this invoice" is both.
355
- *
356
- * Every value is optional, and an omitted filter is not a filter: a bare request
357
- * lists everything the caller's organization holds.
358
- */
359
- export declare const claimListQuerySchema: z.ZodObject<{
360
- model: z.ZodOptional<z.ZodString>;
361
- id: z.ZodOptional<z.ZodString>;
362
- field: z.ZodOptional<z.ZodString>;
363
- actorId: z.ZodOptional<z.ZodString>;
364
- actorKind: z.ZodOptional<z.ZodPreprocess<z.ZodEnum<{
365
- user: "user";
366
- agent: "agent";
367
- system: "system";
368
- }>>>;
369
- onBehalfOfId: z.ZodOptional<z.ZodString>;
370
- capabilityId: z.ZodOptional<z.ZodString>;
371
- }, z.core.$strip>;
372
- export type ClaimListQuery = z.infer<typeof claimListQuerySchema>;
373
- /**
374
- * `GET /v1/claims` — who holds what, and who waits.
375
- *
376
- * `queue` is populated only when the request names both a `model` and an `id`;
377
- * a wait line belongs to one row, so an unscoped listing has nothing to report
378
- * and answers with an empty array rather than omitting the field.
379
- */
380
- export declare const claimListResponseSchema: z.ZodObject<{
381
- object: z.ZodLiteral<"list">;
382
- claims: z.ZodReadonly<z.ZodArray<z.ZodReadonly<z.ZodObject<{
383
- id: z.ZodString;
384
- actor: z.ZodString;
385
- participantKind: z.ZodPreprocess<z.ZodEnum<{
386
- user: "user";
387
- agent: "agent";
388
- system: "system";
389
- }>>;
390
- onBehalfOfId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
391
- onBehalfOfKind: z.ZodOptional<z.ZodNullable<z.ZodPreprocess<z.ZodEnum<{
392
- user: "user";
393
- agent: "agent";
394
- system: "system";
395
- }>>>>;
396
- capabilityId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
397
- description: z.ZodOptional<z.ZodString>;
398
- status: z.ZodOptional<z.ZodEnum<{
399
- active: "active";
400
- queued: "queued";
401
- }>>;
402
- position: z.ZodOptional<z.ZodNumber>;
403
- expiresAt: z.ZodNumber;
404
- fenceToken: z.ZodOptional<z.ZodNumber>;
405
- target: z.ZodReadonly<z.ZodObject<{
406
- model: z.ZodString;
407
- id: z.ZodString;
408
- path: z.ZodOptional<z.ZodString>;
409
- range: z.ZodOptional<z.ZodObject<{
410
- startLine: z.ZodNumber;
411
- endLine: z.ZodNumber;
412
- startColumn: z.ZodOptional<z.ZodNumber>;
413
- endColumn: z.ZodOptional<z.ZodNumber>;
414
- }, z.core.$strip>>;
415
- field: z.ZodOptional<z.ZodString>;
416
- fields: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodString>>>;
417
- meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
418
- }, z.core.$strip>>;
419
- meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
420
- field: z.ZodOptional<z.ZodString>;
421
- }, z.core.$strip>>>>;
422
- queue: z.ZodReadonly<z.ZodArray<z.ZodReadonly<z.ZodObject<{
423
- id: z.ZodString;
424
- actor: z.ZodString;
425
- participantKind: z.ZodPreprocess<z.ZodEnum<{
426
- user: "user";
427
- agent: "agent";
428
- system: "system";
429
- }>>;
430
- onBehalfOfId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
431
- onBehalfOfKind: z.ZodOptional<z.ZodNullable<z.ZodPreprocess<z.ZodEnum<{
432
- user: "user";
433
- agent: "agent";
434
- system: "system";
435
- }>>>>;
436
- capabilityId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
437
- description: z.ZodOptional<z.ZodString>;
438
- status: z.ZodOptional<z.ZodEnum<{
439
- active: "active";
440
- queued: "queued";
441
- }>>;
442
- position: z.ZodOptional<z.ZodNumber>;
443
- expiresAt: z.ZodNumber;
444
- fenceToken: z.ZodOptional<z.ZodNumber>;
445
- target: z.ZodReadonly<z.ZodObject<{
446
- model: z.ZodString;
447
- id: z.ZodString;
448
- path: z.ZodOptional<z.ZodString>;
449
- range: z.ZodOptional<z.ZodObject<{
450
- startLine: z.ZodNumber;
451
- endLine: z.ZodNumber;
452
- startColumn: z.ZodOptional<z.ZodNumber>;
453
- endColumn: z.ZodOptional<z.ZodNumber>;
454
- }, z.core.$strip>>;
455
- field: z.ZodOptional<z.ZodString>;
456
- fields: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodString>>>;
457
- meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
458
- }, z.core.$strip>>;
459
- meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
460
- field: z.ZodOptional<z.ZodString>;
461
- }, z.core.$strip>>>>;
462
- }, z.core.$strip>;
463
- export type ClaimListResponse = z.infer<typeof claimListResponseSchema>;
@@ -1,229 +0,0 @@
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
- import { targetRangeSchema, publicClaimStatusSchema, wireParticipantKindSchema, claimRecordSchema, modelClaimSchema, claimHeartbeatAckPayloadSchema, wireClaimSummarySchema, } from '../coordination/schema.js';
14
- /** The row a claim points at, when it is not already given by the URL. */
15
- export const claimTargetSchema = z.object({
16
- model: z.string().optional(),
17
- id: z.string().nullish(),
18
- path: z.string().optional(),
19
- range: targetRangeSchema.optional(),
20
- field: z.string().optional(),
21
- /** Several named parts at once — see {@link targetRefSchema}. */
22
- fields: z.array(z.string()).readonly().optional(),
23
- meta: z.record(z.string(), z.unknown()).optional(),
24
- });
25
- /**
26
- * `POST /v1/claims` and `POST /v1/models/{model}/{id}/claim`.
27
- *
28
- * Every field is optional: on the model-scoped route the target comes from the
29
- * URL, and a bare claim means "I'm editing this row".
30
- */
31
- export const claimRequestSchema = z.object({
32
- claimId: z.string().optional(),
33
- target: claimTargetSchema.nullish(),
34
- reason: z.string().optional(),
35
- /** Defaults to `editing`. Shown to other participants holding the row. */
36
- description: z.string().optional(),
37
- meta: z.record(z.string(), z.unknown()).optional(),
38
- /** Lease length in the same grammar as a heartbeat: `'5m'` or `30000`. */
39
- ttl: z.union([z.string(), z.number()]).nullish(),
40
- /**
41
- * Join the fair wait line when the row is already held, instead of failing.
42
- * The response carries `{ status: 'queued', position }` and the grant arrives
43
- * later on the caller's stream.
44
- */
45
- queue: z.boolean().optional(),
46
- });
47
- /**
48
- * `POST /v1/models/{model}/{id}/claim/heartbeat`.
49
- *
50
- * An empty body is a plain "still working" beat. `ttl` extends the lease;
51
- * `claimId` names the exact lease instead of "my claim on this row".
52
- */
53
- export const claimHeartbeatRequestSchema = z.object({
54
- claimId: z.string().optional(),
55
- ttl: z.union([z.string(), z.number()]).nullish(),
56
- /** Progress carried on the beat — becomes the claim's peer-visible
57
- * `meta.progress`. Last beat wins, and it goes with the lease. */
58
- details: z.record(z.string(), z.unknown()).optional(),
59
- });
60
- /**
61
- * The query string on `GET /v1/models/{model}`.
62
- *
63
- * Values arrive as strings, so this describes the wire spelling rather than the
64
- * parsed result — which is what a caller and the reference both need.
65
- */
66
- export const listQuerySchema = z.object({
67
- limit: z.string().optional(),
68
- order_by: z.string().optional(),
69
- order: z.enum(['asc', 'desc']).optional(),
70
- /** Keyset cursor: the id of the last row from the previous page. */
71
- starting_after: z.string().optional(),
72
- });
73
- /**
74
- * A claim's current state, as returned by `GET /v1/claims/{claimId}`.
75
- *
76
- * This is the polling shape, and only the polling shape. Acquiring a claim
77
- * answers with {@link claimAcquireResponseSchema}, whose two arms are spelled
78
- * differently — that route was documented against this schema for a while, and
79
- * the reference described a response the server has never sent.
80
- *
81
- * This is the shape that makes queued grants reachable without a socket: the
82
- * caller enqueues, receives `queued`, heartbeats to stay in line, and polls
83
- * until `status` becomes `active`, at which point `fenceToken` is present and
84
- * the work can begin.
85
- *
86
- * Two properties are load-bearing and easy to get wrong from the outside:
87
- *
88
- * **`position` is advisory.** A privileged caller can reorder the wait line, so
89
- * a position can go UP between polls. Only `status` is authoritative — a client
90
- * that asserts monotonic position will fail in production, not in review.
91
- *
92
- * **`fenceToken` appears at grant, never at enqueue.** It orders by acquisition
93
- * rather than by arrival, which is what the fence watermark depends on; a token
94
- * handed out while queued would break that ordering.
95
- *
96
- * There is deliberately no `readAt` here. A watermark records the state a
97
- * writer reasoned against, and a caller that has just been granted a claim has
98
- * not read anything yet — it reads next. Stamping one at grant would assert a
99
- * premise the caller never established, so the holder gets its watermark from
100
- * its own read, the same way the socket path takes it from a local snapshot.
101
- */
102
- export const claimStateSchema = claimRecordSchema
103
- .pick({ position: true, expiresAt: true, fenceToken: true })
104
- .partial()
105
- .extend({
106
- object: z.literal('claim'),
107
- /** The claim named, rather than the claim as a resource — which is why this
108
- * is `claimId` and not the record's `id`. */
109
- claimId: z.string(),
110
- /**
111
- * Widened from the record's two observable states to all five.
112
- *
113
- * A poll is the one surface that can arrive after the claim ended: the
114
- * caller holds an id and asks what became of it, so `committed`, `expired`,
115
- * and `canceled` are answers this route must be able to give. A peer's
116
- * listing cannot see them, because a terminal claim has already left the
117
- * set being listed.
118
- */
119
- status: publicClaimStatusSchema,
120
- });
121
- /**
122
- * `POST /v1/claims` and `POST /v1/models/{model}/{id}/claim`, **201** — the
123
- * target was free and the lease is yours. The claim is nested rather than
124
- * flattened because the outer object is the created resource's envelope, and
125
- * `id` is its identity.
126
- */
127
- export const claimAcquiredResponseSchema = z.object({
128
- id: z.string(),
129
- object: z.literal('claim'),
130
- claim: modelClaimSchema,
131
- });
132
- /**
133
- * The same two routes, **202** — the row was already held and `queue: true`
134
- * put you in line. The grant arrives later on the caller's stream, or through
135
- * `GET /v1/claims/{claimId}`.
136
- *
137
- * There is deliberately no `object` field here: a queued claim is not yet a
138
- * created resource, and the status code plus `status: 'queued'` already carry
139
- * the distinction.
140
- */
141
- export const claimQueuedResponseSchema = z.object({
142
- status: z.literal('queued'),
143
- claimId: z.string(),
144
- position: z.number().int().nonnegative(),
145
- heldBy: z.string().optional(),
146
- expiresAt: z.number().int().optional(),
147
- heldByClaim: wireClaimSummarySchema.optional(),
148
- });
149
- /**
150
- * Either answer to a claim acquire. The two arms cannot be a discriminated
151
- * union — the 201 keys on `object` and the 202 on `status`, and neither field
152
- * appears in both — so a caller branches on `status === 'queued'`, which is
153
- * what the HTTP transport does.
154
- */
155
- export const claimAcquireResponseSchema = z.union([
156
- claimAcquiredResponseSchema,
157
- claimQueuedResponseSchema,
158
- ]);
159
- /**
160
- * `POST /v1/models/{model}/{id}/claim/heartbeat`.
161
- *
162
- * `status` never carries `'lost'` in a body: a lease that ended answers with a
163
- * 409 `claim_lost` instead, which the error mapping raises as
164
- * `AbloClaimedError` before any of this is read. That is the one way this
165
- * differs from the WebSocket {@link claimHeartbeatAckPayloadSchema}, whose
166
- * three-state status includes the loss.
167
- */
168
- export const claimHeartbeatReplySchema = z.object({
169
- object: z.literal('claim_heartbeat'),
170
- claimId: z.string(),
171
- status: z.enum(['held', 'queued']),
172
- /** Present on `held`: the extended lease deadline. */
173
- expiresAt: z.number().int().optional(),
174
- /** Present on `held`: how many participants wait behind you. */
175
- queueDepth: z.number().int().nonnegative().optional(),
176
- /** Present on `queued`: the refreshed place in line. */
177
- position: z.number().int().nonnegative().optional(),
178
- });
179
- /** `POST /v1/claims/heartbeat` — one ack per lease the batch extended. */
180
- export const claimHeartbeatBatchReplySchema = z.object({
181
- object: z.literal('list'),
182
- results: z.array(claimHeartbeatAckPayloadSchema),
183
- });
184
- /**
185
- * The query string on `GET /v1/claims` — the four questions you may ask about
186
- * live work, which are the same four the audit log already answers about
187
- * finished work.
188
- *
189
- * The names are audit's names on purpose (`routes/dashboard/audit.ts` filters on
190
- * `actorId`, `actorKind`, `onBehalfOfId`, `capabilityId`). Asking "everything
191
- * agent A is doing" and "everything agent A did" should not require learning two
192
- * vocabularies for one idea; the tense is the only thing that differs.
193
- *
194
- * `model` and `id` scope to a row and are the original axis. The other three
195
- * scope to a participant, and a request may combine them — "what is this agent
196
- * doing to this invoice" is both.
197
- *
198
- * Every value is optional, and an omitted filter is not a filter: a bare request
199
- * lists everything the caller's organization holds.
200
- */
201
- export const claimListQuerySchema = z.object({
202
- model: z.string().optional(),
203
- id: z.string().optional(),
204
- field: z.string().optional(),
205
- /** Who is doing it. Matches the claim's holder. */
206
- actorId: z.string().optional(),
207
- /** Narrow to people, to agents, or to system principals. */
208
- actorKind: wireParticipantKindSchema.optional(),
209
- /**
210
- * Who it is being done for. The operations question — "what is running on
211
- * behalf of this customer right now" — which was answerable only in hindsight
212
- * until the claim carried its delegation.
213
- */
214
- onBehalfOfId: z.string().optional(),
215
- /** Which grant authorized it. */
216
- capabilityId: z.string().optional(),
217
- });
218
- /**
219
- * `GET /v1/claims` — who holds what, and who waits.
220
- *
221
- * `queue` is populated only when the request names both a `model` and an `id`;
222
- * a wait line belongs to one row, so an unscoped listing has nothing to report
223
- * and answers with an empty array rather than omitting the field.
224
- */
225
- export const claimListResponseSchema = z.object({
226
- object: z.literal('list'),
227
- claims: z.array(modelClaimSchema).readonly(),
228
- queue: z.array(modelClaimSchema).readonly(),
229
- });