smart_ide/services/docv/enso-docs/AI_DEV_INTEGRATION.md
Nicolas Cantu bc3c75e15f Add enso docs mirror under services/docv/enso-docs; docv integration docs
- Copy enso/docs tree to services/docv/enso-docs (refresh via cp -a from enso repo)
- Document mirror and refresh command in services/docv/README.md
- Ignore services/docv/target for local Rust workspace
- Track docv-service-integration, API docv.md, and related doc index updates
2026-04-03 17:26:35 +02:00

105 lines
5.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# ai_dev — intégration déploiement et secrets (Enso)
Référence unique pour brancher **enso** sur loutillage partagé (**`dev_ai` / `ai_dev`**) : variables denvironnement, secrets, scripts bash et agents Cursor. La section **7** résume les artefacts sous **`deploy/`** et renvoie aux fichiers versionnés dans le dépôt.
## 1. Racine outillage (`ai_dev` / `dev_ai`)
Ordre de résolution (identique dans **`deploy-env.sh`**, **`ssh.sh`**, **`sync-secrets-to-ai_dev.sh`**, **`deploy/deploy.sh`**) :
1. `AI_DEV_ROOT`
2. `DEV_AI_ROOT` (clone **dev_ai** côte à côte du monorepo, ex. `~/code/dev_ai`)
3. `IA_DEV_ROOT` (compatibilité)
4. `~/code/dev_ai`
5. `~/code/ai_dev`
6. `~/code/ia_dev`
Fichiers attendus : **`${ROOT}/deploy/lib/ssh.sh`**, et côté secrets : **`${ROOT}/.secrets/enso/<env>/enso-deploy.env`**.
## 2. Secrets canoniques
Arborescence cible dans **ai_dev** (versionnée ou non selon politique du dépôt ai_dev) :
```text
$TOOLING_ROOT/.secrets/enso/<test|pprod|prod>/enso-deploy.env
```
(`$TOOLING_ROOT` = première racine résolue selon la liste §1.)
Les scripts **enso** doivent **préférer** ce fichier sil existe, sinon :
```text
<monorepo-enso>/.secrets/<env>/enso-deploy.env
```
## 3. Script de synchronisation
Fichier à ajouter : `deploy/scripts_v2/sync-secrets-to-ai_dev.sh`
(merge depuis `.secrets/<env>/enso-deploy.env` du monorepo vers `.secrets/enso/<env>/enso-deploy.env` dans ai_dev.)
## 4. Bibliothèque `_lib/deploy-env.sh`
Fonction `enso_resolve_deploy_env_file repo_root env` — à sourcer depuis `deploy.sh`, `bootstrap-from-local.sh`, `install-rust-on-local.sh`, `install-systemd-on-local.sh`.
## 5. Wrapper `deploy/deploy.sh`
Exécute **`$TOOLING_ROOT/deploy/deploy.sh enso "$@"`** avec la résolution §1 (`$TOOLING_ROOT` = première racine trouvée).
## 6. Agents Cursor
Ajoutés sous **`.cursor/agents/`** :
- **`ai-dev-secrets-merge.md`** (`/ai-dev-secrets-merge`) — exécute le script de fusion des secrets vers ai_dev.
- **`ai-dev-deploy.md`** (`/ai-dev-deploy`) — vérifie ai_dev, rappelle **ai-dev-secrets-merge** si besoin, puis applique intégralement **`deploy-by-script.md`**.
- **`fix.md`** et **`evol.md`** — après un **`/push-by-script`** réussi (code de sortie **0**), enchaînent **`/ai-dev-deploy`** pour publier sur **test** la révision distante correspondant à la branche, sauf demande explicite de ne pas déployer.
Lagent **`deploy-by-script.md`** référence ai_dev et la résolution des secrets (section *ai_dev*).
**Après déploiement réussi** (**branche** **`test`**, **`pprod`** ou **`prod`**, log avec **`[enso-health] all checks passed`**) : **`deploy-by-script.md` §6** impose un appel **`call_mcp_tool`** : serveur **`cursor-ide-browser`**, outil **`browser_navigate`**, arguments **`url`** = **`ENSO_PUBLIC_ORIGIN`** (lue dans le **`enso-deploy.env`** résolu) ou repli `https://{env}.enso.4nkweb.com`, et **`newTab`**: **`true`**. Option : second **`browser_navigate`** pour `https://{env}.docv.4nkweb.com` (**docv**). Même consigne depuis le monorepo **enso** ou **dev_ai** (**`deploy/deploy.sh enso`**).
---
## 7. Fichiers à créer / remplacer dans le dépôt (contenu de référence)
### 7.1 `deploy/scripts_v2/_lib/deploy-env.sh`
Voir le fichier dans le dépôt (boucle **`AI_DEV_ROOT`**, **`DEV_AI_ROOT`**, **`IA_DEV_ROOT`**, **`~/code/dev_ai`**, **`~/code/ai_dev`**, **`~/code/ia_dev`**).
### 7.2 `deploy/scripts_v2/_lib/ssh.sh`
Même ordre de candidats que §7.1 ; source **`${cand}/deploy/lib/ssh.sh`** au premier trouvé.
### 7.3 `deploy/scripts_v2/sync-secrets-to-ai_dev.sh`
Copie **`.secrets/<env>/enso-deploy.env`** du monorepo vers **`<outil>/.secrets/enso/<env>/enso-deploy.env`**, avec la même découverte de racine que §7.1. Voir le fichier versionné dans le dépôt.
Puis : `chmod +x deploy/scripts_v2/sync-secrets-to-ai_dev.sh`.
### 7.4 Modifier `deploy/scripts_v2/deploy.sh`
Après `SCRIPT_DIR` / `REPO_ROOT` et le parsing `ENV`, **remplacer** laffectation directe de `DEPLOY_ENV_FILE` par :
```bash
# shellcheck source=deploy-env.sh
source "$SCRIPT_DIR/_lib/deploy-env.sh"
enso_resolve_deploy_env_file "$REPO_ROOT" "$ENV"
echo "[enso-deploy] enso-deploy.env source=${ENSO_DEPLOY_ENV_SOURCE} file=${DEPLOY_ENV_FILE}"
```
Conserver **`source "$SCRIPT_DIR/_lib/ssh.sh"`** **après** la résolution du fichier env (comme aujourdhui), ou **avant** si lordre actuel est conservé — limportant est davoir **`DEPLOY_ENV_FILE`** défini avant `source "$DEPLOY_ENV_FILE"`.
### 7.5 Idem pour `bootstrap-from-local.sh`, `install-rust-on-local.sh`, `install-systemd-on-local.sh`
Même bloc `source deploy-env.sh` + `enso_resolve_deploy_env_file "$REPO_ROOT" "$ENV"` à la place de `DEPLOY_ENV_FILE="${REPO_ROOT}/.secrets/..."`.
### 7.6 `deploy/deploy.sh` (racine du dossier `deploy/` dans enso)
**`exec`** le premier **`${C}/deploy/deploy.sh enso "$@"`** trouvé avec la même liste de candidats que §1. Voir le fichier versionné ; **`chmod +x`** appliqué dans le dépôt.
### 7.7 `deploy/enso-deploy.env.example`
En-tête : copie canonique sous loutil partagé, repli monorepo, commande **`sync-secrets-to-ai_dev.sh`** (déjà présent dans le dépôt).
### 7.8 `deploy/README.md` et `docs/INSTALLATION_ENVIRONNEMENT.md` §7.15
**`dev_ai` / `ai_dev`** en premier, variables **`DEV_AI_ROOT`**, repli **`ia_dev`** et **`~/code/ia_dev`** ; secrets **`.secrets/enso/<env>/`** et script **`sync-secrets-to-ai_dev.sh`** (voir fichiers à jour dans le dépôt).