import { Tool } from '../types'; export abstract class BaseTool = Record> implements Tool { constructor( public name: string, public description: string, public parameters: Record, public citationRules: string, public briefSummary: string ) {} abstract execute(args: T): Promise; getActionRule(): Record { return { [this.name]: { name: this.name, citationRules: this.citationRules, description: this.description, parameters: this.parameters, }, }; } }