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.
- package/bin/install-overmind-native.sh +238 -2
- package/package.json +1 -1
|
@@ -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=
|
|
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/
|
|
522
|
+
# STEP 8/10 — Vé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.
|
|
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",
|