{
  "name": "Arenio Ideation Arena",
  "description": "Zwei mandatierte Stellvertreter-Agenten entwickeln aus dem jeweils freigegebenen Wissen ihrer Auftraggeber ein gemeinsames Konzept (Kooperation, Produktidee, Konsortium) — oder melden begründet, dass keine tragfähige Schnittmenge existiert. Als vertraulich markiertes Wissen (only_me) nutzt ein Agent zum Entscheiden, gibt es aber nicht heraus; drei Gates prüfen jeden ausgehenden Beitrag. Das Ergebnis geht an Menschen zur Freigabe. Rufe diesen Agenten, wenn du im Auftrag einer Partei ausloten sollst, ob mit einer zweiten Partei eine gemeinsame Sache trägt, ohne vertrauliches Wissen offenzulegen.",
  "version": "0.4.0",
  "protocolVersion": "1.0",
  "provider": {
    "organization": "fmhconsulting (Finn Malte Hinrichsen)",
    "url": "https://arenio.de/"
  },
  "documentationUrl": "https://arenio.de/agents.md",
  "iconUrl": "https://arenio.de/favicon.svg",
  "supportedInterfaces": [
    {
      "url": "https://half-work.com/api/sparring",
      "protocolBinding": "HTTP+JSON",
      "protocolVersion": "1.0",
      "openapiUrl": "https://half-work.com/api/sparring/openapi.json"
    }
  ],
  "capabilities": {
    "streaming": false,
    "pushNotifications": false,
    "stateTransitionHistory": false
  },
  "defaultInputModes": [
    "application/json"
  ],
  "defaultOutputModes": [
    "application/json"
  ],
  "securitySchemes": {
    "sessionToken": {
      "type": "apiKey",
      "in": "query",
      "name": "t",
      "description": "Pro Partei ein Capability-Token aus POST /create. Sicherheitshinweis: Token steht heute im Query-String; Ablösung durch kurzlebige Bearer-Credentials ist geplant."
    }
  },
  "security": [
    {
      "sessionToken": []
    }
  ],
  "skills": [
    {
      "id": "joint-concept-development",
      "name": "Gemeinsames Konzept entwickeln",
      "description": "Startet eine Ideen-Session zwischen genau zwei Parteien. Jede Partei hinterlegt eine Wissensbasis aus Einträgen (category: background|resources|goals|constraints; visibility: shareable|only_me). Nach beidseitigem 'ready' entwickeln die Agenten über bis zu drei Runden Beiträge, ein Moderator synthetisiert daraus ein Konzept mit gemeinsame_sache, was_A_bringt, was_B_bringt, struktur und offene_punkte — oder status 'no_zopa' mit kollidierenden Dimensionen. Ergebnis erst nach menschlicher Freigabe verbindlich. Ein laufender Lauf kann jederzeit mit POST /stop abgebrochen werden; danach ist ein neuer Lauf moeglich.",
      "tags": [
        "ideation",
        "co-creation",
        "partnership",
        "confidentiality",
        "two-party",
        "german"
      ],
      "examples": [
        "Handelskette (40 Filialen, sucht Sensorik-Partner) und Sensorik-Anbieter loten einen gemeinsamen Filial-Piloten aus, ohne dass laufende Patentanmeldungen offengelegt werden.",
        "Zwei Mittelständler prüfen ein Konsortium für eine Ausschreibung, bevor ein NDA aufgesetzt wird."
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    }
  ],
  "additionalInterfaces": [],
  "x-arenio": {
    "status": "beta",
    "humanApprovalRequired": true,
    "maxParties": 2,
    "maxRounds": 3,
    "maxEntriesPerParty": 20,
    "confidentialityModel": {
      "shareable": "darf in Beiträgen verwendet werden, muss per source_entry_id belegt sein",
      "only_me": "nur zum Entscheiden; wird durch drei Gates am Verlassen gehindert"
    },
    "rateLimits": {
      "create": "3/h/IP",
      "run": "5/h/IP",
      "kb": "30/h/IP",
      "ready": "30/h/IP",
      "session": "120/h/IP",
      "claim": "20/h",
      "rotate": "10/h"
    },
    "sessionStates": [
      "draft",
      "ready",
      "running",
      "stopping",
      "stopped",
      "done",
      "error"
    ],
    "recommendedPollIntervalSeconds": 5,
    "knownLimitations": [
      "POST /create liefert zwei UI-Links; Tokens muessen aus dem Query-Parameter t extrahiert werden.",
      "Genau zwei Parteien je Session; mehr sind nicht implementiert.",
      "Kein Webhook — Zustand wird gepollt (empfohlen: alle 5 Sekunden)."
    ],
    "contact": "kontakt@arenio.de",
    "resultSchemaVersion": "arenio.result/1",
    "killSwitch": {
      "endpoint": "POST /api/sparring/stop",
      "idempotent": true,
      "effect": "Autorisiert keine weiteren Modellaufrufe; Session geht nach stopping/stopped, kein Ergebnis.",
      "restartable": true
    },
    "costCeiling": {
      "maxModelCallsPerRun": 15,
      "derivation": "MAX_ROUNDS(3) x 2 Parteien x (Beitrag + semantisches Gate) + Moderator-Synthese + Synthese-Leak-Check je Partei",
      "note": "Obergrenze, nicht Mittelwert. Laeufe ohne vertrauliche Eintraege brauchen weniger, weil die Gates dann uebersprungen werden."
    },
    "openapiUrl": "https://half-work.com/api/sparring/openapi.json",
    "errorSchemaVersion": "arenio.error/1",
    "tokenModel": {
      "type": "bearer-link",
      "note": "Ein Partei-Link ist ein Schluessel ohne Identitaet: wer ihn besitzt, hat Zugriff. Arenio kann nicht pruefen, WER ihn vorlegt.",
      "inviteFlow": "POST /api/sparring/create liefert link_a und eine Einmal-Einladung invite_b. POST /api/sparring/claim loest sie ein — genau einmal, durchgesetzt ueber einen Unique-Index. Optionaler Schluessel k macht einen Wiederholungsversuch nach abgerissener Antwort sicher.",
      "rotateEndpoint": "POST /api/sparring/rotate",
      "rotateAdvice": "Unmittelbar nach /claim aufrufen, BEVOR vertrauliche Eintraege hinterlegt werden: entwertet jede vorhandene Kopie des Links."
    },
    "errorHandling": {
      "stableCodeField": "detail.code",
      "retryAfterField": "detail.retry_after_s",
      "note": "Folgeaktion aus dem Code ableiten, nie aus dem deutschen Freitext."
    }
  }
}