@abloatai/ablo 0.36.0 → 0.37.1

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 +55 -2014
  3. package/NOTICE +2 -2
  4. package/README.md +45 -63
  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
package/docs/sessions.md CHANGED
@@ -10,20 +10,23 @@ difference is the subject and how much authority it carries.
10
10
  One resource mints both:
11
11
 
12
12
  ```ts Your backend (sk_)
13
- // A logged-in person's browser session — full authority within their org.
13
+ // A logged-in person's browser session — only the operations this UI needs.
14
14
  const userSession = await ablo.sessions.create({
15
15
  user: { id: currentUser.id },
16
+ can: { tasks: ['read', 'update'], workspaces: ['read'] },
16
17
  });
17
18
 
18
- // A scoped agent sessiongated to exactly the operations you name.
19
- const agentSession = await ablo.sessions.create({
20
- agent: { id: 'agent:task-writer' },
21
- can: { Task: ['read', 'update'], Workspace: ['read'] },
19
+ // Recommended agent pathreturns a ready, scoped client.
20
+ const agent = await ablo.agents.create({
21
+ name: 'task-writer',
22
+ can: { tasks: ['read', 'update'], workspaces: ['read'] },
22
23
  });
23
24
  ```
24
25
 
25
- `user` mints an `ek_` (ephemeral key); `agent` mints an `rk_` (restricted key).
26
- You pass `user` **or** `agent` never both.
26
+ `sessions.create({ user, can })` mints an `ek_` (ephemeral key).
27
+ `agents.create({ can })` mints and manages an `rk_` (restricted key). Use the
28
+ lower-level `sessions.create({ agent, can })` only when another runtime needs
29
+ the raw agent token.
27
30
 
28
31
  It exists because of one rule: **the browser can never hold a secret.** Your
29
32
  `sk_` lives on the server; the browser only ever holds a minted session token
@@ -45,15 +48,24 @@ For a logged-in person using your app. Mint on a backend route that has already
45
48
  authenticated the user:
46
49
 
47
50
  ```ts Your backend route (session-authed)
48
- const { token } = await ablo.sessions.create({
51
+ import { credentialEndpointSuccessSchema } from '@abloatai/ablo/auth';
52
+
53
+ const { token, expiresAt } = await ablo.sessions.create({
49
54
  user: { id: currentUser.id }, // who the session acts as
55
+ can: { tasks: ['read', 'update'] },
50
56
  // syncGroups: [...], // optional; defaults to the user's org + user
51
57
  });
52
- return Response.json({ token }); // return ONLY the token to the browser
58
+ return Response.json(
59
+ credentialEndpointSuccessSchema.parse({
60
+ token,
61
+ expiresAt,
62
+ credentialKind: 'ephemeral',
63
+ }),
64
+ { headers: { 'Cache-Control': 'no-store' } },
65
+ );
53
66
  ```
54
67
 
55
- A user session has **full data authority** within its org no operation
56
- allowlist. It's the human acting as themselves.
68
+ `can` is required. The mint fails closed when the grant is absent or empty.
57
69
 
58
70
  Point a browser `Ablo` client's `authEndpoint` at that route, and pass
59
71
  the **instance** to [`<AbloProvider>`](/react). The client fetches the token,
@@ -84,7 +96,7 @@ the socket. Need custom headers or a
84
96
  body on the exchange? `authEndpoint` also accepts an async resolver that
85
97
  returns the token.
86
98
 
87
- ## Agent sessions (`rk_`)
99
+ ## Agents (`rk_`)
88
100
 
89
101
  For a non-human actor — an agent or automation that should only do **specific**
90
102
  operations. The `can` map is the permission boundary, and it's **typed against
@@ -92,23 +104,45 @@ your schema** — the model keys are your schema's models, so a typo is a compil
92
104
  error, not a silent over-grant:
93
105
 
94
106
  ```ts
95
- const session = await ablo.sessions.create({
96
- agent: { id: 'agent:task-writer' },
97
- can: { Task: ['read', 'update'] }, // typed off the schema — no magic strings
107
+ const agent = await ablo.agents.create({
108
+ name: 'task-writer',
109
+ can: { tasks: ['update'] }, // typed off the schema — no magic strings
98
110
  ttlSeconds: 600,
99
111
  });
100
112
 
101
- const agent = Ablo({ schema, apiKey: session.token }); // the agent's scoped client
113
+ await agent.tasks.update({ id, data });
114
+ await agent.dispose();
102
115
  ```
103
116
 
104
- `can: { Task: ['update'] }` serializes to the wire allowlist `task.update`; the
105
- server rejects any commit whose operation isn't listed. Operations are
106
- `'read' | 'create' | 'update' | 'delete'`.
117
+ The returned client refreshes its own short-lived credential. A write grant
118
+ automatically includes the corresponding read, so
119
+ `can: { tasks: ['update'] }` is enforced as `task.update` plus `task.read`.
120
+ Operations are `'read' | 'create' | 'update' | 'delete'`.
121
+
122
+ For a reusable grant, use TypeScript's `satisfies`. It checks the object against
123
+ the schema while preserving its narrow literals—there is no string parser or
124
+ second permission model:
125
+
126
+ ```ts
127
+ import type { CapabilityGrant } from '@abloatai/ablo/auth';
128
+ import { schema } from './ablo.schema';
129
+
130
+ const taskWriterCan = {
131
+ tasks: ['update'],
132
+ } satisfies CapabilityGrant<typeof schema>;
133
+
134
+ const agent = await ablo.agents.create({ can: taskWriterCan });
135
+ ```
136
+
137
+ `documents` instead of `tasks`, or `'write'` instead of `'update'`, is a compile
138
+ error. At runtime the SDK parses the same grant with the schema-bound Zod
139
+ contract before minting, and the server validates it again against the active
140
+ pushed schema.
107
141
 
108
142
  <Note>
109
- Use `sessions.create({ agent })` to mint a scoped agent credential, then write
110
- with `ablo.<model>.update(...)` / `ablo.commits.create(...)` under a `claim`.
111
- This is the path for custom runtimes, MCP sessions, and protocol-level integrations.
143
+ Use `sessions.create({ agent, can })` when a separate runtime, MCP process, or
144
+ protocol integration needs the raw token. For an agent running in the current
145
+ server process, prefer `agents.create({ can })`.
112
146
  </Note>
113
147
 
114
148
  ## Mint
@@ -120,7 +154,7 @@ for the actor.
120
154
  | Param | For | Meaning |
121
155
  |---|---|---|
122
156
  | `user` / `agent` | both | The actor. `id` becomes the token's `participantId`. Pass exactly one. |
123
- | `can` | agent | Per-model operation allowlist, typed off the schema. |
157
+ | `can` | both | Required non-empty per-model operation allowlist, typed off the schema. |
124
158
  | `syncGroups` | both | Narrow the session below its default scope. Omit to inherit. |
125
159
  | `ttlSeconds` | both | Lifetime in seconds. Defaults to `900` (15m). |
126
160
  | `userMeta` | both | Opaque identity blob echoed back to the client. |
@@ -129,8 +163,28 @@ for the actor.
129
163
 
130
164
  Sessions are **short-lived by design** (~15 minutes) and, for browsers,
131
165
  **auto-refreshed** — the provider re-mints ahead of expiry, so a session never
132
- drops at the boundary. A revoked or signed-out actor simply stops getting a fresh
133
- token; the old one expires on its own. There's nothing to revoke by hand.
166
+ drops at the boundary. Signing out stops refresh and the old token expires on
167
+ its own.
168
+
169
+ Revoke immediately when a token is exposed or an actor loses access:
170
+
171
+ ```ts
172
+ await ablo.sessions.revoke({ id: session.id });
173
+ ```
174
+
175
+ Agent sessions can rotate with overlap so a worker can adopt the replacement
176
+ before the previous token expires:
177
+
178
+ ```ts
179
+ const replacement = await ablo.sessions.rotate({
180
+ id: session.id,
181
+ graceSeconds: 300,
182
+ ttlSeconds: 900,
183
+ });
184
+ ```
185
+
186
+ Browser `ek_` sessions rotate through `authEndpoint`; do not distribute rotated
187
+ browser tokens manually.
134
188
 
135
189
  ### Offline & sign-out
136
190
 
@@ -145,20 +199,19 @@ those two lifetimes separate, which means:
145
199
  connectivity or tab focus returns. The user stays signed in for as long as
146
200
  your underlying session is valid, however brief or long the network drop.
147
201
  - **The user is signed out only when the underlying session is genuinely
148
- rejected** — i.e. your `authEndpoint` responds **`401`/`403`** because the
149
- cookie (or IdP session) is missing, expired, or revoked. That's the one
150
- signal the provider treats as terminal.
202
+ gone** — your `authEndpoint` responds `401` with the canonical
203
+ `{ error: { code: 'session_expired' } }` body. An unrelated `401` or `403`
204
+ is a policy/configuration failure, not proof that the login ended.
151
205
 
152
206
  This mirrors the OAuth refresh-token rule (Okta/Auth0/Authgear): only a
153
207
  rejection of the *long-lived* credential ends the session — a network failure
154
208
  never does.
155
209
 
156
210
  <Note>
157
- Your `authEndpoint` contract follows from this: return the token on success,
158
- respond **`401`/`403`** only when the user's session is actually gone, and let
159
- network/`5xx` failures surface as errors. Don't collapse "can't reach the mint
160
- endpoint" into "session expired" — returning a `401` for a transient blip will
161
- bounce a still-valid user to your sign-in page.
211
+ Use `credentialEndpointSuccessSchema` and `credentialEndpointErrorSchema` from
212
+ `@abloatai/ablo/auth` on the route. Return `session_expired` only when the
213
+ application login is actually gone, and let network/`5xx` failures surface as
214
+ errors.
162
215
  </Note>
163
216
 
164
217
  ## Scope
@@ -175,8 +228,8 @@ Your schema lives in a **project** — you push it once (`npx ablo push`) and ev
175
228
  session you mint resolves against it. The flow for serving end-users:
176
229
 
177
230
  1. **Push your schema** to your project.
178
- 2. **Mint an `ek_` per user:** `sessions.create({ user: { id } })`. Your users
179
- commit to that one schema.
231
+ 2. **Mint an `ek_` per user:** `sessions.create({ user: { id }, can })`. Your
232
+ users commit to that one schema with only the operations in `can`.
180
233
 
181
234
  **Your users do not have Ablo accounts.** You authenticate them however you
182
235
  already do; your server's `sk_` mints the `ek_`. By default the session lands in
@@ -205,6 +258,7 @@ const { token } = await mintUserSessionKey({
205
258
  organizationId: schemaOwnerOrgId,
206
259
  projectId: schemaProjectId,
207
260
  },
261
+ operations: ['task.read', 'task.update'],
208
262
  ttlSeconds: 3600,
209
263
  });
210
264
  ```
@@ -234,6 +288,6 @@ compromise — which is exactly why it never leaves your server.
234
288
  | | User session (`ek_`) | Agent session (`rk_`) |
235
289
  |---|---|---|
236
290
  | For | a **person** in the browser | an **agent** / automation |
237
- | Authority | full, within their org | narrow (explicit `can` allowlist) |
238
- | Mint | `ablo.sessions.create({ user: { id } })` | `ablo.sessions.create({ agent: { id }, can })` |
291
+ | Authority | narrow (explicit `can` allowlist) | narrow (explicit `can` allowlist) |
292
+ | Mint | `ablo.sessions.create({ user: { id }, can })` | `ablo.sessions.create({ agent: { id }, can })` |
239
293
  | Lives where | the user's **browser** | the agent runtime |
@@ -37,7 +37,7 @@ no `package.json`, so Node resolves the entry path against the package
37
37
  root and a bare `quickstart.ts` won't be found.
38
38
 
39
39
  ```bash
40
- cd packages/sync-engine
40
+ cd packages/ablo
41
41
  ABLO_API_KEY=sk_test_... npx tsx examples/quickstart.ts
42
42
  ```
43
43
 
@@ -50,7 +50,7 @@ orchestrator drives the customer handler in-process so signer and
50
50
  verifier exchange real signed bytes without leaving the process.
51
51
 
52
52
  ```bash
53
- cd packages/sync-engine
53
+ cd packages/ablo
54
54
  npx tsx examples/data-source/run.ts
55
55
  ```
56
56
 
@@ -16,7 +16,7 @@ when they want Ablo to coordinate writes against rows stored in
16
16
  ## Run
17
17
 
18
18
  ```bash
19
- cd packages/sync-engine
19
+ cd packages/ablo
20
20
  npx tsx examples/data-source/run.ts
21
21
  ```
22
22
 
@@ -19,7 +19,7 @@
19
19
  import {
20
20
  signAbloSourceRequest,
21
21
  type Ablo,
22
- } from '@abloatai/ablo';
22
+ } from '@ablo/ablo';
23
23
 
24
24
  export interface AbloDriverOptions {
25
25
  /**
@@ -15,7 +15,7 @@
15
15
  * inside a transaction. The shape of the handlers stays identical.
16
16
  */
17
17
 
18
- import Ablo, { dataSource, sourceEventForOperation } from '@abloatai/ablo';
18
+ import Ablo, { dataSource, sourceEventForOperation } from '@ablo/ablo';
19
19
  import { schema } from './schema';
20
20
 
21
21
  type TaskRow = {
@@ -4,7 +4,7 @@
4
4
  * Run (from the package root — the examples/ folder has no package.json
5
5
  * of its own, so Node resolves module paths against the package root):
6
6
  *
7
- * cd packages/sync-engine
7
+ * cd packages/ablo
8
8
  * npx tsx examples/data-source/run.ts
9
9
  *
10
10
  * What this proves:
@@ -12,7 +12,7 @@
12
12
  * side without the other is a compile error.
13
13
  */
14
14
 
15
- import { defineSchema, model, z } from '@abloatai/ablo/schema';
15
+ import { defineSchema, model, z } from '@ablo/ablo/schema';
16
16
 
17
17
  export const schema = defineSchema({
18
18
  tasks: model({
@@ -6,8 +6,8 @@
6
6
  * ABLO_API_KEY=sk_test_... npx tsx examples/quickstart.ts
7
7
  */
8
8
 
9
- import Ablo from '@abloatai/ablo';
10
- import { defineSchema, model, z } from '@abloatai/ablo/schema';
9
+ import Ablo from '@ablo/ablo';
10
+ import { defineSchema, model, z } from '@ablo/ablo/schema';
11
11
 
12
12
  const schema = defineSchema({
13
13
  weatherReports: model({
package/llms.txt CHANGED
@@ -12,7 +12,7 @@ Every surface reaches the same coordinated state. They are not interchangeable.
12
12
 
13
13
  - SDK, `@abloatai/ablo` with `transport: 'http'` — THE AGENTS THEMSELVES. Stateless, request/response, nothing held open; the credential is the identity. This is the main path — default to it.
14
14
  - Coordination MCP, `@abloatai/mcp` — an agent living inside an MCP host (Claude, Cursor). Two jobs: MANAGING your Ablo the way the CLI does (`get_schema`, `list_projects`, `create_project`, `tail_logs`, `get_usage`), and claim/commit as tools over your rows. Call `get_schema` first — it is the only way to learn the model names every data tool needs. `init`, `push`, `pull`, `generate` have no tools (they touch your repo); run those in a shell.
15
- - `humans()` with `@abloatai/ablo/react` — the interfaces a person watches agent work arrive in. The bare client is the coordination layer (commit, read, observe, claim); `humans()` is the PLUGIN that adds the local watchable copy, live queries, and presence. It `requires: { duplex: true }`, so a `transport: 'http'` agent is rejected at construction rather than left holding a subscription that never delivers. It is installed by default on a socket client with no `plugins` list. There is no `agents()` plugin — agents are the default caller, not a special one. A browser NEVER receives the secret key; mint a session token.
15
+ - `humans()` with `@abloatai/humans/react` — the interfaces a person watches agent work arrive in. The bare client is the coordination layer (commit, read, observe, claim); `humans()` is the plugin that adds the local watchable copy, live queries, and presence. It `requires: { duplex: true }`, so a `transport: 'http'` agent is rejected at construction rather than left holding a subscription that never delivers. It remains the compatibility default for omitted `plugins`; new code should install it explicitly from `@abloatai/humans`. There is no `agents()` plugin — agents are the default caller, not a special one. A browser NEVER receives the secret key; mint a session token.
16
16
  - CLI, `ablo` — scaffolding, schema push, connecting a database. Terminals and CI. Agents must run it non-interactively (see the CLI section below).
17
17
  - REST, `/api/v1` — runtimes with no SDK.
18
18
  - Integration-helper MCP, hosted `/api/mcp` — teaching a coding assistant the SDK WHILE BUILDING an integration. Docs, schema lint, and scaffolds only; it has NO per-model data tools and cannot touch application rows.
@@ -50,7 +50,7 @@ const schema = defineSchema({
50
50
 
51
51
  const ablo = Ablo({ schema, apiKey: process.env.ABLO_API_KEY });
52
52
 
53
- const report = await ablo.weatherReports.retrieve({ id: 'report_stockholm' });
53
+ const report = await ablo.weatherReports.get({ id: 'report_stockholm' });
54
54
  if (!report) throw new Error('Row not found');
55
55
 
56
56
  // Claim the row (waits if someone else holds it), read the fresh copy off
@@ -74,9 +74,9 @@ For full integrations, use `integration-guide` as the canonical doc. It covers
74
74
  the same model API across your own Data Source-backed app databases,
75
75
  React selectors, multiplayer, and future agent workers.
76
76
 
77
- Reads come in two flavors, and you pick by whether you can wait. `retrieve({ id })`
77
+ Reads come in two flavors, and you pick by whether you can wait. `get({ id })`
78
78
  (one row) and `list({ where })` (many) are async — they answer from the local
79
- graph and fall back to the server, so await them. `local.retrieve(id)`,
79
+ graph and fall back to the server, so await them. `local.get(id)`,
80
80
  `local.list({ where })`, and `local.count({ where })` are the same reads narrowed
81
81
  to what has already synced: nothing to await, reactive in render. There is no
82
82
  second verb to learn — `local.` is the only difference. The query reads accept
@@ -88,7 +88,7 @@ Workers import the same app schema and select `transport: 'http'`. The transport
88
88
  changes; the typed `ablo.<model>` contract does not. There is no public
89
89
  schema-less or string-keyed model client.
90
90
 
91
- React reads should use selector `useAblo`: `useAblo((ablo) => ablo.weatherReports.local.retrieve(id))` (synchronous local read, reactive in render).
91
+ React reads should use selector `useAblo`: `useAblo((ablo) => ablo.weatherReports.local.get(id))` (synchronous local read, reactive in render).
92
92
  Use zero-argument `useAblo()` only when a component needs the client for an
93
93
  event handler or effect. The selector form above is the complete reactive
94
94
  surface — every read goes through it.
@@ -117,7 +117,7 @@ A change to one row reaches other rows three ways. ROUTING: a write fans out to
117
117
  ## Claimed Behavior
118
118
 
119
119
  Reads never silently block. Schema reads stay open while a row is claimed.
120
- Typed reads through `ablo.<model>.retrieve({ id })` return the row by default,
120
+ Typed reads through `ablo.<model>.get({ id })` return the row by default,
121
121
  even while it is claimed. Pass `ifClaimed: 'fail'` to throw
122
122
  `AbloClaimedError`, and inspect active coordination separately through
123
123
  `ablo.<model>.claim.state({ id })`.
@@ -205,10 +205,10 @@ Going live is three things, each done with a `sk_live_` key: register the produc
205
205
 
206
206
  Import from these public paths only:
207
207
 
208
- - `@abloatai/ablo` — `Ablo`, errors, typed model clients, claims, and `dataSource`.
208
+ - `@abloatai/ablo` — headless HTTP `Ablo`, errors, typed model clients, claims, durable observation, and `dataSource`.
209
+ - `@abloatai/ablo/client` — reactive WebSocket client, presence, and the human-facing materializer.
209
210
  - `@abloatai/ablo/schema` — schema DSL.
210
211
  - `@abloatai/ablo/react` — React provider and hooks.
211
- - `@abloatai/ablo/testing` — test harnesses and mocks.
212
212
  - `@abloatai/ablo/source` — `dataSource`, the `DataSourceAdapter` spine, `prismaDataSource`. For a customer-canonical Data Source endpoint.
213
213
  - `@abloatai/ablo/source/next` — `dataSourceNext` (Next.js App Router `{ POST }`).
214
214
  - `@abloatai/ablo/source/drizzle` — `drizzleDataSource`.