magnitude-core
Version:
Magnitude e2e testing agent
39 lines (38 loc) • 2 kB
TypeScript
import { Image } from './image';
import { MultiMediaJson } from './serde';
import { MultiMediaMessage } from '@/ai/baml_client';
import { type MultiMediaContentPart } from './rendering';
export type ObservableDataPrimitive = Image | string | number | boolean | null | undefined;
export type ObservableDataArray = Array<RenderableContent>;
export type ObservableDataObject = {
[key: string]: RenderableContent;
};
export type RenderableContent = ObservableDataPrimitive | ObservableDataArray | ObservableDataObject;
export type ObservationRole = 'user' | 'assistant';
export interface ObservationRetentionOptions {
type: string;
limit?: number;
dedupe?: boolean;
}
export type ObservationSource = `connector:${string}` | `action:taken:${string}` | `action:result:${string}` | `thought`;
export declare class Observation {
readonly source: ObservationSource;
readonly role: ObservationRole;
readonly timestamp: number;
readonly content: RenderableContent;
readonly retention?: ObservationRetentionOptions;
constructor(source: ObservationSource, role: ObservationRole, content: RenderableContent, retention?: ObservationRetentionOptions, timestamp?: number);
static fromConnector(connectorId: string, content: RenderableContent, options?: ObservationRetentionOptions): Observation;
static fromActionTaken(actionId: string, content: RenderableContent, options?: ObservationRetentionOptions): Observation;
static fromActionResult(actionId: string, content: RenderableContent, options?: ObservationRetentionOptions): Observation;
static fromThought(content: RenderableContent, options?: ObservationRetentionOptions): Observation;
toString(): string;
toJson(): Promise<MultiMediaJson>;
render(options?: {
prefix?: MultiMediaContentPart[];
postfix?: MultiMediaContentPart[];
cacheControl?: boolean;
}): Promise<MultiMediaMessage>;
hash(): Promise<string>;
equals(obs: Observation): Promise<boolean>;
}