- 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
34 lines
1.8 KiB
Markdown
34 lines
1.8 KiB
Markdown
# 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": "<slug>" }`.
|
||
- 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 <chemin-du-repo>` 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.
|