From 31ec5d73a631f67065cfb6b215229b6a16266690 Mon Sep 17 00:00:00 2001 From: Jason Date: Sun, 1 Feb 2026 20:31:40 +0800 Subject: [PATCH] feat(types): add OpenClaw TypeScript type definitions - Add OpenClawProviderConfig and OpenClawModel interfaces - Add openclaw to McpApps, VisibleApps, ProxyTakeoverStatus - Add "openclaw" to AppId union type - Add openclaw to SkillApps interface --- src/lib/api/skills.ts | 3 ++- src/lib/api/types.ts | 2 +- src/types.ts | 21 +++++++++++++++++++++ src/types/proxy.ts | 1 + 4 files changed, 25 insertions(+), 2 deletions(-) diff --git a/src/lib/api/skills.ts b/src/lib/api/skills.ts index e7a6e34f2..673cf7a34 100644 --- a/src/lib/api/skills.ts +++ b/src/lib/api/skills.ts @@ -2,7 +2,7 @@ import { invoke } from "@tauri-apps/api/core"; import type { AppId } from "@/lib/api/types"; -// ========== 类型定义 ========== +export type AppType = "claude" | "codex" | "gemini" | "opencode" | "openclaw"; /** Skill 应用启用状态 */ export interface SkillApps { @@ -10,6 +10,7 @@ export interface SkillApps { codex: boolean; gemini: boolean; opencode: boolean; + openclaw: boolean; } /** 已安装的 Skill(v3.10.0+ 统一结构) */ diff --git a/src/lib/api/types.ts b/src/lib/api/types.ts index 2e8e2b2ac..1fff721fc 100644 --- a/src/lib/api/types.ts +++ b/src/lib/api/types.ts @@ -1,2 +1,2 @@ // 前端统一使用 AppId 作为应用标识(与后端命令参数 `app` 一致) -export type AppId = "claude" | "codex" | "gemini" | "opencode"; +export type AppId = "claude" | "codex" | "gemini" | "opencode" | "openclaw"; diff --git a/src/types.ts b/src/types.ts index 5d219c4f5..0aaa90ac1 100644 --- a/src/types.ts +++ b/src/types.ts @@ -160,6 +160,7 @@ export interface VisibleApps { codex: boolean; gemini: boolean; opencode: boolean; + openclaw: boolean; } // WebDAV v2 同步状态 @@ -287,6 +288,7 @@ export interface McpApps { codex: boolean; gemini: boolean; opencode: boolean; + openclaw: boolean; } // MCP 服务器条目(v3.7.0 统一结构) @@ -424,3 +426,22 @@ export interface OpenCodeMcpServerSpec { // 通用字段 enabled?: boolean; } + +// ============================================================================ +// OpenClaw 专属配置(v3.11.0+) +// ============================================================================ + +// OpenClaw 模型配置 +export interface OpenClawModel { + id: string; + name: string; +} + +// OpenClaw 供应商配置(settings_config 结构) +// 对应 OpenClaw 的 models.providers. 配置 +export interface OpenClawProviderConfig { + baseUrl?: string; // API 端点 + apiKey?: string; // API 密钥 + api?: string; // API 协议类型(如 "openai-completions"、"anthropic") + models?: OpenClawModel[]; // 可用模型列表 +} diff --git a/src/types/proxy.ts b/src/types/proxy.ts index 705c2288c..7aa6f42de 100644 --- a/src/types/proxy.ts +++ b/src/types/proxy.ts @@ -46,6 +46,7 @@ export interface ProxyTakeoverStatus { codex: boolean; gemini: boolean; opencode: boolean; + openclaw: boolean; } export interface ProviderHealth {