Képességszerződések
Ezt a leltárt a scripts/test-capability-contracts.mjs érvényesíti. Egy szolgáltatói képesség addig nem teljes, amíg a séma és katalógusleképezés, a végrehajtható handler, a hozzá tartozó böngészőkliens, a megnevezett felületművelet, a dokumentáció, a célzott viselkedési teszt és a mellékelt manifestek nem egyeznek.
| Képesség | Bővítménytípusok | Végrehajtható útvonal | Böngészőkliens | Felületművelet | Dokumentáció | Célzott viselkedési tesztek | Mellékelt definíciók |
|---|---|---|---|---|---|---|---|
| Csevegés / kiegészítés | chat, completion | WS /ws (chat_stream) | frontend/src/hooks/useChat.ts | frontend/src/pages/ChatPage.tsx — handleSendMessage | docs/08-PLUGIN_ARCHITECTURE.md | scripts/test-chat-provider-selection.mjs (test:package) — a pontos bővítményútválasztás eléri a kiválasztott szolgáltatót normál és streamelt kéréseknél | anthropic, codex-oauth, gemini, github, groq, huggingface, kimi-code, llama-cpp, mistral, mlx-lm, openai, openrouter |
| Embeddingek | embedding | POST /api/ollama/embedGET /api/embeddings/models (csak felderítés) | frontend/src/utils/api/modelApi.ts | frontend/src/components/ModelManager.tsx — handleGenerateEmbeddings | docs/09-RAG_FEATURE.md | scripts/test-plugin-capability-routing.mjs (test:package) — a Hugging Face képességei figyelmen kívül hagyják az általános Chat endpointot, és feladat-adattartalmat használnak | huggingface |
| Képgenerálás | image | POST /api/image-gen/generate | frontend/src/utils/api/imageGenApi.ts | frontend/src/components/ImageGenerationPanel.tsx — handleGenerate | docs/38-MEDIA_GENERATION.md | scripts/test-image-generation-routing.mjs (test:package) — a képgenerálás a kiválasztott szolgáltatót és a felhasználóhoz kötött OpenAI-beállításokat használja | comfyui, huggingface, openai, openrouter |
| Beszédből szöveg | stt | POST /api/stt/transcribe | frontend/src/utils/api/sttApi.ts | frontend/src/hooks/useDictation.ts — toggle | docs/42-SPEECH_TO_TEXT.md | scripts/test-stt-routing.mjs (test:package) — az STT OpenAI-kompatibilis multipart kérést küld a kijelölt útvonalrafrontend/e2e/stt.spec.ts (test:e2e) — a szolgáltatói beszédbevitel felfedi útvonalát és átírja a rögzített hangot | huggingface, openai |
| Szövegből beszéd | tts | POST /api/tts/generate | frontend/src/utils/api/ttsApi.ts | frontend/src/components/TTSButton.tsx — handlePlay | docs/38-MEDIA_GENERATION.md | scripts/test-tts-routing.mjs (test:package) — a TTS megosztott modellálnevet irányít a kijelölt bővítményen és felhasználói szelepen átfrontend/e2e/tts-playback.spec.ts (test:e2e) — a kötegelt felolvasás minden kötegnél újrahasználja a mentett hangot | elevenlabs, huggingface, kyutai-tts-1.6b, kyutai-tts, longcat-audiodit, openai-tts, openai, openrouter, qwen-tts |
| Hanggenerálás | audio | POST /api/media/sound/generate | frontend/src/utils/api/mediaApi.ts | frontend/src/components/MediaGenerationPanel.tsx — handleGenerate | docs/38-MEDIA_GENERATION.md | scripts/test-openrouter-media-routing.mjs (test:package) — az OpenRouter hangkimeneti modelljei streamelik a létrehozott hang bájtjait | openrouter |
| Videógenerálás | video | POST /api/media/video/generatePOST /api/media/video/jobs/:jobId/resume | frontend/src/utils/api/mediaApi.tsfrontend/src/utils/api/mediaApi.ts | frontend/src/components/MediaGenerationPanel.tsx — handleGenerate | docs/38-MEDIA_GENERATION.md | scripts/test-openrouter-media-routing.mjs (test:package) — a videógenerálás a szolgáltatói endpointon keresztül küld, lekérdez és tölt lescripts/test-openrouter-media-routing.mjs (test:package) — az előkészített videó- és folytatásközlések feloldják az elveszett commit-visszaigazolásokat | openrouter |
Érvényesítés
A csomagkapu elutasítja a nem deklarált séma- vagy bővítménytípusokat, az elavult katalógusleképezéseket, a végrehajtásként megjelenített csak felderítési útvonalakat, a megfelelő böngészőátvitel nélküli handlereket, a meghívás és látható indító nélküli felületműveleteket, a képességspecifikus állítás nélküli dokumentációt, a megnevezett teszteseten belüli viselkedés nélküli teszteket, az elavult generált leltárt, valamint az érvénytelen manifest endpointokat, modellleképezéseket és alapértékeket.
Az embeddinggenerálás a POST /api/ollama/embed útvonalon fut, és egy kiválasztott embeddingbővítményhez irányítható. A GET /api/embeddings/models felsorolja a modelleket; a kapu csak felderítésként rögzíti, és soha nem fogadja el az embeddinggenerálás működésének bizonyítékaként.
A forrásszerződés azonosít minden célzott viselkedési tesztet és annak futtatóját. A backend szkriptjeit a test:package elemben kell regisztrálni; a frontend specifikációit a Playwright-alapú test:e2e szkriptnek fel kell tudnia deríteni. Az élő felderítés szűkítheti a modellkatalógust, de nem hoz létre új végrehajtható képességet.