import type { ToolDefinition } from '../model/entities.js'; import { type ZodType } from "zod"; export interface ToolContext { workingDirectory: string; sessionId: string; signal?: AbortSignal; } export interface ITool { readonly name: string; readonly description: string; readonly parameters: Record; readonly schema: ZodType; execute(params: Record, ctx: ToolContext): Promise; } import type { ToolResult } from '../model/entities.js'; export type { ToolResult }; export interface IToolRegistry { register(tool: ITool): void; unregister(name: string): void; get(name: string): ITool | undefined; getAll(): ITool[]; getDefinitions(): ToolDefinition[]; } export interface IToolExecutor { execute(name: string, args: Record, ctx: ToolContext): Promise; validate(name: string, args: Record): boolean; } //# sourceMappingURL=entities.d.ts.map