- Add ia_dev submodule (projects/smart_ide on forge 4nk) - Document APIs, orchestrator, gateway, local-office, rollout - Add systemd/scripts layout; relocate setup scripts - Remove obsolete nginx/enso-only docs from this repo scope
3.3 KiB
Service ia-dev-gateway — exécution agents et déploiements
Objectif
Remplacer à terme l’appel direct au dépôt sous-module ia_dev par un service HTTP sous services/ia-dev-gateway/ qui :
- Pointe vers un fork de 4nk/ia_dev (même historique Git, gouvernance dans le monorepo
smart_ide). - N’implé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 d’agents et des runs pour Lapce, le front web et l’orchestrateur.
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
Aujourd’hui ./ia_dev reste le checkout canonique sur l’hô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 : sous-module conservé jusqu’à ce que le fork soit vendored ou cloné par le service au déploiement ; puis documentation de migration dans ia_dev-submodule.md.
API (spécification)
Référence détaillée : 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 registreia_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) : fluxstarted,tool_selected,completed,failed, etc. (aligné system-architecture.md).
Les codes d’erreur 401/403/404/409/422 sont explicites ; pas de fallback silencieux.
Variables d’environnement (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/ 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. L’orchestrateur orchestrator-api.md peut cibler ce service pour agent.run.
Voir aussi
- platform-target.md — trois environnements
- system-architecture.md — agent gateway, policy