smart_ide/docs/features/agent-regex-search-api.md
Nicolas Cantu 088eab84b7 Platform docs, services, ia_dev submodule, smart_ide project config
- Add ia_dev submodule (projects/smart_ide on forge 4nk)
- Document APIs, orchestrator, gateway, local-office, rollout
- Add systemd/scripts layout; relocate setup scripts
- Remove obsolete nginx/enso-only docs from this repo scope
2026-04-03 16:07:58 +02:00

2.2 KiB
Raw Blame History

Recherche regex sur code — API locale (services/agent-regex-search-api)

Objectif

Offrir aux clients locaux (futur shell Lapce, gateway, agents) une API HTTP pour exécuter des recherches par expression régulière sur une arborescence contrôlée, sans dépendre du moteur propriétaire décrit dans le billet Cursor Recherche regex rapide : indexer le texte pour les outils des agents.

Ce que ce nest pas

Larticle Cursor décrit des index sparse n-grams, fichiers sur disque, mmap, etc. Ce code nest pas reproduit ici : Cursor ne publie pas ce moteur en open source. Le service agent-regex-search-api sappuie sur ripgrep (rg), outil standard, rapide, et adapté aux flux « agent » qui enchaînent beaucoup de recherches.

Périmètre fonctionnel

Élément Détail
Code services/agent-regex-search-api/README.md
Moteur rg --json ; prérequis : binaire rg dans PATH
Confinement REGEX_SEARCH_ROOT (défaut /home/ncantu/code) ; subpath uniquement relatif, sans ..
Auth REGEX_SEARCH_TOKENAuthorization: Bearer … sur POST /search
Port défaut 37143

Menaces à prendre en compte

  • ReDoS : une regex peut rester coûteuse jusquà timeoutMs ; garder des plafonds raisonnables.
  • Lecture disque : tout fichier que rg traverse sous la cible peut être lu selon les droits OS ; aligner REGEX_SEARCH_ROOT sur la politique du poste.

Évolutions possibles (hors périmètre initial)

Pour des monorepos extrêmement volumineux, des backends indexés open source (ex. Zoekt, familles dindex trigram / n-grams) peuvent compléter ou remplacer le seul rg, en réutilisant les idées du billet Cursor comme références algorithmiques, pas comme implémentation fournie.

Intégration architecture

Voir system-architecture.md : ce service est un micro-service HTTP local dans la même famille que repos-devtools-server, destiné à être appelé par lorchestrateur ou léditeur plutôt que par des clients distants non authentifiés.