跳到主要内容

能力契约

此清单由 scripts/test-capability-contracts.mjs 强制执行。只有架构与目录映射、可执行处理程序、对应浏览器客户端、命名 UI 操作、文档、针对性行为测试和内置清单定义全部一致,提供商能力才算完整。

能力插件类型可执行路由浏览器客户端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
嵌入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.mjstest: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.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 兼容的多部分请求
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 通过所选插件和用户阀门路由共享模型别名
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 操作、缺少能力特定声明的文档、指定测试用例中没有行为的测试、过期生成清单,以及无效的清单端点、模型映射或默认值。

嵌入生成通过 POST /api/ollama/embed 执行,也可路由到所选嵌入插件。GET /api/embeddings/models 只列出模型;门禁将其记录为仅发现路由,绝不视为嵌入生成可用的证明。

源契约标明每个针对性行为测试及其运行器。后端脚本必须注册到 test:package;前端规范必须能被基于 Playwright 的 test:e2e 脚本发现。实时发现可以缩小模型目录,但不会创建新的可执行能力。