Sari la conținutul principal

Contracte de capabilități

Acest inventar este aplicat de scripts/test-capability-contracts.mjs. O capabilitate a furnizorului nu este completă până când schema și maparea catalogului, handler-ul executabil, clientul de browser corespunzător, acțiunea UI denumită, documentația, testul comportamental focalizat și manifestele incluse nu corespund.

CapabilitateTipuri de pluginuriRută executabilăClient de browserAcțiune UIDocumentațieTeste comportamentale focalizateDefiniții incluse
Chat / completarechat, completionWS /ws (chat_stream)frontend/src/hooks/useChat.tsfrontend/src/pages/ChatPage.tsxhandleSendMessagedocs/08-PLUGIN_ARCHITECTURE.mdscripts/test-chat-provider-selection.mjs (test:package) — rutarea exactă a pluginului ajunge la furnizorul selectat pentru cereri obișnuite și în fluxanthropic, codex-oauth, gemini, github, groq, huggingface, kimi-code, llama-cpp, mistral, mlx-lm, openai, openrouter
EmbeddingsembeddingPOST /api/ollama/embed
GET /api/embeddings/models (numai descoperire)
frontend/src/utils/api/modelApi.tsfrontend/src/components/ModelManager.tsxhandleGenerateEmbeddingsdocs/09-RAG_FEATURE.mdscripts/test-plugin-capability-routing.mjs (test:package) — capabilitățile Hugging Face ignoră endpoint-ul generic Chat și folosesc sarcini drept conținut utilhuggingface
Generare de imaginiimagePOST /api/image-gen/generatefrontend/src/utils/api/imageGenApi.tsfrontend/src/components/ImageGenerationPanel.tsxhandleGeneratedocs/38-MEDIA_GENERATION.mdscripts/test-image-generation-routing.mjs (test:package) — generarea imaginilor folosește furnizorul selectat și setările OpenAI ale utilizatoruluicomfyui, huggingface, openai, openrouter
Vorbire în 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 trimite o cerere multipart compatibilă cu OpenAI pe ruta selectată
frontend/e2e/stt.spec.ts (test:e2e) — intrarea vocală a furnizorului își dezvăluie ruta și transcrie sunetul înregistrat
huggingface, openai
Text în vorbirettsPOST /api/tts/generatefrontend/src/utils/api/ttsApi.tsfrontend/src/components/TTSButton.tsxhandlePlaydocs/38-MEDIA_GENERATION.mdscripts/test-tts-routing.mjs (test:package) — TTS rutează un alias comun de model prin pluginul selectat și valva utilizatorului
frontend/e2e/tts-playback.spec.ts (test:e2e) — citirea pe loturi reutilizează vocea salvată selectată pentru fiecare lot
elevenlabs, huggingface, kyutai-tts-1.6b, kyutai-tts, longcat-audiodit, openai-tts, openai, openrouter, qwen-tts
Generare audioaudioPOST /api/media/sound/generatefrontend/src/utils/api/mediaApi.tsfrontend/src/components/MediaGenerationPanel.tsxhandleGeneratedocs/38-MEDIA_GENERATION.mdscripts/test-openrouter-media-routing.mjs (test:package) — modelele de ieșire audio OpenRouter transmit în flux octeții sunetului generatopenrouter
Generare videovideoPOST /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) — generarea video trimite, verifică și descarcă prin endpoint-ul furnizorului
scripts/test-openrouter-media-routing.mjs (test:package) — publicările video pregătite și reluate rezolvă confirmările de commit pierdute
openrouter

Aplicare

Poarta pachetului respinge scheme sau tipuri de plugin nedeclarate, mapări de catalog învechite, rute numai pentru descoperire prezentate drept execuție, handler-e fără transport de browser corespunzător, acțiuni UI fără invocare și declanșator vizibil, documentație fără afirmații specifice capabilității, teste fără comportament în cazul de test denumit, inventar generat învechit și endpoint-uri, mapări de modele sau valori implicite nevalide în manifest.

Generarea embedding-urilor se execută prin POST /api/ollama/embed și poate fi rutată către un plugin de embedding selectat. GET /api/embeddings/models listează modelele; poarta îl înregistrează ca fiind numai pentru descoperire și nu îl acceptă niciodată drept dovadă că generarea embedding-urilor funcționează.

Contractul sursă identifică fiecare test comportamental focalizat și runner-ul acestuia. Scripturile backend trebuie înregistrate în test:package; specificațiile frontend trebuie să poată fi descoperite de scriptul test:e2e bazat pe Playwright. Descoperirea live poate restrânge un catalog de modele, dar nu creează o capabilitate executabilă nouă.