import type { OllamaToolDefinition } from "@/lib/ollama";

export const TOOL_RECHERCHER_WEB: OllamaToolDefinition = {
  type: "function",
  function: {
    name: "rechercher_web",
    description:
      "Recherche sur le web via SearXNG. À utiliser pour toute info récente, actualités, faits à vérifier, prix, scores, données qui changent.",
    parameters: {
      type: "object",
      properties: {
        requete: {
          type: "string",
          description: "Requête de recherche, courte et précise",
        },
        nb_resultats: {
          type: "integer",
          description: "Nombre de résultats (défaut 5)",
        },
      },
      required: ["requete"],
    },
  },
};

export const TOOL_LIRE_PAGE: OllamaToolDefinition = {
  type: "function",
  function: {
    name: "lire_page",
    description:
      "Récupère le contenu texte d'une page web. À utiliser après une recherche pour approfondir un résultat.",
    parameters: {
      type: "object",
      properties: {
        url: { type: "string", description: "URL complète à lire" },
      },
      required: ["url"],
    },
  },
};

export const TOOL_CREER_PDF: OllamaToolDefinition = {
  type: "function",
  function: {
    name: "creer_pdf",
    description:
      "Génère un fichier PDF. À utiliser quand l'utilisateur demande un document, rapport, PDF, ou export.",
    parameters: {
      type: "object",
      properties: {
        titre: { type: "string", description: "Titre du document" },
        contenu_markdown: {
          type: "string",
          description: "Contenu complet en markdown (avec ##, listes, tableaux, etc.)",
        },
      },
      required: ["titre", "contenu_markdown"],
    },
  },
};

export const ALL_TOOL_DEFINITIONS: Record<string, OllamaToolDefinition> = {
  rechercher_web: TOOL_RECHERCHER_WEB,
  lire_page: TOOL_LIRE_PAGE,
  creer_pdf: TOOL_CREER_PDF,
};

export const ALL_TOOL_NAMES = Object.keys(ALL_TOOL_DEFINITIONS);

export const TOOL_LABELS: Record<string, { label: string; icon: string }> = {
  rechercher_web: { label: "Recherche web", icon: "search" },
  lire_page: { label: "Lecture de page", icon: "globe" },
  creer_pdf: { label: "Génération PDF", icon: "file-text" },
};

export const TOOL_SYSTEM_PROMPT = `Tu es un assistant avec accès à 3 outils : rechercher_web, lire_page, et creer_pdf.

Règles :
- Utilise rechercher_web pour toute info récente ou à vérifier
- Utilise lire_page après une recherche pour approfondir 1 ou 2 résultats pertinents (pas tous)
- Utilise creer_pdf quand l'utilisateur demande un document, rapport, ou PDF
- Quand tu génères un PDF basé sur des sources web, cite les URLs dans le PDF
- Sois efficace : pas plus de 2-3 recherches sauf si vraiment nécessaire
- Réponds en français si l'utilisateur écrit en français`;
