[
  {
    "name": "sop_search",
    "module": "sop",
    "title": "SOP-Suche",
    "description": "Hybride semantische + Volltextsuche über die SOPs. Rückgabe: matches[] mit path, plus searchRequestId (für Folge-Reads aufheben). Erster Schritt jeder SOP-Recherche.",
    "params": [
      {
        "name": "task_description",
        "type": "string",
        "required": true,
        "description": "Beschreibung der Nutzeraufgabe (Pflicht)"
      },
      {
        "name": "alpha",
        "type": "number",
        "required": false,
        "description": "0.3 = Default; Richtung 1.0 für Exakt-Term-Suche"
      },
      {
        "name": "limit",
        "type": "integer",
        "required": false,
        "description": "max. Treffer (Default 5)"
      },
      {
        "name": "folder",
        "type": "string",
        "required": false,
        "description": "auf einen Pfad-Präfix einschränken"
      },
      {
        "name": "tags",
        "type": "any",
        "required": false,
        "description": ""
      }
    ]
  },
  {
    "name": "sop_relations",
    "module": "sop",
    "title": "SOP-Relationsgraph",
    "description": "Beziehungen einer SOP (prerequisite/extends/fallback/similar) über ihren Pfad. Zweiter Schritt: den Treffer aus der Suche in seinen Kontext stellen.",
    "params": [
      {
        "name": "path",
        "type": "string",
        "required": true,
        "description": "kanonischer Pfad-Slug, z. B. support/refunds"
      }
    ]
  },
  {
    "name": "sop_get_by_path",
    "module": "sop",
    "title": "SOP per Pfad lesen",
    "description": "Volle SOP über ihren (veränderlichen) Pfad. searchRequestId aus der Suche mitgeben, wenn vorhanden.",
    "params": [
      {
        "name": "path",
        "type": "string",
        "required": true,
        "description": "kanonischer Pfad-Slug"
      },
      {
        "name": "searchRequestId",
        "type": "string",
        "required": false,
        "description": "aus der Such-Response, für Telemetrie/Ranking"
      }
    ]
  },
  {
    "name": "sop_get_by_uuid",
    "module": "sop",
    "title": "SOP per UUID lesen",
    "description": "Volle SOP über ihre stabile UUID — für persistente Referenzen (ändert sich nie).",
    "params": [
      {
        "name": "uuid",
        "type": "string",
        "required": true,
        "description": "stabile DB-UUID der SOP"
      }
    ]
  },
  {
    "name": "sop_tree",
    "module": "sop",
    "title": "SOP-Ordnerbaum",
    "description": "Ordnerstruktur der SOPs zur Orientierung. Ohne Parameter.",
    "params": []
  },
  {
    "name": "sop_upsert",
    "module": "sop",
    "title": "SOP anlegen/aktualisieren (WRITE)",
    "description": "Erstellt oder aktualisiert eine SOP am selben Endpunkt. Update, wenn id/uuid gesetzt ist oder der Pfad existiert; sonst neu (isNew:true erzwingt neu). content Pflicht. Nur bei aktiviertem Write-Modus.",
    "params": [
      {
        "name": "content",
        "type": "string",
        "required": true,
        "description": "SOP-Inhalt (Pflicht)"
      },
      {
        "name": "path",
        "type": "string",
        "required": false,
        "description": "Zielpfad-Slug"
      },
      {
        "name": "isNew",
        "type": "boolean",
        "required": false,
        "description": "true erzwingt Neuanlage"
      },
      {
        "name": "id",
        "type": "string",
        "required": false,
        "description": "UUID → Update-in-place (Pfad bleibt)"
      },
      {
        "name": "displayName",
        "type": "string",
        "required": false,
        "description": ""
      },
      {
        "name": "friendlyPath",
        "type": "string",
        "required": false,
        "description": ""
      },
      {
        "name": "summary",
        "type": "string",
        "required": false,
        "description": "leer = automatisch generiert"
      },
      {
        "name": "tags",
        "type": "array",
        "required": false,
        "description": ""
      },
      {
        "name": "versionBump",
        "type": "string",
        "required": false,
        "description": ""
      },
      {
        "name": "folderDisplayNames",
        "type": "object",
        "required": false,
        "description": ""
      }
    ]
  },
  {
    "name": "sop_move",
    "module": "sop",
    "title": "SOP verschieben/umbenennen (WRITE)",
    "description": "Verschiebt/benennt eine SOP per UUID um. Nur bei aktiviertem Write-Modus.",
    "params": [
      {
        "name": "uuid",
        "type": "string",
        "required": true,
        "description": "stabile UUID der SOP (Pflicht)"
      },
      {
        "name": "newPath",
        "type": "string",
        "required": false,
        "description": "neuer Pfad (newPath ODER friendlyPath Pflicht)"
      },
      {
        "name": "friendlyPath",
        "type": "string",
        "required": false,
        "description": ""
      },
      {
        "name": "newDisplayName",
        "type": "string | null",
        "required": false,
        "description": ""
      }
    ]
  },
  {
    "name": "sop_delete",
    "module": "sop",
    "title": "SOP löschen (WRITE, endgültig)",
    "description": "Löscht eine SOP inkl. Versionen/Embeddings/Relationen unwiderruflich. Nur bei aktiviertem Write-Modus.",
    "params": [
      {
        "name": "path",
        "type": "string",
        "required": true,
        "description": "Pfad-Slug der SOP"
      }
    ]
  },
  {
    "name": "sop_relation_add",
    "module": "sop",
    "title": "SOP-Relation hinzufügen (WRITE)",
    "description": "Fügt eine Beziehung zwischen zwei SOPs hinzu. Nur bei aktiviertem Write-Modus.",
    "params": [
      {
        "name": "path",
        "type": "string",
        "required": true,
        "description": "Quell-SOP-Pfad"
      },
      {
        "name": "targetPath",
        "type": "string",
        "required": true,
        "description": "Ziel-SOP-Pfad (Pflicht)"
      },
      {
        "name": "relation",
        "type": "string",
        "required": true,
        "description": "Beziehungstyp (Pflicht)"
      }
    ]
  },
  {
    "name": "sop_relation_delete",
    "module": "sop",
    "title": "SOP-Relation entfernen (WRITE)",
    "description": "Entfernt eine Beziehung zwischen zwei SOPs. Nur bei aktiviertem Write-Modus.",
    "params": [
      {
        "name": "sourcePath",
        "type": "string",
        "required": true,
        "description": "Quell-SOP-Pfad"
      },
      {
        "name": "targetPath",
        "type": "string",
        "required": true,
        "description": "Ziel-SOP-Pfad"
      }
    ]
  },
  {
    "name": "sop_revert",
    "module": "sop",
    "title": "SOP auf Version zurücksetzen (WRITE)",
    "description": "Setzt eine SOP auf eine frühere Version zurück (erzeugt eine neue Version). Nur bei aktiviertem Write-Modus.",
    "params": [
      {
        "name": "path",
        "type": "string",
        "required": true,
        "description": "Pfad-Slug der SOP"
      },
      {
        "name": "versionId",
        "type": "string",
        "required": true,
        "description": "UUID der Zielversion (Pflicht)"
      }
    ]
  },
  {
    "name": "sop_draft_create",
    "module": "sop",
    "title": "SOP-Entwurf anlegen (WRITE)",
    "description": "Legt einen Entwurf an — targetPath = neue SOP, parentPath = Entwurf einer neuen Version. Nur bei aktiviertem Write-Modus.",
    "params": [
      {
        "name": "content",
        "type": "string",
        "required": false,
        "description": ""
      },
      {
        "name": "targetPath",
        "type": "string",
        "required": false,
        "description": "neue SOP an diesem Pfad"
      },
      {
        "name": "parentPath",
        "type": "string",
        "required": false,
        "description": "neue Version dieser SOP"
      },
      {
        "name": "displayName",
        "type": "string",
        "required": false,
        "description": ""
      },
      {
        "name": "friendlyPath",
        "type": "string",
        "required": false,
        "description": ""
      },
      {
        "name": "summary",
        "type": "string",
        "required": false,
        "description": ""
      },
      {
        "name": "tags",
        "type": "array",
        "required": false,
        "description": ""
      },
      {
        "name": "versionBump",
        "type": "string",
        "required": false,
        "description": ""
      }
    ]
  },
  {
    "name": "sop_draft_update",
    "module": "sop",
    "title": "SOP-Entwurf aktualisieren (WRITE)",
    "description": "Teil-Update eines Entwurfs per draftId. Nur bei aktiviertem Write-Modus.",
    "params": [
      {
        "name": "draftId",
        "type": "string",
        "required": true,
        "description": "Entwurfs-ID"
      },
      {
        "name": "content",
        "type": "string",
        "required": false,
        "description": ""
      },
      {
        "name": "displayName",
        "type": "string",
        "required": false,
        "description": ""
      },
      {
        "name": "summary",
        "type": "string",
        "required": false,
        "description": ""
      },
      {
        "name": "tags",
        "type": "array",
        "required": false,
        "description": ""
      },
      {
        "name": "friendlyPath",
        "type": "string",
        "required": false,
        "description": ""
      },
      {
        "name": "targetPath",
        "type": "string",
        "required": false,
        "description": ""
      },
      {
        "name": "versionBump",
        "type": "string",
        "required": false,
        "description": ""
      }
    ]
  },
  {
    "name": "sop_draft_delete",
    "module": "sop",
    "title": "SOP-Entwurf verwerfen (WRITE)",
    "description": "Verwirft einen Entwurf. Nur bei aktiviertem Write-Modus.",
    "params": [
      {
        "name": "draftId",
        "type": "string",
        "required": true,
        "description": "Entwurfs-ID"
      }
    ]
  },
  {
    "name": "sop_draft_publish",
    "module": "sop",
    "title": "SOP-Entwurf veröffentlichen (WRITE)",
    "description": "Veröffentlicht einen Entwurf als lebende SOP. Nur bei aktiviertem Write-Modus.",
    "params": [
      {
        "name": "draftId",
        "type": "string",
        "required": true,
        "description": "Entwurfs-ID"
      },
      {
        "name": "versionBump",
        "type": "string",
        "required": false,
        "description": "Default patch"
      }
    ]
  },
  {
    "name": "knowledge_search",
    "module": "knowledge",
    "title": "Wissens-Suche",
    "description": "Semantische Suche über die Wissensbasis. Rückgabe: chunks[] mit score, documentId, content (gerankte Snippets). Schneller erster Pass; danach knowledge_query für volle Parent-Chunks.",
    "params": [
      {
        "name": "query",
        "type": "string",
        "required": true,
        "description": "Aufgabenbeschreibung in natürlicher Sprache (Pflicht)"
      },
      {
        "name": "limit",
        "type": "integer",
        "required": false,
        "description": "max. Chunks (Default modulseitig)"
      }
    ]
  },
  {
    "name": "knowledge_query",
    "module": "knowledge",
    "title": "Wissens-Parent-Chunks",
    "description": "Volle Parent-Chunks zu einer Frage (hierarchisches Parent-Chunk-Modell). contextWindow>0 zieht N Nachbarabschnitte je Treffer; sourceItemId schränkt die Ausweitung auf ein Dokument ein.",
    "params": [
      {
        "name": "query",
        "type": "string",
        "required": true,
        "description": "Aufgabenbeschreibung (Pflicht)"
      },
      {
        "name": "limit",
        "type": "integer",
        "required": false,
        "description": "max. Parent-Chunks"
      },
      {
        "name": "contextWindow",
        "type": "integer",
        "required": false,
        "description": "Nachbarabschnitte je Seite; 0 = kein Kontext (Default), 1–2 üblich"
      },
      {
        "name": "sourceItemId",
        "type": "string",
        "required": false,
        "description": "Ausweitung auf genau dieses Dokument beschränken"
      }
    ]
  },
  {
    "name": "connections_list",
    "module": "connections",
    "title": "Connections auflisten",
    "description": "Alle Connections des Tenants. Ohne Parameter.",
    "params": []
  },
  {
    "name": "connections_lookup",
    "module": "connections",
    "title": "Connection-Lookup (strikt)",
    "description": "Gefilterte Einzelauflösung; genau ein Treffer, sonst 400/404/409(Kandidaten)/410.",
    "params": [
      {
        "name": "connectionKey",
        "type": "string",
        "required": false,
        "description": ""
      },
      {
        "name": "name",
        "type": "string",
        "required": false,
        "description": ""
      },
      {
        "name": "moduleId",
        "type": "string",
        "required": false,
        "description": ""
      },
      {
        "name": "connectionType",
        "type": "string",
        "required": false,
        "description": ""
      }
    ]
  },
  {
    "name": "connections_by_key",
    "module": "connections",
    "title": "Connection per stabilem Key",
    "description": "Löst den stabilen connectionKey → aktive Connection (410 wenn nur gelöschte existiert).",
    "params": [
      {
        "name": "key",
        "type": "string",
        "required": true,
        "description": "stabiler connectionKey"
      }
    ]
  },
  {
    "name": "connections_get",
    "module": "connections",
    "title": "Connection lesen",
    "description": "Eine Connection über ihre UUID (410 Gone wenn soft-deleted).",
    "params": [
      {
        "name": "id",
        "type": "string",
        "required": true,
        "description": "Connection-UUID"
      }
    ]
  },
  {
    "name": "connections_resolve",
    "module": "connections",
    "title": "Connection-Refs auflösen",
    "description": "Re-resolved veraltete Refs auf lebende Connections (lesend, keine Mutation). Einzel-Ref oder refs[] (max 200).",
    "params": [
      {
        "name": "uuid",
        "type": "string",
        "required": false,
        "description": ""
      },
      {
        "name": "moduleId",
        "type": "string",
        "required": false,
        "description": ""
      },
      {
        "name": "key",
        "type": "string",
        "required": false,
        "description": ""
      },
      {
        "name": "name",
        "type": "string",
        "required": false,
        "description": ""
      },
      {
        "name": "refs",
        "type": "array",
        "required": false,
        "description": "Batch: Liste von Ref-Objekten"
      }
    ]
  },
  {
    "name": "connections_create",
    "module": "connections",
    "title": "Connection anlegen (WRITE)",
    "description": "Legt eine Connection an (löst eluna-agent-Versand aus). name+description Pflicht. `apiKey` wird serverseitig verworfen — stattdessen `syncedApiKey` (maskiert). Nur bei aktiviertem Write-Modus.",
    "params": [
      {
        "name": "name",
        "type": "string",
        "required": true,
        "description": "Name (Pflicht)"
      },
      {
        "name": "description",
        "type": "string",
        "required": true,
        "description": "Beschreibung (Pflicht)"
      },
      {
        "name": "endpoint",
        "type": "string",
        "required": false,
        "description": ""
      },
      {
        "name": "connectionType",
        "type": "string",
        "required": false,
        "description": ""
      },
      {
        "name": "moduleId",
        "type": "string",
        "required": false,
        "description": ""
      },
      {
        "name": "syncedApiKey",
        "type": "string",
        "required": false,
        "description": "maskierter Key (NICHT apiKey)"
      },
      {
        "name": "version",
        "type": "string",
        "required": false,
        "description": ""
      },
      {
        "name": "status",
        "type": "string",
        "required": false,
        "description": ""
      },
      {
        "name": "installedGeneralMd",
        "type": "string",
        "required": false,
        "description": ""
      },
      {
        "name": "installedAgentMd",
        "type": "string",
        "required": false,
        "description": ""
      },
      {
        "name": "generatedPrompt",
        "type": "string",
        "required": false,
        "description": ""
      },
      {
        "name": "metadata",
        "type": "object",
        "required": false,
        "description": ""
      },
      {
        "name": "envVars",
        "type": "object",
        "required": false,
        "description": ""
      },
      {
        "name": "vaultSecretRefs",
        "type": "array",
        "required": false,
        "description": ""
      }
    ]
  },
  {
    "name": "connections_update",
    "module": "connections",
    "title": "Connection aktualisieren (WRITE)",
    "description": "Teil-Update; status:\"deletion_pending\" markiert zur Deinstallation. Nur bei aktiviertem Write-Modus.",
    "params": [
      {
        "name": "id",
        "type": "string",
        "required": true,
        "description": "Connection-UUID"
      },
      {
        "name": "name",
        "type": "string",
        "required": false,
        "description": ""
      },
      {
        "name": "description",
        "type": "string",
        "required": false,
        "description": ""
      },
      {
        "name": "endpoint",
        "type": "string",
        "required": false,
        "description": ""
      },
      {
        "name": "connectionType",
        "type": "string",
        "required": false,
        "description": ""
      },
      {
        "name": "moduleId",
        "type": "string",
        "required": false,
        "description": ""
      },
      {
        "name": "syncedApiKey",
        "type": "string",
        "required": false,
        "description": ""
      },
      {
        "name": "version",
        "type": "string",
        "required": false,
        "description": ""
      },
      {
        "name": "status",
        "type": "string",
        "required": false,
        "description": ""
      },
      {
        "name": "installedGeneralMd",
        "type": "string",
        "required": false,
        "description": ""
      },
      {
        "name": "installedAgentMd",
        "type": "string",
        "required": false,
        "description": ""
      },
      {
        "name": "generatedPrompt",
        "type": "string",
        "required": false,
        "description": ""
      },
      {
        "name": "response",
        "type": "string",
        "required": false,
        "description": ""
      },
      {
        "name": "errorMessage",
        "type": "string",
        "required": false,
        "description": ""
      },
      {
        "name": "deletionPrompt",
        "type": "string",
        "required": false,
        "description": ""
      },
      {
        "name": "metadata",
        "type": "object",
        "required": false,
        "description": ""
      },
      {
        "name": "envVars",
        "type": "object",
        "required": false,
        "description": ""
      },
      {
        "name": "vaultSecretRefs",
        "type": "array",
        "required": false,
        "description": ""
      }
    ]
  },
  {
    "name": "connections_delete",
    "module": "connections",
    "title": "Connection löschen (WRITE, soft)",
    "description": "Soft-Delete (idempotent, 204; spätere GETs → 410). Nur bei aktiviertem Write-Modus.",
    "params": [
      {
        "name": "id",
        "type": "string",
        "required": true,
        "description": "Connection-UUID"
      }
    ]
  },
  {
    "name": "workloads_list",
    "module": "workloads",
    "title": "Workloads auflisten",
    "description": "Abgeleitete Workload-Zustände mit Filtern und Metadaten-Suche.",
    "params": [
      {
        "name": "type",
        "type": "string",
        "required": false,
        "description": ""
      },
      {
        "name": "initial_type",
        "type": "string",
        "required": false,
        "description": ""
      },
      {
        "name": "status",
        "type": "string",
        "required": false,
        "description": ""
      },
      {
        "name": "sla",
        "type": "string",
        "required": false,
        "description": ""
      },
      {
        "name": "since",
        "type": "string",
        "required": false,
        "description": "ISO-Zeitpunkt"
      },
      {
        "name": "include_completed",
        "type": "boolean",
        "required": false,
        "description": ""
      },
      {
        "name": "search",
        "type": "string",
        "required": false,
        "description": ""
      },
      {
        "name": "metadata_search",
        "type": "string",
        "required": false,
        "description": "rekursive Wertsuche in metadata"
      },
      {
        "name": "metadata_key",
        "type": "string",
        "required": false,
        "description": "exakt, Format \"key:value\""
      },
      {
        "name": "limit",
        "type": "integer",
        "required": false,
        "description": ""
      },
      {
        "name": "offset",
        "type": "integer",
        "required": false,
        "description": ""
      }
    ]
  },
  {
    "name": "workloads_get",
    "module": "workloads",
    "title": "Workload lesen (mit Timeline)",
    "description": "Ein Workload inkl. verschachtelter events-Timeline (andere Form als die Liste).",
    "params": [
      {
        "name": "id",
        "type": "string",
        "required": true,
        "description": "Workload-ID"
      }
    ]
  },
  {
    "name": "workloads_events",
    "module": "workloads",
    "title": "Workload-Events",
    "description": "Nur die chronologische Event-Liste eines Workloads.",
    "params": [
      {
        "name": "id",
        "type": "string",
        "required": true,
        "description": "Workload-ID"
      }
    ]
  },
  {
    "name": "workloads_types",
    "module": "workloads",
    "title": "Workload-Typen",
    "description": "Alle Workload-Typen mit Status/SLA. Ohne Parameter.",
    "params": []
  },
  {
    "name": "workloads_analytics",
    "module": "workloads",
    "title": "Workload-Analytics",
    "description": "Detaillierte Analytik für einen Typ über einen Zeitraum.",
    "params": [
      {
        "name": "typeId",
        "type": "string",
        "required": true,
        "description": "Typ-ID (Pflicht)"
      },
      {
        "name": "from",
        "type": "string",
        "required": true,
        "description": "ISO-Start (Pflicht)"
      },
      {
        "name": "to",
        "type": "string",
        "required": true,
        "description": "ISO-Ende (Pflicht)"
      }
    ]
  },
  {
    "name": "workloads_metrics",
    "module": "workloads",
    "title": "Workload-Metriken",
    "description": "Aggregierte Metriken (totalCreated, slaBreaches, byType…). Ohne Parameter.",
    "params": []
  },
  {
    "name": "workloads_track",
    "module": "workloads",
    "title": "Workload-Event tracken (WRITE)",
    "description": "Hängt ein Event an; ohne workloadId wird ein Workload angelegt, mit workloadId aktualisiert. Nur bei aktiviertem Write-Modus.",
    "params": [
      {
        "name": "typeId",
        "type": "string",
        "required": true,
        "description": "Typ-ID (Pflicht)"
      },
      {
        "name": "status",
        "type": "string",
        "required": true,
        "description": "Zielstatus (Pflicht)"
      },
      {
        "name": "workloadId",
        "type": "string",
        "required": false,
        "description": "weglassen = neu anlegen; setzen = aktualisieren"
      },
      {
        "name": "title",
        "type": "string",
        "required": false,
        "description": ""
      },
      {
        "name": "description",
        "type": "string",
        "required": false,
        "description": ""
      },
      {
        "name": "triggeredBy",
        "type": "string",
        "required": false,
        "description": ""
      },
      {
        "name": "message",
        "type": "string",
        "required": false,
        "description": ""
      },
      {
        "name": "eventTitle",
        "type": "string",
        "required": false,
        "description": ""
      },
      {
        "name": "eventDescription",
        "type": "string",
        "required": false,
        "description": ""
      },
      {
        "name": "source",
        "type": "string",
        "required": false,
        "description": ""
      },
      {
        "name": "metadata",
        "type": "object",
        "required": false,
        "description": ""
      }
    ]
  },
  {
    "name": "workloads_delete",
    "module": "workloads",
    "title": "Workload löschen (WRITE, endgültig)",
    "description": "Löscht einen Workload und ALLE seine Events unwiderruflich. Nur bei aktiviertem Write-Modus.",
    "params": [
      {
        "name": "workloadId",
        "type": "string",
        "required": true,
        "description": "Workload-ID (Achtung: :workloadId)"
      }
    ]
  },
  {
    "name": "workloads_type_create",
    "module": "workloads",
    "title": "Workload-Typ anlegen (WRITE, admin)",
    "description": "Legt einen Workload-Typ an. Nur bei aktiviertem Write-Modus.",
    "params": [
      {
        "name": "id",
        "type": "string",
        "required": true,
        "description": ""
      },
      {
        "name": "name",
        "type": "string",
        "required": true,
        "description": ""
      },
      {
        "name": "icon",
        "type": "string",
        "required": true,
        "description": ""
      },
      {
        "name": "color",
        "type": "string",
        "required": true,
        "description": ""
      },
      {
        "name": "category",
        "type": "string",
        "required": false,
        "description": ""
      },
      {
        "name": "statuses",
        "type": "array",
        "required": false,
        "description": ""
      }
    ]
  },
  {
    "name": "workloads_type_update",
    "module": "workloads",
    "title": "Workload-Typ aktualisieren (WRITE, admin)",
    "description": "Teil-Update eines Workload-Typs. Nur bei aktiviertem Write-Modus.",
    "params": [
      {
        "name": "id",
        "type": "string",
        "required": true,
        "description": "Typ-ID"
      },
      {
        "name": "name",
        "type": "string",
        "required": false,
        "description": ""
      },
      {
        "name": "icon",
        "type": "string",
        "required": false,
        "description": ""
      },
      {
        "name": "color",
        "type": "string",
        "required": false,
        "description": ""
      },
      {
        "name": "category",
        "type": "string | null",
        "required": false,
        "description": ""
      },
      {
        "name": "statuses",
        "type": "array",
        "required": false,
        "description": ""
      }
    ]
  },
  {
    "name": "workloads_type_delete",
    "module": "workloads",
    "title": "Workload-Typ löschen (WRITE, admin)",
    "description": "Löscht einen Typ (nur wenn keine Events existieren). Nur bei aktiviertem Write-Modus.",
    "params": [
      {
        "name": "id",
        "type": "string",
        "required": true,
        "description": "Typ-ID"
      }
    ]
  },
  {
    "name": "workloads_types_reorder",
    "module": "workloads",
    "title": "Workload-Typen umsortieren (WRITE, admin)",
    "description": "Setzt die Reihenfolge der Typen. Nur bei aktiviertem Write-Modus.",
    "params": [
      {
        "name": "typeIds",
        "type": "array",
        "required": true,
        "description": "alle Typ-IDs in gewünschter Reihenfolge"
      }
    ]
  },
  {
    "name": "artifacts_list",
    "module": "artifacts",
    "title": "Artefakte auflisten",
    "description": "Liste der Artefakte (paginiert, Inhalt gekürzt als Vorschau).",
    "params": [
      {
        "name": "limit",
        "type": "integer",
        "required": false,
        "description": "max. Treffer (Default 20)"
      },
      {
        "name": "offset",
        "type": "integer",
        "required": false,
        "description": "Offset für Paginierung"
      }
    ]
  },
  {
    "name": "artifacts_get",
    "module": "artifacts",
    "title": "Artefakt lesen",
    "description": "Ein Artefakt mit vollem Inhalt über seine ID.",
    "params": [
      {
        "name": "id",
        "type": "string",
        "required": true,
        "description": "Artefakt-ID"
      }
    ]
  },
  {
    "name": "artifacts_versions",
    "module": "artifacts",
    "title": "Artefakt-Versionen",
    "description": "Alle Versionen eines Artefakts.",
    "params": [
      {
        "name": "id",
        "type": "string",
        "required": true,
        "description": "Artefakt-ID"
      }
    ]
  },
  {
    "name": "artifacts_get_version",
    "module": "artifacts",
    "title": "Artefakt-Version lesen",
    "description": "Snapshot einer bestimmten Version eines Artefakts.",
    "params": [
      {
        "name": "id",
        "type": "string",
        "required": true,
        "description": "Artefakt-ID"
      },
      {
        "name": "version",
        "type": "integer",
        "required": true,
        "description": "Versionsnummer"
      }
    ]
  },
  {
    "name": "artifacts_create",
    "module": "artifacts",
    "title": "Artefakt anlegen (WRITE)",
    "description": "Legt ein Artefakt an. Braucht content ODER link. Nur wirksam bei aktiviertem Write-Modus (ELUNA_ALLOW_WRITES).",
    "params": [
      {
        "name": "name",
        "type": "string",
        "required": true,
        "description": "Anzeigename (Pflicht)"
      },
      {
        "name": "content",
        "type": "string",
        "required": false,
        "description": "Inhalt (content ODER link Pflicht)"
      },
      {
        "name": "link",
        "type": "string",
        "required": false,
        "description": "externe URL statt Inhalt"
      },
      {
        "name": "contentType",
        "type": "string",
        "required": false,
        "description": "MIME-Klasse des Inhalts"
      },
      {
        "name": "fileName",
        "type": "string",
        "required": false,
        "description": ""
      },
      {
        "name": "metadata",
        "type": "object",
        "required": false,
        "description": "beliebige JSON-Metadaten"
      },
      {
        "name": "isPublic",
        "type": "boolean",
        "required": false,
        "description": "öffentlich zugänglich machen"
      }
    ]
  },
  {
    "name": "artifacts_update",
    "module": "artifacts",
    "title": "Artefakt aktualisieren (WRITE)",
    "description": "Teil-Update eines Artefakts. Nur bei aktiviertem Write-Modus.",
    "params": [
      {
        "name": "id",
        "type": "string",
        "required": true,
        "description": "Artefakt-ID"
      },
      {
        "name": "name",
        "type": "string",
        "required": false,
        "description": ""
      },
      {
        "name": "content",
        "type": "string",
        "required": false,
        "description": ""
      },
      {
        "name": "link",
        "type": "string",
        "required": false,
        "description": ""
      },
      {
        "name": "contentType",
        "type": "string",
        "required": false,
        "description": "MIME-Klasse des Inhalts"
      },
      {
        "name": "fileName",
        "type": "string",
        "required": false,
        "description": ""
      },
      {
        "name": "metadata",
        "type": "object",
        "required": false,
        "description": ""
      },
      {
        "name": "isPublic",
        "type": "boolean",
        "required": false,
        "description": ""
      }
    ]
  },
  {
    "name": "artifacts_restore_version",
    "module": "artifacts",
    "title": "Artefakt-Version wiederherstellen (WRITE)",
    "description": "Setzt eine frühere Version als aktuelle. Nur bei aktiviertem Write-Modus.",
    "params": [
      {
        "name": "id",
        "type": "string",
        "required": true,
        "description": "Artefakt-ID"
      },
      {
        "name": "version",
        "type": "integer",
        "required": true,
        "description": "wiederherzustellende Versionsnummer"
      }
    ]
  },
  {
    "name": "artifacts_delete",
    "module": "artifacts",
    "title": "Artefakt löschen (WRITE)",
    "description": "Löscht ein Artefakt endgültig. Nur bei aktiviertem Write-Modus.",
    "params": [
      {
        "name": "id",
        "type": "string",
        "required": true,
        "description": "Artefakt-ID"
      }
    ]
  },
  {
    "name": "automations_list",
    "module": "automations",
    "title": "Automationen auflisten",
    "description": "Alle Automationen des Tenants. Ohne Parameter.",
    "params": []
  },
  {
    "name": "automations_get",
    "module": "automations",
    "title": "Automation lesen",
    "description": "Eine Automation über ihre UUID.",
    "params": [
      {
        "name": "id",
        "type": "string",
        "required": true,
        "description": "Automations-UUID"
      }
    ]
  },
  {
    "name": "automations_executions",
    "module": "automations",
    "title": "Automations-Historie",
    "description": "Ausführungshistorie einer Automation, neueste zuerst.",
    "params": [
      {
        "name": "id",
        "type": "string",
        "required": true,
        "description": "Automations-UUID"
      },
      {
        "name": "limit",
        "type": "integer",
        "required": false,
        "description": "Default 20"
      }
    ]
  },
  {
    "name": "automations_create",
    "module": "automations",
    "title": "Automation anlegen (WRITE)",
    "description": "Legt eine Automation an (Status wird auf active gesetzt). name+query Pflicht. Nur bei aktiviertem Write-Modus.",
    "params": [
      {
        "name": "name",
        "type": "string",
        "required": true,
        "description": "Name (Pflicht)"
      },
      {
        "name": "query",
        "type": "string",
        "required": true,
        "description": "Anweisung/Regel (Pflicht)"
      },
      {
        "name": "status",
        "type": "string",
        "required": false,
        "description": ""
      },
      {
        "name": "type",
        "type": "string",
        "required": false,
        "description": ""
      },
      {
        "name": "category",
        "type": "string",
        "required": false,
        "description": ""
      },
      {
        "name": "system",
        "type": "string",
        "required": false,
        "description": ""
      },
      {
        "name": "metadata",
        "type": "object",
        "required": false,
        "description": ""
      },
      {
        "name": "connectionRefs",
        "type": "array",
        "required": false,
        "description": ""
      },
      {
        "name": "scope",
        "type": "object",
        "required": false,
        "description": ""
      },
      {
        "name": "schedule",
        "type": "object",
        "required": false,
        "description": ""
      },
      {
        "name": "callbackUrl",
        "type": "string",
        "required": false,
        "description": ""
      },
      {
        "name": "isEnabled",
        "type": "boolean",
        "required": false,
        "description": ""
      },
      {
        "name": "lockPlanAfterFirstApproval",
        "type": "boolean",
        "required": false,
        "description": ""
      }
    ]
  },
  {
    "name": "automations_update",
    "module": "automations",
    "title": "Automation aktualisieren (WRITE)",
    "description": "Teil-Update einer Automation. Nur bei aktiviertem Write-Modus.",
    "params": [
      {
        "name": "id",
        "type": "string",
        "required": true,
        "description": "Automations-UUID"
      },
      {
        "name": "name",
        "type": "string",
        "required": false,
        "description": ""
      },
      {
        "name": "query",
        "type": "string",
        "required": false,
        "description": "die Automations-Anweisung/Regel"
      },
      {
        "name": "status",
        "type": "string",
        "required": false,
        "description": ""
      },
      {
        "name": "type",
        "type": "string",
        "required": false,
        "description": ""
      },
      {
        "name": "category",
        "type": "string",
        "required": false,
        "description": ""
      },
      {
        "name": "system",
        "type": "string",
        "required": false,
        "description": ""
      },
      {
        "name": "metadata",
        "type": "object",
        "required": false,
        "description": ""
      },
      {
        "name": "connectionRefs",
        "type": "array",
        "required": false,
        "description": ""
      },
      {
        "name": "scope",
        "type": "object",
        "required": false,
        "description": ""
      },
      {
        "name": "schedule",
        "type": "object",
        "required": false,
        "description": ""
      },
      {
        "name": "callbackUrl",
        "type": "string",
        "required": false,
        "description": ""
      },
      {
        "name": "isEnabled",
        "type": "boolean",
        "required": false,
        "description": ""
      },
      {
        "name": "lockPlanAfterFirstApproval",
        "type": "boolean",
        "required": false,
        "description": ""
      }
    ]
  },
  {
    "name": "automations_delete",
    "module": "automations",
    "title": "Automation löschen (WRITE)",
    "description": "Löscht eine Automation. Nur bei aktiviertem Write-Modus.",
    "params": [
      {
        "name": "id",
        "type": "string",
        "required": true,
        "description": "Automations-UUID"
      }
    ]
  },
  {
    "name": "automations_trigger",
    "module": "automations",
    "title": "Automation auslösen (WRITE)",
    "description": "Startet eine custom_rule-Automation asynchron (400 wenn nicht custom_rule oder deaktiviert). Nur bei aktiviertem Write-Modus.",
    "params": [
      {
        "name": "id",
        "type": "string",
        "required": true,
        "description": "Automations-UUID"
      }
    ]
  },
  {
    "name": "elunaapp_list_bereiche",
    "module": "elunaapp",
    "title": "Bereiche auflisten",
    "description": "Bereiche des Tenants (id, name, modus). Ohne Parameter.",
    "params": []
  },
  {
    "name": "elunaapp_list_automations",
    "module": "elunaapp",
    "title": "Automationen eines Bereichs",
    "description": "Automationen, die an einen Bereich gebunden sind.",
    "params": [
      {
        "name": "bereichId",
        "type": "string",
        "required": true,
        "description": "Bereichs-ID (Pflicht)"
      },
      {
        "name": "detail",
        "type": "boolean",
        "required": false,
        "description": ""
      }
    ]
  },
  {
    "name": "elunaapp_get_automation",
    "module": "elunaapp",
    "title": "Automation lesen",
    "description": "Eine Automation inkl. instruction, prePromptSnapshot, lastRun.",
    "params": [
      {
        "name": "id",
        "type": "string",
        "required": true,
        "description": "Automations-ID"
      }
    ]
  },
  {
    "name": "elunaapp_automation_runs",
    "module": "elunaapp",
    "title": "Automations-Runs",
    "description": "Tatsächliche Läufe (Traces) mit Status, artifactUrl, Verbrauch.",
    "params": [
      {
        "name": "id",
        "type": "string",
        "required": true,
        "description": "Automations-ID"
      },
      {
        "name": "limit",
        "type": "integer",
        "required": false,
        "description": ""
      },
      {
        "name": "offset",
        "type": "integer",
        "required": false,
        "description": ""
      }
    ]
  },
  {
    "name": "elunaapp_automation_run",
    "module": "elunaapp",
    "title": "Automations-Run-Detail",
    "description": "Ein einzelner Lauf: output, events, Live-Verbrauch.",
    "params": [
      {
        "name": "id",
        "type": "string",
        "required": true,
        "description": "Automations-ID"
      },
      {
        "name": "traceId",
        "type": "string",
        "required": true,
        "description": "Trace-/Run-ID"
      }
    ]
  },
  {
    "name": "elunaapp_automation_sops",
    "module": "elunaapp",
    "title": "SOPs einer Automation",
    "description": "SOPs, die eine Automation nutzt (Volltext, bereich vs. company).",
    "params": [
      {
        "name": "id",
        "type": "string",
        "required": true,
        "description": "Automations-ID"
      }
    ]
  },
  {
    "name": "elunaapp_list_sops",
    "module": "elunaapp",
    "title": "SOPs auflisten (kompakt)",
    "description": "SOPs des Tenants, kompakt (ohne Volltext).",
    "params": [
      {
        "name": "bereichId",
        "type": "string",
        "required": false,
        "description": "optional auf einen Bereich einschränken"
      }
    ]
  },
  {
    "name": "elunaapp_get_sop",
    "module": "elunaapp",
    "title": "SOP lesen",
    "description": "Eine SOP mit Volltext.",
    "params": [
      {
        "name": "id",
        "type": "string",
        "required": true,
        "description": "SOP-ID"
      }
    ]
  },
  {
    "name": "elunaapp_create_bereich",
    "module": "elunaapp",
    "title": "Bereich anlegen (WRITE)",
    "description": "Legt einen Bereich für den Tenant an. Nur bei aktiviertem Write-Modus.",
    "params": [
      {
        "name": "name",
        "type": "string",
        "required": true,
        "description": "Name (Pflicht)"
      },
      {
        "name": "modus",
        "type": "string",
        "required": false,
        "description": "simulation/supervised/production/live"
      }
    ]
  },
  {
    "name": "elunaapp_create_automation",
    "module": "elunaapp",
    "title": "Automation anlegen (WRITE)",
    "description": "Erzeugt aus einer NL-Anweisung eine fertige, aktivierte Automation. Nur bei aktiviertem Write-Modus.",
    "params": [
      {
        "name": "bereichId",
        "type": "string",
        "required": true,
        "description": "Bereichs-ID (Pflicht)"
      },
      {
        "name": "instruction",
        "type": "string",
        "required": true,
        "description": "natürlichsprachige Anweisung (Pflicht)"
      },
      {
        "name": "cron",
        "type": "string",
        "required": false,
        "description": "optionaler Zeitplan"
      }
    ]
  },
  {
    "name": "elunaapp_update_automation",
    "module": "elunaapp",
    "title": "Automation aktualisieren (WRITE)",
    "description": "Ändert instruction/Zeitplan/aktiviert. Mindestens ein Feld. Nur bei aktiviertem Write-Modus.",
    "params": [
      {
        "name": "id",
        "type": "string",
        "required": true,
        "description": "Automations-ID"
      },
      {
        "name": "instruction",
        "type": "string",
        "required": false,
        "description": ""
      },
      {
        "name": "cron",
        "type": "string | null",
        "required": false,
        "description": "null = Zeitplan entfernen"
      },
      {
        "name": "isEnabled",
        "type": "boolean",
        "required": false,
        "description": ""
      }
    ]
  },
  {
    "name": "elunaapp_trigger_automation",
    "module": "elunaapp",
    "title": "Automation auslösen (WRITE)",
    "description": "Startet einen Automations-Lauf manuell (async). Nur bei aktiviertem Write-Modus.",
    "params": [
      {
        "name": "id",
        "type": "string",
        "required": true,
        "description": "Automations-ID"
      }
    ]
  },
  {
    "name": "elunaapp_optimize_automation",
    "module": "elunaapp",
    "title": "Automation optimieren (WRITE)",
    "description": "KI-optimiert die Automation und wendet SOP-Änderungen direkt an. Nur bei aktiviertem Write-Modus.",
    "params": [
      {
        "name": "id",
        "type": "string",
        "required": true,
        "description": "Automations-ID"
      },
      {
        "name": "instruction",
        "type": "string",
        "required": true,
        "description": "Optimierungs-Anweisung (Pflicht)"
      }
    ]
  },
  {
    "name": "elunaapp_create_sop",
    "module": "elunaapp",
    "title": "SOP anlegen (WRITE)",
    "description": "Legt eine SOP an, bindet sie an einen Bereich, rendert Pre-Prompts neu. Nur bei aktiviertem Write-Modus.",
    "params": [
      {
        "name": "bereichId",
        "type": "string",
        "required": true,
        "description": "Bereichs-ID (Pflicht)"
      },
      {
        "name": "name",
        "type": "string",
        "required": true,
        "description": "Name (Pflicht)"
      },
      {
        "name": "content",
        "type": "string",
        "required": true,
        "description": "Markdown-Inhalt (Pflicht)"
      },
      {
        "name": "summary",
        "type": "string",
        "required": false,
        "description": ""
      },
      {
        "name": "tags",
        "type": "array",
        "required": false,
        "description": ""
      }
    ]
  },
  {
    "name": "elunaapp_update_sop",
    "module": "elunaapp",
    "title": "SOP aktualisieren (WRITE)",
    "description": "Teil-Update einer SOP. Mindestens ein Feld. Nur bei aktiviertem Write-Modus.",
    "params": [
      {
        "name": "id",
        "type": "string",
        "required": true,
        "description": "SOP-ID"
      },
      {
        "name": "name",
        "type": "string",
        "required": false,
        "description": ""
      },
      {
        "name": "summary",
        "type": "string",
        "required": false,
        "description": ""
      },
      {
        "name": "content",
        "type": "string",
        "required": false,
        "description": ""
      },
      {
        "name": "tags",
        "type": "array",
        "required": false,
        "description": ""
      }
    ]
  },
  {
    "name": "middleware_request_logs",
    "module": "middleware",
    "title": "Request-Logs auflisten",
    "description": "Middleware-Request-Logs des Tenants (correlationId, query, response, tokenUsage, cost, botScore, feedback).",
    "params": [
      {
        "name": "from",
        "type": "string",
        "required": false,
        "description": "ISO-Start"
      },
      {
        "name": "to",
        "type": "string",
        "required": false,
        "description": "ISO-Ende"
      },
      {
        "name": "source",
        "type": "string",
        "required": false,
        "description": ""
      },
      {
        "name": "user",
        "type": "string",
        "required": false,
        "description": ""
      },
      {
        "name": "automation_id",
        "type": "string",
        "required": false,
        "description": ""
      },
      {
        "name": "context_id",
        "type": "string",
        "required": false,
        "description": ""
      },
      {
        "name": "limit",
        "type": "integer",
        "required": false,
        "description": "Default 100"
      },
      {
        "name": "offset",
        "type": "integer",
        "required": false,
        "description": ""
      }
    ]
  },
  {
    "name": "middleware_request_log_get",
    "module": "middleware",
    "title": "Request-Log-Detail",
    "description": "Volles Detail eines Laufs (Request, Response, Tokens, Cost, Quality/Feedback, Analyzer-Urteil).",
    "params": [
      {
        "name": "correlationId",
        "type": "string",
        "required": true,
        "description": "correlationId / traceId"
      }
    ]
  },
  {
    "name": "middleware_log_events",
    "module": "middleware",
    "title": "Lauf-Event-Stream",
    "description": "Rohe Callback-Events eines Laufs (OutboundCallbackEvents).",
    "params": [
      {
        "name": "correlationId",
        "type": "string",
        "required": true,
        "description": "correlationId / traceId"
      }
    ]
  },
  {
    "name": "middleware_agent_requests",
    "module": "middleware",
    "title": "Agent-Läufe auflisten",
    "description": "Lauf-Historie der Deep-Agent-Requests.",
    "params": [
      {
        "name": "since",
        "type": "string",
        "required": false,
        "description": ""
      },
      {
        "name": "until",
        "type": "string",
        "required": false,
        "description": ""
      },
      {
        "name": "source",
        "type": "string",
        "required": false,
        "description": ""
      },
      {
        "name": "agent_config_id",
        "type": "string",
        "required": false,
        "description": ""
      },
      {
        "name": "context_id",
        "type": "string",
        "required": false,
        "description": ""
      },
      {
        "name": "limit",
        "type": "integer",
        "required": false,
        "description": ""
      },
      {
        "name": "offset",
        "type": "integer",
        "required": false,
        "description": ""
      }
    ]
  },
  {
    "name": "middleware_agent_feedback",
    "module": "middleware",
    "title": "Feedback-/Low-Score-Läufe",
    "description": "Läufe mit niedrigem Score / Feedback zur Qualitätsprüfung.",
    "params": [
      {
        "name": "max_score",
        "type": "number",
        "required": false,
        "description": ""
      },
      {
        "name": "since",
        "type": "string",
        "required": false,
        "description": ""
      },
      {
        "name": "until",
        "type": "string",
        "required": false,
        "description": ""
      },
      {
        "name": "context_id",
        "type": "string",
        "required": false,
        "description": ""
      },
      {
        "name": "limit",
        "type": "integer",
        "required": false,
        "description": ""
      },
      {
        "name": "offset",
        "type": "integer",
        "required": false,
        "description": ""
      }
    ]
  },
  {
    "name": "middleware_agents",
    "module": "middleware",
    "title": "Deep-Agents auflisten",
    "description": "Für den Tenant sichtbare, konfigurierte Deep-Agents. Ohne Parameter.",
    "params": []
  },
  {
    "name": "middleware_usage_summary",
    "module": "middleware",
    "title": "Usage-Summary",
    "description": "Usage/Cost-Zusammenfassung mit Pricing + Modell-Mix.",
    "params": [
      {
        "name": "range",
        "type": "string",
        "required": false,
        "description": ""
      },
      {
        "name": "from",
        "type": "string",
        "required": false,
        "description": ""
      },
      {
        "name": "to",
        "type": "string",
        "required": false,
        "description": ""
      }
    ]
  },
  {
    "name": "middleware_usage_daily",
    "module": "middleware",
    "title": "Usage täglich",
    "description": "Tägliche Usage/Cost-Zeitreihe.",
    "params": [
      {
        "name": "range",
        "type": "string",
        "required": false,
        "description": ""
      },
      {
        "name": "from",
        "type": "string",
        "required": false,
        "description": ""
      },
      {
        "name": "to",
        "type": "string",
        "required": false,
        "description": ""
      }
    ]
  },
  {
    "name": "middleware_usage_by_source",
    "module": "middleware",
    "title": "Usage nach Kanal",
    "description": "Usage gruppiert nach Kanal/Quelle.",
    "params": [
      {
        "name": "range",
        "type": "string",
        "required": false,
        "description": ""
      },
      {
        "name": "from",
        "type": "string",
        "required": false,
        "description": ""
      },
      {
        "name": "to",
        "type": "string",
        "required": false,
        "description": ""
      }
    ]
  },
  {
    "name": "middleware_usage_by_agent",
    "module": "middleware",
    "title": "Usage nach Agent",
    "description": "Usage gruppiert nach Agent-Konfiguration.",
    "params": [
      {
        "name": "range",
        "type": "string",
        "required": false,
        "description": ""
      },
      {
        "name": "from",
        "type": "string",
        "required": false,
        "description": ""
      },
      {
        "name": "to",
        "type": "string",
        "required": false,
        "description": ""
      }
    ]
  },
  {
    "name": "middleware_pricing_settings",
    "module": "middleware",
    "title": "Pricing-Settings",
    "description": "Aktuelle Pricing-Einstellungen (Raten, USD→EUR, Billing). Ohne Parameter.",
    "params": []
  }
]