Files
Yichen Jiang a5a83bd1d9 fix(llm-pi-ai): withhold OAuth-only providers from the configurable directory
pi-ai resolves an OAuth provider from a stored OAuth credential alone, and
this adapter builds its Models collection with no credential store and runs
no login flow. `openai-codex` — the one installed provider declaring
`auth.oauth` with no `auth.apiKey` — was therefore offered on the Models page
with the keyless placeholder every pi-ai route carries, and every request on
it failed `Provider is not configured` before going out.

`catalogProviderTakesApiKey()` answers whether pi-ai's installed provider for
a route declares the one method this adapter can supply, and the directory
skips the catalog routes that fail it. Catalog membership is unchanged, so
`declared` still answers what pi-ai ships; the profile half of the union stays
unconditional, so a route a settings document already names keeps its entry
and can be edited or deleted.

Resolution is untouched: a profile naming `apiKeyEnv` on such a route still
builds a working provider.
2026-08-13 13:15:47 +08:00

1.7 KiB

  • dialog "设置":
    • navigation:
      • text: 设置
      • button "通用设置":
        • img
        • text: 通用设置
      • button "模型":
        • img
        • text: 模型
      • button "插件":
        • img
        • text: 插件
      • button "Agent 预设":
        • img
        • text: Agent 预设
    • button "打开配置文件"
    • button "关闭":
      • img
      • text: 关闭
    • heading "模型" [level=2]
    • paragraph: 填入各提供方的 API 密钥即可使用其模型。
    • list
    • text: 提供方
    • combobox "提供方":
      • option "amazon-bedrock"
      • option "ant-ling"
      • option "anthropic"
      • option "azure-openai-responses"
      • option "cerebras"
      • option "cloudflare-ai-gateway"
      • option "cloudflare-workers-ai"
      • option "deepseek"
      • option "fireworks"
      • option "github-copilot"
      • option "google"
      • option "google-vertex"
      • option "groq"
      • option "huggingface"
      • option "kimi-coding"
      • option "minimax"
      • option "minimax-cn" [selected]
      • option "mistral"
      • option "moonshotai"
      • option "moonshotai-cn"
      • option "nvidia"
      • option "openai"
      • option "opencode"
      • option "opencode-go"
      • option "openrouter"
      • option "qwen-token-plan"
      • option "qwen-token-plan-cn"
      • option "together"
      • option "vercel-ai-gateway"
      • option "xai"
      • option "xiaomi"
      • option "xiaomi-token-plan-ams"
      • option "xiaomi-token-plan-cn"
      • option "xiaomi-token-plan-sgp"
      • option "zai"
      • option "zai-coding-cn"
    • text: API 密钥
    • textbox "API 密钥":
      • /placeholder: 输入 API 密钥,或留空使用环境认证
    • group: 自定义设置
    • button "取消"
    • button "保存"