feat(opencode): complete Phase 4 - MCP sync module

Add mcp/opencode.rs with format conversion between CC Switch and OpenCode:
- stdio ↔ local type conversion
- command+args ↔ command array format
- env ↔ environment field mapping
- sse/http ↔ remote type conversion

Public API:
- sync_enabled_to_opencode: Batch sync all enabled servers
- sync_single_server_to_opencode: Sync individual server
- remove_server_from_opencode: Remove from live config
- import_from_opencode: Import servers from OpenCode config

Also fix test files to include new opencode field in McpApps struct.
All 4 unit tests pass for format conversion.
This commit is contained in:
Jason
2026-01-15 16:11:25 +08:00
parent a30d72bb68
commit 7ea2c3452b
6 changed files with 428 additions and 0 deletions
+6
View File
@@ -8,10 +8,12 @@
//! - `claude` - Claude MCP 同步和导入
//! - `codex` - Codex MCP 同步和导入(含 TOML 转换)
//! - `gemini` - Gemini MCP 同步和导入
//! - `opencode` - OpenCode MCP 同步和导入(含 local/remote 格式转换)
mod claude;
mod codex;
mod gemini;
mod opencode;
mod validation;
// 重新导出公共 API
@@ -26,3 +28,7 @@ pub use gemini::{
import_from_gemini, remove_server_from_gemini, sync_enabled_to_gemini,
sync_single_server_to_gemini,
};
pub use opencode::{
import_from_opencode, remove_server_from_opencode, sync_enabled_to_opencode,
sync_single_server_to_opencode,
};