@abloatai/ablo 0.34.1 → 0.35.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 +2 -1
- package/CHANGELOG.md +674 -5
- package/README.md +39 -22
- package/dist/BaseSyncedStore.d.ts +152 -44
- package/dist/BaseSyncedStore.js +300 -184
- package/dist/Database.d.ts +9 -24
- package/dist/Database.js +37 -22
- package/dist/InstanceCache.d.ts +25 -4
- package/dist/InstanceCache.js +48 -15
- package/dist/LazyReferenceCollection.d.ts +3 -3
- package/dist/LazyReferenceCollection.js +4 -4
- package/dist/Model.d.ts +6 -6
- package/dist/Model.js +10 -10
- package/dist/ModelRegistry.d.ts +4 -4
- package/dist/ModelRegistry.js +3 -3
- package/dist/{SyncEngineContext.d.ts → RuntimeContext.d.ts} +20 -13
- package/dist/{SyncEngineContext.js → RuntimeContext.js} +11 -12
- package/dist/SyncClient.d.ts +42 -32
- package/dist/SyncClient.js +166 -110
- package/dist/ai-sdk/coordinatedTool.d.ts +2 -2
- package/dist/ai-sdk/coordinatedTool.js +1 -1
- package/dist/ai-sdk/coordinationContext.d.ts +2 -2
- package/dist/ai-sdk/coordinationContext.js +1 -1
- package/dist/ai-sdk/wrap.d.ts +3 -3
- package/dist/ai-sdk/wrap.js +2 -2
- package/dist/auth/index.d.ts +1 -156
- package/dist/auth/index.js +8 -301
- package/dist/cli.cjs +3344 -1073
- package/dist/client/Ablo.d.ts +42 -287
- package/dist/client/Ablo.js +118 -963
- package/dist/client/abloClient.d.ts +309 -0
- package/dist/client/abloClient.js +13 -0
- package/dist/client/clientPrelude.d.ts +52 -0
- package/dist/client/clientPrelude.js +60 -0
- package/dist/client/consoleLogger.d.ts +2 -2
- package/dist/client/coreClient.d.ts +60 -0
- package/dist/client/coreClient.js +118 -0
- package/dist/client/createInternalComponents.d.ts +4 -4
- package/dist/client/createInternalComponents.js +9 -8
- package/dist/client/createModelProxy.d.ts +78 -373
- package/dist/client/createModelProxy.js +114 -86
- package/dist/client/humans.d.ts +48 -0
- package/dist/client/humans.js +52 -0
- package/dist/client/modelRegistration.d.ts +1 -1
- package/dist/client/modelRegistration.js +9 -9
- package/dist/client/options.d.ts +73 -17
- package/dist/client/reactiveEngine.d.ts +48 -0
- package/dist/client/reactiveEngine.js +910 -0
- package/dist/client/resourceTypes.d.ts +9 -250
- package/dist/client/resourceTypes.js +8 -5
- package/dist/client/schemaConfig.d.ts +4 -4
- package/dist/client/schemaConfig.js +6 -2
- package/dist/client/validateAbloOptions.d.ts +3 -2
- package/dist/client/validateAbloOptions.js +1 -1
- package/dist/client/wsMutationExecutor.d.ts +3 -3
- package/dist/client/wsMutationExecutor.js +3 -3
- package/dist/context.d.ts +9 -9
- package/dist/context.js +10 -9
- package/dist/coordination/ClaimLog.d.ts +26 -0
- package/dist/coordination/ClaimLog.js +32 -0
- package/dist/coordination/index.d.ts +1 -15
- package/dist/coordination/index.js +8 -31
- package/dist/core/DatabaseManager.js +1 -1
- package/dist/core/QueryView.d.ts +1 -1
- package/dist/core/QueryView.js +1 -1
- package/dist/core/StoreManager.d.ts +4 -23
- package/dist/core/StoreManager.js +5 -55
- package/dist/core/index.d.ts +2 -2
- package/dist/core/index.js +2 -2
- package/dist/core/storeContract.d.ts +2 -2
- package/dist/docs/catalog.d.ts +72 -0
- package/dist/docs/catalog.js +227 -0
- package/dist/docs/index.d.ts +10 -0
- package/dist/docs/index.js +10 -0
- package/dist/environment.d.ts +1 -40
- package/dist/environment.js +8 -37
- package/dist/index.d.ts +40 -34
- package/dist/index.js +26 -20
- package/dist/interfaces/index.d.ts +44 -134
- package/dist/keys/index.d.ts +1 -77
- package/dist/keys/index.js +8 -190
- package/dist/mutators/{RecordingTransaction.d.ts → RecordingMutation.d.ts} +4 -4
- package/dist/mutators/{RecordingTransaction.js → RecordingMutation.js} +2 -2
- package/dist/mutators/Transaction.d.ts +1 -1
- package/dist/mutators/Transaction.js +1 -1
- package/dist/mutators/UndoManager.d.ts +6 -6
- package/dist/mutators/UndoManager.js +5 -5
- package/dist/mutators/defineMutators.d.ts +3 -3
- package/dist/mutators/defineMutators.js +1 -1
- package/dist/mutators/inverseOp.js +2 -2
- package/dist/mutators/mutateActions.d.ts +3 -3
- package/dist/mutators/mutateActions.js +1 -1
- package/dist/mutators/readerActions.d.ts +1 -1
- package/dist/mutators/undoApply.d.ts +1 -1
- package/dist/mutators/undoApply.js +1 -1
- package/dist/policy/index.d.ts +2 -2
- package/dist/policy/index.js +1 -1
- package/dist/query/client.d.ts +2 -2
- package/dist/query/client.js +4 -4
- package/dist/query/types.d.ts +6 -41
- package/dist/query/types.js +2 -2
- package/dist/react/AbloProvider.d.ts +6 -8
- package/dist/react/AbloProvider.js +5 -7
- package/dist/react/context.d.ts +1 -1
- package/dist/react/context.js +1 -1
- package/dist/react/index.d.ts +5 -5
- package/dist/react/index.js +3 -3
- package/dist/react/internalContext.d.ts +1 -1
- package/dist/react/useAblo.d.ts +3 -3
- package/dist/react/useAblo.js +1 -1
- package/dist/react/useCurrentUserId.js +1 -1
- package/dist/react/useErrorListener.js +1 -1
- package/dist/react/useMutationFailureListener.d.ts +2 -2
- package/dist/react/useMutationFailureListener.js +1 -1
- package/dist/react/useMutators.d.ts +3 -3
- package/dist/react/useMutators.js +3 -3
- package/dist/react/useUndoScope.d.ts +5 -5
- package/dist/react/useUndoScope.js +1 -1
- package/dist/schema/coordination.d.ts +69 -10
- package/dist/schema/coordination.js +86 -9
- package/dist/schema/ddl.js +2 -2
- package/dist/schema/diff.d.ts +1 -1
- package/dist/schema/generate.js +1 -1
- package/dist/schema/index.d.ts +10 -10
- package/dist/schema/index.js +18 -18
- package/dist/schema/queries.d.ts +27 -27
- package/dist/schema/queries.js +23 -23
- package/dist/schema/select.d.ts +3 -3
- package/dist/schema/select.js +3 -3
- package/dist/schema/serialize.d.ts +15 -6
- package/dist/schema/serialize.js +17 -3
- package/dist/schema/sugar.d.ts +6 -7
- package/dist/schema/sugar.js +9 -12
- package/dist/schema/syncDeltaRow.d.ts +4 -152
- package/dist/schema/syncDeltaRow.js +4 -105
- package/dist/server/adapter.d.ts +18 -1
- package/dist/server/commit.d.ts +10 -16
- package/dist/server/index.d.ts +1 -1
- package/dist/server/index.js +1 -1
- package/dist/server/readConfig.d.ts +1 -1
- package/dist/source/adapters/drizzle.d.ts +1 -1
- package/dist/source/adapters/drizzle.js +2 -2
- package/dist/source/adapters/kysely.d.ts +1 -1
- package/dist/source/adapters/kysely.js +1 -1
- package/dist/source/adapters/kyselyMutationCore.d.ts +1 -1
- package/dist/source/adapters/kyselyMutationCore.js +2 -2
- package/dist/source/adapters/memory.js +1 -1
- package/dist/source/adapters/prisma.d.ts +8 -3
- package/dist/source/adapters/prisma.js +1 -1
- package/dist/source/connector.js +1 -1
- package/dist/source/connectorProtocol.d.ts +2 -8
- package/dist/source/connectorProtocol.js +3 -2
- package/dist/source/contract.d.ts +29 -17
- package/dist/source/contract.js +27 -22
- package/dist/source/factory.d.ts +1 -1
- package/dist/source/footprint.d.ts +111 -0
- package/dist/source/footprint.js +0 -0
- package/dist/source/idempotency.js +2 -2
- package/dist/source/index.d.ts +1 -0
- package/dist/source/index.js +3 -0
- package/dist/source/next.d.ts +1 -1
- package/dist/source/signing.d.ts +9 -2
- package/dist/source/signing.js +4 -1
- package/dist/source/types.d.ts +6 -4
- package/dist/source/types.js +1 -1
- package/dist/stores/ObjectStore.d.ts +1 -1
- package/dist/stores/SyncActionStore.d.ts +1 -1
- package/dist/stores/SyncActionStore.js +2 -10
- package/dist/stores/syncAction.d.ts +26 -0
- package/dist/stores/syncAction.js +16 -0
- package/dist/surface.d.ts +3 -3
- package/dist/surface.js +6 -4
- package/dist/sync/BootstrapFetcher.d.ts +123 -6
- package/dist/sync/BootstrapFetcher.js +492 -66
- package/dist/sync/ConnectionManager.d.ts +6 -198
- package/dist/sync/ConnectionManager.js +6 -677
- package/dist/sync/OnDemandLoader.d.ts +2 -2
- package/dist/sync/OnDemandLoader.js +60 -21
- package/dist/sync/SubscriptionManager.d.ts +13 -2
- package/dist/sync/SubscriptionManager.js +23 -5
- package/dist/sync/SyncWebSocket.d.ts +27 -510
- package/dist/sync/SyncWebSocket.js +76 -954
- package/dist/sync/awaitClaimGrant.d.ts +4 -44
- package/dist/sync/awaitClaimGrant.js +4 -109
- package/dist/sync/commitFrames.d.ts +6 -40
- package/dist/sync/commitFrames.js +6 -97
- package/dist/sync/contextPorts.d.ts +18 -0
- package/dist/sync/contextPorts.js +31 -0
- package/dist/sync/createClaimStream.d.ts +5 -49
- package/dist/sync/createClaimStream.js +5 -469
- package/dist/sync/createPresenceStream.d.ts +26 -4
- package/dist/sync/createPresenceStream.js +28 -20
- package/dist/sync/createSnapshot.d.ts +2 -2
- package/dist/sync/createSnapshot.js +1 -1
- package/dist/sync/credentialLifecycle.d.ts +5 -173
- package/dist/sync/credentialLifecycle.js +5 -320
- package/dist/sync/deltaPipeline.d.ts +1 -1
- package/dist/sync/participants.d.ts +5 -4
- package/dist/sync/participants.js +29 -22
- package/dist/sync/schemaDrift.d.ts +55 -0
- package/dist/sync/schemaDrift.js +53 -0
- package/dist/sync/schemas.d.ts +21 -32
- package/dist/sync/schemas.js +26 -17
- package/dist/sync/syncPlan.d.ts +3 -3
- package/dist/sync/wsFrameHandlers.d.ts +6 -114
- package/dist/sync/wsFrameHandlers.js +6 -392
- package/dist/testing/fixtures/bootstrap.d.ts +1 -1
- package/dist/testing/fixtures/deltas.d.ts +1 -1
- package/dist/testing/fixtures/httpResponses.d.ts +70 -0
- package/dist/testing/fixtures/httpResponses.js +90 -0
- package/dist/testing/fixtures/models.js +1 -1
- package/dist/testing/helpers/wait.js +1 -1
- package/dist/testing/mocks/MockMutationExecutor.d.ts +2 -2
- package/dist/testing/mocks/MockMutationExecutor.js +8 -14
- package/dist/testing/mocks/MockSyncContext.d.ts +11 -11
- package/dist/testing/mocks/MockSyncContext.js +10 -9
- package/dist/testing/mocks/MockSyncStore.js +1 -1
- package/dist/testing/mocks/MockWebSocket.d.ts +2 -2
- package/dist/transaction/ablo.d.ts +88 -0
- package/dist/transaction/ablo.js +33 -0
- package/dist/{client/auth.d.ts → transaction/auth/apiKey.d.ts} +43 -8
- package/dist/{client/auth.js → transaction/auth/apiKey.js} +19 -0
- package/dist/transaction/auth/bootstrapScope.d.ts +15 -0
- package/dist/transaction/auth/bootstrapScope.js +1 -0
- package/dist/transaction/auth/capability.d.ts +177 -0
- package/dist/transaction/auth/capability.js +199 -0
- package/dist/{auth → transaction/auth}/credentialSource.d.ts +8 -1
- package/dist/{client → transaction/auth}/identity.d.ts +8 -7
- package/dist/{client → transaction/auth}/identity.js +1 -1
- package/dist/transaction/auth/index.d.ts +162 -0
- package/dist/transaction/auth/index.js +304 -0
- package/dist/{auth → transaction/auth}/schemas.d.ts +1 -1
- package/dist/{auth → transaction/auth}/schemas.js +13 -13
- package/dist/{client → transaction/auth}/sessionMint.d.ts +8 -8
- package/dist/{client → transaction/auth}/sessionMint.js +4 -7
- package/dist/transaction/coordination/awaitClaimGrant.d.ts +49 -0
- package/dist/transaction/coordination/awaitClaimGrant.js +112 -0
- package/dist/transaction/coordination/claimMeta.d.ts +49 -0
- package/dist/transaction/coordination/claimMeta.js +52 -0
- package/dist/transaction/coordination/createClaimStream.d.ts +64 -0
- package/dist/transaction/coordination/createClaimStream.js +475 -0
- package/dist/transaction/coordination/events.d.ts +74 -0
- package/dist/transaction/coordination/events.js +7 -0
- package/dist/transaction/coordination/index.d.ts +19 -0
- package/dist/transaction/coordination/index.js +44 -0
- package/dist/transaction/coordination/locator.d.ts +83 -0
- package/dist/transaction/coordination/locator.js +82 -0
- package/dist/transaction/coordination/schema.d.ts +1473 -0
- package/dist/{coordination → transaction/coordination}/schema.js +490 -55
- package/dist/transaction/coordination/targetConflict.d.ts +2 -0
- package/dist/transaction/coordination/targetConflict.js +103 -0
- package/dist/{coordination → transaction/coordination}/trace.d.ts +7 -18
- package/dist/{coordination → transaction/coordination}/trace.js +18 -25
- package/dist/transaction/durableWrites.d.ts +62 -0
- package/dist/{client → transaction}/durableWrites.js +28 -3
- package/dist/transaction/environment.d.ts +105 -0
- package/dist/transaction/environment.js +108 -0
- package/dist/{errorCodes.d.ts → transaction/errorCodes.d.ts} +11 -11
- package/dist/{errorCodes.js → transaction/errorCodes.js} +35 -12
- package/dist/{errors.d.ts → transaction/errors.d.ts} +37 -13
- package/dist/{errors.js → transaction/errors.js} +85 -16
- package/dist/transaction/index.d.ts +20 -0
- package/dist/transaction/index.js +20 -0
- package/dist/transaction/keys/index.d.ts +87 -0
- package/dist/transaction/keys/index.js +207 -0
- package/dist/transaction/log/syncDeltaRow.d.ts +158 -0
- package/dist/transaction/log/syncDeltaRow.js +95 -0
- package/dist/{sync/syncPosition.d.ts → transaction/logPosition.d.ts} +22 -8
- package/dist/{sync/syncPosition.js → transaction/logPosition.js} +15 -6
- package/dist/transaction/logger.d.ts +16 -0
- package/dist/transaction/logger.js +7 -0
- package/dist/transaction/observability.d.ts +53 -0
- package/dist/transaction/observability.js +19 -0
- package/dist/transaction/plugin.d.ts +192 -0
- package/dist/transaction/plugin.js +87 -0
- package/dist/{policy → transaction/policy}/types.d.ts +3 -3
- package/dist/{policy → transaction/policy}/types.js +2 -0
- package/dist/transaction/resources/httpResources.d.ts +266 -0
- package/dist/transaction/resources/httpResources.js +7 -0
- package/dist/transaction/resources/modelOperations.d.ts +319 -0
- package/dist/transaction/resources/modelOperations.js +12 -0
- package/dist/transaction/resources/mutationOptions.d.ts +66 -0
- package/dist/transaction/resources/mutationOptions.js +9 -0
- package/dist/transaction/resources/where.d.ts +85 -0
- package/dist/transaction/resources/where.js +70 -0
- package/dist/{client → transaction/resources}/writeOptionsSchema.d.ts +2 -6
- package/dist/{client → transaction/resources}/writeOptionsSchema.js +9 -5
- package/dist/{schema → transaction/schema}/field.d.ts +5 -5
- package/dist/{schema → transaction/schema}/field.js +5 -5
- package/dist/transaction/schema/loadStrategy.d.ts +45 -0
- package/dist/transaction/schema/loadStrategy.js +46 -0
- package/dist/{schema → transaction/schema}/model.d.ts +50 -35
- package/dist/{schema → transaction/schema}/model.js +30 -20
- package/dist/transaction/schema/openapi.d.ts +57 -0
- package/dist/transaction/schema/openapi.js +340 -0
- package/dist/{schema → transaction/schema}/relation.d.ts +14 -14
- package/dist/{schema → transaction/schema}/relation.js +7 -7
- package/dist/{schema → transaction/schema}/residency.d.ts +0 -9
- package/dist/{schema → transaction/schema}/residency.js +0 -5
- package/dist/{schema → transaction/schema}/roles.d.ts +5 -5
- package/dist/{schema → transaction/schema}/roles.js +5 -5
- package/dist/{schema → transaction/schema}/schema.d.ts +12 -10
- package/dist/{schema → transaction/schema}/schema.js +4 -3
- package/dist/{schema → transaction/schema}/tenancy.d.ts +1 -1
- package/dist/{schema → transaction/schema}/tenancy.js +7 -4
- package/dist/transaction/transactionLayer.d.ts +82 -0
- package/dist/transaction/transactionLayer.js +24 -0
- package/dist/{transactions → transaction/transactions/settlement}/commitEnvelope.d.ts +4 -5
- package/dist/{transactions → transaction/transactions/settlement}/commitEnvelope.js +9 -13
- package/dist/{transactions → transaction/transactions/settlement}/httpCommitEnvelope.d.ts +9 -2
- package/dist/{transactions → transaction/transactions/settlement}/httpCommitEnvelope.js +5 -9
- package/dist/{transactions/durableWriteStore.d.ts → transaction/transactions/settlement/pendingWrite.d.ts} +10 -36
- package/dist/transaction/transactions/settlement/pendingWrite.js +20 -0
- package/dist/transaction/transport/commitFrames.d.ts +90 -0
- package/dist/transaction/transport/commitFrames.js +134 -0
- package/dist/transaction/transport/connectionManager.d.ts +215 -0
- package/dist/transaction/transport/connectionManager.js +673 -0
- package/dist/transaction/transport/credentialLifecycle.d.ts +177 -0
- package/dist/transaction/transport/credentialLifecycle.js +324 -0
- package/dist/{sync → transaction/transport}/heartbeat.d.ts +3 -1
- package/dist/{sync → transaction/transport}/heartbeat.js +6 -4
- package/dist/{client → transaction/transport}/httpClient.d.ts +59 -16
- package/dist/{client → transaction/transport}/httpClient.js +5 -5
- package/dist/transaction/transport/httpOptions.d.ts +33 -0
- package/dist/transaction/transport/httpOptions.js +12 -0
- package/dist/{client → transaction/transport}/httpTransport.js +171 -85
- package/dist/{sync/NetworkProbe.d.ts → transaction/transport/networkProbe.d.ts} +7 -4
- package/dist/{sync/NetworkProbe.js → transaction/transport/networkProbe.js} +14 -13
- package/dist/transaction/transport/wsFrameHandlers.d.ts +128 -0
- package/dist/transaction/transport/wsFrameHandlers.js +429 -0
- package/dist/transaction/transport/wsTransport.d.ts +576 -0
- package/dist/transaction/transport/wsTransport.js +1017 -0
- package/dist/transaction/types/assertExact.d.ts +17 -0
- package/dist/transaction/types/assertExact.js +1 -0
- package/dist/{types → transaction/types}/global.d.ts +17 -2
- package/dist/{types → transaction/types}/global.js +2 -1
- package/dist/{types → transaction/types}/index.d.ts +14 -46
- package/dist/{types → transaction/types}/index.js +7 -16
- package/dist/{types → transaction/types}/streams.d.ts +63 -45
- package/dist/{utils → transaction/utils}/json.d.ts +18 -0
- package/dist/transaction/utils/json.js +276 -0
- package/dist/transaction/wire/accountResponses.d.ts +351 -0
- package/dist/transaction/wire/accountResponses.js +255 -0
- package/dist/transaction/wire/auth.d.ts +49 -0
- package/dist/transaction/wire/auth.js +57 -0
- package/dist/transaction/wire/claimEvent.d.ts +76 -0
- package/dist/transaction/wire/claimEvent.js +73 -0
- package/dist/transaction/wire/claims.d.ts +463 -0
- package/dist/transaction/wire/claims.js +229 -0
- package/dist/{wire → transaction/wire}/commit.d.ts +125 -193
- package/dist/{wire → transaction/wire}/commit.js +68 -47
- package/dist/{wire → transaction/wire}/delta.d.ts +66 -17
- package/dist/{wire → transaction/wire}/delta.js +37 -13
- package/dist/transaction/wire/errorEnvelope.d.ts +72 -0
- package/dist/{wire → transaction/wire}/errorEnvelope.js +36 -5
- package/dist/transaction/wire/feedCursor.d.ts +60 -0
- package/dist/transaction/wire/feedCursor.js +82 -0
- package/dist/transaction/wire/feedEvent.d.ts +177 -0
- package/dist/transaction/wire/feedEvent.js +39 -0
- package/dist/transaction/wire/frames.d.ts +194 -0
- package/dist/transaction/wire/frames.js +50 -0
- package/dist/transaction/wire/inboundFrames.d.ts +552 -0
- package/dist/transaction/wire/inboundFrames.js +116 -0
- package/dist/transaction/wire/index.d.ts +50 -0
- package/dist/transaction/wire/index.js +74 -0
- package/dist/{wire → transaction/wire}/listEnvelope.d.ts +13 -14
- package/dist/transaction/wire/listEnvelope.js +42 -0
- package/dist/transaction/wire/modelResponses.d.ts +85 -0
- package/dist/transaction/wire/modelResponses.js +43 -0
- package/dist/transactions/{TransactionQueue.d.ts → mutations/MutationQueue.d.ts} +79 -38
- package/dist/transactions/{TransactionQueue.js → mutations/MutationQueue.js} +110 -59
- package/dist/transactions/{TransactionStore.d.ts → mutations/MutationStore.d.ts} +8 -8
- package/dist/transactions/{TransactionStore.js → mutations/MutationStore.js} +2 -2
- package/dist/transactions/{coalesceRules.d.ts → mutations/coalesceRules.d.ts} +10 -10
- package/dist/transactions/{coalesceRules.js → mutations/coalesceRules.js} +1 -1
- package/dist/transactions/mutations/commitLatency.d.ts +52 -0
- package/dist/transactions/mutations/commitLatency.js +130 -0
- package/dist/transactions/{commitOutboxStore.d.ts → mutations/commitOutboxStore.d.ts} +1 -5
- package/dist/transactions/{commitOutboxStore.js → mutations/commitOutboxStore.js} +1 -1
- package/dist/transactions/{commitPayload.d.ts → mutations/commitPayload.d.ts} +16 -15
- package/dist/transactions/{commitPayload.js → mutations/commitPayload.js} +12 -12
- package/dist/transactions/{deltaConfirmation.d.ts → mutations/deltaConfirmation.d.ts} +11 -11
- package/dist/transactions/{deltaConfirmation.js → mutations/deltaConfirmation.js} +7 -7
- package/dist/transactions/mutations/durableWriteStore.d.ts +14 -0
- package/dist/transactions/mutations/durableWriteStore.js +12 -0
- package/dist/transactions/{optimisticApply.d.ts → mutations/optimisticApply.d.ts} +7 -7
- package/dist/transactions/{replayValidation.d.ts → mutations/replayValidation.d.ts} +3 -3
- package/dist/transactions/{replayValidation.js → mutations/replayValidation.js} +4 -3
- package/dist/utils/mobxSetup.d.ts +1 -1
- package/dist/utils/mobxSetup.js +5 -2
- package/dist/webhooks/events.d.ts +2 -2
- package/dist/wire/index.d.ts +1 -34
- package/dist/wire/index.js +8 -49
- package/docs/agent-messaging.md +3 -3
- package/docs/agents.md +19 -12
- package/docs/api-keys.md +8 -4
- package/docs/api.md +22 -18
- package/docs/audit.md +2 -0
- package/docs/cli.md +31 -3
- package/docs/client-behavior.md +8 -6
- package/docs/concurrency-convention.md +30 -24
- package/docs/coordination.md +48 -38
- package/docs/data-sources.md +3 -1
- package/docs/debugging.md +5 -3
- package/docs/deployment.md +267 -0
- package/docs/examples/agent-human.md +49 -42
- package/docs/examples/ai-sdk-tool.md +69 -44
- package/docs/examples/existing-python-backend.md +8 -6
- package/docs/examples/nextjs.md +129 -47
- package/docs/examples/scoped-agent.md +45 -44
- package/docs/examples/server-agent.md +46 -26
- package/docs/groups.md +32 -29
- package/docs/guarantees.md +4 -2
- package/docs/how-it-works.md +9 -7
- package/docs/idempotency.md +126 -0
- package/docs/identity.md +58 -54
- package/docs/index.md +172 -86
- package/docs/integration-guide.md +17 -16
- package/docs/interaction-model.md +6 -4
- package/docs/mcp.md +41 -16
- package/docs/migration.md +63 -5
- package/docs/operating-on-your-database.md +3 -1
- package/docs/projects.md +2 -0
- package/docs/quickstart.md +22 -5
- package/docs/react.md +12 -10
- package/docs/schema-contract.md +5 -3
- package/docs/session-settings.md +108 -0
- package/docs/sessions.md +3 -1
- package/docs/webhooks.md +3 -1
- package/llms.txt +47 -17
- package/package.json +10 -8
- package/dist/agent/Agent.d.ts +0 -366
- package/dist/agent/Agent.js +0 -514
- package/dist/agent/index.d.ts +0 -115
- package/dist/agent/index.js +0 -128
- package/dist/agent/session.d.ts +0 -93
- package/dist/agent/session.js +0 -149
- package/dist/agent/types.d.ts +0 -68
- package/dist/agent/types.js +0 -9
- package/dist/client/durableWrites.d.ts +0 -21
- package/dist/coordination/schema.d.ts +0 -722
- package/dist/schema/openapi.d.ts +0 -29
- package/dist/schema/openapi.js +0 -124
- package/dist/transactions/durableWriteStore.js +0 -30
- package/dist/utils/json.js +0 -88
- package/dist/wire/errorEnvelope.d.ts +0 -55
- package/dist/wire/frames.d.ts +0 -197
- package/dist/wire/frames.js +0 -49
- package/dist/wire/listEnvelope.js +0 -18
- /package/dist/{client → transaction/auth}/credentialEndpoint.d.ts +0 -0
- /package/dist/{client → transaction/auth}/credentialEndpoint.js +0 -0
- /package/dist/{auth → transaction/auth}/credentialPolicy.d.ts +0 -0
- /package/dist/{auth → transaction/auth}/credentialPolicy.js +0 -0
- /package/dist/{auth → transaction/auth}/credentialSource.js +0 -0
- /package/dist/{client → transaction/auth}/hostedEndpoints.d.ts +0 -0
- /package/dist/{client → transaction/auth}/hostedEndpoints.js +0 -0
- /package/dist/{client → transaction/coordination}/claimHeartbeatLoop.d.ts +0 -0
- /package/dist/{client → transaction/coordination}/claimHeartbeatLoop.js +0 -0
- /package/dist/{client → transaction}/persistence.d.ts +0 -0
- /package/dist/{client → transaction}/persistence.js +0 -0
- /package/dist/{client → transaction/resources}/functionalUpdate.d.ts +0 -0
- /package/dist/{client → transaction/resources}/functionalUpdate.js +0 -0
- /package/dist/{transactions → transaction/transactions/settlement}/idempotencyKey.d.ts +0 -0
- /package/dist/{transactions → transaction/transactions/settlement}/idempotencyKey.js +0 -0
- /package/dist/{client → transaction/transport}/httpTransport.d.ts +0 -0
- /package/dist/{types → transaction/types}/modelData.d.ts +0 -0
- /package/dist/{types → transaction/types}/modelData.js +0 -0
- /package/dist/{types → transaction/types}/participant.d.ts +0 -0
- /package/dist/{types → transaction/types}/participant.js +0 -0
- /package/dist/{types → transaction/types}/streams.js +0 -0
- /package/dist/{utils → transaction/utils}/asyncIterator.d.ts +0 -0
- /package/dist/{utils → transaction/utils}/asyncIterator.js +0 -0
- /package/dist/{utils → transaction/utils}/duration.d.ts +0 -0
- /package/dist/{utils → transaction/utils}/duration.js +0 -0
- /package/dist/{wire → transaction/wire}/bootstrapReason.d.ts +0 -0
- /package/dist/{wire → transaction/wire}/bootstrapReason.js +0 -0
- /package/dist/{wire → transaction/wire}/protocol.d.ts +0 -0
- /package/dist/{wire → transaction/wire}/protocol.js +0 -0
- /package/dist/{wire → transaction/wire}/protocolVersion.d.ts +0 -0
- /package/dist/{wire → transaction/wire}/protocolVersion.js +0 -0
- /package/dist/transactions/{UnconfirmedWrites.d.ts → mutations/UnconfirmedWrites.d.ts} +0 -0
- /package/dist/transactions/{UnconfirmedWrites.js → mutations/UnconfirmedWrites.js} +0 -0
- /package/dist/transactions/{optimisticApply.js → mutations/optimisticApply.js} +0 -0
package/dist/client/options.d.ts
CHANGED
|
@@ -4,19 +4,21 @@
|
|
|
4
4
|
* construction surface exposed through `@abloatai/ablo/core`.
|
|
5
5
|
* This module holds only types and has no runtime imports.
|
|
6
6
|
*/
|
|
7
|
-
import type { Schema, SchemaRecord } from '../schema/schema.js';
|
|
8
|
-
import type {
|
|
9
|
-
import type { AbloPersistence } from '
|
|
10
|
-
import type { DurableWriteStore, DurableWritesConfig } from '../
|
|
11
|
-
import type { CommitOutboxScope } from '../transactions/commitEnvelope.js';
|
|
7
|
+
import type { Schema, SchemaRecord } from '../transaction/schema/schema.js';
|
|
8
|
+
import type { RuntimeConfig, Logger, MutationExecutor, ObservabilityProvider, Analytics, SessionErrorDetector, OnlineStatusProvider } from '../interfaces/index.js';
|
|
9
|
+
import type { AbloPersistence } from '../transaction/persistence.js';
|
|
10
|
+
import type { DurableWriteStore, DurableWritesConfig } from '../transaction/durableWrites.js';
|
|
11
|
+
import type { CommitOutboxScope } from '../transaction/transactions/settlement/commitEnvelope.js';
|
|
12
12
|
/**
|
|
13
13
|
* An async function that resolves an apiKey at request time. Use it for credential
|
|
14
14
|
* rotation — read from a vault, refresh from session storage, or pull from an
|
|
15
15
|
* existing auth session. The canonical definition lives in `./auth`; it is
|
|
16
16
|
* re-exported here for convenience.
|
|
17
17
|
*/
|
|
18
|
-
export type { ApiKeySetter } from '
|
|
19
|
-
import type { ApiKeySetter } from '
|
|
18
|
+
export type { ApiKeySetter } from '../transaction/auth/apiKey.js';
|
|
19
|
+
import type { ApiKeySetter } from '../transaction/auth/apiKey.js';
|
|
20
|
+
import type { AbloPlugin } from '../transaction/plugin.js';
|
|
21
|
+
import type { ParticipantKind } from '../transaction/types/participant.js';
|
|
20
22
|
/**
|
|
21
23
|
* Options for the {@link Ablo} client.
|
|
22
24
|
*
|
|
@@ -39,6 +41,13 @@ export interface AbloOptions<S extends SchemaRecord = SchemaRecord> {
|
|
|
39
41
|
* pass; start here.
|
|
40
42
|
*/
|
|
41
43
|
schema: Schema<S>;
|
|
44
|
+
/**
|
|
45
|
+
* The capabilities installed on this client. Each plugin appears once in
|
|
46
|
+
* the list; a duplicate, or a plugin the chosen transport cannot carry,
|
|
47
|
+
* fails while the client is being constructed with an error naming the
|
|
48
|
+
* plugin. Omitted, the client installs `humans()` — today's default.
|
|
49
|
+
*/
|
|
50
|
+
plugins?: readonly AbloPlugin[];
|
|
42
51
|
/**
|
|
43
52
|
* The API key — the auth field most apps set. It accepts three shapes:
|
|
44
53
|
*
|
|
@@ -117,6 +126,15 @@ export interface AbloOptions<S extends SchemaRecord = SchemaRecord> {
|
|
|
117
126
|
* })
|
|
118
127
|
* ```
|
|
119
128
|
*/
|
|
129
|
+
/**
|
|
130
|
+
* Wire message types to surface as collaboration events, e.g.
|
|
131
|
+
* `['document:selection', 'document:cursor']`.
|
|
132
|
+
*
|
|
133
|
+
* These name your application's own concepts, so the SDK ships no default —
|
|
134
|
+
* a schema with no documents should never receive document events. Declare
|
|
135
|
+
* the ones you broadcast.
|
|
136
|
+
*/
|
|
137
|
+
collaborationEvents?: readonly string[];
|
|
120
138
|
durableWrites?: DurableWritesConfig;
|
|
121
139
|
/**
|
|
122
140
|
* @deprecated Use `durableWrites: { store, namespace }`.
|
|
@@ -142,8 +160,8 @@ export interface AbloOptions<S extends SchemaRecord = SchemaRecord> {
|
|
|
142
160
|
* serverless handlers. It offers the same `ablo.<model>` surface and coordination
|
|
143
161
|
* plane, but every call is a single HTTP round-trip, identity rides the bearer
|
|
144
162
|
* credential, and no socket is opened. With `'http'` the return type narrows to
|
|
145
|
-
* {@link AbloHttpClient}, so stateful-only capabilities such as
|
|
146
|
-
* and `onChange` become compile errors instead of runtime gaps.
|
|
163
|
+
* {@link AbloHttpClient}, so stateful-only capabilities such as the `local`
|
|
164
|
+
* reads and `onChange` become compile errors instead of runtime gaps.
|
|
147
165
|
*
|
|
148
166
|
* Session minting through `sessions.create` is available on both transports.
|
|
149
167
|
*
|
|
@@ -154,12 +172,18 @@ export interface AbloOptions<S extends SchemaRecord = SchemaRecord> {
|
|
|
154
172
|
* Turns Ablo's diagnostic logging on or off. `true` surfaces the `[Ablo]`
|
|
155
173
|
* coordination trace — claims requested, queued, granted, and released, agent
|
|
156
174
|
* handovers, and connection state — so you can watch the coordination between
|
|
157
|
-
*
|
|
175
|
+
* agents and people while debugging. Omitting it, or `false`, keeps the quiet
|
|
158
176
|
* default of warnings and errors only. For a middle ground use {@link logLevel}.
|
|
159
177
|
* The `ABLO_LOG_LEVEL` environment variable overrides it, and a custom logger
|
|
160
178
|
* takes precedence.
|
|
161
179
|
*/
|
|
162
180
|
debug?: boolean | undefined;
|
|
181
|
+
/**
|
|
182
|
+
* Route Ablo's log lines through your own logger (pino, winston, a test spy)
|
|
183
|
+
* instead of the default console `[Ablo]` logger. Supplying one bypasses
|
|
184
|
+
* {@link debug}/{@link logLevel} — your logger owns the thresholds.
|
|
185
|
+
*/
|
|
186
|
+
logger?: Logger;
|
|
163
187
|
/**
|
|
164
188
|
* The log threshold for the default `[Ablo]` logger; takes precedence over
|
|
165
189
|
* {@link debug}. `'info'` shows coordination and connection events without the
|
|
@@ -189,6 +213,33 @@ export interface AbloOptions<S extends SchemaRecord = SchemaRecord> {
|
|
|
189
213
|
* session token (`ek_`/`rk_`) or you route through a controlled server proxy.
|
|
190
214
|
*/
|
|
191
215
|
dangerouslyAllowBrowser?: boolean | undefined;
|
|
216
|
+
/**
|
|
217
|
+
* How far a write goes before its promise settles, for every model write on
|
|
218
|
+
* this client. The same word each write already takes per call
|
|
219
|
+
* (`create({ …, wait: 'confirmed' })`); setting it here makes it the default
|
|
220
|
+
* instead of repeating it.
|
|
221
|
+
*
|
|
222
|
+
* A write resolves as soon as it is applied locally and queued. That is what
|
|
223
|
+
* makes the UI immediate, and it is right for most writes — but it means a
|
|
224
|
+
* write the server later REFUSES has no caller left to tell. The rejection
|
|
225
|
+
* reverts the local row and reaches `ablo.onMutationFailure(…)`, and an
|
|
226
|
+
* application that subscribes to neither shows the change, then loses it,
|
|
227
|
+
* with nothing thrown anywhere.
|
|
228
|
+
*
|
|
229
|
+
* ```ts
|
|
230
|
+
* const ablo = new Ablo({ schema, apiKey, wait: 'confirmed' });
|
|
231
|
+
* try {
|
|
232
|
+
* await ablo.documents.update({ id, data }); // throws if refused
|
|
233
|
+
* } catch (err) {
|
|
234
|
+
* if (err instanceof AbloError) show(err.message);
|
|
235
|
+
* }
|
|
236
|
+
* ```
|
|
237
|
+
*
|
|
238
|
+
* The cost is real: each write now waits for the server's answer, so it is a
|
|
239
|
+
* choice between immediacy and certainty rather than a strict improvement.
|
|
240
|
+
* A per-call `wait` still wins over this.
|
|
241
|
+
*/
|
|
242
|
+
wait?: 'queued' | 'confirmed' | undefined;
|
|
192
243
|
}
|
|
193
244
|
export interface InternalAbloOptions<S extends SchemaRecord = SchemaRecord> {
|
|
194
245
|
/**
|
|
@@ -257,7 +308,7 @@ export interface InternalAbloOptions<S extends SchemaRecord = SchemaRecord> {
|
|
|
257
308
|
* @deprecated The server derives the participant kind from the apiKey's scope.
|
|
258
309
|
* Pass `apiKey` only.
|
|
259
310
|
*/
|
|
260
|
-
kind?:
|
|
311
|
+
kind?: ParticipantKind;
|
|
261
312
|
/**
|
|
262
313
|
* @deprecated The server derives user identity from the apiKey's scope, or from
|
|
263
314
|
* the `Ablo-Acting-User` request header for multi-tenant setups. Pass `apiKey`
|
|
@@ -277,12 +328,12 @@ export interface InternalAbloOptions<S extends SchemaRecord = SchemaRecord> {
|
|
|
277
328
|
*/
|
|
278
329
|
capabilityToken?: string;
|
|
279
330
|
/** Custom logger (default: console). Supplying one bypasses {@link debug}/{@link logLevel}. */
|
|
280
|
-
logger?:
|
|
331
|
+
logger?: Logger;
|
|
281
332
|
/**
|
|
282
333
|
* Turns Ablo's diagnostic logging on or off. `true` surfaces the `[Ablo]`
|
|
283
334
|
* coordination trace — claims acquired, queued, granted, and released, agent
|
|
284
335
|
* handovers, and connection state — along with internal lifecycle events, so you
|
|
285
|
-
* can watch the coordination between
|
|
336
|
+
* can watch the coordination between agents and people. Omitting it, or `false`,
|
|
286
337
|
* keeps the quiet default of warnings and errors only. For a middle ground use
|
|
287
338
|
* {@link logLevel}. The `ABLO_LOG_LEVEL` environment variable overrides it, and a
|
|
288
339
|
* custom {@link logger} takes precedence.
|
|
@@ -307,6 +358,8 @@ export interface InternalAbloOptions<S extends SchemaRecord = SchemaRecord> {
|
|
|
307
358
|
*/
|
|
308
359
|
persistence?: AbloPersistence;
|
|
309
360
|
/** Internal mirror of {@link AbloOptions.durableWrites}. */
|
|
361
|
+
/** Wire message types to surface as collaboration events. Empty unless declared. */
|
|
362
|
+
collaborationEvents?: readonly string[];
|
|
310
363
|
durableWrites?: DurableWritesConfig;
|
|
311
364
|
/** @deprecated Internal mirror of {@link AbloOptions.commitOutbox}. */
|
|
312
365
|
commitOutbox?: DurableWriteStore;
|
|
@@ -344,12 +397,12 @@ export interface InternalAbloOptions<S extends SchemaRecord = SchemaRecord> {
|
|
|
344
397
|
* Custom observability provider (Sentry, Honeycomb, OTel, etc.).
|
|
345
398
|
* Default: a noop implementation that drops all breadcrumbs and spans.
|
|
346
399
|
*/
|
|
347
|
-
observability?:
|
|
400
|
+
observability?: ObservabilityProvider;
|
|
348
401
|
/**
|
|
349
402
|
* Custom analytics provider (PostHog, Amplitude, Segment, etc.).
|
|
350
403
|
* Default: a noop implementation that drops all events.
|
|
351
404
|
*/
|
|
352
|
-
analytics?:
|
|
405
|
+
analytics?: Analytics;
|
|
353
406
|
/**
|
|
354
407
|
* Detect whether an error from a mutation/bootstrap response means the
|
|
355
408
|
* user's session has expired. Used to surface re-auth prompts. Default:
|
|
@@ -371,12 +424,12 @@ export interface InternalAbloOptions<S extends SchemaRecord = SchemaRecord> {
|
|
|
371
424
|
*/
|
|
372
425
|
mutationExecutor?: MutationExecutor;
|
|
373
426
|
/**
|
|
374
|
-
* Partial overrides for the auto-derived `
|
|
427
|
+
* Partial overrides for the auto-derived `RuntimeConfig`. Merged on
|
|
375
428
|
* top of `deriveConfigFromSchema(schema)`. Use this when you need
|
|
376
429
|
* specific `modelCreatePriority`, `batchableModels`, or
|
|
377
430
|
* `essentialFields` settings that the schema cannot express.
|
|
378
431
|
*/
|
|
379
|
-
configOverrides?: Partial<
|
|
432
|
+
configOverrides?: Partial<RuntimeConfig>;
|
|
380
433
|
/**
|
|
381
434
|
* The sync groups (entity scopes) this client subscribes to. Normally the server
|
|
382
435
|
* derives these from the apiKey's scope; pass them explicitly when the key does
|
|
@@ -402,4 +455,7 @@ export interface InternalAbloOptions<S extends SchemaRecord = SchemaRecord> {
|
|
|
402
455
|
* identity from the token through the identity endpoint instead.
|
|
403
456
|
*/
|
|
404
457
|
organizationId?: string;
|
|
458
|
+
/** The client-wide write default — see {@link AbloOptions.wait}. Projected
|
|
459
|
+
* from the public option rather than restated, so the two cannot diverge. */
|
|
460
|
+
wait?: AbloOptions['wait'];
|
|
405
461
|
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The reactive engine build — everything `humans()` means at construction
|
|
3
|
+
* time (ADR 0016). `Ablo({ ... })` resolves auth and capabilities, then hands
|
|
4
|
+
* this module the prelude; from here on it is all materialisation: the
|
|
5
|
+
* runtime context, the internal components, the store and its credential
|
|
6
|
+
* lifecycle, presence and claim streams, the typed model proxies, and the
|
|
7
|
+
* commit/claim/session resources — assembled into the reactive client.
|
|
8
|
+
*
|
|
9
|
+
* Extracted from the factory so the composition root stays a root: resolve,
|
|
10
|
+
* dispatch, return. The construction moves behind `humans().init` proper when
|
|
11
|
+
* the plugin context can carry these inputs — until then the factory calls
|
|
12
|
+
* this directly for the humans-installed path.
|
|
13
|
+
*/
|
|
14
|
+
import type { SchemaRecord } from '../transaction/schema/schema.js';
|
|
15
|
+
import type { MutationExecutor } from '../interfaces/index.js';
|
|
16
|
+
import type { SyncWebSocket } from '../sync/SyncWebSocket.js';
|
|
17
|
+
import type { AttachablePresenceStream } from '../sync/createPresenceStream.js';
|
|
18
|
+
import type { AbloOptions } from './options.js';
|
|
19
|
+
import type { ClientPrelude } from './clientPrelude.js';
|
|
20
|
+
import type { Ablo } from './Ablo.js';
|
|
21
|
+
/**
|
|
22
|
+
* What the reactive build is fed: the factory's pass over the options bag
|
|
23
|
+
* ({@link ClientPrelude} — auth, url, logging, identity, shared with the other
|
|
24
|
+
* client shapes), plus the four things that must exist before the store does.
|
|
25
|
+
*
|
|
26
|
+
* The prelude half is extended, never restated. A second copy of those fields
|
|
27
|
+
* would drift the moment one side gained a resolver the other did not.
|
|
28
|
+
*/
|
|
29
|
+
export interface ReactiveEngineInputs<S extends SchemaRecord> extends ClientPrelude<S> {
|
|
30
|
+
options: AbloOptions<S>;
|
|
31
|
+
executor: MutationExecutor;
|
|
32
|
+
/**
|
|
33
|
+
* The connection, constructed by the factory before the plugin list
|
|
34
|
+
* resolved — the same instance `PluginContext.transport` carries. The
|
|
35
|
+
* store takes it as a dependency and owns the lifecycle.
|
|
36
|
+
*/
|
|
37
|
+
transport: SyncWebSocket;
|
|
38
|
+
/** The humans() plugin's contribution — built by its `init`, already
|
|
39
|
+
* attached to the connection the context carried. */
|
|
40
|
+
presence: AttachablePresenceStream;
|
|
41
|
+
/**
|
|
42
|
+
* Constructs a sibling client (`ablo.agents.create(...)` mints a scoped key
|
|
43
|
+
* and builds a second engine with it). Injected by the factory — a direct
|
|
44
|
+
* import back into it would close a runtime cycle.
|
|
45
|
+
*/
|
|
46
|
+
createSibling: (options: AbloOptions<S>) => Ablo<S>;
|
|
47
|
+
}
|
|
48
|
+
export declare function buildReactiveEngine<const S extends SchemaRecord>(inputs: ReactiveEngineInputs<S>): Ablo<S>;
|