@abloatai/ablo 0.36.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 (597) hide show
  1. package/AGENTS.md +2 -2
  2. package/CHANGELOG.md +71 -2013
  3. package/NOTICE +2 -2
  4. package/README.md +25 -71
  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 -114
  19. package/dist/index.d.ts.map +1 -0
  20. package/dist/index.js +3 -163
  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 +1 -1
  59. package/docs/api-keys.md +7 -6
  60. package/docs/api.md +10 -10
  61. package/docs/client-behavior.md +5 -5
  62. package/docs/coordination.md +52 -62
  63. package/docs/data-sources.md +1 -1
  64. package/docs/examples/agent-human.md +4 -4
  65. package/docs/examples/ai-sdk-tool.md +1 -1
  66. package/docs/examples/existing-python-backend.md +15 -4
  67. package/docs/examples/nextjs.md +27 -6
  68. package/docs/examples/server-agent.md +2 -2
  69. package/docs/how-it-works.md +4 -4
  70. package/docs/identity.md +2 -1
  71. package/docs/integration-guide.md +24 -13
  72. package/docs/internal/README.md +18 -0
  73. package/docs/internal/agent-fleet-coordination-design.md +171 -0
  74. package/docs/internal/agent-orchestration.md +58 -0
  75. package/docs/internal/commit-identifiers.md +91 -0
  76. package/docs/internal/concurrency-open-decisions.md +37 -0
  77. package/docs/internal/data-source-reverse-channel.md +150 -0
  78. package/docs/internal/per-field-conflict-detection.md +165 -0
  79. package/docs/internal/postgres-replication.md +64 -0
  80. package/docs/internal/serializable-schema.md +119 -0
  81. package/docs/internal/structure.md +32 -0
  82. package/docs/mcp.md +2 -2
  83. package/docs/migration.md +3 -3
  84. package/docs/quickstart.md +2 -2
  85. package/docs/react.md +5 -5
  86. package/docs/schema-contract.md +3 -3
  87. package/docs/sessions.md +91 -37
  88. package/examples/README.md +2 -2
  89. package/examples/data-source/README.md +1 -1
  90. package/examples/data-source/ablo-driver.ts +1 -1
  91. package/examples/data-source/customer-server.ts +1 -1
  92. package/examples/data-source/run.ts +1 -1
  93. package/examples/data-source/schema.ts +1 -1
  94. package/examples/quickstart.ts +2 -2
  95. package/llms.txt +8 -8
  96. package/package.json +63 -166
  97. package/bin/ablo.cjs +0 -39
  98. package/dist/BaseSyncedStore.d.ts +0 -843
  99. package/dist/BaseSyncedStore.js +0 -1971
  100. package/dist/Database.d.ts +0 -323
  101. package/dist/Database.js +0 -1502
  102. package/dist/InstanceCache.d.ts +0 -237
  103. package/dist/InstanceCache.js +0 -1166
  104. package/dist/LazyReferenceCollection.d.ts +0 -177
  105. package/dist/LazyReferenceCollection.js +0 -461
  106. package/dist/Model.d.ts +0 -454
  107. package/dist/Model.js +0 -919
  108. package/dist/ModelRegistry.d.ts +0 -225
  109. package/dist/ModelRegistry.js +0 -539
  110. package/dist/NetworkMonitor.d.ts +0 -28
  111. package/dist/NetworkMonitor.js +0 -79
  112. package/dist/RuntimeContext.d.ts +0 -52
  113. package/dist/RuntimeContext.js +0 -80
  114. package/dist/SyncClient.d.ts +0 -541
  115. package/dist/SyncClient.js +0 -2202
  116. package/dist/adapters/alwaysOnline.d.ts +0 -14
  117. package/dist/adapters/alwaysOnline.js +0 -17
  118. package/dist/adapters/inMemoryStorage.d.ts +0 -31
  119. package/dist/adapters/inMemoryStorage.js +0 -110
  120. package/dist/ai-sdk/coordinatedTool.d.ts +0 -120
  121. package/dist/ai-sdk/coordinatedTool.js +0 -134
  122. package/dist/ai-sdk/coordinationContext.d.ts +0 -46
  123. package/dist/ai-sdk/coordinationContext.js +0 -106
  124. package/dist/ai-sdk/index.d.ts +0 -121
  125. package/dist/ai-sdk/index.js +0 -121
  126. package/dist/ai-sdk/wrap.d.ts +0 -65
  127. package/dist/ai-sdk/wrap.js +0 -39
  128. package/dist/auth/index.d.ts +0 -1
  129. package/dist/auth/index.js +0 -8
  130. package/dist/batching/index.d.ts +0 -55
  131. package/dist/batching/index.js +0 -147
  132. package/dist/client/Ablo.d.ts +0 -231
  133. package/dist/client/Ablo.js +0 -160
  134. package/dist/client/abloClient.d.ts +0 -309
  135. package/dist/client/abloClient.js +0 -13
  136. package/dist/client/clientPrelude.d.ts +0 -52
  137. package/dist/client/clientPrelude.js +0 -60
  138. package/dist/client/consoleLogger.d.ts +0 -35
  139. package/dist/client/consoleLogger.js +0 -44
  140. package/dist/client/coreClient.d.ts +0 -60
  141. package/dist/client/coreClient.js +0 -118
  142. package/dist/client/createInternalComponents.d.ts +0 -50
  143. package/dist/client/createInternalComponents.js +0 -98
  144. package/dist/client/createModelProxy.d.ts +0 -248
  145. package/dist/client/createModelProxy.js +0 -884
  146. package/dist/client/humans.d.ts +0 -69
  147. package/dist/client/humans.js +0 -78
  148. package/dist/client/modelRegistration.d.ts +0 -10
  149. package/dist/client/modelRegistration.js +0 -312
  150. package/dist/client/options.d.ts +0 -461
  151. package/dist/client/options.js +0 -7
  152. package/dist/client/reactiveEngine.d.ts +0 -53
  153. package/dist/client/reactiveEngine.js +0 -688
  154. package/dist/client/resourceTypes.d.ts +0 -12
  155. package/dist/client/resourceTypes.js +0 -10
  156. package/dist/client/schemaConfig.d.ts +0 -44
  157. package/dist/client/schemaConfig.js +0 -185
  158. package/dist/client/storeCluster.d.ts +0 -47
  159. package/dist/client/storeCluster.js +0 -118
  160. package/dist/client/storeLifecycle.d.ts +0 -61
  161. package/dist/client/storeLifecycle.js +0 -231
  162. package/dist/client/validateAbloOptions.d.ts +0 -42
  163. package/dist/client/validateAbloOptions.js +0 -43
  164. package/dist/client/wsMutationExecutor.d.ts +0 -27
  165. package/dist/client/wsMutationExecutor.js +0 -72
  166. package/dist/context.d.ts +0 -42
  167. package/dist/context.js +0 -81
  168. package/dist/coordination/ClaimLog.d.ts +0 -26
  169. package/dist/coordination/ClaimLog.js +0 -32
  170. package/dist/coordination/index.d.ts +0 -1
  171. package/dist/coordination/index.js +0 -8
  172. package/dist/core/index.d.ts +0 -33
  173. package/dist/core/index.js +0 -48
  174. package/dist/docs/catalog.d.ts +0 -72
  175. package/dist/docs/catalog.js +0 -230
  176. package/dist/docs/index.d.ts +0 -10
  177. package/dist/docs/index.js +0 -10
  178. package/dist/environment.d.ts +0 -1
  179. package/dist/environment.js +0 -8
  180. package/dist/interfaces/index.d.ts +0 -311
  181. package/dist/interfaces/index.js +0 -9
  182. package/dist/keys/index.d.ts +0 -1
  183. package/dist/keys/index.js +0 -8
  184. package/dist/mutators/RecordingMutation.d.ts +0 -36
  185. package/dist/mutators/RecordingMutation.js +0 -182
  186. package/dist/mutators/Transaction.d.ts +0 -40
  187. package/dist/mutators/Transaction.js +0 -58
  188. package/dist/mutators/UndoManager.d.ts +0 -258
  189. package/dist/mutators/UndoManager.js +0 -658
  190. package/dist/mutators/defineMutators.d.ts +0 -60
  191. package/dist/mutators/defineMutators.js +0 -18
  192. package/dist/mutators/inverseOp.d.ts +0 -126
  193. package/dist/mutators/inverseOp.js +0 -71
  194. package/dist/mutators/mutateActions.d.ts +0 -45
  195. package/dist/mutators/mutateActions.js +0 -105
  196. package/dist/mutators/readerActions.d.ts +0 -33
  197. package/dist/mutators/readerActions.js +0 -57
  198. package/dist/mutators/undoApply.d.ts +0 -51
  199. package/dist/mutators/undoApply.js +0 -117
  200. package/dist/policy/index.d.ts +0 -21
  201. package/dist/policy/index.js +0 -20
  202. package/dist/query/QueryProcessor.d.ts +0 -75
  203. package/dist/query/QueryProcessor.js +0 -255
  204. package/dist/query/client.d.ts +0 -64
  205. package/dist/query/client.js +0 -138
  206. package/dist/query/types.d.ts +0 -85
  207. package/dist/query/types.js +0 -16
  208. package/dist/react/AbloProvider.d.ts +0 -242
  209. package/dist/react/AbloProvider.js +0 -458
  210. package/dist/react/ClientSideSuspense.d.ts +0 -36
  211. package/dist/react/ClientSideSuspense.js +0 -17
  212. package/dist/react/DefaultFallback.d.ts +0 -24
  213. package/dist/react/DefaultFallback.js +0 -43
  214. package/dist/react/context.d.ts +0 -55
  215. package/dist/react/context.js +0 -29
  216. package/dist/react/createAbloReact.d.ts +0 -56
  217. package/dist/react/createAbloReact.js +0 -51
  218. package/dist/react/index.d.ts +0 -62
  219. package/dist/react/index.js +0 -69
  220. package/dist/react/internalContext.d.ts +0 -33
  221. package/dist/react/internalContext.js +0 -3
  222. package/dist/react/useAblo.d.ts +0 -82
  223. package/dist/react/useAblo.js +0 -120
  224. package/dist/react/useCurrentUserId.d.ts +0 -22
  225. package/dist/react/useCurrentUserId.js +0 -34
  226. package/dist/react/useErrorListener.d.ts +0 -20
  227. package/dist/react/useErrorListener.js +0 -38
  228. package/dist/react/useMutationFailureListener.d.ts +0 -26
  229. package/dist/react/useMutationFailureListener.js +0 -38
  230. package/dist/react/useMutators.d.ts +0 -56
  231. package/dist/react/useMutators.js +0 -84
  232. package/dist/react/useReactive.d.ts +0 -35
  233. package/dist/react/useReactive.js +0 -123
  234. package/dist/react/useSyncStatus.d.ts +0 -59
  235. package/dist/react/useSyncStatus.js +0 -76
  236. package/dist/react/useUndoScope.d.ts +0 -34
  237. package/dist/react/useUndoScope.js +0 -81
  238. package/dist/schema/coordination.d.ts +0 -112
  239. package/dist/schema/coordination.js +0 -133
  240. package/dist/schema/ddl.d.ts +0 -97
  241. package/dist/schema/ddl.js +0 -491
  242. package/dist/schema/ddlLock.d.ts +0 -35
  243. package/dist/schema/ddlLock.js +0 -46
  244. package/dist/schema/diff.d.ts +0 -225
  245. package/dist/schema/diff.js +0 -289
  246. package/dist/schema/generate.d.ts +0 -19
  247. package/dist/schema/generate.js +0 -86
  248. package/dist/schema/index.d.ts +0 -42
  249. package/dist/schema/index.js +0 -80
  250. package/dist/schema/queries.d.ts +0 -201
  251. package/dist/schema/queries.js +0 -144
  252. package/dist/schema/select.d.ts +0 -40
  253. package/dist/schema/select.js +0 -90
  254. package/dist/schema/serialize.d.ts +0 -115
  255. package/dist/schema/serialize.js +0 -265
  256. package/dist/schema/sugar.d.ts +0 -109
  257. package/dist/schema/sugar.js +0 -83
  258. package/dist/schema/syncDeltaRow.d.ts +0 -6
  259. package/dist/schema/syncDeltaRow.js +0 -6
  260. package/dist/server/adapter.d.ts +0 -173
  261. package/dist/server/adapter.js +0 -18
  262. package/dist/server/commit.d.ts +0 -107
  263. package/dist/server/commit.js +0 -1
  264. package/dist/server/index.d.ts +0 -14
  265. package/dist/server/index.js +0 -2
  266. package/dist/server/readConfig.d.ts +0 -80
  267. package/dist/server/readConfig.js +0 -8
  268. package/dist/server/storageMode.d.ts +0 -23
  269. package/dist/server/storageMode.js +0 -17
  270. package/dist/source/adapter.d.ts +0 -83
  271. package/dist/source/adapter.js +0 -24
  272. package/dist/source/adapters/drizzle.d.ts +0 -48
  273. package/dist/source/adapters/drizzle.js +0 -219
  274. package/dist/source/adapters/kysely.d.ts +0 -42
  275. package/dist/source/adapters/kysely.js +0 -205
  276. package/dist/source/adapters/kyselyMutationCore.d.ts +0 -76
  277. package/dist/source/adapters/kyselyMutationCore.js +0 -125
  278. package/dist/source/adapters/memory.d.ts +0 -13
  279. package/dist/source/adapters/memory.js +0 -130
  280. package/dist/source/adapters/prisma.d.ts +0 -63
  281. package/dist/source/adapters/prisma.js +0 -202
  282. package/dist/source/conformance.d.ts +0 -37
  283. package/dist/source/conformance.js +0 -215
  284. package/dist/source/connector.d.ts +0 -95
  285. package/dist/source/connector.js +0 -266
  286. package/dist/source/connectorProtocol.d.ts +0 -154
  287. package/dist/source/connectorProtocol.js +0 -163
  288. package/dist/source/contract.d.ts +0 -195
  289. package/dist/source/contract.js +0 -164
  290. package/dist/source/factory.d.ts +0 -92
  291. package/dist/source/factory.js +0 -286
  292. package/dist/source/idempotency.d.ts +0 -61
  293. package/dist/source/idempotency.js +0 -144
  294. package/dist/source/index.d.ts +0 -23
  295. package/dist/source/index.js +0 -30
  296. package/dist/source/migrations.d.ts +0 -21
  297. package/dist/source/migrations.js +0 -103
  298. package/dist/source/next.d.ts +0 -32
  299. package/dist/source/next.js +0 -25
  300. package/dist/source/pushQueue.d.ts +0 -134
  301. package/dist/source/pushQueue.js +0 -256
  302. package/dist/source/signing.d.ts +0 -92
  303. package/dist/source/signing.js +0 -162
  304. package/dist/source/types.d.ts +0 -401
  305. package/dist/source/types.js +0 -59
  306. package/dist/storeContract.d.ts +0 -145
  307. package/dist/storeContract.js +0 -12
  308. package/dist/stores/DatabaseManager.d.ts +0 -107
  309. package/dist/stores/DatabaseManager.js +0 -388
  310. package/dist/stores/ObjectStore.d.ts +0 -115
  311. package/dist/stores/ObjectStore.js +0 -393
  312. package/dist/stores/ObjectStoreContract.d.ts +0 -38
  313. package/dist/stores/ObjectStoreContract.js +0 -1
  314. package/dist/stores/StoreManager.d.ts +0 -114
  315. package/dist/stores/StoreManager.js +0 -304
  316. package/dist/stores/SyncActionStore.d.ts +0 -99
  317. package/dist/stores/SyncActionStore.js +0 -506
  318. package/dist/stores/openIDBWithTimeout.d.ts +0 -65
  319. package/dist/stores/openIDBWithTimeout.js +0 -153
  320. package/dist/stores/syncAction.d.ts +0 -26
  321. package/dist/stores/syncAction.js +0 -16
  322. package/dist/surface.d.ts +0 -36
  323. package/dist/surface.js +0 -75
  324. package/dist/sync/BootstrapFetcher.d.ts +0 -284
  325. package/dist/sync/BootstrapFetcher.js +0 -964
  326. package/dist/sync/ConnectionManager.d.ts +0 -8
  327. package/dist/sync/ConnectionManager.js +0 -8
  328. package/dist/sync/OnDemandLoader.d.ts +0 -231
  329. package/dist/sync/OnDemandLoader.js +0 -743
  330. package/dist/sync/SubscriptionManager.d.ts +0 -159
  331. package/dist/sync/SubscriptionManager.js +0 -243
  332. package/dist/sync/SyncWebSocket.d.ts +0 -173
  333. package/dist/sync/SyncWebSocket.js +0 -438
  334. package/dist/sync/awaitClaimGrant.d.ts +0 -6
  335. package/dist/sync/awaitClaimGrant.js +0 -6
  336. package/dist/sync/bootstrapApply.d.ts +0 -73
  337. package/dist/sync/bootstrapApply.js +0 -73
  338. package/dist/sync/commitFrames.d.ts +0 -8
  339. package/dist/sync/commitFrames.js +0 -8
  340. package/dist/sync/contextPorts.d.ts +0 -18
  341. package/dist/sync/contextPorts.js +0 -31
  342. package/dist/sync/createClaimStream.d.ts +0 -7
  343. package/dist/sync/createClaimStream.js +0 -7
  344. package/dist/sync/createPresenceStream.d.ts +0 -69
  345. package/dist/sync/createPresenceStream.js +0 -200
  346. package/dist/sync/createSnapshot.d.ts +0 -29
  347. package/dist/sync/createSnapshot.js +0 -118
  348. package/dist/sync/credentialLifecycle.d.ts +0 -7
  349. package/dist/sync/credentialLifecycle.js +0 -7
  350. package/dist/sync/deltaPipeline.d.ts +0 -114
  351. package/dist/sync/deltaPipeline.js +0 -278
  352. package/dist/sync/groupChange.d.ts +0 -116
  353. package/dist/sync/groupChange.js +0 -244
  354. package/dist/sync/participants.d.ts +0 -132
  355. package/dist/sync/participants.js +0 -346
  356. package/dist/sync/persistedPrefix.d.ts +0 -12
  357. package/dist/sync/persistedPrefix.js +0 -22
  358. package/dist/sync/schemaDrift.d.ts +0 -55
  359. package/dist/sync/schemaDrift.js +0 -53
  360. package/dist/sync/schemas.d.ts +0 -71
  361. package/dist/sync/schemas.js +0 -94
  362. package/dist/sync/syncCursor.d.ts +0 -40
  363. package/dist/sync/syncCursor.js +0 -55
  364. package/dist/sync/syncPlan.d.ts +0 -54
  365. package/dist/sync/syncPlan.js +0 -50
  366. package/dist/sync/wsFrameHandlers.d.ts +0 -8
  367. package/dist/sync/wsFrameHandlers.js +0 -8
  368. package/dist/syncLog/contract.d.ts +0 -20
  369. package/dist/syncLog/contract.js +0 -19
  370. package/dist/syncLog/index.d.ts +0 -1
  371. package/dist/syncLog/index.js +0 -1
  372. package/dist/transaction/ablo.d.ts +0 -88
  373. package/dist/transaction/ablo.js +0 -33
  374. package/dist/transaction/auth/apiKey.d.ts +0 -152
  375. package/dist/transaction/auth/apiKey.js +0 -419
  376. package/dist/transaction/auth/bootstrapScope.d.ts +0 -15
  377. package/dist/transaction/auth/bootstrapScope.js +0 -1
  378. package/dist/transaction/auth/capability.d.ts +0 -212
  379. package/dist/transaction/auth/capability.js +0 -224
  380. package/dist/transaction/auth/credentialEndpoint.d.ts +0 -61
  381. package/dist/transaction/auth/credentialEndpoint.js +0 -86
  382. package/dist/transaction/auth/credentialPolicy.d.ts +0 -148
  383. package/dist/transaction/auth/credentialPolicy.js +0 -125
  384. package/dist/transaction/auth/credentialSource.d.ts +0 -30
  385. package/dist/transaction/auth/credentialSource.js +0 -55
  386. package/dist/transaction/auth/hostedEndpoints.d.ts +0 -21
  387. package/dist/transaction/auth/hostedEndpoints.js +0 -21
  388. package/dist/transaction/auth/identity.d.ts +0 -55
  389. package/dist/transaction/auth/identity.js +0 -210
  390. package/dist/transaction/auth/index.d.ts +0 -162
  391. package/dist/transaction/auth/index.js +0 -304
  392. package/dist/transaction/auth/schemas.d.ts +0 -59
  393. package/dist/transaction/auth/schemas.js +0 -85
  394. package/dist/transaction/auth/sessionMint.d.ts +0 -28
  395. package/dist/transaction/auth/sessionMint.js +0 -85
  396. package/dist/transaction/coordination/awaitClaimGrant.d.ts +0 -56
  397. package/dist/transaction/coordination/awaitClaimGrant.js +0 -124
  398. package/dist/transaction/coordination/claimHeartbeatLoop.d.ts +0 -84
  399. package/dist/transaction/coordination/claimHeartbeatLoop.js +0 -108
  400. package/dist/transaction/coordination/claimMeta.d.ts +0 -49
  401. package/dist/transaction/coordination/claimMeta.js +0 -52
  402. package/dist/transaction/coordination/createClaimStream.d.ts +0 -64
  403. package/dist/transaction/coordination/createClaimStream.js +0 -475
  404. package/dist/transaction/coordination/events.d.ts +0 -74
  405. package/dist/transaction/coordination/events.js +0 -7
  406. package/dist/transaction/coordination/index.d.ts +0 -19
  407. package/dist/transaction/coordination/index.js +0 -45
  408. package/dist/transaction/coordination/locator.d.ts +0 -104
  409. package/dist/transaction/coordination/locator.js +0 -102
  410. package/dist/transaction/coordination/schema.d.ts +0 -1536
  411. package/dist/transaction/coordination/schema.js +0 -1177
  412. package/dist/transaction/coordination/targetConflict.d.ts +0 -2
  413. package/dist/transaction/coordination/targetConflict.js +0 -107
  414. package/dist/transaction/coordination/trace.d.ts +0 -78
  415. package/dist/transaction/coordination/trace.js +0 -138
  416. package/dist/transaction/durableWrites.d.ts +0 -62
  417. package/dist/transaction/durableWrites.js +0 -71
  418. package/dist/transaction/environment.d.ts +0 -105
  419. package/dist/transaction/environment.js +0 -108
  420. package/dist/transaction/errorCodes.d.ts +0 -403
  421. package/dist/transaction/errorCodes.js +0 -484
  422. package/dist/transaction/errors.d.ts +0 -428
  423. package/dist/transaction/errors.js +0 -686
  424. package/dist/transaction/footprint.d.ts +0 -111
  425. package/dist/transaction/footprint.js +0 -0
  426. package/dist/transaction/index.d.ts +0 -20
  427. package/dist/transaction/index.js +0 -20
  428. package/dist/transaction/keys/index.d.ts +0 -87
  429. package/dist/transaction/keys/index.js +0 -207
  430. package/dist/transaction/log/syncDeltaRow.d.ts +0 -158
  431. package/dist/transaction/log/syncDeltaRow.js +0 -95
  432. package/dist/transaction/logPosition.d.ts +0 -97
  433. package/dist/transaction/logPosition.js +0 -125
  434. package/dist/transaction/logger.d.ts +0 -16
  435. package/dist/transaction/logger.js +0 -7
  436. package/dist/transaction/observability.d.ts +0 -53
  437. package/dist/transaction/observability.js +0 -19
  438. package/dist/transaction/persistence.d.ts +0 -12
  439. package/dist/transaction/persistence.js +0 -11
  440. package/dist/transaction/plugin.d.ts +0 -285
  441. package/dist/transaction/plugin.js +0 -106
  442. package/dist/transaction/policy/types.d.ts +0 -217
  443. package/dist/transaction/policy/types.js +0 -126
  444. package/dist/transaction/resources/functionalUpdate.d.ts +0 -79
  445. package/dist/transaction/resources/functionalUpdate.js +0 -87
  446. package/dist/transaction/resources/httpResources.d.ts +0 -321
  447. package/dist/transaction/resources/httpResources.js +0 -7
  448. package/dist/transaction/resources/modelOperations.d.ts +0 -427
  449. package/dist/transaction/resources/modelOperations.js +0 -12
  450. package/dist/transaction/resources/mutationOptions.d.ts +0 -66
  451. package/dist/transaction/resources/mutationOptions.js +0 -9
  452. package/dist/transaction/resources/where.d.ts +0 -101
  453. package/dist/transaction/resources/where.js +0 -115
  454. package/dist/transaction/resources/writeOptionsSchema.d.ts +0 -47
  455. package/dist/transaction/resources/writeOptionsSchema.js +0 -73
  456. package/dist/transaction/schema/field.d.ts +0 -120
  457. package/dist/transaction/schema/field.js +0 -265
  458. package/dist/transaction/schema/fieldRef.d.ts +0 -38
  459. package/dist/transaction/schema/fieldRef.js +0 -11
  460. package/dist/transaction/schema/loadStrategy.d.ts +0 -45
  461. package/dist/transaction/schema/loadStrategy.js +0 -46
  462. package/dist/transaction/schema/model.d.ts +0 -379
  463. package/dist/transaction/schema/model.js +0 -123
  464. package/dist/transaction/schema/openapi.d.ts +0 -58
  465. package/dist/transaction/schema/openapi.js +0 -501
  466. package/dist/transaction/schema/relation.d.ts +0 -204
  467. package/dist/transaction/schema/relation.js +0 -104
  468. package/dist/transaction/schema/residency.d.ts +0 -29
  469. package/dist/transaction/schema/residency.js +0 -25
  470. package/dist/transaction/schema/roles.d.ts +0 -249
  471. package/dist/transaction/schema/roles.js +0 -230
  472. package/dist/transaction/schema/schema.d.ts +0 -351
  473. package/dist/transaction/schema/schema.js +0 -325
  474. package/dist/transaction/schema/tenancy.d.ts +0 -139
  475. package/dist/transaction/schema/tenancy.js +0 -190
  476. package/dist/transaction/transactionLayer.d.ts +0 -82
  477. package/dist/transaction/transactionLayer.js +0 -24
  478. package/dist/transaction/transactions/settlement/commitEnvelope.d.ts +0 -143
  479. package/dist/transaction/transactions/settlement/commitEnvelope.js +0 -161
  480. package/dist/transaction/transactions/settlement/httpCommitEnvelope.d.ts +0 -53
  481. package/dist/transaction/transactions/settlement/httpCommitEnvelope.js +0 -207
  482. package/dist/transaction/transactions/settlement/idempotencyKey.d.ts +0 -10
  483. package/dist/transaction/transactions/settlement/idempotencyKey.js +0 -9
  484. package/dist/transaction/transactions/settlement/pendingWrite.d.ts +0 -112
  485. package/dist/transaction/transactions/settlement/pendingWrite.js +0 -20
  486. package/dist/transaction/transport/commitFrames.d.ts +0 -90
  487. package/dist/transaction/transport/commitFrames.js +0 -134
  488. package/dist/transaction/transport/connectionManager.d.ts +0 -215
  489. package/dist/transaction/transport/connectionManager.js +0 -673
  490. package/dist/transaction/transport/credentialLifecycle.d.ts +0 -177
  491. package/dist/transaction/transport/credentialLifecycle.js +0 -324
  492. package/dist/transaction/transport/heartbeat.d.ts +0 -65
  493. package/dist/transaction/transport/heartbeat.js +0 -93
  494. package/dist/transaction/transport/httpClient.d.ts +0 -131
  495. package/dist/transaction/transport/httpClient.js +0 -146
  496. package/dist/transaction/transport/httpOptions.d.ts +0 -33
  497. package/dist/transaction/transport/httpOptions.js +0 -12
  498. package/dist/transaction/transport/httpTransport.d.ts +0 -8
  499. package/dist/transaction/transport/httpTransport.js +0 -1388
  500. package/dist/transaction/transport/networkProbe.d.ts +0 -84
  501. package/dist/transaction/transport/networkProbe.js +0 -207
  502. package/dist/transaction/transport/wsFrameHandlers.d.ts +0 -128
  503. package/dist/transaction/transport/wsFrameHandlers.js +0 -429
  504. package/dist/transaction/transport/wsTransport.d.ts +0 -574
  505. package/dist/transaction/transport/wsTransport.js +0 -1023
  506. package/dist/transaction/types/assertExact.d.ts +0 -17
  507. package/dist/transaction/types/assertExact.js +0 -1
  508. package/dist/transaction/types/global.d.ts +0 -107
  509. package/dist/transaction/types/global.js +0 -40
  510. package/dist/transaction/types/index.d.ts +0 -205
  511. package/dist/transaction/types/index.js +0 -56
  512. package/dist/transaction/types/modelData.d.ts +0 -10
  513. package/dist/transaction/types/modelData.js +0 -9
  514. package/dist/transaction/types/participant.d.ts +0 -20
  515. package/dist/transaction/types/participant.js +0 -10
  516. package/dist/transaction/types/streams.d.ts +0 -550
  517. package/dist/transaction/types/streams.js +0 -11
  518. package/dist/transaction/utils/asyncIterator.d.ts +0 -34
  519. package/dist/transaction/utils/asyncIterator.js +0 -135
  520. package/dist/transaction/utils/duration.d.ts +0 -50
  521. package/dist/transaction/utils/duration.js +0 -77
  522. package/dist/transaction/utils/json.d.ts +0 -57
  523. package/dist/transaction/utils/json.js +0 -276
  524. package/dist/transaction/wire/accountResponses.d.ts +0 -420
  525. package/dist/transaction/wire/accountResponses.js +0 -290
  526. package/dist/transaction/wire/auth.d.ts +0 -56
  527. package/dist/transaction/wire/auth.js +0 -63
  528. package/dist/transaction/wire/bootstrapReason.d.ts +0 -9
  529. package/dist/transaction/wire/bootstrapReason.js +0 -8
  530. package/dist/transaction/wire/claimEvent.d.ts +0 -76
  531. package/dist/transaction/wire/claimEvent.js +0 -73
  532. package/dist/transaction/wire/claims.d.ts +0 -530
  533. package/dist/transaction/wire/claims.js +0 -327
  534. package/dist/transaction/wire/commit.d.ts +0 -603
  535. package/dist/transaction/wire/commit.js +0 -321
  536. package/dist/transaction/wire/delta.d.ts +0 -250
  537. package/dist/transaction/wire/delta.js +0 -147
  538. package/dist/transaction/wire/errorEnvelope.d.ts +0 -72
  539. package/dist/transaction/wire/errorEnvelope.js +0 -123
  540. package/dist/transaction/wire/feedCursor.d.ts +0 -60
  541. package/dist/transaction/wire/feedCursor.js +0 -82
  542. package/dist/transaction/wire/feedEvent.d.ts +0 -204
  543. package/dist/transaction/wire/feedEvent.js +0 -65
  544. package/dist/transaction/wire/frames.d.ts +0 -194
  545. package/dist/transaction/wire/frames.js +0 -50
  546. package/dist/transaction/wire/inboundFrames.d.ts +0 -562
  547. package/dist/transaction/wire/inboundFrames.js +0 -116
  548. package/dist/transaction/wire/index.d.ts +0 -54
  549. package/dist/transaction/wire/index.js +0 -83
  550. package/dist/transaction/wire/listEnvelope.d.ts +0 -37
  551. package/dist/transaction/wire/listEnvelope.js +0 -42
  552. package/dist/transaction/wire/modelMutations.d.ts +0 -31
  553. package/dist/transaction/wire/modelMutations.js +0 -52
  554. package/dist/transaction/wire/modelResponses.d.ts +0 -85
  555. package/dist/transaction/wire/modelResponses.js +0 -43
  556. package/dist/transaction/wire/modelShape.d.ts +0 -78
  557. package/dist/transaction/wire/modelShape.js +0 -74
  558. package/dist/transaction/wire/protocol.d.ts +0 -38
  559. package/dist/transaction/wire/protocol.js +0 -38
  560. package/dist/transaction/wire/protocolVersion.d.ts +0 -73
  561. package/dist/transaction/wire/protocolVersion.js +0 -83
  562. package/dist/transactions/mutations/MutationQueue.d.ts +0 -661
  563. package/dist/transactions/mutations/MutationQueue.js +0 -2807
  564. package/dist/transactions/mutations/MutationStore.d.ts +0 -20
  565. package/dist/transactions/mutations/MutationStore.js +0 -53
  566. package/dist/transactions/mutations/UnconfirmedWrites.d.ts +0 -82
  567. package/dist/transactions/mutations/UnconfirmedWrites.js +0 -104
  568. package/dist/transactions/mutations/coalesceRules.d.ts +0 -58
  569. package/dist/transactions/mutations/coalesceRules.js +0 -140
  570. package/dist/transactions/mutations/commitLatency.d.ts +0 -52
  571. package/dist/transactions/mutations/commitLatency.js +0 -130
  572. package/dist/transactions/mutations/commitOutboxStore.d.ts +0 -28
  573. package/dist/transactions/mutations/commitOutboxStore.js +0 -26
  574. package/dist/transactions/mutations/commitPayload.d.ts +0 -165
  575. package/dist/transactions/mutations/commitPayload.js +0 -152
  576. package/dist/transactions/mutations/deltaConfirmation.d.ts +0 -63
  577. package/dist/transactions/mutations/deltaConfirmation.js +0 -235
  578. package/dist/transactions/mutations/durableWriteStore.d.ts +0 -14
  579. package/dist/transactions/mutations/durableWriteStore.js +0 -12
  580. package/dist/transactions/mutations/optimisticApply.d.ts +0 -49
  581. package/dist/transactions/mutations/optimisticApply.js +0 -65
  582. package/dist/transactions/mutations/replayValidation.d.ts +0 -187
  583. package/dist/transactions/mutations/replayValidation.js +0 -164
  584. package/dist/utils/mobxSetup.d.ts +0 -53
  585. package/dist/utils/mobxSetup.js +0 -330
  586. package/dist/views/QueryView.d.ts +0 -79
  587. package/dist/views/QueryView.js +0 -218
  588. package/dist/views/ViewRegistry.d.ts +0 -20
  589. package/dist/views/ViewRegistry.js +0 -55
  590. package/dist/views/incrementalView.d.ts +0 -45
  591. package/dist/views/incrementalView.js +0 -69
  592. package/dist/webhooks/events.d.ts +0 -43
  593. package/dist/webhooks/events.js +0 -42
  594. package/dist/webhooks/index.d.ts +0 -8
  595. package/dist/webhooks/index.js +0 -8
  596. package/dist/wire/index.d.ts +0 -1
  597. package/dist/wire/index.js +0 -8
@@ -1,95 +0,0 @@
1
- /**
2
- * Zod schemas that describe the `sync_deltas` storage row — the durable record of
3
- * one committed change. The row is split into two slices by the concern each one
4
- * serves:
5
- *
6
- * - {@link syncDeltaCoreSchema} — the sync-protocol slice: everything a client
7
- * needs to reconstruct the change, plus the tenant key. This is a portable
8
- * payload shape; it is not a statement that the row is physically stored in
9
- * the customer's database.
10
- * - {@link deltaAttributionSchema} — who made the change, and on whose authority.
11
- *
12
- * {@link syncDeltaRowSchema} composes both into the full stored row.
13
- * {@link DELTA_DATA_CLASSIFICATION} states which slices contain customer data,
14
- * while {@link DELTA_PHYSICAL_STORAGE} states where the runtime persists them.
15
- * Keeping those axes separate prevents a portable schema slice from being cited
16
- * incorrectly as a physical-residency guarantee.
17
- *
18
- * This is the stored shape. The delta broadcast to clients is a narrower projection
19
- * of it — see {@link import('../wire/delta.js').syncDeltaWireCoreSchema} — and
20
- * the field names here mirror those on that wire delta.
21
- */
22
- import { z } from 'zod';
23
- import { participantKindSchema, confirmationStateSchema, syncDeltaActionSchema, } from '../wire/delta.js';
24
- // ── Enumerations that mirror the corresponding Postgres enum types ────────────
25
- // `participant_kind` and `confirmation_state` are shared with the wire delta and
26
- // live at the wire layer (see `../wire/delta.js`); they are re-exported here so
27
- // code that imports them from `schema` keeps resolving.
28
- export { participantKindSchema, confirmationStateSchema } from '../wire/delta.js';
29
- /** `backfill_provenance` */
30
- export const backfillProvenanceSchema = z.enum(['exact', 'inferred', 'unknown']);
31
- /** A delta payload: the full post-mutation row (or null for deletes). */
32
- const deltaDataSchema = z.record(z.string(), z.unknown()).nullable();
33
- // ── Core — the sync-protocol slice ────────────────────────────────────────────
34
- /**
35
- * Everything a client needs to materialize the change, plus the tenant key. This
36
- * is the portable shape an authoritative WAL change or endpoint event carries.
37
- * The runtime persists the resulting full row in Ablo's tenant-scoped ordered
38
- * sync log; it is not written atomically with a direct application-row mutation.
39
- * `id`, `createdAt`, and `syncGroups` are assigned when the source change is
40
- * appended, so they are optional at the ingestion boundary.
41
- */
42
- export const syncDeltaCoreSchema = z.object({
43
- /** Monotonically increasing sync id, assigned by the server when the delta is appended; absent on an outbox marker. */
44
- id: z.union([z.bigint(), z.number()]).optional(),
45
- /** The `action_type` column; its eight values are owned by the wire delta contract. */
46
- actionType: syncDeltaActionSchema,
47
- modelName: z.string().min(1),
48
- modelId: z.string().min(1),
49
- data: deltaDataSchema,
50
- previousData: deltaDataSchema.optional(),
51
- /** Routing keys that decide which subscribers receive this delta; computed by the server at append time. */
52
- syncGroups: z.array(z.string()).optional(),
53
- /** The committing organization id — the coarse-grained tenant-isolation boundary. */
54
- organizationId: z.string().nullable(),
55
- /** ISO 8601 timestamp, assigned by the server when the delta is appended. */
56
- createdAt: z.string().optional(),
57
- transactionId: z.string().nullable(),
58
- /**
59
- * Stable identity of the authoritative WAL row or endpoint event. It is
60
- * nullable for hosted/legacy rows and is never exposed as the optimistic
61
- * client transaction id.
62
- */
63
- sourceChangeId: z.string().min(1).nullable().optional(),
64
- });
65
- // ── Attribution — who made the change, and on whose authority ─────────────────
66
- export const deltaAttributionSchema = z.object({
67
- /** The acting participant, recorded as a single column for compatibility; the structured pair below is the richer form. */
68
- createdBy: z.string().nullable(),
69
- actorId: z.string().nullable(),
70
- actorKind: participantKindSchema.nullable(),
71
- onBehalfOfId: z.string().nullable(),
72
- onBehalfOfKind: participantKindSchema.nullable(),
73
- capabilityId: z.string().nullable(),
74
- delegationChainRootUserId: z.string().nullable().optional(),
75
- confirmationState: confirmationStateSchema.nullable(),
76
- backfillProvenance: backfillProvenanceSchema.nullable(),
77
- });
78
- // ── Full stored row, classification, and physical storage ─────────────────────
79
- /** The complete `sync_deltas` row: core and attribution combined. */
80
- export const syncDeltaRowSchema = syncDeltaCoreSchema.extend(deltaAttributionSchema.shape);
81
- /** Which slices contain retained customer row data versus control metadata. */
82
- export const DELTA_DATA_CLASSIFICATION = {
83
- core: 'customer-data',
84
- attribution: 'control-metadata',
85
- };
86
- /**
87
- * Where the current runtime physically persists each slice. Both live in
88
- * Ablo's tenant-scoped `sync_deltas` log. `core` contains full post-change row
89
- * payloads (and optional previous payloads), so `control` here must not be read
90
- * as "metadata only."
91
- */
92
- export const DELTA_PHYSICAL_STORAGE = {
93
- core: 'control',
94
- attribution: 'control',
95
- };
@@ -1,97 +0,0 @@
1
- /**
2
- * Records where this client stands in the global delta order. It is a single
3
- * typed object holding three related but distinct positions, each with its own
4
- * rule for when it may advance. Keeping them separate is deliberate: collapsing
5
- * them into one counter is a classic source of sync bugs.
6
- *
7
- * - `persisted` — the resume cursor. It advances only after deltas have
8
- * committed to durable local storage. This is the value reconnect catch-up
9
- * sends to the server, so it must never run ahead of what actually landed
10
- * on disk; otherwise the server would skip deltas the client never stored.
11
- *
12
- * - `applied` — the in-memory cursor: the last delta applied to the object
13
- * pool. It drives the guards that deduplicate and reject replayed deltas.
14
- * It may run ahead of `persisted`, because the pool is updated before the
15
- * flush to disk, and behind what has merely been received, because
16
- * bootstrap-queued deltas arrive before they are applied.
17
- *
18
- * - `acked` — the highest server position acknowledged for this client's own
19
- * commits. An acknowledgement at N means the server applied our write at N;
20
- * the optimistic pool already reflects it, so for the entities we wrote we
21
- * have effectively read through N even before the echo returns on the
22
- * stream.
23
- *
24
- * One value is derived: `readFloor` is the greater of `applied` and `acked`,
25
- * and is the only position a snapshot or claim should stamp as its read point.
26
- * Using the raw stream cursor alone would make a claim taken right after a
27
- * confirmed write look stale against that write's own delta; using the raw
28
- * acknowledgement alone would be wrong for read-only clients. The maximum is
29
- * correct per entity, because a competing change to an entity we just wrote
30
- * necessarily lands above our acknowledgement and still rejects as stale.
31
- *
32
- * The validation schema is the state shape: the class holds exactly one
33
- * {@link LogPositionSnapshot} and merges monotonically into it, so snapshot
34
- * and restore share that shape and {@link parseLogPosition} is the single gate
35
- * for anything loaded from disk — a corrupted cursor stored "ahead of reality"
36
- * being a known failure mode.
37
- */
38
- import { z } from 'zod';
39
- export declare const logPositionSchema: z.ZodObject<{
40
- persisted: z.ZodNumber;
41
- applied: z.ZodNumber;
42
- acked: z.ZodNumber;
43
- }, z.core.$strip>;
44
- export type LogPositionSnapshot = z.infer<typeof logPositionSchema>;
45
- /**
46
- * Only the `persisted` cursor is stored durably; `applied` and `acked` are
47
- * not. On resume the object pool is rebuilt from the persisted state, so the
48
- * correct restore is simply to advance `persisted` to the stored value, which
49
- * also implies `applied`. `acked` starts at zero, because a past session's
50
- * acknowledgements carry no read authority and the offline queue
51
- * re-acknowledges its own replays.
52
- */
53
- /**
54
- * Validates an untrusted value, such as one loaded from disk, into a position
55
- * snapshot, or returns null when it does not match the schema.
56
- */
57
- export declare function parseLogPosition(value: unknown): LogPositionSnapshot | null;
58
- /**
59
- * The live sync position: one instance per client. Three producers each
60
- * advance their own cursor, and consumers read the result.
61
- */
62
- export declare class LogPosition {
63
- #private;
64
- /** Returns a copy of the current state in the schema's shape. */
65
- snapshot(): LogPositionSnapshot;
66
- get persisted(): number;
67
- get applied(): number;
68
- get acked(): number;
69
- /** The position a snapshot or claim stamps as its read point: the greater of `applied` and `acked`. */
70
- get readFloor(): number;
71
- /**
72
- * Records that deltas through `syncId` have committed to durable local
73
- * storage. This also advances `applied`, since the flush applies each delta
74
- * before or as it persists.
75
- */
76
- advancePersisted(syncId: number): void;
77
- /** Records that a delta was applied to the in-memory object pool. */
78
- advanceApplied(syncId: number): void;
79
- /** Records that the server acknowledged one of this client's commits at the given position. */
80
- noteAck(lastSyncId: number | undefined): void;
81
- /** Restores from an already-validated snapshot, for example on resume from disk. The merge is monotonic. */
82
- restore(snapshot: LogPositionSnapshot): void;
83
- }
84
- /** @deprecated Renamed to {@link logPositionSchema}. Removed in 0.36.0. */
85
- export declare const syncPositionSchema: z.ZodObject<{
86
- persisted: z.ZodNumber;
87
- applied: z.ZodNumber;
88
- acked: z.ZodNumber;
89
- }, z.core.$strip>;
90
- /** @deprecated Renamed to {@link LogPositionSnapshot}. Removed in 0.36.0. */
91
- export type SyncPositionSnapshot = LogPositionSnapshot;
92
- /** @deprecated Renamed to {@link parseLogPosition}. Removed in 0.36.0. */
93
- export declare const parseSyncPosition: typeof parseLogPosition;
94
- /** @deprecated Renamed to {@link LogPosition}. Removed in 0.36.0. */
95
- export declare const SyncPosition: typeof LogPosition;
96
- /** @deprecated Renamed to {@link LogPosition}. Removed in 0.36.0. */
97
- export type SyncPosition = LogPosition;
@@ -1,125 +0,0 @@
1
- /**
2
- * Records where this client stands in the global delta order. It is a single
3
- * typed object holding three related but distinct positions, each with its own
4
- * rule for when it may advance. Keeping them separate is deliberate: collapsing
5
- * them into one counter is a classic source of sync bugs.
6
- *
7
- * - `persisted` — the resume cursor. It advances only after deltas have
8
- * committed to durable local storage. This is the value reconnect catch-up
9
- * sends to the server, so it must never run ahead of what actually landed
10
- * on disk; otherwise the server would skip deltas the client never stored.
11
- *
12
- * - `applied` — the in-memory cursor: the last delta applied to the object
13
- * pool. It drives the guards that deduplicate and reject replayed deltas.
14
- * It may run ahead of `persisted`, because the pool is updated before the
15
- * flush to disk, and behind what has merely been received, because
16
- * bootstrap-queued deltas arrive before they are applied.
17
- *
18
- * - `acked` — the highest server position acknowledged for this client's own
19
- * commits. An acknowledgement at N means the server applied our write at N;
20
- * the optimistic pool already reflects it, so for the entities we wrote we
21
- * have effectively read through N even before the echo returns on the
22
- * stream.
23
- *
24
- * One value is derived: `readFloor` is the greater of `applied` and `acked`,
25
- * and is the only position a snapshot or claim should stamp as its read point.
26
- * Using the raw stream cursor alone would make a claim taken right after a
27
- * confirmed write look stale against that write's own delta; using the raw
28
- * acknowledgement alone would be wrong for read-only clients. The maximum is
29
- * correct per entity, because a competing change to an entity we just wrote
30
- * necessarily lands above our acknowledgement and still rejects as stale.
31
- *
32
- * The validation schema is the state shape: the class holds exactly one
33
- * {@link LogPositionSnapshot} and merges monotonically into it, so snapshot
34
- * and restore share that shape and {@link parseLogPosition} is the single gate
35
- * for anything loaded from disk — a corrupted cursor stored "ahead of reality"
36
- * being a known failure mode.
37
- */
38
- import { z } from 'zod';
39
- export const logPositionSchema = z.object({
40
- /** The resume cursor; advances only after deltas persist to durable local storage. */
41
- persisted: z.number().int().nonnegative(),
42
- /** The in-memory cursor: the last delta applied to the object pool. */
43
- applied: z.number().int().nonnegative(),
44
- /** The highest server position acknowledged for this client's own commits. */
45
- acked: z.number().int().nonnegative(),
46
- });
47
- /**
48
- * Only the `persisted` cursor is stored durably; `applied` and `acked` are
49
- * not. On resume the object pool is rebuilt from the persisted state, so the
50
- * correct restore is simply to advance `persisted` to the stored value, which
51
- * also implies `applied`. `acked` starts at zero, because a past session's
52
- * acknowledgements carry no read authority and the offline queue
53
- * re-acknowledges its own replays.
54
- */
55
- /**
56
- * Validates an untrusted value, such as one loaded from disk, into a position
57
- * snapshot, or returns null when it does not match the schema.
58
- */
59
- export function parseLogPosition(value) {
60
- const result = logPositionSchema.safeParse(value);
61
- return result.success ? result.data : null;
62
- }
63
- const ZERO = { persisted: 0, applied: 0, acked: 0 };
64
- /** Monotonic merge: each cursor only ever moves forward. */
65
- function advance(state, next) {
66
- return {
67
- persisted: Math.max(state.persisted, next.persisted ?? 0),
68
- applied: Math.max(state.applied, next.applied ?? 0),
69
- acked: Math.max(state.acked, next.acked ?? 0),
70
- };
71
- }
72
- /**
73
- * The live sync position: one instance per client. Three producers each
74
- * advance their own cursor, and consumers read the result.
75
- */
76
- export class LogPosition {
77
- #state = ZERO;
78
- /** Returns a copy of the current state in the schema's shape. */
79
- snapshot() {
80
- return { ...this.#state };
81
- }
82
- get persisted() {
83
- return this.#state.persisted;
84
- }
85
- get applied() {
86
- return this.#state.applied;
87
- }
88
- get acked() {
89
- return this.#state.acked;
90
- }
91
- /** The position a snapshot or claim stamps as its read point: the greater of `applied` and `acked`. */
92
- get readFloor() {
93
- return Math.max(this.#state.applied, this.#state.acked);
94
- }
95
- /**
96
- * Records that deltas through `syncId` have committed to durable local
97
- * storage. This also advances `applied`, since the flush applies each delta
98
- * before or as it persists.
99
- */
100
- advancePersisted(syncId) {
101
- this.#state = advance(this.#state, { persisted: syncId, applied: syncId });
102
- }
103
- /** Records that a delta was applied to the in-memory object pool. */
104
- advanceApplied(syncId) {
105
- this.#state = advance(this.#state, { applied: syncId });
106
- }
107
- /** Records that the server acknowledged one of this client's commits at the given position. */
108
- noteAck(lastSyncId) {
109
- if (lastSyncId !== undefined)
110
- this.#state = advance(this.#state, { acked: lastSyncId });
111
- }
112
- /** Restores from an already-validated snapshot, for example on resume from disk. The merge is monotonic. */
113
- restore(snapshot) {
114
- this.#state = advance(this.#state, snapshot);
115
- }
116
- }
117
- // ── Deprecated aliases (renamed from the sync/syncPosition module, 2026-07-17) ──
118
- // The position is a participant's place in the transaction log; the old names
119
- // said the consumer. Same class, same instanceof identity. Removed in 0.36.0.
120
- /** @deprecated Renamed to {@link logPositionSchema}. Removed in 0.36.0. */
121
- export const syncPositionSchema = logPositionSchema;
122
- /** @deprecated Renamed to {@link parseLogPosition}. Removed in 0.36.0. */
123
- export const parseSyncPosition = parseLogPosition;
124
- /** @deprecated Renamed to {@link LogPosition}. Removed in 0.36.0. */
125
- export const SyncPosition = LogPosition;
@@ -1,16 +0,0 @@
1
- /**
2
- * The logging port the SDK writes through.
3
- *
4
- * A contract with no framework and no local state: credential exchange, commit,
5
- * and claim all need to log with no UI and no offline store present, so the port
6
- * belongs to the settlement core (ADR 0016). The consumer supplies the
7
- * implementation; the SDK ships a no-op default.
8
- */
9
- export interface Logger {
10
- debug(message: string, ...args: unknown[]): void;
11
- info(message: string, ...args: unknown[]): void;
12
- warn(message: string, ...args: unknown[]): void;
13
- error(message: string, ...args: unknown[]): void;
14
- }
15
- /** The no-op default — what the core logs through when no logger is wired. */
16
- export declare const noopLogger: Logger;
@@ -1,7 +0,0 @@
1
- /** The no-op default — what the core logs through when no logger is wired. */
2
- export const noopLogger = {
3
- debug() { },
4
- info() { },
5
- warn() { },
6
- error() { },
7
- };
@@ -1,53 +0,0 @@
1
- /**
2
- * The observability the settlement core reports on its own behalf.
3
- *
4
- * Coordination outcomes — a claim changing state, a stale-write collision that
5
- * notified instead of aborting — happen with no UI and no local store anywhere,
6
- * so the core must be able to report them without depending on the consumer's
7
- * full provider (ADR 0016).
8
- *
9
- * This is deliberately the narrow set the core actually calls today. Widening it
10
- * later is non-breaking; the reactive engine's `ObservabilityProvider` extends
11
- * this interface, so a single implementation still satisfies both.
12
- */
13
- import type { ClaimEvent, ConflictEvent } from './coordination/events.js';
14
- export interface CoordinationObservability {
15
- /** Capture a claim state change (acquired / queued / granted / lost / rejected / expired). */
16
- captureClaim(event: ClaimEvent): void;
17
- /** Capture a notify-instead-of-abort stale-write collision. */
18
- captureConflict(event: ConflictEvent): void;
19
- }
20
- /** Breadcrumb severity levels */
21
- export type BreadcrumbLevel = 'debug' | 'info' | 'warning' | 'error';
22
- /** Breadcrumb categories for sync engine lifecycle events */
23
- export type BreadcrumbCategory = 'sync.bootstrap' | 'sync.transaction' | 'sync.websocket' | 'sync.offline' | 'sync.database' | 'sync.conflict' | 'sync.coordination' | 'sync.groups';
24
- export interface WebSocketErrorDetails {
25
- context: string;
26
- error?: string;
27
- code?: number;
28
- reason?: string;
29
- }
30
- /**
31
- * The observability the duplex transport reports on its own behalf: connection
32
- * lifecycle breadcrumbs and socket errors. A server-side agent holding a socket
33
- * for claim push has no store and no UI, so the transport must be able to
34
- * report without the consumer's full provider — the same reasoning as
35
- * {@link CoordinationObservability}, one layer down. The reactive engine's
36
- * `ObservabilityProvider` extends this interface, so a single implementation
37
- * satisfies both.
38
- */
39
- export interface TransportObservability {
40
- /** Add a breadcrumb for sync lifecycle events */
41
- breadcrumb(message: string, category: BreadcrumbCategory, level?: BreadcrumbLevel, data?: Record<string, string | number | boolean | undefined>): void;
42
- /** Capture WebSocket error */
43
- captureWebSocketError(details: WebSocketErrorDetails): void;
44
- }
45
- /**
46
- * Everything the duplex transport reports: its own lifecycle
47
- * ({@link TransportObservability}) plus the coordination outcomes that ride
48
- * the socket ({@link CoordinationObservability} — claim pushes and notified
49
- * collisions arrive as frames, so the transport is where they surface).
50
- */
51
- export type SocketObservability = TransportObservability & CoordinationObservability;
52
- /** The no-op default — what the transport reports through when nothing is wired. */
53
- export declare const noopSocketObservability: SocketObservability;
@@ -1,19 +0,0 @@
1
- /**
2
- * The observability the settlement core reports on its own behalf.
3
- *
4
- * Coordination outcomes — a claim changing state, a stale-write collision that
5
- * notified instead of aborting — happen with no UI and no local store anywhere,
6
- * so the core must be able to report them without depending on the consumer's
7
- * full provider (ADR 0016).
8
- *
9
- * This is deliberately the narrow set the core actually calls today. Widening it
10
- * later is non-breaking; the reactive engine's `ObservabilityProvider` extends
11
- * this interface, so a single implementation still satisfies both.
12
- */
13
- /** The no-op default — what the transport reports through when nothing is wired. */
14
- export const noopSocketObservability = {
15
- breadcrumb() { },
16
- captureWebSocketError() { },
17
- captureClaim() { },
18
- captureConflict() { },
19
- };
@@ -1,12 +0,0 @@
1
- /**
2
- * Local persistence modes. `'memory'` (the default everywhere outside the
3
- * browser) keeps the local graph in process memory; `'indexeddb'` adds
4
- * offline queueing and a reload-surviving cache in the browser.
5
- */
6
- export type AbloPersistence = 'memory' | 'indexeddb';
7
- export interface PersistenceOptions {
8
- readonly persistence?: AbloPersistence | undefined;
9
- readonly inMemory?: boolean | undefined;
10
- readonly offline?: boolean | undefined;
11
- }
12
- export declare function shouldUseInMemoryPersistence(options: PersistenceOptions): boolean;
@@ -1,11 +0,0 @@
1
- export function shouldUseInMemoryPersistence(options) {
2
- if (typeof window === 'undefined')
3
- return true;
4
- if (options.persistence)
5
- return options.persistence === 'memory';
6
- if (typeof options.inMemory === 'boolean')
7
- return options.inMemory;
8
- if (options.offline === true)
9
- return false;
10
- return true;
11
- }