4.4 KiB
4.4 KiB
Commande Shell ! - Liste complète des modifications
📁 Nouveaux fichiers créés
Code source
-
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
-
packages/ext-claudecode/src/shell-commands.test.ts(83 lignes)- 11 tests unitaires (2 suites)
- Coverage : détection, expansion, erreurs, env
Documentation
-
packages/ext-claudecode/SHELL_COMMANDS.md(3422 octets)- Guide utilisateur complet
- Syntaxe, exemples, cas d'usage
- Permissions et limitations
-
.claude/commands/sysinfo.md(440 octets)- Exemple de commande utilisant
! - Démo fonctionnelle
- Exemple de commande utilisant
-
CHANGELOG_SHELL_COMMANDS.md(3589 octets)- Historique détaillé de l'implémentation
- Impact API, tests, notes techniques
-
IMPLEMENTATION_SUMMARY.md(3592 octets)- Résumé exécutif
- Statut, fonctionnalités, exemples
📝 Fichiers modifiés
Core
packages/core/src/types.ts- Ligne 100 :
prompt(args: string): string | Promise<string>; - Breaking change mineur pour support async
- Ligne 100 :
CLI
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)
- Import : ajout de
Extension ClaudeCode
-
packages/ext-claudecode/src/index.ts- Export des utilitaires shell :
expandShellCommands, findShellCommands, executeShellCommand
- Export des utilitaires shell :
-
packages/ext-claudecode/src/commands.ts- Import :
expandShellCommands - Nouvelle fonction :
renderCommandAsync()(lignes 39-50) loadCommands(): signature avec options, appel async (lignes 54-86)
- Import :
-
packages/ext-claudecode/src/mode.ts- Ligne 41 :
loadCommands(dirs, { cwd: ctx.cwd, env: {} })
- Ligne 41 :
Tests
packages/ext-claudecode/src/lot2.test.ts- Ligne 121 :
await review?.prompt("a.ts")(async)
- Ligne 121 :
Documentation racine
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
!commandedans un prompt - Commandes : Inclure
!...`` dans.claude/commands/*.md
Pour les développeurs
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
- Code écrit et documenté
- Tests unitaires (11/11 passing)
- Tests d'intégration mis à jour
- TypeCheck OK
- Build OK
- Documentation utilisateur complète
- Exemple fonctionnel créé
- README mis à jour
- Changelog rédigé
- Pas de régression (84/84 tests)
🚀 Déploiement
Prêt pour :
- ✅ Commit
- ✅ Merge
- ✅ Release
- ✅ Production
Commande de test rapide :
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)