40 lines
1.6 KiB
Markdown
40 lines
1.6 KiB
Markdown
---
|
||
issueRef: "#125"
|
||
version: 4
|
||
updatedBy: {"kind":"agent","agent_id":"a6ced819-b893-4213-b003-9e9dc79b9641"}
|
||
updatedAt: 1785667057177
|
||
---
|
||
## Problème
|
||
Le SDK public permet seulement :
|
||
- d’observer/contrôler des background tasks existantes
|
||
- d’ouvrir un PTY interactif
|
||
|
||
Il manque une API publique pour **démarrer** une commande/outillage externe de façon intégrée à IdeA.
|
||
|
||
## Pourquoi c’est global
|
||
Le besoin est transversal à tous les plugins de développement : build, test, lint, génération, outils CLI, pipelines locaux, simulateurs, wrappers maison.
|
||
|
||
## Ce que ce ticket doit produire
|
||
Une API publique de lancement de commandes/tâches permettant au minimum :
|
||
- exécuter une commande avec `cwd`, args, env
|
||
- choisir un mode tracked/background task plutôt qu’un PTY brut
|
||
- suivre statut, exit code, stdout/stderr
|
||
- annuler / éventuellement relancer
|
||
- corréler le run avec le modèle Work d’IdeA
|
||
|
||
## Contraintes d’architecture
|
||
- Ne pas confondre terminal interactif et task runner.
|
||
- Contrat stable sur environnement, cwd, timeouts éventuels, sortie et erreurs.
|
||
- Le plugin ne doit pas avoir à bricoler une session PTY pour lancer un build.
|
||
|
||
## Non-objectifs
|
||
- Pas de sémantique Android/Gradle/adb.
|
||
- Pas d’orchestration multi-étapes spécifique à une stack.
|
||
|
||
## Dépendances
|
||
- Bloque `#126`.
|
||
|
||
## Critères d’acceptation
|
||
- Un plugin peut lancer une commande externe sans passer par un cast interne ni un PTY interactif.
|
||
- L’exécution remonte un état observable et un résultat terminal clair.
|
||
- Le contrat est documenté côté SDK avec exemple de commande simple. |