@botmesh/core/spi — the service-provider interface: what authors of backends and
transports build on, kept out of the application entry (@botmesh/core).
Stores (IStore): the message-key helpers, the checkpoint record types, the user-data
rows. Every store runs the shared conformance suite (test-utils/store-conformance.ts).
Durability backends (DurabilityBackend): KvDurability over any DurableKv, the
reference MemoryKv, the inbox/outbox journal contracts and record types, the retry
policy and the errors a backend throws.
Schedule stores (ScheduleStore): the record types, the reference
MemoryScheduleStore and the claim/complete rules every backend must follow.
Leases and coordinators (LeaseProvider, Coordinator): the reference
MemoryLeaseProvider and the turn/leadership types.
Transports (IProvider): toInboundLocation(), the native-form helpers and the
built-in message catalog for texts rendered outside a bot.
Tracer integrations (BotTracer): the no-op tracer and the W3C trace-context helpers.
Unlike @botmesh/core/internal, everything here follows semver: a breaking change is a
major release of @botmesh/core.
@botmesh/core/spi— the service-provider interface: what authors of backends and transports build on, kept out of the application entry (@botmesh/core).IStore): the message-key helpers, the checkpoint record types, the user-data rows. Every store runs the shared conformance suite (test-utils/store-conformance.ts).DurabilityBackend):KvDurabilityover anyDurableKv, the referenceMemoryKv, the inbox/outbox journal contracts and record types, the retry policy and the errors a backend throws.ScheduleStore): the record types, the referenceMemoryScheduleStoreand the claim/complete rules every backend must follow.LeaseProvider,Coordinator): the referenceMemoryLeaseProviderand the turn/leadership types.IProvider):toInboundLocation(), the native-form helpers and the built-in message catalog for texts rendered outside a bot.BotTracer): the no-op tracer and the W3C trace-context helpers.Unlike
@botmesh/core/internal, everything here follows semver: a breaking change is a major release of@botmesh/core.Example