@abloatai/ablo 0.26.0 → 0.27.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.
- package/CHANGELOG.md +14 -0
- package/README.md +101 -85
- package/dist/BaseSyncedStore.d.ts +85 -88
- package/dist/BaseSyncedStore.js +131 -147
- package/dist/Database.d.ts +54 -68
- package/dist/Database.js +97 -113
- package/dist/{ObjectPool.d.ts → InstanceCache.d.ts} +10 -13
- package/dist/{ObjectPool.js → InstanceCache.js} +85 -83
- package/dist/LazyReferenceCollection.d.ts +11 -15
- package/dist/LazyReferenceCollection.js +12 -16
- package/dist/Model.d.ts +37 -52
- package/dist/Model.js +46 -61
- package/dist/ModelRegistry.d.ts +21 -19
- package/dist/ModelRegistry.js +23 -27
- package/dist/NetworkMonitor.d.ts +5 -6
- package/dist/NetworkMonitor.js +5 -6
- package/dist/SyncClient.d.ts +112 -112
- package/dist/SyncClient.js +165 -172
- package/dist/adapters/alwaysOnline.d.ts +6 -8
- package/dist/adapters/alwaysOnline.js +6 -8
- package/dist/adapters/inMemoryStorage.d.ts +9 -9
- package/dist/adapters/inMemoryStorage.js +9 -9
- package/dist/agent/Agent.d.ts +27 -32
- package/dist/agent/Agent.js +18 -19
- package/dist/agent/index.d.ts +4 -4
- package/dist/agent/index.js +5 -5
- package/dist/agent/session.d.ts +47 -44
- package/dist/agent/session.js +37 -48
- package/dist/agent/types.d.ts +26 -31
- package/dist/agent/types.js +6 -7
- package/dist/ai-sdk/coordinatedTool.d.ts +108 -0
- package/dist/ai-sdk/{coordinated-tool.js → coordinatedTool.js} +44 -38
- package/dist/ai-sdk/coordinationContext.d.ts +46 -0
- package/dist/ai-sdk/{coordination-context.js → coordinationContext.js} +26 -33
- package/dist/ai-sdk/index.d.ts +25 -22
- package/dist/ai-sdk/index.js +25 -22
- package/dist/ai-sdk/wrap.d.ts +6 -7
- package/dist/ai-sdk/wrap.js +1 -1
- package/dist/auth/credentialPolicy.d.ts +69 -74
- package/dist/auth/credentialPolicy.js +51 -56
- package/dist/auth/credentialSource.d.ts +6 -5
- package/dist/auth/credentialSource.js +9 -10
- package/dist/auth/index.d.ts +59 -58
- package/dist/auth/index.js +31 -37
- package/dist/auth/schemas.d.ts +5 -4
- package/dist/auth/schemas.js +5 -4
- package/dist/batching/index.d.ts +19 -21
- package/dist/batching/index.js +14 -17
- package/dist/cli.cjs +167 -119
- package/dist/client/Ablo.d.ts +73 -73
- package/dist/client/Ablo.js +125 -160
- package/dist/client/ApiClient.d.ts +30 -19
- package/dist/client/ApiClient.js +133 -38
- package/dist/client/auth.d.ts +47 -47
- package/dist/client/auth.js +108 -117
- package/dist/client/claimHeartbeatLoop.d.ts +50 -0
- package/dist/client/claimHeartbeatLoop.js +88 -0
- package/dist/client/consoleLogger.d.ts +5 -6
- package/dist/client/consoleLogger.js +5 -6
- package/dist/client/createInternalComponents.d.ts +14 -17
- package/dist/client/createInternalComponents.js +25 -30
- package/dist/client/createModelProxy.d.ts +130 -120
- package/dist/client/createModelProxy.js +152 -122
- package/dist/client/credentialEndpoint.d.ts +40 -42
- package/dist/client/credentialEndpoint.js +35 -36
- package/dist/client/functionalUpdate.d.ts +29 -27
- package/dist/client/functionalUpdate.js +21 -21
- package/dist/client/hostedEndpoints.d.ts +9 -12
- package/dist/client/hostedEndpoints.js +9 -12
- package/dist/client/httpClient.d.ts +57 -53
- package/dist/client/httpClient.js +29 -31
- package/dist/client/identity.d.ts +15 -20
- package/dist/client/identity.js +47 -58
- package/dist/client/modelRegistration.d.ts +5 -9
- package/dist/client/modelRegistration.js +67 -87
- package/dist/client/options.d.ts +134 -157
- package/dist/client/options.js +3 -7
- package/dist/client/registerDataSource.d.ts +9 -9
- package/dist/client/registerDataSource.js +15 -16
- package/dist/client/resourceTypes.d.ts +64 -75
- package/dist/client/resourceTypes.js +4 -10
- package/dist/client/schemaConfig.d.ts +31 -43
- package/dist/client/schemaConfig.js +38 -50
- package/dist/client/sessionMint.d.ts +16 -12
- package/dist/client/sessionMint.js +26 -31
- package/dist/client/validateAbloOptions.d.ts +12 -14
- package/dist/client/validateAbloOptions.js +8 -9
- package/dist/client/writeOptionsSchema.d.ts +18 -16
- package/dist/client/writeOptionsSchema.js +23 -20
- package/dist/client/wsMutationExecutor.d.ts +15 -20
- package/dist/client/wsMutationExecutor.js +17 -23
- package/dist/context.d.ts +6 -4
- package/dist/context.js +6 -4
- package/dist/coordination/index.d.ts +10 -8
- package/dist/coordination/index.js +14 -12
- package/dist/coordination/schema.d.ts +176 -128
- package/dist/coordination/schema.js +197 -133
- package/dist/coordination/trace.d.ts +9 -10
- package/dist/coordination/trace.js +13 -14
- package/dist/core/DatabaseManager.d.ts +5 -7
- package/dist/core/DatabaseManager.js +15 -19
- package/dist/core/QueryProcessor.d.ts +7 -9
- package/dist/core/QueryProcessor.js +22 -28
- package/dist/core/QueryView.d.ts +8 -8
- package/dist/core/QueryView.js +2 -2
- package/dist/core/StoreManager.d.ts +12 -14
- package/dist/core/StoreManager.js +21 -24
- package/dist/core/ViewRegistry.d.ts +5 -5
- package/dist/core/ViewRegistry.js +4 -4
- package/dist/core/index.d.ts +17 -12
- package/dist/core/index.js +32 -26
- package/dist/core/openIDBWithTimeout.d.ts +38 -36
- package/dist/core/openIDBWithTimeout.js +42 -43
- package/dist/core/queryUtils.d.ts +45 -0
- package/dist/core/queryUtils.js +69 -0
- package/dist/core/storeContract.d.ts +63 -61
- package/dist/core/storeContract.js +8 -12
- package/dist/environment.d.ts +28 -0
- package/dist/environment.js +21 -0
- package/dist/errorCodes.d.ts +107 -99
- package/dist/errorCodes.js +131 -132
- package/dist/errors.d.ts +160 -166
- package/dist/errors.js +155 -158
- package/dist/index.d.ts +30 -27
- package/dist/index.js +89 -86
- package/dist/interfaces/index.d.ts +102 -113
- package/dist/interfaces/index.js +5 -4
- package/dist/keys/index.d.ts +27 -29
- package/dist/keys/index.js +41 -40
- package/dist/mutators/RecordingTransaction.d.ts +16 -16
- package/dist/mutators/RecordingTransaction.js +31 -37
- package/dist/mutators/Transaction.d.ts +18 -26
- package/dist/mutators/Transaction.js +14 -20
- package/dist/mutators/UndoManager.d.ts +122 -131
- package/dist/mutators/UndoManager.js +145 -156
- package/dist/mutators/defineMutators.d.ts +23 -34
- package/dist/mutators/defineMutators.js +14 -20
- package/dist/mutators/inverseOp.d.ts +12 -15
- package/dist/mutators/inverseOp.js +12 -15
- package/dist/mutators/mutateActions.d.ts +10 -9
- package/dist/mutators/mutateActions.js +1 -1
- package/dist/mutators/readerActions.d.ts +9 -8
- package/dist/mutators/readerActions.js +2 -2
- package/dist/mutators/undoApply.d.ts +31 -27
- package/dist/mutators/undoApply.js +26 -24
- package/dist/policy/index.d.ts +5 -3
- package/dist/policy/index.js +5 -3
- package/dist/policy/types.d.ts +104 -100
- package/dist/policy/types.js +67 -66
- package/dist/query/client.d.ts +28 -23
- package/dist/query/client.js +45 -43
- package/dist/query/types.d.ts +37 -60
- package/dist/query/types.js +13 -33
- package/dist/react/AbloProvider.d.ts +1 -1
- package/dist/react/AbloProvider.js +2 -2
- package/dist/react/context.d.ts +25 -28
- package/dist/react/context.js +9 -10
- package/dist/react/index.d.ts +41 -42
- package/dist/react/index.js +37 -38
- package/dist/react/internalContext.d.ts +17 -19
- package/dist/react/useAblo.d.ts +23 -22
- package/dist/react/useAblo.js +16 -14
- package/dist/react/useCurrentUserId.d.ts +8 -7
- package/dist/react/useCurrentUserId.js +8 -7
- package/dist/react/useErrorListener.d.ts +7 -7
- package/dist/react/useErrorListener.js +10 -11
- package/dist/react/useMutationFailureListener.d.ts +8 -8
- package/dist/react/useMutationFailureListener.js +8 -8
- package/dist/react/useMutators.d.ts +11 -11
- package/dist/react/useMutators.js +3 -3
- package/dist/react/useReactive.js +2 -2
- package/dist/react/useSyncStatus.d.ts +4 -6
- package/dist/react/useUndoScope.d.ts +7 -9
- package/dist/react/useUndoScope.js +1 -1
- package/dist/schema/coordination.d.ts +21 -25
- package/dist/schema/coordination.js +21 -25
- package/dist/schema/ddl.d.ts +43 -39
- package/dist/schema/ddl.js +75 -68
- package/dist/schema/ddlLock.d.ts +20 -24
- package/dist/schema/ddlLock.js +18 -23
- package/dist/schema/diff.d.ts +99 -61
- package/dist/schema/diff.js +43 -34
- package/dist/schema/field.d.ts +37 -42
- package/dist/schema/field.js +35 -48
- package/dist/schema/generate.d.ts +12 -12
- package/dist/schema/generate.js +12 -12
- package/dist/schema/index.d.ts +2 -2
- package/dist/schema/index.js +21 -23
- package/dist/schema/model.d.ts +118 -143
- package/dist/schema/model.js +22 -33
- package/dist/schema/openapi.d.ts +10 -9
- package/dist/schema/openapi.js +5 -3
- package/dist/schema/queries.d.ts +29 -31
- package/dist/schema/queries.js +23 -25
- package/dist/schema/relation.d.ts +89 -99
- package/dist/schema/relation.js +13 -13
- package/dist/schema/residency.d.ts +16 -13
- package/dist/schema/residency.js +16 -13
- package/dist/schema/roles.d.ts +36 -43
- package/dist/schema/roles.js +31 -37
- package/dist/schema/schema.d.ts +33 -42
- package/dist/schema/schema.js +31 -32
- package/dist/schema/select.d.ts +13 -13
- package/dist/schema/select.js +13 -13
- package/dist/schema/serialize.d.ts +28 -31
- package/dist/schema/serialize.js +27 -31
- package/dist/schema/sugar.d.ts +17 -32
- package/dist/schema/sugar.js +14 -29
- package/dist/schema/{sync-delta-row.d.ts → syncDeltaRow.d.ts} +26 -49
- package/dist/schema/syncDeltaRow.js +89 -0
- package/dist/schema/tenancy.d.ts +44 -46
- package/dist/schema/tenancy.js +46 -48
- package/dist/server/adapter.d.ts +58 -58
- package/dist/server/adapter.js +13 -14
- package/dist/server/commit.d.ts +60 -64
- package/dist/server/index.d.ts +9 -10
- package/dist/server/index.js +1 -1
- package/dist/server/readConfig.d.ts +70 -0
- package/dist/server/readConfig.js +8 -0
- package/dist/server/storageMode.d.ts +23 -0
- package/dist/server/storageMode.js +17 -0
- package/dist/source/adapter.d.ts +30 -25
- package/dist/source/adapter.js +10 -10
- package/dist/source/adapters/drizzle.d.ts +28 -23
- package/dist/source/adapters/drizzle.js +30 -25
- package/dist/source/adapters/kysely.d.ts +27 -25
- package/dist/source/adapters/kysely.js +24 -23
- package/dist/source/adapters/memory.d.ts +8 -7
- package/dist/source/adapters/memory.js +9 -8
- package/dist/source/adapters/prisma.d.ts +13 -12
- package/dist/source/adapters/prisma.js +22 -25
- package/dist/source/conformance.d.ts +18 -11
- package/dist/source/conformance.js +17 -11
- package/dist/source/connector.d.ts +31 -32
- package/dist/source/connector.js +28 -28
- package/dist/source/connectorProtocol.d.ts +160 -0
- package/dist/source/connectorProtocol.js +162 -0
- package/dist/source/contract.d.ts +26 -27
- package/dist/source/contract.js +28 -29
- package/dist/source/factory.d.ts +46 -58
- package/dist/source/factory.js +22 -27
- package/dist/source/index.d.ts +7 -9
- package/dist/source/index.js +12 -14
- package/dist/source/migrations.d.ts +9 -9
- package/dist/source/migrations.js +9 -9
- package/dist/source/next.d.ts +9 -10
- package/dist/source/next.js +6 -7
- package/dist/source/pushQueue.d.ts +69 -47
- package/dist/source/pushQueue.js +32 -28
- package/dist/source/signing.d.ts +46 -17
- package/dist/source/signing.js +28 -11
- package/dist/source/types.d.ts +121 -104
- package/dist/source/types.js +13 -14
- package/dist/stores/ObjectStore.d.ts +10 -11
- package/dist/stores/ObjectStore.js +11 -12
- package/dist/stores/ObjectStoreContract.d.ts +12 -15
- package/dist/stores/SyncActionStore.d.ts +7 -11
- package/dist/stores/SyncActionStore.js +13 -17
- package/dist/surface.d.ts +27 -20
- package/dist/surface.js +27 -20
- package/dist/sync/{BootstrapHelper.d.ts → BootstrapFetcher.d.ts} +36 -42
- package/dist/sync/{BootstrapHelper.js → BootstrapFetcher.js} +76 -76
- package/dist/sync/ConnectionManager.d.ts +39 -50
- package/dist/sync/ConnectionManager.js +55 -66
- package/dist/sync/NetworkProbe.d.ts +24 -29
- package/dist/sync/NetworkProbe.js +63 -69
- package/dist/sync/{HydrationCoordinator.d.ts → OnDemandLoader.d.ts} +42 -41
- package/dist/sync/{HydrationCoordinator.js → OnDemandLoader.js} +59 -54
- package/dist/sync/{AreaOfInterestManager.d.ts → SubscriptionManager.d.ts} +43 -57
- package/dist/sync/{AreaOfInterestManager.js → SubscriptionManager.js} +43 -51
- package/dist/sync/SyncWebSocket.d.ts +139 -165
- package/dist/sync/SyncWebSocket.js +191 -223
- package/dist/sync/awaitClaimGrant.d.ts +18 -18
- package/dist/sync/awaitClaimGrant.js +11 -11
- package/dist/sync/bootstrapApply.d.ts +34 -24
- package/dist/sync/bootstrapApply.js +27 -19
- package/dist/sync/commitFrames.d.ts +21 -20
- package/dist/sync/commitFrames.js +18 -18
- package/dist/sync/createClaimStream.d.ts +23 -22
- package/dist/sync/createClaimStream.js +105 -23
- package/dist/sync/createPresenceStream.d.ts +19 -18
- package/dist/sync/createPresenceStream.js +25 -26
- package/dist/sync/createSnapshot.d.ts +12 -14
- package/dist/sync/createSnapshot.js +20 -26
- package/dist/sync/credentialLifecycle.d.ts +104 -104
- package/dist/sync/credentialLifecycle.js +140 -147
- package/dist/sync/deltaPipeline.d.ts +36 -34
- package/dist/sync/deltaPipeline.js +64 -65
- package/dist/sync/groupChange.d.ts +63 -61
- package/dist/sync/groupChange.js +74 -78
- package/dist/sync/heartbeat.d.ts +34 -33
- package/dist/sync/heartbeat.js +31 -31
- package/dist/sync/participants.d.ts +19 -19
- package/dist/sync/schemas.d.ts +3 -2
- package/dist/sync/schemas.js +14 -10
- package/dist/sync/syncCursor.d.ts +17 -21
- package/dist/sync/syncCursor.js +17 -21
- package/dist/sync/syncPlan.d.ts +28 -36
- package/dist/sync/syncPlan.js +18 -19
- package/dist/sync/syncPosition.d.ts +54 -49
- package/dist/sync/syncPosition.js +57 -52
- package/dist/sync/wsFrameHandlers.d.ts +35 -36
- package/dist/sync/wsFrameHandlers.js +63 -67
- package/dist/testing/fixtures/bootstrap.d.ts +12 -6
- package/dist/testing/fixtures/bootstrap.js +12 -6
- package/dist/testing/fixtures/deltas.d.ts +30 -33
- package/dist/testing/fixtures/deltas.js +30 -33
- package/dist/testing/fixtures/models.d.ts +11 -10
- package/dist/testing/fixtures/models.js +11 -10
- package/dist/testing/helpers/{react-wrapper.d.ts → reactWrapper.d.ts} +13 -10
- package/dist/testing/helpers/{react-wrapper.js → reactWrapper.js} +15 -12
- package/dist/testing/helpers/{sync-engine-harness.d.ts → syncEngineHarness.d.ts} +17 -15
- package/dist/testing/helpers/{sync-engine-harness.js → syncEngineHarness.js} +12 -10
- package/dist/testing/helpers/wait.d.ts +13 -8
- package/dist/testing/helpers/wait.js +13 -8
- package/dist/testing/index.d.ts +3 -3
- package/dist/testing/index.js +2 -2
- package/dist/testing/mocks/MockMutationExecutor.d.ts +18 -17
- package/dist/testing/mocks/MockMutationExecutor.js +15 -14
- package/dist/testing/mocks/MockNetworkMonitor.d.ts +8 -8
- package/dist/testing/mocks/MockNetworkMonitor.js +8 -8
- package/dist/testing/mocks/MockSyncContext.d.ts +20 -17
- package/dist/testing/mocks/MockSyncContext.js +15 -13
- package/dist/testing/mocks/MockSyncStore.d.ts +10 -10
- package/dist/testing/mocks/MockSyncStore.js +11 -11
- package/dist/testing/mocks/MockWebSocket.d.ts +26 -22
- package/dist/testing/mocks/MockWebSocket.js +22 -21
- package/dist/transactions/TransactionQueue.d.ts +181 -176
- package/dist/transactions/TransactionQueue.js +338 -350
- package/dist/transactions/TransactionStore.d.ts +6 -4
- package/dist/transactions/TransactionStore.js +6 -4
- package/dist/transactions/UnconfirmedWrites.d.ts +82 -0
- package/dist/transactions/UnconfirmedWrites.js +104 -0
- package/dist/transactions/coalesceRules.d.ts +41 -17
- package/dist/transactions/coalesceRules.js +40 -17
- package/dist/transactions/commitPayload.d.ts +48 -52
- package/dist/transactions/commitPayload.js +48 -57
- package/dist/transactions/deltaConfirmation.d.ts +20 -22
- package/dist/transactions/deltaConfirmation.js +37 -45
- package/dist/transactions/optimisticApply.d.ts +49 -0
- package/dist/transactions/optimisticApply.js +65 -0
- package/dist/transactions/{persistedReplay.d.ts → replayValidation.d.ts} +28 -22
- package/dist/transactions/{persistedReplay.js → replayValidation.js} +33 -27
- package/dist/types/global.d.ts +46 -41
- package/dist/types/global.js +20 -19
- package/dist/types/index.d.ts +71 -77
- package/dist/types/index.js +22 -22
- package/dist/types/modelData.d.ts +6 -8
- package/dist/types/modelData.js +5 -7
- package/dist/types/participant.d.ts +10 -11
- package/dist/types/participant.js +6 -8
- package/dist/types/streams.d.ts +208 -195
- package/dist/types/streams.js +7 -7
- package/dist/utils/asyncIterator.d.ts +25 -32
- package/dist/utils/asyncIterator.js +25 -32
- package/dist/utils/duration.d.ts +12 -15
- package/dist/utils/duration.js +12 -15
- package/dist/utils/mobxSetup.d.ts +53 -0
- package/dist/utils/{mobx-setup.js → mobxSetup.js} +42 -98
- package/dist/webhooks/events.d.ts +21 -16
- package/dist/webhooks/events.js +10 -8
- package/dist/webhooks/index.d.ts +5 -7
- package/dist/webhooks/index.js +5 -7
- package/dist/{schema/sync-delta-wire.d.ts → wire/delta.d.ts} +58 -41
- package/dist/wire/delta.js +114 -0
- package/dist/wire/errorEnvelope.d.ts +30 -31
- package/dist/wire/errorEnvelope.js +34 -40
- package/dist/wire/frames.d.ts +79 -86
- package/dist/wire/frames.js +26 -33
- package/dist/wire/index.d.ts +14 -12
- package/dist/wire/index.js +30 -26
- package/dist/wire/listEnvelope.d.ts +16 -23
- package/dist/wire/listEnvelope.js +7 -6
- package/dist/wire/protocol.d.ts +25 -32
- package/dist/wire/protocol.js +25 -32
- package/dist/wire/protocolVersion.d.ts +44 -40
- package/dist/wire/protocolVersion.js +44 -40
- package/docs/coordination.md +59 -0
- package/package.json +11 -10
- package/dist/ai-sdk/coordinated-tool.d.ts +0 -101
- package/dist/ai-sdk/coordination-context.d.ts +0 -52
- package/dist/core/query-utils.d.ts +0 -34
- package/dist/core/query-utils.js +0 -59
- package/dist/schema/sync-delta-row.js +0 -103
- package/dist/schema/sync-delta-wire.js +0 -102
- package/dist/server/read-config.d.ts +0 -67
- package/dist/server/read-config.js +0 -8
- package/dist/server/storage-mode.d.ts +0 -8
- package/dist/server/storage-mode.js +0 -28
- package/dist/source/connector-protocol.d.ts +0 -159
- package/dist/source/connector-protocol.js +0 -161
- package/dist/transactions/OptimisticEchoTracker.d.ts +0 -82
- package/dist/transactions/OptimisticEchoTracker.js +0 -104
- package/dist/transactions/mutation-error-handler.d.ts +0 -5
- package/dist/transactions/mutation-error-handler.js +0 -39
- package/dist/transactions/optimistic.d.ts +0 -24
- package/dist/transactions/optimistic.js +0 -45
- package/dist/utils/mobx-setup.d.ts +0 -42
|
@@ -1,22 +1,19 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* one decision") for the conceptual model. The layers, outer-to-inner:
|
|
3
|
+
* The wire schemas for coordination — the shapes that keep humans and agents
|
|
4
|
+
* from overwriting each other on a shared row. Coordination works in three
|
|
5
|
+
* layers, from outermost to innermost:
|
|
7
6
|
*
|
|
8
|
-
* 1.
|
|
9
|
-
* 2.
|
|
10
|
-
*
|
|
11
|
-
* 3.
|
|
12
|
-
*
|
|
7
|
+
* 1. Presence (observation): who is working where. It reports, never blocks.
|
|
8
|
+
* 2. Claims (pessimistic leases): `claim_begin` / `claim_abandon` grant one
|
|
9
|
+
* participant exclusive intent on a target while others wait.
|
|
10
|
+
* 3. Stale-context (optimistic): a `readAt` watermark plus an `onStale` write
|
|
11
|
+
* guard that catches a lost update when the row moved after you read it.
|
|
13
12
|
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
* `status`/`error`, `onStale` declared 5×, `ClaimStatus` declared 2× — into
|
|
19
|
-
* a single definition that the wire ingest can also validate at runtime.
|
|
13
|
+
* These Zod schemas are the single definition of each shape. Both the client
|
|
14
|
+
* SDK and the server derive their TypeScript types from them with `z.infer`
|
|
15
|
+
* rather than re-declaring the shapes, and the server validates inbound frames
|
|
16
|
+
* against them at runtime.
|
|
20
17
|
*/
|
|
21
18
|
/** A line/column span within a text-bearing field (slide body, doc, cell). */
|
|
22
19
|
export declare const targetRangeSchema: z.ZodObject<{
|
|
@@ -33,13 +30,12 @@ export declare const participantKindSchema: z.ZodEnum<{
|
|
|
33
30
|
}>;
|
|
34
31
|
export type ParticipantKind = z.infer<typeof participantKindSchema>;
|
|
35
32
|
/**
|
|
36
|
-
*
|
|
37
|
-
*
|
|
38
|
-
*
|
|
39
|
-
*
|
|
40
|
-
*
|
|
41
|
-
*
|
|
42
|
-
* frame still carrying `'human'`. Additive — never widens the output union.
|
|
33
|
+
* Parses a participant kind from an inbound frame, tolerating an older wire
|
|
34
|
+
* dialect. Some presence and claim frames label a non-agent participant
|
|
35
|
+
* `'human'`, while the rest of the surface uses `'user'` for the same
|
|
36
|
+
* participant. This normalizes `'human'` to `'user'` on read so every consumer
|
|
37
|
+
* switches on one vocabulary. Producers emit the canonical
|
|
38
|
+
* {@link participantKindSchema} values, and the output union is never widened.
|
|
43
39
|
*/
|
|
44
40
|
export declare const wireParticipantKindSchema: z.ZodPreprocess<z.ZodEnum<{
|
|
45
41
|
user: "user";
|
|
@@ -47,24 +43,24 @@ export declare const wireParticipantKindSchema: z.ZodPreprocess<z.ZodEnum<{
|
|
|
47
43
|
system: "system";
|
|
48
44
|
}>>;
|
|
49
45
|
/**
|
|
50
|
-
*
|
|
51
|
-
* server-stamped `participantKind` (normalized
|
|
52
|
-
* {@link wireParticipantKindSchema})
|
|
53
|
-
* field
|
|
54
|
-
* 'user' but never 'system'
|
|
46
|
+
* Resolves a peer's kind from an inbound presence or claim frame. It prefers
|
|
47
|
+
* the server-stamped `participantKind` (normalized through
|
|
48
|
+
* {@link wireParticipantKindSchema}). A frame from an older server that omits
|
|
49
|
+
* that field falls back to the `isAgent` boolean, which can tell 'agent' from
|
|
50
|
+
* 'user' but can never report 'system'.
|
|
55
51
|
*/
|
|
56
52
|
export declare function participantKindFromWire(wireKind: unknown, isAgent: boolean | undefined): ParticipantKind;
|
|
57
53
|
/**
|
|
58
|
-
*
|
|
59
|
-
* `meta.description`.
|
|
60
|
-
*
|
|
61
|
-
*
|
|
54
|
+
* Reads the peer-visible description a claim or presence frame carries in its
|
|
55
|
+
* opaque `meta.description`. This is the single place that unpacks that field.
|
|
56
|
+
* A caller that has an explicit `description` should prefer it
|
|
57
|
+
* (`explicit ?? fromMeta`).
|
|
62
58
|
*/
|
|
63
59
|
export declare function descriptionFromMeta(meta: Record<string, unknown> | undefined | null): string | undefined;
|
|
64
60
|
/**
|
|
65
|
-
* What a
|
|
66
|
-
*
|
|
67
|
-
*
|
|
61
|
+
* What a coordination event points at — the locator shared by all three
|
|
62
|
+
* layers. It names an entity, optionally narrowed to a path, range, or field,
|
|
63
|
+
* and carries opaque application metadata.
|
|
68
64
|
*/
|
|
69
65
|
export declare const targetRefSchema: z.ZodObject<{
|
|
70
66
|
entityType: z.ZodString;
|
|
@@ -81,15 +77,14 @@ export declare const targetRefSchema: z.ZodObject<{
|
|
|
81
77
|
}, z.core.$strip>;
|
|
82
78
|
export type TargetRef = z.infer<typeof targetRefSchema>;
|
|
83
79
|
/**
|
|
84
|
-
*
|
|
85
|
-
* target row's latest
|
|
86
|
-
*
|
|
87
|
-
*
|
|
88
|
-
*
|
|
89
|
-
* • `reject` —
|
|
90
|
-
*
|
|
91
|
-
* • `overwrite` —
|
|
92
|
-
* signal.
|
|
80
|
+
* How the server treats a write whose snapshot watermark (`readAt`) is older
|
|
81
|
+
* than the target row's latest change. There are three dispositions:
|
|
82
|
+
* • `notify` — hold the write and return a {@link StaleNotification}
|
|
83
|
+
* carrying the current value, so the actor (agent or human)
|
|
84
|
+
* can resolve it.
|
|
85
|
+
* • `reject` — throw `AbloStaleContextError`, the default when `readAt`
|
|
86
|
+
* is present.
|
|
87
|
+
* • `overwrite` — apply the write blindly, last write wins, with no signal.
|
|
93
88
|
*/
|
|
94
89
|
export declare const onStaleModeSchema: z.ZodEnum<{
|
|
95
90
|
reject: "reject";
|
|
@@ -114,27 +109,20 @@ export declare const writeGuardSchema: z.ZodObject<{
|
|
|
114
109
|
}, z.core.$strip>;
|
|
115
110
|
export type WriteGuard = z.infer<typeof writeGuardSchema>;
|
|
116
111
|
/**
|
|
117
|
-
* The advisory
|
|
118
|
-
* conflict under `onStale: 'notify'` —
|
|
119
|
-
*
|
|
112
|
+
* The advisory returned to a committer whose write hit a stale-context
|
|
113
|
+
* conflict under `onStale: 'notify'` — it reports that the value the committer
|
|
114
|
+
* reasoned against changed while they were away. Rather than throwing, the
|
|
115
|
+
* server hands back the conflicting field's current value as data so the
|
|
116
|
+
* actor — an agent or a human — can reconcile and re-commit. A claim is the
|
|
117
|
+
* prospective form of the same idea (coordinate before acting); this
|
|
118
|
+
* notification is the in-flight form (here is what changed, you resolve). It
|
|
119
|
+
* rides on the commit acknowledgement alongside `lastSyncId`; an empty or
|
|
120
|
+
* absent array means nothing the committer depended on moved.
|
|
120
121
|
*
|
|
121
|
-
*
|
|
122
|
-
*
|
|
123
|
-
*
|
|
124
|
-
*
|
|
125
|
-
* notification is the non-coercive path: instead of throwing, the server hands
|
|
126
|
-
* back the conflicting field's *current* value as data so the actor can solve
|
|
127
|
-
* it. The CLAIM is the prospective form of the same principle (coordinate
|
|
128
|
-
* before acting); this notification is the in-flight form (here's what changed,
|
|
129
|
-
* you resolve). Both an agent reasoning over the change and a human watching the
|
|
130
|
-
* row are valid resolvers. (Cf. CoAgent/MTPO, arXiv:2606.15376, which bets the
|
|
131
|
-
* resolver is specifically an LLM; Ablo's bet is the same non-coercion, actor
|
|
132
|
-
* left to agent or human.) Rides on the commit ack alongside `lastSyncId`; an
|
|
133
|
-
* empty/absent array means no premise moved.
|
|
134
|
-
*
|
|
135
|
-
* Only `notify` produces this: the conflicting op was HELD (not written), and
|
|
136
|
-
* the actor reconciles against `currentValues` and re-commits. (`reject` throws,
|
|
137
|
-
* `overwrite` is silent — neither notifies.)
|
|
122
|
+
* Only `onStale: 'notify'` produces this. The conflicting operation was held,
|
|
123
|
+
* not written, and the actor reconciles against `currentValues` and
|
|
124
|
+
* re-commits. `reject` throws instead, and `overwrite` proceeds silently —
|
|
125
|
+
* neither notifies.
|
|
138
126
|
*/
|
|
139
127
|
export declare const staleNotificationSchema: z.ZodObject<{
|
|
140
128
|
object: z.ZodOptional<z.ZodLiteral<"stale_notification">>;
|
|
@@ -156,18 +144,19 @@ export declare const staleNotificationSchema: z.ZodObject<{
|
|
|
156
144
|
}, z.core.$strip>;
|
|
157
145
|
export type StaleNotification = z.infer<typeof staleNotificationSchema>;
|
|
158
146
|
/**
|
|
159
|
-
* A read
|
|
160
|
-
* change?"
|
|
161
|
-
* written
|
|
162
|
-
* `readAt`; a moved premise fires the entry's
|
|
163
|
-
* `reject`)
|
|
164
|
-
* `reject` aborts
|
|
147
|
+
* A read that a commit declares it depended on, so the server can ask "did
|
|
148
|
+
* anything I looked at change?" — broader than the write-target check, which
|
|
149
|
+
* only validates the rows being written. The server re-runs stale detection
|
|
150
|
+
* against each declared read at its `readAt`; a moved premise fires the entry's
|
|
151
|
+
* `onStale` disposition (default `reject`) across the whole batch (`notify`
|
|
152
|
+
* holds every write and notifies, `reject` aborts, `overwrite` proceeds
|
|
153
|
+
* silently). A dependency comes at one of two granularities:
|
|
165
154
|
*
|
|
166
|
-
* •
|
|
167
|
-
*
|
|
168
|
-
* •
|
|
169
|
-
* is a sync-group key
|
|
170
|
-
*
|
|
155
|
+
* • Row — `{ model, id, readAt, fields? }`: did this specific row, or these
|
|
156
|
+
* specific fields, change?
|
|
157
|
+
* • Group — `{ group, readAt }`: did anything in this sync group change?
|
|
158
|
+
* `group` is a sync-group key such as `deck:abc` or `slide:s1`, the
|
|
159
|
+
* same unit a participant watches and claims.
|
|
171
160
|
*/
|
|
172
161
|
export declare const readDependencySchema: z.ZodUnion<readonly [z.ZodObject<{
|
|
173
162
|
model: z.ZodString;
|
|
@@ -190,11 +179,10 @@ export declare const readDependencySchema: z.ZodUnion<readonly [z.ZodObject<{
|
|
|
190
179
|
}, z.core.$strip>]>;
|
|
191
180
|
export type ReadDependency = z.infer<typeof readDependencySchema>;
|
|
192
181
|
/**
|
|
193
|
-
*
|
|
194
|
-
*
|
|
195
|
-
*
|
|
196
|
-
*
|
|
197
|
-
* resolved, not merely that it vanished.
|
|
182
|
+
* The lifecycle of a claim. When absent on the wire it means `'active'` (an
|
|
183
|
+
* additive back-compat default). The server stamps `'active'` on `claim_begin`
|
|
184
|
+
* and emits one terminal frame — `committed`, `canceled`, or `expired` — as the
|
|
185
|
+
* claim ends, so contenders learn how it resolved, not merely that it vanished.
|
|
198
186
|
*/
|
|
199
187
|
export declare const claimStatusSchema: z.ZodEnum<{
|
|
200
188
|
active: "active";
|
|
@@ -235,16 +223,12 @@ export declare const claimErrorSchema: z.ZodObject<{
|
|
|
235
223
|
}, z.core.$strip>;
|
|
236
224
|
export type ClaimError = z.infer<typeof claimErrorSchema>;
|
|
237
225
|
/**
|
|
238
|
-
* A declared pending-mutation claim — the unit broadcast
|
|
239
|
-
* `activeClaims`.
|
|
240
|
-
* explanatory `reason`, and a chosen `claimId`; the
|
|
241
|
-
* `expiresAt` and may set `status`
|
|
242
|
-
*
|
|
243
|
-
*
|
|
244
|
-
* server (which sets them) and the SDK view (which historically omitted
|
|
245
|
-
* them). The superset is structurally assignable wherever the leaner view
|
|
246
|
-
* was used, so the two prior copies collapse into this one without breaking
|
|
247
|
-
* SDK consumers.
|
|
226
|
+
* A declared, pending-mutation claim — the unit broadcast inside a presence
|
|
227
|
+
* frame's `activeClaims`. The client supplies the descriptive `targetRef`
|
|
228
|
+
* fields, an explanatory `reason`, and a chosen `claimId`; the server stamps
|
|
229
|
+
* `declaredAt` and `expiresAt` and may set `status` and `error`. Those last
|
|
230
|
+
* two are optional, so one shape serves both the server, which sets them, and
|
|
231
|
+
* the leaner SDK view, which reads a claim without them.
|
|
248
232
|
*/
|
|
249
233
|
export declare const wireClaimSchema: z.ZodObject<{
|
|
250
234
|
entityType: z.ZodString;
|
|
@@ -321,9 +305,9 @@ export declare const claimRejectionSchema: z.ZodObject<{
|
|
|
321
305
|
}, z.core.$strip>;
|
|
322
306
|
export type ClaimRejection = z.infer<typeof claimRejectionSchema>;
|
|
323
307
|
/**
|
|
324
|
-
* What a {@link ModelClaim} points at — the
|
|
325
|
-
* `model
|
|
326
|
-
* `
|
|
308
|
+
* What a {@link ModelClaim} points at — the target locator as SDK callers see
|
|
309
|
+
* it, keyed by `model` and `id` rather than the wire schema's `entityType` and
|
|
310
|
+
* `entityId`. This is the public `ModelTarget` shape.
|
|
327
311
|
*/
|
|
328
312
|
export declare const modelTargetSchema: z.ZodReadonly<z.ZodObject<{
|
|
329
313
|
model: z.ZodString;
|
|
@@ -340,17 +324,16 @@ export declare const modelTargetSchema: z.ZodReadonly<z.ZodObject<{
|
|
|
340
324
|
}, z.core.$strip>>;
|
|
341
325
|
export type ModelTarget = z.infer<typeof modelTargetSchema>;
|
|
342
326
|
/**
|
|
343
|
-
* A claim as
|
|
344
|
-
* (`ablo.<model>.claim.state`, `/v1/claims`) — the resolved, peer-readable
|
|
345
|
-
*
|
|
346
|
-
*
|
|
347
|
-
* route copies adopt it once the engine dist is rebuilt.
|
|
327
|
+
* A claim as SDK callers and the HTTP claim routes see it
|
|
328
|
+
* (`ablo.<model>.claim.state`, `/v1/claims`) — the resolved, peer-readable view
|
|
329
|
+
* of one active or queued claim. The client's `ModelClaim` type derives from
|
|
330
|
+
* this shape.
|
|
348
331
|
*
|
|
349
|
-
* `expiresAt` is
|
|
350
|
-
*
|
|
351
|
-
* and errors
|
|
352
|
-
* `participantKind`
|
|
353
|
-
* `'human'` frame normalizes to `'user'`.
|
|
332
|
+
* `expiresAt` is epoch milliseconds (a number), the same encoding as the
|
|
333
|
+
* WebSocket {@link WireClaim}, so one timestamp representation spans the wire,
|
|
334
|
+
* the SDK, HTTP, and errors — there is no ISO string anywhere.
|
|
335
|
+
* `participantKind` is parsed through {@link wireParticipantKindSchema}, so a
|
|
336
|
+
* legacy `'human'` frame normalizes to `'user'`.
|
|
354
337
|
*/
|
|
355
338
|
export declare const modelClaimSchema: z.ZodReadonly<z.ZodObject<{
|
|
356
339
|
id: z.ZodString;
|
|
@@ -385,10 +368,10 @@ export declare const modelClaimSchema: z.ZodReadonly<z.ZodObject<{
|
|
|
385
368
|
}, z.core.$strip>>;
|
|
386
369
|
export type ModelClaim = z.infer<typeof modelClaimSchema>;
|
|
387
370
|
/**
|
|
388
|
-
* `claim_begin` payload
|
|
389
|
-
*
|
|
390
|
-
* stamps the lifecycle
|
|
391
|
-
* shape — this is exactly what the
|
|
371
|
+
* The `claim_begin` payload a client sends. It carries the descriptive target
|
|
372
|
+
* and reason, an optional duration hint, and the opt-in fair-queue flag. The
|
|
373
|
+
* server stamps the lifecycle and timestamp fields, so they are not part of
|
|
374
|
+
* this inbound shape — this is exactly what the server validates on ingest.
|
|
392
375
|
*/
|
|
393
376
|
export declare const claimBeginPayloadSchema: z.ZodObject<{
|
|
394
377
|
entityType: z.ZodString;
|
|
@@ -409,11 +392,9 @@ export declare const claimBeginPayloadSchema: z.ZodObject<{
|
|
|
409
392
|
}, z.core.$strip>;
|
|
410
393
|
export type ClaimBeginPayload = z.infer<typeof claimBeginPayloadSchema>;
|
|
411
394
|
/**
|
|
412
|
-
* `claim_abandon` payload
|
|
413
|
-
*
|
|
414
|
-
*
|
|
415
|
-
* wire type omitted these two even though the handler reads them; the schema
|
|
416
|
-
* documents what the code actually uses.)
|
|
395
|
+
* The `claim_abandon` payload a client sends. `entityType` and `entityId` let
|
|
396
|
+
* the server dequeue a claim that is still waiting (not yet held) from the FIFO
|
|
397
|
+
* line; abandoning a claim that is already held needs only `claimId`.
|
|
417
398
|
*/
|
|
418
399
|
export declare const claimAbandonPayloadSchema: z.ZodObject<{
|
|
419
400
|
claimId: z.ZodString;
|
|
@@ -422,13 +403,13 @@ export declare const claimAbandonPayloadSchema: z.ZodObject<{
|
|
|
422
403
|
}, z.core.$strip>;
|
|
423
404
|
export type ClaimAbandonPayload = z.infer<typeof claimAbandonPayloadSchema>;
|
|
424
405
|
/**
|
|
425
|
-
* `claim_reorder` payload
|
|
426
|
-
* supervisor over its sub-agents
|
|
427
|
-
* `order` lists waiters by `heldBy
|
|
428
|
-
* not listed
|
|
429
|
-
* who may call this
|
|
430
|
-
*
|
|
431
|
-
* positions —
|
|
406
|
+
* The `claim_reorder` payload a client sends. A privileged participant, such as
|
|
407
|
+
* a supervisor over its sub-agents, re-ranks the FIFO wait queue for an entity:
|
|
408
|
+
* `order` lists waiters by `heldBy` and `claimId` in the desired priority, and
|
|
409
|
+
* any waiter not listed keeps its relative order behind those that are. The
|
|
410
|
+
* server gates who may call this and drops an unauthorized sender. Where
|
|
411
|
+
* `claim_abandon` acts on the caller's own entry, a reorder acts on other
|
|
412
|
+
* participants' queue positions — which is why it is gated.
|
|
432
413
|
*/
|
|
433
414
|
export declare const claimReorderPayloadSchema: z.ZodObject<{
|
|
434
415
|
entityType: z.ZodString;
|
|
@@ -440,12 +421,79 @@ export declare const claimReorderPayloadSchema: z.ZodObject<{
|
|
|
440
421
|
}, z.core.$strip>;
|
|
441
422
|
export type ClaimReorderPayload = z.infer<typeof claimReorderPayloadSchema>;
|
|
442
423
|
/**
|
|
443
|
-
* `
|
|
444
|
-
*
|
|
445
|
-
*
|
|
424
|
+
* The `claim_heartbeat` payload a client sends to extend a lease it holds (or
|
|
425
|
+
* refresh its slot in the wait queue) past the liveness window — the
|
|
426
|
+
* work-duration signal for long-running holders, distinct from the connection
|
|
427
|
+
* keepalive.
|
|
428
|
+
*
|
|
429
|
+
* The claim is identified either way: by `claimId`, or — since a claim is
|
|
430
|
+
* singular per (actor, entity) — by the full `entityType`/`entityId` target
|
|
431
|
+
* ("my claim on this row"). At least one of the two must be present. The
|
|
432
|
+
* target also lets the server resolve without a scan and is required to
|
|
433
|
+
* refresh a *queued* claim (a waiter is not in the holder set the server
|
|
434
|
+
* would otherwise search).
|
|
435
|
+
*/
|
|
436
|
+
export declare const claimHeartbeatPayloadSchema: z.ZodObject<{
|
|
437
|
+
claimId: z.ZodOptional<z.ZodString>;
|
|
438
|
+
entityType: z.ZodOptional<z.ZodString>;
|
|
439
|
+
entityId: z.ZodOptional<z.ZodString>;
|
|
440
|
+
ttlMs: z.ZodOptional<z.ZodNumber>;
|
|
441
|
+
details: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
442
|
+
}, z.core.$strip>;
|
|
443
|
+
export type ClaimHeartbeatPayload = z.infer<typeof claimHeartbeatPayloadSchema>;
|
|
444
|
+
/**
|
|
445
|
+
* The server's reply to a `claim_heartbeat`. For a socketless worker the
|
|
446
|
+
* heartbeat reply is the only inbound signal path, so it carries the lease's
|
|
447
|
+
* fate rather than a bare ok: `held` (extended to `expiresAt`), `queued`
|
|
448
|
+
* (slot refreshed; `position` is the current place in line), or `lost` (the
|
|
449
|
+
* lease expired and the queue moved on — the worker should abandon or
|
|
450
|
+
* re-queue, and any write it still attempts is caught by its `readAt` guard).
|
|
451
|
+
*/
|
|
452
|
+
export declare const claimHeartbeatAckPayloadSchema: z.ZodObject<{
|
|
453
|
+
claimId: z.ZodString;
|
|
454
|
+
status: z.ZodEnum<{
|
|
455
|
+
queued: "queued";
|
|
456
|
+
held: "held";
|
|
457
|
+
lost: "lost";
|
|
458
|
+
}>;
|
|
459
|
+
expiresAt: z.ZodOptional<z.ZodNumber>;
|
|
460
|
+
position: z.ZodOptional<z.ZodNumber>;
|
|
461
|
+
queueDepth: z.ZodOptional<z.ZodNumber>;
|
|
462
|
+
}, z.core.$strip>;
|
|
463
|
+
export type ClaimHeartbeatAckPayload = z.infer<typeof claimHeartbeatAckPayloadSchema>;
|
|
464
|
+
/**
|
|
465
|
+
* The batched heartbeat — one request extends every lease the caller holds
|
|
466
|
+
* on its plane (the socketless twin of the WebSocket keepalive, which renews
|
|
467
|
+
* all held leases on every ping). For a worker holding many rows this is one
|
|
468
|
+
* round trip per cadence instead of one per claim. Queued slots are not
|
|
469
|
+
* batch-refreshed: a waiter knows its target and beats it directly.
|
|
470
|
+
*/
|
|
471
|
+
export declare const claimHeartbeatBatchPayloadSchema: z.ZodObject<{
|
|
472
|
+
ttlMs: z.ZodOptional<z.ZodNumber>;
|
|
473
|
+
}, z.core.$strip>;
|
|
474
|
+
export type ClaimHeartbeatBatchPayload = z.infer<typeof claimHeartbeatBatchPayloadSchema>;
|
|
475
|
+
/** Reply to a batched heartbeat: one ack entry per lease that was extended. */
|
|
476
|
+
export declare const claimHeartbeatBatchAckPayloadSchema: z.ZodObject<{
|
|
477
|
+
results: z.ZodArray<z.ZodObject<{
|
|
478
|
+
claimId: z.ZodString;
|
|
479
|
+
status: z.ZodEnum<{
|
|
480
|
+
queued: "queued";
|
|
481
|
+
held: "held";
|
|
482
|
+
lost: "lost";
|
|
483
|
+
}>;
|
|
484
|
+
expiresAt: z.ZodOptional<z.ZodNumber>;
|
|
485
|
+
position: z.ZodOptional<z.ZodNumber>;
|
|
486
|
+
queueDepth: z.ZodOptional<z.ZodNumber>;
|
|
487
|
+
}, z.core.$strip>>;
|
|
488
|
+
}, z.core.$strip>;
|
|
489
|
+
export type ClaimHeartbeatBatchAckPayload = z.infer<typeof claimHeartbeatBatchAckPayloadSchema>;
|
|
490
|
+
/**
|
|
491
|
+
* The `update_subscription` payload a client sends. It replaces the
|
|
492
|
+
* connection's read interest with the complete set of sync groups — the read
|
|
493
|
+
* counterpart to a claim, with no write lock and no TTL. Each entry is a
|
|
446
494
|
* {@link syncGroupInputSchema} (`'default'` or a branded `kind:id`), so a
|
|
447
|
-
* malformed group is rejected
|
|
448
|
-
*
|
|
495
|
+
* malformed group is rejected on ingest rather than silently indexed. The
|
|
496
|
+
* element type is strict because this is untrusted client input.
|
|
449
497
|
*/
|
|
450
498
|
export declare const updateSubscriptionPayloadSchema: z.ZodObject<{
|
|
451
499
|
syncGroups: z.ZodArray<z.ZodUnion<readonly [z.ZodLiteral<"default">, z.core.$ZodBranded<z.ZodTemplateLiteral<`${string}:${string}`>, "SyncGroup", "out">]>>;
|
|
@@ -504,11 +552,11 @@ export declare const commitOperationSchema: z.ZodObject<{
|
|
|
504
552
|
}, z.core.$strip>;
|
|
505
553
|
export type CommitOperation = z.infer<typeof commitOperationSchema>;
|
|
506
554
|
/**
|
|
507
|
-
* Any commit
|
|
508
|
-
*
|
|
509
|
-
*
|
|
510
|
-
*
|
|
511
|
-
* two are
|
|
555
|
+
* Any commit operation on the wire — the runtime-validated ingest contract.
|
|
556
|
+
* Commit operations carry replace (last-write-wins) semantics, guarded by the
|
|
557
|
+
* optimistic write guard. It is a distinct alias from {@link CommitOperation}
|
|
558
|
+
* so the server's ingest boundary reads as "any op on the wire", even though
|
|
559
|
+
* the two shapes are identical.
|
|
512
560
|
*/
|
|
513
561
|
export type AnyCommitOperation = CommitOperation;
|
|
514
562
|
export declare const presenceKindSchema: z.ZodEnum<{
|