UNPKG

@mastra/core

Version:

Mastra is a framework for building AI-powered applications and agents with a modern TypeScript stack.

1 lines 80.9 kB
{"version":3,"sources":["../src/storage/base.ts","../src/storage/domains/base.ts","../src/storage/domains/versioned.ts","../src/storage/git-history.ts","../src/storage/filesystem-versioned.ts"],"names":["MastraBase","realpathSync","relative","execFile"],"mappings":"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","file":"chunk-3VBF5IP7.cjs","sourcesContent":["import { MastraBase } from '../base';\n\nimport type {\n AgentsStorage,\n PromptBlocksStorage,\n ScorerDefinitionsStorage,\n MCPClientsStorage,\n MCPServersStorage,\n WorkspacesStorage,\n SkillsStorage,\n FavoritesStorage,\n ScoresStorage,\n WorkflowsStorage,\n MemoryStorage,\n ObservabilityStorage,\n BlobStore,\n DatasetsStorage,\n ExperimentsStorage,\n BackgroundTasksStorage,\n SchedulesStorage,\n ChannelsStorage,\n} from './domains';\n\n/** Map of all storage domain interfaces available in a composite store. */\nexport type StorageDomains = {\n workflows?: WorkflowsStorage;\n scores?: ScoresStorage;\n memory?: MemoryStorage;\n channels?: ChannelsStorage;\n observability?: ObservabilityStorage;\n agents?: AgentsStorage;\n datasets?: DatasetsStorage;\n experiments?: ExperimentsStorage;\n promptBlocks?: PromptBlocksStorage;\n scorerDefinitions?: ScorerDefinitionsStorage;\n mcpClients?: MCPClientsStorage;\n mcpServers?: MCPServersStorage;\n workspaces?: WorkspacesStorage;\n skills?: SkillsStorage;\n favorites?: FavoritesStorage;\n blobs?: BlobStore;\n backgroundTasks?: BackgroundTasksStorage;\n schedules?: SchedulesStorage;\n};\n\n/**\n * Domain keys used by the Mastra Editor.\n * Used by the `editor` shorthand on MastraCompositeStoreConfig to route\n * all editor-related domains to a single store.\n */\nexport const EDITOR_DOMAINS = [\n 'agents',\n 'promptBlocks',\n 'scorerDefinitions',\n 'mcpClients',\n 'mcpServers',\n 'workspaces',\n 'skills',\n 'favorites',\n] as const satisfies ReadonlyArray<keyof StorageDomains>;\n\n/**\n * Normalizes perPage input for pagination queries.\n *\n * @param perPageInput - The raw perPage value from the user\n * @param defaultValue - The default perPage value to use when undefined (typically 40 for messages, 100 for threads)\n * @returns A numeric perPage value suitable for queries (false becomes MAX_SAFE_INTEGER)\n * @throws Error if perPage is a negative number\n */\nexport function normalizePerPage(perPageInput: number | false | undefined, defaultValue: number): number {\n if (perPageInput === false) {\n return Number.MAX_SAFE_INTEGER; // Get all results\n } else if (perPageInput === 0) {\n return 0; // Return zero results\n } else if (typeof perPageInput === 'number' && perPageInput > 0) {\n return perPageInput; // Valid positive number\n } else if (typeof perPageInput === 'number' && perPageInput < 0) {\n throw new Error('perPage must be >= 0');\n }\n // For undefined, use default\n return defaultValue;\n}\n\n/**\n * Calculates pagination offset and prepares perPage value for response.\n * When perPage is false (fetch all), offset is always 0 regardless of page.\n *\n * @param page - The page number (0-indexed)\n * @param perPageInput - The original perPage input (number, false for all, or undefined)\n * @param normalizedPerPage - The normalized perPage value (from normalizePerPage)\n * @returns Object with offset for query and perPage for response\n */\nexport function calculatePagination(\n page: number,\n perPageInput: number | false | undefined,\n normalizedPerPage: number,\n): { offset: number; perPage: number | false } {\n return {\n offset: perPageInput === false ? 0 : page * normalizedPerPage,\n perPage: perPageInput === false ? false : normalizedPerPage,\n };\n}\n\n/**\n * Configuration for individual domain overrides.\n * Each domain can be sourced from a different storage adapter.\n */\nexport type MastraStorageDomains = Partial<StorageDomains>;\n\n/**\n * Configuration options for MastraCompositeStore.\n *\n * Can be used in two ways:\n * 1. By store implementations: `{ id, name, disableInit? }` - stores set `this.stores` directly\n * 2. For composition: `{ id, default?, domains?, disableInit? }` - compose domains from multiple stores\n */\nexport interface MastraCompositeStoreConfig {\n /**\n * Unique identifier for this storage instance.\n */\n id: string;\n\n /**\n * Name of the storage adapter (used for logging).\n * Required for store implementations extending MastraCompositeStore.\n */\n name?: string;\n\n /**\n * Default storage adapter to use for domains not explicitly specified.\n * If provided, domains from this storage will be used as fallbacks.\n */\n default?: MastraCompositeStore;\n\n /**\n * Storage adapter for editor-related domains (agents, promptBlocks, scorerDefinitions,\n * mcpClients, mcpServers, workspaces, skills).\n *\n * This is a shorthand that routes all editor domains to a single store instead of\n * specifying each individually in `domains`. Useful for filesystem-based storage\n * where editor configs are stored as JSON files in the repository.\n *\n * Priority: domains > editor > default\n *\n * @example\n * ```typescript\n * new MastraCompositeStore({\n * id: 'my-store',\n * default: postgresStore,\n * editor: filesystemStore,\n * })\n * ```\n */\n editor?: MastraCompositeStore;\n\n /**\n * Individual domain overrides. Each domain can come from a different storage adapter.\n * These take precedence over both `editor` and `default` storage.\n *\n * @example\n * ```typescript\n * domains: {\n * memory: pgStore.stores?.memory,\n * workflows: libsqlStore.stores?.workflows,\n * }\n * ```\n */\n domains?: MastraStorageDomains;\n\n /**\n * When true, automatic initialization (table creation/migrations) is disabled.\n * This is useful for CI/CD pipelines where you want to:\n * 1. Run migrations explicitly during deployment (not at runtime)\n * 2. Use different credentials for schema changes vs runtime operations\n *\n * When disableInit is true:\n * - The storage will not automatically create/alter tables on first use\n * - You must call `storage.init()` explicitly in your CI/CD scripts\n *\n * @example\n * // In CI/CD script:\n * const storage = new PostgresStore({ ...config, disableInit: false });\n * await storage.init(); // Explicitly run migrations\n *\n * // In runtime application:\n * const storage = new PostgresStore({ ...config, disableInit: true });\n * // No auto-init, tables must already exist\n */\n disableInit?: boolean;\n}\n\n/**\n * Base class for all Mastra storage adapters.\n *\n * Can be used in two ways:\n *\n * 1. **Extended by store implementations** (PostgresStore, LibSQLStore, etc.):\n * Store implementations extend this class and set `this.stores` with their domain implementations.\n *\n * 2. **Directly instantiated for composition**:\n * Compose domains from multiple storage backends using `default` and `domains` options.\n *\n * All domain-specific operations should be accessed through `getStore()`:\n *\n * @example\n * ```typescript\n * // Composition: mix domains from different stores\n * const storage = new MastraCompositeStore({\n * id: 'composite',\n * default: pgStore,\n * domains: {\n * memory: libsqlStore.stores?.memory,\n * },\n * });\n *\n * // Use `editor` shorthand to route all editor domains to a filesystem store\n * const storage2 = new MastraCompositeStore({\n * id: 'with-fs-editor',\n * default: pgStore,\n * editor: filesystemStore,\n * });\n *\n * // Access domains\n * const memory = await storage.getStore('memory');\n * await memory?.saveThread({ thread });\n * ```\n */\nexport class MastraCompositeStore extends MastraBase {\n protected hasInitialized: null | Promise<boolean> = null;\n protected shouldCacheInit = true;\n\n id: string;\n stores?: StorageDomains;\n\n /**\n * When true, automatic initialization (table creation/migrations) is disabled.\n */\n disableInit: boolean = false;\n\n /**\n * Retained references to the parent stores supplied via composition. `init()`\n * delegates to these so the parent's own `init()` logic (pragmas, ordered\n * DDL, init coalescing, etc.) runs instead of being bypassed by the\n * composite iterating the inner domains in parallel — which was the cause\n * of the SQLITE_BUSY / \"no such table\" races reported in issue #16782.\n */\n protected parentDefault?: MastraCompositeStore;\n protected parentEditor?: MastraCompositeStore;\n\n constructor(config: MastraCompositeStoreConfig) {\n const name = config.name ?? 'MastraCompositeStore';\n\n if (!config.id || typeof config.id !== 'string' || config.id.trim() === '') {\n throw new Error(`${name}: id must be provided and cannot be empty.`);\n }\n\n super({\n component: 'STORAGE',\n name,\n });\n\n this.id = config.id;\n this.disableInit = config.disableInit ?? false;\n\n // If composition config is provided (default, editor, or domains), compose the stores\n if (config.default || config.editor || config.domains) {\n const defaultStores = config.default?.stores;\n const editorStores = config.editor?.stores;\n const domainOverrides = config.domains ?? {};\n\n // Retain the parent store refs so init() can delegate to their own\n // init() — see field doc above and init() below.\n this.parentDefault = config.default;\n this.parentEditor = config.editor;\n\n // Validate that at least one storage source is provided\n const hasDefaultDomains = defaultStores && Object.values(defaultStores).some(v => v !== undefined);\n const hasEditorDomains = editorStores && Object.values(editorStores).some(v => v !== undefined);\n const hasOverrideDomains = Object.values(domainOverrides).some(v => v !== undefined);\n\n if (!hasDefaultDomains && !hasEditorDomains && !hasOverrideDomains) {\n throw new Error(\n 'MastraCompositeStore requires at least one storage source. Provide a default storage, an editor storage, or domain overrides.',\n );\n }\n\n const editorDomainSet = new Set<string>(EDITOR_DOMAINS);\n\n // Helper: resolve a domain with priority: domains > editor (for editor domains) > default\n const resolve = <K extends keyof StorageDomains>(key: K): StorageDomains[K] | undefined => {\n if (domainOverrides[key] !== undefined) return domainOverrides[key];\n if (editorDomainSet.has(key) && editorStores?.[key] !== undefined) return editorStores[key];\n return defaultStores?.[key];\n };\n\n // Build the composed stores object\n this.stores = {\n memory: resolve('memory'),\n workflows: resolve('workflows'),\n scores: resolve('scores'),\n observability: resolve('observability'),\n agents: resolve('agents'),\n datasets: resolve('datasets'),\n experiments: resolve('experiments'),\n promptBlocks: resolve('promptBlocks'),\n scorerDefinitions: resolve('scorerDefinitions'),\n mcpClients: resolve('mcpClients'),\n mcpServers: resolve('mcpServers'),\n workspaces: resolve('workspaces'),\n skills: resolve('skills'),\n favorites: resolve('favorites'),\n blobs: resolve('blobs'),\n backgroundTasks: resolve('backgroundTasks'),\n schedules: resolve('schedules'),\n channels: resolve('channels'),\n } as StorageDomains;\n }\n // Otherwise, subclasses set stores themselves\n }\n\n /**\n * Get a domain-specific storage interface.\n *\n * @param storeName - The name of the domain to access ('memory', 'workflows', 'scores', 'observability', 'agents')\n * @returns The domain storage interface, or undefined if not available\n *\n * @example\n * ```typescript\n * const memory = await storage.getStore('memory');\n * if (memory) {\n * await memory.saveThread({ thread });\n * }\n * ```\n */\n async getStore<K extends keyof StorageDomains>(storeName: K): Promise<StorageDomains[K] | undefined> {\n return this.stores?.[storeName];\n }\n\n /**\n * Initialize all domain stores.\n *\n * When a parent store was supplied via `default` or `editor`, delegate to\n * its own `init()` first. Each adapter owns its `init()` contract — it may\n * apply connection-level setup, run migrations, enforce DDL ordering, or\n * coalesce concurrent callers. Calling each domain's `init()` directly\n * against the parent's shared client would bypass all of that and can\n * corrupt or partially create schema (see issue #16782 for the SQLite\n * symptom).\n *\n * Any remaining domains that did NOT come from a parent (e.g. supplied via\n * the explicit `domains` override pointing at a different store) are then\n * initialized individually — but only the ones the parents didn't already\n * cover, so we never double-init the same domain instance.\n */\n async init(): Promise<void> {\n // to prevent race conditions, await any current init\n if (this.shouldCacheInit && (await this.hasInitialized)) {\n return;\n }\n\n this.hasInitialized = this.#runInit();\n await this.hasInitialized;\n }\n\n async #runInit(): Promise<boolean> {\n // 1. Delegate to parent stores. Each parent owns its own init contract\n // (setup, migrations, sequencing, coalescing). Dedupe by identity so\n // a store passed as both `default` and `editor` only gets init()'d once.\n const uniqueParents = new Set<MastraCompositeStore>();\n if (this.parentDefault) uniqueParents.add(this.parentDefault);\n if (this.parentEditor) uniqueParents.add(this.parentEditor);\n await Promise.all([...uniqueParents].map(parent => parent.init()));\n\n // 2. Build a set of domain instances the parents already initialized so\n // we don't init them a second time below.\n const alreadyInitialized = new Set<unknown>();\n const addParentDomains = (parent?: MastraCompositeStore) => {\n if (!parent?.stores) return;\n for (const domain of Object.values(parent.stores)) {\n if (domain) alreadyInitialized.add(domain);\n }\n };\n addParentDomains(this.parentDefault);\n addParentDomains(this.parentEditor);\n\n // 3. Init any remaining domains (typically those provided via the\n // explicit `domains` override pointing at a different store, or those\n // set directly by a subclass).\n const initTasks: Promise<void>[] = [];\n const maybeInit = (domain: { init(): Promise<void> } | undefined) => {\n if (!domain || alreadyInitialized.has(domain)) return;\n initTasks.push(domain.init());\n alreadyInitialized.add(domain);\n };\n\n if (this.stores) {\n maybeInit(this.stores.memory);\n maybeInit(this.stores.workflows);\n maybeInit(this.stores.scores);\n maybeInit(this.stores.observability);\n maybeInit(this.stores.agents);\n maybeInit(this.stores.datasets);\n maybeInit(this.stores.experiments);\n maybeInit(this.stores.promptBlocks);\n maybeInit(this.stores.scorerDefinitions);\n maybeInit(this.stores.mcpClients);\n maybeInit(this.stores.mcpServers);\n maybeInit(this.stores.workspaces);\n maybeInit(this.stores.skills);\n maybeInit(this.stores.favorites);\n maybeInit(this.stores.blobs);\n maybeInit(this.stores.backgroundTasks);\n maybeInit(this.stores.schedules);\n maybeInit(this.stores.channels);\n }\n\n await Promise.all(initTasks);\n return true;\n }\n}\n\n/**\n * @deprecated Use MastraCompositeStoreConfig instead. This alias will be removed in a future version.\n */\nexport interface MastraStorageConfig extends MastraCompositeStoreConfig {}\n\n/**\n * @deprecated Use MastraCompositeStore instead. This alias will be removed in a future version.\n */\nexport class MastraStorage extends MastraCompositeStore {}\n","import { MastraBase } from '../../base';\n\n/**\n * Base class for all storage domains.\n * Provides common interface for initialization and data clearing.\n */\nexport abstract class StorageDomain extends MastraBase {\n /**\n * Initialize the storage domain.\n * This should create any necessary tables/collections.\n * Default implementation is a no-op - override in adapters that need initialization.\n */\n async init(): Promise<void> {\n // Default no-op - adapters override if they need to create tables/collections\n }\n\n /**\n * Clears all data from this storage domain.\n * This is a destructive operation - use with caution.\n * Primarily used for testing.\n */\n abstract dangerouslyClearAll(): Promise<void>;\n}\n","import type { StorageOrderBy, ThreadOrderBy, ThreadSortDirection } from '../types';\nimport { StorageDomain } from './base';\n\n// ============================================================================\n// Version Resolution Options\n// ============================================================================\n\n/**\n * Options for resolving which version of an entity to use.\n * Either pick by status (draft/published/archived) or by a specific version ID — not both.\n */\nexport type VersionResolutionOptions =\n | { status?: 'draft' | 'published' | 'archived'; versionId?: never }\n | { versionId: string; status?: never };\n\n// ============================================================================\n// Generic Version Types\n// ============================================================================\n\n/**\n * Base interface for version metadata fields that exist on every version row.\n * The `TFkField` parameter controls the name of the foreign key field.\n */\nexport interface VersionBase {\n /** UUID identifier for this version */\n id: string;\n /** Sequential version number (1, 2, 3, ...) */\n versionNumber: number;\n /** Array of field names that changed from the previous version */\n changedFields?: string[];\n /** Optional message describing the changes */\n changeMessage?: string;\n /** When this version was created */\n createdAt: Date;\n}\n\n/**\n * Base interface for version creation input.\n * Same as VersionBase but without the server-assigned `createdAt` timestamp.\n */\nexport interface CreateVersionInputBase extends Omit<VersionBase, 'createdAt'> {}\n\n/**\n * Sort direction for version listings.\n */\nexport type VersionSortDirectionGeneric = ThreadSortDirection;\n\n/**\n * Fields that can be used for ordering version listings.\n */\nexport type VersionOrderByGeneric = 'versionNumber' | 'createdAt';\n\n/**\n * Input for listing versions with pagination and sorting.\n */\nexport interface ListVersionsInputBase {\n /** Page number (0-indexed) */\n page?: number;\n /**\n * Number of items per page, or `false` to fetch all records without pagination limit.\n * Defaults to 20 if not specified.\n */\n perPage?: number | false;\n /** Sorting options */\n orderBy?: {\n field?: VersionOrderByGeneric;\n direction?: VersionSortDirectionGeneric;\n };\n}\n\n/**\n * Output for listing versions with pagination info.\n */\nexport interface ListVersionsOutputBase<TVersion> {\n /** Array of versions for the current page */\n versions: TVersion[];\n /** Total number of versions */\n total: number;\n /** Current page number */\n page: number;\n /** Items per page */\n perPage: number | false;\n /** Whether there are more pages */\n hasMore: boolean;\n}\n\n// ============================================================================\n// Entity base — the \"thin record\" must have these fields\n// ============================================================================\n\nexport interface VersionedEntityBase {\n id: string;\n activeVersionId?: string;\n}\n\n// ============================================================================\n// Constants for validation (shared across all versioned domains)\n// ============================================================================\n\nconst ENTITY_ORDER_BY_SET: Record<ThreadOrderBy, true> = {\n createdAt: true,\n updatedAt: true,\n};\n\nconst SORT_DIRECTION_SET: Record<ThreadSortDirection, true> = {\n ASC: true,\n DESC: true,\n};\n\nconst VERSION_ORDER_BY_SET: Record<VersionOrderByGeneric, true> = {\n versionNumber: true,\n createdAt: true,\n};\n\n// ============================================================================\n// VersionedStorageDomain — generic base class\n// ============================================================================\n\n/**\n * Generic base class for versioned storage domains (agents, prompt blocks, scorer definitions).\n *\n * Type parameters:\n * - `TEntity` — Thin record type (e.g. StorageAgentType)\n * - `TSnapshot` — Snapshot config type (e.g. StorageAgentSnapshotType)\n * - `TResolved` — Entity + snapshot merged (e.g. StorageResolvedAgentType)\n * - `TVersion` — Version row (e.g. AgentVersion)\n * - `TCreateVersion` — Input for creating a version\n * - `TListVersionsInput` — Input for listing versions\n * - `TListVersionsOutput` — Output for listing versions\n * - `TCreateInput` — Input for creating an entity\n * - `TUpdateInput` — Input for updating an entity\n * - `TListInput` — Input for listing entities\n * - `TListOutput` — Output for listing entities (paginated thin records)\n * - `TListResolvedOutput` — Output for listing resolved entities\n */\nexport abstract class VersionedStorageDomain<\n TEntity extends VersionedEntityBase,\n TSnapshot,\n TResolved extends TEntity,\n TVersion extends VersionBase,\n TCreateVersion extends CreateVersionInputBase,\n TListVersionsInput extends ListVersionsInputBase,\n TListVersionsOutput extends ListVersionsOutputBase<TVersion>,\n TCreateInput,\n TUpdateInput,\n TListInput,\n TListOutput,\n TListResolvedOutput,\n> extends StorageDomain {\n /**\n * The key name used in list outputs (e.g. 'agents', 'promptBlocks', 'scorerDefinitions').\n * Subclasses must provide this so the generic resolution logic can build the correct output shape.\n */\n protected abstract readonly listKey: string;\n\n /**\n * The set of version metadata field names (including the FK field) to strip\n * when extracting snapshot config from a version row.\n * e.g. ['id', 'agentId', 'versionNumber', 'changedFields', 'changeMessage', 'createdAt']\n */\n protected abstract readonly versionMetadataFields: string[];\n\n // ==========================================================================\n // Entity CRUD (abstract — implemented by concrete store classes)\n // ==========================================================================\n\n abstract getById(id: string): Promise<TEntity | null>;\n abstract create(input: TCreateInput): Promise<TEntity>;\n abstract update(input: TUpdateInput): Promise<TEntity>;\n abstract delete(id: string): Promise<void>;\n abstract list(args?: TListInput): Promise<TListOutput>;\n\n // ==========================================================================\n // Version methods (abstract — implemented by concrete store classes)\n // ==========================================================================\n\n abstract createVersion(input: TCreateVersion): Promise<TVersion>;\n abstract getVersion(id: string): Promise<TVersion | null>;\n abstract getVersionByNumber(entityId: string, versionNumber: number): Promise<TVersion | null>;\n abstract getLatestVersion(entityId: string): Promise<TVersion | null>;\n abstract listVersions(input: TListVersionsInput): Promise<TListVersionsOutput>;\n abstract deleteVersion(id: string): Promise<void>;\n abstract deleteVersionsByParentId(entityId: string): Promise<void>;\n abstract countVersions(entityId: string): Promise<number>;\n\n // ==========================================================================\n // Concrete resolution methods\n // ==========================================================================\n\n /**\n * Strips version metadata fields from a version row, leaving only snapshot config fields.\n */\n protected extractSnapshotConfig(version: TVersion): Partial<TSnapshot> {\n const result: Record<string, unknown> = {};\n const metadataSet = new Set(this.versionMetadataFields);\n\n for (const [key, value] of Object.entries(version)) {\n if (!metadataSet.has(key)) {\n result[key] = value;\n }\n