UNPKG

magnitude-core

Version:
39 lines (38 loc) 2 kB
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>; }