smart_ide/docs/features/ia-dev-service.md
Nicolas Cantu d98e6bce60 feat: logs/ for pull-sync and ia_dev; document ia_dev as in-repo module
- Default PULL_SYNC_LOG to logs/git-pull-projects.log; add logs/README and gitignore
- Add services/ia_dev integration README and .env.example
- Replace docs/ia_dev-submodule.md with ia_dev-module.md; update ecosystem and README links
- Point ia_dev submodule to commit with smart_ide_logs.sh
2026-04-03 17:50:49 +02:00

58 lines
3.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Service `ia-dev-gateway` — exécution agents et déploiements
## Objectif
Remplacer à terme lappel **direct** au répertoire module [`ia_dev`](../ia_dev-module.md) par un **service HTTP** sous [`services/ia-dev-gateway/`](../../services/ia-dev-gateway/) qui :
- Pointe vers un **fork** de [4nk/ia_dev](https://git.4nkweb.com/4nk/ia_dev.git) (même historique Git, gouvernance dans le monorepo `smart_ide`).
- **Nimplémente pas** la logique métier des projets : il **oriente** les jobs vers `projects/<id>/`, `deploy/`, scripts existants, avec policy et journalisation.
- Expose un **registre dagents** et des **runs** pour Lapce, le front web et lorchestrateur.
## Périmètre
| Inclus | Exclus |
|--------|--------|
| Auth service-to-service (Bearer) | Duplication des recettes métier dans `smart_ide` |
| Soumission de jobs (deploy, agent, script) | Exécution hors sandbox / OpenShell si policy impose un runtime |
| Stream dévénements (SSE ou WebSocket) | UI complète (reste Lapce / front) |
| Lecture du registre agents depuis le checkout `ia_dev` | Modification des secrets des projets cibles |
## Cohabitation avec le sous-module
Aujourdhui `./ia_dev` reste le **checkout canonique** sur lhôte. Le binaire `ia-dev-gateway` reçoit `IA_DEV_ROOT` (défaut : répertoire parent du service ou chemin absolu vers `./ia_dev`).
**Trajectoire** : module `ia_dev` dans le monorepo jusquà ce quun fork soit **vendored** ou **cloné par le service** au déploiement ; documentation de migration dans [ia_dev-module.md](../ia_dev-module.md).
## API (spécification)
Référence détaillée : [API/ia-dev-gateway.md](../API/ia-dev-gateway.md).
Résumé :
- `GET /health` — liveness.
- `GET /v1/agents` — liste des agents enregistrés (métadonnées dérivées du registre `ia_dev`).
- `GET /v1/agents/{id}` — descripteur stable (rôle, droits, commandes déclenchantes).
- `POST /v1/runs` — corps JSON : `{ "agentId", "projectId", "intent", "payload"?, "env"? }` ; réponse : `{ "runId", "status" }`.
- `GET /v1/runs/{runId}` — statut et sortie partielle.
- `GET /v1/runs/{runId}/events`**SSE** (ou upgrade WebSocket selon implémentation) : flux `started`, `tool_selected`, `completed`, `failed`, etc. (aligné [system-architecture.md](../system-architecture.md)).
Les codes derreur **401/403/404/409/422** sont explicites ; pas de fallback silencieux.
## Variables denvironnement (cible)
| Variable | Obligatoire | Description |
|----------|-------------|-------------|
| `IA_DEV_GATEWAY_TOKEN` | oui | Bearer attendu des clients autorisés |
| `IA_DEV_GATEWAY_HOST` | non | Bind (défaut `127.0.0.1`) |
| `IA_DEV_GATEWAY_PORT` | non | Port (défaut `37144`) |
| `IA_DEV_ROOT` | non | Chemin racine du checkout `ia_dev` (fork) |
## Implémentation
Le répertoire [`services/ia-dev-gateway/`](../../services/ia-dev-gateway/) contient un **serveur Node/TypeScript** (`npm run build && npm start`) : scan des agents `.md`, runs en mémoire avec statut stub `completed`, flux SSE minimal. Brancher le **runner** réel (`ia_dev` scripts) sur `POST /v1/runs` reste à faire. Lorchestrateur [orchestrator-api.md](./orchestrator-api.md) peut cibler ce service pour `agent.run`.
## Voir aussi
- [platform-target.md](../platform-target.md) — trois environnements
- [system-architecture.md](../system-architecture.md) — agent gateway, policy