Yetenek Sözleşmeleri
Bu envanter scripts/test-capability-contracts.mjs tarafından uygulanır. Bir sağlayıcı yeteneği; şeması ve katalog eşlemesi, yürütülebilir işleyicisi, tarayıcı istemcisi, adlandırılmış UI eylemi, belgesi, odaklı davranış testi ve paketlenmiş manifestleri uyuşmadan tamamlanmış sayılmaz.
| Yetenek | Eklenti türleri | Yürütülebilir rota | Tarayıcı istemcisi | UI eylemi | Belge | Odaklı davranış testleri | Paketlenmiş tanımlar |
|---|---|---|---|---|---|---|---|
| Sohbet / tamamlama | 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) — tam eklenti yönlendirmesi normal ve akış isteklerinde seçili sağlayıcıya ulaşır | anthropic, codex-oauth, gemini, github, groq, huggingface, kimi-code, llama-cpp, mistral, mlx-lm, openai, openrouter |
| Gömme | embedding | POST /api/ollama/embedGET /api/embeddings/models (yalnız keşif) | 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 genel Chat ucunu yok sayar ve görev yüklerini kullanır | huggingface |
| Görüntü üretimi | 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) — seçili sağlayıcıyı ve kullanıcı OpenAI ayarlarını kullanır | comfyui, huggingface, openai, openrouter |
| Konuşmadan metne | 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 seçili rotaya OpenAI uyumlu multipart gönderirfrontend/e2e/stt.spec.ts (test:e2e) — sağlayıcı konuşma girişi rotayı açıklar ve kaydı yazıya döker | huggingface, openai |
| Metinden konuşmaya | 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 ortak model adını seçili eklenti ve kullanıcı valfiyle yönlendirirfrontend/e2e/tts-playback.spec.ts (test:e2e) — toplu okuma her pakette seçili kayıtlı sesi kullanır | elevenlabs, huggingface, kyutai-tts-1.6b, kyutai-tts, longcat-audiodit, openai-tts, openai, openrouter, qwen-tts |
| Ses üretimi | 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 ses çıkış modelleri üretilen ses baytlarını aktarır | openrouter |
| Video üretimi | 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) — video sağlayıcı ucundan gönderilir, yoklanır ve indirilirscripts/test-openrouter-media-routing.mjs (test:package) — hazırlanan yayınlar kayıp commit onaylarını çözer | openrouter |
Uygulama
Paket kapısı bildirilmeyen şema veya eklenti türlerini, eski katalog eşlemelerini, yürütme gibi sunulan yalnız keşif rotalarını, tarayıcı aktarımı olmayan işleyicileri, çağrısı ve görünür tetikleyicisi olmayan UI eylemlerini, yeteneğe özgü iddiası olmayan belgeleri, adlandırılmış testte davranışı olmayan testleri, eski envanteri ve geçersiz manifest uçlarını, model haritalarını veya varsayılanları reddeder.
Gömme üretimi POST /api/ollama/embed üzerinden yürür ve seçili gömme eklentisine yönlenebilir. GET /api/embeddings/models modelleri listeler; kapı bunu yalnız keşif sayar ve üretimin çalıştığına kanıt kabul etmez.
Kaynak sözleşme her odaklı testi ve çalıştırıcısını belirler. Backend betikleri test:package içine kaydolmalı, frontend özellikleri Playwright tabanlı test:e2e tarafından bulunmalıdır. Canlı keşif katalog daraltabilir fakat yeni yürütülebilir yetenek oluşturmaz.