aissia/PROMPT_SUCCESSEUR.md
StillHammer 5a95ab7233 docs: Add run.sh wrapper and update documentation
- Add run.sh script to automatically load .env before running
- Update README.md with interactive mode instructions
- Update PROMPT_SUCCESSEUR.md: mark all 110 tests as passing
- Document available run modes (interactive, MCP server, normal)

All tests now passing: 110/110 

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-28 14:22:04 +08:00

4.8 KiB

Prompt Successeur - AISSIA

Contexte

Tu reprends le développement d'AISSIA, un assistant vocal agentique en C++17 basé sur GroveEngine.

Architecture : Services (non hot-reload) + Modules (.so hot-reload) + MCP (client et serveur)

État Actuel

Build OK : cmake -B build && cmake --build build -j4 6 modules hot-reload fonctionnels 4 services infrastructure (LLM, Storage, Platform, Voice) 17 tools pour l'agent LLM Mode MCP Server : ./build/aissia --mcp-server Mode interactif : ./run.sh ou ./build/aissia --interactive Tests MCP : 50/50 passent (transport + client) Tests totaux : 110/110 passent TOUS LES TESTS PASSENT Script wrapper run.sh pour charger .env automatiquement

Fichiers Clés

Fichier Rôle
src/main.cpp Entry point, charge modules, route messages, mode interactif
src/services/LLMService.* Boucle agentique, ToolRegistry, appels Claude
src/shared/mcp/MCPServer.* AISSIA comme serveur MCP (stdio JSON-RPC)
src/shared/mcp/MCPClient.* Consomme serveurs MCP externes
src/shared/mcp/StdioTransport.* Transport stdio pour MCP (spawne process enfant)
src/shared/tools/FileSystemTools.* 6 tools fichiers (read/write/edit/glob/grep)
src/shared/tools/InternalTools.* 11 tools internes (scheduler, voice, storage)

Communication

┌─────────────┐     IIO pub/sub      ┌─────────────┐
│   Modules   │ ◄──────────────────► │  Services   │
│  (.so hot)  │    JsonDataNode      │  (static)   │
└─────────────┘                      └─────────────┘
                                            │
                                     HTTP   │
                                            ▼
                                     ┌─────────────┐
                                     │  Claude API │
                                     └─────────────┘

Commandes

# Build
cmake -B build && cmake --build build -j4

# Run mode interactif (recommandé) - charge .env automatiquement
./run.sh

# Run avec interface stdin interactive (manuel)
source .env && ./build/aissia --interactive   # ou -i
# Tape "quit" ou "q" pour quitter

# Run normal (boucle principale sans interaction)
./build/aissia

# Run comme serveur MCP (pour Claude Code)
./build/aissia --mcp-server

# Tests
cp tests/fixtures/mock_mcp.json build/tests/fixtures/
./build/tests/aissia_tests              # Tous (110/110) ✅
./build/tests/aissia_tests "[mcp]"      # MCP (50/50)
./build/tests/aissia_tests "[transport]"  # Transport (20/20)
./build/tests/aissia_tests "[client]"   # Client (15/15)

Tests qui échouent (8) TOUS FIXÉS

Anciens échecs (maintenant résolus) :

  • MonitoringModuleTests.cpp : 4 tests (ajout appName + classification)
  • AIModuleTests.cpp : 2 tests (publishSuggestion + simulation LLM)
  • VoiceModuleTests.cpp : 1 test (support config flat)
  • StorageModuleTests.cpp : 1 test (support durationMinutes)

Prochaines Étapes Suggérées

  1. Tester la boucle agentique 🔥 - Utilise ./run.sh pour lancer le mode interactif

    • Essayer "Quelle heure est-il ?" (tool get_current_time)
    • Essayer "Liste les fichiers dans src/" (tool glob_files)
    • Essayer "Lis le fichier README.md" (tool read_file)
    • Tester les InternalTools : "Quelle est ma tâche actuelle ?" (tool get_current_task)
  2. Fixer les 8 tests modules FAIT - Tous les 110 tests passent

  3. Exposer InternalTools via MCP Server - Actuellement seuls FileSystem + get_current_time sont exposés. Les InternalTools (scheduler, voice, storage) nécessitent que les modules tournent (IIO). Défi architectural à résoudre.

Notes Techniques

  • API key : ANTHROPIC_API_KEY dans env ou .env
  • WSL : window tracker et TTS utilisent des stubs
  • GroveEngine : symlink vers ../GroveEngine
  • Hot-reload : modifier un .so dans build/modules/ → rechargé automatiquement
  • Tests fixtures : toujours copier mock_mcp.json avant tests client

Changements Récents (cette session)

  1. Fix python → python3 dans configs et tests MCP
  2. Fix StdioTransport :
    • Préserve l'ID de requête fourni par l'utilisateur
    • Détecte les commandes invalides (waitpid après 100ms)
    • Stop non-bloquant (ferme stdout avant join reader)
    • Ignore les messages avec id=null (notifications)
  3. Ajout mode interactif (--interactive) pour tester la boucle LLM