メインコンテンツまでスキップ

Capability コントラクト

この一覧は scripts/test-capability-contracts.mjs によって強制されます。プロバイダー Capability は、スキーマとカタログの対応、実行ハンドラー、対応するブラウザクライアント、名前付き UI アクション、ドキュメント、対象を絞った振る舞いテスト、同梱マニフェストのすべてが一致するまで完成とはみなされません。

Capabilityプラグイン種類実行ルートブラウザクライアントUI アクションドキュメント対象を絞った振る舞いテスト同梱定義
チャット/補完chat, completionWS /ws (chat_stream)frontend/src/hooks/useChat.tsfrontend/src/pages/ChatPage.tsxhandleSendMessagedocs/08-PLUGIN_ARCHITECTURE.mdscripts/test-chat-provider-selection.mjstest:package)— 通常リクエストとストリーミングリクエストの両方で、選択したプロバイダーへ正確にルーティングされるanthropic, codex-oauth, gemini, github, groq, huggingface, kimi-code, llama-cpp, mistral, mlx-lm, openai, openrouter
EmbeddingembeddingPOST /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.mjstest:package)— Hugging Face Capability は汎用 Chat エンドポイントを無視し、タスク用ペイロードを使用するhuggingface
画像生成imagePOST /api/image-gen/generatefrontend/src/utils/api/imageGenApi.tsfrontend/src/components/ImageGenerationPanel.tsxhandleGeneratedocs/38-MEDIA_GENERATION.mdscripts/test-image-generation-routing.mjstest: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.mjstest:package)— STT が選択したルートへ OpenAI 互換 multipart リクエストを送る
frontend/e2e/stt.spec.tstest:e2e)— プロバイダー音声入力が送信先を開示し、録音音声を文字起こしする
huggingface, openai
音声合成ttsPOST /api/tts/generatefrontend/src/utils/api/ttsApi.tsfrontend/src/components/TTSButton.tsxhandlePlaydocs/38-MEDIA_GENERATION.mdscripts/test-tts-routing.mjstest:package)— TTS が共有モデルエイリアスを選択済みプラグインと利用者 Valve にルーティングする
frontend/e2e/tts-playback.spec.tstest: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.mjstest: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.mjstest:package)— 動画生成がプロバイダーのエンドポイントを通じて送信、ポーリング、ダウンロードされる
scripts/test-openrouter-media-routing.mjstest:package)— 準備済みの動画と再開した公開処理が、失われたコミット応答を解決する
openrouter

強制適用

パッケージゲートは、宣言されていないスキーマまたはプラグイン種類、古いカタログ対応、実行機能として提示された探索専用ルート、対応するブラウザ通信がないハンドラー、呼び出し処理と可視トリガーがない UI アクション、Capability 固有の説明がないドキュメント、指定されたテストケース内に振る舞いがないテスト、古い生成済み一覧、無効なマニフェストのエンドポイント・モデルマップ・既定値を拒否します。

Embedding 生成は POST /api/ollama/embed から実行され、選択した Embedding プラグインへルーティングできます。GET /api/embeddings/models はモデルを列挙するだけです。ゲートはこれを探索専用として記録し、Embedding 生成が動作する証拠として受け入れることはありません。

ソースコントラクトは、対象を絞った各振る舞いテストとそのランナーを指定します。バックエンドスクリプトは test:package に登録され、フロントエンド仕様は Playwright ベースの test:e2e スクリプトから検出可能でなければなりません。ライブ探索によってモデルカタログを絞り込むことはできますが、新しい実行可能 Capability が作成されるわけではありません。