UNPKG

@mastra/core

Version:
69 lines 2.73 kB
import { MastraError } from '../../error/index.js'; import type { TargetType } from '../../storage/types.js'; import type { ItemWithScores } from './types.js'; export type ExperimentJsonValue = null | boolean | number | string | ExperimentJsonValue[] | { [key: string]: ExperimentJsonValue; }; export interface ExperimentEventBase { version: 1; experimentId: string; sequence: number; timestamp: string; target: { type: TargetType | 'task'; id: string; }; } export interface ExperimentRunStartedEvent extends ExperimentEventBase { type: 'experiment.run.started'; status: 'running'; datasetId: string | null; datasetVersion: number | null; totalItems: number; } export interface ExperimentItemCompletedEvent extends ExperimentEventBase { type: 'experiment.item.completed'; itemIndex: number; itemId: string; itemVersion: number; status: 'succeeded' | 'failed'; input: ExperimentJsonValue; output: ExperimentJsonValue; groundTruth: ExperimentJsonValue; error: ExperimentJsonValue; persistenceError: ExperimentJsonValue; scores: ExperimentJsonValue; toolMockReport: ExperimentJsonValue; retryCount: number; startedAt: string; completedAt: string; traceId: string | null; } export interface ExperimentRunFinishedEvent extends ExperimentEventBase { type: 'experiment.run.finished'; status: 'completed' | 'failed'; outcome: 'completed' | 'failed' | 'cancelled'; error: ExperimentJsonValue; totalItems: number; succeededCount: number; failedCount: number; skippedCount: number; persistenceFailures: number; completedWithErrors: boolean; startedAt: string; completedAt: string; } export type ExperimentEvent = ExperimentRunStartedEvent | ExperimentItemCompletedEvent | ExperimentRunFinishedEvent; export type ExperimentEventObserver = (event: ExperimentEvent) => void | Promise<void>; type EventInput = ExperimentEvent extends infer Event ? Event extends ExperimentEvent ? Omit<Event, 'version' | 'sequence' | 'timestamp'> : never : never; export declare class ExperimentEventDispatcher { #private; readonly abortController: AbortController; get failure(): MastraError | undefined; constructor(experimentId: string, observer: ExperimentEventObserver); emit(input: EventInput): Promise<void>; } export declare function toExperimentJsonValue(value: unknown, seen?: WeakSet<object>): ExperimentJsonValue; export declare function createItemCompletedEvent(base: Pick<ExperimentEventBase, 'experimentId' | 'target'>, itemIndex: number, result: ItemWithScores, traceId: string | null): EventInput; export {}; //# sourceMappingURL=events.d.ts.map