> ## Documentation Index
> Fetch the complete documentation index at: https://botmesh.afaya.com.co/llms.txt
> Use this file to discover all available pages before exploring further.

# @botmesh/core/spi

> Reference of @botmesh/core/spi, generated by TypeDoc.

`@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.
* **Flow interpreters** (code that runs declarative steps inside a `do`, such as
  `@botmesh/flow-schema`): the cancellable pause and the form runner of the core interpreter.

Unlike `@botmesh/core/internal`, everything here follows semver: a breaking change is a
major release of `@botmesh/core`.

## Example

```ts theme={null}
import { KvDurability, MemoryKv, messageKey } from '@botmesh/core/spi'
```

## Forms

* [formReplyBody](https://botmesh.afaya.com.co/api/core/spi/functions/formReplyBody.md)
* [parseFormReply](https://botmesh.afaya.com.co/api/core/spi/functions/parseFormReply.md)
* [formOptionEntries](https://botmesh.afaya.com.co/api/core/spi/functions/formOptionEntries.md)
* [isFieldRequired](https://botmesh.afaya.com.co/api/core/spi/functions/isFieldRequired.md)
* [assertFormDefinition](https://botmesh.afaya.com.co/api/core/spi/functions/assertFormDefinition.md)
* [selectionBounds](https://botmesh.afaya.com.co/api/core/spi/functions/selectionBounds.md)
* [FieldCheck](https://botmesh.afaya.com.co/api/core/spi/type-aliases/FieldCheck.md)
* [parseFormDate](https://botmesh.afaya.com.co/api/core/spi/functions/parseFormDate.md)
* [parseFieldAnswer](https://botmesh.afaya.com.co/api/core/spi/functions/parseFieldAnswer.md)
* [FormFieldError](https://botmesh.afaya.com.co/api/core/spi/interfaces/FormFieldError.md)
* [FormValidation](https://botmesh.afaya.com.co/api/core/spi/type-aliases/FormValidation.md)
* [validateFormValues](https://botmesh.afaya.com.co/api/core/spi/functions/validateFormValues.md)

## i18n

* [I18nLogger](https://botmesh.afaya.com.co/api/core/spi/interfaces/I18nLogger.md)
* [I18nOptions](https://botmesh.afaya.com.co/api/core/spi/interfaces/I18nOptions.md)
* [normalizeLocale](https://botmesh.afaya.com.co/api/core/spi/functions/normalizeLocale.md)
* [I18n](https://botmesh.afaya.com.co/api/core/spi/classes/I18n.md)

## Store

* [CheckpointAnswer](https://botmesh.afaya.com.co/api/core/spi/interfaces/CheckpointAnswer.md)
* [CheckpointHandover](https://botmesh.afaya.com.co/api/core/spi/interfaces/CheckpointHandover.md)
* [UserDataEntry](https://botmesh.afaya.com.co/api/core/spi/interfaces/UserDataEntry.md)
* [messageKey](https://botmesh.afaya.com.co/api/core/spi/functions/messageKey.md)
* [legacyMessageKey](https://botmesh.afaya.com.co/api/core/spi/functions/legacyMessageKey.md)

## User data

* [UserDataStore](https://botmesh.afaya.com.co/api/core/spi/type-aliases/UserDataStore.md)
* [supportsUserData](https://botmesh.afaya.com.co/api/core/spi/functions/supportsUserData.md)

## Scheduler

* [ScheduleKind](https://botmesh.afaya.com.co/api/core/spi/type-aliases/ScheduleKind.md)
* [ScheduleRecord](https://botmesh.afaya.com.co/api/core/spi/interfaces/ScheduleRecord.md)
* [ClaimResult](https://botmesh.afaya.com.co/api/core/spi/interfaces/ClaimResult.md)
* [CompletePatch](https://botmesh.afaya.com.co/api/core/spi/interfaces/CompletePatch.md)
* [MemoryScheduleStore](https://botmesh.afaya.com.co/api/core/spi/classes/MemoryScheduleStore.md)
* [isScheduleClaimable](https://botmesh.afaya.com.co/api/core/spi/functions/isScheduleClaimable.md)
* [applyScheduleComplete](https://botmesh.afaya.com.co/api/core/spi/functions/applyScheduleComplete.md)

## Errors

* [StaleLeaseError](https://botmesh.afaya.com.co/api/core/spi/classes/StaleLeaseError.md)

## Provider

* [InboundLocationInput](https://botmesh.afaya.com.co/api/core/spi/interfaces/InboundLocationInput.md)
* [toInboundLocation](https://botmesh.afaya.com.co/api/core/spi/functions/toInboundLocation.md)

## Durability

* [DEFAULT\_BACKOFF](https://botmesh.afaya.com.co/api/core/spi/variables/DEFAULT_BACKOFF.md)
* [computeBackoff](https://botmesh.afaya.com.co/api/core/spi/functions/computeBackoff.md)
* [KvInbox](https://botmesh.afaya.com.co/api/core/spi/classes/KvInbox.md)
* [KvOutbox](https://botmesh.afaya.com.co/api/core/spi/classes/KvOutbox.md)
* [KvDurabilityOptions](https://botmesh.afaya.com.co/api/core/spi/interfaces/KvDurabilityOptions.md)
* [KvDurability](https://botmesh.afaya.com.co/api/core/spi/classes/KvDurability.md)
* [DurableTable](https://botmesh.afaya.com.co/api/core/spi/type-aliases/DurableTable.md)
* [DurableKvEntry](https://botmesh.afaya.com.co/api/core/spi/interfaces/DurableKvEntry.md)
* [DurableKvIndex](https://botmesh.afaya.com.co/api/core/spi/interfaces/DurableKvIndex.md)
* [KvMutation](https://botmesh.afaya.com.co/api/core/spi/type-aliases/KvMutation.md)
* [MemoryKvSnapshot](https://botmesh.afaya.com.co/api/core/spi/interfaces/MemoryKvSnapshot.md)
* [MemoryKv](https://botmesh.afaya.com.co/api/core/spi/classes/MemoryKv.md)
* [assertKvMutation](https://botmesh.afaya.com.co/api/core/spi/functions/assertKvMutation.md)
* [InboxState](https://botmesh.afaya.com.co/api/core/spi/type-aliases/InboxState.md)
* [InboxRecord](https://botmesh.afaya.com.co/api/core/spi/interfaces/InboxRecord.md)
* [InboxAppend](https://botmesh.afaya.com.co/api/core/spi/type-aliases/InboxAppend.md)
* [LeaseOptions](https://botmesh.afaya.com.co/api/core/spi/interfaces/LeaseOptions.md)
* [ClaimOptions](https://botmesh.afaya.com.co/api/core/spi/interfaces/ClaimOptions.md)
* [OutboxClaimOptions](https://botmesh.afaya.com.co/api/core/spi/interfaces/OutboxClaimOptions.md)
* [InboxJournal](https://botmesh.afaya.com.co/api/core/spi/interfaces/InboxJournal.md)
* [OutboxState](https://botmesh.afaya.com.co/api/core/spi/type-aliases/OutboxState.md)
* [OutboxError](https://botmesh.afaya.com.co/api/core/spi/interfaces/OutboxError.md)
* [OutboxRecord](https://botmesh.afaya.com.co/api/core/spi/interfaces/OutboxRecord.md)
* [OutboxPut](https://botmesh.afaya.com.co/api/core/spi/type-aliases/OutboxPut.md)
* [ClaimedSend](https://botmesh.afaya.com.co/api/core/spi/interfaces/ClaimedSend.md)
* [OutboxJournal](https://botmesh.afaya.com.co/api/core/spi/interfaces/OutboxJournal.md)

## Coordination

* [LeaseGrant](https://botmesh.afaya.com.co/api/core/spi/interfaces/LeaseGrant.md)
* [MemoryLeaseProvider](https://botmesh.afaya.com.co/api/core/spi/classes/MemoryLeaseProvider.md)
* [LeaseInfo](https://botmesh.afaya.com.co/api/core/spi/interfaces/LeaseInfo.md)
* [Ticket](https://botmesh.afaya.com.co/api/core/spi/interfaces/Ticket.md)
* [ChatTurn](https://botmesh.afaya.com.co/api/core/spi/interfaces/ChatTurn.md)
* [Leadership](https://botmesh.afaya.com.co/api/core/spi/interfaces/Leadership.md)
* [AcquireTurnOptions](https://botmesh.afaya.com.co/api/core/spi/interfaces/AcquireTurnOptions.md)

## Tracing

* [noopTracer](https://botmesh.afaya.com.co/api/core/spi/variables/noopTracer.md)
* [NOOP\_TRACING](https://botmesh.afaya.com.co/api/core/spi/variables/NOOP_TRACING.md)
* [errorTypeOf](https://botmesh.afaya.com.co/api/core/spi/functions/errorTypeOf.md)
* [CheckpointTrace](https://botmesh.afaya.com.co/api/core/spi/interfaces/CheckpointTrace.md)
* [formatTraceparent](https://botmesh.afaya.com.co/api/core/spi/functions/formatTraceparent.md)
* [parseTraceparent](https://botmesh.afaya.com.co/api/core/spi/functions/parseTraceparent.md)

## Also in @botmesh/core

### IStore

Re-exports [IStore](https://botmesh.afaya.com.co/api/core/interfaces/IStore.md)

***

### StoredMessage

Re-exports [StoredMessage](https://botmesh.afaya.com.co/api/core/interfaces/StoredMessage.md)

***

### StoredChat

Re-exports [StoredChat](https://botmesh.afaya.com.co/api/core/interfaces/StoredChat.md)

***

### StoredContact

Re-exports [StoredContact](https://botmesh.afaya.com.co/api/core/interfaces/StoredContact.md)

***

### FlowCheckpoint

Re-exports [FlowCheckpoint](https://botmesh.afaya.com.co/api/core/interfaces/FlowCheckpoint.md)

***

### AIMessage

Re-exports [AIMessage](https://botmesh.afaya.com.co/api/core/interfaces/AIMessage.md)

***

### IProvider

Re-exports [IProvider](https://botmesh.afaya.com.co/api/core/interfaces/IProvider.md)

***

### ProviderCapabilities

Re-exports [ProviderCapabilities](https://botmesh.afaya.com.co/api/core/interfaces/ProviderCapabilities.md)

***

### InboundEvent

Re-exports [InboundEvent](https://botmesh.afaya.com.co/api/core/type-aliases/InboundEvent.md)

***

### LoggerLike

Re-exports [LoggerLike](https://botmesh.afaya.com.co/api/core/interfaces/LoggerLike.md)

***

### DurableKv

Re-exports [DurableKv](https://botmesh.afaya.com.co/api/core/interfaces/DurableKv.md)

***

### DurabilityBackend

Re-exports [DurabilityBackend](https://botmesh.afaya.com.co/api/core/interfaces/DurabilityBackend.md)

***

### ScheduleStore

Re-exports [ScheduleStore](https://botmesh.afaya.com.co/api/core/interfaces/ScheduleStore.md)

***

### LeaseProvider

Re-exports [LeaseProvider](https://botmesh.afaya.com.co/api/core/interfaces/LeaseProvider.md)

***

### SchedulerLease

Re-exports [SchedulerLease](https://botmesh.afaya.com.co/api/core/type-aliases/SchedulerLease.md)

***

### Coordinator

Re-exports [Coordinator](https://botmesh.afaya.com.co/api/core/interfaces/Coordinator.md)

***

### CoordinatorEvents

Re-exports [CoordinatorEvents](https://botmesh.afaya.com.co/api/core/interfaces/CoordinatorEvents.md)

***

### Fence

Re-exports [Fence](https://botmesh.afaya.com.co/api/core/type-aliases/Fence.md)

***

### LeaseLossReason

Re-exports [LeaseLossReason](https://botmesh.afaya.com.co/api/core/type-aliases/LeaseLossReason.md)

***

### BotTracer

Re-exports [BotTracer](https://botmesh.afaya.com.co/api/core/interfaces/BotTracer.md)

***

### JsonValue

Re-exports [JsonValue](https://botmesh.afaya.com.co/api/core/type-aliases/JsonValue.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.