إنتقل إلى المحتوى الرئيسي

عقود القدرات

يفرض 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 إلى المسار المحدد
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) — تحل عمليات تجهيز الفيديو واستئناف النشر فقدان إقرارات التثبيت
openrouter

الإنفاذ

ترفض بوابة الحزمة المخططات أو أنواع المكونات غير المعلنة، وربط الكتالوج القديم، ومسارات الاكتشاف المقدمة كتنفيذ، والمعالجات التي لا يقابلها نقل في المتصفح، وإجراءات الواجهة التي تفتقر إلى استدعاء ومشغّل ظاهر، والوثائق التي لا تتضمن ادعاءات خاصة بالقدرة، والاختبارات التي لا تختبر سلوك الحالة المسماة، والقائمة المولدة القديمة، ونقاط النهاية أو خرائط النماذج أو القيم الافتراضية غير الصالحة في البيانات الوصفية.

يُنفذ إنشاء التضمينات عبر POST /api/ollama/embed ويمكن توجيهه إلى مكوّن تضمين محدد. يسرد GET /api/embeddings/models النماذج؛ وتسجله البوابة كمسار اكتشاف فقط ولا تقبله أبدًا دليلًا على عمل إنشاء التضمينات.

يحدد عقد المصدر كل اختبار سلوكي مركز ومشغله. يجب تسجيل برامج الخادم الخلفي في test:package، ويجب أن تكون مواصفات الواجهة قابلة للاكتشاف بواسطة برنامج test:e2e المستند إلى Playwright. وقد يضيّق الاكتشاف المباشر كتالوج النماذج، لكنه لا ينشئ قدرة تنفيذ جديدة.