Перейти до основного вмісту

Контракти можливостей

Цей перелік перевіряє scripts/test-capability-contracts.mjs. Можливість провайдера не вважається завершеною, доки не узгоджено її схему й відповідність каталогу, виконуваний обробник, клієнт браузера, названу дію інтерфейсу, документацію, цільовий поведінковий тест і вбудовані маніфести.

МожливістьТипи плагінівВиконуваний маршрутКлієнт браузераДія інтерфейсуДокументаціяЦільові поведінкові тестиВбудовані визначення
Чат / доповненняchat, completionWS /ws (chat_stream)frontend/src/hooks/useChat.tsfrontend/src/pages/ChatPage.tsxhandleSendMessagedocs/08-PLUGIN_ARCHITECTURE.mdscripts/test-chat-provider-selection.mjs (test:package) — точний маршрут плагіна досягає вибраного провайдера для звичайних і потокових запитівanthropic, codex-oauth, gemini, github, groq, huggingface, kimi-code, llama-cpp, mistral, mlx-lm, openai, openrouter
Векторні поданняembeddingPOST /api/ollama/embed
GET /api/embeddings/models (лише виявлення)
frontend/src/utils/api/modelApi.tsfrontend/src/components/ModelManager.tsxhandleGenerateEmbeddingsdocs/09-RAG_FEATURE.mdscripts/test-plugin-capability-routing.mjs (test:package) — можливості Hugging Face ігнорують загальну кінцеву точку Chat і використовують дані завданняhuggingface
Генерування зображеньimagePOST /api/image-gen/generatefrontend/src/utils/api/imageGenApi.tsfrontend/src/components/ImageGenerationPanel.tsxhandleGeneratedocs/38-MEDIA_GENERATION.mdscripts/test-image-generation-routing.mjs (test:package) — генерування використовує вибраного провайдера та налаштування OpenAI користувачаcomfyui, huggingface, openai, openrouter
Мова в текстsttPOST /api/stt/transcribefrontend/src/utils/api/sttApi.tsfrontend/src/hooks/useDictation.tstoggledocs/42-SPEECH_TO_TEXT.mdscripts/test-stt-routing.mjs (test:package) — STT надсилає сумісний з OpenAI multipart-запит вибраним маршрутом
frontend/e2e/stt.spec.ts (test:e2e) — голосове введення провайдера розкриває маршрут і транскрибує запис
huggingface, openai
Текст у мовленняttsPOST /api/tts/generatefrontend/src/utils/api/ttsApi.tsfrontend/src/components/TTSButton.tsxhandlePlaydocs/38-MEDIA_GENERATION.mdscripts/test-tts-routing.mjs (test:package) — TTS спрямовує спільний псевдонім моделі через вибраний плагін і клапан користувача
frontend/e2e/tts-playback.spec.ts (test:e2e) — пакетне читання повторно використовує вибраний збережений голос
elevenlabs, huggingface, kyutai-tts-1.6b, kyutai-tts, longcat-audiodit, openai-tts, openai, openrouter, qwen-tts
Генерування звукуaudioPOST /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 передають створені звукові байти потокомopenrouter
Генерування відеоvideoPOST /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) — відео надсилається, опитується й завантажується через кінцеву точку провайдера
scripts/test-openrouter-media-routing.mjs (test:package) — підготовлені публікації відновлення долають утрачені підтвердження commit
openrouter

Застосування контракту

Перевірка пакета відхиляє неоголошені типи схем або плагінів, застарілі відповідності каталогу, маршрути лише для виявлення, представлені як виконувані, обробники без браузерного транспорту, дії інтерфейсу без виклику та видимого елемента, документацію без тверджень про конкретну можливість, тести без поведінки в названому випадку, застарілий перелік і неправильні кінцеві точки, карти моделей або типові значення маніфестів.

Векторні подання генеруються через POST /api/ollama/embed і можуть спрямовуватися до вибраного плагіна. GET /api/embeddings/models перелічує моделі; перевірка вважає його лише маршрутом виявлення й ніколи не приймає як доказ роботи генерації.

Вихідний контракт визначає кожен цільовий поведінковий тест і його засіб запуску. Сценарії сервера мають бути зареєстровані в test:package, а специфікації фронтенду — виявлятися сценарієм test:e2e на основі Playwright. Поточне виявлення може звузити каталог, але не створює нової виконуваної можливості.