Zum Hauptinhalt springen

Fähigkeitsverträge

Dieses Inventar wird von scripts/test-capability-contracts.mjs durchgesetzt. Eine Anbieterfähigkeit ist erst vollständig, wenn Schema und Katalogzuordnung, ausführbarer Handler, passender Browserclient, benannte Oberflächenaktion, Dokumentation, fokussierter Verhaltenstest und gebündelte Definitionen übereinstimmen.

FähigkeitPlugin-TypenAusführbare RouteBrowserclientOberflächenaktionDokumentationFokussierte VerhaltenstestsGebündelte Definitionen
Chat / Vervollständigungchat, completionWS /ws (chat_stream)frontend/src/hooks/useChat.tsfrontend/src/pages/ChatPage.tsxhandleSendMessagedocs/08-PLUGIN_ARCHITECTURE.mdscripts/test-chat-provider-selection.mjs (test:package) — die exakte Plugin-Weiterleitung erreicht den gewählten Anbieter bei regulären und Streaming-Anfragenanthropic, codex-oauth, gemini, github, groq, huggingface, kimi-code, llama-cpp, mistral, mlx-lm, openai, openrouter
EinbettungenembeddingPOST /api/ollama/embed
GET /api/embeddings/models (nur Ermittlung)
frontend/src/utils/api/modelApi.tsfrontend/src/components/ModelManager.tsxhandleGenerateEmbeddingsdocs/09-RAG_FEATURE.mdscripts/test-plugin-capability-routing.mjs (test:package) — Hugging Face-Fähigkeiten umgehen den allgemeinen Chat-Endpunkt und verwenden aufgabenspezifische Nutzdatenhuggingface
BilderzeugungimagePOST /api/image-gen/generatefrontend/src/utils/api/imageGenApi.tsfrontend/src/components/ImageGenerationPanel.tsxhandleGeneratedocs/38-MEDIA_GENERATION.mdscripts/test-image-generation-routing.mjs (test:package) — die Bilderzeugung nutzt den ausgewählten Anbieter und benutzerspezifische OpenAI-Einstellungencomfyui, huggingface, openai, openrouter
Sprache zu TextsttPOST /api/stt/transcribefrontend/src/utils/api/sttApi.tsfrontend/src/hooks/useDictation.tstoggledocs/42-SPEECH_TO_TEXT.mdscripts/test-stt-routing.mjs (test:package) — STT sendet eine OpenAI-kompatible Multipart-Anfrage an die gewählte Route
frontend/e2e/stt.spec.ts (test:e2e) — die Spracheingabe weist ihre Route aus und transkribiert aufgezeichnetes Audio
huggingface, openai
Text zu SprachettsPOST /api/tts/generatefrontend/src/utils/api/ttsApi.tsfrontend/src/components/TTSButton.tsxhandlePlaydocs/38-MEDIA_GENERATION.mdscripts/test-tts-routing.mjs (test:package) — TTS leitet einen gemeinsamen Modellalias durch das gewählte Plugin und Benutzerventil
frontend/e2e/tts-playback.spec.ts (test:e2e) — die stapelweise Wiedergabe nutzt für jeden Stapel die gespeicherte Stimme
elevenlabs, huggingface, kyutai-tts-1.6b, kyutai-tts, longcat-audiodit, openai-tts, openai, openrouter, qwen-tts
AudioerzeugungaudioPOST /api/media/sound/generatefrontend/src/utils/api/mediaApi.tsfrontend/src/components/MediaGenerationPanel.tsxhandleGeneratedocs/38-MEDIA_GENERATION.mdscripts/test-openrouter-media-routing.mjs (test:package) — OpenRouter-Audioausgabemodelle streamen erzeugte Klangbytesopenrouter
VideoerzeugungvideoPOST /api/media/video/generate
POST /api/media/video/jobs/:jobId/resume
frontend/src/utils/api/mediaApi.ts
frontend/src/utils/api/mediaApi.ts
frontend/src/components/MediaGenerationPanel.tsxhandleGeneratedocs/38-MEDIA_GENERATION.mdscripts/test-openrouter-media-routing.mjs (test:package) — die Videoerzeugung sendet, fragt ab und lädt über den Anbieterendpunkt herunter
scripts/test-openrouter-media-routing.mjs (test:package) — vorbereitete Videos und Fortsetzungen behandeln verlorene Bestätigungen
openrouter

Durchsetzung

Die Paketprüfung verwirft nicht deklarierte Schemas oder Plugin-Typen, veraltete Katalogzuordnungen, als Ausführung dargestellte Ermittlungsrouten, Handler ohne passenden Browsertransport, Oberflächenaktionen ohne Aufruf und sichtbaren Auslöser, Dokumentation ohne fähigkeitsspezifische Aussagen, Tests ohne Verhalten im genannten Fall, veraltete Inventare sowie ungültige Endpunkte, Modellkarten oder Standardwerte.

Einbettungen werden über POST /api/ollama/embed erzeugt und können an ein gewähltes Einbettungs-Plugin geleitet werden. GET /api/embeddings/models listet Modelle auf; die Prüfung erfasst ihn nur als Ermittlungsroute und akzeptiert ihn nie als Nachweis für funktionierende Erzeugung.

Der Quellvertrag benennt jeden fokussierten Test und seinen Runner. Backend-Skripte müssen in test:package registriert und Frontend-Spezifikationen vom Playwright-basierten test:e2e auffindbar sein. Live-Ermittlung kann einen Katalog einschränken, schafft aber keine neue ausführbare Fähigkeit.