overmind-mcp 3.2.4 → 3.2.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -10,7 +10,7 @@ set -uo pipefail # PAS de set -e — on gère les erreurs manuellement
10
10
 
11
11
  # ─── Couleurs + helpers ──────────────────────────────────────
12
12
  R='\033[0;31m'; G='\033[0;32m'; Y='\033[1;33m'; C='\033[0;36m'; B='\033[1m'; D='\033[2m'; N='\033[0m'
13
- STEPS_TOTAL=8
13
+ STEPS_TOTAL=11
14
14
  STEP=0
15
15
 
16
16
  log() { echo -e "${C}[$(date +%H:%M:%S)]${N} ${D}$*${N}"; }
@@ -519,7 +519,243 @@ else
519
519
  fi
520
520
 
521
521
  # ================================================================
522
- # STEP 8/8Validation finale
522
+ # STEP 8/10Vérification + MAJ des CLIs runners
523
+ # ================================================================
524
+ step "CLIs runners (claude, kilo, hermes, gemini, etc.)"
525
+
526
+ # ─── Hermes ───────────────────────────────────────────────────
527
+ if have hermes; then
528
+ HERMES_VER="$(hermes version 2>/dev/null || echo '?')"
529
+ ok "Hermes: ${HERMES_VER}"
530
+ log "Vérification MAJ Hermes..."
531
+ hermes update 2>/dev/null && ok "Hermes mis à jour" || ok "Hermes déjà à jour"
532
+ else
533
+ log "Installation Hermes..."
534
+ if have pip3; then
535
+ $SUDO pip3 install -U hermes-agent 2>/dev/null || pip3 install -U hermes-agent 2>/dev/null || track_warn "pip3 install hermes-agent"
536
+ ok "Hermes installé via pip3"
537
+ elif have pip; then
538
+ $SUDO pip install -U hermes-agent 2>/dev/null || pip install -U hermes-agent 2>/dev/null || track_warn "pip install hermes-agent"
539
+ ok "Hermes installé via pip"
540
+ else
541
+ track_warn "Hermes non installé — pip3 manquant (pip3 install hermes-agent)"
542
+ fi
543
+ fi
544
+
545
+ # ─── Claude CLI ───────────────────────────────────────────────
546
+ if have claude; then
547
+ CLAUDE_VER="$(claude --version 2>/dev/null || echo '?')"
548
+ ok "Claude CLI: ${CLAUDE_VER}"
549
+ log "Vérification MAJ Claude..."
550
+ npm install -g @anthropic-ai/claude-code@latest 2>/dev/null && ok "Claude CLI mis à jour" || ok "Claude CLI déjà à jour"
551
+ else
552
+ log "Claude CLI non détecté (optionnel — npm i -g @anthropic-ai/claude-code)"
553
+ fi
554
+
555
+ # ─── Kilo Code ────────────────────────────────────────────────
556
+ if have kilo; then
557
+ KILO_VER="$(kilo --version 2>/dev/null || echo '?')"
558
+ ok "Kilo Code: ${KILO_VER}"
559
+ else
560
+ log "Kilo Code non détecté (optionnel)"
561
+ fi
562
+
563
+ # ─── Gemini CLI (optionnel, pas affiché) ─────────────────────
564
+ if have gemini; then
565
+ log "Gemini CLI détecté (optionnel)"
566
+ fi
567
+
568
+ # ─── Autres CLIs (optionnel, pas affiché) ────────────────────
569
+ for cli in opencode openclaw cline qwencli; do
570
+ have "$cli" && log "${cli} détecté (optionnel)"
571
+ done
572
+
573
+ ok "CLIs runners vérifiés"
574
+
575
+ # ================================================================
576
+ # STEP 9/10 — MAJ overmind-mcp + dependencies npm
577
+ # ================================================================
578
+ step "MAJ packages npm (overmind + deps)"
579
+
580
+ # Récupérer le path global npm
581
+ NPM_GLOBAL="$(npm root -g 2>/dev/null || echo /usr/lib/node_modules)"
582
+ NPM_BIN="$(npm bin -g 2>/dev/null || dirname "$(which npm)")"
583
+
584
+ log "MAJ overmind-mcp..."
585
+ npm install -g overmind-mcp@latest 2>/dev/null && ok "overmind-mcp mis à jour" || ok "overmind-mcp déjà à jour"
586
+
587
+ log "MAJ overmind-postgres-mcp..."
588
+ npm install -g overmind-postgres-mcp@latest 2>/dev/null && ok "overmind-postgres-mcp mis à jour" || ok "overmind-postgres-mcp déjà à jour"
589
+
590
+ # Vérifier les versions installées
591
+ OM_VER="$(npm list -g overmind-mcp --depth=0 2>/dev/null | grep 'overmind-mcp@' | awk -F@ '{print $NF}' || echo '?')"
592
+ PGM_VER="$(npm list -g overmind-postgres-mcp --depth=0 2>/dev/null | grep 'overmind-postgres-mcp@' | awk -F@ '{print $NF}' || echo '?')"
593
+ ok "overmind-mcp: v${OM_VER}"
594
+ ok "overmind-postgres-mcp: v${PGM_VER}"
595
+
596
+ # ================================================================
597
+ # STEP 10/11 — Audit arborescence agents (~/.overmind/hermes/profiles/)
598
+ # ================================================================
599
+ step "Audit arborescence agents"
600
+
601
+ PROFILES_DIR="$OM_DIR/hermes/profiles"
602
+
603
+ if [ ! -d "$PROFILES_DIR" ]; then
604
+ warn "Dossier profiles/ absent — aucun agent configuré"
605
+ log "Création de la structure canonique..."
606
+ mkdir -p "$PROFILES_DIR" "$OM_DIR/hermes/distributions" "$OM_DIR/bridge/wrappers" 2>/dev/null || true
607
+ ok "Structure ~/.overmind/hermes/ créée"
608
+ else
609
+ ok "Dossier profiles/ trouvé"
610
+ fi
611
+
612
+ # Lister les profils existants
613
+ PROFILE_COUNT=0
614
+ if [ -d "$PROFILES_DIR" ]; then
615
+ PROFILE_COUNT=$(find "$PROFILES_DIR" -mindepth 1 -maxdepth 1 -type d 2>/dev/null | wc -l | tr -d ' ')
616
+ fi
617
+
618
+ if [ "$PROFILE_COUNT" -eq 0 ]; then
619
+ warn "Aucun profil agent dans ~/.overmind/hermes/profiles/"
620
+ log "Créez un agent avec: overmind create-agent --name <name> --prompt '...' --runner hermes"
621
+ else
622
+ log "Audit de $PROFILE_COUNT profil(s)..."
623
+ echo
624
+
625
+ # Pour chaque profil, vérifier les fichiers requis
626
+ for profile_path in "$PROFILES_DIR"/*/; do
627
+ [ -d "$profile_path" ] || continue
628
+ pname=$(basename "$profile_path")
629
+ echo -e " ${C}▸ ${pname}${N}"
630
+
631
+ # Fichiers requis (v3.1)
632
+ PROFILE_OK=true
633
+
634
+ # config.yaml (OBLIGATOIRE)
635
+ if [ -f "${profile_path}config.yaml" ]; then
636
+ ok "${pname}/config.yaml"
637
+ else
638
+ fail "${pname}/config.yaml MANQUANT"
639
+ PROFILE_OK=false
640
+ fi
641
+
642
+ # SOUL.md (prompt système)
643
+ if [ -f "${profile_path}SOUL.md" ]; then
644
+ SOUL_SIZE=$(wc -c < "${profile_path}SOUL.md" 2>/dev/null | tr -d ' ')
645
+ if [ "$SOUL_SIZE" -lt 50 ]; then
646
+ track_warn "${pname}/SOUL.md trop petit (${SOUL_SIZE} bytes)"
647
+ else
648
+ ok "${pname}/SOUL.md (${SOUL_SIZE} bytes)"
649
+ fi
650
+ else
651
+ track_warn "${pname}/SOUL.md MANQUANT — l'agent n'a pas de prompt système"
652
+ fi
653
+
654
+ # .env (secrets du profil)
655
+ if [ -f "${profile_path}.env" ]; then
656
+ ok "${pname}/.env"
657
+ else
658
+ track_warn "${pname}/.env MANQUANT — clés LLM manquantes"
659
+ fi
660
+
661
+ # profile.yaml (kanban — OBLIGATOIRE v3.1)
662
+ if [ -f "${profile_path}profile.yaml" ]; then
663
+ ok "${pname}/profile.yaml"
664
+ else
665
+ track_warn "${pname}/profile.yaml MANQUANT — kanban router sera aveugle"
666
+ fi
667
+
668
+ # workspace.yaml
669
+ if [ -f "${profile_path}workspace.yaml" ]; then
670
+ ok "${pname}/workspace.yaml"
671
+ else
672
+ track_warn "${pname}/workspace.yaml MANQUANT — workspace kind inconnu"
673
+ fi
674
+
675
+ # state.db (sessions)
676
+ if [ -f "${profile_path}state.db" ]; then
677
+ ok "${pname}/state.db (sessions)"
678
+ else
679
+ log "${D} ${pname}/state.db non créé (sera créé au premier run)${N}"
680
+ fi
681
+
682
+ # .mcp.json (MCP servers override)
683
+ if [ -f "${profile_path}.mcp.json" ]; then
684
+ ok "${pname}/.mcp.json (MCP override)"
685
+ else
686
+ log "${D} ${pname}/.mcp.json absent (utilisera le global)${N}"
687
+ fi
688
+
689
+ # skills/ (optionnel)
690
+ if [ -d "${profile_path}skills" ]; then
691
+ SKILL_COUNT=$(find "${profile_path}skills" -name "SKILL.md" 2>/dev/null | wc -l | tr -d ' ')
692
+ if [ "$SKILL_COUNT" -gt 0 ]; then
693
+ ok "${pname}/skills/ (${SKILL_COUNT} skill(s))"
694
+ fi
695
+ fi
696
+
697
+ # memories/ (optionnel)
698
+ if [ -f "${profile_path}memories/MEMORY.md" ]; then
699
+ ok "${pname}/memories/MEMORY.md"
700
+ fi
701
+
702
+ # auth.json (cache credentials — vérifier pas stale)
703
+ if [ -f "${profile_path}auth.json" ]; then
704
+ AUTH_AGE=$(($(date +%s) - $(stat -f %m "${profile_path}auth.json" 2>/dev/null || stat -c %Y "${profile_path}auth.json" 2>/dev/null || echo 0)))
705
+ if [ "$AUTH_AGE" -gt 604800 ]; then
706
+ track_warn "${pname}/auth.json stale (${AUTH_AGE}s — >7j). Peut causer des 401/429."
707
+ else
708
+ ok "${pname}/auth.json (récent)"
709
+ fi
710
+ fi
711
+
712
+ echo
713
+ done
714
+ fi
715
+
716
+ # Vérifier la structure globale ~/.overmind/
717
+ echo -e " ${C}Structure globale:${N}"
718
+ for check_dir in "bridge" "logs" "hermes/profiles" "hermes/distributions"; do
719
+ if [ -d "$OM_DIR/$check_dir" ]; then
720
+ ok "~/.overmind/${check_dir}/"
721
+ else
722
+ track_warn "~/.overmind/${check_dir}/ MANQUANT"
723
+ mkdir -p "$OM_DIR/$check_dir" 2>/dev/null || true
724
+ fi
725
+ done
726
+
727
+ # Vérifier les symlinks cassés (runs/, agents/ legacy)
728
+ for legacy_link in "hermes/runs" "hermes/agents" "hermes/sessions"; do
729
+ if [ -L "$OM_DIR/$legacy_link" ]; then
730
+ if [ ! -e "$OM_DIR/$legacy_link" ]; then
731
+ track_warn "Symlink cassé: ~/.overmind/${legacy_link} → suppression"
732
+ rm -f "$OM_DIR/$legacy_link" 2>/dev/null || true
733
+ else
734
+ ok "Symlink legacy: ~/.overmind/${legacy_link} → OK"
735
+ fi
736
+ fi
737
+ done
738
+
739
+ # Vérifier bridge/agents.json (sessions runtime)
740
+ if [ -f "$OM_DIR/bridge/agents.json" ]; then
741
+ SESSION_COUNT=$(grep -c '"id"' "$OM_DIR/bridge/agents.json" 2>/dev/null || echo 0)
742
+ ok "bridge/agents.json (${SESSION_COUNT} session(s))"
743
+ else
744
+ log "${D}bridge/agents.json absent (créé au premier run)${N}"
745
+ fi
746
+
747
+ # Vérifier .mcp.json global
748
+ if [ -f "$OM_DIR/.mcp.json" ]; then
749
+ MCP_SERVERS=$(grep -c '"transport"' "$OM_DIR/.mcp.json" 2>/dev/null || echo 0)
750
+ ok ".mcp.json global (${MCP_SERVERS} serveur(s) MCP)"
751
+ else
752
+ track_warn ".mcp.json global MANQUANT"
753
+ fi
754
+
755
+ ok "Audit arborescence terminé"
756
+
757
+ # ================================================================
758
+ # STEP 11/11 — Validation finale
523
759
  # ================================================================
524
760
  step "Validation finale"
525
761
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "overmind-mcp",
3
- "version": "3.2.4",
3
+ "version": "3.2.5",
4
4
  "description": "Orchestrateur universel agents IA multi-modeles via MCP. Inclut le protocole 'Custom-Nickname' pour identifier vos agents avec des surnoms originaux (The Chaos Prophet, Shadow Sniper, etc.), l'isolation mémoire (Private Memory Context) et le support pour QwenCli et Nous Hermes. Installation automatique des dépendances Docker (PostgreSQL, pgvector) inclus.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",