smart_ide/docs/repo/projects-directory.md
4NK 3f1894e21f Remove AnythingLLM VS Code extension; add Carbonyl service (upstream submodule)
- Delete extensions/anythingllm-workspaces; document migration to anythingllm-devtools
- Add services/carbonyl: shallow submodule fathyb/carbonyl, run-carbonyl.sh (Docker/native)
- Add scripts/open-carbonyl-preview-test.sh and smart_ide.preview_urls.test in example conf
- Docs: service-carbonyl, carbonyl-terminal-browser, architecture index updates
2026-04-03 22:13:34 +02:00

5.7 KiB
Raw Blame History

Configurations projet (projects/<id>/)

Ce répertoire, à la racine du monorepo smart_ide, ne contient que les fichiers de configuration attendus par ia_dev (conf.json par identifiant de projet). Ce nest pas le répertoire des clones Git des applications.

Les sous-répertoires projects/<id>/ non listés dans le .gitignore à la racine (exceptions pour les ids versionnés) restent ignorés par Git : pour versionner un nouvel id, ajouter les lignes !projects/<id>/ et !projects/<id>/** à côté des exceptions existantes.

Clones applicatifs (docv, stacks métier, etc.)

Les dépôts sources des produits (ex. backend docv sous un chemin du type …/enso/docv, autres apps) doivent vivre ailleurs, selon la convention du poste — typiquement un répertoire frère du monorepo, par ex. ../projects/<nom>/ (relatif à la racine smart_ide), distinct de ./projects/ ici.

  • ./projects/un seul fichier de configuration par id : projects/<id>/conf.json (y compris le gabarit projects/example/conf.json). Pas de fichier .code-workspace versionné à côté : léquivalent multi-root IDE est smart_ide.workspace dans ce même conf.json. ia_dev résout via le lien symbolique décrit dans ia_dev-module.md.
  • ../projects/ (ou autre racine configurée) → arborescences Git complètes, builds, etc. ; dans chaque conf.json, project_path et les chemins deploy.* utiles sont relatifs à la racine du monorepo smart_ide (ex. ../enso, .) ou absolus ; le script cron/git-pull-project-clones.sh et ia_dev les résolvent depuis cette racine (ia_dev/lib/conf_path_resolve.sh).

smart_ide

  • Fichier : projects/smart_ide/conf.json
  • Après clone ou réorganisation des dossiers : ./scripts/ensure-ia-dev-project-link.sh smart_ide (ou le wrapper scripts/ensure-ia-dev-smart-ide-project-link.sh) pour recréer le lien ia_dev/projects/smart_ide../../projects/smart_ide.

enso

  • Fichier : projects/enso/conf.json — clone enso frère du monorepo (project_path typique ../enso), déploiement deploy/scripts_v2, forge 4nk/enso (wiki / issues), mails ticketing AI.ENSO.*@4nkweb.com.
  • Chemins absolus sur les serveurs sous smart_ide.remote_data_access : alignés sur ENSO_REMOTE_ROOT, ENSO_SSH_HOST et data/dossiers-permanents (dépôt enso, enso-deploy.env). Valeurs réelles : fichiers enso-deploy.env non versionnés.
  • Cron fragment : cron/fragments/enso.cron
  • Pour ia_dev : lien symbolique ia_dev/projects/enso../../projects/enso (recréer avec ./scripts/ensure-ia-dev-project-link.sh enso).

builazoo

  • Fichier : projects/builazoo/conf.json — dépôt sous la racine monorepo (project_path : builazoo, soit smart_ide/builazoo/), forge 4nk/builazoo (wiki / issues à ajuster si le dépôt diffère), mails ticketing AI.BUILAZOO.*@4nkweb.com.
  • smart_ide.remote_data_access : alias SSH builazoo-test / builazoo-pprod / builazoo-prod (à déclarer dans ~/.ssh/config comme pour les autres ids).
  • Multi-root IDE : smart_ide.workspace dans conf.json (dossiers + smartIde.activeProjectId).
  • Cron fragment : cron/fragments/builazoo.cron
  • Pour ia_dev : ./scripts/ensure-ia-dev-project-link.sh builazoo
  • Le répertoire builazoo/ à la racine du monorepo est partiellement ignoré par Git (sauf builazoo/README.md) : y placer le clone ou les sources.

Synchronisation Git planifiée

Pour chaque projects/<id>/conf.json, le tirage automatique utilise cron/config.env (PULL_SYNC_*) et cron/git-pull-wrapper.shcron/git-pull-project-clones.sh.

  • Timer systemd utilisateur (recommandé) : scripts/install-git-pull-systemd-user.sh — voir cron-git-pull.md
  • Désactiver pour un id : "cron": { "git_pull": false } dans le conf.json
  • Désactiver tout : PULL_SYNC_ENABLED=0 dans config.env ou config.local.env

project_path est résolu en chemin absolu à partir de la racine smart_ide lorsquil est relatif.

Données déployées, SSH, AnythingLLM et IDE

Spécification : features/remote-deployed-data-ssh.md.

Bloc optionnel smart_ide dans conf.json

Clé smart_ide avec notamment remote_data_access, anythingllm_workspace_slug, workspace (équivalent .code-workspace : folders + settings.smartIde.activeProjectId), preview_urls (ex. test : URL du déploiement test pour Carbonyl). Exemple : projects/enso/conf.json.

Projet actif pour léditeur / Cursor

  1. Copier projects/active-project.json.example vers projects/active-project.json (non versionné) ; renseigner id, optionnellement default_env, notes.
  2. Pour ouvrir un workspace multi-dossiers dans VS Code / Cursor : lire smart_ide.workspace dans projects/<id>/conf.json (même schéma quun fichier .code-workspace) — copier ce bloc dans un fichier local .code-workspace si léditeur lexige, ou configurer les dossiers à la main.

Nouveau projet : partir de projects/example/conf.jsonprojects/<nouvel_id>/conf.json.

Convention agents : .smartIde/rules/smart-ide-ia-dev-bridge.mdc.

Référence amont (schéma conf)

Schéma détaillé des champs conf.json : ia-dev-project-conf-schema.md (aligné sur ia_dev/projects/README.md amont). Extensions cron et smart_ide : spécifiques smart_ide ; ia_dev peut ignorer les champs non lus.