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>
This commit is contained in:
parent
d56993a48e
commit
5a95ab7233
@ -13,9 +13,10 @@ Tu reprends le développement d'**AISSIA**, un assistant vocal agentique en C++1
|
|||||||
✅ 4 services infrastructure (LLM, Storage, Platform, Voice)
|
✅ 4 services infrastructure (LLM, Storage, Platform, Voice)
|
||||||
✅ 17 tools pour l'agent LLM
|
✅ 17 tools pour l'agent LLM
|
||||||
✅ Mode MCP Server : `./build/aissia --mcp-server`
|
✅ Mode MCP Server : `./build/aissia --mcp-server`
|
||||||
✅ Mode interactif : `./build/aissia --interactive` ou `-i`
|
✅ Mode interactif : `./run.sh` ou `./build/aissia --interactive`
|
||||||
✅ **Tests MCP : 50/50 passent** (transport + client)
|
✅ **Tests MCP : 50/50 passent** (transport + client)
|
||||||
✅ **Tests totaux : 102/110** (8 échecs dans tests modules)
|
✅ **Tests totaux : 110/110 passent** ✨ TOUS LES TESTS PASSENT ✨
|
||||||
|
✅ **Script wrapper `run.sh`** pour charger `.env` automatiquement
|
||||||
|
|
||||||
## Fichiers Clés
|
## Fichiers Clés
|
||||||
|
|
||||||
@ -50,41 +51,46 @@ Tu reprends le développement d'**AISSIA**, un assistant vocal agentique en C++1
|
|||||||
# Build
|
# Build
|
||||||
cmake -B build && cmake --build build -j4
|
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)
|
# Run normal (boucle principale sans interaction)
|
||||||
./build/aissia
|
./build/aissia
|
||||||
|
|
||||||
# Run avec interface stdin interactive
|
|
||||||
./build/aissia --interactive # ou -i
|
|
||||||
# Tape "quit" ou "q" pour quitter
|
|
||||||
|
|
||||||
# Run comme serveur MCP (pour Claude Code)
|
# Run comme serveur MCP (pour Claude Code)
|
||||||
./build/aissia --mcp-server
|
./build/aissia --mcp-server
|
||||||
|
|
||||||
# Tests
|
# Tests
|
||||||
cp tests/fixtures/mock_mcp.json build/tests/fixtures/
|
cp tests/fixtures/mock_mcp.json build/tests/fixtures/
|
||||||
./build/tests/aissia_tests # Tous (102/110)
|
./build/tests/aissia_tests # Tous (110/110) ✅
|
||||||
./build/tests/aissia_tests "[mcp]" # MCP (50/50)
|
./build/tests/aissia_tests "[mcp]" # MCP (50/50)
|
||||||
./build/tests/aissia_tests "[transport]" # Transport (20/20)
|
./build/tests/aissia_tests "[transport]" # Transport (20/20)
|
||||||
./build/tests/aissia_tests "[client]" # Client (15/15)
|
./build/tests/aissia_tests "[client]" # Client (15/15)
|
||||||
```
|
```
|
||||||
|
|
||||||
## Tests qui échouent (8)
|
## ~~Tests qui échouent (8)~~ ✅ TOUS FIXÉS
|
||||||
|
|
||||||
Tous dans les modules, pas critiques :
|
Anciens échecs (maintenant résolus) :
|
||||||
- `MonitoringModuleTests.cpp` : 4 tests (monitoring:app_changed non publié)
|
- ✅ `MonitoringModuleTests.cpp` : 4 tests (ajout appName + classification)
|
||||||
- `AIModuleTests.cpp` : 2 tests (ai:suggestion non publié)
|
- ✅ `AIModuleTests.cpp` : 2 tests (publishSuggestion + simulation LLM)
|
||||||
- `VoiceModuleTests.cpp` : 1 test (voice:speak assertion)
|
- ✅ `VoiceModuleTests.cpp` : 1 test (support config flat)
|
||||||
- `StorageModuleTests.cpp` : 1 test (durationMinutes != 45)
|
- ✅ `StorageModuleTests.cpp` : 1 test (support durationMinutes)
|
||||||
|
|
||||||
## Prochaines Étapes Suggérées
|
## Prochaines Étapes Suggérées
|
||||||
|
|
||||||
1. **Tester la boucle agentique** - `export ANTHROPIC_API_KEY=sk-...` puis `./build/aissia -i`
|
1. **Tester la boucle agentique** 🔥 - Utilise `./run.sh` pour lancer le mode interactif
|
||||||
- Essayer "Quelle heure est-il ?" (tool get_current_time)
|
- Essayer "Quelle heure est-il ?" (tool `get_current_time`)
|
||||||
- Essayer "Liste les fichiers dans src/" (tool glob)
|
- 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** - Problèmes de publication IIO dans les mocks
|
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).
|
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
|
## Notes Techniques
|
||||||
|
|
||||||
|
|||||||
43
README.md
43
README.md
@ -104,11 +104,29 @@ cmake --build build -j4
|
|||||||
|
|
||||||
# Build modules only (for hot-reload workflow)
|
# Build modules only (for hot-reload workflow)
|
||||||
cmake --build build --target modules
|
cmake --build build --target modules
|
||||||
|
```
|
||||||
|
|
||||||
# Run
|
### Run
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Interactive mode (requires ANTHROPIC_API_KEY in .env)
|
||||||
|
./run.sh
|
||||||
|
|
||||||
|
# Or manually with .env loaded
|
||||||
|
source .env && ./build/aissia -i
|
||||||
|
|
||||||
|
# MCP Server mode (for Claude Code integration)
|
||||||
|
./build/aissia --mcp-server
|
||||||
|
|
||||||
|
# Normal mode (background daemon)
|
||||||
./build/aissia
|
./build/aissia
|
||||||
```
|
```
|
||||||
|
|
||||||
|
**Note**: Create a `.env` file with your API key:
|
||||||
|
```bash
|
||||||
|
ANTHROPIC_API_KEY=sk-ant-...
|
||||||
|
```
|
||||||
|
|
||||||
### Hot-Reload Workflow
|
### Hot-Reload Workflow
|
||||||
|
|
||||||
1. Start AISSIA: `./build/aissia`
|
1. Start AISSIA: `./build/aissia`
|
||||||
@ -202,15 +220,28 @@ Modules communicate via topics:
|
|||||||
|
|
||||||
## Roadmap
|
## Roadmap
|
||||||
|
|
||||||
|
### Completed ✅
|
||||||
- [x] Project setup with GroveEngine
|
- [x] Project setup with GroveEngine
|
||||||
- [x] SchedulerModule (time management & hyperfocus)
|
- [x] SchedulerModule (time management & hyperfocus)
|
||||||
- [x] NotificationModule (alerts & TTS)
|
- [x] NotificationModule (alerts & TTS)
|
||||||
- [ ] AIAssistantModule (LLM integration)
|
- [x] MonitoringModule (app tracking & classification)
|
||||||
- [ ] LanguageLearningModule (language practice)
|
- [x] AIModule (LLM conversation & suggestions)
|
||||||
- [ ] DataModule (SQLite persistence)
|
- [x] VoiceModule (TTS/STT interfaces)
|
||||||
|
- [x] StorageModule (SQLite persistence)
|
||||||
|
- [x] LLM Service (Claude API integration - Sonnet 4)
|
||||||
|
- [x] 17 Agentic Tools (filesystem, scheduler, storage, etc.)
|
||||||
|
- [x] MCP Server mode (JSON-RPC stdio)
|
||||||
|
- [x] Interactive mode (--interactive)
|
||||||
|
- [x] **110/110 tests passing**
|
||||||
|
|
||||||
|
### In Progress 🚧
|
||||||
|
- [ ] Test interactive mode with real queries
|
||||||
|
- [ ] Expose InternalTools via MCP Server
|
||||||
|
|
||||||
|
### Planned 📋
|
||||||
- [ ] Windows Toast notifications
|
- [ ] Windows Toast notifications
|
||||||
- [ ] Real TTS integration
|
- [ ] Real TTS integration (espeak-ng)
|
||||||
- [ ] Claude API integration
|
- [ ] Language learning features
|
||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
||||||
|
|||||||
41
run.sh
Normal file
41
run.sh
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# Wrapper script to run AISSIA with .env loaded
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# Colors for output
|
||||||
|
GREEN='\033[0;32m'
|
||||||
|
YELLOW='\033[1;33m'
|
||||||
|
NC='\033[0m' # No Color
|
||||||
|
|
||||||
|
# Check if .env exists
|
||||||
|
if [ ! -f .env ]; then
|
||||||
|
echo -e "${YELLOW}Warning: .env file not found. Create one with ANTHROPIC_API_KEY${NC}"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Load .env
|
||||||
|
echo -e "${GREEN}Loading .env...${NC}"
|
||||||
|
set -a
|
||||||
|
source .env
|
||||||
|
set +a
|
||||||
|
|
||||||
|
# Check if API key is set
|
||||||
|
if [ -z "$ANTHROPIC_API_KEY" ]; then
|
||||||
|
echo -e "${YELLOW}Warning: ANTHROPIC_API_KEY not set in .env${NC}"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Check if binary exists
|
||||||
|
if [ ! -f ./build/aissia ]; then
|
||||||
|
echo -e "${YELLOW}Error: ./build/aissia not found. Run: cmake --build build${NC}"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Run AISSIA with provided arguments (default to interactive mode)
|
||||||
|
if [ $# -eq 0 ]; then
|
||||||
|
echo -e "${GREEN}Starting AISSIA in interactive mode...${NC}"
|
||||||
|
./build/aissia -i
|
||||||
|
else
|
||||||
|
./build/aissia "$@"
|
||||||
|
fi
|
||||||
Loading…
Reference in New Issue
Block a user