Environment Variables Reference (Français)
Table des matières
Section intitulée « Table des matières »- 1. Secrets requis
- 2. Stockage et base de données
- 3. Réseau et ports
- 4. Sécurité et authentification
- 5. Assainissement des entrées et protection des données personnelles
- 6. Politiques relatives aux outils et au routage
- 7. URL et synchronisation avec le cloud
- 8. Proxy sortant
- 9. Intégration des outils CLI
- 10. Intégrations de l’agent interne et de MCP
- 11. Identifiants des fournisseurs OAuth
- 12. Remplacements du User-Agent des fournisseurs
- 13. Compatibilité des empreintes CLI
- 14. Fournisseurs de clés API
- 15. Paramètres de délai d’expiration
- 16. Journalisation
- 17. Optimisation de la mémoire
- 18. Synchronisation des tarifs
- 19. Synchronisation des modèles (développement)
- 20. Paramètres propres aux fournisseurs
- 21. État du proxy
- 22. Débogage
- 23. Intégration de GitHub
- 24. Bac à sable des compétences (v3.8.0+)
- 27. Flux Radar (auto-hébergement)
- Scénarios de déploiement
- Audit : variables supprimées / obsolètes
1. Secrets requis
Section intitulée « 1. Secrets requis »Ces variables doivent être définies avant le premier démarrage. Sans elles, l’application refusera de démarrer ou fonctionnera avec des valeurs par défaut non sécurisées.
| Variable | Obligatoire | Valeur par défaut | Fichier source | Description |
|---|---|---|---|---|
JWT_SECRET |
Oui | (aucune) | src/lib/auth |
Signe/vérifie tous les cookies de session du tableau de bord (JWT). Générez-la avec openssl rand -base64 48. |
API_KEY_SECRET |
Oui | (aucune) | src/lib/db/apiKeys.ts |
Clé de chiffrement AES pour les valeurs des clés API au repos dans SQLite. Générez-la avec openssl rand -hex 32. |
INITIAL_PASSWORD |
Oui | CHANGEME |
Script d’amorçage | Définit le mot de passe initial d’administration du tableau de bord (correspond à la valeur par défaut de .env.example — volontairement non sécurisée afin d’imposer sa modification). Modifiez-le avant la première utilisation. Après vous être connecté, modifiez-le via Tableau de bord → Paramètres → Sécurité. |
OMNIROUTE_WS_BRIDGE_SECRET |
Oui (production) | (non définie) | src/app/api/internal/codex-responses-ws/route.ts |
Secret partagé pour le pont WebSocket interne de Codex Responses. Authentifie les requêtes du pont entre le relais WS Electron/navigateur et OmniRoute. ⚠️ OBLIGATOIRE en production — lorsqu’il n’est pas défini, toutes les requêtes du pont WS sont rejetées. Générez-le avec openssl rand -base64 32. |
OMNIROUTE_SW_BUILD_ID |
Non | (SHA git) | next.config.mjs, scripts/build/assembleStandalone.mjs |
Identifiant explicite d’invalidation du cache du service worker pour l’interface PWA (#11779) ; premier dans la chaîne de résolution. |
SOURCE_VERSION |
Non | (non définie) | next.config.mjs, scripts/build/assembleStandalone.mjs |
Deuxième dans la chaîne — définie par les outils de construction PaaS (par exemple, de type Heroku) sur le commit déployé. |
NEXT_PUBLIC_SW_BUILD_ID |
Non | (dérivée) | src/shared/components/PwaRegister.tsx |
Valeur publique définie lors de la compilation que le client utilise pour enregistrer /sw.js?v=… ; dérivée des deux valeurs ci-dessus, puis du SHA git. |
OMNIROUTE_PEER_STAMP_TOKEN |
Non (automatique) | (auto à chaque démarrage) | src/server/authz/policies/management.ts |
Secret propre au processus prouvant que l’empreinte d’adresse IP de pair fiable provient du propre serveur HTTP d’OmniRoute (scripts/dev/peer-stamp.mjs). Le middleware authz n’accorde sa confiance à la localité de la requête (restriction des routes LOCAL_ONLY à la boucle locale/au LAN) que lorsque l’empreinte contient ce jeton. Généré automatiquement à chaque démarrage — laissez-le non défini ; ne le fixez que pour les configurations multiprocessus qui doivent partager l’empreinte. |
Commandes de génération
Section intitulée « Commandes de génération »# Générer les quatre secrets en une seule fois :echo "JWT_SECRET=$(openssl rand -base64 48)"echo "API_KEY_SECRET=$(openssl rand -hex 32)"echo "INITIAL_PASSWORD=$(openssl rand -base64 16)"echo "OMNIROUTE_WS_BRIDGE_SECRET=$(openssl rand -base64 32)"[!CAUTION] Ne validez jamais dans le système de gestion de versions des fichiers
.envcontenant de véritables secrets. Le fichier.gitignoreexclut déjà.env, mais vérifiez-le avant d’effectuer un push.
2. Stockage et base de données
Section intitulée « 2. Stockage et base de données »OmniRoute utilise SQLite (via better-sqlite3) pour toute la persistance. Ces variables contrôlent l’emplacement des données, leur chiffrement et leur cycle de vie.
| Variable | Valeur par défaut | Fichier source | Description |
|---|---|---|---|
DATA_DIR |
~/.omniroute/ |
src/lib/db/core.ts |
Répertoire racine de la base de données SQLite, des sauvegardes et des fichiers de données. Remplacez cette valeur pour utiliser des volumes Docker ou des chemins personnalisés. |
OMNIROUTE_ALLOW_DEFAULT_DATA_DIR |
(non définie) | src/lib/dataPaths.ts |
Échappatoire pour la protection DATA_DIR des tests/évaluations (#10428). Les tests et les sondes d’évaluation/d’affichage Node (-e/--eval/-p/--print, y compris les formes --eval=/--print=) sans DATA_DIR sont redirigés vers un répertoire temporaire jetable afin qu’ils ne puissent pas ouvrir la véritable base de données de l’opérateur ; définissez cette variable sur 1 pour réutiliser le véritable répertoire. |
OMNIROUTE_BUILD_SHA |
(non définie) | src/lib/monitoring/buildSha.ts |
SHA Git de l’artefact en cours d’exécution. Inscrit par npm run build:release ; peut être injecté dans les conteneurs livrés sans la sentinelle dist/BUILD_SHA. Exposé sous la forme system.buildSha sur /api/monitoring/health. |
OMNIROUTE_RELEASE_REF |
origin/main |
scripts/build/buildProvenance.ts |
Référence par rapport à laquelle le contrôle de provenance de l’artefact empaqueté vérifie le SHA de la build (#10427). |
OMNIROUTE_ALLOW_CANARY_BUILD |
(non définie) | scripts/build/buildProvenance.ts |
Définissez cette variable sur 1 pour autoriser l’empaquetage d’une build dont le SHA ne se trouve pas sur la branche de publication, en l’enregistrant comme version canary délibérée au lieu de faire échouer le contrôle (#10427). |
OMNIROUTE_SMOKE_API_KEY |
(non définie) | scripts/ops/deploy-canary.mjs |
Clé API de la sonde de vérification rapide du déploiement canary, envoyée sous la forme Authorization: Bearer sur /v1/chat/completions. Utilisée uniquement par le script de déploiement (#10429), jamais par le serveur. Sans rapport avec les variables OMNIROUTE_SMOKE_* du banc de vérification rapide en CLI à activation explicite (RUN_CLI_SMOKE=1, OMNIROUTE_SMOKE_BASE_URL/MODEL/API_KEY_ENV/TARGETS/TIMEOUT_MS dans tests/integration/upstream-cli-smoke.int.test.ts) — voir Intégrations CLI → Vérification rapide réelle. |
OMNIROUTE_BUILDING |
(non définie) | src/lib/buildPhase.ts |
Signal de phase de build (#10060) : défini sur 1 par scripts/build/build-next-isolated.mjs et hérité par chaque worker de build lancé, afin que la couche de base de données renvoie un stub sans opération au lieu de charger l’extension native better-sqlite3 (qui interrompt le worker à sa fermeture). Jamais défini pour le serveur en cours d’exécution. |
OMNIROUTE_SKIP_NATIVE_DEP_CHECK |
0 |
scripts/check/check-native-deps.mjs |
Définissez cette variable sur 1 pour ignorer la vérification préalable facultative des dépendances natives pour les arborescences de dépendances intégrées inhabituelles. Cela ne permet pas de compiler en cas de dépendance manquante ; utilisez cette option uniquement lorsque les dépendances natives sont fournies hors bande. |
OMNIROUTE_DATA_DIR |
(non définie) | open-sse/executors/promptql/threadSticky.ts |
Alias de secours pour DATA_DIR, vérifié uniquement lorsque DATA_DIR n’est pas définie. Utilisé pour localiser le cache sur disque des sessions persistantes par fil d’exécution de PromptQL (<dir>/promptql-thread-sessions.json) ; si aucune des deux variables n’est définie, le cache reste uniquement en mémoire (il n’est pas conservé entre les redémarrages). |
OMNIROUTE_PLUGINS_DIR |
(non définie) | src/lib/plugins/scanner.ts |
Répertoire lu par le scanner de plugins à l’exécution — et répertoire racine dans lequel le gestionnaire de plugins effectue les installations — remplaçant la valeur par défaut dérivée du répertoire personnel (#11827). Faites-le pointer vers l’arborescence de plugins montée par liaison dans Docker/K8s au lieu de déplacer HOME uniquement pour relocaliser le chemin d’analyse (HOME régit également tous les autres comportements relatifs au répertoire personnel). Non définie = ~/.omniroute/plugins, ou /tmp/.omniroute/plugins lorsque le processus n’exporte aucun répertoire personnel — ce qui élimine l’absence silencieuse de détection. Le répertoire résolu est journalisé une fois au démarrage sous la forme scanner.dir_resolved, avec l’entrée retenue. Côté serveur uniquement : les plugins de commandes CLI conservent leur propre OMNIROUTE_PLUGIN_PATH (section 9). |
STORAGE_ENCRYPTION_KEY |
(vide = désactivé) | src/lib/db/encryption.ts |
Clé AES pour le chiffrement au repos de l’intégralité de la base de données SQLite. Générez-la avec openssl rand -hex 32. |
STORAGE_ENCRYPTION_KEY_VERSION |
v1 |
scripts/build/bootstrap-env.mjs, electron/main.js |
Étiquette de version de la clé de chiffrement. Incrémentez-la lors d’une rotation de clé afin de permettre le déchiffrement des anciennes sauvegardes. |
DISABLE_SQLITE_AUTO_BACKUP |
false |
src/lib/db/backup.ts |
Lorsque la valeur est true, ignore les sauvegardes régulières/avant écriture du fichier SQLite (enregistrement/suppression des tarifs models.dev, écritures des paramètres). Les sauvegardes manuelles et celles précédant une restauration sont toujours effectuées. Cela ne désactive pas l’instantané de sécurité durable obligatoire du gestionnaire de migrations ni la protection contre les migrations massives pour une base de données persistante existante. Les sauvegardes non manuelles sont limitées à une au maximum toutes les 60 minutes. L’option Paramètres → Stockage du tableau de bord permet de désactiver indépendamment la sauvegarde automatique régulière. |
OMNIROUTE_CRYPT_KEY |
(non définie) | src/lib/db/encryption.ts |
Alias hérité de STORAGE_ENCRYPTION_KEY. Accepté comme solution de repli lorsque la variable principale est absente. |
OMNIROUTE_API_KEY_BASE64 |
(non définie) | src/lib/db/encryption.ts |
Alias hérité (forme encodée en Base64) accepté comme solution de repli. Décodé automatiquement avant utilisation. |
OMNIROUTE_DB_HEALTHCHECK_INTERVAL_MS |
(non définie) | src/lib/db/core.ts |
Remplace l’intervalle de vérification périodique de l’état de SQLite (ms). Lorsque cette variable n’est pas définie, les valeurs par défaut sont dérivées de NODE_ENV. |
OMNIROUTE_WAL_TRUNCATE_INTERVAL_MS |
(supprimée) | src/lib/db/walMaintenance.ts |
Supprimée. Un appel périodique à chaud de wal_checkpoint(TRUNCATE) peut invalider le mappage partagé de wal-index et provoquer l’arrêt brutal du processus avec SIGBUS (#13973) ; le planificateur n’existe donc plus. La variable est sans effet : une valeur positive consigne une seule fois un avertissement d’obsolescence, tandis que 0 ou une variable non définie ne produit aucun message. Le WAL est maintenu par des points de contrôle PASSIVE (ci-dessous) et tronqué par le point de contrôle lors de l’arrêt. |
OMNIROUTE_WAL_PASSIVE_INTERVAL_MS |
300000 (5 min) |
src/lib/db/walMaintenance.ts |
Remplace l’intervalle fréquent de wal_checkpoint(PASSIVE) (ms). Maintient un faible nombre de trames WAL en attente afin que les points de contrôle restent rapides et que la taille du fichier WAL demeure limitée entre les troncatures effectuées lors des arrêts. 0 désactive cette fonction. |
OMNIROUTE_WAL_GUARD_MAX_MB |
256 |
src/lib/db/walMaintenance.ts |
Lorsqu’une exécution PASSIVE détecte que le fichier WAL dépasse cette taille, exécute wal_checkpoint(RESTART) afin que le WAL reparte de zéro sans réécrire le wal-index mappé. Les points de contrôle à chaud en mode troncature ont été supprimés (voir la ligne OMNIROUTE_WAL_TRUNCATE_INTERVAL_MS). |
OMNIROUTE_PRESSURE_SELF_RESTART |
false |
open-sse/utils/resourcePressure.ts |
Définissez cette variable sur 1/true/yes/on pour quitter le processus après le maintien d’une pression critique sur les ressources pendant OMNIROUTE_PRESSURE_SELF_RESTART_AFTER_MS, afin de permettre à un superviseur (systemd Restart=always, politique de redémarrage Docker) de relancer un processus sain au lieu de renvoyer indéfiniment des erreurs 503. |
OMNIROUTE_PRESSURE_SELF_RESTART_AFTER_MS |
120000 (2 min) |
open-sse/utils/resourcePressure.ts |
Durée pendant laquelle la pression critique doit persister avant le déclenchement de la sortie avec auto-redémarrage. |
OMNIROUTE_SQLJS_WASM_PATH |
(détection automatique) | src/lib/db/adapters/sqljsAdapter.ts |
Chemin explicite (absolu ou relatif au répertoire de travail courant) vers sql-wasm.wasm lors de l’utilisation de l’adaptateur de repli WASM sql.js. Lorsque cette variable n’est pas définie, le chemin est détecté automatiquement à partir des dépendances des packages et des structures de répertoires candidates. |
OMNIROUTE_BATCH_RETENTION_DAYS |
30 |
src/lib/db/cleanup.ts |
Nombre de jours pendant lesquels les points de contrôle, les fichiers d’entrée/de sortie/d’erreur référencés et la ligne d’une tâche Batch API terminale (terminée/échouée/annulée/expirée) sont conservés avant leur suppression par le nettoyage automatique. Ne prend effet qu’une fois BATCH_AND_FILE_AUTO_CLEANUP_ENABLED activée ; correspond à la période de conservation des sorties de la Batch API d’OpenAI. N’affecte pas la route DELETE /api/v1/batches/delete-completed déclenchée par l’opérateur, qui reste inconditionnelle (sans filtre d’ancienneté) par conception. |
BATCH_AND_FILE_AUTO_CLEANUP_ENABLED |
false |
src/lib/db/cleanup.ts |
Lorsque la valeur est true, autorise le nettoyage automatique à supprimer les tâches Batch API terminales (ainsi que leurs points de contrôle) ayant dépassé OMNIROUTE_BATCH_RETENTION_DAYS, et à effacer le contenu BLOB des fichiers téléversés ayant dépassé leur propre valeur expires_at. Désactivée par défaut : chaque installation existante conserve ces données exactement comme auparavant jusqu’à ce qu’un opérateur choisisse d’activer cette fonction. Il s’agit également d’un indicateur de fonctionnalité modifiable depuis le tableau de bord — voir docs/reference/FEATURE_FLAGS.md → Exécution. |
OMNIROUTE_SKIP_DB_HEALTHCHECK |
0 |
src/lib/db/core.ts, src/lib/db/healthCheck.ts |
Définissez sur 1 pour ignorer entièrement le contrôle d’intégrité de la base de données au démarrage. Utile pour les tâches de courte durée et les tests d’intégration. |
OMNIROUTE_FORCE_DB_HEALTHCHECK |
0 |
src/lib/db/core.ts |
Définissez sur 1 pour forcer l’activation de la boucle de contrôle d’intégrité de la base de données, même lorsqu’elle serait normalement ignorée (par exemple, pour les tâches de courte durée). |
OMNIROUTE_SKIP_POSTINSTALL |
0 |
scripts/postinstall.mjs |
Définissez sur 1 pour ignorer le préchauffage de l’environnement d’exécution natif pendant npm install. Utile dans les installations CI/sans interface graphique où sqlite est déjà compilé. |
OMNIROUTE_MIGRATIONS_DIR |
(détection automatique) | src/lib/db/migrationRunner.ts |
Remplacez le répertoire analysé par l’outil d’exécution des migrations. Utile lors de la livraison de migrations groupées dans des versions personnalisées. |
OMNIROUTE_EXTRA_MIGRATIONS_DIRS |
(non défini) | src/lib/db/migrationRunner/extraDirs.ts |
Répertoires de migration supplémentaires sous forme d’entrées namespace=dir séparées par le délimiteur de chemin de la plateforme (par exemple ee=/opt/app/enterprise/db/migrations). Les fichiers qui s’y trouvent sont enregistrés sous la forme <namespace>-<number>, afin qu’une distribution fournissant ses propres migrations n’entre jamais en conflit avec les emplacements numériques en amont. Une entrée mal formée, un espace de noms non valide ou un répertoire manquant provoque une erreur au démarrage au lieu d’ignorer silencieusement le schéma. |
OMNIROUTE_MAX_PENDING_MIGRATIONS |
50 |
src/lib/db/migrationRunner.ts |
Seuil de sécurité pour les migrations en attente en masse (#3416). Le démarrage est interrompu si plus de ce nombre de migrations sont en attente sur une base de données existante (protection contre l’effacement d’une table de suivi). Augmentez-le pour restaurer une ancienne sauvegarde ; définissez-le sur 0 pour désactiver la vérification. |
OMNIROUTE_INSTALL_UPGRADE_WORKDIR |
(<repo>/.install-upgrade) |
scripts/check/check-install-upgrade.mjs |
Répertoire de travail pour la barrière de validation de version check:install-upgrade. Il nécessite environ 12 Go (deux arborescences d’installation d’environ 3 Go chacune, plus l’archive tar), et ne doit donc pas être exécuté sur un petit tmpfs — sur le runner auto-hébergé, /tmp est un tmpfs de 12 Go soutenu par la RAM, que la barrière de validation a saturé, tronquant ainsi le package. |
OMNIROUTE_SPEND_FLUSH_INTERVAL_MS |
(valeur par défaut dans le code) | src/lib/spend/batchWriter.ts |
Intervalle de vidage (ms) pour l’outil d’écriture groupée des dépenses/coûts. Des valeurs plus faibles réduisent le regroupement des écritures ; des valeurs plus élevées réduisent les conflits d’accès à la base de données. |
OMNIROUTE_SPEND_MAX_BUFFER_SIZE |
(valeur par défaut dans le code) | src/lib/spend/batchWriter.ts |
Nombre maximal d’entrées de dépenses mises en mémoire tampon avant un vidage forcé. Augmentez-le pour les déploiements à QPS élevé ; réduisez-le lorsque la limitation de la mémoire est prioritaire. |
OMNIROUTE_PROXY_FETCH_DEBUG |
(non défini) | open-sse/utils/proxyFetch.ts |
Définissez sur "true" pour émettre les journaux de débogage [ProxyFetch] sur le chemin de relais Vercel. Désactivé par défaut pour éviter de divulguer des indices de routage. |
PROXY_LOG_INCLUDE_IPS |
false |
src/lib/proxyLogger.ts |
Définissez sur "true" ou "1" pour inclure les adresses IP du client/de sortie et le préfixe du compte dans la ligne détaillée [ProxyEgress] du journal de processus. Désactivé par défaut afin que le journal de processus ne divulgue ni les adresses IP ni le préfixe du compte. |
OMNIROUTE_DEBUG |
(non défini) | bin/cli/commands/quota.mjs |
Définissez sur 1 pour afficher dans stderr les diagnostics de durée par requête ([omniroute] GET <path> completed in Nms) à partir des commandes de quota de la CLI. |
OMNIROUTE_HEALTHCHECK_PATH |
(automatique) | scripts/dev/healthcheck.mjs |
Chemin explicite interrogé par le contrôle d’intégrité du conteneur. Lorsqu’il n’est pas défini, la sonde le déduit de OMNIROUTE_BASE_PATH ; le définir réactive le point de terminaison de surveillance approfondie. |
OMNIROUTE_DEBUG_COMPLETION |
(non défini) | bin/cli/commands/completion.mjs |
Définissez sur n’importe quelle valeur non vide pour émettre les diagnostics [omniroute completion] à partir des chemins de cache de complétion de shell de la CLI (lecture/actualisation/écriture). Désactivé par défaut — les échecs de ces caches sont silencieux afin qu’un cache manquant/corrompu n’empêche jamais la complétion par tabulation. |
BATCH_RETRY_DURATION_MS |
86400000 (24 h) |
open-sse/services/batchProcessor.ts |
Fenêtre maximale de nouvelle tentative pour les éléments individuels d’un lot (ms). Les éléments qui dépassent cette durée sont marqués comme ayant échoué. |
BATCH_BACKOFF_BASE_MS |
5000 |
open-sse/services/batchProcessor.ts |
Délai de base (ms) pour le backoff exponentiel lors des nouvelles tentatives sur les éléments d’un lot. |
BATCH_BACKOFF_MAX_MS |
3600000 (1 h) |
open-sse/services/batchProcessor.ts |
Limite (ms) du backoff exponentiel entre les nouvelles tentatives sur les éléments d’un lot. |
BATCH_MAX_CONCURRENT |
1 |
open-sse/services/batchProcessor.ts |
Nombre maximal de lots traités simultanément. Augmentez cette valeur pour accroître le débit ; gardez-la basse pour éviter une avalanche de dépassements de limite de débit. |
[!IMPORTANT] Avant de modifier une base de données persistante existante, l’outil de migration publie un instantané complet, adressé par son contenu, sous
DATA_DIR/db_backups/. La publication nécessite un système de fichiers prenant en charge les liens physiques sans écrasement sur un même système de fichiers, ainsi que la synchronisation durable des fichiers. Les hôtes POSIX nécessitent également la synchronisation des répertoires ; sous Windows, Node peut refuser les descripteurs de répertoire, de sorte qu’OmniRoute vide le fichier publié et traite la synchronisation des entrées de répertoire comme une opération au mieux. Si leDATA_DIRmonté ne peut pas fournir ces garanties, le démarrage échoue de manière sécurisée avant l’application d’une migration. DéplacezDATA_DIRvers un volume prenant en charge ces primitives ; n’utilisez pasDISABLE_SQLITE_AUTO_BACKUPpour contourner la sécurité des migrations.
Scénarios
Section intitulée « Scénarios »| Scénario | Configuration |
|---|---|
| Développement local | Conservez toutes les valeurs par défaut. La base de données se trouve dans ~/.omniroute/omniroute.db. |
| Docker | DATA_DIR=/data + montez un volume sur /data. |
| Chiffrement au repos | Définissez STORAGE_ENCRYPTION_KEY + conservez des sauvegardes de la clé ! La perdre = perdre les données. |
| CI/Tests | DATA_DIR=/tmp/omniroute-test — éphémère, aucun chiffrement nécessaire. |
3. Réseau et ports
Section intitulée « 3. Réseau et ports »| Variable | Valeur par défaut | Fichier source | Description |
|---|---|---|---|
PORT |
20128 |
src/lib/runtime/ports.ts |
Port principal pour l’interface du tableau de bord et les points de terminaison de l’API (mode à port unique). |
OMNIROUTE_BASE_PATH |
(vide = racine) | next.config.mjs, scripts/docker/ensure-docker-base-path.mjs |
Sous-chemin d’URL permettant de servir OmniRoute derrière un proxy inverse (définit le basePath de Next.js ; les redirections d’authentification tiennent compte du basePath). Par ex. /omniroute. Dans Docker, la valeur est intégrée lors de docker build (ARG OMNIROUTE_BASE_PATH) ; les images racine précompilées peuvent appliquer une autre valeur d’exécution une fois au démarrage du conteneur, avant le lancement de Next.js. Définissez NEXT_PUBLIC_BASE_URL sur l’origine publique incluant le même sous-chemin. |
NEXT_PUBLIC_OMNIROUTE_BASE_PATH |
(vide = racine) | src/shared/hooks/useDisplayBaseUrl.ts |
Copie de OMNIROUTE_BASE_PATH visible par le navigateur, intégrée lors de la compilation afin que l’affichage du point de terminaison du tableau de bord indique https://host/omniroute/v1 au lieu de https://host/v1. Utilise OMNIROUTE_BASE_PATH comme valeur de repli si elle n’est pas définie. Recompilez après toute modification (le basePath de Next est défini à la compilation). |
DASHBOARD_ALLOW_EMBED |
(non défini = jamais intégrable dans un cadre) | next.config.mjs, scripts/build/dashboardEmbed.mjs |
Autorise explicitement l’intégration des pages HTML dans une iframe. Lorsque cette variable n’est pas définie, chaque route fournit frame-ancestors 'none' + X-Frame-Options: DENY. Définissez-la sur vscode pour servir les pages (tableau de bord, connexion, documentation, accueil) avec frame-ancestors 'self' vscode-webview: et sans X-Frame-Options, afin que le navigateur simple de VS Code puisse les afficher (mode dashboardOpen: "editor" d’OmniCopilot). La surface de l’API (/api, /v1, /v1beta, /a2a, /healthz, alias de niveau racine) conserve dans tous les cas les en-têtes stricts. Seule la valeur vscode est reconnue — 1/true ne l’activent pas. Défini à la compilation : recompilez après toute modification (docker build --build-arg DASHBOARD_ALLOW_EMBED=vscode pour les images ; la définition de cette variable sur une installation précompilée n’a aucun effet). |
API_PORT |
(non défini) | src/lib/runtime/ports.ts |
Lorsqu’elle est définie, sert l’API proxy /v1/* sur ce port distinct. |
API_HOST |
0.0.0.0 |
src/lib/runtime/ports.ts |
Adresse d’écoute du port de l’API. |
DASHBOARD_PORT |
(non défini) | src/lib/runtime/ports.ts |
Lorsqu’elle est définie, sert l’interface du tableau de bord sur ce port distinct. |
OMNI_MAX_CONCURRENT_CONNECTIONS |
0 (désactivé) |
src/sse/utils/backpressure.ts |
Limite le nombre de connexions de discussion simultanées en cours ; les requêtes dépassant la limite reçoivent 503 avec Retry-After. Un entier positif active la protection ; une valeur non définie ou 0 la désactive. |
OMNIROUTE_INSTANCE_ID |
(non défini) | src/shared/resilience/peerRouting.ts |
Identifiant stable et unique de cette passerelle lors du chaînage d’instances OmniRoute. Active la détection des boucles entrantes entre homologues. Caractères autorisés : lettres, chiffres, ., _, : et - ; 64 caractères au maximum. |
OMNIROUTE_PEER_URLS |
(non défini) | src/shared/resilience/peerRouting.ts, open-sse/executors/base.ts |
Liste séparée par des virgules d’URL de base OmniRoute pouvant recevoir X-OmniRoute-Peer-Trace. Seules les URL en amont explicitement autorisées reçoivent les métadonnées d’homologue ; tous les autres fournisseurs restent inchangés. |
OMNIROUTE_PEER_MAX_HOPS |
4 |
src/shared/resilience/peerRouting.ts |
Nombre maximal d’instances OmniRoute précédemment visitées accepté dans une requête chaînée (1-32). Les instances répétées ou un budget épuisé renvoient HTTP 508 Loop Detected. |
PROD_DASHBOARD_PORT |
20130 |
docker-compose.prod.yml |
Port publié côté hôte pour le tableau de bord en mode de production Docker. |
PROD_API_PORT |
20131 |
docker-compose.prod.yml |
Port publié côté hôte pour l’API en mode de production Docker. |
OMNIROUTE_PORT |
(non défini) | src/lib/runtime/ports.ts |
Prend le pas sur PORT lors de l’exécution dans Electron ou d’autres enveloppes. |
LIVE_WS_PORT |
20129 |
src/server/ws/liveServer.ts |
Port du serveur WebSocket de surveillance en temps réel. |
LIVE_WS_HOST |
127.0.0.1 |
src/server/ws/liveServer.ts |
Adresse d’écoute du serveur WebSocket en temps réel. Définissez-la sur 0.0.0.0 pour l’exposer sur le réseau local (configurez également LIVE_WS_ALLOWED_ORIGINS). |
LIVE_WS_ALLOWED_ORIGINS |
(non défini) | src/server/ws/liveServer.ts |
Origines supplémentaires, séparées par des virgules, autorisées à ouvrir un WebSocket en temps réel. Les origines du tableau de bord en boucle locale sont déjà autorisées par défaut. |
LIVE_WS_ALLOWED_HOSTS |
(non défini) | src/server/ws/liveServerAllowList.ts |
Noms d’hôte supplémentaires, séparés par des virgules, autorisés pour les origines WebSocket en temps réel. Contrairement à LIVE_WS_ALLOWED_ORIGINS (URL d’origine complètes), seules les parties correspondant aux hôtes sont comparées — utile pour les configurations LAN/Tailscale. |
NEXT_PUBLIC_LIVE_WS_PUBLIC_URL |
(non défini) | src/hooks/useLiveDashboard.ts |
URL publique du WebSocket du tableau de bord en temps réel (côté navigateur). Définissez-la lorsque le serveur WS est placé derrière un proxy inverse ou un tunnel Cloudflare (par ex. wss://ws.my-ai.com/live-ws) ; le navigateur s’y connecte à la place de ws://hostname:20132. La partie chemin est également utilisée comme chemin de mise à niveau WebSocket (valeur par défaut : /live-ws). |
OMNIROUTE_ENABLE_LIVE_WS |
true |
src/server/ws/liveServer.ts et scripts/start-ws-server.mjs |
Définissez-la sur 0 ou false pour désactiver le serveur WebSocket en temps réel (activé par défaut et lié à l’interface de boucle locale). Option de CI/banc d’essai qui désactive le script auxiliaire WebSocket autonome en temps réel. |
RELAY_IP_PER_MINUTE |
30 |
src/app/api/v1/relay/chat/completions/route.ts |
Limite de débit du relais par couple (jeton, IP), en requêtes/minute. En mémoire, par instance. 0 ou une valeur négative désactive le contrôle basé sur l’IP (la limite en base de données par jeton reste applicable). |
NODE_ENV |
production |
Noyau de Next.js | Contrôle la verbosité de la journalisation, la mise en cache, l’exposition des détails des erreurs et les optimisations de Next.js. |
OMNIROUTE_USE_TURBOPACK |
1 (Turbopack — valeur par défaut du code) |
package.json / Next.js 16 |
Turbopack est le bundler par défaut pour npm run dev et npm run build (compilations 2 à 3 fois plus rapides, selon les mesures). Définissez cette variable sur 0 pour revenir à webpack sous Windows, en cas d’incompatibilités avec les liaisons natives ou le bundler, ou sur les machines disposant de peu de RAM — les compilations de production Turbopack avec cette série de versions de Next.js (16.2.x) sont connues en amont pour atteindre des pics de consommation mémoire nettement supérieurs à ceux de webpack sur de grands graphes de modules (le correctif d’éviction mémoire de Turbopack dans Next 16.3 n’est pas encore stable) ; la solution de repli webpack atteint des pics bien plus faibles. Voir #6409. |
OMNIROUTE_SKIP_DB_HEALTHCHECK |
(non défini) | src/lib/db/core.ts / src/lib/db/healthCheck.ts |
Définissez-la sur 1 pour ignorer le contrôle d’intégrité de SQLite au démarrage. Utile pour accélérer le démarrage avec de grandes bases de données. |
NOTIFY_SOCKET |
(non défini) | systemd (protocole sd_notify) | Définie par systemd lorsque le processus s’exécute dans une unité de service avec intégration sd_notify ; OmniRoute la lit (voir OMNIROUTE_DISABLE_SD_NOTIFY) pour envoyer des notifications READY/WATCHDOG. Ne doit jamais être définie par l’utilisateur. |
OMNIROUTE_DISABLE_SD_NOTIFY |
(non défini) | scripts/dev/systemd-notify.mjs |
Définissez-la sur 1 pour désactiver sd_notify de systemd (Type=notify / WatchdogSec=), même lors de l’exécution dans une unité systemd. Dans tous les cas, le notificateur ne fait rien en dehors de systemd. |
CREDENTIAL_HEALTH_CHECK_INTERVAL |
300000 |
open-sse/config/constants.ts / src/lib/credentialHealth/scheduler.ts |
Intervalle (ms) du planificateur de vérification de l’état des identifiants en arrière-plan. Minimum : 10000 (10 s). |
CREDENTIAL_HEALTH_CACHE_TTL |
300000 |
open-sse/config/constants.ts / src/lib/credentialHealth/cache.ts |
Durée de vie (ms) de l’état d’intégrité des identifiants mis en cache. |
OMNIROUTE_DISABLE_CREDENTIAL_HEALTH_CHECK |
false |
src/lib/credentialHealth/scheduler.ts |
Définissez-la sur 1 ou true pour désactiver les tests périodiques en arrière-plan des connexions aux fournisseurs. Les fournisseurs de recherche (SEARCH_VALIDATOR_CONFIGS dans src/lib/providers/validation/searchProviders.ts, par ex. tavily-search) sont toujours exclus du balayage — leur « validation » est une véritable requête en amont facturée, ils ne font donc jamais l’objet de contrôles d’intégrité planifiés (#9970). |
HOST |
0.0.0.0 |
scripts/dev/run-next.mjs |
Adresse d’écoute du serveur de développement/démarrage Next.js. Remplace la valeur par défaut 0.0.0.0 lorsqu’elle est définie. |
HOSTNAME |
127.0.0.1 |
scripts/dev/run-next-playwright.mjs |
Adresse d’écoute utilisée par l’exécuteur Playwright lors du lancement de Next.js. La valeur par défaut est 127.0.0.1 pour garantir des tests hermétiques. Ne l’utilisez pas pour omniroute serve — utilisez plutôt OMNIROUTE_SERVER_HOST (les shells POSIX définissent automatiquement HOSTNAME sur le nom de la machine ; .env ne peut pas la remplacer). |
OMNIROUTE_SERVER_HOST |
0.0.0.0 |
bin/cli/commands/serve.mjs |
Adresse d’écoute pour omniroute serve. Évite tout conflit avec la variable HOSTNAME du shell POSIX (toujours définie sur le nom de la machine par bash/zsh). Utilise 0.0.0.0 comme valeur de repli lorsqu’elle n’est pas définie. (#6194) |
Modes de port
Section intitulée « Modes de port »┌──────────────────────────── Port unique (par défaut) ───────────────────────┐│ PORT=20128 ││ → Tableau de bord : http://localhost:20128 ││ → API : http://localhost:20128/v1/chat/completions │└─────────────────────────────────────────────────────────────────────────────┘
┌──────────────────────────── Ports séparés ──────────────────────────────────┐│ DASHBOARD_PORT=20128 ││ API_PORT=20129 ││ API_HOST=0.0.0.0 ││ → Tableau de bord : http://localhost:20128 ││ → API : http://0.0.0.0:20129/v1/chat/completions ││ Cas d’usage : exposer l’API au LAN tout en limitant le tableau de bord à ││ localhost. │└─────────────────────────────────────────────────────────────────────────────┘
┌──────────────────────────── Docker en production ───────────────────────────┐│ PROD_DASHBOARD_PORT=443 PROD_API_PORT=8443 ││ → Mappe les ports du conteneur aux ports de l’hôte dans ││ docker-compose.prod.yml. │└─────────────────────────────────────────────────────────────────────────────┘4. Sécurité et authentification
Section intitulée « 4. Sécurité et authentification »| Variable | Valeur par défaut | Fichier source | Description |
|---|---|---|---|
MACHINE_ID_SALT |
endpoint-proxy-salt |
src/lib/auth |
Sel combiné aux identifiants matériels pour générer l’empreinte de la machine. À modifier pour chaque déploiement afin d’assurer l’isolation. |
OMNIROUTE_CLI_SALT |
(non défini = sel aléatoire propre à l’installation, conservé dans <DATA_DIR>/cli-token-salt.json) |
src/lib/machineToken.ts |
Sel HMAC utilisé pour dériver le jeton d’authentification local de la CLI. La définition de cette valeur renouvelle tous les jetons CLI de la machine et prévaut toujours sur le sel conservé. Voir docs/security/CLI_TOKEN.md. |
AUTH_COOKIE_SECURE |
false |
src/lib/auth |
Définit l’attribut Secure des cookies de session. Doit être défini sur true lorsque l’application s’exécute derrière HTTPS. |
REQUIRE_API_KEY |
false |
Intergiciel d’API | Lorsque la valeur est true, toutes les requêtes proxy /v1/* doivent inclure une clé d’API valide. Cet indicateur ne contrôle pas GET /v1/models, qui suit à la place la configuration de connexion du tableau de bord (requireAuthForModels) — ainsi, une erreur 401 provenant de /v1/models ne signifie PAS que l’inférence est protégée. Voir docs/security/INFERENCE_AUTH_POSTURE.md (#13695). |
ALLOW_API_KEY_REVEAL |
false |
src/shared/constants/featureFlagDefinitions.ts |
Autorise l’affichage des valeurs complètes des clés d’API dans l’interface du tableau de bord. Configurable dans les indicateurs de fonctionnalité du tableau de bord ; présente un risque de sécurité sur les instances partagées. |
NO_LOG_API_KEY_IDS |
(vide) | src/lib/compliance/index.ts |
Identifiants de clés d’API, séparés par des virgules, pour lesquels la journalisation des requêtes est désactivée (conformité au RGPD). |
DEFAULT_RATE_LIMIT_PER_DAY |
(non défini = illimité) | src/shared/utils/apiKeyPolicy.ts |
Budget quotidien de requêtes de secours appliqué aux clés d’API dont la colonne rate_limits est nulle. Valeur non définie ou vide : aucune limite implicite (#2289, #11017). 0 produit le même résultat (illimité). Un entier positif N active N requêtes/jour, 5N/semaine et 20N/mois. Les valeurs non vides mal formées utilisent les limites historiques de 1000/jour, 5000/semaine et 20000/mois. |
MAX_BODY_SIZE_BYTES |
10485760 (10 Mo) |
src/shared/middleware/bodySizeGuard.ts |
Taille maximale autorisée du corps d’une requête. Rejette les charges utiles dépassant cette limite. |
OMNIROUTE_CHAT_LARGE_BODY_BYTES |
262144 (256 Ko) |
src/shared/middleware/chatBodyAdmission.ts |
Les corps de requête réels dont la taille atteint ou dépasse ce seuil acquièrent le bail d’admission atomique local au processus pour les charges lourdes avant l’analyse JSON (chemin BYTE, y compris POST /v1/responses). Utilise le même mécanisme d’échappement lorsque la marge disponible est suffisante que #10437 pour les charges structurellement lourdes ; reste limité par OMNIROUTE_CHAT_MAX_INFLIGHT_BYTES / #10110, afin que #7849 ne se reproduise pas. |
OMNIROUTE_CHAT_HARD_MAX_BODY_BYTES |
52428800 (50 MB) |
src/shared/middleware/chatBodyAdmission.ts |
Limite stricte des routes de chat, appliquée aux octets lus pendant l’ingestion bornée, y compris pour les requêtes dont l’en-tête Content-Length est absent, non valide ou mensonger ; tout dépassement reçoit une réponse 413. |
OMNIROUTE_CHAT_MAX_HEAVY_IN_FLIGHT |
(non défini — aucune limite du nombre de requêtes) | src/shared/middleware/chatBodyAdmission.ts |
#503-fanout : cette ancienne limite en NOMBRE de requêtes ne s’applique désormais que lorsqu’elle est explicitement définie. Lorsqu’elle n’est pas définie (comportement par défaut), l’admission des requêtes de chat lourdes est plutôt contrôlée par OMNIROUTE_CHAT_MAX_INFLIGHT_BYTES — un budget en OCTETS calculé automatiquement à partir de la limite de mémoire réelle du processus dans un seul processus (un seul tas V8). Deux requêtes /v1/responses simultanées d’environ 750 000 jetons font planter des tas d’environ 12 Gio (#7849) — il s’agit d’un avertissement lié au budget mémoire, et non d’une limite produit stricte de 2. Un processus sain (tas sous le ratio de délestage) PEUT accepter davantage de requêtes /v1/responses longues simultanées via OMNIROUTE_CHAT_ADMISSION_HEALTHY_HEADROOM. Des dizaines de clients SSE de longue durée (40–50) dépendent du tas + de OMNIROUTE_CHAT_MAX_INFLIGHT_BYTES / #10110, et non d’un « maximum de 2 ». Augmenter aveuglément cette valeur pour « utiliser l’hôte » réintroduit #7849. Multipliez les tas avec N DATA_DIR indépendants (#11024) ; n’utilisez jamais replicas>1 avec un seul fichier SQLite. |
OMNIROUTE_CHAT_MAX_INFLIGHT_BYTES |
(calculé automatiquement) | src/shared/middleware/admissionBudget.ts |
#503-fanout : remplacement du budget d’octets d’ingestion calculé automatiquement (25 % de la plus restrictive des limites de mémoire V8/cgroup, divisés par une amplification transitoire de 8x). Les valeurs calculées et explicites sont limitées à une plage de 8 Mio à 2 Gio. Un corps plus volumineux que le budget effectif échoue immédiatement avec 413 body_exceeds_budget ; la contention entre des corps pouvant individuellement être traités reste retentable avec 503. La prise en charge de 40 à 50 clients SSE de longue durée dépend de ce budget + du tas, et non d’un « maximum de 2 » strict. Consultez chatAdmission.maxInflightBytes / budgetSource / pressureSeverity sur /api/monitoring/health avant tout réglage. |
OMNIROUTE_CHAT_ADMISSION_HEAP_SHED_RATIO |
0.75 |
src/shared/middleware/chatBodyAdmission.ts |
Ratio de délestage en cas de pression sur le tas (heapUsed / heap_size_limit) pour l’admission des requêtes lourdes de type OCTETS et STRUCTURE (#10183, #10268, #10437). Une requête lourde simultanée dépassant OMNIROUTE_CHAT_MAX_HEAVY_IN_FLIGHT n’est délestée avec la réponse retentable 503 que lorsque le tas atteint ou dépasse ÉGALEMENT ce ratio ; si le tas est sain, elle est admise via la marge de capacité saine. |
OMNIROUTE_CHAT_ADMISSION_HEALTHY_HEADROOM |
OMNIROUTE_CHAT_MAX_HEAVY_IN_FLIGHT (valeur par défaut 1) |
src/shared/middleware/chatBodyAdmission.ts |
Capacité supplémentaire bornée pour le chemin rapide avec tas sain (#10437), à la fois pour STRUCTURE et OCTETS (admitChatRequest, y compris les corps ≥ OMNIROUTE_CHAT_LARGE_BODY_BYTES). Sans cette limite, chaque requête reçue pendant une période chargée, mais avec un tas sain, contournait l’admission sans aucun plafond. Une fois ce nombre de baux simultanés actifs via le chemin avec tas sain atteint, les requêtes supplémentaires reçues pendant la période chargée basculent vers le MÊME chemin d’attente bornée/de délestage que celui utilisé sous une véritable pression sur le tas. 0 désactive entièrement le contournement. |
OMNIROUTE_CHAT_HEAVY_MESSAGE_COUNT |
200 |
src/shared/middleware/chatBodyAdmission.ts |
Nombre de messages à partir duquel une requête de chat est classée comme lourde, même lorsque son corps est inférieur au seuil en octets. |
OMNIROUTE_CHAT_HEAVY_TOOL_COUNT |
64 |
src/shared/middleware/chatBodyAdmission.ts |
Nombre d’outils à partir duquel une requête de chat est classée comme lourde, même lorsque son corps est inférieur au seuil en octets. |
OMNIROUTE_CHAT_HEAVY_ESTIMATED_TOKENS |
32000 |
src/shared/middleware/chatBodyAdmission.ts |
Estimation prudente du nombre de jetons d’après la taille des chaînes, utilisée pour classer une requête comme lourde ; il s’agit d’une approximation du coût d’admission, et non de la tokenisation utilisée pour la facturation du fournisseur. |
OMNIROUTE_CHAT_HARD_MAX_MESSAGES |
0 (désactivé) |
src/shared/middleware/chatBodyAdmission.ts |
Limite facultative et volontaire de l’historique de chat. Désactivée par défaut : une limite du nombre de messages relève de la politique de déploiement, et non d’une propriété universelle d’une requête ; imposer cette limite ici rejette les conversations avec une réponse terminale 413 avant que le pipeline de compression puisse les rendre traitables. La croissance du tas est bornée par OMNIROUTE_CHAT_MAX_HEAVY_IN_FLIGHT et par le délestage en cas de pression sur le tas. Définissez une valeur positive pour les déploiements contraints en mémoire qui nécessitent un plafond strict ; tout dépassement reçoit alors une réponse structurée 413 indiquant qu’une compression est requise. |
OMNIROUTE_MAX_NONSTREAMING_RESPONSE_BYTES |
67108864 (64 MB) |
open-sse/handlers/chatCore/nonStreamingResponseBody.ts |
Limite stricte pour une réponse amont non diffusée en continu, entièrement mise en mémoire tampon. Au-delà de cette limite, la lecture en amont est annulée et la requête échoue rapidement au lieu de faire croître une chaîne sans limite jusqu’à épuisement du tas. |
OMNIROUTE_FORWARDING_HEADER_BUDGET_BYTES |
768 |
open-sse/handlers/chatCore/responseHeaders.ts |
Nombre maximal d’octets transmis depuis les en-têtes de réponse en amont. Lorsque le budget est dépassé, les en-têtes de priorité inférieure (par ex., les en-têtes personnalisés x-codex-*, x-oai-request-id) sont supprimés afin de respecter les limites courantes des en-têtes des proxys inverses. Définissez une valeur plus élevée pour transmettre davantage de métadonnées en amont, au prix d’une taille accrue des en-têtes de réponse. |
CORS_ORIGIN |
(non défini) | src/server/cors/origins.ts |
Liste d’autorisation CORS historique pour une origine unique. Préférez CORS_ALLOWED_ORIGINS pour les nouveaux déploiements. CORS est uniquement destiné aux clients d’API de navigateur inter-origines ; les écritures authentifiées du tableau de bord utilisent plutôt des requêtes de même origine ainsi qu’une protection CSRF liée à la session. |
CORS_ALLOWED_ORIGINS |
(non défini) | src/server/cors/origins.ts |
Liste d’autorisation CORS séparée par des virgules. Aucun caractère générique n’est envoyé, sauf si CORS_ALLOW_ALL=true est explicitement configuré. |
CORS_ALLOW_ALL |
false |
src/server/cors/origins.ts |
Échappatoire réservée au développement permettant de renvoyer n’importe quel Origin de navigateur. Ne l’activez pas dans les déploiements partagés ou de production. |
OUTBOUND_SSRF_GUARD_ENABLED |
true |
src/shared/network/outboundUrlGuard.ts |
Bloque les appels aux fournisseurs ciblant des plages d’adresses IP privées, de bouclage ou lien-local. Désactivez cette option uniquement dans des environnements de test isolés. |
OMNIROUTE_ALLOW_PRIVATE_PROVIDER_URLS |
false |
src/shared/network/outboundUrlGuard.ts |
Autorise les URL de fournisseurs pointant vers des réseaux privés/locaux (localhost, 192.168.x.x, 10.x.x.x, etc.). REQUIS pour les fournisseurs auto-hébergés (LM Studio, Ollama, vLLM, Llamafile, Triton, SearXNG). Lorsque la valeur est false, le tableau de bord refuse la validation des URL locales. |
OMNIROUTE_ALLOW_LOCAL_PROVIDER_URLS |
true |
src/shared/network/outboundUrlGuard.ts |
Autorise l’ajout/la validation de fournisseurs sur des adresses locales/privées (127.0.0.1, localhost, LAN, plages privées) — limité au chemin de validation des fournisseurs. Valeur par défaut : true (priorité au local) ; définissez false pour imposer un blocage strict limité aux adresses publiques. Les points de terminaison des métadonnées cloud (169.254.169.254, metadata.google.internal) restent bloqués dans tous les cas. (#5066) |
AUDIO_REMOTE_PROVIDER_NODES |
false |
src/app/api/v1/_shared/audioProviderNodes.ts |
Permet aux routes /v1/audio/* (transcriptions, synthèse vocale, traductions) d’utiliser un nœud fournisseur compatible avec OpenAI hébergé en dehors de localhost. Désactivé par défaut — le routage audio vers un hôte distant modifie l’identité de sortie et doit résulter d’une décision explicite de l’opérateur. Les nœuds de bouclage/privés (localhost, 127.0.0.1, 172.16-31.x) sont toujours autorisés et ne sont pas affectés. (#3963) |
RERANK_REMOTE_PROVIDER_NODES |
false |
src/app/api/v1/_shared/rerankProviderNodes.ts |
Permet à POST /v1/rerank (ainsi qu’à l’étape de reclassement en bouclage du moteur de mémoire) d’utiliser un nœud fournisseur compatible avec OpenAI hébergé en dehors de localhost — une machine du LAN ou un pair Tailscale exécutant TEI, Infinity, vLLM, etc. Désactivé par défaut — le routage vers un hôte distant modifie l’identité de sortie et doit résulter d’une décision explicite de l’opérateur. Les nœuds de bouclage (localhost, 127.0.0.1, 172.16-31.x) sont toujours autorisés et ne sont pas affectés. Les nœuds distants doivent également respecter la politique relative aux URL sortantes des fournisseurs (OMNIROUTE_ALLOW_LOCAL_PROVIDER_URLS / OMNIROUTE_ALLOW_PRIVATE_PROVIDER_URLS) ; les hôtes de métadonnées cloud ne sont jamais utilisés pour le routage. |
OMNIROUTE_OIDC_DISABLE_PASSWORD_LOGIN |
false |
src/app/api/auth/login/route.ts |
Lorsque OIDC est activé, désactive la connexion par mot de passe afin que les utilisateurs puissent uniquement s’authentifier via l’authentification unique OIDC. L’alias court OIDC_DISABLE_PASSWORD_LOGIN est également accepté ; l’indicateur de fonctionnalité du tableau de bord portant la même clé est prioritaire. (#10889) |
OIDC_DISABLE_PASSWORD_LOGIN |
false |
src/app/api/auth/login/route.ts |
Alias court de OMNIROUTE_OIDC_DISABLE_PASSWORD_LOGIN (#10889). |
Liste de contrôle du renforcement de la sécurité
Section intitulée « Liste de contrôle du renforcement de la sécurité »# Configuration de sécurité minimale pour la production :AUTH_COOKIE_SECURE=true # Nécessite HTTPSREQUIRE_API_KEY=true # Authentifie tous les appels au proxyALLOW_API_KEY_REVEAL=false # Ne jamais exposer les clés dans l’interface utilisateurCORS_ALLOWED_ORIGINS=https://your.domain.comMAX_BODY_SIZE_BYTES=5242880 # Limite de 5 Mo5. Assainissement des entrées et protection des PII
Section intitulée « 5. Assainissement des entrées et protection des PII »OmniRoute fournit une défense à deux niveaux : l’analyse des injections côté requête et la suppression des PII côté réponse.
⚠️ Limites : ces garde-fous reposent sur des détections heuristiques au mieux, et ne constituent ni un pare-feu complet contre les injections de prompt ni un système DLP pour les PII. Ils peuvent produire des faux positifs (prompts bénins de persona ou de jeu de rôle signalés) et des faux négatifs (leet speak, espacement, motifs dans d’autres langues que l’anglais). À eux seuls, ils ne suffisent pas à garantir la conformité. Ajustez les modes et effectuez des tests avec votre trafic avant de vous y fier.
Côté requête : protection contre les injections de prompt
Section intitulée « Côté requête : protection contre les injections de prompt »| Variable | Valeur par défaut | Fichier source | Description |
|---|---|---|---|
INPUT_SANITIZER_ENABLED |
true |
src/middleware/promptInjectionGuard.ts |
Active l’analyse des messages entrants afin de détecter les motifs d’injection de prompt. |
INPUT_SANITIZER_MODE |
warn |
src/middleware/promptInjectionGuard.ts |
Politique d’injection : warn = journalisation uniquement, block = rejet de la requête avec le code 400. L’ancien mode redact ne supprime pas le texte d’injection ; utilisez PII_REDACTION_ENABLED pour réécrire les PII de la requête. |
INJECTION_GUARD_MODE |
(non défini) | src/middleware/promptInjectionGuard.ts |
Ancien alias de INPUT_SANITIZER_MODE — même comportement. |
INPUT_SANITIZER_BLOCK_THRESHOLD |
high |
src/shared/utils/injectionSeverity.ts |
Sévérité minimale rejetée lorsque MODE=block : high (par défaut), medium ou low. Les motifs de sévérité moyenne sont uniquement observés, sauf si le seuil est abaissé. |
INJECTION_GUARD_BLOCK_THRESHOLD |
(non défini) | src/shared/utils/injectionSeverity.ts |
Ancien alias de INPUT_SANITIZER_BLOCK_THRESHOLD — même comportement. |
PII_REDACTION_ENABLED |
false |
src/lib/guardrails/piiMasker.ts |
Lorsque défini sur true, masque les PII dans les requêtes entrantes (indépendamment du mode d’injection). |
CREDENTIAL_REDACTION_ENABLED |
false |
src/lib/guardrails/credentialMasker.ts |
Masque les motifs connus de clés d’API et de jetons secrets dans les charges utiles des requêtes et des réponses. Facultatif ; fonctionne comme PII_REDACTION_ENABLED. |
Côté réponse : assainissement des PII
Section intitulée « Côté réponse : assainissement des PII »| Variable | Valeur par défaut | Fichier source | Description |
|---|---|---|---|
PII_RESPONSE_SANITIZATION |
false |
src/lib/piiSanitizer.ts |
Analyse les réponses du LLM afin de détecter les fuites de PII avant de les renvoyer au client. |
PII_RESPONSE_SANITIZATION_MODE |
redact |
src/lib/piiSanitizer.ts |
redact = masque les PII, warn = journalisation uniquement, block = supprime l’intégralité de la réponse. |
Assainissement du contexte des routes à jeton de VS Code
Section intitulée « Assainissement du contexte des routes à jeton de VS Code »| Variable | Valeur par défaut | Fichier source | Description |
|---|---|---|---|
OMNIROUTE_VSCODE_SANITIZE_CONTEXT |
1 |
src/app/api/v1/vscode/contextSanitizer.ts |
Supprime le contexte implicite de l’éditeur actif (editorContext, activeEditor, currentFile, selection, openTabs…) des requêtes /v1/vscode/[token]/* et masque le contenu des fichiers sensibles explicitement joints. Sécurisé par défaut ; définissez cette variable sur 0 pour le désactiver. |
Scénarios
Section intitulée « Scénarios »| Scénario | Configuration |
|---|---|
| Conformité en entreprise | INPUT_SANITIZER_ENABLED=true, INPUT_SANITIZER_MODE=block, PII_REDACTION_ENABLED=true, PII_RESPONSE_SANITIZATION=true (blocage des injections + masquage des PII dans les requêtes et les réponses ; les modes sont indépendants) |
| Surveillance uniquement | INPUT_SANITIZER_ENABLED=true, INPUT_SANITIZER_MODE=warn — journalise sans jamais bloquer |
| Usage personnel | Laissez tout désactivé — aucune surcharge |
6. Politiques relatives aux outils et au routage
Section intitulée « 6. Politiques relatives aux outils et au routage »| Variable | Valeur par défaut | Fichier source | Description |
|---|---|---|---|
TOOL_POLICY_MODE |
disabled |
src/lib/toolPolicy.ts |
Contrôle l’accès du LLM aux outils/appels de fonctions. allowlist = uniquement les outils répertoriés, denylist = tous sauf ceux répertoriés, disabled = aucune restriction. |
OMNIROUTE_PAYLOAD_RULES_PATH |
./config/payloadRules.json |
open-sse/services/payloadRules.ts |
Chemin vers le fichier JSON des règles de manipulation des charges utiles (ajustements en amont propres à chaque modèle/protocole). |
OMNIROUTE_PAYLOAD_RULES_RELOAD_MS |
5000 |
open-sse/services/payloadRules.ts |
Intervalle de rechargement (ms) pour le rechargement à chaud du fichier de règles de charge utile. Minimum : 1000. |
OMNIROUTE_PREFER_CLAUDE_CODE_FOR_UNPREFIXED_CLAUDE_MODELS |
false |
open-sse/services/model.ts |
Option facultative : achemine les identifiants de modèles claude-* sans préfixe provenant des clients Claude Code via le compte OAuth Claude Code au lieu d’exiger un préfixe de fournisseur. Les préfixes de fournisseur explicites restent prioritaires. Également configurable au moyen d’un bouton dans le tableau de bord, sur la page du fournisseur Claude. |
COMBO_CONCURRENCY_PER_MODEL |
3 |
open-sse/services/comboConfig.ts |
Limite d’accès concurrent par modèle pour les combinaisons en tourniquet (#9100). Le sémaphore des combinaisons en tourniquet était strictement limité à 3 requêtes simultanées par modèle, sans possibilité de remplacement, ce qui mettait en file d’attente derrière cette limite le trafic présentant une concurrence plus élevée. Valeur validée à >= 1 et plafonnée à <= 32. |
DISABLE_CONTEXT_WINDOW_CHECKS |
false |
open-sse/handlers/chatCore.ts |
Option facultative dangereuse qui ignore la vérification locale d’OmniRoute concernant la fenêtre de contexte et le nombre maximal de jetons d’entrée pour les requêtes directes visant un seul modèle. Les fournisseurs en amont continuent d’appliquer leurs limites réelles ; la compression des invites et la propre limite de jetons de sortie du modèle restent actives. L’ordre de priorité effectif est le suivant : remplacement par la base de données Feature Flags > variable d’environnement > valeur par défaut ; aucun redémarrage n’est requis. |
OMNIROUTE_SELF_HOSTED_PROVIDERS |
(non défini) | open-sse/services/selfHostedEntry.ts |
Document YAML providers: en ligne (RIC-738, D4). Lorsqu’il est défini (avec ou sans bloc strategy:), /v1/chat/completions est redirigé vers le point d’entrée unifié auto-hébergé compatible avec OpenAI plutôt que vers le pipeline cloud. Lorsqu’il n’est pas défini (valeur par défaut), la route passe directement au pipeline cloud existant. Voir docs/routing/SELF_HOSTED_OPENAI_ENTRY.md. |
OMNIROUTE_SELF_HOSTED_PROVIDERS_FILE |
(non défini) | open-sse/services/selfHostedEntry.ts |
Chemin vers un fichier YAML contenant le même document providers: que OMNIROUTE_SELF_HOSTED_PROVIDERS, pour les déploiements qui préfèrent un fichier à une variable d’environnement en ligne. L’un ou l’autre active le point d’entrée auto-hébergé. |
OMNIROUTE_SELF_HOSTED_API_KEY |
(non défini — route ouverte) | open-sse/services/selfHostedEntry.ts |
Clé API partagée facultative pour le point d’entrée unifié auto-hébergé (structure D5, réservée au système de quotas par clé). Lorsqu’elle est définie, les requêtes doivent inclure Authorization: Bearer <key>. Lorsqu’elle n’est pas définie, la route est ouverte, conformément au modèle existant de fournisseur local auto-hébergé (déploiement sur la boucle locale ou un réseau de confiance). |
OMNIROUTE_SELF_HOSTED_STRATEGY |
(non défini) | open-sse/services/routingStrategies.ts |
Document YAML strategy: en ligne pour le moteur de routage déterministe (M2/RIC-740, D3) — liste noire/liste blanche, disjoncteur avec délai de récupération, priorité au coût, prise en compte de la latence et chaîne de repli. Remplace, pour chaque clé, un bloc strategy: en ligne imbriqué dans OMNIROUTE_SELF_HOSTED_PROVIDERS. Voir docs/routing/DETERMINISTIC_ROUTING.md. |
OMNIROUTE_SELF_HOSTED_STRATEGY_FILE |
(non défini) | open-sse/services/routingStrategies.ts |
Chemin vers un fichier YAML contenant le même document strategy: que OMNIROUTE_SELF_HOSTED_STRATEGY, pour les déploiements qui préfèrent un fichier à une variable d’environnement en ligne. |
OMNIROUTE_DISABLE_CONVERSATION_TRACKING |
(non défini) | open-sse/services/conversationTracker.ts |
Définissez cette variable sur 1 pour arrêter de collecter l’historique des conversations. resolveConversationId() renvoie un résultat non suivi avant de lire SQLite ou d’analyser l’historique des messages, et les identifiants de session fournis par le client sont également pris en compte. La gestion des sessions de routage reste inchangée et les enregistrements existants ne sont pas supprimés. Cette option est destinée aux déploiements qui n’utilisent pas la vue des conversations du tableau de bord et souhaitent empêcher la table des tours de continuer à croître. |
7. URL et synchronisation cloud
Section intitulée « 7. URL et synchronisation cloud »| Variable | Valeur par défaut | Fichier source | Description |
|---|---|---|---|
BASE_URL |
http://localhost:20128 |
src/lib/cloudSync.ts |
URL côté serveur utilisée par les tâches de synchronisation internes pour appeler /api/sync/cloud. Conservez une URL de bouclage/de conteneur, même lorsque l’application est exposée publiquement par l’intermédiaire d’un proxy. |
CLOUD_URL |
(vide) | src/lib/cloudSync.ts |
URL du point de terminaison du relais cloud (fonctionnalité premium). |
CLOUD_SYNC_TIMEOUT_MS |
12000 |
src/lib/cloudSync.ts |
Délai d’expiration HTTP des requêtes de synchronisation cloud. |
OMNIROUTE_BUILD_PROFILE |
full |
Configuration de build Webpack | Profil utilisé lors du build (définissez-le sur minimal pour exclure physiquement du bundle les modules privilégiés). |
OMNIROUTE_STANDALONE_DIR |
sortie standalone .build/ | scripts/build/colocate-standalone.mjs |
Remplacement, lors du build, du répertoire de sortie standalone utilisé par l’étape de colocalisation post-build. Il ne s’agit pas d’un paramètre d’exécution. |
OMNIROUTE_CLOUD_SYNC_SECRET |
(vide) | src/lib/cloudSync.ts |
Secret partagé utilisé pour vérifier la signature HMAC-SHA256 des réponses de synchronisation cloud. |
OMNIROUTE_CLOUD_SYNC_SECRETS |
false |
src/lib/cloudSync.ts |
Définissez cette variable sur true pour autoriser le point de terminaison de synchronisation cloud à remplacer les identifiants locaux. La valeur par défaut est false. |
OMNIROUTE_CLOUD_SYNC_ENFORCE_SIGNATURE |
false |
src/lib/cloudSync.ts |
Définissez cette variable sur true pour rejeter une réponse de synchronisation cloud non signée lorsqu’aucun secret local n’est configuré (#13679). Toute signature présente est systématiquement vérifiée — et systématiquement rejetée lorsque OMNIROUTE_CLOUD_SYNC_SECRET n’est pas définie — indépendamment de cet indicateur. La vérification deviendra obligatoire par défaut dans la v3.9. |
OMNIROUTE_ZED_IMPORT_LEGACY_ONE_STEP |
false |
src/app/api/providers/zed/import/route.ts |
Définissez cette variable sur true pour revenir au comportement en une seule étape de la v3.8.5, qui consiste à « tout importer » sans confirmation de l’utilisateur. |
NEXT_PUBLIC_BASE_URL |
http://localhost:20128 |
OAuth, tableau de bord, synchronisation | URL publique utilisée pour le redirect_uri OAuth, les liens du tableau de bord et les URL publiques générées. Définissez-la sur l’URL publique stable lorsque les rappels OAuth ou les liens générés pour le navigateur doivent utiliser un hôte canonique de proxy inverse. |
NEXT_PUBLIC_CLOUD_URL |
(vide) | Côté client | Équivalent côté client de CLOUD_URL. |
NEXT_PUBLIC_APP_URL |
(non défini) | src/shared/services/cloudSyncScheduler.ts |
Solution de repli héritée pour NEXT_PUBLIC_BASE_URL. |
NEXT_PUBLIC_PORT |
(non défini — utilise PORT en repli) |
src/shared/hooks/useDisplayBaseUrl.ts |
Port de repli côté client pour les URL d’affichage lorsqu’aucune origine n’est connue (SSR/tests) ; lu avant PORT. |
OMNIROUTE_PUBLIC_BASE_URL |
(non défini) | Résolveur d’origine publique, URL d’images | Origine OmniRoute destinée au navigateur et ayant la priorité la plus élevée, utilisée pour générer les URL publiques et valider l’origine du navigateur hors tableau de bord. Définissez-la lorsque OpenWebUI ou un autre relais accède à OmniRoute via une URL interne, mais que le navigateur de l’utilisateur doit récupérer les médias générés depuis une origine LAN, un tunnel ou une origine publique. N’incluez pas /v1. |
OMNIROUTE_PROVIDER_MANIFEST_URL |
(non défini) | open-sse/config/providerPluginManifestUrl.ts |
URL absolue du manifeste du plugin fournisseur annoncée aux clients sidecar. Lorsqu’elle n’est pas définie, OmniRoute dérive /api/v1/provider-plugin-manifest de l’origine de la requête ou de HOST/PORT. |
OMNIROUTE_PUBLIC_PROTOCOL |
http |
open-sse/config/providerPluginManifestUrl.ts |
Protocole utilisé lors de la dérivation de l’URL du manifeste du plugin fournisseur à partir de HOST/PORT sans origine de requête. Définissez-le sur https derrière un proxy public terminant TLS lorsqu’aucune valeur explicite de OMNIROUTE_PROVIDER_MANIFEST_URL n’est définie. |
OMNIROUTE_TRUST_PROXY |
(non défini) | src/server/origin/publicOrigin.ts |
Mode de confiance facultatif pour les en-têtes d’origine publique transférés. Non défini = ne pas faire confiance à Forwarded / X-Forwarded-* pour les décisions de sécurité. true / loopback n’accorde sa confiance à l’hôte et au protocole transférés que depuis un proxy loopback marqué par un jeton. private / lan accorde également sa confiance aux pairs proxy du LAN privé. En production, privilégiez une valeur explicite pour NEXT_PUBLIC_BASE_URL. |
KIE_CALLBACK_URL |
(non défini) | open-sse/utils/kieTask.ts |
URL de rappel publique pour les tâches kie.ai asynchrones. Remplacement prioritaire avant OMNIROUTE_KIE_CALLBACK_URL et OMNIROUTE_PUBLIC_URL. |
OMNIROUTE_KIE_CALLBACK_URL |
(non défini) | open-sse/utils/kieTask.ts |
Autre nom de KIE_CALLBACK_URL. Utilisé comme solution de repli lorsque la variable principale n’est pas définie. |
OMNIROUTE_PUBLIC_URL |
(non défini) | open-sse/utils/kieTask.ts |
Origine publique utilisée pour composer les URL de rappel asynchrones. Solution de repli de priorité la plus faible pour les rappels kie.ai ; également utilisée comme URL publique générique pour d’autres relais. |
OMNIROUTE_CROF_USAGE_URL |
https://crof.ai/usage_api/ |
open-sse/services/usage.ts |
Point de terminaison de consultation du quota CrofAI utilisé par la page Utilisation. À remplacer pour les relais / données de test. |
OMNIROUTE_OPENCODE_QUOTA_URL |
https://opencode.ai/zen/go/v1/usage |
open-sse/services/opencodeQuotaFetcher.ts |
Point de terminaison officiel d’utilisation OpenCode Go, authentifié par clé API et utilisé par la page Utilisation. À remplacer pour les relais / données de test. |
OPENCODE_SYNTHESIZE_CLI_HEADERS |
true |
open-sse/executors/opencode.ts |
Synthétise les en-têtes d’identité d’OpenCode CLI (User-Agent, x-opencode-client/project, UUID de requête/session) pour les requêtes en amont opencode-go/zen lorsque le client ne les a pas envoyés, afin que Cloudflare les accepte à la sortie d’un VPS (#6210/#5997). Activé par défaut depuis #10571 ; désactivez-le avec false/0/no/off. |
OPENCODE_USER_AGENT |
opencode/1.18.31 |
open-sse/utils/opencodeHeaders.ts |
User-Agent par défaut utilisé lorsque OPENCODE_SYNTHESIZE_CLI_HEADERS est activé et qu’aucun remplacement <PROVIDER>_USER_AGENT propre au fournisseur n’est défini. Appliqué uniquement aux exécuteurs opencode. Pour une requête sans clé soumise aux restrictions du service en amont, une valeur configurée qui ne contient pas opencode/<version >= 1.17> est remplacée par cette valeur par défaut au lieu d’être refusée. |
OPENCODE_CLIENT |
desktop |
open-sse/executors/opencode.ts |
Valeur de l’en-tête x-opencode-client synthétisé lorsque OPENCODE_SYNTHESIZE_CLI_HEADERS est activé. |
OPENCODE_PROJECT |
global |
open-sse/executors/opencode.ts |
Valeur de l’en-tête x-opencode-project synthétisé lorsque OPENCODE_SYNTHESIZE_CLI_HEADERS est activé. |
OPENCODE_FREE_TIER_REQUEST_CONTRACT |
(non défini) | open-sse/executors/opencodeFreeTierContract.ts |
Définissez cette variable sur off pour ne plus ajuster le corps des requêtes OpenCode sans clé (indicateur de streaming et liste d’outils). Les en-têtes continuent d’être appliqués. La valeur est lue à chaque requête ; toute modification prend donc effet immédiatement. |
OPENCODE_FREE_TIER_PLACEHOLDER_TOOLS |
(non défini) | open-sse/executors/opencodeFreeTierContract.ts |
Noms d’outils séparés par des virgules à déclarer dans une requête OpenCode sans clé qui n’en contient aucun, lorsque rien n’a encore été observé pour ce modèle. Une valeur vide entraîne l’utilisation d’un unique outil fictif que le modèle reçoit pour instruction de ne pas appeler. Au maximum 32 entrées, [A-Za-z_][A-Za-z0-9_-]{0,63} ; les entrées non valides sont ignorées. |
OMNIROUTE_OLLAMA_CLOUD_USAGE_URL |
https://ollama.com/settings |
open-sse/services/usage.ts |
URL des paramètres Ollama Cloud utilisée pour extraire les informations de quota. À remplacer pour les relais ou les données de test. |
OLLAMA_USAGE_COOKIE |
(non défini) | open-sse/services/usage.ts |
Cookie __Secure-session d’Ollama Cloud utilisé pour extraire les informations de quota depuis la page des paramètres. Donnée sensible ; privilégiez le champ du tableau de bord propre à chaque connexion lorsque plusieurs comptes sont configurés. |
OLLAMA_CLOUD_USAGE_COOKIE |
(non défini) | open-sse/services/usage.ts |
Autre variable d’environnement pour le cookie __Secure-session d’Ollama Cloud. Donnée sensible ; privilégiez le champ du tableau de bord propre à chaque connexion lorsque plusieurs comptes sont configurés. |
OMNIROUTE_OLLAMA_USAGE_COOKIE |
(non défini) | open-sse/services/usage.ts |
Autre variable d’environnement pour le cookie __Secure-session d’Ollama Cloud, utilisée avant les alias plus courts. Donnée sensible ; privilégiez le champ du tableau de bord propre à chaque connexion lorsque plusieurs comptes sont configurés. |
OMNIROUTE_CODEWHISPERER_BASE_URL |
https://codewhisperer.us-east-1.amazonaws.com |
open-sse/services/usage.ts |
Point de terminaison des limites d’utilisation de CodeWhisperer (AWS Kiro). À remplacer pour les relais ou les données de test. |
[!IMPORTANT] Lors d’un déploiement derrière un proxy inverse (nginx, Caddy), définissez
NEXT_PUBLIC_BASE_URLsur votre URL publique stable (par exemple,https://omniroute.example.com) lorsque les rappels OAuth ou les liens publics générés doivent utiliser ce nom d’hôte. Sans cela, les rappels OAuth peuvent échouer, car le redirect_uri ne correspondra pas, et les liens publics générés peuvent pointer vers l’origine interne du conteneur.Conservez
BASE_URLcomme URL interne de bouclage ou de conteneur pour les tâches serveur à serveur. N’utilisez pas une valeur d’Originde navigateur ni un nom d’hôte public pour les requêtes internes vers soi-même qui transportent des identifiants.Les écritures authentifiées du tableau de bord ne nécessitent pas d’URL de base publique statique : le tableau de bord envoie les requêtes non sûres de même origine avec un jeton CSRF lié à la session. OmniRoute continue toutefois de centraliser la validation de l’origine publique pour les intégrations de navigateur hors tableau de bord : les variables d’environnement d’URL publique explicites sont approuvées en priorité ; les en-têtes
Forwarded/X-Forwarded-*bruts sont ignorés, sauf siOMNIROUTE_TRUST_PROXYest activé et que le pair proxy immédiat est marqué comme approuvé au moyen d’un jeton. N’utilisez pas les paramètres CORS pour corriger les requêtes de même origine du tableau de bord ; CORS concerne uniquement les clients de navigateur interorigines.
8. Proxy sortant
Section intitulée « 8. Proxy sortant »Acheminez les appels aux fournisseurs de LLM en amont via un proxy HTTP ou SOCKS5 afin de contrôler le trafic sortant, d’effectuer un routage géographique ou de masquer l’adresse IP.
| Variable | Valeur par défaut | Fichier source | Description |
|---|---|---|---|
ENABLE_SOCKS5_PROXY |
true |
open-sse/executors |
Active l’agent proxy SOCKS5 pour les appels en amont. Définissez cette variable sur false pour le désactiver. |
NEXT_PUBLIC_ENABLE_SOCKS5_PROXY |
true |
Côté client | Indique côté client la disponibilité de SOCKS5. |
PROXY_SKIP_RECENTLY_FAILED |
false |
src/shared/utils/featureFlags.ts |
Indicateur de fonctionnalité à activer explicitement (voir FEATURE_FLAGS.md ; une substitution définie dans la base de données du tableau de bord est prioritaire). Les pools de proxys et la rotation par compte cessent de reproposer un membre qui vient d’échouer (sonde TCP refusée ou réponse 429 via celui-ci) pendant une durée qui double à chaque nouvel échec, jusqu’à une limite maximale. true (ou 1, yes) l’active. |
HTTP_PROXY |
(non défini) | Standard Node.js | Proxy HTTP pour les appels en amont. |
HTTPS_PROXY |
(non défini) | Standard Node.js | Proxy HTTPS pour les appels en amont. |
ALL_PROXY |
(non défini) | Standard Node.js | Proxy universel (prend en charge socks5://). |
OMNIROUTE_PROXY_ECHO_URL |
(non défini) | src/lib/proxyEchoTarget.ts |
Fixe à une seule URL la cible de renvoi de l’adresse IP utilisée par les sondes de sortie du proxy. Si cette variable n’est pas définie, la sonde essaie api64.ipify.org, puis api4.ipify.org, afin que les tunnels prenant uniquement en charge IPv4 ne soient pas signalés comme indisponibles (#9694). |
NO_PROXY |
(non défini) | Standard Node.js | Noms d’hôte/adresses IP séparés par des virgules pour contourner le proxy. |
OMNIROUTE_PROXY_DISPATCHER_CONNECTIONS |
32 |
open-sse/utils/proxyDispatcher.ts |
Nombre maximal de sockets simultanés par répartiteur de proxy HTTP/SOCKS mis en cache. Les flux SSE de longue durée, tels que Codex /v1/responses, nécessitent plusieurs connexions lorsque plusieurs requêtes partagent le même proxy au niveau du compte. Les valeurs supérieures à 256 sont plafonnées. |
SOCKS_HANDSHAKE_TIMEOUT_MS |
10000 |
open-sse/utils/socksConnectorWithFamily.ts |
Délai d’expiration de la négociation SOCKS5 (connexion), en ms. Augmentez-le lorsqu’un même hôte de passerelle résidentielle est soumis à une forte concurrence (par exemple, 100 requêtes simultanées) : la négociation réelle peut dépasser 10 s lorsque le pool est saturé, même si le proxy reste accessible, ce qui provoquerait sinon une fausse erreur [Proxy Fast-Fail] Proxy unreachable. Plafonné à 120000. |
PROXY_FAIL_OPEN |
false |
src/sse/handlers/chatHelpers.ts |
Lorsque cette variable vaut false (valeur par défaut), une requête dont le proxy attribué ne peut pas être résolu est refusée (échec fermé) au lieu de revenir à une connexion directe, ce qui empêche les fuites de l’adresse IP réelle. Définissez-la sur true pour rétablir l’ancien basculement vers DIRECT. |
ENABLE_TLS_FINGERPRINT |
false |
open-sse/executors |
Usurpe l’empreinte TLS à l’aide de wreq-js (imite Chrome 124). Contourne le blocage JA3/JA4. |
TLS_FINGERPRINT_PROVIDERS |
(non défini) | open-sse/utils/proxyFetch.ts |
Liste d’autorisation de fournisseurs, séparés par des virgules, pour le nouveau routage TLS via proxy (open-sse/utils/proxyFetch.ts). Lorsqu’elle n’est pas définie, les connexions TLS directes conservent leur ancien comportement ; seuls ces fournisseurs passent par la passerelle d’empreinte Chrome 124. |
OMNIROUTE_TURNSTILE_IGNORE_TLS_ERRORS |
false |
open-sse/services/claudeTurnstileSolver.ts |
Autorise le contexte de navigateur Playwright de Claude Turnstile à ignorer les erreurs de certificat HTTPS. |
Scénarios
Section intitulée « Scénarios »| Scénario | Configuration |
|---|---|
| SOCKS5 via un tunnel SSH | ALL_PROXY=socks5://127.0.0.1:7890, ENABLE_SOCKS5_PROXY=true |
| Proxy HTTP d’entreprise | HTTP_PROXY=http://proxy.corp.com:3128, HTTPS_PROXY=http://proxy.corp.com:3128, NO_PROXY=localhost,internal.corp.com |
| Protection contre le fingerprinting | ENABLE_TLS_FINGERPRINT=true — nécessite wreq-js (inclus) |
| Sortie contrôlée / aucun accès direct | Laissez PROXY_FAIL_OPEN=false (valeur par défaut). Les requêtes échouent explicitement lorsque le proxy est indisponible, au lieu de fuiter via une connexion directe. |
| Ancien / développement — repli en direct | PROXY_FAIL_OPEN=true. Rétablit le comportement antérieur au durcissement : une connexion directe est utilisée lorsque la résolution du proxy échoue. |
Remarque (contournement de la validation NVIDIA — #3226) : le point de terminaison de validation des clés API de NVIDIA se bloque lorsqu’il est acheminé via le fetch global corrigé pour le proxy/TLS (répartiteur undici → 504).
src/lib/providers/validation.ts::directHttpsRequest()contourne intentionnellement le correctif du proxy pour cet unique appel de validation à l’aide desafeOutboundFetch({ bypassProxyPatch: true }). Il s’agit d’une exception documentée et de portée limitée — elle n’affecte pas le trafic sortant des discussions/de l’utilisation. La portée du contournement est verrouillée partests/unit/proxy-bypass-scope-guard-3226.test.ts.
9. Intégration des outils CLI
Section intitulée « 9. Intégration des outils CLI »Contrôle la manière dont OmniRoute découvre et lance les sidecars CLI (Claude Code, Codex, etc.).
| Variable | Valeur par défaut | Fichier source | Description |
|---|---|---|---|
CLI_MODE |
auto |
src/shared/services/cliRuntime.ts |
auto = rechercher dans le PATH système ; manual = utiliser uniquement des chemins explicites. |
CLI_EXTRA_PATHS |
(non définie) | src/shared/services/cliRuntime.ts |
Entrées PATH supplémentaires pour la détection des binaires CLI (séparées par des deux-points). |
CLI_CONFIG_HOME |
(non définie) | src/shared/services/cliRuntime.ts |
Remplace le répertoire personnel utilisé pour lire les configurations CLI (~/.claude, ~/.codex). Il doit être absolu et situé dans le répertoire personnel du processus — ou, dans un conteneur, correspondre à un chemin monté par liaison (c’est ainsi que /host-home fonctionne). Toute autre valeur entraîne l’utilisation du répertoire personnel. |
CLI_ALLOW_CONFIG_WRITES |
true |
src/shared/services/cliRuntime.ts |
Autorise OmniRoute à écrire dans les fichiers de configuration CLI (actualisation des jetons, données de session). Définissez cette variable sur false pour que toute écriture dans la configuration CLI échoue avec une erreur explicite indiquant que les écritures sont désactivées. |
CLI_CLAUDE_BIN |
claude |
src/shared/services/cliRuntime.ts |
Chemin personnalisé vers le binaire CLI de Claude. |
CLI_CODEX_BIN |
codex |
src/shared/services/cliRuntime.ts |
Chemin personnalisé vers le binaire CLI de Codex. |
CLI_DROID_BIN |
droid |
src/shared/services/cliRuntime.ts |
Chemin personnalisé vers le binaire CLI de Droid. |
CLI_OPENCLAW_BIN |
openclaw |
src/shared/services/cliRuntime.ts |
Chemin personnalisé vers le binaire CLI d’OpenClaw. |
CLI_CURSOR_BIN |
agent, puis cursor |
src/shared/services/cliRuntime.ts |
Chemin personnalisé vers le binaire de l’agent Cursor. En son absence, la détection essaie d’abord agent, puis se rabat sur cursor. |
CLI_CLINE_BIN |
cline |
src/shared/services/cliRuntime.ts |
Chemin personnalisé vers le binaire CLI de Cline. |
CLI_5DIVE_BIN |
5dive |
src/shared/services/cliRuntime.ts |
Chemin personnalisé vers le binaire CLI de 5dive. |
CLI_5DIVE_STATE_DIR |
/var/lib/5dive |
src/shared/services/cliRuntime.ts |
Répertoire d’état système de 5dive (profils d’authentification appartenant à root) ; correspond à la valeur par défaut de STATE_DIR propre à 5dive. |
CLI_CONTINUE_BIN |
cn |
src/shared/services/cliRuntime.ts |
Chemin personnalisé vers le binaire CLI de Continue. |
CLI_QODER_BIN |
qodercli |
src/shared/services/cliRuntime.ts |
Chemin personnalisé vers le binaire CLI de Qoder. |
CLI_QWEN_BIN |
qwen |
src/shared/services/cliRuntime.ts |
Chemin personnalisé vers le binaire CLI de Qwen Code. |
CLI_AIDER_BIN |
aider |
src/shared/services/cliRuntime.ts |
Chemin personnalisé vers le binaire CLI d’Aider. |
CLI_GOOSE_BIN |
goose |
src/shared/services/cliRuntime.ts |
Chemin personnalisé vers le binaire CLI de Goose. |
CLI_GEMINI_BIN |
gemini |
src/shared/services/cliRuntime.ts |
Chemin personnalisé vers le binaire CLI de Google Gemini — uniquement pour la détection et les contrôles d’intégrité côté serveur ; omniroute run gemini résout le binaire gemini à partir du PATH système. |
CLI_KILO_BIN |
kilocode |
src/shared/services/cliRuntime.ts |
Chemin personnalisé vers le binaire CLI de Kilo Code. |
CLI_OPENCODE_BIN |
opencode |
src/shared/services/cliRuntime.ts |
Chemin personnalisé vers le binaire CLI d’OpenCode. |
CLI_HERMES_BIN |
hermes |
src/shared/services/cliRuntime.ts |
Chemin personnalisé vers le binaire d’Hermes. Partagé par les deux entrées du catalogue (hermes et hermes-agent). |
CLI_FORGE_BIN |
forge |
src/shared/services/cliRuntime.ts |
Chemin personnalisé vers le binaire CLI de ForgeCode. |
CLI_JCODE_BIN |
jcode |
src/shared/services/cliRuntime.ts |
Chemin personnalisé vers le binaire CLI de jcode. |
CLI_DEEPSEEK_TUI_BIN |
deepseek-tui |
src/shared/services/cliRuntime.ts |
Chemin personnalisé vers le binaire TUI de DeepSeek. |
CLI_CODEWHALE_BIN |
codewhale |
src/shared/services/cliRuntime.ts |
Chemin personnalisé vers le binaire CLI de CodeWhale. |
CLI_SMELT_BIN |
smelt |
src/shared/services/cliRuntime.ts |
Chemin personnalisé vers le binaire CLI de Smelt. |
CLI_PI_BIN |
pi |
src/shared/services/cliRuntime.ts |
Chemin personnalisé vers le binaire de Pi (pi-coding-agent). |
CLI_CRUSH_BIN |
crush |
src/shared/services/cliRuntime.ts |
Chemin personnalisé vers le binaire CLI de Crush. |
CLI_OMP_BIN |
omp |
src/shared/services/cliRuntime.ts |
Chemin personnalisé vers le binaire de l’agent Oh My Pi (omp). |
CLI_LETTA_BIN |
letta |
src/shared/services/cliRuntime.ts |
Chemin personnalisé vers le binaire CLI de Letta. |
CLI_PRIME_AGENT_BIN |
prime-agent |
src/shared/services/cliRuntime.ts |
Chemin personnalisé vers le binaire Prime Agent (Prime Intellect). |
CLI_WINDSURF_BIN |
(aucune) | src/shared/services/cliRuntime.ts |
Chemin personnalisé vers le binaire de Windsurf. Windsurf n’est fourni avec aucune commande par défaut — la détection du binaire reste désactivée jusqu’à ce que cette variable soit définie. |
CLI_DEVIN_BIN |
devin |
open-sse/executors/devin-cli.ts |
Chemin personnalisé vers le binaire CLI de Devin (v3.8.0). Utilisé par l’exécuteur Windsurf/Devin. |
DEVIN_DESKTOP_VERSION |
3.6.27 |
open-sse/executors/devin-desktop.ts |
ide_version de Devin Desktop. Les valeurs de remplacement doivent respecter le format x.y.z ; les valeurs non valides entraînent l’utilisation de la valeur par défaut vérifiée. |
DEVIN_DESKTOP_EXTENSION_VERSION |
1.48.2 |
open-sse/executors/devin-desktop.ts |
extension_version du serveur de langage/Codeium intégré, distincte de l’ide_version de Desktop. Les valeurs de remplacement doivent respecter le format x.y.z ; les valeurs non valides entraînent l’utilisation de la valeur par défaut intégrée. |
CLI_DEVIN_AGENTIC_BIN |
devin |
open-sse/executors/devin-cli-agentic.ts |
Remplacement du CLI Devin réservé au pont agentique. L’exécuteur accepte uniquement le flux stdio ACP local en amont. |
DEVIN_AGENTIC_HOME |
(requise) | open-sse/executors/devin-cli-agentic.ts |
Répertoire personnel absolu et isolé pour le sous-processus Devin agentique ; les chemins de pont acceptés sont /home/bridge et les chemins .sandbox locaux à la tâche (sous Windows, C:\...\.sandbox\...). |
DEVIN_AGENTIC_ACP_TIMEOUT_MS |
120000 |
open-sse/executors/devin-cli-agentic.ts |
Durée maximale d’un tour ACP de Devin avant que le pont ne termine le processus enfant et ne renvoie explicitement un dépassement de délai. |
DEVIN_BRIDGE_MODEL |
devin-cli-agentic/swe-1-7 |
docker/devin-bridge/compose.yml |
Alias du modèle principal de Claude Code pour le pont isolé. Le banc d’essai actif remplace l’exemple par un modèle renvoyé par le compte Devin actuel. |
DEVIN_BRIDGE_SONNET_MODEL |
DEVIN_BRIDGE_MODEL |
docker/devin-bridge/compose.yml |
Alias du pont isolé utilisé lorsque Claude Code demande son modèle Sonnet par défaut. |
DEVIN_BRIDGE_OPUS_MODEL |
DEVIN_BRIDGE_MODEL |
docker/devin-bridge/compose.yml |
Alias du pont isolé utilisé lorsque Claude Code demande son modèle Opus par défaut. |
DEVIN_BRIDGE_HAIKU_MODEL |
DEVIN_BRIDGE_MODEL |
docker/devin-bridge/compose.yml |
Alias du pont isolé utilisé lorsque Claude Code demande son modèle Haiku par défaut. |
DEVIN_BRIDGE_SUBAGENT_MODEL |
DEVIN_BRIDGE_MODEL |
docker/devin-bridge/compose.yml |
Alias du pont isolé utilisé pour les sous-agents de Claude Code. |
DEVIN_SEAT_API_URL |
https://server.codeium.com |
open-sse/services/usage/devinCli.ts |
Remplacement facultatif de l’API de gestion des licences Codeium utilisée pour le quota du CLI Devin (GetUserStatus). |
AUGGIE_BIN |
auggie |
open-sse/executors/auggie.ts |
Remplacement par un chemin absolu du binaire CLI d’Augment (Auggie) utilisé par le fournisseur local auggie. Se rabat sur CLI_AUGGIE_BIN, puis sur une recherche dans le PATH. |
CLI_AUGGIE_BIN |
auggie |
open-sse/executors/auggie.ts |
Alias permettant de remplacer le chemin du binaire CLI d’Augment (Auggie) (vérifié après AUGGIE_BIN). |
ZCODE_BIN |
zcode |
open-sse/executors/zcode.ts |
Binaire utilisé pour le client stdio du fournisseur local zcode. Se rabat sur zcode dans le PATH. |
ZCODE_ARGS |
— | open-sse/executors/zcode.ts |
Tableau JSON (≤16 chaînes) d’arguments supplémentaires transmis au binaire zcode lorsqu’il est lancé via cliTools. |
ZCODE_CWD |
process.cwd() |
open-sse/executors/zcode.ts |
Répertoire de travail du sous-processus du serveur d’application ZCode. |
ZCODE_PROVIDER_ID |
builtin:zai-coding-plan |
open-sse/executors/zcode.ts |
Remplacement de l’identifiant du fournisseur envoyé au serveur d’application. |
ZCODE_SERVER_RUNTIME_ROOT |
~/.zcode/server |
open-sse/executors/zcode.ts |
Racine de l’environnement d’exécution du serveur d’application ZCode (où se trouvent les fichiers node et zcode-server.cjs intégrés). |
ZCODE_SERVER_NODE |
<runtimeRoot>/node |
open-sse/executors/zcode.ts |
Exécutable Node utilisé pour héberger le serveur d’application ZCode. |
ZCODE_SERVER_ENTRY |
<runtimeRoot>/zcode-server.cjs |
open-sse/executors/zcode.ts |
Script d’entrée du serveur d’application utilisé pour héberger le serveur ZCode. |
ZCODE_STARTUP_TIMEOUT_MS |
10000 |
open-sse/executors/zcode.ts |
Délai d’expiration au démarrage (ms) au-delà duquel le lancement d’un serveur d’application ZCode est considéré comme ayant échoué. |
ZCODE_RPC_TIMEOUT_MS |
30000 |
open-sse/executors/zcode.ts |
Délai d’expiration RPC par requête (ms) pour un appel au serveur d’application ZCode. |
ZCODE_TURN_TIMEOUT_MS |
120000 |
open-sse/executors/zcode.ts |
Durée maximale (ms) d’un tour ZCode avant que le superviseur ne signale un dépassement de délai. |
ZCODE_POLL_INTERVAL_MS |
250 |
open-sse/executors/zcode.ts |
Intervalle d’interrogation (ms) pour vérifier l’achèvement d’un tour ZCode. |
HERMES_HOME |
~/.hermes |
src/lib/cli-helper/config-generator/hermesHome.ts |
Répertoire personnel d’Hermes Agent dans lequel OmniRoute lit et écrit la configuration du CLI Hermes. Correspond à la variable d’environnement définie sous Windows par le programme d’installation PowerShell d’Hermes (%LOCALAPPDATA%\hermes). |
Synchronisation automatique des profils CLI
Section intitulée « Synchronisation automatique des profils CLI »Ces indicateurs de fonctionnalité sont facultatifs et désactivés par défaut. Ils peuvent également être activés ou désactivés depuis le tableau de bord CLI Code.
| Variable | Valeur par défaut | Fichier source | Description |
|---|---|---|---|
OMNIROUTE_AUTO_SYNC_CODEX_PROFILES |
false |
src/shared/constants/featureFlagDefinitions.ts |
Après la synchronisation des modèles d’un fournisseur, réécrit automatiquement les fichiers de profil ~/.codex/*.config.toml à partir du catalogue actif. Nécessite CLI_ALLOW_CONFIG_WRITES ; ne modifie jamais la configuration Codex active/par défaut, l’authentification, les paramètres Codex-lb ni le choix du fournisseur. |
OMNIROUTE_AUTO_SYNC_CLAUDE_PROFILES |
false |
src/shared/constants/featureFlagDefinitions.ts |
Après la synchronisation des modèles d’un fournisseur, réécrit automatiquement les fichiers de profil Claude Code ~/.claude/profiles/<name>/settings.json à partir du catalogue actif. Nécessite CLI_ALLOW_CONFIG_WRITES ; ne modifie jamais la configuration Claude active/par défaut, l’authentification ni le choix du fournisseur. |
Exemple Docker
Section intitulée « Exemple Docker »# Montez les binaires de l’hôte dans le conteneur et indiquez à OmniRoute où ils se trouvent :CLI_EXTRA_PATHS=/host-cli/binCLI_CONFIG_HOME=/host-homeCLI_ALLOW_CONFIG_WRITES=trueCLI_CLAUDE_BIN=/host-cli/bin/claudeCLI_CONFIG_HOME ne prend effet que lorsque le chemin est réellement monté par liaison depuis
l’hôte — associez-le à des montages tels que ~/.codex:/host-home/.codex:rw (voir le
profil host dans docker-compose.yml). Un chemin qui ne se trouve ni dans le
répertoire personnel de l’utilisateur du conteneur ni dans un montage par liaison est ignoré, car toute écriture à cet emplacement
serait perdue lors de la recréation du conteneur.
L’image s’exécute en tant que USER node ; un répertoire /root non monté ne constitue donc pas une
substitution valide.
| Variable | Valeur par défaut | Fichier source | Description |
|---|---|---|---|
OMNIROUTE_CONTAINER |
(auto) | src/shared/utils/containerEnv.ts |
Force l’activation (1/true) ou la désactivation (0/false) de la détection du conteneur. Nécessaire uniquement pour les environnements d’exécution non détectés automatiquement. |
OMNIROUTE_ALLOW_CONTAINER_CONFIG_WRITE |
false |
src/shared/services/cliRuntime.ts |
Autorise malgré tout l’écriture des configurations des outils CLI dans un chemin de conteneur non monté. L’équivalent en ligne de commande est --allow-container-write. |
Utilitaires du binaire CLI (omniroute)
Section intitulée « Utilitaires du binaire CLI (omniroute) »Ces variables ajustent le comportement propre au binaire CLI omniroute (et non la détection du processus auxiliaire
ci-dessus).
| Variable | Valeur par défaut | Fichier source | Description |
|---|---|---|---|
OMNIROUTE_LANG |
(système) | bin/cli/i18n.mjs |
Force la langue de sortie de la CLI. Paramètre régional BCP-47 (p. ex. en, pt-BR). Remplace les variables d’environnement de paramètres régionaux du système (LC_ALL, LC_MESSAGES). |
OMNIROUTE_SHOW_LOG |
(non définie) | bin/cli/runtime/processSupervisor.mjs |
Définissez cette variable sur 1 pour transmettre les sorties standard et d’erreur du serveur au terminal en mode supervisé. Équivaut à l’option --log de omniroute serve. |
OMNIROUTE_CLI_TOKEN |
(non définie) | bin/cli/api.mjs |
Jeton d’authentification de machine injecté sous forme d’en-tête x-omniroute-cli-token. Généré automatiquement dans la tâche 8.12. |
OMNIROUTE_HTTP_TIMEOUT_MS |
30000 |
bin/cli/api.mjs |
Délai d’expiration HTTP par tentative (ms) pour les requêtes de la CLI vers le serveur. |
OMNIROUTE_READY_TIMEOUT_MS |
60000 |
bin/cli/utils/pid.mjs |
Durée maximale (ms) pendant laquelle la CLI attend le point de terminaison d’intégrité du serveur avant d’afficher un avertissement d’expiration. Utile pour les démarrages à froid lents (p. ex. sous Windows). Également configurable via --ready-timeout. |
OMNIROUTE_VERBOSE |
0 |
bin/cli/api.mjs |
Définissez cette variable sur 1 pour afficher les diagnostics de nouvelle tentative et d’attente progressive sur stderr pendant l’exécution des commandes CLI. |
OMNIROUTE_PLUGIN_PATH |
(non définie) | bin/cli/plugins.mjs |
Répertoire personnalisé pour la découverte des plugins CLI (paquets omniroute-cmd-*). Utilise par défaut ~/.omniroute/plugins/ lorsque la variable n’est pas définie. Réservé à la CLI — cette valeur n’atteint jamais l’analyseur de plugins côté serveur, qui est configuré via OMNIROUTE_PLUGINS_DIR (section 2). |
10. Intégrations internes de l’agent et de MCP
Section intitulée « 10. Intégrations internes de l’agent et de MCP »| Variable | Valeur par défaut | Fichier source | Description |
|---|---|---|---|
OMNIROUTE_BASE_URL |
détection automatique | open-sse/mcp-server/server.ts |
URL explicite permettant aux outils MCP/A2A d’atteindre OmniRoute. Remplace la détection automatique de localhost. |
OMNIROUTE_API_KEY |
(non définie) | Modules MCP/A2A | Clé API pour les appels internes des outils MCP et des compétences A2A. |
OMNIROUTE_API_KEY_ID |
(non défini) | open-sse/mcp-server/audit.ts |
ID de clé pour l’attribution des journaux d’audit MCP. |
ROUTER_API_KEY |
(non définie) | Ancien système | Ancien alias de OMNIROUTE_API_KEY. |
OMNIROUTE_A2A_HISTORY_RETENTION_DAYS |
30 |
src/lib/a2a/taskManager.ts |
Nombre de jours pendant lesquels l’historique des tâches A2A est conservé dans la base de données locale avant qu’une ligne soit supprimée lors de la purge quotidienne. Une valeur non définie, non numérique ou <= 0 revient à 30. |
OMNIROUTE_A2A_MEMORY_HITS |
1 |
src/lib/a2a/taskExecution.ts |
Interrupteur d’arrêt de la fonctionnalité d’observabilité des accès mémoire A2A. Définissez-le sur 0 pour ignorer entièrement la recherche de rappel mémoriel pour une tâche ; toute autre valeur (y compris non définie) la maintient activée. |
OMNIROUTE_ISSUE_AGENT_ENABLED |
false |
src/app/api/issue-agent/runs/route.ts |
Active le point de terminaison de triage enregistré hors ligne/local d’Issue Agent. Laissez-le désactivé, sauf si vous exécutez explicitement des workflows locaux de triage enregistré. |
OMNIROUTE_ISSUE_AGENT_TIMEOUT_MS |
(non défini) | src/lib/issueAgent/execution.ts |
Délai d’expiration (ms) pour une seule exécution de triage enregistré d’Issue Agent. Limité à un maximum interne ; revient à la valeur par défaut intégrée lorsqu’il n’est pas défini ou qu’il est invalide. |
OMNIROUTE_CONTEXT |
(contexte actif) | bin/cli/program.mjs, bin/cli/api.mjs |
Contexte/profil du mode distant de la CLI pour les commandes omniroute ; remplace le contexte actif dans le stockage local des contextes. Équivalent à --context <name>. |
OMNIROUTE_CONTEXT_KEYCHAIN_DISABLED |
0 |
bin/cli/contexts.mjs |
Désactive le backend facultatif keytar du trousseau du système d’exploitation pour les identifiants de contexte de la CLI. Lorsqu’il est activé, les identifiants restent dans config.json avec le mode 0600 et la CLI émet un avertissement unique de repli ; prévu pour une utilisation volontaire sans interface graphique ou dans un conteneur. |
OMNIROUTE_MCP_ENFORCE_SCOPES |
false |
open-sse/mcp-server/server.ts |
Applique un contrôle d’accès fondé sur les portées aux appels d’outils MCP. |
OMNIROUTE_MCP_SCOPES |
(toutes) | open-sse/mcp-server/server.ts |
Portées séparées par des virgules : admin, combos, health, models, routing, budget, metrics, pricing, memory, skills. |
OMNIROUTE_MCP_COMPRESS_DESCRIPTIONS |
false |
open-sse/mcp-server/descriptionCompressor.ts |
Compresse les descriptions des outils MCP avant de sérialiser le manifeste. Valeurs d’activation : 1, true, on. |
OMNIROUTE_MCP_DESCRIPTION_COMPRESSION |
rtk |
open-sse/mcp-server/descriptionCompressor.ts |
Algorithme/profil de compression. Valeurs de désactivation : 0, false, off. |
OMNIROUTE_MCP_FETCH_TIMEOUT_MS |
10000 |
open-sse/mcp-server/fetchTimeout.ts |
Délai maximal d’abandon (ms) pour les lectures de gestion internes du serveur MCP (état, résilience, combinaisons, quota, utilisation). |
OMNIROUTE_MCP_UPSTREAM_TIMEOUT_MS |
60000 |
open-sse/mcp-server/fetchTimeout.ts |
Délai maximal avant abandon (ms) pour les sauts MCP qui attendent un fournisseur (route_request, web_search, web_fetch). |
OMNIROUTE_CORPUS_CACHE_SIZE |
5 |
src/lib/localCorpus/configured.ts |
Nombre maximal d’instances d’index de corpus local mises en cache en mémoire (LRU, une par répertoire racine indexé). Limité à un minimum de 1. |
MODEL_SYNC_INTERVAL_HOURS |
24 |
src/shared/services/modelSyncScheduler.ts |
Intervalle de synchronisation du catalogue de modèles, en heures. |
PROVIDER_LIMITS_SYNC_INTERVAL_MINUTES |
70 |
src/lib/usage/providerLimits.ts |
Intervalle d’interrogation des limites de débit et des quotas des fournisseurs. |
PROVIDER_LIMITS_SYNC_SPACING_MS |
1500 |
src/lib/usage/providerLimits.ts |
Délai (ms) entre les récupérations consécutives de quotas OAuth lors d’une synchronisation groupée ; les connexions OAuth sont traitées une par une pour éviter de surcharger un service en amont. 0 désactive cet espacement (exécution simultanée). |
OMNIROUTE_QUOTA_FETCH_MIN_INTERVAL_MS |
250 |
open-sse/services/quotaFetchThrottle.ts |
Intervalle minimal (ms) entre les récupérations consécutives de quotas en amont sur le chemin de contrôle préalable/surveillance de chaque requête ; espace les appels réseau simultanés afin que de nombreux comptes utilisant une même adresse IP ne surchargent pas le service en amont. Intégré aux mécanismes de récupération des quotas de Codex (/wham/usage), DeepSeek, Bailian (sur les deux sites de récupération), OpenCode et Crof (#6009, #6911). Le chemin de répartition générique usage.ts::getUsageForProvider (github/glm/minimax/nanogpt/xai/etc.) n’est pas encore couvert — il fait l’objet d’un suivi distinct. Les accès au cache ne sont pas affectés. 0 désactive cette fonctionnalité ; valeur limitée à 0..5000. |
PROVIDER_LIMITS_POST_USAGE_REFRESH_DELAY_MS |
5000 |
src/lib/usage/providerLimits.ts |
Délai (ms) avant l’actualisation des limites du fournisseur après un événement d’utilisation réel, afin de laisser à l’API de quota en amont le temps d’enregistrer la consommation. |
OMNIROUTE_LOGIN_BROWSER_PATH |
détection automatique | open-sse/services/adobeFireflyBrowserLogin.ts |
Chemin absolu vers un exécutable système Chrome ou Edge utilisé pour la connexion interactive à Adobe Firefly et le renouvellement hors écran. |
ADOBE_FIREFLY_BROWSER_REFRESH |
activé | open-sse/services/adobeFireflySession.ts |
Maintient à jour l’état IMS et l’état de risque du navigateur grâce à des sessions Chrome CDP propres à chaque compte. Définissez cette option sur 0 pour désactiver le renouvellement via le navigateur. |
ADOBE_FIREFLY_SESSION_DISK |
activé | open-sse/services/adobeFireflySession.ts |
Conserve les sessions Adobe réparées sous DATA_DIR après les redémarrages du processus. Définissez cette option sur 0 pour conserver les sessions uniquement en mémoire. |
ADOBE_FIREFLY_MIN_SUBMIT_GAP_MS |
12000 |
open-sse/services/adobeFireflySession.ts |
Intervalle minimal, en millisecondes, entre les soumissions de génération à Adobe Firefly ; 0 désactive l’espacement. |
ADOBE_FIREFLY_BATCH_EXTRA_GAP_MS |
15000 |
open-sse/services/adobeFireflySession.ts |
Période de pause supplémentaire, en millisecondes, après chaque troisième soumission Adobe réussie. |
ADOBE_FIREFLY_SUBMIT_BASE_DELAY_MS |
8000 |
open-sse/services/adobeFireflyClient.ts |
Délai de repli de base, en millisecondes, après des réponses Adobe 408 transitoires ; combiné à l’espacement des soumissions sur un maximum de cinq tentatives. |
OMNIROUTE_DISABLE_BACKGROUND_SERVICES |
false |
src/instrumentation-node.ts |
Désactive tous les services en arrière-plan (synchronisation, tarification, actualisation des modèles). Utile pour la CI/les tests. |
OMNIROUTE_ENABLE_RUNTIME_BACKGROUND_TASKS |
(non défini) | src/lib/config/runtimeSettings.ts |
Force l’activation des tâches en arrière-plan lorsqu’un environnement de test automatisé est détecté. Définissez cette option sur 1 pour remplacer l’heuristique de test. |
OMNIROUTE_BUDGET_RESET_JOB_INTERVAL_MS |
600000 |
src/lib/jobs/budgetResetJob.ts |
Fréquence de vérification de la réinitialisation du budget (ms). Valeur minimale : 10000. |
OMNIROUTE_CONNECTION_RECOVERY_INTERVAL_MS |
60000 |
src/lib/quota/connectionRecovery.ts |
Cadence de récupération proactive après le délai de réactivation des connexions (ms) : revalide les connexions dont la valeur transitoire rate_limited_until est arrivée à échéance, en dehors du chemin critique des requêtes. Minimum 5000. |
OMNIROUTE_DISABLE_CONNECTION_RECOVERY |
false |
src/lib/quota/connectionRecovery.ts |
Désactive le planificateur de récupération proactive après le délai de réactivation des connexions (la récupération différée dans getProviderCredentials reste applicable). |
OMNIROUTE_REASONING_CACHE_CLEANUP_INTERVAL_MS |
1800000 |
src/lib/jobs/reasoningCacheCleanupJob.ts |
Cadence de nettoyage du cache de raisonnement (ms). Minimum 60000. |
OMNIROUTE_REASONING_MIN_BUDGET |
non défini (désactivé) | open-sse/services/reasoningTokenBuffer.ts |
Seuil minimal facultatif pour les budgets de sortie des modèles de réflexion : la valeur max_tokens de l’appelant comprise dans [256, seuil) est relevée jusqu’au seuil (dans la limite du plafond de sortie du modèle). Non défini = les budgets clients ne sont jamais augmentés (#9507). |
OMNIROUTE_LOG_EXPORT_CRON |
0 * * * * |
src/lib/jobs/logExportJob.ts |
Expression cron (UTC) de la tâche d’exportation des journaux d’appels, qui traite chaque destination d’exportation de journaux activée. |
OMNIROUTE_CONFIG_HOT_RELOAD_MS |
5000 |
src/lib/config/hotReload.ts |
Intervalle d’interrogation (ms) pour le rechargement à chaud de la configuration. Toute valeur inférieure à 1000 est rejetée. |
OMNIROUTE_DISABLE_REDIS_AUTH_CACHE |
(activé) | src/lib/db/apiKeys.ts |
Définissez sur 1 pour contourner le cache d’authentification des clés d’API basé sur Redis (force les lectures dans la base de données). |
OMNIROUTE_RTK_TRUST_PROJECT_FILTERS |
0 |
open-sse/services/compression/engines/rtk/filterLoader.ts |
Approuve les règles de filtrage de projet RTK gérées par l’utilisateur sans vérification stricte des signatures. |
OMNIROUTE_LITE_MAX_TOOL_LENGTH |
2000 |
open-sse/services/compression/lite.ts |
Limite de caractères pour la troncature proactive des résultats d’outils Lite lorsque lite.maxToolLength n’est pas défini. Plage : 256–1000000. Le paramètre du tableau de bord prévaut sur cette variable d’environnement. |
OMNI_COMPRESSION_WORKERS |
2 |
open-sse/services/compression/compressionWorkerPool.ts |
Nombre maximal de workers RTK/Caveman synchrones exécutés simultanément ; les tâches excédentaires attendent selon l’ordre FIFO. |
OMNI_COMPRESSION_WORKER_TIMEOUT_MS |
120000 |
open-sse/services/compression/compressionWorkerPool.ts |
Délai d’expiration par tâche, en millisecondes. Les workers ayant dépassé le délai sont arrêtés et la requête échoue de manière ouverte, sans modification. |
OMNI_COMPRESSION_WORKER_IDLE_MS |
60000 |
open-sse/services/compression/compressionWorkerPool.ts |
Durée d’inactivité, en millisecondes, avant l’arrêt d’un worker de compression inutilisé. |
COMPRESSION_PIPELINE_BREAKER_ENABLED |
false |
open-sse/services/compression/pipelineEngineBreaker.ts |
Interrupteur principal du disjoncteur par moteur pour les pipelines empilés T02. Activation facultative (désactivé par défaut) — lorsqu’il est activé, un moteur qui génère des exceptions à plusieurs reprises sur différentes requêtes est ignoré (échec ouvert) pendant un délai de récupération ; désactivé = comportement historique identique octet pour octet. |
COMPRESSION_PIPELINE_BREAKER_THRESHOLD |
3 |
open-sse/services/compression/pipelineEngineBreaker.ts |
Nombre d’échecs consécutifs sur différentes requêtes avant l’ouverture du disjoncteur d’un moteur. |
COMPRESSION_PIPELINE_BREAKER_COOLDOWN_MS |
30000 |
open-sse/services/compression/pipelineEngineBreaker.ts |
Durée, en millisecondes, pendant laquelle un moteur dont le disjoncteur est ouvert reste ignoré avant une tentative en état semi-ouvert. |
COMPRESSION_CCR_RETRIEVAL_RAMP_FACTOR |
2 |
open-sse/services/compression/engines/ccr/index.ts |
Progression des retours de récupération CCR T08/H8 : chaque récupération antérieure d’un bloc stocké augmente linéairement sa valeur minChars effective (le contenu fréquemment récupéré est moins compressé ; >=3 récupérations = jamais compressé). 1 désactive la progression (ignoré de manière binaire uniquement au niveau du seuil). |
COMPRESSION_CCR_DURABLE_STORE |
true |
open-sse/services/compression/engines/ccr/index.ts |
Stockage durable des blocs CCR (#9061). Adosse le stockage en mémoire à SQLite afin qu’un bloc survive à une éviction LRU, au TTL, à un redémarrage ou à une récupération aboutissant sur une autre instance. Définissez sur false pour conserver les blocs uniquement en mémoire. Les blocs de plus de 512 Ko et les environnements d’exécution cloud restent uniquement en mémoire dans tous les cas. |
COMPRESSION_PREFIX_FREEZE_ENABLED |
false |
open-sse/services/compression/prefixFreeze.ts |
Interrupteur principal du gel des préfixes basé sur l’utilisation observée T08/H5. Activation volontaire (désactivé par défaut) — lorsqu’il est activé, un prompt système observé >= au seuil est traité comme un préfixe stable pouvant être mis en cache et préservé de la compression, même pour les fournisseurs que l’heuristique de cache statique ne détecte pas (le gel ne fait que préserver et ne modifie jamais). |
COMPRESSION_PREFIX_FREEZE_THRESHOLD |
3 |
open-sse/services/compression/prefixFreeze.ts |
Nombre d’observations d’un prompt système avant qu’il ne soit traité comme un préfixe stable gelé. |
OMNIROUTE_BOOTSTRAPPED |
false |
src/app/(dashboard)/dashboard/page.tsx |
Défini sur true par le script d’amorçage après la configuration initiale. Contrôle la visibilité de l’assistant de configuration. |
OMNIROUTE_ALLOW_BODY_PROJECT_OVERRIDE |
0 |
open-sse/executors/antigravity.ts |
Échappatoire : autorise le corps de la requête à remplacer le champ de projet Antigravity. |
ANTIGRAVITY_CREDITS |
off |
open-sse/services/antigravityCredits.ts |
Politique relative aux crédits Google One AI : off n’injecte jamais de crédits, retry les injecte une fois après une erreur 429 de quota admissible et always les injecte dès la première requête. |
ANTIGRAVITY_ALLOW_SIGNATURE_BYPASS |
0 |
open-sse/translator/request/openai-to-gemini.ts |
Autorise le traducteur de requêtes Antigravity à ignorer sa validation stricte de la signature des requêtes CLI lorsque le service en amont refuse les signatures réelles (mode de débogage/CLI obsolète). Une valeur non nulle active le contournement. |
AGY_TOKEN_FILE |
~/.gemini/antigravity-cli/antigravity-oauth-token |
src/app/api/providers/agy-auth/apply-local/route.ts |
Remplace le chemin du fichier de jeton de la CLI Antigravity (agy) pour l’importation de connexion locale par détection automatique. |
Pont OAuth pour CLI (interne)
Section intitulée « Pont OAuth pour CLI (interne) »| Variable | Valeur par défaut | Fichier source | Description |
|---|---|---|---|
OMNIROUTE_SERVER |
détection automatique | src/lib/oauth/config/index.ts |
URL du serveur pour le pont d’authentification CLI↔OmniRoute. |
OMNIROUTE_TOKEN |
(non définie) | src/lib/oauth/config/index.ts |
Jeton d’authentification pour le pont CLI. |
OMNIROUTE_USER_ID |
cli |
src/lib/oauth/config/index.ts |
ID utilisateur pour les sessions du pont CLI. |
SERVER_URL |
(non définie) | src/lib/oauth/config/index.ts |
Alias historique de OMNIROUTE_SERVER. |
CLI_TOKEN |
(non définie) | src/lib/oauth/config/index.ts |
Alias historique de OMNIROUTE_TOKEN. |
CLI_USER_ID |
(non définie) | src/lib/oauth/config/index.ts |
Alias historique de OMNIROUTE_USER_ID. |
11. Identifiants de fournisseur OAuth
Section intitulée « 11. Identifiants de fournisseur OAuth »Identifiants intégrés pour le développement en local. Pour les déploiements à distance, enregistrez les vôtres sur la console développeur de chaque fournisseur.
| Variable | Fournisseur | Remarques |
|---|---|---|
CLAUDE_OAUTH_CLIENT_ID |
Claude Code (Anthropic) | Client public — aucun secret nécessaire. |
CLAUDE_CODE_REDIRECT_URI |
Claude Code | Remplace l’URI de redirection. Par défaut : https://platform.claude.com/oauth/code/callback |
CODEX_OAUTH_CLIENT_ID |
Codex / OpenAI | Client public. |
GEMINI_OAUTH_CLIENT_ID |
Gemini (Google) | Nécessite un _SECRET correspondant. |
GEMINI_OAUTH_CLIENT_SECRET |
Gemini (Google) | — |
KIMI_CODING_OAUTH_CLIENT_ID |
Kimi Coding (Moonshot) | Client public. |
MUSE_CODE_OAUTH_CLIENT_ID |
Muse Code (Meta) | Remplacement facultatif de l’ID client de flux de périphérique public de Muse CLI. Laissez non défini pour utiliser le client public intégré. |
ANTIGRAVITY_OAUTH_CLIENT_ID |
Antigravity (Google) | Nécessite un _SECRET correspondant. |
ANTIGRAVITY_OAUTH_CLIENT_SECRET |
Antigravity (Google) | — |
GITHUB_OAUTH_CLIENT_ID |
GitHub Copilot | Client public. |
GHE_COPILOT_OAUTH_CLIENT_ID |
GHE Copilot | Remplacement facultatif de l’ID client OAuth de GitHub Enterprise Copilot. Revient à la valeur par défaut publique de GITHUB_OAUTH_CLIENT_ID si non défini. |
COPILOT_INTEGRATION_ID |
GitHub Copilot | Remplacement facultatif de l’ID d’intégration client de GitHub Copilot envoyé dans les en-têtes Copilot-Integration-Id et Editor-Plugin-Version. Par défaut : copilot-developer-cli. |
WINDSURF_API_KEY |
Windsurf / Devin (v3.8) | Clé API de secours utilisée par open-sse/executors/devin-cli.ts lorsqu’aucun identifiant par connexion n’est disponible. Facultatif. |
CLI_DEVIN_BIN |
Devin CLI (v3.8) | Chemin personnalisé vers le binaire Devin CLI (devin). Résolu par open-sse/executors/devin-cli.ts. |
GITLAB_DUO_OAUTH_CLIENT_ID |
GitLab Duo (v3.8) | ID client OAuth pour GitLab Duo. Enregistrez une application sur https://gitlab.com/-/profile/applications avec l’URI de redirection <NEXT_PUBLIC_BASE_URL>/callback et les scopes api, read_user, openid, profile, email. Revient à GITLAB_OAUTH_CLIENT_ID. |
GITLAB_DUO_OAUTH_CLIENT_SECRET |
GitLab Duo (v3.8) | Secret client OAuth pour GitLab Duo. Facultatif — le flux PKCE ne nécessite pas de secret. Revient à GITLAB_OAUTH_CLIENT_SECRET. |
GITLAB_DUO_BASE_URL |
GitLab Duo (v3.8) | Remplace l’URL de base de GitLab (GitLab auto-hébergé). Par défaut : https://gitlab.com. Revient à GITLAB_BASE_URL. |
GITLAB_BASE_URL |
GitLab Duo (v3.8) | Remplacement de secours hérité pour GITLAB_DUO_BASE_URL. Utilisé lorsque la variante _DUO_ n’est pas définie. |
GITLAB_OAUTH_CLIENT_ID |
GitLab Duo (v3.8) | Remplacement de secours hérité pour GITLAB_DUO_OAUTH_CLIENT_ID consommé par src/lib/oauth/constants/oauth.ts. |
GITLAB_OAUTH_CLIENT_SECRET |
GitLab Duo (v3.8) | Remplacement de secours hérité pour GITLAB_DUO_OAUTH_CLIENT_SECRET consommé par src/lib/oauth/constants/oauth.ts. |
QODER_OAUTH_CLIENT_SECRET |
Qoder | — |
QODER_OAUTH_AUTHORIZE_URL |
Qoder | Défini pour activer Qoder OAuth. |
QODER_OAUTH_TOKEN_URL |
Qoder | — |
QODER_OAUTH_USERINFO_URL |
Qoder | — |
QODER_OAUTH_CLIENT_ID |
Qoder | — |
QODER_PERSONAL_ACCESS_TOKEN |
Qoder | Clé API directe de secours (contourne OAuth). |
QODER_CLI_WORKSPACE |
Qoder | ID d’espace de travail pour Qoder CLI. |
OMNIROUTE_QODER_WORKSPACE |
Qoder | Alias pour QODER_CLI_WORKSPACE. |
QODER_CLI_CONFIG_DIR |
Qoder | Remplace le répertoire de configuration de Qoder CLI (session PAT isolée, évite d’écraser une connexion par navigateur). |
BLACKBOX_WEB_VALIDATED_TOKEN |
Blackbox Web | Jeton tk du frontend à envoyer comme validated sur /api/chat. Requis lorsque Blackbox impose la correspondance des jetons ; sinon OmniRoute utilise un UUID aléatoire. Voir le problème #2252. |
VISION_BRIDGE_BASE_URL |
Garde-fou Vision Bridge | URL de base compatible OpenAI pour les appels vision-bridge non-Anthropic. Par défaut, utilise la variable d’environnement de l’URL OpenAI héritée ou api.openai.com. Pointez vers la boucle interne /v1 d’OmniRoute ou tout point de terminaison compatible OpenAI (Gemini OpenAI-compat, OpenRouter). Problème #2232. Lorsque l’URL est le propre /v1 d’OmniRoute, la sous-requête de description envoie x-omniroute-admission-bypass: internal et s’authentifie avec les informations d’identification de la boucle interne résolue (sentinelle sk_omniroute en mode local, ou OMNIROUTE_API_KEY / ROUTER_API_KEY — #1350) afin que les déploiements REQUIRE_API_KEY=true fonctionnent. |
VISION_BRIDGE_API_KEY |
Garde-fou Vision Bridge | Clé API pour l’URL ci-dessus. Remplace les variables d’environnement OpenAI / Google par fournisseur pour les appels vision-bridge non-Anthropic. Les modèles Anthropic conservent leur chemin de clé Anthropic dédié. Problème #2232. |
OMNIROUTE_VISION_BRIDGE_NEGATIVE_CACHE_MS |
Garde-fou Vision Bridge | Durée de mise en cache d’un résultat de routage “aucun candidat utilisable”, en ms (par défaut 30000). Les valeurs invalides ou négatives reviennent à la valeur par défaut ; 0 désactive le cache négatif. Source : src/lib/guardrails/visionBridgeRouter.ts. |
[!WARNING]
- Allez dans Google Cloud Console → Credentials
- Créez un ID client OAuth 2.0 (type : “Application web”)
- Ajoutez l’URL de votre serveur comme URI de redirection autorisée
- Remplacez les valeurs d’identification dans
.env.
12. Remplacements du User-Agent des fournisseurs
Section intitulée « 12. Remplacements du User-Agent des fournisseurs »Remplacez l’en-tête User-Agent envoyé à chaque fournisseur en amont. Celui-ci est résolu dynamiquement lors de l’exécution par la classe de base de l’exécuteur :
process.env[`${PROVIDER_ID}_USER_AGENT`]Source :
open-sse/executors/base.ts→buildHeaders()
| Variable | Valeur par défaut | Quand effectuer la mise à jour | —————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— |
|---|---|---|---|
CLAUDE_USER_AGENT |
claude-cli/2.1.258 (external, cli) |
Lorsqu’Anthropic publie une nouvelle version de la CLI | |
CLAUDE_DISABLE_TOOL_NAME_CLOAK |
false |
executors/base.ts + executors/cliproxyapi.ts |
Définissez cette variable sur 1/true pour transmettre tels quels à Anthropic les noms d’outils de frameworks tiers sur les deux chemins liés à Anthropic (OAuth natif et CLIProxyAPI). Par défaut, l’exécuteur attribue de manière déterministe des alias aux noms d’outils ne provenant pas de Claude Code (mappage canonique de Claude Code lorsqu’il en existe un, sinon PascalCase) et rétablit les noms d’origine dans la réponse via _toolNameMap, afin que les frameworks utilisant des outils en snake_case ne soient pas refusés parce qu’ils sont identifiés comme des clients tiers. À des fins de débogage uniquement. |
CODEX_USER_AGENT |
codex-cli/0.155.0 (Windows 10.0.26200; x64) |
Lorsqu’OpenAI met à jour la CLI Codex | |
CODEX_CLIENT_VERSION |
0.155.0 |
Remplacer la version du client Codex indépendamment de la chaîne UA complète | |
CLAUDE_CODE_CLIENT_VERSION |
2.1.258 |
Remplacer la version de Claude Code annoncée indépendamment de CLAUDE_USER_AGENT. Anthropic conditionne l’accès à certains modèles à cette valeur (#12417). |
|
GITHUB_COPILOT_CLI_VERSION |
1.0.81-6 |
Remplacer la version de la CLI Copilot annoncée indépendamment de GITHUB_USER_AGENT |
|
GITHUB_USER_AGENT |
GitHubCopilotChat/0.54.0 |
Lors de la mise à jour de GitHub Copilot Chat | |
ANTIGRAVITY_USER_AGENT |
antigravity/2.0.1 darwin/arm64 |
Lors de la mise à jour de l’IDE Antigravity | |
KIRO_USER_AGENT |
AWS-SDK-JS/3.0.0 kiro-ide/1.0.0 |
Lors de la mise à jour de l’IDE Kiro | |
KIRO_OAUTH_CLIENT_ID |
kiro-cli |
Remplacer le clientId (identifiant public) du code d’appareil social Kiro |
|
KIRO_VERIFY_FULL_CRC |
false |
Facultatif : validation complète du CRC de chaque trame dans le flux d’événements Kiro (pour déboguer les flux corrompus) | |
QODER_USER_AGENT |
Qoder-Cli |
Lors de la mise à jour de la CLI Qoder | |
CURSOR_USER_AGENT |
Cursor/3.3 |
Lors de la mise à jour de Cursor |
[!TIP] Vous pouvez ajouter des remplacements du User-Agent pour n’importe quel fournisseur en utilisant le modèle
{PROVIDER_ID}_USER_AGENT. L’exécuteur construit dynamiquement le nom de la variable d’environnement.
13. Compatibilité des empreintes CLI
Section intitulée « 13. Compatibilité des empreintes CLI »Lorsqu’elle est activée, OmniRoute réorganise les en-têtes HTTP et les champs du corps JSON afin de reproduire exactement la signature des outils CLI officiels. Cela réduit le risque que le compte soit signalé tout en préservant l’adresse IP de votre proxy.
Source : open-sse/config/cliFingerprints.ts, open-sse/executors/base.ts
Par fournisseur
Section intitulée « Par fournisseur »| Variable | Activation | Effet |
|---|---|---|
CLI_COMPAT_CODEX |
=1 |
Imite la signature des requêtes de Codex CLI |
CLI_COMPAT_CLAUDE |
=1 |
Imite la signature des requêtes de Claude Code |
CLI_COMPAT_GITHUB |
=1 |
Imite la signature des requêtes de GitHub Copilot |
CLI_COMPAT_ANTIGRAVITY |
=1 |
Imite la signature des requêtes d’Antigravity |
CLI_COMPAT_CURSOR |
=1 |
Imite la signature des requêtes de Cursor |
CLI_COMPAT_KIMI_CODING |
=1 |
Imite la signature des requêtes de Kimi Coding |
CLI_COMPAT_KILOCODE |
=1 |
Imite la signature des requêtes de Kilo Code |
CLI_COMPAT_CLINE |
=1 |
Imite la signature des requêtes de Cline |
| Variable | Activation | Effet |
|---|---|---|
CLI_COMPAT_ALL |
=1 |
Active la compatibilité des empreintes pour tous les fournisseurs à la fois. |
Remplacements de l’identité Kimi Coding CLI
Section intitulée « Remplacements de l’identité Kimi Coding CLI »| Variable | Valeur par défaut | Fichier source | Description |
|---|---|---|---|
KIMI_CLI_VERSION |
1.36.0 |
src/lib/oauth/providers/kimi-coding.ts |
Remplace la version de Kimi CLI envoyée lors des appels OAuth/API. |
KIMI_CODING_DEVICE_ID |
(valeur capturée par défaut) | src/lib/oauth/providers/kimi-coding.ts |
Remplace l’identifiant d’appareil Kimi capturé utilisé dans les en-têtes du client. |
[!NOTE] Cette fonctionnalité fonctionne conjointement avec les remplacements de User-Agent (§12). Le système d’empreintes gère l’ordre des en-têtes et des champs du corps, tandis que les remplacements de User-Agent gèrent la chaîne UA spécifique. Les deux peuvent être activés indépendamment.
14. Fournisseurs de clés API
Section intitulée « 14. Fournisseurs de clés API »Clés API pour les fournisseurs utilisant une authentification directe. Configuration recommandée : Tableau de bord → Fournisseurs → Ajouter une clé API.
La configuration au moyen de variables d’environnement constitue une solution alternative pour les déploiements Docker ou sans interface graphique.
Format reconnu : {PROVIDER_ID}_API_KEY
| Variable | Fournisseur |
|---|---|
DEEPSEEK_API_KEY |
DeepSeek |
NVIDIA_API_KEY |
NVIDIA NIM |
JINA_AI_API_KEY |
Jina AI (Foundation API + solution de secours Reader) |
JINA_API_KEY |
Jina AI (alias de JINA_AI_API_KEY) |
GEMINI_API_KEY |
Gemini (Google AI Studio), embeddings + solution de secours pour le chat |
GOOGLE_API_KEY |
Gemini (alias de GEMINI_API_KEY) |
[!NOTE] Les entrées statiques
${PROVIDER}_API_KEYpour Groq, xAI, Mistral, Perplexity, Together AI, Fireworks, Cerebras, Cohere, Nebius et Qianfan ont été supprimées dans la v3.8.0, car l’environnement d’exécution ne les lit plus — ces fournisseurs dépendent exclusivement du tableau de bord, dedata/provider-credentials.jsonou de la base de données chiffrée. Consultez la section Audit : variables supprimées / obsolètes au bas de ce document pour connaître la procédure de migration.
[!TIP] Les clés définies via le tableau de bord sont stockées sous forme chiffrée dans SQLite et sont prioritaires sur les variables d’environnement.
Jina : les embeddings
jina-ai/…, ainsi que les opérations de reclassement, de classification, de segmentation etjina-search, ne facturent pas une clé d’environnement du cluster lorsqu’une connexionjina-aidu tableau de bord (ou une connexionjina-readerpartagée) existe —getProviderCredentialsapplique une stratégie de remplissage prioritaire.JINA_AI_API_KEY/JINA_API_KEYne sont utilisées que lorsqu’aucune clé exploitable du tableau de bord n’existe. Les journaux d’appels attribuent la solution de secours fournie par l’environnement àconnection_id=env:JINA_AI_API_KEY. La carte Reader (jina-reader,r.jina.ai) ne prend jamais en charge/v1/embeddingsni/v1/rerank.Gemini :
gemini/gemini-embedding-2(aliasgoogle/gemini-embedding-2) utilise en priorité la connexiongeminidu tableau de bord.GEMINI_API_KEY/GOOGLE_API_KEYne sont utilisées que lorsqu’aucune clé exploitable du tableau de bord n’existe. Les journaux d’appels attribuent la solution de secours fournie par l’environnement àconnection_id=env:GEMINI_API_KEY. Le trafic multimodal natif utilisex-goog-api-keyavec:embedContent/:batchEmbedContents— N éléments OpenAIinputproduisent N vecteurs.
15. Paramètres de délai d’expiration
Section intitulée « 15. Paramètres de délai d’expiration »Toutes les valeurs sont exprimées en millisecondes. Résolution centralisée dans src/shared/utils/runtimeTimeouts.ts.
Hiérarchie des délais d’expiration
Section intitulée « Hiérarchie des délais d’expiration »REQUEST_TIMEOUT_MS (remplacement global)├─→ FETCH_TIMEOUT_MS (appels aux fournisseurs en amont, valeur par défaut : 600000)│ ├─→ FETCH_HEADERS_TIMEOUT_MS (hérite de FETCH_TIMEOUT_MS)│ ├─→ FETCH_BODY_TIMEOUT_MS (hérite de FETCH_TIMEOUT_MS)│ ├─→ TLS_CLIENT_TIMEOUT_MS (hérite de FETCH_TIMEOUT_MS)│ │ └── TLS_FIRST_BYTE_WATCHDOG_MS (indépendant, valeur par défaut : 10000)│ ├── RESPONSES_FIRST_BYTE_TIMEOUT_MS (indépendant, valeur par défaut : 15000)│ ├── FETCH_CONNECT_TIMEOUT_MS (indépendant, valeur par défaut : 30000)│ └── FETCH_KEEPALIVE_TIMEOUT_MS (indépendant, valeur par défaut : 4000)├─→ STREAM_IDLE_TIMEOUT_MS (hérite de REQUEST_TIMEOUT_MS, valeur par défaut : 600000)├─→ STREAM_ACTIVE_TIMEOUT_MS (indépendant, valeur par défaut : 1260000 ; 0 le désactive)├─→ STREAM_READINESS_TIMEOUT_MS (hérite de REQUEST_TIMEOUT_MS, valeur par défaut : 80000)├─→ STREAM_READINESS_MAX_TIMEOUT_MS (limite les extensions adaptatives du délai de disponibilité, valeur par défaut : 180000)└─→ API_BRIDGE_PROXY_TIMEOUT_MS (hérite de REQUEST_TIMEOUT_MS, valeur par défaut : 30000) ├─→ API_BRIDGE_SERVER_REQUEST_TIMEOUT_MS (dérivé, valeur par défaut : 300000) ├── API_BRIDGE_SERVER_HEADERS_TIMEOUT_MS (valeur par défaut : 60000) ├── API_BRIDGE_SERVER_KEEPALIVE_TIMEOUT_MS (valeur par défaut : 5000) └── API_BRIDGE_SERVER_SOCKET_TIMEOUT_MS (valeur par défaut : 0 = désactivé)| Variable | Valeur par défaut | Description |
|---|---|---|
REQUEST_TIMEOUT_MS |
(non définie) | Raccourci global — remplace les valeurs par défaut de FETCH_TIMEOUT_MS et STREAM_IDLE_TIMEOUT_MS. |
FETCH_TIMEOUT_MS |
600000 |
Délai d’expiration total de la requête HTTP pour les appels aux fournisseurs en amont. |
STREAM_IDLE_TIMEOUT_MS |
600000 |
Durée maximale de silence entre les octets bruts reçus en amont avant abandon. Les modèles à raisonnement étendu font rarement des pauses >90s. |
STREAM_ACTIVE_TIMEOUT_MS |
1260000 |
Durée de vie active totale maximale du flux SSE ; elle n’est jamais réinitialisée par les octets reçus en amont et est indépendante de REQUEST_TIMEOUT_MS. Dérivée de la plus grande valeur timeoutMs par modèle dans le registre (1200000, Codex), avec une marge de 60000, afin qu’un modèle autorisé à utiliser l’intégralité de son budget ne soit jamais interrompu en cours de réponse. Définissez-la sur 0 pour la désactiver. |
OMNIROUTE_SSE_COMMENTS |
(désactivée) | Indique si OmniRoute peut émettre des lignes de commentaires SSE : (par exemple, le signal périodique : keepalive et les bandes-annonces de métadonnées x-omniroute-*). Désactivé par défaut (#10524), car les clients strictement compatibles avec OpenAI appliquent JSON.parse à chaque ligne SSE et plantent sur les commentaires : ; les signaux périodiques data: ne sont pas affectés. Définissez cette variable sur on/true/1/yes pour les réactiver. Utilisée par open-sse/utils/sseHeartbeat.ts. |
STREAM_READINESS_TIMEOUT_MS |
80000 |
Délai pour recevoir le premier événement SSE autre qu’un ping. Hérite de REQUEST_TIMEOUT_MS lorsqu’elle est définie. |
STREAM_READINESS_MAX_TIMEOUT_MS |
180000 |
Fenêtre adaptative maximale d’attente du premier événement pour les requêtes en streaming volumineuses, utilisant beaucoup d’outils ou nécessitant un raisonnement approfondi. |
OMNIROUTE_AGENT_GOAL_POLICY_ENABLED |
true |
Interrupteur d’arrêt pour l’heuristique /goal. Définissez-le sur false/0/off pour désactiver complètement la détection — les délais d’attente de disponibilité et la récupération du flux ne sont jamais augmentés par le corps ou les en-têtes de la requête, ce qui limite l’amplification des délais contrôlée par le client. |
OMNIROUTE_AGENT_GOAL_READINESS_MAX_TIMEOUT_MS |
600000 |
Fenêtre maximale d’attente du premier événement pour les exécutions d’agent /goal détectées ou les requêtes forcées avec x-omniroute-agent-goal. |
OMNIROUTE_AGENT_GOAL_STREAM_RECOVERY |
true |
Active automatiquement la récupération anticipée du flux pour les exécutions d’agent /goal détectées. Définissez cette variable sur false/0/off pour désactiver l’activation spécifique à l’objectif. Cela peut uniquement AJOUTER la récupération en plus de la valeur par défaut de l’opérateur — cela ne remplace jamais une désactivation explicite dans les paramètres STREAM_RECOVERY_ENABLED/DB. |
OMNIROUTE_CODEX_DROP_NONSTANDARD_EVENTS |
true |
Supprime les événements SSE codex.* non standard (par exemple, codex.rate_limits) qui provoquent une erreur 502 dans responses.stream() du SDK OpenAI. Activé par défaut (#11014). Définissez cette variable sur 0/false/no/off pour les transférer. |
OMNIROUTE_CODEX_APPSERVER_WS |
(non définie) | Transport app-server Codex à activer explicitement. Point de terminaison WebSocket (ws:///wss://) d’un sidecar codex app-server local. Lorsqu’il est défini avec un jeton, les requêtes Codex sont acheminées via JSON-RPC vers le sidecar plutôt que vers l’API HTTP Responses. Peut également être défini pour chaque connexion via providerSpecificData.codexAppServerUrl. Utilisé par open-sse/executors/codex/appServerConfig.ts. |
OMNIROUTE_CODEX_APPSERVER_WS_TOKEN |
(non définie) | Jeton de capacité/d’authentification Bearer en ligne présenté à l’app-server. Remplacement par connexion : providerSpecificData.codexAppServerToken. |
OMNIROUTE_CODEX_APPSERVER_WS_TOKEN_FILE |
(non définie) | Chemin vers un fichier contenant le jeton de capacité de l’app-server (provenant de codex app-server --ws-token-file). Utilisé lorsque OMNIROUTE_CODEX_APPSERVER_WS_TOKEN n’est pas définie. Remplacement par connexion : providerSpecificData.codexAppServerTokenFile. |
OMNIROUTE_CODEX_APPSERVER_CWD |
/tmp |
Répertoire de travail dans lequel s’exécute le tour de l’app-server. Remplacement par connexion : providerSpecificData.codexAppServerCwd. |
OMNIROUTE_CODEX_APPSERVER_APPROVAL |
(non définie) | Politique d’approbation transmise au tour de l’app-server (par exemple, never, on-request). Remplacement par connexion : providerSpecificData.codexAppServerApprovalPolicy. |
OMNIROUTE_CODEX_APPSERVER_SANDBOX |
(non définie) | Politique de bac à sable transmise au tour de l’app-server (par exemple, read-only, workspace-write, danger-full-access). Lorsqu’elle n’est pas définie, l’exécuteur utilise par défaut workspace-write (configuration renforcée ; auparavant danger-full-access). Remplacement par connexion : providerSpecificData.codexAppServerSandbox. |
OMNIROUTE_CODEX_APPSERVER_AUTO_APPROVE |
false |
Approuve automatiquement les propres demandes d’approbation de l’app-server (exécution de commandes/fichiers/autorisations sur l’hôte). Désactivé par défaut — les demandes sont automatiquement refusées ; les appels d’outils du harnais ne sont pas affectés (ils passent par le transfert distinct item/tool/call). Accepte true/1/yes. Remplacement par connexion : providerSpecificData.codexAppServerAutoApprove. |
FETCH_HEADERS_TIMEOUT_MS |
= FETCH_TIMEOUT_MS |
Délai pour recevoir les en-têtes de réponse. |
OMNIROUTE_DIRECT_HEADERS_TIMEOUT_MS |
30000 (30 s) |
Délai maximal d’attente du début de la réponse (ms) pour chaque tentative directe sans proxy. En cas d’expiration, une nouvelle tentative est effectuée une fois sur un nouveau socket ; définissez la valeur sur 0 pour désactiver cette limite et conserver le comportement précédent. |
OMNIROUTE_DIRECT_RESPONSE_RETRY_TIMEOUT_MS |
600000 (10 min) |
Plafond (ms) pour la tentative RETRY sur un nouveau socket après l’expiration du délai d’attente du début de la réponse d’une tentative utilisant une connexion mutualisée, décrite ci-dessus (#13703). S’applique uniquement lorsque l’appelant a déjà associé son propre signal d’échéance (la cascade résolue connexion/modèle/fournisseur/FETCH_TIMEOUT_MS) ; ce signal constitue la véritable limite et se déclenche en premier dans le chemin prévu. Il s’agit donc d’un filet de sécurité généreux plutôt que d’un plafond fixe — sans lui, la nouvelle tentative réutilisait exactement la même courte fenêtre OMNIROUTE_DIRECT_HEADERS_TIMEOUT_MS que la tentative mutualisée et provoquait des erreurs 504 sur des modèles de raisonnement sains mais dont le TTFB était élevé. Cette valeur ne peut jamais être inférieure au plancher fixe ci-dessus ; lorsque l’appelant ne fournit aucun signal d’échéance, la nouvelle tentative conserve le plancher fixe inchangé. |
FETCH_BODY_TIMEOUT_MS |
= FETCH_TIMEOUT_MS |
Délai maximal pour recevoir l’intégralité du corps de la réponse. |
FETCH_CONNECT_TIMEOUT_MS |
30000 |
Délai maximal d’établissement de la connexion TCP. |
FETCH_KEEPALIVE_TIMEOUT_MS |
4000 |
Délai d’inactivité du socket keep-alive. |
TLS_CLIENT_TIMEOUT_MS |
= FETCH_TIMEOUT_MS |
Délai maximal du proxy d’empreinte TLS (wreq-js). |
TLS_FIRST_BYTE_WATCHDOG_MS |
10000 |
Limite spécifiquement le délai jusqu’au premier octet du corps sur le transport d’empreinte TLS wreq-js ; TLS_CLIENT_TIMEOUT_MS ne peut pas, à lui seul, détecter un corps bloqué, car il se résout dès l’arrivée des en-têtes (#12656). Une expiration annule le lecteur wreq et bascule vers le répartiteur direct/proxy ; 0 désactive le mécanisme de surveillance. |
RESPONSES_FIRST_BYTE_TIMEOUT_MS |
15000 |
Exécuteur OpenCode uniquement, et seulement lorsque l’indicateur de fonctionnalité OPENCODE_RESPONSES_STALL_ROTATION est activé (désactivé par défaut) : limite l’attente du premier octet du corps d’une réponse Responses diffusée en continu après ses en-têtes (#13484). Un flux Responses s’ouvre avec response.created ; un silence dépassant cette fenêtre indique donc un blocage : le compte est mis en période de récupération et la requête bascule une fois vers le compte suivant ; un second blocage provoque un échec immédiat. 0 désactive la protection même lorsque l’indicateur est activé. |
OPENCODE_PARK_AND_RESUME |
false |
Exécuteur OpenCode uniquement : met la requête en attente avec un signal périodique après plusieurs erreurs 429 transitoires (ou la détection d’un marqueur récent de saturation du pool), puis rejoue un seul segment plafonné sur un maximum de 3 comptes séquentiels au lieu de solliciter simultanément l’ensemble du parc (#13924). Désactivé par défaut : chaque erreur 429 provoque une rotation vers le compte suivant, exactement comme auparavant. |
OPENCODE_POOL_STRAIN_MARKER_PATH |
(non défini) | Exécuteur OpenCode uniquement : remplace le chemin du marqueur de saturation du pool lu avant la mise en attente ({since, reason, ttl_s}, valeur par défaut /tmp/opencode-pool-strain.json, #13924). Un marqueur récent entraîne la mise en attente sans nouveau comptage ; s’il est absent ou obsolète, le compteur de rafale est utilisé. |
API_BRIDGE_PROXY_TIMEOUT_MS |
30000 |
Délai maximal du saut de proxy pour les requêtes de passerelle /v1. |
FIRECRAWL_BASE_URL |
https://api.firecrawl.dev |
Configure l’exécuteur de récupération web Firecrawl pour utiliser une instance auto-hébergée (clé API facultative hors cloud). |
FIRECRAWL_TIMEOUT_MS |
30000 |
Délai maximal par requête pour l’exécuteur de récupération web Firecrawl. |
API_BRIDGE_SERVER_REQUEST_TIMEOUT_MS |
300000 |
Délai maximal global des requêtes serveur pour la passerelle. |
API_BRIDGE_SERVER_HEADERS_TIMEOUT_MS |
60000 |
Délai maximal d’envoi des en-têtes de réponse via la passerelle. |
API_BRIDGE_SERVER_KEEPALIVE_TIMEOUT_MS |
5000 |
Délai d’inactivité keep-alive de la passerelle. |
API_BRIDGE_SERVER_SOCKET_TIMEOUT_MS |
0 |
Délai maximal du socket brut (0 = désactivé). |
SHUTDOWN_TIMEOUT_MS |
30000 |
Délai de grâce après SIGTERM/SIGINT avant l’arrêt forcé. |
OMNIROUTE_DEFAULT_FETCH_TIMEOUT_MS |
120000 |
Valeur de repli utilisée par src/shared/utils/fetchTimeout.ts lorsque FETCH_TIMEOUT_MS n’est pas défini. |
OMNIROUTE_PROVIDER_PROBE_TIMEOUT_MS |
8000 |
Délai maximal (ms) pour les préréglages validationRead et modelsProbe dans src/shared/network/safeOutboundFetch.ts. Augmentez-le pour les points de terminaison lents (Cerebras, Cloudflare AI, Groq) afin d’éviter les basculements répétés entre les états actif/erreur dans le tableau de bord. Revient à 8000 ms pour les valeurs non valides (<1000) ou non numériques. |
OMNIROUTE_RELAY_FETCH_TIMEOUT_MS |
25000 |
Délai d’expiration de récupération propre au relais dans open-sse/utils/proxyFetch.ts (#9158). Un relais bloqué doit échouer avant le délai d’expiration du client/de l’agent (~30 s), afin que les appelants voient une erreur propre au relais plutôt qu’un délai d’expiration générique en amont. Plafonné à 29000 pour qu’il se déclenche toujours en premier. |
OMNIROUTE_RETRY_BACKOFF_MS |
10 |
Délai d’attente partagé avant nouvelle tentative pour les chemins direct/relais/proxy qui réessaient une fois dans open-sse/utils/proxyFetch.ts (#9158). 0 = nouvelle tentative immédiate. |
OMNIROUTE_CLAUDE_TLS_TIMEOUT_MS |
60000 |
Délai d’expiration natif des requêtes wreq-js (claudeTlsClient.ts). |
OMNIROUTE_CLAUDE_TLS_GRACE_MS |
10000 |
Marge du délai butoir absolu côté JS ajoutée au délai d’expiration natif. |
OMNIROUTE_PPLX_TLS_TIMEOUT_MS |
30000 |
Délai d’expiration natif des requêtes wreq-js (perplexityTlsClient.ts). |
OMNIROUTE_PPLX_TLS_GRACE_MS |
10000 |
Marge du délai butoir absolu côté JS ajoutée au délai d’expiration natif. |
OMNIROUTE_PPLX_SEARCH_HINT |
0 (désactivé) |
Ajoute « Vous disposez d’une recherche Web intégrée. Répondez directement aux questions à l’aide des résultats de recherche. » au message système de l’appelant (perplexity-web/protocol.ts). Désactivé par défaut — Perplexity effectue quand même des recherches et cette phrase transparaît dans les réponses sous forme de métacommentaire pour les clients de programmation. Définissez sur 1/true/yes/on pour la rétablir. |
OMNIROUTE_GROK_TLS_TIMEOUT_MS |
60000 |
Délai d’expiration natif des requêtes wreq-js (grokTlsClient.ts). |
OMNIROUTE_GROK_TLS_GRACE_MS |
10000 |
Marge du délai butoir absolu côté JS ajoutée au délai d’expiration natif. |
OMNIROUTE_NOTION_TLS_TIMEOUT_MS |
30000 |
Délai d’expiration natif des requêtes wreq-js (notionTlsClient.ts) ; notion-web le porte à 180000 pour chaque requête lors des générations longues. |
OMNIROUTE_NOTION_TLS_GRACE_MS |
10000 |
Marge du délai butoir absolu côté JS ajoutée au délai d’expiration natif. |
OMNIROUTE_BROWSER_POOL |
on |
Pool de navigateurs Playwright partagé pour les conversations utilisant des cookies Web et reposant sur un navigateur (browserPool.ts) ; définissez sur off pour le désactiver. |
OBSCURA_BIN |
auto-detect |
Chemin vers le binaire obscura utilisé comme moteur principal par le pool de navigateurs et l’exécuteur Cloudflare Playground (open-sse/services/obscura.ts) ; détecté automatiquement dans le PATH système lorsqu’il n’est pas défini. |
OBSCURA_CDP_ENDPOINT |
(non défini) | Pointe vers une instance Obscura déjà en cours d’exécution (http://host:port) au lieu d’en lancer une ; le module n’est pas propriétaire de ce processus (open-sse/services/obscura.ts). |
OBSCURA_PORT |
port libre aléatoire |
Port explicite pour le processus obscura serve lancé ; un port libre est choisi automatiquement lorsqu’il n’est pas défini (open-sse/services/obscura.ts). |
WEB_COOKIE_USE_BROWSER |
0 |
Fait passer une requête de conversation utilisant des cookies Web par le chemin reposant sur un navigateur (browserBackedChat.ts) ; 1 pour l’activer. |
KIMI_WEB_BASE_URL |
https://www.kimi.ai |
URL de base de l’exécuteur Kimi Web (Connect-RPC international de kimi.ai) (kimi-web.ts) ; à remplacer uniquement pour les points de terminaison de miroir/proxy. |
KIMI_WEB_CHAT_URL |
<KIMI_WEB_BASE_URL>/apiv2/kimi.gateway.chat.v1.ChatService/Chat |
Point de terminaison complet de conversation pour l’exécuteur Kimi Web (kimi-web.ts). |
OMNIROUTE_LOGIN_BROWSER_PATH |
(détecté automatiquement) | Chemin vers un exécutable Chrome/Edge du système pour la connexion interactive à Adobe Firefly dans le navigateur (adobeFireflyBrowserLogin.ts) ; remplace la détection automatique propre à chaque système d’exploitation. |
OMNIROUTE_STANDALONE_DIR |
sortie autonome .build/ | Remplacement, lors de la compilation, du répertoire de sortie autonome utilisé par l’étape de colocalisation post-compilation (scripts/build/colocate-standalone.mjs) ; concerne les outils de compilation, pas l’exécution. |
Les tentatives de cible d’un combo héritent du délai d’expiration résolu de la requête en amont (FETCH_TIMEOUT_MS, ou
REQUEST_TIMEOUT_MS lorsqu’il fournit la valeur par défaut de récupération). Définissez targetTimeoutMs dans un combo,
dans les valeurs par défaut des combos ou dans une substitution du fournisseur uniquement pour accélérer le repli du combo ; les valeurs supérieures au
délai d’expiration en amont actuel sont plafonnées à ce dernier.
comboTimeoutMs constitue un budget temporel global distinct pour l’ensemble du combo, couvrant toutes les cibles de basculement.
Laissez-le non défini ou défini sur 0 pour conserver une itération illimitée (un mécanisme d’arrêt codé en dur après 10 minutes de blocage dans
comboPredicates.ts s’applique toujours). Une valeur positive remplace ce
filet de sécurité pour le combo. Veillez à ce que comboTimeoutMs soit supérieur à targetTimeoutMs afin que le basculement
dispose encore de temps après une première cible lente.
Seuils du disjoncteur
Section intitulée « Seuils du disjoncteur »Réglage du disjoncteur au niveau du fournisseur. Les valeurs par défaut correspondent aux valeurs mises à l’échelle utilisées depuis la v3.6 pour plus de 500 connexions.
| Variable | Valeur par défaut | Fichier source | Description |
|---|---|---|---|
OMNIROUTE_CIRCUIT_BREAKER_OAUTH_THRESHOLD |
8 |
open-sse/config/constants.ts |
Seuil d’échecs consécutifs pour les fournisseurs OAuth avant le déclenchement du coupe-circuit. |
OMNIROUTE_CIRCUIT_BREAKER_OAUTH_RESET_MS |
60000 |
open-sse/config/constants.ts |
Fenêtre de réinitialisation (ms) du coupe-circuit des fournisseurs OAuth. |
OMNIROUTE_CIRCUIT_BREAKER_API_KEY_THRESHOLD |
12 |
open-sse/config/constants.ts |
Seuil d’échecs consécutifs pour les fournisseurs utilisant une clé API. |
OMNIROUTE_CIRCUIT_BREAKER_API_KEY_RESET_MS |
30000 |
open-sse/config/constants.ts |
Fenêtre de réinitialisation (ms) du coupe-circuit des fournisseurs utilisant une clé API. |
OMNIROUTE_CIRCUIT_BREAKER_LOCAL_THRESHOLD |
2 |
open-sse/config/constants.ts |
Seuil d’échecs consécutifs pour les fournisseurs locaux (Ollama, LM Studio, …). |
OMNIROUTE_CIRCUIT_BREAKER_LOCAL_RESET_MS |
15000 |
open-sse/config/constants.ts |
Fenêtre de réinitialisation (ms) du coupe-circuit des fournisseurs locaux. |
OMNIROUTE_PROVIDER_BREAKER_OAUTH_FAILURE_THRESHOLD |
10 |
open-sse/config/constants.ts |
Coupe-circuit au niveau du fournisseur : nombre d’échecs dans la fenêtre avant que l’ensemble du fournisseur OAuth n’entre en période de récupération. |
OMNIROUTE_PROVIDER_BREAKER_OAUTH_FAILURE_WINDOW_MS |
900000 |
open-sse/config/constants.ts |
Coupe-circuit au niveau du fournisseur : fenêtre glissante de comptabilisation des échecs (ms) pour les fournisseurs OAuth. |
OMNIROUTE_PROVIDER_BREAKER_OAUTH_COOLDOWN_MS |
300000 |
open-sse/config/constants.ts |
Coupe-circuit au niveau du fournisseur : période de récupération (ms) une fois le seuil du fournisseur OAuth atteint. |
OMNIROUTE_PROVIDER_BREAKER_OAUTH_DEGRADATION_THRESHOLD |
5 |
open-sse/config/constants.ts |
Le fournisseur OAuth passe à l’état DEGRADED à partir de ce nombre d’échecs. |
OMNIROUTE_PROVIDER_BREAKER_OAUTH_MAX_BACKOFF_MULTIPLIER |
8 |
open-sse/config/constants.ts |
Multiplicateur maximal d’augmentation de resetTimeout pour le fournisseur OAuth. |
OMNIROUTE_PROVIDER_BREAKER_OAUTH_BACKOFF_ESCALATION_COUNT |
2 |
open-sse/config/constants.ts |
Le fournisseur OAuth augmente le délai après ce nombre de cycles ouverts. |
OMNIROUTE_PROVIDER_BREAKER_API_KEY_FAILURE_THRESHOLD |
15 |
open-sse/config/constants.ts |
Coupe-circuit au niveau du fournisseur : nombre d’échecs dans la fenêtre avant que l’ensemble du fournisseur utilisant une clé API n’entre en période de récupération. |
OMNIROUTE_PROVIDER_BREAKER_API_KEY_FAILURE_WINDOW_MS |
1800000 |
open-sse/config/constants.ts |
Coupe-circuit au niveau du fournisseur : fenêtre glissante de comptabilisation des échecs (ms) pour les fournisseurs utilisant une clé API. |
OMNIROUTE_PROVIDER_BREAKER_API_KEY_COOLDOWN_MS |
600000 |
open-sse/config/constants.ts |
Coupe-circuit au niveau du fournisseur : période de récupération (ms) une fois le seuil du fournisseur utilisant une clé API atteint. |
OMNIROUTE_PROVIDER_BREAKER_API_KEY_DEGRADATION_THRESHOLD |
7 |
open-sse/config/constants.ts |
Le fournisseur utilisant une clé API passe à l’état DEGRADED à partir de ce nombre d’échecs. |
OMNIROUTE_PROVIDER_BREAKER_API_KEY_MAX_BACKOFF_MULTIPLIER |
4 |
open-sse/config/constants.ts |
Multiplicateur maximal d’augmentation de resetTimeout pour le fournisseur utilisant une clé API. |
OMNIROUTE_PROVIDER_BREAKER_API_KEY_BACKOFF_ESCALATION_COUNT |
3 |
open-sse/config/constants.ts |
Le fournisseur utilisant une clé API augmente le délai après ce nombre de cycles ouverts. |
OMNIROUTE_PROVIDER_BREAKER_LOCAL_FAILURE_THRESHOLD |
2 |
open-sse/config/constants.ts |
Coupe-circuit au niveau du fournisseur : nombre d’échecs avant que l’ensemble du fournisseur local n’entre en période de récupération. |
OMNIROUTE_PROVIDER_BREAKER_LOCAL_FAILURE_WINDOW_MS |
300000 |
open-sse/config/constants.ts |
Coupe-circuit au niveau du fournisseur : fenêtre glissante de comptabilisation des échecs (ms) pour les fournisseurs locaux. |
OMNIROUTE_PROVIDER_BREAKER_LOCAL_COOLDOWN_MS |
60000 |
open-sse/config/constants.ts |
Coupe-circuit au niveau du fournisseur : période de récupération (ms) une fois le seuil du fournisseur local atteint. |
PIN_DROP_BACKOFF_LEVEL |
2 |
open-sse/services/combo.ts |
Profondeur du délai exponentiel à laquelle le fournisseur associé à un verrou du cache de contexte est considéré comme durablement indisponible et le verrou est supprimé afin de permettre le basculement. |
PIN_DROP_GRACE_MS |
20000 |
open-sse/services/combo.ts |
Fenêtre anti-oscillation (ms) tolérant de brèves périodes de récupération transitoires avant la suppression d’un verrou du cache de contexte. |
Scénarios
Section intitulée « Scénarios »| Scénario | Configuration |
|---|---|
| Génération de code longue durée | REQUEST_TIMEOUT_MS=900000 (15 min) |
| Limitation de la durée totale du flux | STREAM_ACTIVE_TIMEOUT_MS=1260000 (21 min) |
| Échec rapide pour l’API de production | API_BRIDGE_PROXY_TIMEOUT_MS=10000 |
| Modèles à raisonnement prolongé | STREAM_IDLE_TIMEOUT_MS=300000 (5 min entre les blocs) |
16. Journalisation
Section intitulée « 16. Journalisation »Le système de journalisation écrit à la fois dans stdout et dans des fichiers journaux avec rotation. Toute la configuration est lue par src/lib/logEnv.ts.
| Variable | Valeur par défaut | Description |
|---|---|---|
APP_LOG_LEVEL |
info |
Niveau de journalisation minimal : debug, info, warn, error. |
APP_LOG_FORMAT |
text |
Format de sortie : text (lisible par un humain) ou json (structuré). |
APP_LOG_TO_FILE |
true |
Écrit les journaux dans un fichier en plus de stdout. |
APP_LOG_FILE_PATH |
logs/application/app.log |
Chemin du fichier journal (relatif à la racine du projet ou à DATA_DIR). |
APP_LOG_MAX_FILE_SIZE |
50M |
Taille maximale du fichier avant rotation. Valeurs acceptées : 50M, 1G, 512K ou un nombre d’octets brut. |
APP_LOG_RETENTION_DAYS |
7 |
Nombre de jours de conservation des fichiers journaux d’application après rotation. |
APP_LOG_MAX_FILES |
20 |
Nombre maximal de sauvegardes de fichiers journaux après rotation. |
CALL_LOG_RETENTION_DAYS |
7 |
Nombre de jours de conservation des entrées du journal des requêtes/appels dans la base de données. |
CALL_LOG_MAX_ENTRIES |
10000 |
Nombre maximal d’entrées du journal des appels dans le tampon en mémoire. |
CALL_LOGS_TABLE_MAX_ROWS |
100000 |
Nombre maximal de lignes dans la table SQLite call_logs avant élagage. |
ENABLE_REQUEST_LOGS |
(non défini) | Force l’activation ou la désactivation de la journalisation détaillée des requêtes, en remplaçant le paramètre du tableau de bord. |
MAX_PENDING_REQUEST_AGE_MS |
3600000 (1 heure) |
Âge maximal des entrées orphelines du journal des requêtes actives avant leur nettoyage en mémoire. |
CALL_LOG_PIPELINE_CAPTURE_STREAM_CHUNKS |
false |
Stocke les fragments de flux dans les artefacts du pipeline lorsque call_log_pipeline_enabled=true. Activation explicite (true) — désactivé par défaut pour économiser de l’espace disque. |
CALL_LOG_PIPELINE_MAX_SIZE_KB |
512 |
Taille maximale en Ko des artefacts du journal des appels du pipeline lorsque call_log_pipeline_enabled=true. |
PROXY_LOGS_TABLE_MAX_ROWS |
100000 |
Nombre maximal de lignes dans la table SQLite proxy_logs avant élagage. |
PROXY_LOG_INCLUDE_IPS |
false |
Inclut les adresses IP du client et de sortie ainsi que les préfixes de compte dans les journaux de console [ProxyEgress]. Les enregistrements des journaux du proxy dans le tableau de bord et la base de données conservent tous les détails. |
APP_LOG_ROTATION_CHECK_INTERVAL_MS |
60000 (1 min) |
Fréquence à laquelle src/lib/logRotation.ts vérifie de nouveau la taille du fichier journal actif. |
CHAT_LOG_TEXT_LIMIT |
65536 |
Longueur maximale des chaînes conservées dans les artefacts des journaux de discussion (64 Ko par défaut). |
CHAT_LOG_ARRAY_TAIL_ITEMS |
128 |
Nombre d’éléments de tableau conservés à partir de la fin lors de la troncature des charges utiles des journaux de discussion. |
CHAT_LOG_MAX_DEPTH |
6 |
Profondeur maximale d’imbrication avant la troncature des charges utiles des journaux de discussion. |
CHAT_LOG_MAX_OBJECT_KEYS |
80 |
Nombre maximal de clés d’objet conservées dans les charges utiles des journaux de discussion (0 = illimité). |
CHAT_LOG_MAX_BODY_KB |
1024 |
Taille totale du corps de la requête/réponse (Ko) au-delà de laquelle celui-ci est remplacé par un résumé minimal plutôt que par la copie complète. Augmentez cette valeur si les longues conversations agentiques affichent un espace réservé au lieu des messages réels dans le tableau de bord. |
CHAT_DEBUG_FILE |
false |
Lorsque cette valeur est définie sur true, serializeArtifactForStorage ignore la troncature fondée sur la taille. Réservé au débogage. |
17. Optimisation de la mémoire
Section intitulée « 17. Optimisation de la mémoire »| Variable | Valeur par défaut | Description |
|---|---|---|
OMNIROUTE_MEMORY_MB |
auto (machine physique) ; 1024 dans l’image Docker |
Limite recommandée du tas V8 (Mo) pour Docker ou une exécution autonome. Lorsqu’elle n’est pas définie, elle est étalonnée dynamiquement (~35 % de la RAM système, limitée à [512, 4096]) ; 512 n’est que la valeur minimale lorsque la mémoire totale ne peut pas être déterminée. Avec run-standalone.mjs (CMD Docker), une valeur explicite est ajoutée sous la forme --max-old-space-size et l’emporte sur une option de tas NODE_OPTIONS conflictuelle (dernière option V8). omniroute serve donne toujours la priorité à une option de tas NODE_OPTIONS existante (#5238). Ne définissez pas les deux avec des valeurs différentes : le processus journalise un avertissement indiquant les deux valeurs et celle qui l’emporte. L’image Docker officielle définit toujours 1024, l’étalonnage n’y est donc jamais exécuté. Le point de terminaison /v1/responses de l’agent de codage nécessite 8192 à 12288, plus une marge pour le cgroup — consultez le Guide Docker — RAM d’exécution. |
PROMPT_CACHE_MAX_SIZE |
50 |
Nombre maximal d’entrées d’invite système mises en cache. |
PROMPT_CACHE_MAX_BYTES |
2097152 (2 Mo) |
Taille totale maximale du cache d’invites. |
PROMPT_CACHE_TTL_MS |
300000 (5 min) |
Durée de vie des entrées du cache d’invites. |
SEMANTIC_CACHE_MAX_SIZE |
100 |
Nombre maximal de réponses avec temperature=0 mises en cache. |
SEMANTIC_CACHE_MAX_BYTES |
4194304 (4 Mo) |
Taille totale maximale du cache sémantique. |
SEMANTIC_CACHE_TTL_MS |
1800000 (30 min) |
Durée de vie des entrées du cache sémantique. |
OMNIROUTE_CORPUS_CACHE_SIZE |
5 |
Nombre de racines de corpus locaux pouvant conserver simultanément un index actif en mémoire (src/lib/localCorpus/configured.ts). LRU : lorsque la limite est atteinte, l’index de la racine la moins récemment utilisée est évincé, puis reconstruit lors de la requête suivante. La valeur minimale est 1 ; une valeur non numérique entraîne l’utilisation de la valeur par défaut. |
STREAM_HISTORY_MAX |
50 |
Nombre maximal d’événements de flux récents dans la mémoire tampon de la vue en direct du tableau de bord. |
CONTEXT_LENGTH_DEFAULT |
128000 |
Longueur maximale globale de contexte utilisée par défaut pour les modèles sans configuration explicite. |
USAGE_TOKEN_BUFFER |
100 |
Marge supplémentaire de jetons réservée lors du suivi des quotas d’utilisation. |
Compression
Section intitulée « Compression »| Variable | Valeur par défaut | Description |
|---|---|---|
OMNIROUTE_RTK_TRUST_PROJECT_FILTERS |
non défini | Faire confiance au fichier .rtk/filters.json du projet sans hachage .rtk/trust.json. À utiliser uniquement dans un environnement de développement local contrôlé. |
Moteur de mémoire (plan 21)
Section intitulée « Moteur de mémoire (plan 21) »Coût sur la boucle d’événements de la mémoire, des compétences et de l’actualisation des jetons (#10349)
Section intitulée « Coût sur la boucle d’événements de la mémoire, des compétences et de l’actualisation des jetons (#10349) »OmniRoute est un processus Node unique. L’extraction et la récupération de mémoire, l’injection de compétences et l’actualisation des jetons des fournisseurs s’exécutent sur la même boucle d’événements que GET /healthz et le tableau de bord. Elles ne s’exécutent pas dans un thread de travail.
| Tâche | Code | Valeur par défaut | Contrôle par l’opérateur |
|---|---|---|---|
| Extraction / récupération de la mémoire | src/lib/memory/ |
memoryEnabled dans le tableau de bord (activé par défaut) | Désactivez Paramètres → Mémoire. Il n’existe aucun interrupteur d’arrêt distinct via une variable d’environnement, hormis la désactivation de la fonctionnalité dans les paramètres. |
| Injection des compétences | src/lib/skills/injection.ts |
skillsEnabled dans le tableau de bord (activé par défaut) | Désactivez Paramètres → Mémoire/Compétences (skillsEnabled). Les paramètres de bac à sable ci-dessous ne font que limiter l’exécution une fois l’injection déjà activée. |
| Actualisation des jetons | src/sse/services/tokenRefresh.ts |
Activée pour les fournisseurs OAuth/web connectés | Déconnectez le fournisseur ou laissez les jetons rester valides ; il n’existe actuellement aucune variable d’environnement TOKEN_REFRESH=0. |
Si /healthz est lent sur une machine peu sollicitée, désactivez d’abord la mémoire et les compétences, puis vérifiez la charge liée au catalogue et à la compression (#10303, #9685). Ces fonctionnalités cèdent l’exécution aux points await, mais se disputent toujours l’unique thread.
Paramètres de la couche d’embedding, du magasin vectoriel et du reclassement pour le sous-système de mémoire persistante (src/lib/memory/).
| Variable | Valeur par défaut | Description |
|---|---|---|
MEMORY_EMBEDDING_CACHE_TTL_MS |
300000 (5 min) |
Durée de vie du cache d’embeddings en mémoire (par signature source/modèle/dimension). |
MEMORY_EMBEDDING_CACHE_MAX |
1000 |
Nombre maximal d’entrées LRU conservées dans le cache d’embeddings. |
MEMORY_TRANSFORMERS_MODEL |
Xenova/all-MiniLM-L6-v2 |
Identifiant du dépôt HF pour le pipeline MiniLM local @huggingface/transformers, à activer explicitement (~23 Mo en int8, ~400 Mo de RAM). |
MEMORY_STATIC_MODEL |
minishlab/potion-base-8M |
Identifiant du dépôt HF pour le modèle d’embedding statique potion/Model2Vec basé sur une table de correspondance. Téléchargé à la demande dans le répertoire de cache. |
MEMORY_STATIC_CACHE_DIR |
<DATA_DIR>/embeddings |
Répertoire utilisé pour mettre en cache les fichiers du modèle potion statique. Par défaut, il se trouve sous DATA_DIR lorsque la variable n’est pas définie. |
HF_HUB_ENDPOINT |
https://huggingface.co |
Remplace l’URL de base de Hugging Face Hub utilisée par staticPotion.ts (par ex. un point de terminaison miroir pour les environnements isolés du réseau). |
MEMORY_VEC_TOP_K |
20 |
Valeur top-K par défaut utilisée par la recherche vectorielle exhaustive sqlite-vec dans src/lib/memory/vectorStore.ts. |
MEMORY_RRF_K |
60 |
Constante k de fusion réciproque des rangs pour la récupération hybride FTS5 + vectorielle (recette sqlite-vec). |
VECTOR_STORE_DISABLE_VEC |
false |
Point d’injection pour les tests/diagnostics dans getVectorStore() (src/lib/memory/vectorStore.ts) : lorsque la valeur est true, force le magasin vectoriel à null (simule un environnement cloud/WASM sans sqlite-vec), ce qui réduit la récupération en mémoire à une recherche par mots-clés FTS5. Laissez cette variable non définie en production. |
NOTION_API_KEY |
(non définie) | Clé d’API pour le backend Notion (utilisée par la configuration prédéfinie de backend connu dans genericBackend.ts). |
NOTION_API_URL |
https://api.notion.com/v1 |
URL de base de l’API Notion (peut être remplacée pour les alternatives auto-hébergées à Notion). |
OBSIDIAN_API_KEY |
(non définie) | Clé d’API pour le backend Obsidian Vault (utilisée par la configuration prédéfinie de backend connu dans genericBackend.ts). |
OBSIDIAN_API_URL |
http://localhost:27123 |
URL de base de l’API Obsidian Vault (peut être remplacée pour un coffre distant). |
MEMORY_TYPED_DECAY_ENABLED |
false |
Interrupteur principal de la dégradation typée de la mémoire TV6. Activation explicite requise (désactivé par défaut) — le balayage supprime les souvenirs dégradés. Lorsque cette option est désactivée, access_count/last_accessed_at constituent uniquement des données de télémétrie et rien n’est jamais supprimé. |
MEMORY_TYPED_DECAY_EPISODIC_DAYS |
30 |
Durée de vie (en jours) après laquelle un souvenir episodic inutilisé se dégrade. 0 rend également les souvenirs épisodiques immunisés. Les types durables (factual/procedural/semantic) sont toujours immunisés. L’horloge de dégradation est recalée sur last_accessed_at. |
MEMORY_TYPED_DECAY_ACCESS_IMMUNITY |
3 |
Un souvenir injecté au moins ce nombre de fois devient immunisé contre la dégradation, quel que soit son type. 0 désactive l’immunité liée aux accès. |
MEMORY_TYPED_DECAY_SWEEP_INTERVAL |
0 (désactivé) |
Intervalle (en secondes) du balayage périodique facultatif de dégradation dans src/lib/memory/typedDecay.ts. 0/non défini = aucun balayage périodique. Double activation explicite : nécessite également MEMORY_TYPED_DECAY_ENABLED=true. |
OMNIROUTE_STRICT_SYSTEM_PROVIDERS |
(non définie) | Identifiants de fournisseurs séparés par des virgules (insensibles à la casse) qui n’acceptent un message system qu’à l’index 0 (src/lib/memory/injection.ts). Pour ceux-ci, l’insertion de la mémoire au milieu du tableau, conçue pour préserver le cache, n’est pas sûre dans les conversations à plusieurs tours ; la mémoire est donc fusionnée/ajoutée en préfixe au message système initial. Par défaut, uniquement xiaomi-mimo/mimo ; étendez cette liste aux points de terminaison compatibles avec OpenAI et auto-hébergés (par ex. Qwen3.5+/3.6) dont le modèle de chat impose la même contrainte d’un unique message système initial. |
Exemple Docker à faible RAM
Section intitulée « Exemple Docker à faible RAM »128 est réservé au tableau de bord. Avec cette taille de tas, les agents de codage rencontrent une FATAL ERROR pendant les longues requêtes /v1/responses. N’utilisez pas cet exemple comme passerelle Claude/Codex/Grok.
OMNIROUTE_MEMORY_MB=128PROMPT_CACHE_MAX_SIZE=20PROMPT_CACHE_MAX_BYTES=524288 # 512 KoSEMANTIC_CACHE_MAX_SIZE=25SEMANTIC_CACHE_MAX_BYTES=1048576 # 1 MoSTREAM_HISTORY_MAX=1018. Synchronisation des tarifs
Section intitulée « 18. Synchronisation des tarifs »Synchronisation automatique des données tarifaires des modèles depuis des sources externes.
| Variable | Valeur par défaut | Fichier source | Description |
|---|---|---|---|
PRICING_SYNC_ENABLED |
false |
src/lib/pricingSync.ts |
Synchronisation périodique des tarifs sur option. |
PRICING_SYNC_INTERVAL |
86400 (24 h) |
src/lib/pricingSync.ts |
Intervalle de synchronisation en secondes. |
PRICING_SYNC_SOURCES |
litellm |
src/lib/pricingSync.ts |
Sources de données séparées par des virgules. |
Synchronisation ELO d’Arena
Section intitulée « Synchronisation ELO d’Arena »| Variable | Valeur par défaut | Fichier source | Description |
|---|---|---|---|
ARENA_ELO_SYNC_ENABLED |
true |
src/shared/constants/featureFlagDefinitions.ts |
Synchronisation périodique du classement ELO d’Arena AI, configurable depuis les indicateurs de fonctionnalité du tableau de bord ou avec false pour la désactiver. |
MODELS_CATALOG_PREFIX_MODE |
dual |
src/shared/constants/featureFlagDefinitions.ts, src/app/api/v1/models/catalog.ts |
Forme du préfixe utilisée pour les identifiants de modèles dans GET /v1/models. dual publie à la fois le préfixe court d’alias et le préfixe canonique du fournisseur pour chaque modèle (rétrocompatibilité — double approximativement la taille du catalogue) ; alias émet un identifiant par modèle ; canonical émet uniquement le préfixe complet de l’identifiant du fournisseur (les fournisseurs dont l’alias correspond déjà à l’identifiant canonique conservent leur entrée unique). Les clients peuvent remplacer ce comportement pour chaque requête avec ?prefix=alias. Consultez API_REFERENCE. |
ARENA_ELO_SYNC_INTERVAL |
86400 (24 h) |
src/lib/arenaEloSync.ts |
Intervalle de synchronisation en secondes. |
Fournisseur du playground PromptQL (non officiel/expérimental)
Section intitulée « Fournisseur du playground PromptQL (non officiel/expérimental) »Passerelle de session GraphQL rétroconçue pour prompt.ql.app (src/shared/constants/providers/web-cookie.ts). Tous les paramètres sont facultatifs — les valeurs par défaut pointent vers les endpoints publics du playground ; ne les remplacez que pour un déploiement PromptQL auto-hébergé ou alternatif.
| Variable | Valeur par défaut | Fichier source | Description |
|---|---|---|---|
PROMPTQL_GRAPHQL_ENDPOINT |
https://data.prompt.ql.app/promptql/playground-v2-hge/v1/graphql |
open-sse/executors/promptql.ts |
Endpoint GraphQL utilisé pour les opérations de chat et de session. |
PROMPTQL_CREDITS_ENDPOINT |
https://data.pro.ql.app/v1/graphql |
open-sse/executors/promptql.ts, open-sse/services/usage/promptql.ts |
Endpoint GraphQL utilisé pour interroger le solde et l’utilisation des crédits. |
PROMPTQL_TOKEN_REFRESH_URL |
https://auth.pro.ql.app/ddn/project/token |
open-sse/executors/promptql.ts |
Endpoint utilisé pour tenter d’actualiser le jeton. |
PROMPTQL_POLL_TIMEOUT_MS |
180000 |
open-sse/executors/promptql.ts |
Durée maximale (ms) d’interrogation de thread_events avant expiration du délai. |
Fournisseur Web HyperAgent (non officiel/expérimental)
Section intitulée « Fournisseur Web HyperAgent (non officiel/expérimental) »Passerelle de session issue de l’ingénierie inverse pour hyperagent.com (src/shared/constants/providers/web-cookie.ts). Facultatif — la valeur par défaut pointe vers le point de terminaison public de facturation/d’utilisation ; ne la remplacez que pour un déploiement HyperAgent auto-hébergé/alternatif.
| Variable | Valeur par défaut | Fichier source | Description |
|---|---|---|---|
HYPERAGENT_USAGE_URL |
https://hyperagent.com/api/settings/billing/usage |
open-sse/services/usage/hyperagent.ts |
Point de terminaison utilisé pour récupérer les blocs de crédits de facturation/d’utilisation. |
Quotas d’utilisation de Kilo Code
Section intitulée « Quotas d’utilisation de Kilo Code »Consultation du solde personnel en USD et de l’utilisation de Kilo Pass pour le fournisseur Kilo Code. Facultatif — la valeur par défaut pointe vers l’API Kilo publique ; ne la remplacez que pour un relais/environnement de test. L’authentification utilise le jeton d’accès OAuth existant de la connexion.
| Variable | Valeur par défaut | Fichier source | Description |
|---|---|---|---|
KILO_API_URL |
https://api.kilo.ai |
open-sse/services/usage/kilocode.ts |
URL de base utilisée pour récupérer le solde personnel Kilo Code et l’utilisation de Kilo Pass. |
Fournisseur Web Adobe Firefly (non officiel/expérimental)
Section intitulée « Fournisseur Web Adobe Firefly (non officiel/expérimental) »Actualisation de session pilotée par navigateur pour le fournisseur Web Adobe Firefly
(open-sse/services/adobeFireflyBrowserLogin.ts, open-sse/services/adobeFireflySession.ts,
open-sse/services/adobeFireflyClient.ts). Facultatif — toutes les valeurs par défaut sont optimisées pour une installation
de bureau standard.
Supprimé dans #9255. L’ancien environnement d’exécution Chrome connecté via CDP (adobeFireflyChromeRuntime.ts) a été remplacé par un service de connexion par navigateur Playwright, et ses paramètres n’existent plus. Les variables ADOBE_FIREFLY_CHROME_ CDP_PORT / VISIBLE / HEADED / PING / FORCE_RESTART, ainsi que ADOBE_FIREFLY_LOGIN_WAIT_MS et ADOBE_FIREFLY_FORTER_WAIT_MS, ne sont lues nulle part dans la base de code — les définir n’a aucun effet.
| Variable | Valeur par défaut | Fichier source | Description |
|---|---|---|---|
ADOBE_FIREFLY_CHROME_HEADLESS |
0 |
open-sse/services/adobeFireflyBrowserLogin.ts |
Définissez sur 1 pour utiliser Chrome en mode véritablement sans interface graphique (problème connu pour la génération ; débogage uniquement). |
ADOBE_FIREFLY_BROWSER_REFRESH |
1 |
open-sse/services/adobeFireflySession.ts |
Activation/désactivation facultative du préchauffage proactif du navigateur. 0 désactive le préchauffage proactif (la récupération après une erreur 408 en milieu de lot s’applique toujours). |
ADOBE_FIREFLY_SESSION_DISK |
1 |
open-sse/services/adobeFireflySession.ts |
Définissez sur 0 pour désactiver la persistance de la session Adobe Firefly sur le disque. |
ADOBE_FIREFLY_MIN_SUBMIT_GAP_MS |
(non défini) | open-sse/services/adobeFireflySession.ts |
Intervalle minimal (ms) imposé entre deux soumissions successives, remplaçant la valeur par défaut intégrée. |
ADOBE_FIREFLY_BATCH_EXTRA_GAP_MS |
(non défini) | open-sse/services/adobeFireflySession.ts |
Intervalle supplémentaire (ms) ajouté après la réussite d’un lot, remplaçant la valeur par défaut intégrée. |
ADOBE_FIREFLY_SUBMIT_BASE_DELAY_MS |
(non défini) | open-sse/services/adobeFireflyClient.ts |
Délai de base (ms) avant la soumission d’une requête de génération, remplaçant la valeur par défaut intégrée. |
19. Synchronisation des modèles (développement)
Section intitulée « 19. Synchronisation des modèles (développement) »| Variable | Valeur par défaut | Fichier source | Description |
|---|---|---|---|
MODELS_DEV_SYNC_ENABLED |
(non définie) | src/lib/modelsDevSync.ts |
Remplacement forcé pour la synchronisation des tarifs de models.dev. Non définie = respecte Paramètres > IA (modelsDevSyncEnabled). 0/false/off/no prévaut sur la base de données et ignore à la fois la synchronisation périodique et les analyses SQL/JSON de getModelsDevPricing() (récupération lorsque le tableau de bord est bloqué sur la même boucle d’événements). 1/true/on/yes force l’activation de la synchronisation. L’enregistrement/l’effacement des tarifs appelle toujours backupDbFile("pre-write"), qui ne fait rien pendant la temporisation de 60 minutes ou si DISABLE_SQLITE_AUTO_BACKUP est défini. |
MODELS_DEV_SYNC_INTERVAL |
86400 (24 h) |
src/lib/modelsDevSync.ts |
Intervalle de synchronisation du catalogue de modèles en environnement de développement, en secondes. |
CONTEXT_WINDOW_RECONCILE_INTERVAL |
86400 (24 h) |
src/lib/contextWindowResolver.ts |
Intervalle (en secondes) du mécanisme d’auto-correction des fenêtres de contexte (5004) : épingle les fenêtres déclarées par le fournisseur et découvertes via /models en tant que remplacements auto:discovery lorsqu’elles divergent du catalogue. Définissez cette valeur sur 0 pour le désactiver. Réutilise les données déjà synchronisées (aucune nouvelle récupération) ; ne remplace jamais les remplacements manual. |
20. Paramètres spécifiques au fournisseur
Section intitulée « 20. Paramètres spécifiques au fournisseur »| Variable | Valeur par défaut | Fichier source | Description |
|---|---|---|---|
OPENROUTER_CATALOG_TTL_MS |
86400000 (24 h) |
src/lib/catalog/openrouterCatalog.ts |
Durée de vie du cache du catalogue de modèles OpenRouter. |
MODEL_CATALOG_INCLUDE_NAMES |
true |
src/shared/constants/featureFlagDefinitions.ts |
Inclut des champs name adaptés à l’affichage dans les réponses de /v1/models. Désactivez cette option pour les clients qui attendent uniquement des identifiants. |
CATALOG_BUILD_TIMEOUT_MS |
8000 (8 s) |
src/app/api/v1/models/catalogCache.ts |
Délai d’attente maximal à froid pour une reconstruction mutualisée du catalogue par GET /v1/models (#12627). En cas d’expiration du délai, la dernière réponse 200 valide est renvoyée lorsqu’elle existe. |
OMNIROUTE_SYNCED_CATALOG_STALE_AFTER_MS |
2592000000 (30 jours) |
src/lib/db/models/activeSyncedCatalog.ts |
Ancienneté au-delà de laquelle la liste synchronisée des modèles d’une connexion cesse de faire autorité pour le routage, qui se rabat alors sur le registre (#12849). Les lignes n’ayant jamais été horodatées sont considérées comme obsolètes. |
NANOBANANA_POLL_TIMEOUT_MS |
120000 |
open-sse/handlers/imageGeneration.ts |
Durée d’attente maximale pour les tâches de génération d’images NanoBanana. |
NANOBANANA_POLL_INTERVAL_MS |
2500 |
open-sse/handlers/imageGeneration.ts |
Fréquence d’interrogation des tâches NanoBanana. |
ADOBE_FIREFLY_SUBMIT_BASE_DELAY_MS |
8000 |
open-sse/services/adobeFireflyUpscale.ts |
Délai de base pour le backoff exponentiel des nouvelles tentatives d’envoi de mise à l’échelle Adobe Firefly. |
AWS_REGION |
(non définie) | src/lib/providers/validation.ts, open-sse/handlers/audioSpeech.ts |
Région utilisée pour construire les points de terminaison AWS Bedrock (Kiro, audio). |
AWS_DEFAULT_REGION |
(non définie) | src/lib/providers/validation.ts, open-sse/handlers/audioSpeech.ts |
Valeur de repli lorsque AWS_REGION n’est pas définie. |
CLOUDFLARE_ACCOUNT_ID |
(non définie) | open-sse/executors/cloudflare-ai.ts |
Identifiant de compte pour Cloudflare Workers AI. |
CLOUDFLARE_PLAYGROUND_CHROME_PATH |
(non définie) | open-sse/executors/cloudflare-playground.ts |
Chemin complet vers le binaire de bureau Chrome pour l’exécuteur Cloudflare AI Playground, utilisé lorsque la vérification d’empreinte en mode sans interface graphique bloque la version de Chromium fournie avec Playwright. |
CLOUDFLARE_API_BASE |
https://api.cloudflare.com/client/v4 |
src/app/api/settings/proxy/cloudflare-deploy/route.ts |
Remplace la base de l’API REST Cloudflare utilisée par l’outil de déploiement du relais Workers du pool de proxys (#4640 / 9router#1360). |
NEXT_PUBLIC_CLOUDFLARE_RELAY_DEFAULT_PROJECT |
omniroute-relay |
src/app/(dashboard)/dashboard/settings/components/proxy/CloudflareRelayModal.tsx |
Nom par défaut du projet worker suggéré dans la fenêtre modale « Deploy Relay » du pool de proxys. |
NEXT_PUBLIC_CLOUDFLARE_RELAY_ENABLED |
true |
src/app/(dashboard)/dashboard/settings/components/proxy/ProxyPoolTab.tsx |
Définissez cette variable sur false pour masquer l’option de relais Cloudflare Workers dans l’onglet Proxy Pool. |
CLOUDFLARED_BIN |
détection automatique | src/lib/cloudflaredTunnel.ts |
Chemin personnalisé vers le binaire cloudflared. |
CLOUDFLARED_PROTOCOL |
http2 |
src/lib/cloudflaredTunnel.ts |
Protocole de transport du tunnel : http2 (par défaut), quic ou auto. |
CLOUDFLARED_CONFIG |
(non définie) | src/lib/cloudflaredTunnel.ts |
Chemin vers un fichier config.yml cloudflared géré localement (avec tunnel:, credentials-file:, ingress:). Lorsqu’il est défini, OmniRoute exécute tunnel --config <path> run (tunnel nommé) au lieu d’un tunnel rapide éphémère. |
CLOUDFLARED_HOSTNAME |
(depuis l’ingress de la configuration) | src/lib/cloudflaredTunnel.ts |
Remplacement du nom d’hôte public du tunnel nommé (par exemple ai.example.com), indiqué sous la forme publicUrl/apiUrl. Lorsqu’il n’est pas défini, il est lu depuis le premier nom d’hôte ingress de la configuration. |
DENO_DEPLOY_API_BASE |
https://api.deno.com/v2 |
src/app/api/settings/proxy/deno-deploy/route.ts |
Remplace la base de l’API REST Deno Deploy utilisée par le déployeur de relais du pool de proxys (#4643 / 9router#1437). |
NEXT_PUBLIC_DENO_RELAY_DEFAULT_PROJECT |
omniroute-deno-relay |
src/app/(dashboard)/dashboard/settings/components/proxy/DenoRelayModal.tsx |
Nom d’application Deno Deploy par défaut suggéré dans la fenêtre modale « Deploy Relay » du pool de proxys. |
NEXT_PUBLIC_DENO_RELAY_ENABLED |
true |
src/app/(dashboard)/dashboard/settings/components/proxy/ProxyPoolTab.tsx |
Définissez cette variable sur false pour masquer l’option de relais Deno Deploy dans l’onglet Proxy Pool. |
SEARCH_CACHE_TTL_MS |
300000 (5 min) |
open-sse/services/searchCache.ts |
Durée de vie du cache des réponses des API de recherche (Perplexity, Brave, etc.). |
ENABLE_CC_COMPATIBLE_PROVIDER |
false |
src/shared/utils/featureFlags.ts |
Affiche l’interface expérimentale des fournisseurs compatibles avec CC pour les relais réservés à Claude Code. |
NINEROUTER_HOST |
127.0.0.1 |
open-sse/executors/ninerouter.ts |
Remplace l’hôte sur lequel l’instance 9router intégrée écoute. |
NINEROUTER_PORT |
20130 |
open-sse/executors/ninerouter.ts |
Remplace le port sur lequel l’instance 9router intégrée écoute. |
EMBED_WS_PROXY_HOST |
127.0.0.1 |
src/lib/services/embedWsProxy.ts |
Hôte de liaison du proxy WebSocket du service intégré (boucle locale uniquement par défaut). |
EMBED_WS_PROXY_PORT |
20131 |
src/lib/services/embedWsProxy.ts |
Port du serveur proxy WebSocket du service intégré. |
CLIPROXYAPI_HOST |
127.0.0.1 |
open-sse/executors/cliproxyapi.ts |
Hôte de la passerelle CLIProxyAPI (intégration héritée). |
CLIPROXYAPI_PORT |
5544 |
open-sse/executors/cliproxyapi.ts |
Port de la passerelle CLIProxyAPI. |
CLIPROXYAPI_API_KEY |
(vide) | open-sse/handlers/chatCore/cliproxyapiCredentials.ts |
Clé de secours du plan de données lorsque le paramètre cliproxyapi_api_key est absent. |
CLIPROXYAPI_MANAGEMENT_KEY |
(vide) | src/lib/services/cliproxyAccountHealth.ts |
Clé de gestion permettant de consulter l’état des comptes depuis une instance CLIProxyAPI gérée en externe. |
CLIPROXYAPI_CONFIG_DIR |
~/.cli-proxy-api |
src/lib/versionManager/processManager.ts |
Répertoire de configuration de CLIProxyAPI. |
CLIPROXY_BIND_HOST |
127.0.0.1 |
docker-compose.yml |
Interface hôte sur laquelle docker-compose publie le conteneur annexe cliproxyapi (#12578). Son volume de données contient les identifiants OAuth/API des fournisseurs et l’image épinglée ne permet pas de remplacer les api-keys du plan de données au moyen de variables d’environnement (uniquement via un fichier config.yaml monté) ; utiliser 0.0.0.0 expose donc à l’ensemble du réseau local un service contenant des identifiants. |
MUX_SERVICE_PORT |
8322 |
src/lib/services/bootstrap.ts |
Remplace le port sur lequel le démon intégré d’orchestration d’agents Mux (coder/mux) écoute (toujours sur 127.0.0.1). |
OPENWA_SERVICE_PORT |
8323 |
src/lib/services/bootstrap.ts |
Remplace le port sur lequel le démon intégré open-wa (automatisation de WhatsApp Web) écoute (toujours sur 127.0.0.1). |
DARIO_HOST |
127.0.0.1 |
open-sse/executors/dario.ts |
Hôte de liaison/connexion du service intégré Dario (boucle locale uniquement par défaut). |
DARIO_PORT |
3456 |
open-sse/executors/dario.ts |
Port du service intégré Dario. |
DARIO_HOST |
127.0.0.1 |
open-sse/executors/dario.ts |
Hôte de liaison/connexion du service intégré Dario (boucle locale uniquement par défaut). |
DARIO_PORT |
3456 |
open-sse/executors/dario.ts |
Port du service intégré Dario. |
LOCAL_HOSTNAMES |
(vide) | open-sse/config/providerRegistry.ts |
Noms d’hôte supplémentaires séparés par des virgules et traités comme « locaux » (noms de services Docker, etc.). |
ENABLE_CC_COMPATIBLE_PROVIDER est réservé aux relais tiers qui acceptent exclusivement les clients
Claude Code. OmniRoute réécrit les requêtes afin que ces relais les acceptent. Si vous souhaitez uniquement utiliser
la CLI Claude Code, ou si vous ne savez pas exactement ce que sont ces relais, laissez cette option désactivée et ajoutez plutôt
un fournisseur standard compatible avec Anthropic.
21. Santé des proxys
Section intitulée « 21. Santé des proxys »| Variable | Valeur par défaut | Fichier source | Description |
|---|---|---|---|
PROXY_FAST_FAIL_TIMEOUT_MS |
2000 |
src/lib/proxyHealth.ts |
Délai d’expiration de la vérification d’état en échec rapide. |
PROXY_LATENCY_WINDOW_HOURS |
3 |
src/lib/db/proxies.ts |
Fenêtre temporelle (en heures) utilisée pour calculer la latence moyenne des proxys candidats dans la stratégie de pool optimisée pour la latence. |
PROXY_HEALTH_CACHE_TTL_MS |
30000 |
src/lib/proxyHealth.ts |
Durée de vie (TTL) du cache des résultats de vérification d’état. |
PROXY_HEALTH_UNHEALTHY_CACHE_TTL_MS |
2000 |
src/lib/proxyHealth.ts |
Durée de vie (TTL) du cache pour les sondes d’état de proxy ayant échoué. Conservez une durée inférieure à PROXY_HEALTH_CACHE_TTL_MS afin que les délais d’expiration temporaires des proxys en cas de forte concurrence soient rapidement retentés, sans désactiver l’échec rapide pour les proxys réellement hors service. |
PROXY_HEALTH_ENABLED |
true |
src/lib/proxyHealth/scheduler.ts |
Définissez cette variable sur false pour désactiver le planificateur d’état des proxys en arrière-plan, qui sonde périodiquement les proxys enregistrés. |
PROXY_HEALTH_INTERVAL_MS |
600000 |
src/lib/proxyHealth/scheduler.ts |
Intervalle, en ms, entre les balayages du planificateur d’état en arrière-plan (minimum : 60000). |
PROXY_HEALTH_RECOVERY_INTERVAL_MS |
600000 |
src/lib/proxyHealth/scheduler.ts |
Intervalle en ms de la passe de récupération en arrière-plan : fréquence à laquelle les proxys précédemment défaillants sont testés à nouveau afin qu’un proxy rétabli soit réintégré à la rotation sans redémarrage. Les valeurs inférieures à 60000 sont remplacées par la valeur par défaut. |
PROXY_HEALTH_TEST_URL |
https://httpbin.org/ip |
src/lib/proxyHealth/probeTarget.ts |
Cible du test d’accessibilité utilisée par le planificateur et le point de terminaison /api/settings/proxies/auto-test. Définissez-la sur une URL interne/auto-hébergée pour éviter la cible publique par défaut. |
PROXY_HEALTH_TEST_CONCURRENCY |
10 |
src/lib/proxyHealth/probeTarget.ts |
Nombre de tests lancés simultanément par lot, commun au planificateur et au point de terminaison /api/settings/proxies/auto-test. Arrondi à l’entier inférieur, avec un minimum de 1 et un maximum de 50. |
PROXY_HEALTH_TEST_STAGGER_MS |
100 |
src/lib/proxyHealth/probeTarget.ts |
Délai en ms entre deux départs de test au sein d’un lot. Sans ce délai, le lot entier est envoyé au même moment et une adresse IP de sortie partagée peut déclencher la limitation de débit de la cible. Définissez cette valeur sur 0 pour désactiver l’espacement ; elle est plafonnée à 5000. |
PROXY_HEALTH_USE_PROVIDER_TARGET |
true |
src/lib/proxyHealth/providerProbeTarget.ts |
Définissez sur « false » pour ne plus tester l’hôte réel du fournisseur attribué à un proxy (GET /models, sans clé API) et toujours utiliser PROXY_HEALTH_TEST_URL à la place. |
PROXY_HEALTH_AUTO_DEACTIVATE |
false |
src/lib/proxyHealth/statusPolicy.ts |
Lorsque la valeur est false (par défaut), les tests automatisés d’accessibilité (le planificateur + le bouton « Test All » de /api/settings/proxies/auto-test) sont en lecture seule et ne modifient jamais le statut d’un proxy — seul l’opérateur définit l’état actif/inactif, afin qu’un test instable ne puisse pas bloquer un proxy attribué (#6246). Définissez la valeur sur true pour restaurer l’ancien comportement de test et de mise à jour du statut. |
FLUSH_EMPTY_RETRY_ENABLED |
false |
src/shared/utils/featureFlags.ts |
Indicateur de fonctionnalité à activer explicitement (voir FEATURE_FLAGS.md ; une valeur définie dans la base de données depuis le tableau de bord est prioritaire). true (ou 1, yes) relance les tours de streaming traduits vides via le chemin normal des identifiants (jusqu’à STREAM_RECOVERY.EMPTY_TURN_RETRY_MAX nouvelles tentatives), au lieu d’exposer une réponse 200 vide ou une réponse 502 au contenu vide. |
PROXY_POOL_EGRESS_OBSERVATION |
false |
src/shared/utils/featureFlags.ts |
Indicateur de fonctionnalité à activer explicitement (voir FEATURE_FLAGS.md ; une valeur définie dans la base de données depuis le tableau de bord est prioritaire). true (ou 1, yes) affiche, sous un pool de proxys dans le tableau de bord, l’observation en lecture seule des sorties du pool (adresses IP de sortie distinctes, connexions et nombre maximal observé derrière une même adresse IP au cours des dernières 24 h, d’après le journal des proxys). Jamais utilisé pour le routage. |
PROXY_AUTO_REMOVE |
false |
src/lib/proxyHealth/scheduler.ts |
Définissez sur true pour permettre au planificateur de supprimer automatiquement les proxys après plusieurs échecs consécutifs. |
PROXY_AUTO_REMOVE_AFTER |
3 |
src/lib/proxyHealth/scheduler.ts |
Nombre d’échecs consécutifs avant que le planificateur ne supprime automatiquement un proxy (lorsque PROXY_AUTO_REMOVE=true). |
PROXY_AUTO_DISABLE |
false |
src/lib/proxyHealth/scheduler.ts |
Définissez sur true pour permettre au planificateur de désactiver de manière réversible (statut dead, sans suppression) un proxy après plusieurs échecs consécutifs, au lieu de le supprimer. Alternative non destructive à PROXY_AUTO_REMOVE : le proxy est immédiatement exclu de la résolution des pools et de la rotation (le filtre de statut actif utilisé par la résolution des pools de portée l’exclut déjà) et est automatiquement réactivé dès qu’il réussit de nouveau les sondes. Utilise le même seuil PROXY_AUTO_REMOVE_AFTER. Si les deux indicateurs sont définis sur true, PROXY_AUTO_REMOVE est prioritaire. |
OMNIROUTE_CONTROL_PLANE_PROXY_DIRECT_FALLBACK |
false |
src/shared/constants/featureFlagDefinitions.ts |
Permettre aux flux de validation OAuth et des fournisseurs de contourner un proxy épinglé et de se connecter directement lorsque les vérifications préalables d’accessibilité du proxy échouent. L’ordre de priorité effectif est le suivant : remplacement par la base de données des indicateurs de fonctionnalité > variable d’environnement > valeur par défaut. |
RATE_LIMIT_MAX_WAIT_MS |
30000 (30 s) |
src/lib/resilience/settings.ts |
Budget d’attente dans la file par défaut : durée pendant laquelle une requête peut attendre un créneau auprès d’un fournisseur et rester dans la file avant d’être rejetée, sans jamais atteindre le service en amont. Le minuteur est arrêté dès que l’exécution de la tâche commence — l’exécution est limitée séparément par RATE_LIMIT_EXECUTION_MAX_WAIT_MS. La variable d’environnement définit uniquement la valeur par défaut : une valeur persistée resilienceSettings.requestQueue.maxWaitMs, puis une valeur rateLimitOverrides.maxWaitMs propre à chaque connexion, sont chacune prioritaires sur celle-ci. |
RATE_LIMIT_EXECUTION_MAX_WAIT_MS |
600000 (10 min) |
open-sse/services/rateLimitManager.ts |
Durée maximale pendant laquelle une requête admise peut rester en cours d’exécution avant l’expiration de sa réservation de limite de débit — découplée du budget d’attente dans la file afin qu’un démarrage lent de la récupération sur les passerelles non incrémentales n’entraîne pas d’expiration du délai (#12027). |
RATE_LIMIT_MAX_QUEUE_DEPTH |
0 (désactivé) |
open-sse/services/rateLimitManager.ts |
Limite d’admission dans la file : rejette avec une erreur 429 queue_full lorsque ce nombre de requêtes est déjà en attente. 0 = sans limite (valeur par défaut). |
RATE_LIMIT_AUTO_ENABLE |
(non défini) | open-sse/services/rateLimitManager.ts |
Force l’activation ou la désactivation du mécanisme de sécurité d’activation automatique de la limite de débit, indépendamment du paramètre persistant du tableau de bord. Accepte true/1/on pour forcer l’activation, et false/0/off pour forcer la désactivation. |
PROVIDER_COOLDOWN_ENABLED |
(non défini → désactivé) | open-sse/services/providerCooldownTracker.ts |
Suivi global et facultatif, entre les requêtes, du délai de récupération des fournisseurs/connexions. DÉSACTIVÉ par défaut (fait double emploi avec le délai de récupération des connexions / le disjoncteur des fournisseurs). Accepte true/1/on pour l’activer. |
PROVIDER_COOLDOWN_MIN_MS |
5000 |
open-sse/services/providerCooldownTracker.ts |
Délai de récupération minimal (ms) avant de réessayer un fournisseur/une connexion ayant échoué. Augmente exponentiellement en fonction des échecs consécutifs. Utilisé uniquement lorsque PROVIDER_COOLDOWN_ENABLED est activé. |
PROVIDER_COOLDOWN_MAX_MS |
300000 (5 min) |
open-sse/services/providerCooldownTracker.ts |
Limite maximale du délai de récupération (ms) avant de réessayer malgré tout un fournisseur/une connexion ayant échoué. Utilisé uniquement lorsque PROVIDER_COOLDOWN_ENABLED est activé. |
STREAM_RECOVERY_ENABLED |
(non défini → désactivé) | src/lib/resilience/settings.ts (initialisation) → open-sse/services/streamRecovery.ts (logique) |
Fonction : récupération transparente des flux en amont tronqués (portage de free-claude-code). Retient la fenêtre SSE d’ouverture pendant un maximum de STREAM_RECOVERY.HOLDBACK_MS (750 ms), afin qu’une interruption avant validation — qui survient avant qu’un seul octet n’atteigne le client — entraîne la réouverture du flux et une nouvelle tentative de manière invisible. Quand l’activer : pour les flux en amont instables/fréquemment tronqués sans aucun octet au démarrage ; laissez cette option DÉSACTIVÉE si vous ne pouvez pas accepter jusqu’à 750 ms supplémentaires avant le premier jeton sur chaque flux. Accepte true/1/on. Initialise le paramètre persistant de résilience ; une fois défini, le paramètre du tableau de bord prévaut. |
STREAM_RECOVERY_MIDSTREAM_ENABLED |
(non défini → désactivé) | src/lib/resilience/settings.ts (initialisation) → open-sse/services/streamRecovery.ts (logique) |
Fonction : continuation en milieu de flux (phase 4.4) — après une troncation postérieure à la validation (des octets ont déjà atteint le client), effectue une nouvelle requête en utilisant le texte partiel comme préremplissage de l’assistant, puis raccorde le suffixe manquant. Uniquement pour les flux OpenAI compatibles en texte brut ; ne se déclenche jamais lorsqu’un appel d’outil est en cours. Quand l’activer : pour les longues générations interrompues en cours de réponse, si vous acceptez que la fin récupérée arrive en une seule salve plutôt que jeton par jeton. Indépendant de STREAM_RECOVERY_ENABLED (profil de risque différent). Accepte true/1/on. |
STREAM_THROUGHPUT_WATCHDOG_ENABLED |
(non défini → désactivé) | src/lib/resilience/settings.ts → open-sse/services/throughputWatchdog.ts |
Chien de garde facultatif de la sortie utile des flux actifs. Détecte les flux qui continuent d’envoyer des fragments tout en restant sous le débit configuré de sortie de l’assistant ; les pulsations, les événements d’utilisation, les deltas vides et les phases d’utilisation d’outils/de raisonnement ne sont pas considérés à tort comme une progression. Distinct des délais d’expiration d’inactivité et des échéances strictes. |
STREAM_THROUGHPUT_WATCHDOG_WARMUP_MS |
30000 |
src/lib/resilience/settings/normalize.ts |
Période de grâce avant l’évaluation du débit, limitée à 0–600000 ms. |
STREAM_THROUGHPUT_WATCHDOG_WINDOW_MS |
30000 |
src/lib/resilience/settings/normalize.ts |
Fenêtre glissante de sortie utile, limitée à 1000–600000 ms ; une fenêtre complète est requise avant l’interruption. |
STREAM_THROUGHPUT_WATCHDOG_MIN_BYTES_PER_SECOND |
4 |
src/lib/resilience/settings/normalize.ts |
Débit minimal, en octets UTF-8, de la sortie de l’assistant (approximation prudente du débit de jetons), limité à 1–1000000. |
STREAM_THROUGHPUT_WATCHDOG_MIN_USEFUL_BYTES |
1 |
src/lib/resilience/settings/normalize.ts |
Taille minimale non nulle d’un échantillon de sortie utile considéré comme mesurable, limitée à 1–1000000 octets. |
HEALTHCHECK_STAGGER_MS |
3000 |
src/lib/tokenHealthCheck.ts |
Intervalle de décalage (ms) entre les contrôles d’état des jetons des fournisseurs au démarrage. |
HEALTHCHECK_JITTER_MIN_MS |
500 |
src/lib/tokenHealthCheck.ts |
Gigue aléatoire minimale (ms) ajoutée à HEALTHCHECK_STAGGER_MS entre les contrôles d’état des jetons des fournisseurs, afin d’éviter les rafales (problème nº 1220). |
HEALTHCHECK_JITTER_MAX_MS |
5000 |
src/lib/tokenHealthCheck.ts |
Gigue aléatoire maximale (ms) ajoutée à HEALTHCHECK_STAGGER_MS entre les contrôles d’état des jetons des fournisseurs, afin d’éviter les rafales (problème nº 1220). |
HEALTHCHECK_BATCH_SIZE |
20 |
src/lib/tokenHealthCheck.ts |
Taille des lots de contrôles simultanés pour le balayage des contrôles d’état des jetons au démarrage ; les valeurs élevées vérifient davantage de connexions en parallèle, tandis que les valeurs faibles réduisent la charge en rafale (problème nº 7875, régression du nº 7719). |
REQUEST_RETRY |
2 |
src/sse/services/cooldownAwareRetry.ts |
Nombre de nouvelles tentatives automatiques lors de réponses de temporisation propres au modèle avant de renvoyer une erreur au client. |
MAX_RETRY_INTERVAL_SEC |
30 |
src/sse/services/cooldownAwareRetry.ts |
Intervalle maximal d’attente exponentielle (en secondes) entre les nouvelles tentatives après temporisation. Limité à cette valeur, quelle que soit la valeur amont de Retry-After. |
HEADROOM_URL |
http://localhost:8787 |
src/lib/headroom/detect.ts |
URL du proxy économiseur de jetons Headroom. Par défaut, le cycle de vie du tableau de bord (api/headroom/*) lance une CLI headroom-ai locale sur l’interface de bouclage ; ne remplacez cette valeur que pour pointer vers un proxy side-car Docker externe. |
Constantes de réglage de la récupération des flux
Section intitulée « Constantes de réglage de la récupération des flux »Le comportement de temporisation de la récupération est réglé à l’aide de constantes codées en dur dans
open-sse/config/constants.ts (STREAM_RECOVERY), présentées ici à titre de référence —
leur modification nécessite une modification du code, et non une variable d’environnement :
STREAM_RECOVERY.HOLDBACK_MS = 750— durée pendant laquelle la fenêtre SSE initiale est retenue afin qu’une troncature précoce puisse faire l’objet d’une nouvelle tentative avant qu’un quelconque octet ne soit transmis au client.STREAM_RECOVERY.BUFFER_MAX_BYTES = 65536— limite stricte de la fenêtre retenue ; la valider (vidage + transmission directe) dès que ce nombre d’octets est accumulé, indépendamment du minuteur.STREAM_RECOVERY.EARLY_RETRY_MAX = 4— nombre maximal de réouvertures transparentes du flux amont tant que la temporisation n’a pas encore été validée.
Limite de débit par fenêtre glissante et par fournisseur (aucune variable d’environnement) : le mécanisme de repli de limitation du débit par fenêtre glissante et par fournisseur, porté depuis FCC, existe dans le code (
open-sse/services/providerDefaultRateLimit.ts, connecté viaopen-sse/services/rateLimitManager.ts), mais est fourni avec une table de valeurs par défaut vide et ne dispose actuellement d’aucune variable d’environnement pour l’opérateur — il est activé uniquement au moyen d’un point d’injection pour les tests / d’une modification du code. Il n’est volontairement pas répertorié dans le tableau ci-dessus. Le limiteur de relais par(token, IP)qui dispose d’un paramètre estRELAY_IP_PER_MINUTE(§3 Réseau et ports).
22. Débogage
Section intitulée « 22. Débogage »[!CAUTION] Ces variables produisent une sortie détaillée et peuvent divulguer des données sensibles. Ne les activez jamais en production.
| Variable | Valeur par défaut | Fichier source | Description |
|---|---|---|---|
CURSOR_DEBUG |
(non définie) | open-sse/executors/cursor.ts |
Définissez cette variable sur 1 pour activer les journaux détaillés de l’exécuteur Cursor (fragments SSE décodés, etc.). |
CURSOR_STREAM_DEBUG |
(non définie) | open-sse/executors/cursor.ts |
Alias rétrocompatible de CURSOR_DEBUG. |
CURSOR_DUMP_FILE |
(non définie) | open-sse/executors/cursor.ts |
Chemin de fichier facultatif recevant les fragments Cursor bruts décodés lorsque CURSOR_DEBUG=1. |
CURSOR_STREAM_TIMEOUT_MS |
300000 |
open-sse/executors/cursor.ts |
Délai d’expiration d’inactivité du flux (ms) pour l’exécuteur Cursor. |
CURSOR_KV_GRACE_MS |
2000 |
open-sse/executors/cursor.ts |
Fenêtre de grâce (ms) après un terminateur souple composer kv_after_text lorsque des octets restent en mémoire tampon — laisse à un appel d’outil exec_mcp final le temps de terminer sa trame. |
CURSOR_TOOL_DIRECTIVE |
activée (!== "0") |
open-sse/executors/cursor.ts |
Directive de validation d’outil qui permet à composer-2.5 d’émettre des appels d’outils de manière fiable. Définissez-la sur 0 pour la désactiver. |
OMNIROUTE_SYSTEM_INSTRUCTION_APPEND |
(non définie) | open-sse/translator/request/claude-to-openai.ts, open-sse/translator/response/openai-to-claude.ts |
Texte d’invite système défini par l’opérateur et ajouté au message système APRÈS la traduction (injection post-traduction), atteignant les chemins codex/Responses et /v1/messages. Également utilisé comme préfixe de directive supprimé des blocs de préambule système renvoyés en écho. Laissez cette variable non définie pour désactiver cette fonctionnalité. |
OMNIROUTE_STRIP_SYSTEM_PREAMBLE |
0 (désactivée) |
open-sse/translator/response/openai-to-claude.ts, open-sse/utils/directivePreambleStripper.ts |
Définissez cette variable sur 1 pour supprimer les blocs de préambule d’invite système renvoyés en écho au début d’un flux openai→claude. Désactivée par défaut — les heuristiques sont conçues pour de la prose anglaise et modifient la charge utile de la réponse ; une réponse commençant légitimement par une telle section la perdrait donc. |
CURSOR_IMAGE_FETCH_TIMEOUT_MS |
15000 |
open-sse/utils/cursorImages.ts |
Délai d’expiration de récupération par image (ms) pour une entrée de vision image_url distante. |
CURSOR_STATE_DB_PATH |
(détectée) | open-sse/utils/cursorVersionDetector.ts |
Remplace la recherche de la base de données d’état de l’IDE Cursor utilisée pour détecter la version de l’IDE. |
CURSOR_AGENT_CLI_VERSION |
(détecter / fixer) | open-sse/utils/cursorAgentCliVersion.ts |
Identifiant de build de l’interface CLI de l’agent (YYYY.MM.DD-<hash>) pour x-cursor-client-version: cli-… sur Agent Run. |
CURSOR_AGENT_BIN |
(non définie) | open-sse/handlers/imageGeneration/providers/cursorAgentImage.ts |
Chemin vers le binaire Cursor Agent utilisé pour la génération d’images. Lorsqu’elle n’est pas définie, le gestionnaire utilise providerSpecificData.agentBin, puis PATH. |
CURSOR_IMG_TIMEOUT_MS |
210000 |
open-sse/handlers/imageGeneration/providers/cursorAgentImage.ts |
Temps écoulé maximal par image (ms) pour les tâches d’image de Cursor Agent. |
CURSOR_IMG_MAX_CONCURRENT |
2 |
open-sse/handlers/imageGeneration/providers/cursorAgentImage.ts |
Limite de concurrence du poste partagé pour les tâches d’image Cursor. |
CURSOR_IMG_MODEL |
requête / auto |
open-sse/handlers/imageGeneration/providers/cursorAgentImage.ts |
Remplace l’option --model de la CLI Cursor pour les tâches d’image. |
UC_IMAGE_POLL_INTERVAL_MS |
2000 |
open-sse/handlers/imageGeneration/providers/ucImage.ts |
Fréquence d’interrogation des résultats de génération d’images UC (uncensored.com) (ms). |
UC_IMAGE_POLL_TIMEOUT_MS |
60000 |
open-sse/handlers/imageGeneration/providers/ucImage.ts |
Durée maximale d’interrogation des résultats de génération d’images UC (ms). |
UC_VIDEO_POLL_INTERVAL_MS |
3000 |
open-sse/handlers/videoGeneration/providers/ucVideo.ts |
Fréquence d’interrogation des résultats de génération de vidéos UC (uncensored.com) (ms). |
UC_VIDEO_POLL_TIMEOUT_MS |
300000 |
open-sse/handlers/videoGeneration/providers/ucVideo.ts |
Durée maximale d’interrogation des résultats de génération de vidéos UC (ms). |
CURSOR_DATA_DIR |
(détecté) | open-sse/utils/cursorAgentCliVersion.ts |
Remplace le répertoire de données de la CLI Cursor Agent (…/versions/<id>) ; il s’agit de la même variable que celle utilisée par l’agent officiel. |
CURSOR_TOKEN |
(non définie) | scripts/ad-hoc/cursor-tap.cjs |
Jeton de porteur Cursor direct utilisé par les outils de développement. |
OMNIROUTE_LOG_REQUEST_SHAPE |
désactivée (activation explicite via "1") |
src/app/api/v1/chat/completions/route.ts |
Consigne les indicateurs de type et de longueur du contenu pour les charges utiles de discussion volumineuses lorsque cette variable est définie sur "1". Désactivée par défaut pour réduire le bruit dans les journaux. |
DEBUG_RESPONSES_SSE_TO_JSON |
(non définie) | open-sse/handlers/responseTranslator.ts |
Définissez cette variable sur true pour journaliser les détails de la traduction SSE→JSON de l’API Responses. |
DEBUG_CLAUDE_NONSTREAM |
(non définie) | open-sse/handlers/responseTranslator.ts |
Définissez cette variable sur true pour faire apparaître les fragments textContent vides dans le chemin de traduction des réponses Claude (débogage uniquement). |
NEXT_PUBLIC_OMNIROUTE_E2E_MODE |
(non définie) | Banc de test E2E | Définissez cette variable sur true pour activer le mode de test E2E (authentification assouplie, points d’accroche de test). |
23. Intégration GitHub
Section intitulée « 23. Intégration GitHub »Permet aux utilisateurs de signaler des problèmes directement depuis le tableau de bord.
| Variable | Valeur par défaut | Fichier source | Description |
|---|---|---|---|
GITHUB_ISSUES_REPO |
(non définie) | src/app/api/v1/issues/report/route.ts |
Dépôt au format owner/repo. |
GITHUB_ISSUES_TOKEN |
(non définie) | src/app/api/v1/issues/report/route.ts |
Jeton d’accès personnel GitHub avec la portée issues:write. |
GITHUB_TOKEN |
(non définie) | triage des problèmes / assistants d’agent cloud | Jeton d’accès GitHub générique utilisé comme solution de repli pour GITHUB_ISSUES_TOKEN et exploité par les assistants d’agent cloud dans src/lib/cloudAgent/*. |
Scénarios de déploiement
Section intitulée « Scénarios de déploiement »Pour obtenir des recommandations SRE sur le backend de relais (comportement ts/bifrost/auto, positionnement de 9router par rapport à CLIProxyAPI et stratégie de repli à haut débit), consultez Stratégie du backend de relais.
Développement local minimal
Section intitulée « Développement local minimal »JWT_SECRET=$(openssl rand -base64 48)API_KEY_SECRET=$(openssl rand -hex 32)INITIAL_PASSWORD=dev123PORT=20128NODE_ENV=developmentProduction avec Docker
Section intitulée « Production avec Docker »JWT_SECRET=<généré>API_KEY_SECRET=<généré>INITIAL_PASSWORD=<généré>STORAGE_ENCRYPTION_KEY=<généré>DATA_DIR=/dataPORT=20128API_PORT=20129NODE_ENV=productionAUTH_COOKIE_SECURE=trueREQUIRE_API_KEY=trueNEXT_PUBLIC_BASE_URL=https://omniroute.example.comBASE_URL=http://localhost:20128OMNIROUTE_MEMORY_MB=8192CORS_ORIGIN=https://your-frontend.example.comEnvironnement isolé / CI
Section intitulée « Environnement isolé / CI »JWT_SECRET=test-jwt-secret-for-ciAPI_KEY_SECRET=test-api-key-secret-for-ciINITIAL_PASSWORD=testpassNODE_ENV=productionOMNIROUTE_DISABLE_BACKGROUND_SERVICES=trueAPP_LOG_TO_FILE=falseVPS avec proxy inverse (nginx + Cloudflare)
Section intitulée « VPS avec proxy inverse (nginx + Cloudflare) »JWT_SECRET=<généré>API_KEY_SECRET=<généré>STORAGE_ENCRYPTION_KEY=<généré>PORT=20128AUTH_COOKIE_SECURE=trueREQUIRE_API_KEY=trueNEXT_PUBLIC_BASE_URL=https://omniroute.example.comBASE_URL=http://127.0.0.1:20128CORS_ORIGIN=https://omniroute.example.comENABLE_TLS_FINGERPRINT=trueCLI_COMPAT_ALL=124. Bac à sable des compétences (v3.8.0+)
Section intitulée « 24. Bac à sable des compétences (v3.8.0+) »Limites et paramètres de sécurité appliqués lorsque le framework de compétences (src/lib/skills/) exécute des automatisations définies par l’utilisateur dans un environnement en bac à sable.
| Variable | Valeur par défaut | Fichier source | Description |
|---|---|---|---|
SKILLS_SANDBOX_TIMEOUT_MS |
10000 (10 s) |
src/lib/skills/builtins.ts |
Délai d’expiration en temps réel par exécution pour le code de compétence en bac à sable. Limite stricte ; toute exécution plus longue est interrompue. |
SKILLS_EXECUTION_TIMEOUT_MS |
(utilise SKILLS_SANDBOX_TIMEOUT_MS par défaut) |
src/lib/skills/ |
Délai d’expiration de l’orchestration de haut niveau des compétences. Définissez une valeur supérieure à SKILLS_SANDBOX_TIMEOUT_MS pour permettre les workflows à plusieurs étapes. |
SKILLS_MAX_FILE_BYTES |
1048576 (1 MB) |
src/lib/skills/builtins.ts |
Nombre maximal d’octets qu’une compétence peut lire dans un fichier unique du bac à sable. |
SKILLS_MAX_HTTP_RESPONSE_BYTES |
256000 (250 KB) |
src/lib/skills/builtins.ts |
Nombre maximal d’octets capturés à partir d’une réponse HTTP unique au sein d’une compétence. |
SKILLS_MAX_SANDBOX_OUTPUT_CHARS |
100000 |
src/lib/skills/builtins.ts |
Limite stricte du nombre de caractères stdout/stderr renvoyés par une invocation du bac à sable. |
SKILLS_SANDBOX_NETWORK_ENABLED |
false |
src/lib/skills/builtins.ts |
Définissez sur 1/true pour autoriser les connexions réseau sortantes depuis le bac à sable. La valeur par défaut est isolé pour des raisons de sécurité. |
SKILLS_ALLOWED_SANDBOX_IMAGES |
(vide) | src/lib/skills/builtins.ts |
Liste séparée par des virgules des images de conteneur autorisées pour l’exécution en bac à sable. Une liste vide signifie que seule l’image intégrée par défaut est autorisée. |
SKILLS_SANDBOX_DOCKER_IMAGE |
(valeur intégrée par défaut) | src/lib/skills/ |
Image de conteneur utilisée lors du lancement d’un bac à sable basé sur Docker. Remplacez-la pour épingler une image de base personnalisée et renforcée. |
SKILLS_SANDBOX_RUNTIME |
auto |
src/lib/skills/sandbox.ts, src/lib/skills/containerProvider.ts |
Environnement d’exécution de conteneurs pour l’isolation des compétences : auto | docker | apple | wsl | orbstack | podman. auto sélectionne le meilleur environnement installé selon le système d’exploitation hôte (Apple Container/OrbStack sur macOS, WSL Container sous Windows, Podman sous Linux), avec Docker comme solution de repli. |
[!CAUTION] L’activation de
SKILLS_SANDBOX_NETWORK_ENABLED=trueouvre un chemin de sortie pour du code de compétence arbitraire. Associez-la àOUTBOUND_SSRF_GUARD_ENABLED=trueainsi qu’à une politique stricte deCORS_ORIGIN/proxy dans les déploiements partagés.
25. Quotas des fournisseurs, tunnels, sauvegardes et divers éléments d’exécution
Section intitulée « 25. Quotas des fournisseurs, tunnels, sauvegardes et divers éléments d’exécution »Points de terminaison des quotas des fournisseurs, tunnels réseau (Tailscale, Ngrok, proxy de débogage MITM), pool de sortie 1Proxy, sauvegardes de bases de données et petits remplacements propres à certaines fonctionnalités, référencés par la couche d’exécution ou les scripts.
| Variable | Valeur par défaut | Fichier source | Description |
|---|---|---|---|
REDIS_URL |
redis://localhost:6379 |
src/shared/utils/rateLimiter.ts |
Chaîne de connexion Redis pour le backend du limiteur de débit. |
ALIBABA_CODING_PLAN_HOST |
(hôte de production) | open-sse/services/bailianQuotaFetcher.ts |
Remplace l’hôte utilisé pour récupérer les quotas du plan de codage Alibaba Bailian. |
ALIBABA_CODING_PLAN_QUOTA_URL |
dérivée de l’hôte | open-sse/services/bailianQuotaFetcher.ts |
Remplacement de l’URL complète des quotas pour Alibaba Bailian. |
QWEN_CLOUD_COOKIE |
(non défini) | open-sse/services/qwenTokenPlanQuotaFetcher.ts |
Cookie de session de la console pour la passerelle de quotas du Token Plan personnel de Qwen Cloud / Model Studio (la clé d’API d’inférence ne permet pas de le consulter). Copiez l’intégralité de l’en-tête de requête Cookie — il contient login_qwencloud_ticket — depuis n’importe quel appel à api.json vers cs-data.qwencloud.com sur home.qwencloud.com › Facturation › Abonnement (F12 › Réseau). Donnée sensible et limitée à la session ; privilégiez le champ qwenCloudCookie propre à chaque connexion dans le tableau de bord. |
QWEN_CLOUD_SEC_TOKEN |
(non défini) | open-sse/services/qwenTokenPlanQuotaFetcher.ts |
Remplacement manuel de sec_token pour la passerelle de console du Token Plan. Donnée sensible ; lorsque cette variable n’est pas définie, le récupérateur la détermine à partir du HTML du tableau de bord à l’aide du cookie. |
QWEN_TOKEN_PLAN_HOST |
https://cs-data.qwencloud.com |
open-sse/services/qwenTokenPlanQuotaFetcher.ts |
Remplacement de l’hôte de la passerelle pour le récupérateur de quotas du Token Plan personnel (par ex. bailian-singapore-cs.alibabacloud.com pour la console Model Studio). |
QWEN_TOKEN_PLAN_DASHBOARD_URL |
https://home.qwencloud.com/ |
open-sse/services/qwenTokenPlanQuotaFetcher.ts |
URL du tableau de bord utilisée pour déterminer sec_token à partir du HTML de la session connectée. |
ALIBABA_FREE_TIER_VISION_FE_PATH |
/costing-balance/free-quota-image-video |
open-sse/services/alibabaFreeTierQuotaFetcher.ts |
Remplacement du chemin du front-end de la console pour récupérer le quota gratuit de vision et de médias d’Alibaba Model Studio. |
ALIBABA_FREE_TIER_MULTIMODAL_FE_PATH |
/costing-balance/free-quota-multimodal |
open-sse/services/alibabaFreeTierQuotaFetcher.ts |
Remplacement du chemin frontal de la console pour récupérer le quota multimodal de l’offre gratuite d’Alibaba Model Studio. |
ALIBABA_FREE_TIER_AUDIO_FE_PATH |
/costing-balance/free-quota-audio |
open-sse/services/alibabaFreeTierQuotaFetcher.ts |
Remplacement du chemin frontal de la console pour récupérer le quota audio de l’offre gratuite d’Alibaba Model Studio. |
ALIBABA_FREE_TIER_ALLOWLIST_PATH |
(non défini) | open-sse/services/alibabaFreeTierAllowlist.ts |
Chemin facultatif vers un fichier JSON local remplaçant la liste d’autorisation intégrée des modèles de texte de l’offre gratuite d’Alibaba. Utilise à défaut $DATA_DIR/alibaba-free-tier-allowlist.json, puis config/alibaba-free-tier-allowlist.json. |
CONTEXT_RESERVE_TOKENS |
1024 |
open-sse/services/contextManager.ts |
Jetons réservés à la sortie de complétion lors du calcul des budgets d’invite. |
CONTEXT_KEEP_LATEST_IMAGES |
2 |
open-sse/services/contextManager.ts |
Nombre d’images intégrées les plus récentes à conserver lors de l’élagage des plus anciennes afin de respecter la fenêtre de contexte (#8560). |
MODEL_ALIAS_COMPAT_ENABLED |
activé | open-sse/services/model.ts |
Active ou désactive la couche de compatibilité historique des alias de modèles utilisée par les anciens clients. |
OMNIROUTE_EMERGENCY_FALLBACK |
activé | open-sse/services/emergencyFallback.ts |
Définissez sur false (ou 0) pour désactiver le mécanisme de secours d’urgence en cas d’épuisement du budget, qui redirige les requêtes ayant échoué vers le modèle gratuit nvidia/openai/gpt-oss-120b. L’ordre de priorité effectif est le suivant : remplacement dans la base de données des indicateurs de fonctionnalité > variable d’environnement > valeur par défaut ; en cas d’indisponibilité, le service utilise directement la valeur brute de la variable d’environnement. |
COMMAND_CODE_CALLBACK_PORT |
(non défini) | src/app/api/providers/command-code/auth/shared.ts |
Port local utilisé pour les rappels de type OAuth provenant de l’utilitaire CLI Command Code. |
COMMAND_CODE_VERSION |
0.33.2 |
open-sse/executors/commandCode.ts |
Valeur envoyée en tant qu’en-tête x-command-code-version au service en amont Command Code. Remplacez-la pour mettre à niveau la version de la CLI. |
COMMANDCODE_API_URL |
https://api.commandcode.ai |
open-sse/services/usage/command-code.ts |
URL de base du service en amont d’utilisation/de quota de Command Code, utilisée par la télémétrie du récupérateur de quota pour smartphone. À remplacer pour utiliser une API Command Code auto-hébergée ou alternative. |
MITM_LOCAL_PORT |
443 |
src/mitm/server.cjs |
Port de liaison local du proxy de débogage MITM. |
MITM_DISABLE_TLS_VERIFY |
0 |
src/mitm/server.cjs |
Définissez sur 1 pour désactiver la vérification TLS en amont (développement uniquement). |
MITM_IDLE_TIMEOUT_MS |
60000 |
src/mitm/socketTimeouts.ts, src/mitm/server.cjs |
Délai d’expiration d’inactivité des sockets (ms) pour les connexions relayées ; les sockets inactifs au-delà de ce délai sont fermés afin d’éviter les fuites de tunnels semi-ouverts. |
BRIDGE_PORT |
20129 |
bin/antigravity-bridge.mjs |
Port sur lequel écoute le pont MITM Antigravity. |
ROUTER_URL |
http://127.0.0.1:20128/v1/antigravity |
bin/antigravity-bridge.mjs |
Point de terminaison du routeur vers lequel le pont transfère le trafic Antigravity. |
CERT_DIR |
~/.omniroute/mitm |
bin/antigravity-bridge.mjs |
Répertoire contenant server.key/server.crt pour l’écouteur TLS du pont ; le pont s’arrête si l’un des deux fichiers est absent. |
MITM_VERBOSE |
1 |
src/mitm/server.cjs, src/mitm/_internal/bypass.cjs |
Niveau de verbosité des journaux de décision de routage : 0 les désactive, tandis que des valeurs supérieures consignent davantage de décisions de contournement/routage. |
MITM_ROOT_CA_ENABLED |
false |
src/mitm/manager.ts |
Définissez sur true pour activer volontairement le modèle d’autorité de certification racine + certificat feuille par hôte (#6684). Les nouvelles installations l’utilisent automatiquement ; les installations disposant déjà d’un certificat feuille hérité approuvé conservent le certificat à SAN fixes hérité, sauf activation volontaire. |
MITM_CERT_MODE |
legacy |
src/mitm/manager.ts, src/mitm/server.cjs |
Défini PAR le gestionnaire MITM pour le processus de proxy lancé (root-ca | legacy) — reflète la décision de migration des certificats ; n’est pas destiné à être défini manuellement. |
OMNIROUTE_NO_SUDO |
0 |
src/mitm/systemCommands.ts |
Définissez sur 1 (valeur vraie) pour retirer le sudo initial des commandes MITM d’approbation des certificats — pour les déploiements sans privilèges root / utilisant un espace de noms utilisateur, où l’opérateur approuve manuellement l’autorité de certification (par ex. via le mécanisme de certificats d’autorité supplémentaires de Node). |
SKIP_ANTIGRAVITY_DNS |
(non défini) | src/mitm/dns/provision.ts |
Définissez sur true pour ignorer entièrement le provisionnement des entrées DNS dans /etc/hosts pour les noms d’hôte du proxy Antigravity — pour les conteneurs ne disposant ni de sudo ni d’un accès root. |
OMNIROUTE_SKIP_DNS_WRITE |
(non défini) | src/mitm/dns/dnsConfig.ts |
Définissez sur 1 pour ne pas écrire dans le fichier hosts lors de l’ajout ou de la suppression d’entrées DNS — pour les environnements de test en bac à sable ou en lecture seule. |
OMNIROUTE_SKIP_SYSTEM_TRUST |
0 |
src/mitm/cert/install.ts, src/mitm/tproxy/caTrust.ts |
Protection réservée aux tests/à la CI : définissez-la sur 1 pour que l’installation/la désinstallation de la confiance du certificat ne fasse rien, afin que la suite ne modifie jamais le magasin de certificats de confiance du système d’exploitation. Définie automatiquement par la configuration des tests et les workflows de CI. |
CHANGELOG_BASE_REF |
(auto) | scripts/check/check-changelog-integrity.mjs |
Référence de base explicite pour le contrôle empêchant la suppression du CHANGELOG (par défaut, la branche de base de la PR dans la CI, ou la branche release/v* la plus élevée). |
FREE_PROXY_AUTO_SYNC_ENABLED |
false |
src/lib/freeProxyProviders/scheduler.ts |
Définissez-la sur true pour activer le planificateur de synchronisation automatique en arrière-plan du pool de proxys gratuits. Activation explicite, désactivée par défaut. |
FREE_PROXY_AUTO_SYNC_INTERVAL_MS |
1800000 |
src/lib/freeProxyProviders/scheduler.ts |
Intervalle de synchronisation automatique en millisecondes (30 min par défaut). |
FREE_PROXY_1PROXY_ENABLED |
true |
src/lib/freeProxyProviders/oneproxy.ts |
Active la source de proxys gratuits 1proxy. Définissez-la sur false pour la désactiver. |
FREE_PROXY_1PROXY_API_URL |
(voir oneproxy.ts) | src/lib/freeProxyProviders/oneproxy.ts |
Remplacement de l’URL de l’API 1proxy. |
FREE_PROXY_1PROXY_MAX |
500 |
src/lib/freeProxyProviders/oneproxy.ts |
Nombre maximal de proxys récupérés depuis 1proxy à chaque synchronisation. |
FREE_PROXY_1PROXY_MIN_QUALITY |
50 |
src/lib/freeProxyProviders/oneproxy.ts |
Seuil minimal du score de qualité pour les importations depuis 1proxy. |
FREE_PROXY_PROXIFLY_ENABLED |
true |
src/lib/freeProxyProviders/proxifly.ts |
Active la source de proxys gratuits Proxifly. Définissez-la sur false pour la désactiver. |
FREE_PROXY_PROXIFLY_QUANTITY |
100 |
src/lib/freeProxyProviders/proxifly.ts |
Nombre de proxys à récupérer à chaque synchronisation Proxifly. |
FREE_PROXY_PROXIFLY_ANONYMITY |
elite |
src/lib/freeProxyProviders/proxifly.ts |
Filtre de niveau d’anonymat pour Proxifly (elite, anonymous, transparent). |
FREE_PROXY_IPLOCATE_ENABLED |
false |
src/lib/freeProxyProviders/iplocate.ts |
Active la source de proxys gratuits IPLocate. Activation explicite uniquement. |
FREE_PROXY_IPLOCATE_BASE_URL |
https://raw.githubusercontent.com/iplocate/free-proxy-list/main/protocols |
src/lib/freeProxyProviders/iplocate.ts |
Remplacement de l’URL de base de la liste de proxys IPLocate. |
FREE_PROXY_WEBSHARE_ENABLED |
true |
src/lib/freeProxyProviders/webshare.ts |
Active la source du pool de proxys Webshare. Définissez cette valeur sur false pour la désactiver ; nécessite également que FREE_PROXY_WEBSHARE_API_KEY soit définie. |
FREE_PROXY_WEBSHARE_API_KEY |
(aucune) | src/lib/freeProxyProviders/webshare.ts |
Jeton d’API du compte Webshare (Authorization: Token <key>). Obligatoire — le fournisseur reste désactivé sans celui-ci. |
FREE_PROXY_WEBSHARE_API_URL |
https://proxy.webshare.io/api/v2/proxy/list/ |
src/lib/freeProxyProviders/webshare.ts |
Remplacement de l’URL de l’API de la liste de proxys Webshare. |
FREE_PROXY_WEBSHARE_MAX |
500 |
src/lib/freeProxyProviders/webshare.ts |
Nombre maximal de proxys importés par synchronisation Webshare. |
NEXT_PUBLIC_VERCEL_RELAY_ENABLED |
true |
src/app/(dashboard)/…/ProxyPoolTab.tsx |
Affiche ou masque le bouton de déploiement de Vercel Relay dans l’onglet du pool de proxys. |
VERCEL_API_BASE |
https://api.vercel.com |
src/app/api/settings/proxy/vercel-deploy/route.ts |
Remplacement de l’URL de base de l’API Vercel (à des fins de test). |
NEXT_PUBLIC_VERCEL_RELAY_DEFAULT_PROJECT |
omniroute-relay |
src/app/(dashboard)/…/VercelRelayModal.tsx |
Nom de projet par défaut prérempli dans la fenêtre modale de déploiement de Vercel Relay. |
TAILSCALE_BIN |
(détection automatique) | src/lib/tailscaleTunnel.ts |
Chemin explicite vers le binaire tailscale. |
TAILSCALED_BIN |
(détection automatique) | src/lib/tailscaleTunnel.ts |
Chemin explicite vers le binaire du démon tailscaled. |
TAILSCALE_AUTHKEY |
(non défini) | src/lib/tailscaleTunnel.ts |
Clé d’authentification Tailscale prépartagée pour une exécution non interactive / sans interface de tailscale up (transmise via --auth-key=). Lorsqu’elle n’est pas définie, la connexion utilise par défaut l’URL d’authentification interactive dans le navigateur. |
NGROK_AUTHTOKEN |
(non défini) | src/lib/ngrokTunnel.ts |
Authentifie les tunnels ngrok sortants. |
DB_BACKUP_MAX_FILES |
20 |
src/lib/db/backup.ts |
Nombre maximal de fichiers de sauvegarde SQLite conservés lors du nettoyage manuel ou planifié des sauvegardes. Les instantanés de migration sont adressés par leur contenu et réutilisés lorsque l’état de la base de données est identique ; ils ne sont pas supprimés pendant la fenêtre de migration simultanée. Remplace la valeur enregistrée dans Paramètres → Conservation des sauvegardes de la base de données. |
DB_BACKUP_RETENTION_DAYS |
0 |
src/lib/db/backup.ts |
Âge maximal (en jours) des sauvegardes conservées lors du nettoyage manuel ou planifié. 0 désactive la suppression basée sur l’âge. Les instantanés de migration ne sont pas supprimés pendant la fenêtre de migration simultanée. Remplace la valeur enregistrée dans Paramètres → Conservation des sauvegardes de la base de données. |
OMNIROUTE_BACKUP_SCHEDULE_JOB_INTERVAL_MS |
30000 |
src/lib/jobs/backupScheduleJob.ts |
Intervalle d’exécution (ms) de la tâche côté serveur qui exécute backup-schedule.json. Il doit rester nettement inférieur à la granularité d’une minute de cron ; les valeurs inférieures à 5000 ou impossibles à analyser sont remplacées par 30000. |
CONTAINER_HOST |
docker |
scripts/check-permissions.sh |
Indication sur l’environnement d’exécution des conteneurs pour la vérification des autorisations par le point d’entrée. Définissez cette variable sur podman pour toute topologie Podman. Comme le conteneur ne peut pas déterminer si le moteur est local ou accessible via Podman Machine, l’avertissement reste neutre quant à la topologie et renvoie vers contrib/podman/README.md. |
QUOTA_STORE_DRIVER |
sqlite |
src/lib/quota/storeFactory.ts |
Backend de stockage de la consommation des quotas partagés : sqlite (par défaut) ou redis. |
QUOTA_STORE_REDIS_URL |
(non défini) | src/lib/quota/storeFactory.ts |
Chaîne de connexion Redis utilisée lorsque QUOTA_STORE_DRIVER=redis (par ex. redis://localhost:6379). |
QUOTA_SATURATION_THRESHOLD |
0.5 |
src/lib/quota/enforce.ts |
Ratio de saturation du pool (0..1) ; à partir de ce seuil, le pool passe en mode strict (aucun emprunt). |
QUOTA_SOFT_DEPRIORITIZE_FACTOR |
0.7 |
open-sse/services/combo.ts |
Multiplicateur de score (0..1) appliqué à une cible lorsque la politique de quota souple la rend moins prioritaire. |
STATUS_SOFT_DEPRIORITIZE_FACTOR |
0.5 |
open-sse/services/combo/autoStrategy.ts |
Multiplicateur de score (0..1) appliqué à un fournisseur épuisé (credits_exhausted/rate_limited) lors de l’évaluation auto-combo lorsque le seuil de quota préalable est DÉSACTIVÉ (#4540). |
QUOTA_CONSUMPTION_RETENTION_DAYS |
14 |
src/lib/db/quotaConsumption.ts |
Fenêtre de rétention (en jours) des compartiments quota_consumption avant le GC (gcQuotaConsumption). |
QUOTA_PREFLIGHT_CUTOFF_ENABLED |
false |
src/lib/resilience/settings.ts |
Option facultative (DÉSACTIVÉE par défaut) : active le seuil strict de quota du routage automatique, qui élimine les candidats à faible quota avant l’évaluation. |
OMNIROUTE_AUTO_FREE_FALLBACK_TO_FULL_POOL |
false |
open-sse/services/autoCombo/virtualFactory.ts |
Option facultative (DÉSACTIVÉE par défaut) : lorsqu’un filtre auto/<category>:<tier> ne correspond à aucun candidat connecté, rétablit l’ancien comportement consistant à revenir au pool complet (non filtré) au lieu de renvoyer un pool vide. DÉSACTIVÉE par défaut signifie que :free désigne « uniquement l’offre gratuite ». |
OMNIROUTE_CHAOS_MAX_PANEL |
5 |
open-sse/services/autoCombo/virtualFactory.ts |
Limite de taille du panel (bornée entre 1 et 10) pour la variante de diffusion auto/*:chaos — une requête est distribuée à ce nombre maximal de modèles issus de fournisseurs différents. |
OMNIROUTE_CHAOS_MIN_PANEL |
(valeur par défaut du moteur) | open-sse/services/autoCombo/virtualFactory.ts |
Réglage de la taille minimale du panel transmis au gestionnaire de diffusion chaos ; si cette valeur n’est pas définie, la valeur par défaut du moteur est conservée. |
OMNIROUTE_CHAOS_PANEL_TIMEOUT_MS |
(valeur par défaut du moteur) | open-sse/services/autoCombo/virtualFactory.ts |
Délai d’expiration strict (ms) pour l’ensemble de la distribution au panel chaos ; si cette valeur n’est pas définie, la valeur par défaut du moteur est conservée. |
GROK_AUTH_PATH |
~/.grok/auth.json |
open-sse/services/grokQuotaFetcher.ts |
Chemin vers le fichier auth.json de la CLI Grok utilisé pour récupérer le quota hebdomadaire de grok-web ; à remplacer pour les tests ou une installation non standard de la CLI. |
AGENTBRIDGE_UPSTREAM_CA_CERT |
(non défini) | src/mitm/manager.ts |
Certificat d’autorité de certification supplémentaire (PEM) approuvé pour les connexions TLS en amont d’AgentBridge. |
INSPECTOR_BUFFER_SIZE |
1000 |
src/mitm/inspector/buffer.ts |
Nombre maximal de requêtes capturées conservées dans le tampon circulaire de l’inspecteur de trafic. |
INSPECTOR_MAX_BODY_KB |
1024 |
src/mitm/inspector/buffer.ts |
Taille maximale du corps des requêtes/réponses capturées (Ko) avant troncature. |
INSPECTOR_HTTP_PROXY_PORT |
8080 |
src/mitm/inspector/httpProxyServer.ts |
Port local du proxy HTTP de l’inspecteur de trafic. |
INSPECTOR_HTTP_PROXY_AUTOSTART |
false |
src/mitm/inspector/httpProxyServer.ts |
Démarrer automatiquement le proxy HTTP de l’inspecteur au démarrage. |
INSPECTOR_TLS_INTERCEPT |
false |
src/lib/inspector/captureState.ts |
Activer l’interception TLS (MITM) pour le trafic HTTPS capturé. |
INSPECTOR_LLM_HOSTS_EXTRA |
(non défini) | src/lib/inspector/captureState.ts |
Noms d’hôte supplémentaires (séparés par des virgules) traités comme des points de terminaison LLM pour la capture. |
INSPECTOR_MASK_SECRETS |
true |
src/mitm/inspector/buffer.ts |
Masquer les secrets (en-têtes d’authentification / clés d’API) dans le trafic capturé. |
INSPECTOR_SYSTEM_PROXY_GUARD_MINUTES |
30 |
src/app/api/tools/traffic-inspector/capture-modes/system-proxy/route.ts |
Nombre de minutes avant que le mécanisme de protection du proxy système ne rétablisse automatiquement les paramètres de proxy du système d’exploitation. |
INSPECTOR_INTERNAL_INGEST_TOKEN |
(automatique) | src/app/api/tools/traffic-inspector/internal/ingest/route.ts |
Jeton authentifiant l’ingestion interne des captures dans l’inspecteur. |
PLAYGROUND_COMPARE_MAX_COLUMNS |
4 |
src/app/(dashboard)/dashboard/playground/ |
Nombre maximal de colonnes côte à côte dans le mode de comparaison du Playground. |
PLAYGROUND_IMPROVE_PROMPT_DEFAULT_MODEL |
(non défini) | src/app/(dashboard)/dashboard/playground/ |
Modèle par défaut pour l’action « améliorer le prompt » du Playground (utilise le modèle actif lorsque cette variable n’est pas définie). |
BIFROST_ENABLED |
1 |
src/app/api/v1/relay/chat/completions/bifrost/route.ts |
Interrupteur principal permettant de désactiver le proxy side-car Bifrost. Lorsqu’il est défini sur 0, la route renvoie une erreur 503 avec l’en-tête X-Bifrost-Killswitch et l’opérateur est redirigé vers le chemin TS. Utilisez-le pour désactiver le side-car sans redéploiement (incident du routeur de niveau 1, rotation des clés). |
BIFROST_BASE_URL |
(non défini) | src/app/api/v1/relay/chat/completions/bifrost/route.ts |
Lorsque cette variable est définie, la route du proxy side-car Bifrost transfère le trafic /v1/chat/completions vers cette passerelle Go au lieu du gestionnaire de relais TS. Non définie → erreur 503 avec repli. La barre oblique finale est supprimée. |
BIFROST_PORT |
8080 |
src/lib/services/bootstrap.ts |
Port auquel le service intégré Bifrost supervisé se lie (127.0.0.1:<port>) lorsqu’OmniRoute gère le cycle de vie du side-car Bifrost. Valeur par défaut : 8080. |
BIFROST_API_KEY |
(non défini) | src/app/api/v1/relay/chat/completions/bifrost/route.ts |
Clé d’API de la passerelle Bifrost (envoyée sous la forme Authorization: Bearer ...). Si elle n’est pas définie, la route s’attend à ce que la requête contienne une clé d’API OmniRoute valide ; cette clé sert uniquement à l’authentification côté passerelle. |
BIFROST_STREAMING_ENABLED |
true |
src/app/api/v1/relay/chat/completions/bifrost/route.ts |
Lorsque cette variable est définie sur true, la route du side-car Bifrost retransmet les réponses en continu via SSE par l’intermédiaire de la passerelle plutôt que via l’exécuteur de streaming TS. Définissez-la sur 0 pour forcer les réponses JSON sans streaming par l’intermédiaire de la passerelle. |
BIFROST_TIMEOUT_MS |
30000 |
src/app/api/v1/relay/chat/completions/bifrost/route.ts |
Délai d’expiration par requête lors du transfert vers la passerelle Bifrost (ms). En cas d’expiration du délai, la route renvoie le chemin du relais TS via l’en-tête X-Bifrost-Fallback. |
OMNIROUTE_BIFROST_KEY |
(non défini) | src/app/api/v1/relay/chat/completions/bifrost/route.ts |
Alias de BIFROST_API_KEY (utilisé par les scripts qui lisent l’environnement via OMNIROUTE_*). BIFROST_API_KEY est prioritaire lorsque les deux variables sont définies. |
OMNIROUTE_RELAY_BACKEND |
ts / auto |
src/app/api/v1/relay/chat/completions/routingBackend.ts |
Backend de relais pour /api/v1/relay/chat/completions : ts | bifrost | auto. ts = relais TypeScript (valeur par défaut lorsque Bifrost n’est pas configuré) ; auto sélectionne Bifrost lorsque BIFROST_BASE_URL est définie et que BIFROST_ENABLED ≠ 0, avec repli automatique vers TS si le side-car est inaccessible ; bifrost force l’utilisation de Bifrost (mode strict, sans repli). L’authentification, la limitation du débit, la protection contre les injections et la liste d’autorisation sont toujours exécutées en premier dans la route Next. Les réponses contiennent X-Routing-Backend / X-Routing-Fallback / X-Routing-Fallback-Reason. |
RELAY_ROUTING_BACKEND |
(non défini) | src/app/api/v1/relay/chat/completions/routingBackend.ts |
Alias accepté pour OMNIROUTE_RELAY_BACKEND (mêmes valeurs ts | bifrost | auto). OMNIROUTE_RELAY_BACKEND est prioritaire lorsque les deux sont définis. |
OMNIROUTE_BIFROST_FAILURE_COOLDOWN_MS |
5000 |
src/app/api/v1/relay/chat/completions/bifrostCooldown.ts |
Délai de récupération (ms) après l’échec d’un passage par le processus auxiliaire Bifrost en mode auto, avant que le relais ne tente à nouveau de l’utiliser ; pendant ce délai, il achemine directement les requêtes vers le chemin TS, puis effectue une nouvelle tentative. 0 désactive cette fonctionnalité. S’applique uniquement lorsque OMNIROUTE_RELAY_BACKEND=auto. |
OMNIROUTE_TLS_CERT |
(non défini) | bin/cli/commands/serve.mjs |
Chemin vers un certificat TLS au format PEM pour exécuter omniroute serve via HTTPS (équivalent à --tls-cert). Doit être utilisé avec OMNIROUTE_TLS_KEY ; le serveur autonome termine alors la connexion TLS sur le même port d’écoute (wss:// fonctionne sans modification). Non défini → HTTP simple. Si un seul du certificat ou de la clé est fourni, ou si un chemin est illisible, un avertissement est consigné et le serveur reste en HTTP. |
OMNIROUTE_TLS_KEY |
(non défini) | bin/cli/commands/serve.mjs |
Chemin vers la clé privée TLS au format PEM pour exécuter omniroute serve via HTTPS (équivalent à --tls-key). Doit être utilisé avec OMNIROUTE_TLS_CERT. Voir OMNIROUTE_TLS_CERT. |
OMNIROUTE_LOCAL_ENDPOINTS_ENABLED |
0 |
src/lib/security/localEndpoints.ts |
Interrupteur principal des routes /api/local/*. Lorsque cette variable est non définie ou vaut 0, toutes les routes /api/local/* renvoient le code 503 en production. Elle doit valoir 1 dans les déploiements hors boucle locale pour activer le lanceur Redis et les outils similaires de démarrage en un clic de services locaux. Protection redondante avec la classification du garde de routes isLocalOnlyPath() (LOCAL_ONLY_API_PREFIXES dans src/server/authz/routeGuard.ts). |
OMNIROUTE_LOCAL_ENDPOINTS_TOKEN |
(non défini) | src/lib/security/localEndpoints.ts |
Jeton Bearer destiné aux appelants de /api/local/* qui ne se trouvent pas sur la boucle locale (par exemple, l’application de bureau). Lorsqu’il est défini, les requêtes provenant d’adresses IP hors boucle locale doivent comporter Authorization: Bearer <token>. Requis lorsque OMNIROUTE_LOCAL_ENDPOINTS_ENABLED=1 dans les déploiements hors boucle locale. |
OMNIROUTE_REDIS_CONTAINER_NAME |
omniroute-redis |
bin/cli/commands/redis.mjs |
Nom du conteneur pour le lanceur Redis en un clic (omniroute redis up). Utilisé à la fois par la CLI et par l’interface graphique RedisLauncherPanel. |
OMNIROUTE_REDIS_HOST_PORT |
6379 |
bin/cli/commands/redis.mjs |
Port de l’hôte pour le lanceur Redis en un clic. Modifiez-le si le port 6379 est déjà utilisé sur l’hôte. Le port interne du conteneur reste 6379. |
OMNIROUTE_REDIS_BIND_HOST |
127.0.0.1 |
bin/cli/commands/redis.mjs |
Interface de l’hôte sur laquelle le lanceur Redis en un clic publie le service. Le lanceur démarre Redis SANS mot de passe ; une liaison à 0.0.0.0 donne donc à chaque hôte de votre réseau local un accès non authentifié à Redis — n’élargissez cette portée que si vous définissez vous-même un mot de passe sur l’instance. |
REDIS_BIND_HOST |
127.0.0.1 |
docker-compose.yml |
Interface de l’hôte sur laquelle docker-compose publie le processus auxiliaire Redis (#9286). L’instance Redis de compose s’exécute sans requirepass ; les conteneurs de l’application y accèdent via le réseau compose (redis:6379) — le port publié sert uniquement aux outils exécutés sur l’hôte. 0.0.0.0 expose une instance Redis non authentifiée à l’ensemble du réseau local. |
REDIS_PORT |
6379 |
docker-compose.yml |
Port hôte pour le service auxiliaire Redis de Compose. |
APP_BIND_HOST |
127.0.0.1 |
docker-compose.yml, docker-compose.prod.yml |
Interface hôte sur laquelle docker-compose publie les ports du tableau de bord, de l’API et du WebSocket en direct de l’application (#12568). Comme REQUIRE_API_KEY=false est la valeur par défaut fournie dans .env.example, 0.0.0.0 expose le proxy LLM anonyme /v1 à l’ensemble du LAN/WAN — n’élargissez l’accès qu’une fois REQUIRE_API_KEY=true ou si un proxy inverse en amont impose sa propre authentification. |
QDRANT_BIND_HOST |
127.0.0.1 |
docker-compose.yml |
Interface hôte sur laquelle docker-compose publie le service auxiliaire de mémoire Qdrant (#12578). Même raisonnement concernant l’exposition au LAN que pour REDIS_BIND_HOST. |
BIFROST_BIND_HOST |
127.0.0.1 |
docker-compose.yml |
Interface hôte sur laquelle docker-compose publie le service auxiliaire de routage Bifrost (#12578). Même raisonnement concernant l’exposition au LAN que pour REDIS_BIND_HOST. |
REDIS_KEY_PREFIX |
omniroute: |
src/shared/utils/rateLimiter.ts |
Préfixe d’espace de noms appliqué à chaque clé Redis d’OmniRoute (limiteur de débit, cache d’authentification, stockage des quotas, disjoncteur de préchauffage). Évite les collisions de clés lorsque l’instance Redis est partagée avec d’autres applications (#11042). |
OMNIROUTE_INTERNAL_SERVICE_TOKEN |
(non défini — mécanisme désactivé) | src/lib/api/internalServiceAuth.ts |
Secret partagé pour les échanges REST internes préservant l’identité (#9260) : les composants OmniRoute appelant d’autres routes OmniRoute locales l’envoient sous la forme x-omniroute-internal-service-token afin de préserver l’identité de l’appelant d’origine. Comparé à l’aide de timingSafeEqual. |
OMNIROUTE_INTERNAL_SERVICE_TOKEN_FILE |
(non défini) | src/lib/api/internalServiceAuth.ts |
Variante du jeton de service interne basée sur un fichier secret : chemin vers un fichier dont le contenu, après suppression des espaces superflus, constitue le jeton. Consultée uniquement lorsque la variable en ligne n’est pas définie. |
OPENROUTER_PROVIDER_STATS_ENABLED |
true |
src/lib/catalog/openrouterProviderStats.ts |
Enrichit la liste des fournisseurs du tableau de bord avec les statistiques de classement hebdomadaire d’OpenRouter (#9324). Activé par défaut ; définissez cette valeur sur false pour ignorer entièrement la récupération en arrière-plan (non bloquante et jamais fatale). |
OPENROUTER_PROVIDER_STATS_TTL_MS |
86400000 (24 h) |
src/lib/catalog/openrouterProviderStats.ts |
Durée de vie du cache de l’instantané des statistiques des fournisseurs OpenRouter, en millisecondes. |
OMNIROUTE_REDIS_IMAGE |
redis:7-alpine |
bin/cli/commands/redis.mjs |
Image Redis utilisée par le lanceur Redis en un clic. Remplacez-la par redis:8-alpine ou par un miroir de registre privé selon les besoins. |
QDRANT_HOST |
qdrant |
(profil de cluster optionnel) | Nom d’hôte du sidecar Qdrant lorsque --profile memory est actif. La valeur par défaut pointe vers le nom du service qdrant sur le réseau interne ; remplacez-la pour un déploiement externe. Utilisé uniquement lorsque qdrantEnabled vaut true dans le code (src/lib/memory/vectorStore.ts:108). |
QDRANT_PORT |
6333 |
(profil de cluster optionnel) | Port REST du sidecar Qdrant. |
QDRANT_GRPC_PORT |
6334 |
(profil de cluster optionnel) | Port gRPC du sidecar Qdrant. Utilisé par les bibliothèques clientes qui préfèrent gRPC à REST pour les opérations de streaming. |
QDRANT_API_KEY |
(non défini) | (profil de cluster optionnel) | Clé API facultative pour Qdrant Cloud ou une instance sur site authentifiée. Valeur vide → aucun en-tête api-key envoyé. |
QDRANT_COLLECTION |
omniroute-memory |
(profil de cluster optionnel) | Nom de la collection pour les embeddings de mémoire conversationnelle d’OmniRoute. Créée lors de la première exécution avec les dimensions définies par QDRANT_VECTOR_SIZE. |
QDRANT_EMBEDDING_MODEL |
text-embedding-3-small |
(profil de cluster optionnel) | Nom du modèle d’embedding par défaut enregistré dans les métadonnées de la collection Qdrant. Les embeddings réels sont générés par le fournisseur vers lequel pointe le champ embeddingModel dans les paramètres d’OmniRoute. |
QDRANT_VECTOR_SIZE |
1536 |
(profil de cluster optionnel) | Dimension du vecteur d’embedding. Elle doit correspondre au modèle utilisé pour générer les embeddings (text-embedding-3-small → 1536 ; ada-002 → 1536 ; nomic-embed-text → 768). |
QDRANT_HNSW_EF_CONSTRUCT |
128 |
(profil de cluster optionnel) | Précision de l’index HNSW lors de sa construction. Une valeur plus élevée = construction plus lente, recherche plus rapide. |
OMNIROUTE_ROTATION_ENABLED |
true |
open-sse/services/rotationConfig.ts |
Interrupteur principal pour la rotation des comptes configurable par l’opérateur. Lorsque la valeur est false, aucune des classes OMNIROUTE_ROTATE_* ci-dessous ne déclenche de basculement de compte (la désactivation principale bloque également les classes 429/500/502 activées par défaut). Permet à une interface de supervision (par ex. l’application de bureau VibeProxy) de répliquer ses propres règles de rotation dans le moteur de basculement de comptes du backend. |
OMNIROUTE_ROTATION_RATE_LIMIT_RESET_SECONDS |
0 |
open-sse/services/rotationConfig.ts |
Délai de récupération (en secondes) appliqué à un compte soumis à une limitation de débit lorsque le service en amont ne fournit aucune indication explicite de réinitialisation. 0 = utiliser le délai de récupération par défaut du moteur plutôt qu’une valeur de remplacement fixe. |
OMNIROUTE_ROTATION_DISABLE_TAG_WITHOUT_RESET |
true |
open-sse/services/rotationConfig.ts |
Reflète la préférence de l’interface utilisateur « ne pas marquer comme soumis à une limitation de débit en l’absence d’une heure de réinitialisation ». |
OMNIROUTE_ROTATE_ON_429 |
true |
open-sse/services/rotationConfig.ts |
Active le basculement pour les erreurs 429. Lorsque cette option vaut false (et que OMNIROUTE_ROTATION_ENABLED=true), une erreur 429 ne déclenche plus la rotation du compte et est renvoyée au client à la place. |
OMNIROUTE_ROTATE_429_THRESHOLD |
1 |
open-sse/services/rotationConfig.ts |
Nombre d’erreurs 429 survenant pendant OMNIROUTE_ROTATE_429_WINDOW_SECONDS requis avant la rotation du compte. La valeur 1 (par défaut) déclenche une rotation immédiate, préservant ainsi le comportement historique. |
OMNIROUTE_ROTATE_429_WINDOW_SECONDS |
120 |
open-sse/services/rotationConfig.ts |
Fenêtre glissante (en secondes) pendant laquelle les erreurs 429 sont comptabilisées pour atteindre OMNIROUTE_ROTATE_429_THRESHOLD. |
OMNIROUTE_ROTATE_ON_500 |
true |
open-sse/services/rotationConfig.ts |
Active le basculement pour les erreurs serveur 5xx (à l’exclusion de 502, qui possède sa propre catégorie). Lorsque cette option vaut false, ces erreurs ne déclenchent plus la rotation du compte. |
OMNIROUTE_ROTATE_500_THRESHOLD |
1 |
open-sse/services/rotationConfig.ts |
Nombre d’erreurs 5xx survenant pendant OMNIROUTE_ROTATE_500_WINDOW_SECONDS requis avant la rotation du compte. La valeur 1 (par défaut) déclenche une rotation immédiate. |
OMNIROUTE_ROTATE_500_WINDOW_SECONDS |
120 |
open-sse/services/rotationConfig.ts |
Fenêtre glissante (en secondes) pendant laquelle les erreurs 5xx sont comptabilisées pour atteindre OMNIROUTE_ROTATE_500_THRESHOLD. |
OMNIROUTE_ROTATE_ON_502 |
true |
open-sse/services/rotationConfig.ts |
Active le basculement pour les erreurs 502 (passerelle incorrecte). Lorsque cette option vaut false, les erreurs 502 ne déclenchent plus la rotation du compte. |
OMNIROUTE_ROTATE_502_THRESHOLD |
1 |
open-sse/services/rotationConfig.ts |
Nombre d’erreurs 502 survenant pendant OMNIROUTE_ROTATE_502_WINDOW_SECONDS requis avant la rotation du compte. La valeur 1 (par défaut) déclenche une rotation immédiate. |
OMNIROUTE_ROTATE_502_WINDOW_SECONDS |
120 |
open-sse/services/rotationConfig.ts |
Fenêtre glissante (en secondes) pendant laquelle les erreurs 502 sont comptabilisées pour atteindre OMNIROUTE_ROTATE_502_THRESHOLD. |
OMNIROUTE_ROTATE_ON_400 |
false |
open-sse/services/rotationConfig.ts |
Option facultative (désactivée par défaut) : lorsque définie sur true, une simple erreur 400 (requête incorrecte) déclenche également une rotation de compte. Ce comportement est uniquement additif — il ne bloque jamais le comportement existant du moteur, selon lequel une erreur 400 contenant un texte relatif à une limite de débit ou à un quota provoque toujours un basculement, indépendamment de cet indicateur. |
OMNIROUTE_ROTATE_400_THRESHOLD |
1 |
open-sse/services/rotationConfig.ts |
Nombre d’erreurs 400 requises dans la période définie par OMNIROUTE_ROTATE_400_WINDOW_SECONDS avant la rotation du compte (pris en compte uniquement lorsque OMNIROUTE_ROTATE_ON_400=true). |
OMNIROUTE_ROTATE_400_WINDOW_SECONDS |
120 |
open-sse/services/rotationConfig.ts |
Fenêtre glissante (en secondes) pendant laquelle les erreurs 400 sont comptabilisées pour atteindre OMNIROUTE_ROTATE_400_THRESHOLD. |
Planificateur de préchauffage Claude
Section intitulée « Planificateur de préchauffage Claude »Préchauffage piloté par cron pour les connexions OAuth Anthropic ayant explicitement activé cette fonctionnalité, afin que la fenêtre de limitation de débit de 5 heures soit ouverte par une requête planifiée triviale plutôt que par la première requête réelle (#8848). Le planificateur reste désactivé sauf si OMNIROUTE_WARMUP_ENABLED est évaluée comme vraie et si la connexion est indiquée dans settings.claudeWarmup.connections ; une liste de connexions vide signifie qu’aucune connexion n’est préchauffée, même si la variable d’environnement est activée.
| Variable | Valeur par défaut | Fichier source | Description |
|---|---|---|---|
OMNIROUTE_WARMUP_ENABLED |
(non définie → désactivé) | src/lib/warmupScheduler.ts |
Interrupteur principal du planificateur de préchauffage. Accepte 1/true/yes/on (insensible à la casse, espaces supprimés). Toute autre valeur, ou l’absence de valeur, laisse le planificateur désactivé. |
OMNIROUTE_WARMUP_CRON |
0 7 * * * |
src/lib/warmupScheduler.ts |
Expression cron à cinq champs pour le déclenchement du préchauffage, évaluée dans le fuseau horaire America/Los_Angeles (fuseau de réinitialisation d’Anthropic), indépendamment de l’horloge de l’hôte. |
OMNIROUTE_WARMUP_CONCURRENCY |
3 |
src/lib/warmupScheduler.ts |
Nombre de connexions préchauffées en parallèle à chaque déclenchement. Limité à une valeur comprise entre 1 et 10 ; une valeur non numérique revient à 3. |
OMNIROUTE_WARMUP_MODEL |
claude-3-5-haiku-20241022 |
src/lib/warmupScheduler.ts |
Modèle utilisé pour la requête de préchauffage. Ne remplacez cette valeur que si le modèle par défaut n’est pas disponible avec votre offre ; choisissez le modèle le moins cher qui ouvre tout de même la fenêtre. |
Sessions VNC de connexion par navigateur et alias du répertoire de données
Section intitulée « Sessions VNC de connexion par navigateur et alias du répertoire de données »Chromium+VNC conteneurisé utilisé pour la capture interactive des identifiants de connexion par navigateur (/api/vnc-session), ainsi qu’un alias DATA_DIR hérité. Tout est facultatif — les valeurs VNC par défaut ciblent l’image omniroute-vnc-chromium:local incluse et ne doivent être remplacées que pour utiliser une image de conteneur ou des ports personnalisés, ou pour ajuster le cycle de vie.
| Variable | Valeur par défaut | Fichier source | Description |
|---|---|---|---|
OMNIROUTE_VNC_IMAGE |
omniroute-vnc-chromium:local |
src/lib/vncSession/manifest.ts |
Étiquette de l’image Docker pour le conteneur de connexion Chromium+VNC. Compilez docker/vnc-browser/chromium ou indiquez ici une image personnalisée. |
OMNIROUTE_DOCKER_BIN |
docker |
src/lib/vncSession/manifest.ts |
Binaire d’exécution de conteneurs utilisé pour lancer le conteneur VNC (par exemple, définissez-le sur podman). |
OMNIROUTE_VNC_CONTAINER_VNC_PORT |
3000 |
src/lib/vncSession/manifest.ts |
Port VNC/noVNC exposé à l’intérieur du conteneur. |
OMNIROUTE_VNC_CONTAINER_CDP_PORT |
9223 |
src/lib/vncSession/manifest.ts |
Port du protocole Chrome DevTools à l’intérieur du conteneur. |
OMNIROUTE_VNC_CONTAINER_PROFILE_DIR |
/config |
src/lib/vncSession/manifest.ts |
Chemin du répertoire de profil Chromium à l’intérieur du conteneur. |
OMNIROUTE_VNC_PROFILE_DIR |
$HOME/.omniroute/browser-login-profiles |
src/lib/vncSession/manifest.ts |
Répertoire de l’hôte contenant les profils persistants de connexion au navigateur. |
OMNIROUTE_VNC_IDLE_MS |
600000 (10 min) |
src/lib/vncSession/manifest.ts |
Délai d’inactivité (ms) avant qu’une session VNC inactive ne soit supprimée. |
OMNIROUTE_VNC_MAX_MS |
1800000 (30 min) |
src/lib/vncSession/manifest.ts |
Limite absolue (ms) de la durée de vie d’une session VNC. |
OMNIROUTE_VNC_MAX_SESSIONS |
4 |
src/lib/vncSession/manifest.ts |
Nombre maximal de sessions VNC simultanées. |
OMNIROUTE_VNC_READY_MS |
45000 |
src/lib/vncSession/manifest.ts |
Délai d’attente (ms) avant que le navigateur conteneurisé ne soit prêt pour CDP. |
OMNIROUTE_VNC_HARVEST_MS |
20000 |
src/lib/vncSession/manifest.ts |
Délai d’attente (ms) pour récupérer la session et les cookies capturés une fois la connexion terminée. |
OMNIROUTE_VNC_CHROMIUM_ARGS |
--remote-debugging-port=9222 --no-first-run --no-default-browser-check |
src/lib/vncSession/manifest.ts |
Options supplémentaires de ligne de commande transmises à Chromium dans le conteneur. |
OMNIROUTE_VNC_NETWORK |
omniroute-vnc-browser-login |
src/lib/vncSession/manifest.ts |
Réseau Docker dédié auquel se connecte le conteneur de connexion VNC (#12571), à la place du réseau bridge par défaut, afin que les conteneurs voisins ne puissent pas accéder à son port de pont CDP. |
VIBEPROXY_DATA_DIR |
(non défini) | open-sse/services/notionThreadSessions.ts |
Alias hérité de DATA_DIR, vérifié uniquement lorsque DATA_DIR et OMNIROUTE_DATA_DIR ne sont pas définis. Permet de localiser le cache des sessions de fils de discussion web Notion (<dir>/notion-web-thread-sessions.json). |
26. Infrastructure de test et E2E
Section intitulée « 26. Infrastructure de test et E2E »Utilisée par scripts/dev/run-next-playwright.mjs, scripts/dev/smoke-electron-packaged.mjs,
scripts/dev/run-ecosystem-tests.mjs et scripts/build/uninstall.mjs. Laissez toutes les
valeurs ci-dessous non définies dans les déploiements de production.
| Variable | Valeur par défaut | Fichier source | Description |
|---|---|---|---|
OMNIROUTE_E2E_BOOTSTRAP_MODE |
auth |
scripts/dev/run-next-playwright.mjs |
Mode d’initialisation E2E (auth, fresh, reuse) pour l’exécuteur Playwright. |
OMNIROUTE_E2E_PASSWORD |
utilise INITIAL_PASSWORD par défaut |
scripts/dev/run-next-playwright.mjs |
Mot de passe administrateur injecté dans l’environnement Playwright. |
OMNIROUTE_DISABLE_LOCAL_HEALTHCHECK |
true |
scripts/dev/run-next-playwright.mjs |
Désactive l’interrogation locale de vérification d’état pendant les exécutions Playwright. |
OMNIROUTE_DISABLE_TOKEN_HEALTHCHECK |
true |
scripts/dev/run-next-playwright.mjs |
Désactive la boucle de vérification d’état des jetons OAuth pendant les tests. |
OMNIROUTE_HEALTHCHECK_SKIP_PROVIDERS |
(non définie) | src/lib/tokenHealthCheck.ts |
Fournisseurs séparés par des virgules exclus du balayage proactif de renouvellement des jetons (par ex. codex,openai). Alternative ciblée à la désactivation complète de la vérification d’état : les fournisseurs à courte durée de vie continuent d’être actualisés, tandis que les fournisseurs en cascade restent uniquement réactifs. |
OMNIROUTE_HIDE_HEALTHCHECK_LOGS |
true |
scripts/dev/run-next-playwright.mjs |
Masque les messages de vérification d’état dans la sortie standard de Playwright. |
OMNIROUTE_PLAYWRIGHT_SKIP_BUILD |
0 |
scripts/dev/run-next-playwright.mjs |
Ignore la compilation de production Next.js avant le démarrage de Playwright (optimisation de la CI). |
OMNIROUTE_SKIP_UNINSTALL_HOOK |
0 |
scripts/build/uninstall.mjs |
Ignore le hook de désinstallation d’OmniRoute (utilisé par la CI pour conserver node_modules intact). |
ECOSYSTEM_SERVER_WAIT_MS |
180000 |
scripts/dev/run-ecosystem-tests.mjs |
Délai d’attente (ms) avant que le serveur ne soit opérationnel, préalablement à l’exécution des tests d’écosystème/de protocole. |
ELECTRON_SMOKE_URL |
http://127.0.0.1:20128/login |
scripts/dev/smoke-electron-packaged.mjs |
URL que le banc de test rapide Electron attend de l’application empaquetée. |
ELECTRON_SMOKE_TIMEOUT_MS |
45000 |
scripts/dev/smoke-electron-packaged.mjs |
Délai d’expiration total (ms) avant l’abandon du banc de test rapide. |
ELECTRON_SMOKE_SETTLE_MS |
2000 |
scripts/dev/smoke-electron-packaged.mjs |
Délai de stabilisation (ms) après le chargement de la page. |
ELECTRON_SMOKE_APP_EXECUTABLE |
(auto) | scripts/dev/smoke-electron-packaged.mjs |
Chemin explicite vers l’exécutable Electron empaqueté. |
ELECTRON_SMOKE_DATA_DIR |
(tmpdir) | scripts/dev/smoke-electron-packaged.mjs |
Répertoire de données pour l’exécution du test rapide Electron. |
ELECTRON_SMOKE_KEEP_DATA |
0 |
scripts/dev/smoke-electron-packaged.mjs |
Définissez cette variable sur 1 pour conserver le répertoire de données du test rapide après l’exécution. |
ELECTRON_SMOKE_STREAM_LOGS |
0 |
scripts/dev/smoke-electron-packaged.mjs |
Définissez cette variable sur 1 pour diffuser les journaux Electron vers la sortie standard pendant l’exécution. |
ELECTRON_SMOKE_COLD_RESTART |
0 |
scripts/dev/smoke-electron-packaged.mjs |
#7592 : relance avec le même répertoire de données et vérifie que le deuxième lancement sélectionne le pilote SQLite natif. |
CLI_DEVIN_BIN |
(recherche dans PATH) | open-sse/executors/devin-cli.ts |
Remplace le chemin du binaire de la CLI Devin. |
Pipeline de traduction de la documentation
Section intitulée « Pipeline de traduction de la documentation »Utilisé par scripts/i18n/run-translation.mjs (la commande npm run i18n:run).
Les cinq variables sont désactivées par défaut — définissez-les dans .env uniquement sur les machines
qui doivent être autorisées à exécuter le traducteur de documentation.
| Variable | Valeur par défaut | Fichier source | Description |
|---|---|---|---|
OMNIROUTE_TRANSLATION_API_URL |
(non définie) | scripts/i18n/run-translation.mjs |
URL de base compatible avec OpenAI pour le backend de traduction. |
OMNIROUTE_TRANSLATION_API_KEY |
(non définie) | scripts/i18n/run-translation.mjs |
Jeton Bearer pour le backend de traduction (jamais consigné dans les journaux). |
OMNIROUTE_TRANSLATION_MODEL |
(non définie) | scripts/i18n/run-translation.mjs |
Identifiant du modèle, par ex. gpt-4o-mini ou cx/gpt-5.4-mini. |
OMNIROUTE_TRANSLATION_TIMEOUT_MS |
60000 |
scripts/i18n/run-translation.mjs |
Délai d’expiration par requête, en millisecondes. |
OMNIROUTE_TRANSLATION_CONCURRENCY |
4 |
scripts/i18n/run-translation.mjs |
Requêtes de traduction parallèles lors du traitement de plusieurs fichiers/langues. |
27. Flux Radar (auto-hébergement)
Section intitulée « 27. Flux Radar (auto-hébergement) »Module complémentaire facultatif contrôlé par l’indicateur de fonctionnalité RADAR_ENABLED (désactivé par défaut — un indicateur de fonctionnalité activé ou désactivé via les paramètres/la base de données, et non une variable d’environnement ; voir
docs/frameworks/RADAR.md).
Les quatre premières variables ci-dessous sont des valeurs de remplacement facultatives pour un flux auto-hébergé ou dérivé, ainsi que pour les parcours liés aux clés de soutien. La cinquième, RADAR_ADMIN_URL, est un lien distinct sans valeur par défaut vers le panneau privé d’exploitation du propriétaire. Consultez docs/frameworks/RADAR.md pour obtenir la documentation complète du module et sa
séquence d’activation de bout en bout et de configuration guidée.
Le lecteur générique d’annonces de la page d’accueil et du journal des modifications n’est pas configuré par une variable d’environnement et ne dépend pas de l’indicateur de fonctionnalité RADAR_ENABLED. Il lit uniquement via
GET l’URL publique news.json du dépôt, déclarée dans src/shared/utils/releaseNotes.ts ;
les identifiants des annonces ignorées restent stockés dans le stockage local du navigateur.
| Variable | Valeur par défaut | Fichier source | Description |
|---|---|---|---|
RADAR_FEED_URL |
https://radar.omniroute.online |
src/lib/radar/{sync,referralsSync,offersSync,intelSync}.ts |
URL de base commune aux flux signés séparément du catalogue, des parrainages, des offres destinées aux soutiens et d’Intel. Remplacez-la pour pointer vers un service auto-hébergé ou dérivé. |
RADAR_FEED_PUBKEY |
(clé épinglée par défaut) | src/lib/radar/pinnedKeys.ts |
Clé publique Ed25519 (SPKI DER encodée en base64 ou PEM) utilisée pour vérifier les signatures d’un flux personnalisé. |
RADAR_CONTRIBUTOR_CLAIM_URL |
https://radar.omniroute.online/auth/github |
src/lib/radar/links.ts |
URL ouverte par le bouton « Je contribue » du tableau de bord (parcours de demande d’une clé de soutien via GitHub OAuth). |
RADAR_SUPPORTER_PLANS_URL |
https://radar.omniroute.online/planos |
src/lib/radar/links.ts |
URL ouverte par le bouton « Soutenir le projet » du tableau de bord (page de paiement/d’abonnements). |
RADAR_ADMIN_URL |
(non définie) | src/lib/radar/links.ts |
Lien vers le panneau privé d’exploitation, réservé au propriétaire. HTTPS est obligatoire, sauf pour une redirection SSH vers une adresse de bouclage HTTP ; les valeurs non définies ou non valides ne créent aucun élément de navigation. |
Audit : variables supprimées / obsolètes
Section intitulée « Audit : variables supprimées / obsolètes »Les variables suivantes figuraient dans les versions précédentes de .env.example, mais ne comportent aucune référence à l’exécution dans la base de code actuelle. Elles ont été supprimées :
| Variable | Raison |
|---|---|
STORAGE_DRIVER=sqlite |
N’est jamais lue par aucun fichier source. SQLite est le seul pilote pris en charge — aucune sélection n’est nécessaire. |
INSTANCE_NAME=omniroute |
Présente dans les anciennes documentations et les anciens modèles d’environnement, mais inutilisée à l’exécution. Pourrait réapparaître dans une future fonctionnalité multi-instance. |
SQLITE_MAX_SIZE_MB=2048 |
Non référencée dans le code source. La taille de la base de données n’est pas limitée artificiellement. |
SQLITE_CLEAN_LEGACY_FILES=true |
Non référencée dans le code source. Le nettoyage des anciens fichiers a probablement été supprimé. |
CLI_ROO_BIN |
Non enregistrée dans src/shared/services/cliRuntime.ts. |
CLI_KIMI_CODING_BIN |
Non enregistrée dans src/shared/services/cliRuntime.ts (Kimi Coding utilise OAuth, et non un binaire CLI). |
IFLOW_OAUTH_CLIENT_ID / IFLOW_OAUTH_CLIENT_SECRET |
Non référencées dans le code source. |
CEREBRAS_API_KEY / COHERE_API_KEY / FIREWORKS_API_KEY / GROQ_API_KEY / MISTRAL_API_KEY / NEBIUS_API_KEY / PERPLEXITY_API_KEY / TOGETHER_API_KEY / XAI_API_KEY |
Supprimées dans la v3.8.0. Le runtime ne lit plus ces variables d’environnement — les identifiants proviennent du Dashboard, de data/provider-credentials.json ou de la base de données chiffrée. |
CURSOR_PROTOBUF_DEBUG |
Supprimée dans la v3.8.0. L’exécuteur Cursor utilise CURSOR_DEBUG / CURSOR_STREAM_DEBUG (voir §22). |
CLI_COMPAT_KIRO |
Supprimée dans la v3.8.0. Kiro figure dans CLI_COMPAT_OMITTED_PROVIDER_IDS — son paramètre d’activation n’a aucun effet. |
QIANFAN_API_KEY |
Supprimée avec les autres ébauches inutilisées de clés API de fournisseurs dans la v3.8.0. |
Corrections des valeurs par défaut
Section intitulée « Corrections des valeurs par défaut »| Variable | Ancienne valeur dans .env.example |
Valeur par défaut réelle du code | Correction |
|---|---|---|---|
APP_LOG_RETENTION_DAYS |
90 |
7 |
✅ Valeur trompeuse supprimée ; 7 documenté comme valeur par défaut |
CALL_LOG_RETENTION_DAYS |
90 |
7 |
✅ Valeur trompeuse supprimée ; 7 documenté comme valeur par défaut |
Régénération de la configuration OpenCode (outillage ponctuel)
Section intitulée « Régénération de la configuration OpenCode (outillage ponctuel) »Utilisées par scripts/ad-hoc/regen-opencode-config.ts pour régénérer un fichier opencode.json
avec des valeurs limit.context et limit.output exactes, récupérées depuis l’instance
OmniRoute en cours d’exécution. Aucune d’entre elles n’est requise pour le fonctionnement normal — ce script
est uniquement un outil destiné aux développeurs.
| Variable | Valeur par défaut | Fichier source | Description |
|---|---|---|---|
OMNIROUTE_URL |
http://localhost:20128 |
scripts/ad-hoc/regen-opencode-config.ts |
URL de base de l’instance OmniRoute à interroger pour /v1/models. |
OMNIROUTE_KEY |
(non définie) | scripts/ad-hoc/regen-opencode-config.ts |
Clé API permettant de s’authentifier auprès du point de terminaison OmniRoute /v1/models. Utilise OPENCODE_API_KEY par défaut si non définie. |
OPENCODE_API_KEY |
(non définie) | scripts/ad-hoc/regen-opencode-config.ts |
Clé API de style OpenCode (sk-...) écrite dans le fichier opencode.json régénéré. Utilise OMNIROUTE_KEY par défaut si non définie. |
Outil ad hoc d’évaluation hors ligne de la compression
Section intitulée « Outil ad hoc d’évaluation hors ligne de la compression »Utilisée par scripts/compression-eval/index.ts, l’interface en ligne de commande d’évaluation hors ligne de la compression.
Non requise pour le fonctionnement normal — réservée aux outils de développement.
| Variable | Valeur par défaut | Fichier source | Description |
|---|---|---|---|
OMNIROUTE_EVAL_CREDENTIALS |
{} (vide) |
scripts/compression-eval/index.ts |
Identifiants JSON fournis par l’opérateur pour le fournisseur testé par l’interface en ligne de commande d’évaluation hors ligne de la compression (analysés avec JSON.parse). Laisser non définie pour une exécution à blanc. |
Sessions de navigateur VNC
Section intitulée « Sessions de navigateur VNC »Utilisées par src/lib/vncSession/manifest.ts pour configurer des sessions Chromium sans interface graphique basées sur Docker pour les fournisseurs d’automatisation de navigateur. Toutes sont facultatives — les valeurs par défaut sont indiquées ci-dessous.
| Variable | Valeur par défaut | Fichier source | Description |
|---|---|---|---|
OMNIROUTE_DOCKER_BIN |
docker |
src/lib/vncSession/manifest.ts |
Chemin vers le binaire Docker utilisé pour lancer les conteneurs VNC. |
OMNIROUTE_VNC_IMAGE |
omniroute-vnc-chromium:local |
src/lib/vncSession/manifest.ts |
Image Docker du conteneur Chromium VNC. |
OMNIROUTE_VNC_CHROMIUM_ARGS |
(options intégrées) | src/lib/vncSession/manifest.ts |
Arguments CLI Chromium supplémentaires transmis au navigateur dans le conteneur. |
OMNIROUTE_VNC_CONTAINER_VNC_PORT |
3000 |
src/lib/vncSession/manifest.ts |
Port VNC à l’intérieur du conteneur. |
OMNIROUTE_VNC_CONTAINER_CDP_PORT |
9223 |
src/lib/vncSession/manifest.ts |
Port du protocole Chrome DevTools à l’intérieur du conteneur. |
OMNIROUTE_VNC_CONTAINER_PROFILE_DIR |
/config |
src/lib/vncSession/manifest.ts |
Répertoire de profil à l’intérieur du conteneur. |
OMNIROUTE_VNC_PROFILE_DIR |
(non définie) | src/lib/vncSession/manifest.ts |
Répertoire côté hôte pour les profils de navigateur persistants. |
OMNIROUTE_VNC_IDLE_MS |
600000 |
src/lib/vncSession/manifest.ts |
Délai d’inactivité (ms) avant la récupération d’une session VNC. |
OMNIROUTE_VNC_MAX_MS |
1800000 |
src/lib/vncSession/manifest.ts |
Durée maximale d’une session (ms). |
OMNIROUTE_VNC_MAX_SESSIONS |
4 |
src/lib/vncSession/manifest.ts |
Nombre maximal de sessions VNC simultanées. |
OMNIROUTE_VNC_READY_MS |
45000 |
src/lib/vncSession/manifest.ts |
Délai d’attente avant que le navigateur soit prêt (ms). |
OMNIROUTE_VNC_HARVEST_MS |
20000 |
src/lib/vncSession/manifest.ts |
Délai d’attente pour la récupération/le nettoyage (ms). |
OMNIROUTE_VNC_NETWORK |
omniroute-vnc-browser-login |
src/lib/vncSession/manifest.ts |
Réseau Docker dédié auquel le conteneur se connecte (#12571), distinct du pont par défaut. |
VIBEPROXY_DATA_DIR |
(non définie) | open-sse/services/notionThreadSessions.ts |
Répertoire destiné à la persistance des sessions de fils de discussion Notion. |
Authentification des services internes
Section intitulée « Authentification des services internes »| Variable | Valeur par défaut | Description |
|---|---|---|
OMNIROUTE_INTERNAL_SERVICE_TOKEN |
– | Jeton en ligne pour l’authentification interservices du plan de gestion. |
OMNIROUTE_INTERNAL_SERVICE_TOKEN_FILE |
– | Chemin vers un fichier contenant le jeton de service interne (méthode privilégiée dans les conteneurs ; remplace la variable en ligne). |
Statistiques du fournisseur OpenRouter
Section intitulée « Statistiques du fournisseur OpenRouter »| Variable | Valeur par défaut | Description |
|---|---|---|
OPENROUTER_PROVIDER_STATS_ENABLED |
true |
Définir sur false pour ignorer la récupération des statistiques OpenRouter par fournisseur destinées à enrichir le catalogue. |
OPENROUTER_PROVIDER_STATS_TTL_MS |
3600000 |
Durée de vie du cache (ms) pour les statistiques récupérées des fournisseurs OpenRouter. |
Liaison Redis intégrée
Section intitulée « Liaison Redis intégrée »| Variable | Valeur par défaut | Description |
|---|---|---|
REDIS_BIND_HOST |
127.0.0.1 |
Adresse d’écoute du service Redis intégré. |
REDIS_PORT |
6379 |
Port du service Redis intégré. |
OMNIROUTE_REDIS_BIND_HOST |
– | Remplacement propre à OmniRoute de l’adresse d’écoute du service Redis intégré. |
24. Ajouts de la version v3.8.50
Section intitulée « 24. Ajouts de la version v3.8.50 »Ces paramètres ont été introduits après l’instantané précédent du contrat d’environnement.
| Variable | Valeur par défaut | Fichier source | Description |
|---|---|---|---|
OMNIROUTE_CHAT_ADMISSION_QUEUE_MS |
2000 |
src/shared/middleware/chatBodyAdmission.ts |
Durée d’attente maximale pour obtenir un créneau d’admission de chat lourd avant de renvoyer une erreur 503 autorisant une nouvelle tentative ; une attente courte et bornée sérialise les rafales d’agents au lieu de renvoyer immédiatement une erreur 503. 0 rétablit le rejet immédiat. |
OMNIROUTE_CHAT_ADMISSION_MAX_QUEUED_BYTES |
4194304 (4 Mo) |
src/shared/middleware/chatBodyAdmission.ts |
Budget en octets mis en file d’attente pour l’attente d’admission : limite le nombre total d’octets de corps mis en mémoire tampon et immobilisés à l’échelle du processus, afin que l’attente ne puisse pas amplifier l’utilisation du tas (#4380). Les attentes dépassant le budget reçoivent immédiatement une erreur 503 autorisant une nouvelle tentative. |
OMNIROUTE_CHAT_VIRTUAL_TTL_MS |
60000 (60 s) |
src/shared/middleware/chatBodyAdmission.ts |
Option obsolète sans effet depuis #10110 : les voies d’admission par session ont été supprimées au profit d’un budget unique à l’échelle du processus. Acceptée pour assurer la compatibilité de configuration ; ignorée. |
OMNIROUTE_CHAT_VIRTUAL_MAX_SESSIONS |
64 |
src/shared/middleware/chatBodyAdmission.ts |
Option obsolète sans effet depuis #10110 : les voies d’admission par session ont été supprimées au profit d’un budget unique à l’échelle du processus. Acceptée pour assurer la compatibilité de configuration ; ignorée. |
OMNIROUTE_CHAT_VIRTUAL_LANES |
0 (désactivé) |
open-sse/services/admission/runtime.ts |
Voies virtuelles adaptatives d’admission à l’exécution (#9654) : interrupteur principal de la barrière adaptative par locataire (système 2). À distinguer des variables obsolètes de voies par connexion ci-dessus (TTL_MS / MAX_SESSIONS, sans effet depuis #10110). Indicateur de fonctionnalité du tableau de bord portant le même nom ; la variable d’environnement prévaut sur le remplacement défini dans le tableau de bord ; nécessite un redémarrage. |
OMNIROUTE_RUNNOW_TIMEOUT_MS |
30000 |
src/app/api/jobs/[id]/run-now/route.ts |
Limite la durée pendant laquelle un appel d’exécution immédiate attend la fin d’une tâche en cours avant de démarrer l’exécution mise en file d’attente. |
ADOBE_FIREFLY_BROWSER_REFRESH |
activé | open-sse/services/adobeFireflySession.ts |
Maintient à jour l’état IMS et l’état de risque du navigateur au moyen de sessions Chrome CDP limitées au compte ; définissez la valeur sur 0 pour désactiver cette fonctionnalité. |
ADOBE_FIREFLY_SESSION_DISK |
activé | open-sse/services/adobeFireflySession.ts |
Conserve les sessions Adobe réparées sous DATA_DIR ; définissez la valeur sur 0 pour stocker l’état uniquement en mémoire. |
ADOBE_FIREFLY_MIN_SUBMIT_GAP_MS |
12000 |
open-sse/services/adobeFireflySession.ts |
Intervalle minimal entre les soumissions de génération Adobe Firefly. |
ADOBE_FIREFLY_BATCH_EXTRA_GAP_MS |
15000 |
open-sse/services/adobeFireflySession.ts |
Période de repos supplémentaire après chaque troisième soumission Adobe réussie. |
ADOBE_FIREFLY_CHROME_HEADLESS |
0 |
open-sse/services/adobeFireflyBrowserLogin.ts |
Mode véritablement sans interface graphique réservé au débogage ; Adobe colligo rejette normalement la session de risque qui en résulte. |
CHROME_PATH |
détection automatique | open-sse/executors/cloudflare-playground.ts, open-sse/executors/chatgpt-web-codex.ts |
Exécutable Chrome absolu facultatif utilisé par les exécuteurs pilotés par navigateur lorsque la détection automatique de la plateforme est insuffisante. |
TELEGRAM_BOT_TOKEN |
(non défini) | src/lib/telegram/config.ts |
Jeton BotFather qui active le webhook entrant et signe l’initData de la Mini App. |
TELEGRAM_WEBHOOK_SECRET |
(non défini) | src/lib/telegram/config.ts |
Secret partagé enregistré via setWebhook et vérifié par rapport à l’en-tête X-Telegram-Bot-Api-Secret-Token lors de chaque livraison de webhook. Requis pour le chemin du webhook ; s’il n’est pas défini, les livraisons de webhook sont refusées avec une erreur 503. |
TELEGRAM_DEFAULT_MODEL |
auto/chat |
src/lib/telegram/chatProxy.ts |
Modèle utilisé pour les réponses de chat Telegram. |
TELEGRAM_BOT_API_BASE |
https://api.telegram.org |
src/lib/telegram/config.ts |
Remplacement de l’URL de base de l’API Bot pour les proxys ou les serveurs de l’API Bot auto-hébergés. |
TELEGRAM_WEBHOOK_TIMEOUT_MS |
60000 |
src/lib/telegram/config.ts |
Délai d’expiration en millisecondes pour les appels sortants à l’API Bot. |
OMNIROUTE_OPTIONAL_PACK_TAR |
1 (activé) |
scripts/build/optionalPackStaging.mjs |
Définissez la valeur sur 0 pour ne pas générer d’archives .tar.gz lors de la préparation des packs facultatifs de ML/navigateur pour l’arborescence Electron autonome (les répertoires de packs et optional-packs.index.json sont toujours produits). Utilisé par le workflow de publication de l’application de bureau afin de réduire la taille des artefacts téléversés. |
ChatGPT Web (Codex)
Section intitulée « ChatGPT Web (Codex) »Valeurs globales par défaut pour le navigateur sans interface graphique et le tunnel sortant des outils. Les valeurs de connexion définies dans le tableau de bord sont prioritaires.
| Variable | Valeur par défaut | Fichier source | Description |
|---|---|---|---|
CHATGPT_WEB_CODEX_CHROME_PATH |
(détection automatique) | open-sse/executors/chatgpt-web-codex.ts |
Chemin explicite vers Chrome/Chromium pour une exécution avec npm, systemd et PM2. |
CHROME_PATH |
(détection automatique) | open-sse/executors/chatgpt-web-codex.ts |
Solution de repli commune pour un chemin explicite vers Chrome/Chromium. |
CHATGPT_WEB_CODEX_CDP_URL |
(non défini) | open-sse/executors/chatgpt-web-codex.ts |
Point de terminaison CDP interne ; Docker utilise le side-car sur le port 9223. |
CDP_PROXY_TOKEN |
(non défini) | docker/chatgpt-web-codex-browser/cdp-proxy.mjs |
Si cette variable est définie, chaque requête adressée au side-car proxy CDP doit inclure cette valeur dans l’en-tête X-Omni-Cdp-Token (#13679). Sans valeur, le proxy transmet les requêtes sans authentification — seule l’isolation réseau du réseau Compose chatgpt-web-codex-net assure alors la protection. À générer avec openssl rand -hex 32. |
CHATGPT_WEB_CODEX_TUNNEL_ID |
(non défini) | open-sse/executors/chatgpt-web-codex.ts |
ID global du tunnel OpenAI pour les cycles locaux des outils Codex. |
CHATGPT_WEB_CODEX_RUNTIME_KEY |
(non défini) | open-sse/executors/chatgpt-web-codex.ts |
Clé d’exécution globale du tunnel ; ne jamais l’écrire dans les journaux. |
CHATGPT_WEB_CODEX_CONNECTOR_NAME |
OmniRoute Codex v2 |
open-sse/executors/chatgpt-web-codex.ts |
Nom exact du connecteur personnalisé ChatGPT nouvellement créé pour la passerelle MCP. |
CODEX_CHATGPT_WEB_HOME |
<DATA_DIR>/chatgpt-web-codex |
open-sse/vendor/codex-chatgpt-web/config.ts |
Répertoire dédié à l’état du navigateur, du broker et du tunnel. |
CODEX_CHATGPT_WEB_BROWSER_DIAGNOSTICS |
0 |
open-sse/vendor/codex-chatgpt-web/adapters/chatgpt-web/browser-worker.ts |
Lorsque la valeur est 1, des captures de diagnostic du navigateur sont réalisées à chaque point de contrôle. |
CODEX_CHATGPT_WEB_LAUNCHER |
(non défini) | open-sse/vendor/codex-chatgpt-web/config.ts |
Chemin absolu facultatif vers un binaire de lanceur persistant. |
CODEX_CHATGPT_WEB_BUN |
(détection automatique) | open-sse/vendor/codex-chatgpt-web/config.ts |
Chemin absolu facultatif vers le binaire d’exécution Bun. |
CODEX_WEB_GPT_BUN |
(non défini) | open-sse/vendor/codex-chatgpt-web/config.ts |
Solution de repli héritée pour CODEX_CHATGPT_WEB_BUN ; les nouvelles configurations utilisent le nom canonique. |
Pont OmniConductor
Section intitulée « Pont OmniConductor »Consommateur SSE persistant qui réplique les tâches du hub OmniConductor dans le TaskManager A2A local (src/lib/conductor/). Fonctionnalité optionnelle — le pont ne démarre que lorsque CONDUCTOR_HUB_URL est définie. Côté serveur uniquement : le jeton du hub ne doit jamais parvenir au navigateur.
| Variable | Valeur par défaut | Fichier source | Description |
|---|---|---|---|
CONDUCTOR_HUB_URL |
(vide) | src/lib/conductor/boot.ts |
URL de base du hub OmniConductor (par ex. http://127.0.0.1:7910). Non définie = pont désactivé. |
CONDUCTOR_HUB_TOKEN |
(vide) | src/lib/conductor/boot.ts |
Identifiant d’accès au hub pour le flux SSE — émettez un pair de type spokesperson sur le hub (POST /v1/peers, administrateur). |
CONDUCTOR_ORCHESTRATOR_TOKEN |
(vide) | src/lib/conductor/hubProxy.ts |
Identifiant d’accès pour la délégation entrante de tâches A2A→hub (POST /v1/tasks) ; utilise CONDUCTOR_HUB_TOKEN comme solution de repli lorsqu’elle n’est pas définie. |
CONDUCTOR_SPOKESPERSON_URL |
http://127.0.0.1:7920 |
src/lib/conductor/faroProxy.ts |
URL de base du service spokesperson (Faro) derrière le proxy de chat du tableau de bord (/api/conductor/ask). |
Planification tenant compte des quotas
Section intitulée « Planification tenant compte des quotas »Utilisée par open-sse/services/combo.ts et src/lib/quota/quotaScheduler.ts pour les vérifications du budget de jetons avant les requêtes. Fonctionnalité optionnelle — le comportement de routage par défaut reste inchangé lorsqu’elle n’est pas définie.
| Variable | Valeur par défaut | Fichier source | Description |
|---|---|---|---|
OMNIROUTE_QUOTA_AWARE_ROUTING |
0 |
open-sse/services/combo.ts |
Lorsque définie sur 1, ignore les connexions dont le budget de jetons par fenêtre (rateLimitOverrides.tpm, table provider_quota_state) ne peut pas couvrir le coût estimé de la requête avant son envoi. Autorise la requête en l’absence de budget configuré. |
HagiCode
HagiCode est un espace de développement agentique qui associe workflows structurés, exécution multi-agent et vues Hero Dungeon.
Transformez vos idées en logiciels utiles grâce à un workflow agentique plus intelligent, rapide et agréable.

- SmartDes workflows structurés transforment une intention en parcours exécutable, de l’idée à la livraison.
- EfficientLes workflows multi-agents font avancer recherche, réalisation et revue en parallèle.
- FunHero Dungeon rend les longues sessions de code plus visuelles et collaboratives.