# AnythingLLM — synchronisation après `git pull` ## Objectif Déclencher un envoi vers AnythingLLM des fichiers **modifiés ou ajoutés** par un `git pull` (merge fast-forward ou merge classique), sans action manuelle dans l’éditeur. ## Impacts - Chaque dépôt concerné peut installer un hook Git **`post-merge`** qui appelle `scripts/anythingllm-pull-sync/sync.mjs`. - Les mêmes exclusions que **`.4nkaiignore`** (et quelques motifs système) s’appliquent. - Les suppressions ou renommages ne sont pas reflétés comme suppressions côté AnythingLLM dans cette version (upload uniquement). ## Modifications (dépôt smart_ide) - `scripts/anythingllm-pull-sync/` : script Node (ESM), dépendance `ignore`, `package.json`, `README.md`. - `scripts/install-anythingllm-post-merge-hook.sh` : pose le hook dans `.git/hooks/post-merge` avec le chemin absolu vers `sync.mjs`. ## Configuration par dépôt - Fichier optionnel **`.anythingllm.json`** à la racine : `{ "workspaceSlug": "" }`. - Ou variable d’environnement **`ANYTHINGLLM_WORKSPACE_SLUG`** (priorité documentée dans le README du script). ## Modalités de déploiement 1. Sur la machine de développement : `npm install` dans `scripts/anythingllm-pull-sync`. 2. Créer `~/.config/4nk/anythingllm-sync.env` avec `ANYTHINGLLM_BASE_URL` et `ANYTHINGLLM_API_KEY` (ne pas commiter la clé). 3. Exécuter `install-anythingllm-post-merge-hook.sh ` pour chaque dépôt à synchroniser. 4. S’assurer qu’AnythingLLM (collector) est joignable depuis cette machine. ## Modalités d’analyse - Messages sur **stderr** : `uploaded=`, `skipped=`, `errors=`, détail des erreurs d’upload (tronqué au-delà de 20 lignes). - Si `ORIG_HEAD` est absent, ou si URL / clé / slug manquent : message explicite et **code de sortie 0** pour ne pas bloquer le pull.