# agent-regex-search-api (`services/agent-regex-search-api/`) API HTTP locale sur **`127.0.0.1`** pour la **recherche regex sur fichiers** via [ripgrep](https://github.com/BurntSushi/ripgrep) (`rg`). Elle matérialise côté `smart_ide` les **principes de conception** décrits pour les agents dans [Recherche regex rapide : indexer le texte pour les outils des agents](https://cursor.com/fr/blog/fast-regex-search) (outil regex dédié aux agents, plafonds de latence, périmètre de fichiers borné). Le **moteur indexé** du billet (trigrammes, sparse n-grams, fichiers `mmap`, etc.) n’est **pas** recodé ici : l’implémentation actuelle s’appuie sur `rg`, comme la majorité des chaînes d’agents ; une couche d’index open source (famille Zoekt / codesearch) reste une évolution possible pour les très gros arbres. ## Prérequis `rg` dans le **`PATH`** (ex. `sudo apt install ripgrep` sur Debian/Ubuntu). ## Variables | Variable | Obligatoire | Description | |----------|-------------|-------------| | `REGEX_SEARCH_TOKEN` | oui | `Authorization: Bearer ` (sauf `GET /health`). | | `REGEX_SEARCH_ROOT` | non | Répertoire de base absolu (défaut typique `/home/ncantu/code` — à adapter). | | `REGEX_SEARCH_HOST` | non | Bind (défaut `127.0.0.1`). | | `REGEX_SEARCH_PORT` | non | Port (défaut `37143`). | ## Endpoints - `GET /health` - `POST /search` — JSON : `pattern`, `subpath` optionnel (relatif à `REGEX_SEARCH_ROOT`, pas de `..`), `maxMatches`, `timeoutMs` Code sortie ripgrep `1` = aucun match → encore **200** avec `matches` vide si pas d’erreur. ## Risques **ReDoS** : regex pathologiques jusqu’à `timeoutMs`. **`REGEX_SEARCH_ROOT`** : aligner avec la politique de lecture disque. ## Run ```bash cd services/agent-regex-search-api npm install npm run build export REGEX_SEARCH_TOKEN='…' npm start ``` ## Spécification [API/agent-regex-search-api.md](../API/agent-regex-search-api.md), [features/agent-regex-search-api.md](../features/agent-regex-search-api.md).