UNPKG

@mastra/core

Version:

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

83 lines 4.42 kB
import type { DatasetRecord, DatasetItem, DatasetItemRow, DatasetVersion, CreateDatasetInput, UpdateDatasetInput, AddDatasetItemInput, UpdateDatasetItemInput, ListDatasetsInput, ListDatasetsOutput, ListDatasetItemsInput, ListDatasetItemsOutput, ListDatasetVersionsInput, ListDatasetVersionsOutput, BatchInsertItemsInput, BatchDeleteItemsInput } from '../../types.js'; import { StorageDomain } from '../base.js'; /** * Abstract base class for datasets storage domain. * Provides the contract for dataset and dataset item CRUD operations. * * Schema validation is handled in this base class via Template Method pattern. * Subclasses implement protected _do* methods for actual storage operations, * including SCD-2 versioning (version bump, row ops, dataset_version insert). */ export declare abstract class DatasetsStorage extends StorageDomain { constructor(); dangerouslyClearAll(): Promise<void>; abstract createDataset(input: CreateDatasetInput): Promise<DatasetRecord>; abstract getDatasetById(args: { id: string; }): Promise<DatasetRecord | null>; abstract deleteDataset(args: { id: string; }): Promise<void>; abstract listDatasets(args: ListDatasetsInput): Promise<ListDatasetsOutput>; /** * Update a dataset. Validates existing items against new schemas if schemas are changing. * Subclasses implement _doUpdateDataset for actual storage operation. */ updateDataset(args: UpdateDatasetInput): Promise<DatasetRecord>; /** Subclasses implement actual storage update logic */ protected abstract _doUpdateDataset(args: UpdateDatasetInput): Promise<DatasetRecord>; /** * Add an item to a dataset. Validates input/groundTruth against dataset schemas. * Subclasses implement _doAddItem which handles SCD-2 versioning internally. */ addItem(args: AddDatasetItemInput): Promise<DatasetItem>; /** Subclasses implement actual storage add logic with SCD-2 versioning */ protected abstract _doAddItem(args: AddDatasetItemInput): Promise<DatasetItem>; /** * Update an item in a dataset. Validates changed fields against dataset schemas. * Subclasses implement _doUpdateItem which handles SCD-2 versioning internally. */ updateItem(args: UpdateDatasetItemInput): Promise<DatasetItem>; /** Subclasses implement actual storage update logic with SCD-2 versioning */ protected abstract _doUpdateItem(args: UpdateDatasetItemInput): Promise<DatasetItem>; /** * Delete an item from a dataset. Creates a tombstone row via SCD-2. * Subclasses implement _doDeleteItem which handles SCD-2 versioning internally. */ deleteItem(args: { id: string; datasetId: string; }): Promise<void>; /** Subclasses implement actual storage delete logic with SCD-2 versioning */ protected abstract _doDeleteItem(args: { id: string; datasetId: string; }): Promise<void>; abstract listItems(args: ListDatasetItemsInput): Promise<ListDatasetItemsOutput>; abstract getItemById(args: { id: string; datasetVersion?: number; }): Promise<DatasetItem | null>; abstract getItemsByVersion(args: { datasetId: string; version: number; }): Promise<DatasetItem[]>; abstract getItemHistory(itemId: string): Promise<DatasetItemRow[]>; abstract createDatasetVersion(datasetId: string, version: number): Promise<DatasetVersion>; abstract listDatasetVersions(input: ListDatasetVersionsInput): Promise<ListDatasetVersionsOutput>; /** * Batch insert items to a dataset. Validates all items against dataset schemas, * then delegates to subclass which handles SCD-2 versioning internally. */ batchInsertItems(input: BatchInsertItemsInput): Promise<DatasetItem[]>; /** Subclasses implement batch insert with SCD-2 versioning */ protected abstract _doBatchInsertItems(input: BatchInsertItemsInput): Promise<DatasetItem[]>; /** * Batch delete items from a dataset. Creates tombstone rows via SCD-2. * Subclasses implement _doBatchDeleteItems which handles SCD-2 versioning internally. */ batchDeleteItems(input: BatchDeleteItemsInput): Promise<void>; /** Subclasses implement batch delete with SCD-2 versioning */ protected abstract _doBatchDeleteItems(input: BatchDeleteItemsInput): Promise<void>; } //# sourceMappingURL=base.d.ts.map