Skip to content

Configuration

Fichiers de configuration

Runeya stocke toute sa configuration dans ./.runeya/ dans le dossier courant (ou via la variable DATA_DIR).

settings.json

Paramètres globaux, préférences de notifications, scénarios IA, enterprises et parsers de logs.

json
{
  "mode": "local-simple",
  "notifications": {
    "scenario_waiting_input": true,
    "ai_conversation_complete": true,
    "ai_conversation_error": true,
    "service_error_log": true,
    "service_status_changed": true,
    "service_health_changed": true
  },
  "logParsers": [
    {
      "id": "uuid",
      "name": "JSON Parser",
      "code": "(line) => { ... }",
      "version": 2
    }
  ],
  "scenarios": [],
  "enterprises": []
}

Notifications dans l'UI

Dans Settings → Notifications, les préférences sont regroupées par thématique :

  • Scenarios : scenario_waiting_input
  • AI Conversations : ai_conversation_complete, ai_conversation_error
  • Services : service_error_log, service_status_changed, service_health_changed

Chaque section dispose aussi de contrôles rapides :

  • Replier/Déplier la section via l'en-tête (chevron)
  • Enable all / Disable all pour activer ou désactiver toute la section en une action

Ce regroupement est purement visuel : le format de settings.json reste inchangé.

Éditeur de scénarios (UI)

Dans l'éditeur de scénarios (Settings → Scenarios), vous pouvez supprimer l'élément sélectionné :

  • Nœud sélectionné : bouton Supprimer nœud ou touche Delete / Backspace
  • Groupe sélectionné : bouton Supprimer groupe ou touche Delete / Backspace
  • Lien (edge) sélectionné : bouton Supprimer lien ou touche Delete / Backspace
  • Le lien sélectionné est aussi mis en évidence visuellement dans le canvas.

Branchement conditionnel (edges)

Quand un nœud a plusieurs edges sortantes, vous pouvez configurer une description par edge pour guider le choix de l'IA :

  1. Dans l'éditeur de scénarios, cliquez sur le nœud source pour ouvrir le panneau d'édition.
  2. La section Branches liste chaque edge sortante avec un champ de description.
  3. Saisissez une description courte (max 500 caractères) qui décrit la condition ou l'intention de cette branche (ex : "Tests passés", "Erreur détectée").
  4. Sauvegardez le nœud.

À l'exécution, le runner injecte automatiquement les choix dans le prompt de l'IA :

Réponds PASS1 pour "Tests passés" ou PASS2 pour "Erreur détectée"

L'IA doit terminer sa réponse par PASS1 ou PASS2 (sur sa propre ligne) pour sélectionner la branche. Si la description est vide, un libellé générique (Branch 1, Branch 2, …) est utilisé.

Nœuds avec une seule edge : comportement inchangé — l'IA répond PASS ou FAIL comme avant.

Lancement d'un scénario (UI)

Quand vous lancez un scénario depuis l'onglet IA :

  • Une modale permet de saisir un nom d'exécution (titre de conversation).
  • Le bouton Générer un nom avec l'IA pré-remplit ce champ.
  • Si vous laissez le champ vide, Runeya retombe sur le nom du scénario.
  • Les noms trop génériques issus d'un LLM (ex: scenario) sont filtrés côté serveur.

Éditeur d'enterprise (UI)

Dans Settings → Scenarios, vous pouvez aussi gérer des enterprises :

  • Créer/éditer une enterprise (nom, description, leader).
  • Gérer les équipes et personnes (manager parentId, teamId, prompt individuel).
  • Supprimer une enterprise.

Lors de la création d'une conversation IA avec une enterprise sélectionnée :

  • Le backend crée un workspace dans DATA_DIR/enterprise-runs/<conversationId>/.
  • Le brief initial est enregistré dans USER_REQUEST.md.
  • Un fichier markdown est créé pour chaque personne de l'enterprise.

services.json

Configuration de tous les services.

json
[
  {
    "id": "service-uuid",
    "name": "api",
    "description": "API REST",
    "command": "node dist/index.js",
    "cwd": "/home/user/my-app",
    "shell": false,
    "projectId": "project-uuid",
    "agentId": "agent-uuid",
    "parserIds": ["parser-uuid"],
    "envSecrets": []
  }
]

environments.json

Environnements globaux et leurs variables.

json
[
  {
    "id": "env-uuid",
    "name": "development",
    "variables": {
      "var-uuid": {
        "key": "DATABASE_URL",
        "value": "postgres://localhost:5432/myapp",
        "secret": false
      }
    }
  }
]

Variables d'environnement système

VariableDéfautDescription
RUNEYA_HTTP_PORT9545Port HTTP du serveur (prioritaire sur PORT)
PORT9545Port HTTP du serveur (rétrocompatibilité — préférez RUNEYA_HTTP_PORT)
DATA_DIR./.runeyaRépertoire de données du projet
RUNEYA_AGENT_PORT9546Port de l'agent local (défaut : RUNEYA_HTTP_PORT + 1)
RUNEYA_LOG_LEVELinfoNiveau de log serveur

Écriture atomique

Tous les fichiers JSON sont écrits de manière atomique :

1. write data to services.json.tmp
2. rename services.json.tmp → services.json

Cela garantit qu'un crash pendant l'écriture ne corrompt pas les données.

Publié sous licence MIT.