Συμβάσεις δυνατοτήτων
Αυτό το ευρετήριο επιβάλλεται από το scripts/test-capability-contracts.mjs. Μια δυνατότητα παρόχου δεν θεωρείται ολοκληρωμένη έως ότου συμφωνούν το σχήμα και η αντιστοίχιση καταλόγου της, ο εκτελέσιμος handler, ο αντίστοιχος πελάτης προγράμματος περιήγησης, η ονομασμένη ενέργεια UI, η τεκμηρίωση, η εστιασμένη δοκιμή συμπεριφοράς και τα συνοδευτικά manifest.
| Δυνατότητα | Τύποι προσθέτων | Εκτελέσιμη διαδρομή | Πελάτης προγράμματος περιήγησης | Ενέργεια UI | Τεκμηρίωση | Εστιασμένες δοκιμές συμπεριφοράς | Συνοδευτικοί ορισμοί |
|---|---|---|---|---|---|---|---|
| Συνομιλία / ολοκλήρωση | 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) — η ακριβής δρομολόγηση προσθέτου φτάνει στον επιλεγμένο πάροχο για κανονικά αιτήματα και αιτήματα ροής | anthropic, codex-oauth, gemini, github, groq, huggingface, kimi-code, llama-cpp, mistral, mlx-lm, openai, openrouter |
| Embeddings | embedding | POST /api/ollama/embedGET /api/embeddings/models (μόνο εντοπισμός) | 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) — οι δυνατότητες Hugging Face αγνοούν το γενικό endpoint Συνομιλίας και χρησιμοποιούν ωφέλιμα φορτία εργασίας | huggingface |
| Δημιουργία εικόνας | 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) — η δημιουργία εικόνας χρησιμοποιεί τον επιλεγμένο πάροχο και τις ρυθμίσεις OpenAI του χρήστη | comfyui, huggingface, openai, openrouter |
| Ομιλία σε κείμενο | 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) — το STT στέλνει multipart αίτημα συμβατό με OpenAI στην επιλεγμένη διαδρομήfrontend/e2e/stt.spec.ts (test:e2e) — η είσοδος ομιλίας παρόχου αποκαλύπτει τη διαδρομή της και μεταγράφει τον ηχογραφημένο ήχο | huggingface, openai |
| Κείμενο σε ομιλία | 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) — το 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 |
| Δημιουργία ήχου | 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) — τα μοντέλα εξόδου ήχου OpenRouter μεταδίδουν τα byte του παραγόμενου ήχου | openrouter |
| Δημιουργία βίντεο | 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) — η δημιουργία βίντεο υποβάλλει, ελέγχει και κατεβάζει μέσω του endpoint του παρόχουscripts/test-openrouter-media-routing.mjs (test:package) — οι προετοιμασμένες δημοσιεύσεις βίντεο και συνέχισης επιλύουν χαμένες επιβεβαιώσεις commit | openrouter |
Επιβολή
Η πύλη πακέτου απορρίπτει μη δηλωμένα σχήματα ή τύπους προσθέτων, παρωχημένες αντιστοιχίσεις καταλόγου, διαδρομές μόνο για εντοπισμό που παρουσιάζονται ως εκτέλεση, handlers χωρίς αντίστοιχη μεταφορά προγράμματος περιήγησης, ενέργειες UI χωρίς κλήση και ορατό έναυσμα, τεκμηρίωση χωρίς ισχυρισμούς ειδικούς για τη δυνατότητα, δοκιμές χωρίς συμπεριφορά μέσα στην ονομασμένη περίπτωση δοκιμής, παρωχημένο παραγόμενο ευρετήριο και μη έγκυρα endpoints, χάρτες μοντέλων ή προεπιλογές manifest.
Η δημιουργία embedding εκτελείται μέσω του POST /api/ollama/embed και μπορεί να δρομολογηθεί σε επιλεγμένο πρόσθετο embedding. Το GET /api/embeddings/models παραθέτει μοντέλα· η πύλη το καταγράφει ως αποκλειστικά για εντοπισμό και δεν το δέχεται ποτέ ως απόδειξη ότι λειτουργεί η δημιουργία embedding.
Η σύμβαση πηγής προσδιορίζει κάθε εστιασμένη δοκιμή συμπεριφοράς και το πρόγραμμα εκτέλεσής της. Τα scripts backend πρέπει να είναι καταχωρισμένα στο test:package· οι προδιαγραφές frontend πρέπει να μπορούν να εντοπιστούν από το script test:e2e που βασίζεται στο Playwright. Ο ζωντανός εντοπισμός μπορεί να περιορίσει έναν κατάλογο μοντέλων, αλλά δεν δημιουργεί νέα εκτελέσιμη δυνατότητα.