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

5.4 KiB
Raw Permalink Blame History

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) :

$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 :

<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 :

# 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).