/**
 * Error Formatter Module
 *
 * Structured error output with suggestions and documentation links.
 * Designed for accessibility and clear communication.
 *
 * Features:
 * - User-friendly error messages in plain language
 * - Actionable suggestions for each error type
 * - Readable stack trace formatting
 * - Quick actions for common fixes
 *
 * This file re-exports everything from the errors/ sub-modules.
 */
export * from './errors/index.js';
import { formatError, formatErrorJson, formatWarning, formatSuccess, formatInfo, formatStackTrace, formatDiagnosticReport, createErrorContext, createEnrichedErrorContext, translateTechnicalError, printError, printErrorJson, generateDiagnosticReport, isRecoverableError, getRetryDelay, groupErrorsByCategory, createErrorSummary, extractFilePath, getErrorCategory, getErrorSeverity, ErrorCategory, ErrorSeverity } from './errors/index.js';
declare const _default: {
    formatError: typeof formatError;
    formatErrorJson: typeof formatErrorJson;
    formatWarning: typeof formatWarning;
    formatSuccess: typeof formatSuccess;
    formatInfo: typeof formatInfo;
    formatStackTrace: typeof formatStackTrace;
    formatDiagnosticReport: typeof formatDiagnosticReport;
    createErrorContext: typeof createErrorContext;
    createEnrichedErrorContext: typeof createEnrichedErrorContext;
    translateTechnicalError: typeof translateTechnicalError;
    printError: typeof printError;
    printErrorJson: typeof printErrorJson;
    generateDiagnosticReport: typeof generateDiagnosticReport;
    isRecoverableError: typeof isRecoverableError;
    getRetryDelay: typeof getRetryDelay;
    groupErrorsByCategory: typeof groupErrorsByCategory;
    createErrorSummary: typeof createErrorSummary;
    extractFilePath: typeof extractFilePath;
    getErrorCategory: typeof getErrorCategory;
    getErrorSeverity: typeof getErrorSeverity;
    ErrorCategory: typeof ErrorCategory;
    ErrorSeverity: typeof ErrorSeverity;
    ERROR_TEMPLATES: {
        readonly API_KEY_MISSING: {
            readonly code: "API_KEY_MISSING";
            readonly message: "La cle API n'est pas configuree";
            readonly suggestion: "Configurez votre cle API pour utiliser Code Buddy";
            readonly docUrl: "https://github.com/phuetz/code-buddy#configuration";
            readonly exitCode: 4;
            readonly quickActions: readonly [{
                readonly label: "Configurer la cle API";
                readonly command: "grok config --set-api-key VOTRE_CLE";
                readonly description: "Configure la cle API de maniere interactive";
            }, {
                readonly label: "Utiliser une variable d'environnement";
                readonly command: "export GROK_API_KEY=votre_cle";
                readonly description: "Definit la cle via l'environnement";
            }];
        };
        readonly API_KEY_INVALID: {
            readonly code: "API_KEY_INVALID";
            readonly message: "La cle API est invalide ou a expire";
            readonly suggestion: "Verifiez que votre cle API est correcte et active sur console.x.ai";
            readonly docUrl: "https://github.com/phuetz/code-buddy#configuration";
            readonly exitCode: 4;
            readonly quickActions: readonly [{
                readonly label: "Verifier la cle sur x.ai";
                readonly command: "open https://console.x.ai/api-keys";
                readonly description: "Ouvre la console xAI pour verifier votre cle";
            }, {
                readonly label: "Mettre a jour la cle";
                readonly command: "grok config --set-api-key";
                readonly description: "Configure une nouvelle cle API";
            }];
        };
        readonly RATE_LIMITED: {
            readonly code: "RATE_LIMITED";
            readonly message: "Limite de requetes API atteinte";
            readonly suggestion: "L'API a recu trop de requetes. Attendez quelques minutes avant de reessayer.";
            readonly exitCode: 3;
            readonly quickActions: readonly [{
                readonly label: "Attendre et reessayer";
                readonly description: "Patientez 1-2 minutes puis relancez votre commande";
            }, {
                readonly label: "Verifier votre forfait";
                readonly command: "open https://console.x.ai/billing";
                readonly description: "Consultez et augmentez eventuellement votre limite";
            }];
        };
        readonly NETWORK_ERROR: {
            readonly code: "NETWORK_ERROR";
            readonly message: "Connexion a l'API echouee";
            readonly suggestion: "Verifiez votre connexion internet et que l'API est accessible";
            readonly exitCode: 9;
            readonly quickActions: readonly [{
                readonly label: "Verifier la connexion";
                readonly command: "ping api.x.ai";
                readonly description: "Teste la connectivite reseau vers l'API";
            }, {
                readonly label: "Verifier le proxy";
                readonly description: "Assurez-vous que votre proxy/VPN n'interfere pas";
            }];
        };
        readonly TIMEOUT: {
            readonly code: "TIMEOUT";
            readonly message: "La requete a expire (timeout)";
            readonly suggestion: "Le serveur met trop de temps a repondre. Essayez avec une demande plus simple.";
            readonly exitCode: 5;
            readonly quickActions: readonly [{
                readonly label: "Reessayer";
                readonly description: "Relancez la meme commande";
            }, {
                readonly label: "Simplifier la requete";
                readonly description: "Divisez votre demande en parties plus petites";
            }, {
                readonly label: "Augmenter le timeout";
                readonly command: "export GROK_TIMEOUT=120000";
                readonly description: "Augmente le delai d'attente a 2 minutes";
            }];
        };
        readonly FILE_NOT_FOUND: {
            readonly code: "FILE_NOT_FOUND";
            readonly message: "Fichier ou dossier introuvable";
            readonly suggestion: "Le chemin specifie n'existe pas. Verifiez l'orthographe et le chemin.";
            readonly exitCode: 6;
            readonly quickActions: readonly [{
                readonly label: "Lister les fichiers";
                readonly command: "ls -la";
                readonly description: "Affiche les fichiers du repertoire courant";
            }, {
                readonly label: "Rechercher le fichier";
                readonly command: "find . -name 'nom_fichier'";
                readonly description: "Recherche le fichier dans le projet";
            }, {
                readonly label: "Creer le fichier";
                readonly description: "Voulez-vous creer ce fichier?";
            }];
        };
        readonly PERMISSION_DENIED: {
            readonly code: "PERMISSION_DENIED";
            readonly message: "Permission refusee";
            readonly suggestion: "Vous n'avez pas les droits necessaires pour cette operation";
            readonly exitCode: 7;
            readonly quickActions: readonly [{
                readonly label: "Verifier les permissions";
                readonly command: "ls -la chemin/fichier";
                readonly description: "Affiche les permissions du fichier";
            }, {
                readonly label: "Modifier les permissions";
                readonly command: "chmod u+rw chemin/fichier";
                readonly description: "Ajoute les droits de lecture/ecriture";
            }, {
                readonly label: "Executer en sudo";
                readonly command: "sudo grok ...";
                readonly description: "Execute avec les privileges administrateur (attention!)";
            }];
        };
        readonly COST_LIMIT: {
            readonly code: "COST_LIMIT";
            readonly message: "Limite de cout de session atteinte";
            readonly suggestion: "La session a atteint le plafond de depenses configure pour eviter les surprises";
            readonly docUrl: "https://github.com/phuetz/code-buddy#cost-management";
            readonly exitCode: 12;
            readonly quickActions: readonly [{
                readonly label: "Augmenter la limite";
                readonly command: "export MAX_COST=20";
                readonly description: "Augmente la limite a $20 pour cette session";
            }, {
                readonly label: "Nouvelle session";
                readonly command: "grok";
                readonly description: "Demarre une nouvelle session avec le budget remis a zero";
            }, {
                readonly label: "Voir les couts";
                readonly command: "/cost";
                readonly description: "Affiche le detail des couts de la session";
            }];
        };
        readonly MODEL_NOT_FOUND: {
            readonly code: "MODEL_NOT_FOUND";
            readonly message: "Modele non disponible";
            readonly suggestion: "Le modele demande n'existe pas ou n'est pas accessible avec votre cle API";
            readonly exitCode: 15;
            readonly quickActions: readonly [{
                readonly label: "Voir les modeles disponibles";
                readonly command: "/model";
                readonly description: "Liste tous les modeles accessibles";
            }, {
                readonly label: "Utiliser le modele par defaut";
                readonly command: "grok config --reset-model";
                readonly description: "Revient au modele par defaut";
            }];
        };
        readonly CONFIG_INVALID: {
            readonly code: "CONFIG_INVALID";
            readonly message: "Fichier de configuration invalide";
            readonly suggestion: "Le fichier de configuration contient des erreurs de syntaxe ou de format";
            readonly docUrl: "https://github.com/phuetz/code-buddy#configuration";
            readonly exitCode: 8;
            readonly quickActions: readonly [{
                readonly label: "Voir la configuration";
                readonly command: "grok config --show";
                readonly description: "Affiche la configuration actuelle";
            }, {
                readonly label: "Reinitialiser la config";
                readonly command: "grok config --reset";
                readonly description: "Remet la configuration par defaut";
            }, {
                readonly label: "Editer manuellement";
                readonly command: "code ~/.config/grok/config.json";
                readonly description: "Ouvre le fichier de configuration dans l'editeur";
            }];
        };
        readonly MCP_CONNECTION_FAILED: {
            readonly code: "MCP_CONNECTION_FAILED";
            readonly message: "Connexion au serveur MCP echouee";
            readonly suggestion: "Le serveur MCP ne repond pas. Verifiez qu'il est demarre et configure correctement.";
            readonly docUrl: "https://github.com/phuetz/code-buddy#mcp-servers";
            readonly exitCode: 14;
            readonly quickActions: readonly [{
                readonly label: "Verifier les serveurs MCP";
                readonly command: "/mcp status";
                readonly description: "Affiche l'etat des serveurs MCP configures";
            }, {
                readonly label: "Redemarrer le serveur";
                readonly command: "/mcp restart";
                readonly description: "Tente de redemarrer le serveur MCP";
            }, {
                readonly label: "Voir la configuration MCP";
                readonly command: "cat ~/.config/grok/mcp.json";
                readonly description: "Affiche la configuration des serveurs MCP";
            }];
        };
        readonly TOOL_FAILED: {
            readonly code: "TOOL_FAILED";
            readonly message: "L'execution de l'outil a echoue";
            readonly suggestion: "L'outil n'a pas pu s'executer correctement. Verifiez les parametres.";
            readonly exitCode: 13;
            readonly quickActions: readonly [{
                readonly label: "Voir l'aide de l'outil";
                readonly command: "/tools";
                readonly description: "Liste les outils disponibles et leur usage";
            }, {
                readonly label: "Reessayer";
                readonly description: "Relancez avec des parametres differents";
            }];
        };
        readonly PATH_TRAVERSAL: {
            readonly code: "PATH_TRAVERSAL";
            readonly message: "Acces bloque: tentative de sortie du repertoire projet";
            readonly suggestion: "Pour des raisons de securite, les chemins doivent rester dans le projet";
            readonly exitCode: 16;
            readonly quickActions: readonly [{
                readonly label: "Utiliser un chemin relatif";
                readonly description: "Utilisez des chemins relatifs au projet (ex: ./src/fichier.ts)";
            }, {
                readonly label: "Changer de repertoire de travail";
                readonly command: "cd /chemin/vers/projet && grok";
                readonly description: "Lancez grok depuis le repertoire souhaite";
            }];
        };
        readonly VALIDATION_ERROR: {
            readonly code: "VALIDATION_ERROR";
            readonly message: "Donnees invalides";
            readonly suggestion: "Les donnees fournies ne respectent pas le format attendu";
            readonly exitCode: 17;
            readonly quickActions: readonly [{
                readonly label: "Voir le format attendu";
                readonly description: "Consultez la documentation pour le format correct";
            }];
        };
        readonly SESSION_EXPIRED: {
            readonly code: "SESSION_EXPIRED";
            readonly message: "La session a expire";
            readonly suggestion: "Votre session n'est plus active. Demarrez une nouvelle session.";
            readonly exitCode: 18;
            readonly quickActions: readonly [{
                readonly label: "Nouvelle session";
                readonly command: "grok";
                readonly description: "Demarre une nouvelle session interactive";
            }, {
                readonly label: "Reprendre une session";
                readonly command: "grok --resume";
                readonly description: "Tente de reprendre la derniere session";
            }];
        };
        readonly CHECKPOINT_NOT_FOUND: {
            readonly code: "CHECKPOINT_NOT_FOUND";
            readonly message: "Point de restauration introuvable";
            readonly suggestion: "Le checkpoint demande n'existe pas ou a ete supprime";
            readonly exitCode: 19;
            readonly quickActions: readonly [{
                readonly label: "Voir les checkpoints";
                readonly command: "/checkpoints";
                readonly description: "Liste tous les points de restauration disponibles";
            }, {
                readonly label: "Creer un checkpoint";
                readonly command: "/checkpoint create";
                readonly description: "Cree un nouveau point de restauration";
            }];
        };
        readonly MEMORY_LIMIT: {
            readonly code: "MEMORY_LIMIT";
            readonly message: "Limite de memoire atteinte";
            readonly suggestion: "L'operation utilise trop de memoire. Essayez avec moins de donnees.";
            readonly exitCode: 20;
            readonly quickActions: readonly [{
                readonly label: "Traiter par lots";
                readonly description: "Divisez l'operation en parties plus petites";
            }, {
                readonly label: "Fermer d'autres applications";
                readonly description: "Liberez de la memoire en fermant d'autres programmes";
            }, {
                readonly label: "Augmenter la limite Node.js";
                readonly command: "export NODE_OPTIONS='--max-old-space-size=4096'";
                readonly description: "Augmente la memoire disponible pour Node.js";
            }];
        };
        readonly DEPENDENCY_MISSING: {
            readonly code: "DEPENDENCY_MISSING";
            readonly message: "Dependance manquante";
            readonly suggestion: "Une bibliotheque requise n'est pas installee";
            readonly exitCode: 21;
            readonly quickActions: readonly [{
                readonly label: "Installer les dependances";
                readonly command: "npm install";
                readonly description: "Installe toutes les dependances du projet";
            }, {
                readonly label: "Reinstaller";
                readonly command: "rm -rf node_modules && npm install";
                readonly description: "Reinstallation complete des dependances";
            }];
        };
        readonly SANDBOX_VIOLATION: {
            readonly code: "SANDBOX_VIOLATION";
            readonly message: "Operation bloquee par le mode securise";
            readonly suggestion: "Cette commande necessite des permissions supplementaires pour s'executer";
            readonly docUrl: "https://github.com/phuetz/code-buddy#security-modes";
            readonly exitCode: 16;
            readonly quickActions: readonly [{
                readonly label: "Autoriser cette fois";
                readonly description: "Approuvez l'operation lorsque demande";
            }, {
                readonly label: "Passer en mode auto-edit";
                readonly command: "/security auto-edit";
                readonly description: "Autorise les modifications de fichiers sans confirmation";
            }, {
                readonly label: "Mode full-auto (attention!)";
                readonly command: "/security full-auto";
                readonly description: "Desactive toutes les confirmations - utilisez avec precaution";
            }];
        };
        readonly CONTEXT_TOO_LARGE: {
            readonly code: "CONTEXT_TOO_LARGE";
            readonly message: "Contexte trop volumineux";
            readonly suggestion: "Le contexte depasse la capacite du modele. Reduisez la quantite de donnees.";
            readonly exitCode: 22;
            readonly quickActions: readonly [{
                readonly label: "Compacter le contexte";
                readonly command: "/compact";
                readonly description: "Resume et compresse le contexte de conversation";
            }, {
                readonly label: "Nouvelle conversation";
                readonly command: "/clear";
                readonly description: "Demarre une nouvelle conversation sans historique";
            }, {
                readonly label: "Exclure des fichiers";
                readonly description: "Specifiez moins de fichiers dans votre demande";
            }];
        };
        readonly GIT_CONFLICT: {
            readonly code: "GIT_CONFLICT";
            readonly message: "Conflit Git detecte";
            readonly suggestion: "Des conflits empechent l'operation Git. Resolvez-les avant de continuer.";
            readonly exitCode: 13;
            readonly quickActions: readonly [{
                readonly label: "Voir les conflits";
                readonly command: "git status";
                readonly description: "Liste les fichiers en conflit";
            }, {
                readonly label: "Annuler l'operation";
                readonly command: "git merge --abort";
                readonly description: "Annule le merge en cours";
            }];
        };
        readonly DOCKER_NOT_RUNNING: {
            readonly code: "DOCKER_NOT_RUNNING";
            readonly message: "Docker n'est pas disponible";
            readonly suggestion: "Le daemon Docker n'est pas demarre ou n'est pas installe";
            readonly exitCode: 21;
            readonly quickActions: readonly [{
                readonly label: "Demarrer Docker";
                readonly command: "sudo systemctl start docker";
                readonly description: "Demarre le service Docker";
            }, {
                readonly label: "Verifier Docker";
                readonly command: "docker info";
                readonly description: "Affiche les informations Docker";
            }];
        };
        readonly JSON_PARSE_ERROR: {
            readonly code: "JSON_PARSE_ERROR";
            readonly message: "Erreur de parsing JSON";
            readonly suggestion: "Le fichier JSON contient des erreurs de syntaxe";
            readonly exitCode: 17;
            readonly quickActions: readonly [{
                readonly label: "Valider le JSON";
                readonly command: "cat fichier.json | jq .";
                readonly description: "Verifie et formate le JSON";
            }];
        };
        readonly API_QUOTA_EXCEEDED: {
            readonly code: "API_QUOTA_EXCEEDED";
            readonly message: "Quota API mensuel depasse";
            readonly suggestion: "Votre forfait API a atteint sa limite mensuelle. Attendez le renouvellement ou passez au forfait superieur.";
            readonly docUrl: "https://console.x.ai/billing";
            readonly exitCode: 3;
            readonly quickActions: readonly [{
                readonly label: "Voir votre consommation";
                readonly command: "open https://console.x.ai/usage";
                readonly description: "Consulte les statistiques d'utilisation de votre compte";
            }, {
                readonly label: "Mettre a niveau le forfait";
                readonly command: "open https://console.x.ai/billing/upgrade";
                readonly description: "Augmente votre limite mensuelle";
            }, {
                readonly label: "Utiliser un modele plus economique";
                readonly command: "/model grok-2-mini";
                readonly description: "Le modele mini consomme moins de quota";
            }];
        };
        readonly API_SERVER_ERROR: {
            readonly code: "API_SERVER_ERROR";
            readonly message: "Erreur interne du serveur API (5xx)";
            readonly suggestion: "Le serveur xAI rencontre des problemes temporaires. Ce n'est pas de votre faute!";
            readonly exitCode: 3;
            readonly quickActions: readonly [{
                readonly label: "Verifier le statut xAI";
                readonly command: "open https://status.x.ai";
                readonly description: "Consulte l'etat des services xAI";
            }, {
                readonly label: "Reessayer dans quelques minutes";
                readonly description: "Les erreurs serveur sont generalement temporaires";
            }, {
                readonly label: "Utiliser un endpoint alternatif";
                readonly command: "export GROK_BASE_URL=https://api.x.ai/v2";
                readonly description: "Tente d'utiliser un endpoint de secours";
            }];
        };
        readonly API_OVERLOADED: {
            readonly code: "API_OVERLOADED";
            readonly message: "API surchargee (503)";
            readonly suggestion: "L'API est momentanement surchargee. Reessayez dans quelques instants.";
            readonly exitCode: 3;
            readonly quickActions: readonly [{
                readonly label: "Attendre et reessayer";
                readonly description: "Patientez 30 secondes puis relancez";
            }, {
                readonly label: "Activer le mode retry automatique";
                readonly command: "export GROK_AUTO_RETRY=true";
                readonly description: "Active les tentatives automatiques avec backoff";
            }];
        };
        readonly API_INVALID_RESPONSE: {
            readonly code: "API_INVALID_RESPONSE";
            readonly message: "Reponse API invalide ou corrompue";
            readonly suggestion: "L'API a renvoye une reponse inattendue. Cela peut indiquer un probleme temporaire.";
            readonly exitCode: 3;
            readonly quickActions: readonly [{
                readonly label: "Reessayer la requete";
                readonly description: "Relancez votre demande";
            }, {
                readonly label: "Verifier les logs";
                readonly command: "cat ~/.config/grok/logs/latest.log | tail -50";
                readonly description: "Examine les logs recents pour plus de details";
            }, {
                readonly label: "Signaler le probleme";
                readonly command: "open https://github.com/phuetz/code-buddy/issues/new";
                readonly description: "Creez un rapport de bug si le probleme persiste";
            }];
        };
        readonly API_CONTENT_FILTERED: {
            readonly code: "API_CONTENT_FILTERED";
            readonly message: "Contenu filtre par la moderation";
            readonly suggestion: "Votre demande a ete bloquee par les filtres de securite de l'API.";
            readonly exitCode: 3;
            readonly quickActions: readonly [{
                readonly label: "Reformuler la demande";
                readonly description: "Essayez de formuler votre requete differemment";
            }, {
                readonly label: "Diviser la requete";
                readonly description: "Si vous traitez un fichier, divisez-le en parties plus petites";
            }];
        };
        readonly TYPESCRIPT_ERROR: {
            readonly code: "TYPESCRIPT_ERROR";
            readonly message: "Erreur de compilation TypeScript";
            readonly suggestion: "Le code contient des erreurs TypeScript qui empechent la compilation.";
            readonly exitCode: 17;
            readonly quickActions: readonly [{
                readonly label: "Voir les erreurs detaillees";
                readonly command: "npm run typecheck";
                readonly description: "Lance la verification de types";
            }, {
                readonly label: "Corriger automatiquement";
                readonly description: "Demandez a Code Buddy de corriger les erreurs TypeScript";
            }, {
                readonly label: "Ignorer temporairement";
                readonly command: "// @ts-ignore";
                readonly description: "Ajoute un commentaire pour ignorer l'erreur (deconseille)";
            }];
        };
        readonly BUILD_FAILED: {
            readonly code: "BUILD_FAILED";
            readonly message: "Echec de la compilation du projet";
            readonly suggestion: "Le build a echoue. Verifiez les erreurs ci-dessus et corrigez-les.";
            readonly exitCode: 13;
            readonly quickActions: readonly [{
                readonly label: "Voir le build verbose";
                readonly command: "npm run build -- --verbose";
                readonly description: "Affiche plus de details sur l'echec";
            }, {
                readonly label: "Nettoyer et rebuilder";
                readonly command: "rm -rf dist && npm run build";
                readonly description: "Supprime le cache et rebuild";
            }, {
                readonly label: "Verifier les dependances";
                readonly command: "npm ls";
                readonly description: "Liste les dependances et leurs versions";
            }];
        };
        readonly LINT_ERROR: {
            readonly code: "LINT_ERROR";
            readonly message: "Erreurs de linting detectees";
            readonly suggestion: "Le code ne respecte pas les regles de style configurees.";
            readonly exitCode: 17;
            readonly quickActions: readonly [{
                readonly label: "Corriger automatiquement";
                readonly command: "npm run lint -- --fix";
                readonly description: "Corrige automatiquement les erreurs corrigeables";
            }, {
                readonly label: "Voir les regles violees";
                readonly command: "npm run lint";
                readonly description: "Affiche toutes les erreurs de linting";
            }];
        };
        readonly GIT_NOT_INITIALIZED: {
            readonly code: "GIT_NOT_INITIALIZED";
            readonly message: "Ce repertoire n'est pas un depot Git";
            readonly suggestion: "Initialisez Git ou naviguez vers un repertoire contenant un projet Git.";
            readonly exitCode: 13;
            readonly quickActions: readonly [{
                readonly label: "Initialiser Git";
                readonly command: "git init";
                readonly description: "Cree un nouveau depot Git dans ce repertoire";
            }, {
                readonly label: "Cloner un depot";
                readonly command: "git clone <url>";
                readonly description: "Clone un depot existant";
            }];
        };
        readonly GIT_UNCOMMITTED_CHANGES: {
            readonly code: "GIT_UNCOMMITTED_CHANGES";
            readonly message: "Modifications non commitees detectees";
            readonly suggestion: "Vous avez des changements locaux. Commitez ou stashez-les avant de continuer.";
            readonly exitCode: 13;
            readonly quickActions: readonly [{
                readonly label: "Voir les changements";
                readonly command: "git status";
                readonly description: "Affiche les fichiers modifies";
            }, {
                readonly label: "Stasher temporairement";
                readonly command: "git stash";
                readonly description: "Met de cote les changements temporairement";
            }, {
                readonly label: "Commiter les changements";
                readonly command: "git add -A && git commit -m 'WIP'";
                readonly description: "Sauvegarde les changements dans un commit";
            }];
        };
        readonly GIT_BRANCH_EXISTS: {
            readonly code: "GIT_BRANCH_EXISTS";
            readonly message: "La branche existe deja";
            readonly suggestion: "Une branche avec ce nom existe deja. Choisissez un autre nom ou supprimez l'existante.";
            readonly exitCode: 13;
            readonly quickActions: readonly [{
                readonly label: "Lister les branches";
                readonly command: "git branch -a";
                readonly description: "Affiche toutes les branches";
            }, {
                readonly label: "Basculer sur la branche";
                readonly command: "git checkout nom-branche";
                readonly description: "Bascule sur la branche existante";
            }, {
                readonly label: "Supprimer la branche";
                readonly command: "git branch -d nom-branche";
                readonly description: "Supprime la branche (attention!)";
            }];
        };
        readonly GIT_PUSH_REJECTED: {
            readonly code: "GIT_PUSH_REJECTED";
            readonly message: "Push rejete par le serveur distant";
            readonly suggestion: "Le serveur a rejete votre push. Cela arrive souvent quand la branche distante a des commits que vous n'avez pas.";
            readonly exitCode: 13;
            readonly quickActions: readonly [{
                readonly label: "Pull puis push";
                readonly command: "git pull --rebase && git push";
                readonly description: "Integre les changements distants puis pousse";
            }, {
                readonly label: "Voir les differences";
                readonly command: "git fetch && git log HEAD..origin/main";
                readonly description: "Compare votre branche avec la distante";
            }];
        };
        readonly GIT_MERGE_FAILED: {
            readonly code: "GIT_MERGE_FAILED";
            readonly message: "Echec du merge";
            readonly suggestion: "Le merge automatique a echoue. Des conflits necessitent une resolution manuelle.";
            readonly exitCode: 13;
            readonly quickActions: readonly [{
                readonly label: "Voir les fichiers en conflit";
                readonly command: "git diff --name-only --diff-filter=U";
                readonly description: "Liste les fichiers avec conflits";
            }, {
                readonly label: "Annuler le merge";
                readonly command: "git merge --abort";
                readonly description: "Revient a l'etat avant le merge";
            }, {
                readonly label: "Resoudre avec l'editeur";
                readonly description: "Ouvrez les fichiers en conflit et resolvez manuellement";
            }];
        };
        readonly WORKSPACE_NOT_FOUND: {
            readonly code: "WORKSPACE_NOT_FOUND";
            readonly message: "Workspace introuvable";
            readonly suggestion: "Le workspace specifie n'existe pas ou n'est plus accessible.";
            readonly exitCode: 6;
            readonly quickActions: readonly [{
                readonly label: "Lister les workspaces";
                readonly command: "/workspace list";
                readonly description: "Affiche tous les workspaces disponibles";
            }, {
                readonly label: "Creer un workspace";
                readonly command: "/workspace create nom";
                readonly description: "Cree un nouveau workspace";
            }];
        };
        readonly PROJECT_NOT_NODE: {
            readonly code: "PROJECT_NOT_NODE";
            readonly message: "Ce n'est pas un projet Node.js";
            readonly suggestion: "Aucun fichier package.json trouve. Initialisez un projet Node.js ou naviguez vers un projet existant.";
            readonly exitCode: 17;
            readonly quickActions: readonly [{
                readonly label: "Initialiser npm";
                readonly command: "npm init -y";
                readonly description: "Cree un package.json minimal";
            }, {
                readonly label: "Chercher package.json";
                readonly command: "find . -name 'package.json' -not -path '*/node_modules/*'";
                readonly description: "Recherche un package.json dans les sous-dossiers";
            }];
        };
        readonly PACKAGE_INSTALL_FAILED: {
            readonly code: "PACKAGE_INSTALL_FAILED";
            readonly message: "Echec de l'installation des packages";
            readonly suggestion: "npm install a echoue. Verifiez votre connexion et les erreurs ci-dessus.";
            readonly exitCode: 21;
            readonly quickActions: readonly [{
                readonly label: "Nettoyer le cache npm";
                readonly command: "npm cache clean --force";
                readonly description: "Vide le cache npm qui peut etre corrompu";
            }, {
                readonly label: "Supprimer node_modules";
                readonly command: "rm -rf node_modules package-lock.json && npm install";
                readonly description: "Reinstallation complete depuis zero";
            }, {
                readonly label: "Verifier le registre npm";
                readonly command: "npm config get registry";
                readonly description: "S'assure que le registre npm est accessible";
            }];
        };
        readonly FILE_TOO_LARGE: {
            readonly code: "FILE_TOO_LARGE";
            readonly message: "Fichier trop volumineux";
            readonly suggestion: "Le fichier depasse la taille maximale supportee pour cette operation.";
            readonly exitCode: 20;
            readonly quickActions: readonly [{
                readonly label: "Voir la taille";
                readonly command: "ls -lh fichier";
                readonly description: "Affiche la taille du fichier";
            }, {
                readonly label: "Traiter par parties";
                readonly description: "Divisez le fichier en parties plus petites";
            }, {
                readonly label: "Compresser d'abord";
                readonly command: "gzip fichier";
                readonly description: "Compresse le fichier avant traitement";
            }];
        };
        readonly FILE_LOCKED: {
            readonly code: "FILE_LOCKED";
            readonly message: "Fichier verrouille par un autre processus";
            readonly suggestion: "Un autre programme utilise ce fichier. Fermez-le ou attendez qu'il soit libere.";
            readonly exitCode: 7;
            readonly quickActions: readonly [{
                readonly label: "Trouver le processus";
                readonly command: "lsof fichier";
                readonly description: "Identifie quel processus verrouille le fichier";
            }, {
                readonly label: "Attendre et reessayer";
                readonly description: "Patientez quelques secondes puis relancez";
            }];
        };
        readonly FILE_ENCODING_ERROR: {
            readonly code: "FILE_ENCODING_ERROR";
            readonly message: "Erreur d'encodage du fichier";
            readonly suggestion: "Le fichier n'est pas en UTF-8 ou contient des caracteres invalides.";
            readonly exitCode: 17;
            readonly quickActions: readonly [{
                readonly label: "Detecter l'encodage";
                readonly command: "file -i fichier";
                readonly description: "Identifie l'encodage actuel du fichier";
            }, {
                readonly label: "Convertir en UTF-8";
                readonly command: "iconv -f ENCODAGE_SOURCE -t UTF-8 fichier > fichier.utf8";
                readonly description: "Convertit le fichier en UTF-8";
            }];
        };
        readonly DISK_FULL: {
            readonly code: "DISK_FULL";
            readonly message: "Espace disque insuffisant";
            readonly suggestion: "Le disque est plein ou n'a pas assez d'espace pour cette operation.";
            readonly exitCode: 20;
            readonly quickActions: readonly [{
                readonly label: "Voir l'espace disque";
                readonly command: "df -h";
                readonly description: "Affiche l'utilisation de l'espace disque";
            }, {
                readonly label: "Trouver les gros fichiers";
                readonly command: "du -sh * | sort -rh | head -20";
                readonly description: "Liste les 20 plus gros elements";
            }, {
                readonly label: "Vider le cache npm";
                readonly command: "npm cache clean --force";
                readonly description: "Libere l'espace utilise par le cache npm";
            }];
        };
        readonly UNSAFE_COMMAND_BLOCKED: {
            readonly code: "UNSAFE_COMMAND_BLOCKED";
            readonly message: "Commande potentiellement dangereuse bloquee";
            readonly suggestion: "Cette commande a ete bloquee car elle pourrait causer des dommages irreversibles.";
            readonly docUrl: "https://github.com/phuetz/code-buddy#security-modes";
            readonly exitCode: 16;
            readonly quickActions: readonly [{
                readonly label: "Comprendre le risque";
                readonly description: "La commande pourrait supprimer des fichiers ou modifier le systeme";
            }, {
                readonly label: "Executer manuellement";
                readonly description: "Si vous etes sur, executez la commande directement dans votre terminal";
            }, {
                readonly label: "Activer YOLO mode";
                readonly command: "/yolo on";
                readonly description: "Desactive les protections (utilisez avec precaution!)";
            }];
        };
        readonly SECRETS_DETECTED: {
            readonly code: "SECRETS_DETECTED";
            readonly message: "Secrets ou credentials detectes dans le code";
            readonly suggestion: "Des cles API, mots de passe ou tokens semblent etre presents dans le code.";
            readonly exitCode: 16;
            readonly quickActions: readonly [{
                readonly label: "Scanner les secrets";
                readonly command: "git secrets --scan";
                readonly description: "Recherche les secrets dans le code";
            }, {
                readonly label: "Utiliser des variables d'env";
                readonly description: "Deplacez les secrets vers des variables d'environnement";
            }, {
                readonly label: "Ajouter au .gitignore";
                readonly command: "echo 'fichier_secret' >> .gitignore";
                readonly description: "Exclut le fichier du depot Git";
            }];
        };
        readonly PROCESS_KILLED: {
            readonly code: "PROCESS_KILLED";
            readonly message: "Processus termine de force";
            readonly suggestion: "Le processus a ete tue, probablement par manque de memoire ou timeout.";
            readonly exitCode: 20;
            readonly quickActions: readonly [{
                readonly label: "Verifier la memoire";
                readonly command: "free -h";
                readonly description: "Affiche la memoire disponible";
            }, {
                readonly label: "Augmenter la memoire Node.js";
                readonly command: "export NODE_OPTIONS='--max-old-space-size=4096'";
                readonly description: "Alloue plus de memoire au processus";
            }];
        };
        readonly COMMAND_NOT_FOUND: {
            readonly code: "COMMAND_NOT_FOUND";
            readonly message: "Commande introuvable";
            readonly suggestion: "La commande n'existe pas ou n'est pas dans votre PATH.";
            readonly exitCode: 21;
            readonly quickActions: readonly [{
                readonly label: "Verifier l'installation";
                readonly command: "which nom_commande";
                readonly description: "Verifie si la commande est installee";
            }, {
                readonly label: "Installer via npm";
                readonly command: "npm install -g nom_package";
                readonly description: "Installe globalement le package";
            }, {
                readonly label: "Verifier le PATH";
                readonly command: "echo $PATH";
                readonly description: "Affiche les repertoires dans le PATH";
            }];
        };
        readonly SCRIPT_SYNTAX_ERROR: {
            readonly code: "SCRIPT_SYNTAX_ERROR";
            readonly message: "Erreur de syntaxe dans le script";
            readonly suggestion: "Le script contient une erreur de syntaxe qui empeche son execution.";
            readonly exitCode: 17;
            readonly quickActions: readonly [{
                readonly label: "Verifier la syntaxe";
                readonly description: "Consultez le numero de ligne indique dans l'erreur";
            }, {
                readonly label: "Linter le fichier";
                readonly command: "npx eslint fichier.js";
                readonly description: "Analyse le fichier pour trouver les erreurs";
            }];
        };
        readonly PLUGIN_NOT_FOUND: {
            readonly code: "PLUGIN_NOT_FOUND";
            readonly message: "Plugin introuvable";
            readonly suggestion: "Le plugin demande n'est pas installe ou n'existe pas dans le registre.";
            readonly exitCode: 21;
            readonly quickActions: readonly [{
                readonly label: "Lister les plugins";
                readonly command: "/plugins list";
                readonly description: "Affiche tous les plugins installes";
            }, {
                readonly label: "Rechercher dans le marketplace";
                readonly command: "/plugins search nom";
                readonly description: "Recherche un plugin dans le marketplace";
            }, {
                readonly label: "Installer le plugin";
                readonly command: "/plugins install nom";
                readonly description: "Installe le plugin depuis le marketplace";
            }];
        };
        readonly PLUGIN_LOAD_ERROR: {
            readonly code: "PLUGIN_LOAD_ERROR";
            readonly message: "Erreur de chargement du plugin";
            readonly suggestion: "Le plugin n'a pas pu etre charge. Il peut etre corrompu ou incompatible.";
            readonly exitCode: 21;
            readonly quickActions: readonly [{
                readonly label: "Reinstaller le plugin";
                readonly command: "/plugins reinstall nom";
                readonly description: "Desinstalle et reinstalle le plugin";
            }, {
                readonly label: "Voir les logs du plugin";
                readonly command: "cat ~/.config/grok/plugins/nom/error.log";
                readonly description: "Consulte les logs d'erreur du plugin";
            }, {
                readonly label: "Desactiver le plugin";
                readonly command: "/plugins disable nom";
                readonly description: "Desactive temporairement le plugin";
            }];
        };
        readonly PLUGIN_VERSION_MISMATCH: {
            readonly code: "PLUGIN_VERSION_MISMATCH";
            readonly message: "Version du plugin incompatible";
            readonly suggestion: "Le plugin n'est pas compatible avec cette version de Code Buddy.";
            readonly exitCode: 21;
            readonly quickActions: readonly [{
                readonly label: "Mettre a jour le plugin";
                readonly command: "/plugins update nom";
                readonly description: "Met a jour vers la derniere version compatible";
            }, {
                readonly label: "Mettre a jour Code Buddy";
                readonly command: "npm update -g @phuetz/grok";
                readonly description: "Met a jour Code Buddy vers la derniere version";
            }];
        };
    };
    ERROR_CATEGORIES: Record<string, ErrorCategory>;
    ERROR_SEVERITIES: Record<string, ErrorSeverity>;
};
export default _default;
