diff --git a/brain-engine/server.py b/brain-engine/server.py index 270b630..0d37880 100644 --- a/brain-engine/server.py +++ b/brain-engine/server.py @@ -67,7 +67,7 @@ from pathlib import Path import subprocess import asyncio from fastapi import FastAPI, Header, HTTPException, Query, Body, WebSocket, Request -from fastapi.responses import JSONResponse +from fastapi.responses import JSONResponse, RedirectResponse from fastapi.websockets import WebSocketDisconnect try: @@ -268,7 +268,13 @@ def health(): import sqlite3 from search import DB_PATH conn = sqlite3.connect(DB_PATH) - count = conn.execute("SELECT COUNT(*) FROM embeddings WHERE indexed=1").fetchone()[0] + # embeddings table is created by embed.py (requires Ollama) — optional + has_embeddings = conn.execute( + "SELECT name FROM sqlite_master WHERE type='table' AND name='embeddings'" + ).fetchone() + count = 0 + if has_embeddings: + count = conn.execute("SELECT COUNT(*) FROM embeddings WHERE indexed=1").fetchone()[0] conn.close() return {'status': 'ok', 'indexed': count, 'uptime': uptime} except Exception as e: @@ -360,6 +366,12 @@ def brain_compose_tiers(): # ── Docs live — sert docs/*.md depuis le filesystem ──────────────────────────── +@app.get('/docs/view') +def docs_redirect(): + """Redirige /docs/view vers le dashboard docs (pour les navigateurs).""" + return RedirectResponse(url='/ui/docs', status_code=302) + + @app.get('/docs') def docs_list(): """Liste les fichiers docs/*.md avec métadonnées (frontmatter group/label).""" diff --git a/brain-engine/start.sh b/brain-engine/start.sh index 350ad9d..fd75e77 100755 --- a/brain-engine/start.sh +++ b/brain-engine/start.sh @@ -61,7 +61,21 @@ else echo " Le serveur démarre quand même (BSI, docs, endpoints basiques)." fi -# 5. Vérifier si déjà en cours +# 5. Vérifier brain-ui (dashboard + docs) +UI_DIST="$BRAIN_ROOT/brain-ui/dist" +if [ ! -d "$UI_DIST" ]; then + echo "" + echo "⚠️ brain-ui pas buildé — le dashboard ne sera pas disponible." + if command -v node &>/dev/null && command -v npm &>/dev/null; then + echo "→ Build automatique de brain-ui..." + bash "$BRAIN_ROOT/brain-ui/build.sh" + else + echo " Node.js/npm requis pour le dashboard." + echo " Installe Node.js 18+ puis lance : bash brain-ui/build.sh" + fi +fi + +# 6. Vérifier si déjà en cours (re-check après build éventuel) PIDFILE="$BRAIN_ROOT/.brain-engine.pid" if [ -f "$PIDFILE" ] && kill -0 "$(cat "$PIDFILE")" 2>/dev/null; then echo "" @@ -71,13 +85,16 @@ if [ -f "$PIDFILE" ] && kill -0 "$(cat "$PIDFILE")" 2>/dev/null; then exit 0 fi -# 6. Lancer le serveur +# 7. Lancer le serveur PORT="${BRAIN_PORT:-7700}" LOGFILE="$BRAIN_ROOT/brain-engine/brain-engine.log" echo "" echo "=== Lancement brain-engine sur port $PORT ===" echo " Health : http://localhost:$PORT/health" -echo " Dashboard : http://localhost:$PORT/ui/" +if [ -d "$UI_DIST" ]; then + echo " Dashboard : http://localhost:$PORT/ui/" +fi +echo " Docs : http://localhost:$PORT/ui/docs" echo " Agents : http://localhost:$PORT/agents" echo "" diff --git a/brain-ui/public/docs/README.md b/brain-ui/public/docs/README.md deleted file mode 120000 index d5e3780..0000000 --- a/brain-ui/public/docs/README.md +++ /dev/null @@ -1 +0,0 @@ -../../../docs/README.md \ No newline at end of file diff --git a/brain-ui/public/docs/agents-brain.md b/brain-ui/public/docs/agents-brain.md deleted file mode 120000 index 4bb3ec6..0000000 --- a/brain-ui/public/docs/agents-brain.md +++ /dev/null @@ -1 +0,0 @@ -../../../docs/agents-brain.md \ No newline at end of file diff --git a/brain-ui/public/docs/agents-code.md b/brain-ui/public/docs/agents-code.md deleted file mode 120000 index 9abd389..0000000 --- a/brain-ui/public/docs/agents-code.md +++ /dev/null @@ -1 +0,0 @@ -../../../docs/agents-code.md \ No newline at end of file diff --git a/brain-ui/public/docs/agents-infra.md b/brain-ui/public/docs/agents-infra.md deleted file mode 120000 index 3377d26..0000000 --- a/brain-ui/public/docs/agents-infra.md +++ /dev/null @@ -1 +0,0 @@ -../../../docs/agents-infra.md \ No newline at end of file diff --git a/brain-ui/public/docs/agents.md b/brain-ui/public/docs/agents.md deleted file mode 120000 index 2aa1a3c..0000000 --- a/brain-ui/public/docs/agents.md +++ /dev/null @@ -1 +0,0 @@ -../../../docs/agents.md \ No newline at end of file diff --git a/brain-ui/public/docs/architecture.md b/brain-ui/public/docs/architecture.md deleted file mode 120000 index 12790e3..0000000 --- a/brain-ui/public/docs/architecture.md +++ /dev/null @@ -1 +0,0 @@ -../../../docs/architecture.md \ No newline at end of file diff --git a/brain-ui/public/docs/brain-engine-guide.md b/brain-ui/public/docs/brain-engine-guide.md deleted file mode 120000 index 6b67b2e..0000000 --- a/brain-ui/public/docs/brain-engine-guide.md +++ /dev/null @@ -1 +0,0 @@ -../../../docs/brain-engine-guide.md \ No newline at end of file diff --git a/brain-ui/public/docs/getting-started.md b/brain-ui/public/docs/getting-started.md deleted file mode 120000 index fc2f15d..0000000 --- a/brain-ui/public/docs/getting-started.md +++ /dev/null @@ -1 +0,0 @@ -../../../docs/getting-started.md \ No newline at end of file diff --git a/brain-ui/public/docs/satellites.md b/brain-ui/public/docs/satellites.md deleted file mode 120000 index 1d22c00..0000000 --- a/brain-ui/public/docs/satellites.md +++ /dev/null @@ -1 +0,0 @@ -../../../docs/satellites.md \ No newline at end of file diff --git a/brain-ui/public/docs/sessions.md b/brain-ui/public/docs/sessions.md deleted file mode 120000 index 52b5cf5..0000000 --- a/brain-ui/public/docs/sessions.md +++ /dev/null @@ -1 +0,0 @@ -../../../docs/sessions.md \ No newline at end of file diff --git a/brain-ui/public/docs/vue-featured.md b/brain-ui/public/docs/vue-featured.md deleted file mode 120000 index c70318c..0000000 --- a/brain-ui/public/docs/vue-featured.md +++ /dev/null @@ -1 +0,0 @@ -../../../docs/vue-featured.md \ No newline at end of file diff --git a/brain-ui/public/docs/vue-free.md b/brain-ui/public/docs/vue-free.md deleted file mode 120000 index f4b3581..0000000 --- a/brain-ui/public/docs/vue-free.md +++ /dev/null @@ -1 +0,0 @@ -../../../docs/vue-free.md \ No newline at end of file diff --git a/brain-ui/public/docs/vue-full.md b/brain-ui/public/docs/vue-full.md deleted file mode 120000 index 79ff3de..0000000 --- a/brain-ui/public/docs/vue-full.md +++ /dev/null @@ -1 +0,0 @@ -../../../docs/vue-full.md \ No newline at end of file diff --git a/brain-ui/public/docs/vue-pro.md b/brain-ui/public/docs/vue-pro.md deleted file mode 120000 index ce36506..0000000 --- a/brain-ui/public/docs/vue-pro.md +++ /dev/null @@ -1 +0,0 @@ -../../../docs/vue-pro.md \ No newline at end of file diff --git a/brain-ui/public/docs/vue-tiers.md b/brain-ui/public/docs/vue-tiers.md deleted file mode 120000 index 85d6266..0000000 --- a/brain-ui/public/docs/vue-tiers.md +++ /dev/null @@ -1 +0,0 @@ -../../../docs/vue-tiers.md \ No newline at end of file diff --git a/brain-ui/public/docs/workflows.md b/brain-ui/public/docs/workflows.md deleted file mode 120000 index 7cfc31b..0000000 --- a/brain-ui/public/docs/workflows.md +++ /dev/null @@ -1 +0,0 @@ -../../../docs/workflows.md \ No newline at end of file