/** * DynamicToolGenerator - Allows AI to generate custom tools at runtime * Hybrid approach: predefined tools + AI-generated tools */ import { ActionResult, ScreenState } from '../types'; import { AccessibilityModule } from '../native/AccessibilityModule'; import { FileSystem } from '../memory/FileSystem'; /** * Dynamic tool definition */ export interface DynamicTool { /** Unique tool name */ name: string; /** Tool description for LLM */ description: string; /** Parameter definitions */ parameters: DynamicToolParameter[]; /** Implementation as executable code */ implementation: string; /** When the tool was created */ createdAt: number; /** How many times it's been used */ usageCount: number; } export interface DynamicToolParameter { name: string; type: 'string' | 'number' | 'boolean' | 'object'; description: string; required: boolean; } /** * Tool generation request from AI */ export interface ToolGenerationRequest { toolName: string; description: string; parameters: DynamicToolParameter[]; /** High-level description of what the tool should do */ intent: string; /** Example usage */ example?: string; } /** * DynamicToolGenerator - Manages custom tool creation and execution */ export declare class DynamicToolGenerator { private nativeModule; private fileSystem; private tools; private maxTools; constructor(nativeModule: AccessibilityModule, fileSystem: FileSystem); /** * Generate a new tool based on AI request */ generateTool(request: ToolGenerationRequest): Promise<{ success: boolean; error?: string; }>; /** * Execute a dynamic tool */ executeTool(toolName: string, parameters: Record, screenState: ScreenState): Promise; /** * Get all available dynamic tools */ getAvailableTools(): DynamicTool[]; /** * Get tool by name */ getTool(name: string): DynamicTool | undefined; /** * Delete a dynamic tool */ deleteTool(name: string): Promise; /** * Load tools from file system */ loadTools(): Promise; private generateImplementation; private generateIntentBasedCode; private executeImplementation; private validateParameters; private persistTools; } //# sourceMappingURL=DynamicToolGenerator.d.ts.map