{"openapi":"3.1.0","info":{"title":"Kudora API","version":"1.0.0"},"paths":{"/gesund":{"get":{"summary":"Gesund","operationId":"gesund_gesund_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/":{"get":{"summary":"Startseite","description":"Zwei Gesichter unter derselben Adresse — im Zweifel die Website.\n\nDie **Erweiterung** fragt diese Adresse für ihren Health-Check ab und\nerwartet JSON; daran hängt die Anzeige „Bereit\"/„Offline\"\n(`extension/background.js`). Sie schickt dabei immer ihren eigenen Kopf\n`X-Kudora-Token` — daran ist sie erkennbar.\n\n**Alle anderen bekommen die Website.** Früher entschied der Accept-Kopf, und\ndas ging still daneben: Wer kein `text/html` mitschickte — Prüfwerkzeuge,\nLinkvorschauen in Messengern, einfache Crawler — bekam JSON statt der Seite.\nDer eRecht24-Scanner meldete deshalb, Impressum und Datenschutzerklärung\nseien nicht auffindbar, obwohl beide Seiten einwandfrei antworten: Er kam nie\nbis zum Fußbereich, in dem die Links stehen.\n\nUnter dieser Adresse steht eine Website, kein Dienst. Die Vorgabe gehört\ndeshalb auf die Website, und die Maschinen-Antwort ist die Ausnahme.\n\nRestrisiko: Eine sehr alte Fassung der Erweiterung ohne Token in `config.js`\nbekäme HTML und zeigte „Offline\". Sie funktionierte weiter, nur die Anzeige\nwäre falsch. Alle ausgelieferten Fassungen setzen den Token.","operationId":"startseite__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/robots.txt":{"get":{"summary":"Robots","description":"Erlaubt alles Öffentliche und weist auf die Sitemap hin.\n\n`/api/` bleibt ausgenommen: Das sind Schnittstellen für die Erweiterung,\nkeine Seiten zum Lesen. Ein Ausschluss hier ist kein Schutz — dafür sorgt\ndas Token —, er hält nur Suchmaschinen von sinnlosen Aufrufen ab.","operationId":"robots_robots_txt_get","responses":{"200":{"description":"Successful Response","content":{"text/plain":{"schema":{"type":"string"}}}}}}},"/sitemap.xml":{"get":{"summary":"Sitemap","description":"Die Liste der öffentlichen Seiten.\n\nBewusst von Hand gepflegt statt automatisch erzeugt: Es sind vier Adressen,\nund automatisch erzeugt stünden schnell auch Schnittstellen darin.","operationId":"sitemap_sitemap_xml_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/datenschutz":{"get":{"summary":"Datenschutz","description":"Die Datenschutzerklärung — Pflicht-Adresse für den Chrome Web Store.","operationId":"datenschutz_datenschutz_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/impressum":{"get":{"summary":"Impressum","description":"Das Impressum — nach § 5 DDG Pflicht für geschäftsmäßige digitale Dienste.","operationId":"impressum_impressum_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/agb":{"get":{"summary":"Agb","description":"Die Nutzungsbedingungen — beim ersten Start der Erweiterung zu bestätigen.","operationId":"agb_agb_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/ratgeber/{name}":{"get":{"summary":"Ratgeber","description":"Eine Ratgeberseite — fuer Menschen, die eine Frage googeln.","operationId":"ratgeber_ratgeber__name__get","parameters":[{"name":"name","in":"path","required":true,"schema":{"type":"string","title":"Name"}}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/gedaechtnis":{"get":{"summary":"Gedaechtnis","description":"Zeigt, wie es um Kudoras Gedächtnis steht — im Browser aufrufbar.\n\nWichtig, weil der Rückfall auf die Datei absichtlich STILL ist (beim Antworten\ndarf nie ein Fehler erscheinen). Ohne diese Anzeige würde ein falscher\nSchlüssel unbemerkt dazu führen, dass nichts dauerhaft gespeichert wird.\n\nGibt bewusst KEINE Geheimnisse zurück — nur Wahrheitswerte, die Anzahl der\ngelernten Antworten und ggf. die Fehlermeldung der Datenbank.","operationId":"gedaechtnis_api_gedaechtnis_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Gedaechtnis Api Gedaechtnis Get"}}}}}}},"/api/antwort":{"post":{"summary":"Antwort","description":"Erzeugt einen Antwort-Entwurf für eine Bewertung (nutzt Stil-Lernen).","operationId":"antwort_api_antwort_post","parameters":[{"name":"x-kudora-token","in":"header","required":false,"schema":{"type":"string","default":"","title":"X-Kudora-Token"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AntwortAnfrage"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Antwort Api Antwort Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/freigabe":{"post":{"summary":"Freigabe","description":"Speichert eine freigegebene Antwort -> Agent lernt den Stil fürs nächste Mal.","operationId":"freigabe_api_freigabe_post","parameters":[{"name":"x-kudora-token","in":"header","required":false,"schema":{"type":"string","default":"","title":"X-Kudora-Token"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FreigabeAnfrage"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Freigabe Api Freigabe Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"AntwortAnfrage":{"properties":{"original":{"type":"string","maxLength":4000,"title":"Original","description":"Der Bewertungstext des Gastes."},"sterne":{"type":"integer","maximum":5.0,"minimum":1.0,"title":"Sterne","description":"Sternzahl 1-5.","default":5},"betrieb":{"type":"string","maxLength":200,"title":"Betrieb","description":"Optionaler Name des Betriebs.","default":""}},"type":"object","required":["original"],"title":"AntwortAnfrage"},"FreigabeAnfrage":{"properties":{"original":{"type":"string","maxLength":4000,"title":"Original"},"sterne":{"type":"integer","maximum":5.0,"minimum":1.0,"title":"Sterne","default":5},"betrieb":{"type":"string","maxLength":200,"title":"Betrieb","default":""},"entwurf":{"type":"string","maxLength":4000,"title":"Entwurf","description":"Der ursprüngliche KI-Entwurf.","default":""},"finale_antwort":{"type":"string","maxLength":4000,"title":"Finale Antwort","description":"Die tatsächlich veröffentlichte Antwort."}},"type":"object","required":["original","finale_antwort"],"title":"FreigabeAnfrage"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}}}