import { SuggestedTool } from './types'; interface KnownTool { name: string; description: string; keywords: string[]; useCase: string; external?: boolean; } /** * Classe qui gère l'intégration avec d'autres outils MCP */ export declare class ToolIntegrator { private static readonly EXTERNAL_TOOL_NAMES; private knownTools; private readonly externalToolsEnabled; constructor(); /** * Initialise le registre avec des outils MCP courants */ private initializeKnownTools; /** * Suggère des outils pertinents pour un contenu donné avec option pour la vérification. * Tente d'utiliser le LLM interne pour une meilleure pertinence, avec repli sur l'heuristique. * * @param content Le contenu pour lequel suggérer des outils * @param options Options de configuration (limite, mode vérification, etc) * @returns Une promesse résolvant vers un tableau d'outils suggérés */ suggestToolsGeneric(content: string, options?: { limit?: number; verificationMode?: boolean; toolFilter?: string[]; previousSuggestions?: SuggestedTool[]; reasoningStage?: 'initial' | 'developing' | 'advanced' | 'final'; }): Promise; /** * Méthode heuristique originale pour suggérer des outils (utilisée comme repli). */ private suggestToolsHeuristic; /** * Suggère des outils de vérification pertinents pour un contenu donné * @param content Le contenu pour lequel suggérer des outils * @param limit Le nombre maximum d'outils à suggérer * @returns Une promesse résolvant vers un tableau d'outils suggérés */ suggestVerificationTools(content: string, limit?: number): Promise; /** * Génère une raison spécifique pour la vérification avec un outil * * @param tool L'outil suggéré * @param content Le contenu à vérifier * @returns Une raison explicative pour la vérification */ private generateVerificationReason; /** * Exécute un outil de vérification sur un contenu donné * * @param toolName Le nom de l'outil à exécuter * @param content Le contenu à vérifier * @returns Le résultat de la vérification */ executeVerificationTool(toolName: string, content: string): Promise; private executePerplexitySearch; private executeTavilySearch; private executeBraveSearch; private executeTavilyExtract; private executePythonVerification; private executeJavaScriptVerification; /** * Suggère des outils pertinents pour un contenu donné (méthode publique principale) * * @param content Le contenu pour lequel suggérer des outils * @param limit Le nombre maximum d'outils à suggérer * @returns Une promesse résolvant vers un tableau d'outils suggérés */ suggestTools(content: string, limit?: number): Promise; /** * Vérifie si un texte contient l'un des termes donnés * * @param text Le texte à vérifier * @param terms Les termes à rechercher * @returns true si le texte contient au moins un des termes, false sinon */ private containsAny; /** * Génère une raison explicative pour la suggestion d'un outil (utilisé par l'heuristique) * * @param tool L'outil suggéré * @param content Le contenu pour lequel l'outil est suggéré * @returns Une raison explicative */ private generateReason; /** * Ajoute un nouvel outil au registre * * @param name Le nom de l'outil * @param description La description de l'outil * @param keywords Les mots-clés associés * @param useCase Le cas d'usage de l'outil */ addTool(name: string, description: string, keywords: string[], useCase: string): void; /** * Supprime un outil du registre * * @param name Le nom de l'outil à supprimer * @returns true si l'outil a été supprimé, false sinon */ removeTool(name: string): boolean; /** * Récupère tous les outils du registre * * @returns Un tableau de tous les outils */ getAllTools(): KnownTool[]; } export {};