magnitude-core
Version:
Magnitude e2e testing agent
27 lines (26 loc) • 837 B
TypeScript
import { Agent } from "@/agent";
import { ObservableData } from "@/memory/observation";
import { z, Schema, ZodTypeAny } from "zod";
export interface ActionDefinition<T> {
name: string;
description?: string;
schema: Schema<T>;
resolver: ({ input, agent }: {
input: T;
agent: Agent;
}) => Promise<void | ObservableData>;
render: (action: T) => string;
}
export declare function createAction<S extends ZodTypeAny>(action: {
name: string;
description?: string;
schema?: S;
resolver: ({ input, agent }: {
input: z.infer<S>;
agent: Agent;
}) => Promise<void | ObservableData>;
render?: (action: z.infer<S>) => string;
}): ActionDefinition<z.infer<S>>;
export type ActionPayload<A extends ActionDefinition<any>> = {
name: A['name'];
} & z.infer<A['schema']>;