magnitude-core
Version:
Magnitude e2e testing agent
40 lines (39 loc) • 1.45 kB
TypeScript
import { AgentContext } from "@/ai/baml_client";
import { Action } from "@/actions/types";
import { LLMClient, ModelUsage } from "@/ai/types";
import { ActionDefinition } from "@/actions";
import { Schema, z } from 'zod';
import { Image } from '@/memory/image';
import EventEmitter from "eventemitter3";
import { MultiMediaContentPart } from "@/memory/rendering";
interface ModelHarnessOptions {
llm: LLMClient;
}
export interface ModelHarnessEvents {
'tokensUsed': (usage: ModelUsage) => {};
}
export declare class ModelHarness {
/**
* Strong reasoning agent for high level strategy and planning.
*/
readonly events: EventEmitter<ModelHarnessEvents>;
private options;
private collector;
private cr;
private baml;
private logger;
private prevTotalInputTokens;
private prevTotalOutputTokens;
constructor(options: ModelHarnessOptions);
setup(): Promise<void>;
describeModel(): string;
private _reportUsage;
partialAct<T>(context: AgentContext, // Changed to ModularMemoryContext
task: string, data: MultiMediaContentPart[], actionVocabulary: ActionDefinition<T>[]): Promise<{
reasoning: string;
actions: Action[];
}>;
extract<T extends Schema>(instructions: string, schema: T, screenshot: Image, domContent: string): Promise<z.infer<T>>;
query<T extends Schema>(context: AgentContext, query: string, schema: T): Promise<z.infer<T>>;
}
export {};