import { SolanaAgentKit } from "../agent"; import { z } from "zod"; /** * Example of an action with input and output */ export interface ActionExample { input: Record; output: Record; explanation: string; } /** * Handler function type for executing the action */ export type Handler = ( agent: SolanaAgentKit, input: Record, ) => Promise>; /** * Main Action interface inspired by ELIZA * This interface makes it easier to implement actions across different frameworks */ export interface Action { /** * Unique name of the action */ name: string; /** * Alternative names/phrases that can trigger this action */ similes: string[]; /** * Detailed description of what the action does */ description: string; /** * Array of example inputs and outputs for the action * Each inner array represents a group of related examples */ examples: ActionExample[][]; /** * Zod schema for input validation */ schema: z.ZodType; /** * Function that executes the action */ handler: Handler; }