import type { Client } from '@libsql/client'; import type { StorageDomains } from '@mastra/core/storage'; import { MastraCompositeStore } from '@mastra/core/storage'; import { AgentsLibSQL } from './domains/agents/index.js'; import { BackgroundTasksLibSQL } from './domains/background-tasks/index.js'; import { BlobsLibSQL } from './domains/blobs/index.js'; import { DatasetsLibSQL } from './domains/datasets/index.js'; import { ExperimentsLibSQL } from './domains/experiments/index.js'; import { MCPClientsLibSQL } from './domains/mcp-clients/index.js'; import { MCPServersLibSQL } from './domains/mcp-servers/index.js'; import { MemoryLibSQL } from './domains/memory/index.js'; import { ObservabilityLibSQL } from './domains/observability/index.js'; import { PromptBlocksLibSQL } from './domains/prompt-blocks/index.js'; import { ScorerDefinitionsLibSQL } from './domains/scorer-definitions/index.js'; import { ScoresLibSQL } from './domains/scores/index.js'; import { SkillsLibSQL } from './domains/skills/index.js'; import { WorkflowsLibSQL } from './domains/workflows/index.js'; import { WorkspacesLibSQL } from './domains/workspaces/index.js'; export { AgentsLibSQL, BackgroundTasksLibSQL, BlobsLibSQL, DatasetsLibSQL, ExperimentsLibSQL, MCPClientsLibSQL, MCPServersLibSQL, MemoryLibSQL, ObservabilityLibSQL, PromptBlocksLibSQL, ScorerDefinitionsLibSQL, ScoresLibSQL, SkillsLibSQL, WorkflowsLibSQL, WorkspacesLibSQL, }; export type { LibSQLDomainConfig } from './db/index.js'; /** * Base configuration options shared across LibSQL configurations */ export type LibSQLBaseConfig = { id: string; /** * Maximum number of retries for write operations if an SQLITE_BUSY error occurs. * @default 5 */ maxRetries?: number; /** * Initial backoff time in milliseconds for retrying write operations on SQLITE_BUSY. * The backoff time will double with each retry (exponential backoff). * @default 100 */ initialBackoffMs?: number; /** * When true, automatic initialization (table creation/migrations) is disabled. * This is useful for CI/CD pipelines where you want to: * 1. Run migrations explicitly during deployment (not at runtime) * 2. Use different credentials for schema changes vs runtime operations * * When disableInit is true: * - The storage will not automatically create/alter tables on first use * - You must call `storage.init()` explicitly in your CI/CD scripts * * @example * // In CI/CD script: * const storage = new LibSQLStore({ ...config, disableInit: false }); * await storage.init(); // Explicitly run migrations * * // In runtime application: * const storage = new LibSQLStore({ ...config, disableInit: true }); * // No auto-init, tables must already exist */ disableInit?: boolean; }; export type LibSQLConfig = (LibSQLBaseConfig & { url: string; authToken?: string; }) | (LibSQLBaseConfig & { client: Client; }); /** * LibSQL/Turso storage adapter for Mastra. * * Access domain-specific storage via `getStore()`: * * @example * ```typescript * const storage = new LibSQLStore({ id: 'my-store', url: 'file:./dev.db' }); * * // Access memory domain * const memory = await storage.getStore('memory'); * await memory?.saveThread({ thread }); * * // Access workflows domain * const workflows = await storage.getStore('workflows'); * await workflows?.persistWorkflowSnapshot({ workflowName, runId, snapshot }); * ``` */ export declare class LibSQLStore extends MastraCompositeStore { private client; private readonly maxRetries; private readonly initialBackoffMs; stores: StorageDomains; constructor(config: LibSQLConfig); } export { LibSQLStore as DefaultStorage }; //# sourceMappingURL=index.d.ts.map