@abloatai/ablo 0.35.0 → 0.37.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (622) hide show
  1. package/AGENTS.md +2 -2
  2. package/CHANGELOG.md +71 -1929
  3. package/NOTICE +2 -2
  4. package/README.md +23 -532
  5. package/assets/banner.png +0 -0
  6. package/dist/auth.d.ts +2 -0
  7. package/dist/auth.d.ts.map +1 -0
  8. package/dist/auth.js +2 -0
  9. package/dist/auth.js.map +1 -0
  10. package/dist/client.d.ts +3 -0
  11. package/dist/client.d.ts.map +1 -0
  12. package/dist/client.js +3 -0
  13. package/dist/client.js.map +1 -0
  14. package/dist/coordination.d.ts +2 -0
  15. package/dist/coordination.d.ts.map +1 -0
  16. package/dist/coordination.js +2 -0
  17. package/dist/coordination.js.map +1 -0
  18. package/dist/index.d.ts +3 -112
  19. package/dist/index.d.ts.map +1 -0
  20. package/dist/index.js +3 -161
  21. package/dist/index.js.map +1 -0
  22. package/dist/react.d.ts +4 -0
  23. package/dist/react.d.ts.map +1 -0
  24. package/dist/react.js +3 -0
  25. package/dist/react.js.map +1 -0
  26. package/dist/schema.d.ts +2 -0
  27. package/dist/schema.d.ts.map +1 -0
  28. package/dist/schema.js +2 -0
  29. package/dist/schema.js.map +1 -0
  30. package/dist/server.d.ts +2 -0
  31. package/dist/server.d.ts.map +1 -0
  32. package/dist/server.js +2 -0
  33. package/dist/server.js.map +1 -0
  34. package/dist/source-conformance.d.ts +2 -0
  35. package/dist/source-conformance.d.ts.map +1 -0
  36. package/dist/source-conformance.js +2 -0
  37. package/dist/source-conformance.js.map +1 -0
  38. package/dist/source-drizzle.d.ts +2 -0
  39. package/dist/source-drizzle.d.ts.map +1 -0
  40. package/dist/source-drizzle.js +2 -0
  41. package/dist/source-drizzle.js.map +1 -0
  42. package/dist/source-kysely.d.ts +2 -0
  43. package/dist/source-kysely.d.ts.map +1 -0
  44. package/dist/source-kysely.js +2 -0
  45. package/dist/source-kysely.js.map +1 -0
  46. package/dist/source-next.d.ts +2 -0
  47. package/dist/source-next.d.ts.map +1 -0
  48. package/dist/source-next.js +2 -0
  49. package/dist/source-next.js.map +1 -0
  50. package/dist/source.d.ts +2 -0
  51. package/dist/source.d.ts.map +1 -0
  52. package/dist/source.js +2 -0
  53. package/dist/source.js.map +1 -0
  54. package/dist/wire.d.ts +2 -0
  55. package/dist/wire.d.ts.map +1 -0
  56. package/dist/wire.js +2 -0
  57. package/dist/wire.js.map +1 -0
  58. package/docs/agents.md +2 -2
  59. package/docs/api-keys.md +13 -12
  60. package/docs/api.md +15 -53
  61. package/docs/audit.md +4 -3
  62. package/docs/cli.md +11 -11
  63. package/docs/client-behavior.md +9 -9
  64. package/docs/concurrency-convention.md +28 -42
  65. package/docs/coordination.md +228 -86
  66. package/docs/data-sources.md +5 -5
  67. package/docs/debugging.md +34 -12
  68. package/docs/deployment.md +8 -8
  69. package/docs/examples/agent-human.md +4 -4
  70. package/docs/examples/ai-sdk-tool.md +1 -1
  71. package/docs/examples/existing-python-backend.md +15 -4
  72. package/docs/examples/nextjs.md +27 -6
  73. package/docs/examples/scoped-agent.md +3 -3
  74. package/docs/examples/server-agent.md +2 -2
  75. package/docs/groups.md +57 -3
  76. package/docs/guarantees.md +37 -10
  77. package/docs/how-it-works.md +32 -8
  78. package/docs/idempotency.md +6 -6
  79. package/docs/identity.md +24 -24
  80. package/docs/index.md +8 -8
  81. package/docs/integration-guide.md +38 -16
  82. package/docs/internal/README.md +18 -0
  83. package/docs/internal/agent-fleet-coordination-design.md +171 -0
  84. package/docs/internal/agent-orchestration.md +58 -0
  85. package/docs/internal/commit-identifiers.md +91 -0
  86. package/docs/internal/concurrency-open-decisions.md +37 -0
  87. package/docs/internal/data-source-reverse-channel.md +150 -0
  88. package/docs/internal/per-field-conflict-detection.md +165 -0
  89. package/docs/internal/postgres-replication.md +64 -0
  90. package/docs/internal/serializable-schema.md +119 -0
  91. package/docs/internal/structure.md +32 -0
  92. package/docs/mcp.md +9 -9
  93. package/docs/migration.md +37 -18
  94. package/docs/projects.md +1 -1
  95. package/docs/quickstart.md +2 -2
  96. package/docs/react.md +24 -13
  97. package/docs/schema-contract.md +3 -3
  98. package/docs/sessions.md +91 -37
  99. package/docs/webhooks.md +9 -9
  100. package/examples/README.md +2 -2
  101. package/examples/data-source/README.md +1 -1
  102. package/examples/data-source/ablo-driver.ts +1 -1
  103. package/examples/data-source/customer-server.ts +1 -1
  104. package/examples/data-source/run.ts +1 -1
  105. package/examples/data-source/schema.ts +1 -1
  106. package/examples/quickstart.ts +2 -2
  107. package/llms.txt +12 -12
  108. package/package.json +64 -174
  109. package/dist/BaseSyncedStore.d.ts +0 -823
  110. package/dist/BaseSyncedStore.js +0 -1955
  111. package/dist/Database.d.ts +0 -335
  112. package/dist/Database.js +0 -1500
  113. package/dist/InstanceCache.d.ts +0 -233
  114. package/dist/InstanceCache.js +0 -1164
  115. package/dist/LazyReferenceCollection.d.ts +0 -177
  116. package/dist/LazyReferenceCollection.js +0 -461
  117. package/dist/Model.d.ts +0 -444
  118. package/dist/Model.js +0 -909
  119. package/dist/ModelRegistry.d.ts +0 -221
  120. package/dist/ModelRegistry.js +0 -537
  121. package/dist/NetworkMonitor.d.ts +0 -26
  122. package/dist/NetworkMonitor.js +0 -77
  123. package/dist/RuntimeContext.d.ts +0 -52
  124. package/dist/RuntimeContext.js +0 -80
  125. package/dist/SyncClient.d.ts +0 -551
  126. package/dist/SyncClient.js +0 -2199
  127. package/dist/adapters/alwaysOnline.d.ts +0 -14
  128. package/dist/adapters/alwaysOnline.js +0 -17
  129. package/dist/adapters/inMemoryStorage.d.ts +0 -31
  130. package/dist/adapters/inMemoryStorage.js +0 -110
  131. package/dist/ai-sdk/coordinatedTool.d.ts +0 -120
  132. package/dist/ai-sdk/coordinatedTool.js +0 -134
  133. package/dist/ai-sdk/coordinationContext.d.ts +0 -46
  134. package/dist/ai-sdk/coordinationContext.js +0 -106
  135. package/dist/ai-sdk/index.d.ts +0 -121
  136. package/dist/ai-sdk/index.js +0 -121
  137. package/dist/ai-sdk/wrap.d.ts +0 -65
  138. package/dist/ai-sdk/wrap.js +0 -39
  139. package/dist/auth/index.d.ts +0 -1
  140. package/dist/auth/index.js +0 -8
  141. package/dist/batching/index.d.ts +0 -55
  142. package/dist/batching/index.js +0 -147
  143. package/dist/cli.cjs +0 -288600
  144. package/dist/client/Ablo.d.ts +0 -231
  145. package/dist/client/Ablo.js +0 -149
  146. package/dist/client/abloClient.d.ts +0 -309
  147. package/dist/client/abloClient.js +0 -13
  148. package/dist/client/clientPrelude.d.ts +0 -52
  149. package/dist/client/clientPrelude.js +0 -60
  150. package/dist/client/consoleLogger.d.ts +0 -35
  151. package/dist/client/consoleLogger.js +0 -44
  152. package/dist/client/coreClient.d.ts +0 -60
  153. package/dist/client/coreClient.js +0 -118
  154. package/dist/client/createInternalComponents.d.ts +0 -46
  155. package/dist/client/createInternalComponents.js +0 -92
  156. package/dist/client/createModelProxy.d.ts +0 -228
  157. package/dist/client/createModelProxy.js +0 -818
  158. package/dist/client/humans.d.ts +0 -48
  159. package/dist/client/humans.js +0 -52
  160. package/dist/client/modelRegistration.d.ts +0 -10
  161. package/dist/client/modelRegistration.js +0 -312
  162. package/dist/client/options.d.ts +0 -461
  163. package/dist/client/options.js +0 -7
  164. package/dist/client/reactiveEngine.d.ts +0 -48
  165. package/dist/client/reactiveEngine.js +0 -910
  166. package/dist/client/resourceTypes.d.ts +0 -12
  167. package/dist/client/resourceTypes.js +0 -10
  168. package/dist/client/schemaConfig.d.ts +0 -44
  169. package/dist/client/schemaConfig.js +0 -185
  170. package/dist/client/validateAbloOptions.d.ts +0 -42
  171. package/dist/client/validateAbloOptions.js +0 -43
  172. package/dist/client/wsMutationExecutor.d.ts +0 -27
  173. package/dist/client/wsMutationExecutor.js +0 -72
  174. package/dist/context.d.ts +0 -29
  175. package/dist/context.js +0 -58
  176. package/dist/coordination/ClaimLog.d.ts +0 -26
  177. package/dist/coordination/ClaimLog.js +0 -32
  178. package/dist/coordination/index.d.ts +0 -1
  179. package/dist/coordination/index.js +0 -8
  180. package/dist/core/DatabaseManager.d.ts +0 -105
  181. package/dist/core/DatabaseManager.js +0 -387
  182. package/dist/core/QueryProcessor.d.ts +0 -75
  183. package/dist/core/QueryProcessor.js +0 -255
  184. package/dist/core/QueryView.d.ts +0 -79
  185. package/dist/core/QueryView.js +0 -218
  186. package/dist/core/StoreManager.d.ts +0 -112
  187. package/dist/core/StoreManager.js +0 -302
  188. package/dist/core/ViewRegistry.d.ts +0 -20
  189. package/dist/core/ViewRegistry.js +0 -55
  190. package/dist/core/index.d.ts +0 -33
  191. package/dist/core/index.js +0 -48
  192. package/dist/core/openIDBWithTimeout.d.ts +0 -65
  193. package/dist/core/openIDBWithTimeout.js +0 -153
  194. package/dist/core/queryUtils.d.ts +0 -45
  195. package/dist/core/queryUtils.js +0 -69
  196. package/dist/core/storeContract.d.ts +0 -145
  197. package/dist/core/storeContract.js +0 -12
  198. package/dist/docs/catalog.d.ts +0 -72
  199. package/dist/docs/catalog.js +0 -227
  200. package/dist/docs/index.d.ts +0 -10
  201. package/dist/docs/index.js +0 -10
  202. package/dist/environment.d.ts +0 -1
  203. package/dist/environment.js +0 -8
  204. package/dist/interfaces/index.d.ts +0 -311
  205. package/dist/interfaces/index.js +0 -9
  206. package/dist/keys/index.d.ts +0 -1
  207. package/dist/keys/index.js +0 -8
  208. package/dist/mutators/RecordingMutation.d.ts +0 -36
  209. package/dist/mutators/RecordingMutation.js +0 -182
  210. package/dist/mutators/Transaction.d.ts +0 -40
  211. package/dist/mutators/Transaction.js +0 -58
  212. package/dist/mutators/UndoManager.d.ts +0 -258
  213. package/dist/mutators/UndoManager.js +0 -658
  214. package/dist/mutators/defineMutators.d.ts +0 -60
  215. package/dist/mutators/defineMutators.js +0 -18
  216. package/dist/mutators/inverseOp.d.ts +0 -126
  217. package/dist/mutators/inverseOp.js +0 -71
  218. package/dist/mutators/mutateActions.d.ts +0 -45
  219. package/dist/mutators/mutateActions.js +0 -105
  220. package/dist/mutators/readerActions.d.ts +0 -33
  221. package/dist/mutators/readerActions.js +0 -57
  222. package/dist/mutators/undoApply.d.ts +0 -51
  223. package/dist/mutators/undoApply.js +0 -117
  224. package/dist/policy/index.d.ts +0 -21
  225. package/dist/policy/index.js +0 -20
  226. package/dist/query/client.d.ts +0 -61
  227. package/dist/query/client.js +0 -137
  228. package/dist/query/types.d.ts +0 -85
  229. package/dist/query/types.js +0 -16
  230. package/dist/react/AbloProvider.d.ts +0 -230
  231. package/dist/react/AbloProvider.js +0 -455
  232. package/dist/react/ClientSideSuspense.d.ts +0 -36
  233. package/dist/react/ClientSideSuspense.js +0 -17
  234. package/dist/react/DefaultFallback.d.ts +0 -24
  235. package/dist/react/DefaultFallback.js +0 -43
  236. package/dist/react/context.d.ts +0 -55
  237. package/dist/react/context.js +0 -29
  238. package/dist/react/index.d.ts +0 -61
  239. package/dist/react/index.js +0 -66
  240. package/dist/react/internalContext.d.ts +0 -33
  241. package/dist/react/internalContext.js +0 -3
  242. package/dist/react/useAblo.d.ts +0 -75
  243. package/dist/react/useAblo.js +0 -102
  244. package/dist/react/useCurrentUserId.d.ts +0 -22
  245. package/dist/react/useCurrentUserId.js +0 -34
  246. package/dist/react/useErrorListener.d.ts +0 -20
  247. package/dist/react/useErrorListener.js +0 -38
  248. package/dist/react/useMutationFailureListener.d.ts +0 -26
  249. package/dist/react/useMutationFailureListener.js +0 -38
  250. package/dist/react/useMutators.d.ts +0 -56
  251. package/dist/react/useMutators.js +0 -84
  252. package/dist/react/useReactive.d.ts +0 -35
  253. package/dist/react/useReactive.js +0 -123
  254. package/dist/react/useSyncStatus.d.ts +0 -59
  255. package/dist/react/useSyncStatus.js +0 -76
  256. package/dist/react/useUndoScope.d.ts +0 -34
  257. package/dist/react/useUndoScope.js +0 -81
  258. package/dist/schema/coordination.d.ts +0 -112
  259. package/dist/schema/coordination.js +0 -129
  260. package/dist/schema/ddl.d.ts +0 -97
  261. package/dist/schema/ddl.js +0 -491
  262. package/dist/schema/ddlLock.d.ts +0 -35
  263. package/dist/schema/ddlLock.js +0 -46
  264. package/dist/schema/diff.d.ts +0 -225
  265. package/dist/schema/diff.js +0 -289
  266. package/dist/schema/generate.d.ts +0 -19
  267. package/dist/schema/generate.js +0 -86
  268. package/dist/schema/index.d.ts +0 -41
  269. package/dist/schema/index.js +0 -76
  270. package/dist/schema/queries.d.ts +0 -201
  271. package/dist/schema/queries.js +0 -144
  272. package/dist/schema/select.d.ts +0 -40
  273. package/dist/schema/select.js +0 -87
  274. package/dist/schema/serialize.d.ts +0 -115
  275. package/dist/schema/serialize.js +0 -262
  276. package/dist/schema/sugar.d.ts +0 -109
  277. package/dist/schema/sugar.js +0 -83
  278. package/dist/schema/syncDeltaRow.d.ts +0 -6
  279. package/dist/schema/syncDeltaRow.js +0 -6
  280. package/dist/server/adapter.d.ts +0 -173
  281. package/dist/server/adapter.js +0 -18
  282. package/dist/server/commit.d.ts +0 -107
  283. package/dist/server/commit.js +0 -1
  284. package/dist/server/index.d.ts +0 -14
  285. package/dist/server/index.js +0 -2
  286. package/dist/server/readConfig.d.ts +0 -80
  287. package/dist/server/readConfig.js +0 -8
  288. package/dist/server/storageMode.d.ts +0 -23
  289. package/dist/server/storageMode.js +0 -17
  290. package/dist/source/adapter.d.ts +0 -81
  291. package/dist/source/adapter.js +0 -22
  292. package/dist/source/adapters/drizzle.d.ts +0 -48
  293. package/dist/source/adapters/drizzle.js +0 -219
  294. package/dist/source/adapters/kysely.d.ts +0 -42
  295. package/dist/source/adapters/kysely.js +0 -205
  296. package/dist/source/adapters/kyselyMutationCore.d.ts +0 -76
  297. package/dist/source/adapters/kyselyMutationCore.js +0 -125
  298. package/dist/source/adapters/memory.d.ts +0 -13
  299. package/dist/source/adapters/memory.js +0 -130
  300. package/dist/source/adapters/prisma.d.ts +0 -63
  301. package/dist/source/adapters/prisma.js +0 -202
  302. package/dist/source/conformance.d.ts +0 -37
  303. package/dist/source/conformance.js +0 -215
  304. package/dist/source/connector.d.ts +0 -95
  305. package/dist/source/connector.js +0 -266
  306. package/dist/source/connectorProtocol.d.ts +0 -154
  307. package/dist/source/connectorProtocol.js +0 -163
  308. package/dist/source/contract.d.ts +0 -195
  309. package/dist/source/contract.js +0 -164
  310. package/dist/source/factory.d.ts +0 -92
  311. package/dist/source/factory.js +0 -286
  312. package/dist/source/footprint.d.ts +0 -111
  313. package/dist/source/footprint.js +0 -0
  314. package/dist/source/idempotency.d.ts +0 -61
  315. package/dist/source/idempotency.js +0 -144
  316. package/dist/source/index.d.ts +0 -23
  317. package/dist/source/index.js +0 -30
  318. package/dist/source/migrations.d.ts +0 -21
  319. package/dist/source/migrations.js +0 -103
  320. package/dist/source/next.d.ts +0 -32
  321. package/dist/source/next.js +0 -25
  322. package/dist/source/pushQueue.d.ts +0 -134
  323. package/dist/source/pushQueue.js +0 -256
  324. package/dist/source/signing.d.ts +0 -92
  325. package/dist/source/signing.js +0 -162
  326. package/dist/source/types.d.ts +0 -401
  327. package/dist/source/types.js +0 -59
  328. package/dist/stores/ObjectStore.d.ts +0 -115
  329. package/dist/stores/ObjectStore.js +0 -393
  330. package/dist/stores/ObjectStoreContract.d.ts +0 -38
  331. package/dist/stores/ObjectStoreContract.js +0 -1
  332. package/dist/stores/SyncActionStore.d.ts +0 -97
  333. package/dist/stores/SyncActionStore.js +0 -504
  334. package/dist/stores/syncAction.d.ts +0 -26
  335. package/dist/stores/syncAction.js +0 -16
  336. package/dist/surface.d.ts +0 -36
  337. package/dist/surface.js +0 -75
  338. package/dist/sync/BootstrapFetcher.d.ts +0 -280
  339. package/dist/sync/BootstrapFetcher.js +0 -962
  340. package/dist/sync/ConnectionManager.d.ts +0 -8
  341. package/dist/sync/ConnectionManager.js +0 -8
  342. package/dist/sync/OnDemandLoader.d.ts +0 -228
  343. package/dist/sync/OnDemandLoader.js +0 -742
  344. package/dist/sync/SubscriptionManager.d.ts +0 -159
  345. package/dist/sync/SubscriptionManager.js +0 -243
  346. package/dist/sync/SyncWebSocket.d.ts +0 -173
  347. package/dist/sync/SyncWebSocket.js +0 -438
  348. package/dist/sync/awaitClaimGrant.d.ts +0 -6
  349. package/dist/sync/awaitClaimGrant.js +0 -6
  350. package/dist/sync/bootstrapApply.d.ts +0 -70
  351. package/dist/sync/bootstrapApply.js +0 -73
  352. package/dist/sync/commitFrames.d.ts +0 -8
  353. package/dist/sync/commitFrames.js +0 -8
  354. package/dist/sync/contextPorts.d.ts +0 -18
  355. package/dist/sync/contextPorts.js +0 -31
  356. package/dist/sync/createClaimStream.d.ts +0 -7
  357. package/dist/sync/createClaimStream.js +0 -7
  358. package/dist/sync/createPresenceStream.d.ts +0 -69
  359. package/dist/sync/createPresenceStream.js +0 -200
  360. package/dist/sync/createSnapshot.d.ts +0 -29
  361. package/dist/sync/createSnapshot.js +0 -118
  362. package/dist/sync/credentialLifecycle.d.ts +0 -7
  363. package/dist/sync/credentialLifecycle.js +0 -7
  364. package/dist/sync/deltaPipeline.d.ts +0 -113
  365. package/dist/sync/deltaPipeline.js +0 -261
  366. package/dist/sync/groupChange.d.ts +0 -113
  367. package/dist/sync/groupChange.js +0 -242
  368. package/dist/sync/participants.d.ts +0 -115
  369. package/dist/sync/participants.js +0 -344
  370. package/dist/sync/persistedPrefix.d.ts +0 -12
  371. package/dist/sync/persistedPrefix.js +0 -22
  372. package/dist/sync/schemaDrift.d.ts +0 -55
  373. package/dist/sync/schemaDrift.js +0 -53
  374. package/dist/sync/schemas.d.ts +0 -70
  375. package/dist/sync/schemas.js +0 -94
  376. package/dist/sync/syncCursor.d.ts +0 -40
  377. package/dist/sync/syncCursor.js +0 -55
  378. package/dist/sync/syncPlan.d.ts +0 -54
  379. package/dist/sync/syncPlan.js +0 -50
  380. package/dist/sync/wsFrameHandlers.d.ts +0 -8
  381. package/dist/sync/wsFrameHandlers.js +0 -8
  382. package/dist/testing/fixtures/bootstrap.d.ts +0 -49
  383. package/dist/testing/fixtures/bootstrap.js +0 -59
  384. package/dist/testing/fixtures/deltas.d.ts +0 -83
  385. package/dist/testing/fixtures/deltas.js +0 -136
  386. package/dist/testing/fixtures/httpResponses.d.ts +0 -70
  387. package/dist/testing/fixtures/httpResponses.js +0 -90
  388. package/dist/testing/fixtures/models.d.ts +0 -83
  389. package/dist/testing/fixtures/models.js +0 -272
  390. package/dist/testing/helpers/reactWrapper.d.ts +0 -69
  391. package/dist/testing/helpers/reactWrapper.js +0 -67
  392. package/dist/testing/helpers/syncEngineHarness.d.ts +0 -54
  393. package/dist/testing/helpers/syncEngineHarness.js +0 -73
  394. package/dist/testing/helpers/wait.d.ts +0 -30
  395. package/dist/testing/helpers/wait.js +0 -49
  396. package/dist/testing/index.d.ts +0 -23
  397. package/dist/testing/index.js +0 -33
  398. package/dist/testing/mocks/FakeDatabase.d.ts +0 -18
  399. package/dist/testing/mocks/FakeDatabase.js +0 -10
  400. package/dist/testing/mocks/MockMutationExecutor.d.ts +0 -87
  401. package/dist/testing/mocks/MockMutationExecutor.js +0 -186
  402. package/dist/testing/mocks/MockNetworkMonitor.d.ts +0 -20
  403. package/dist/testing/mocks/MockNetworkMonitor.js +0 -46
  404. package/dist/testing/mocks/MockSyncContext.d.ts +0 -51
  405. package/dist/testing/mocks/MockSyncContext.js +0 -72
  406. package/dist/testing/mocks/MockSyncStore.d.ts +0 -88
  407. package/dist/testing/mocks/MockSyncStore.js +0 -171
  408. package/dist/testing/mocks/MockWebSocket.d.ts +0 -71
  409. package/dist/testing/mocks/MockWebSocket.js +0 -118
  410. package/dist/transaction/ablo.d.ts +0 -88
  411. package/dist/transaction/ablo.js +0 -33
  412. package/dist/transaction/auth/apiKey.d.ts +0 -152
  413. package/dist/transaction/auth/apiKey.js +0 -419
  414. package/dist/transaction/auth/bootstrapScope.d.ts +0 -15
  415. package/dist/transaction/auth/bootstrapScope.js +0 -1
  416. package/dist/transaction/auth/capability.d.ts +0 -177
  417. package/dist/transaction/auth/capability.js +0 -199
  418. package/dist/transaction/auth/credentialEndpoint.d.ts +0 -61
  419. package/dist/transaction/auth/credentialEndpoint.js +0 -86
  420. package/dist/transaction/auth/credentialPolicy.d.ts +0 -148
  421. package/dist/transaction/auth/credentialPolicy.js +0 -125
  422. package/dist/transaction/auth/credentialSource.d.ts +0 -30
  423. package/dist/transaction/auth/credentialSource.js +0 -55
  424. package/dist/transaction/auth/hostedEndpoints.d.ts +0 -21
  425. package/dist/transaction/auth/hostedEndpoints.js +0 -21
  426. package/dist/transaction/auth/identity.d.ts +0 -55
  427. package/dist/transaction/auth/identity.js +0 -210
  428. package/dist/transaction/auth/index.d.ts +0 -162
  429. package/dist/transaction/auth/index.js +0 -304
  430. package/dist/transaction/auth/schemas.d.ts +0 -59
  431. package/dist/transaction/auth/schemas.js +0 -85
  432. package/dist/transaction/auth/sessionMint.d.ts +0 -28
  433. package/dist/transaction/auth/sessionMint.js +0 -85
  434. package/dist/transaction/coordination/awaitClaimGrant.d.ts +0 -49
  435. package/dist/transaction/coordination/awaitClaimGrant.js +0 -112
  436. package/dist/transaction/coordination/claimHeartbeatLoop.d.ts +0 -50
  437. package/dist/transaction/coordination/claimHeartbeatLoop.js +0 -88
  438. package/dist/transaction/coordination/claimMeta.d.ts +0 -49
  439. package/dist/transaction/coordination/claimMeta.js +0 -52
  440. package/dist/transaction/coordination/createClaimStream.d.ts +0 -64
  441. package/dist/transaction/coordination/createClaimStream.js +0 -475
  442. package/dist/transaction/coordination/events.d.ts +0 -74
  443. package/dist/transaction/coordination/events.js +0 -7
  444. package/dist/transaction/coordination/index.d.ts +0 -19
  445. package/dist/transaction/coordination/index.js +0 -44
  446. package/dist/transaction/coordination/locator.d.ts +0 -83
  447. package/dist/transaction/coordination/locator.js +0 -82
  448. package/dist/transaction/coordination/schema.d.ts +0 -1473
  449. package/dist/transaction/coordination/schema.js +0 -1013
  450. package/dist/transaction/coordination/targetConflict.d.ts +0 -2
  451. package/dist/transaction/coordination/targetConflict.js +0 -103
  452. package/dist/transaction/coordination/trace.d.ts +0 -78
  453. package/dist/transaction/coordination/trace.js +0 -138
  454. package/dist/transaction/durableWrites.d.ts +0 -62
  455. package/dist/transaction/durableWrites.js +0 -71
  456. package/dist/transaction/environment.d.ts +0 -105
  457. package/dist/transaction/environment.js +0 -108
  458. package/dist/transaction/errorCodes.d.ts +0 -403
  459. package/dist/transaction/errorCodes.js +0 -480
  460. package/dist/transaction/errors.d.ts +0 -428
  461. package/dist/transaction/errors.js +0 -686
  462. package/dist/transaction/index.d.ts +0 -20
  463. package/dist/transaction/index.js +0 -20
  464. package/dist/transaction/keys/index.d.ts +0 -87
  465. package/dist/transaction/keys/index.js +0 -207
  466. package/dist/transaction/log/syncDeltaRow.d.ts +0 -158
  467. package/dist/transaction/log/syncDeltaRow.js +0 -95
  468. package/dist/transaction/logPosition.d.ts +0 -97
  469. package/dist/transaction/logPosition.js +0 -125
  470. package/dist/transaction/logger.d.ts +0 -16
  471. package/dist/transaction/logger.js +0 -7
  472. package/dist/transaction/observability.d.ts +0 -53
  473. package/dist/transaction/observability.js +0 -19
  474. package/dist/transaction/persistence.d.ts +0 -12
  475. package/dist/transaction/persistence.js +0 -11
  476. package/dist/transaction/plugin.d.ts +0 -192
  477. package/dist/transaction/plugin.js +0 -87
  478. package/dist/transaction/policy/types.d.ts +0 -217
  479. package/dist/transaction/policy/types.js +0 -126
  480. package/dist/transaction/resources/functionalUpdate.d.ts +0 -79
  481. package/dist/transaction/resources/functionalUpdate.js +0 -87
  482. package/dist/transaction/resources/httpResources.d.ts +0 -266
  483. package/dist/transaction/resources/httpResources.js +0 -7
  484. package/dist/transaction/resources/modelOperations.d.ts +0 -319
  485. package/dist/transaction/resources/modelOperations.js +0 -12
  486. package/dist/transaction/resources/mutationOptions.d.ts +0 -66
  487. package/dist/transaction/resources/mutationOptions.js +0 -9
  488. package/dist/transaction/resources/where.d.ts +0 -85
  489. package/dist/transaction/resources/where.js +0 -70
  490. package/dist/transaction/resources/writeOptionsSchema.d.ts +0 -47
  491. package/dist/transaction/resources/writeOptionsSchema.js +0 -73
  492. package/dist/transaction/schema/field.d.ts +0 -126
  493. package/dist/transaction/schema/field.js +0 -265
  494. package/dist/transaction/schema/loadStrategy.d.ts +0 -45
  495. package/dist/transaction/schema/loadStrategy.js +0 -46
  496. package/dist/transaction/schema/model.d.ts +0 -379
  497. package/dist/transaction/schema/model.js +0 -123
  498. package/dist/transaction/schema/openapi.d.ts +0 -57
  499. package/dist/transaction/schema/openapi.js +0 -340
  500. package/dist/transaction/schema/relation.d.ts +0 -199
  501. package/dist/transaction/schema/relation.js +0 -104
  502. package/dist/transaction/schema/residency.d.ts +0 -29
  503. package/dist/transaction/schema/residency.js +0 -25
  504. package/dist/transaction/schema/roles.d.ts +0 -249
  505. package/dist/transaction/schema/roles.js +0 -230
  506. package/dist/transaction/schema/schema.d.ts +0 -324
  507. package/dist/transaction/schema/schema.js +0 -305
  508. package/dist/transaction/schema/tenancy.d.ts +0 -139
  509. package/dist/transaction/schema/tenancy.js +0 -190
  510. package/dist/transaction/transactionLayer.d.ts +0 -82
  511. package/dist/transaction/transactionLayer.js +0 -24
  512. package/dist/transaction/transactions/settlement/commitEnvelope.d.ts +0 -143
  513. package/dist/transaction/transactions/settlement/commitEnvelope.js +0 -161
  514. package/dist/transaction/transactions/settlement/httpCommitEnvelope.d.ts +0 -53
  515. package/dist/transaction/transactions/settlement/httpCommitEnvelope.js +0 -207
  516. package/dist/transaction/transactions/settlement/idempotencyKey.d.ts +0 -10
  517. package/dist/transaction/transactions/settlement/idempotencyKey.js +0 -9
  518. package/dist/transaction/transactions/settlement/pendingWrite.d.ts +0 -112
  519. package/dist/transaction/transactions/settlement/pendingWrite.js +0 -20
  520. package/dist/transaction/transport/commitFrames.d.ts +0 -90
  521. package/dist/transaction/transport/commitFrames.js +0 -134
  522. package/dist/transaction/transport/connectionManager.d.ts +0 -215
  523. package/dist/transaction/transport/connectionManager.js +0 -673
  524. package/dist/transaction/transport/credentialLifecycle.d.ts +0 -177
  525. package/dist/transaction/transport/credentialLifecycle.js +0 -324
  526. package/dist/transaction/transport/heartbeat.d.ts +0 -65
  527. package/dist/transaction/transport/heartbeat.js +0 -93
  528. package/dist/transaction/transport/httpClient.d.ts +0 -123
  529. package/dist/transaction/transport/httpClient.js +0 -145
  530. package/dist/transaction/transport/httpOptions.d.ts +0 -33
  531. package/dist/transaction/transport/httpOptions.js +0 -12
  532. package/dist/transaction/transport/httpTransport.d.ts +0 -8
  533. package/dist/transaction/transport/httpTransport.js +0 -1276
  534. package/dist/transaction/transport/networkProbe.d.ts +0 -84
  535. package/dist/transaction/transport/networkProbe.js +0 -207
  536. package/dist/transaction/transport/wsFrameHandlers.d.ts +0 -128
  537. package/dist/transaction/transport/wsFrameHandlers.js +0 -429
  538. package/dist/transaction/transport/wsTransport.d.ts +0 -576
  539. package/dist/transaction/transport/wsTransport.js +0 -1017
  540. package/dist/transaction/types/assertExact.d.ts +0 -17
  541. package/dist/transaction/types/assertExact.js +0 -1
  542. package/dist/transaction/types/global.d.ts +0 -107
  543. package/dist/transaction/types/global.js +0 -40
  544. package/dist/transaction/types/index.d.ts +0 -205
  545. package/dist/transaction/types/index.js +0 -56
  546. package/dist/transaction/types/modelData.d.ts +0 -10
  547. package/dist/transaction/types/modelData.js +0 -9
  548. package/dist/transaction/types/participant.d.ts +0 -20
  549. package/dist/transaction/types/participant.js +0 -10
  550. package/dist/transaction/types/streams.d.ts +0 -540
  551. package/dist/transaction/types/streams.js +0 -11
  552. package/dist/transaction/utils/asyncIterator.d.ts +0 -34
  553. package/dist/transaction/utils/asyncIterator.js +0 -135
  554. package/dist/transaction/utils/duration.d.ts +0 -25
  555. package/dist/transaction/utils/duration.js +0 -45
  556. package/dist/transaction/utils/json.d.ts +0 -57
  557. package/dist/transaction/utils/json.js +0 -276
  558. package/dist/transaction/wire/accountResponses.d.ts +0 -351
  559. package/dist/transaction/wire/accountResponses.js +0 -255
  560. package/dist/transaction/wire/auth.d.ts +0 -49
  561. package/dist/transaction/wire/auth.js +0 -57
  562. package/dist/transaction/wire/bootstrapReason.d.ts +0 -9
  563. package/dist/transaction/wire/bootstrapReason.js +0 -8
  564. package/dist/transaction/wire/claimEvent.d.ts +0 -76
  565. package/dist/transaction/wire/claimEvent.js +0 -73
  566. package/dist/transaction/wire/claims.d.ts +0 -463
  567. package/dist/transaction/wire/claims.js +0 -229
  568. package/dist/transaction/wire/commit.d.ts +0 -603
  569. package/dist/transaction/wire/commit.js +0 -321
  570. package/dist/transaction/wire/delta.d.ts +0 -250
  571. package/dist/transaction/wire/delta.js +0 -147
  572. package/dist/transaction/wire/errorEnvelope.d.ts +0 -72
  573. package/dist/transaction/wire/errorEnvelope.js +0 -123
  574. package/dist/transaction/wire/feedCursor.d.ts +0 -60
  575. package/dist/transaction/wire/feedCursor.js +0 -82
  576. package/dist/transaction/wire/feedEvent.d.ts +0 -177
  577. package/dist/transaction/wire/feedEvent.js +0 -39
  578. package/dist/transaction/wire/frames.d.ts +0 -194
  579. package/dist/transaction/wire/frames.js +0 -50
  580. package/dist/transaction/wire/inboundFrames.d.ts +0 -552
  581. package/dist/transaction/wire/inboundFrames.js +0 -116
  582. package/dist/transaction/wire/index.d.ts +0 -50
  583. package/dist/transaction/wire/index.js +0 -74
  584. package/dist/transaction/wire/listEnvelope.d.ts +0 -37
  585. package/dist/transaction/wire/listEnvelope.js +0 -42
  586. package/dist/transaction/wire/modelResponses.d.ts +0 -85
  587. package/dist/transaction/wire/modelResponses.js +0 -43
  588. package/dist/transaction/wire/protocol.d.ts +0 -38
  589. package/dist/transaction/wire/protocol.js +0 -38
  590. package/dist/transaction/wire/protocolVersion.d.ts +0 -73
  591. package/dist/transaction/wire/protocolVersion.js +0 -83
  592. package/dist/transactions/mutations/MutationQueue.d.ts +0 -655
  593. package/dist/transactions/mutations/MutationQueue.js +0 -2797
  594. package/dist/transactions/mutations/MutationStore.d.ts +0 -20
  595. package/dist/transactions/mutations/MutationStore.js +0 -53
  596. package/dist/transactions/mutations/UnconfirmedWrites.d.ts +0 -82
  597. package/dist/transactions/mutations/UnconfirmedWrites.js +0 -104
  598. package/dist/transactions/mutations/coalesceRules.d.ts +0 -58
  599. package/dist/transactions/mutations/coalesceRules.js +0 -140
  600. package/dist/transactions/mutations/commitLatency.d.ts +0 -52
  601. package/dist/transactions/mutations/commitLatency.js +0 -130
  602. package/dist/transactions/mutations/commitOutboxStore.d.ts +0 -28
  603. package/dist/transactions/mutations/commitOutboxStore.js +0 -26
  604. package/dist/transactions/mutations/commitPayload.d.ts +0 -164
  605. package/dist/transactions/mutations/commitPayload.js +0 -152
  606. package/dist/transactions/mutations/deltaConfirmation.d.ts +0 -59
  607. package/dist/transactions/mutations/deltaConfirmation.js +0 -233
  608. package/dist/transactions/mutations/durableWriteStore.d.ts +0 -14
  609. package/dist/transactions/mutations/durableWriteStore.js +0 -12
  610. package/dist/transactions/mutations/optimisticApply.d.ts +0 -49
  611. package/dist/transactions/mutations/optimisticApply.js +0 -65
  612. package/dist/transactions/mutations/replayValidation.d.ts +0 -186
  613. package/dist/transactions/mutations/replayValidation.js +0 -163
  614. package/dist/utils/mobxSetup.d.ts +0 -53
  615. package/dist/utils/mobxSetup.js +0 -330
  616. package/dist/webhooks/events.d.ts +0 -43
  617. package/dist/webhooks/events.js +0 -42
  618. package/dist/webhooks/index.d.ts +0 -8
  619. package/dist/webhooks/index.js +0 -8
  620. package/dist/wire/index.d.ts +0 -1
  621. package/dist/wire/index.js +0 -8
  622. package/docs/interaction-model.md +0 -99
@@ -1,552 +0,0 @@
1
- /**
2
- * Every frame the server can send, in one list.
3
- *
4
- * Before this existed, "what frames are there" was answerable only by reading
5
- * the dispatch table, the transport's event map, and each handler's defensive
6
- * narrowing together — three places that agreed by convention. This registry is
7
- * the single answer, and it carries how each frame's payload is validated.
8
- *
9
- * A frame is validated one of two ways. Most carry a `payload` schema and are
10
- * parsed here, before the handler runs, so a handler receives a value whose
11
- * shape is already proven. The rest are marked `handler` because their
12
- * validation is genuinely load-bearing elsewhere — a delta is checked once
13
- * downstream against the schema the materialiser holds, and a commit receipt
14
- * has to tolerate an older server's spelling before it can be parsed. Each of
15
- * those says where its check lives, so `handler` is a citation and never an
16
- * excuse.
17
- *
18
- * A frame type absent from this registry is rejected. That is deliberate: the
19
- * server and this package ship from one repository, so an unrecognised frame
20
- * means the two have drifted, and failing loudly beats materialising a change
21
- * nobody validated. Application-level collaboration events are the exception —
22
- * they are registered by the consumer at construction time, not by the
23
- * protocol, and are dispatched separately.
24
- */
25
- import { z } from 'zod';
26
- /**
27
- * The envelope itself: a type and a payload. `catchall` keeps the extra keys,
28
- * because the oldest delta form puts a delta's own fields at the top level
29
- * instead of under `payload`, and the dispatcher still has to recognise it.
30
- */
31
- export declare const wsInboundEnvelopeSchema: z.ZodObject<{
32
- type: z.ZodOptional<z.ZodString>;
33
- payload: z.ZodOptional<z.ZodUnknown>;
34
- }, z.core.$catchall<z.ZodUnknown>>;
35
- export type WsInboundEnvelope = z.infer<typeof wsInboundEnvelopeSchema>;
36
- /** How one frame's payload is checked. */
37
- export type InboundFrameContract =
38
- /** Parsed against `payload` before the handler runs. */
39
- {
40
- readonly validation: 'schema';
41
- readonly payload: z.ZodType;
42
- }
43
- /**
44
- * Checked inside the handler. `where` says which handler, and `checkedBy`
45
- * names the schema it parses with — as the schema itself, not its name in
46
- * prose, so renaming or deleting it fails the build here instead of leaving
47
- * a citation pointing at nothing. Frames whose check is a hand-narrowing or
48
- * lives in another package have no symbol to point at and carry only `where`.
49
- */
50
- | {
51
- readonly validation: 'handler';
52
- readonly where: string;
53
- readonly checkedBy?: z.ZodType;
54
- };
55
- /**
56
- * The protocol's inbound surface. Adding a frame to the server means adding it
57
- * here, which is the point — the compiler cannot enforce that, but the throw on
58
- * an unrecognised type does.
59
- */
60
- export declare const WS_INBOUND_FRAMES: {
61
- readonly ping: {
62
- readonly validation: "handler";
63
- readonly where: "dispatchWsFrame — ignored, no payload";
64
- };
65
- readonly pong: {
66
- readonly validation: "handler";
67
- readonly where: "dispatchWsFrame — ignored, no payload";
68
- };
69
- readonly delta: {
70
- readonly validation: "handler";
71
- readonly where: "the materialiser parses each delta as it applies it";
72
- readonly checkedBy: z.ZodObject<{
73
- id: z.ZodNumber;
74
- actionType: z.ZodEnum<{
75
- I: "I";
76
- U: "U";
77
- D: "D";
78
- A: "A";
79
- V: "V";
80
- C: "C";
81
- G: "G";
82
- S: "S";
83
- }>;
84
- modelName: z.ZodString;
85
- modelId: z.ZodString;
86
- data: z.ZodNullable<z.ZodUnion<readonly [z.ZodRecord<z.ZodString, z.ZodUnknown>, z.ZodString]>>;
87
- previousData: z.ZodOptional<z.ZodNullable<z.ZodUnion<readonly [z.ZodRecord<z.ZodString, z.ZodUnknown>, z.ZodString]>>>;
88
- syncGroups: z.ZodArray<z.ZodString>;
89
- transactionId: z.ZodOptional<z.ZodString>;
90
- correlationId: z.ZodOptional<z.ZodString>;
91
- createdAt: z.ZodString;
92
- createdBy: z.ZodOptional<z.ZodString>;
93
- metadata: z.ZodOptional<z.ZodNullable<z.ZodUnion<readonly [z.ZodRecord<z.ZodString, z.ZodUnknown>, z.ZodString]>>>;
94
- clientMutationId: z.ZodOptional<z.ZodString>;
95
- }, z.core.$strip>;
96
- };
97
- readonly sync_response: {
98
- readonly validation: "handler";
99
- readonly where: "the reactive engine validates it while advancing its resume cursor";
100
- };
101
- readonly bootstrap_response: {
102
- readonly validation: "handler";
103
- readonly where: "the reactive engine validates the bootstrap payload as it applies it";
104
- };
105
- readonly mutation_result: {
106
- readonly validation: "handler";
107
- readonly where: "handleMutationResult — it lifts the frame's notifications and missingIds alongside the payload before this can parse";
108
- readonly checkedBy: z.ZodDiscriminatedUnion<[z.ZodObject<{
109
- status: z.ZodLiteral<"queued">;
110
- correlationId: z.ZodString;
111
- object: z.ZodLiteral<"commit_receipt">;
112
- id: z.ZodOptional<z.ZodString>;
113
- clientTxId: z.ZodString;
114
- serverTxId: z.ZodString;
115
- success: z.ZodLiteral<true>;
116
- lastSyncId: z.ZodNumber;
117
- ops: z.ZodNumber;
118
- notifications: z.ZodOptional<z.ZodArray<z.ZodObject<{
119
- object: z.ZodOptional<z.ZodLiteral<"stale_notification">>;
120
- model: z.ZodString;
121
- id: z.ZodString;
122
- readAt: z.ZodNumber;
123
- observedSyncId: z.ZodNumber;
124
- conflictingFields: z.ZodArray<z.ZodString>;
125
- currentValues: z.ZodRecord<z.ZodString, z.ZodUnknown>;
126
- writtenBy: z.ZodObject<{
127
- kind: z.ZodEnum<{
128
- user: "user";
129
- agent: "agent";
130
- system: "system";
131
- }>;
132
- id: z.ZodString;
133
- }, z.core.$strip>;
134
- group: z.ZodOptional<z.ZodString>;
135
- }, z.core.$strip>>>;
136
- missingIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
137
- }, z.core.$strip>, z.ZodObject<{
138
- status: z.ZodLiteral<"confirmed">;
139
- correlationId: z.ZodOptional<z.ZodString>;
140
- object: z.ZodLiteral<"commit_receipt">;
141
- id: z.ZodOptional<z.ZodString>;
142
- clientTxId: z.ZodString;
143
- serverTxId: z.ZodString;
144
- success: z.ZodLiteral<true>;
145
- lastSyncId: z.ZodNumber;
146
- ops: z.ZodNumber;
147
- notifications: z.ZodOptional<z.ZodArray<z.ZodObject<{
148
- object: z.ZodOptional<z.ZodLiteral<"stale_notification">>;
149
- model: z.ZodString;
150
- id: z.ZodString;
151
- readAt: z.ZodNumber;
152
- observedSyncId: z.ZodNumber;
153
- conflictingFields: z.ZodArray<z.ZodString>;
154
- currentValues: z.ZodRecord<z.ZodString, z.ZodUnknown>;
155
- writtenBy: z.ZodObject<{
156
- kind: z.ZodEnum<{
157
- user: "user";
158
- agent: "agent";
159
- system: "system";
160
- }>;
161
- id: z.ZodString;
162
- }, z.core.$strip>;
163
- group: z.ZodOptional<z.ZodString>;
164
- }, z.core.$strip>>>;
165
- missingIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
166
- }, z.core.$strip>], "status">;
167
- };
168
- readonly claim_ack: {
169
- readonly validation: "handler";
170
- readonly where: "handleClaimAck narrows field by field, because a rejection carries a typed capability error it has to re-raise as CapabilityError";
171
- };
172
- readonly subscription_ack: {
173
- readonly validation: "handler";
174
- readonly where: "handleSubscriptionAck";
175
- readonly checkedBy: z.ZodObject<{
176
- success: z.ZodBoolean;
177
- syncGroups: z.ZodArray<z.ZodString>;
178
- error: z.ZodOptional<z.ZodObject<{
179
- code: z.ZodString;
180
- message: z.ZodString;
181
- }, z.core.$strip>>;
182
- }, z.core.$strip>;
183
- };
184
- readonly presence_update: {
185
- readonly validation: "schema";
186
- readonly payload: z.ZodObject<{
187
- kind: z.ZodEnum<{
188
- enter: "enter";
189
- update: "update";
190
- leave: "leave";
191
- }>;
192
- userId: z.ZodString;
193
- syncGroups: z.ZodOptional<z.ZodArray<z.ZodString>>;
194
- timestamp: z.ZodOptional<z.ZodNumber>;
195
- status: z.ZodString;
196
- timezone: z.ZodOptional<z.ZodString>;
197
- customStatus: z.ZodOptional<z.ZodString>;
198
- activity: z.ZodOptional<z.ZodObject<{
199
- entityType: z.ZodString;
200
- entityId: z.ZodString;
201
- path: z.ZodOptional<z.ZodString>;
202
- range: z.ZodOptional<z.ZodObject<{
203
- startLine: z.ZodNumber;
204
- endLine: z.ZodNumber;
205
- startColumn: z.ZodOptional<z.ZodNumber>;
206
- endColumn: z.ZodOptional<z.ZodNumber>;
207
- }, z.core.$strip>>;
208
- field: z.ZodOptional<z.ZodString>;
209
- fields: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodString>>>;
210
- meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
211
- action: z.ZodString;
212
- detail: z.ZodOptional<z.ZodString>;
213
- loadFactor: z.ZodOptional<z.ZodNumber>;
214
- acceptingNewWork: z.ZodOptional<z.ZodBoolean>;
215
- }, z.core.$strip>>;
216
- isAgent: z.ZodOptional<z.ZodBoolean>;
217
- participantKind: z.ZodOptional<z.ZodPreprocess<z.ZodEnum<{
218
- user: "user";
219
- agent: "agent";
220
- system: "system";
221
- }>>>;
222
- activeClaims: z.ZodOptional<z.ZodArray<z.ZodObject<{
223
- entityType: z.ZodString;
224
- entityId: z.ZodString;
225
- path: z.ZodOptional<z.ZodString>;
226
- range: z.ZodOptional<z.ZodObject<{
227
- startLine: z.ZodNumber;
228
- endLine: z.ZodNumber;
229
- startColumn: z.ZodOptional<z.ZodNumber>;
230
- endColumn: z.ZodOptional<z.ZodNumber>;
231
- }, z.core.$strip>>;
232
- field: z.ZodOptional<z.ZodString>;
233
- fields: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodString>>>;
234
- meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
235
- claimId: z.ZodString;
236
- description: z.ZodOptional<z.ZodString>;
237
- declaredAt: z.ZodNumber;
238
- expiresAt: z.ZodNumber;
239
- onBehalfOfId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
240
- onBehalfOfKind: z.ZodOptional<z.ZodNullable<z.ZodPreprocess<z.ZodEnum<{
241
- user: "user";
242
- agent: "agent";
243
- system: "system";
244
- }>>>>;
245
- capabilityId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
246
- fenceToken: z.ZodOptional<z.ZodNumber>;
247
- acquiredAt: z.ZodOptional<z.ZodNumber>;
248
- status: z.ZodOptional<z.ZodEnum<{
249
- active: "active";
250
- committed: "committed";
251
- expired: "expired";
252
- canceled: "canceled";
253
- }>>;
254
- error: z.ZodOptional<z.ZodObject<{
255
- code: z.ZodString;
256
- message: z.ZodOptional<z.ZodString>;
257
- heldBy: z.ZodOptional<z.ZodString>;
258
- heldByClaimId: z.ZodOptional<z.ZodString>;
259
- heldByExpiresAt: z.ZodOptional<z.ZodNumber>;
260
- heldByClaim: z.ZodOptional<z.ZodObject<{
261
- entityType: z.ZodString;
262
- entityId: z.ZodString;
263
- path: z.ZodOptional<z.ZodString>;
264
- range: z.ZodOptional<z.ZodObject<{
265
- startLine: z.ZodNumber;
266
- endLine: z.ZodNumber;
267
- startColumn: z.ZodOptional<z.ZodNumber>;
268
- endColumn: z.ZodOptional<z.ZodNumber>;
269
- }, z.core.$strip>>;
270
- field: z.ZodOptional<z.ZodString>;
271
- fields: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodString>>>;
272
- meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
273
- claimId: z.ZodString;
274
- description: z.ZodOptional<z.ZodString>;
275
- declaredAt: z.ZodNumber;
276
- expiresAt: z.ZodNumber;
277
- onBehalfOfId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
278
- onBehalfOfKind: z.ZodOptional<z.ZodNullable<z.ZodPreprocess<z.ZodEnum<{
279
- user: "user";
280
- agent: "agent";
281
- system: "system";
282
- }>>>>;
283
- capabilityId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
284
- }, z.core.$strip>>;
285
- policyReason: z.ZodOptional<z.ZodString>;
286
- }, z.core.$strip>>;
287
- }, z.core.$strip>>>;
288
- delegatedFrom: z.ZodOptional<z.ZodNullable<z.ZodString>>;
289
- }, z.core.$catchall<z.ZodUnknown>>;
290
- };
291
- readonly claim_expired: {
292
- readonly validation: "schema";
293
- readonly payload: z.ZodObject<{
294
- claimId: z.ZodString;
295
- }, z.core.$strip>;
296
- };
297
- readonly claim_rejected: {
298
- readonly validation: "schema";
299
- readonly payload: z.ZodObject<{
300
- claimId: z.ZodString;
301
- reason: z.ZodString;
302
- target: z.ZodOptional<z.ZodObject<{
303
- entityType: z.ZodString;
304
- entityId: z.ZodString;
305
- path: z.ZodOptional<z.ZodString>;
306
- range: z.ZodOptional<z.ZodObject<{
307
- startLine: z.ZodNumber;
308
- endLine: z.ZodNumber;
309
- startColumn: z.ZodOptional<z.ZodNumber>;
310
- endColumn: z.ZodOptional<z.ZodNumber>;
311
- }, z.core.$strip>>;
312
- field: z.ZodOptional<z.ZodString>;
313
- fields: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodString>>>;
314
- meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
315
- }, z.core.$strip>>;
316
- heldBy: z.ZodOptional<z.ZodString>;
317
- heldByKind: z.ZodOptional<z.ZodPreprocess<z.ZodEnum<{
318
- user: "user";
319
- agent: "agent";
320
- system: "system";
321
- }>>>;
322
- heldByClaimId: z.ZodOptional<z.ZodString>;
323
- heldByExpiresAt: z.ZodOptional<z.ZodNumber>;
324
- heldByClaim: z.ZodOptional<z.ZodObject<{
325
- entityType: z.ZodString;
326
- entityId: z.ZodString;
327
- path: z.ZodOptional<z.ZodString>;
328
- range: z.ZodOptional<z.ZodObject<{
329
- startLine: z.ZodNumber;
330
- endLine: z.ZodNumber;
331
- startColumn: z.ZodOptional<z.ZodNumber>;
332
- endColumn: z.ZodOptional<z.ZodNumber>;
333
- }, z.core.$strip>>;
334
- field: z.ZodOptional<z.ZodString>;
335
- fields: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodString>>>;
336
- meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
337
- claimId: z.ZodString;
338
- description: z.ZodOptional<z.ZodString>;
339
- declaredAt: z.ZodNumber;
340
- expiresAt: z.ZodNumber;
341
- onBehalfOfId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
342
- onBehalfOfKind: z.ZodOptional<z.ZodNullable<z.ZodPreprocess<z.ZodEnum<{
343
- user: "user";
344
- agent: "agent";
345
- system: "system";
346
- }>>>>;
347
- capabilityId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
348
- }, z.core.$strip>>;
349
- policyReason: z.ZodOptional<z.ZodString>;
350
- }, z.core.$strip>;
351
- };
352
- readonly claim_acquired: {
353
- readonly validation: "schema";
354
- readonly payload: z.ZodObject<{
355
- claimId: z.ZodString;
356
- fenceToken: z.ZodOptional<z.ZodNumber>;
357
- target: z.ZodObject<{
358
- entityType: z.ZodString;
359
- entityId: z.ZodString;
360
- path: z.ZodOptional<z.ZodString>;
361
- range: z.ZodOptional<z.ZodObject<{
362
- startLine: z.ZodNumber;
363
- endLine: z.ZodNumber;
364
- startColumn: z.ZodOptional<z.ZodNumber>;
365
- endColumn: z.ZodOptional<z.ZodNumber>;
366
- }, z.core.$strip>>;
367
- field: z.ZodOptional<z.ZodString>;
368
- fields: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodString>>>;
369
- meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
370
- }, z.core.$strip>;
371
- }, z.core.$strip>;
372
- };
373
- readonly claim_queued: {
374
- readonly validation: "schema";
375
- readonly payload: z.ZodObject<{
376
- claimId: z.ZodString;
377
- target: z.ZodOptional<z.ZodObject<{
378
- entityType: z.ZodString;
379
- entityId: z.ZodString;
380
- path: z.ZodOptional<z.ZodString>;
381
- range: z.ZodOptional<z.ZodObject<{
382
- startLine: z.ZodNumber;
383
- endLine: z.ZodNumber;
384
- startColumn: z.ZodOptional<z.ZodNumber>;
385
- endColumn: z.ZodOptional<z.ZodNumber>;
386
- }, z.core.$strip>>;
387
- field: z.ZodOptional<z.ZodString>;
388
- fields: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodString>>>;
389
- meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
390
- }, z.core.$strip>>;
391
- heldBy: z.ZodOptional<z.ZodString>;
392
- heldByKind: z.ZodOptional<z.ZodPreprocess<z.ZodEnum<{
393
- user: "user";
394
- agent: "agent";
395
- system: "system";
396
- }>>>;
397
- heldByClaimId: z.ZodOptional<z.ZodString>;
398
- heldByExpiresAt: z.ZodOptional<z.ZodNumber>;
399
- heldByClaim: z.ZodOptional<z.ZodObject<{
400
- entityType: z.ZodString;
401
- entityId: z.ZodString;
402
- path: z.ZodOptional<z.ZodString>;
403
- range: z.ZodOptional<z.ZodObject<{
404
- startLine: z.ZodNumber;
405
- endLine: z.ZodNumber;
406
- startColumn: z.ZodOptional<z.ZodNumber>;
407
- endColumn: z.ZodOptional<z.ZodNumber>;
408
- }, z.core.$strip>>;
409
- field: z.ZodOptional<z.ZodString>;
410
- fields: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodString>>>;
411
- meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
412
- claimId: z.ZodString;
413
- description: z.ZodOptional<z.ZodString>;
414
- declaredAt: z.ZodNumber;
415
- expiresAt: z.ZodNumber;
416
- onBehalfOfId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
417
- onBehalfOfKind: z.ZodOptional<z.ZodNullable<z.ZodPreprocess<z.ZodEnum<{
418
- user: "user";
419
- agent: "agent";
420
- system: "system";
421
- }>>>>;
422
- capabilityId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
423
- }, z.core.$strip>>;
424
- policyReason: z.ZodOptional<z.ZodString>;
425
- position: z.ZodNumber;
426
- reason: z.ZodOptional<z.ZodString>;
427
- }, z.core.$strip>;
428
- };
429
- readonly claim_granted: {
430
- readonly validation: "schema";
431
- readonly payload: z.ZodObject<{
432
- claimId: z.ZodString;
433
- fenceToken: z.ZodOptional<z.ZodNumber>;
434
- target: z.ZodObject<{
435
- entityType: z.ZodString;
436
- entityId: z.ZodString;
437
- path: z.ZodOptional<z.ZodString>;
438
- range: z.ZodOptional<z.ZodObject<{
439
- startLine: z.ZodNumber;
440
- endLine: z.ZodNumber;
441
- startColumn: z.ZodOptional<z.ZodNumber>;
442
- endColumn: z.ZodOptional<z.ZodNumber>;
443
- }, z.core.$strip>>;
444
- field: z.ZodOptional<z.ZodString>;
445
- fields: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodString>>>;
446
- meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
447
- }, z.core.$strip>;
448
- }, z.core.$strip>;
449
- };
450
- readonly claim_lost: {
451
- readonly validation: "schema";
452
- readonly payload: z.ZodObject<{
453
- claimId: z.ZodString;
454
- reason: z.ZodEnum<{
455
- expired: "expired";
456
- preempted: "preempted";
457
- }>;
458
- target: z.ZodObject<{
459
- entityType: z.ZodString;
460
- entityId: z.ZodString;
461
- path: z.ZodOptional<z.ZodString>;
462
- range: z.ZodOptional<z.ZodObject<{
463
- startLine: z.ZodNumber;
464
- endLine: z.ZodNumber;
465
- startColumn: z.ZodOptional<z.ZodNumber>;
466
- endColumn: z.ZodOptional<z.ZodNumber>;
467
- }, z.core.$strip>>;
468
- field: z.ZodOptional<z.ZodString>;
469
- fields: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodString>>>;
470
- meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
471
- }, z.core.$strip>;
472
- }, z.core.$strip>;
473
- };
474
- readonly claim_queue: {
475
- readonly validation: "schema";
476
- readonly payload: z.ZodObject<{
477
- target: z.ZodObject<{
478
- type: z.ZodString;
479
- id: z.ZodString;
480
- }, z.core.$strip>;
481
- queue: z.ZodArray<z.ZodObject<{
482
- object: z.ZodLiteral<"claim">;
483
- id: z.ZodString;
484
- status: z.ZodLiteral<"queued">;
485
- target: z.ZodObject<{
486
- field: z.ZodOptional<z.ZodString>;
487
- path: z.ZodOptional<z.ZodString>;
488
- range: z.ZodOptional<z.ZodObject<{
489
- startLine: z.ZodNumber;
490
- endLine: z.ZodNumber;
491
- startColumn: z.ZodOptional<z.ZodNumber>;
492
- endColumn: z.ZodOptional<z.ZodNumber>;
493
- }, z.core.$strip>>;
494
- fields: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodString>>>;
495
- meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
496
- type: z.ZodString;
497
- id: z.ZodString;
498
- }, z.core.$strip>;
499
- description: z.ZodDefault<z.ZodString>;
500
- heldBy: z.ZodOptional<z.ZodString>;
501
- participantKind: z.ZodOptional<z.ZodPreprocess<z.ZodEnum<{
502
- user: "user";
503
- agent: "agent";
504
- system: "system";
505
- }>>>;
506
- position: z.ZodNumber;
507
- expiresAt: z.ZodNumber;
508
- }, z.core.$strip>>;
509
- }, z.core.$strip>;
510
- };
511
- readonly claim_heartbeat_ack: {
512
- readonly validation: "schema";
513
- readonly payload: z.ZodObject<{
514
- claimId: z.ZodString;
515
- status: z.ZodEnum<{
516
- queued: "queued";
517
- held: "held";
518
- lost: "lost";
519
- }>;
520
- expiresAt: z.ZodOptional<z.ZodNumber>;
521
- position: z.ZodOptional<z.ZodNumber>;
522
- queueDepth: z.ZodOptional<z.ZodNumber>;
523
- }, z.core.$strip>;
524
- };
525
- };
526
- /** Every frame type the protocol declares. */
527
- export type InboundFrameType = keyof typeof WS_INBOUND_FRAMES;
528
- /**
529
- * The validated payload type of each schema-checked frame, read straight off
530
- * the registry. A handler that takes one of these gets the shape the
531
- * dispatcher proved, with no second declaration to keep in step and no cast at
532
- * the point of use.
533
- */
534
- export type InboundFramePayload = {
535
- [K in InboundFrameType]: (typeof WS_INBOUND_FRAMES)[K] extends {
536
- readonly payload: infer P extends z.ZodType;
537
- } ? z.infer<P> : never;
538
- };
539
- /** The frame types the dispatcher parses before calling a handler. */
540
- export type SchemaValidatedFrameType = {
541
- [K in InboundFrameType]: (typeof WS_INBOUND_FRAMES)[K] extends {
542
- readonly validation: 'schema';
543
- } ? K : never;
544
- }[InboundFrameType];
545
- /** Whether the protocol declares this frame type at all. */
546
- export declare function isKnownInboundFrame(type: string): type is InboundFrameType;
547
- /**
548
- * Whether this frame's payload is parsed before dispatch. Declared as a
549
- * predicate, and declared here, because the fact it asserts is a fact about the
550
- * registry directly above it: the two cannot be edited apart.
551
- */
552
- export declare function isSchemaValidatedFrame(type: InboundFrameType): type is SchemaValidatedFrameType;
@@ -1,116 +0,0 @@
1
- /**
2
- * Every frame the server can send, in one list.
3
- *
4
- * Before this existed, "what frames are there" was answerable only by reading
5
- * the dispatch table, the transport's event map, and each handler's defensive
6
- * narrowing together — three places that agreed by convention. This registry is
7
- * the single answer, and it carries how each frame's payload is validated.
8
- *
9
- * A frame is validated one of two ways. Most carry a `payload` schema and are
10
- * parsed here, before the handler runs, so a handler receives a value whose
11
- * shape is already proven. The rest are marked `handler` because their
12
- * validation is genuinely load-bearing elsewhere — a delta is checked once
13
- * downstream against the schema the materialiser holds, and a commit receipt
14
- * has to tolerate an older server's spelling before it can be parsed. Each of
15
- * those says where its check lives, so `handler` is a citation and never an
16
- * excuse.
17
- *
18
- * A frame type absent from this registry is rejected. That is deliberate: the
19
- * server and this package ship from one repository, so an unrecognised frame
20
- * means the two have drifted, and failing loudly beats materialising a change
21
- * nobody validated. Application-level collaboration events are the exception —
22
- * they are registered by the consumer at construction time, not by the
23
- * protocol, and are dispatched separately.
24
- */
25
- import { z } from 'zod';
26
- import { commitReceiptSchema } from './commit.js';
27
- import { clientSyncDeltaSchema } from './delta.js';
28
- import { claimAcquiredSchema, claimExpiredSchema, claimGrantedSchema, claimHeartbeatAckPayloadSchema, claimLostSchema, claimQueuedSchema, claimQueueSchema, claimRejectionSchema, presenceUpdateSchema, subscriptionAckPayloadSchema, } from '../coordination/schema.js';
29
- /**
30
- * The envelope itself: a type and a payload. `catchall` keeps the extra keys,
31
- * because the oldest delta form puts a delta's own fields at the top level
32
- * instead of under `payload`, and the dispatcher still has to recognise it.
33
- */
34
- export const wsInboundEnvelopeSchema = z
35
- .object({
36
- type: z.string().optional(),
37
- payload: z.unknown().optional(),
38
- })
39
- .catchall(z.unknown());
40
- /**
41
- * The protocol's inbound surface. Adding a frame to the server means adding it
42
- * here, which is the point — the compiler cannot enforce that, but the throw on
43
- * an unrecognised type does.
44
- */
45
- export const WS_INBOUND_FRAMES = {
46
- // ── Keepalive ──────────────────────────────────────────────────────────
47
- ping: { validation: 'handler', where: 'dispatchWsFrame — ignored, no payload' },
48
- pong: { validation: 'handler', where: 'dispatchWsFrame — ignored, no payload' },
49
- // ── Materialisation ────────────────────────────────────────────────────
50
- delta: {
51
- validation: 'handler',
52
- // Not parsed at dispatch because a delta frame carries a batch: each entry
53
- // is validated on its own so one malformed delta is dropped rather than
54
- // sinking the batch around it.
55
- where: 'the materialiser parses each delta as it applies it',
56
- checkedBy: clientSyncDeltaSchema,
57
- },
58
- sync_response: {
59
- validation: 'handler',
60
- // No `checkedBy`: the schema lives in the reactive engine
61
- // (`sync/schemas.ts`), which consumes this package. The core cannot name a
62
- // symbol from its own consumer, and inverting the dependency to make this
63
- // citation checkable would put materialisation vocabulary in the core —
64
- // the exact thing the seam exists to keep out.
65
- where: 'the reactive engine validates it while advancing its resume cursor',
66
- },
67
- bootstrap_response: {
68
- validation: 'handler',
69
- // No `checkedBy`, for the same reason as `sync_response` above.
70
- where: 'the reactive engine validates the bootstrap payload as it applies it',
71
- },
72
- // ── Commit ─────────────────────────────────────────────────────────────
73
- mutation_result: {
74
- validation: 'handler',
75
- where: 'handleMutationResult — it lifts the frame\'s notifications and missingIds alongside the payload before this can parse',
76
- checkedBy: commitReceiptSchema,
77
- },
78
- // ── Requests we made ───────────────────────────────────────────────────
79
- claim_ack: {
80
- validation: 'handler',
81
- where: 'handleClaimAck narrows field by field, because a rejection carries a typed capability error it has to re-raise as CapabilityError',
82
- },
83
- subscription_ack: {
84
- validation: 'handler',
85
- // Not parsed at dispatch because the handler must first claim the oldest
86
- // pending request: a payload that failed here would otherwise leave that
87
- // request hanging until its timeout instead of being rejected with a cause.
88
- where: 'handleSubscriptionAck',
89
- checkedBy: subscriptionAckPayloadSchema,
90
- },
91
- // ── Coordination ───────────────────────────────────────────────────────
92
- presence_update: { validation: 'schema', payload: presenceUpdateSchema },
93
- claim_expired: { validation: 'schema', payload: claimExpiredSchema },
94
- claim_rejected: { validation: 'schema', payload: claimRejectionSchema },
95
- claim_acquired: { validation: 'schema', payload: claimAcquiredSchema },
96
- claim_queued: { validation: 'schema', payload: claimQueuedSchema },
97
- claim_granted: { validation: 'schema', payload: claimGrantedSchema },
98
- claim_lost: { validation: 'schema', payload: claimLostSchema },
99
- claim_queue: { validation: 'schema', payload: claimQueueSchema },
100
- claim_heartbeat_ack: {
101
- validation: 'schema',
102
- payload: claimHeartbeatAckPayloadSchema,
103
- },
104
- };
105
- /** Whether the protocol declares this frame type at all. */
106
- export function isKnownInboundFrame(type) {
107
- return Object.prototype.hasOwnProperty.call(WS_INBOUND_FRAMES, type);
108
- }
109
- /**
110
- * Whether this frame's payload is parsed before dispatch. Declared as a
111
- * predicate, and declared here, because the fact it asserts is a fact about the
112
- * registry directly above it: the two cannot be edited apart.
113
- */
114
- export function isSchemaValidatedFrame(type) {
115
- return WS_INBOUND_FRAMES[type].validation === 'schema';
116
- }