{"repo": "charleshoskinson/danceswithclaws", "files": {"extensions/opencode-go/provider-catalog.ts": {"f1ae41d2f8401c06df6281ef666831ea7d832f7b": {"t": 1785596376.1241195, "n": 12236, "h": "04b37698c84153b9", "c": "// Opencode Go provider module implements model/runtime integration.\nimport type { ModelCatalogEntry } from \"openclaw/plugin-sdk/agent-runtime\";\nimport type { ProviderRuntimeModel } from \"openclaw/plugin-sdk/plugin-entry\";\nimport {\n buildLiveModelProviderConfig,\n type LiveModelCatalogFetchGuard,\n} from \"openclaw/plugin-sdk/provider-catalog-live-runtime\";\nimport { normalizeModelCompat } from \"openclaw/plugin-sdk/provider-model-shared\";\nimport type {\n ModelDefinitionConfig,\n ModelProviderConfig,\n} from \"openclaw/plugin-sdk/provider-model-shared\";\n\nconst PROVIDER_ID = \"opencode-go\";\n\nconst OPENCODE_GO_OPENAI_BASE_URL = \"https://opencode.ai/zen/go/v1\";\nconst OPENCODE_GO_ANTHROPIC_BASE_URL = \"https://opencode.ai/zen/go\";\nconst OPENCODE_GO_KIMI_NO_REASONING_MODEL_IDS = new Set([\n \"kimi-k2.5\",\n \"kimi-k2.6\",\n \"kimi-k2.7-code\",\n]);\nconst OPENCODE_GO_MODELS_ENDPOINT = \"https://opencode.ai/zen/go/v1/models\";\nconst OPENCODE_GO_MODELS_TIMEOUT_MS = 5_000;\nconst OPENCODE_GO_MODELS_CACHE_TTL_MS = 60_000;\n\ntype OpencodeGoModelDefinition = ModelDefinitionConfig & {\n provider: typeof PROVIDER_ID;\n api: NonNullable;\n baseUrl: string;\n input: Array<\"text\" | \"image\">;\n};\n\nconst OPENCODE_GO_MODELS = (\n [\n {\n id: \"deepseek-v4-pro\",\n name: \"DeepSeek V4 Pro\",\n api: \"openai-completions\",\n provider: PROVIDER_ID,\n baseUrl: OPENCODE_GO_OPENAI_BASE_URL,\n reasoning: true,\n input: [\"text\"],\n cost: {\n input: 1.74,\n output: 3.48,\n cacheRead: 0.145,\n cacheWrite: 0,\n },\n contextWindow: 1_000_000,\n maxTokens: 384_000,\n compat: {\n supportsUsageInStreaming: true,\n supportsReasoningEffort: true,\n maxTokensField: \"max_tokens\",\n },\n },\n {\n id: \"deepseek-v4-flash\",\n name: \"DeepSeek V4 Flash\",\n api: \"openai-completions\",\n provider: PROVIDER_ID,\n baseUrl: OPENCODE_GO_OPENAI_BASE_URL,\n reasoning: true,\n input: [\"text\"],\n cost: {\n input: 0.14,\n output: 0.28,\n cacheRead: 0.028,\n cacheWrite: 0,\n },\n contextWindow: 1_000_000,\n maxTokens: 384_000,\n compat: {\n supportsUsageInStreaming: true,\n supportsReasoningEffort: true,\n maxTokensField: \"max_tokens\",\n },\n },\n {\n id: \"glm-5\",\n name: \"GLM-5\",\n api: \"openai-completions\",\n provider: PROVIDER_ID,\n baseUrl: OPENCODE_GO_OPENAI_BASE_URL,\n reasoning: true,\n input: [\"text\"],\n cost: {\n input: 1,\n output: 3.2,\n cacheRead: 0.2,\n cacheWrite: 0,\n },\n contextWindow: 202_752,\n maxTokens: 32_768,\n },\n {\n id: \"glm-5.1\",\n name: \"GLM-5.1\",\n api: \"openai-completions\",\n provider: PROVIDER_ID,\n baseUrl: OPENCODE_GO_OPENAI_BASE_URL,\n reasoning: true,\n input: [\"text\"],\n cost: {\n input: 1.4,\n output: 4.4,\n cacheRead: 0.26,\n cacheWrite: 0,\n },\n contextWindow: 202_752,\n maxTokens: 32_768,\n },\n {\n id: \"glm-5.2\",\n name: \"GLM-5.2\",\n api: \"openai-completions\",\n provider: PROVIDER_ID,\n baseUrl: OPENCODE_GO_OPENAI_BASE_URL,\n reasoning: true,\n input: [\"text\"],\n cost: {\n input: 1.4,\n output: 4.4,\n cacheRead: 0.26,\n cacheWrite: 0,\n },\n contextWindow: 1_000_000,\n maxTokens: 131_072,\n },\n {\n id: \"hy3-preview\",\n name: \"HY3 Preview\",\n api: \"openai-completions\",\n provider: PROVIDER_ID,\n baseUrl: OPENCODE_GO_OPENAI_BASE_URL,\n reasoning: true,\n input: [\"text\"],\n cost: {\n input: 0,\n output: 0,\n cacheRead: 0,\n cacheWrite: 0,\n },\n contextWindow: 262_144,\n maxTokens: 32_768,\n },\n {\n id: \"kimi-k2.5\",\n name: \"Kimi K2.5\",\n api: \"openai-completions\",\n provider: PROVIDER_ID,\n baseUrl: OPENCODE_GO_OPENAI_BASE_URL,\n reasoning: true,\n input: [\"text\", \"image\"],\n cost: {\n input: 0.6,\n output: 3,\n cacheRead: 0.1,\n cacheWrite: 0,\n },\n contextWindow: 262_144,\n maxTokens: 65_536,\n },\n {\n id: \"kimi-k2.6\",\n name: \"Kimi K2.6\",\n api: \"openai-completions\",\n provider: PROVIDER_ID,\n baseUrl: OPENCODE_GO_OPENAI_BASE_URL,\n reasoning: true,\n input: [\"text\", \"image\"],\n cost: {\n input: 0.95,\n output: 4,\n cacheRead: 0.16,\n cacheWrite: 0,\n },\n contextWindow: 262_144,\n maxTokens: 65_536,\n },\n {\n id: \"kimi-k2.7-code\",\n name: \"Kimi K2.7 Code\",\n api: \"openai-completions\",\n provider: PROVIDER_ID,\n baseUrl: OPENCODE_GO_OPENAI_BASE_URL,\n reasoning: true,\n input: [\"text\", \"image\"],\n cost: {\n input: 0.95,\n output: 4,\n cacheRead: 0.19,\n cacheWrite: 0,\n },\n contextWindow: 262_144,\n maxTokens: 262_144,\n },\n {\n id: \"mimo-v2.5\",\n name: \"MiMo V2.5\",\n api: \"openai-completions\",\n provider: PROVIDER_ID,\n baseUrl: OPENCODE_GO_OPENAI_BASE_URL,\n reasoning: true,\n input: [\"text\", \"image\"],\n cost: {\n input: 0.4,\n output: 2,\n cacheRead: 0.08,\n cacheWrite: 0,\n },\n contextWindow: 1_000_000,\n maxTokens: 128_000,\n },\n {\n id: \"mimo-v2.5-pro\",\n name: \"MiMo V2.5 Pro\",\n api: \"openai-completions\",\n provider: PROVIDER_ID,\n baseUrl: OPENCODE_GO_OPENAI_BASE_URL,\n reasoning: true,\n input: [\"text\"],\n cost: {\n input: 1,\n output: 3,\n cacheRead: 0.2,\n cacheWrite: 0,\n },\n contextWindow: 1_048_576,\n maxTokens: 128_000,\n },\n {\n id: \"minimax-m2.5\",\n name: \"MiniMax M2.5\",\n api: \"anthropic-messages\",\n provider: PROVIDER_ID,\n baseUrl: OPENCODE_GO_ANTHROPIC_BASE_URL,\n reasoning: true,\n input: [\"text\"],\n cost: {\n input: 0.3,\n output: 1.2,\n cacheRead: 0.03,\n cacheWrite: 0.375,\n },\n contextWindow: 204_800,\n maxTokens: 65_536,\n },\n {\n id: \"minimax-m2.7\",\n name: \"MiniMax M2.7\",\n api: \"anthropic-messages\",\n provider: PROVIDER_ID,\n baseUrl: OPENCODE_GO_ANTHROPIC_BASE_URL,\n reasoning: true,\n input: [\"text\"],\n cost: {\n input: 0.3,\n output: 1.2,\n cacheRead: 0.06,\n cacheWrite: 0.375,\n },\n contextWindow: 204_800,\n maxTokens: 131_072,\n },\n {\n id: \"minimax-m3\",\n name: \"MiniMax M3\",\n api: \"anthropic-messages\",\n provider: PROVIDER_ID,\n baseUrl: OPENCODE_GO_ANTHROPIC_BASE_URL,\n reasoning: true,\n input: [\"text\"],\n cost: {\n input: 0.6,\n output: 2.4,\n cacheRead: 0.12,\n cacheWrite: 0.75,\n },\n contextWindow: 204_800,\n maxTokens: 131_072,\n },\n {\n id: \"qwen3.5-plus\",\n name: \"Qwen3.5 Plus\",\n api: \"openai-completions\",\n provider: PROVIDER_ID,\n baseUrl: OPENCODE_GO_OPENAI_BASE_URL,\n compat: { thinkingFormat: \"qwen\" },\n reasoning: true,\n input: [\"text\", \"image\"],\n cost: {\n input: 0.2,\n output: 1.2,\n cacheRead: 0.02,\n cacheWrite: 0.25,\n },\n contextWindow: 262_144,\n maxTokens: 65_536,\n },\n {\n id: \"qwen3.7-max\",\n name: \"Qwen3.7 Max\",\n api: \"anthropic-messages\",\n provider: PROVIDER_ID,\n baseUrl: OPENCODE_GO_ANTHROPIC_BASE_URL,\n compat: { thinkingFormat: \"qwen\" },\n reasoning: true,\n input: [\"text\"],\n cost: {\n input: 2.5,\n output: 7.5,\n cacheRead: 0.5,\n cacheWrite: 3.125,\n },\n contextWindow: 1_000_000,\n maxTokens: 65_536,\n },\n {\n id: \"qwen3.7-plus\",\n name: \"Qwen3.7 Plus\",\n api: \"anthropic-messages\",\n provider: PROVIDER_ID,\n baseUrl: OPENCODE_GO_ANTHROPIC_BASE_URL,\n compat: { thinkingFormat: \"qwen\" },\n reasoning: true,\n input: [\"text\", \"image\"],\n cost: {\n input: 0.4,\n output: 1.6,\n cacheRead: 0.04,\n cacheWrite: 0.5,\n },\n contextWindow: 1_000_000,\n maxTokens: 65_536,\n },\n {\n id: \"qwen3.6-plus\",\n name: \"Qwen3.6 Plus\",\n api: \"anthropic-messages\",\n provider: PROVIDER_ID,\n baseUrl: OPENCODE_GO_ANTHROPIC_BASE_URL,\n compat: { thinkingFormat: \"qwen\" },\n reasoning: true,\n input: [\"text\", \"image\"],\n cost: {\n input: 0.5,\n output: 3,\n cacheRead: 0.05,\n cacheWrite: 0.625,\n },\n contextWindow: 262_144,\n maxTokens: 65_536,\n },\n ] satisfies OpencodeGoModelDefinition[]\n).map((model) => normalizeModelCompat(model) as OpencodeGoModelDefinition);\n\ntype FetchOpencodeGoLiveModelIdsParams = {\n apiKey?: string;\n discoveryApiKey?: string;\n fetchGuard?: LiveModelCatalogFetchGuard;\n signal?: AbortSignal;\n};\n\nfunction buildOpencodeGoProviderConfig(\n models: OpencodeGoModelDefinition[],\n apiKey?: string,\n): ModelProviderConfig {\n return {\n api: \"openai-completions\",\n baseUrl: OPENCODE_GO_OPENAI_BASE_URL,\n ...(apiKey ? { apiKey } : {}),\n models,\n };\n}\n\nexport function buildStaticOpencodeGoProviderConfig(apiKey?: string): ModelProviderConfig {\n return buildOpencodeGoProviderConfig(OPENCODE_GO_MODELS, apiKey);\n}\n\nexport async function buildOpencodeGoLiveProviderConfig(\n params: FetchOpencodeGoLiveModelIdsParams = {},\n): Promise {\n return await buildLiveModelProviderConfig({\n providerId: PROVIDER_ID,\n endpoint: OPENCODE_GO_MODELS_ENDPOINT,\n providerConfig: {\n api: \"openai-completions\",\n baseUrl: OPENCODE_GO_OPENAI_BASE_URL,\n },\n models: OPENCODE_GO_MODELS,\n apiKey: params.apiKey,\n discoveryApiKey: params.discoveryApiKey,\n fetchGuard: params.fetchGuard,\n signal: params.signal,\n timeoutMs: OPENCODE_GO_MODELS_TIMEOUT_MS,\n ttlMs: OPENCODE_GO_MODELS_CACHE_TTL_MS,\n auditContext: \"opencode-go-model-discovery\",\n });\n}\n\nexport function listOpencodeGoModelCatalogEntries(): ModelCatalogEntry[] {\n return OPENCODE_GO_MODELS.map((model) => ({\n provider: model.provider,\n id: model.id,\n name: model.name,\n reasoning: model.reasoning,\n input: model.input,\n contextWindow: model.contextWindow,\n }));\n}\n\nexport function resolveOpencodeGoModel(modelId: string): ProviderRuntimeModel | undefined {\n const normalizedModelId = modelId.trim().toLowerCase();\n return OPENCODE_GO_MODELS.find((model) => model.id === normalizedModelId);\n}\n\nexport function isOpencodeGoKimiNoReasoningModelId(modelId: unknown): boolean {\n return (\n typeof modelId === \"string\" &&\n OPENCODE_GO_KIMI_NO_REASONING_MODEL_IDS.has(modelId.trim().toLowerCase())\n );\n}\n\nexport function normalizeOpencodeGoResolvedModel(\n model: ProviderRuntimeModel,\n): ProviderRuntimeModel | undefined {\n if (!isOpencodeGoKimiNoReasoningModelId(model.id)) {\n return undefined;\n }\n const compat =\n model.compat && typeof model.compat === \"object\" && !Array.isArray(model.compat)\n ? model.compat\n : undefined;\n if (!model.reasoning && !compat?.supportsReasoningEffort) {\n return undefined;\n }\n return {\n ...model,\n reasoning: false,\n compat: {\n ...compat,\n supportsReasoningEffort: false,\n },\n };\n}\n\nfunction normalizeBaseUrl(baseUrl: string | undefined): string {\n return (baseUrl ?? \"\").trim().replace(/\\/+$/, \"\");\n}\n\nexport function normalizeOpencodeGoBaseUrl(params: {\n api?: string | null;\n baseUrl?: string;\n}): string | undefined {\n const normalized = normalizeBaseUrl(params.baseUrl);\n if (!normalized) {\n return undefined;\n }\n if (normalized === OPENCODE_GO_OPENAI_BASE_URL) {\n return OPENCODE_GO_OPENAI_BASE_URL;\n }\n if (normalized === OPENCODE_GO_ANTHROPIC_BASE_URL) {\n return OPENCODE_GO_ANTHROPIC_BASE_URL;\n }\n if (normalized === \"https://opencode.ai/go\") {\n return OPENCODE_GO_ANTHROPIC_BASE_URL;\n }\n if (normalized === \"https://opencode.ai/go/v1\") {\n return params.api === \"anthropic-messages\"\n ? OPENCODE_GO_ANTHROPIC_BASE_URL\n : OPENCODE_GO_OPENAI_BASE_URL;\n }\n return undefined;\n}\n"}}, "extensions/minimax/src/minimax-web-search-provider.ts": {"f1ae41d2f8401c06df6281ef666831ea7d832f7b": {"t": 1785674018.3104918, "n": 2267, "h": "54e8c44758a99dfa", "c": "import { createLazyRuntimeModule } from \"openclaw/plugin-sdk/lazy-runtime\";\n// Minimax provider module implements model/runtime integration.\nimport {\n createWebSearchProviderContractFields,\n type WebSearchProviderPlugin,\n} from \"openclaw/plugin-sdk/provider-web-search-config-contract\";\n\nconst MINIMAX_CREDENTIAL_PATH = \"plugins.entries.minimax.config.webSearch.apiKey\";\nconst MINIMAX_TOKEN_PLAN_ENV_VARS = [\n \"MINIMAX_CODE_PLAN_KEY\",\n \"MINIMAX_CODING_API_KEY\",\n \"MINIMAX_OAUTH_TOKEN\",\n] as const;\nconst MINIMAX_WEB_SEARCH_ENV_VARS = [...MINIMAX_TOKEN_PLAN_ENV_VARS, \"MINIMAX_API_KEY\"] as const;\n\nconst loadMiniMaxWebSearchRuntime = createLazyRuntimeModule(\n () => import(\"./minimax-web-search-provider.runtime.js\"),\n);\n\nconst MiniMaxSearchSchema = {\n type: \"object\",\n properties: {\n query: { type: \"string\", description: \"Search query string.\" },\n count: {\n type: \"integer\",\n description: \"Number of results to return (1-10).\",\n minimum: 1,\n maximum: 10,\n },\n },\n} satisfies Record;\n\nexport function createMiniMaxWebSearchProvider(): WebSearchProviderPlugin {\n return {\n id: \"minimax\",\n label: \"MiniMax Search\",\n hint: \"Structured results via MiniMax Token Plan search API\",\n onboardingScopes: [\"text-inference\"],\n credentialLabel: \"MiniMax Token Plan key or OAuth token\",\n envVars: [...MINIMAX_WEB_SEARCH_ENV_VARS],\n placeholder: \"sk-cp-...\",\n signupUrl: \"https://platform.minimax.io/user-center/basic-information/interface-key\",\n docsUrl: \"https://docs.openclaw.ai/tools/minimax-search\",\n autoDetectOrder: 15,\n credentialPath: MINIMAX_CREDENTIAL_PATH,\n ...createWebSearchProviderContractFields({\n credentialPath: MINIMAX_CREDENTIAL_PATH,\n searchCredential: { type: \"top-level\" },\n configuredCredential: { pluginId: \"minimax\" },\n }),\n createTool: (ctx) => ({\n description:\n \"Search the web using MiniMax Search API. Returns titles, URLs, snippets, and related search suggestions.\",\n parameters: MiniMaxSearchSchema,\n execute: async (args) => {\n const { executeMiniMaxWebSearchProviderTool } = await loadMiniMaxWebSearchRuntime();\n return await executeMiniMaxWebSearchProviderTool(ctx, args);\n },\n }),\n };\n}\n"}}, "docs/providers/zai.md": {"f1ae41d2f8401c06df6281ef666831ea7d832f7b": {"t": 1785674143.8071864, "n": 8857, "h": "fc3fcf810d0af761", "c": "---\nsummary: \"Use Z.AI (GLM models) with OpenClaw\"\nread_when:\n - You want Z.AI / GLM models in OpenClaw\n - You need a simple ZAI_API_KEY setup\ntitle: \"Z.AI\"\n---\n\nZ.AI is the API platform for **GLM** models. It provides REST APIs for GLM and\nuses API keys for authentication. Create your API key in the Z.AI console.\nOpenClaw uses the `zai` provider with a Z.AI API key.\n\n| Property | Value |\n| -------- | -------------------------------------------- |\n| Provider | `zai` |\n| Package | `@openclaw/zai-provider` |\n| Auth | `ZAI_API_KEY` (legacy alias: `Z_AI_API_KEY`) |\n| API | Z.AI Chat Completions (Bearer auth) |\n\n## GLM models\n\nGLM is a model family, not a separate provider. In OpenClaw, GLM models use\nrefs such as `zai/glm-5.2`: provider `zai`, model id `glm-5.2`.\n\n## Getting started\n\nInstall the provider plugin first:\n\n```bash\nopenclaw plugins install @openclaw/zai-provider\n```\n\n\n \n **Best for:** most users. OpenClaw probes supported Z.AI endpoints with your API key and applies the correct base URL automatically.\n\n \n \n ```bash\n openclaw onboard --auth-choice zai-api-key\n ```\n \n \n ```bash\n openclaw models list --all --provider zai\n ```\n \n \n\n \n\n \n **Best for:** users who want to force a specific Coding Plan or general API surface.\n\n \n \n ```bash\n # Coding Plan Global (recommended for Coding Plan users)\n openclaw onboard --auth-choice zai-coding-global\n\n # Coding Plan CN (China region)\n openclaw onboard --auth-choice zai-coding-cn\n\n # General API\n openclaw onboard --auth-choice zai-global\n\n # General API CN (China region)\n openclaw onboard --auth-choice zai-cn\n ```\n \n \n ```bash\n openclaw models list --all --provider zai\n ```\n \n \n\n \n\n\n### Endpoints\n\n| Onboarding choice | Base URL | Default model |\n| ------------------- | --------------------------------------------- | ------------- |\n| `zai-global` | `https://api.z.ai/api/paas/v4` | `glm-5.1` |\n| `zai-cn` | `https://open.bigmodel.cn/api/paas/v4` | `glm-5.1` |\n| `zai-coding-global` | `https://api.z.ai/api/coding/paas/v4` | `glm-5.2` |\n| `zai-coding-cn` | `https://open.bigmodel.cn/api/coding/paas/v4` | `glm-5.2` |\n\n`zai-api-key` auto-detects one of these four by probing your key against each\nendpoint's chat-completions API, checking general endpoints (`zai-global`,\nthen `zai-cn`) before Coding Plan endpoints (`zai-coding-global`, then\n`zai-coding-cn`), and stopping at the first endpoint that accepts a request.\nUse an explicit `--auth-choice` to force a Coding Plan endpoint if your key\nworks on both.\n\n## Config example\n\n\n`zai-api-key` lets OpenClaw detect the matching Z.AI endpoint from the key and\napply the correct base URL automatically. Use the explicit regional choices when\nyou want to force a specific Coding Plan or general API surface.\n\n\n```json5\n{\n env: { ZAI_API_KEY: \"sk-...\" },\n models: {\n providers: {\n zai: {\n // GLM-5.2 uses the Coding Plan endpoint.\n baseUrl: \"https://api.z.ai/api/coding/paas/v4\",\n },\n },\n },\n agents: { defaults: { model: { primary: \"zai/glm-5.2\" } } },\n}\n```\n\n## Built-in catalog\n\nThe `zai` provider plugin ships its catalog in the plugin manifest, so read-only\nlisting can show known GLM rows without loading provider runtime:\n\n```bash\nopenclaw models list --all --provider zai\n```\n\nThe manifest-backed catalog currently includes:\n\n| Model ref | Notes |\n| -------------------- | ------------------------------- |\n| `zai/glm-5.2` | Coding Plan default; 1M context |\n| `zai/glm-5.1` | General API default |\n| `zai/glm-5` | |\n| `zai/glm-5-turbo` | |\n| `zai/glm-5v-turbo` | |\n| `zai/glm-4.7` | |\n| `zai/glm-4.7-flash` | |\n| `zai/glm-4.7-flashx` | |\n| `zai/glm-4.6` | |\n| `zai/glm-4.6v` | |\n| `zai/glm-4.5` | |\n| `zai/glm-4.5-air` | |\n| `zai/glm-4.5-flash` | |\n| `zai/glm-4.5v` | |\n\n\nGLM models are available as `zai/` (example: `zai/glm-5`).\n\n\n\nCoding Plan setup defaults to `zai/glm-5.2`; general API setup keeps\n`zai/glm-5.1`. On the Coding Plan endpoints, auto-detection falls back to\n`glm-5.1` and then `glm-4.7` when the key/plan does not expose GLM-5.2. GLM\nversions and availability can change; run `openclaw models list --all --provider zai`\nto see the catalog known to your installed version.\n\n\n## Thinking levels\n\n\n \n Full range: `off`, `low`, `high`, `max` (default `off`). OpenClaw maps\n `low` and `high` to Z.AI's `high` reasoning effort, and `max` to Z.AI's\n `max` effort, via `reasoning_effort` on the request payload.\n \n \n Binary toggle only: `off` and `low` (shown as `on` in pickers), default\n `off`. Setting thinking to `off` sends `thinking: { type: \"disabled\" }`;\n any other level leaves the request payload untouched (Z.AI's own default\n reasoning behavior applies).\n \n\n\nSetting thinking to `off` avoids responses that spend the output budget on\n`reasoning_content` before visible text.\n\n## Advanced configuration\n\n\n \n Unknown `glm-5*` ids still forward-resolve on the provider path by\n synthesizing provider-owned metadata from the `glm-4.7` template when the id\n matches the current GLM-5 family shape.\n \n\n \n `tool_stream` is enabled by default for Z.AI tool-call streaming. To disable it:\n\n ```json5\n {\n agents: {\n defaults: {\n models: {\n \"zai/\": {\n params: { tool_stream: false },\n },\n },\n },\n },\n }\n ```\n\n \n\n \n Preserved thinking is opt-in because Z.AI requires the full historical\n `reasoning_content` to be replayed, which increases prompt tokens. Enable it\n per model:\n\n ```json5\n {\n agents: {\n defaults: {\n models: {\n \"zai/glm-5.2\": {\n params: { preserveThinking: true },\n },\n },\n },\n },\n }\n ```\n\n When enabled and thinking is on, OpenClaw sends\n `thinking: { type: \"enabled\", clear_thinking: false }` and replays prior\n `reasoning_content` for the same OpenAI-compatible transcript. The snake_case\n `preserve_thinking` param key works as an alias.\n\n Advanced users can still override the exact provider payload with\n `params.extra_body.thinking`.\n\n \n\n \n The Z.AI plugin registers image understanding.\n\n | Property | Value |\n | ------------- | ----------- |\n | Model | `glm-4.6v` |\n\n Image understanding is auto-resolved from the configured Z.AI auth — no\n additional config is needed.\n\n \n\n \n - Z.AI uses Bearer auth with your API key.\n - The `zai-api-key` onboarding choice auto-detects the matching Z.AI endpoint by probing supported endpoints with your key.\n - Use the explicit regional choices (`zai-coding-global`, `zai-coding-cn`, `zai-global`, `zai-cn`) when you want to force a specific API surface.\n - The legacy env var `Z_AI_API_KEY` is still accepted; OpenClaw copies it to `ZAI_API_KEY` at startup if `ZAI_API_KEY` is unset.\n\n \n\n\n## Related\n\n\n \n Choosing providers, model refs, and failover behavior.\n \n \n Full OpenClaw config schema, including provider and model settings.\n \n\n"}}, "docs/providers/qwen.md": {"f1ae41d2f8401c06df6281ef666831ea7d832f7b": {"t": 1785674219.7377741, "n": 17798, "h": "ccafbc58258c018b", "c": "---\nsummary: \"Use Qwen Cloud through its OpenClaw plugin\"\nread_when:\n - You want to use Qwen with OpenClaw\n - You have an Alibaba Cloud Token Plan subscription\n - You previously used Qwen OAuth\ntitle: \"Qwen\"\n---\n\nQwen Cloud is an official external OpenClaw provider plugin with canonical id `qwen`. It targets Qwen Cloud / Alibaba DashScope Standard and Coding Plan endpoints, exposes Token Plan as `qwen-token-plan`, keeps `modelstudio` as a compatibility alias, independently owns Alibaba's documented `bailian-token-plan` custom-provider id, and exposes the Qwen Portal token flow as [`qwen-oauth`](/providers/qwen-oauth).\n\n| Property | Value |\n| ---------------------- | ------------------------------------------ |\n| Provider | `qwen` |\n| Token Plan provider | `qwen-token-plan` |\n| Portal provider | [`qwen-oauth`](/providers/qwen-oauth) |\n| Preferred env var | `QWEN_API_KEY` |\n| Token Plan env var | `QWEN_TOKEN_PLAN_API_KEY` |\n| Also accepted (compat) | `MODELSTUDIO_API_KEY`, `DASHSCOPE_API_KEY` |\n| API style | OpenAI-compatible |\n\n\n`qwen3.7-plus` and `qwen3.6-plus` work with Coding Plan and Standard endpoints.\nFor `qwen3.7-max` or `qwen3.6-flash`, use a **Standard (pay-as-you-go)** endpoint.\n\n\n## Install plugin\n\n`qwen` ships as an official external plugin, not bundled with core. Install it and restart Gateway:\n\n```bash\nopenclaw plugins install @openclaw/qwen-provider\nopenclaw gateway restart\n```\n\n## Getting started\n\nChoose your plan type and follow the setup steps.\n\n\n \n **Best for:** subscription-based access through the Qwen Coding Plan.\n\n \n \n Create or copy an API key from [home.qwencloud.com/api-keys](https://home.qwencloud.com/api-keys).\n \n \n For the **Global** endpoint:\n\n ```bash\n openclaw onboard --auth-choice qwen-api-key\n ```\n\n For the **China** endpoint:\n\n ```bash\n openclaw onboard --auth-choice qwen-api-key-cn\n ```\n \n \n ```json5\n {\n agents: {\n defaults: {\n model: { primary: \"qwen/qwen3.5-plus\" },\n },\n },\n }\n ```\n \n \n ```bash\n openclaw models list --provider qwen\n ```\n \n \n\n \n Legacy `modelstudio-*` auth-choice ids and `modelstudio/...` model refs still\n work as compatibility aliases, but new setup flows should prefer the canonical\n `qwen-*` auth-choice ids and `qwen/...` model refs. If you define an exact\n custom `models.providers.modelstudio` entry with another `api` value, that\n custom provider owns `modelstudio/...` refs instead of the Qwen compatibility\n alias.\n \n\n \n\n \n **Best for:** pay-as-you-go access through the Standard Model Studio endpoint, including `qwen3.7-max` and `qwen3.6-flash`, which are not available on the Coding Plan.\n\n \n \n Create or copy an API key from [home.qwencloud.com/api-keys](https://home.qwencloud.com/api-keys).\n \n \n For the **Global** endpoint:\n\n ```bash\n openclaw onboard --auth-choice qwen-standard-api-key\n ```\n\n For the **China** endpoint:\n\n ```bash\n openclaw onboard --auth-choice qwen-standard-api-key-cn\n ```\n \n \n ```json5\n {\n agents: {\n defaults: {\n model: { primary: \"qwen/qwen3.5-plus\" },\n },\n },\n }\n ```\n \n \n ```bash\n openclaw models list --provider qwen\n ```\n \n \n\n \n Legacy `modelstudio-*` auth-choice ids and `modelstudio/...` model refs still\n work as compatibility aliases, but new setup flows should prefer the canonical\n `qwen-*` auth-choice ids and `qwen/...` model refs. If you define an exact\n custom `models.providers.modelstudio` entry with another `api` value, that\n custom provider owns `modelstudio/...` refs instead of the Qwen compatibility\n alias.\n \n\n \n\n \n **Best for:** credit-based team subscription access to Qwen and supported third-party models through Alibaba Cloud Model Studio.\n\n \n \n Assign a Token Plan seat and create its dedicated `sk-sp-...` key. Token Plan, Coding Plan, and pay-as-you-go keys are not interchangeable. See the [Global Token Plan overview](https://www.alibabacloud.com/help/en/model-studio/token-plan-overview) or [China Token Plan overview](https://help.aliyun.com/zh/model-studio/token-plan-overview).\n \n \n For the **Global / International** endpoint in Singapore:\n\n ```bash\n openclaw onboard --auth-choice qwen-token-plan\n ```\n\n For the **China** endpoint in Beijing:\n\n ```bash\n openclaw onboard --auth-choice qwen-token-plan-cn\n ```\n \n \n ```bash\n openclaw models list --provider qwen-token-plan\n openclaw agent --model qwen-token-plan/qwen3.7-plus --message \"Reply with: token plan ready\"\n ```\n \n \n\n \n Alibaba's OpenClaw guide uses `bailian-token-plan` for a manual custom\n provider. The plugin registers that id as a compatibility owner, but new\n configs should use `qwen-token-plan`. An exact custom\n `models.providers.bailian-token-plan` entry keeps ownership of its configured\n transport and catalog; it is never merged into the canonical OpenAI catalog.\n \n\n \n Use Token Plan only for interactive OpenClaw sessions. Do not select it for\n cron jobs, unattended scripts, or application backends. Alibaba states that\n non-interactive use can suspend the subscription or revoke its API key.\n \n\n \n\n \n **Best for:** a Qwen Portal token against `https://portal.qwen.ai/v1`.\n\n See [Qwen OAuth / Portal](/providers/qwen-oauth) for the dedicated provider\n page and migration notes.\n\n \n \n ```bash\n openclaw onboard --auth-choice qwen-oauth\n ```\n \n \n ```json5\n {\n agents: {\n defaults: {\n model: { primary: \"qwen-oauth/qwen3.5-plus\" },\n },\n },\n }\n ```\n \n \n ```bash\n openclaw models list --provider qwen-oauth\n ```\n \n \n\n \n `qwen-oauth` uses the same `QWEN_API_KEY` env var name as the Qwen Cloud\n provider, but stores auth under the `qwen-oauth` provider id when configured\n through OpenClaw onboarding.\n \n\n \n\n\n## Plan types and endpoints\n\n| Plan | Region | Auth choice | Endpoint |\n| -------------------------- | ------ | -------------------------- | ---------------------------------------------------------------- |\n| Coding Plan (subscription) | China | `qwen-api-key-cn` | `coding.dashscope.aliyuncs.com/v1` |\n| Coding Plan (subscription) | Global | `qwen-api-key` | `coding-intl.dashscope.aliyuncs.com/v1` |\n| Qwen Portal | Global | `qwen-oauth` | `portal.qwen.ai/v1` |\n| Standard (pay-as-you-go) | China | `qwen-standard-api-key-cn` | `dashscope.aliyuncs.com/compatible-mode/v1` |\n| Standard (pay-as-you-go) | Global | `qwen-standard-api-key` | `dashscope-intl.aliyuncs.com/compatible-mode/v1` |\n| Token Plan (Team Edition) | China | `qwen-token-plan-cn` | `token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1` |\n| Token Plan (Team Edition) | Global | `qwen-token-plan` | `token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1` |\n\nThe provider auto-selects the endpoint based on your auth choice. Canonical\nchoices use the `qwen-*` family; `modelstudio-*` remains compatibility-only.\nOverride with a custom `baseUrl` in config.\n\n\n**Manage keys:** [home.qwencloud.com/api-keys](https://home.qwencloud.com/api-keys) |\n**Docs:** [docs.qwencloud.com](https://docs.qwencloud.com/developer-guides/getting-started/introduction)\n\n\n## Built-in catalog\n\nOpenClaw ships this Qwen static catalog. The catalog is endpoint-aware: Coding\nPlan configs omit models that only work on the Standard endpoint.\n\n| Model ref | Input | Context | Notes |\n| --------------------------- | ----------- | --------- | ----------------------- |\n| `qwen/qwen3.5-plus` | text, image | 1,000,000 | Default model |\n| `qwen/qwen3.6-flash` | text, image | 1,000,000 | Standard endpoints only |\n| `qwen/qwen3.6-plus` | text, image | 1,000,000 | Coding Plan + Standard |\n| `qwen/qwen3.7-max` | text | 1,000,000 | Standard endpoints only |\n| `qwen/qwen3.7-plus` | text, image | 1,000,000 | Coding Plan + Standard |\n| `qwen/qwen3-max-2026-01-23` | text | 262,144 | Qwen Max line |\n| `qwen/qwen3-coder-next` | text | 262,144 | Coding |\n| `qwen/qwen3-coder-plus` | text | 1,000,000 | Coding |\n| `qwen/MiniMax-M2.5` | text | 1,000,000 | Reasoning enabled |\n| `qwen/glm-5` | text | 202,752 | GLM |\n| `qwen/glm-4.7` | text | 202,752 | GLM |\n| `qwen/kimi-k2.5` | text, image | 262,144 | Moonshot AI via Alibaba |\n| `qwen-oauth/qwen3.5-plus` | text, image | 1,000,000 | Qwen Portal default |\n\n\nAvailability can still vary by endpoint and billing plan even when a model is\npresent in the static catalog.\n\n\n### Token Plan catalog\n\nToken Plan uses a separate exact-string allowlist. Image-generation-only plan\nmodels are not included here because they use different APIs.\n\n| Model ref | Input | Context |\n| ----------------------------------- | ----------- | --------- |\n| `qwen-token-plan/qwen3.7-max` | text | 1,000,000 |\n| `qwen-token-plan/qwen3.7-plus` | text, image | 1,000,000 |\n| `qwen-token-plan/qwen3.6-plus` | text, image | 1,000,000 |\n| `qwen-token-plan/qwen3.6-flash` | text, image | 1,000,000 |\n| `qwen-token-plan/deepseek-v4-pro` | text | 1,000,000 |\n| `qwen-token-plan/deepseek-v4-flash` | text | 1,000,000 |\n| `qwen-token-plan/deepseek-v3.2` | text | 131,072 |\n| `qwen-token-plan/kimi-k2.7-code` | text, image | 262,144 |\n| `qwen-token-plan/kimi-k2.6` | text, image | 262,144 |\n| `qwen-token-plan/kimi-k2.5` | text, image | 262,144 |\n| `qwen-token-plan/glm-5.2` | text | 1,000,000 |\n| `qwen-token-plan/glm-5.1` | text | 202,752 |\n| `qwen-token-plan/glm-5` | text | 202,752 |\n| `qwen-token-plan/MiniMax-M2.5` | text | 196,608 |\n\n## Thinking controls\n\n`qwen3.7-max`, `qwen3.7-plus`, `qwen3.6-flash`, and `qwen3.6-plus` are\nreasoning-enabled in the built-in catalog. For reasoning models on the `qwen`\nfamily, the provider maps OpenClaw thinking levels to DashScope's top-level\n`enable_thinking` request flag: disabled thinking sends `enable_thinking: false`,\nany other level sends `enable_thinking: true`. Custom models can opt into an\nalternate chat-template thinking payload by setting\n`compat.thinkingFormat: \"qwen-chat-template\"` on the model entry.\n\nToken Plan models are also marked reasoning-capable. `kimi-k2.7-code` and\n`MiniMax-M2.5` are thinking-only, so OpenClaw keeps thinking enabled even when\nthe session requests `/think off`. DeepSeek V4 maps `minimal` through `high` to\nthe service's `high` effort and maps `xhigh` or `max` to `max`. GLM 5.2 accepts\nthe full `minimal` through `max` range; GLM 5.1 and GLM 5 accept through\n`xhigh`, and all three default to `high`. Other hybrid models follow the\nrequested on/off state.\n\n## Multimodal add-ons\n\nThe `qwen` plugin exposes multimodal capabilities on the **Standard** DashScope\nendpoints only, not the Coding Plan endpoints:\n\n- **Image and video understanding** via `qwen-vl-max-latest`\n- **Wan video generation** via `wan2.6-t2v` (default), `wan2.6-i2v`, `wan2.6-r2v`, `wan2.6-r2v-flash`, `wan2.7-r2v`\n\nMedia understanding is auto-resolved from the configured Qwen auth; no extra\nconfig is needed. Make sure you are on a Standard (pay-as-you-go) endpoint for\nmedia understanding to work.\n\nTo make Qwen the default video provider:\n\n```json5\n{\n agents: {\n defaults: {\n videoGenerationModel: { primary: \"qwen/wan2.6-t2v\" },\n },\n },\n}\n```\n\nVideo-generation limits: 1 output video per request, up to 1 input image\n(image-to-video), up to 4 input videos (video-to-video), max 10 seconds\nduration. Supports `size`, `aspectRatio`, `resolution`, `audio`, and\n`watermark`. Reference image/video inputs require remote http(s) URLs; local\nfile paths are rejected up front because the DashScope video endpoint does not\naccept uploaded local buffers for those references.\n\n\nSee [Video generation](/tools/video-generation) for shared tool parameters, provider selection, and failover behavior.\n\n\n## Advanced configuration\n\n\n \n `qwen3.7-plus` and `qwen3.6-plus` are available on Coding Plan and Standard endpoints. `qwen3.7-max` and `qwen3.6-flash` are Standard-only. The Standard (pay-as-you-go) endpoints are:\n\n - China: `dashscope.aliyuncs.com/compatible-mode/v1`\n - Global: `dashscope-intl.aliyuncs.com/compatible-mode/v1`\n\n OpenClaw omits `qwen3.7-max` and `qwen3.6-flash` from Coding Plan catalogs.\n If a Coding Plan endpoint returns an \"unsupported model\" error for either,\n switch to the matching Standard endpoint and key.\n\n \n\n \n OpenClaw maps the configured Qwen region to the matching DashScope AIGC host\n before submitting a video job:\n\n - Global/Intl: `https://dashscope-intl.aliyuncs.com`\n - China: `https://dashscope.aliyuncs.com`\n\n A normal `models.providers.qwen.baseUrl` pointing at either the Coding Plan\n or Standard Qwen hosts still routes video generation to the matching\n regional DashScope video endpoint.\n\n \n\n \n Native Qwen endpoints advertise streaming usage compatibility on the shared\n `openai-completions` transport, so DashScope-compatible custom provider ids\n targeting the same native hosts inherit the same behavior without requiring\n the built-in `qwen` provider id specifically. This applies to Coding Plan,\n Standard, and Token Plan endpoints:\n\n - `https://coding.dashscope.aliyuncs.com/v1`\n - `https://coding-intl.dashscope.aliyuncs.com/v1`\n - `https://dashscope.aliyuncs.com/compatible-mode/v1`\n - `https://dashscope-intl.aliyuncs.com/compatible-mode/v1`\n - `https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1`\n - `https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1`\n\n \n\n \n The `qwen` plugin is being positioned as the vendor home for the full Qwen\n Cloud surface, not just coding/text models.\n\n - **Text/chat models:** available through the plugin\n - **Tool calling, structured output, thinking:** inherited from the OpenAI-compatible transport\n - **Image generation:** planned at the provider-plugin layer\n - **Image/video understanding:** available through the plugin on the Standard endpoint\n - **Speech/audio:** planned at the provider-plugin layer\n - **Memory embeddings/reranking:** planned through the embedding adapter surface\n - **Video generation:** available through the plugin through the shared video-generation capability\n\n \n\n \n If the Gateway runs as a daemon (launchd/systemd), make sure `QWEN_API_KEY`\n or `QWEN_TOKEN_PLAN_API_KEY` is available to that process (for example, in\n `~/.openclaw/.env` or via `env.shellEnv`).\n \n\n\n## Related\n\n\n \n Choosing providers, model refs, and failover behavior.\n \n \n Shared video tool parameters and provider selection.\n \n \n Bundled Wan video generation provider on the same DashScope platform.\n \n \n General troubleshooting and FAQ.\n \n\n"}}, "extensions/longcat/openclaw.plugin.json": {"f1ae41d2f8401c06df6281ef666831ea7d832f7b": {"t": 1785674287.6375544, "n": 2017, "h": "c953155b8c9a7aa6", "c": "{\n \"id\": \"longcat\",\n \"name\": \"LongCat\",\n \"description\": \"OpenClaw LongCat provider plugin.\",\n \"activation\": {\n \"onStartup\": false\n },\n \"enabledByDefault\": true,\n \"providers\": [\"longcat\"],\n \"providerRequest\": {\n \"providers\": {\n \"longcat\": {\n \"family\": \"longcat\"\n }\n }\n },\n \"modelCatalog\": {\n \"providers\": {\n \"longcat\": {\n \"baseUrl\": \"https://api.longcat.chat/openai\",\n \"api\": \"openai-completions\",\n \"models\": [\n {\n \"id\": \"LongCat-2.0\",\n \"name\": \"LongCat 2.0\",\n \"reasoning\": true,\n \"input\": [\"text\"],\n \"contextWindow\": 1048576,\n \"maxTokens\": 131072,\n \"cost\": {\n \"input\": 0.75,\n \"output\": 2.95,\n \"cacheRead\": 0.015,\n \"cacheWrite\": 0.75\n },\n \"compat\": {\n \"supportsStore\": false,\n \"supportsDeveloperRole\": false,\n \"supportsReasoningEffort\": false,\n \"supportsUsageInStreaming\": false,\n \"supportsStrictMode\": false,\n \"maxTokensField\": \"max_tokens\",\n \"requiresReasoningContentOnAssistantMessages\": true,\n \"thinkingFormat\": \"deepseek\"\n }\n }\n ]\n }\n },\n \"discovery\": {\n \"longcat\": \"static\"\n }\n },\n \"setup\": {\n \"providers\": [\n {\n \"id\": \"longcat\",\n \"envVars\": [\"LONGCAT_API_KEY\"]\n }\n ]\n },\n \"providerAuthChoices\": [\n {\n \"provider\": \"longcat\",\n \"method\": \"api-key\",\n \"choiceId\": \"longcat-api-key\",\n \"choiceLabel\": \"LongCat API key\",\n \"groupId\": \"longcat\",\n \"groupLabel\": \"LongCat\",\n \"groupHint\": \"API key\",\n \"optionKey\": \"longcatApiKey\",\n \"cliFlag\": \"--longcat-api-key\",\n \"cliOption\": \"--longcat-api-key \",\n \"cliDescription\": \"LongCat API key\"\n }\n ],\n \"configSchema\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {}\n }\n}\n"}}, "scripts/lib/official-external-provider-catalog.json": {"f1ae41d2f8401c06df6281ef666831ea7d832f7b": {"t": 1785674289.034942, "n": 58304, "h": "6619f3188fb0422a", "c": "{\n \"entries\": [\n {\n \"name\": \"@openclaw/amazon-bedrock-provider\",\n \"description\": \"OpenClaw Amazon Bedrock provider plugin\",\n \"source\": \"official\",\n \"kind\": \"provider\",\n \"openclaw\": {\n \"plugin\": {\n \"id\": \"amazon-bedrock\",\n \"label\": \"Amazon Bedrock\"\n },\n \"providers\": [\n {\n \"id\": \"amazon-bedrock\",\n \"name\": \"Amazon Bedrock\",\n \"docs\": \"/providers/bedrock\",\n \"categories\": [\"cloud\", \"llm\"]\n }\n ],\n \"install\": {\n \"npmSpec\": \"@openclaw/amazon-bedrock-provider\",\n \"defaultChoice\": \"npm\",\n \"minHostVersion\": \">=2026.5.12-beta.1\"\n }\n }\n },\n {\n \"name\": \"@openclaw/amazon-bedrock-mantle-provider\",\n \"description\": \"OpenClaw Amazon Bedrock Mantle provider plugin\",\n \"source\": \"official\",\n \"kind\": \"provider\",\n \"openclaw\": {\n \"plugin\": {\n \"id\": \"amazon-bedrock-mantle\",\n \"label\": \"Amazon Bedrock Mantle\"\n },\n \"providers\": [\n {\n \"id\": \"amazon-bedrock-mantle\",\n \"name\": \"Amazon Bedrock Mantle\",\n \"docs\": \"/providers/bedrock-mantle\",\n \"categories\": [\"cloud\", \"llm\"]\n }\n ],\n \"install\": {\n \"npmSpec\": \"@openclaw/amazon-bedrock-mantle-provider\",\n \"defaultChoice\": \"npm\",\n \"minHostVersion\": \">=2026.5.12-beta.1\"\n }\n }\n },\n {\n \"name\": \"@openclaw/anthropic-vertex-provider\",\n \"description\": \"OpenClaw Anthropic Vertex provider plugin\",\n \"source\": \"official\",\n \"kind\": \"provider\",\n \"openclaw\": {\n \"plugin\": {\n \"id\": \"anthropic-vertex\",\n \"label\": \"Anthropic Vertex\"\n },\n \"providers\": [\n {\n \"id\": \"anthropic-vertex\",\n \"name\": \"Anthropic Vertex\",\n \"docs\": \"/providers/models\",\n \"categories\": [\"cloud\", \"llm\"]\n }\n ],\n \"install\": {\n \"npmSpec\": \"@openclaw/anthropic-vertex-provider\",\n \"defaultChoice\": \"npm\",\n \"minHostVersion\": \">=2026.5.12-beta.1\"\n }\n }\n },\n {\n \"name\": \"@openclaw/arcee-provider\",\n \"description\": \"OpenClaw Arcee provider plugin.\",\n \"source\": \"official\",\n \"kind\": \"provider\",\n \"openclaw\": {\n \"plugin\": {\n \"id\": \"arcee\",\n \"label\": \"Arcee AI\"\n },\n \"providers\": [\n {\n \"id\": \"arcee\",\n \"name\": \"Arcee AI\",\n \"docs\": \"/providers/arcee\",\n \"categories\": [\n \"cloud\",\n \"llm\"\n ],\n \"envVars\": [\n \"ARCEEAI_API_KEY\"\n ],\n \"authChoices\": [\n {\n \"method\": \"arcee-platform\",\n \"choiceId\": \"arceeai-api-key\",\n \"choiceLabel\": \"Arcee AI API key\",\n \"choiceHint\": \"Direct (chat.arcee.ai)\",\n \"groupId\": \"arcee\",\n \"groupLabel\": \"Arcee AI\",\n \"groupHint\": \"Direct API or OpenRouter\",\n \"optionKey\": \"arceeaiApiKey\",\n \"cliFlag\": \"--arceeai-api-key\",\n \"cliOption\": \"--arceeai-api-key \",\n \"cliDescription\": \"Arcee AI API key\",\n \"onboardingScopes\": [\n \"text-inference\"\n ]\n },\n {\n \"method\": \"openrouter\",\n \"choiceId\": \"arceeai-openrouter\",\n \"choiceLabel\": \"OpenRouter API key\",\n \"choiceHint\": \"Via OpenRouter (openrouter.ai)\",\n \"groupId\": \"arcee\",\n \"groupLabel\": \"Arcee AI\",\n \"groupHint\": \"Direct API or OpenRouter\",\n \"optionKey\": \"openrouterApiKey\",\n \"cliFlag\": \"--openrouter-api-key\",\n \"cliOption\": \"--openrouter-api-key \",\n \"cliDescription\": \"OpenRouter API key for Arcee AI models\",\n \"onboardingScopes\": [\n \"text-inference\"\n ]\n }\n ]\n }\n ],\n \"install\": {\n \"clawhubSpec\": \"clawhub:@openclaw/arcee-provider\",\n \"npmSpec\": \"@openclaw/arcee-provider\",\n \"defaultChoice\": \"npm\",\n \"minHostVersion\": \">=2026.6.8\"\n }\n }\n },\n {\n \"name\": \"@openclaw/cerebras-provider\",\n \"description\": \"OpenClaw Cerebras provider plugin.\",\n \"source\": \"official\",\n \"kind\": \"provider\",\n \"openclaw\": {\n \"plugin\": {\n \"id\": \"cerebras\",\n \"label\": \"Cerebras\"\n },\n \"providerEndpoints\": [\n {\n \"endpointClass\": \"cerebras-native\",\n \"hosts\": [\n \"api.cerebras.ai\"\n ]\n }\n ],\n \"providers\": [\n {\n \"id\": \"cerebras\",\n \"name\": \"Cerebras\",\n \"docs\": \"/providers/cerebras\",\n \"categories\": [\n \"cloud\",\n \"llm\"\n ],\n \"envVars\": [\n \"CEREBRAS_API_KEY\"\n ],\n \"authChoices\": [\n {\n \"method\": \"api-key\",\n \"choiceId\": \"cerebras-api-key\",\n \"choiceLabel\": \"Cerebras API key\",\n \"groupId\": \"cerebras\",\n \"groupLabel\": \"Cerebras\",\n \"groupHint\": \"Fast OpenAI-compatible inference\",\n \"optionKey\": \"cerebrasApiKey\",\n \"cliFlag\": \"--cerebras-api-key\",\n \"cliOption\": \"--cerebras-api-key \",\n \"cliDescription\": \"Cerebras API key\",\n \"onboardingScopes\": [\n \"text-inference\"\n ]\n }\n ]\n }\n ],\n \"install\": {\n \"clawhubSpec\": \"clawhub:@openclaw/cerebras-provider\",\n \"npmSpec\": \"@openclaw/cerebras-provider\",\n \"defaultChoice\": \"npm\",\n \"minHostVersion\": \">=2026.6.8\"\n }\n }\n },\n {\n \"name\": \"@openclaw/chutes-provider\",\n \"description\": \"OpenClaw Chutes.ai provider plugin.\",\n \"source\": \"official\",\n \"kind\": \"provider\",\n \"openclaw\": {\n \"plugin\": {\n \"id\": \"chutes\",\n \"label\": \"Chutes\"\n },\n \"providerEndpoints\": [\n {\n \"endpointClass\": \"chutes-native\",\n \"hosts\": [\n \"llm.chutes.ai\"\n ]\n }\n ],\n \"providers\": [\n {\n \"id\": \"chutes\",\n \"name\": \"Chutes\",\n \"docs\": \"/providers/chutes\",\n \"categories\": [\n \"cloud\",\n \"llm\"\n ],\n \"envVars\": [\n \"CHUTES_API_KEY\",\n \"CHUTES_OAUTH_TOKEN\"\n ],\n \"authChoices\": [\n {\n \"method\": \"oauth\",\n \"choiceId\": \"chutes\",\n \"choiceLabel\": \"Chutes (OAuth)\",\n \"choiceHint\": \"Browser sign-in\",\n \"groupId\": \"chutes\",\n \"groupLabel\": \"Chutes\",\n \"groupHint\": \"OAuth + API key\",\n \"onboardingScopes\": [\n \"text-inference\"\n ]\n },\n {\n \"method\": \"api-key\",\n \"choiceId\": \"chutes-api-key\",\n \"choiceLabel\": \"Chutes API key\",\n \"choiceHint\": \"Open-source models including Llama, DeepSeek, and more\",\n \"groupId\": \"chutes\",\n \"groupLabel\": \"Chutes\",\n \"groupHint\": \"OAuth + API key\",\n \"optionKey\": \"chutesApiKey\",\n \"cliFlag\": \"--chutes-api-key\",\n \"cliOption\": \"--chutes-api-key \",\n \"cliDescription\": \"Chutes API key\",\n \"onboardingScopes\": [\n \"text-inference\"\n ]\n }\n ]\n }\n ],\n \"install\": {\n \"clawhubSpec\": \"clawhub:@openclaw/chutes-provider\",\n \"npmSpec\": \"@openclaw/chutes-provider\",\n \"defaultChoice\": \"npm\",\n \"minHostVersion\": \">=2026.6.8\"\n }\n }\n },\n {\n \"name\": \"@openclaw/cohere-provider\",\n \"description\": \"OpenClaw Cohere provider plugin\",\n \"source\": \"official\",\n \"kind\": \"provider\",\n \"openclaw\": {\n \"plugin\": {\n \"id\": \"cohere\",\n \"label\": \"Cohere\"\n },\n \"providers\": [\n {\n \"id\": \"cohere\",\n \"name\": \"Cohere\",\n \"docs\": \"/providers/cohere\",\n \"categories\": [\n \"cloud\",\n \"llm\"\n ],\n \"authChoices\": [\n {\n \"method\": \"api-key\",\n \"choiceId\": \"cohere-api-key\",\n \"choiceLabel\": \"Cohere API key\",\n \"groupId\": \"cohere\",\n \"groupLabel\": \"Cohere\",\n \"groupHint\": \"OpenAI-compatible inference\",\n \"optionKey\": \"cohereApiKey\",\n \"cliFlag\": \"--cohere-api-key\",\n \"cliOption\": \"--cohere-api-key \",\n \"cliDescription\": \"Cohere API key\",\n \"onboardingScopes\": [\n \"text-inference\"\n ]\n }\n ]\n }\n ],\n \"install\": {\n \"clawhubSpec\": \"clawhub:@openclaw/cohere-provider\",\n \"npmSpec\": \"@openclaw/cohere-provider\",\n \"defaultChoice\": \"npm\",\n \"minHostVersion\": \">=2026.6.8\"\n }\n }\n },\n {\n \"name\": \"@openclaw/cloudflare-ai-gateway-provider\",\n \"description\": \"OpenClaw Cloudflare AI Gateway provider plugin.\",\n \"source\": \"official\",\n \"kind\": \"provider\",\n \"openclaw\": {\n \"plugin\": {\n \"id\": \"cloudflare-ai-gateway\",\n \"label\": \"Cloudflare AI Gateway\"\n },\n \"providers\": [\n {\n \"id\": \"cloudflare-ai-gateway\",\n \"name\": \"Cloudflare AI Gateway\",\n \"docs\": \"/providers/cloudflare-ai-gateway\",\n \"categories\": [\n \"cloud\",\n \"llm\"\n ],\n \"envVars\": [\n \"CLOUDFLARE_AI_GATEWAY_API_KEY\"\n ],\n \"authChoices\": [\n {\n \"method\": \"api-key\",\n \"choiceId\": \"cloudflare-ai-gateway-api-key\",\n \"choiceLabel\": \"Cloudflare AI Gateway\",\n \"choiceHint\": \"Account ID + Gateway ID + API key\",\n \"groupId\": \"cloudflare-ai-gateway\",\n \"groupLabel\": \"Cloudflare AI Gateway\",\n \"groupHint\": \"Account ID + Gateway ID + API key\",\n \"optionKey\": \"cloudflareAiGatewayApiKey\",\n \"cliFlag\": \"--cloudflare-ai-gateway-api-key\",\n \"cliOption\": \"--cloudflare-ai-gateway-api-key \",\n \"cliDescription\": \"Cloudflare AI Gateway API key\",\n \"onboardingScopes\": [\n \"text-inference\"\n ]\n }\n ]\n }\n ],\n \"install\": {\n \"clawhubSpec\": \"clawhub:@openclaw/cloudflare-ai-gateway-provider\",\n \"npmSpec\": \"@openclaw/cloudflare-ai-gateway-provider\",\n \"defaultChoice\": \"npm\",\n \"minHostVersion\": \">=2026.6.8\"\n }\n }\n },\n {\n \"name\": \"@openclaw/codex\",\n \"description\": \"OpenClaw Codex harness and model provider plugin\",\n \"source\": \"official\",\n \"kind\": \"provider\",\n \"openclaw\": {\n \"plugin\": {\n \"id\": \"codex\",\n \"label\": \"Codex\"\n },\n \"contracts\": {\n \"migrationProviders\": [\"codex\"]\n },\n \"providers\": [\n {\n \"id\": \"codex\",\n \"name\": \"Codex\",\n \"docs\": \"/providers/models\",\n \"categories\": [\"cloud\", \"llm\"],\n \"authChoices\": [\n {\n \"method\": \"app-server\",\n \"choiceId\": \"codex\",\n \"choiceLabel\": \"Codex app-server\",\n \"choiceHint\": \"Use the Codex app-server runtime and managed model catalog.\",\n \"assistantPriority\": -40,\n \"groupId\": \"codex\",\n \"groupLabel\": \"Codex\",\n \"groupHint\": \"Codex app-server model provider\",\n \"onboardingScopes\": [\"text-inference\"]\n }\n ]\n }\n ],\n \"install\": {\n \"npmSpec\": \"@openclaw/codex\",\n \"defaultChoice\": \"npm\",\n \"minHostVersion\": \">=2026.5.1-beta.1\"\n }\n }\n },\n {\n \"name\": \"@openclaw/deepinfra-provider\",\n \"description\": \"OpenClaw DeepInfra provider plugin.\",\n \"source\": \"official\",\n \"kind\": \"provider\",\n \"openclaw\": {\n \"plugin\": {\n \"id\": \"deepinfra\",\n \"label\": \"DeepInfra\"\n },\n \"providerEndpoints\": [\n {\n \"endpointClass\": \"deepinfra-native\",\n \"hosts\": [\n \"api.deepinfra.com\"\n ]\n }\n ],\n \"providers\": [\n {\n \"id\": \"deepinfra\",\n \"name\": \"DeepInfra\",\n \"docs\": \"/providers/deepinfra\",\n \"categories\": [\n \"cloud\",\n \"llm\"\n ],\n \"envVars\": [\n \"DEEPINFRA_API_KEY\"\n ],\n \"authChoices\": [\n {\n \"method\": \"api-key\",\n \"choiceId\": \"deepinfra-api-key\",\n \"choiceLabel\": \"DeepInfra API key\",\n \"choiceHint\": \"Unified API for open source models\",\n \"groupId\": \"deepinfra\",\n \"groupLabel\": \"DeepInfra\",\n \"groupHint\": \"Unified API for open source models\",\n \"optionKey\": \"deepinfraApiKey\",\n \"cliFlag\": \"--deepinfra-api-key\",\n \"cliOption\": \"--deepinfra-api-key \",\n \"cliDescription\": \"DeepInfra API key\",\n \"onboardingScopes\": [\n \"text-inference\"\n ]\n }\n ]\n }\n ],\n \"contracts\": {\n \"mediaUnderstandingProviders\": [\n \"deepinfra\"\n ],\n \"memoryEmbeddingProviders\": [\n \"deepinfra\"\n ],\n \"imageGenerationProviders\": [\n \"deepinfra\"\n ],\n \"speechProviders\": [\n \"deepinfra\"\n ],\n \"videoGenerationProviders\": [\n \"deepinfra\"\n ]\n },\n \"install\": {\n \"clawhubSpec\": \"clawhub:@openclaw/deepinfra-provider\",\n \"npmSpec\": \"@openclaw/deepinfra-provider\",\n \"defaultChoice\": \"npm\",\n \"minHostVersion\": \">=2026.6.8\"\n }\n }\n },\n {\n \"name\": \"@openclaw/deepseek-provider\",\n \"description\": \"OpenClaw DeepSeek provider plugin.\",\n \"source\": \"official\",\n \"kind\": \"provider\",\n \"openclaw\": {\n \"plugin\": {\n \"id\": \"deepseek\",\n \"label\": \"DeepSeek\"\n },\n \"providerEndpoints\": [\n {\n \"endpointClass\": \"deepseek-native\",\n \"hosts\": [\n \"api.deepseek.com\"\n ]\n }\n ],\n \"providers\": [\n {\n \"id\": \"deepseek\",\n \"name\": \"DeepSeek\",\n \"docs\": \"/providers/deepseek\",\n \"categories\": [\n \"cloud\",\n \"llm\"\n ],\n \"envVars\": [\n \"DEEPSEEK_API_KEY\"\n ],\n \"authChoices\": [\n {\n \"method\": \"api-key\",\n \"choiceId\": \"deepseek-api-key\",\n \"choiceLabel\": \"DeepSeek API key\",\n \"groupId\": \"deepseek\",\n \"groupLabel\": \"DeepSeek\",\n \"groupHint\": \"API key\",\n \"optionKey\": \"deepseekApiKey\",\n \"cliFlag\": \"--deepseek-api-key\",\n \"cliOption\": \"--deepseek-api-key \",\n \"cliDescription\": \"DeepSeek API key\",\n \"onboardingScopes\": [\n \"text-inference\"\n ]\n }\n ]\n }\n ],\n \"install\": {\n \"clawhubSpec\": \"clawhub:@openclaw/deepseek-provider\",\n \"npmSpec\": \"@openclaw/deepseek-provider\",\n \"defaultChoice\": \"npm\",\n \"minHostVersion\": \">=2026.6.8\"\n }\n }\n },\n {\n \"name\": \"@openclaw/featherless-provider\",\n \"description\": \"OpenClaw Featherless AI provider plugin.\",\n \"source\": \"official\",\n \"kind\": \"provider\",\n \"openclaw\": {\n \"plugin\": {\n \"id\": \"featherless\",\n \"label\": \"Featherless AI\"\n },\n \"providers\": [\n {\n \"id\": \"featherless\",\n \"name\": \"Featherless AI\",\n \"docs\": \"/providers/featherless\",\n \"categories\": [\n \"cloud\",\n \"llm\"\n ],\n \"envVars\": [\n \"FEATHERLESS_API_KEY\"\n ],\n \"authChoices\": [\n {\n \"method\": \"api-key\",\n \"choiceId\": \"featherless-api-key\",\n \"choiceLabel\": \"Featherless AI API key\",\n \"choiceHint\": \"OpenAI-compatible access to open models\",\n \"groupId\": \"featherless\",\n \"groupLabel\": \"Featherless AI\",\n \"groupHint\": \"OpenAI-compatible access to open models\",\n \"optionKey\": \"featherlessApiKey\",\n \"cliFlag\": \"--featherless-api-key\",\n \"cliOption\": \"--featherless-api-key \",\n \"cliDescription\": \"Featherless AI API key\",\n \"onboardingScopes\": [\n \"text-inference\"\n ]\n }\n ]\n }\n ],\n \"install\": {\n \"clawhubSpec\": \"clawhub:@openclaw/featherless-provider\",\n \"npmSpec\": \"@openclaw/featherless-provider\",\n \"defaultChoice\": \"npm\",\n \"minHostVersion\": \">=2026.6.11\"\n }\n }\n },\n {\n \"name\": \"@openclaw/gmi-provider\",\n \"description\": \"OpenClaw GMI Cloud provider plugin\",\n \"source\": \"official\",\n \"kind\": \"provider\",\n \"openclaw\": {\n \"plugin\": {\n \"id\": \"gmi\",\n \"label\": \"GMI Cloud\"\n },\n \"providerEndpoints\": [\n {\n \"endpointClass\": \"gmi-native\",\n \"hosts\": [\n \"api.gmi-serving.com\"\n ]\n }\n ],\n \"providers\": [\n {\n \"id\": \"gmi\",\n \"aliases\": [\"gmi-cloud\", \"gmicloud\"],\n \"name\": \"GMI Cloud\",\n \"docs\": \"/providers/gmi\",\n \"categories\": [\"cloud\", \"llm\"],\n \"authChoices\": [\n {\n \"method\": \"api-key\",\n \"choiceId\": \"gmi-api-key\",\n \"choiceLabel\": \"GMI Cloud API key\",\n \"choiceHint\": \"OpenAI-compatible GMI Cloud endpoint.\",\n \"groupId\": \"gmi\",\n \"groupLabel\": \"GMI Cloud\",\n \"groupHint\": \"OpenAI-compatible GMI Cloud endpoint\",\n \"optionKey\": \"gmiApiKey\",\n \"cliFlag\": \"--gmi-api-key\",\n \"cliOption\": \"--gmi-api-key \",\n \"cliDescription\": \"GMI Cloud API key\",\n \"onboardingScopes\": [\"text-inference\"]\n }\n ]\n }\n ],\n \"install\": {\n \"clawhubSpec\": \"clawhub:@openclaw/gmi-provider\",\n \"npmSpec\": \"@openclaw/gmi-provider\",\n \"defaultChoice\": \"npm\",\n \"minHostVersion\": \">=2026.6.8\"\n }\n }\n },\n {\n \"name\": \"@openclaw/longcat-provider\",\n \"description\": \"OpenClaw LongCat provider plugin\",\n \"source\": \"official\",\n \"kind\": \"provider\",\n \"openclaw\": {\n \"plugin\": {\n \"id\": \"longcat\",\n \"label\": \"LongCat\"\n },\n \"providers\": [\n {\n \"id\": \"longcat\",\n \"aliases\": [\"meituan-longcat\"],\n \"name\": \"LongCat\",\n \"docs\": \"/providers/longcat\",\n \"categories\": [\"cloud\", \"llm\"],\n \"envVars\": [\"LONGCAT_API_KEY\"],\n \"authChoices\": [\n {\n \"method\": \"api-key\",\n \"choiceId\": \"longcat-api-key\",\n \"choiceLabel\": \"LongCat API key\",\n \"groupId\": \"longcat\",\n \"groupLabel\": \"LongCat\",\n \"groupHint\": \"OpenAI-compatible LongCat API\",\n \"optionKey\": \"longcatApiKey\",\n \"cliFlag\": \"--longcat-api-key\",\n \"cliOption\": \"--longcat-api-key \",\n \"cliDescription\": \"LongCat API key\",\n \"onboardingScopes\": [\"text-inference\"]\n }\n ]\n }\n ],\n \"install\": {\n \"clawhubSpec\": \"clawhub:@openclaw/longcat-provider\",\n \"npmSpec\": \"@openclaw/longcat-provider\",\n \"defaultChoice\": \"npm\",\n \"minHostVersion\": \">=2026.6.8\"\n }\n }\n },\n {\n \"name\": \"@openclaw/meta-provider\",\n \"description\": \"OpenClaw Meta provider plugin.\",\n \"source\": \"official\",\n \"kind\": \"provider\",\n \"openclaw\": {\n \"plugin\": {\n \"id\": \"meta\",\n \"label\": \"Meta\"\n },\n \"providerEndpoints\": [\n {\n \"endpointClass\": \"meta-native\",\n \"hosts\": [\"api.meta.ai\"]\n }\n ],\n \"providers\": [\n {\n \"id\": \"meta\",\n \"name\": \"Meta\",\n \"docs\": \"/providers/meta\",\n \"categories\": [\"cloud\", \"llm\"],\n \"envVars\": [\"MODEL_API_KEY\"],\n \"authChoices\": [\n {\n \"method\": \"api-key\",\n \"choiceId\": \"meta-api-key\",\n \"choiceLabel\": \"Meta API key\",\n \"choiceHint\": \"Meta (Responses API)\",\n \"groupId\": \"meta\",\n \"groupLabel\": \"Meta\",\n \"groupHint\": \"Meta (Responses API)\",\n \"optionKey\": \"metaApiKey\",\n \"cliFlag\": \"--meta-api-key\",\n \"cliOption\": \"--meta-api-key \",\n \"cliDescription\": \"Meta API key\",\n \"onboardingScopes\": [\"text-inference\"]\n }\n ]\n }\n ],\n \"install\": {\n \"clawhubSpec\": \"clawhub:@openclaw/meta-provider\",\n \"npmSpec\": \"@openclaw/meta-provider\",\n \"defaultChoice\": \"npm\",\n \"minHostVersion\": \">=2026.6.11\"\n }\n }\n },\n {\n \"name\": \"@openclaw/groq-provider\",\n \"description\": \"OpenClaw Groq media-understanding provider.\",\n \"source\": \"official\",\n \"kind\": \"provider\",\n \"openclaw\": {\n \"plugin\": {\n \"id\": \"groq\",\n \"label\": \"Groq\"\n },\n \"providerEndpoints\": [\n {\n \"endpointClass\": \"groq-native\",\n \"hosts\": [\n \"api.groq.com\"\n ]\n }\n ],\n \"providers\": [\n {\n \"id\": \"groq\",\n \"name\": \"Groq\",\n \"docs\": \"/providers/groq\",\n \"categories\": [\n \"cloud\",\n \"llm\"\n ],\n \"envVars\": [\n \"GROQ_API_KEY\"\n ],\n \"authChoices\": [\n {\n \"method\": \"api-key\",\n \"choiceId\": \"groq-api-key\",\n \"choiceLabel\": \"Groq API key\",\n \"groupId\": \"groq\",\n \"groupLabel\": \"Groq\",\n \"groupHint\": \"Fast OpenAI-compatible inference\",\n \"optionKey\": \"groqApiKey\",\n \"cliFlag\": \"--groq-api-key\",\n \"cliOption\": \"--groq-api-key \",\n \"cliDescription\": \"Groq API key\",\n \"onboardingScopes\": [\n \"text-inference\"\n ]\n }\n ]\n }\n ],\n \"contracts\": {\n \"mediaUnderstandingProviders\": [\n \"groq\"\n ]\n },\n \"install\": {\n \"clawhubSpec\": \"clawhub:@openclaw/groq-provider\",\n \"npmSpec\": \"@openclaw/groq-provider\",\n \"defaultChoice\": \"npm\",\n \"minHostVersion\": \">=2026.6.8\"\n }\n }\n },\n {\n \"name\": \"@openclaw/kilocode-provider\",\n \"description\": \"OpenClaw Kilo Gateway provider plugin.\",\n \"source\": \"official\",\n \"kind\": \"provider\",\n \"openclaw\": {\n \"plugin\": {\n \"id\": \"kilocode\",\n \"label\": \"Kilo Gateway\"\n },\n \"providers\": [\n {\n \"id\": \"kilocode\",\n \"name\": \"Kilo Gateway\",\n \"docs\": \"/providers/kilocode\",\n \"categories\": [\n \"cloud\",\n \"llm\"\n ],\n \"envVars\": [\n \"KILOCODE_API_KEY\"\n ],\n \"authChoices\": [\n {\n \"method\": \"api-key\",\n \"choiceId\": \"kilocode-api-key\",\n \"choiceLabel\": \"Kilo Gateway API key\",\n \"choiceHint\": \"API key (OpenRouter-compatible)\",\n \"groupId\": \"kilocode\",\n \"groupLabel\": \"Kilo Gateway\",\n \"groupHint\": \"API key (OpenRouter-compatible)\",\n \"optionKey\": \"kilocodeApiKey\",\n \"cliFlag\": \"--kilocode-api-key\",\n \"cliOption\": \"--kilocode-api-key \",\n \"cliDescription\": \"Kilo Gateway API key\",\n \"onboardingScopes\": [\n \"text-inference\"\n ]\n }\n ]\n }\n ],\n \"install\": {\n \"clawhubSpec\": \"clawhub:@openclaw/kilocode-provider\",\n \"npmSpec\": \"@openclaw/kilocode-provider\",\n \"defaultChoice\": \"npm\",\n \"minHostVersion\": \">=2026.6.8\"\n }\n }\n },\n {\n \"name\": \"@openclaw/kimi-provider\",\n \"description\": \"OpenClaw Kimi provider plugin.\",\n \"source\": \"official\",\n \"kind\": \"provider\",\n \"openclaw\": {\n \"plugin\": {\n \"id\": \"kimi\",\n \"label\": \"Kimi Coding\"\n },\n \"providers\": [\n {\n \"id\": \"kimi\",\n \"aliases\": [\n \"kimi-coding\"\n ],\n \"name\": \"Kimi Coding\",\n \"docs\": \"/providers/moonshot\",\n \"categories\": [\n \"cloud\",\n \"llm\"\n ],\n \"envVars\": [\n \"KIMI_API_KEY\",\n \"KIMICODE_API_KEY\"\n ],\n \"authChoices\": [\n {\n \"method\": \"api-key\",\n \"choiceId\": \"kimi-code-api-key\",\n \"choiceLabel\": \"Kimi Code API key (subscription)\",\n \"groupId\": \"moonshot\",\n \"groupLabel\": \"Moonshot AI (Kimi K2.6)\",\n \"groupHint\": \"Kimi K2.6\",\n \"optionKey\": \"kimiCodeApiKey\",\n \"cliFlag\": \"--kimi-code-api-key\",\n \"cliOption\": \"--kimi-code-api-key \",\n \"cliDescription\": \"Kimi Code API key (subscription)\",\n \"onboardingScopes\": [\n \"text-inference\"\n ]\n }\n ]\n }\n ],\n \"install\": {\n \"clawhubSpec\": \"clawhub:@openclaw/kimi-provider\",\n \"npmSpec\": \"@openclaw/kimi-provider\",\n \"defaultChoice\": \"npm\",\n \"minHostVersion\": \">=2026.6.8\"\n }\n }\n },\n {\n \"name\": \"@openclaw/pixverse-provider\",\n \"description\": \"OpenClaw PixVerse video provider plugin\",\n \"source\": \"official\",\n \"kind\": \"provider\",\n \"openclaw\": {\n \"plugin\": {\n \"id\": \"pixverse\",\n \"label\": \"PixVerse\"\n },\n \"providers\": [\n {\n \"id\": \"pixverse\",\n \"name\": \"PixVerse\",\n \"docs\": \"/providers/pixverse\",\n \"categories\": [\"cloud\", \"video\"],\n \"authChoices\": [\n {\n \"method\": \"api-key\",\n \"choiceId\": \"pixverse-api-key\",\n \"choiceLabel\": \"PixVerse API key\",\n \"choiceHint\": \"Wizard prompts for International or CN endpoint.\",\n \"groupId\": \"pixverse\",\n \"groupLabel\": \"PixVerse\",\n \"groupHint\": \"Video generation\",\n \"optionKey\": \"pixverseApiKey\",\n \"cliFlag\": \"--pixverse-api-key\",\n \"cliOption\": \"--pixverse-api-key \",\n \"cliDescription\": \"PixVerse API key\",\n \"onboardingScopes\": [\"image-generation\"]\n }\n ]\n }\n ],\n \"install\": {\n \"npmSpec\": \"@openclaw/pixverse-provider\",\n \"defaultChoice\": \"npm\",\n \"minHostVersion\": \">=2026.5.26\"\n }\n }\n },\n {\n \"name\": \"@openclaw/qianfan-provider\",\n \"description\": \"OpenClaw Qianfan provider plugin.\",\n \"source\": \"official\",\n \"kind\": \"provider\",\n \"openclaw\": {\n \"plugin\": {\n \"id\": \"qianfan\",\n \"label\": \"Qianfan\"\n },\n \"providers\": [\n {\n \"id\": \"qianfan\",\n \"name\": \"Qianfan\",\n \"docs\": \"/providers/qianfan\",\n \"categories\": [\n \"cloud\",\n \"llm\"\n ],\n \"envVars\": [\n \"QIANFAN_API_KEY\"\n ],\n \"authChoices\": [\n {\n \"method\": \"api-key\",\n \"choiceId\": \"qianfan-api-key\",\n \"choiceLabel\": \"Qianfan API key\",\n \"groupId\": \"qianfan\",\n \"groupLabel\": \"Qianfan\",\n \"groupHint\": \"API key\",\n \"optionKey\": \"qianfanApiKey\",\n \"cliFlag\": \"--qianfan-api-key\",\n \"cliOption\": \"--qianfan-api-key \",\n \"cliDescription\": \"QIANFAN API key\",\n \"onboardingScopes\": [\n \"text-inference\"\n ]\n }\n ]\n }\n ],\n \"install\": {\n \"clawhubSpec\": \"clawhub:@openclaw/qianfan-provider\",\n \"npmSpec\": \"@openclaw/qianfan-provider\",\n \"defaultChoice\": \"npm\",\n \"minHostVersion\": \">=2026.6.8\"\n }\n }\n },\n {\n \"name\": \"@openclaw/qwen-provider\",\n \"description\": \"OpenClaw Qwen Cloud provider plugin.\",\n \"source\": \"official\",\n \"kind\": \"provider\",\n \"openclaw\": {\n \"plugin\": {\n \"id\": \"qwen\",\n \"label\": \"Qwen Cloud\"\n },\n \"providerEndpoints\": [\n {\n \"endpointClass\": \"modelstudio-native\",\n \"baseUrls\": [\n \"https://coding-intl.dashscope.aliyuncs.com/v1\",\n \"https://coding.dashscope.aliyuncs.com/v1\",\n \"https://dashscope.aliyuncs.com/compatible-mode/v1\",\n \"https://dashscope-intl.aliyuncs.com/compatible-mode/v1\",\n \"https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1\",\n \"https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1\"\n ]\n },\n {\n \"endpointClass\": \"qwen-portal-native\",\n \"baseUrls\": [\n \"https://portal.qwen.ai/v1\"\n ]\n }\n ],\n \"providers\": [\n {\n \"id\": \"qwen\",\n \"aliases\": [\n \"qwencloud\",\n \"modelstudio\",\n \"dashscope\"\n ],\n \"name\": \"Qwen Cloud\",\n \"docs\": \"/providers/qwen\",\n \"categories\": [\n \"cloud\",\n \"llm\"\n ],\n \"envVars\": [\n \"QWEN_API_KEY\",\n \"MODELSTUDIO_API_KEY\",\n \"DASHSCOPE_API_KEY\"\n ],\n \"authChoices\": [\n {\n \"method\": \"standard-api-key-cn\",\n \"choiceId\": \"qwen-standard-api-key-cn\",\n \"deprecatedChoiceIds\": [\n \"modelstudio-standard-api-key-cn\"\n ],\n \"choiceLabel\": \"Standard API Key for China (pay-as-you-go)\",\n \"choiceHint\": \"Endpoint: dashscope.aliyuncs.com\",\n \"groupId\": \"qwen\",\n \"groupLabel\": \"Qwen Cloud\",\n \"groupHint\": \"Standard / Coding Plan (CN / Global) + multimodal roadmap\",\n \"optionKey\": \"modelstudioStandardApiKeyCn\",\n \"cliFlag\": \"--modelstudio-standard-api-key-cn\",\n \"cliOption\": \"--modelstudio-standard-api-key-cn \",\n \"cliDescription\": \"Qwen Cloud standard API key (China)\",\n \"onboardingScopes\": [\n \"text-inference\"\n ]\n },\n {\n \"method\": \"standard-api-key\",\n \"choiceId\": \"qwen-standard-api-key\",\n \"deprecatedChoiceIds\": [\n \"modelstudio-standard-api-key\"\n ],\n \"choiceLabel\": \"Standard API Key for Global/Intl (pay-as-you-go)\",\n \"choiceHint\": \"Endpoint: dashscope-intl.aliyuncs.com\",\n \"groupId\": \"qwen\",\n \"groupLabel\": \"Qwen Cloud\",\n \"groupHint\": \"Standard / Coding Plan (CN / Global) + multimodal roadmap\",\n \"optionKey\": \"modelstudioStandardApiKey\",\n \"cliFlag\": \"--modelstudio-standard-api-key\",\n \"cliOption\": \"--modelstudio-standard-api-key \",\n \"cliDescription\": \"Qwen Cloud standard API key (Global/Intl)\",\n \"onboardingScopes\": [\n \"text-inference\"\n ]\n },\n {\n \"method\": \"api-key-cn\",\n \"choiceId\": \"qwen-api-key-cn\",\n \"deprecatedChoiceIds\": [\n \"modelstudio-api-key-cn\"\n ],\n \"choiceLabel\": \"Coding Plan API Key for China (subscription)\",\n \"choiceHint\": \"Endpoint: coding.dashscope.aliyuncs.com\",\n \"groupId\": \"qwen\",\n \"groupLabel\": \"Qwen Cloud\",\n \"groupHint\": \"Standard / Coding Plan (CN / Global) + multimodal roadmap\",\n \"optionKey\": \"modelstudioApiKeyCn\",\n \"cliFlag\": \"--modelstudio-api-key-cn\",\n \"cliOption\": \"--modelstudio-api-key-cn \",\n \"cliDescription\": \"Qwen Cloud Coding Plan API key (China)\",\n \"onboardingScopes\": [\n \"text-inference\"\n ]\n },\n {\n \"method\": \"api-key\",\n \"choiceId\": \"qwen-api-key\",\n \"deprecatedChoiceIds\": [\n \"modelstudio-api-key\"\n ],\n \"choiceLabel\": \"Coding Plan API Key for Global/Intl (subscription)\",\n \"choiceHint\": \"Endpoint: coding-intl.dashscope.aliyuncs.com\",\n \"groupId\": \"qwen\",\n \"groupLabel\": \"Qwen Cloud\",\n \"groupHint\": \"Standard / Coding Plan (CN / Global) + multimodal roadmap\",\n \"optionKey\": \"modelstudioApiKey\",\n \"cliFlag\": \"--modelstudio-api-key\",\n \"cliOption\": \"--modelstudio-api-key \",\n \"cliDescription\": \"Qwen Cloud Coding Plan API key (Global/Intl)\",\n \"onboardingScopes\": [\n \"text-inference\"\n ]\n }\n ]\n },\n {\n \"id\": \"qwen-oauth\",\n \"aliases\": [\n \"qwen-portal\",\n \"qwen-cli\"\n ],\n \"name\": \"Qwen Cloud qwen oauth\",\n \"docs\": \"/providers/qwen\",\n \"categories\": [\n \"cloud\",\n \"llm\"\n ],\n \"envVars\": [\n \"QWEN_API_KEY\"\n ],\n \"authChoices\": [\n {\n \"method\": \"api-key\",\n \"choiceId\": \"qwen-oauth\",\n \"choiceLabel\": \"Qwen OAuth\",\n \"choiceHint\": \"Portal token for portal.qwen.ai\",\n \"groupId\": \"qwen\",\n \"groupLabel\": \"Qwen Cloud\",\n \"groupHint\": \"Standard / Coding Plan / OAuth\",\n \"optionKey\": \"qwenOauthToken\",\n \"cliFlag\": \"--qwen-oauth-token\",\n \"cliOption\": \"--qwen-oauth-token \",\n \"cliDescription\": \"Qwen OAuth token\",\n \"onboardingScopes\": [\n \"text-inference\"\n ]\n }\n ]\n },\n {\n \"id\": \"qwen-token-plan\",\n \"name\": \"Qwen Token Plan\",\n \"docs\": \"/providers/qwen\",\n \"categories\": [\n \"cloud\",\n \"llm\"\n ],\n \"envVars\": [\n \"QWEN_TOKEN_PLAN_API_KEY\"\n ],\n \"authChoices\": [\n {\n \"method\": \"api-key\",\n \"choiceId\": \"qwen-token-plan\",\n \"choiceLabel\": \"Qwen Token Plan (Global/Intl)\",\n \"choiceHint\": \"Endpoint: token-plan.ap-southeast-1.maas.aliyuncs.com\",\n \"groupId\": \"qwen\",\n \"groupLabel\": \"Qwen Cloud\",\n \"groupHint\": \"Standard / Coding Plan / Token Plan / OAuth\",\n \"optionKey\": \"qwenTokenPlanApiKey\",\n \"cliFlag\": \"--qwen-token-plan-api-key\",\n \"cliOption\": \"--qwen-token-plan-api-key \",\n \"cliDescription\": \"Qwen Token Plan API key (Global/Intl)\",\n \"onboardingScopes\": [\n \"text-inference\"\n ]\n },\n {\n \"method\": \"api-key-cn\",\n \"choiceId\": \"qwen-token-plan-cn\",\n \"choiceLabel\": \"Qwen Token Plan (China)\",\n \"choiceHint\": \"Endpoint: token-plan.cn-beijing.maas.aliyuncs.com\",\n \"groupId\": \"qwen\",\n \"groupLabel\": \"Qwen Cloud\",\n \"groupHint\": \"Standard / Coding Plan / Token Plan / OAuth\",\n \"optionKey\": \"qwenTokenPlanApiKeyCn\",\n \"cliFlag\": \"--qwen-token-plan-api-key-cn\",\n \"cliOption\": \"--qwen-token-plan-api-key-cn \",\n \"cliDescription\": \"Qwen Token Plan API key (China)\",\n \"onboardingScopes\": [\n \"text-inference\"\n ]\n }\n ]\n },\n {\n \"id\": \"bailian-token-plan\",\n \"name\": \"Alibaba Token Plan (legacy custom config)\",\n \"docs\": \"/providers/qwen\",\n \"categories\": [\n \"cloud\",\n \"llm\"\n ]\n }\n ],\n \"contracts\": {\n \"mediaUnderstandingProviders\": [\n \"qwen\"\n ],\n \"videoGenerationProviders\": [\n \"qwen\"\n ]\n },\n \"install\": {\n \"clawhubSpec\": \"clawhub:@openclaw/qwen-provider\",\n \"npmSpec\": \"@openclaw/qwen-provider\",\n \"defaultChoice\": \"npm\",\n \"minHostVersion\": \">=2026.6.8\"\n }\n }\n },\n {\n \"name\": \"@openclaw/fireworks-provider\",\n \"description\": \"OpenClaw Fireworks provider plugin\",\n \"source\": \"official\",\n \"kind\": \"provider\",\n \"openclaw\": {\n \"plugin\": {\n \"id\": \"fireworks\",\n \"label\": \"Fireworks\"\n },\n \"providers\": [\n {\n \"id\": \"fireworks\",\n \"aliases\": [\n \"fireworks-ai\"\n ],\n \"name\": \"Fireworks\",\n \"docs\": \"/providers/fireworks\",\n \"categories\": [\n \"cloud\",\n \"llm\"\n ],\n \"envVars\": [\n \"FIREWORKS_API_KEY\"\n ],\n \"authChoices\": [\n {\n \"method\": \"api-key\",\n \"choiceId\": \"fireworks-api-key\",\n \"choiceLabel\": \"Fireworks API key\",\n \"choiceHint\": \"API key\",\n \"groupId\": \"fireworks\",\n \"groupLabel\": \"Fireworks\",\n \"groupHint\": \"API key\",\n \"optionKey\": \"fireworksApiKey\",\n \"cliFlag\": \"--fireworks-api-key\",\n \"cliOption\": \"--fireworks-api-key \",\n \"cliDescription\": \"Fireworks API key\",\n \"onboardingScopes\": [\n \"text-inference\"\n ]\n }\n ]\n }\n ],\n \"install\": {\n \"clawhubSpec\": \"clawhub:@openclaw/fireworks-provider\",\n \"npmSpec\": \"@openclaw/fireworks-provider\",\n \"defaultChoice\": \"npm\",\n \"minHostVersion\": \">=2026.6.9\"\n }\n }\n },\n {\n \"name\": \"@openclaw/moonshot-provider\",\n \"description\": \"OpenClaw Moonshot provider plugin\",\n \"source\": \"official\",\n \"kind\": \"provider\",\n \"openclaw\": {\n \"plugin\": {\n \"id\": \"moonshot\",\n \"label\": \"Moonshot\"\n },\n \"providerEndpoints\": [\n {\n \"endpointClass\": \"moonshot-native\",\n \"baseUrls\": [\n \"https://api.moonshot.ai/v1\",\n \"https://api.moonshot.cn/v1\"\n ]\n }\n ],\n \"providers\": [\n {\n \"id\": \"moonshot\",\n \"aliases\": [\n \"moonshotai\",\n \"moonshot-ai\"\n ],\n \"name\": \"Moonshot\",\n \"docs\": \"/providers/moonshot\",\n \"categories\": [\n \"cloud\",\n \"llm\"\n ],\n \"envVars\": [\n \"MOONSHOT_API_KEY\",\n \"KIMI_API_KEY\"\n ],\n \"authChoices\": [\n {\n \"method\": \"api-key\",\n \"choiceId\": \"moonshot-api-key\",\n \"choiceLabel\": \"Moonshot API key (.ai)\",\n \"choiceHint\": \"Kimi K2.6 + Kimi\",\n \"groupId\": \"moonshot\",\n \"groupLabel\": \"Moonshot AI (Kimi K2.6)\",\n \"groupHint\": \"Kimi K2.6\",\n \"optionKey\": \"moonshotApiKey\",\n \"cliFlag\": \"--moonshot-api-key\",\n \"cliOption\": \"--moonshot-api-key \",\n \"cliDescription\": \"Moonshot API key\",\n \"onboardingScopes\": [\n \"text-inference\"\n ]\n },\n {\n \"method\": \"api-key-cn\",\n \"choiceId\": \"moonshot-api-key-cn\",\n \"choiceLabel\": \"Moonshot API key (.cn)\",\n \"choiceHint\": \"Kimi K2.6 + Kimi\",\n \"groupId\": \"moonshot\",\n \"groupLabel\": \"Moonshot AI (Kimi K2.6)\",\n \"groupHint\": \"Kimi K2.6\",\n \"optionKey\": \"moonshotApiKey\",\n \"cliFlag\": \"--moonshot-api-key\",\n \"cliOption\": \"--moonshot-api-key \",\n \"cliDescription\": \"Moonshot API key\",\n \"onboardingScopes\": [\n \"text-inference\"\n ]\n }\n ]\n }\n ],\n \"contracts\": {\n \"mediaUnderstandingProviders\": [\n \"moonshot\"\n ],\n \"webSearchProviders\": [\n \"kimi\"\n ]\n },\n \"webSearchProviders\": [\n {\n \"id\": \"kimi\",\n \"label\": \"Kimi (Moonshot)\",\n \"hint\": \"Requires Moonshot / Kimi API key · Moonshot web search\",\n \"onboardingScopes\": [\n \"text-inference\"\n ],\n \"credentialLabel\": \"Moonshot / Kimi API key\",\n \"envVars\": [\n \"KIMI_API_KEY\",\n \"MOONSHOT_API_KEY\"\n ],\n \"placeholder\": \"sk-...\",\n \"signupUrl\": \"https://platform.moonshot.cn/\",\n \"docsUrl\": \"https://docs.openclaw.ai/tools/web\",\n \"credentialPath\": \"plugins.entries.moonshot.config.webSearch.apiKey\",\n \"autoDetectOrder\": 40\n }\n ],\n \"install\": {\n \"clawhubSpec\": \"clawhub:@openclaw/moonshot-provider\",\n \"npmSpec\": \"@openclaw/moonshot-provider\",\n \"defaultChoice\": \"npm\",\n \"minHostVersion\": \">=2026.6.9\"\n }\n }\n },\n {\n \"name\": \"@openclaw/tencent-provider\",\n \"description\": \"OpenClaw Tencent Cloud provider plugin (TokenHub + Token Plan)\",\n \"source\": \"official\",\n \"kind\": \"provider\",\n \"openclaw\": {\n \"plugin\": {\n \"id\": \"tencent\",\n \"label\": \"Tencent Cloud\"\n },\n \"providers\": [\n {\n \"id\": \"tencent-tokenhub\",\n \"name\": \"Tencent TokenHub\",\n \"docs\": \"/providers/tencent\",\n \"categories\": [\n \"cloud\",\n \"llm\"\n ],\n \"envVars\": [\n \"TOKENHUB_API_KEY\"\n ],\n \"authChoices\": [\n {\n \"method\": \"api-key\",\n \"choiceId\": \"tokenhub-api-key\",\n \"choiceLabel\": \"Tencent TokenHub\",\n \"choiceHint\": \"Hy via Tencent TokenHub Gateway\",\n \"groupId\": \"tencent\",\n \"groupLabel\": \"Tencent Cloud\",\n \"groupHint\": \"Tencent TokenHub\",\n \"optionKey\": \"tokenhubApiKey\",\n \"cliFlag\": \"--tokenhub-api-key\",\n \"cliOption\": \"--tokenhub-api-key \",\n \"cliDescription\": \"Tencent TokenHub API key\",\n \"onboardingScopes\": [\n \"text-inference\"\n ]\n }\n ]\n },\n {\n \"id\": \"tencent-tokenplan\",\n \"name\": \"Tencent TokenPlan\",\n \"docs\": \"/providers/tencent\",\n \"categories\": [\n \"cloud\",\n \"llm\"\n ],\n \"envVars\": [\n \"TOKENPLAN_API_KEY\"\n ],\n \"authChoices\": [\n {\n \"method\": \"api-key\",\n \"choiceId\": \"tokenplan-api-key\",\n \"choiceLabel\": \"Tencent TokenPlan\",\n \"choiceHint\": \"Hy via Tencent TokenPlan Gateway\",\n \"groupId\": \"tencent\",\n \"groupLabel\": \"Tencent Cloud\",\n \"groupHint\": \"Tencent TokenPlan\",\n \"optionKey\": \"tokenplanApiKey\",\n \"cliFlag\": \"--tokenplan-api-key\",\n \"cliOption\": \"--tokenplan-api-key \",\n \"cliDescription\": \"Tencent TokenPlan API key\",\n \"onboardingScopes\": [\n \"text-inference\"\n ]\n }\n ]\n }\n ],\n \"install\": {\n \"clawhubSpec\": \"clawhub:@openclaw/tencent-provider\",\n \"npmSpec\": \"@openclaw/tencent-provider\",\n \"defaultChoice\": \"npm\",\n \"minHostVersion\": \">=2026.6.9\"\n }\n }\n },\n {\n \"name\": \"@openclaw/venice-provider\",\n \"description\": \"OpenClaw Venice provider plugin\",\n \"source\": \"official\",\n \"kind\": \"provider\",\n \"openclaw\": {\n \"plugin\": {\n \"id\": \"venice\",\n \"label\": \"Venice\"\n },\n \"providers\": [\n {\n \"id\": \"venice\",\n \"name\": \"Venice\",\n \"docs\": \"/providers/venice\",\n \"categories\": [\n \"cloud\",\n \"llm\"\n ],\n \"envVars\": [\n \"VENICE_API_KEY\"\n ],\n \"authChoices\": [\n {\n \"method\": \"api-key\",\n \"choiceId\": \"venice-api-key\",\n \"choiceLabel\": \"Venice AI API key\",\n \"choiceHint\": \"Privacy-focused (uncensored models)\",\n \"groupId\": \"venice\",\n \"groupLabel\": \"Venice AI\",\n \"groupHint\": \"Privacy-focused (uncensored models)\",\n \"optionKey\": \"veniceApiKey\",\n \"cliFlag\": \"--venice-api-key\",\n \"cliOption\": \"--venice-api-key \",\n \"cliDescription\": \"Venice API key\",\n \"onboardingScopes\": [\n \"text-inference\"\n ]\n }\n ]\n }\n ],\n \"install\": {\n \"clawhubSpec\": \"clawhub:@openclaw/venice-provider\",\n \"npmSpec\": \"@openclaw/venice-provider\",\n \"defaultChoice\": \"npm\",\n \"minHostVersion\": \">=2026.6.9\"\n }\n }\n },\n {\n \"name\": \"@openclaw/vercel-ai-gateway-provider\",\n \"description\": \"OpenClaw Vercel AI Gateway provider plugin\",\n \"source\": \"official\",\n \"kind\": \"provider\",\n \"openclaw\": {\n \"plugin\": {\n \"id\": \"vercel-ai-gateway\",\n \"label\": \"Vercel AI Gateway\"\n },\n \"providers\": [\n {\n \"id\": \"vercel-ai-gateway\",\n \"name\": \"Vercel AI Gateway\",\n \"docs\": \"/providers/vercel-ai-gateway\",\n \"categories\": [\n \"cloud\",\n \"llm\"\n ],\n \"envVars\": [\n \"AI_GATEWAY_API_KEY\"\n ],\n \"authChoices\": [\n {\n \"method\": \"api-key\",\n \"choiceId\": \"ai-gateway-api-key\",\n \"choiceLabel\": \"Vercel AI Gateway API key\",\n \"choiceHint\": \"API key\",\n \"groupId\": \"ai-gateway\",\n \"groupLabel\": \"Vercel AI Gateway\",\n \"groupHint\": \"API key\",\n \"optionKey\": \"aiGatewayApiKey\",\n \"cliFlag\": \"--ai-gateway-api-key\",\n \"cliOption\": \"--ai-gateway-api-key \",\n \"cliDescription\": \"Vercel AI Gateway API key\",\n \"onboardingScopes\": [\n \"text-inference\"\n ]\n }\n ]\n }\n ],\n \"install\": {\n \"clawhubSpec\": \"clawhub:@openclaw/vercel-ai-gateway-provider\",\n \"npmSpec\": \"@openclaw/vercel-ai-gateway-provider\",\n \"defaultChoice\": \"npm\",\n \"minHostVersion\": \">=2026.6.9\"\n }\n }\n },\n {\n \"name\": \"@openclaw/zai-provider\",\n \"description\": \"OpenClaw Z.AI provider plugin\",\n \"source\": \"official\",\n \"kind\": \"provider\",\n \"openclaw\": {\n \"plugin\": {\n \"id\": \"zai\",\n \"label\": \"Z.AI\"\n },\n \"providerEndpoints\": [\n {\n \"endpointClass\": \"zai-native\",\n \"hosts\": [\n \"api.z.ai\"\n ]\n }\n ],\n \"providers\": [\n {\n \"id\": \"zai\",\n \"aliases\": [\n \"z-ai\",\n \"z.ai\"\n ],\n \"name\": \"Z.AI\",\n \"docs\": \"/providers/zai\",\n \"categories\": [\n \"cloud\",\n \"llm\"\n ],\n \"envVars\": [\n \"ZAI_API_KEY\",\n \"Z_AI_API_KEY\"\n ],\n \"authChoices\": [\n {\n \"method\": \"api-key\",\n \"choiceId\": \"zai-api-key\",\n \"choiceLabel\": \"Z.AI API key\",\n \"groupId\": \"zai\",\n \"groupLabel\": \"Z.AI\",\n \"groupHint\": \"GLM Coding Plan / Global / CN\",\n \"optionKey\": \"zaiApiKey\",\n \"cliFlag\": \"--zai-api-key\",\n \"cliOption\": \"--zai-api-key \",\n \"cliDescription\": \"Z.AI API key\",\n \"onboardingScopes\": [\n \"text-inference\"\n ]\n },\n {\n \"method\": \"coding-global\",\n \"choiceId\": \"zai-coding-global\",\n \"choiceLabel\": \"Coding-Plan-Global\",\n \"choiceHint\": \"GLM Coding Plan Global (api.z.ai)\",\n \"groupId\": \"zai\",\n \"groupLabel\": \"Z.AI\",\n \"groupHint\": \"GLM Coding Plan / Global / CN\",\n \"optionKey\": \"zaiApiKey\",\n \"cliFlag\": \"--zai-api-key\",\n \"cliOption\": \"--zai-api-key \",\n \"cliDescription\": \"Z.AI API key\",\n \"onboardingScopes\": [\n \"text-inference\"\n ]\n },\n {\n \"method\": \"coding-cn\",\n \"choiceId\": \"zai-coding-cn\",\n \"choiceLabel\": \"Coding-Plan-CN\",\n \"choiceHint\": \"GLM Coding Plan CN (open.bigmodel.cn)\",\n \"groupId\": \"zai\",\n \"groupLabel\": \"Z.AI\",\n \"groupHint\": \"GLM Coding Plan / Global / CN\",\n \"optionKey\": \"zaiApiKey\",\n \"cliFlag\": \"--zai-api-key\",\n \"cliOption\": \"--zai-api-key \",\n \"cliDescription\": \"Z.AI API key\",\n \"onboardingScopes\": [\n \"text-inference\"\n ]\n },\n {\n \"method\": \"global\",\n \"choiceId\": \"zai-global\",\n \"choiceLabel\": \"Global\",\n \"choiceHint\": \"Z.AI Global (api.z.ai)\",\n \"groupId\": \"zai\",\n \"groupLabel\": \"Z.AI\",\n \"groupHint\": \"GLM Coding Plan / Global / CN\",\n \"optionKey\": \"zaiApiKey\",\n \"cliFlag\": \"--zai-api-key\",\n \"cliOption\": \"--zai-api-key \",\n \"cliDescription\": \"Z.AI API key\",\n \"onboardingScopes\": [\n \"text-inference\"\n ]\n },\n {\n \"method\": \"cn\",\n \"choiceId\": \"zai-cn\",\n \"choiceLabel\": \"CN\",\n \"choiceHint\": \"Z.AI CN (open.bigmodel.cn)\",\n \"groupId\": \"zai\",\n \"groupLabel\": \"Z.AI\",\n \"groupHint\": \"GLM Coding Plan / Global / CN\",\n \"optionKey\": \"zaiApiKey\",\n \"cliFlag\": \"--zai-api-key\",\n \"cliOption\": \"--zai-api-key \",\n \"cliDescription\": \"Z.AI API key\",\n \"onboardingScopes\": [\n \"text-inference\"\n ]\n }\n ]\n }\n ],\n \"contracts\": {\n \"mediaUnderstandingProviders\": [\n \"zai\"\n ]\n },\n \"install\": {\n \"clawhubSpec\": \"clawhub:@openclaw/zai-provider\",\n \"npmSpec\": \"@openclaw/zai-provider\",\n \"defaultChoice\": \"npm\",\n \"minHostVersion\": \">=2026.6.9\"\n }\n }\n },\n {\n \"name\": \"@openclaw/stepfun-provider\",\n \"description\": \"OpenClaw StepFun provider plugin.\",\n \"source\": \"official\",\n \"kind\": \"provider\",\n \"openclaw\": {\n \"plugin\": {\n \"id\": \"stepfun\",\n \"label\": \"StepFun\"\n },\n \"providers\": [\n {\n \"id\": \"stepfun\",\n \"name\": \"StepFun\",\n \"docs\": \"/providers/stepfun\",\n \"categories\": [\n \"cloud\",\n \"llm\"\n ],\n \"envVars\": [\n \"STEPFUN_API_KEY\"\n ],\n \"authChoices\": [\n {\n \"method\": \"standard-api-key-cn\",\n \"choiceId\": \"stepfun-standard-api-key-cn\",\n \"choiceLabel\": \"StepFun Standard API key (China)\",\n \"choiceHint\": \"Endpoint: api.stepfun.com/v1\",\n \"groupId\": \"stepfun\",\n \"groupLabel\": \"StepFun\",\n \"groupHint\": \"Standard / Step Plan (China / Global)\",\n \"optionKey\": \"stepfunApiKey\",\n \"cliFlag\": \"--stepfun-api-key\",\n \"cliOption\": \"--stepfun-api-key \",\n \"cliDescription\": \"StepFun API key\",\n \"onboardingScopes\": [\n \"text-inference\"\n ]\n },\n {\n \"method\": \"standard-api-key-intl\",\n \"choiceId\": \"stepfun-standard-api-key-intl\",\n \"choiceLabel\": \"StepFun Standard API key (Global/Intl)\",\n \"choiceHint\": \"Endpoint: api.stepfun.ai/v1\",\n \"groupId\": \"stepfun\",\n \"groupLabel\": \"StepFun\",\n \"groupHint\": \"Standard / Step Plan (China / Global)\",\n \"optionKey\": \"stepfunApiKey\",\n \"cliFlag\": \"--stepfun-api-key\",\n \"cliOption\": \"--stepfun-api-key \",\n \"cliDescription\": \"StepFun API key\",\n \"onboardingScopes\": [\n \"text-inference\"\n ]\n }\n ]\n },\n {\n \"id\": \"stepfun-plan\",\n \"name\": \"StepFun stepfun plan\",\n \"docs\": \"/providers/stepfun\",\n \"categories\": [\n \"cloud\",\n \"llm\"\n ],\n \"envVars\": [\n \"STEPFUN_API_KEY\"\n ],\n \"authChoices\": [\n {\n \"method\": \"plan-api-key-cn\",\n \"choiceId\": \"stepfun-plan-api-key-cn\",\n \"choiceLabel\": \"StepFun Step Plan API key (China)\",\n \"choiceHint\": \"Endpoint: api.stepfun.com/step_plan/v1\",\n \"groupId\": \"stepfun\",\n \"groupLabel\": \"StepFun\",\n \"groupHint\": \"Standard / Step Plan (China / Global)\",\n \"optionKey\": \"stepfunApiKey\",\n \"cliFlag\": \"--stepfun-api-key\",\n \"cliOption\": \"--stepfun-api-key \",\n \"cliDescription\": \"StepFun API key\",\n \"onboardingScopes\": [\n \"text-inference\"\n ]\n },\n {\n \"method\": \"plan-api-key-intl\",\n \"choiceId\": \"stepfun-plan-api-key-intl\",\n \"choiceLabel\": \"StepFun Step Plan API key (Global/Intl)\",\n \"choiceHint\": \"Endpoint: api.stepfun.ai/step_plan/v1\",\n \"groupId\": \"stepfun\",\n \"groupLabel\": \"StepFun\",\n \"groupHint\": \"Standard / Step Plan (China / Global)\",\n \"optionKey\": \"stepfunApiKey\",\n \"cliFlag\": \"--stepfun-api-key\",\n \"cliOption\": \"--stepfun-api-key \",\n \"cliDescription\": \"StepFun API key\",\n \"onboardingScopes\": [\n \"text-inference\"\n ]\n }\n ]\n }\n ],\n \"install\": {\n \"clawhubSpec\": \"clawhub:@openclaw/stepfun-provider\",\n \"npmSpec\": \"@openclaw/stepfun-provider\",\n \"defaultChoice\": \"npm\",\n \"minHostVersion\": \">=2026.6.9\"\n }\n }\n }\n ]\n}\n"}}, "docs/providers/longcat.md": {"f1ae41d2f8401c06df6281ef666831ea7d832f7b": {"t": 1785674294.5793698, "n": 4674, "h": "5061102a49c723f1", "c": "---\nsummary: \"LongCat API setup for LongCat-2.0\"\ntitle: \"LongCat\"\nread_when:\n - You want to use LongCat-2.0 with OpenClaw\n - You need the LongCat API key or model limits\n---\n\n[LongCat](https://longcat.ai) provides a hosted API for LongCat-2.0, a\nreasoning model built for coding and agentic workloads. OpenClaw provides the\nofficial `longcat` plugin for LongCat's OpenAI-compatible endpoint.\n\n| Property | Value |\n| ---------- | ---------------------------------- |\n| Provider | `longcat` |\n| Auth | `LONGCAT_API_KEY` |\n| API | OpenAI-compatible Chat Completions |\n| Base URL | `https://api.longcat.chat/openai` |\n| Model | `longcat/LongCat-2.0` |\n| Context | 1,048,576 tokens |\n| Max output | 131,072 tokens |\n| Input | Text |\n\n## Install plugin\n\nInstall the official package, then restart Gateway:\n\n```bash\nopenclaw plugins install @openclaw/longcat-provider\nopenclaw gateway restart\n```\n\n## Getting started\n\n\n \n Sign in to the [LongCat API Platform](https://longcat.chat/platform/) and\n create a key on the [API Keys](https://longcat.chat/platform/api_keys)\n page.\n \n \n ```bash\n openclaw onboard --auth-choice longcat-api-key\n ```\n \n \n ```bash\n openclaw models list --provider longcat\n ```\n \n\n\nOnboarding adds the hosted catalog and selects `longcat/LongCat-2.0` when no\nprimary model is already configured.\n\n### Non-interactive setup\n\n```bash\nopenclaw onboard --non-interactive \\\n --mode local \\\n --auth-choice longcat-api-key \\\n --longcat-api-key \"$LONGCAT_API_KEY\"\n```\n\n## Reasoning behavior\n\nLongCat exposes binary thinking control. OpenClaw maps enabled thinking levels\nto `thinking: { type: \"enabled\" }` and `/think off` to\n`thinking: { type: \"disabled\" }`. LongCat does not currently document\n`reasoning_effort`, so OpenClaw does not send it.\n\nLongCat returns reasoning in `reasoning_content`. OpenClaw preserves that field\nwhen replaying assistant tool-call turns so multi-turn agent sessions retain\nthe provider's expected message shape.\n\n## Pricing\n\nThe built-in catalog uses LongCat's pay-as-you-go list prices in USD per million\ntokens: $0.75 uncached input, $0.015 cached input, and $2.95 output. LongCat may\noffer temporary discounts; the [pricing page](https://longcat.chat/platform/docs/Pricing/LongCat-2.0.html)\nand your billing records are authoritative.\n\n## Self-hosted LongCat-2.0\n\nThe `longcat` provider targets LongCat's hosted API. For the open weights on\n[Hugging Face](https://huggingface.co/meituan-longcat/LongCat-2.0), serve the\nmodel through an OpenAI-compatible runtime and use OpenClaw's existing\n[vLLM](/providers/vllm) or [SGLang](/providers/sglang) provider instead.\n\nKeep the runtime's exact model identifier in the self-hosted provider catalog;\ndo not route a local deployment through `longcat/LongCat-2.0`.\n\n## Troubleshooting\n\n\n \n Daemon-managed Gateway processes do not inherit every interactive shell\n variable. Put `LONGCAT_API_KEY` in `~/.openclaw/.env`, configure it through\n onboarding, or use an approved secret reference.\n \n\n \n `402` means the account has insufficient token quota. `429` means the API\n key hit a rate limit. Check [LongCat usage](https://longcat.chat/platform/usage)\n and retry rate-limited requests after the provider's backoff window.\n \n\n \n Run `openclaw plugins list` and confirm the `longcat` plugin is\n enabled, then run `openclaw models list --provider longcat`.\n \n\n\n## Related\n\n\n \n Provider configuration, model refs, and failover behavior.\n \n \n Hosted API endpoints, authentication, limits, and examples.\n \n \n Architecture, deployment guidance, and model details.\n \n \n Store provider credentials without embedding plaintext in config.\n \n\n"}}, "extensions/longcat/README.md": {"f1ae41d2f8401c06df6281ef666831ea7d832f7b": {"t": 1785674295.4502325, "n": 306, "h": "8a09c7fefaaac9a7", "c": "# OpenClaw LongCat Provider\n\nOfficial OpenClaw provider plugin for LongCat-2.0 through LongCat's hosted\nOpenAI-compatible API.\n\nInstall from OpenClaw:\n\n```bash\nopenclaw plugins install @openclaw/longcat-provider\nopenclaw gateway restart\n```\n\nConfigure `LONGCAT_API_KEY`, then select `longcat/LongCat-2.0`.\n"}}, "extensions/fireworks/openclaw.plugin.json": {"f1ae41d2f8401c06df6281ef666831ea7d832f7b": {"t": 1785674624.0426517, "n": 2028, "h": "597800fb3673b5d4", "c": "{\n \"id\": \"fireworks\",\n \"activation\": {\n \"onStartup\": false\n },\n \"enabledByDefault\": true,\n \"providers\": [\"fireworks\"],\n \"setup\": {\n \"providers\": [\n {\n \"id\": \"fireworks\",\n \"envVars\": [\"FIREWORKS_API_KEY\"]\n }\n ]\n },\n \"providerAuthChoices\": [\n {\n \"provider\": \"fireworks\",\n \"method\": \"api-key\",\n \"choiceId\": \"fireworks-api-key\",\n \"appGuidedSecret\": true,\n \"choiceLabel\": \"Fireworks API key\",\n \"groupId\": \"fireworks\",\n \"groupLabel\": \"Fireworks\",\n \"groupHint\": \"API key\",\n \"optionKey\": \"fireworksApiKey\",\n \"cliFlag\": \"--fireworks-api-key\",\n \"cliOption\": \"--fireworks-api-key \",\n \"cliDescription\": \"Fireworks API key\"\n }\n ],\n \"modelCatalog\": {\n \"providers\": {\n \"fireworks\": {\n \"baseUrl\": \"https://api.fireworks.ai/inference/v1\",\n \"api\": \"openai-completions\",\n \"models\": [\n {\n \"id\": \"accounts/fireworks/models/kimi-k2p6\",\n \"name\": \"Kimi K2.6\",\n \"reasoning\": false,\n \"input\": [\"text\", \"image\"],\n \"contextWindow\": 262144,\n \"maxTokens\": 262144,\n \"cost\": {\n \"input\": 0.95,\n \"output\": 4,\n \"cacheRead\": 0,\n \"cacheWrite\": 0\n }\n },\n {\n \"id\": \"accounts/fireworks/routers/kimi-k2p5-turbo\",\n \"name\": \"Kimi K2.5 Turbo (Fire Pass)\",\n \"reasoning\": false,\n \"input\": [\"text\", \"image\"],\n \"contextWindow\": 256000,\n \"maxTokens\": 256000,\n \"compat\": {\n \"unsupportedToolSchemaKeywords\": [\"not\"]\n },\n \"cost\": {\n \"input\": 0,\n \"output\": 0,\n \"cacheRead\": 0,\n \"cacheWrite\": 0\n }\n }\n ]\n }\n },\n \"discovery\": {\n \"fireworks\": \"static\"\n }\n },\n \"configSchema\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {}\n }\n}\n"}}, "extensions/tencent/openclaw.plugin.json": {"f1ae41d2f8401c06df6281ef666831ea7d832f7b": {"t": 1785809848.0242023, "n": 4335, "h": "800023ea124252d2", "c": "{\n \"id\": \"tencent\",\n \"activation\": {\n \"onStartup\": false\n },\n \"enabledByDefault\": true,\n \"providerCatalogEntry\": \"./provider-discovery.ts\",\n \"providers\": [\"tencent-tokenhub\", \"tencent-tokenplan\"],\n \"modelCatalog\": {\n \"providers\": {\n \"tencent-tokenhub\": {\n \"baseUrl\": \"https://tokenhub.tencentmaas.com/v1\",\n \"api\": \"openai-completions\",\n \"models\": [\n {\n \"id\": \"hy3-preview\",\n \"name\": \"Hy3 preview (TokenHub)\",\n \"reasoning\": true,\n \"input\": [\"text\"],\n \"contextWindow\": 256000,\n \"maxTokens\": 64000,\n \"cost\": {\n \"input\": 0.176,\n \"output\": 0.587,\n \"cacheRead\": 0.059,\n \"cacheWrite\": 0,\n \"tieredPricing\": [\n {\n \"input\": 0.176,\n \"output\": 0.587,\n \"cacheRead\": 0.059,\n \"cacheWrite\": 0,\n \"range\": [0, 16000]\n },\n {\n \"input\": 0.235,\n \"output\": 0.939,\n \"cacheRead\": 0.088,\n \"cacheWrite\": 0,\n \"range\": [16000, 32000]\n },\n {\n \"input\": 0.293,\n \"output\": 1.173,\n \"cacheRead\": 0.117,\n \"cacheWrite\": 0,\n \"range\": [32000]\n }\n ]\n },\n \"compat\": {\n \"supportsUsageInStreaming\": true,\n \"supportsReasoningEffort\": true,\n \"supportedReasoningEfforts\": [\"none\", \"low\", \"high\"]\n }\n },\n {\n \"id\": \"hy3\",\n \"name\": \"Hy3 (TokenHub)\",\n \"reasoning\": true,\n \"input\": [\"text\"],\n \"contextWindow\": 256000,\n \"maxTokens\": 64000,\n \"compat\": {\n \"supportsUsageInStreaming\": true,\n \"supportsReasoningEffort\": true,\n \"supportedReasoningEfforts\": [\"none\", \"high\"]\n }\n }\n ]\n },\n \"tencent-tokenplan\": {\n \"baseUrl\": \"https://api.lkeap.cloud.tencent.com/plan/v3\",\n \"api\": \"openai-completions\",\n \"models\": [\n {\n \"id\": \"hy3\",\n \"name\": \"Hy3 (TokenPlan)\",\n \"reasoning\": true,\n \"input\": [\"text\"],\n \"contextWindow\": 256000,\n \"maxTokens\": 64000,\n \"compat\": {\n \"supportsUsageInStreaming\": true,\n \"supportsReasoningEffort\": true,\n \"supportedReasoningEfforts\": [\"none\", \"high\"]\n }\n }\n ]\n }\n },\n \"discovery\": {\n \"tencent-tokenhub\": \"static\",\n \"tencent-tokenplan\": \"static\"\n }\n },\n \"setup\": {\n \"providers\": [\n {\n \"id\": \"tencent-tokenhub\",\n \"envVars\": [\"TOKENHUB_API_KEY\"]\n },\n {\n \"id\": \"tencent-tokenplan\",\n \"envVars\": [\"TOKENPLAN_API_KEY\"]\n }\n ]\n },\n \"configContracts\": {\n \"compatibilityMigrationPaths\": [\n \"models.providers.tencent-tokenhub\",\n \"agents.defaults.models.tencent-tokenhub/hy3\",\n \"agents.defaults.models.tencent-tokenhub/hy3-preview\"\n ]\n },\n \"providerAuthChoices\": [\n {\n \"provider\": \"tencent-tokenhub\",\n \"method\": \"api-key\",\n \"choiceId\": \"tokenhub-api-key\",\n \"appGuidedSecret\": true,\n \"choiceLabel\": \"Tencent TokenHub\",\n \"groupId\": \"tencent\",\n \"groupLabel\": \"Tencent Cloud\",\n \"groupHint\": \"Tencent TokenHub\",\n \"optionKey\": \"tokenhubApiKey\",\n \"cliFlag\": \"--tokenhub-api-key\",\n \"cliOption\": \"--tokenhub-api-key \",\n \"cliDescription\": \"Tencent TokenHub API key\"\n },\n {\n \"provider\": \"tencent-tokenplan\",\n \"method\": \"api-key\",\n \"choiceId\": \"tokenplan-api-key\",\n \"appGuidedSecret\": true,\n \"choiceLabel\": \"Tencent TokenPlan\",\n \"groupId\": \"tencent\",\n \"groupLabel\": \"Tencent Cloud\",\n \"groupHint\": \"Tencent TokenPlan\",\n \"optionKey\": \"tokenplanApiKey\",\n \"cliFlag\": \"--tokenplan-api-key\",\n \"cliOption\": \"--tokenplan-api-key \",\n \"cliDescription\": \"Tencent TokenPlan API key\"\n }\n ],\n \"configSchema\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {}\n }\n}\n"}}, "extensions/moonshot/openclaw.plugin.json": {"f1ae41d2f8401c06df6281ef666831ea7d832f7b": {"t": 1785846828.1745937, "n": 5835, "h": "17aca3646fd13f17", "c": "{\n \"id\": \"moonshot\",\n \"activation\": {\n \"onStartup\": false\n },\n \"enabledByDefault\": true,\n \"providerCatalogEntry\": \"./provider-discovery.ts\",\n \"providers\": [\"moonshot\"],\n \"providerAuthAliases\": {\n \"moonshotai\": \"moonshot\",\n \"moonshot-ai\": \"moonshot\"\n },\n \"providerEndpoints\": [\n {\n \"endpointClass\": \"moonshot-native\",\n \"baseUrls\": [\"https://api.moonshot.ai/v1\", \"https://api.moonshot.cn/v1\"]\n }\n ],\n \"providerRequest\": {\n \"providers\": {\n \"moonshot\": {\n \"family\": \"moonshot\",\n \"compatibilityFamily\": \"moonshot\"\n }\n }\n },\n \"modelPricing\": {\n \"providers\": {\n \"moonshot\": {\n \"openRouter\": {\n \"provider\": \"moonshotai\"\n },\n \"liteLLM\": {\n \"provider\": \"moonshot\"\n }\n }\n }\n },\n \"modelCatalog\": {\n \"aliases\": {\n \"moonshotai\": {\n \"provider\": \"moonshot\"\n },\n \"moonshot-ai\": {\n \"provider\": \"moonshot\"\n }\n },\n \"providers\": {\n \"moonshot\": {\n \"baseUrl\": \"https://api.moonshot.ai/v1\",\n \"api\": \"openai-completions\",\n \"models\": [\n {\n \"id\": \"kimi-k2.6\",\n \"name\": \"Kimi K2.6\",\n \"input\": [\"text\", \"image\"],\n \"contextWindow\": 262144,\n \"maxTokens\": 262144,\n \"cost\": {\n \"input\": 0.95,\n \"output\": 4,\n \"cacheRead\": 0.16,\n \"cacheWrite\": 0\n }\n },\n {\n \"id\": \"kimi-k2.7-code\",\n \"name\": \"Kimi K2.7 Code\",\n \"reasoning\": true,\n \"input\": [\"text\", \"image\"],\n \"contextWindow\": 262144,\n \"maxTokens\": 262144,\n \"cost\": {\n \"input\": 0.95,\n \"output\": 4,\n \"cacheRead\": 0.19,\n \"cacheWrite\": 0\n }\n },\n {\n \"id\": \"kimi-k2.5\",\n \"name\": \"Kimi K2.5\",\n \"input\": [\"text\", \"image\"],\n \"contextWindow\": 262144,\n \"maxTokens\": 262144,\n \"cost\": {\n \"input\": 0.6,\n \"output\": 3,\n \"cacheRead\": 0.1,\n \"cacheWrite\": 0\n }\n },\n {\n \"id\": \"kimi-k2-thinking\",\n \"name\": \"Kimi K2 Thinking\",\n \"reasoning\": true,\n \"input\": [\"text\"],\n \"contextWindow\": 262144,\n \"maxTokens\": 262144,\n \"cost\": {\n \"input\": 0,\n \"output\": 0,\n \"cacheRead\": 0,\n \"cacheWrite\": 0\n }\n },\n {\n \"id\": \"kimi-k2-thinking-turbo\",\n \"name\": \"Kimi K2 Thinking Turbo\",\n \"reasoning\": true,\n \"input\": [\"text\"],\n \"contextWindow\": 262144,\n \"maxTokens\": 262144,\n \"cost\": {\n \"input\": 0,\n \"output\": 0,\n \"cacheRead\": 0,\n \"cacheWrite\": 0\n }\n },\n {\n \"id\": \"kimi-k2-turbo\",\n \"name\": \"Kimi K2 Turbo\",\n \"input\": [\"text\"],\n \"contextWindow\": 256000,\n \"maxTokens\": 16384,\n \"cost\": {\n \"input\": 0,\n \"output\": 0,\n \"cacheRead\": 0,\n \"cacheWrite\": 0\n }\n }\n ]\n }\n },\n \"discovery\": {\n \"moonshot\": \"static\"\n }\n },\n \"setup\": {\n \"providers\": [\n {\n \"id\": \"moonshot\",\n \"envVars\": [\"MOONSHOT_API_KEY\", \"KIMI_API_KEY\"]\n }\n ]\n },\n \"providerAuthChoices\": [\n {\n \"provider\": \"moonshot\",\n \"method\": \"api-key\",\n \"choiceId\": \"moonshot-api-key\",\n \"appGuidedSecret\": true,\n \"choiceLabel\": \"Moonshot API key (.ai)\",\n \"groupId\": \"moonshot\",\n \"groupLabel\": \"Moonshot AI (Kimi K2.6)\",\n \"groupHint\": \"Kimi K2.6\",\n \"optionKey\": \"moonshotApiKey\",\n \"cliFlag\": \"--moonshot-api-key\",\n \"cliOption\": \"--moonshot-api-key \",\n \"cliDescription\": \"Moonshot API key\"\n },\n {\n \"provider\": \"moonshot\",\n \"method\": \"api-key-cn\",\n \"choiceId\": \"moonshot-api-key-cn\",\n \"appGuidedSecret\": true,\n \"choiceLabel\": \"Moonshot API key (.cn)\",\n \"groupId\": \"moonshot\",\n \"groupLabel\": \"Moonshot AI (Kimi K2.6)\",\n \"groupHint\": \"Kimi K2.6\",\n \"optionKey\": \"moonshotApiKey\",\n \"cliFlag\": \"--moonshot-api-key\",\n \"cliOption\": \"--moonshot-api-key \",\n \"cliDescription\": \"Moonshot API key\"\n }\n ],\n \"uiHints\": {\n \"webSearch.apiKey\": {\n \"label\": \"Kimi Search API Key\",\n \"help\": \"Moonshot/Kimi API key (fallback: KIMI_API_KEY or MOONSHOT_API_KEY env var).\",\n \"sensitive\": true\n },\n \"webSearch.baseUrl\": {\n \"label\": \"Kimi Search Base URL\",\n \"help\": \"Kimi base URL override.\"\n },\n \"webSearch.model\": {\n \"label\": \"Kimi Search Model\",\n \"help\": \"Kimi model override.\"\n }\n },\n \"contracts\": {\n \"mediaUnderstandingProviders\": [\"moonshot\"],\n \"webSearchProviders\": [\"kimi\"]\n },\n \"mediaUnderstandingProviderMetadata\": {\n \"moonshot\": {\n \"capabilities\": [\"image\", \"video\"],\n \"defaultModels\": {\n \"image\": \"kimi-k2.6\",\n \"video\": \"kimi-k2.6\"\n },\n \"autoPriority\": {\n \"video\": 20\n }\n }\n },\n \"configContracts\": {\n \"compatibilityRuntimePaths\": [\"tools.web.search.apiKey\"]\n },\n \"configSchema\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"webSearch\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"apiKey\": {\n \"type\": [\"string\", \"object\"]\n },\n \"baseUrl\": {\n \"type\": \"string\"\n },\n \"model\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n}\n"}}}}