Status : IMPLEMENTEE
Frontend (index.tsx) :
aiConversation qui accumule les echanges :[
{ role: 'user', prompt: 'taille des disques' },
{ role: 'ai', command: 'wmic logicaldisk get size', tested: true, exit_code: 0, stdout: '...' },
{ role: 'user', prompt: 'en Mo plutot' }
]
suggestCommandBackend (ai.ts - buildSystemPrompt) :
CONVERSATION:
- User: "taille des disques"
- AI: wmic logicaldisk get size (OK, exit 0)
Output: ...
- User: "en Mo plutot"
→ Adapte la commande precedente, ne repars pas de zero
API (index.ts) :
conversation a l'endpoint /api/ai/suggest-commandFichiers modifies :
connectors-api/src/index.ts : ajouter conversation au body schemaconnectors-api/src/services/ai.ts : suggestCommand() + buildSystemPrompt()connectors-front/src/lib/api.ts : ajouter conversation au typeconnectors-front/src/routes/connectors/instance/[id]/index.tsx : signal aiConversation, alimentationActuellement :
[Suggerer] → commande → [Tester] [Creer l'action] [Ignorer]
Propose :
[Suggerer] → commande → [Tester] [Ignorer]
↓
resultat test
↓
[Modifier le prompt] [Sauvegarder comme action] [Corriger (si echec)]
Fichiers modifies :
connectors-front/src/routes/connectors/instance/[id]/index.tsx : reorganiser les boutons AIPermettre de definir des {{variables}} dans une commande, qui deviennent des champs a remplir avant execution.
Exemple :
df -BM {{mount_point}} | tail -1Schema action (config JSONB) :
{
"type": "command",
"command": "df -BM {{mount_point}} | tail -1",
"output_parser": "raw",
"inputs": [
{ "name": "mount_point", "label": "Point de montage", "default": "/", "required": true }
]
}
Frontend (index.tsx ou composant dedie) :
inputs, afficher un formulaire dans le modal{{variables}} avant d'envoyer a l'API{{...}})Backend :
executeAction : remplacer les {{variables}} dans la commande avant exec SSHLors de la sauvegarde IA :
/dev/sda, proposer {{device}} avec default /dev/sdaFichiers modifies :
connectors-api/src/services/actions.ts : substitution variables a l'executionconnectors-api/src/index.ts : accepter inputs dans le body executeconnectors-front/src/routes/connectors/instance/[id]/index.tsx : formulaire inputs dans modal execconnectors-front/src/routes/actions/[id]/index.tsx ou edit/ : edition des inputsinputs va dans le JSONB config existantinputs