// data.jsx — content for the landing page
const TOOLS = [
  {
    id: "expert_search",
    name: "expert_search",
    blurb: "Recherche experte EUR-Lex en syntaxe officielle.",
    description:
      "Exécute une requête en syntaxe expert EUR-Lex (DN, FM, DTS_SUBDOM, TI…) et renvoie une liste normalisée de documents (CELEX, titre, URL).",
    args: [
      { name: "query", type: "string, requis", desc: "Expression EUR-Lex, ex. DN = 32016R0679 ou FM = REG AND DTS_SUBDOM = LEGISLATION" },
      { name: "page", type: "number", desc: "Pagination (défaut 1)" },
      { name: "page_size", type: "number", desc: "Taille de page, plafond configurable (≤ 100)" },
      { name: "language", type: "string", desc: "Code langue ISO (défaut \"en\"), ex. \"fr\"" },
    ],
    sample: {
      input: 'DN = 32016R0679',
      output: {
        ok: true,
        data: {
          query: "DN = 32016R0679",
          language: "fr",
          total: 1,
          page: 1,
          page_size: 1,
          results: [
            {
              celex: "32016R0679",
              title: "Règlement (UE) 2016/679 du Parlement européen et du Conseil du 27 avril 2016 relatif à la protection des personnes physiques à l'égard du traitement des données à caractère personnel (RGPD)",
              url: "https://eur-lex.europa.eu/legal-content/FR/TXT/HTML/?uri=cellar:3e485e15-11bd-11e6-ba9a-01aa75ed71a1"
            }
          ]
        },
        error: null
      }
    }
  },
  {
    id: "get_document_by_celex",
    name: "get_document_by_celex",
    blurb: "Métadonnées d'un document par identifiant CELEX.",
    description:
      "Renvoie les métadonnées d'un document juridique européen identifié par son CELEX : titre complet, URL EUR-Lex et identifiant Cellar (référentiel sémantique de l'UE).",
    args: [
      { name: "celex", type: "string, requis", desc: "Identifiant CELEX, ex. 32016R0679" },
      { name: "language", type: "string", desc: "Code langue ISO (défaut \"en\"), ex. \"fr\"" },
    ],
    sample: {
      input: '{ "celex": "32016R0679", "language": "fr" }',
      output: {
        ok: true,
        data: {
          celex: "32016R0679",
          language: "fr",
          document: {
            celex: "32016R0679",
            title: "Règlement (UE) 2016/679 du Parlement européen et du Conseil du 27 avril 2016 relatif à la protection des personnes physiques à l'égard du traitement des données à caractère personnel et à la libre circulation de ces données, et abrogeant la directive 95/46/CE (règlement général sur la protection des données)",
            url: "https://eur-lex.europa.eu/legal-content/FR/TXT/HTML/?uri=cellar:3e485e15-11bd-11e6-ba9a-01aa75ed71a1",
            cellar_id: "3e485e15-11bd-11e6-ba9a-01aa75ed71a1"
          }
        },
        error: null
      }
    }
  },
  {
    id: "get_legal_text",
    name: "get_legal_text",
    blurb: "Texte intégral, considérants ou article unique.",
    description:
      "Récupère le texte d'un document : article par article, considérants seuls, ou texte complet. Idéal pour citer ou ancrer une analyse sur un passage exact.",
    args: [
      { name: "celex", type: "string, requis", desc: "Identifiant CELEX du document" },
      { name: "scope", type: "enum", desc: "article | recitals | full_text (défaut \"article\")" },
      { name: "article", type: "string", desc: "Requis si scope=article, ex. \"6\" ou \"premier\"" },
      { name: "language", type: "string", desc: "Code langue ISO (défaut \"fr\")" },
    ],
    sample: {
      input: '{ "celex": "32016R0679", "scope": "article", "article": "6" }',
      output: {
        ok: true,
        data: {
          celex: "32016R0679",
          language: "fr",
          scope: "article",
          note: "Recitals are excluded for article-level extraction.",
          article: {
            requested: "6",
            id: "art_6",
            heading: "Article 6",
            title: "Licéité du traitement",
            text: "Article 6\nLicéité du traitement\n1. Le traitement n'est licite que si, et dans la mesure où, au moins une des conditions suivantes est remplie:\na) la personne concernée a consenti au traitement de ses données à caractère personnel pour une ou plusieurs finalités spécifiques;\nb) le traitement est nécessaire à l'exécution d'un contrat auquel la personne concernée est partie;\n..."
          }
        },
        error: null
      }
    }
  },
  {
    id: "get_document_toc",
    name: "get_document_toc",
    blurb: "Table des matières : chapitres, sections, articles.",
    description:
      "Renvoie la table des matières structurée d'un document EUR-Lex avec numérotation et intitulés. Permet à Claude de naviguer un texte long avant d'aller chercher un article précis.",
    args: [
      { name: "celex", type: "string, requis", desc: "Identifiant CELEX" },
      { name: "language", type: "string", desc: "Code langue ISO (défaut \"fr\")" },
    ],
    sample: {
      input: '{ "celex": "32022R2065", "language": "fr" }',
      output: {
        ok: true,
        data: {
          celex: "32022R2065",
          language: "fr",
          toc: [
            { order: 1, id: "cpt_I",   type: "chapter", label: "CHAPITRE I",   title: "DISPOSITIONS GÉNÉRALES" },
            { order: 5, id: "cpt_II",  type: "chapter", label: "CHAPITRE II",  title: "RESPONSABILITE DES FOURNISSEURS DE SERVICES INTERMÉDIAIRES" },
            { order: 13, id: "cpt_III", type: "chapter", label: "CHAPITRE III", title: "OBLIGATIONS DE DILIGENCE POUR UN ENVIRONNEMENT EN LIGNE SÛR ET TRANSPARENT" },
            { order: 58, id: "cpt_IV",  type: "chapter", label: "CHAPITRE IV",  title: "MISE EN ŒUVRE, COOPÉRATION, SANCTIONS ET EXÉCUTION" },
            { order: 105, id: "cpt_V",   type: "chapter", label: "CHAPITRE V",   title: "DISPOSITIONS FINALES" }
          ]
        },
        error: null
      }
    }
  },
  {
    id: "search_eu_case_law",
    name: "search_eu_case_law",
    blurb: "Recherche limitée à la jurisprudence UE.",
    description:
      "Construit une requête EUR-Lex qui force le secteur CELEX 6 afin de rechercher uniquement dans la jurisprudence de l'Union européenne, avec filtres texte, titre, année ou fragment expert.",
    args: [
      { name: "text", type: "string", desc: "Mots ou expression à chercher dans le texte" },
      { name: "title", type: "string", desc: "Mots ou expression à chercher dans le titre" },
      { name: "year", type: "number", desc: "Année CELEX, ex. 2024" },
      { name: "expert_query", type: "string", desc: "Fragment expert EUR-Lex ANDé au filtre jurisprudence" },
      { name: "language", type: "string", desc: "Code langue ISO (défaut \"en\")" },
    ],
    sample: {
      input: '{ "title": "Schrems", "language": "fr" }',
      output: {
        ok: true,
        data: {
          query: 'DN = 6* AND TI ~ "Schrems"',
          language: "fr",
          total: 3,
          page: 1,
          page_size: 10,
          results: [
            {
              celex: "62014CJ0362",
              title: "Arrêt de la Cour dans l'affaire C-362/14",
              url: "https://eur-lex.europa.eu/legal-content/FR/TXT/?uri=CELEX:62014CJ0362"
            }
          ]
        },
        error: null
      }
    }
  },
  {
    id: "get_case_law_by_celex",
    name: "get_case_law_by_celex",
    blurb: "Jurisprudence par CELEX secteur 6.",
    description:
      "Récupère un document de jurisprudence UE par identifiant CELEX exact et rejette les identifiants qui ne relèvent pas du secteur 6.",
    args: [
      { name: "celex", type: "string, requis", desc: "Identifiant CELEX jurisprudence, ex. 62019CJ0311" },
      { name: "language", type: "string", desc: "Code langue ISO (défaut \"en\")" },
    ],
    sample: {
      input: '{ "celex": "62019CJ0311", "language": "fr" }',
      output: {
        ok: true,
        data: {
          celex: "62019CJ0311",
          language: "fr",
          document: {
            celex: "62019CJ0311",
            title: "Arrêt de la Cour dans l'affaire C-311/18",
            url: "https://eur-lex.europa.eu/legal-content/FR/TXT/?uri=CELEX:62019CJ0311"
          }
        },
        error: null
      }
    }
  }
];

const USE_CASES = [
  {
    tag: "RGPD",
    title: "Citer l'article 6 du RGPD avec le texte exact",
    body: "Plus besoin de copier-coller depuis EUR-Lex. Claude récupère l'article, le considérant pertinent et le contexte du chapitre — tout en français, en une seule réponse.",
    prompt: "« Donne-moi la base légale du consentement RGPD, article par article, avec les considérants associés. »"
  },
  {
    tag: "Veille",
    title: "Suivre une directive en cours de transposition",
    body: "Pose une question en langage naturel ; Claude exécute une recherche experte, ramène les actes liés et les amendements, puis te livre une note de synthèse sourcée.",
    prompt: "« Liste les directives sur la cybersécurité adoptées depuis 2022, avec CELEX et date d'entrée en vigueur. »"
  },
  {
    tag: "Fiscalité",
    title: "Comparer deux versions d'un règlement",
    body: "Récupère la table des matières des deux versions, repère les articles modifiés, puis demande le texte complet uniquement là où ça change.",
    prompt: "« Compare la structure du règlement 2017/1129 avant et après la modification de 2024. »"
  },
  {
    tag: "Jurisprudence",
    title: "Préparer une note pour un client",
    body: "Brief d'audience, mémo, consultation : enchaîne recherche experte, lecture d'article, et synthèse — sans quitter Claude, et sans hallucination de référence.",
    prompt: "« Rédige une note sur l'article 17 du DSA et cite les considérants pertinents. »"
  }
];

window.TOOLS = TOOLS;
window.USE_CASES = USE_CASES;
