@abloatai/transaction 0.57.0 → 0.59.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 (781) hide show
  1. package/CONVENTIONS.md +51 -41
  2. package/README.md +3 -1
  3. package/dist/ai-sdk/modelTools.d.ts +3 -3
  4. package/dist/ai-sdk/modelTools.d.ts.map +1 -1
  5. package/dist/ai-sdk/modelTools.js +1 -1
  6. package/dist/ai-sdk/modelTools.js.map +1 -1
  7. package/dist/ai-sdk/updateTool.d.ts +5 -7
  8. package/dist/ai-sdk/updateTool.d.ts.map +1 -1
  9. package/dist/ai-sdk/updateTool.js +3 -5
  10. package/dist/ai-sdk/updateTool.js.map +1 -1
  11. package/dist/auth/capability.d.ts +5 -0
  12. package/dist/auth/capability.d.ts.map +1 -1
  13. package/dist/auth/capability.js +5 -0
  14. package/dist/auth/capability.js.map +1 -1
  15. package/dist/auth/capabilityLifecycle.d.ts +1 -1
  16. package/dist/auth/capabilityLifecycle.d.ts.map +1 -1
  17. package/dist/auth/credentialPolicy.d.ts +1 -1
  18. package/dist/auth/credentialPolicy.d.ts.map +1 -1
  19. package/dist/auth/identity.d.ts +3 -3
  20. package/dist/auth/identity.d.ts.map +1 -1
  21. package/dist/auth/identity.js +5 -5
  22. package/dist/auth/identity.js.map +1 -1
  23. package/dist/auth/index.d.ts +4 -208
  24. package/dist/auth/index.d.ts.map +1 -1
  25. package/dist/auth/index.js +4 -330
  26. package/dist/auth/index.js.map +1 -1
  27. package/dist/auth/runtime.d.ts +218 -0
  28. package/dist/auth/runtime.d.ts.map +1 -0
  29. package/dist/auth/runtime.js +336 -0
  30. package/dist/auth/runtime.js.map +1 -0
  31. package/dist/auth/sessionMint.d.ts +1 -1
  32. package/dist/auth/sessionMint.d.ts.map +1 -1
  33. package/dist/auth/sessionMint.js +2 -1
  34. package/dist/auth/sessionMint.js.map +1 -1
  35. package/dist/branches.d.ts +25 -21
  36. package/dist/branches.d.ts.map +1 -1
  37. package/dist/branches.js +3 -0
  38. package/dist/branches.js.map +1 -1
  39. package/dist/{coordination/awaitClaimGrant.d.ts → claims/awaitGrant.d.ts} +1 -1
  40. package/dist/claims/awaitGrant.d.ts.map +1 -0
  41. package/dist/{coordination/awaitClaimGrant.js → claims/awaitGrant.js} +4 -4
  42. package/dist/claims/awaitGrant.js.map +1 -0
  43. package/dist/{wire/claims.d.ts → claims/contract.d.ts} +1 -1
  44. package/dist/claims/contract.d.ts.map +1 -0
  45. package/dist/{wire/claims.js → claims/contract.js} +2 -2
  46. package/dist/claims/contract.js.map +1 -0
  47. package/dist/{wire/claimEvent.d.ts → claims/eventContract.d.ts} +1 -1
  48. package/dist/claims/eventContract.d.ts.map +1 -0
  49. package/dist/{wire/claimEvent.js → claims/eventContract.js} +1 -1
  50. package/dist/claims/eventContract.js.map +1 -0
  51. package/dist/{coordination → claims}/events.d.ts +7 -11
  52. package/dist/claims/events.d.ts.map +1 -0
  53. package/dist/claims/events.js +8 -0
  54. package/dist/claims/events.js.map +1 -0
  55. package/dist/{coordination/claimHeartbeatLoop.d.ts → claims/heartbeat.d.ts} +1 -1
  56. package/dist/claims/heartbeat.d.ts.map +1 -0
  57. package/dist/{coordination/claimHeartbeatLoop.js → claims/heartbeat.js} +1 -1
  58. package/dist/claims/heartbeat.js.map +1 -0
  59. package/dist/claims/index.d.ts +17 -0
  60. package/dist/claims/index.d.ts.map +1 -0
  61. package/dist/claims/index.js +16 -0
  62. package/dist/claims/index.js.map +1 -0
  63. package/dist/claims/lifetime.d.ts +26 -0
  64. package/dist/claims/lifetime.d.ts.map +1 -0
  65. package/dist/claims/lifetime.js +62 -0
  66. package/dist/claims/lifetime.js.map +1 -0
  67. package/dist/{coordination → claims}/locator.d.ts +1 -1
  68. package/dist/claims/locator.d.ts.map +1 -0
  69. package/dist/{coordination → claims}/locator.js +2 -2
  70. package/dist/claims/locator.js.map +1 -0
  71. package/dist/{coordination/claimMeta.d.ts → claims/meta.d.ts} +1 -1
  72. package/dist/claims/meta.d.ts.map +1 -0
  73. package/dist/{coordination/claimMeta.js → claims/meta.js} +1 -1
  74. package/dist/claims/meta.js.map +1 -0
  75. package/dist/claims/routes.d.ts +59 -0
  76. package/dist/claims/routes.d.ts.map +1 -0
  77. package/dist/claims/routes.js +69 -0
  78. package/dist/claims/routes.js.map +1 -0
  79. package/dist/claims/targetConflict.d.ts.map +1 -0
  80. package/dist/claims/targetConflict.js.map +1 -0
  81. package/dist/{coordination → claims}/trace.d.ts +2 -2
  82. package/dist/claims/trace.d.ts.map +1 -0
  83. package/dist/{coordination → claims}/trace.js +5 -5
  84. package/dist/claims/trace.js.map +1 -0
  85. package/dist/{ablo.d.ts → client/ablo.d.ts} +8 -18
  86. package/dist/client/ablo.d.ts.map +1 -0
  87. package/dist/{ablo.js → client/ablo.js} +2 -2
  88. package/dist/client/ablo.js.map +1 -0
  89. package/dist/{transactionLayer.d.ts → client/contract.d.ts} +12 -14
  90. package/dist/client/contract.d.ts.map +1 -0
  91. package/dist/{transactionLayer.js → client/contract.js} +4 -5
  92. package/dist/client/contract.js.map +1 -0
  93. package/dist/{headlessClient.d.ts → client/headless.d.ts} +4 -4
  94. package/dist/client/headless.d.ts.map +1 -0
  95. package/dist/{headlessClient.js → client/headless.js} +8 -10
  96. package/dist/{headlessClient.js.map → client/headless.js.map} +1 -1
  97. package/dist/client/index.d.ts +11 -0
  98. package/dist/client/index.d.ts.map +1 -0
  99. package/dist/client/index.js +11 -0
  100. package/dist/client/index.js.map +1 -0
  101. package/dist/{resources → client/resources}/functionalUpdate.d.ts +4 -4
  102. package/dist/client/resources/functionalUpdate.d.ts.map +1 -0
  103. package/dist/{resources → client/resources}/functionalUpdate.js +3 -3
  104. package/dist/client/resources/functionalUpdate.js.map +1 -0
  105. package/dist/{resources → client/resources}/httpResources.d.ts +51 -57
  106. package/dist/client/resources/httpResources.d.ts.map +1 -0
  107. package/dist/{resources → client/resources}/httpResources.js +1 -1
  108. package/dist/client/resources/httpResources.js.map +1 -0
  109. package/dist/{resources → client/resources}/modelCreate.d.ts +1 -1
  110. package/dist/client/resources/modelCreate.d.ts.map +1 -0
  111. package/dist/{resources → client/resources}/modelCreate.js +1 -1
  112. package/dist/client/resources/modelCreate.js.map +1 -0
  113. package/dist/{resources → client/resources}/modelOperations.d.ts +35 -51
  114. package/dist/client/resources/modelOperations.d.ts.map +1 -0
  115. package/dist/{resources → client/resources}/modelOperations.js +1 -1
  116. package/dist/client/resources/modelOperations.js.map +1 -0
  117. package/dist/{resources → client/resources}/mutationOptions.d.ts +4 -17
  118. package/dist/client/resources/mutationOptions.d.ts.map +1 -0
  119. package/dist/client/resources/mutationOptions.js.map +1 -0
  120. package/dist/client/resources/where.d.ts.map +1 -0
  121. package/dist/{resources → client/resources}/where.js +1 -1
  122. package/dist/client/resources/where.js.map +1 -0
  123. package/dist/{resources → client/resources}/writeOptionsSchema.d.ts +2 -35
  124. package/dist/client/resources/writeOptionsSchema.d.ts.map +1 -0
  125. package/dist/{resources → client/resources}/writeOptionsSchema.js +5 -18
  126. package/dist/client/resources/writeOptionsSchema.js.map +1 -0
  127. package/dist/client/surface.d.ts +15 -0
  128. package/dist/client/surface.d.ts.map +1 -0
  129. package/dist/client/surface.js +29 -0
  130. package/dist/client/surface.js.map +1 -0
  131. package/dist/{transactions → commit}/confirmation/commitEnvelope.d.ts +1 -37
  132. package/dist/commit/confirmation/commitEnvelope.d.ts.map +1 -0
  133. package/dist/{transactions → commit}/confirmation/commitEnvelope.js +2 -7
  134. package/dist/commit/confirmation/commitEnvelope.js.map +1 -0
  135. package/dist/commit/confirmation/httpCommitEnvelope.d.ts.map +1 -0
  136. package/dist/{transactions → commit}/confirmation/httpCommitEnvelope.js +1 -1
  137. package/dist/commit/confirmation/httpCommitEnvelope.js.map +1 -0
  138. package/dist/commit/confirmation/idempotencyKey.d.ts.map +1 -0
  139. package/dist/commit/confirmation/idempotencyKey.js.map +1 -0
  140. package/dist/{transactions → commit}/confirmation/pendingWrite.d.ts +2 -33
  141. package/dist/commit/confirmation/pendingWrite.d.ts.map +1 -0
  142. package/dist/{transactions → commit}/confirmation/pendingWrite.js +1 -1
  143. package/dist/commit/confirmation/pendingWrite.js.map +1 -0
  144. package/dist/commit/contract.d.ts +1404 -0
  145. package/dist/commit/contract.d.ts.map +1 -0
  146. package/dist/{wire/commit.js → commit/contract.js} +13 -20
  147. package/dist/commit/contract.js.map +1 -0
  148. package/dist/{durableWrites.d.ts → commit/durableWrites.d.ts} +6 -6
  149. package/dist/commit/durableWrites.d.ts.map +1 -0
  150. package/dist/{durableWrites.js → commit/durableWrites.js} +5 -5
  151. package/dist/commit/durableWrites.js.map +1 -0
  152. package/dist/{transport/httpCommitRequest.d.ts → commit/httpRequest.d.ts} +6 -6
  153. package/dist/commit/httpRequest.d.ts.map +1 -0
  154. package/dist/{transport/httpCommitRequest.js → commit/httpRequest.js} +2 -3
  155. package/dist/commit/httpRequest.js.map +1 -0
  156. package/dist/commit/index.d.ts +17 -0
  157. package/dist/commit/index.d.ts.map +1 -0
  158. package/dist/commit/index.js +17 -0
  159. package/dist/commit/index.js.map +1 -0
  160. package/dist/{readSetContext.d.ts → commit/readSetContext.d.ts} +7 -15
  161. package/dist/commit/readSetContext.d.ts.map +1 -0
  162. package/dist/{readSetContext.js → commit/readSetContext.js} +10 -25
  163. package/dist/commit/readSetContext.js.map +1 -0
  164. package/dist/{commitRecordRuntime.d.ts → commit/recordRuntime.d.ts} +3 -5
  165. package/dist/commit/recordRuntime.d.ts.map +1 -0
  166. package/dist/{commitRecordRuntime.js → commit/recordRuntime.js} +13 -54
  167. package/dist/commit/recordRuntime.js.map +1 -0
  168. package/dist/coordination/index.d.ts +6 -8
  169. package/dist/coordination/index.d.ts.map +1 -1
  170. package/dist/coordination/index.js +3 -9
  171. package/dist/coordination/index.js.map +1 -1
  172. package/dist/coordination/schema.d.ts +11 -459
  173. package/dist/coordination/schema.d.ts.map +1 -1
  174. package/dist/coordination/schema.js +13 -261
  175. package/dist/coordination/schema.js.map +1 -1
  176. package/dist/errorCodes.d.ts +15 -9
  177. package/dist/errorCodes.d.ts.map +1 -1
  178. package/dist/errorCodes.js +13 -6
  179. package/dist/errorCodes.js.map +1 -1
  180. package/dist/errorObservation.d.ts +2 -2
  181. package/dist/errors.d.ts +3 -2
  182. package/dist/errors.d.ts.map +1 -1
  183. package/dist/errors.js +27 -11
  184. package/dist/errors.js.map +1 -1
  185. package/dist/index.d.ts +7 -7
  186. package/dist/index.d.ts.map +1 -1
  187. package/dist/index.js +3 -3
  188. package/dist/index.js.map +1 -1
  189. package/dist/internal/read-set.d.ts +3 -3
  190. package/dist/internal/read-set.d.ts.map +1 -1
  191. package/dist/internal/read-set.js +2 -2
  192. package/dist/internal/read-set.js.map +1 -1
  193. package/dist/observability.d.ts +4 -4
  194. package/dist/observability.d.ts.map +1 -1
  195. package/dist/observability.js +2 -2
  196. package/dist/{wire/delta.d.ts → observation/contract.d.ts} +8 -8
  197. package/dist/observation/contract.d.ts.map +1 -0
  198. package/dist/{wire/delta.js → observation/contract.js} +3 -3
  199. package/dist/observation/contract.js.map +1 -0
  200. package/dist/{wire/feedCursor.d.ts → observation/cursor.d.ts} +1 -1
  201. package/dist/observation/cursor.d.ts.map +1 -0
  202. package/dist/{wire/feedCursor.js → observation/cursor.js} +1 -1
  203. package/dist/observation/cursor.js.map +1 -0
  204. package/dist/{wire/deltaDelivery.d.ts → observation/deliveryContract.d.ts} +1 -1
  205. package/dist/observation/deliveryContract.d.ts.map +1 -0
  206. package/dist/{wire/deltaDelivery.js → observation/deliveryContract.js} +1 -1
  207. package/dist/observation/deliveryContract.js.map +1 -0
  208. package/dist/{wire/feedEvent.d.ts → observation/feedContract.d.ts} +10 -10
  209. package/dist/observation/feedContract.d.ts.map +1 -0
  210. package/dist/{wire/feedEvent.js → observation/feedContract.js} +4 -4
  211. package/dist/observation/feedContract.js.map +1 -0
  212. package/dist/observation/httpFeed.d.ts +4 -0
  213. package/dist/observation/httpFeed.d.ts.map +1 -0
  214. package/dist/{transport → observation}/httpFeed.js +1 -1
  215. package/dist/{transport → observation}/httpFeed.js.map +1 -1
  216. package/dist/observation/index.d.ts +13 -0
  217. package/dist/observation/index.d.ts.map +1 -0
  218. package/dist/observation/index.js +13 -0
  219. package/dist/observation/index.js.map +1 -0
  220. package/dist/{log → observation/persistence}/syncDeltaRow.d.ts +8 -8
  221. package/dist/observation/persistence/syncDeltaRow.d.ts.map +1 -0
  222. package/dist/{log → observation/persistence}/syncDeltaRow.js +4 -4
  223. package/dist/observation/persistence/syncDeltaRow.js.map +1 -0
  224. package/dist/pricing.d.ts +26 -12
  225. package/dist/pricing.d.ts.map +1 -1
  226. package/dist/pricing.js +61 -27
  227. package/dist/pricing.js.map +1 -1
  228. package/dist/schema/ddl.d.ts.map +1 -1
  229. package/dist/schema/ddl.js +1 -1
  230. package/dist/schema/ddl.js.map +1 -1
  231. package/dist/schema/deployment/backfill.d.ts +44 -0
  232. package/dist/schema/deployment/backfill.d.ts.map +1 -0
  233. package/dist/schema/deployment/backfill.js +57 -0
  234. package/dist/schema/deployment/backfill.js.map +1 -0
  235. package/dist/schema/deployment/contracts.d.ts +526 -0
  236. package/dist/schema/deployment/contracts.d.ts.map +1 -0
  237. package/dist/schema/deployment/contracts.js +77 -0
  238. package/dist/schema/deployment/contracts.js.map +1 -0
  239. package/dist/schema/deployment/fingerprint.d.ts +3 -0
  240. package/dist/schema/deployment/fingerprint.d.ts.map +1 -0
  241. package/dist/schema/deployment/fingerprint.js +18 -0
  242. package/dist/schema/deployment/fingerprint.js.map +1 -0
  243. package/dist/schema/deployment/index.d.ts +18 -0
  244. package/dist/schema/deployment/index.d.ts.map +1 -0
  245. package/dist/schema/deployment/index.js +71 -0
  246. package/dist/schema/deployment/index.js.map +1 -0
  247. package/dist/schema/deployment/postgresCatalog.d.ts +39 -0
  248. package/dist/schema/deployment/postgresCatalog.d.ts.map +1 -0
  249. package/dist/schema/deployment/postgresCatalog.js +86 -0
  250. package/dist/schema/deployment/postgresCatalog.js.map +1 -0
  251. package/dist/schema/deployment/reconcile.d.ts +20 -0
  252. package/dist/schema/deployment/reconcile.d.ts.map +1 -0
  253. package/dist/schema/deployment/reconcile.js +226 -0
  254. package/dist/schema/deployment/reconcile.js.map +1 -0
  255. package/dist/schema/deployment/sequence.d.ts +4 -0
  256. package/dist/schema/deployment/sequence.d.ts.map +1 -0
  257. package/dist/schema/deployment/sequence.js +71 -0
  258. package/dist/schema/deployment/sequence.js.map +1 -0
  259. package/dist/schema/index.d.ts +6 -6
  260. package/dist/schema/index.d.ts.map +1 -1
  261. package/dist/schema/index.js +8 -7
  262. package/dist/schema/index.js.map +1 -1
  263. package/dist/schema/model.d.ts +0 -27
  264. package/dist/schema/model.d.ts.map +1 -1
  265. package/dist/schema/model.js +0 -2
  266. package/dist/schema/model.js.map +1 -1
  267. package/dist/schema/openapi.d.ts.map +1 -1
  268. package/dist/schema/openapi.js +45 -6
  269. package/dist/schema/openapi.js.map +1 -1
  270. package/dist/schema/schema.d.ts +11 -3
  271. package/dist/schema/schema.d.ts.map +1 -1
  272. package/dist/schema/schema.js +9 -2
  273. package/dist/schema/schema.js.map +1 -1
  274. package/dist/schema/serialize.d.ts +1 -4
  275. package/dist/schema/serialize.d.ts.map +1 -1
  276. package/dist/schema/serialize.js +0 -4
  277. package/dist/schema/serialize.js.map +1 -1
  278. package/dist/schema/tenancy.d.ts +1 -1
  279. package/dist/server/adapter.d.ts +1 -1
  280. package/dist/server/adapter.d.ts.map +1 -1
  281. package/dist/server/commit.d.ts +6 -14
  282. package/dist/server/commit.d.ts.map +1 -1
  283. package/dist/server/index.d.ts +1 -1
  284. package/dist/server/index.d.ts.map +1 -1
  285. package/dist/server/index.js +1 -1
  286. package/dist/server/index.js.map +1 -1
  287. package/dist/server/storageMode.d.ts +1 -1
  288. package/dist/source/{adapter.d.ts → adapters/adapter.d.ts} +10 -4
  289. package/dist/source/adapters/adapter.d.ts.map +1 -0
  290. package/dist/source/adapters/adapter.js.map +1 -0
  291. package/dist/source/adapters/adapterFactory.d.ts.map +1 -0
  292. package/dist/source/{adapterFactory.js → adapters/adapterFactory.js} +1 -1
  293. package/dist/source/adapters/adapterFactory.js.map +1 -0
  294. package/dist/source/adapters/adapterProfile.d.ts.map +1 -0
  295. package/dist/source/adapters/adapterProfile.js.map +1 -0
  296. package/dist/source/{conformance.d.ts → adapters/conformance.d.ts} +1 -1
  297. package/dist/source/adapters/conformance.d.ts.map +1 -0
  298. package/dist/source/{conformance.js → adapters/conformance.js} +1 -1
  299. package/dist/source/adapters/conformance.js.map +1 -0
  300. package/dist/source/{contract.d.ts → adapters/contract.d.ts} +8 -77
  301. package/dist/source/adapters/contract.d.ts.map +1 -0
  302. package/dist/source/{contract.js → adapters/contract.js} +12 -57
  303. package/dist/source/adapters/contract.js.map +1 -0
  304. package/dist/source/adapters/drizzle.d.ts +1 -1
  305. package/dist/source/adapters/drizzle.d.ts.map +1 -1
  306. package/dist/source/adapters/drizzle.js +21 -23
  307. package/dist/source/adapters/drizzle.js.map +1 -1
  308. package/dist/source/adapters/idempotency.d.ts.map +1 -0
  309. package/dist/source/{idempotency.js → adapters/idempotency.js} +2 -2
  310. package/dist/source/adapters/idempotency.js.map +1 -0
  311. package/dist/source/adapters/index.d.ts +21 -0
  312. package/dist/source/adapters/index.d.ts.map +1 -0
  313. package/dist/source/adapters/index.js +21 -0
  314. package/dist/source/adapters/index.js.map +1 -0
  315. package/dist/source/adapters/kysely.d.ts +1 -1
  316. package/dist/source/adapters/kysely.d.ts.map +1 -1
  317. package/dist/source/adapters/kysely.js +18 -20
  318. package/dist/source/adapters/kysely.js.map +1 -1
  319. package/dist/source/adapters/kyselyMutationCore.d.ts +2 -2
  320. package/dist/source/adapters/kyselyMutationCore.d.ts.map +1 -1
  321. package/dist/source/adapters/kyselyMutationCore.js +1 -1
  322. package/dist/source/adapters/kyselyMutationCore.js.map +1 -1
  323. package/dist/source/adapters/memory.d.ts +3 -3
  324. package/dist/source/adapters/memory.d.ts.map +1 -1
  325. package/dist/source/adapters/memory.js +19 -7
  326. package/dist/source/adapters/memory.js.map +1 -1
  327. package/dist/source/adapters/migration.d.ts +8 -0
  328. package/dist/source/adapters/migration.d.ts.map +1 -0
  329. package/dist/source/adapters/migration.js +9 -0
  330. package/dist/source/adapters/migration.js.map +1 -0
  331. package/dist/source/{migrations.d.ts → adapters/migrations.d.ts} +3 -4
  332. package/dist/source/adapters/migrations.d.ts.map +1 -0
  333. package/dist/source/{migrations.js → adapters/migrations.js} +4 -52
  334. package/dist/source/adapters/migrations.js.map +1 -0
  335. package/dist/source/adapters/prisma.d.ts +1 -1
  336. package/dist/source/adapters/prisma.d.ts.map +1 -1
  337. package/dist/source/adapters/prisma.js +21 -28
  338. package/dist/source/adapters/prisma.js.map +1 -1
  339. package/dist/source/{subjectAuthorization.d.ts → adapters/subjectAuthorization.d.ts} +1 -1
  340. package/dist/source/adapters/subjectAuthorization.d.ts.map +1 -0
  341. package/dist/source/{subjectAuthorization.js → adapters/subjectAuthorization.js} +2 -2
  342. package/dist/source/adapters/subjectAuthorization.js.map +1 -0
  343. package/dist/source/{connector.d.ts → connector/client.d.ts} +6 -1
  344. package/dist/source/connector/client.d.ts.map +1 -0
  345. package/dist/source/{connector.js → connector/client.js} +28 -11
  346. package/dist/source/connector/client.js.map +1 -0
  347. package/dist/source/connector/index.d.ts +4 -0
  348. package/dist/source/connector/index.d.ts.map +1 -0
  349. package/dist/source/connector/index.js +4 -0
  350. package/dist/source/connector/index.js.map +1 -0
  351. package/dist/source/{connectorProtocol.d.ts → connector/protocol.d.ts} +8 -1
  352. package/dist/source/connector/protocol.d.ts.map +1 -0
  353. package/dist/source/{connectorProtocol.js → connector/protocol.js} +10 -3
  354. package/dist/source/connector/protocol.js.map +1 -0
  355. package/dist/source/delivery/index.d.ts +3 -0
  356. package/dist/source/delivery/index.d.ts.map +1 -0
  357. package/dist/source/delivery/index.js +3 -0
  358. package/dist/source/delivery/index.js.map +1 -0
  359. package/dist/source/{pushQueue.d.ts → delivery/pushQueue.d.ts} +1 -1
  360. package/dist/source/delivery/pushQueue.d.ts.map +1 -0
  361. package/dist/source/{pushQueue.js → delivery/pushQueue.js} +1 -1
  362. package/dist/source/delivery/pushQueue.js.map +1 -0
  363. package/dist/source/{factory.d.ts → endpoint/factory.d.ts} +3 -3
  364. package/dist/source/endpoint/factory.d.ts.map +1 -0
  365. package/dist/source/{factory.js → endpoint/factory.js} +9 -4
  366. package/dist/source/endpoint/factory.js.map +1 -0
  367. package/dist/source/endpoint/index.d.ts +5 -0
  368. package/dist/source/endpoint/index.d.ts.map +1 -0
  369. package/dist/source/endpoint/index.js +5 -0
  370. package/dist/source/endpoint/index.js.map +1 -0
  371. package/dist/source/{next.d.ts → endpoint/next.d.ts} +2 -2
  372. package/dist/source/endpoint/next.d.ts.map +1 -0
  373. package/dist/source/{next.js → endpoint/next.js} +1 -1
  374. package/dist/source/endpoint/next.js.map +1 -0
  375. package/dist/source/{signing.d.ts → endpoint/signing.d.ts} +1 -1
  376. package/dist/source/endpoint/signing.d.ts.map +1 -0
  377. package/dist/source/{signing.js → endpoint/signing.js} +1 -1
  378. package/dist/source/endpoint/signing.js.map +1 -0
  379. package/dist/source/index.d.ts +14 -12
  380. package/dist/source/index.d.ts.map +1 -1
  381. package/dist/source/index.js +13 -11
  382. package/dist/source/index.js.map +1 -1
  383. package/dist/source/outbox/contract.d.ts +50 -0
  384. package/dist/source/outbox/contract.d.ts.map +1 -0
  385. package/dist/source/outbox/contract.js +50 -0
  386. package/dist/source/outbox/contract.js.map +1 -0
  387. package/dist/source/outbox/envelope.d.ts +9 -0
  388. package/dist/source/outbox/envelope.d.ts.map +1 -0
  389. package/dist/source/outbox/envelope.js +36 -0
  390. package/dist/source/outbox/envelope.js.map +1 -0
  391. package/dist/source/outbox/index.d.ts +11 -0
  392. package/dist/source/outbox/index.d.ts.map +1 -0
  393. package/dist/source/outbox/index.js +11 -0
  394. package/dist/source/outbox/index.js.map +1 -0
  395. package/dist/source/outbox/migrations.d.ts +4 -0
  396. package/dist/source/outbox/migrations.d.ts.map +1 -0
  397. package/dist/source/outbox/migrations.js +67 -0
  398. package/dist/source/outbox/migrations.js.map +1 -0
  399. package/dist/source/outbox/retention.d.ts +3 -0
  400. package/dist/source/outbox/retention.d.ts.map +1 -0
  401. package/dist/source/outbox/retention.js +3 -0
  402. package/dist/source/outbox/retention.js.map +1 -0
  403. package/dist/source/types.d.ts +16 -17
  404. package/dist/source/types.d.ts.map +1 -1
  405. package/dist/source/types.js +1 -0
  406. package/dist/source/types.js.map +1 -1
  407. package/dist/syncLog/contract.d.ts +19 -2
  408. package/dist/syncLog/contract.d.ts.map +1 -1
  409. package/dist/syncLog/contract.js +19 -2
  410. package/dist/syncLog/contract.js.map +1 -1
  411. package/dist/transport/{credentialLifecycle.d.ts → connection/credentialLifecycle.d.ts} +3 -3
  412. package/dist/transport/connection/credentialLifecycle.d.ts.map +1 -0
  413. package/dist/transport/{credentialLifecycle.js → connection/credentialLifecycle.js} +2 -2
  414. package/dist/transport/connection/credentialLifecycle.js.map +1 -0
  415. package/dist/transport/connection/index.d.ts +5 -0
  416. package/dist/transport/connection/index.d.ts.map +1 -0
  417. package/dist/transport/connection/index.js +5 -0
  418. package/dist/transport/connection/index.js.map +1 -0
  419. package/dist/transport/{connectionManager.d.ts → connection/manager.d.ts} +13 -5
  420. package/dist/transport/connection/manager.d.ts.map +1 -0
  421. package/dist/transport/{connectionManager.js → connection/manager.js} +6 -4
  422. package/dist/transport/connection/manager.js.map +1 -0
  423. package/dist/transport/{networkProbe.d.ts → connection/networkProbe.d.ts} +2 -2
  424. package/dist/transport/connection/networkProbe.d.ts.map +1 -0
  425. package/dist/transport/{networkProbe.js → connection/networkProbe.js} +4 -4
  426. package/dist/transport/connection/networkProbe.js.map +1 -0
  427. package/dist/transport/{httpClient.d.ts → http/client.d.ts} +26 -45
  428. package/dist/transport/http/client.d.ts.map +1 -0
  429. package/dist/transport/{httpClient.js → http/client.js} +84 -124
  430. package/dist/transport/http/client.js.map +1 -0
  431. package/dist/transport/{httpTransportHelpers.d.ts → http/helpers.d.ts} +5 -5
  432. package/dist/transport/http/helpers.d.ts.map +1 -0
  433. package/dist/transport/{httpTransportHelpers.js → http/helpers.js} +5 -5
  434. package/dist/transport/http/helpers.js.map +1 -0
  435. package/dist/transport/http/index.d.ts +6 -0
  436. package/dist/transport/http/index.d.ts.map +1 -0
  437. package/dist/transport/http/index.js +6 -0
  438. package/dist/transport/http/index.js.map +1 -0
  439. package/dist/transport/{httpOptions.d.ts → http/options.d.ts} +7 -7
  440. package/dist/transport/{httpOptions.d.ts.map → http/options.d.ts.map} +1 -1
  441. package/dist/transport/{httpOptions.js → http/options.js} +1 -1
  442. package/dist/transport/http/options.js.map +1 -0
  443. package/dist/transport/http/subscription.d.ts +16 -0
  444. package/dist/transport/http/subscription.d.ts.map +1 -0
  445. package/dist/transport/http/subscription.js +146 -0
  446. package/dist/transport/http/subscription.js.map +1 -0
  447. package/dist/transport/{httpTransport.d.ts → http/transport.d.ts} +9 -6
  448. package/dist/transport/http/transport.d.ts.map +1 -0
  449. package/dist/transport/{httpTransport.js → http/transport.js} +95 -93
  450. package/dist/transport/http/transport.js.map +1 -0
  451. package/dist/transport/index.d.ts +8 -0
  452. package/dist/transport/index.d.ts.map +1 -0
  453. package/dist/transport/index.js +8 -0
  454. package/dist/transport/index.js.map +1 -0
  455. package/dist/transport/{commitFrames.d.ts → websocket/commitFrames.d.ts} +8 -20
  456. package/dist/transport/websocket/commitFrames.d.ts.map +1 -0
  457. package/dist/transport/{commitFrames.js → websocket/commitFrames.js} +6 -25
  458. package/dist/transport/websocket/commitFrames.js.map +1 -0
  459. package/dist/transport/{wsFrameHandlers.d.ts → websocket/frameHandlers.d.ts} +5 -5
  460. package/dist/transport/websocket/frameHandlers.d.ts.map +1 -0
  461. package/dist/transport/{wsFrameHandlers.js → websocket/frameHandlers.js} +10 -51
  462. package/dist/transport/websocket/frameHandlers.js.map +1 -0
  463. package/dist/transport/{heartbeat.d.ts → websocket/heartbeat.d.ts} +1 -1
  464. package/dist/transport/websocket/heartbeat.d.ts.map +1 -0
  465. package/dist/transport/{heartbeat.js → websocket/heartbeat.js} +2 -2
  466. package/dist/transport/websocket/heartbeat.js.map +1 -0
  467. package/dist/transport/websocket/index.d.ts +6 -0
  468. package/dist/transport/websocket/index.d.ts.map +1 -0
  469. package/dist/transport/websocket/index.js +6 -0
  470. package/dist/transport/websocket/index.js.map +1 -0
  471. package/dist/transport/{wsTransport.d.ts → websocket/transport.d.ts} +13 -25
  472. package/dist/transport/websocket/transport.d.ts.map +1 -0
  473. package/dist/transport/{wsTransport.js → websocket/transport.js} +14 -14
  474. package/dist/transport/websocket/transport.js.map +1 -0
  475. package/dist/types/index.d.ts +1 -1
  476. package/dist/types/index.d.ts.map +1 -1
  477. package/dist/types/streams.d.ts +8 -48
  478. package/dist/types/streams.d.ts.map +1 -1
  479. package/dist/types/streams.js +2 -2
  480. package/dist/wire/accountResponses.d.ts +4 -72
  481. package/dist/wire/accountResponses.d.ts.map +1 -1
  482. package/dist/wire/accountResponses.js +2 -10
  483. package/dist/wire/accountResponses.js.map +1 -1
  484. package/dist/wire/frames.d.ts +6 -83
  485. package/dist/wire/frames.d.ts.map +1 -1
  486. package/dist/wire/frames.js +4 -11
  487. package/dist/wire/frames.js.map +1 -1
  488. package/dist/wire/inboundFrames.d.ts +6 -131
  489. package/dist/wire/inboundFrames.d.ts.map +1 -1
  490. package/dist/wire/inboundFrames.js +3 -3
  491. package/dist/wire/inboundFrames.js.map +1 -1
  492. package/dist/wire/index.d.ts +17 -15
  493. package/dist/wire/index.d.ts.map +1 -1
  494. package/dist/wire/index.js +11 -8
  495. package/dist/wire/index.js.map +1 -1
  496. package/dist/wire/modelMutations.d.ts +1 -32
  497. package/dist/wire/modelMutations.d.ts.map +1 -1
  498. package/dist/wire/modelMutations.js +1 -8
  499. package/dist/wire/modelMutations.js.map +1 -1
  500. package/package.json +130 -10
  501. package/src/ai-sdk/modelTools.ts +5 -5
  502. package/src/ai-sdk/updateTool.ts +5 -7
  503. package/src/auth/capability.ts +5 -0
  504. package/src/auth/capabilityLifecycle.ts +1 -1
  505. package/src/auth/credentialPolicy.ts +1 -1
  506. package/src/auth/identity.ts +7 -7
  507. package/src/auth/index.ts +4 -663
  508. package/src/auth/runtime.ts +669 -0
  509. package/src/auth/sessionMint.ts +3 -2
  510. package/src/branches.ts +3 -0
  511. package/src/{coordination/awaitClaimGrant.ts → claims/awaitGrant.ts} +4 -4
  512. package/src/{wire/claims.ts → claims/contract.ts} +1 -1
  513. package/src/{coordination → claims}/events.ts +7 -11
  514. package/src/claims/index.ts +21 -0
  515. package/src/claims/lifetime.ts +78 -0
  516. package/src/{coordination → claims}/locator.ts +3 -3
  517. package/src/claims/routes.ts +81 -0
  518. package/src/{coordination → claims}/trace.ts +5 -5
  519. package/src/{ablo.ts → client/ablo.ts} +10 -22
  520. package/src/{transactionLayer.ts → client/contract.ts} +11 -13
  521. package/src/{headlessClient.ts → client/headless.ts} +13 -15
  522. package/src/client/index.ts +10 -0
  523. package/src/{resources → client/resources}/functionalUpdate.ts +4 -4
  524. package/src/{resources → client/resources}/httpResources.ts +48 -68
  525. package/src/{resources → client/resources}/modelCreate.ts +2 -2
  526. package/src/{resources → client/resources}/modelOperations.ts +46 -55
  527. package/src/{resources → client/resources}/mutationOptions.ts +4 -17
  528. package/src/{resources → client/resources}/where.ts +1 -1
  529. package/src/{resources → client/resources}/writeOptionsSchema.ts +7 -27
  530. package/src/client/surface.ts +50 -0
  531. package/src/{transactions → commit}/confirmation/commitEnvelope.ts +2 -12
  532. package/src/{transactions → commit}/confirmation/httpCommitEnvelope.ts +1 -1
  533. package/src/{transactions → commit}/confirmation/pendingWrite.ts +1 -1
  534. package/src/{wire/commit.ts → commit/contract.ts} +11 -25
  535. package/src/{durableWrites.ts → commit/durableWrites.ts} +7 -7
  536. package/src/{transport/httpCommitRequest.ts → commit/httpRequest.ts} +6 -7
  537. package/src/commit/index.ts +16 -0
  538. package/src/{readSetContext.ts → commit/readSetContext.ts} +16 -41
  539. package/src/{commitRecordRuntime.ts → commit/recordRuntime.ts} +12 -67
  540. package/src/coordination/index.ts +4 -52
  541. package/src/coordination/schema.ts +15 -302
  542. package/src/errorCodes.ts +56 -10
  543. package/src/errors.ts +32 -10
  544. package/src/index.ts +8 -8
  545. package/src/internal/read-set.ts +3 -6
  546. package/src/observability.ts +4 -4
  547. package/src/{wire/delta.ts → observation/contract.ts} +2 -2
  548. package/src/{wire/feedEvent.ts → observation/feedContract.ts} +3 -4
  549. package/src/{transport → observation}/httpFeed.ts +3 -3
  550. package/src/observation/index.ts +12 -0
  551. package/src/{log → observation/persistence}/syncDeltaRow.ts +6 -7
  552. package/src/pricing.ts +61 -26
  553. package/src/schema/ddl.ts +3 -1
  554. package/src/schema/deployment/backfill.ts +88 -0
  555. package/src/schema/deployment/contracts.ts +119 -0
  556. package/src/schema/deployment/fingerprint.ts +13 -0
  557. package/src/schema/deployment/index.ts +81 -0
  558. package/src/schema/deployment/postgresCatalog.ts +131 -0
  559. package/src/schema/deployment/reconcile.ts +219 -0
  560. package/src/schema/deployment/sequence.ts +85 -0
  561. package/src/schema/index.ts +9 -20
  562. package/src/schema/model.ts +0 -33
  563. package/src/schema/openapi.ts +47 -7
  564. package/src/schema/schema.ts +23 -3
  565. package/src/schema/serialize.ts +0 -8
  566. package/src/server/adapter.ts +1 -1
  567. package/src/server/commit.ts +6 -14
  568. package/src/server/index.ts +1 -1
  569. package/src/source/{adapter.ts → adapters/adapter.ts} +9 -5
  570. package/src/source/{adapterFactory.ts → adapters/adapterFactory.ts} +1 -1
  571. package/src/source/{conformance.ts → adapters/conformance.ts} +1 -1
  572. package/src/source/{contract.ts → adapters/contract.ts} +16 -64
  573. package/src/source/adapters/drizzle.ts +29 -27
  574. package/src/source/{idempotency.ts → adapters/idempotency.ts} +2 -2
  575. package/src/source/adapters/index.ts +20 -0
  576. package/src/source/adapters/kysely.ts +32 -25
  577. package/src/source/adapters/kyselyMutationCore.ts +3 -3
  578. package/src/source/adapters/memory.ts +25 -9
  579. package/src/source/adapters/migration.ts +11 -0
  580. package/src/source/{migrations.ts → adapters/migrations.ts} +6 -54
  581. package/src/source/adapters/prisma.ts +33 -32
  582. package/src/source/{subjectAuthorization.ts → adapters/subjectAuthorization.ts} +2 -2
  583. package/src/source/{connector.ts → connector/client.ts} +35 -12
  584. package/src/source/connector/index.ts +3 -0
  585. package/src/source/{connectorProtocol.ts → connector/protocol.ts} +10 -2
  586. package/src/source/delivery/index.ts +2 -0
  587. package/src/source/{pushQueue.ts → delivery/pushQueue.ts} +2 -2
  588. package/src/source/{factory.ts → endpoint/factory.ts} +13 -8
  589. package/src/source/endpoint/index.ts +4 -0
  590. package/src/source/{next.ts → endpoint/next.ts} +2 -2
  591. package/src/source/{signing.ts → endpoint/signing.ts} +1 -1
  592. package/src/source/index.ts +22 -19
  593. package/src/source/outbox/contract.ts +56 -0
  594. package/src/source/outbox/envelope.ts +47 -0
  595. package/src/source/outbox/index.ts +15 -0
  596. package/src/source/outbox/migrations.ts +71 -0
  597. package/src/source/outbox/retention.ts +2 -0
  598. package/src/source/types.ts +17 -17
  599. package/src/syncLog/contract.ts +19 -2
  600. package/src/transport/{credentialLifecycle.ts → connection/credentialLifecycle.ts} +3 -3
  601. package/src/transport/connection/index.ts +4 -0
  602. package/src/transport/{connectionManager.ts → connection/manager.ts} +13 -4
  603. package/src/transport/{networkProbe.ts → connection/networkProbe.ts} +4 -4
  604. package/src/transport/{httpClient.ts → http/client.ts} +128 -209
  605. package/src/transport/{httpTransportHelpers.ts → http/helpers.ts} +7 -7
  606. package/src/transport/http/index.ts +5 -0
  607. package/src/transport/{httpOptions.ts → http/options.ts} +6 -6
  608. package/src/transport/http/subscription.ts +174 -0
  609. package/src/transport/{httpTransport.ts → http/transport.ts} +127 -113
  610. package/src/transport/index.ts +7 -0
  611. package/src/transport/{commitFrames.ts → websocket/commitFrames.ts} +14 -46
  612. package/src/transport/{wsFrameHandlers.ts → websocket/frameHandlers.ts} +11 -54
  613. package/src/transport/{heartbeat.ts → websocket/heartbeat.ts} +2 -2
  614. package/src/transport/websocket/index.ts +5 -0
  615. package/src/transport/{wsTransport.ts → websocket/transport.ts} +16 -30
  616. package/src/types/index.ts +2 -6
  617. package/src/types/streams.ts +7 -61
  618. package/src/webhooks/events.ts +1 -1
  619. package/src/wire/accountResponses.ts +3 -12
  620. package/src/wire/frames.ts +5 -15
  621. package/src/wire/inboundFrames.ts +3 -3
  622. package/src/wire/index.ts +19 -15
  623. package/src/wire/modelMutations.ts +1 -14
  624. package/dist/ablo.d.ts.map +0 -1
  625. package/dist/ablo.js.map +0 -1
  626. package/dist/commitRecordRuntime.d.ts.map +0 -1
  627. package/dist/commitRecordRuntime.js.map +0 -1
  628. package/dist/coordination/awaitClaimGrant.d.ts.map +0 -1
  629. package/dist/coordination/awaitClaimGrant.js.map +0 -1
  630. package/dist/coordination/claimHeartbeatLoop.d.ts.map +0 -1
  631. package/dist/coordination/claimHeartbeatLoop.js.map +0 -1
  632. package/dist/coordination/claimMeta.d.ts.map +0 -1
  633. package/dist/coordination/claimMeta.js.map +0 -1
  634. package/dist/coordination/events.d.ts.map +0 -1
  635. package/dist/coordination/events.js +0 -8
  636. package/dist/coordination/events.js.map +0 -1
  637. package/dist/coordination/locator.d.ts.map +0 -1
  638. package/dist/coordination/locator.js.map +0 -1
  639. package/dist/coordination/targetConflict.d.ts.map +0 -1
  640. package/dist/coordination/targetConflict.js.map +0 -1
  641. package/dist/coordination/trace.d.ts.map +0 -1
  642. package/dist/coordination/trace.js.map +0 -1
  643. package/dist/durableWrites.d.ts.map +0 -1
  644. package/dist/durableWrites.js.map +0 -1
  645. package/dist/headlessClient.d.ts.map +0 -1
  646. package/dist/log/syncDeltaRow.d.ts.map +0 -1
  647. package/dist/log/syncDeltaRow.js.map +0 -1
  648. package/dist/policy/types.d.ts +0 -226
  649. package/dist/policy/types.d.ts.map +0 -1
  650. package/dist/policy/types.js +0 -127
  651. package/dist/policy/types.js.map +0 -1
  652. package/dist/readSetContext.d.ts.map +0 -1
  653. package/dist/readSetContext.js.map +0 -1
  654. package/dist/resources/functionalUpdate.d.ts.map +0 -1
  655. package/dist/resources/functionalUpdate.js.map +0 -1
  656. package/dist/resources/httpResources.d.ts.map +0 -1
  657. package/dist/resources/httpResources.js.map +0 -1
  658. package/dist/resources/modelCreate.d.ts.map +0 -1
  659. package/dist/resources/modelCreate.js.map +0 -1
  660. package/dist/resources/modelOperations.d.ts.map +0 -1
  661. package/dist/resources/modelOperations.js.map +0 -1
  662. package/dist/resources/mutationOptions.d.ts.map +0 -1
  663. package/dist/resources/mutationOptions.js.map +0 -1
  664. package/dist/resources/where.d.ts.map +0 -1
  665. package/dist/resources/where.js.map +0 -1
  666. package/dist/resources/writeOptionsSchema.d.ts.map +0 -1
  667. package/dist/resources/writeOptionsSchema.js.map +0 -1
  668. package/dist/schema/coordination.d.ts +0 -113
  669. package/dist/schema/coordination.d.ts.map +0 -1
  670. package/dist/schema/coordination.js +0 -134
  671. package/dist/schema/coordination.js.map +0 -1
  672. package/dist/source/adapter.d.ts.map +0 -1
  673. package/dist/source/adapter.js.map +0 -1
  674. package/dist/source/adapterFactory.d.ts.map +0 -1
  675. package/dist/source/adapterFactory.js.map +0 -1
  676. package/dist/source/adapterProfile.d.ts.map +0 -1
  677. package/dist/source/adapterProfile.js.map +0 -1
  678. package/dist/source/conformance.d.ts.map +0 -1
  679. package/dist/source/conformance.js.map +0 -1
  680. package/dist/source/connector.d.ts.map +0 -1
  681. package/dist/source/connector.js.map +0 -1
  682. package/dist/source/connectorProtocol.d.ts.map +0 -1
  683. package/dist/source/connectorProtocol.js.map +0 -1
  684. package/dist/source/contract.d.ts.map +0 -1
  685. package/dist/source/contract.js.map +0 -1
  686. package/dist/source/drizzle.d.ts +0 -2
  687. package/dist/source/drizzle.d.ts.map +0 -1
  688. package/dist/source/drizzle.js +0 -2
  689. package/dist/source/drizzle.js.map +0 -1
  690. package/dist/source/factory.d.ts.map +0 -1
  691. package/dist/source/factory.js.map +0 -1
  692. package/dist/source/idempotency.d.ts.map +0 -1
  693. package/dist/source/idempotency.js.map +0 -1
  694. package/dist/source/kysely.d.ts +0 -3
  695. package/dist/source/kysely.d.ts.map +0 -1
  696. package/dist/source/kysely.js +0 -3
  697. package/dist/source/kysely.js.map +0 -1
  698. package/dist/source/migrations.d.ts.map +0 -1
  699. package/dist/source/migrations.js.map +0 -1
  700. package/dist/source/next.d.ts.map +0 -1
  701. package/dist/source/next.js.map +0 -1
  702. package/dist/source/pushQueue.d.ts.map +0 -1
  703. package/dist/source/pushQueue.js.map +0 -1
  704. package/dist/source/signing.d.ts.map +0 -1
  705. package/dist/source/signing.js.map +0 -1
  706. package/dist/source/subjectAuthorization.d.ts.map +0 -1
  707. package/dist/source/subjectAuthorization.js.map +0 -1
  708. package/dist/transactionLayer.d.ts.map +0 -1
  709. package/dist/transactionLayer.js.map +0 -1
  710. package/dist/transactions/confirmation/commitEnvelope.d.ts.map +0 -1
  711. package/dist/transactions/confirmation/commitEnvelope.js.map +0 -1
  712. package/dist/transactions/confirmation/httpCommitEnvelope.d.ts.map +0 -1
  713. package/dist/transactions/confirmation/httpCommitEnvelope.js.map +0 -1
  714. package/dist/transactions/confirmation/idempotencyKey.d.ts.map +0 -1
  715. package/dist/transactions/confirmation/idempotencyKey.js.map +0 -1
  716. package/dist/transactions/confirmation/pendingWrite.d.ts.map +0 -1
  717. package/dist/transactions/confirmation/pendingWrite.js.map +0 -1
  718. package/dist/transport/commitFrames.d.ts.map +0 -1
  719. package/dist/transport/commitFrames.js.map +0 -1
  720. package/dist/transport/connectionManager.d.ts.map +0 -1
  721. package/dist/transport/connectionManager.js.map +0 -1
  722. package/dist/transport/credentialLifecycle.d.ts.map +0 -1
  723. package/dist/transport/credentialLifecycle.js.map +0 -1
  724. package/dist/transport/heartbeat.d.ts.map +0 -1
  725. package/dist/transport/heartbeat.js.map +0 -1
  726. package/dist/transport/httpClient.d.ts.map +0 -1
  727. package/dist/transport/httpClient.js.map +0 -1
  728. package/dist/transport/httpCommitRequest.d.ts.map +0 -1
  729. package/dist/transport/httpCommitRequest.js.map +0 -1
  730. package/dist/transport/httpFeed.d.ts +0 -4
  731. package/dist/transport/httpFeed.d.ts.map +0 -1
  732. package/dist/transport/httpOptions.js.map +0 -1
  733. package/dist/transport/httpTransport.d.ts.map +0 -1
  734. package/dist/transport/httpTransport.js.map +0 -1
  735. package/dist/transport/httpTransportHelpers.d.ts.map +0 -1
  736. package/dist/transport/httpTransportHelpers.js.map +0 -1
  737. package/dist/transport/networkProbe.d.ts.map +0 -1
  738. package/dist/transport/networkProbe.js.map +0 -1
  739. package/dist/transport/wsFrameHandlers.d.ts.map +0 -1
  740. package/dist/transport/wsFrameHandlers.js.map +0 -1
  741. package/dist/transport/wsTransport.d.ts.map +0 -1
  742. package/dist/transport/wsTransport.js.map +0 -1
  743. package/dist/wire/claimEvent.d.ts.map +0 -1
  744. package/dist/wire/claimEvent.js.map +0 -1
  745. package/dist/wire/claims.d.ts.map +0 -1
  746. package/dist/wire/claims.js.map +0 -1
  747. package/dist/wire/commit.d.ts +0 -2866
  748. package/dist/wire/commit.d.ts.map +0 -1
  749. package/dist/wire/commit.js.map +0 -1
  750. package/dist/wire/delta.d.ts.map +0 -1
  751. package/dist/wire/delta.js.map +0 -1
  752. package/dist/wire/deltaDelivery.d.ts.map +0 -1
  753. package/dist/wire/deltaDelivery.js.map +0 -1
  754. package/dist/wire/feedCursor.d.ts.map +0 -1
  755. package/dist/wire/feedCursor.js.map +0 -1
  756. package/dist/wire/feedEvent.d.ts.map +0 -1
  757. package/dist/wire/feedEvent.js.map +0 -1
  758. package/src/policy/types.ts +0 -300
  759. package/src/schema/coordination.ts +0 -161
  760. package/src/source/drizzle.ts +0 -1
  761. package/src/source/kysely.ts +0 -2
  762. /package/dist/{coordination → claims}/targetConflict.d.ts +0 -0
  763. /package/dist/{coordination → claims}/targetConflict.js +0 -0
  764. /package/dist/{resources → client/resources}/mutationOptions.js +0 -0
  765. /package/dist/{resources → client/resources}/where.d.ts +0 -0
  766. /package/dist/{transactions → commit}/confirmation/httpCommitEnvelope.d.ts +0 -0
  767. /package/dist/{transactions → commit}/confirmation/idempotencyKey.d.ts +0 -0
  768. /package/dist/{transactions → commit}/confirmation/idempotencyKey.js +0 -0
  769. /package/dist/source/{adapter.js → adapters/adapter.js} +0 -0
  770. /package/dist/source/{adapterFactory.d.ts → adapters/adapterFactory.d.ts} +0 -0
  771. /package/dist/source/{adapterProfile.d.ts → adapters/adapterProfile.d.ts} +0 -0
  772. /package/dist/source/{adapterProfile.js → adapters/adapterProfile.js} +0 -0
  773. /package/dist/source/{idempotency.d.ts → adapters/idempotency.d.ts} +0 -0
  774. /package/src/{wire/claimEvent.ts → claims/eventContract.ts} +0 -0
  775. /package/src/{coordination/claimHeartbeatLoop.ts → claims/heartbeat.ts} +0 -0
  776. /package/src/{coordination/claimMeta.ts → claims/meta.ts} +0 -0
  777. /package/src/{coordination → claims}/targetConflict.ts +0 -0
  778. /package/src/{transactions → commit}/confirmation/idempotencyKey.ts +0 -0
  779. /package/src/{wire/feedCursor.ts → observation/cursor.ts} +0 -0
  780. /package/src/{wire/deltaDelivery.ts → observation/deliveryContract.ts} +0 -0
  781. /package/src/source/{adapterProfile.ts → adapters/adapterProfile.ts} +0 -0
@@ -16,13 +16,13 @@ import {
16
16
  AbloNotFoundError,
17
17
  claimedError,
18
18
  translateHttpError,
19
- } from '../errors.js';
19
+ } from '../../errors.js';
20
20
  import { z } from 'zod';
21
21
  import {
22
22
  reconcileFunctionalUpdate,
23
23
  type ModelUpdater,
24
24
  type FunctionalUpdateOptions,
25
- } from '../resources/functionalUpdate.js';
25
+ } from '../../client/resources/functionalUpdate.js';
26
26
  import {
27
27
  assertBrowserSafety,
28
28
  readProcessEnv,
@@ -33,41 +33,42 @@ import {
33
33
  resolveBootstrapBaseUrl,
34
34
  rejectRemovedDatabaseUrlOption,
35
35
  warnIfCliKeyMismatch,
36
- } from '../auth/apiKey.js';
37
- import { PROTOCOL_VERSION, PROTOCOL_VERSION_HEADER } from '../wire/protocolVersion.js';
36
+ } from '../../auth/apiKey.js';
37
+ import { PROTOCOL_VERSION, PROTOCOL_VERSION_HEADER } from '../../wire/protocolVersion.js';
38
38
  import {
39
39
  commitRecordSchema,
40
40
  commitRecordListSchema,
41
41
  commitRecordListOptionsSchema,
42
42
  commitRecordWhereSchema,
43
43
  type CommitReceiptWire,
44
- } from '../wire/commit.js';
45
- import { logListResponseSchema } from '../wire/feedEvent.js';
44
+ } from '../../commit/contract.js';
45
+ import { logListResponseSchema } from '../../observation/feedContract.js';
46
46
  import {
47
47
  claimAcquireResponseSchema,
48
48
  claimHeartbeatBatchReplySchema,
49
49
  claimHeartbeatReplySchema,
50
50
  claimListResponseSchema,
51
51
  claimStateSchema,
52
+ DEFAULT_CLAIM_TTL_MS,
52
53
  type ClaimHeartbeatReply,
53
54
  type ClaimListResponse,
54
55
  type ClaimQueuedResponse,
55
56
  type ClaimRequest,
56
57
  type ClaimState,
57
58
  type ClaimTargetBody,
58
- } from '../wire/claims.js';
59
+ } from '../../claims/contract.js';
59
60
  import {
60
61
  modelListResponseSchema,
61
62
  modelReadResponseSchema,
62
- } from '../wire/modelResponses.js';
63
- import { toMs } from '../utils/duration.js';
63
+ } from '../../wire/modelResponses.js';
64
+ import { toMs } from '../../utils/duration.js';
64
65
  import {
65
66
  heartbeatCadenceMs,
66
67
  resolveHeartbeatOptions,
67
68
  resolveHeartbeatPlan,
68
69
  startClaimHeartbeatLoop,
69
- } from '../coordination/claimHeartbeatLoop.js';
70
- import type { HttpClientConfig } from './httpOptions.js';
70
+ } from '../../claims/heartbeat.js';
71
+ import type { HttpClientConfig } from './options.js';
71
72
  import type {
72
73
  ClaimedOptions,
73
74
  CommitCreateOptions,
@@ -79,7 +80,7 @@ import type {
79
80
  HttpClaimsResource,
80
81
  HttpTransportModel,
81
82
  ModelClaim,
82
- ModelMutationOptions,
83
+ InternalModelMutationOptions as ModelMutationOptions,
83
84
  ModelReadOptions,
84
85
  HttpTransportRead,
85
86
  HttpTransportList,
@@ -88,64 +89,68 @@ import type {
88
89
  CreateSessionParams,
89
90
  AbloSession,
90
91
  SessionResource,
91
- } from '../resources/httpResources.js';
92
- import { mintSession } from '../auth/sessionMint.js';
92
+ } from '../../client/resources/httpResources.js';
93
+ import { mintSession } from '../../auth/sessionMint.js';
93
94
  import {
94
95
  revokeCapability,
95
96
  rotateCapability,
96
- } from '../auth/capabilityLifecycle.js';
97
- import { parseIdentityResolveResponse } from '../auth/schemas.js';
98
- import type { EffectiveAuthority } from '../auth/capability.js';
97
+ } from '../../auth/capabilityLifecycle.js';
98
+ import { parseIdentityResolveResponse } from '../../auth/schemas.js';
99
+ import type { EffectiveAuthority } from '../../auth/capability.js';
99
100
 
100
101
  import {
101
102
  claimFromModelClaim,
102
103
  heldHeartbeatReply,
103
104
  parseSuccessfulCommitResponse,
104
- } from './httpTransportHelpers.js';
105
- import type { SchemaRecord } from '../schema/schema.js';
105
+ } from './helpers.js';
106
+ import type { SchemaRecord } from '../../schema/schema.js';
106
107
  import type {
107
108
  ClaimLookupParams,
108
109
  ClaimOptions,
109
110
  ClaimParams,
110
111
  ClaimSkipParams,
112
+ ClaimSkipOptions,
111
113
  ClaimReorderParams,
112
- ModelTrackParams,
113
- ModelTrackResult,
114
114
  ModelCreateManyParams,
115
115
  ServerReadOptions,
116
116
  ResolvedClaimContentionOptions,
117
117
  ClaimQueueView,
118
- } from '../resources/modelOperations.js';
118
+ } from '../../client/resources/modelOperations.js';
119
119
  import {
120
120
  claimAttemptFailure,
121
121
  claimQueueView,
122
122
  emitClaimStatus,
123
123
  resolveClaimContentionOptions,
124
- } from '../resources/modelOperations.js';
125
- import type { Duration } from '../utils/duration.js';
126
- import type { TrackDependency } from '../coordination/schema.js';
127
- import { claimDescription, partName } from '../coordination/schema.js';
128
- import type { BatchFence } from '../coordination/locator.js';
124
+ } from '../../client/resources/modelOperations.js';
125
+ import type { Duration } from '../../utils/duration.js';
126
+ import { claimDescription, partName } from '../../coordination/schema.js';
127
+ import type { BatchFence } from '../../claims/locator.js';
129
128
  import {
130
129
  subTarget,
131
130
  streamTarget,
132
131
  batchFence,
133
132
  claimIdFor,
134
133
  fenceTokenFor,
135
- } from '../coordination/locator.js';
136
- import { declaredMeta, wireMeta } from '../coordination/claimMeta.js';
137
- import type { Claim, ClaimHeartbeat, ClaimHeartbeatOptions, HeldClaim } from '../types/streams.js';
138
- import type { CoordinationObservability } from '../observability.js';
134
+ } from '../../claims/locator.js';
135
+ import { declaredMeta, wireMeta } from '../../claims/meta.js';
136
+ import type {
137
+ Claim,
138
+ ClaimHeartbeat,
139
+ ClaimHeartbeatOptions,
140
+ HeldClaim,
141
+ HeldLease,
142
+ } from '../../types/streams.js';
143
+ import type { CoordinationObservability } from '../../observability.js';
139
144
  import {
140
145
  assertWriteOptions,
141
146
  assertWriteTarget,
142
- } from '../resources/writeOptionsSchema.js';
147
+ } from '../../client/resources/writeOptionsSchema.js';
143
148
  import {
144
149
  createModelId,
145
150
  resolveCreatedRows,
146
151
  resolveCreateId,
147
- } from '../resources/modelCreate.js';
148
- import { normalizeWhere } from '../resources/where.js';
152
+ } from '../../client/resources/modelCreate.js';
153
+ import { normalizeWhere } from '../../client/resources/where.js';
149
154
  import {
150
155
  createDurableHttpCommitEnvelope,
151
156
  canonicalHttpCommitBody,
@@ -154,15 +159,16 @@ import {
154
159
  isHttpCommitReplayExpired,
155
160
  type DurableHttpCommitEnvelope,
156
161
  type DurableHttpCommitMethod,
157
- } from '../transactions/confirmation/httpCommitEnvelope.js';
158
- import type { CommitOutboxScope } from '../transactions/confirmation/commitEnvelope.js';
162
+ } from '../../commit/confirmation/httpCommitEnvelope.js';
163
+ import type { CommitOutboxScope } from '../../commit/confirmation/commitEnvelope.js';
159
164
  import {
160
165
  createClientTxId,
161
166
  normalizeCommitOperations,
162
167
  replicationLagTimeout,
163
168
  type ExactHttpCommitRequest,
164
- } from './httpCommitRequest.js';
165
- import { resolveDurableWrites } from '../durableWrites.js';
169
+ } from '../../commit/httpRequest.js';
170
+ import { resolveDurableWrites } from '../../commit/durableWrites.js';
171
+ import { createHttpReadOnChange, type HttpReadOnChange } from './subscription.js';
166
172
 
167
173
  /** @internal Private options for the schema-agnostic HTTP protocol transport. */
168
174
  export type HttpTransportOptions = Omit<HttpClientConfig, 'schema'> & {
@@ -190,12 +196,6 @@ export type HttpTransportOptions = Omit<HttpClientConfig, 'schema'> & {
190
196
  /** @internal Default per-request deadline for the private HTTP transport. */
191
197
  export const DEFAULT_REQUEST_TIMEOUT_MS = 30_000;
192
198
  const HTTP_CONFIRMATION_POLL_INTERVAL_MS = 250;
193
- /**
194
- * The server's acquire window, mirrored here as the client-side default for a
195
- * claim that names no `ttl` — it sets the auto-heartbeat cadence.
196
- */
197
- const DEFAULT_CLAIM_TTL_MS = 60_000;
198
-
199
199
  // NOTE: end-user / agent session minting is `ablo.sessions.create(...)` (typed
200
200
  // against the schema, see Ablo.ts `CreateSessionParams`). There is no separate
201
201
  // `ephemeralKeys` resource — `sessions` is the one front door for both.
@@ -207,6 +207,8 @@ export interface HttpTransport {
207
207
  /** Drains scheduled commits and active requests. */
208
208
  dispose(): Promise<void>;
209
209
  purge(): Promise<void>;
210
+ /** @internal Live check used only by `context().onChange`. */
211
+ readonly onChange: HttpReadOnChange;
210
212
  readonly commits: CommitResource;
211
213
  /**
212
214
  * Claim-ticket operations keyed by `claimId` — the id a queued acquire
@@ -279,8 +281,7 @@ export function createHttpTransport(options: HttpTransportOptions): HttpTranspor
279
281
  const isConflict =
280
282
  code === 'stale_context' ||
281
283
  code === 'claim_conflict' ||
282
- code === 'entity_claimed' ||
283
- (typeof code === 'string' && code.startsWith('policy:'));
284
+ code === 'entity_claimed';
284
285
  if (!isConflict) return;
285
286
  const rawConflicts = errorRecord?.conflicts;
286
287
  const rows =
@@ -326,6 +327,7 @@ export function createHttpTransport(options: HttpTransportOptions): HttpTranspor
326
327
  let activeRequests = 0;
327
328
  let requestIdleWaiters: Array<() => void> = [];
328
329
  let disposePromise: Promise<void> | null = null;
330
+ const readChangeControllers = new Set<AbortController>();
329
331
 
330
332
  function requestStarted(): void {
331
333
  activeRequests += 1;
@@ -447,7 +449,24 @@ export function createHttpTransport(options: HttpTransportOptions): HttpTranspor
447
449
  return target.toString();
448
450
  }
449
451
 
452
+ function subscriptionEndpoint(): string {
453
+ const target = new URL(endpoint('/v1/subscriptions'));
454
+ const partition = effectiveAuthority?.deliveryPartition;
455
+ if (partition) {
456
+ target.searchParams.set('deliveryPartition', `${partition.index}-${partition.count}`);
457
+ }
458
+ return target.toString();
459
+ }
460
+
450
461
  const requestTimeoutMs = options.timeoutMs ?? DEFAULT_REQUEST_TIMEOUT_MS;
462
+ const onChange = createHttpReadOnChange({
463
+ fetch: fetchImpl,
464
+ endpoint: subscriptionEndpoint,
465
+ authHeaders,
466
+ prepare: ready,
467
+ register: (controller) => readChangeControllers.add(controller),
468
+ unregister: (controller) => readChangeControllers.delete(controller),
469
+ });
451
470
 
452
471
  /**
453
472
  * Issues one request and returns its decoded body without a contract.
@@ -1255,11 +1274,9 @@ export function createHttpTransport(options: HttpTransportOptions): HttpTranspor
1255
1274
  {
1256
1275
  idempotencyKey: commitOptions.idempotencyKey,
1257
1276
  readAt: commitOptions.readAt,
1258
- onStale: commitOptions.onStale,
1259
1277
  wait: commitOptions.wait,
1260
1278
  claim: commitOptions.claim,
1261
1279
  reads: commitOptions.reads,
1262
- track: commitOptions.track,
1263
1280
  },
1264
1281
  'commits.create'
1265
1282
  );
@@ -1271,14 +1288,12 @@ export function createHttpTransport(options: HttpTransportOptions): HttpTranspor
1271
1288
  {
1272
1289
  ...commitOptions,
1273
1290
  readAt: commitOptions.readAt ?? claim?.readAt ?? null,
1274
- onStale: commitOptions.onStale ?? (claim?.readAt !== undefined ? 'reject' : null),
1275
1291
  },
1276
1292
  batchFence(claim?.target, claim?.fenceToken)
1277
1293
  );
1278
1294
  const requestBody = {
1279
1295
  operations,
1280
1296
  reads: commitOptions.reads,
1281
- track: commitOptions.track,
1282
1297
  };
1283
1298
  const wait = commitOptions.wait ?? 'confirmed';
1284
1299
  let body: CommitResponse;
@@ -1314,9 +1329,6 @@ export function createHttpTransport(options: HttpTransportOptions): HttpTranspor
1314
1329
  id: body.id ?? body.clientTxId,
1315
1330
  status: body.status,
1316
1331
  lastSyncId: body.lastSyncId,
1317
- ...(body.notifications && body.notifications.length > 0
1318
- ? { notifications: body.notifications }
1319
- : {}),
1320
1332
  ...(body.missingIds && body.missingIds.length > 0 ? { missingIds: body.missingIds } : {}),
1321
1333
  ...(body.operationResults && body.operationResults.length > 0
1322
1334
  ? { operationResults: body.operationResults }
@@ -1430,7 +1442,7 @@ export function createHttpTransport(options: HttpTransportOptions): HttpTranspor
1430
1442
  };
1431
1443
  }
1432
1444
 
1433
- async function retrieveModel<T>(
1445
+ async function readModel<T>(
1434
1446
  modelName: string,
1435
1447
  params: ModelReadOptions & { readonly id: string }
1436
1448
  ): Promise<HttpTransportRead<T>> {
@@ -1443,7 +1455,7 @@ export function createHttpTransport(options: HttpTransportOptions): HttpTranspor
1443
1455
  );
1444
1456
 
1445
1457
  // A miss is `data: undefined`, not a thrown error. The WebSocket client's
1446
- // `retrieve` returns `T | undefined` for a missing row; throwing only here
1458
+ // `read` returns `T | undefined` for a missing row; throwing only here
1447
1459
  // made the obvious read ("does this row exist?") a hard edge that an agent
1448
1460
  // had to wrap in try/catch. Both transports agree: an absent row means absent
1449
1461
  // data. Callers branch on `.data` (the documented `.data?.x` usage).
@@ -1479,12 +1491,10 @@ export function createHttpTransport(options: HttpTransportOptions): HttpTranspor
1479
1491
  options && {
1480
1492
  idempotencyKey: options.idempotencyKey,
1481
1493
  readAt: options.readAt,
1482
- onStale: options.onStale,
1483
1494
  claim: options.claim,
1484
1495
  claimRef: options.claimRef,
1485
1496
  fenceToken: options.fenceToken,
1486
1497
  reads: options.reads,
1487
- track: options.track,
1488
1498
  },
1489
1499
  `${modelName} ${action}`
1490
1500
  );
@@ -1510,10 +1520,8 @@ export function createHttpTransport(options: HttpTransportOptions): HttpTranspor
1510
1520
  const readAt = options?.readAt ?? claimHandle?.readAt;
1511
1521
  const requestBody: Record<string, unknown> = {
1512
1522
  claim: normalizeClaimId(options?.claimRef) ?? claimHandle?.id,
1513
- onStale: options?.onStale ?? (claimHandle?.readAt !== undefined ? 'reject' : undefined),
1514
1523
  readAt,
1515
1524
  reads: options?.reads,
1516
- track: options?.track,
1517
1525
  // The claim's fencing token (Option B), so the per-model HTTP write door
1518
1526
  // fences the same as the WS proxy and `commits.create`.
1519
1527
  fenceToken: options?.fenceToken ?? claimHandle?.fenceToken,
@@ -1680,9 +1688,23 @@ export function createHttpTransport(options: HttpTransportOptions): HttpTranspor
1680
1688
  params: ClaimSkipParams<Fields>
1681
1689
  ): Promise<HeldClaim<T> | null>;
1682
1690
  function claimImpl(params: ClaimParams<Fields>): Promise<HeldClaim<T>>;
1691
+ function claimImpl(
1692
+ id: string,
1693
+ opts: ClaimSkipOptions<Fields>
1694
+ ): Promise<HeldLease | null>;
1695
+ function claimImpl(id: string, opts?: ClaimOptions<Fields>): Promise<HeldLease>;
1683
1696
  async function claimImpl(
1684
- params: ClaimParams<Fields>,
1685
- ): Promise<HeldClaim<T> | null> {
1697
+ idOrParams: string | ClaimParams<Fields>,
1698
+ opts?: ClaimOptions<Fields>,
1699
+ ): Promise<HeldClaim<T> | HeldLease | null> {
1700
+ // The row-free form names a key by id alone. Ablo has never held that
1701
+ // row, so there is no snapshot to take after the grant and no `data` on
1702
+ // the handle: the lease is the whole answer. The object form re-reads
1703
+ // the row under the lease and hands back a `HeldClaim`.
1704
+ const rowFree = typeof idOrParams === 'string';
1705
+ const params: ClaimParams<Fields> = rowFree
1706
+ ? { ...(opts ?? {}), id: idOrParams }
1707
+ : idOrParams;
1686
1708
  let acquired: { id: string; fenceToken?: number };
1687
1709
  try {
1688
1710
  acquired = await acquireClaim(params);
@@ -1709,16 +1731,6 @@ export function createHttpTransport(options: HttpTransportOptions): HttpTranspor
1709
1731
  id: params.id,
1710
1732
  description: claimDescription(params),
1711
1733
  });
1712
- const { data, stamp } = await retrieveModel<T>(name, { id: params.id });
1713
- // A held claim hands back a snapshot; the typed `HeldClaim.data` is `T`.
1714
- // `retrieve` now reports a miss as `undefined` rather than throwing, but a
1715
- // claim on a row that doesn't exist has nothing to hold — surface it.
1716
- if (data === undefined) {
1717
- throw new AbloNotFoundError(
1718
- `Cannot claim ${name}/${params.id}: it does not exist (or is outside this credential's scope).`,
1719
- [params.id]
1720
- );
1721
- }
1722
1734
  // One reading of the heartbeat options — cadence and callbacks from
1723
1735
  // whichever spelling the caller used (plan object, shorthand, or the
1724
1736
  // deprecated flat callbacks).
@@ -1758,10 +1770,9 @@ export function createHttpTransport(options: HttpTransportOptions): HttpTranspor
1758
1770
  // way. `subTarget` is wire-shaped by contract, including here, where the
1759
1771
  // value happens to have started out declared.
1760
1772
  const { meta, ...narrowed } = subTarget(params, name);
1761
- return {
1773
+ const lease: HeldLease = {
1762
1774
  object: 'claim',
1763
1775
  id: claimId,
1764
- readAt: stamp,
1765
1776
  ...(fenceToken !== undefined ? { fenceToken } : {}),
1766
1777
  target: {
1767
1778
  ...streamTarget({ model: name, id: params.id }),
@@ -1769,7 +1780,6 @@ export function createHttpTransport(options: HttpTransportOptions): HttpTranspor
1769
1780
  ...(meta !== undefined ? { meta: declaredMeta(meta) } : {}),
1770
1781
  },
1771
1782
  description: claimDescription(params),
1772
- data,
1773
1783
  release,
1774
1784
  revoke: () => {
1775
1785
  void release().catch(() => {});
@@ -1777,6 +1787,24 @@ export function createHttpTransport(options: HttpTransportOptions): HttpTranspor
1777
1787
  heartbeat,
1778
1788
  [Symbol.asyncDispose]: release,
1779
1789
  };
1790
+ if (rowFree) return lease;
1791
+
1792
+ const { data, stamp } = await readModel<T>(name, { id: params.id });
1793
+ // A held claim hands back a snapshot; the typed `HeldClaim.data` is `T`.
1794
+ // `retrieve` reports a miss as `undefined`, and a claim on a row that does
1795
+ // not exist has nothing to hold. The grant came BEFORE this read, so the
1796
+ // miss must give the lease back first: otherwise the key stays held under
1797
+ // this credential until the TTL lapses, behind no handle anyone can
1798
+ // release, and every other participant is refused for the duration.
1799
+ if (data === undefined) {
1800
+ await release().catch(() => undefined);
1801
+ throw new AbloNotFoundError(
1802
+ `Cannot claim ${name}/${params.id}: it does not exist (or is outside this credential's scope). ` +
1803
+ `To hold a key before its row exists, claim it by id alone: claim('${params.id}') returns a lease without a snapshot.`,
1804
+ [params.id]
1805
+ );
1806
+ }
1807
+ return { ...lease, readAt: stamp, data };
1780
1808
  }
1781
1809
  const claimsForEntity = (
1782
1810
  params: ClaimLookupParams<T>
@@ -1788,7 +1816,7 @@ export function createHttpTransport(options: HttpTransportOptions): HttpTranspor
1788
1816
  { method: 'GET' },
1789
1817
  claimListResponseSchema
1790
1818
  );
1791
- const claim = Object.assign(claimImpl, {
1819
+ const claim: HttpClaimApi<T, Fields> = Object.assign(claimImpl, {
1792
1820
  release: releaseClaim,
1793
1821
  state: async (params: ClaimLookupParams<T>): Promise<Claim | null> => {
1794
1822
  const res = await claimsForEntity(params);
@@ -1796,6 +1824,19 @@ export function createHttpTransport(options: HttpTransportOptions): HttpTranspor
1796
1824
  const first = res.data.find((row) => row.status !== 'queued');
1797
1825
  return first ? claimFromModelClaim(first) : null;
1798
1826
  },
1827
+ // Every holder, from the same one read `state` takes its first entry
1828
+ // from: the server lists holders before waiters, and the caller's own
1829
+ // lease before its peers'. (This member was missing for as long as the
1830
+ // namespace was cast to its type instead of typed as it.)
1831
+ list: async (params: ClaimLookupParams<T>) => {
1832
+ const res = await claimsForEntity(params);
1833
+ return {
1834
+ object: 'list' as const,
1835
+ data: res.data
1836
+ .filter((row) => row.status !== 'queued')
1837
+ .map(claimFromModelClaim),
1838
+ };
1839
+ },
1799
1840
  queue: async (
1800
1841
  params: ClaimLookupParams<T>
1801
1842
  ): Promise<ClaimQueueView> => {
@@ -1816,7 +1857,7 @@ export function createHttpTransport(options: HttpTransportOptions): HttpTranspor
1816
1857
  }),
1817
1858
  });
1818
1859
  },
1819
- }) as HttpClaimApi<T, Fields>;
1860
+ });
1820
1861
 
1821
1862
  const withMutationClaim = async <R>(
1822
1863
  id: string,
@@ -1834,7 +1875,7 @@ export function createHttpTransport(options: HttpTransportOptions): HttpTranspor
1834
1875
  // handle. The result was mutual exclusion without lost-update
1835
1876
  // detection, on the transport agents run, under code that reads as
1836
1877
  // though it had both. The reactive client binds the same three values
1837
- // from the claim it holds; a caller's own `readAt`/`onStale` win.
1878
+ // from the claim it holds; a caller's own `readAt` wins.
1838
1879
  return run({
1839
1880
  ...input,
1840
1881
  claimRef: { id: claimInput.id },
@@ -1844,9 +1885,6 @@ export function createHttpTransport(options: HttpTransportOptions): HttpTranspor
1844
1885
  ...(input?.readAt === undefined && claimInput.readAt !== undefined
1845
1886
  ? { readAt: claimInput.readAt }
1846
1887
  : {}),
1847
- ...(input?.onStale === undefined && claimInput.readAt !== undefined
1848
- ? { onStale: 'reject' as const }
1849
- : {}),
1850
1888
  claim: undefined,
1851
1889
  });
1852
1890
  }
@@ -1892,7 +1930,7 @@ export function createHttpTransport(options: HttpTransportOptions): HttpTranspor
1892
1930
  ): Promise<CommitReceipt | undefined> {
1893
1931
  // Functional form: update(id, current => next). The SDK owns the
1894
1932
  // read-fresh → compute → compare-and-swap → reconcile loop; correctness
1895
- // rides on the row's watermark (readAt + onStale:'reject'), so no claim
1933
+ // rides on the row's watermark (`readAt`), so no claim
1896
1934
  // or per-participant identity is needed and contention never clobbers.
1897
1935
  if (typeof arg === 'string') {
1898
1936
  const id = arg;
@@ -1907,13 +1945,12 @@ export function createHttpTransport(options: HttpTransportOptions): HttpTranspor
1907
1945
  model: name,
1908
1946
  id,
1909
1947
  readFresh: async () => {
1910
- const read = await retrieveModel<T>(name, { id });
1948
+ const read = await readModel<T>(name, { id });
1911
1949
  return { data: read.data, stamp: read.stamp };
1912
1950
  },
1913
1951
  writeNext: (patch, readAt) =>
1914
1952
  mutateModel('update', name, id, patch, {
1915
1953
  readAt,
1916
- onStale: 'reject',
1917
1954
  }),
1918
1955
  });
1919
1956
  }
@@ -1926,11 +1963,8 @@ export function createHttpTransport(options: HttpTransportOptions): HttpTranspor
1926
1963
 
1927
1964
  return {
1928
1965
  claim,
1929
- get(params: ModelReadOptions & { readonly id: string }): Promise<HttpTransportRead<T>> {
1930
- return retrieveModel<T>(name, params);
1931
- },
1932
- retrieve(params: ModelReadOptions & { readonly id: string }): Promise<HttpTransportRead<T>> {
1933
- return retrieveModel<T>(name, params);
1966
+ read(params: ModelReadOptions & { readonly id: string }): Promise<HttpTransportRead<T>> {
1967
+ return readModel<T>(name, params);
1934
1968
  },
1935
1969
  list(options?: ServerReadOptions<T>): ReturnType<typeof listModel<T>> {
1936
1970
  return listModel<T>(name, options);
@@ -1957,7 +1991,7 @@ export function createHttpTransport(options: HttpTransportOptions): HttpTranspor
1957
1991
  params.data,
1958
1992
  options,
1959
1993
  async () => {
1960
- const read = await retrieveModel<T>(name, { id });
1994
+ const read = await readModel<T>(name, { id });
1961
1995
  if (read.data === undefined) {
1962
1996
  throw new AbloNotFoundError(
1963
1997
  `create ${name}/${id} did not yield a readable row (the write did not confirm).`,
@@ -2024,7 +2058,7 @@ export function createHttpTransport(options: HttpTransportOptions): HttpTranspor
2024
2058
  ids,
2025
2059
  operationResults: receipt.operationResults,
2026
2060
  readRow: async (id) => {
2027
- const read = await retrieveModel<T>(name, { id });
2061
+ const read = await readModel<T>(name, { id });
2028
2062
  return read.data;
2029
2063
  },
2030
2064
  });
@@ -2036,29 +2070,6 @@ export function createHttpTransport(options: HttpTransportOptions): HttpTranspor
2036
2070
  return mutateModel('delete', name, params.id, undefined, options);
2037
2071
  });
2038
2072
  },
2039
- async track(params: ModelTrackParams): Promise<ModelTrackResult> {
2040
- const dependency: TrackDependency = {
2041
- model: name.toLowerCase(),
2042
- id: params.id,
2043
- ...(params.readAt !== undefined ? { readAt: params.readAt } : {}),
2044
- };
2045
- // A track carries no write, so it rides the commit lane as a
2046
- // zero-operation body — the shape `/v1/commits` accepts for registering
2047
- // a premise without one. Going through the same durable lane as every
2048
- // other commit means a disconnect replays the registration rather than
2049
- // dropping it, and a notification that had already fired is not lost to
2050
- // a retry.
2051
- const body = await dispatchHttpCommit({
2052
- path: '/v1/commits',
2053
- method: 'POST',
2054
- idempotencyKey: createClientTxId(),
2055
- body: { track: [dependency] },
2056
- wait: 'confirmed',
2057
- });
2058
- return body.notifications && body.notifications.length > 0
2059
- ? { notifications: body.notifications }
2060
- : {};
2061
- },
2062
2073
  };
2063
2074
  }
2064
2075
 
@@ -2073,6 +2084,8 @@ export function createHttpTransport(options: HttpTransportOptions): HttpTranspor
2073
2084
  }),
2074
2085
  dispose() {
2075
2086
  if (!disposePromise) {
2087
+ for (const controller of readChangeControllers) controller.abort();
2088
+ readChangeControllers.clear();
2076
2089
  const scheduledCommits = httpCommitLane;
2077
2090
  disposePromise = (async () => {
2078
2091
  await scheduledCommits;
@@ -2082,6 +2095,7 @@ export function createHttpTransport(options: HttpTransportOptions): HttpTranspor
2082
2095
  return disposePromise;
2083
2096
  },
2084
2097
  async purge() {},
2098
+ onChange,
2085
2099
  commits,
2086
2100
  claims,
2087
2101
  logs,
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Transport mechanisms. Business meaning belongs to commit, claims, and
3
+ * observation; this boundary owns only HTTP, WebSocket, and connection runtime.
4
+ */
5
+ export * from './http/index.js';
6
+ export * from './websocket/index.js';
7
+ export * from './connection/index.js';