{"openapi":"3.1.0","info":{"title":"API Codex locale","version":"1.0.0","description":"API HTTP locale et stateless utilisant l'authentification du CLI Codex. Le modèle travaille en lecture seule."},"servers":[{"url":"http://0.0.0.0:8766"}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer"}},"schemas":{"Message":{"type":"object","required":["role","content"],"properties":{"role":{"type":"string","enum":["system","user","assistant"]},"content":{"type":"string"}}}}},"paths":{"/health":{"get":{"summary":"État du service","responses":{"200":{"description":"Service opérationnel"}}}},"/v1/models":{"get":{"summary":"Modèles rapides autorisés","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Liste des modèles"}}}},"/v1/chat/completions":{"post":{"summary":"Envoyer une conversation à Codex","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["messages"],"properties":{"model":{"type":"string","default":"gpt-5.6-luna","enum":["codex-fast","gpt-5.6-luna"]},"messages":{"type":"array","minItems":1,"items":{"$ref":"#/components/schemas/Message"}},"cwd":{"type":"string","description":"Dossier de travail, limité à la racine autorisée."},"stream":{"type":"boolean","const":false}}}}}},"responses":{"200":{"description":"Réponse de Codex"},"401":{"description":"Jeton absent ou incorrect"},"422":{"description":"Requête invalide"},"429":{"description":"Trop de requêtes simultanées"},"504":{"description":"Délai Codex dépassé"}}}}}}