mirror of
https://github.com/farion1231/cc-switch.git
synced 2026-06-16 13:34:04 +08:00
2f18d6ec00
This commit finalizes the v3.7.0 unified MCP architecture migration by removing all deprecated code paths and eliminating compiler warnings. Frontend Changes (~950 lines removed): - Remove deprecated components: McpPanel, McpListItem, McpToggle - Remove deprecated hook: useMcpActions - Remove unused API methods: importFrom*, syncEnabledTo*, syncAllServers - Simplify McpFormModal by removing dual-mode logic (unified/legacy) - Remove syncOtherSide checkbox and conflict detection - Clean up unused imports and state variables - Delete associated test files Backend Changes (~400 lines cleaned): - Remove unused Tauri commands: import_mcp_from_*, sync_enabled_mcp_to_* - Delete unused Gemini MCP functions: get_mcp_status, upsert/delete_mcp_server - Add #[allow(deprecated)] to compatibility layer commands - Add #[allow(dead_code)] to legacy helper functions for future migration - Simplify boolean expression in mcp.rs per Clippy suggestion API Deprecation: - Mark legacy APIs with @deprecated JSDoc (getConfig, upsertServerInConfig, etc.) - Preserve backward compatibility for v3.x, planned removal in v4.0 Verification: - ✅ Zero TypeScript errors (pnpm typecheck) - ✅ Zero Clippy warnings (cargo clippy) - ✅ All code formatted (prettier + cargo fmt) - ✅ Builds successfully Total cleanup: ~1,350 lines of code removed/marked Breaking changes: None (all legacy APIs still functional)
123 lines
3.1 KiB
TypeScript
123 lines
3.1 KiB
TypeScript
import { invoke } from "@tauri-apps/api/core";
|
||
import type {
|
||
McpConfigResponse,
|
||
McpServer,
|
||
McpServerSpec,
|
||
McpServersMap,
|
||
McpStatus,
|
||
} from "@/types";
|
||
import type { AppId } from "./types";
|
||
|
||
export const mcpApi = {
|
||
async getStatus(): Promise<McpStatus> {
|
||
return await invoke("get_claude_mcp_status");
|
||
},
|
||
|
||
async readConfig(): Promise<string | null> {
|
||
return await invoke("read_claude_mcp_config");
|
||
},
|
||
|
||
async upsertServer(
|
||
id: string,
|
||
spec: McpServerSpec | Record<string, any>,
|
||
): Promise<boolean> {
|
||
return await invoke("upsert_claude_mcp_server", { id, spec });
|
||
},
|
||
|
||
async deleteServer(id: string): Promise<boolean> {
|
||
return await invoke("delete_claude_mcp_server", { id });
|
||
},
|
||
|
||
async validateCommand(cmd: string): Promise<boolean> {
|
||
return await invoke("validate_mcp_command", { cmd });
|
||
},
|
||
|
||
/**
|
||
* @deprecated 使用 getAllServers() 代替(v3.7.0+)
|
||
*/
|
||
async getConfig(app: AppId = "claude"): Promise<McpConfigResponse> {
|
||
return await invoke("get_mcp_config", { app });
|
||
},
|
||
|
||
/**
|
||
* @deprecated 使用 upsertUnifiedServer() 代替(v3.7.0+)
|
||
*/
|
||
async upsertServerInConfig(
|
||
app: AppId,
|
||
id: string,
|
||
spec: McpServer,
|
||
options?: { syncOtherSide?: boolean },
|
||
): Promise<boolean> {
|
||
const payload = {
|
||
app,
|
||
id,
|
||
spec,
|
||
...(options?.syncOtherSide !== undefined
|
||
? { syncOtherSide: options.syncOtherSide }
|
||
: {}),
|
||
};
|
||
return await invoke("upsert_mcp_server_in_config", payload);
|
||
},
|
||
|
||
/**
|
||
* @deprecated 使用 deleteUnifiedServer() 代替(v3.7.0+)
|
||
*/
|
||
async deleteServerInConfig(
|
||
app: AppId,
|
||
id: string,
|
||
options?: { syncOtherSide?: boolean },
|
||
): Promise<boolean> {
|
||
const payload = {
|
||
app,
|
||
id,
|
||
...(options?.syncOtherSide !== undefined
|
||
? { syncOtherSide: options.syncOtherSide }
|
||
: {}),
|
||
};
|
||
return await invoke("delete_mcp_server_in_config", payload);
|
||
},
|
||
|
||
/**
|
||
* @deprecated 使用 toggleApp() 代替(v3.7.0+)
|
||
*/
|
||
async setEnabled(app: AppId, id: string, enabled: boolean): Promise<boolean> {
|
||
return await invoke("set_mcp_enabled", { app, id, enabled });
|
||
},
|
||
|
||
// ========================================================================
|
||
// v3.7.0 新增:统一 MCP 管理 API
|
||
// ========================================================================
|
||
|
||
/**
|
||
* 获取所有 MCP 服务器(统一结构)
|
||
*/
|
||
async getAllServers(): Promise<McpServersMap> {
|
||
return await invoke("get_mcp_servers");
|
||
},
|
||
|
||
/**
|
||
* 添加或更新 MCP 服务器(统一结构)
|
||
*/
|
||
async upsertUnifiedServer(server: McpServer): Promise<void> {
|
||
return await invoke("upsert_mcp_server", { server });
|
||
},
|
||
|
||
/**
|
||
* 删除 MCP 服务器
|
||
*/
|
||
async deleteUnifiedServer(id: string): Promise<boolean> {
|
||
return await invoke("delete_mcp_server", { id });
|
||
},
|
||
|
||
/**
|
||
* 切换 MCP 服务器在指定应用的启用状态
|
||
*/
|
||
async toggleApp(
|
||
serverId: string,
|
||
app: AppId,
|
||
enabled: boolean,
|
||
): Promise<void> {
|
||
return await invoke("toggle_mcp_app", { serverId, app, enabled });
|
||
},
|
||
};
|