@mastra/core
Version:
Mastra is a framework for building AI-powered applications and agents with a modern TypeScript stack.
83 lines • 4.42 kB
TypeScript
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