@abloatai/ablo 0.25.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/AGENTS.md +5 -3
- package/CHANGELOG.md +34 -0
- package/README.md +104 -88
- package/dist/BaseSyncedStore.d.ts +140 -266
- package/dist/BaseSyncedStore.js +338 -739
- package/dist/Database.d.ts +62 -77
- package/dist/Database.js +106 -127
- package/dist/{ObjectPool.d.ts → InstanceCache.d.ts} +10 -13
- package/dist/{ObjectPool.js → InstanceCache.js} +91 -83
- package/dist/LazyReferenceCollection.d.ts +11 -15
- package/dist/LazyReferenceCollection.js +16 -15
- package/dist/Model.d.ts +37 -52
- package/dist/Model.js +52 -69
- package/dist/ModelRegistry.d.ts +46 -25
- package/dist/ModelRegistry.js +32 -30
- package/dist/NetworkMonitor.d.ts +5 -6
- package/dist/NetworkMonitor.js +6 -7
- package/dist/SyncClient.d.ts +119 -109
- package/dist/SyncClient.js +303 -224
- package/dist/SyncEngineContext.d.ts +1 -3
- package/dist/SyncEngineContext.js +1 -2
- 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 +39 -31
- package/dist/agent/Agent.js +35 -23
- 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} +30 -31
- package/dist/ai-sdk/index.d.ts +25 -22
- package/dist/ai-sdk/index.js +25 -22
- package/dist/ai-sdk/wrap.d.ts +7 -8
- package/dist/ai-sdk/wrap.js +2 -2
- package/dist/auth/credentialPolicy.d.ts +74 -71
- package/dist/auth/credentialPolicy.js +51 -56
- package/dist/auth/credentialSource.d.ts +7 -18
- package/dist/auth/credentialSource.js +10 -18
- package/dist/auth/index.d.ts +59 -58
- package/dist/auth/index.js +34 -40
- 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 +483 -369
- package/dist/client/Ablo.d.ts +107 -836
- package/dist/client/Ablo.js +174 -833
- package/dist/client/ApiClient.d.ts +44 -20
- package/dist/client/ApiClient.js +193 -44
- package/dist/client/auth.d.ts +51 -60
- package/dist/client/auth.js +137 -110
- package/dist/client/claimHeartbeatLoop.d.ts +50 -0
- package/dist/client/claimHeartbeatLoop.js +88 -0
- package/dist/client/consoleLogger.d.ts +35 -0
- package/dist/client/consoleLogger.js +44 -0
- package/dist/client/createInternalComponents.d.ts +14 -17
- package/dist/client/createInternalComponents.js +26 -31
- package/dist/client/createModelProxy.d.ts +130 -120
- package/dist/client/createModelProxy.js +158 -124
- package/dist/client/credentialEndpoint.d.ts +61 -0
- package/dist/client/credentialEndpoint.js +86 -0
- package/dist/client/functionalUpdate.d.ts +29 -27
- package/dist/client/functionalUpdate.js +21 -21
- package/dist/client/hostedEndpoints.d.ts +21 -0
- package/dist/client/hostedEndpoints.js +21 -0
- package/dist/client/httpClient.d.ts +58 -54
- package/dist/client/httpClient.js +29 -31
- package/dist/client/identity.d.ts +15 -20
- package/dist/client/identity.js +49 -59
- package/dist/client/modelRegistration.d.ts +10 -0
- package/dist/client/modelRegistration.js +301 -0
- package/dist/client/options.d.ts +373 -0
- package/dist/client/options.js +6 -0
- package/dist/client/registerDataSource.d.ts +9 -9
- package/dist/client/registerDataSource.js +15 -16
- package/dist/client/resourceTypes.d.ts +333 -0
- package/dist/client/resourceTypes.js +7 -0
- package/dist/client/schemaConfig.d.ts +44 -0
- package/dist/client/schemaConfig.js +176 -0
- package/dist/client/sessionMint.d.ts +17 -13
- package/dist/client/sessionMint.js +26 -31
- package/dist/client/validateAbloOptions.d.ts +12 -14
- package/dist/client/validateAbloOptions.js +9 -10
- package/dist/client/writeOptionsSchema.d.ts +18 -16
- package/dist/client/writeOptionsSchema.js +23 -20
- package/dist/client/wsMutationExecutor.d.ts +28 -0
- package/dist/client/wsMutationExecutor.js +71 -0
- package/dist/context.d.ts +6 -4
- package/dist/context.js +6 -7
- package/dist/coordination/index.d.ts +13 -4
- package/dist/coordination/index.js +29 -4
- package/dist/coordination/schema.d.ts +176 -128
- package/dist/coordination/schema.js +197 -133
- package/dist/coordination/trace.d.ts +9 -11
- package/dist/coordination/trace.js +13 -15
- package/dist/core/DatabaseManager.d.ts +5 -8
- package/dist/core/DatabaseManager.js +38 -40
- package/dist/core/QueryProcessor.d.ts +7 -9
- package/dist/core/QueryProcessor.js +27 -34
- package/dist/core/QueryView.d.ts +17 -5
- package/dist/core/QueryView.js +6 -7
- package/dist/core/StoreManager.d.ts +14 -16
- package/dist/core/StoreManager.js +26 -25
- package/dist/core/ViewRegistry.d.ts +5 -5
- package/dist/core/ViewRegistry.js +4 -4
- package/dist/core/index.d.ts +18 -13
- package/dist/core/index.js +32 -26
- package/dist/core/openIDBWithTimeout.d.ts +38 -36
- package/dist/core/openIDBWithTimeout.js +57 -54
- package/dist/core/queryUtils.d.ts +45 -0
- package/dist/core/queryUtils.js +69 -0
- package/dist/core/storeContract.d.ts +145 -0
- package/dist/core/storeContract.js +12 -0
- package/dist/environment.d.ts +28 -0
- package/dist/environment.js +21 -0
- package/dist/errorCodes.d.ts +118 -101
- package/dist/errorCodes.js +277 -260
- package/dist/errors.d.ts +170 -165
- package/dist/errors.js +161 -151
- package/dist/index.d.ts +30 -27
- package/dist/index.js +90 -82
- package/dist/interfaces/index.d.ts +108 -133
- package/dist/interfaces/index.js +5 -4
- package/dist/keys/index.d.ts +27 -29
- package/dist/keys/index.js +59 -49
- 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 +149 -155
- package/dist/mutators/defineMutators.d.ts +24 -37
- 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 +105 -101
- package/dist/policy/types.js +67 -66
- package/dist/query/client.d.ts +32 -16
- package/dist/query/client.js +103 -72
- package/dist/query/types.d.ts +37 -60
- package/dist/query/types.js +13 -33
- package/dist/react/AbloProvider.d.ts +7 -11
- package/dist/react/AbloProvider.js +24 -17
- package/dist/react/context.d.ts +27 -146
- 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 +17 -15
- 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 +11 -12
- package/dist/react/useMutationFailureListener.d.ts +8 -8
- package/dist/react/useMutationFailureListener.js +9 -9
- package/dist/react/useMutators.d.ts +11 -11
- package/dist/react/useMutators.js +10 -4
- package/dist/react/useReactive.js +2 -3
- package/dist/react/useSyncStatus.d.ts +4 -6
- package/dist/react/useUndoScope.d.ts +7 -9
- package/dist/react/useUndoScope.js +3 -3
- 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 +35 -0
- package/dist/schema/ddlLock.js +46 -0
- 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 +36 -49
- package/dist/schema/generate.d.ts +12 -12
- package/dist/schema/generate.js +12 -12
- package/dist/schema/index.d.ts +5 -4
- package/dist/schema/index.js +29 -21
- package/dist/schema/model.d.ts +121 -146
- package/dist/schema/model.js +24 -35
- package/dist/schema/openapi.d.ts +10 -9
- package/dist/schema/openapi.js +7 -1
- package/dist/schema/queries.d.ts +30 -32
- package/dist/schema/queries.js +24 -25
- package/dist/schema/relation.d.ts +89 -99
- package/dist/schema/relation.js +13 -13
- package/dist/schema/residency.d.ts +38 -0
- package/dist/schema/residency.js +30 -0
- package/dist/schema/roles.d.ts +45 -27
- package/dist/schema/roles.js +52 -21
- package/dist/schema/schema.d.ts +36 -45
- package/dist/schema/schema.js +42 -39
- package/dist/schema/select.d.ts +13 -13
- package/dist/schema/select.js +13 -13
- package/dist/schema/serialize.d.ts +36 -39
- 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} +27 -50
- 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 +31 -26
- package/dist/source/adapter.js +10 -10
- package/dist/source/adapters/drizzle.d.ts +28 -23
- package/dist/source/adapters/drizzle.js +34 -28
- package/dist/source/adapters/kysely.d.ts +27 -25
- package/dist/source/adapters/kysely.js +28 -26
- package/dist/source/adapters/memory.d.ts +8 -7
- package/dist/source/adapters/memory.js +10 -9
- package/dist/source/adapters/prisma.d.ts +13 -12
- package/dist/source/adapters/prisma.js +27 -29
- package/dist/source/conformance.d.ts +18 -11
- package/dist/source/conformance.js +27 -19
- package/dist/source/connector.d.ts +31 -32
- package/dist/source/connector.js +30 -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 +94 -0
- package/dist/source/factory.js +268 -0
- package/dist/source/index.d.ts +10 -462
- package/dist/source/index.js +17 -421
- package/dist/source/migrations.d.ts +9 -9
- package/dist/source/migrations.js +9 -9
- package/dist/source/next.d.ts +10 -11
- package/dist/source/next.js +7 -8
- package/dist/source/pushQueue.d.ts +70 -48
- package/dist/source/pushQueue.js +36 -29
- package/dist/source/signing.d.ts +88 -0
- package/dist/source/signing.js +159 -0
- package/dist/source/types.d.ts +351 -0
- package/dist/source/types.js +43 -0
- package/dist/stores/ObjectStore.d.ts +11 -12
- package/dist/stores/ObjectStore.js +34 -35
- package/dist/stores/ObjectStoreContract.d.ts +12 -15
- package/dist/stores/SyncActionStore.d.ts +8 -12
- package/dist/stores/SyncActionStore.js +77 -46
- package/dist/surface.d.ts +28 -21
- package/dist/surface.js +28 -20
- package/dist/sync/{BootstrapHelper.d.ts → BootstrapFetcher.d.ts} +37 -45
- package/dist/sync/{BootstrapHelper.js → BootstrapFetcher.js} +101 -80
- package/dist/sync/ConnectionManager.d.ts +47 -50
- package/dist/sync/ConnectionManager.js +74 -70
- package/dist/sync/NetworkProbe.d.ts +27 -31
- package/dist/sync/NetworkProbe.js +67 -72
- package/dist/sync/{HydrationCoordinator.d.ts → OnDemandLoader.d.ts} +49 -36
- package/dist/sync/{HydrationCoordinator.js → OnDemandLoader.js} +79 -54
- package/dist/sync/{AreaOfInterestManager.d.ts → SubscriptionManager.d.ts} +45 -59
- package/dist/sync/{AreaOfInterestManager.js → SubscriptionManager.js} +44 -52
- package/dist/sync/SyncWebSocket.d.ts +175 -250
- package/dist/sync/SyncWebSocket.js +431 -769
- package/dist/sync/awaitClaimGrant.d.ts +18 -18
- package/dist/sync/awaitClaimGrant.js +38 -30
- package/dist/sync/bootstrapApply.d.ts +70 -0
- package/dist/sync/bootstrapApply.js +73 -0
- package/dist/sync/commitFrames.d.ts +44 -0
- package/dist/sync/commitFrames.js +94 -0
- package/dist/sync/createClaimStream.d.ts +23 -22
- package/dist/sync/createClaimStream.js +108 -25
- package/dist/sync/createPresenceStream.d.ts +19 -18
- package/dist/sync/createPresenceStream.js +25 -26
- package/dist/sync/createSnapshot.d.ts +13 -17
- package/dist/sync/createSnapshot.js +20 -26
- package/dist/sync/credentialLifecycle.d.ts +175 -0
- package/dist/sync/credentialLifecycle.js +322 -0
- package/dist/sync/deltaPipeline.d.ts +113 -0
- package/dist/sync/deltaPipeline.js +261 -0
- package/dist/sync/groupChange.d.ts +113 -0
- package/dist/sync/groupChange.js +242 -0
- package/dist/sync/heartbeat.d.ts +63 -0
- package/dist/sync/heartbeat.js +91 -0
- package/dist/sync/participants.d.ts +27 -27
- package/dist/sync/schemas.d.ts +3 -2
- package/dist/sync/schemas.js +14 -10
- package/dist/sync/syncCursor.d.ts +40 -0
- package/dist/sync/syncCursor.js +55 -0
- package/dist/sync/syncPlan.d.ts +54 -0
- package/dist/sync/syncPlan.js +50 -0
- package/dist/sync/syncPosition.d.ts +54 -49
- package/dist/sync/syncPosition.js +57 -52
- package/dist/sync/wsFrameHandlers.d.ts +116 -0
- package/dist/sync/wsFrameHandlers.js +374 -0
- package/dist/testing/fixtures/bootstrap.d.ts +21 -17
- package/dist/testing/fixtures/bootstrap.js +12 -6
- package/dist/testing/fixtures/deltas.d.ts +31 -34
- package/dist/testing/fixtures/deltas.js +30 -33
- package/dist/testing/fixtures/models.d.ts +11 -10
- package/dist/testing/fixtures/models.js +12 -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 -18
- package/dist/testing/helpers/{sync-engine-harness.js → syncEngineHarness.js} +14 -11
- package/dist/testing/helpers/wait.d.ts +13 -8
- package/dist/testing/helpers/wait.js +13 -8
- package/dist/testing/index.d.ts +4 -4
- package/dist/testing/index.js +3 -3
- 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 +21 -34
- package/dist/testing/mocks/MockSyncContext.js +16 -45
- package/dist/testing/mocks/MockSyncStore.d.ts +14 -14
- package/dist/testing/mocks/MockSyncStore.js +11 -11
- package/dist/testing/mocks/MockWebSocket.d.ts +28 -24
- package/dist/testing/mocks/MockWebSocket.js +22 -21
- package/dist/transactions/TransactionQueue.d.ts +190 -221
- package/dist/transactions/TransactionQueue.js +424 -822
- package/dist/transactions/TransactionStore.d.ts +20 -0
- package/dist/transactions/TransactionStore.js +53 -0
- package/dist/transactions/UnconfirmedWrites.d.ts +82 -0
- package/dist/transactions/UnconfirmedWrites.js +104 -0
- package/dist/transactions/coalesceRules.d.ts +58 -0
- package/dist/transactions/coalesceRules.js +140 -0
- package/dist/transactions/commitPayload.d.ts +130 -0
- package/dist/transactions/commitPayload.js +143 -0
- package/dist/transactions/deltaConfirmation.d.ts +58 -0
- package/dist/transactions/deltaConfirmation.js +215 -0
- package/dist/transactions/optimisticApply.d.ts +49 -0
- package/dist/transactions/optimisticApply.js +65 -0
- package/dist/transactions/replayValidation.d.ts +99 -0
- package/dist/transactions/replayValidation.js +111 -0
- package/dist/types/global.d.ts +46 -41
- package/dist/types/global.js +20 -19
- package/dist/types/index.d.ts +74 -80
- package/dist/types/index.js +22 -27
- package/dist/types/modelData.d.ts +10 -0
- package/dist/types/modelData.js +9 -0
- package/dist/types/participant.d.ts +20 -0
- package/dist/types/participant.js +10 -0
- package/dist/types/streams.d.ts +216 -209
- 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} +44 -100
- 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 +35 -27
- package/dist/wire/errorEnvelope.js +38 -32
- package/dist/wire/frames.d.ts +150 -67
- package/dist/wire/frames.js +48 -1
- package/dist/wire/index.d.ts +18 -13
- package/dist/wire/index.js +36 -13
- package/dist/wire/listEnvelope.d.ts +16 -23
- package/dist/wire/listEnvelope.js +7 -6
- package/dist/wire/protocol.d.ts +38 -0
- package/dist/wire/protocol.js +38 -0
- package/dist/wire/protocolVersion.d.ts +60 -0
- package/dist/wire/protocolVersion.js +67 -0
- package/docs/api-keys.md +4 -3
- package/docs/coordination.md +59 -0
- package/docs/examples/existing-python-backend.md +3 -3
- package/docs/identity.md +4 -4
- package/docs/integration-guide.md +1 -1
- package/docs/react.md +1 -1
- package/docs/sessions.md +5 -7
- package/package.json +24 -21
- package/dist/ai-sdk/coordinated-tool.d.ts +0 -101
- package/dist/ai-sdk/coordination-context.d.ts +0 -52
- package/dist/client/index.d.ts +0 -36
- package/dist/client/index.js +0 -33
- package/dist/config/index.d.ts +0 -10
- package/dist/config/index.js +0 -12
- package/dist/core/query-utils.d.ts +0 -34
- package/dist/core/query-utils.js +0 -59
- package/dist/interfaces/headless.d.ts +0 -95
- package/dist/interfaces/headless.js +0 -41
- package/dist/query/index.d.ts +0 -6
- package/dist/query/index.js +0 -5
- package/dist/realtime/index.d.ts +0 -10
- package/dist/realtime/index.js +0 -9
- package/dist/schema/plane.d.ts +0 -23
- package/dist/schema/plane.js +0 -19
- package/dist/schema/sync-delta-row.js +0 -103
- package/dist/schema/sync-delta-wire.js +0 -102
- package/dist/server/next.d.ts +0 -51
- package/dist/server/next.js +0 -47
- 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 -1
- package/dist/server/storage-mode.js +0 -18
- package/dist/source/connector-protocol.d.ts +0 -159
- package/dist/source/connector-protocol.js +0 -161
- package/dist/sync/OfflineFlush.d.ts +0 -9
- package/dist/sync/OfflineFlush.js +0 -22
- package/dist/sync/OfflineTransactionStore.d.ts +0 -37
- package/dist/sync/OfflineTransactionStore.js +0 -263
- package/dist/transactions/OptimisticEchoTracker.d.ts +0 -82
- package/dist/transactions/OptimisticEchoTracker.js +0 -104
- package/dist/transactions/index.d.ts +0 -16
- package/dist/transactions/index.js +0 -7
- package/dist/transactions/mutation-error-handler.d.ts +0 -5
- package/dist/transactions/mutation-error-handler.js +0 -39
- package/dist/utils/mobx-setup.d.ts +0 -42
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @abloatai/ablo —
|
|
2
|
+
* @abloatai/ablo — the collaboration layer for AI agents and people.
|
|
3
3
|
*
|
|
4
4
|
* ```ts
|
|
5
5
|
* import Ablo from '@abloatai/ablo';
|
|
@@ -14,48 +14,54 @@
|
|
|
14
14
|
* type Entry = Ablo.Peer;
|
|
15
15
|
* ```
|
|
16
16
|
*
|
|
17
|
-
* `Ablo({ schema, apiKey })`
|
|
18
|
-
*
|
|
19
|
-
* runtimes.
|
|
17
|
+
* `Ablo({ schema, apiKey })` returns typed model clients. `Ablo({ apiKey })`
|
|
18
|
+
* returns the stateless HTTP model and commit client, which suits agents, MCP
|
|
19
|
+
* route handlers, and custom runtimes.
|
|
20
20
|
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
21
|
+
* The whole package reaches you through one name: `Ablo` is at once a factory
|
|
22
|
+
* function, a type, and a namespace. You call model clients with dot access on
|
|
23
|
+
* the instance (`ablo.reports.retrieve(...)`) and reach every supporting type
|
|
24
|
+
* through the namespace (`Ablo.Peer`, `Ablo.Claim`).
|
|
23
25
|
*
|
|
24
|
-
*
|
|
26
|
+
* Related surfaces live on their own import subpaths:
|
|
25
27
|
* @abloatai/ablo/schema — defineSchema, model, z (Zod)
|
|
26
28
|
* @abloatai/ablo/react — <AbloProvider>, useQuery, useMutate
|
|
27
|
-
* @abloatai/ablo/testing — test harnesses
|
|
29
|
+
* @abloatai/ablo/testing — test harnesses and fixtures
|
|
28
30
|
*
|
|
29
|
-
* Reads
|
|
30
|
-
* `.list({ where })` are
|
|
31
|
-
* the
|
|
32
|
-
*
|
|
33
|
-
*
|
|
34
|
-
*
|
|
35
|
-
*
|
|
31
|
+
* Reads come in two flavors, distinguished by where the data is fetched from.
|
|
32
|
+
* `ablo.<model>.retrieve({ id })` and `.list({ where })` are asynchronous reads
|
|
33
|
+
* that consult the local cache first and fall back to the network, de-duplicating
|
|
34
|
+
* concurrent requests for the same row. They are the default, and the right
|
|
35
|
+
* choice for stateless callers whose local graph starts empty.
|
|
36
|
+
* `ablo.<model>.get(id)`, `.getAll(...)`, and `.getCount(...)` are synchronous
|
|
37
|
+
* snapshots of the already-loaded local graph with no network round-trip — use
|
|
38
|
+
* them in reactive React selectors (`useAblo((ablo) => ablo.<model>.get(id))`)
|
|
39
|
+
* once the graph is warm.
|
|
36
40
|
*
|
|
37
|
-
*
|
|
38
|
-
*
|
|
39
|
-
*
|
|
40
|
-
* • the `Ablo*Error` classes
|
|
41
|
-
* That's it. If you're reaching past those, you're in advanced territory.
|
|
41
|
+
* What to import, in short:
|
|
42
|
+
* • `Ablo` (the default export), `AbloOptions`, and the `Model*Params` option
|
|
43
|
+
* bags cover what most applications and agents ever need.
|
|
44
|
+
* • the `Ablo*Error` classes let you discriminate failures in catch blocks.
|
|
42
45
|
*
|
|
43
|
-
*
|
|
44
|
-
*
|
|
45
|
-
* • `dataSource` / `abloSource` —
|
|
46
|
-
* • `defaultPolicy` —
|
|
47
|
-
* • `defineMutators` / `createTransaction` —
|
|
48
|
-
* If you don't recognize one, you don't need it
|
|
46
|
+
* A handful of exports are for advanced use and are marked "Advanced" at their
|
|
47
|
+
* declaration below, each with the one situation it is for:
|
|
48
|
+
* • `dataSource` / `abloSource` — when your own database stays canonical.
|
|
49
|
+
* • `defaultPolicy` — when you customize conflict resolution.
|
|
50
|
+
* • `defineMutators` / `createTransaction` — when you write custom mutators.
|
|
51
|
+
* If you don't recognize one of these, you don't need it.
|
|
49
52
|
*/
|
|
50
53
|
// ── Consumer API ──────────────────────────────────────────────────────────
|
|
51
54
|
// These are the only symbols external consumers should need from this path.
|
|
52
55
|
// Everything else is in a subpath.
|
|
53
|
-
// The
|
|
54
|
-
// one name.
|
|
55
|
-
// `import Ablo
|
|
56
|
-
// `import { Ablo }` also compiles.
|
|
56
|
+
// The primary surface. `Ablo` is a function, a type, and a namespace sharing
|
|
57
|
+
// one name. It is the default export, so `import Ablo from '@abloatai/ablo'`
|
|
58
|
+
// works, and a named export, so `import { Ablo }` compiles too.
|
|
57
59
|
export { Ablo } from './client/Ablo.js';
|
|
58
60
|
export { DEFAULT_CONTENTION_RETRIES } from './client/functionalUpdate.js';
|
|
61
|
+
// The stateless HTTP client is constructed through `Ablo({ transport: 'http' })`.
|
|
62
|
+
// There is no separate constructor to import; annotate values with the
|
|
63
|
+
// `AbloHttpClient` type, which is the return type of that call.
|
|
64
|
+
export {} from './client/httpClient.js';
|
|
59
65
|
export { ABLO_DEFAULT_BASE_URL, ABLO_HOSTED_API_DOMAIN, ABLO_HOSTED_HTTP_BASE_URL, normalizeAbloHostedBaseUrl, } from './client/auth.js';
|
|
60
66
|
// Participant types live under `Ablo.Participant.*` —
|
|
61
67
|
// `Ablo.Participant.Joined`, `Ablo.Participant.Manager`,
|
|
@@ -63,81 +69,83 @@ export { ABLO_DEFAULT_BASE_URL, ABLO_HOSTED_API_DOMAIN, ABLO_HOSTED_HTTP_BASE_UR
|
|
|
63
69
|
// `Ablo.Peer`, `Ablo.Claim`. No flat re-exports.
|
|
64
70
|
import { Ablo } from './client/Ablo.js';
|
|
65
71
|
export default Ablo;
|
|
66
|
-
// Advanced
|
|
67
|
-
//
|
|
68
|
-
//
|
|
69
|
-
//
|
|
70
|
-
//
|
|
71
|
-
// `Ablo.Source.*` (`Ablo.Source.Operation`, `Ablo.Source.Commit.Params`).
|
|
72
|
+
// Advanced, and rarely imported. The storage adapter for Data Source mode,
|
|
73
|
+
// where Ablo coordinates state while the canonical rows stay in your own
|
|
74
|
+
// database. The default is Ablo-managed storage; reach for this only when you
|
|
75
|
+
// have deliberately chosen to keep your database canonical. The matching types
|
|
76
|
+
// live under `Ablo.Source.*` (`Ablo.Source.Operation`, `Ablo.Source.Commit.Params`).
|
|
72
77
|
export { dataSource, abloSource, sourceEventForOperation, signAbloSourceRequest, verifyAbloSourceRequest, } from './source/index.js';
|
|
73
|
-
//
|
|
74
|
-
//
|
|
75
|
-
//
|
|
78
|
+
// Serves the Data Source `commit`, `load`, and `list` operations over an
|
|
79
|
+
// outbound WebSocket, so a database with no public inbound URL (running on a
|
|
80
|
+
// developer's machine or inside a locked-down network) can still be reached by
|
|
81
|
+
// dialing out to Ablo rather than accepting an inbound connection.
|
|
76
82
|
export { createSourceConnector, } from './source/connector.js';
|
|
77
83
|
// Schema DSL is intentionally published from `@abloatai/ablo/schema`.
|
|
78
84
|
// Keeping it out of the root import preserves one clean runtime surface:
|
|
79
85
|
// `import Ablo from '@abloatai/ablo'`.
|
|
80
|
-
// Advanced
|
|
81
|
-
//
|
|
82
|
-
// to
|
|
83
|
-
//
|
|
86
|
+
// Advanced, and rarely imported. The default conflict policy rejects writes
|
|
87
|
+
// premised on stale data and is already applied on the server, so import
|
|
88
|
+
// `defaultPolicy` only to build a custom policy on top of it. Leave it be and
|
|
89
|
+
// stale writes are rejected safely. The matching types live under `Ablo.Conflict.*`.
|
|
84
90
|
export { defaultPolicy, capabilityPreemptPolicy, interpretConflictAxis } from './policy/index.js';
|
|
85
|
-
//
|
|
86
|
-
//
|
|
87
|
-
//
|
|
91
|
+
// The typed error hierarchy. One import brings in every class you need to
|
|
92
|
+
// tell failures apart — by `e instanceof AbloX` or `e.type === 'AbloX'` — along
|
|
93
|
+
// with the helper that translates an HTTP response into the right class.
|
|
88
94
|
export { SyncSessionError, AbloError, AbloAuthenticationError, AbloPermissionError, AbloRateLimitError, AbloIdempotencyError, AbloConnectionError, AbloValidationError, AbloNotFoundError, AbloServerError, AbloStaleContextError, AbloClaimedError, AbloContentionError, CapabilityError, translateHttpError, hasWireCode, errorFromWire, toAbloError, ERROR_CODES, ERROR_CONTRACT_VERSION, errorCodeSpec, isRetryableCode, classifyRecovery, recoveryClassSchema, RECOVERY_CLASSES, } from './errors.js';
|
|
89
|
-
//
|
|
90
|
-
// the AbloError
|
|
91
|
-
//
|
|
92
|
-
//
|
|
95
|
+
// The wire contract for errors, with no dependencies: the JSON envelope shape
|
|
96
|
+
// plus the table mapping each AbloError subclass to an HTTP status. A server
|
|
97
|
+
// that returns Ablo errors can assert against these so its responses never
|
|
98
|
+
// drift from what the client expects.
|
|
93
99
|
export { errorEnvelope, statusForType } from './wire/errorEnvelope.js';
|
|
94
100
|
export { WS_BEARER_SUBPROTOCOL_PREFIX, WS_SYNC_SUBPROTOCOL } from './auth/credentialSource.js';
|
|
95
101
|
export { ENVIRONMENTS, environmentSchema, normalizeEnvironment, environmentFromKeyPrefix, environmentToKeyPrefix, isSandboxEnvironment, } from './environment.js';
|
|
96
|
-
//
|
|
97
|
-
// write
|
|
98
|
-
//
|
|
99
|
-
//
|
|
100
|
-
//
|
|
101
|
-
//
|
|
102
|
+
// The write-options contract: the single Zod schema for the option bag every
|
|
103
|
+
// write accepts (`ablo.<model>.create/update/delete`, `commits.create`, and the
|
|
104
|
+
// HTTP model routes). The SDK validates against it at each boundary, and it is
|
|
105
|
+
// exported so you can validate or assemble options before a call — for example,
|
|
106
|
+
// as the input schema of an agent tool. It is the runtime counterpart of the
|
|
107
|
+
// `MutationOptions` type.
|
|
102
108
|
export { writeOptionsSchema, onStaleModeSchema, assertWriteOptions, } from './client/writeOptionsSchema.js';
|
|
103
|
-
//
|
|
104
|
-
//
|
|
105
|
-
//
|
|
106
|
-
//
|
|
109
|
+
// The value handed back to a writer whose change hit a stale-context conflict
|
|
110
|
+
// under `onStale: 'notify'`. Instead of throwing, the commit succeeds and
|
|
111
|
+
// returns this notification so the caller can reconcile against the current
|
|
112
|
+
// value and retry rather than discard its work.
|
|
107
113
|
export { staleNotificationSchema, readDependencySchema } from './coordination/schema.js';
|
|
108
|
-
//
|
|
109
|
-
//
|
|
110
|
-
// `new ClaimLog()`
|
|
114
|
+
// Collects claim events and stale-write collisions into an ordered list you can
|
|
115
|
+
// print to inspect coordination, or read through `collisions()` to assert on in
|
|
116
|
+
// tests. Pass `new ClaimLog()` as `Ablo({ observability })`.
|
|
111
117
|
export { ClaimLog, formatClaim, formatConflict } from './coordination/trace.js';
|
|
112
118
|
// Spread this to provide a custom `observability` that overrides only the hooks
|
|
113
119
|
// you care about (e.g. captureClaim) and no-ops the rest.
|
|
114
120
|
export { noopObservability } from './SyncEngineContext.js';
|
|
115
|
-
//
|
|
116
|
-
// IndexedDB backing store
|
|
121
|
+
// Detects a stuck local store: use these to recognize when the browser's
|
|
122
|
+
// IndexedDB backing store fails to open in time, so your app can show a
|
|
123
|
+
// recovery screen instead of hanging.
|
|
117
124
|
export { IDBOpenTimeoutError, isStorageOpenTimeout } from './core/openIDBWithTimeout.js';
|
|
118
|
-
//
|
|
119
|
-
//
|
|
120
|
-
//
|
|
125
|
+
// A machine-readable manifest of the SDK's public verb and option names, bound
|
|
126
|
+
// at compile time to the real types so the lists can never name a method or
|
|
127
|
+
// option the API doesn't have. Useful for generating documentation or tooling
|
|
128
|
+
// that needs to enumerate the surface.
|
|
121
129
|
export { PUBLIC_MODEL_VERBS, PUBLIC_LIST_OPTION_KEYS, PUBLIC_ABLO_OPTION_KEYS, } from './surface.js';
|
|
122
|
-
// Advanced
|
|
123
|
-
// `ablo.<model>.create/update/delete
|
|
124
|
-
//
|
|
125
|
-
//
|
|
130
|
+
// Advanced, and rarely imported. Custom mutators. Ordinary writes go through
|
|
131
|
+
// `ablo.<model>.create/update/delete`; reach for `defineMutators` only when you
|
|
132
|
+
// need a named, multi-step mutation with its own undo behavior. The matching
|
|
133
|
+
// types live under the `Ablo` namespace:
|
|
126
134
|
// Ablo.Mutator.Fn, Ablo.Transaction
|
|
127
135
|
// Ablo.Mutator.UndoEntry, Ablo.Mutator.InverseOp
|
|
128
136
|
// Ablo.Query, Ablo.QueryBatch, Ablo.QueryBatchResult
|
|
129
137
|
export { defineMutators } from './mutators/defineMutators.js';
|
|
130
|
-
// `createTransaction`
|
|
131
|
-
//
|
|
132
|
-
//
|
|
133
|
-
//
|
|
134
|
-
// pass it as `{ tx, args }` to the mutator function.
|
|
138
|
+
// `createTransaction` lets callers outside React — server-side workers, agent
|
|
139
|
+
// runtimes — run custom mutators without the `useMutators` hook. Build a
|
|
140
|
+
// transaction from the client's schema, store, and organization id, then pass
|
|
141
|
+
// it to your mutator function as `{ tx, args }`.
|
|
135
142
|
export { createTransaction } from './mutators/Transaction.js';
|
|
136
143
|
// Undo runtime is intentionally not part of the public root surface. App code
|
|
137
144
|
// uses `useUndoScope` from `@abloatai/ablo/react`.
|
|
138
|
-
// JSON comparison helpers. A `field.json()` value
|
|
139
|
-
// column
|
|
140
|
-
// order
|
|
141
|
-
//
|
|
142
|
-
//
|
|
145
|
+
// JSON comparison helpers. A `field.json()` value stored in a Postgres `jsonb`
|
|
146
|
+
// column can come back with its object keys reordered, because jsonb does not
|
|
147
|
+
// preserve key order. A naive `JSON.stringify(a) === JSON.stringify(b)` check
|
|
148
|
+
// then reports a difference that isn't real — a common trap when reconciling an
|
|
149
|
+
// Ablo row against external editor state. These compare independent of key
|
|
150
|
+
// order, so use them instead.
|
|
143
151
|
export { deepEqual, stableStringify } from './utils/json.js';
|