@abloatai/ablo 0.35.0 → 0.37.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +2 -2
- package/CHANGELOG.md +71 -1929
- package/NOTICE +2 -2
- package/README.md +23 -532
- package/assets/banner.png +0 -0
- package/dist/auth.d.ts +2 -0
- package/dist/auth.d.ts.map +1 -0
- package/dist/auth.js +2 -0
- package/dist/auth.js.map +1 -0
- package/dist/client.d.ts +3 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +3 -0
- package/dist/client.js.map +1 -0
- package/dist/coordination.d.ts +2 -0
- package/dist/coordination.d.ts.map +1 -0
- package/dist/coordination.js +2 -0
- package/dist/coordination.js.map +1 -0
- package/dist/index.d.ts +3 -112
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +3 -161
- package/dist/index.js.map +1 -0
- package/dist/react.d.ts +4 -0
- package/dist/react.d.ts.map +1 -0
- package/dist/react.js +3 -0
- package/dist/react.js.map +1 -0
- package/dist/schema.d.ts +2 -0
- package/dist/schema.d.ts.map +1 -0
- package/dist/schema.js +2 -0
- package/dist/schema.js.map +1 -0
- package/dist/server.d.ts +2 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +2 -0
- package/dist/server.js.map +1 -0
- package/dist/source-conformance.d.ts +2 -0
- package/dist/source-conformance.d.ts.map +1 -0
- package/dist/source-conformance.js +2 -0
- package/dist/source-conformance.js.map +1 -0
- package/dist/source-drizzle.d.ts +2 -0
- package/dist/source-drizzle.d.ts.map +1 -0
- package/dist/source-drizzle.js +2 -0
- package/dist/source-drizzle.js.map +1 -0
- package/dist/source-kysely.d.ts +2 -0
- package/dist/source-kysely.d.ts.map +1 -0
- package/dist/source-kysely.js +2 -0
- package/dist/source-kysely.js.map +1 -0
- package/dist/source-next.d.ts +2 -0
- package/dist/source-next.d.ts.map +1 -0
- package/dist/source-next.js +2 -0
- package/dist/source-next.js.map +1 -0
- package/dist/source.d.ts +2 -0
- package/dist/source.d.ts.map +1 -0
- package/dist/source.js +2 -0
- package/dist/source.js.map +1 -0
- package/dist/wire.d.ts +2 -0
- package/dist/wire.d.ts.map +1 -0
- package/dist/wire.js +2 -0
- package/dist/wire.js.map +1 -0
- package/docs/agents.md +2 -2
- package/docs/api-keys.md +13 -12
- package/docs/api.md +15 -53
- package/docs/audit.md +4 -3
- package/docs/cli.md +11 -11
- package/docs/client-behavior.md +9 -9
- package/docs/concurrency-convention.md +28 -42
- package/docs/coordination.md +228 -86
- package/docs/data-sources.md +5 -5
- package/docs/debugging.md +34 -12
- package/docs/deployment.md +8 -8
- package/docs/examples/agent-human.md +4 -4
- package/docs/examples/ai-sdk-tool.md +1 -1
- package/docs/examples/existing-python-backend.md +15 -4
- package/docs/examples/nextjs.md +27 -6
- package/docs/examples/scoped-agent.md +3 -3
- package/docs/examples/server-agent.md +2 -2
- package/docs/groups.md +57 -3
- package/docs/guarantees.md +37 -10
- package/docs/how-it-works.md +32 -8
- package/docs/idempotency.md +6 -6
- package/docs/identity.md +24 -24
- package/docs/index.md +8 -8
- package/docs/integration-guide.md +38 -16
- package/docs/internal/README.md +18 -0
- package/docs/internal/agent-fleet-coordination-design.md +171 -0
- package/docs/internal/agent-orchestration.md +58 -0
- package/docs/internal/commit-identifiers.md +91 -0
- package/docs/internal/concurrency-open-decisions.md +37 -0
- package/docs/internal/data-source-reverse-channel.md +150 -0
- package/docs/internal/per-field-conflict-detection.md +165 -0
- package/docs/internal/postgres-replication.md +64 -0
- package/docs/internal/serializable-schema.md +119 -0
- package/docs/internal/structure.md +32 -0
- package/docs/mcp.md +9 -9
- package/docs/migration.md +37 -18
- package/docs/projects.md +1 -1
- package/docs/quickstart.md +2 -2
- package/docs/react.md +24 -13
- package/docs/schema-contract.md +3 -3
- package/docs/sessions.md +91 -37
- package/docs/webhooks.md +9 -9
- package/examples/README.md +2 -2
- package/examples/data-source/README.md +1 -1
- package/examples/data-source/ablo-driver.ts +1 -1
- package/examples/data-source/customer-server.ts +1 -1
- package/examples/data-source/run.ts +1 -1
- package/examples/data-source/schema.ts +1 -1
- package/examples/quickstart.ts +2 -2
- package/llms.txt +12 -12
- package/package.json +64 -174
- package/dist/BaseSyncedStore.d.ts +0 -823
- package/dist/BaseSyncedStore.js +0 -1955
- package/dist/Database.d.ts +0 -335
- package/dist/Database.js +0 -1500
- package/dist/InstanceCache.d.ts +0 -233
- package/dist/InstanceCache.js +0 -1164
- package/dist/LazyReferenceCollection.d.ts +0 -177
- package/dist/LazyReferenceCollection.js +0 -461
- package/dist/Model.d.ts +0 -444
- package/dist/Model.js +0 -909
- package/dist/ModelRegistry.d.ts +0 -221
- package/dist/ModelRegistry.js +0 -537
- package/dist/NetworkMonitor.d.ts +0 -26
- package/dist/NetworkMonitor.js +0 -77
- package/dist/RuntimeContext.d.ts +0 -52
- package/dist/RuntimeContext.js +0 -80
- package/dist/SyncClient.d.ts +0 -551
- package/dist/SyncClient.js +0 -2199
- package/dist/adapters/alwaysOnline.d.ts +0 -14
- package/dist/adapters/alwaysOnline.js +0 -17
- package/dist/adapters/inMemoryStorage.d.ts +0 -31
- package/dist/adapters/inMemoryStorage.js +0 -110
- package/dist/ai-sdk/coordinatedTool.d.ts +0 -120
- package/dist/ai-sdk/coordinatedTool.js +0 -134
- package/dist/ai-sdk/coordinationContext.d.ts +0 -46
- package/dist/ai-sdk/coordinationContext.js +0 -106
- package/dist/ai-sdk/index.d.ts +0 -121
- package/dist/ai-sdk/index.js +0 -121
- package/dist/ai-sdk/wrap.d.ts +0 -65
- package/dist/ai-sdk/wrap.js +0 -39
- package/dist/auth/index.d.ts +0 -1
- package/dist/auth/index.js +0 -8
- package/dist/batching/index.d.ts +0 -55
- package/dist/batching/index.js +0 -147
- package/dist/cli.cjs +0 -288600
- package/dist/client/Ablo.d.ts +0 -231
- package/dist/client/Ablo.js +0 -149
- package/dist/client/abloClient.d.ts +0 -309
- package/dist/client/abloClient.js +0 -13
- package/dist/client/clientPrelude.d.ts +0 -52
- package/dist/client/clientPrelude.js +0 -60
- package/dist/client/consoleLogger.d.ts +0 -35
- package/dist/client/consoleLogger.js +0 -44
- package/dist/client/coreClient.d.ts +0 -60
- package/dist/client/coreClient.js +0 -118
- package/dist/client/createInternalComponents.d.ts +0 -46
- package/dist/client/createInternalComponents.js +0 -92
- package/dist/client/createModelProxy.d.ts +0 -228
- package/dist/client/createModelProxy.js +0 -818
- package/dist/client/humans.d.ts +0 -48
- package/dist/client/humans.js +0 -52
- package/dist/client/modelRegistration.d.ts +0 -10
- package/dist/client/modelRegistration.js +0 -312
- package/dist/client/options.d.ts +0 -461
- package/dist/client/options.js +0 -7
- package/dist/client/reactiveEngine.d.ts +0 -48
- package/dist/client/reactiveEngine.js +0 -910
- package/dist/client/resourceTypes.d.ts +0 -12
- package/dist/client/resourceTypes.js +0 -10
- package/dist/client/schemaConfig.d.ts +0 -44
- package/dist/client/schemaConfig.js +0 -185
- package/dist/client/validateAbloOptions.d.ts +0 -42
- package/dist/client/validateAbloOptions.js +0 -43
- package/dist/client/wsMutationExecutor.d.ts +0 -27
- package/dist/client/wsMutationExecutor.js +0 -72
- package/dist/context.d.ts +0 -29
- package/dist/context.js +0 -58
- package/dist/coordination/ClaimLog.d.ts +0 -26
- package/dist/coordination/ClaimLog.js +0 -32
- package/dist/coordination/index.d.ts +0 -1
- package/dist/coordination/index.js +0 -8
- package/dist/core/DatabaseManager.d.ts +0 -105
- package/dist/core/DatabaseManager.js +0 -387
- package/dist/core/QueryProcessor.d.ts +0 -75
- package/dist/core/QueryProcessor.js +0 -255
- package/dist/core/QueryView.d.ts +0 -79
- package/dist/core/QueryView.js +0 -218
- package/dist/core/StoreManager.d.ts +0 -112
- package/dist/core/StoreManager.js +0 -302
- package/dist/core/ViewRegistry.d.ts +0 -20
- package/dist/core/ViewRegistry.js +0 -55
- package/dist/core/index.d.ts +0 -33
- package/dist/core/index.js +0 -48
- package/dist/core/openIDBWithTimeout.d.ts +0 -65
- package/dist/core/openIDBWithTimeout.js +0 -153
- package/dist/core/queryUtils.d.ts +0 -45
- package/dist/core/queryUtils.js +0 -69
- package/dist/core/storeContract.d.ts +0 -145
- package/dist/core/storeContract.js +0 -12
- package/dist/docs/catalog.d.ts +0 -72
- package/dist/docs/catalog.js +0 -227
- package/dist/docs/index.d.ts +0 -10
- package/dist/docs/index.js +0 -10
- package/dist/environment.d.ts +0 -1
- package/dist/environment.js +0 -8
- package/dist/interfaces/index.d.ts +0 -311
- package/dist/interfaces/index.js +0 -9
- package/dist/keys/index.d.ts +0 -1
- package/dist/keys/index.js +0 -8
- package/dist/mutators/RecordingMutation.d.ts +0 -36
- package/dist/mutators/RecordingMutation.js +0 -182
- package/dist/mutators/Transaction.d.ts +0 -40
- package/dist/mutators/Transaction.js +0 -58
- package/dist/mutators/UndoManager.d.ts +0 -258
- package/dist/mutators/UndoManager.js +0 -658
- package/dist/mutators/defineMutators.d.ts +0 -60
- package/dist/mutators/defineMutators.js +0 -18
- package/dist/mutators/inverseOp.d.ts +0 -126
- package/dist/mutators/inverseOp.js +0 -71
- package/dist/mutators/mutateActions.d.ts +0 -45
- package/dist/mutators/mutateActions.js +0 -105
- package/dist/mutators/readerActions.d.ts +0 -33
- package/dist/mutators/readerActions.js +0 -57
- package/dist/mutators/undoApply.d.ts +0 -51
- package/dist/mutators/undoApply.js +0 -117
- package/dist/policy/index.d.ts +0 -21
- package/dist/policy/index.js +0 -20
- package/dist/query/client.d.ts +0 -61
- package/dist/query/client.js +0 -137
- package/dist/query/types.d.ts +0 -85
- package/dist/query/types.js +0 -16
- package/dist/react/AbloProvider.d.ts +0 -230
- package/dist/react/AbloProvider.js +0 -455
- package/dist/react/ClientSideSuspense.d.ts +0 -36
- package/dist/react/ClientSideSuspense.js +0 -17
- package/dist/react/DefaultFallback.d.ts +0 -24
- package/dist/react/DefaultFallback.js +0 -43
- package/dist/react/context.d.ts +0 -55
- package/dist/react/context.js +0 -29
- package/dist/react/index.d.ts +0 -61
- package/dist/react/index.js +0 -66
- package/dist/react/internalContext.d.ts +0 -33
- package/dist/react/internalContext.js +0 -3
- package/dist/react/useAblo.d.ts +0 -75
- package/dist/react/useAblo.js +0 -102
- package/dist/react/useCurrentUserId.d.ts +0 -22
- package/dist/react/useCurrentUserId.js +0 -34
- package/dist/react/useErrorListener.d.ts +0 -20
- package/dist/react/useErrorListener.js +0 -38
- package/dist/react/useMutationFailureListener.d.ts +0 -26
- package/dist/react/useMutationFailureListener.js +0 -38
- package/dist/react/useMutators.d.ts +0 -56
- package/dist/react/useMutators.js +0 -84
- package/dist/react/useReactive.d.ts +0 -35
- package/dist/react/useReactive.js +0 -123
- package/dist/react/useSyncStatus.d.ts +0 -59
- package/dist/react/useSyncStatus.js +0 -76
- package/dist/react/useUndoScope.d.ts +0 -34
- package/dist/react/useUndoScope.js +0 -81
- package/dist/schema/coordination.d.ts +0 -112
- package/dist/schema/coordination.js +0 -129
- package/dist/schema/ddl.d.ts +0 -97
- package/dist/schema/ddl.js +0 -491
- package/dist/schema/ddlLock.d.ts +0 -35
- package/dist/schema/ddlLock.js +0 -46
- package/dist/schema/diff.d.ts +0 -225
- package/dist/schema/diff.js +0 -289
- package/dist/schema/generate.d.ts +0 -19
- package/dist/schema/generate.js +0 -86
- package/dist/schema/index.d.ts +0 -41
- package/dist/schema/index.js +0 -76
- package/dist/schema/queries.d.ts +0 -201
- package/dist/schema/queries.js +0 -144
- package/dist/schema/select.d.ts +0 -40
- package/dist/schema/select.js +0 -87
- package/dist/schema/serialize.d.ts +0 -115
- package/dist/schema/serialize.js +0 -262
- package/dist/schema/sugar.d.ts +0 -109
- package/dist/schema/sugar.js +0 -83
- package/dist/schema/syncDeltaRow.d.ts +0 -6
- package/dist/schema/syncDeltaRow.js +0 -6
- package/dist/server/adapter.d.ts +0 -173
- package/dist/server/adapter.js +0 -18
- package/dist/server/commit.d.ts +0 -107
- package/dist/server/commit.js +0 -1
- package/dist/server/index.d.ts +0 -14
- package/dist/server/index.js +0 -2
- package/dist/server/readConfig.d.ts +0 -80
- package/dist/server/readConfig.js +0 -8
- package/dist/server/storageMode.d.ts +0 -23
- package/dist/server/storageMode.js +0 -17
- package/dist/source/adapter.d.ts +0 -81
- package/dist/source/adapter.js +0 -22
- package/dist/source/adapters/drizzle.d.ts +0 -48
- package/dist/source/adapters/drizzle.js +0 -219
- package/dist/source/adapters/kysely.d.ts +0 -42
- package/dist/source/adapters/kysely.js +0 -205
- package/dist/source/adapters/kyselyMutationCore.d.ts +0 -76
- package/dist/source/adapters/kyselyMutationCore.js +0 -125
- package/dist/source/adapters/memory.d.ts +0 -13
- package/dist/source/adapters/memory.js +0 -130
- package/dist/source/adapters/prisma.d.ts +0 -63
- package/dist/source/adapters/prisma.js +0 -202
- package/dist/source/conformance.d.ts +0 -37
- package/dist/source/conformance.js +0 -215
- package/dist/source/connector.d.ts +0 -95
- package/dist/source/connector.js +0 -266
- package/dist/source/connectorProtocol.d.ts +0 -154
- package/dist/source/connectorProtocol.js +0 -163
- package/dist/source/contract.d.ts +0 -195
- package/dist/source/contract.js +0 -164
- package/dist/source/factory.d.ts +0 -92
- package/dist/source/factory.js +0 -286
- package/dist/source/footprint.d.ts +0 -111
- package/dist/source/footprint.js +0 -0
- package/dist/source/idempotency.d.ts +0 -61
- package/dist/source/idempotency.js +0 -144
- package/dist/source/index.d.ts +0 -23
- package/dist/source/index.js +0 -30
- package/dist/source/migrations.d.ts +0 -21
- package/dist/source/migrations.js +0 -103
- package/dist/source/next.d.ts +0 -32
- package/dist/source/next.js +0 -25
- package/dist/source/pushQueue.d.ts +0 -134
- package/dist/source/pushQueue.js +0 -256
- package/dist/source/signing.d.ts +0 -92
- package/dist/source/signing.js +0 -162
- package/dist/source/types.d.ts +0 -401
- package/dist/source/types.js +0 -59
- package/dist/stores/ObjectStore.d.ts +0 -115
- package/dist/stores/ObjectStore.js +0 -393
- package/dist/stores/ObjectStoreContract.d.ts +0 -38
- package/dist/stores/ObjectStoreContract.js +0 -1
- package/dist/stores/SyncActionStore.d.ts +0 -97
- package/dist/stores/SyncActionStore.js +0 -504
- package/dist/stores/syncAction.d.ts +0 -26
- package/dist/stores/syncAction.js +0 -16
- package/dist/surface.d.ts +0 -36
- package/dist/surface.js +0 -75
- package/dist/sync/BootstrapFetcher.d.ts +0 -280
- package/dist/sync/BootstrapFetcher.js +0 -962
- package/dist/sync/ConnectionManager.d.ts +0 -8
- package/dist/sync/ConnectionManager.js +0 -8
- package/dist/sync/OnDemandLoader.d.ts +0 -228
- package/dist/sync/OnDemandLoader.js +0 -742
- package/dist/sync/SubscriptionManager.d.ts +0 -159
- package/dist/sync/SubscriptionManager.js +0 -243
- package/dist/sync/SyncWebSocket.d.ts +0 -173
- package/dist/sync/SyncWebSocket.js +0 -438
- package/dist/sync/awaitClaimGrant.d.ts +0 -6
- package/dist/sync/awaitClaimGrant.js +0 -6
- package/dist/sync/bootstrapApply.d.ts +0 -70
- package/dist/sync/bootstrapApply.js +0 -73
- package/dist/sync/commitFrames.d.ts +0 -8
- package/dist/sync/commitFrames.js +0 -8
- package/dist/sync/contextPorts.d.ts +0 -18
- package/dist/sync/contextPorts.js +0 -31
- package/dist/sync/createClaimStream.d.ts +0 -7
- package/dist/sync/createClaimStream.js +0 -7
- package/dist/sync/createPresenceStream.d.ts +0 -69
- package/dist/sync/createPresenceStream.js +0 -200
- package/dist/sync/createSnapshot.d.ts +0 -29
- package/dist/sync/createSnapshot.js +0 -118
- package/dist/sync/credentialLifecycle.d.ts +0 -7
- package/dist/sync/credentialLifecycle.js +0 -7
- package/dist/sync/deltaPipeline.d.ts +0 -113
- package/dist/sync/deltaPipeline.js +0 -261
- package/dist/sync/groupChange.d.ts +0 -113
- package/dist/sync/groupChange.js +0 -242
- package/dist/sync/participants.d.ts +0 -115
- package/dist/sync/participants.js +0 -344
- package/dist/sync/persistedPrefix.d.ts +0 -12
- package/dist/sync/persistedPrefix.js +0 -22
- package/dist/sync/schemaDrift.d.ts +0 -55
- package/dist/sync/schemaDrift.js +0 -53
- package/dist/sync/schemas.d.ts +0 -70
- package/dist/sync/schemas.js +0 -94
- package/dist/sync/syncCursor.d.ts +0 -40
- package/dist/sync/syncCursor.js +0 -55
- package/dist/sync/syncPlan.d.ts +0 -54
- package/dist/sync/syncPlan.js +0 -50
- package/dist/sync/wsFrameHandlers.d.ts +0 -8
- package/dist/sync/wsFrameHandlers.js +0 -8
- package/dist/testing/fixtures/bootstrap.d.ts +0 -49
- package/dist/testing/fixtures/bootstrap.js +0 -59
- package/dist/testing/fixtures/deltas.d.ts +0 -83
- package/dist/testing/fixtures/deltas.js +0 -136
- package/dist/testing/fixtures/httpResponses.d.ts +0 -70
- package/dist/testing/fixtures/httpResponses.js +0 -90
- package/dist/testing/fixtures/models.d.ts +0 -83
- package/dist/testing/fixtures/models.js +0 -272
- package/dist/testing/helpers/reactWrapper.d.ts +0 -69
- package/dist/testing/helpers/reactWrapper.js +0 -67
- package/dist/testing/helpers/syncEngineHarness.d.ts +0 -54
- package/dist/testing/helpers/syncEngineHarness.js +0 -73
- package/dist/testing/helpers/wait.d.ts +0 -30
- package/dist/testing/helpers/wait.js +0 -49
- package/dist/testing/index.d.ts +0 -23
- package/dist/testing/index.js +0 -33
- package/dist/testing/mocks/FakeDatabase.d.ts +0 -18
- package/dist/testing/mocks/FakeDatabase.js +0 -10
- package/dist/testing/mocks/MockMutationExecutor.d.ts +0 -87
- package/dist/testing/mocks/MockMutationExecutor.js +0 -186
- package/dist/testing/mocks/MockNetworkMonitor.d.ts +0 -20
- package/dist/testing/mocks/MockNetworkMonitor.js +0 -46
- package/dist/testing/mocks/MockSyncContext.d.ts +0 -51
- package/dist/testing/mocks/MockSyncContext.js +0 -72
- package/dist/testing/mocks/MockSyncStore.d.ts +0 -88
- package/dist/testing/mocks/MockSyncStore.js +0 -171
- package/dist/testing/mocks/MockWebSocket.d.ts +0 -71
- package/dist/testing/mocks/MockWebSocket.js +0 -118
- package/dist/transaction/ablo.d.ts +0 -88
- package/dist/transaction/ablo.js +0 -33
- package/dist/transaction/auth/apiKey.d.ts +0 -152
- package/dist/transaction/auth/apiKey.js +0 -419
- package/dist/transaction/auth/bootstrapScope.d.ts +0 -15
- package/dist/transaction/auth/bootstrapScope.js +0 -1
- package/dist/transaction/auth/capability.d.ts +0 -177
- package/dist/transaction/auth/capability.js +0 -199
- package/dist/transaction/auth/credentialEndpoint.d.ts +0 -61
- package/dist/transaction/auth/credentialEndpoint.js +0 -86
- package/dist/transaction/auth/credentialPolicy.d.ts +0 -148
- package/dist/transaction/auth/credentialPolicy.js +0 -125
- package/dist/transaction/auth/credentialSource.d.ts +0 -30
- package/dist/transaction/auth/credentialSource.js +0 -55
- package/dist/transaction/auth/hostedEndpoints.d.ts +0 -21
- package/dist/transaction/auth/hostedEndpoints.js +0 -21
- package/dist/transaction/auth/identity.d.ts +0 -55
- package/dist/transaction/auth/identity.js +0 -210
- package/dist/transaction/auth/index.d.ts +0 -162
- package/dist/transaction/auth/index.js +0 -304
- package/dist/transaction/auth/schemas.d.ts +0 -59
- package/dist/transaction/auth/schemas.js +0 -85
- package/dist/transaction/auth/sessionMint.d.ts +0 -28
- package/dist/transaction/auth/sessionMint.js +0 -85
- package/dist/transaction/coordination/awaitClaimGrant.d.ts +0 -49
- package/dist/transaction/coordination/awaitClaimGrant.js +0 -112
- package/dist/transaction/coordination/claimHeartbeatLoop.d.ts +0 -50
- package/dist/transaction/coordination/claimHeartbeatLoop.js +0 -88
- package/dist/transaction/coordination/claimMeta.d.ts +0 -49
- package/dist/transaction/coordination/claimMeta.js +0 -52
- package/dist/transaction/coordination/createClaimStream.d.ts +0 -64
- package/dist/transaction/coordination/createClaimStream.js +0 -475
- package/dist/transaction/coordination/events.d.ts +0 -74
- package/dist/transaction/coordination/events.js +0 -7
- package/dist/transaction/coordination/index.d.ts +0 -19
- package/dist/transaction/coordination/index.js +0 -44
- package/dist/transaction/coordination/locator.d.ts +0 -83
- package/dist/transaction/coordination/locator.js +0 -82
- package/dist/transaction/coordination/schema.d.ts +0 -1473
- package/dist/transaction/coordination/schema.js +0 -1013
- package/dist/transaction/coordination/targetConflict.d.ts +0 -2
- package/dist/transaction/coordination/targetConflict.js +0 -103
- package/dist/transaction/coordination/trace.d.ts +0 -78
- package/dist/transaction/coordination/trace.js +0 -138
- package/dist/transaction/durableWrites.d.ts +0 -62
- package/dist/transaction/durableWrites.js +0 -71
- package/dist/transaction/environment.d.ts +0 -105
- package/dist/transaction/environment.js +0 -108
- package/dist/transaction/errorCodes.d.ts +0 -403
- package/dist/transaction/errorCodes.js +0 -480
- package/dist/transaction/errors.d.ts +0 -428
- package/dist/transaction/errors.js +0 -686
- package/dist/transaction/index.d.ts +0 -20
- package/dist/transaction/index.js +0 -20
- package/dist/transaction/keys/index.d.ts +0 -87
- package/dist/transaction/keys/index.js +0 -207
- package/dist/transaction/log/syncDeltaRow.d.ts +0 -158
- package/dist/transaction/log/syncDeltaRow.js +0 -95
- package/dist/transaction/logPosition.d.ts +0 -97
- package/dist/transaction/logPosition.js +0 -125
- package/dist/transaction/logger.d.ts +0 -16
- package/dist/transaction/logger.js +0 -7
- package/dist/transaction/observability.d.ts +0 -53
- package/dist/transaction/observability.js +0 -19
- package/dist/transaction/persistence.d.ts +0 -12
- package/dist/transaction/persistence.js +0 -11
- package/dist/transaction/plugin.d.ts +0 -192
- package/dist/transaction/plugin.js +0 -87
- package/dist/transaction/policy/types.d.ts +0 -217
- package/dist/transaction/policy/types.js +0 -126
- package/dist/transaction/resources/functionalUpdate.d.ts +0 -79
- package/dist/transaction/resources/functionalUpdate.js +0 -87
- package/dist/transaction/resources/httpResources.d.ts +0 -266
- package/dist/transaction/resources/httpResources.js +0 -7
- package/dist/transaction/resources/modelOperations.d.ts +0 -319
- package/dist/transaction/resources/modelOperations.js +0 -12
- package/dist/transaction/resources/mutationOptions.d.ts +0 -66
- package/dist/transaction/resources/mutationOptions.js +0 -9
- package/dist/transaction/resources/where.d.ts +0 -85
- package/dist/transaction/resources/where.js +0 -70
- package/dist/transaction/resources/writeOptionsSchema.d.ts +0 -47
- package/dist/transaction/resources/writeOptionsSchema.js +0 -73
- package/dist/transaction/schema/field.d.ts +0 -126
- package/dist/transaction/schema/field.js +0 -265
- package/dist/transaction/schema/loadStrategy.d.ts +0 -45
- package/dist/transaction/schema/loadStrategy.js +0 -46
- package/dist/transaction/schema/model.d.ts +0 -379
- package/dist/transaction/schema/model.js +0 -123
- package/dist/transaction/schema/openapi.d.ts +0 -57
- package/dist/transaction/schema/openapi.js +0 -340
- package/dist/transaction/schema/relation.d.ts +0 -199
- package/dist/transaction/schema/relation.js +0 -104
- package/dist/transaction/schema/residency.d.ts +0 -29
- package/dist/transaction/schema/residency.js +0 -25
- package/dist/transaction/schema/roles.d.ts +0 -249
- package/dist/transaction/schema/roles.js +0 -230
- package/dist/transaction/schema/schema.d.ts +0 -324
- package/dist/transaction/schema/schema.js +0 -305
- package/dist/transaction/schema/tenancy.d.ts +0 -139
- package/dist/transaction/schema/tenancy.js +0 -190
- package/dist/transaction/transactionLayer.d.ts +0 -82
- package/dist/transaction/transactionLayer.js +0 -24
- package/dist/transaction/transactions/settlement/commitEnvelope.d.ts +0 -143
- package/dist/transaction/transactions/settlement/commitEnvelope.js +0 -161
- package/dist/transaction/transactions/settlement/httpCommitEnvelope.d.ts +0 -53
- package/dist/transaction/transactions/settlement/httpCommitEnvelope.js +0 -207
- package/dist/transaction/transactions/settlement/idempotencyKey.d.ts +0 -10
- package/dist/transaction/transactions/settlement/idempotencyKey.js +0 -9
- package/dist/transaction/transactions/settlement/pendingWrite.d.ts +0 -112
- package/dist/transaction/transactions/settlement/pendingWrite.js +0 -20
- package/dist/transaction/transport/commitFrames.d.ts +0 -90
- package/dist/transaction/transport/commitFrames.js +0 -134
- package/dist/transaction/transport/connectionManager.d.ts +0 -215
- package/dist/transaction/transport/connectionManager.js +0 -673
- package/dist/transaction/transport/credentialLifecycle.d.ts +0 -177
- package/dist/transaction/transport/credentialLifecycle.js +0 -324
- package/dist/transaction/transport/heartbeat.d.ts +0 -65
- package/dist/transaction/transport/heartbeat.js +0 -93
- package/dist/transaction/transport/httpClient.d.ts +0 -123
- package/dist/transaction/transport/httpClient.js +0 -145
- package/dist/transaction/transport/httpOptions.d.ts +0 -33
- package/dist/transaction/transport/httpOptions.js +0 -12
- package/dist/transaction/transport/httpTransport.d.ts +0 -8
- package/dist/transaction/transport/httpTransport.js +0 -1276
- package/dist/transaction/transport/networkProbe.d.ts +0 -84
- package/dist/transaction/transport/networkProbe.js +0 -207
- package/dist/transaction/transport/wsFrameHandlers.d.ts +0 -128
- package/dist/transaction/transport/wsFrameHandlers.js +0 -429
- package/dist/transaction/transport/wsTransport.d.ts +0 -576
- package/dist/transaction/transport/wsTransport.js +0 -1017
- package/dist/transaction/types/assertExact.d.ts +0 -17
- package/dist/transaction/types/assertExact.js +0 -1
- package/dist/transaction/types/global.d.ts +0 -107
- package/dist/transaction/types/global.js +0 -40
- package/dist/transaction/types/index.d.ts +0 -205
- package/dist/transaction/types/index.js +0 -56
- package/dist/transaction/types/modelData.d.ts +0 -10
- package/dist/transaction/types/modelData.js +0 -9
- package/dist/transaction/types/participant.d.ts +0 -20
- package/dist/transaction/types/participant.js +0 -10
- package/dist/transaction/types/streams.d.ts +0 -540
- package/dist/transaction/types/streams.js +0 -11
- package/dist/transaction/utils/asyncIterator.d.ts +0 -34
- package/dist/transaction/utils/asyncIterator.js +0 -135
- package/dist/transaction/utils/duration.d.ts +0 -25
- package/dist/transaction/utils/duration.js +0 -45
- package/dist/transaction/utils/json.d.ts +0 -57
- package/dist/transaction/utils/json.js +0 -276
- package/dist/transaction/wire/accountResponses.d.ts +0 -351
- package/dist/transaction/wire/accountResponses.js +0 -255
- package/dist/transaction/wire/auth.d.ts +0 -49
- package/dist/transaction/wire/auth.js +0 -57
- package/dist/transaction/wire/bootstrapReason.d.ts +0 -9
- package/dist/transaction/wire/bootstrapReason.js +0 -8
- package/dist/transaction/wire/claimEvent.d.ts +0 -76
- package/dist/transaction/wire/claimEvent.js +0 -73
- package/dist/transaction/wire/claims.d.ts +0 -463
- package/dist/transaction/wire/claims.js +0 -229
- package/dist/transaction/wire/commit.d.ts +0 -603
- package/dist/transaction/wire/commit.js +0 -321
- package/dist/transaction/wire/delta.d.ts +0 -250
- package/dist/transaction/wire/delta.js +0 -147
- package/dist/transaction/wire/errorEnvelope.d.ts +0 -72
- package/dist/transaction/wire/errorEnvelope.js +0 -123
- package/dist/transaction/wire/feedCursor.d.ts +0 -60
- package/dist/transaction/wire/feedCursor.js +0 -82
- package/dist/transaction/wire/feedEvent.d.ts +0 -177
- package/dist/transaction/wire/feedEvent.js +0 -39
- package/dist/transaction/wire/frames.d.ts +0 -194
- package/dist/transaction/wire/frames.js +0 -50
- package/dist/transaction/wire/inboundFrames.d.ts +0 -552
- package/dist/transaction/wire/inboundFrames.js +0 -116
- package/dist/transaction/wire/index.d.ts +0 -50
- package/dist/transaction/wire/index.js +0 -74
- package/dist/transaction/wire/listEnvelope.d.ts +0 -37
- package/dist/transaction/wire/listEnvelope.js +0 -42
- package/dist/transaction/wire/modelResponses.d.ts +0 -85
- package/dist/transaction/wire/modelResponses.js +0 -43
- package/dist/transaction/wire/protocol.d.ts +0 -38
- package/dist/transaction/wire/protocol.js +0 -38
- package/dist/transaction/wire/protocolVersion.d.ts +0 -73
- package/dist/transaction/wire/protocolVersion.js +0 -83
- package/dist/transactions/mutations/MutationQueue.d.ts +0 -655
- package/dist/transactions/mutations/MutationQueue.js +0 -2797
- package/dist/transactions/mutations/MutationStore.d.ts +0 -20
- package/dist/transactions/mutations/MutationStore.js +0 -53
- package/dist/transactions/mutations/UnconfirmedWrites.d.ts +0 -82
- package/dist/transactions/mutations/UnconfirmedWrites.js +0 -104
- package/dist/transactions/mutations/coalesceRules.d.ts +0 -58
- package/dist/transactions/mutations/coalesceRules.js +0 -140
- package/dist/transactions/mutations/commitLatency.d.ts +0 -52
- package/dist/transactions/mutations/commitLatency.js +0 -130
- package/dist/transactions/mutations/commitOutboxStore.d.ts +0 -28
- package/dist/transactions/mutations/commitOutboxStore.js +0 -26
- package/dist/transactions/mutations/commitPayload.d.ts +0 -164
- package/dist/transactions/mutations/commitPayload.js +0 -152
- package/dist/transactions/mutations/deltaConfirmation.d.ts +0 -59
- package/dist/transactions/mutations/deltaConfirmation.js +0 -233
- package/dist/transactions/mutations/durableWriteStore.d.ts +0 -14
- package/dist/transactions/mutations/durableWriteStore.js +0 -12
- package/dist/transactions/mutations/optimisticApply.d.ts +0 -49
- package/dist/transactions/mutations/optimisticApply.js +0 -65
- package/dist/transactions/mutations/replayValidation.d.ts +0 -186
- package/dist/transactions/mutations/replayValidation.js +0 -163
- package/dist/utils/mobxSetup.d.ts +0 -53
- package/dist/utils/mobxSetup.js +0 -330
- package/dist/webhooks/events.d.ts +0 -43
- package/dist/webhooks/events.js +0 -42
- package/dist/webhooks/index.d.ts +0 -8
- package/dist/webhooks/index.js +0 -8
- package/dist/wire/index.d.ts +0 -1
- package/dist/wire/index.js +0 -8
- package/docs/interaction-model.md +0 -99
package/docs/webhooks.md
CHANGED
|
@@ -25,7 +25,7 @@ There are two ways data flows out of Ablo, and they're for different jobs:
|
|
|
25
25
|
| | reaches | use it for |
|
|
26
26
|
|---|---|---|
|
|
27
27
|
| **Realtime** (`useAblo`, WSS) | your live UI | instant, optimistic rendering |
|
|
28
|
-
| **Webhooks** (this page) | your database | a durable copy you own
|
|
28
|
+
| **Webhooks** (this page) | your database | a durable copy you own: analytics, backups, server logic |
|
|
29
29
|
|
|
30
30
|
Most apps use both: the realtime stream for the UI, the webhook stream to keep
|
|
31
31
|
their database in sync. This page is the webhook stream.
|
|
@@ -34,8 +34,8 @@ If you know Stripe, you already know the shape:
|
|
|
34
34
|
|
|
35
35
|
| Stripe | Ablo |
|
|
36
36
|
|---|---|
|
|
37
|
-
| `stripe.x.create(...)
|
|
38
|
-
| `/stripe-webhook
|
|
37
|
+
| `stripe.x.create(...)`: make the change | the Ablo client: make the change (+ live sync) |
|
|
38
|
+
| `/stripe-webhook`: confirm and persist | `/api/ablo/[...all]`: persist into your database |
|
|
39
39
|
| Stripe owns the charges | Ablo owns the transaction log |
|
|
40
40
|
| you mirror charges into your database | you mirror the log into your database |
|
|
41
41
|
|
|
@@ -50,11 +50,11 @@ Every delivery is a batch of events. Each event:
|
|
|
50
50
|
| field | meaning |
|
|
51
51
|
|---|---|
|
|
52
52
|
| `type` | `"<model>.<verb>"` with the model name lowercased, e.g. `task.updated` |
|
|
53
|
-
| `model` | the model name exactly as declared in your schema
|
|
53
|
+
| `model` | the model name exactly as declared in your schema: the table to write |
|
|
54
54
|
| `objectId` | the changed row's id |
|
|
55
55
|
| `data` | the post-change row, or `null` on delete (like Stripe's `event.data.object`) |
|
|
56
|
-
| `syncId` | monotonic log position
|
|
57
|
-
| `id` | `String(syncId)
|
|
56
|
+
| `syncId` | monotonic log position: **dedupe and order by this** |
|
|
57
|
+
| `id` | `String(syncId)`: the event id |
|
|
58
58
|
| `createdAt` | ISO commit timestamp |
|
|
59
59
|
|
|
60
60
|
```ts
|
|
@@ -200,8 +200,8 @@ sequenceDiagram
|
|
|
200
200
|
|
|
201
201
|
| behavior | how it works |
|
|
202
202
|
|---|---|
|
|
203
|
-
| **Ordering** | Every event carries `syncId`, a monotonic log position. Apply in `syncId` order
|
|
204
|
-
| **Retries** | A non-`2xx` (or no response within the timeout) is retried with backoff: immediate, 5s, 5m, 30m, 2h, 5h, 10h, 10h
|
|
203
|
+
| **Ordering** | Every event carries `syncId`, a monotonic log position. Apply in `syncId` order: Ablo guarantees the order because it owns the log. |
|
|
204
|
+
| **Retries** | A non-`2xx` (or no response within the timeout) is retried with backoff: immediate, 5s, 5m, 30m, 2h, 5h, 10h, 10h: 8 attempts over ~32h. |
|
|
205
205
|
| **Auto-disable** | After the retries exhaust, the endpoint is marked `disabled` and delivery stops until you `ablo webhooks enable <id>`. |
|
|
206
206
|
| **Replay** | Nothing is lost on failure: the log *is* the durable buffer, and delivery resumes from the endpoint's cursor once it's healthy. |
|
|
207
207
|
|
|
@@ -213,7 +213,7 @@ sequenceDiagram
|
|
|
213
213
|
- **Return `2xx` fast.** Acknowledge first, then do slow work asynchronously.
|
|
214
214
|
- **Subscribe to only what you need.** Set `enabledEvents` to the models you
|
|
215
215
|
mirror (`['*']` is the default = all).
|
|
216
|
-
- **Roll secrets periodically
|
|
216
|
+
- **Roll secrets periodically:** `ablo webhooks roll <id>` mints a new secret;
|
|
217
217
|
Standard Webhooks supports a rotation window so in-flight events still verify.
|
|
218
218
|
- **Verify the raw body.** Frameworks that re-serialize JSON will break the
|
|
219
219
|
signature — verify the bytes you received.
|
package/examples/README.md
CHANGED
|
@@ -37,7 +37,7 @@ no `package.json`, so Node resolves the entry path against the package
|
|
|
37
37
|
root and a bare `quickstart.ts` won't be found.
|
|
38
38
|
|
|
39
39
|
```bash
|
|
40
|
-
cd packages/
|
|
40
|
+
cd packages/ablo
|
|
41
41
|
ABLO_API_KEY=sk_test_... npx tsx examples/quickstart.ts
|
|
42
42
|
```
|
|
43
43
|
|
|
@@ -50,7 +50,7 @@ orchestrator drives the customer handler in-process so signer and
|
|
|
50
50
|
verifier exchange real signed bytes without leaving the process.
|
|
51
51
|
|
|
52
52
|
```bash
|
|
53
|
-
cd packages/
|
|
53
|
+
cd packages/ablo
|
|
54
54
|
npx tsx examples/data-source/run.ts
|
|
55
55
|
```
|
|
56
56
|
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
* inside a transaction. The shape of the handlers stays identical.
|
|
16
16
|
*/
|
|
17
17
|
|
|
18
|
-
import Ablo, { dataSource, sourceEventForOperation } from '@
|
|
18
|
+
import Ablo, { dataSource, sourceEventForOperation } from '@ablo/ablo';
|
|
19
19
|
import { schema } from './schema';
|
|
20
20
|
|
|
21
21
|
type TaskRow = {
|
package/examples/quickstart.ts
CHANGED
|
@@ -6,8 +6,8 @@
|
|
|
6
6
|
* ABLO_API_KEY=sk_test_... npx tsx examples/quickstart.ts
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
|
-
import Ablo from '@
|
|
10
|
-
import { defineSchema, model, z } from '@
|
|
9
|
+
import Ablo from '@ablo/ablo';
|
|
10
|
+
import { defineSchema, model, z } from '@ablo/ablo/schema';
|
|
11
11
|
|
|
12
12
|
const schema = defineSchema({
|
|
13
13
|
weatherReports: model({
|
package/llms.txt
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
# Ablo
|
|
2
2
|
|
|
3
|
-
Ablo is
|
|
3
|
+
Ablo is collaboration infrastructure for AI agents: one API for agents, apps, and services to claim, change, and confirm the same rows.
|
|
4
4
|
|
|
5
|
-
Here is the problem it solves. Two agents reach for `report_stockholm` at once. One claims the row, does slow work (an LLM call, a fetch, a chain of tools), and commits. The second is neither rejected nor allowed to clobber: it waits in line, is handed the row as it now stands, and proceeds. Claims don't lock. If another writer holds the row, `claim` waits for them, re-reads the fresh row, then hands it to you — so writers serialize instead of colliding. A person editing that row is simply another holder; the agent waits behind them the same way.
|
|
5
|
+
Here is the problem it solves. Two agents reach for `report_stockholm` at once. One claims the row, does slow work (an LLM call, a fetch, a chain of tools), and commits. The second is neither rejected nor allowed to clobber: it waits in line, is handed the row as it now stands, and proceeds. Claims don't lock. If another writer holds the row, `claim` waits for them, re-reads the fresh row, then hands it to you — so writers serialize instead of colliding. A person editing that row is simply another holder; the agent waits behind them the same way. And a claim is as narrow as its target: name a `path`, a `range`, or a `field` and two claims on non-overlapping parts of the same row are both granted — region locking within one row, with no queueing between regions.
|
|
6
6
|
|
|
7
7
|
Use AI SDK for the agent loop. Use Ablo when agent reads and writes must persist, coordinate with concurrent work, and leave an audit trail.
|
|
8
8
|
|
|
9
|
-
## Surfaces
|
|
9
|
+
## Surfaces: pick by who is calling
|
|
10
10
|
|
|
11
11
|
Every surface reaches the same coordinated state. They are not interchangeable.
|
|
12
12
|
|
|
13
13
|
- SDK, `@abloatai/ablo` with `transport: 'http'` — THE AGENTS THEMSELVES. Stateless, request/response, nothing held open; the credential is the identity. This is the main path — default to it.
|
|
14
14
|
- Coordination MCP, `@abloatai/mcp` — an agent living inside an MCP host (Claude, Cursor). Two jobs: MANAGING your Ablo the way the CLI does (`get_schema`, `list_projects`, `create_project`, `tail_logs`, `get_usage`), and claim/commit as tools over your rows. Call `get_schema` first — it is the only way to learn the model names every data tool needs. `init`, `push`, `pull`, `generate` have no tools (they touch your repo); run those in a shell.
|
|
15
|
-
- `humans()` with `@abloatai/
|
|
15
|
+
- `humans()` with `@abloatai/humans/react` — the interfaces a person watches agent work arrive in. The bare client is the coordination layer (commit, read, observe, claim); `humans()` is the plugin that adds the local watchable copy, live queries, and presence. It `requires: { duplex: true }`, so a `transport: 'http'` agent is rejected at construction rather than left holding a subscription that never delivers. It remains the compatibility default for omitted `plugins`; new code should install it explicitly from `@abloatai/humans`. There is no `agents()` plugin — agents are the default caller, not a special one. A browser NEVER receives the secret key; mint a session token.
|
|
16
16
|
- CLI, `ablo` — scaffolding, schema push, connecting a database. Terminals and CI. Agents must run it non-interactively (see the CLI section below).
|
|
17
17
|
- REST, `/api/v1` — runtimes with no SDK.
|
|
18
18
|
- Integration-helper MCP, hosted `/api/mcp` — teaching a coding assistant the SDK WHILE BUILDING an integration. Docs, schema lint, and scaffolds only; it has NO per-model data tools and cannot touch application rows.
|
|
@@ -50,7 +50,7 @@ const schema = defineSchema({
|
|
|
50
50
|
|
|
51
51
|
const ablo = Ablo({ schema, apiKey: process.env.ABLO_API_KEY });
|
|
52
52
|
|
|
53
|
-
const report = await ablo.weatherReports.
|
|
53
|
+
const report = await ablo.weatherReports.get({ id: 'report_stockholm' });
|
|
54
54
|
if (!report) throw new Error('Row not found');
|
|
55
55
|
|
|
56
56
|
// Claim the row (waits if someone else holds it), read the fresh copy off
|
|
@@ -74,9 +74,9 @@ For full integrations, use `integration-guide` as the canonical doc. It covers
|
|
|
74
74
|
the same model API across your own Data Source-backed app databases,
|
|
75
75
|
React selectors, multiplayer, and future agent workers.
|
|
76
76
|
|
|
77
|
-
Reads come in two flavors, and you pick by whether you can wait. `
|
|
77
|
+
Reads come in two flavors, and you pick by whether you can wait. `get({ id })`
|
|
78
78
|
(one row) and `list({ where })` (many) are async — they answer from the local
|
|
79
|
-
graph and fall back to the server, so await them. `local.
|
|
79
|
+
graph and fall back to the server, so await them. `local.get(id)`,
|
|
80
80
|
`local.list({ where })`, and `local.count({ where })` are the same reads narrowed
|
|
81
81
|
to what has already synced: nothing to await, reactive in render. There is no
|
|
82
82
|
second verb to learn — `local.` is the only difference. The query reads accept
|
|
@@ -88,7 +88,7 @@ Workers import the same app schema and select `transport: 'http'`. The transport
|
|
|
88
88
|
changes; the typed `ablo.<model>` contract does not. There is no public
|
|
89
89
|
schema-less or string-keyed model client.
|
|
90
90
|
|
|
91
|
-
React reads should use selector `useAblo`: `useAblo((ablo) => ablo.weatherReports.local.
|
|
91
|
+
React reads should use selector `useAblo`: `useAblo((ablo) => ablo.weatherReports.local.get(id))` (synchronous local read, reactive in render).
|
|
92
92
|
Use zero-argument `useAblo()` only when a component needs the client for an
|
|
93
93
|
event handler or effect. The selector form above is the complete reactive
|
|
94
94
|
surface — every read goes through it.
|
|
@@ -117,7 +117,7 @@ A change to one row reaches other rows three ways. ROUTING: a write fans out to
|
|
|
117
117
|
## Claimed Behavior
|
|
118
118
|
|
|
119
119
|
Reads never silently block. Schema reads stay open while a row is claimed.
|
|
120
|
-
Typed reads through `ablo.<model>.
|
|
120
|
+
Typed reads through `ablo.<model>.get({ id })` return the row by default,
|
|
121
121
|
even while it is claimed. Pass `ifClaimed: 'fail'` to throw
|
|
122
122
|
`AbloClaimedError`, and inspect active coordination separately through
|
|
123
123
|
`ablo.<model>.claim.state({ id })`.
|
|
@@ -205,10 +205,10 @@ Going live is three things, each done with a `sk_live_` key: register the produc
|
|
|
205
205
|
|
|
206
206
|
Import from these public paths only:
|
|
207
207
|
|
|
208
|
-
- `@abloatai/ablo` — `Ablo`, errors, typed model clients, claims, and `dataSource`.
|
|
208
|
+
- `@abloatai/ablo` — headless HTTP `Ablo`, errors, typed model clients, claims, durable observation, and `dataSource`.
|
|
209
|
+
- `@abloatai/ablo/client` — reactive WebSocket client, presence, and the human-facing materializer.
|
|
209
210
|
- `@abloatai/ablo/schema` — schema DSL.
|
|
210
211
|
- `@abloatai/ablo/react` — React provider and hooks.
|
|
211
|
-
- `@abloatai/ablo/testing` — test harnesses and mocks.
|
|
212
212
|
- `@abloatai/ablo/source` — `dataSource`, the `DataSourceAdapter` spine, `prismaDataSource`. For a customer-canonical Data Source endpoint.
|
|
213
213
|
- `@abloatai/ablo/source/next` — `dataSourceNext` (Next.js App Router `{ POST }`).
|
|
214
214
|
- `@abloatai/ablo/source/drizzle` — `drizzleDataSource`.
|
|
@@ -217,7 +217,7 @@ Import from these public paths only:
|
|
|
217
217
|
|
|
218
218
|
Do not teach `/api`, `/agent`, `/ai-sdk`, `/core`, `/realtime`, or internal subpaths. (`/source` IS public — it's the Data Source endpoint surface above.)
|
|
219
219
|
|
|
220
|
-
## CLI
|
|
220
|
+
## CLI: agents run it NON-INTERACTIVELY
|
|
221
221
|
|
|
222
222
|
`ablo init` and other prompts need a TTY; an agent/CI run has none and will HANG. Always:
|
|
223
223
|
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@abloatai/ablo",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "The
|
|
3
|
+
"version": "0.37.0",
|
|
4
|
+
"description": "The public Ablo SDK for coordinated reads, commits, claims, observation, and reactive applications.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"engines": {
|
|
@@ -9,237 +9,127 @@
|
|
|
9
9
|
},
|
|
10
10
|
"main": "./dist/index.js",
|
|
11
11
|
"types": "./dist/index.d.ts",
|
|
12
|
-
"bin": {
|
|
13
|
-
"ablo": "./dist/cli.cjs"
|
|
14
|
-
},
|
|
15
12
|
"exports": {
|
|
16
13
|
".": {
|
|
17
14
|
"types": "./dist/index.d.ts",
|
|
18
15
|
"import": "./dist/index.js",
|
|
19
16
|
"default": "./dist/index.js"
|
|
20
17
|
},
|
|
21
|
-
"./
|
|
22
|
-
"types": "./dist/
|
|
23
|
-
"import": "./dist/
|
|
24
|
-
"default": "./dist/
|
|
25
|
-
},
|
|
26
|
-
"./coordination": {
|
|
27
|
-
"types": "./dist/coordination/index.d.ts",
|
|
28
|
-
"import": "./dist/coordination/index.js",
|
|
29
|
-
"default": "./dist/coordination/index.js"
|
|
18
|
+
"./client": {
|
|
19
|
+
"types": "./dist/client.d.ts",
|
|
20
|
+
"import": "./dist/client.js",
|
|
21
|
+
"default": "./dist/client.js"
|
|
30
22
|
},
|
|
31
23
|
"./react": {
|
|
32
|
-
"types": "./dist/react
|
|
33
|
-
"import": "./dist/react
|
|
34
|
-
"default": "./dist/react
|
|
35
|
-
},
|
|
36
|
-
"./testing": {
|
|
37
|
-
"types": "./dist/testing/index.d.ts",
|
|
38
|
-
"import": "./dist/testing/index.js",
|
|
39
|
-
"default": "./dist/testing/index.js"
|
|
40
|
-
},
|
|
41
|
-
"./core": {
|
|
42
|
-
"types": "./dist/core/index.d.ts",
|
|
43
|
-
"import": "./dist/core/index.js",
|
|
44
|
-
"default": "./dist/core/index.js"
|
|
45
|
-
},
|
|
46
|
-
"./batching": {
|
|
47
|
-
"types": "./dist/batching/index.d.ts",
|
|
48
|
-
"import": "./dist/batching/index.js",
|
|
49
|
-
"default": "./dist/batching/index.js"
|
|
24
|
+
"types": "./dist/react.d.ts",
|
|
25
|
+
"import": "./dist/react.js",
|
|
26
|
+
"default": "./dist/react.js"
|
|
50
27
|
},
|
|
51
|
-
"./
|
|
52
|
-
"types": "./dist/
|
|
53
|
-
"import": "./dist/
|
|
54
|
-
"default": "./dist/
|
|
28
|
+
"./schema": {
|
|
29
|
+
"types": "./dist/schema.d.ts",
|
|
30
|
+
"import": "./dist/schema.js",
|
|
31
|
+
"default": "./dist/schema.js"
|
|
55
32
|
},
|
|
56
33
|
"./source": {
|
|
57
|
-
"types": "./dist/source
|
|
58
|
-
"import": "./dist/source
|
|
59
|
-
"default": "./dist/source
|
|
34
|
+
"types": "./dist/source.d.ts",
|
|
35
|
+
"import": "./dist/source.js",
|
|
36
|
+
"default": "./dist/source.js"
|
|
60
37
|
},
|
|
61
|
-
"./source/
|
|
62
|
-
"types": "./dist/source
|
|
63
|
-
"import": "./dist/source
|
|
64
|
-
"default": "./dist/source
|
|
38
|
+
"./source/next": {
|
|
39
|
+
"types": "./dist/source-next.d.ts",
|
|
40
|
+
"import": "./dist/source-next.js",
|
|
41
|
+
"default": "./dist/source-next.js"
|
|
65
42
|
},
|
|
66
43
|
"./source/drizzle": {
|
|
67
|
-
"types": "./dist/source
|
|
68
|
-
"import": "./dist/source
|
|
69
|
-
"default": "./dist/source
|
|
44
|
+
"types": "./dist/source-drizzle.d.ts",
|
|
45
|
+
"import": "./dist/source-drizzle.js",
|
|
46
|
+
"default": "./dist/source-drizzle.js"
|
|
70
47
|
},
|
|
71
48
|
"./source/kysely": {
|
|
72
|
-
"types": "./dist/source
|
|
73
|
-
"import": "./dist/source
|
|
74
|
-
"default": "./dist/source
|
|
49
|
+
"types": "./dist/source-kysely.d.ts",
|
|
50
|
+
"import": "./dist/source-kysely.js",
|
|
51
|
+
"default": "./dist/source-kysely.js"
|
|
75
52
|
},
|
|
76
|
-
"./source/
|
|
77
|
-
"types": "./dist/source
|
|
78
|
-
"import": "./dist/source
|
|
79
|
-
"default": "./dist/source
|
|
53
|
+
"./source/conformance": {
|
|
54
|
+
"types": "./dist/source-conformance.d.ts",
|
|
55
|
+
"import": "./dist/source-conformance.js",
|
|
56
|
+
"default": "./dist/source-conformance.js"
|
|
80
57
|
},
|
|
81
|
-
"./
|
|
82
|
-
"types": "./dist/
|
|
83
|
-
"import": "./dist/
|
|
84
|
-
"default": "./dist/
|
|
58
|
+
"./server": {
|
|
59
|
+
"types": "./dist/server.d.ts",
|
|
60
|
+
"import": "./dist/server.js",
|
|
61
|
+
"default": "./dist/server.js"
|
|
85
62
|
},
|
|
86
63
|
"./auth": {
|
|
87
|
-
"types": "./dist/auth
|
|
88
|
-
"import": "./dist/auth
|
|
89
|
-
"default": "./dist/auth
|
|
64
|
+
"types": "./dist/auth.d.ts",
|
|
65
|
+
"import": "./dist/auth.js",
|
|
66
|
+
"default": "./dist/auth.js"
|
|
90
67
|
},
|
|
91
|
-
"./
|
|
92
|
-
"types": "./dist/
|
|
93
|
-
"import": "./dist/
|
|
94
|
-
"default": "./dist/
|
|
68
|
+
"./coordination": {
|
|
69
|
+
"types": "./dist/coordination.d.ts",
|
|
70
|
+
"import": "./dist/coordination.js",
|
|
71
|
+
"default": "./dist/coordination.js"
|
|
95
72
|
},
|
|
96
73
|
"./wire": {
|
|
97
|
-
"types": "./dist/wire
|
|
98
|
-
"import": "./dist/wire
|
|
99
|
-
"default": "./dist/wire
|
|
100
|
-
},
|
|
101
|
-
"./server": {
|
|
102
|
-
"types": "./dist/server/index.d.ts",
|
|
103
|
-
"import": "./dist/server/index.js",
|
|
104
|
-
"default": "./dist/server/index.js"
|
|
105
|
-
},
|
|
106
|
-
"./webhooks": {
|
|
107
|
-
"types": "./dist/webhooks/index.d.ts",
|
|
108
|
-
"import": "./dist/webhooks/index.js",
|
|
109
|
-
"default": "./dist/webhooks/index.js"
|
|
110
|
-
},
|
|
111
|
-
"./docs": {
|
|
112
|
-
"types": "./dist/docs/index.d.ts",
|
|
113
|
-
"import": "./dist/docs/index.js",
|
|
114
|
-
"default": "./dist/docs/index.js"
|
|
74
|
+
"types": "./dist/wire.d.ts",
|
|
75
|
+
"import": "./dist/wire.js",
|
|
76
|
+
"default": "./dist/wire.js"
|
|
115
77
|
}
|
|
116
78
|
},
|
|
117
79
|
"files": [
|
|
118
80
|
"dist",
|
|
119
|
-
"
|
|
120
|
-
"docs/*.md",
|
|
121
|
-
"docs/examples/*.md",
|
|
81
|
+
"docs",
|
|
122
82
|
"examples",
|
|
83
|
+
"assets",
|
|
123
84
|
"AGENTS.md",
|
|
85
|
+
"CHANGELOG.md",
|
|
124
86
|
"llms.txt",
|
|
125
87
|
"LICENSE",
|
|
126
88
|
"NOTICE",
|
|
127
89
|
"README.md",
|
|
128
|
-
"
|
|
90
|
+
"package.json"
|
|
129
91
|
],
|
|
130
92
|
"scripts": {
|
|
131
93
|
"clean": "node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\"",
|
|
132
|
-
"build": "npm run clean && tsc -p tsconfig.build.json
|
|
133
|
-
"
|
|
134
|
-
"typecheck": "npm run typecheck:src && npm run typecheck:cli && npm run typecheck:scripts",
|
|
135
|
-
"typecheck:src": "tsc -p tsconfig.json",
|
|
136
|
-
"typecheck:cli": "tsc -p tsconfig.cli.json",
|
|
137
|
-
"typecheck:scripts": "tsc -p tsconfig.scripts.json",
|
|
138
|
-
"prepack": "node scripts/strip-source-condition.mjs",
|
|
94
|
+
"build": "npm run clean && tsc -p tsconfig.build.json",
|
|
95
|
+
"prepack": "npm run build && node scripts/strip-source-condition.mjs",
|
|
139
96
|
"postpack": "node scripts/restore-source-condition.mjs",
|
|
140
97
|
"pack:check": "node scripts/pack-check.mjs",
|
|
141
|
-
"
|
|
142
|
-
"
|
|
143
|
-
"lint:docs-site": "node scripts/build-blume-docs.mjs --check",
|
|
144
|
-
"lint:imports": "node scripts/check-js-extensions.mjs",
|
|
98
|
+
"typecheck": "tsc --noEmit",
|
|
99
|
+
"test": "vitest run",
|
|
145
100
|
"generate:errors": "tsx scripts/generate-error-docs.mts",
|
|
146
101
|
"lint:errors": "tsx scripts/check-error-docs.mts",
|
|
102
|
+
"build:docs": "node scripts/build-blume-docs.mjs",
|
|
147
103
|
"lint:docs": "node scripts/check-doc-drift.mjs",
|
|
148
|
-
"lint:
|
|
149
|
-
"lint:pkg": "publint",
|
|
150
|
-
"prepublishOnly": "npm run build && npm run lint:pkg",
|
|
151
|
-
"check:dist": "node scripts/check-dist-fresh.mjs",
|
|
152
|
-
"pretest": "node scripts/check-dist-fresh.mjs",
|
|
153
|
-
"test": "jest",
|
|
154
|
-
"test:quickstart": "node scripts/test-quickstart.mjs",
|
|
155
|
-
"test:unit": "jest --testPathPatterns __tests__/unit",
|
|
156
|
-
"test:integration": "jest --testPathPatterns __tests__/integration",
|
|
157
|
-
"test:contract": "jest --testPathPatterns __tests__/contract",
|
|
158
|
-
"test:property": "jest --testPathPatterns __tests__/property",
|
|
159
|
-
"test:coverage": "jest --coverage",
|
|
160
|
-
"test:e2e": "E2E_TEST=true jest --config jest.e2e.config.ts",
|
|
161
|
-
"test:e2e:up": "docker compose -f docker-compose.test.yml up -d --wait",
|
|
162
|
-
"test:e2e:down": "docker compose -f docker-compose.test.yml down -v",
|
|
163
|
-
"test:e2e:run": "node scripts/run-e2e.mjs"
|
|
104
|
+
"lint:pkg": "publint"
|
|
164
105
|
},
|
|
165
106
|
"publishConfig": {
|
|
166
107
|
"access": "public",
|
|
167
108
|
"provenance": true,
|
|
168
109
|
"registry": "https://registry.npmjs.org"
|
|
169
110
|
},
|
|
170
|
-
"keywords": [
|
|
171
|
-
"state-management",
|
|
172
|
-
"realtime",
|
|
173
|
-
"multiplayer",
|
|
174
|
-
"local-first",
|
|
175
|
-
"collaborative",
|
|
176
|
-
"agents",
|
|
177
|
-
"ai",
|
|
178
|
-
"commit",
|
|
179
|
-
"intent",
|
|
180
|
-
"api",
|
|
181
|
-
"typescript"
|
|
182
|
-
],
|
|
183
111
|
"repository": {
|
|
184
112
|
"type": "git",
|
|
185
|
-
"url": "git+https://github.com/Abloatai/ablo.git"
|
|
113
|
+
"url": "git+https://github.com/Abloatai/ablo.git",
|
|
114
|
+
"directory": "packages/ablo"
|
|
186
115
|
},
|
|
187
|
-
"
|
|
188
|
-
|
|
189
|
-
"
|
|
116
|
+
"dependencies": {
|
|
117
|
+
"@abloatai/humans": "^0.37.0",
|
|
118
|
+
"@abloatai/transaction": "^0.37.0"
|
|
190
119
|
},
|
|
191
120
|
"peerDependencies": {
|
|
192
|
-
"react": "^19.
|
|
193
|
-
"drizzle-orm": ">=0.44.0",
|
|
194
|
-
"ai": "^6.0.0"
|
|
121
|
+
"react": "^19.2.8"
|
|
195
122
|
},
|
|
196
123
|
"peerDependenciesMeta": {
|
|
197
124
|
"react": {
|
|
198
125
|
"optional": true
|
|
199
|
-
},
|
|
200
|
-
"drizzle-orm": {
|
|
201
|
-
"optional": true
|
|
202
|
-
},
|
|
203
|
-
"ai": {
|
|
204
|
-
"optional": true
|
|
205
126
|
}
|
|
206
127
|
},
|
|
207
|
-
"dependencies": {
|
|
208
|
-
"jiti": "^2.7.0",
|
|
209
|
-
"mobx": "^6.13.7",
|
|
210
|
-
"mobx-react-lite": "^4.0.0",
|
|
211
|
-
"uuid": "^11.1.0",
|
|
212
|
-
"zod": "^4.4.3"
|
|
213
|
-
},
|
|
214
128
|
"devDependencies": {
|
|
215
|
-
"@ai-sdk/provider": "^3.0.0",
|
|
216
|
-
"@clack/prompts": "^0.11.0",
|
|
217
|
-
"@jest/globals": "^30.2.0",
|
|
218
|
-
"@prisma/client": "^7.3.0",
|
|
219
|
-
"@types/jest": "^30.0.0",
|
|
220
|
-
"@types/node": "^22.0.0",
|
|
221
129
|
"@types/react": "^19.0.0",
|
|
222
|
-
"
|
|
223
|
-
"
|
|
224
|
-
"
|
|
225
|
-
"
|
|
226
|
-
"eslint-plugin-react-hooks": "^7.0.1",
|
|
227
|
-
"fake-indexeddb": "^6.0.0",
|
|
228
|
-
"fast-check": "^3.0.0",
|
|
229
|
-
"globals": "^16.5.0",
|
|
230
|
-
"jest": "^30.2.0",
|
|
231
|
-
"jest-environment-jsdom": "^30.2.0",
|
|
232
|
-
"jest-environment-node": "^30.2.0",
|
|
233
|
-
"picocolors": "^1.1.0",
|
|
234
|
-
"postgres": "^3.4.0",
|
|
235
|
-
"react": "^19.0.0",
|
|
236
|
-
"react-dom": "^19.0.0",
|
|
237
|
-
"ts-jest": "^29.4.5",
|
|
238
|
-
"ts-morph": "^26.0.0",
|
|
239
|
-
"tsup": "^8.0.0",
|
|
240
|
-
"tsx": "^4.19.0",
|
|
241
|
-
"typescript": "^5.8.3",
|
|
242
|
-
"publint": "^0.3.21",
|
|
243
|
-
"ws": "^8.18.0"
|
|
130
|
+
"react": "^19.2.8",
|
|
131
|
+
"tsx": "^4.20.3",
|
|
132
|
+
"typescript": "npm:@typescript/typescript6@^6.0.2",
|
|
133
|
+
"vitest": "^4.1.4"
|
|
244
134
|
}
|
|
245
135
|
}
|