From 51825dac201f7332e57fb4216f3a94294b38de3a Mon Sep 17 00:00:00 2001 From: Jason Date: Wed, 11 Mar 2026 23:56:41 +0800 Subject: [PATCH] feat: add authHeader field to OpenClawProviderConfig and reuse type in form state Add optional `authHeader` boolean to support vendor-specific auth headers (e.g. Longcat). Refactor `resetOpenclawState` to use the shared `OpenClawProviderConfig` type instead of an inline duplicate definition. --- .../forms/hooks/useOpenclawFormState.ts | 18 +++--------------- src/types.ts | 1 + 2 files changed, 4 insertions(+), 15 deletions(-) diff --git a/src/components/providers/forms/hooks/useOpenclawFormState.ts b/src/components/providers/forms/hooks/useOpenclawFormState.ts index 4191d14a6..b76525703 100644 --- a/src/components/providers/forms/hooks/useOpenclawFormState.ts +++ b/src/components/providers/forms/hooks/useOpenclawFormState.ts @@ -1,5 +1,5 @@ import { useState, useCallback, useMemo } from "react"; -import type { OpenClawModel } from "@/types"; +import type { OpenClawModel, OpenClawProviderConfig } from "@/types"; import type { AppId } from "@/lib/api"; import { useProvidersQuery } from "@/lib/query/queries"; import { OPENCLAW_DEFAULT_CONFIG } from "../helpers/opencodeFormUtils"; @@ -31,13 +31,7 @@ export interface OpenclawFormState { handleOpenclawApiChange: (api: string) => void; handleOpenclawModelsChange: (models: OpenClawModel[]) => void; handleOpenclawUserAgentChange: (enabled: boolean) => void; - resetOpenclawState: (config?: { - baseUrl?: string; - apiKey?: string; - api?: string; - models?: OpenClawModel[]; - headers?: Record; - }) => void; + resetOpenclawState: (config?: OpenClawProviderConfig) => void; } function parseOpenclawField( @@ -178,13 +172,7 @@ export function useOpenclawFormState({ ); const resetOpenclawState = useCallback( - (config?: { - baseUrl?: string; - apiKey?: string; - api?: string; - models?: OpenClawModel[]; - headers?: Record; - }) => { + (config?: OpenClawProviderConfig) => { setOpenclawProviderKey(""); setOpenclawBaseUrl(config?.baseUrl || ""); setOpenclawApiKey(config?.apiKey || ""); diff --git a/src/types.ts b/src/types.ts index 1a7ad90d8..95c2ccc57 100644 --- a/src/types.ts +++ b/src/types.ts @@ -523,6 +523,7 @@ export interface OpenClawProviderConfig { api?: string; // API 协议类型(如 "openai-completions"、"anthropic") models?: OpenClawModel[]; // 可用模型列表 headers?: Record; // 自定义请求头(如 User-Agent) + authHeader?: boolean; // 供应商自定义认证开关(如 Longcat) } // OpenClaw agents.defaults 完整配置