MagicCode/FILES_CHANGES.md

158 lines
4.4 KiB
Markdown
Raw Normal View History

2026-10-11 22:41:17 +00:00
# Commande Shell `!` - Liste complète des modifications
## 📁 Nouveaux fichiers créés
### Code source
1. **`packages/ext-claudecode/src/shell-commands.ts`** (118 lignes)
- Logique principale d'exécution des commandes shell
- 3 fonctions exportées : `findShellCommands`, `executeShellCommand`, `expandShellCommands`
- Gestion timeout, buffer, erreurs
2. **`packages/ext-claudecode/src/shell-commands.test.ts`** (83 lignes)
- 11 tests unitaires (2 suites)
- Coverage : détection, expansion, erreurs, env
### Documentation
3. **`packages/ext-claudecode/SHELL_COMMANDS.md`** (3422 octets)
- Guide utilisateur complet
- Syntaxe, exemples, cas d'usage
- Permissions et limitations
4. **`.claude/commands/sysinfo.md`** (440 octets)
- Exemple de commande utilisant `!`
- Démo fonctionnelle
5. **`CHANGELOG_SHELL_COMMANDS.md`** (3589 octets)
- Historique détaillé de l'implémentation
- Impact API, tests, notes techniques
6. **`IMPLEMENTATION_SUMMARY.md`** (3592 octets)
- Résumé exécutif
- Statut, fonctionnalités, exemples
## 📝 Fichiers modifiés
### Core
1. **`packages/core/src/types.ts`**
- Ligne 100 : `prompt(args: string): string | Promise<string>;`
- Breaking change mineur pour support async
### CLI
2. **`packages/cli/src/index.ts`**
- Import : ajout de `expandShellCommands, findShellCommands`
- Ligne 20-29 : HELP mis à jour avec mention commandes shell
- Ligne 230-246 : Logique d'expansion des commandes `!` avant envoi au LLM
- Ligne 226 : `await custom.prompt(args)` (async)
### Extension ClaudeCode
3. **`packages/ext-claudecode/src/index.ts`**
- Export des utilitaires shell : `expandShellCommands, findShellCommands, executeShellCommand`
4. **`packages/ext-claudecode/src/commands.ts`**
- Import : `expandShellCommands`
- Nouvelle fonction : `renderCommandAsync()` (lignes 39-50)
- `loadCommands()` : signature avec options, appel async (lignes 54-86)
5. **`packages/ext-claudecode/src/mode.ts`**
- Ligne 41 : `loadCommands(dirs, { cwd: ctx.cwd, env: {} })`
### Tests
6. **`packages/ext-claudecode/src/lot2.test.ts`**
- Ligne 121 : `await review?.prompt("a.ts")` (async)
### Documentation racine
7. **`README.md`**
- Section "Extension ClaudeCode" enrichie (lignes 95-108)
- Sous-section "Commandes shell `!`" ajoutée
- Note de statut mise à jour (ligne 124)
## 📊 Statistiques
### Code
- **Nouveau code** : ~350 lignes
- **Tests** : 11 tests (100% passing)
- **Fichiers TS créés** : 2
- **Fichiers TS modifiés** : 6
### Documentation
- **Nouveaux docs** : 4 fichiers markdown
- **Docs modifiés** : 1 (README)
- **Total documentation** : ~11 000 caractères
### Qualité
- ✅ TypeCheck : 0 erreur
- ✅ Tests : 84/84 passing
- ✅ Build : Success
- ✅ Linting : Conforme
## 🔄 Workflow d'utilisation
### 1. Prompt direct
```
Entrée utilisateur → Détection `!` → Exécution shell → Expansion → LLM
```
### 2. Commande markdown
```
/commande → Lecture .md → Expansion args ($1...) → Expansion shell (!) → LLM
```
## 🎯 Points d'entrée
### Pour les utilisateurs
- **CLI** : Taper directement `!commande` dans un prompt
- **Commandes** : Inclure `!`...`` dans `.claude/commands/*.md`
### Pour les développeurs
```typescript
import { expandShellCommands } from '@magiccode/ext-claudecode';
const { expanded, executed } = await expandShellCommands(
"User: !whoami",
{ cwd: process.cwd() }
);
```
## 🔐 Sécurité
- ⚠️ Exécution dans le shell système (pas de sandbox)
- ✅ Timeout 30s par commande
- ✅ Buffer limité 10 MB
- ✅ Respect des variables d'environnement settings.json
- ✅ Gestion d'erreurs avec messages clairs
- ℹ️ Les permissions Bash existantes s'appliquent
## 📋 Checklist de validation
- [x] Code écrit et documenté
- [x] Tests unitaires (11/11 passing)
- [x] Tests d'intégration mis à jour
- [x] TypeCheck OK
- [x] Build OK
- [x] Documentation utilisateur complète
- [x] Exemple fonctionnel créé
- [x] README mis à jour
- [x] Changelog rédigé
- [x] Pas de régression (84/84 tests)
## 🚀 Déploiement
Prêt pour :
- ✅ Commit
- ✅ Merge
- ✅ Release
- ✅ Production
Commande de test rapide :
```bash
cd magiccode
pnpm typecheck && pnpm test && pnpm build
```
## 📞 Support
Documentation complète disponible dans :
- `packages/ext-claudecode/SHELL_COMMANDS.md` (guide utilisateur)
- `IMPLEMENTATION_SUMMARY.md` (vue technique)
- `CHANGELOG_SHELL_COMMANDS.md` (historique)