From 9ca1a41f58526a81661ca2706c84b1627e1f6697 Mon Sep 17 00:00:00 2001 From: Ryan2128 <33176053+Ryan2128@users.noreply.github.com> Date: Tue, 14 Jul 2026 19:23:41 +0800 Subject: [PATCH 001/114] fix: normalize function parameters type to "object" for strict OpenAI-compatible providers (#4706) * fix: normalize function parameters type to "object" for strict OpenAI-compatible providers Some Responses tools carry parameters with `type: null` (e.g. codex_app__automation_update), causing HTTP 400 from strict OpenAI-compatible providers like DeepSeek that require `{"type": "object", "properties": {...}}`. This adds normalize_function_parameters() to ensure the type field is always "object" in both branches of responses_function_tool_to_chat_tool. Closes #4705 * style: fix cargo fmt issues * fix: handle null function parameters --- .../proxy/providers/transform_codex_chat.rs | 30 ++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/src-tauri/src/proxy/providers/transform_codex_chat.rs b/src-tauri/src/proxy/providers/transform_codex_chat.rs index 9f17c2ac5..d3acebce2 100644 --- a/src-tauri/src/proxy/providers/transform_codex_chat.rs +++ b/src-tauri/src/proxy/providers/transform_codex_chat.rs @@ -1096,6 +1096,26 @@ fn serialize_tool_definition_for_description(tool: &Value) -> String { canonical_json_string(tool) } +/// Normalize a function's `parameters` JSON Schema so `type` is always `"object"`. +/// +/// Some Responses tools carry `parameters: null` or `parameters: {"type": null}`, +/// but OpenAI Chat Completions strictly requires `{"type": "object", "properties": {...}}`. +fn normalize_function_parameters(params: Option<&Value>) -> Value { + let mut params = match params { + Some(Value::Object(obj)) => Value::Object(obj.clone()), + _ => json!({"type": "object", "properties": {}}), + }; + if let Some(obj) = params.as_object_mut() { + match obj.get("type").and_then(|v| v.as_str()) { + Some("object") => {} + _ => { + obj.insert("type".to_string(), json!("object")); + } + } + } + params +} + fn responses_function_tool_to_chat_tool(tool: &Value, chat_name: &str) -> Option { if tool.get("type").and_then(|v| v.as_str()) != Some("function") { return None; @@ -1110,6 +1130,14 @@ fn responses_function_tool_to_chat_tool(tool: &Value, chat_name: &str) -> Option .get_mut("function") .and_then(|value| value.as_object_mut()) { + // Ensure parameters.type is "object" for strict OpenAI-compatible providers + if let Some(params) = obj.get("parameters") { + let normalized = normalize_function_parameters(Some(params)); + if normalized != *params { + obj.insert("parameters".to_string(), normalized); + } + } + obj.insert("name".to_string(), json!(chat_name)); if let Some(strict) = tool.get("strict").cloned() { obj.entry("strict".to_string()).or_insert(strict); @@ -1121,7 +1149,7 @@ fn responses_function_tool_to_chat_tool(tool: &Value, chat_name: &str) -> Option let mut function = json!({ "name": chat_name, "description": tool.get("description").cloned().unwrap_or(Value::Null), - "parameters": tool.get("parameters").cloned().unwrap_or_else(|| json!({})) + "parameters": normalize_function_parameters(tool.get("parameters")) }); if let Some(strict) = tool.get("strict") { function["strict"] = strict.clone(); From 6d316c0bdae11d46b30f8b5b95f7d1aaa8dbbe32 Mon Sep 17 00:00:00 2001 From: SaladDay <1203511142@qq.com> Date: Tue, 14 Jul 2026 08:01:10 -0400 Subject: [PATCH 002/114] fix(codex): preserve streamed tool call identity and order (#5310) Keep non-empty call IDs across continuation deltas and release parallel tool calls in Chat index order when identity fields arrive late. Preserve valid sparse and later calls during finalization. --- .../proxy/providers/streaming_codex_chat.rs | 191 +++++++++++++++--- 1 file changed, 164 insertions(+), 27 deletions(-) diff --git a/src-tauri/src/proxy/providers/streaming_codex_chat.rs b/src-tauri/src/proxy/providers/streaming_codex_chat.rs index 66f456f57..7755ad1f9 100644 --- a/src-tauri/src/proxy/providers/streaming_codex_chat.rs +++ b/src-tauri/src/proxy/providers/streaming_codex_chat.rs @@ -75,6 +75,7 @@ struct ChatToResponsesState { reasoning: ReasoningItemState, inline_think: InlineThinkState, tools: BTreeMap, + next_tool_index_to_add: usize, output_items: Vec<(u32, Value)>, latest_usage: Option, finish_reason: Option, @@ -94,6 +95,7 @@ impl Default for ChatToResponsesState { reasoning: ReasoningItemState::default(), inline_think: InlineThinkState::default(), tools: BTreeMap::new(), + next_tool_index_to_add: 0, output_items: Vec::new(), latest_usage: None, finish_reason: None, @@ -347,16 +349,16 @@ impl ChatToResponsesState { .unwrap_or("") .to_string(); - let mut should_add = false; let mut output_index = None; let mut item_id = String::new(); - let mut pending_arguments = String::new(); let current_name: String; { let state = self.tools.entry(chat_index).or_default(); - if let Some(id) = id_delta { - state.call_id = id; + if let Some(ref id) = id_delta { + if !id.is_empty() { + state.call_id.clone_from(id); + } } if let Some(ref name) = name_delta { if !name.is_empty() { @@ -373,10 +375,7 @@ impl ChatToResponsesState { } } - if !state.added && !state.call_id.is_empty() && !state.name.is_empty() { - should_add = true; - pending_arguments = state.arguments.clone(); - } else if state.added { + if state.added { output_index = state.output_index; item_id = state.item_id.clone(); } @@ -386,26 +385,51 @@ impl ChatToResponsesState { let is_custom_tool = self.tool_context.is_custom_tool_chat_name(¤t_name); let mut events = Vec::new(); - if should_add { + if !args_delta.is_empty() && !is_custom_tool { + if let Some(output_index) = output_index { + events.push(sse::function_call_arguments_delta( + output_index, + &item_id, + &args_delta, + )); + } + } + + events.extend(self.flush_ready_tool_calls()); + + events + } + + fn flush_ready_tool_calls(&mut self) -> Vec { + // Release consecutive Chat indexes so late identity fragments cannot reorder calls. + let mut events = Vec::new(); + loop { + let key = self.next_tool_index_to_add; + let Some(state) = self.tools.get(&key) else { + break; + }; + if state.added || state.done { + self.next_tool_index_to_add += 1; + continue; + } + if state.call_id.is_empty() || state.name.is_empty() { + break; + } + let assigned = self.next_output_index(); - let Some(state) = self.tools.get_mut(&chat_index) else { - return events; + let Some(state) = self.tools.get_mut(&key) else { + continue; }; state.added = true; - if state.call_id.is_empty() { - state.call_id = format!("call_{chat_index}"); - } state.output_index = Some(assigned); - let is_custom_tool = self.tool_context.is_custom_tool_chat_name(&state.name); state.item_id = response_tool_call_item_id_from_chat_name( &state.call_id, &state.name, &self.tool_context, ); - item_id = state.item_id.clone(); let item = response_tool_call_item_from_chat_name( - &item_id, + &state.item_id, "in_progress", &state.call_id, &state.name, @@ -416,21 +440,16 @@ impl ChatToResponsesState { events.push(sse::output_item_added(assigned, &item)); - if !pending_arguments.is_empty() && !is_custom_tool { + if !state.arguments.is_empty() + && !self.tool_context.is_custom_tool_chat_name(&state.name) + { events.push(sse::function_call_arguments_delta( assigned, &state.item_id, - &pending_arguments, - )); - } - } else if !args_delta.is_empty() && !is_custom_tool { - if let Some(output_index) = output_index { - events.push(sse::function_call_arguments_delta( - output_index, - &item_id, - &args_delta, + &state.arguments, )); } + self.next_tool_index_to_add += 1; } events @@ -844,6 +863,16 @@ mod tests { String::from_utf8(bytes.concat()).unwrap() } + fn parse_sse_events(output: &str) -> Vec { + output + .split("\n\n") + .filter_map(|block| { + let data = block.lines().find_map(|line| line.strip_prefix("data: "))?; + serde_json::from_str(data).ok() + }) + .collect() + } + #[tokio::test] async fn converts_text_chat_sse_to_responses_sse() { let output = collect(vec![ @@ -916,6 +945,114 @@ mod tests { assert!(output.contains("\"call_id\":\"call_1\"")); } + #[tokio::test] + async fn preserves_tool_identity_across_empty_continuation_deltas() { + let output = collect(vec![ + "data: {\"id\":\"chatcmpl_dashscope\",\"model\":\"deepseek-v4-pro\",\"choices\":[{\"delta\":{\"tool_calls\":[{\"index\":0,\"id\":\"call_dashscope\",\"type\":\"function\",\"function\":{\"name\":\"exec_command\",\"arguments\":\"{\"}}]}}]}\n\n", + "data: {\"id\":\"chatcmpl_dashscope\",\"model\":\"deepseek-v4-pro\",\"choices\":[{\"delta\":{\"tool_calls\":[{\"index\":0,\"id\":\"\",\"type\":\"function\",\"function\":{\"name\":\"\",\"arguments\":\"\\\"cmd\\\":\\\"date\\\"}\"}}]},\"finish_reason\":\"tool_calls\"}]}\n\n", + "data: [DONE]\n\n", + ]) + .await; + let events = parse_sse_events(&output); + let added = events + .iter() + .filter(|event| event["type"] == "response.output_item.added") + .collect::>(); + let done = events + .iter() + .find(|event| event["type"] == "response.output_item.done") + .unwrap(); + let completed = events + .iter() + .find(|event| event["type"] == "response.completed") + .unwrap(); + + assert_eq!(added.len(), 1); + for item in [&done["item"], &completed["response"]["output"][0]] { + assert_eq!(item["type"], "function_call"); + assert_eq!(item["name"], "exec_command"); + assert_eq!(item["call_id"], "call_dashscope"); + assert_eq!(item["arguments"], r#"{"cmd":"date"}"#); + } + assert!(!output.contains(r#""name":"""#)); + assert!(!output.contains(r#""call_id":"""#)); + } + + #[tokio::test] + async fn preserves_parallel_tool_order_when_earlier_name_arrives_late() { + let output = collect(vec![ + "data: {\"id\":\"chatcmpl_parallel\",\"model\":\"deepseek-v4-pro\",\"choices\":[{\"delta\":{\"tool_calls\":[{\"index\":0,\"id\":\"call_first\",\"type\":\"function\",\"function\":{\"name\":\"\",\"arguments\":\"{\"}}]}}]}\n\n", + "data: {\"id\":\"chatcmpl_parallel\",\"model\":\"deepseek-v4-pro\",\"choices\":[{\"delta\":{\"tool_calls\":[{\"index\":1,\"id\":\"call_second\",\"type\":\"function\",\"function\":{\"name\":\"second_tool\",\"arguments\":\"{\\\"value\\\":2}\"}}]}}]}\n\n", + "data: {\"id\":\"chatcmpl_parallel\",\"model\":\"deepseek-v4-pro\",\"choices\":[{\"delta\":{\"tool_calls\":[{\"index\":0,\"function\":{\"name\":\"first_tool\",\"arguments\":\"\\\"value\\\":1}\"}}]},\"finish_reason\":\"tool_calls\"}]}\n\n", + "data: [DONE]\n\n", + ]) + .await; + let events = parse_sse_events(&output); + let added = events + .iter() + .filter(|event| event["type"] == "response.output_item.added") + .collect::>(); + let completed = events + .iter() + .find(|event| event["type"] == "response.completed") + .unwrap(); + let items = completed["response"]["output"].as_array().unwrap(); + + assert_eq!(added.len(), 2); + assert_eq!(added[0]["output_index"], 0); + assert_eq!(added[0]["item"]["name"], "first_tool"); + assert_eq!(added[1]["output_index"], 1); + assert_eq!(added[1]["item"]["name"], "second_tool"); + assert_eq!(items[0]["name"], "first_tool"); + assert_eq!(items[0]["call_id"], "call_first"); + assert_eq!(items[0]["arguments"], r#"{"value":1}"#); + assert_eq!(items[1]["name"], "second_tool"); + assert_eq!(items[1]["call_id"], "call_second"); + assert_eq!(items[1]["arguments"], r#"{"value":2}"#); + } + + #[tokio::test] + async fn finalization_keeps_valid_call_after_unnamed_earlier_call() { + let output = collect(vec![ + "data: {\"id\":\"chatcmpl_parallel_missing\",\"model\":\"deepseek-v4-pro\",\"choices\":[{\"delta\":{\"tool_calls\":[{\"index\":0,\"id\":\"call_missing\",\"type\":\"function\",\"function\":{\"arguments\":\"{}\"}}]}}]}\n\n", + "data: {\"id\":\"chatcmpl_parallel_missing\",\"model\":\"deepseek-v4-pro\",\"choices\":[{\"delta\":{\"tool_calls\":[{\"index\":1,\"id\":\"call_valid\",\"type\":\"function\",\"function\":{\"name\":\"exec_command\",\"arguments\":\"{\\\"cmd\\\":\\\"date\\\"}\"}}]},\"finish_reason\":\"tool_calls\"}]}\n\n", + "data: [DONE]\n\n", + ]) + .await; + let events = parse_sse_events(&output); + let completed = events + .iter() + .find(|event| event["type"] == "response.completed") + .unwrap(); + let items = completed["response"]["output"].as_array().unwrap(); + + assert_eq!(items.len(), 1); + assert_eq!(items[0]["name"], "exec_command"); + assert_eq!(items[0]["call_id"], "call_valid"); + assert_eq!(items[0]["arguments"], r#"{"cmd":"date"}"#); + assert!(!output.contains("call_missing")); + } + + #[tokio::test] + async fn finalization_keeps_non_contiguous_tool_index() { + let output = collect(vec![ + "data: {\"id\":\"chatcmpl_sparse\",\"model\":\"deepseek-v4-pro\",\"choices\":[{\"delta\":{\"tool_calls\":[{\"index\":2,\"id\":\"call_sparse\",\"type\":\"function\",\"function\":{\"name\":\"read_file\",\"arguments\":\"{\\\"path\\\":\\\"README.md\\\"}\"}}]},\"finish_reason\":\"tool_calls\"}]}\n\n", + "data: [DONE]\n\n", + ]) + .await; + let events = parse_sse_events(&output); + let completed = events + .iter() + .find(|event| event["type"] == "response.completed") + .unwrap(); + let items = completed["response"]["output"].as_array().unwrap(); + + assert_eq!(items.len(), 1); + assert_eq!(items[0]["name"], "read_file"); + assert_eq!(items[0]["call_id"], "call_sparse"); + assert_eq!(items[0]["arguments"], r#"{"path":"README.md"}"#); + } + #[tokio::test] async fn restores_custom_tool_input_stream_events() { let request = json!({ From 1cc52c7e736105b2765f7d51c38c67f909454912 Mon Sep 17 00:00:00 2001 From: Jason Date: Tue, 14 Jul 2026 22:44:42 +0800 Subject: [PATCH 003/114] docs(readme): add SubRouter sponsor entry across four locales --- README.md | 15 ++++++++++----- README_DE.md | 15 ++++++++++----- README_JA.md | 15 ++++++++++----- README_ZH.md | 15 ++++++++++----- assets/partners/logos/subrouter-banner.png | Bin 0 -> 881280 bytes 5 files changed, 40 insertions(+), 20 deletions(-) create mode 100644 assets/partners/logos/subrouter-banner.png diff --git a/README.md b/README.md index e82ccd713..ace7ef005 100644 --- a/README.md +++ b/README.md @@ -69,6 +69,11 @@ Unlike typical API relay services, TeamoRouter aggregates hundreds of official m TeamoRouter also offers enterprise features including centralized billing, team management, BYOK, smart routing, usage analytics, dynamic provider optimization, and dedicated support. For an even simpler experience, Teamo Desktop lets you use Claude Code, Codex, Gemini CLI, and other popular AI agents with one-click setup—no API key management or manual gateway configuration required. Register via this link as a new user to receive 10% off your first top-up. + +ZetaAPI +Thanks to ZetaAPI for sponsoring this project! ZetaAPI focuses on real model fidelity, no watered-down responses, no quality degradation, and pricing as low as 35% of official rates. The platform does not mix traffic, secretly replace models with lower-quality alternatives, or use fake model routing. It supports Claude Code, Codex, Gemini, ChatGPT, and other mainstream AI models, helping users significantly reduce API costs while maintaining reliable model quality. At the same time, ZetaAPI provides enterprise-grade SLA-backed stability, standard API compatibility, one API key for multiple models, fast integration, and pay-as-you-go billing, making it suitable for AI products, coding agents, internal business tools, customer service systems, content generation, and automation workflows. If any model is verified to be inconsistent with its stated quality, ZetaAPI backs it with a 10x compensation guarantee, giving users a more stable, transparent, and trustworthy experience. Register via this link and use the promo code CC-SWITCH during your first recharge to enjoy an exclusive 10% discount on your first top-up, just for CC Switch users! + + BytePlus Thanks to Dola seed for sponsoring this project! Dola Seed 2.0 is a full‑modal general large model independently developed by ByteDance for the global market. Built on a unified multimodal architecture, it supports joint understanding and generation of text, images, audio, and video. It natively enables agent collaboration, with strong reasoning, long‑task execution, tool integration, and coding capabilities. It is widely applicable to smart cockpits, personal assistants, education, customer support, marketing, retail, and other scenarios. It excels in multimodal perception, end‑to‑end complex task delivery, stable interaction, and data security, and is readily accessible and deployable via the ModelArk platform.Register via this link to get 500,000 tokens of free inference quota per model. >>中国大陆地区的开发者请点击这里 @@ -169,11 +174,6 @@ TeamoRouter also offers enterprise features including centralized billing, team Thanks to Fenno.ai for sponsoring this project! Fenno.ai is a stable and efficient API relay service provider, currently focused on Codex relay. It is compatible with the OpenAI and Anthropic protocols and can be flexibly used from Codex, Claude Code, OpenCode, and other mainstream coding tools. It reliably supports enterprise-grade workloads of hundreds of billions of tokens per day, with corporate (B2B) settlement and invoicing for both domestic and overseas entities. Fenno.ai offers an exclusive benefit for CC Switch users: subscribe via this link to the incredible ¥9.9 Coding Plan worth $150 in credits, and earn up to 20% in referral rewards — invite more, earn more! - -ZetaAPI -Thanks to ZetaAPI for sponsoring this project! ZetaAPI focuses on real model fidelity, no watered-down responses, no quality degradation, and pricing as low as 35% of official rates. The platform does not mix traffic, secretly replace models with lower-quality alternatives, or use fake model routing. It supports Claude Code, Codex, Gemini, ChatGPT, and other mainstream AI models, helping users significantly reduce API costs while maintaining reliable model quality. At the same time, ZetaAPI provides enterprise-grade SLA-backed stability, standard API compatibility, one API key for multiple models, fast integration, and pay-as-you-go billing, making it suitable for AI products, coding agents, internal business tools, customer service systems, content generation, and automation workflows. If any model is verified to be inconsistent with its stated quality, ZetaAPI backs it with a 10x compensation guarantee, giving users a more stable, transparent, and trustworthy experience. Register via this link and use the promo code CC-SWITCH during your first recharge to enjoy an exclusive 10% discount on your first top-up, just for CC Switch users! - - NekoCode Thanks to NekoCode for sponsoring this project! NekoCode provides developers with a stable, efficient, and reliable API relay service for Claude, Codex, and other AI models. With transparent pricing and flexible pay-as-you-go billing, it offers a simple and cost-effective way to access AI models. CC Switch users can enjoy an exclusive 10% discount: register via this link and enter promo code cc-switch during recharge to receive 10% off your top-up! @@ -184,6 +184,11 @@ TeamoRouter also offers enterprise features including centralized billing, team Thanks to the open-source AI infrastructure project new-api for its strong support of this project! new-api is an open-source AI infrastructure project from QuantumNous and one of the leading unified LLM access-and-distribution projects by activity and adoption, focused on helping developers, teams, and enterprises build manageable, scalable AI service platforms at lower cost. As a fellow project rooted in the open-source ecosystem, new-api hopes to sponsor and support the continued growth of more outstanding open-source projects. 🌟 Star new-api to show your support: https://github.com/QuantumNous/new-api. Website: https://www.newapi.ai/. + +SubRouter +Thanks to SubRouter for sponsoring this project! SubRouter is a marketplace and smart routing platform for AI service operators. Merchants can launch operating sites, publish packages, manage users, models, and pricing, while users discover services and access reliable AI models through one unified API. Register via this link! + + diff --git a/README_DE.md b/README_DE.md index 58ee764a1..52d9327f8 100644 --- a/README_DE.md +++ b/README_DE.md @@ -69,6 +69,11 @@ Anders als typische API-Relay-Dienste bündelt TeamoRouter Hunderte offizieller TeamoRouter bietet außerdem Enterprise-Funktionen wie zentrale Abrechnung, Team-Verwaltung, BYOK, intelligentes Routing, Nutzungsanalysen, dynamische Anbieter-Optimierung und dedizierten Support. Für ein noch einfacheres Erlebnis können Sie mit Teamo Desktop Claude Code, Codex, Gemini CLI und weitere beliebte KI-Agenten per Ein-Klick-Einrichtung nutzen — ohne Verwaltung von API-Schlüsseln oder manuelle Gateway-Konfiguration. Registrieren Sie sich als neuer Nutzer über diesen Link und erhalten Sie 10 % Rabatt auf Ihre erste Aufladung. + +ZetaAPI +Danke an ZetaAPI für die Unterstützung dieses Projekts! ZetaAPI legt den Fokus auf echte Modelltreue — keine verwässerten Antworten, keine Qualitätsminderung — und Preise von nur 35 % der offiziellen Tarife. Die Plattform mischt keinen Traffic, ersetzt Modelle nicht heimlich durch minderwertige Alternativen und nutzt kein gefälschtes Modell-Routing. Sie unterstützt Claude Code, Codex, Gemini, ChatGPT und weitere gängige KI-Modelle und hilft Nutzern, die API-Kosten deutlich zu senken und gleichzeitig eine zuverlässige Modellqualität zu gewährleisten. Gleichzeitig bietet ZetaAPI eine SLA-gestützte Stabilität auf Unternehmensniveau, Standard-API-Kompatibilität, einen API-Key für mehrere Modelle, schnelle Integration und nutzungsbasierte Abrechnung — geeignet für KI-Produkte, Coding-Agents, interne Unternehmenstools, Kundenservice-Systeme, Content-Erstellung und Automatisierungs-Workflows. Falls bei einem Modell nachgewiesen wird, dass es nicht der angegebenen Qualität entspricht, sichert ZetaAPI dies mit einer 10-fachen Entschädigungsgarantie ab und bietet Nutzern ein stabileres, transparenteres und vertrauenswürdigeres Erlebnis. Registrieren Sie sich über diesen Link und verwenden Sie bei Ihrer ersten Aufladung den Promo-Code CC-SWITCH, um als CC-Switch-Nutzer einen exklusiven Rabatt von 10 % auf Ihre erste Aufladung zu erhalten! + + BytePlus Danke an Dola seed für die Unterstützung dieses Projekts! Dola Seed 2.0 ist ein voll-modales Allzweck-Großmodell, das von ByteDance eigenständig für den globalen Markt entwickelt wurde. Aufbauend auf einer einheitlichen multimodalen Architektur unterstützt es das gemeinsame Verstehen und Generieren von Text, Bildern, Audio und Video. Es ermöglicht von Haus aus die Zusammenarbeit von Agenten und verfügt über starke Fähigkeiten in den Bereichen Schlussfolgern, Ausführung langer Aufgaben, Werkzeugintegration und Programmierung. Es ist breit einsetzbar — etwa für intelligente Cockpits, persönliche Assistenten, Bildung, Kundensupport, Marketing, Einzelhandel und weitere Szenarien. Es überzeugt bei multimodaler Wahrnehmung, der Ende-zu-Ende-Bewältigung komplexer Aufgaben, stabiler Interaktion und Datensicherheit und ist über die ModelArk-Plattform einfach zugänglich und bereitstellbar. Registrieren Sie sich über diesen Link und erhalten Sie pro Modell ein kostenloses Inferenzkontingent von 500.000 Token. >>中国大陆地区的开发者请点击这里 @@ -169,11 +174,6 @@ TeamoRouter bietet außerdem Enterprise-Funktionen wie zentrale Abrechnung, Team Danke an Fenno.ai für die Unterstützung dieses Projekts! Fenno.ai ist ein stabiler und effizienter API-Relay-Dienstleister, der sich derzeit hauptsächlich auf Codex-Relay konzentriert. Er ist mit den OpenAI- und Anthropic-Protokollen kompatibel und lässt sich flexibel mit Codex, Claude Code, OpenCode und anderen gängigen Coding-Tools nutzen. Er unterstützt zuverlässig Workloads auf Unternehmensniveau von Hunderten Milliarden Tokens pro Tag und bietet B2B-Abrechnung sowie Rechnungsstellung für Unternehmen im In- und Ausland. Fenno.ai bietet einen exklusiven Vorteil für CC-Switch-Nutzer: Abonnieren Sie über diesen Link den unschlagbaren ¥9,9-Coding-Plan im Wert von $150 Guthaben und erhalten Sie bis zu 20% Empfehlungsprämien — je mehr Einladungen, desto mehr Belohnung! - -ZetaAPI -Danke an ZetaAPI für die Unterstützung dieses Projekts! ZetaAPI legt den Fokus auf echte Modelltreue — keine verwässerten Antworten, keine Qualitätsminderung — und Preise von nur 35 % der offiziellen Tarife. Die Plattform mischt keinen Traffic, ersetzt Modelle nicht heimlich durch minderwertige Alternativen und nutzt kein gefälschtes Modell-Routing. Sie unterstützt Claude Code, Codex, Gemini, ChatGPT und weitere gängige KI-Modelle und hilft Nutzern, die API-Kosten deutlich zu senken und gleichzeitig eine zuverlässige Modellqualität zu gewährleisten. Gleichzeitig bietet ZetaAPI eine SLA-gestützte Stabilität auf Unternehmensniveau, Standard-API-Kompatibilität, einen API-Key für mehrere Modelle, schnelle Integration und nutzungsbasierte Abrechnung — geeignet für KI-Produkte, Coding-Agents, interne Unternehmenstools, Kundenservice-Systeme, Content-Erstellung und Automatisierungs-Workflows. Falls bei einem Modell nachgewiesen wird, dass es nicht der angegebenen Qualität entspricht, sichert ZetaAPI dies mit einer 10-fachen Entschädigungsgarantie ab und bietet Nutzern ein stabileres, transparenteres und vertrauenswürdigeres Erlebnis. Registrieren Sie sich über diesen Link und verwenden Sie bei Ihrer ersten Aufladung den Promo-Code CC-SWITCH, um als CC-Switch-Nutzer einen exklusiven Rabatt von 10 % auf Ihre erste Aufladung zu erhalten! - - NekoCode Vielen Dank an NekoCode für die Unterstützung dieses Projekts! NekoCode bietet Entwicklern einen stabilen, effizienten und zuverlässigen API-Relay-Dienst für Claude, Codex und weitere KI-Modelle. Mit transparenter Preisgestaltung und flexibler nutzungsbasierter Abrechnung bietet es einen einfachen und kostengünstigen Zugang zu KI-Modellen. CC-Switch-Nutzer erhalten einen exklusiven Rabatt von 10 %: Registrieren Sie sich über diesen Link und geben Sie beim Aufladen den Gutscheincode cc-switch ein, um 10 % Rabatt auf Ihre Aufladung zu erhalten! @@ -184,6 +184,11 @@ TeamoRouter bietet außerdem Enterprise-Funktionen wie zentrale Abrechnung, Team Vielen Dank an das Open-Source-KI-Infrastrukturprojekt new-api für die tatkräftige Unterstützung dieses Projekts! new-api ist ein Open-Source-KI-Infrastrukturprojekt von QuantumNous und eines der nach Aktivität und Verbreitung führenden Projekte für den einheitlichen Zugang zu und die Verteilung von LLMs, das sich darauf konzentriert, Entwicklern, Teams und Unternehmen beim Aufbau verwaltbarer und skalierbarer KI-Serviceplattformen zu geringeren Kosten zu helfen. Als ein ebenfalls im Open-Source-Ökosystem verwurzeltes Projekt möchte new-api durch Sponsoring die kontinuierliche Weiterentwicklung weiterer herausragender Open-Source-Projekte unterstützen. 🌟 Unterstützen Sie new-api mit einem Star: https://github.com/QuantumNous/new-api. Website: https://www.newapi.ai/. + +SubRouter +Danke an SubRouter für die Unterstützung dieses Projekts! SubRouter ist ein Marktplatz und eine intelligente Routing-Plattform für Betreiber von KI-Diensten. Händler können eigene Betriebsseiten starten, Pakete veröffentlichen sowie Nutzer, Modelle und Preise verwalten, während Nutzer im Marktplatz Dienste entdecken und über eine einzige einheitliche API zuverlässige und effiziente Modellaufrufe nutzen. Registrieren Sie sich über diesen Link! + + diff --git a/README_JA.md b/README_JA.md index 4fa44390e..af952a86e 100644 --- a/README_JA.md +++ b/README_JA.md @@ -69,6 +69,11 @@ Claude Code / Codex / Gemini 公式チャンネルが最安で元価格の 38% / TeamoRouter は、集中請求、チーム管理、BYOK、スマートルーティング、利用状況分析、動的なプロバイダー最適化、専任サポートなどのエンタープライズ機能も提供しています。さらにシンプルな体験を求める場合は、Teamo Desktop を使うことで、Claude Code、Codex、Gemini CLI、その他の人気 AI エージェントをワンクリックで利用できます。API キー管理や手動のゲートウェイ設定は不要です。新規ユーザーとしてこちらのリンクから登録すると、初回チャージが 10% オフになります。 + +ZetaAPI +本プロジェクトをご支援いただいている ZetaAPI に感謝します!ZetaAPI は、モデル品質の忠実性、水増しなし、性能劣化なし、公式価格の 35% から利用できる低価格を主な特徴としています。プラットフォームはトラフィックの混在、低品質モデルへの密かな切り替え、虚偽のモデルルーティングを行わず、Claude Code、Codex、Gemini、ChatGPT などの主要 AI モデルに対応しており、モデル品質を維持しながら API 利用コストを大幅に削減できます。同時に、ZetaAPI はエンタープライズ級の SLA 安定性保証、標準 API 互換、1つの Key による複数モデル接続、迅速な導入、従量課金などの機能を提供し、AI プロダクト、コード生成、企業内ツール、カスタマーサポート、コンテンツ生成、自動化ワークフローなどの用途に適しています。万が一、モデル品質が表記内容と一致しないことが確認された場合、ZetaAPI は 10 倍補償保証を提供し、ユーザーがより安定して、透明性高く、安心して利用できる環境を実現します。こちらのリンクから登録し、初回チャージ時にプロモコード CC-SWITCH を使用すると、CC Switch ユーザー限定の初回チャージ 10% オフ特典をご利用いただけます! + + BytePlus Dola seed のご支援に感謝します!Dola Seed 2.0 は ByteDance がグローバル市場向けに独自開発したフルモーダル汎用大規模モデルです。統一されたマルチモーダルアーキテクチャを基盤に、テキスト・画像・音声・動画の統合的な理解と生成をサポートします。エージェント連携をネイティブに実現し、強力な推論、長時間タスクの実行、ツール統合、コーディング能力を備えています。スマートコックピット、パーソナルアシスタント、教育、カスタマーサポート、マーケティング、リテールなど幅広いシナリオに適用可能で、マルチモーダル認識、エンドツーエンドの複雑なタスク遂行、安定したインタラクション、データセキュリティに優れ、ModelArk プラットフォームを通じて手軽に利用・デプロイできます。このリンクからご登録いただくと、モデルごとに 500,000 トークンの無料推論クォータを進呈します。 >>中国大陆地区的开发者请点击这里 @@ -169,11 +174,6 @@ TeamoRouter は、集中請求、チーム管理、BYOK、スマートルーテ Fenno.ai のご支援に感謝します!Fenno.ai は安定かつ高効率な API 中継サービスプロバイダーで、現在は主に Codex の中継を提供しています。OpenAI および Anthropic プロトコルに対応し、Codex・Claude Code・OpenCode などの主要なコーディングツールから柔軟に利用できます。1 日あたり数千億トークンというエンタープライズ級の呼び出し需要を安定して支え、国内外の法人による B2B 決済・請求書発行に対応しています。Fenno.ai は CC Switch 利用者限定の特典を用意しています:こちらのリンクから 9.9 元(150 ドル相当)のお得な Coding Plan を購入でき、友達紹介で最大 20% の特典がもらえます。紹介すればするほどお得です! - -ZetaAPI -本プロジェクトをご支援いただいている ZetaAPI に感謝します!ZetaAPI は、モデル品質の忠実性、水増しなし、性能劣化なし、公式価格の 35% から利用できる低価格を主な特徴としています。プラットフォームはトラフィックの混在、低品質モデルへの密かな切り替え、虚偽のモデルルーティングを行わず、Claude Code、Codex、Gemini、ChatGPT などの主要 AI モデルに対応しており、モデル品質を維持しながら API 利用コストを大幅に削減できます。同時に、ZetaAPI はエンタープライズ級の SLA 安定性保証、標準 API 互換、1つの Key による複数モデル接続、迅速な導入、従量課金などの機能を提供し、AI プロダクト、コード生成、企業内ツール、カスタマーサポート、コンテンツ生成、自動化ワークフローなどの用途に適しています。万が一、モデル品質が表記内容と一致しないことが確認された場合、ZetaAPI は 10 倍補償保証を提供し、ユーザーがより安定して、透明性高く、安心して利用できる環境を実現します。こちらのリンクから登録し、初回チャージ時にプロモコード CC-SWITCH を使用すると、CC Switch ユーザー限定の初回チャージ 10% オフ特典をご利用いただけます! - - NekoCode 本プロジェクトをご支援いただいている NekoCode に感謝します!NekoCode は、Claude や Codex などの AI モデルに対応した、安定性・効率性・信頼性に優れた API 中継サービスを提供しています。料金体系は明瞭で、柔軟な従量課金にも対応しています。CC Switch ユーザー限定の 10%オフ特典:こちらのリンク から登録し、チャージ時にクーポンコード cc-switch を入力すると、チャージが 10%オフになります! @@ -184,6 +184,11 @@ TeamoRouter は、集中請求、チーム管理、BYOK、スマートルーテ オープンソースの AI インフラプロジェクト new-api による本プロジェクトへの多大なご支援に感謝します!new-api は QuantumNous(锟腾科技)が開発したオープンソースの AI インフラプロジェクトであり、活発さと利用規模の面でリードする LLM 統合アクセス・配信プロジェクトの一つで、開発者・チーム・企業がより低コストで管理・拡張可能な AI サービスプラットフォームを構築できるよう支援することに注力しています。同じくオープンソースエコシステムに根ざすプロジェクトとして、new-api はスポンサーシップを通じて、より多くの優れたオープンソースプロジェクトの継続的な発展を支援したいと考えています。🌟 new-api への Star で応援をお願いします:https://github.com/QuantumNous/new-api。公式サイト:https://www.newapi.ai/。 + +SubRouter +本プロジェクトをご支援いただいている SubRouter に感謝します!SubRouter は、AI サービス事業者向けのマーケットプレイス兼スマートルーティングプラットフォームです。事業者は独立した運営サイトを立ち上げ、プランを公開し、ユーザー・モデル・価格を管理でき、ユーザーはマーケットでサービスを見つけ、統一された API を通じて安定かつ高効率なモデル呼び出しを利用できます。こちらのリンクから登録してください! + + diff --git a/README_ZH.md b/README_ZH.md index 0bd0a6ac3..4f87c60ba 100644 --- a/README_ZH.md +++ b/README_ZH.md @@ -69,6 +69,11 @@ Claude Code / Codex / Gemini 官方渠道低至 3.8 / 0.2 / 0.9 折,充值更 TeamoRouter 还提供企业级功能,包括集中账单、团队管理、BYOK、智能路由、用量分析、动态提供商优化和专属支持。为了获得更简单的使用体验,Teamo Desktop 支持你一键使用 Claude Code、Codex、Gemini CLI 和其他热门 AI Agent,无需管理 API Key,也无需手动配置网关。新用户通过此链接注册,首次充值可享受 10% 折扣。 + +ZetaAPI +感谢 ZetaAPI 赞助本项目!ZetaAPI 主打模型不掺水、保真不降智、价格低至官方价 35 折,平台不混量、不暗中替换低质量模型、不做虚假路由,支持 Claude Code、Codex、Gemini、ChatGPT 等主流模型接入,帮助用户在保证模型质量的同时大幅降低 API 使用成本。同时,ZetaAPI 提供企业级 SLA 稳定性保障、标准接口兼容、一个 Key 接入多模型、快速集成、按量计费等能力,适用于 AI 产品、代码生成、企业内部工具、客服系统、内容生产和自动化流程等场景。若经验证发现模型质量与标称不符,ZetaAPI 承诺假一赔十,让用户用得更稳定、更透明、更放心。通过此链接注册,并在首次充值时使用优惠码 CC-SWITCH,即可享受 CC Switch 用户专属的首次充值九折优惠! + + HuoShan 感谢火山方舟 Agent Plan 模型赞助了本项目!方舟 Agent Plan 模型订阅套餐集成了包含 Doubao-Seed、Doubao-Seedance、Doubao-Seedream 等在内的字节跳动自研 SOTA 级模型,覆盖文本、代码、图像、视频等多模态任务。最新支持 MiniMax-M3、DeepSeek-V4 系列、GLM-5.1、Doubao-Seed-2.0 系列、Kimi-K2.6 等模型,工具不限。超全模态模型与 Harness 升级一步到位,深度支持 Agent 框架与 AI 编程工具。一次订阅,可以为不同任务切换合适的 AI 引擎。方舟 Coding Plan 为 CC Switch 的用户提供了专属福利:通过此链接订阅方舟 Coding Plan,新客户首两个月享 2.5 折优惠,再用专属邀请码 6J6FV5N2 领取奖励叠加 9.5 折,低至 9.4 元/月!>>For developers outside Mainland China, please click here @@ -170,11 +175,6 @@ TeamoRouter 还提供企业级功能,包括集中账单、团队管理、BYOK 感谢 Fenno.ai 赞助了本项目!Fenno.ai 是一家稳定、高效的 API 中转服务商,目前主要提供 Codex 中转服务,兼容 OpenAI 及 Anthropic 协议,可灵活接入 Codex、Claude Code、OpenCode 等主流编程工具,可稳定支撑千亿 Token/日的企业级调用需求,支持国内及海外主体公对公结算、开票。Fenno.ai 为 CC Switch 的用户提供了专属福利:通过此链接即可订阅 9.9 元/150 刀额度的超值 Coding Plan,邀请好友最高可享 20% 奖励,多邀多得! - -ZetaAPI -感谢 ZetaAPI 赞助本项目!ZetaAPI 主打模型不掺水、保真不降智、价格低至官方价 35 折,平台不混量、不暗中替换低质量模型、不做虚假路由,支持 Claude Code、Codex、Gemini、ChatGPT 等主流模型接入,帮助用户在保证模型质量的同时大幅降低 API 使用成本。同时,ZetaAPI 提供企业级 SLA 稳定性保障、标准接口兼容、一个 Key 接入多模型、快速集成、按量计费等能力,适用于 AI 产品、代码生成、企业内部工具、客服系统、内容生产和自动化流程等场景。若经验证发现模型质量与标称不符,ZetaAPI 承诺假一赔十,让用户用得更稳定、更透明、更放心。通过此链接注册,并在首次充值时使用优惠码 CC-SWITCH,即可享受 CC Switch 用户专属的首次充值九折优惠! - - NekoCode 感谢 NekoCode 赞助本项目!NekoCode 为开发者提供稳定、高效、可靠的 Claude、Codex 等 AI 模型 API 中转服务,价格透明,接入便捷,支持灵活的按量计费。CC Switch 用户专享 9 折福利:通过 此链接 注册,并在充值时输入优惠码 cc-switch,即可享受充值 9 折优惠! @@ -185,6 +185,11 @@ TeamoRouter 还提供企业级功能,包括集中账单、团队管理、BYOK 感谢开源 AI 基础设施项目 new-api 对本项目的鼎力支持!new-api 是由 QuantumNous(锟腾科技)推出的开源 AI 基础设施项目,也是活跃度与使用规模领先的大模型统一接入与分发项目之一,专注于帮助开发者、团队和企业以更低成本构建可管理、可扩展的 AI 服务平台。作为同样扎根开源生态的项目,new-api 希望通过赞助支持更多优秀开源项目持续发展。🌟 欢迎 Star 支持 new-api:https://github.com/QuantumNous/new-api,官网:https://www.newapi.ai/。 + +SubRouter +感谢 SubRouter 赞助本项目!SubRouter 是面向 AI 服务经营者的公开市场与智能路由平台。商家可快速开通独立经营站,发布套餐、管理用户与模型价格;用户可在市场发现服务,并通过统一 API 获得稳定高效的模型调用。通过此链接注册! + + diff --git a/assets/partners/logos/subrouter-banner.png b/assets/partners/logos/subrouter-banner.png new file mode 100644 index 0000000000000000000000000000000000000000..7fef8a00adf9b65718ca180f80d27f37512981b9 GIT binary patch literal 881280 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%0A3d-#SGa*!D=!m83@}`k4Y298EPM(A8wlk43#H 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

~ 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

#W_dW2DhYml4&@B5UP|xQpRvnj_ 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

AiTdhjn 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%0ALy;{|I_SN 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

JDY4v8(5x)o7n36T)!0ogCSP>M?X8q~rtD8Mr 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

E^_d114y4B?c>|4QvgL?tB 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%0A}Rtpz? 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 Date: Wed, 15 Jul 2026 10:33:22 +0800 Subject: [PATCH 004/114] fix(ci): run backend checks on Windows/macOS and repair platform-gated tests (#5138) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix(ci): run backend checks on Windows/macOS and repair platform-gated tests The backend CI job ran only on ubuntu-22.04, so every #[cfg(target_os = "windows")] / macOS path — tests and clippy lints alike — was never compiled or run. As a result main shipped 8 failing Windows unit tests and a hard `cargo clippy -- -D warnings` failure on Windows, all invisible to CI because it only builds and tests Linux. Changes: - ci: run the backend job on a {ubuntu-22.04, windows-latest, macos-latest} matrix (fail-fast: false); gate the apt install step on runner.os == 'Linux' and use `shell: bash` for the dist placeholder so it works on all three runners. - misc.rs: fix 6 stale `anchored_upgrade_windows` tests. Commit 5092fe51 removed codex from `prefers_official_update`, so codex now anchors to the package manager with no `codex update ||` prefix; update the five package-manager expectations accordingly, and retarget the no-sibling "official-update-without-fallback" test to `claude` (still in the list) so that branch stays covered instead of being silently dropped. - codex_state_db.rs / codex_history_migration.rs: the two sqlite_home tests built TOML basic strings from Windows paths, whose backslashes are invalid escape sequences and made the override fail to parse; switch to TOML literal (single-quoted) strings so the path is taken verbatim. - clippy (13 Windows-only warnings): move `use std::io::Write` into the #[cfg(unix)] block that actually uses it; convert 3 unneeded `return`s in Windows-gated tail positions to expressions; mark 9 POSIX-shell helpers #[cfg_attr(windows, allow(dead_code))] since they are used only by the macOS/Linux terminal launchers. Verified locally (Windows 11, Rust 1.95.0): cargo test --lib → 1748 passed; 0 failed (was 1740/8) cargo clippy -- -D warnings → clean (was 13 errors) cargo fmt --check → clean Co-Authored-By: Claude * fix(skills): resolve home via get_home_dir so tests isolate on Windows services/skill.rs called dirs::home_dir() directly in five places. On Windows dirs::home_dir() resolves through the Known Folder API and ignores HOME/USERPROFILE, so the CC_SWITCH_TEST_HOME override set by the test harness never applied: the skill_sync integration tests scanned the runner's real user profile, found no skills, and failed (the first panic then poisoned the shared test mutex, cascading to all seven). On Unix the harness also sets HOME, which dirs::home_dir() honors, so the suite passed there by accident. Route all five call sites through crate::config::get_home_dir(), the crate-wide home resolver that prefers CC_SWITCH_TEST_HOME. The three now-unreachable GET_HOME_DIR_FAILED error branches are dropped: get_home_dir() is infallible, matching every other config-dir resolver. Production behavior is unchanged (CC_SWITCH_TEST_HOME is unset outside tests, so get_home_dir falls through to dirs::home_dir). Add a regression test that discriminates on every platform by pointing CC_SWITCH_TEST_HOME at a temp dir different from $HOME; it is marked #[serial_test::serial] to stay mutually exclusive with the other tests mutating the same process-global variable. Verified the test fails against the old code on macOS with the same failure mode as Windows CI. --------- Co-authored-by: Claude Co-authored-by: Jason --- .github/workflows/ci.yml | 8 ++- src-tauri/src/codex_history_migration.rs | 3 +- src-tauri/src/codex_state_db.rs | 4 +- src-tauri/src/commands/misc.rs | 47 ++++++++++------- src-tauri/src/commands/settings.rs | 2 +- src-tauri/src/services/skill.rs | 65 +++++++++++++++--------- src-tauri/src/settings.rs | 2 +- 7 files changed, 83 insertions(+), 48 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 33dab3f0b..09e180adb 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -55,7 +55,11 @@ jobs: backend: name: Backend Checks - runs-on: ubuntu-22.04 + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + os: [ubuntu-22.04, windows-latest, macos-latest] steps: - name: Checkout uses: actions/checkout@v6 @@ -66,6 +70,7 @@ jobs: components: rustfmt, clippy - name: Install Linux system deps + if: runner.os == 'Linux' run: | sudo apt-get update sudo apt-get install -y --no-install-recommends \ @@ -87,6 +92,7 @@ jobs: restore-keys: ${{ runner.os }}-cargo- - name: Create frontend dist placeholder + shell: bash run: mkdir -p dist - name: Check Rust formatting diff --git a/src-tauri/src/codex_history_migration.rs b/src-tauri/src/codex_history_migration.rs index 4d99bf2a6..9e4f0e023 100644 --- a/src-tauri/src/codex_history_migration.rs +++ b/src-tauri/src/codex_history_migration.rs @@ -2137,7 +2137,8 @@ base_url = "https://proxy.example/v1" let env_sqlite_home = dir.path().join("env-sqlite-home"); let config_sqlite_home = dir.path().join("config-sqlite-home"); let _guard = EnvVarGuard::set("CODEX_SQLITE_HOME", &env_sqlite_home); - let config_text = format!("sqlite_home = \"{}\"\n", config_sqlite_home.display()); + // TOML 字面量字符串(单引号):Windows 路径含反斜杠,basic string 会解析失败。 + let config_text = format!("sqlite_home = '{}'\n", config_sqlite_home.display()); let paths = codex_state_db_paths(&codex_dir, &config_text); diff --git a/src-tauri/src/codex_state_db.rs b/src-tauri/src/codex_state_db.rs index ba5ee4e28..da4d69d1f 100644 --- a/src-tauri/src/codex_state_db.rs +++ b/src-tauri/src/codex_state_db.rs @@ -83,7 +83,9 @@ mod tests { fn includes_config_sqlite_home() { let temp = tempdir().expect("tempdir"); let sqlite_home = temp.path().join("sqlite-home"); - let config_text = format!("sqlite_home = \"{}\"\n", sqlite_home.display()); + // 用 TOML 字面量字符串(单引号)承载路径:Windows 路径含反斜杠,basic string(双引号) + // 会把 `\U`/`\s` 等当作非法转义导致解析失败。 + let config_text = format!("sqlite_home = '{}'\n", sqlite_home.display()); let paths = codex_state_db_paths(temp.path(), &config_text); diff --git a/src-tauri/src/commands/misc.rs b/src-tauri/src/commands/misc.rs index 77fa0c955..aa6257c96 100644 --- a/src-tauri/src/commands/misc.rs +++ b/src-tauri/src/commands/misc.rs @@ -638,7 +638,7 @@ fn build_tool_action_line( // (npm/pnpm)或 .exe(volta),静态命令头部是 `npm`(也是 .cmd)、`py` 等—— // 全部加 `call ` 前缀,风格统一且语义正确。含空格的头部已被 `win_quote_path_for_batch` // 加上双引号,call 对带引号的路径解析正常。 - return Ok(format!("call {command}")); + Ok(format!("call {command}")) } #[cfg(not(target_os = "windows"))] @@ -1069,6 +1069,8 @@ fn default_flag_for_shell(shell: &str) -> &'static str { } } +// 以下 shell 解析辅助函数仅被 macOS/Linux 的终端启动逻辑使用;Windows 非 test 编译下为死代码。 +#[cfg_attr(windows, allow(dead_code))] fn fallback_user_shell() -> &'static str { if cfg!(target_os = "macos") { "/bin/zsh" @@ -1077,6 +1079,7 @@ fn fallback_user_shell() -> &'static str { } } +#[cfg_attr(windows, allow(dead_code))] fn valid_user_shell_path(shell: &str) -> bool { if shell.is_empty() || !shell.starts_with('/') @@ -1100,11 +1103,13 @@ fn is_executable_file(path: &std::path::Path) -> bool { } #[cfg(not(unix))] +#[cfg_attr(windows, allow(dead_code))] fn is_executable_file(path: &std::path::Path) -> bool { path.is_file() } /// 获取用户默认 shell 的完整路径;异常或被污染的 SHELL 回退到平台默认值。 +#[cfg_attr(windows, allow(dead_code))] fn get_user_shell() -> String { std::env::var("SHELL") .ok() @@ -1113,6 +1118,7 @@ fn get_user_shell() -> String { } /// 构建 exec 行:引号保护 shell 路径,交还用户 shell 让其按默认规则加载 rc 配置。 +#[cfg_attr(windows, allow(dead_code))] fn build_exec_line(shell: &str, cwd: Option<&Path>) -> String { let quoted_shell = shell_single_quote(shell); @@ -1132,6 +1138,7 @@ fn build_exec_line(shell: &str, cwd: Option<&Path>) -> String { } /// 构建 provider 命令行:通过用户 shell 的交互模式执行,确保 GUI 启动的终端也加载用户 PATH。 +#[cfg_attr(windows, allow(dead_code))] fn build_provider_command_line(shell: &str, config_path: &str, cwd: Option<&Path>) -> String { let claude_command = format!("claude --settings {}", shell_single_quote(config_path)); let command = cwd @@ -1152,6 +1159,7 @@ fn build_provider_command_line(shell: &str, config_path: &str, cwd: Option<&Path ) } +#[cfg_attr(windows, allow(dead_code))] fn provider_command_flag_for_shell(shell: &str) -> &'static str { match shell.rsplit('/').next().unwrap_or(shell) { "dash" | "sh" => "-c", @@ -1160,6 +1168,7 @@ fn provider_command_flag_for_shell(shell: &str) -> &'static str { } } +#[cfg_attr(windows, allow(dead_code))] fn build_final_shell_cd_command(shell: &str, cwd: Option<&Path>) -> String { if matches!(shell.rsplit('/').next().unwrap_or(shell), "zsh") { return String::new(); @@ -2731,7 +2740,7 @@ fn launch_terminal_with_env( #[cfg(target_os = "windows")] { launch_windows_terminal(&temp_dir, &config_file, cwd)?; - return Ok(()); + Ok(()) } #[cfg(not(any(target_os = "macos", target_os = "linux", target_os = "windows")))] @@ -3252,6 +3261,7 @@ del \"%~f0\" >nul 2>&1 result } +#[cfg_attr(windows, allow(dead_code))] fn shell_single_quote(value: &str) -> String { format!("'{}'", value.replace('\'', "'\"'\"'")) } @@ -3838,11 +3848,8 @@ mod tests { let (_dir, sub, bin_path) = setup_sibling("Volta", "codex.cmd", &["volta.exe"]); let cmd = anchored_command_from_paths("codex", &bin_path, &bin_path); let volta_full = format!("{}\\volta.exe", sub.to_string_lossy()); - let expected = format!( - "{} update || call {} install @openai/codex", - expect_quoted_path(&bin_path), - expect_quoted_path(&volta_full) - ); + // codex 自 5092fe51 起不在 prefers_official_update:直接锚定包管理器,无 `codex update ||` 前缀。 + let expected = format!("{} install @openai/codex", expect_quoted_path(&volta_full)); assert_eq!(cmd.as_deref(), Some(expected.as_str())); } @@ -3854,9 +3861,9 @@ mod tests { let (_dir, sub, bin_path) = setup_sibling("pnpm", "codex.cmd", &["pnpm.cmd"]); let cmd = anchored_command_from_paths("codex", &bin_path, &bin_path); let pnpm_full = format!("{}\\pnpm.cmd", sub.to_string_lossy()); + // codex 自 5092fe51 起不在 prefers_official_update:直接锚定包管理器,无 `codex update ||` 前缀。 let expected = format!( - "{} update || call {} add -g @openai/codex@latest", - expect_quoted_path(&bin_path), + "{} add -g @openai/codex@latest", expect_quoted_path(&pnpm_full) ); assert_eq!(cmd.as_deref(), Some(expected.as_str())); @@ -3888,9 +3895,9 @@ mod tests { let (_dir, sub, bin_path) = setup_sibling("v22.0.0", "codex.cmd", &["npm.cmd"]); let cmd = anchored_command_from_paths("codex", &bin_path, &bin_path); let npm_full = format!("{}\\npm.cmd", sub.to_string_lossy()); + // codex 自 5092fe51 起不在 prefers_official_update:直接锚定包管理器,无 `codex update ||` 前缀。 let expected = format!( - "{} update || call {} i -g @openai/codex@latest", - expect_quoted_path(&bin_path), + "{} i -g @openai/codex@latest", expect_quoted_path(&npm_full) ); assert_eq!(cmd.as_deref(), Some(expected.as_str())); @@ -3898,10 +3905,11 @@ mod tests { #[test] fn windows_no_sibling_uses_cli_update_without_package_fallback() { - // sibling npm.cmd 不存在(纯独立二进制)时,仍可锚定到 CLI 自身跑官方 update。 - // 只是没有包管理器 fallback。 - let (_dir, _sub, bin_path) = setup_sibling("", "codex.cmd", &[]); - let cmd = anchored_command_from_paths("codex", &bin_path, &bin_path); + // sibling 包管理器不存在(纯独立二进制)时,仍可锚定到 CLI 自身跑官方 update。 + // 只是没有包管理器 fallback。用 claude —— codex 自 5092fe51 起一律走 npm 锚定, + // 已不再有官方 self-update 分支,故改用仍在 prefers_official_update 的 claude 覆盖此路径。 + let (_dir, _sub, bin_path) = setup_sibling("", "claude.cmd", &[]); + let cmd = anchored_command_from_paths("claude", &bin_path, &bin_path); let expected = format!("{} update", expect_quoted_path(&bin_path)); assert_eq!(cmd.as_deref(), Some(expected.as_str())); } @@ -3977,9 +3985,9 @@ mod tests { let (_dir, sub, bin_path) = setup_sibling("Program Files", "codex.cmd", &["npm.cmd"]); let cmd = anchored_command_from_paths("codex", &bin_path, &bin_path); let npm_full = format!("{}\\npm.cmd", sub.to_string_lossy()); + // codex 走 npm 锚定(5092fe51),含空格的 npm 全路径仍必须被双引号包裹。 let expected = format!( - "{} update || call {} i -g @openai/codex@latest", - expect_quoted_path(&bin_path), + "{} i -g @openai/codex@latest", expect_quoted_path(&npm_full) ); assert_eq!(cmd.as_deref(), Some(expected.as_str())); @@ -4001,9 +4009,10 @@ mod tests { // 含空格的环境**(否则 sub 本身含空格 + 子目录 `path%foo%` 触发 4 倍 `%` 转义 // 会让 expected 漏引号、假失败)。 let npm_full = format!("{}\\npm.cmd", sub.to_string_lossy()); + // codex 走 npm 锚定(5092fe51):batch 行 = `call i -g ...`, + // 含字面 `%` 的 npm 路径仍须 4 倍转义。 let expected = format!( - "call {} update || call {} i -g @openai/codex@latest", - expect_quoted_path(&bin_path), + "call {} i -g @openai/codex@latest", expect_quoted_path(&npm_full) ); assert_eq!(batch_line, expected); diff --git a/src-tauri/src/commands/settings.rs b/src-tauri/src/commands/settings.rs index ec508d792..f6cdb8111 100644 --- a/src-tauri/src/commands/settings.rs +++ b/src-tauri/src/commands/settings.rs @@ -247,7 +247,7 @@ pub async fn install_update_and_restart(app: AppHandle) -> Result "Windows 更新安装失败: {e}。已执行退出前清理,代理或 Live 接管可能已暂停;请重启应用或重新开启代理后再试。" ) })?; - return Ok(true); + Ok(true) } #[cfg(not(target_os = "windows"))] diff --git a/src-tauri/src/services/skill.rs b/src-tauri/src/services/skill.rs index 0e90e7bb7..fbf72bc86 100644 --- a/src-tauri/src/services/skill.rs +++ b/src-tauri/src/services/skill.rs @@ -374,20 +374,15 @@ fn parse_branch_from_source_url(source_url: Option<&str>) -> Option { /// 获取 `~/.agents/skills/` 目录(存在时返回) fn get_agents_skills_dir() -> Option { - dirs::home_dir() - .map(|h| h.join(".agents").join("skills")) - .filter(|p| p.exists()) + let dir = crate::config::get_home_dir().join(".agents").join("skills"); + dir.exists().then_some(dir) } /// 解析 `~/.agents/.skill-lock.json`,返回 skill_name -> 仓库信息 fn parse_agents_lock() -> HashMap { - let path = match dirs::home_dir() { - Some(h) => h.join(".agents").join(".skill-lock.json"), - None => { - log::warn!("无法获取 HOME 目录,跳过解析 agents lock 文件"); - return HashMap::new(); - } - }; + let path = crate::config::get_home_dir() + .join(".agents") + .join(".skill-lock.json"); let content = match fs::read_to_string(&path) { Ok(c) => c, Err(e) => { @@ -482,12 +477,7 @@ impl SkillService { let dir = match location { SkillStorageLocation::CcSwitch => get_app_config_dir().join("skills"), SkillStorageLocation::Unified => { - let home = dirs::home_dir().context(format_skill_error( - "GET_HOME_DIR_FAILED", - &[], - Some("checkPermission"), - ))?; - home.join(".agents").join("skills") + crate::config::get_home_dir().join(".agents").join("skills") } }; fs::create_dir_all(&dir)?; @@ -538,12 +528,10 @@ impl SkillService { } } - // 默认路径:回退到用户主目录下的标准位置 - let home = dirs::home_dir().context(format_skill_error( - "GET_HOME_DIR_FAILED", - &[], - Some("checkPermission"), - ))?; + // 默认路径:回退到用户主目录下的标准位置。 + // 必须走 get_home_dir()(可被 CC_SWITCH_TEST_HOME 覆盖):Windows 上 dirs::home_dir() + // 走 Known Folder API,测试无法隔离真实用户目录。 + let home = crate::config::get_home_dir(); Ok(match app { AppType::Claude => home.join(".claude").join("skills"), @@ -1167,8 +1155,7 @@ impl SkillService { let new_dir = match target { SkillStorageLocation::CcSwitch => get_app_config_dir().join("skills"), SkillStorageLocation::Unified => { - let home = dirs::home_dir().context("Cannot determine home directory")?; - home.join(".agents").join("skills") + crate::config::get_home_dir().join(".agents").join("skills") } }; fs::create_dir_all(&new_dir)?; @@ -3069,6 +3056,36 @@ mod tests { .expect("write SKILL.md"); } + #[test] + // serial:与 backup/s3_sync/deeplink 等同样读写进程级 CC_SWITCH_TEST_HOME 的测试互斥, + // EnvGuard 只负责恢复不提供互斥。 + #[serial_test::serial] + fn get_app_skills_dir_honors_test_home_override() { + // 回归:曾直呼 dirs::home_dir() 绕过 CC_SWITCH_TEST_HOME——Unix 上碰巧跟 $HOME + // 一致所以测试能过,Windows 上 dirs 走 Known Folder API,测试隔离整体失效 + // (tests/skill_sync.rs 扫到 runner 真实用户目录)。 + struct EnvGuard(Option); + impl Drop for EnvGuard { + fn drop(&mut self) { + match self.0.take() { + Some(value) => std::env::set_var("CC_SWITCH_TEST_HOME", value), + None => std::env::remove_var("CC_SWITCH_TEST_HOME"), + } + } + } + let temp = tempdir().expect("tempdir"); + let _guard = EnvGuard(std::env::var_os("CC_SWITCH_TEST_HOME")); + std::env::set_var("CC_SWITCH_TEST_HOME", temp.path()); + + let dir = + SkillService::get_app_skills_dir(&AppType::Claude).expect("resolve claude skills dir"); + assert!( + dir.starts_with(temp.path()), + "skills dir must live under the overridden test home, got {}", + dir.display() + ); + } + #[test] fn resolve_skill_source_dir_returns_repo_root_for_root_level_skill() { let temp = tempdir().expect("tempdir"); diff --git a/src-tauri/src/settings.rs b/src-tauri/src/settings.rs index 8d99de06c..6d627ee53 100644 --- a/src-tauri/src/settings.rs +++ b/src-tauri/src/settings.rs @@ -1,6 +1,5 @@ use serde::{Deserialize, Serialize}; use std::fs; -use std::io::Write; use std::path::PathBuf; use std::sync::{OnceLock, RwLock}; @@ -660,6 +659,7 @@ fn save_settings_file(settings: &AppSettings) -> Result<(), AppError> { #[cfg(unix)] { use std::fs::OpenOptions; + use std::io::Write; use std::os::unix::fs::OpenOptionsExt; let mut file = OpenOptions::new() From 1c0ee0c58ab9a477481f887c8fe7b374ed989504 Mon Sep 17 00:00:00 2001 From: Thefool <114680394+YUZHEthefool@users.noreply.github.com> Date: Fri, 17 Jul 2026 15:50:50 +0800 Subject: [PATCH 005/114] feat(grokbuild): add first-class Grok Build support (#5453) * feat(grokbuild): add backend integration * feat(grokbuild): add provider and management UI * test(grokbuild): cover configuration and integrations * fix(grokbuild): address backend review feedback * fix(grokbuild): complete UI review feedback * feat(grokbuild): add CLI lifecycle management * fix(grokbuild): align provider icon fallback * test(grokbuild): cover provider icon persistence --- README.md | 16 +- README_DE.md | 16 +- README_JA.md | 16 +- README_ZH.md | 16 +- src-tauri/src/app_config.rs | 75 +- src-tauri/src/commands/config.rs | 11 + src-tauri/src/commands/misc.rs | 82 +- src-tauri/src/commands/proxy.rs | 1 + src-tauri/src/database/dao/mcp.rs | 13 +- src-tauri/src/database/dao/proxy.rs | 13 + src-tauri/src/database/dao/skills.rs | 39 +- src-tauri/src/database/mod.rs | 2 +- src-tauri/src/database/schema.rs | 242 +++++- src-tauri/src/database/tests.rs | 4 +- src-tauri/src/deeplink/mcp.rs | 51 +- src-tauri/src/deeplink/parser.rs | 19 +- src-tauri/src/deeplink/provider.rs | 82 ++ src-tauri/src/deeplink/tests.rs | 95 +++ src-tauri/src/grok_config.rs | 516 +++++++++++++ src-tauri/src/lib.rs | 64 +- src-tauri/src/mcp/claude.rs | 1 + src-tauri/src/mcp/codex.rs | 3 +- src-tauri/src/mcp/gemini.rs | 1 + src-tauri/src/mcp/grokbuild.rs | 221 ++++++ src-tauri/src/mcp/hermes.rs | 1 + src-tauri/src/mcp/mod.rs | 4 + src-tauri/src/mcp/opencode.rs | 1 + src-tauri/src/prompt_files.rs | 9 +- src-tauri/src/provider.rs | 5 + src-tauri/src/proxy/forwarder.rs | 13 +- src-tauri/src/proxy/handlers.rs | 56 +- src-tauri/src/proxy/providers/codex.rs | 43 +- src-tauri/src/proxy/providers/mod.rs | 12 +- src-tauri/src/proxy/server.rs | 10 + src-tauri/src/proxy/types.rs | 1 + src-tauri/src/proxy/usage/calculator.rs | 21 +- src-tauri/src/proxy/usage/logger.rs | 46 +- src-tauri/src/services/config.rs | 2 + src-tauri/src/services/mcp.rs | 40 +- src-tauri/src/services/provider/live.rs | 69 +- src-tauri/src/services/provider/mod.rs | 62 +- src-tauri/src/services/proxy.rs | 725 ++++++++++++++++-- src-tauri/src/services/skill.rs | 6 + src-tauri/src/services/sql_helpers.rs | 14 +- src-tauri/src/session_manager/mod.rs | 12 +- .../session_manager/providers/grokbuild.rs | 296 +++++++ .../src/session_manager/providers/mod.rs | 1 + src-tauri/src/settings.rs | 28 + src-tauri/src/tray.rs | 24 +- src-tauri/tests/app_type_parse.rs | 8 + src-tauri/tests/import_export_sync.rs | 2 + src-tauri/tests/mcp_commands.rs | 12 + src-tauri/tests/provider_commands.rs | 76 ++ src-tauri/tests/provider_service.rs | 5 + src-tauri/tests/support.rs | 1 + src/App.tsx | 9 +- src/components/AppSwitcher.tsx | 3 + src/components/UsageScriptModal.tsx | 10 + src/components/mcp/McpFormModal.tsx | 25 +- src/components/mcp/UnifiedMcpPanel.tsx | 1 + src/components/prompts/PromptFormModal.tsx | 1 + src/components/prompts/PromptFormPanel.tsx | 1 + .../providers/AddProviderDialog.tsx | 7 + src/components/providers/ProviderCard.tsx | 7 +- .../providers/forms/CodexFormFields.tsx | 5 +- .../providers/forms/EndpointSpeedTest.tsx | 1 + .../providers/forms/GrokBuildProviderForm.tsx | 576 ++++++++++++++ .../providers/forms/ProviderForm.tsx | 4 + .../proxy/ClaudeDesktopRouteToggle.tsx | 5 +- src/components/proxy/FailoverToggle.tsx | 4 +- src/components/proxy/ProxyPanel.tsx | 66 +- src/components/proxy/ProxyToggle.tsx | 4 +- .../sessions/SessionManagerPage.tsx | 11 + src/components/sessions/utils.ts | 1 + src/components/settings/AboutSection.tsx | 7 + .../settings/AppVisibilitySettings.tsx | 4 +- src/components/settings/DirectorySettings.tsx | 13 + src/components/settings/SettingsPage.tsx | 1 + src/components/skills/UnifiedSkillsPanel.tsx | 5 + src/components/usage/PricingConfigPanel.tsx | 4 +- src/components/usage/UsageDashboard.tsx | 1 + src/components/usage/UsageHero.tsx | 4 + src/config/appConfig.tsx | 17 + src/hooks/useDirectorySettings.ts | 13 + src/hooks/useProviderActions.ts | 11 +- src/hooks/useProxyStatus.ts | 5 +- src/hooks/useSettings.ts | 8 + src/hooks/useSettingsForm.ts | 2 + src/i18n/locales/en.json | 16 +- src/i18n/locales/ja.json | 16 +- src/i18n/locales/zh-TW.json | 16 +- src/i18n/locales/zh.json | 16 +- src/lib/api/skills.ts | 2 + src/lib/api/types.ts | 1 + src/lib/query/failover.ts | 4 +- src/lib/schemas/settings.ts | 1 + src/types.ts | 4 + src/types/proxy.ts | 1 + src/types/usage.ts | 4 +- src/utils/grokBuildConfig.test.ts | 142 ++++ src/utils/grokBuildConfig.ts | 166 ++++ src/utils/providerIcon.test.ts | 23 + src/utils/providerIcon.ts | 26 + tests/components/AddProviderDialog.test.tsx | 41 + .../components/GrokBuildProviderForm.test.tsx | 178 +++++ tests/components/McpFormModal.test.tsx | 9 + tests/components/UnifiedSkillsPanel.test.tsx | 21 +- tests/hooks/useDirectorySettings.test.tsx | 5 + tests/hooks/useProviderActions.test.tsx | 36 + tests/hooks/useProxyStatus.test.tsx | 3 +- tests/msw/handlers.ts | 1 + tests/msw/state.ts | 4 + 112 files changed, 4530 insertions(+), 246 deletions(-) create mode 100644 src-tauri/src/grok_config.rs create mode 100644 src-tauri/src/mcp/grokbuild.rs create mode 100644 src-tauri/src/session_manager/providers/grokbuild.rs create mode 100644 src/components/providers/forms/GrokBuildProviderForm.tsx create mode 100644 src/utils/grokBuildConfig.test.ts create mode 100644 src/utils/grokBuildConfig.ts create mode 100644 src/utils/providerIcon.test.ts create mode 100644 src/utils/providerIcon.ts create mode 100644 tests/components/GrokBuildProviderForm.test.tsx diff --git a/README.md b/README.md index ace7ef005..38094ad73 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ # CC Switch -### The All-in-One Manager for Claude Code, Claude Desktop, Codex, Gemini CLI, OpenCode, OpenClaw & Hermes Agent +### The All-in-One Manager for Claude Code, Claude Desktop, Codex, Gemini CLI, Grok Build, OpenCode, OpenClaw & Hermes Agent [![Version](https://img.shields.io/github/v/release/farion1231/cc-switch?color=blue&label=version)](https://github.com/farion1231/cc-switch/releases) [![Platform](https://img.shields.io/badge/platform-Windows%20%7C%20macOS%20%7C%20Linux-lightgrey.svg)](https://github.com/farion1231/cc-switch/releases) @@ -195,13 +195,13 @@ TeamoRouter also offers enterprise features including centralized billing, team ## Why CC Switch? -Modern AI-powered coding relies on tools like Claude Code, Claude Desktop, Codex, Gemini CLI, OpenCode, OpenClaw, and Hermes — but each has its own configuration format. Switching API providers means manually editing JSON, TOML, or `.env` files, and there is no unified way to manage MCP and Skills across multiple tools. +Modern AI-powered coding relies on tools like Claude Code, Claude Desktop, Codex, Gemini CLI, Grok Build, OpenCode, OpenClaw, and Hermes — but each has its own configuration format. Switching API providers means manually editing JSON, TOML, or `.env` files, and there is no unified way to manage MCP and Skills across multiple tools. **CC Switch** gives you a single desktop app to manage all supported AI tools. Instead of editing config files by hand, you get a visual interface to import providers with one click, switch between them instantly, with 50+ built-in provider presets, unified MCP and Skills management, and system tray quick switching — all backed by a reliable SQLite database with atomic writes that protect your configs from corruption. -- **One App, Seven Tools** — Manage Claude Code, Claude Desktop, Codex, Gemini CLI, OpenCode, OpenClaw, and Hermes from a single interface +- **One App, Eight Tools** — Manage Claude Code, Claude Desktop, Codex, Gemini CLI, Grok Build, OpenCode, OpenClaw, and Hermes from a single interface - **No More Manual Editing** — 50+ provider presets including AWS Bedrock, NVIDIA NIM, and community relays; just pick and switch -- **Unified MCP & Skills Management** — One panel to manage MCP servers and Skills across Claude, Codex, Gemini, OpenCode, and Hermes with bidirectional sync +- **Unified MCP & Skills Management** — One panel to manage MCP servers and Skills across Claude, Codex, Gemini, Grok Build, OpenCode, and Hermes with bidirectional sync - **System Tray Quick Switch** — Switch providers instantly from the tray menu, no need to open the full app - **Cloud Sync** — Sync provider data across devices via Dropbox, OneDrive, iCloud, or WebDAV servers - **Cross-Platform** — Native desktop app for Windows, macOS, and Linux, built with Tauri 2 @@ -219,18 +219,18 @@ Modern AI-powered coding relies on tools like Claude Code, Claude Desktop, Codex ### Provider Management -- **7 supported tools, 50+ presets** — Claude Code, Claude Desktop, Codex, Gemini CLI, OpenCode, OpenClaw, Hermes; copy your key and import with one click +- **8 supported tools, 50+ presets** — Claude Code, Claude Desktop, Codex, Gemini CLI, Grok Build, OpenCode, OpenClaw, Hermes; copy your key and import with one click - **Universal providers** — One config syncs to Claude Code, Codex, and Gemini CLI - One-click switching, system tray quick access, drag-and-drop sorting, import/export ### Proxy & Failover - **Local proxy with hot-switching** — Format conversion, auto-failover, circuit breaker, provider health monitoring, and request rectifier -- **App-level takeover** — Independently proxy Claude, Codex, or Gemini, down to individual providers +- **App-level takeover** — Independently proxy Claude, Codex, Gemini, or Grok Build, down to individual providers ### MCP, Prompts & Skills -- **Unified MCP panel** — Manage MCP servers across Claude, Codex, Gemini, OpenCode, and Hermes with bidirectional sync and Deep Link import +- **Unified MCP panel** — Manage MCP servers across Claude, Codex, Gemini, Grok Build, OpenCode, and Hermes with bidirectional sync and Deep Link import - **Prompts** — Markdown editor with cross-app sync (CLAUDE.md / AGENTS.md / GEMINI.md) and backfill protection - **Skills** — One-click install from GitHub repos or ZIP files, custom repository management, with symlink and file copy support @@ -254,7 +254,7 @@ Modern AI-powered coding relies on tools like Claude Code, Claude Desktop, Codex

Which AI tools does CC Switch support? -CC Switch supports seven tools: **Claude Code**, **Claude Desktop**, **Codex**, **Gemini CLI**, **OpenCode**, **OpenClaw**, and **Hermes**. Each tool has dedicated provider presets and configuration management. +CC Switch supports eight tools: **Claude Code**, **Claude Desktop**, **Codex**, **Gemini CLI**, **Grok Build**, **OpenCode**, **OpenClaw**, and **Hermes**. Each tool has dedicated provider presets and configuration management.
diff --git a/README_DE.md b/README_DE.md index 52d9327f8..057d3bce4 100644 --- a/README_DE.md +++ b/README_DE.md @@ -2,7 +2,7 @@ # CC Switch -### Der All-in-One-Manager für Claude Code, Claude Desktop, Codex, Gemini CLI, OpenCode, OpenClaw & Hermes Agent +### Der All-in-One-Manager für Claude Code, Claude Desktop, Codex, Gemini CLI, Grok Build, OpenCode, OpenClaw & Hermes Agent [![Version](https://img.shields.io/github/v/release/farion1231/cc-switch?color=blue&label=version)](https://github.com/farion1231/cc-switch/releases) [![Platform](https://img.shields.io/badge/platform-Windows%20%7C%20macOS%20%7C%20Linux-lightgrey.svg)](https://github.com/farion1231/cc-switch/releases) @@ -195,13 +195,13 @@ TeamoRouter bietet außerdem Enterprise-Funktionen wie zentrale Abrechnung, Team ## Warum CC Switch? -Modernes KI-gestütztes Programmieren stützt sich auf Werkzeuge wie Claude Code, Claude Desktop, Codex, Gemini CLI, OpenCode, OpenClaw und Hermes — doch jedes hat sein eigenes Konfigurationsformat. Der Wechsel des API-Anbieters bedeutet, JSON-, TOML- oder `.env`-Dateien von Hand zu bearbeiten, und es gibt keine einheitliche Möglichkeit, MCP und Skills über mehrere Werkzeuge hinweg zu verwalten. +Modernes KI-gestütztes Programmieren stützt sich auf Werkzeuge wie Claude Code, Claude Desktop, Codex, Gemini CLI, Grok Build, OpenCode, OpenClaw und Hermes — doch jedes hat sein eigenes Konfigurationsformat. Der Wechsel des API-Anbieters bedeutet, JSON-, TOML- oder `.env`-Dateien von Hand zu bearbeiten, und es gibt keine einheitliche Möglichkeit, MCP und Skills über mehrere Werkzeuge hinweg zu verwalten. **CC Switch** gibt Ihnen eine einzige Desktop-App, um alle unterstützten KI-Werkzeuge zu verwalten. Statt Konfigurationsdateien von Hand zu bearbeiten, erhalten Sie eine visuelle Oberfläche, um Anbieter mit einem Klick zu importieren und sofort zwischen ihnen zu wechseln — mit 50+ integrierten Anbieter-Presets, einheitlicher MCP- und Skills-Verwaltung und schnellem Umschalten über das System-Tray. Das Ganze gestützt auf eine zuverlässige SQLite-Datenbank mit atomaren Schreibvorgängen, die Ihre Konfigurationen vor Beschädigung schützen. -- **Eine App, sieben Werkzeuge** — Verwalten Sie Claude Code, Claude Desktop, Codex, Gemini CLI, OpenCode, OpenClaw und Hermes über eine einzige Oberfläche +- **Eine App, acht Werkzeuge** — Verwalten Sie Claude Code, Claude Desktop, Codex, Gemini CLI, Grok Build, OpenCode, OpenClaw und Hermes über eine einzige Oberfläche - **Kein manuelles Bearbeiten mehr** — 50+ Anbieter-Presets einschließlich AWS Bedrock, NVIDIA NIM und Community-Relays; einfach auswählen und umschalten -- **Einheitliche MCP- & Skills-Verwaltung** — Ein Panel zur Verwaltung von MCP-Servern und Skills für Claude, Codex, Gemini, OpenCode und Hermes mit bidirektionaler Synchronisierung +- **Einheitliche MCP- & Skills-Verwaltung** — Ein Panel zur Verwaltung von MCP-Servern und Skills für Claude, Codex, Gemini, Grok Build, OpenCode und Hermes mit bidirektionaler Synchronisierung - **Schnellumschaltung über System-Tray** — Wechseln Sie Anbieter sofort über das Tray-Menü, ohne die vollständige App öffnen zu müssen - **Cloud-Synchronisierung** — Synchronisieren Sie Anbieterdaten geräteübergreifend über Dropbox, OneDrive, iCloud oder WebDAV-Server - **Plattformübergreifend** — Native Desktop-App für Windows, macOS und Linux, gebaut mit Tauri 2 @@ -219,18 +219,18 @@ Modernes KI-gestütztes Programmieren stützt sich auf Werkzeuge wie Claude Code ### Anbieterverwaltung -- **7 unterstützte Werkzeuge, 50+ Presets** — Claude Code, Claude Desktop, Codex, Gemini CLI, OpenCode, OpenClaw, Hermes; Schlüssel kopieren und mit einem Klick importieren +- **8 unterstützte Werkzeuge, 50+ Presets** — Claude Code, Claude Desktop, Codex, Gemini CLI, Grok Build, OpenCode, OpenClaw, Hermes; Schlüssel kopieren und mit einem Klick importieren - **Universelle Anbieter** — Eine Konfiguration synchronisiert sich mit Claude Code, Codex und Gemini CLI - Umschaltung mit einem Klick, Schnellzugriff über System-Tray, Sortierung per Drag-and-drop, Import/Export ### Proxy & Failover - **Lokaler Proxy mit Hot-Switching** — Formatkonvertierung, automatisches Failover, Circuit Breaker, Anbieter-Health-Monitoring und Request-Rectifier -- **Übernahme auf App-Ebene** — Claude, Codex oder Gemini unabhängig über den Proxy leiten, bis hinunter auf einzelne Anbieter +- **Übernahme auf App-Ebene** — Claude, Codex, Gemini oder Grok Build unabhängig über den Proxy leiten, bis hinunter auf einzelne Anbieter ### MCP, Prompts & Skills -- **Einheitliches MCP-Panel** — Verwalten Sie MCP-Server für Claude, Codex, Gemini, OpenCode und Hermes mit bidirektionaler Synchronisierung und Deep-Link-Import +- **Einheitliches MCP-Panel** — Verwalten Sie MCP-Server für Claude, Codex, Gemini, Grok Build, OpenCode und Hermes mit bidirektionaler Synchronisierung und Deep-Link-Import - **Prompts** — Markdown-Editor mit App-übergreifender Synchronisierung (CLAUDE.md / AGENTS.md / GEMINI.md) und Backfill-Schutz - **Skills** — Installation mit einem Klick aus GitHub-Repositorys oder ZIP-Dateien, Verwaltung eigener Repositorys, mit Unterstützung für Symlinks und Dateikopien @@ -254,7 +254,7 @@ Modernes KI-gestütztes Programmieren stützt sich auf Werkzeuge wie Claude Code
Welche KI-Werkzeuge unterstützt CC Switch? -CC Switch unterstützt sieben Werkzeuge: **Claude Code**, **Claude Desktop**, **Codex**, **Gemini CLI**, **OpenCode**, **OpenClaw** und **Hermes**. Jedes Werkzeug verfügt über dedizierte Anbieter-Presets und Konfigurationsverwaltung. +CC Switch unterstützt acht Werkzeuge: **Claude Code**, **Claude Desktop**, **Codex**, **Gemini CLI**, **Grok Build**, **OpenCode**, **OpenClaw** und **Hermes**. Jedes Werkzeug verfügt über dedizierte Anbieter-Presets und Konfigurationsverwaltung.
diff --git a/README_JA.md b/README_JA.md index af952a86e..4bf50198b 100644 --- a/README_JA.md +++ b/README_JA.md @@ -2,7 +2,7 @@ # CC Switch -### Claude Code、Claude Desktop、Codex、Gemini CLI、OpenCode、OpenClaw、Hermes Agent のオールインワン管理ツール +### Claude Code、Claude Desktop、Codex、Gemini CLI、Grok Build、OpenCode、OpenClaw、Hermes Agent のオールインワン管理ツール [![Version](https://img.shields.io/github/v/release/farion1231/cc-switch?color=blue&label=version)](https://github.com/farion1231/cc-switch/releases) [![Platform](https://img.shields.io/badge/platform-Windows%20%7C%20macOS%20%7C%20Linux-lightgrey.svg)](https://github.com/farion1231/cc-switch/releases) @@ -195,13 +195,13 @@ TeamoRouter は、集中請求、チーム管理、BYOK、スマートルーテ ## CC Switch を選ぶ理由 -最新の AI コーディングは Claude Code、Claude Desktop、Codex、Gemini CLI、OpenCode、OpenClaw、Hermes などのツールに依存していますが、各ツールの設定形式はバラバラです。API プロバイダを切り替えるたびに JSON、TOML、`.env` ファイルを手動で編集する必要があり、複数ツール間で MCP や Skills を統一的に管理する手段もありません。 +最新の AI コーディングは Claude Code、Claude Desktop、Codex、Gemini CLI、Grok Build、OpenCode、OpenClaw、Hermes などのツールに依存していますが、各ツールの設定形式はバラバラです。API プロバイダを切り替えるたびに JSON、TOML、`.env` ファイルを手動で編集する必要があり、複数ツール間で MCP や Skills を統一的に管理する手段もありません。 **CC Switch** は、対応する AI ツールを 1 つのデスクトップアプリで一元管理できます。設定ファイルを手作業で編集する代わりに、ワンクリックでプロバイダをインポートし、瞬時に切り替えられるビジュアルインターフェースを提供します。50 以上の組み込みプリセット、統一 MCP・Skills 管理、システムトレイからの即時切り替え機能を搭載。すべてはアトミック書き込みによる信頼性の高い SQLite データベースに支えられており、設定の破損を防ぎます。 -- **1 つのアプリで 7 つのツール** -- Claude Code、Claude Desktop、Codex、Gemini CLI、OpenCode、OpenClaw、Hermes を単一インターフェースで管理 +- **1 つのアプリで 8 つのツール** -- Claude Code、Claude Desktop、Codex、Gemini CLI、Grok Build、OpenCode、OpenClaw、Hermes を単一インターフェースで管理 - **手動編集は不要** -- AWS Bedrock、NVIDIA NIM、コミュニティリレーなど 50 以上のプロバイダプリセットを内蔵。選んで切り替えるだけ -- **統一 MCP・Skills 管理** -- 1 つのパネルで Claude、Codex、Gemini、OpenCode、Hermes の MCP サーバーと Skills を双方向同期で管理 +- **統一 MCP・Skills 管理** -- 1 つのパネルで Claude、Codex、Gemini、Grok Build、OpenCode、Hermes の MCP サーバーと Skills を双方向同期で管理 - **システムトレイでクイック切り替え** -- トレイメニューから即座にプロバイダを切り替え。アプリを開く必要なし - **クラウド同期** -- Dropbox、OneDrive、iCloud、または WebDAV サーバー経由でデバイス間のプロバイダデータを同期 - **クロスプラットフォーム** -- Tauri 2 で構築された Windows、macOS、Linux 対応のネイティブデスクトップアプリ @@ -219,18 +219,18 @@ TeamoRouter は、集中請求、チーム管理、BYOK、スマートルーテ ### プロバイダ管理 -- **7 つの対応ツール、50 以上のプリセット** -- Claude Code、Claude Desktop、Codex、Gemini CLI、OpenCode、OpenClaw、Hermes。キーをコピーしてワンクリックでインポート +- **8 つの対応ツール、50 以上のプリセット** -- Claude Code、Claude Desktop、Codex、Gemini CLI、Grok Build、OpenCode、OpenClaw、Hermes。キーをコピーしてワンクリックでインポート - **ユニバーサルプロバイダ** -- 1 つの設定を Claude Code、Codex、Gemini CLI に同期 - ワンクリック切り替え、システムトレイクイックアクセス、ドラッグ&ドロップ並び替え、インポート/エクスポート ### プロキシ & フェイルオーバー - **ローカルプロキシのホットスイッチ** -- フォーマット変換、自動フェイルオーバー、サーキットブレーカー、プロバイダヘルスモニタリング、リクエストレクティファイア -- **アプリレベルのテイクオーバー** -- Claude、Codex、Gemini を個別にプロキシ経由でルーティング、プロバイダ単位で設定可能 +- **アプリレベルのテイクオーバー** -- Claude、Codex、Gemini、Grok Build を個別にプロキシ経由でルーティング、プロバイダ単位で設定可能 ### MCP、Prompts & Skills -- **統一 MCP パネル** -- Claude、Codex、Gemini、OpenCode、Hermes の MCP サーバーを管理、双方向同期、Deep Link インポート対応 +- **統一 MCP パネル** -- Claude、Codex、Gemini、Grok Build、OpenCode、Hermes の MCP サーバーを管理、双方向同期、Deep Link インポート対応 - **Prompts** -- Markdown エディタ、クロスアプリ同期(CLAUDE.md / AGENTS.md / GEMINI.md)、バックフィル保護 - **Skills** -- GitHub リポジトリまたは ZIP ファイルからワンクリックインストール、カスタムリポジトリ管理、シンボリックリンクとファイルコピーに対応 @@ -254,7 +254,7 @@ TeamoRouter は、集中請求、チーム管理、BYOK、スマートルーテ
CC Switch はどの AI ツールに対応していますか? -CC Switch は **Claude Code**、**Claude Desktop**、**Codex**、**Gemini CLI**、**OpenCode**、**OpenClaw**、**Hermes** の 7 つのツールに対応しています。各ツールに専用のプロバイダプリセットと設定管理が用意されています。 +CC Switch は **Claude Code**、**Claude Desktop**、**Codex**、**Gemini CLI**、**Grok Build**、**OpenCode**、**OpenClaw**、**Hermes** の 8 つのツールに対応しています。各ツールに専用のプロバイダプリセットと設定管理が用意されています。
diff --git a/README_ZH.md b/README_ZH.md index 4f87c60ba..777ac74c8 100644 --- a/README_ZH.md +++ b/README_ZH.md @@ -2,7 +2,7 @@ # CC Switch -### Claude Code、Claude Desktop、Codex、Gemini CLI、OpenCode、OpenClaw 和 Hermes Agent 的全方位管理工具 +### Claude Code、Claude Desktop、Codex、Gemini CLI、Grok Build、OpenCode、OpenClaw 和 Hermes Agent 的全方位管理工具 [![Version](https://img.shields.io/github/v/release/farion1231/cc-switch?color=blue&label=version)](https://github.com/farion1231/cc-switch/releases) [![Platform](https://img.shields.io/badge/platform-Windows%20%7C%20macOS%20%7C%20Linux-lightgrey.svg)](https://github.com/farion1231/cc-switch/releases) @@ -196,13 +196,13 @@ TeamoRouter 还提供企业级功能,包括集中账单、团队管理、BYOK ## 为什么选择 CC Switch? -现代 AI 编程依赖于 Claude Code、Claude Desktop、Codex、Gemini CLI、OpenCode、OpenClaw 和 Hermes 等工具——但每个工具都有自己的配置格式。切换 API 供应商意味着手动编辑 JSON、TOML 或 `.env` 文件,而在多个工具之间缺乏一个统一管理 MCP, SKILLS 的方式。 +现代 AI 编程依赖于 Claude Code、Claude Desktop、Codex、Gemini CLI、Grok Build、OpenCode、OpenClaw 和 Hermes 等工具——但每个工具都有自己的配置格式。切换 API 供应商意味着手动编辑 JSON、TOML 或 `.env` 文件,而在多个工具之间缺乏一个统一管理 MCP, SKILLS 的方式。 **CC Switch** 为你提供一个桌面应用来管理所有支持的 AI 工具。无需手动编辑配置文件,你将获得一个可视化界面,一键将供应商导入应用,一键在不同的供应商之间进行切换,内置 50+ 供应商预设、统一的 MCP, SKILLS 管理以及系统托盘即时切换功能——所有操作都基于可靠的 SQLite 数据库和原子写入机制,保护你的配置不被损坏。 -- **一个应用,七个工具** — 在单一界面中管理 Claude Code、Claude Desktop、Codex、Gemini CLI、OpenCode、OpenClaw 和 Hermes +- **一个应用,八个工具** — 在单一界面中管理 Claude Code、Claude Desktop、Codex、Gemini CLI、Grok Build、OpenCode、OpenClaw 和 Hermes - **告别手动编辑** — 50+ 供应商预设,包括 AWS Bedrock、NVIDIA NIM 和社区中转服务;一键即可切换 -- **统一 MCP, SKILLS 管理** — 一个面板管理 Claude、Codex、Gemini、OpenCode 和 Hermes 的 MCP, SKILLS, 支持双向同步 +- **统一 MCP, SKILLS 管理** — 一个面板管理 Claude、Codex、Gemini、Grok Build、OpenCode 和 Hermes 的 MCP, SKILLS, 支持双向同步 - **系统托盘快速切换** — 从托盘菜单即时切换供应商,无需打开完整应用 - **云同步** — 通过 Dropbox、OneDrive、iCloud 或 WebDAV 服务器在不同设备之间同步供应商数据 - **跨平台** — 基于 Tauri 2 构建的原生桌面应用,支持 Windows、macOS 和 Linux @@ -220,18 +220,18 @@ TeamoRouter 还提供企业级功能,包括集中账单、团队管理、BYOK ### 供应商管理 -- **7 个支持工具,50+ 预设** — Claude Code、Claude Desktop、Codex、Gemini CLI、OpenCode、OpenClaw、Hermes;复制 key 即可一键导入 +- **8 个支持工具,50+ 预设** — Claude Code、Claude Desktop、Codex、Gemini CLI、Grok Build、OpenCode、OpenClaw、Hermes;复制 key 即可一键导入 - **通用供应商** — 一份配置同步到 Claude Code、Codex 和 Gemini CLI - 一键切换、系统托盘快速访问、拖拽排序、导入导出 ### 代理与故障转移 - **本地代理热切换** — 格式转换、自动故障转移、熔断器、供应商健康监控和整流器 -- **应用级代理接管** — 独立为 Claude、Codex 或 Gemini 配置代理,具体到单个供应商 +- **应用级代理接管** — 独立为 Claude、Codex、Gemini 或 Grok Build 配置代理,具体到单个供应商 ### MCP、Prompts 与 Skills -- **统一 MCP 面板** — 管理 Claude、Codex、Gemini、OpenCode 和 Hermes 的 MCP 服务器,双向同步,支持 Deep Link 导入 +- **统一 MCP 面板** — 管理 Claude、Codex、Gemini、Grok Build、OpenCode 和 Hermes 的 MCP 服务器,双向同步,支持 Deep Link 导入 - **Prompts** — Markdown 编辑器,跨应用同步(CLAUDE.md / AGENTS.md / GEMINI.md),回填保护 - **Skills** — 从 GitHub 仓库或 ZIP 文件一键安装,自定义仓库管理,支持软连接和文件复制 @@ -255,7 +255,7 @@ TeamoRouter 还提供企业级功能,包括集中账单、团队管理、BYOK
CC Switch 支持哪些 AI 工具? -CC Switch 支持七个工具:**Claude Code**、**Claude Desktop**、**Codex**、**Gemini CLI**、**OpenCode**、**OpenClaw** 和 **Hermes**。每个工具都有专属的供应商预设和配置管理。 +CC Switch 支持八个工具:**Claude Code**、**Claude Desktop**、**Codex**、**Gemini CLI**、**Grok Build**、**OpenCode**、**OpenClaw** 和 **Hermes**。每个工具都有专属的供应商预设和配置管理。
diff --git a/src-tauri/src/app_config.rs b/src-tauri/src/app_config.rs index 2af5333f6..74eac3f84 100644 --- a/src-tauri/src/app_config.rs +++ b/src-tauri/src/app_config.rs @@ -14,6 +14,8 @@ pub struct McpApps { #[serde(default)] pub gemini: bool, #[serde(default)] + pub grokbuild: bool, + #[serde(default)] pub opencode: bool, #[serde(default)] pub hermes: bool, @@ -26,6 +28,7 @@ impl McpApps { AppType::Claude => self.claude, AppType::Codex => self.codex, AppType::Gemini => self.gemini, + AppType::GrokBuild => self.grokbuild, AppType::OpenCode => self.opencode, AppType::OpenClaw => false, // OpenClaw doesn't support MCP AppType::Hermes => self.hermes, @@ -39,6 +42,7 @@ impl McpApps { AppType::Claude => self.claude = enabled, AppType::Codex => self.codex = enabled, AppType::Gemini => self.gemini = enabled, + AppType::GrokBuild => self.grokbuild = enabled, AppType::OpenCode => self.opencode = enabled, AppType::OpenClaw => {} // OpenClaw doesn't support MCP, ignore AppType::Hermes => self.hermes = enabled, @@ -58,6 +62,9 @@ impl McpApps { if self.gemini { apps.push(AppType::Gemini); } + if self.grokbuild { + apps.push(AppType::GrokBuild); + } if self.opencode { apps.push(AppType::OpenCode); } @@ -69,7 +76,12 @@ impl McpApps { /// 检查是否所有应用都未启用 pub fn is_empty(&self) -> bool { - !self.claude && !self.codex && !self.gemini && !self.opencode && !self.hermes + !self.claude + && !self.codex + && !self.gemini + && !self.grokbuild + && !self.opencode + && !self.hermes } } @@ -83,6 +95,8 @@ pub struct SkillApps { #[serde(default)] pub gemini: bool, #[serde(default)] + pub grokbuild: bool, + #[serde(default)] pub opencode: bool, #[serde(default)] pub hermes: bool, @@ -95,6 +109,7 @@ impl SkillApps { AppType::Claude => self.claude, AppType::Codex => self.codex, AppType::Gemini => self.gemini, + AppType::GrokBuild => self.grokbuild, AppType::OpenCode => self.opencode, AppType::Hermes => self.hermes, AppType::OpenClaw => false, // OpenClaw doesn't support Skills @@ -108,6 +123,7 @@ impl SkillApps { AppType::Claude => self.claude = enabled, AppType::Codex => self.codex = enabled, AppType::Gemini => self.gemini = enabled, + AppType::GrokBuild => self.grokbuild = enabled, AppType::OpenCode => self.opencode = enabled, AppType::Hermes => self.hermes = enabled, AppType::OpenClaw => {} // OpenClaw doesn't support Skills, ignore @@ -127,6 +143,9 @@ impl SkillApps { if self.gemini { apps.push(AppType::Gemini); } + if self.grokbuild { + apps.push(AppType::GrokBuild); + } if self.opencode { apps.push(AppType::OpenCode); } @@ -138,7 +157,12 @@ impl SkillApps { /// 检查是否所有应用都未启用 pub fn is_empty(&self) -> bool { - !self.claude && !self.codex && !self.gemini && !self.opencode && !self.hermes + !self.claude + && !self.codex + && !self.gemini + && !self.grokbuild + && !self.opencode + && !self.hermes } /// 仅启用指定应用(其他应用设为禁用) @@ -271,6 +295,8 @@ pub struct McpRoot { pub codex: McpConfig, #[serde(default, skip_serializing_if = "McpConfig::is_empty")] pub gemini: McpConfig, + #[serde(default, skip_serializing_if = "McpConfig::is_empty")] + pub grokbuild: McpConfig, /// OpenCode MCP 配置(v4.0.0+,实际使用 opencode.json) #[serde(default, skip_serializing_if = "McpConfig::is_empty")] pub opencode: McpConfig, @@ -292,6 +318,7 @@ impl Default for McpRoot { claude_desktop: McpConfig::default(), codex: McpConfig::default(), gemini: McpConfig::default(), + grokbuild: McpConfig::default(), opencode: McpConfig::default(), openclaw: McpConfig::default(), hermes: McpConfig::default(), @@ -323,6 +350,8 @@ pub struct PromptRoot { #[serde(default)] pub gemini: PromptConfig, #[serde(default)] + pub grokbuild: PromptConfig, + #[serde(default)] pub opencode: PromptConfig, #[serde(default)] pub openclaw: PromptConfig, @@ -348,6 +377,7 @@ pub enum AppType { ClaudeDesktop, Codex, Gemini, + GrokBuild, OpenCode, OpenClaw, Hermes, @@ -360,6 +390,7 @@ impl AppType { AppType::ClaudeDesktop => "claude-desktop", AppType::Codex => "codex", AppType::Gemini => "gemini", + AppType::GrokBuild => "grokbuild", AppType::OpenCode => "opencode", AppType::OpenClaw => "openclaw", AppType::Hermes => "hermes", @@ -384,6 +415,7 @@ impl AppType { AppType::ClaudeDesktop, AppType::Codex, AppType::Gemini, + AppType::GrokBuild, AppType::OpenCode, AppType::OpenClaw, AppType::Hermes, @@ -402,13 +434,14 @@ impl FromStr for AppType { "claude-desktop" | "claude_desktop" | "claudedesktop" => Ok(AppType::ClaudeDesktop), "codex" => Ok(AppType::Codex), "gemini" => Ok(AppType::Gemini), + "grokbuild" | "grok-build" | "grok_build" | "grok" => Ok(AppType::GrokBuild), "opencode" => Ok(AppType::OpenCode), "openclaw" => Ok(AppType::OpenClaw), "hermes" => Ok(AppType::Hermes), other => Err(AppError::localized( "unsupported_app", - format!("不支持的应用标识: '{other}'。可选值: claude, claude-desktop, codex, gemini, opencode, openclaw, hermes。"), - format!("Unsupported app id: '{other}'. Allowed: claude, claude-desktop, codex, gemini, opencode, openclaw, hermes."), + format!("不支持的应用标识: '{other}'。可选值: claude, claude-desktop, codex, gemini, grokbuild, opencode, openclaw, hermes。"), + format!("Unsupported app id: '{other}'. Allowed: claude, claude-desktop, codex, gemini, grokbuild, opencode, openclaw, hermes."), )), } } @@ -444,6 +477,7 @@ impl CommonConfigSnippets { AppType::ClaudeDesktop => None, AppType::Codex => self.codex.as_ref(), AppType::Gemini => self.gemini.as_ref(), + AppType::GrokBuild => None, AppType::OpenCode => self.opencode.as_ref(), AppType::OpenClaw => self.openclaw.as_ref(), AppType::Hermes => self.hermes.as_ref(), @@ -457,6 +491,7 @@ impl CommonConfigSnippets { AppType::ClaudeDesktop => {} AppType::Codex => self.codex = snippet, AppType::Gemini => self.gemini = snippet, + AppType::GrokBuild => {} AppType::OpenCode => self.opencode = snippet, AppType::OpenClaw => self.openclaw = snippet, AppType::Hermes => self.hermes = snippet, @@ -500,6 +535,7 @@ impl Default for MultiAppConfig { apps.insert("claude-desktop".to_string(), ProviderManager::default()); apps.insert("codex".to_string(), ProviderManager::default()); apps.insert("gemini".to_string(), ProviderManager::default()); + apps.insert("grokbuild".to_string(), ProviderManager::default()); apps.insert("opencode".to_string(), ProviderManager::default()); apps.insert("openclaw".to_string(), ProviderManager::default()); apps.insert("hermes".to_string(), ProviderManager::default()); @@ -662,6 +698,7 @@ impl MultiAppConfig { AppType::ClaudeDesktop => &self.mcp.claude_desktop, AppType::Codex => &self.mcp.codex, AppType::Gemini => &self.mcp.gemini, + AppType::GrokBuild => &self.mcp.grokbuild, AppType::OpenCode => &self.mcp.opencode, AppType::OpenClaw => &self.mcp.openclaw, AppType::Hermes => &self.mcp.hermes, @@ -675,6 +712,7 @@ impl MultiAppConfig { AppType::ClaudeDesktop => &mut self.mcp.claude_desktop, AppType::Codex => &mut self.mcp.codex, AppType::Gemini => &mut self.mcp.gemini, + AppType::GrokBuild => &mut self.mcp.grokbuild, AppType::OpenCode => &mut self.mcp.opencode, AppType::OpenClaw => &mut self.mcp.openclaw, AppType::Hermes => &mut self.mcp.hermes, @@ -691,6 +729,7 @@ impl MultiAppConfig { Self::auto_import_prompt_if_exists(&mut config, AppType::Claude)?; Self::auto_import_prompt_if_exists(&mut config, AppType::Codex)?; Self::auto_import_prompt_if_exists(&mut config, AppType::Gemini)?; + Self::auto_import_prompt_if_exists(&mut config, AppType::GrokBuild)?; Self::auto_import_prompt_if_exists(&mut config, AppType::OpenCode)?; Self::auto_import_prompt_if_exists(&mut config, AppType::OpenClaw)?; Self::auto_import_prompt_if_exists(&mut config, AppType::Hermes)?; @@ -714,6 +753,7 @@ impl MultiAppConfig { || !self.prompts.claude_desktop.prompts.is_empty() || !self.prompts.codex.prompts.is_empty() || !self.prompts.gemini.prompts.is_empty() + || !self.prompts.grokbuild.prompts.is_empty() || !self.prompts.opencode.prompts.is_empty() || !self.prompts.openclaw.prompts.is_empty() || !self.prompts.hermes.prompts.is_empty() @@ -728,6 +768,7 @@ impl MultiAppConfig { AppType::Claude, AppType::Codex, AppType::Gemini, + AppType::GrokBuild, AppType::OpenCode, AppType::OpenClaw, AppType::Hermes, @@ -801,6 +842,7 @@ impl MultiAppConfig { AppType::ClaudeDesktop => &mut config.prompts.claude_desktop.prompts, AppType::Codex => &mut config.prompts.codex.prompts, AppType::Gemini => &mut config.prompts.gemini.prompts, + AppType::GrokBuild => &mut config.prompts.grokbuild.prompts, AppType::OpenCode => &mut config.prompts.opencode.prompts, AppType::OpenClaw => &mut config.prompts.openclaw.prompts, AppType::Hermes => &mut config.prompts.hermes.prompts, @@ -843,6 +885,7 @@ impl MultiAppConfig { AppType::ClaudeDesktop => continue, // Claude Desktop 3P profiles don't use MCP here AppType::Codex => &self.mcp.codex.servers, AppType::Gemini => &self.mcp.gemini.servers, + AppType::GrokBuild => continue, AppType::OpenCode => &self.mcp.opencode.servers, AppType::OpenClaw => continue, // OpenClaw MCP is still in development, skip AppType::Hermes => continue, // Hermes didn't exist in v3.6.x, skip @@ -1133,6 +1176,30 @@ mod tests { ); } + #[test] + #[serial] + fn auto_imports_grokbuild_prompt_on_first_launch() { + let _home = TempHome::new(); + write_prompt_file(AppType::GrokBuild, "# Grok Build Prompt\n\nTest content"); + + let config = MultiAppConfig::load().expect("load config"); + + assert_eq!(config.prompts.grokbuild.prompts.len(), 1); + let prompt = config + .prompts + .grokbuild + .prompts + .values() + .next() + .expect("grokbuild prompt exists"); + assert!(prompt.enabled, "grokbuild prompt should be enabled"); + assert_eq!(prompt.content, "# Grok Build Prompt\n\nTest content"); + assert_eq!( + prompt.description, + Some("Automatically imported on first launch".to_string()) + ); + } + #[test] #[serial] fn auto_imports_all_three_apps_prompts() { diff --git a/src-tauri/src/commands/config.rs b/src-tauri/src/commands/config.rs index db5b85015..d09377162 100644 --- a/src-tauri/src/commands/config.rs +++ b/src-tauri/src/commands/config.rs @@ -99,6 +99,15 @@ pub async fn get_config_status( Ok(ConfigStatus { exists, path }) } + AppType::GrokBuild => { + let config_path = crate::grok_config::get_grok_config_path(); + let exists = config_path.exists(); + let path = crate::grok_config::get_grok_config_dir() + .to_string_lossy() + .to_string(); + + Ok(ConfigStatus { exists, path }) + } AppType::OpenCode => { let config_path = crate::opencode_config::get_opencode_config_path(); let exists = config_path.exists(); @@ -143,6 +152,7 @@ pub async fn get_config_dir(app: String) -> Result { } AppType::Codex => codex_config::get_codex_config_dir(), AppType::Gemini => crate::gemini_config::get_gemini_dir(), + AppType::GrokBuild => crate::grok_config::get_grok_config_dir(), AppType::OpenCode => crate::opencode_config::get_opencode_dir(), AppType::OpenClaw => crate::openclaw_config::get_openclaw_dir(), AppType::Hermes => crate::hermes_config::get_hermes_dir(), @@ -160,6 +170,7 @@ pub async fn open_config_folder(handle: AppHandle, app: String) -> Result codex_config::get_codex_config_dir(), AppType::Gemini => crate::gemini_config::get_gemini_dir(), + AppType::GrokBuild => crate::grok_config::get_grok_config_dir(), AppType::OpenCode => crate::opencode_config::get_opencode_dir(), AppType::OpenClaw => crate::openclaw_config::get_openclaw_dir(), AppType::Hermes => crate::hermes_config::get_hermes_dir(), diff --git a/src-tauri/src/commands/misc.rs b/src-tauri/src/commands/misc.rs index aa6257c96..2095014e1 100644 --- a/src-tauri/src/commands/misc.rs +++ b/src-tauri/src/commands/misc.rs @@ -111,8 +111,8 @@ pub struct ToolVersion { wsl_distro: Option, } -const VALID_TOOLS: [&str; 6] = [ - "claude", "codex", "gemini", "opencode", "openclaw", "hermes", +const VALID_TOOLS: [&str; 7] = [ + "claude", "codex", "gemini", "grok", "opencode", "openclaw", "hermes", ]; #[derive(Debug, Clone, serde::Deserialize)] @@ -424,6 +424,7 @@ fn tool_display_name(tool: &str) -> &'static str { "claude" => "Claude Code", "codex" => "Codex", "gemini" => "Gemini CLI", + "grok" => "Grok Build", "opencode" => "OpenCode", "openclaw" => "OpenClaw", "hermes" => "Hermes", @@ -492,6 +493,7 @@ fn npm_install_command_for(tool: &str) -> Option<&'static str> { "claude" => Some("npm i -g @anthropic-ai/claude-code@latest"), "codex" => Some("npm i -g @openai/codex@latest"), "gemini" => Some("npm i -g @google/gemini-cli@latest"), + "grok" => Some("npm i -g @xai-official/grok@latest"), "opencode" => Some("npm i -g opencode-ai@latest"), "openclaw" => Some("npm i -g openclaw@latest"), _ => None, @@ -762,6 +764,7 @@ async fn get_single_tool_version_impl( } "codex" => fetch_npm_latest_for_tool(&client, "@openai/codex", tool, local).await, "gemini" => fetch_npm_latest_for_tool(&client, "@google/gemini-cli", tool, local).await, + "grok" => fetch_npm_latest_for_tool(&client, "@xai-official/grok", tool, local).await, "opencode" => { if let Some(version) = fetch_npm_latest_for_tool(&client, "opencode-ai", tool, local).await @@ -1945,6 +1948,7 @@ fn npm_package_for(tool: &str) -> Option<&'static str> { "claude" => Some("@anthropic-ai/claude-code"), "codex" => Some("@openai/codex"), "gemini" => Some("@google/gemini-cli"), + "grok" => Some("@xai-official/grok"), "opencode" => Some("opencode-ai"), "openclaw" => Some("openclaw"), _ => None, @@ -2257,7 +2261,8 @@ fn package_manager_anchored_command_from_paths( /// formula 由 Homebrew 拥有,避免 self-update 尝试改动包管理器管理的安装。 /// ④ 其余支持官方自升级的工具 → ` update/upgrade || <原锚定包管理器命令>`; /// Codex 的 self-update 只在部分 release 可用,所以保留 npm/brew/bun/volta fallback。 -/// ⑤ 不支持官方自升级的 npm 全局包(例如 Gemini CLI) → 锚定到"那处 bin 目录的 npm"。 +/// ⑤ 不支持官方自升级的 npm 全局包(例如 Gemini CLI / Grok Build) → 锚定到 +/// "那处 bin 目录的 npm"。 #[cfg(not(target_os = "windows"))] fn anchored_command_from_paths(tool: &str, bin_path: &str, real_target: &str) -> Option { let real_lower = real_target.to_ascii_lowercase(); @@ -2553,6 +2558,7 @@ fn wsl_distro_for_tool(tool: &str) -> Option { "claude" => crate::settings::get_claude_override_dir(), "codex" => crate::settings::get_codex_override_dir(), "gemini" => crate::settings::get_gemini_override_dir(), + "grok" => crate::settings::get_grok_override_dir(), "opencode" => crate::settings::get_opencode_override_dir(), "openclaw" => crate::settings::get_openclaw_override_dir(), "hermes" => crate::settings::get_hermes_override_dir(), @@ -3660,6 +3666,35 @@ mod tests { assert_eq!(extract_version("no version here"), "no version here"); } + #[test] + fn grok_lifecycle_metadata_is_consistent() { + let requested = vec!["unsupported".to_string(), "grok".to_string()]; + assert_eq!(normalize_requested_tools(&requested), vec!["grok"]); + assert_eq!(tool_display_name("grok"), "Grok Build"); + assert_eq!(npm_package_for("grok"), Some("@xai-official/grok")); + assert_eq!( + npm_install_command_for("grok"), + Some("npm i -g @xai-official/grok@latest") + ); + assert_eq!(official_update_args("grok"), None); + + for shell in [ + LifecycleCommandShell::Posix, + LifecycleCommandShell::WindowsBatch, + ] { + assert_eq!( + tool_action_shell_command_for_shell("grok", ToolLifecycleAction::Install, shell,) + .as_deref(), + Some("npm i -g @xai-official/grok@latest") + ); + assert_eq!( + tool_action_shell_command_for_shell("grok", ToolLifecycleAction::Update, shell,) + .as_deref(), + Some("npm i -g @xai-official/grok@latest") + ); + } + } + #[test] fn test_compare_semver() { use std::cmp::Ordering; @@ -3903,6 +3938,18 @@ mod tests { assert_eq!(cmd.as_deref(), Some(expected.as_str())); } + #[test] + fn grok_windows_anchors_to_sibling_npm() { + let (_dir, sub, bin_path) = setup_sibling("v22.0.0", "grok.cmd", &["npm.cmd"]); + let cmd = anchored_command_from_paths("grok", &bin_path, &bin_path); + let npm_full = format!("{}\\npm.cmd", sub.to_string_lossy()); + let expected = format!( + "{} i -g @xai-official/grok@latest", + expect_quoted_path(&npm_full) + ); + assert_eq!(cmd.as_deref(), Some(expected.as_str())); + } + #[test] fn windows_no_sibling_uses_cli_update_without_package_fallback() { // sibling 包管理器不存在(纯独立二进制)时,仍可锚定到 CLI 自身跑官方 update。 @@ -4223,6 +4270,9 @@ mod tests { let codex = wsl_tool_action_shell_command("codex", ToolLifecycleAction::Install).unwrap(); assert_eq!(codex, "npm i -g @openai/codex@latest"); + + let grok = wsl_tool_action_shell_command("grok", ToolLifecycleAction::Install).unwrap(); + assert_eq!(grok, "npm i -g @xai-official/grok@latest"); } #[test] @@ -4383,6 +4433,21 @@ mod tests { ); } + #[test] + fn grok_nvm_anchors_to_npm_without_cli_update() { + let cmd = anchored_command_from_paths( + "grok", + "/Users/me/.nvm/versions/node/v22.14.0/bin/grok", + "/Users/me/.nvm/versions/node/v22.14.0/lib/node_modules/@xai-official/grok/bin/grok", + ); + assert_eq!( + cmd.as_deref(), + Some( + "/Users/me/.nvm/versions/node/v22.14.0/bin/npm i -g @xai-official/grok@latest" + ) + ); + } + #[test] fn codex_nvm_anchors_to_that_npm() { // Codex 不走 self-update(`codex update` 在 npm 安装上只是裸 `npm install -g`, @@ -4833,6 +4898,12 @@ mod tests { assert_eq!(cmd, "npm i -g @google/gemini-cli@latest"); } + #[test] + fn grok_install_keeps_static_npm() { + let cmd = install_command_for("grok"); + assert_eq!(cmd, "npm i -g @xai-official/grok@latest"); + } + #[test] fn openclaw_install_keeps_static_npm() { let cmd = install_command_for("openclaw"); @@ -4855,6 +4926,11 @@ mod tests { "npm i -g @google/gemini-cli@latest" ); assert!(!static_fallback_command("gemini").contains("gemini update")); + assert_eq!( + static_fallback_command("grok"), + "npm i -g @xai-official/grok@latest" + ); + assert!(!static_fallback_command("grok").contains("grok update")); assert_eq!( static_fallback_command("opencode"), "opencode upgrade || npm i -g opencode-ai@latest" diff --git a/src-tauri/src/commands/proxy.rs b/src-tauri/src/commands/proxy.rs index e171d1e4b..05bc08ae4 100644 --- a/src-tauri/src/commands/proxy.rs +++ b/src-tauri/src/commands/proxy.rs @@ -23,6 +23,7 @@ pub async fn stop_proxy_server(state: tauri::State<'_, AppState>) -> Result<(), if takeover.claude || takeover.codex || takeover.gemini + || takeover.grokbuild || takeover.opencode || takeover.openclaw { diff --git a/src-tauri/src/database/dao/mcp.rs b/src-tauri/src/database/dao/mcp.rs index 07eb199a3..0bd744ba6 100644 --- a/src-tauri/src/database/dao/mcp.rs +++ b/src-tauri/src/database/dao/mcp.rs @@ -13,7 +13,7 @@ impl Database { pub fn get_all_mcp_servers(&self) -> Result, AppError> { let conn = lock_conn!(self.conn); let mut stmt = conn.prepare( - "SELECT id, name, server_config, description, homepage, docs, tags, enabled_claude, enabled_codex, enabled_gemini, enabled_opencode, enabled_hermes + "SELECT id, name, server_config, description, homepage, docs, tags, enabled_claude, enabled_codex, enabled_gemini, enabled_grokbuild, enabled_opencode, enabled_hermes FROM mcp_servers ORDER BY name ASC, id ASC" ).map_err(|e| AppError::Database(e.to_string()))?; @@ -30,8 +30,9 @@ impl Database { let enabled_claude: bool = row.get(7)?; let enabled_codex: bool = row.get(8)?; let enabled_gemini: bool = row.get(9)?; - let enabled_opencode: bool = row.get(10)?; - let enabled_hermes: bool = row.get(11)?; + let enabled_grokbuild: bool = row.get(10)?; + let enabled_opencode: bool = row.get(11)?; + let enabled_hermes: bool = row.get(12)?; let server = serde_json::from_str(&server_config_str).unwrap_or_default(); let tags = serde_json::from_str(&tags_str).unwrap_or_default(); @@ -46,6 +47,7 @@ impl Database { claude: enabled_claude, codex: enabled_codex, gemini: enabled_gemini, + grokbuild: enabled_grokbuild, opencode: enabled_opencode, hermes: enabled_hermes, }, @@ -72,8 +74,8 @@ impl Database { conn.execute( "INSERT OR REPLACE INTO mcp_servers ( id, name, server_config, description, homepage, docs, tags, - enabled_claude, enabled_codex, enabled_gemini, enabled_opencode, enabled_hermes - ) VALUES (?1, ?2, ?3, ?4, ?5, ?6, ?7, ?8, ?9, ?10, ?11, ?12)", + enabled_claude, enabled_codex, enabled_gemini, enabled_grokbuild, enabled_opencode, enabled_hermes + ) VALUES (?1, ?2, ?3, ?4, ?5, ?6, ?7, ?8, ?9, ?10, ?11, ?12, ?13)", params![ server.id, server.name, @@ -88,6 +90,7 @@ impl Database { server.apps.claude, server.apps.codex, server.apps.gemini, + server.apps.grokbuild, server.apps.opencode, server.apps.hermes, ], diff --git a/src-tauri/src/database/dao/proxy.rs b/src-tauri/src/database/dao/proxy.rs index 4c44f89cd..b2f37c126 100644 --- a/src-tauri/src/database/dao/proxy.rs +++ b/src-tauri/src/database/dao/proxy.rs @@ -328,6 +328,7 @@ impl Database { "claude" => (6, 90, 180, 8, 3, 90, 0.7, 15), "codex" => (3, 60, 120, 4, 2, 60, 0.6, 10), "gemini" => (5, 60, 120, 4, 2, 60, 0.6, 10), + "grokbuild" => (3, 60, 120, 4, 2, 60, 0.6, 10), _ => (3, 60, 120, 4, 2, 60, 0.6, 10), // 默认值 }; @@ -398,6 +399,18 @@ impl Database { ) .map_err(|e| AppError::Database(e.to_string()))?; + // grokbuild: Responses protocol, same timeout defaults as Codex. + conn.execute( + "INSERT OR IGNORE INTO proxy_config ( + app_type, max_retries, + streaming_first_byte_timeout, streaming_idle_timeout, non_streaming_timeout, + circuit_failure_threshold, circuit_success_threshold, circuit_timeout_seconds, + circuit_error_rate_threshold, circuit_min_requests + ) VALUES ('grokbuild', 3, 60, 120, 600, 4, 2, 60, 0.6, 10)", + [], + ) + .map_err(|e| AppError::Database(e.to_string()))?; + Ok(()) } diff --git a/src-tauri/src/database/dao/skills.rs b/src-tauri/src/database/dao/skills.rs index 9c94eb5ec..6c91225ca 100644 --- a/src-tauri/src/database/dao/skills.rs +++ b/src-tauri/src/database/dao/skills.rs @@ -22,8 +22,8 @@ impl Database { let mut stmt = conn .prepare( "SELECT id, name, description, directory, repo_owner, repo_name, repo_branch, - readme_url, enabled_claude, enabled_codex, enabled_gemini, enabled_opencode, - enabled_hermes, installed_at, content_hash, updated_at + readme_url, enabled_claude, enabled_codex, enabled_gemini, enabled_grokbuild, + enabled_opencode, enabled_hermes, installed_at, content_hash, updated_at FROM skills ORDER BY name ASC", ) .map_err(|e| AppError::Database(e.to_string()))?; @@ -43,12 +43,13 @@ impl Database { claude: row.get(8)?, codex: row.get(9)?, gemini: row.get(10)?, - opencode: row.get(11)?, - hermes: row.get(12)?, + grokbuild: row.get(11)?, + opencode: row.get(12)?, + hermes: row.get(13)?, }, - installed_at: row.get(13)?, - content_hash: row.get(14)?, - updated_at: row.get::<_, i64>(15).unwrap_or(0), + installed_at: row.get(14)?, + content_hash: row.get(15)?, + updated_at: row.get::<_, i64>(16).unwrap_or(0), }) }) .map_err(|e| AppError::Database(e.to_string()))?; @@ -67,8 +68,8 @@ impl Database { let mut stmt = conn .prepare( "SELECT id, name, description, directory, repo_owner, repo_name, repo_branch, - readme_url, enabled_claude, enabled_codex, enabled_gemini, enabled_opencode, - enabled_hermes, installed_at, content_hash, updated_at + readme_url, enabled_claude, enabled_codex, enabled_gemini, enabled_grokbuild, + enabled_opencode, enabled_hermes, installed_at, content_hash, updated_at FROM skills WHERE id = ?1", ) .map_err(|e| AppError::Database(e.to_string()))?; @@ -87,12 +88,13 @@ impl Database { claude: row.get(8)?, codex: row.get(9)?, gemini: row.get(10)?, - opencode: row.get(11)?, - hermes: row.get(12)?, + grokbuild: row.get(11)?, + opencode: row.get(12)?, + hermes: row.get(13)?, }, - installed_at: row.get(13)?, - content_hash: row.get(14)?, - updated_at: row.get::<_, i64>(15).unwrap_or(0), + installed_at: row.get(14)?, + content_hash: row.get(15)?, + updated_at: row.get::<_, i64>(16).unwrap_or(0), }) }); @@ -109,9 +111,9 @@ impl Database { conn.execute( "INSERT OR REPLACE INTO skills (id, name, description, directory, repo_owner, repo_name, repo_branch, - readme_url, enabled_claude, enabled_codex, enabled_gemini, enabled_opencode, enabled_hermes, + readme_url, enabled_claude, enabled_codex, enabled_gemini, enabled_grokbuild, enabled_opencode, enabled_hermes, installed_at, content_hash, updated_at) - VALUES (?1, ?2, ?3, ?4, ?5, ?6, ?7, ?8, ?9, ?10, ?11, ?12, ?13, ?14, ?15, ?16)", + VALUES (?1, ?2, ?3, ?4, ?5, ?6, ?7, ?8, ?9, ?10, ?11, ?12, ?13, ?14, ?15, ?16, ?17)", params![ skill.id, skill.name, @@ -124,6 +126,7 @@ impl Database { skill.apps.claude, skill.apps.codex, skill.apps.gemini, + skill.apps.grokbuild, skill.apps.opencode, skill.apps.hermes, skill.installed_at, @@ -157,8 +160,8 @@ impl Database { let conn = lock_conn!(self.conn); let affected = conn .execute( - "UPDATE skills SET enabled_claude = ?1, enabled_codex = ?2, enabled_gemini = ?3, enabled_opencode = ?4, enabled_hermes = ?5 WHERE id = ?6", - params![apps.claude, apps.codex, apps.gemini, apps.opencode, apps.hermes, id], + "UPDATE skills SET enabled_claude = ?1, enabled_codex = ?2, enabled_gemini = ?3, enabled_grokbuild = ?4, enabled_opencode = ?5, enabled_hermes = ?6 WHERE id = ?7", + params![apps.claude, apps.codex, apps.gemini, apps.grokbuild, apps.opencode, apps.hermes, id], ) .map_err(|e| AppError::Database(e.to_string()))?; Ok(affected > 0) diff --git a/src-tauri/src/database/mod.rs b/src-tauri/src/database/mod.rs index d7ba00104..fb0f8969e 100644 --- a/src-tauri/src/database/mod.rs +++ b/src-tauri/src/database/mod.rs @@ -52,7 +52,7 @@ use std::sync::Mutex; /// 当前 Schema 版本号 /// 每次修改表结构时递增,并在 schema.rs 中添加相应的迁移逻辑 -pub(crate) const SCHEMA_VERSION: i32 = 13; +pub(crate) const SCHEMA_VERSION: i32 = 15; /// 安全地序列化 JSON,避免 unwrap panic pub(crate) fn to_json_string(value: &T) -> Result { diff --git a/src-tauri/src/database/schema.rs b/src-tauri/src/database/schema.rs index 14bb0637c..a26ecdd32 100644 --- a/src-tauri/src/database/schema.rs +++ b/src-tauri/src/database/schema.rs @@ -65,7 +65,8 @@ impl Database { id TEXT PRIMARY KEY, name TEXT NOT NULL, server_config TEXT NOT NULL, description TEXT, homepage TEXT, docs TEXT, tags TEXT NOT NULL DEFAULT '[]', enabled_claude BOOLEAN NOT NULL DEFAULT 0, enabled_codex BOOLEAN NOT NULL DEFAULT 0, - enabled_gemini BOOLEAN NOT NULL DEFAULT 0, enabled_opencode BOOLEAN NOT NULL DEFAULT 0, + enabled_gemini BOOLEAN NOT NULL DEFAULT 0, enabled_grokbuild BOOLEAN NOT NULL DEFAULT 0, + enabled_opencode BOOLEAN NOT NULL DEFAULT 0, enabled_hermes BOOLEAN NOT NULL DEFAULT 0 )", [], @@ -93,6 +94,7 @@ impl Database { enabled_claude BOOLEAN NOT NULL DEFAULT 0, enabled_codex BOOLEAN NOT NULL DEFAULT 0, enabled_gemini BOOLEAN NOT NULL DEFAULT 0, + enabled_grokbuild BOOLEAN NOT NULL DEFAULT 0, enabled_opencode BOOLEAN NOT NULL DEFAULT 0, enabled_hermes BOOLEAN NOT NULL DEFAULT 0, installed_at INTEGER NOT NULL DEFAULT 0, @@ -122,7 +124,7 @@ impl Database { // 8. Proxy Config 表(三行结构,app_type 主键) conn.execute("CREATE TABLE IF NOT EXISTS proxy_config ( - app_type TEXT PRIMARY KEY CHECK (app_type IN ('claude','codex','gemini')), + app_type TEXT PRIMARY KEY CHECK (app_type IN ('claude','codex','gemini','grokbuild')), proxy_enabled INTEGER NOT NULL DEFAULT 0, listen_address TEXT NOT NULL DEFAULT '127.0.0.1', listen_port INTEGER NOT NULL DEFAULT 15721, enable_logging INTEGER NOT NULL DEFAULT 1, enabled INTEGER NOT NULL DEFAULT 0, auto_failover_enabled INTEGER NOT NULL DEFAULT 0, @@ -169,6 +171,15 @@ impl Database { [], ) .map_err(|e| AppError::Database(e.to_string()))?; + conn.execute( + "INSERT OR IGNORE INTO proxy_config (app_type, max_retries, + streaming_first_byte_timeout, streaming_idle_timeout, non_streaming_timeout, + circuit_failure_threshold, circuit_success_threshold, circuit_timeout_seconds, + circuit_error_rate_threshold, circuit_min_requests) + VALUES ('grokbuild', 3, 60, 120, 600, 4, 2, 60, 0.6, 10)", + [], + ) + .map_err(|e| AppError::Database(e.to_string()))?; } // 9. Provider Health 表 @@ -485,6 +496,16 @@ impl Database { Self::migrate_v12_to_v13(conn)?; Self::set_user_version(conn, 13)?; } + 13 => { + log::info!("迁移数据库从 v13 到 v14(添加 Grok Build 代理配置)"); + Self::migrate_v13_to_v14(conn)?; + Self::set_user_version(conn, 14)?; + } + 14 => { + log::info!("迁移数据库从 v14 到 v15(Skills/MCP 添加 Grok Build 支持)"); + Self::migrate_v14_to_v15(conn)?; + Self::set_user_version(conn, 15)?; + } _ => { return Err(AppError::Database(format!( "未知的数据库版本 {version},无法迁移到 {SCHEMA_VERSION}" @@ -798,12 +819,25 @@ impl Database { old_cb.3, old_cb.4, ), + ( + "grokbuild", + false, + false, + 3, + old_config.4, + old_config.5, + old_cb.0, + old_cb.1, + old_cb.2, + old_cb.3, + old_cb.4, + ), ]; // 创建新表 conn.execute("DROP TABLE IF EXISTS proxy_config_new", [])?; conn.execute("CREATE TABLE proxy_config_new ( - app_type TEXT PRIMARY KEY CHECK (app_type IN ('claude','codex','gemini')), + app_type TEXT PRIMARY KEY CHECK (app_type IN ('claude','codex','gemini','grokbuild')), proxy_enabled INTEGER NOT NULL DEFAULT 0, listen_address TEXT NOT NULL DEFAULT '127.0.0.1', listen_port INTEGER NOT NULL DEFAULT 15721, enable_logging INTEGER NOT NULL DEFAULT 1, enabled INTEGER NOT NULL DEFAULT 0, auto_failover_enabled INTEGER NOT NULL DEFAULT 0, @@ -814,6 +848,7 @@ impl Database { circuit_min_requests INTEGER NOT NULL DEFAULT 10, default_cost_multiplier TEXT NOT NULL DEFAULT '1', pricing_model_source TEXT NOT NULL DEFAULT 'response', + live_takeover_active INTEGER NOT NULL DEFAULT 0, created_at TEXT NOT NULL DEFAULT (datetime('now')), updated_at TEXT NOT NULL DEFAULT (datetime('now')) )", [])?; @@ -1354,6 +1389,127 @@ impl Database { Ok(()) } + /// v13 -> v14: allow Grok Build to own an independent proxy configuration row. + fn migrate_v13_to_v14(conn: &Connection) -> Result<(), AppError> { + if !Self::table_exists(conn, "proxy_config")? { + return Ok(()); + } + + conn.execute("DROP TABLE IF EXISTS proxy_config_v14", []) + .map_err(|e| AppError::Database(e.to_string()))?; + conn.execute( + "CREATE TABLE proxy_config_v14 ( + app_type TEXT PRIMARY KEY CHECK (app_type IN ('claude','codex','gemini','grokbuild')), + proxy_enabled INTEGER NOT NULL DEFAULT 0, + listen_address TEXT NOT NULL DEFAULT '127.0.0.1', + listen_port INTEGER NOT NULL DEFAULT 15721, + enable_logging INTEGER NOT NULL DEFAULT 1, + enabled INTEGER NOT NULL DEFAULT 0, + auto_failover_enabled INTEGER NOT NULL DEFAULT 0, + max_retries INTEGER NOT NULL DEFAULT 3, + streaming_first_byte_timeout INTEGER NOT NULL DEFAULT 60, + streaming_idle_timeout INTEGER NOT NULL DEFAULT 120, + non_streaming_timeout INTEGER NOT NULL DEFAULT 600, + circuit_failure_threshold INTEGER NOT NULL DEFAULT 4, + circuit_success_threshold INTEGER NOT NULL DEFAULT 2, + circuit_timeout_seconds INTEGER NOT NULL DEFAULT 60, + circuit_error_rate_threshold REAL NOT NULL DEFAULT 0.6, + circuit_min_requests INTEGER NOT NULL DEFAULT 10, + default_cost_multiplier TEXT NOT NULL DEFAULT '1', + pricing_model_source TEXT NOT NULL DEFAULT 'response', + live_takeover_active INTEGER NOT NULL DEFAULT 0, + created_at TEXT NOT NULL DEFAULT (datetime('now')), + updated_at TEXT NOT NULL DEFAULT (datetime('now')) + )", + [], + ) + .map_err(|e| AppError::Database(e.to_string()))?; + + let copied_columns = [ + ("app_type", "'claude'"), + ("proxy_enabled", "0"), + ("listen_address", "'127.0.0.1'"), + ("listen_port", "15721"), + ("enable_logging", "1"), + ("enabled", "0"), + ("auto_failover_enabled", "0"), + ("max_retries", "3"), + ("streaming_first_byte_timeout", "60"), + ("streaming_idle_timeout", "120"), + ("non_streaming_timeout", "600"), + ("circuit_failure_threshold", "4"), + ("circuit_success_threshold", "2"), + ("circuit_timeout_seconds", "60"), + ("circuit_error_rate_threshold", "0.6"), + ("circuit_min_requests", "10"), + ("default_cost_multiplier", "'1'"), + ("pricing_model_source", "'response'"), + ("live_takeover_active", "0"), + ("created_at", "datetime('now')"), + ("updated_at", "datetime('now')"), + ] + .into_iter() + .map(|(column, fallback)| { + Self::has_column(conn, "proxy_config", column).map(|exists| { + if exists { + format!("\"{column}\"") + } else { + fallback.into() + } + }) + }) + .collect::, AppError>>()? + .join(", "); + + let copy_sql = format!( + "INSERT INTO proxy_config_v14 ( + app_type, proxy_enabled, listen_address, listen_port, enable_logging, + enabled, auto_failover_enabled, max_retries, + streaming_first_byte_timeout, streaming_idle_timeout, non_streaming_timeout, + circuit_failure_threshold, circuit_success_threshold, circuit_timeout_seconds, + circuit_error_rate_threshold, circuit_min_requests, + default_cost_multiplier, pricing_model_source, live_takeover_active, + created_at, updated_at + ) + SELECT {copied_columns} FROM proxy_config" + ); + conn.execute(©_sql, []) + .map_err(|e| AppError::Database(e.to_string()))?; + + conn.execute("DROP TABLE proxy_config", []) + .map_err(|e| AppError::Database(e.to_string()))?; + conn.execute("ALTER TABLE proxy_config_v14 RENAME TO proxy_config", []) + .map_err(|e| AppError::Database(e.to_string()))?; + conn.execute( + "INSERT OR IGNORE INTO proxy_config (app_type) VALUES ('grokbuild')", + [], + ) + .map_err(|e| AppError::Database(e.to_string()))?; + + Ok(()) + } + + /// v14 -> v15: persist Grok Build enablement for unified Skills and MCP. + fn migrate_v14_to_v15(conn: &Connection) -> Result<(), AppError> { + if Self::table_exists(conn, "mcp_servers")? { + Self::add_column_if_missing( + conn, + "mcp_servers", + "enabled_grokbuild", + "BOOLEAN NOT NULL DEFAULT 0", + )?; + } + if Self::table_exists(conn, "skills")? { + Self::add_column_if_missing( + conn, + "skills", + "enabled_grokbuild", + "BOOLEAN NOT NULL DEFAULT 0", + )?; + } + Ok(()) + } + /// 插入默认模型定价数据 /// 格式: (model_id, display_name, input, output, cache_read, cache_creation) /// 注意: model_id 使用短横线格式(如 claude-haiku-4-5),与 API 返回的模型名称标准化后一致 @@ -2766,7 +2922,7 @@ mod tests { Database::apply_schema_migrations_on_conn(&conn)?; - assert_eq!(Database::get_user_version(&conn)?, 13); + assert_eq!(Database::get_user_version(&conn)?, SCHEMA_VERSION); assert!(Database::has_column( &conn, "proxy_request_logs", @@ -2787,4 +2943,82 @@ mod tests { Ok(()) } + + #[test] + fn migrate_v13_to_v14_adds_grokbuild_proxy_row_and_preserves_values() -> Result<(), AppError> { + let conn = Connection::open_in_memory()?; + Database::create_tables_on_conn(&conn)?; + conn.execute("DELETE FROM proxy_config WHERE app_type = 'grokbuild'", [])?; + conn.execute( + "UPDATE proxy_config SET enabled = 1, max_retries = 9 WHERE app_type = 'codex'", + [], + )?; + Database::set_user_version(&conn, 13)?; + + Database::apply_schema_migrations_on_conn(&conn)?; + + assert_eq!(Database::get_user_version(&conn)?, SCHEMA_VERSION); + let grok_rows: i64 = conn.query_row( + "SELECT COUNT(*) FROM proxy_config WHERE app_type = 'grokbuild'", + [], + |row| row.get(0), + )?; + assert_eq!(grok_rows, 1); + let codex_values: (i64, i64) = conn.query_row( + "SELECT enabled, max_retries FROM proxy_config WHERE app_type = 'codex'", + [], + |row| Ok((row.get(0)?, row.get(1)?)), + )?; + assert_eq!(codex_values, (1, 9)); + + Ok(()) + } + + #[test] + fn migrate_v14_to_v15_adds_grokbuild_skill_and_mcp_flags() -> Result<(), AppError> { + let conn = Connection::open_in_memory()?; + conn.execute_batch( + "CREATE TABLE mcp_servers ( + id TEXT PRIMARY KEY, + enabled_codex BOOLEAN NOT NULL DEFAULT 0 + ); + CREATE TABLE skills ( + id TEXT PRIMARY KEY, + enabled_codex BOOLEAN NOT NULL DEFAULT 0 + );", + )?; + conn.execute( + "INSERT INTO mcp_servers (id, enabled_codex) VALUES ('mcp-1', 1)", + [], + )?; + conn.execute( + "INSERT INTO skills (id, enabled_codex) VALUES ('skill-1', 1)", + [], + )?; + Database::set_user_version(&conn, 14)?; + + Database::apply_schema_migrations_on_conn(&conn)?; + + assert_eq!(Database::get_user_version(&conn)?, SCHEMA_VERSION); + assert!(Database::has_column( + &conn, + "mcp_servers", + "enabled_grokbuild" + )?); + assert!(Database::has_column(&conn, "skills", "enabled_grokbuild")?); + let mcp_values: (i64, i64) = conn.query_row( + "SELECT enabled_codex, enabled_grokbuild FROM mcp_servers WHERE id = 'mcp-1'", + [], + |row| Ok((row.get(0)?, row.get(1)?)), + )?; + let skill_values: (i64, i64) = conn.query_row( + "SELECT enabled_codex, enabled_grokbuild FROM skills WHERE id = 'skill-1'", + [], + |row| Ok((row.get(0)?, row.get(1)?)), + )?; + assert_eq!(mcp_values, (1, 0)); + assert_eq!(skill_values, (1, 0)); + + Ok(()) + } } diff --git a/src-tauri/src/database/tests.rs b/src-tauri/src/database/tests.rs index 84fe56837..2763f61e4 100644 --- a/src-tauri/src/database/tests.rs +++ b/src-tauri/src/database/tests.rs @@ -517,7 +517,7 @@ fn schema_create_tables_repairs_legacy_proxy_config_singleton_to_per_app() { let count: i32 = conn .query_row("SELECT COUNT(*) FROM proxy_config", [], |r| r.get(0)) .expect("count rows"); - assert_eq!(count, 3, "per-app proxy_config should have 3 rows"); + assert_eq!(count, 4, "per-app proxy_config should have 4 rows"); // 新结构下应能按 app_type 查询 let _: i32 = conn @@ -657,7 +657,7 @@ fn migration_from_v3_8_schema_v1_to_current_schema_v3() { let proxy_rows: i64 = conn .query_row("SELECT COUNT(*) FROM proxy_config", [], |r| r.get(0)) .expect("count proxy_config rows"); - assert_eq!(proxy_rows, 3); + assert_eq!(proxy_rows, 4); // model_pricing 应具备默认数据(迁移时会 seed) let pricing_rows: i64 = conn diff --git a/src-tauri/src/deeplink/mcp.rs b/src-tauri/src/deeplink/mcp.rs index 822cd839d..e768e3494 100644 --- a/src-tauri/src/deeplink/mcp.rs +++ b/src-tauri/src/deeplink/mcp.rs @@ -101,17 +101,7 @@ pub fn import_mcp_from_deeplink( // Server exists - merge apps only, keep other fields unchanged log::info!("MCP server '{id}' already exists, merging apps only"); - let mut merged_apps = existing.apps.clone(); - // Merge new apps into existing apps - if target_apps.claude { - merged_apps.claude = true; - } - if target_apps.codex { - merged_apps.codex = true; - } - if target_apps.gemini { - merged_apps.gemini = true; - } + let merged_apps = merge_mcp_apps(&existing.apps, &target_apps); McpServer { id: existing.id.clone(), @@ -166,6 +156,7 @@ pub(crate) fn parse_mcp_apps(apps_str: &str) -> Result { claude: false, codex: false, gemini: false, + grokbuild: false, opencode: false, hermes: false, }; @@ -175,6 +166,7 @@ pub(crate) fn parse_mcp_apps(apps_str: &str) -> Result { "claude" => apps.claude = true, "codex" => apps.codex = true, "gemini" => apps.gemini = true, + "grokbuild" | "grok" => apps.grokbuild = true, "opencode" => apps.opencode = true, "openclaw" => { // OpenClaw doesn't support MCP, ignore silently @@ -197,3 +189,40 @@ pub(crate) fn parse_mcp_apps(apps_str: &str) -> Result { Ok(apps) } + +fn merge_mcp_apps(existing: &McpApps, target: &McpApps) -> McpApps { + let mut merged = existing.clone(); + for app in target.enabled_apps() { + merged.set_enabled_for(&app, true); + } + merged +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn enabled_apps_merge_covers_every_supported_mcp_client() { + let existing = McpApps { + claude: true, + ..McpApps::default() + }; + let target = McpApps { + codex: true, + gemini: true, + grokbuild: true, + opencode: true, + hermes: true, + ..McpApps::default() + }; + let merged = merge_mcp_apps(&existing, &target); + + assert!(merged.claude); + assert!(merged.codex); + assert!(merged.gemini); + assert!(merged.grokbuild); + assert!(merged.opencode); + assert!(merged.hermes); + } +} diff --git a/src-tauri/src/deeplink/parser.rs b/src-tauri/src/deeplink/parser.rs index aca40fec6..ee854ff4f 100644 --- a/src-tauri/src/deeplink/parser.rs +++ b/src-tauri/src/deeplink/parser.rs @@ -81,10 +81,10 @@ fn parse_provider_deeplink( // Validate app type if !matches!( app.as_str(), - "claude" | "codex" | "gemini" | "opencode" | "openclaw" | "hermes" + "claude" | "codex" | "gemini" | "grokbuild" | "opencode" | "openclaw" | "hermes" ) { return Err(AppError::InvalidInput(format!( - "Invalid app type: must be 'claude', 'codex', 'gemini', 'opencode', 'openclaw', or 'hermes', got '{app}'" + "Invalid app type: must be 'claude', 'codex', 'gemini', 'grokbuild', 'opencode', 'openclaw', or 'hermes', got '{app}'" ))); } @@ -190,10 +190,10 @@ fn parse_prompt_deeplink( // Validate app type if !matches!( app.as_str(), - "claude" | "codex" | "gemini" | "opencode" | "openclaw" | "hermes" + "claude" | "codex" | "gemini" | "grokbuild" | "opencode" | "openclaw" | "hermes" ) { return Err(AppError::InvalidInput(format!( - "Invalid app type: must be 'claude', 'codex', 'gemini', 'opencode', 'openclaw', or 'hermes', got '{app}'" + "Invalid app type: must be 'claude', 'codex', 'gemini', 'grokbuild', 'opencode', 'openclaw', or 'hermes', got '{app}'" ))); } @@ -262,10 +262,17 @@ fn parse_mcp_deeplink( let trimmed = app.trim(); if !matches!( trimmed, - "claude" | "codex" | "gemini" | "opencode" | "openclaw" | "hermes" + "claude" + | "codex" + | "gemini" + | "grokbuild" + | "grok" + | "opencode" + | "openclaw" + | "hermes" ) { return Err(AppError::InvalidInput(format!( - "Invalid app in 'apps': must be 'claude', 'codex', 'gemini', 'opencode', 'openclaw', or 'hermes', got '{trimmed}'" + "Invalid app in 'apps': must be 'claude', 'codex', 'gemini', 'grokbuild', 'opencode', 'openclaw', or 'hermes', got '{trimmed}'" ))); } } diff --git a/src-tauri/src/deeplink/provider.rs b/src-tauri/src/deeplink/provider.rs index 80cd8eb21..193f29ca5 100644 --- a/src-tauri/src/deeplink/provider.rs +++ b/src-tauri/src/deeplink/provider.rs @@ -145,6 +145,7 @@ pub(crate) fn build_provider_from_request( AppType::Claude | AppType::ClaudeDesktop => build_claude_settings(request), AppType::Codex => build_codex_settings(request), AppType::Gemini => build_gemini_settings(request), + AppType::GrokBuild => build_grokbuild_settings(request), AppType::OpenCode => build_opencode_settings(request), AppType::OpenClaw => build_additive_app_settings(request), AppType::Hermes => build_hermes_settings(request), @@ -444,6 +445,36 @@ fn build_gemini_settings(request: &DeepLinkImportRequest) -> serde_json::Value { json!({ "env": env }) } +fn build_grokbuild_settings(request: &DeepLinkImportRequest) -> serde_json::Value { + let model = request + .model + .as_deref() + .filter(|value| !value.trim().is_empty()) + .unwrap_or(crate::grok_config::DEFAULT_MODEL) + .trim(); + let name = request + .name + .as_deref() + .filter(|value| !value.trim().is_empty()) + .unwrap_or("custom") + .trim(); + let endpoint = get_primary_endpoint(request).trim().to_string(); + let api_key = request.api_key.as_deref().unwrap_or("").trim(); + + let model_value = toml_edit::Value::from(model).to_string(); + let name_value = toml_edit::Value::from(name).to_string(); + let endpoint_value = toml_edit::Value::from(endpoint.as_str()).to_string(); + let api_key_value = toml_edit::Value::from(api_key).to_string(); + + json!({ + "config": format!( + "[models]\ndefault = {model_value}\n\n[model.{model_value}]\nmodel = {model_value}\nbase_url = {endpoint_value}\nname = {name_value}\napi_key = {api_key_value}\napi_backend = \"{}\"\ncontext_window = {}\n", + crate::grok_config::DEFAULT_API_BACKEND, + crate::grok_config::DEFAULT_CONTEXT_WINDOW, + ) + }) +} + /// Build OpenCode settings configuration fn build_opencode_settings(request: &DeepLinkImportRequest) -> serde_json::Value { let endpoint = get_primary_endpoint(request); @@ -600,6 +631,7 @@ pub fn parse_and_merge_config( "claude" => merge_claude_config(&mut merged, &config_value)?, "codex" => merge_codex_config(&mut merged, &config_value)?, "gemini" => merge_gemini_config(&mut merged, &config_value)?, + "grokbuild" => merge_grokbuild_config(&mut merged, &config_value)?, // Additive mode apps use JSON config directly; pass through as-is "openclaw" | "opencode" | "hermes" => { merge_additive_config(&mut merged, &config_value)?; @@ -774,6 +806,56 @@ fn merge_gemini_config( Ok(()) } +fn merge_grokbuild_config( + request: &mut DeepLinkImportRequest, + config: &serde_json::Value, +) -> Result<(), AppError> { + let config_toml = if let Some(config_toml) = config.get("config").and_then(|v| v.as_str()) { + config_toml.to_string() + } else { + let toml_value: toml::Value = serde_json::from_value(config.clone()).map_err(|error| { + AppError::InvalidInput(format!("Invalid Grok Build config: {error}")) + })?; + toml::to_string(&toml_value).map_err(|error| { + AppError::InvalidInput(format!("Invalid Grok Build config: {error}")) + })? + }; + let model = crate::grok_config::extract_model_config(&config_toml).ok_or_else(|| { + AppError::InvalidInput("Invalid Grok Build config.toml model profile".to_string()) + })?; + + if request + .api_key + .as_ref() + .is_none_or(|value| value.is_empty()) + { + request.api_key = model.api_key.or_else(|| { + crate::grok_config::extract_credentials(&config_toml).map(|(_, api_key)| api_key) + }); + } + if request + .endpoint + .as_ref() + .is_none_or(|value| value.is_empty()) + { + request.endpoint = Some(model.base_url); + } + if request.model.is_none() { + request.model = Some(model.model); + } + if request + .homepage + .as_ref() + .is_none_or(|value| value.is_empty()) + { + if let Some(endpoint) = request.endpoint.as_deref() { + request.homepage = infer_homepage_from_endpoint(endpoint); + } + } + + Ok(()) +} + /// Merge configuration for additive mode apps (OpenClaw, OpenCode) /// /// These apps use JSON config directly, so we only extract common fields diff --git a/src-tauri/src/deeplink/tests.rs b/src-tauri/src/deeplink/tests.rs index 8ea4b2267..54681b444 100644 --- a/src-tauri/src/deeplink/tests.rs +++ b/src-tauri/src/deeplink/tests.rs @@ -87,6 +87,39 @@ fn test_parse_deeplink_with_notes() { assert_eq!(request.notes, Some("Test notes".to_string())); } +#[test] +fn test_parse_grokbuild_provider() { + use super::provider::build_provider_from_request; + + let url = "ccswitch://v1/import?resource=provider&app=grokbuild&name=Grok%20Relay&endpoint=https%3A%2F%2Fapi.example.com%2Fv1&apiKey=secret&model=grok-4.5"; + + let request = parse_deeplink_url(url).unwrap(); + + assert_eq!(request.app.as_deref(), Some("grokbuild")); + assert_eq!(request.name.as_deref(), Some("Grok Relay")); + assert_eq!( + request.endpoint.as_deref(), + Some("https://api.example.com/v1") + ); + assert_eq!(request.api_key.as_deref(), Some("secret")); + assert_eq!(request.model.as_deref(), Some("grok-4.5")); + + let provider = build_provider_from_request(&AppType::GrokBuild, &request).unwrap(); + let config = provider.settings_config["config"].as_str().unwrap(); + let document = config.parse::().unwrap(); + let model = &document["model"]["grok-4.5"]; + + assert_eq!(document["models"]["default"].as_str(), Some("grok-4.5")); + assert_eq!( + model["base_url"].as_str(), + Some("https://api.example.com/v1") + ); + assert_eq!(model["name"].as_str(), Some("Grok Relay")); + assert_eq!(model["api_key"].as_str(), Some("secret")); + assert_eq!(model["api_backend"].as_str(), Some("responses")); + assert_eq!(model["context_window"].as_integer(), Some(500_000)); +} + #[test] fn test_parse_invalid_scheme() { let url = "https://v1/import?resource=provider&app=claude&name=Test"; @@ -500,6 +533,38 @@ experimental_bearer_token = "sk-rightcode" assert_eq!(merged.model, Some("gpt-5-codex".to_string())); } +#[test] +fn test_parse_and_merge_config_grokbuild() { + let config_toml = r#"[models] +default = "grok-profile" + +[model."grok-profile"] +model = "grok-upstream" +base_url = "https://grok.example/v1" +name = "Grok Relay" +api_key = "sk-grok" +api_backend = "responses" +context_window = 500000 +"#; + let config_json = serde_json::json!({ "config": config_toml }).to_string(); + let request = DeepLinkImportRequest { + version: "v1".to_string(), + resource: "provider".to_string(), + app: Some("grokbuild".to_string()), + name: Some("Grok Relay".to_string()), + config: Some(BASE64_STANDARD.encode(config_json.as_bytes())), + config_format: Some("json".to_string()), + ..Default::default() + }; + + let merged = parse_and_merge_config(&request).expect("merge Grok Build config"); + + assert_eq!(merged.api_key.as_deref(), Some("sk-grok")); + assert_eq!(merged.endpoint.as_deref(), Some("https://grok.example/v1")); + assert_eq!(merged.model.as_deref(), Some("grok-upstream")); + assert_eq!(merged.homepage.as_deref(), Some("https://grok.example")); +} + #[test] fn test_parse_and_merge_config_url_override() { let config_json = r#"{"env":{"ANTHROPIC_AUTH_TOKEN":"sk-old","ANTHROPIC_BASE_URL":"https://api.anthropic.com/v1"}}"#; @@ -709,6 +774,11 @@ fn test_parse_mcp_apps() { assert!(!apps.codex); assert!(apps.gemini); + let apps = parse_mcp_apps("grokbuild,opencode,hermes").unwrap(); + assert!(apps.grokbuild); + assert!(apps.opencode); + assert!(apps.hermes); + let err = parse_mcp_apps("invalid").unwrap_err(); assert!(err.to_string().contains("Invalid app")); } @@ -731,6 +801,18 @@ fn test_parse_prompt_deeplink() { assert!(request.enabled.unwrap()); } +#[test] +fn test_parse_grokbuild_prompt_deeplink() { + let content_b64 = BASE64_STANDARD.encode("Grok instructions"); + let url = format!( + "ccswitch://v1/import?resource=prompt&app=grokbuild&name=test&content={content_b64}" + ); + + let request = parse_deeplink_url(&url).expect("parse Grok Build prompt deeplink"); + + assert_eq!(request.app.as_deref(), Some("grokbuild")); +} + #[test] fn test_parse_mcp_deeplink() { let config = r#"{"mcpServers":{"test":{"command":"echo"}}}"#; @@ -747,6 +829,19 @@ fn test_parse_mcp_deeplink() { assert!(request.enabled.unwrap()); } +#[test] +fn test_parse_grokbuild_mcp_deeplink() { + let config = r#"{"mcpServers":{"test":{"command":"echo"}}}"#; + let config_b64 = BASE64_STANDARD.encode(config); + let url = format!( + "ccswitch://v1/import?resource=mcp&apps=grokbuild&config={config_b64}&enabled=true" + ); + + let request = parse_deeplink_url(&url).expect("parse Grok Build MCP deeplink"); + + assert_eq!(request.apps.as_deref(), Some("grokbuild")); +} + #[test] fn test_parse_skill_deeplink() { let url = "ccswitch://v1/import?resource=skill&repo=owner/repo&directory=skills&branch=dev"; diff --git a/src-tauri/src/grok_config.rs b/src-tauri/src/grok_config.rs new file mode 100644 index 000000000..687eabe2c --- /dev/null +++ b/src-tauri/src/grok_config.rs @@ -0,0 +1,516 @@ +use serde_json::{json, Value}; +use std::fs; +use std::path::PathBuf; + +use crate::config::{get_home_dir, write_text_file}; +use crate::error::AppError; +use crate::provider::Provider; + +pub const DEFAULT_MODEL: &str = "grok-4.5"; +pub const DEFAULT_API_BACKEND: &str = "responses"; +pub const DEFAULT_CONTEXT_WINDOW: i64 = 500_000; + +#[derive(Debug, Clone, PartialEq, Eq)] +pub struct GrokModelConfig { + pub profile: String, + pub model: String, + pub base_url: String, + pub name: String, + pub api_key: Option, + pub env_key: Option, + pub api_backend: String, + pub context_window: i64, +} + +/// Grok Build configuration directory (`~/.grok`). +pub fn get_grok_config_dir() -> PathBuf { + crate::settings::get_grok_override_dir().unwrap_or_else(|| get_home_dir().join(".grok")) +} + +/// Grok Build live configuration path (`~/.grok/config.toml`). +pub fn get_grok_config_path() -> PathBuf { + get_grok_config_dir().join("config.toml") +} + +fn required_non_empty_string<'a>( + table: &'a toml::value::Table, + key: &str, +) -> Result<&'a str, AppError> { + table + .get(key) + .and_then(toml::Value::as_str) + .map(str::trim) + .filter(|value| !value.is_empty()) + .ok_or_else(|| { + AppError::localized( + "provider.grokbuild.field.missing", + format!("Grok Build 配置缺少有效的 {key} 字段"), + format!("Grok Build configuration is missing a valid {key} field"), + ) + }) +} + +fn optional_non_empty_string(table: &toml::value::Table, key: &str) -> Option { + table + .get(key) + .and_then(toml::Value::as_str) + .map(str::trim) + .filter(|value| !value.is_empty()) + .map(ToString::to_string) +} + +/// Validate the provider-owned Grok Build TOML document. +pub fn validate_config_toml(config_toml: &str) -> Result<(), AppError> { + let document = config_toml.parse::().map_err(|error| { + AppError::localized( + "provider.grokbuild.config.invalid_toml", + format!("Grok Build config.toml 格式错误: {error}"), + format!("Invalid Grok Build config.toml: {error}"), + ) + })?; + + let root = document.as_table().ok_or_else(|| { + AppError::localized( + "provider.grokbuild.config.not_table", + "Grok Build 配置必须是 TOML 表结构", + "Grok Build configuration must be a TOML table", + ) + })?; + let models = root + .get("models") + .and_then(toml::Value::as_table) + .ok_or_else(|| { + AppError::localized( + "provider.grokbuild.models.missing", + "Grok Build 配置缺少 [models]", + "Grok Build configuration is missing [models]", + ) + })?; + let default_model = required_non_empty_string(models, "default")?; + let model_entries = root + .get("model") + .and_then(toml::Value::as_table) + .ok_or_else(|| { + AppError::localized( + "provider.grokbuild.model.missing", + "Grok Build 配置缺少 [model.]", + "Grok Build configuration is missing [model.]", + ) + })?; + let selected_model = model_entries + .get(default_model) + .and_then(toml::Value::as_table) + .ok_or_else(|| { + AppError::localized( + "provider.grokbuild.default_model.missing", + format!("Grok Build 配置缺少 [model.\"{default_model}\"]"), + format!("Grok Build configuration is missing [model.\"{default_model}\"]"), + ) + })?; + + required_non_empty_string(selected_model, "model")?; + required_non_empty_string(selected_model, "base_url")?; + required_non_empty_string(selected_model, "name")?; + if optional_non_empty_string(selected_model, "api_key").is_none() + && optional_non_empty_string(selected_model, "env_key").is_none() + { + return Err(AppError::localized( + "provider.grokbuild.credentials.missing", + "Grok Build 配置缺少有效的 api_key 或 env_key 字段", + "Grok Build configuration is missing a valid api_key or env_key field", + )); + } + required_non_empty_string(selected_model, "api_backend")?; + + selected_model + .get("context_window") + .and_then(toml::Value::as_integer) + .filter(|value| *value > 0) + .ok_or_else(|| { + AppError::localized( + "provider.grokbuild.context_window.invalid", + "Grok Build context_window 必须是正整数", + "Grok Build context_window must be a positive integer", + ) + })?; + + Ok(()) +} + +pub fn extract_model_config(config_toml: &str) -> Option { + let document = config_toml.parse::().ok()?; + let root = document.as_table()?; + let default_model = root + .get("models")? + .as_table()? + .get("default")? + .as_str()? + .trim(); + let selected_model = root + .get("model")? + .as_table()? + .get(default_model)? + .as_table()?; + Some(GrokModelConfig { + profile: default_model.to_string(), + model: selected_model.get("model")?.as_str()?.trim().to_string(), + base_url: selected_model + .get("base_url")? + .as_str()? + .trim_end_matches('/') + .to_string(), + name: selected_model.get("name")?.as_str()?.trim().to_string(), + api_key: optional_non_empty_string(selected_model, "api_key"), + env_key: optional_non_empty_string(selected_model, "env_key"), + api_backend: selected_model + .get("api_backend")? + .as_str()? + .trim() + .to_string(), + context_window: selected_model.get("context_window")?.as_integer()?, + }) +} + +pub fn extract_credentials(config_toml: &str) -> Option<(String, String)> { + let config = extract_model_config(config_toml)?; + let api_key = config + .api_key + .or_else(|| { + config + .env_key + .as_deref() + .and_then(|key| std::env::var(key).ok()) + .map(|value| value.trim().to_string()) + .filter(|value| !value.is_empty()) + }) + .or_else(|| { + std::env::var("XAI_API_KEY") + .ok() + .map(|value| value.trim().to_string()) + .filter(|value| !value.is_empty()) + })?; + Some((config.base_url, api_key)) +} + +pub fn extract_inline_api_key(config_toml: &str) -> Option { + extract_model_config(config_toml)?.api_key +} + +pub fn extract_base_url(config_toml: &str) -> Option { + Some(extract_model_config(config_toml)?.base_url) +} + +fn update_selected_model_string( + config_toml: &str, + field: &str, + value: &str, +) -> Result { + let mut document = config_toml + .parse::() + .map_err(|error| { + AppError::localized( + "provider.grokbuild.config.invalid_toml", + format!("Grok Build config.toml 格式错误: {error}"), + format!("Invalid Grok Build config.toml: {error}"), + ) + })?; + let default_model = document + .get("models") + .and_then(|item| item.get("default")) + .and_then(toml_edit::Item::as_str) + .map(str::trim) + .filter(|model| !model.is_empty()) + .ok_or_else(|| { + AppError::localized( + "provider.grokbuild.default_model.missing", + "Grok Build 配置缺少 models.default", + "Grok Build configuration is missing models.default", + ) + })? + .to_string(); + + let selected_model = document + .get_mut("model") + .and_then(|item| item.get_mut(&default_model)) + .and_then(toml_edit::Item::as_table_like_mut) + .ok_or_else(|| { + AppError::localized( + "provider.grokbuild.default_model.missing", + format!("Grok Build 配置缺少 [model.\"{default_model}\"]"), + format!("Grok Build configuration is missing [model.\"{default_model}\"]"), + ) + })?; + selected_model.insert(field, toml_edit::value(value)); + Ok(document.to_string()) +} + +pub fn apply_proxy_takeover( + config_toml: &str, + proxy_base_url: &str, + token_placeholder: &str, +) -> Result { + let updated = update_selected_model_string(config_toml, "base_url", proxy_base_url)?; + update_selected_model_string(&updated, "api_key", token_placeholder) +} + +pub fn update_api_key(config_toml: &str, api_key: &str) -> Result { + update_selected_model_string(config_toml, "api_key", api_key) +} + +pub fn has_proxy_placeholder(config_toml: &str, token_placeholder: &str) -> bool { + extract_model_config(config_toml) + .and_then(|config| config.api_key) + .is_some_and(|api_key| api_key == token_placeholder) +} + +pub fn base_url_matches(config_toml: &str, predicate: impl FnOnce(&str) -> bool) -> bool { + extract_model_config(config_toml).is_some_and(|config| predicate(&config.base_url)) +} + +/// Remove MCP projections from a provider-owned Grok Build settings snapshot. +/// MCP servers are owned by the database and projected into live config.toml. +pub fn strip_grok_mcp_servers_from_settings(settings: &mut Value) -> Result<(), AppError> { + let Some(config_text) = settings + .get("config") + .and_then(Value::as_str) + .map(str::to_string) + else { + return Ok(()); + }; + if !config_text.contains("mcp") { + return Ok(()); + } + + let mut document = config_text + .parse::() + .map_err(|error| AppError::Message(format!("Invalid Grok Build config.toml: {error}")))?; + let mut changed = document.as_table_mut().remove("mcp_servers").is_some(); + if let Some(mcp_table) = document + .get_mut("mcp") + .and_then(toml_edit::Item::as_table_like_mut) + { + if mcp_table.remove("servers").is_some() { + changed = true; + } + if mcp_table.is_empty() { + document.as_table_mut().remove("mcp"); + } + } + + if changed { + if let Some(object) = settings.as_object_mut() { + object.insert("config".to_string(), Value::String(document.to_string())); + } + } + Ok(()) +} + +pub fn read_grok_live_settings() -> Result { + let path = get_grok_config_path(); + if !path.exists() { + return Err(AppError::localized( + "grokbuild.config.missing", + "Grok Build 配置文件不存在", + "Grok Build configuration file not found", + )); + } + + let config = fs::read_to_string(&path).map_err(|error| AppError::io(&path, error))?; + validate_config_toml(&config)?; + Ok(json!({ "config": config })) +} + +pub fn write_grok_provider_live(provider: &Provider) -> Result<(), AppError> { + let settings = provider.settings_config.as_object().ok_or_else(|| { + AppError::localized( + "provider.grokbuild.settings.not_object", + "Grok Build 配置必须是 JSON 对象", + "Grok Build configuration must be a JSON object", + ) + })?; + let config = settings + .get("config") + .and_then(Value::as_str) + .ok_or_else(|| { + AppError::localized( + "provider.grokbuild.config.missing", + "Grok Build 配置缺少 config 字段", + "Grok Build configuration is missing the config field", + ) + })?; + + write_grok_live_settings(&json!({ "config": config })) +} + +pub fn write_grok_live_settings(settings: &Value) -> Result<(), AppError> { + let config = settings + .get("config") + .and_then(Value::as_str) + .ok_or_else(|| { + AppError::localized( + "provider.grokbuild.config.missing", + "Grok Build 配置缺少 config 字段", + "Grok Build configuration is missing the config field", + ) + })?; + validate_config_toml(config)?; + write_text_file(&get_grok_config_path(), config) +} + +#[cfg(test)] +mod tests { + use super::*; + use serial_test::serial; + use tempfile::TempDir; + + fn valid_config() -> &'static str { + r#"[models] +default = "grok-4.5" + +[model."grok-4.5"] +model = "grok-4.5" +base_url = "https://example.com/v1" +name = "Example" +api_key = "secret" +api_backend = "responses" +context_window = 500000 +"# + } + + fn valid_env_key_config() -> &'static str { + r#"[models] +default = "grok-env" + +[model."grok-env"] +model = "grok-4.5" +base_url = "https://example.com/v1" +name = "Example Env" +env_key = "GROK_TEST_API_KEY" +api_backend = "responses" +context_window = 500000 +"# + } + + #[test] + fn validates_expected_config_shape() { + validate_config_toml(valid_config()).expect("valid Grok Build config"); + validate_config_toml(valid_env_key_config()).expect("valid env_key configuration"); + } + + #[test] + fn rejects_missing_selected_model_table() { + let error = validate_config_toml("[models]\ndefault = \"grok-4.5\"\n") + .expect_err("missing model table should fail"); + assert!(error.to_string().contains("model")); + } + + #[test] + fn rejects_config_without_api_key_or_env_key() { + let config = valid_config().replace("api_key = \"secret\"\n", ""); + let error = validate_config_toml(&config).expect_err("credentials should be required"); + assert!(error.to_string().contains("api_key")); + assert!(error.to_string().contains("env_key")); + } + + #[test] + fn extracts_selected_model_and_updates_takeover_fields() { + let selected = extract_model_config(valid_config()).expect("selected model"); + assert_eq!(selected.profile, "grok-4.5"); + assert_eq!(selected.model, "grok-4.5"); + assert_eq!(selected.base_url, "https://example.com/v1"); + + let updated = apply_proxy_takeover( + valid_config(), + "http://127.0.0.1:15721/grokbuild/v1", + "PROXY_MANAGED", + ) + .expect("takeover config"); + let selected = extract_model_config(&updated).expect("updated selected model"); + assert_eq!(selected.base_url, "http://127.0.0.1:15721/grokbuild/v1"); + assert_eq!(selected.api_key.as_deref(), Some("PROXY_MANAGED")); + assert!(has_proxy_placeholder(&updated, "PROXY_MANAGED")); + } + + #[test] + fn takeover_preserves_env_key_profile_and_injects_inline_placeholder() { + let updated = apply_proxy_takeover( + valid_env_key_config(), + "http://127.0.0.1:15721/grokbuild/v1", + "PROXY_MANAGED", + ) + .expect("takeover config"); + let selected = extract_model_config(&updated).expect("updated selected model"); + + assert_eq!(selected.profile, "grok-env"); + assert_eq!(selected.env_key.as_deref(), Some("GROK_TEST_API_KEY")); + assert_eq!(selected.api_key.as_deref(), Some("PROXY_MANAGED")); + } + + #[test] + #[serial] + fn resolves_api_key_from_configured_environment_variable() { + let original = std::env::var_os("GROK_TEST_API_KEY"); + std::env::set_var("GROK_TEST_API_KEY", "env-secret"); + + let credentials = extract_credentials(valid_env_key_config()).expect("credentials"); + + assert_eq!(credentials.0, "https://example.com/v1"); + assert_eq!(credentials.1, "env-secret"); + match original { + Some(value) => std::env::set_var("GROK_TEST_API_KEY", value), + None => std::env::remove_var("GROK_TEST_API_KEY"), + } + } + + #[test] + fn strips_projected_mcp_servers_without_touching_model_config() { + let mut settings = json!({ + "config": format!( + "{}\n[mcp_servers.echo]\ncommand = \"echo\"\n", + valid_config() + ) + }); + + strip_grok_mcp_servers_from_settings(&mut settings).expect("strip MCP servers"); + + let config = settings.get("config").and_then(Value::as_str).unwrap(); + assert!(!config.contains("mcp_servers")); + assert!(config.contains("model = \"grok-4.5\"")); + validate_config_toml(config).expect("stripped config remains valid"); + } + + #[test] + #[serial] + fn writes_and_reads_live_config() { + let temp = TempDir::new().expect("temp dir"); + let original_test_home = std::env::var_os("CC_SWITCH_TEST_HOME"); + std::env::set_var("CC_SWITCH_TEST_HOME", temp.path()); + + let provider = Provider::with_id( + "grok".to_string(), + "Example".to_string(), + json!({ "config": valid_config() }), + None, + ); + write_grok_provider_live(&provider).expect("write live config"); + + let path = get_grok_config_path(); + assert_eq!(path, temp.path().join(".grok").join("config.toml")); + assert_eq!( + fs::read_to_string(path).expect("read config"), + valid_config() + ); + assert_eq!( + read_grok_live_settings() + .expect("read live settings") + .get("config") + .and_then(Value::as_str), + Some(valid_config()) + ); + + match original_test_home { + Some(value) => std::env::set_var("CC_SWITCH_TEST_HOME", value), + None => std::env::remove_var("CC_SWITCH_TEST_HOME"), + } + } +} diff --git a/src-tauri/src/lib.rs b/src-tauri/src/lib.rs index b2b214c1a..688376532 100644 --- a/src-tauri/src/lib.rs +++ b/src-tauri/src/lib.rs @@ -14,6 +14,7 @@ mod deeplink; mod error; mod gemini_config; mod gemini_mcp; +mod grok_config; pub mod hermes_config; mod init_status; mod lightweight; @@ -47,10 +48,11 @@ pub use database::{Database, Profile}; pub use deeplink::{import_provider_from_deeplink, parse_deeplink_url, DeepLinkImportRequest}; pub use error::AppError; pub use mcp::{ - import_from_claude, import_from_codex, import_from_gemini, remove_server_from_claude, - remove_server_from_codex, remove_server_from_gemini, sync_enabled_to_claude, - sync_enabled_to_codex, sync_enabled_to_gemini, sync_single_server_to_claude, - sync_single_server_to_codex, sync_single_server_to_gemini, + import_from_claude, import_from_codex, import_from_gemini, import_from_grokbuild, + remove_server_from_claude, remove_server_from_codex, remove_server_from_gemini, + remove_server_from_grokbuild, sync_enabled_to_claude, sync_enabled_to_codex, + sync_enabled_to_gemini, sync_single_server_to_claude, sync_single_server_to_codex, + sync_single_server_to_gemini, sync_single_server_to_grokbuild, }; pub use prompt::Prompt; pub use provider::{Provider, ProviderMeta}; @@ -783,6 +785,14 @@ pub fn run() { Err(e) => log::warn!("✗ Failed to import Gemini MCP: {e}"), } + match crate::services::mcp::McpService::import_from_grokbuild(&app_state) { + Ok(count) if count > 0 => { + log::info!("✓ Imported {count} MCP server(s) from Grok Build"); + } + Ok(_) => log::debug!("○ No Grok Build MCP servers found to import"), + Err(e) => log::warn!("✗ Failed to import Grok Build MCP: {e}"), + } + match crate::services::mcp::McpService::import_from_opencode(&app_state) { Ok(count) if count > 0 => { log::info!("✓ Imported {count} MCP server(s) from OpenCode"); @@ -808,6 +818,7 @@ pub fn run() { crate::app_config::AppType::Claude, crate::app_config::AppType::Codex, crate::app_config::AppType::Gemini, + crate::app_config::AppType::GrokBuild, crate::app_config::AppType::OpenCode, crate::app_config::AppType::OpenClaw, crate::app_config::AppType::Hermes, @@ -1740,16 +1751,25 @@ pub(crate) fn remove_tray_icon_before_exit(app_handle: &tauri::AppHandle) { /// /// 检查 `proxy_config.enabled` 字段,如果有任一应用的状态为 `true`, /// 则自动启动代理服务并接管对应应用的 Live 配置。 -async fn restore_proxy_state_on_startup(state: &store::AppState) { - // 收集需要恢复接管的应用列表(从 proxy_config.enabled 读取) - let mut apps_to_restore = Vec::new(); - for app_type in ["claude", "codex", "gemini"] { - if let Ok(config) = state.db.get_proxy_config_for_app(app_type).await { - if config.enabled { - apps_to_restore.push(app_type); - } +const PROXY_STARTUP_APP_TYPES: [&str; 4] = ["claude", "codex", "gemini", "grokbuild"]; + +async fn enabled_proxy_apps_on_startup(db: &database::Database) -> Vec<&'static str> { + let mut apps = Vec::new(); + for app_type in PROXY_STARTUP_APP_TYPES { + if db + .get_proxy_config_for_app(app_type) + .await + .is_ok_and(|config| config.enabled) + { + apps.push(app_type); } } + apps +} + +async fn restore_proxy_state_on_startup(state: &store::AppState) { + // 收集需要恢复接管的应用列表(从 proxy_config.enabled 读取) + let apps_to_restore = enabled_proxy_apps_on_startup(&state.db).await; if apps_to_restore.is_empty() { log::debug!("启动时无需恢复代理状态"); @@ -2067,7 +2087,8 @@ pub fn restart_process(app_handle: &tauri::AppHandle) -> ! { #[cfg(test)] mod tests { - use super::{classify_exit_request, ExitRequestAction}; + use super::{classify_exit_request, enabled_proxy_apps_on_startup, ExitRequestAction}; + use crate::database::Database; #[test] fn no_code_keeps_app_alive_in_tray() { @@ -2093,4 +2114,21 @@ mod tests { ExitRequestAction::CleanupAndExit ); } + + #[tokio::test] + async fn startup_restore_includes_enabled_grokbuild_route() { + let db = Database::memory().expect("initialize database"); + let mut config = db + .get_proxy_config_for_app("grokbuild") + .await + .expect("read Grok Build proxy config"); + config.enabled = true; + db.update_proxy_config_for_app(config) + .await + .expect("enable Grok Build proxy config"); + + let apps = enabled_proxy_apps_on_startup(&db).await; + + assert_eq!(apps, vec!["grokbuild"]); + } } diff --git a/src-tauri/src/mcp/claude.rs b/src-tauri/src/mcp/claude.rs index e1971fb73..d55c2de4d 100644 --- a/src-tauri/src/mcp/claude.rs +++ b/src-tauri/src/mcp/claude.rs @@ -91,6 +91,7 @@ pub fn import_from_claude(config: &mut MultiAppConfig) -> Result Result claude: false, codex: true, gemini: false, + grokbuild: false, opencode: false, hermes: false, }, @@ -556,7 +557,7 @@ fn json_value_to_toml_item(value: &Value, field_name: &str) -> Option Result { +pub(super) fn json_server_to_toml_table(spec: &Value) -> Result { use toml_edit::{Array, Item, Table}; let mut t = Table::new(); diff --git a/src-tauri/src/mcp/gemini.rs b/src-tauri/src/mcp/gemini.rs index 73c2fc840..7b9873037 100644 --- a/src-tauri/src/mcp/gemini.rs +++ b/src-tauri/src/mcp/gemini.rs @@ -87,6 +87,7 @@ pub fn import_from_gemini(config: &mut MultiAppConfig) -> Result bool { + crate::grok_config::get_grok_config_dir().exists() +} + +fn read_config_text() -> Result { + let path = crate::grok_config::get_grok_config_path(); + if !path.exists() { + return Ok(String::new()); + } + std::fs::read_to_string(&path).map_err(|e| AppError::io(&path, e)) +} + +fn json_server_to_grokbuild_toml_table(server_spec: &Value) -> Result { + let mut table = json_server_to_toml_table(server_spec)?; + // Grok infers transport from `command` or `url` and uses `headers`, while + // Codex writes an explicit `type` plus `http_headers`. + table.remove("type"); + if let Some(headers) = table.remove("http_headers") { + table.insert("headers", headers); + } + Ok(table) +} + +fn toml_server_to_json(entry: &toml::value::Table) -> Value { + fn convert(value: &toml::Value) -> Option { + match value { + toml::Value::String(value) => Some(json!(value)), + toml::Value::Integer(value) => Some(json!(value)), + toml::Value::Float(value) => Some(json!(value)), + toml::Value::Boolean(value) => Some(json!(value)), + toml::Value::Datetime(value) => Some(json!(value.to_string())), + toml::Value::Array(values) => Some(Value::Array( + values.iter().filter_map(convert).collect::>(), + )), + toml::Value::Table(values) => Some(Value::Object( + values + .iter() + .filter_map(|(key, value)| convert(value).map(|value| (key.clone(), value))) + .collect(), + )), + } + } + + let mut spec = serde_json::Map::new(); + for (key, value) in entry { + let output_key = if key == "http_headers" { + "headers" + } else { + key + }; + if let Some(value) = convert(value) { + spec.insert(output_key.to_string(), value); + } + } + let default_type = if spec.contains_key("url") { + "http" + } else { + "stdio" + }; + spec.entry("type".to_string()) + .or_insert_with(|| json!(default_type)); + Value::Object(spec) +} + +pub fn import_from_grokbuild(config: &mut MultiAppConfig) -> Result { + let text = read_config_text()?; + if text.trim().is_empty() { + return Ok(0); + } + let root: toml::Table = toml::from_str(&text) + .map_err(|e| AppError::McpValidation(format!("解析 ~/.grok/config.toml 失败: {e}")))?; + let Some(entries) = root.get("mcp_servers").and_then(toml::Value::as_table) else { + return Ok(0); + }; + + let servers = config + .mcp + .servers + .get_or_insert_with(std::collections::HashMap::new); + let mut changed = 0; + for (id, entry) in entries { + let Some(entry) = entry.as_table() else { + continue; + }; + let spec = toml_server_to_json(entry); + if let Err(error) = validate_server_spec(&spec) { + log::warn!("跳过无效 Grok Build MCP 项 '{id}': {error}"); + continue; + } + + if let Some(existing) = servers.get_mut(id) { + if !existing.apps.grokbuild { + existing.apps.grokbuild = true; + changed += 1; + } + } else { + servers.insert( + id.clone(), + McpServer { + id: id.clone(), + name: id.clone(), + server: spec, + apps: McpApps { + grokbuild: true, + ..Default::default() + }, + description: None, + homepage: None, + docs: None, + tags: Vec::new(), + }, + ); + changed += 1; + } + } + Ok(changed) +} + +pub fn sync_single_server_to_grokbuild( + _config: &MultiAppConfig, + id: &str, + server_spec: &Value, +) -> Result<(), AppError> { + if !should_sync_grokbuild_mcp() { + return Ok(()); + } + use toml_edit::Item; + + let path = crate::grok_config::get_grok_config_path(); + let text = read_config_text()?; + let mut doc = if text.trim().is_empty() { + toml_edit::DocumentMut::new() + } else { + text.parse::().map_err(|e| { + AppError::McpValidation(format!("解析 Grok Build config.toml 失败: {e}")) + })? + }; + if !doc.contains_key("mcp_servers") { + doc["mcp_servers"] = toml_edit::table(); + } + doc["mcp_servers"][id] = Item::Table(json_server_to_grokbuild_toml_table(server_spec)?); + crate::config::write_text_file(&path, &doc.to_string()) +} + +pub fn remove_server_from_grokbuild(id: &str) -> Result<(), AppError> { + if !should_sync_grokbuild_mcp() { + return Ok(()); + } + let path = crate::grok_config::get_grok_config_path(); + if !path.exists() { + return Ok(()); + } + let text = read_config_text()?; + let mut doc = match text.parse::() { + Ok(doc) => doc, + Err(error) => { + log::warn!("解析 Grok Build config.toml 失败: {error},跳过删除操作"); + return Ok(()); + } + }; + if let Some(servers) = doc + .get_mut("mcp_servers") + .and_then(toml_edit::Item::as_table_mut) + { + servers.remove(id); + } + crate::config::write_text_file(&path, &doc.to_string()) +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn converts_http_headers_to_unified_headers() { + let entry: toml::value::Table = toml::from_str( + r#"type = "http" +url = "https://example.com/mcp" +http_headers = { Authorization = "Bearer token" } +"#, + ) + .expect("parse table"); + let spec = toml_server_to_json(&entry); + assert_eq!(spec["type"], "http"); + assert_eq!(spec["headers"]["Authorization"], "Bearer token"); + } + + #[test] + fn writes_grokbuild_remote_server_without_codex_only_fields() { + let table = json_server_to_grokbuild_toml_table(&json!({ + "type": "http", + "url": "https://example.com/mcp", + "headers": { "Authorization": "Bearer token" } + })) + .expect("convert server"); + + assert!(!table.contains_key("type")); + assert!(!table.contains_key("http_headers")); + assert_eq!( + table + .get("headers") + .and_then(toml_edit::Item::as_table) + .and_then(|headers| headers.get("Authorization")) + .and_then(toml_edit::Item::as_str), + Some("Bearer token") + ); + } +} diff --git a/src-tauri/src/mcp/hermes.rs b/src-tauri/src/mcp/hermes.rs index 612a10973..24683cb41 100644 --- a/src-tauri/src/mcp/hermes.rs +++ b/src-tauri/src/mcp/hermes.rs @@ -315,6 +315,7 @@ pub fn import_from_hermes(config: &mut MultiAppConfig) -> Result Result Result { if matches!(app, AppType::ClaudeDesktop) { return Err(AppError::localized( - "claude_desktop.prompts_unsupported", - "Claude Desktop 暂不支持 Prompts", - "Claude Desktop does not support Prompts", + "app.prompts_unsupported", + "当前应用暂不支持 Prompts", + "This app does not support Prompts", )); } @@ -22,6 +22,7 @@ pub fn prompt_file_path(app: &AppType) -> Result { AppType::Claude => get_base_dir_with_fallback(get_claude_settings_path(), ".claude")?, AppType::Codex => get_base_dir_with_fallback(get_codex_auth_path(), ".codex")?, AppType::Gemini => get_gemini_dir(), + AppType::GrokBuild => crate::grok_config::get_grok_config_dir(), AppType::OpenCode => get_opencode_dir(), AppType::OpenClaw => get_openclaw_dir(), AppType::Hermes => crate::hermes_config::get_hermes_dir(), @@ -32,7 +33,7 @@ pub fn prompt_file_path(app: &AppType) -> Result { AppType::Claude => "CLAUDE.md", AppType::Codex => "AGENTS.md", AppType::Gemini => "GEMINI.md", - AppType::OpenCode | AppType::OpenClaw | AppType::Hermes => "AGENTS.md", + AppType::GrokBuild | AppType::OpenCode | AppType::OpenClaw | AppType::Hermes => "AGENTS.md", AppType::ClaudeDesktop => unreachable!("handled above"), }; diff --git a/src-tauri/src/provider.rs b/src-tauri/src/provider.rs index 4ce3c37d8..6c1c33a34 100644 --- a/src-tauri/src/provider.rs +++ b/src-tauri/src/provider.rs @@ -164,6 +164,11 @@ impl Provider { let api_key = first_non_empty(env, &["GEMINI_API_KEY", "GOOGLE_API_KEY"]); (base_url, api_key) } + AppType::GrokBuild => settings + .get("config") + .and_then(Value::as_str) + .and_then(crate::grok_config::extract_credentials) + .unwrap_or_default(), // Hermes (config.yaml) flattens credentials at the top level, snake_case. AppType::Hermes => ( str_at(settings.get("base_url")), diff --git a/src-tauri/src/proxy/forwarder.rs b/src-tauri/src/proxy/forwarder.rs index 1df83e2d7..b0b2547a7 100644 --- a/src-tauri/src/proxy/forwarder.rs +++ b/src-tauri/src/proxy/forwarder.rs @@ -1142,9 +1142,9 @@ impl RequestForwarder { // Codex upstream conversion mode — computed early because the [1m]-suffix strip // below must be skipped on the Anthropic path (the marker has to survive to // catalog matching and to the transform's own strip+beta detection). - let codex_responses_to_chat = matches!(app_type, AppType::Codex) + let codex_responses_to_chat = matches!(app_type, AppType::Codex | AppType::GrokBuild) && super::providers::should_convert_codex_responses_to_chat(provider, endpoint); - let codex_responses_to_anthropic = matches!(app_type, AppType::Codex) + let codex_responses_to_anthropic = matches!(app_type, AppType::Codex | AppType::GrokBuild) && super::providers::should_convert_codex_responses_to_anthropic(provider, endpoint); let codex_official_auth_passthrough = matches!(app_type, AppType::Codex) && super::providers::is_codex_official_provider(provider); @@ -1168,6 +1168,13 @@ impl RequestForwarder { // 与 CCH 对齐:请求前不做 thinking 主动改写(仅保留兼容入口) let mut mapped_body = normalize_thinking_type(mapped_body); + // Grok Build exposes a stable client-side model profile in config.toml. + // Route requests to the provider's real upstream model before applying + // the optional Responses -> Chat/Anthropic bridge. + if matches!(app_type, AppType::GrokBuild) { + super::providers::apply_codex_upstream_model(provider, &mut mapped_body); + } + if is_copilot { mapped_body = super::providers::copilot_model_map::apply_copilot_model_normalization(mapped_body); @@ -1511,7 +1518,7 @@ impl RequestForwarder { mapped_body }; - if matches!(app_type, AppType::Codex) { + if matches!(app_type, AppType::Codex | AppType::GrokBuild) { self.apply_media_prevention(&mut request_body, provider); } diff --git a/src-tauri/src/proxy/handlers.rs b/src-tauri/src/proxy/handlers.rs index c73e57521..4c0b80881 100644 --- a/src-tauri/src/proxy/handlers.rs +++ b/src-tauri/src/proxy/handlers.rs @@ -758,6 +758,30 @@ pub async fn handle_chat_completions( pub async fn handle_responses( State(state): State, request: axum::extract::Request, +) -> Result { + handle_responses_for_app(state, request, AppType::Codex, "Codex", "codex").await +} + +pub async fn handle_grokbuild_responses( + State(state): State, + request: axum::extract::Request, +) -> Result { + handle_responses_for_app( + state, + request, + AppType::GrokBuild, + "Grok Build", + "grokbuild", + ) + .await +} + +async fn handle_responses_for_app( + state: ProxyState, + request: axum::extract::Request, + app_type: AppType, + tag: &'static str, + app_type_str: &'static str, ) -> Result { let (parts, req_body) = request.into_parts(); let method = parts.method.clone(); @@ -774,7 +798,7 @@ pub async fn handle_responses( .map_err(|e| ProxyError::Internal(format!("Failed to parse request body: {e}")))?; let mut ctx = - RequestContext::new(&state, &body, &headers, AppType::Codex, "Codex", "codex").await?; + RequestContext::new(&state, &body, &headers, app_type.clone(), tag, app_type_str).await?; let endpoint = endpoint_with_query(&uri, "/responses"); let is_stream = body @@ -786,7 +810,7 @@ pub async fn handle_responses( let forwarder = ctx.create_forwarder(&state); let mut result = match forwarder .forward_with_retry( - &AppType::Codex, + &app_type, method, &endpoint, body, @@ -849,6 +873,30 @@ pub async fn handle_responses( pub async fn handle_responses_compact( State(state): State, request: axum::extract::Request, +) -> Result { + handle_responses_compact_for_app(state, request, AppType::Codex, "Codex", "codex").await +} + +pub async fn handle_grokbuild_responses_compact( + State(state): State, + request: axum::extract::Request, +) -> Result { + handle_responses_compact_for_app( + state, + request, + AppType::GrokBuild, + "Grok Build", + "grokbuild", + ) + .await +} + +async fn handle_responses_compact_for_app( + state: ProxyState, + request: axum::extract::Request, + app_type: AppType, + tag: &'static str, + app_type_str: &'static str, ) -> Result { let (parts, req_body) = request.into_parts(); let method = parts.method.clone(); @@ -865,7 +913,7 @@ pub async fn handle_responses_compact( .map_err(|e| ProxyError::Internal(format!("Failed to parse request body: {e}")))?; let mut ctx = - RequestContext::new(&state, &body, &headers, AppType::Codex, "Codex", "codex").await?; + RequestContext::new(&state, &body, &headers, app_type.clone(), tag, app_type_str).await?; let endpoint = endpoint_with_query(&uri, "/responses/compact"); let is_stream = body @@ -877,7 +925,7 @@ pub async fn handle_responses_compact( let forwarder = ctx.create_forwarder(&state); let mut result = match forwarder .forward_with_retry( - &AppType::Codex, + &app_type, method, &endpoint, body, diff --git a/src-tauri/src/proxy/providers/codex.rs b/src-tauri/src/proxy/providers/codex.rs index 3fc42eb20..b68a94df1 100644 --- a/src-tauri/src/proxy/providers/codex.rs +++ b/src-tauri/src/proxy/providers/codex.rs @@ -250,7 +250,11 @@ pub fn codex_provider_upstream_model(provider: &Provider) -> Option { .settings_config .get("config") .and_then(|v| v.as_str()) - .and_then(extract_codex_model_from_toml) + .and_then(|config| { + crate::grok_config::extract_model_config(config) + .map(|model| model.model) + .or_else(|| extract_codex_model_from_toml(config)) + }) }) } @@ -621,6 +625,9 @@ impl CodexAdapter { } if let Some(config_str) = config.as_str() { + if let Some((_, key)) = crate::grok_config::extract_credentials(config_str) { + return Some(key); + } if let Some(key) = crate::codex_config::extract_codex_experimental_bearer_token(config_str) { @@ -675,6 +682,9 @@ impl ProviderAdapter for CodexAdapter { // 尝试解析 TOML 字符串格式 if let Some(config_str) = config.as_str() { + if let Some(url) = crate::grok_config::extract_base_url(config_str) { + return Ok(url.trim_end_matches('/').to_string()); + } if let Some(start) = config_str.find("base_url = \"") { let rest = &config_str[start + 12..]; if let Some(end) = rest.find('"') { @@ -796,6 +806,37 @@ mod tests { } } + #[test] + fn grok_build_toml_exposes_upstream_credentials_and_model() { + let adapter = CodexAdapter::new(); + let provider = create_provider(json!({ + "config": r#" +[models] +default = "grok-4.5" + +[model."grok-4.5"] +model = "upstream-grok-model" +base_url = "https://relay.example.com/v1/" +name = "Example Relay" +api_key = "grok-secret" +api_backend = "responses" +context_window = 500000 +"# + })); + + assert_eq!( + adapter.extract_base_url(&provider).unwrap(), + "https://relay.example.com/v1" + ); + let auth = adapter.extract_auth(&provider).unwrap(); + assert_eq!(auth.api_key, "grok-secret"); + assert_eq!(auth.strategy, AuthStrategy::Bearer); + assert_eq!( + codex_provider_upstream_model(&provider).as_deref(), + Some("upstream-grok-model") + ); + } + #[test] fn official_provider_uses_fixed_chatgpt_backend_without_stored_key() { let mut provider = create_provider(json!({ "auth": {}, "config": "" })); diff --git a/src-tauri/src/proxy/providers/mod.rs b/src-tauri/src/proxy/providers/mod.rs index c70d36764..1aeec596f 100644 --- a/src-tauri/src/proxy/providers/mod.rs +++ b/src-tauri/src/proxy/providers/mod.rs @@ -192,10 +192,8 @@ impl ProviderType { } ProviderType::Gemini } - AppType::OpenCode | AppType::OpenClaw | AppType::Hermes => { - // These apps don't support proxy, fallback to Codex-like type - ProviderType::Codex - } + AppType::GrokBuild => ProviderType::Codex, + AppType::OpenCode | AppType::OpenClaw | AppType::Hermes => ProviderType::Codex, } } @@ -246,10 +244,8 @@ pub fn get_adapter(app_type: &AppType) -> Box { AppType::Claude | AppType::ClaudeDesktop => Box::new(ClaudeAdapter::new()), AppType::Codex => Box::new(CodexAdapter::new()), AppType::Gemini => Box::new(GeminiAdapter::new()), - AppType::OpenCode | AppType::OpenClaw | AppType::Hermes => { - // These apps don't support proxy, fallback to Codex adapter - Box::new(CodexAdapter::new()) - } + AppType::GrokBuild => Box::new(CodexAdapter::new()), + AppType::OpenCode | AppType::OpenClaw | AppType::Hermes => Box::new(CodexAdapter::new()), } } diff --git a/src-tauri/src/proxy/server.rs b/src-tauri/src/proxy/server.rs index 6ef02bc81..1d9bdc37c 100644 --- a/src-tauri/src/proxy/server.rs +++ b/src-tauri/src/proxy/server.rs @@ -327,6 +327,12 @@ impl ProxyServer { .route("/v1/responses", post(handlers::handle_responses)) .route("/v1/v1/responses", post(handlers::handle_responses)) .route("/codex/v1/responses", post(handlers::handle_responses)) + // Grok Build uses the Responses protocol but has an independent + // provider namespace and failover queue. + .route( + "/grokbuild/v1/responses", + post(handlers::handle_grokbuild_responses), + ) // OpenAI Responses Compact API (Codex CLI 远程压缩,透传) .route( "/responses/compact", @@ -344,6 +350,10 @@ impl ProxyServer { "/codex/v1/responses/compact", post(handlers::handle_responses_compact), ) + .route( + "/grokbuild/v1/responses/compact", + post(handlers::handle_grokbuild_responses_compact), + ) // Gemini API (支持带前缀和不带前缀) // // 用 `any(..)` 覆盖所有 HTTP 方法:除了 POST `:generateContent` / diff --git a/src-tauri/src/proxy/types.rs b/src-tauri/src/proxy/types.rs index d309000f6..933db3c53 100644 --- a/src-tauri/src/proxy/types.rs +++ b/src-tauri/src/proxy/types.rs @@ -113,6 +113,7 @@ pub struct ProxyTakeoverStatus { pub claude: bool, pub codex: bool, pub gemini: bool, + pub grokbuild: bool, pub opencode: bool, pub openclaw: bool, } diff --git a/src-tauri/src/proxy/usage/calculator.rs b/src-tauri/src/proxy/usage/calculator.rs index db8def267..c25671310 100644 --- a/src-tauri/src/proxy/usage/calculator.rs +++ b/src-tauri/src/proxy/usage/calculator.rs @@ -59,7 +59,7 @@ impl CostCalculator { pricing: &ModelPricing, cost_multiplier: Decimal, ) -> CostBreakdown { - let input_includes_cache_read = matches!(app_type, "codex" | "gemini"); + let input_includes_cache_read = matches!(app_type, "codex" | "gemini" | "grokbuild"); Self::calculate_with_cache_semantics( usage, pricing, @@ -211,6 +211,25 @@ mod tests { assert_eq!(cost.total_cost, Decimal::from_str("0.010035").unwrap()); } + #[test] + fn grokbuild_does_not_double_bill_cached_input() { + let usage = TokenUsage { + input_tokens: 1000, + output_tokens: 0, + cache_read_tokens: 600, + cache_creation_tokens: 0, + model: None, + message_id: None, + }; + let pricing = ModelPricing::from_strings("10", "0", "1", "0").unwrap(); + + let cost = CostCalculator::calculate_for_app("grokbuild", &usage, &pricing, Decimal::ONE); + + assert_eq!(cost.input_cost, Decimal::from_str("0.004").unwrap()); + assert_eq!(cost.cache_read_cost, Decimal::from_str("0.0006").unwrap()); + assert_eq!(cost.total_cost, Decimal::from_str("0.0046").unwrap()); + } + #[test] fn test_cost_multiplier() { let usage = TokenUsage { diff --git a/src-tauri/src/proxy/usage/logger.rs b/src-tauri/src/proxy/usage/logger.rs index 072dd5ccf..549d81cf4 100644 --- a/src-tauri/src/proxy/usage/logger.rs +++ b/src-tauri/src/proxy/usage/logger.rs @@ -71,11 +71,12 @@ impl<'a> UsageLogger<'a> { }; let created_at = chrono::Utc::now().timestamp(); - let input_token_semantics = if matches!(log.app_type.as_str(), "codex" | "gemini") { - INPUT_TOKEN_SEMANTICS_TOTAL - } else { - INPUT_TOKEN_SEMANTICS_FRESH - }; + let input_token_semantics = + if matches!(log.app_type.as_str(), "codex" | "gemini" | "grokbuild") { + INPUT_TOKEN_SEMANTICS_TOTAL + } else { + INPUT_TOKEN_SEMANTICS_FRESH + }; conn.execute( "INSERT OR REPLACE INTO proxy_request_logs ( @@ -459,4 +460,39 @@ mod tests { assert_eq!(error, Some("Internal Server Error".to_string())); Ok(()) } + + #[test] + fn grokbuild_logs_total_input_token_semantics() -> Result<(), AppError> { + let db = Database::memory()?; + let logger = UsageLogger::new(&db); + let log = RequestLog { + request_id: "grok-semantics".to_string(), + provider_id: "grok-provider".to_string(), + app_type: "grokbuild".to_string(), + model: "grok-4.5".to_string(), + request_model: "grok-4.5".to_string(), + pricing_model: String::new(), + usage: TokenUsage::default(), + cost: None, + latency_ms: 1, + first_token_ms: None, + status_code: 200, + error_message: None, + session_id: None, + provider_type: Some("grokbuild".to_string()), + is_streaming: false, + cost_multiplier: "1".to_string(), + }; + + logger.log_request(&log)?; + + let conn = crate::database::lock_conn!(db.conn); + let semantics: i64 = conn.query_row( + "SELECT input_token_semantics FROM proxy_request_logs WHERE request_id = 'grok-semantics'", + [], + |row| row.get(0), + )?; + assert_eq!(semantics, INPUT_TOKEN_SEMANTICS_TOTAL); + Ok(()) + } } diff --git a/src-tauri/src/services/config.rs b/src-tauri/src/services/config.rs index e37215117..7d465810a 100644 --- a/src-tauri/src/services/config.rs +++ b/src-tauri/src/services/config.rs @@ -88,6 +88,7 @@ impl ConfigService { Self::sync_current_provider_for_app(config, &AppType::Claude)?; Self::sync_current_provider_for_app(config, &AppType::Codex)?; Self::sync_current_provider_for_app(config, &AppType::Gemini)?; + Self::sync_current_provider_for_app(config, &AppType::GrokBuild)?; Ok(()) } @@ -125,6 +126,7 @@ impl ConfigService { // Claude Desktop 3P profiles are managed by claude_desktop_config. } AppType::Gemini => Self::sync_gemini_live(config, ¤t_id, &provider)?, + AppType::GrokBuild => crate::grok_config::write_grok_provider_live(&provider)?, AppType::OpenCode => { // OpenCode uses additive mode, no live sync needed // OpenCode providers are managed directly in the config file diff --git a/src-tauri/src/services/mcp.rs b/src-tauri/src/services/mcp.rs index db330e5f8..b57591b82 100644 --- a/src-tauri/src/services/mcp.rs +++ b/src-tauri/src/services/mcp.rs @@ -37,6 +37,9 @@ impl McpService { if prev_apps.gemini && !server.apps.gemini { Self::remove_server_from_app(state, &server.id, &AppType::Gemini)?; } + if prev_apps.grokbuild && !server.apps.grokbuild { + Self::remove_server_from_app(state, &server.id, &AppType::GrokBuild)?; + } if prev_apps.opencode && !server.apps.opencode { Self::remove_server_from_app(state, &server.id, &AppType::OpenCode)?; } @@ -122,6 +125,13 @@ impl McpService { AppType::Gemini => { mcp::sync_single_server_to_gemini(&Default::default(), &server.id, &server.server)?; } + AppType::GrokBuild => { + mcp::sync_single_server_to_grokbuild( + &Default::default(), + &server.id, + &server.server, + )?; + } AppType::OpenCode => { mcp::sync_single_server_to_opencode( &Default::default(), @@ -162,6 +172,7 @@ impl McpService { } AppType::Codex => mcp::remove_server_from_codex(id)?, AppType::Gemini => mcp::remove_server_from_gemini(id)?, + AppType::GrokBuild => mcp::remove_server_from_grokbuild(id)?, AppType::OpenCode => { mcp::remove_server_from_opencode(id)?; } @@ -393,6 +404,32 @@ impl McpService { Ok(new_count) } + /// 从 Grok Build 的 `[mcp_servers]` 导入 MCP。 + pub fn import_from_grokbuild(state: &AppState) -> Result { + let mut temp_config = crate::app_config::MultiAppConfig::default(); + let count = crate::mcp::import_from_grokbuild(&mut temp_config)?; + let mut new_count = 0; + + if count > 0 { + if let Some(servers) = &temp_config.mcp.servers { + let mut existing = state.db.get_all_mcp_servers()?; + for server in servers.values() { + let to_save = if let Some(existing_server) = existing.get(&server.id) { + let mut merged = existing_server.clone(); + merged.apps.grokbuild = true; + merged + } else { + new_count += 1; + server.clone() + }; + state.db.save_mcp_server(&to_save)?; + existing.insert(to_save.id.clone(), to_save); + } + } + } + Ok(new_count) + } + /// 从 OpenCode 导入 MCP(v3.9.2+ 新增) pub fn import_from_opencode(state: &AppState) -> Result { // 创建临时 MultiAppConfig 用于导入 @@ -479,10 +516,11 @@ impl McpService { let mut total = 0; let mut failures: Vec = Vec::new(); - let results: [(&str, Result); 5] = [ + let results: [(&str, Result); 6] = [ ("claude", Self::import_from_claude(state)), ("codex", Self::import_from_codex(state)), ("gemini", Self::import_from_gemini(state)), + ("grokbuild", Self::import_from_grokbuild(state)), ("opencode", Self::import_from_opencode(state)), ("hermes", Self::import_from_hermes(state)), ]; diff --git a/src-tauri/src/services/provider/live.rs b/src-tauri/src/services/provider/live.rs index 1aa35a426..92b8b387c 100644 --- a/src-tauri/src/services/provider/live.rs +++ b/src-tauri/src/services/provider/live.rs @@ -523,7 +523,11 @@ fn settings_contain_common_config(app_type: &AppType, settings: &Value, snippet: } _ => false, }, - AppType::OpenCode | AppType::OpenClaw | AppType::Hermes | AppType::ClaudeDesktop => false, + AppType::GrokBuild + | AppType::OpenCode + | AppType::OpenClaw + | AppType::Hermes + | AppType::ClaudeDesktop => false, } } @@ -593,9 +597,11 @@ pub(crate) fn remove_common_config_from_settings( } Ok(result) } - AppType::OpenCode | AppType::OpenClaw | AppType::Hermes | AppType::ClaudeDesktop => { - Ok(settings.clone()) - } + AppType::GrokBuild + | AppType::OpenCode + | AppType::OpenClaw + | AppType::Hermes + | AppType::ClaudeDesktop => Ok(settings.clone()), } } @@ -650,9 +656,11 @@ fn apply_common_config_to_settings( } Ok(result) } - AppType::OpenCode | AppType::OpenClaw | AppType::Hermes | AppType::ClaudeDesktop => { - Ok(settings.clone()) - } + AppType::GrokBuild + | AppType::OpenCode + | AppType::OpenClaw + | AppType::Hermes + | AppType::ClaudeDesktop => Ok(settings.clone()), } } @@ -825,6 +833,16 @@ fn restore_live_settings_for_provider_backfill( strip_injected_kimi_for_coding_context_defaults(&mut settings, provider); return settings; } + if matches!(app_type, AppType::GrokBuild) { + let mut settings = live_settings; + if let Err(err) = crate::grok_config::strip_grok_mcp_servers_from_settings(&mut settings) { + log::warn!( + "Failed to strip Grok Build mcp_servers while backfilling '{}': {err}", + provider.id + ); + } + return settings; + } if !matches!(app_type, AppType::Codex) { return live_settings; } @@ -1037,6 +1055,9 @@ pub(crate) fn write_live_snapshot(app_type: &AppType, provider: &Provider) -> Re // Delegate to write_gemini_live which handles env file writing correctly write_gemini_live(provider)?; } + AppType::GrokBuild => { + crate::grok_config::write_grok_provider_live(provider)?; + } AppType::OpenCode => { // OpenCode uses additive mode - write provider to config use crate::opencode_config; @@ -1367,6 +1388,7 @@ pub fn read_live_settings(app_type: AppType) -> Result { let config = read_opencode_config()?; Ok(config) } + AppType::GrokBuild => crate::grok_config::read_grok_live_settings(), AppType::OpenClaw => { use crate::openclaw_config::{get_openclaw_config_path, read_openclaw_config}; @@ -1435,6 +1457,11 @@ pub fn import_default_config(state: &AppState, app_type: AppType) -> Result crate::codex_config::read_codex_live_settings()?, + AppType::GrokBuild => { + let mut settings = crate::grok_config::read_grok_live_settings()?; + crate::grok_config::strip_grok_mcp_servers_from_settings(&mut settings)?; + settings + } AppType::Claude => { let settings_path = get_claude_settings_path(); if !settings_path.exists() { @@ -2536,4 +2563,32 @@ base_url = "https://a.example/v1" "non-MCP content must survive the strip" ); } + + #[test] + fn grok_switch_backfill_strips_synced_mcp_servers() { + let provider = Provider::with_id( + "grok".to_string(), + "Grok".to_string(), + json!({ + "config": "[models]\ndefault = \"grok-4.5\"\n\n[model.\"grok-4.5\"]\nmodel = \"grok-4.5\"\nbase_url = \"https://example.com/v1\"\nname = \"Example\"\napi_key = \"secret\"\napi_backend = \"responses\"\ncontext_window = 500000\n" + }), + None, + ); + let live_settings = json!({ + "config": "[models]\ndefault = \"grok-4.5\"\n\n[model.\"grok-4.5\"]\nmodel = \"grok-4.5\"\nbase_url = \"https://example.com/v1\"\nname = \"Example\"\napi_key = \"secret\"\napi_backend = \"responses\"\ncontext_window = 500000\n\n[mcp_servers.echo]\ncommand = \"echo\"\n" + }); + + let result = restore_live_settings_for_provider_backfill( + &AppType::GrokBuild, + &provider, + live_settings, + ); + let config_text = result + .get("config") + .and_then(Value::as_str) + .expect("config text"); + + assert!(!config_text.contains("mcp_servers")); + assert!(config_text.contains("model = \"grok-4.5\"")); + } } diff --git a/src-tauri/src/services/provider/mod.rs b/src-tauri/src/services/provider/mod.rs index 98398734e..010c697de 100644 --- a/src-tauri/src/services/provider/mod.rs +++ b/src-tauri/src/services/provider/mod.rs @@ -2527,14 +2527,16 @@ impl ProviderService { // restore backup. Serialize them per app, then decide from the locked // current state so a just-started takeover cannot be overwritten by a // normal live write. - let _switch_guard = - if matches!(app_type, AppType::Claude | AppType::Codex | AppType::Gemini) { - Some(futures::executor::block_on( - state.proxy_service.lock_switch_for_app(app_type.as_str()), - )) - } else { - None - }; + let _switch_guard = if matches!( + app_type, + AppType::Claude | AppType::Codex | AppType::Gemini | AppType::GrokBuild + ) { + Some(futures::executor::block_on( + state.proxy_service.lock_switch_for_app(app_type.as_str()), + )) + } else { + None + }; // Backup or live placeholders mean the live file is owned by proxy // takeover, even if the proxy server is temporarily stopped or is in the @@ -2993,6 +2995,7 @@ impl ProviderService { AppType::ClaudeDesktop => Ok(String::new()), AppType::Codex => Self::extract_codex_common_config(&provider.settings_config), AppType::Gemini => Self::extract_gemini_common_config(&provider.settings_config), + AppType::GrokBuild => Ok(String::new()), AppType::OpenCode => Self::extract_opencode_common_config(&provider.settings_config), AppType::OpenClaw => Self::extract_openclaw_common_config(&provider.settings_config), AppType::Hermes => Ok(String::new()), // Hermes doesn't use common config snippets @@ -3009,6 +3012,7 @@ impl ProviderService { AppType::ClaudeDesktop => Ok(String::new()), AppType::Codex => Self::extract_codex_common_config(settings_config), AppType::Gemini => Self::extract_gemini_common_config(settings_config), + AppType::GrokBuild => Ok(String::new()), AppType::OpenCode => Self::extract_opencode_common_config(settings_config), AppType::OpenClaw => Self::extract_openclaw_common_config(settings_config), AppType::Hermes => Ok(String::new()), // Hermes doesn't use common config snippets @@ -3479,6 +3483,26 @@ impl ProviderService { use crate::gemini_config::validate_gemini_settings; validate_gemini_settings(&provider.settings_config)? } + AppType::GrokBuild => { + let settings = provider.settings_config.as_object().ok_or_else(|| { + AppError::localized( + "provider.grokbuild.settings.not_object", + "Grok Build 配置必须是 JSON 对象", + "Grok Build configuration must be a JSON object", + ) + })?; + let config = settings + .get("config") + .and_then(Value::as_str) + .ok_or_else(|| { + AppError::localized( + "provider.grokbuild.config.missing", + "Grok Build 配置缺少 config 字段", + "Grok Build configuration is missing the config field", + ) + })?; + crate::grok_config::validate_config_toml(config)?; + } AppType::OpenCode => { // OpenCode uses a different config structure: { npm, options, models } // Basic validation - must be an object @@ -3575,6 +3599,28 @@ impl ProviderService { Ok((api_key, base_url)) } + AppType::GrokBuild => { + let config_toml = provider + .settings_config + .get("config") + .and_then(Value::as_str) + .ok_or_else(|| { + AppError::localized( + "provider.grokbuild.config.missing", + "Grok Build 配置缺少 config 字段", + "Grok Build configuration is missing the config field", + ) + })?; + let (base_url, api_key) = crate::grok_config::extract_credentials(config_toml) + .ok_or_else(|| { + AppError::localized( + "provider.grokbuild.credentials.missing", + "Grok Build 配置缺少 Base URL 或 API Key", + "Grok Build configuration is missing the base URL or API key", + ) + })?; + Ok((api_key, base_url)) + } AppType::ClaudeDesktop => { let credentials = crate::claude_desktop_config::direct_gateway_credentials(provider)?; diff --git a/src-tauri/src/services/proxy.rs b/src-tauri/src/services/proxy.rs index 263809609..bdbe7aa78 100644 --- a/src-tauri/src/services/proxy.rs +++ b/src-tauri/src/services/proxy.rs @@ -367,7 +367,7 @@ impl ProxyService { ) .map_err(|e| format!("构建 codex 有效配置失败: {e}"))?; if let Some(existing_live) = existing_live.as_ref() { - Self::preserve_codex_mcp_servers_from_existing_config( + Self::preserve_toml_mcp_servers_from_existing_config( &mut effective_settings, existing_live, )?; @@ -384,6 +384,29 @@ impl ProxyService { Ok(()) } + pub async fn sync_grok_live_from_provider_while_proxy_active( + &self, + provider: &Provider, + ) -> Result<(), String> { + let existing_live = self.read_grok_live().ok(); + let mut effective_settings = build_effective_settings_with_common_config( + self.db.as_ref(), + &AppType::GrokBuild, + provider, + ) + .map_err(|e| format!("构建 Grok Build 有效配置失败: {e}"))?; + if let Some(existing_live) = existing_live.as_ref() { + Self::preserve_toml_mcp_servers_from_existing_config( + &mut effective_settings, + existing_live, + )?; + } + let (proxy_url, _) = self.build_proxy_urls().await?; + let proxy_grok_base_url = format!("{}/grokbuild/v1", proxy_url.trim_end_matches('/')); + Self::apply_grok_takeover_fields(&mut effective_settings, &proxy_grok_base_url)?; + self.write_grok_live(&effective_settings) + } + fn get_current_provider_for_app(&self, app_type: &AppType) -> Result, String> { let Some(current_id) = crate::settings::get_effective_current_provider(&self.db, app_type) .map_err(|e| format!("获取 {app_type:?} 当前供应商失败: {e}"))? @@ -396,6 +419,82 @@ impl ProxyService { .map_err(|e| format!("读取 {app_type:?} 当前供应商失败: {e}")) } + async fn refresh_active_target_from_current_provider(&self, app_type: &AppType) { + let Ok(Some(provider)) = self.get_current_provider_for_app(app_type) else { + return; + }; + if let Some(server) = self.server.read().await.as_ref() { + server + .set_active_target(app_type.as_str(), &provider.id, &provider.name) + .await; + } + } + + async fn rollback_hot_switch_preparation( + &self, + app_type: &AppType, + previous_backup: Option<&LiveBackup>, + previous_provider_id: Option<&str>, + should_sync_backup: bool, + live_taken_over: bool, + previous_live_before_direct_write: Option<&Value>, + ) { + if !should_sync_backup { + return; + } + + let rollback_result = match previous_backup { + Some(backup) => { + self.db + .save_live_backup(app_type.as_str(), &backup.original_config) + .await + } + None => self.db.delete_live_backup(app_type.as_str()).await, + }; + if let Err(error) = rollback_result { + log::error!("{} 热切换失败后恢复原备份失败: {error}", app_type.as_str()); + } + + if let Some(previous_live) = previous_live_before_direct_write { + if let Err(error) = self.write_codex_live_verbatim(previous_live) { + log::error!( + "{} 热切换失败后恢复直接写入前的 Live 配置失败: {error}", + app_type.as_str() + ); + } + return; + } + + let Some(previous_provider_id) = previous_provider_id else { + return; + }; + let Ok(Some(previous_provider)) = self + .db + .get_provider_by_id(previous_provider_id, app_type.as_str()) + else { + return; + }; + + let live_result = if matches!(app_type, AppType::Claude) { + self.sync_claude_live_from_provider_while_proxy_active(&previous_provider) + .await + } else if live_taken_over && matches!(app_type, AppType::Codex) { + self.sync_codex_live_from_provider_while_proxy_active(&previous_provider) + .await + } else if live_taken_over && matches!(app_type, AppType::GrokBuild) { + self.sync_grok_live_from_provider_while_proxy_active(&previous_provider) + .await + } else { + Ok(()) + }; + if let Err(error) = live_result { + log::error!( + "{} 热切换失败后恢复原 Live 配置失败: {error}", + app_type.as_str() + ); + } + } + fn require_current_provider_for_app(&self, app_type: &AppType) -> Result { self.get_current_provider_for_app(app_type)? .ok_or_else(|| format!("{app_type:?} 当前供应商不存在,无法接管 Live 配置")) @@ -604,6 +703,12 @@ impl ProxyService { .await .map(|c| c.enabled) .unwrap_or(false); + let grokbuild_enabled = self + .db + .get_proxy_config_for_app("grokbuild") + .await + .map(|c| c.enabled) + .unwrap_or(false); // OpenCode and OpenClaw don't support proxy features, always return false let opencode_enabled = false; let openclaw_enabled = false; @@ -612,6 +717,7 @@ impl ProxyService { claude: claude_enabled, codex: codex_enabled, gemini: gemini_enabled, + grokbuild: grokbuild_enabled, opencode: opencode_enabled, openclaw: openclaw_enabled, }) @@ -661,6 +767,7 @@ impl ProxyService { // 只看占位符会把半接管/旧端口残留误判为可复用,导致开启接管后 // live 文件仍停留在普通供应商配置。 if has_backup && live_matches_current_proxy { + self.refresh_active_target_from_current_provider(&app).await; return Ok(()); } restore_existing_backup_before_takeover = has_backup; @@ -715,6 +822,8 @@ impl ProxyService { // 7) 兼容旧逻辑:写入 any-of 标志(失败不影响功能) let _ = self.db.set_live_takeover_active(true).await; + self.refresh_active_target_from_current_provider(&app).await; + // 8) Warn if the current provider is official (risk of account ban via proxy) if let Ok(Some(current_id)) = crate::settings::get_effective_current_provider(&self.db, &app) @@ -853,6 +962,7 @@ impl ProxyService { AppType::Claude => self.read_claude_live()?, AppType::Codex => self.read_codex_live()?, AppType::Gemini => self.read_gemini_live()?, + AppType::GrokBuild => self.read_grok_live()?, _ => return Err("该应用不支持代理功能".to_string()), }; @@ -1073,6 +1183,49 @@ impl ProxyService { } } } + AppType::GrokBuild => { + let provider_id = + crate::settings::get_effective_current_provider(&self.db, &AppType::GrokBuild) + .map_err(|e| format!("获取 Grok Build 当前供应商失败: {e}"))?; + + if let Some(provider_id) = provider_id { + if let Ok(Some(mut provider)) = + self.db.get_provider_by_id(&provider_id, "grokbuild") + { + let live_config_toml = live_config + .get("config") + .and_then(Value::as_str) + .unwrap_or_default(); + if let Some(token) = + crate::grok_config::extract_inline_api_key(live_config_toml) + { + if !token.is_empty() && token != PROXY_TOKEN_PLACEHOLDER { + if let Some(provider_config) = provider + .settings_config + .get("config") + .and_then(Value::as_str) + { + let updated = + crate::grok_config::update_api_key(provider_config, &token) + .map_err(|e| { + format!("更新 Grok Build API Key 失败: {e}") + })?; + provider.settings_config["config"] = json!(updated); + self.db + .update_provider_settings_config( + "grokbuild", + &provider_id, + &provider.settings_config, + ) + .map_err(|e| { + format!("同步 Grok Build Token 到数据库失败: {e}") + })?; + } + } + } + } + } + } _ => {} } @@ -1095,6 +1248,11 @@ impl ProxyService { .await?; } + if let Ok(live_config) = self.read_grok_live() { + self.sync_live_config_to_provider(&AppType::GrokBuild, &live_config) + .await?; + } + log::info!("Live 配置 Token 同步完成"); Ok(()) } @@ -1147,7 +1305,7 @@ impl ProxyService { .map_err(|e| format!("清除接管状态失败: {e}"))?; // 4. 清除所有应用的 enabled 状态(用户手动关闭,不需要下次自动恢复) - for app_type in ["claude", "codex", "gemini"] { + for app_type in ["claude", "codex", "gemini", "grokbuild"] { if let Ok(mut config) = self.db.get_proxy_config_for_app(app_type).await { if config.enabled { config.enabled = false; @@ -1258,6 +1416,20 @@ impl ProxyService { } } + // Grok Build + if let Ok(config) = self.read_grok_live() { + if Self::live_has_proxy_placeholder_for_app(&AppType::GrokBuild, &config) { + log::warn!("grokbuild Live 已被代理接管,不备份;下次 stop 会从 SSOT 重建 Live"); + } else { + let json_str = serde_json::to_string(&config) + .map_err(|e| format!("序列化 Grok Build 配置失败: {e}"))?; + self.db + .save_live_backup("grokbuild", &json_str) + .await + .map_err(|e| format!("备份 Grok Build 配置失败: {e}"))?; + } + } + log::info!("已备份所有应用的 Live 配置"); Ok(()) } @@ -1268,6 +1440,7 @@ impl ProxyService { AppType::Claude => ("claude", self.read_claude_live()?), AppType::Codex => ("codex", self.read_codex_live()?), AppType::Gemini => ("gemini", self.read_gemini_live()?), + AppType::GrokBuild => ("grokbuild", self.read_grok_live()?), _ => return Err("该应用不支持代理功能".to_string()), }; @@ -1329,6 +1502,21 @@ impl ProxyService { Ok((proxy_url, proxy_codex_base_url)) } + fn apply_grok_takeover_fields(config: &mut Value, proxy_base_url: &str) -> Result<(), String> { + let config_toml = config + .get("config") + .and_then(Value::as_str) + .ok_or_else(|| "Grok Build 配置缺少 config 字段".to_string())?; + let updated = crate::grok_config::apply_proxy_takeover( + config_toml, + proxy_base_url, + PROXY_TOKEN_PLACEHOLDER, + ) + .map_err(|e| format!("更新 Grok Build 接管配置失败: {e}"))?; + config["config"] = json!(updated); + Ok(()) + } + /// 接管各应用的 Live 配置(写入代理地址) /// /// 代理服务器的路由已经根据 API 端点自动区分应用类型: @@ -1339,6 +1527,7 @@ impl ProxyService { /// 因此不需要在 URL 中添加应用前缀。 async fn takeover_live_configs(&self) -> Result<(), String> { let (proxy_url, proxy_codex_base_url) = self.build_proxy_urls().await?; + let proxy_grok_base_url = format!("{}/grokbuild/v1", proxy_url.trim_end_matches('/')); // Claude: 修改 ANTHROPIC_BASE_URL,使用占位符替代真实 Token(代理会注入真实 Token) if let Ok(mut live_config) = self.read_claude_live() { @@ -1382,12 +1571,20 @@ impl ProxyService { log::info!("Gemini Live 配置已接管,代理地址: {proxy_url}"); } + // Grok Build: keep its own provider namespace while reusing Responses forwarding. + if let Ok(mut live_config) = self.read_grok_live() { + Self::apply_grok_takeover_fields(&mut live_config, &proxy_grok_base_url)?; + self.write_grok_live(&live_config)?; + log::info!("Grok Build Live 配置已接管,代理地址: {proxy_grok_base_url}"); + } + Ok(()) } /// 接管指定应用的 Live 配置(严格模式:目标配置不存在则返回错误) async fn takeover_live_config_strict(&self, app_type: &AppType) -> Result<(), String> { let (proxy_url, proxy_codex_base_url) = self.build_proxy_urls().await?; + let proxy_grok_base_url = format!("{}/grokbuild/v1", proxy_url.trim_end_matches('/')); match app_type { AppType::Claude => { @@ -1431,6 +1628,12 @@ impl ProxyService { self.write_gemini_live(&live_config)?; log::info!("Gemini Live 配置已接管,代理地址: {proxy_url}"); } + AppType::GrokBuild => { + let mut live_config = self.read_grok_live()?; + Self::apply_grok_takeover_fields(&mut live_config, &proxy_grok_base_url)?; + self.write_grok_live(&live_config)?; + log::info!("Grok Build Live 配置已接管,代理地址: {proxy_grok_base_url}"); + } _ => return Err("该应用不支持代理功能".to_string()), } @@ -1440,6 +1643,7 @@ impl ProxyService { /// 接管指定应用的 Live 配置(尽力而为:配置不存在/读取失败则跳过) async fn takeover_live_config_best_effort(&self, app_type: &AppType) -> Result<(), String> { let (proxy_url, proxy_codex_base_url) = self.build_proxy_urls().await?; + let proxy_grok_base_url = format!("{}/grokbuild/v1", proxy_url.trim_end_matches('/')); match app_type { AppType::Claude => { @@ -1495,6 +1699,12 @@ impl ProxyService { let _ = self.write_gemini_live(&live_config); } } + AppType::GrokBuild => { + if let Ok(mut live_config) = self.read_grok_live() { + Self::apply_grok_takeover_fields(&mut live_config, &proxy_grok_base_url)?; + let _ = self.write_grok_live(&live_config); + } + } _ => {} } @@ -1527,6 +1737,14 @@ impl ProxyService { log::info!("Gemini Live 配置已恢复"); } } + AppType::GrokBuild => { + if let Ok(Some(backup)) = self.db.get_live_backup("grokbuild").await { + let config: Value = serde_json::from_str(&backup.original_config) + .map_err(|e| format!("解析 Grok Build 备份失败: {e}"))?; + self.write_grok_live(&config)?; + log::info!("Grok Build Live 配置已恢复"); + } + } _ => {} } @@ -1537,7 +1755,12 @@ impl ProxyService { async fn restore_live_configs(&self) -> Result<(), String> { let mut errors = Vec::new(); - for app_type in [AppType::Claude, AppType::Codex, AppType::Gemini] { + for app_type in [ + AppType::Claude, + AppType::Codex, + AppType::Gemini, + AppType::GrokBuild, + ] { if let Err(e) = self .restore_live_config_for_app_with_fallback(&app_type) .await @@ -1626,6 +1849,7 @@ impl ProxyService { AppType::Claude => self.write_claude_live(config), AppType::Codex => self.write_codex_live(config), AppType::Gemini => self.write_gemini_live(config), + AppType::GrokBuild => self.write_grok_live(config), _ => Err("该应用不支持代理功能".to_string()), } } @@ -1644,6 +1868,10 @@ impl ProxyService { Ok(config) => Self::is_gemini_live_taken_over(&config), Err(_) => false, }, + AppType::GrokBuild => match self.read_grok_live() { + Ok(config) => Self::is_grok_live_taken_over(&config), + Err(_) => false, + }, _ => false, } } @@ -1694,6 +1922,7 @@ impl ProxyService { AppType::Claude => self.cleanup_claude_takeover_placeholders_in_live(), AppType::Codex => self.cleanup_codex_takeover_placeholders_in_live(), AppType::Gemini => self.cleanup_gemini_takeover_placeholders_in_live(), + AppType::GrokBuild => self.cleanup_grok_takeover_placeholders_in_live(), _ => Ok(()), } } @@ -1753,6 +1982,7 @@ impl ProxyService { app_type: &AppType, ) -> Result { let (proxy_url, proxy_codex_base_url) = self.build_proxy_urls().await?; + let proxy_grok_base_url = format!("{}/grokbuild/v1", proxy_url.trim_end_matches('/')); match app_type { AppType::Claude => { @@ -1785,6 +2015,19 @@ impl ProxyService { .is_some_and(|url| Self::proxy_urls_match(url, &proxy_url)); Ok(Self::is_gemini_live_taken_over(&config) && base_url_matches) } + AppType::GrokBuild => { + let config = self.read_grok_live()?; + let base_url_matches = + config + .get("config") + .and_then(Value::as_str) + .is_some_and(|config_toml| { + crate::grok_config::base_url_matches(config_toml, |url| { + Self::proxy_urls_match(url, &proxy_grok_base_url) + }) + }); + Ok(Self::is_grok_live_taken_over(&config) && base_url_matches) + } _ => Ok(false), } } @@ -1875,10 +2118,27 @@ impl ProxyService { Ok(()) } + fn cleanup_grok_takeover_placeholders_in_live(&self) -> Result<(), String> { + let config = self.read_grok_live()?; + let Some(config_toml) = config.get("config").and_then(Value::as_str) else { + return Ok(()); + }; + if !crate::grok_config::has_proxy_placeholder(config_toml, PROXY_TOKEN_PLACEHOLDER) { + return Ok(()); + } + + // A valid provider snapshot should normally restore before this fallback. + // Clearing the token prevents a stale local route from looking usable. + let updated = crate::grok_config::update_api_key(config_toml, "") + .map_err(|e| format!("清理 Grok Build 接管占位符失败: {e}"))?; + crate::config::write_text_file(&crate::grok_config::get_grok_config_path(), &updated) + .map_err(|e| format!("写入 Grok Build 配置失败: {e}")) + } + /// 检查是否处于 Live 接管模式 pub async fn is_takeover_active(&self) -> Result { let status = self.get_takeover_status().await?; - Ok(status.claude || status.codex || status.gemini) + Ok(status.claude || status.codex || status.gemini || status.grokbuild) } /// 从异常退出中恢复(启动时调用) @@ -1928,6 +2188,12 @@ impl ProxyService { } } + if let Ok(config) = self.read_grok_live() { + if Self::is_grok_live_taken_over(&config) { + return true; + } + } + false } @@ -1986,6 +2252,15 @@ impl ProxyService { env.get("GEMINI_API_KEY").and_then(|v| v.as_str()) == Some(PROXY_TOKEN_PLACEHOLDER) } + fn is_grok_live_taken_over(config: &Value) -> bool { + config + .get("config") + .and_then(Value::as_str) + .is_some_and(|config_toml| { + crate::grok_config::has_proxy_placeholder(config_toml, PROXY_TOKEN_PLACEHOLDER) + }) + } + /// 判断给定的 Live/备份配置是否已被代理接管(包含占位符) /// /// 用途:检测"备份里存的其实是代理配置"这种异常历史状态。 @@ -1997,6 +2272,7 @@ impl ProxyService { AppType::Claude => Self::is_claude_live_taken_over(config), AppType::Codex => Self::is_codex_live_taken_over(config), AppType::Gemini => Self::is_gemini_live_taken_over(config), + AppType::GrokBuild => Self::is_grok_live_taken_over(config), _ => false, } } @@ -2047,7 +2323,7 @@ impl ProxyService { existing_backup_value.or_else(|| self.read_codex_live().ok()); if let Some(existing_value) = existing_backup_value.as_ref() { - Self::preserve_codex_mcp_servers_from_existing_config( + Self::preserve_toml_mcp_servers_from_existing_config( &mut effective_settings, existing_value, )?; @@ -2067,11 +2343,33 @@ impl ProxyService { .map_err(|e| format!("注入统一会话路由失败: {e}"))?; } + if matches!(app_type_enum, AppType::GrokBuild) { + let existing_value = self + .db + .get_live_backup(app_type) + .await + .map_err(|e| format!("读取 {app_type} 现有备份失败: {e}"))? + .map(|backup| { + serde_json::from_str::(&backup.original_config) + .map_err(|e| format!("解析 {app_type} 现有备份失败: {e}")) + }) + .transpose()? + .or_else(|| self.read_grok_live().ok()); + if let Some(existing_value) = existing_value.as_ref() { + Self::preserve_toml_mcp_servers_from_existing_config( + &mut effective_settings, + existing_value, + )?; + } + } + let backup_json = match app_type_enum { AppType::Claude => serde_json::to_string(&effective_settings) .map_err(|e| format!("序列化 Claude 配置失败: {e}"))?, AppType::Codex => serde_json::to_string(&effective_settings) .map_err(|e| format!("序列化 Codex 配置失败: {e}"))?, + AppType::GrokBuild => serde_json::to_string(&effective_settings) + .map_err(|e| format!("序列化 Grok Build 配置失败: {e}"))?, AppType::Gemini => { // Gemini takeover 仅修改 .env;settings.json(含 mcpServers)保持原样。 let env_backup = if let Some(env) = effective_settings.get("env") { @@ -2130,11 +2428,11 @@ impl ProxyService { ); } - let logical_target_changed = + let previous_provider_id = crate::settings::get_effective_current_provider(&self.db, &app_type_enum) - .map_err(|e| format!("读取当前供应商失败: {e}"))? - .as_deref() - != Some(provider_id); + .map_err(|e| format!("读取当前供应商失败: {e}"))?; + let previous_local_provider_id = crate::settings::get_current_provider(&app_type_enum); + let logical_target_changed = previous_provider_id.as_deref() != Some(provider_id); let has_backup = self .db @@ -2145,46 +2443,119 @@ impl ProxyService { let live_taken_over = self.detect_takeover_in_live_config_for_app(&app_type_enum); let should_sync_backup = has_backup || live_taken_over; - self.db - .set_current_provider(app_type_enum.as_str(), provider_id) - .map_err(|e| format!("更新当前供应商失败: {e}"))?; - crate::settings::set_current_provider(&app_type_enum, Some(provider_id)) - .map_err(|e| format!("更新本地当前供应商失败: {e}"))?; + // All fallible backup/live writes must finish before committing the logical + // current provider. Otherwise a failed hot switch leaves the UI pointing at + // the new provider while the proxy still serves the old one (and the next + // query may fall back to the first provider). + let previous_backup = if should_sync_backup { + self.db + .get_live_backup(app_type_enum.as_str()) + .await + .map_err(|e| format!("读取 {app_type} 原备份失败: {e}"))? + } else { + None + }; + let previous_live_before_direct_write = + if has_backup && !live_taken_over && matches!(app_type_enum, AppType::Codex) { + Some( + self.read_codex_live() + .map_err(|error| format!("读取 Codex 原 Live 配置失败: {error}"))?, + ) + } else { + None + }; - if should_sync_backup { - self.update_live_backup_from_provider_inner(app_type, &provider) - .await?; + let prepare_result: Result<(), String> = async { + if should_sync_backup { + self.update_live_backup_from_provider_inner(app_type, &provider) + .await?; - if matches!(app_type_enum, AppType::Claude) { - self.sync_claude_live_from_provider_while_proxy_active(&provider) - .await?; - } else if live_taken_over && matches!(app_type_enum, AppType::Codex) { - self.sync_codex_live_from_provider_while_proxy_active(&provider) - .await?; + if matches!(app_type_enum, AppType::Claude) { + self.sync_claude_live_from_provider_while_proxy_active(&provider) + .await?; + } else if live_taken_over && matches!(app_type_enum, AppType::Codex) { + self.sync_codex_live_from_provider_while_proxy_active(&provider) + .await?; + } else if live_taken_over && matches!(app_type_enum, AppType::GrokBuild) { + self.sync_grok_live_from_provider_while_proxy_active(&provider) + .await?; + } } + + if has_backup && !live_taken_over && matches!(app_type_enum, AppType::Codex) { + let effective_settings = build_effective_settings_with_common_config( + self.db.as_ref(), + &AppType::Codex, + &provider, + ) + .map_err(|e| format!("构建 Codex 有效配置失败: {e}"))?; + let auth = effective_settings + .get("auth") + .ok_or_else(|| "Codex 供应商缺少 auth 配置".to_string())?; + let config_str = effective_settings.get("config").and_then(|v| v.as_str()); + let profile = + crate::proxy::providers::resolve_codex_catalog_tool_profile(&provider); + + crate::codex_config::write_codex_provider_live_with_catalog( + &effective_settings, + provider.category.as_deref(), + auth, + config_str, + profile, + ) + .map_err(|e| format!("写入 Codex 配置失败: {e}"))?; + } + + Ok(()) + } + .await; + + if let Err(error) = prepare_result { + self.rollback_hot_switch_preparation( + &app_type_enum, + previous_backup.as_ref(), + previous_provider_id.as_deref(), + should_sync_backup, + live_taken_over, + previous_live_before_direct_write.as_ref(), + ) + .await; + return Err(error); } - if has_backup && !live_taken_over && matches!(app_type_enum, AppType::Codex) { - let effective_settings = build_effective_settings_with_common_config( - self.db.as_ref(), - &AppType::Codex, - &provider, + if let Err(error) = crate::settings::set_current_provider(&app_type_enum, Some(provider_id)) + { + self.rollback_hot_switch_preparation( + &app_type_enum, + previous_backup.as_ref(), + previous_provider_id.as_deref(), + should_sync_backup, + live_taken_over, + previous_live_before_direct_write.as_ref(), ) - .map_err(|e| format!("构建 Codex 有效配置失败: {e}"))?; - let auth = effective_settings - .get("auth") - .ok_or_else(|| "Codex 供应商缺少 auth 配置".to_string())?; - let config_str = effective_settings.get("config").and_then(|v| v.as_str()); - let profile = crate::proxy::providers::resolve_codex_catalog_tool_profile(&provider); - - crate::codex_config::write_codex_provider_live_with_catalog( - &effective_settings, - provider.category.as_deref(), - auth, - config_str, - profile, + .await; + return Err(format!("更新本地当前供应商失败: {error}")); + } + if let Err(error) = self + .db + .set_current_provider(app_type_enum.as_str(), provider_id) + { + if let Err(rollback_error) = crate::settings::set_current_provider( + &app_type_enum, + previous_local_provider_id.as_deref(), + ) { + log::error!("数据库切换失败后恢复本地当前供应商失败: {rollback_error}"); + } + self.rollback_hot_switch_preparation( + &app_type_enum, + previous_backup.as_ref(), + previous_provider_id.as_deref(), + should_sync_backup, + live_taken_over, + previous_live_before_direct_write.as_ref(), ) - .map_err(|e| format!("写入 Codex 配置失败: {e}"))?; + .await; + return Err(format!("更新当前供应商失败: {error}")); } if let Some(server) = self.server.read().await.as_ref() { @@ -2203,13 +2574,13 @@ impl ProxyService { self.switch_locks.lock_for_app(app_type).await } - fn preserve_codex_mcp_servers_from_existing_config( + fn preserve_toml_mcp_servers_from_existing_config( target_settings: &mut Value, existing_config: &Value, ) -> Result<(), String> { let target_obj = target_settings .as_object_mut() - .ok_or_else(|| "Codex 备份必须是 JSON 对象".to_string())?; + .ok_or_else(|| "TOML 应用备份必须是 JSON 对象".to_string())?; let target_config = target_obj .get("config") @@ -2220,7 +2591,7 @@ impl ProxyService { } else { target_config .parse::() - .map_err(|e| format!("解析新的 Codex config.toml 失败: {e}"))? + .map_err(|e| format!("解析新的 config.toml 失败: {e}"))? }; let existing_config = existing_config @@ -2234,7 +2605,7 @@ impl ProxyService { let existing_doc = existing_config .parse::() - .map_err(|e| format!("解析现有 Codex 备份失败: {e}"))?; + .map_err(|e| format!("解析现有 config.toml 备份失败: {e}"))?; if let Some(existing_mcp_servers) = existing_doc.get("mcp_servers") { match target_doc.get_mut("mcp_servers") { @@ -2250,7 +2621,7 @@ impl ProxyService { } } else { log::warn!( - "Codex config contains a non-table mcp_servers section; skipping MCP merge" + "config.toml contains a non-table mcp_servers section; skipping MCP merge" ); } } @@ -2625,6 +2996,16 @@ impl ProxyService { Ok(()) } + fn read_grok_live(&self) -> Result { + crate::grok_config::read_grok_live_settings() + .map_err(|e| format!("读取 Grok Build 配置失败: {e}")) + } + + fn write_grok_live(&self, config: &Value) -> Result<(), String> { + crate::grok_config::write_grok_live_settings(config) + .map_err(|e| format!("写入 Grok Build 配置失败: {e}")) + } + // ==================== 原有方法 ==================== /// 获取服务器状态 @@ -2721,6 +3102,11 @@ impl ProxyService { .await?; updated_any = true; } + if takeover.grokbuild { + self.takeover_live_config_best_effort(&AppType::GrokBuild) + .await?; + updated_any = true; + } if updated_any { log::info!("已同步更新 Live 配置中的代理地址"); @@ -6135,6 +6521,107 @@ requires_openai_auth = true ); } + #[tokio::test] + #[serial] + async fn codex_direct_live_write_rolls_back_when_provider_commit_fails() { + let _home = TempHome::new(); + crate::settings::reload_settings().expect("reload settings"); + + let db = Arc::new(Database::memory().expect("init db")); + let state = crate::store::AppState::new(db.clone()); + db.update_proxy_config(ProxyConfig { + listen_port: 0, + ..Default::default() + }) + .await + .expect("set test proxy config"); + state + .proxy_service + .start() + .await + .expect("start proxy server"); + + let provider_a = Provider::with_id( + "a".to_string(), + "Provider A".to_string(), + json!({ + "auth": { "OPENAI_API_KEY": "key-a" }, + "config": "model_provider = \"provider-a\"\nmodel = \"model-a\"\n\n[model_providers.provider-a]\nname = \"Provider A\"\nbase_url = \"https://a.example/v1\"\nwire_api = \"responses\"\nrequires_openai_auth = true\n" + }), + None, + ); + let provider_b = Provider::with_id( + "b".to_string(), + "Provider B".to_string(), + json!({ + "auth": { "OPENAI_API_KEY": "key-b" }, + "config": "model_provider = \"provider-b\"\nmodel = \"model-b\"\n\n[model_providers.provider-b]\nname = \"Provider B\"\nbase_url = \"https://b.example/v1\"\nwire_api = \"responses\"\nrequires_openai_auth = true\n" + }), + None, + ); + db.save_provider("codex", &provider_a) + .expect("save provider a"); + db.save_provider("codex", &provider_b) + .expect("save provider b"); + db.set_current_provider("codex", "a") + .expect("set current provider a"); + crate::settings::set_current_provider(&AppType::Codex, Some("a")) + .expect("set local current provider a"); + state + .proxy_service + .write_codex_live_for_provider(&provider_a.settings_config, Some(&provider_a)) + .expect("seed direct live config"); + db.save_live_backup( + "codex", + &serde_json::to_string(&provider_a.settings_config).expect("serialize backup"), + ) + .await + .expect("seed restored backup"); + let original_live = state + .proxy_service + .read_codex_live() + .expect("read original live config"); + + { + let conn = db.conn.lock().expect("lock database"); + conn.execute_batch( + "CREATE TRIGGER reject_codex_current_update + BEFORE UPDATE OF is_current ON providers + WHEN NEW.app_type = 'codex' + BEGIN + SELECT RAISE(ABORT, 'forced current-provider commit failure'); + END;", + ) + .expect("install failure trigger"); + } + + let error = crate::services::provider::ProviderService::switch(&state, AppType::Codex, "b") + .expect_err("database commit should fail"); + state.proxy_service.stop().await.expect("stop proxy server"); + + assert!(error + .to_string() + .contains("forced current-provider commit failure")); + assert_eq!( + state + .proxy_service + .read_codex_live() + .expect("read rolled-back live config"), + original_live, + "commit failure must restore the exact direct Live snapshot" + ); + assert_eq!( + db.get_current_provider("codex") + .expect("read current provider") + .as_deref(), + Some("a") + ); + assert_eq!( + crate::settings::get_current_provider(&AppType::Codex).as_deref(), + Some("a") + ); + } + /// Regression: turning proxy takeover off restores Live from the backup. The /// backup snapshot is `read_codex_live_settings()` output (`{auth, config}`, /// never an inline `modelCatalog`). The restore must NOT route the config @@ -6581,4 +7068,148 @@ experimental_bearer_token = "PROXY_MANAGED" ); } } + + fn grok_provider_config(base_url: &str, api_key: &str) -> Value { + json!({ + "config": format!( + "[models]\ndefault = \"grok-4.5\"\n\n[model.\"grok-4.5\"]\nmodel = \"grok-4.5\"\nbase_url = \"{base_url}\"\nname = \"Grok\"\napi_key = \"{api_key}\"\napi_backend = \"responses\"\ncontext_window = 500000\n" + ) + }) + } + + #[tokio::test] + #[serial] + async fn hot_switch_grokbuild_updates_backup_and_current_provider() { + let _home = TempHome::new(); + crate::settings::reload_settings().expect("reload settings"); + + let db = Arc::new(Database::memory().expect("init db")); + let service = ProxyService::new(db.clone()); + let provider_a = Provider::with_id( + "grok-a".to_string(), + "Grok A".to_string(), + grok_provider_config("https://a.example.com/v1", "a-key"), + None, + ); + let provider_b = Provider::with_id( + "grok-b".to_string(), + "Grok B".to_string(), + grok_provider_config("https://b.example.com/v1", "b-key"), + None, + ); + db.save_provider("grokbuild", &provider_a) + .expect("save provider a"); + db.save_provider("grokbuild", &provider_b) + .expect("save provider b"); + db.set_current_provider("grokbuild", "grok-a") + .expect("set db current"); + crate::settings::set_current_provider(&AppType::GrokBuild, Some("grok-a")) + .expect("set local current"); + let mut original_settings = provider_a.settings_config.clone(); + original_settings["config"] = json!(format!( + "{}\n[mcp_servers.demo]\ncommand = \"demo\"\n", + original_settings["config"] + .as_str() + .expect("provider config") + )); + db.save_live_backup( + "grokbuild", + &serde_json::to_string(&original_settings).expect("serialize backup"), + ) + .await + .expect("seed backup"); + + service + .hot_switch_provider("grokbuild", "grok-b") + .await + .expect("hot switch Grok Build"); + + assert_eq!( + crate::settings::get_effective_current_provider(&db, &AppType::GrokBuild) + .expect("read current") + .as_deref(), + Some("grok-b") + ); + let backup = db + .get_live_backup("grokbuild") + .await + .expect("read backup") + .expect("backup exists"); + let backup: Value = serde_json::from_str(&backup.original_config).expect("parse backup"); + assert!(backup["config"] + .as_str() + .is_some_and(|config| config.contains("https://b.example.com/v1"))); + assert!(backup["config"] + .as_str() + .is_some_and(|config| config.contains("[mcp_servers.demo]"))); + } + + #[tokio::test] + #[serial] + async fn failed_hot_switch_grokbuild_keeps_previous_current_and_backup() { + let _home = TempHome::new(); + crate::settings::reload_settings().expect("reload settings"); + + let db = Arc::new(Database::memory().expect("init db")); + let service = ProxyService::new(db.clone()); + let provider_a = Provider::with_id( + "grok-a".to_string(), + "Grok A".to_string(), + grok_provider_config("https://a.example.com/v1", "a-key"), + None, + ); + let provider_b = Provider::with_id( + "grok-b".to_string(), + "Broken Grok".to_string(), + json!({ "config": "not valid toml = [" }), + None, + ); + db.save_provider("grokbuild", &provider_a) + .expect("save provider a"); + db.save_provider("grokbuild", &provider_b) + .expect("save provider b"); + db.set_current_provider("grokbuild", "grok-a") + .expect("set db current"); + crate::settings::set_current_provider(&AppType::GrokBuild, Some("grok-a")) + .expect("set local current"); + + let original_backup = + serde_json::to_string(&provider_a.settings_config).expect("serialize backup"); + db.save_live_backup("grokbuild", &original_backup) + .await + .expect("seed backup"); + let takeover = crate::grok_config::apply_proxy_takeover( + provider_a.settings_config["config"] + .as_str() + .expect("provider config"), + "http://127.0.0.1:15721/grokbuild/v1", + PROXY_TOKEN_PLACEHOLDER, + ) + .expect("build takeover config"); + service + .write_grok_live(&json!({ "config": takeover })) + .expect("seed taken-over live"); + + service + .hot_switch_provider("grokbuild", "grok-b") + .await + .expect_err("invalid Grok config must fail"); + + assert_eq!( + crate::settings::get_effective_current_provider(&db, &AppType::GrokBuild) + .expect("read current") + .as_deref(), + Some("grok-a") + ); + assert_eq!( + crate::settings::get_current_provider(&AppType::GrokBuild).as_deref(), + Some("grok-a") + ); + let backup = db + .get_live_backup("grokbuild") + .await + .expect("read backup") + .expect("backup exists"); + assert_eq!(backup.original_config, original_backup); + } } diff --git a/src-tauri/src/services/skill.rs b/src-tauri/src/services/skill.rs index fbf72bc86..85761c75f 100644 --- a/src-tauri/src/services/skill.rs +++ b/src-tauri/src/services/skill.rs @@ -511,6 +511,11 @@ impl SkillService { return Ok(custom.join("skills")); } } + AppType::GrokBuild => { + if let Some(custom) = crate::settings::get_grok_override_dir() { + return Ok(custom.join("skills")); + } + } AppType::OpenCode => { if let Some(custom) = crate::settings::get_opencode_override_dir() { return Ok(custom.join("skills")); @@ -538,6 +543,7 @@ impl SkillService { AppType::ClaudeDesktop => home.join(".claude-desktop").join("skills"), AppType::Codex => home.join(".codex").join("skills"), AppType::Gemini => home.join(".gemini").join("skills"), + AppType::GrokBuild => home.join(".grok").join("skills"), AppType::OpenCode => home.join(".config").join("opencode").join("skills"), AppType::OpenClaw => home.join(".openclaw").join("skills"), AppType::Hermes => crate::hermes_config::get_hermes_dir().join("skills"), diff --git a/src-tauri/src/services/sql_helpers.rs b/src-tauri/src/services/sql_helpers.rs index 2007b50f5..a32049161 100644 --- a/src-tauri/src/services/sql_helpers.rs +++ b/src-tauri/src/services/sql_helpers.rs @@ -16,7 +16,7 @@ /// style provider not added here) shows up loudly as a too-low cache hit /// rate, which is easier to catch than the silent over-deduction that /// would happen with the opposite default. -const CACHE_INCLUSIVE_APP_TYPES: &[&str] = &["codex", "gemini"]; +const CACHE_INCLUSIVE_APP_TYPES: &[&str] = &["codex", "gemini", "grokbuild"]; pub(crate) const INPUT_TOKEN_SEMANTICS_LEGACY: i64 = 0; pub(crate) const INPUT_TOKEN_SEMANTICS_TOTAL: i64 = 1; @@ -93,6 +93,7 @@ mod tests { assert!(!sql.contains(".")); assert!(sql.contains("'codex'")); assert!(sql.contains("'gemini'")); + assert!(sql.contains("'grokbuild'")); } #[test] @@ -112,6 +113,13 @@ mod tests { [], ) .unwrap(); + // Grok Build uses OpenAI Responses semantics too. + conn.execute( + "INSERT INTO proxy_request_logs (request_id, app_type, input_tokens, cache_read_tokens) + VALUES ('grok-1', 'grokbuild', 700, 250)", + [], + ) + .unwrap(); // Claude row: Anthropic semantics — input_tokens already excludes cache. conn.execute( "INSERT INTO proxy_request_logs (request_id, app_type, input_tokens, cache_read_tokens) @@ -123,8 +131,8 @@ mod tests { let expr = fresh_input_sql("l"); let sql = format!("SELECT COALESCE(SUM({expr}), 0) FROM proxy_request_logs l"); let total: i64 = conn.query_row(&sql, [], |r| r.get(0)).unwrap(); - // Codex: 1000-600=400; Gemini: 800-300=500; Claude: 200 unchanged. - assert_eq!(total, 400 + 500 + 200); + // Codex: 400; Gemini: 500; Grok Build: 450; Claude: 200 unchanged. + assert_eq!(total, 400 + 500 + 450 + 200); } #[test] diff --git a/src-tauri/src/session_manager/mod.rs b/src-tauri/src/session_manager/mod.rs index c7ca1f714..839e94fb0 100644 --- a/src-tauri/src/session_manager/mod.rs +++ b/src-tauri/src/session_manager/mod.rs @@ -4,7 +4,7 @@ pub mod terminal; use serde::{Deserialize, Serialize}; use std::path::{Path, PathBuf}; -use providers::{claude, codex, gemini, hermes, openclaw, opencode}; +use providers::{claude, codex, gemini, grokbuild, hermes, openclaw, opencode}; #[derive(Debug, Clone, Serialize)] #[serde(rename_all = "camelCase")] @@ -56,13 +56,14 @@ pub struct DeleteSessionOutcome { } pub fn scan_sessions() -> Vec { - let (r1, r2, r3, r4, r5, r6) = std::thread::scope(|s| { + let (r1, r2, r3, r4, r5, r6, r7) = std::thread::scope(|s| { let h1 = s.spawn(codex::scan_sessions); let h2 = s.spawn(claude::scan_sessions); let h3 = s.spawn(opencode::scan_sessions); let h4 = s.spawn(openclaw::scan_sessions); let h5 = s.spawn(gemini::scan_sessions); let h6 = s.spawn(hermes::scan_sessions); + let h7 = s.spawn(grokbuild::scan_sessions); ( h1.join().unwrap_or_default(), h2.join().unwrap_or_default(), @@ -70,6 +71,7 @@ pub fn scan_sessions() -> Vec { h4.join().unwrap_or_default(), h5.join().unwrap_or_default(), h6.join().unwrap_or_default(), + h7.join().unwrap_or_default(), ) }); @@ -80,6 +82,7 @@ pub fn scan_sessions() -> Vec { sessions.extend(r4); sessions.extend(r5); sessions.extend(r6); + sessions.extend(r7); sessions.sort_by(|a, b| { let a_ts = a.last_active_at.or(a.created_at).unwrap_or(0); @@ -106,6 +109,7 @@ pub fn load_messages(provider_id: &str, source_path: &str) -> Result opencode::load_messages(path), "openclaw" => openclaw::load_messages(path), "gemini" => gemini::load_messages(path), + "grokbuild" => grokbuild::load_messages(path), "hermes" => hermes::load_messages(path), _ => Err(format!("Unsupported provider: {provider_id}")), } @@ -165,6 +169,9 @@ fn delete_session_with_roots( openclaw::delete_session(&validated_root, &validated_source, session_id) } "gemini" => gemini::delete_session(&validated_root, &validated_source, session_id), + "grokbuild" => { + grokbuild::delete_session(&validated_root, &validated_source, session_id) + } "hermes" => hermes::delete_session(&validated_root, &validated_source, session_id), _ => Err(format!("Unsupported provider: {provider_id}")), }; @@ -194,6 +201,7 @@ fn provider_roots(provider_id: &str) -> Result, String> { "opencode" => vec![opencode::get_opencode_data_dir()], "openclaw" => vec![crate::openclaw_config::get_openclaw_dir().join("agents")], "gemini" => vec![crate::gemini_config::get_gemini_dir().join("tmp")], + "grokbuild" => grokbuild::session_roots(), "hermes" => vec![crate::hermes_config::get_hermes_dir().join("sessions")], _ => return Err(format!("Unsupported provider: {provider_id}")), }; diff --git a/src-tauri/src/session_manager/providers/grokbuild.rs b/src-tauri/src/session_manager/providers/grokbuild.rs new file mode 100644 index 000000000..d3462b2d3 --- /dev/null +++ b/src-tauri/src/session_manager/providers/grokbuild.rs @@ -0,0 +1,296 @@ +use std::fs::File; +use std::io::{BufRead, BufReader}; +use std::path::{Path, PathBuf}; + +use serde::Deserialize; +use serde_json::Value; + +use crate::session_manager::{SessionMessage, SessionMeta}; + +use super::utils::{extract_text, parse_timestamp_to_ms, truncate_summary, TITLE_MAX_CHARS}; + +#[derive(Debug, Deserialize)] +struct GrokSessionInfo { + id: String, + #[serde(default)] + cwd: Option, +} + +#[derive(Debug, Deserialize)] +struct GrokSessionSummary { + info: GrokSessionInfo, + #[serde(default)] + session_summary: Option, + #[serde(default)] + generated_title: Option, + #[serde(default)] + created_at: Option, + #[serde(default)] + updated_at: Option, + #[serde(default)] + last_active_at: Option, +} + +pub fn session_roots() -> Vec { + let config_dir = crate::grok_config::get_grok_config_dir(); + vec![ + config_dir.join("sessions"), + config_dir.join("archived_sessions"), + ] +} + +pub fn scan_sessions() -> Vec { + let mut summaries = Vec::new(); + for root in session_roots() { + collect_summary_files(&root, &mut summaries); + } + summaries + .into_iter() + .filter_map(|path| parse_summary(&path)) + .collect() +} + +pub fn load_messages(path: &Path) -> Result, String> { + let session_dir = path + .parent() + .ok_or_else(|| format!("Invalid Grok Build session path: {}", path.display()))?; + let chat_path = session_dir.join("chat_history.jsonl"); + let file = File::open(&chat_path) + .map_err(|e| format!("Failed to open Grok Build chat history: {e}"))?; + let reader = BufReader::new(file); + let mut messages = Vec::new(); + + for line in reader.lines().map_while(Result::ok) { + let Ok(value) = serde_json::from_str::(&line) else { + continue; + }; + let kind = value.get("type").and_then(Value::as_str).unwrap_or(""); + let role = match kind { + "system" | "user" | "assistant" | "tool" => kind, + // Reasoning records can contain encrypted/internal state and are not + // conversation messages shown by Grok's own history view. + _ => continue, + }; + let content = value.get("content").map(extract_text).unwrap_or_default(); + if content.trim().is_empty() { + continue; + } + let ts = value + .get("timestamp") + .or_else(|| value.get("ts")) + .and_then(parse_timestamp_to_ms); + messages.push(SessionMessage { + role: role.to_string(), + content, + ts, + }); + } + + Ok(messages) +} + +pub fn delete_session(root: &Path, path: &Path, session_id: &str) -> Result { + if !path.starts_with(root) { + return Err(format!( + "Grok Build session source is outside the session root: {}", + path.display() + )); + } + if path.file_name().and_then(|name| name.to_str()) != Some("summary.json") { + return Err(format!( + "Unexpected Grok Build session source: {}", + path.display() + )); + } + let summary = read_summary(path)?; + if summary.info.id != session_id { + return Err(format!( + "Grok Build session ID mismatch: expected {session_id}, found {}", + summary.info.id + )); + } + let session_dir = path + .parent() + .ok_or_else(|| format!("Invalid Grok Build session path: {}", path.display()))?; + if session_dir == root || !session_dir.starts_with(root) { + return Err(format!( + "Refusing to delete Grok Build session directory outside its root: {}", + session_dir.display() + )); + } + if session_dir.file_name().and_then(|name| name.to_str()) != Some(session_id) { + return Err(format!( + "Grok Build session directory does not match session ID: {}", + session_dir.display() + )); + } + std::fs::remove_dir_all(session_dir).map_err(|e| { + format!( + "Failed to delete Grok Build session directory {}: {e}", + session_dir.display() + ) + })?; + Ok(true) +} + +fn collect_summary_files(root: &Path, files: &mut Vec) { + let Ok(entries) = std::fs::read_dir(root) else { + return; + }; + for entry in entries.flatten() { + let path = entry.path(); + if path.is_dir() { + collect_summary_files(&path, files); + } else if path.file_name().and_then(|name| name.to_str()) == Some("summary.json") { + files.push(path); + } + } +} + +fn read_summary(path: &Path) -> Result { + let text = std::fs::read_to_string(path) + .map_err(|e| format!("Failed to read Grok Build session summary: {e}"))?; + serde_json::from_str(&text) + .map_err(|e| format!("Failed to parse Grok Build session summary: {e}")) +} + +fn parse_summary(path: &Path) -> Option { + let summary = read_summary(path).ok()?; + let session_id = summary.info.id; + let title = summary + .generated_title + .as_deref() + .filter(|value| !value.trim().is_empty()) + .or_else(|| { + summary + .session_summary + .as_deref() + .filter(|value| !value.trim().is_empty()) + }) + .map(|value| truncate_summary(value, TITLE_MAX_CHARS)); + let session_summary = summary + .session_summary + .as_deref() + .filter(|value| !value.trim().is_empty()) + .map(|value| truncate_summary(value, 160)); + let created_at = summary.created_at.as_ref().and_then(parse_timestamp_to_ms); + let last_active_at = summary + .last_active_at + .as_ref() + .or(summary.updated_at.as_ref()) + .and_then(parse_timestamp_to_ms); + + Some(SessionMeta { + provider_id: "grokbuild".to_string(), + session_id: session_id.clone(), + title, + summary: session_summary, + project_dir: summary.info.cwd, + created_at, + last_active_at, + source_path: Some(path.to_string_lossy().to_string()), + resume_command: Some(format!("grok --resume {session_id}")), + }) +} + +#[cfg(test)] +mod tests { + use super::*; + use tempfile::tempdir; + + #[test] + fn scans_native_grokbuild_session_layout() { + let temp = tempdir().expect("tempdir"); + let sessions_dir = temp.path().join("sessions"); + let session_id = "019f6af2-18b0-7673-958e-d25be650e172"; + let session_dir = sessions_dir.join("encoded-project").join(session_id); + std::fs::create_dir_all(&session_dir).expect("create session dir"); + std::fs::write( + session_dir.join("summary.json"), + format!( + r#"{{"info":{{"id":"{session_id}","cwd":"C:/work"}},"session_summary":"hello grok","generated_title":"Grok session","created_at":"2026-07-16T12:00:00Z","last_active_at":"2026-07-16T12:00:01Z"}}"# + ), + ) + .expect("write summary"); + let mut files = Vec::new(); + collect_summary_files(&sessions_dir, &mut files); + let sessions = files + .iter() + .filter_map(|path| parse_summary(path)) + .collect::>(); + + assert_eq!(sessions.len(), 1); + assert_eq!(sessions[0].provider_id, "grokbuild"); + assert_eq!(sessions[0].session_id, session_id); + assert_eq!(sessions[0].title.as_deref(), Some("Grok session")); + let expected_resume = format!("grok --resume {session_id}"); + assert_eq!( + sessions[0].resume_command.as_deref(), + Some(expected_resume.as_str()) + ); + } + + #[test] + fn loads_native_grokbuild_chat_history() { + let temp = tempdir().expect("tempdir"); + let summary_path = temp.path().join("summary.json"); + std::fs::write(&summary_path, "{}").expect("write summary placeholder"); + std::fs::write( + temp.path().join("chat_history.jsonl"), + concat!( + "{\"type\":\"user\",\"content\":[{\"type\":\"text\",\"text\":\"hello\"}]}\n", + "{\"type\":\"reasoning\",\"summary\":[{\"type\":\"summary_text\",\"text\":\"private\"}]}\n", + "{\"type\":\"assistant\",\"content\":\"Hi there\"}\n" + ), + ) + .expect("write chat history"); + + let messages = load_messages(&summary_path).expect("load messages"); + assert_eq!(messages.len(), 2); + assert_eq!(messages[0].role, "user"); + assert_eq!(messages[0].content, "hello"); + assert_eq!(messages[1].content, "Hi there"); + } + + #[test] + fn delete_session_removes_only_the_matching_session_directory() { + let temp = tempdir().expect("tempdir"); + let root = temp.path().join("sessions"); + let session_id = "session-to-delete"; + let session_dir = root.join("project").join(session_id); + let sibling_dir = root.join("project").join("session-to-keep"); + std::fs::create_dir_all(&session_dir).expect("create session directory"); + std::fs::create_dir_all(&sibling_dir).expect("create sibling directory"); + let summary_path = session_dir.join("summary.json"); + std::fs::write( + &summary_path, + format!(r#"{{"info":{{"id":"{session_id}"}}}}"#), + ) + .expect("write summary"); + std::fs::write(sibling_dir.join("keep.txt"), "keep").expect("write sibling file"); + + let deleted = delete_session(&root, &summary_path, session_id).expect("delete session"); + + assert!(deleted); + assert!(!session_dir.exists()); + assert!(sibling_dir.exists()); + } + + #[test] + fn delete_session_rejects_remove_dir_all_target_outside_root() { + let temp = tempdir().expect("tempdir"); + let root = temp.path().join("sessions"); + let outside_dir = temp.path().join("outside").join("session-outside"); + std::fs::create_dir_all(&root).expect("create root"); + std::fs::create_dir_all(&outside_dir).expect("create outside directory"); + let summary_path = outside_dir.join("summary.json"); + std::fs::write(&summary_path, r#"{"info":{"id":"session-outside"}}"#) + .expect("write summary"); + + let error = delete_session(&root, &summary_path, "session-outside") + .expect_err("outside path must be rejected"); + + assert!(error.contains("outside the session root")); + assert!(outside_dir.exists()); + } +} diff --git a/src-tauri/src/session_manager/providers/mod.rs b/src-tauri/src/session_manager/providers/mod.rs index 394fdd1f8..6a16fb5a8 100644 --- a/src-tauri/src/session_manager/providers/mod.rs +++ b/src-tauri/src/session_manager/providers/mod.rs @@ -1,6 +1,7 @@ pub mod claude; pub mod codex; pub mod gemini; +pub mod grokbuild; pub mod hermes; pub mod openclaw; pub mod opencode; diff --git a/src-tauri/src/settings.rs b/src-tauri/src/settings.rs index 6d627ee53..98ac3d7ea 100644 --- a/src-tauri/src/settings.rs +++ b/src-tauri/src/settings.rs @@ -39,6 +39,8 @@ pub struct VisibleApps { #[serde(default = "default_true")] pub gemini: bool, #[serde(default = "default_true")] + pub grokbuild: bool, + #[serde(default = "default_true")] pub opencode: bool, #[serde(default = "default_true")] pub openclaw: bool, @@ -53,6 +55,7 @@ impl Default for VisibleApps { claude_desktop: true, codex: true, gemini: true, + grokbuild: true, opencode: true, openclaw: true, hermes: false, // 默认不显示,需用户手动启用 @@ -68,6 +71,7 @@ impl VisibleApps { AppType::ClaudeDesktop => self.claude_desktop, AppType::Codex => self.codex, AppType::Gemini => self.gemini, + AppType::GrokBuild => self.grokbuild, AppType::OpenCode => self.opencode, AppType::OpenClaw => self.openclaw, AppType::Hermes => self.hermes, @@ -411,6 +415,8 @@ pub struct AppSettings { #[serde(default, skip_serializing_if = "Option::is_none")] pub gemini_config_dir: Option, #[serde(default, skip_serializing_if = "Option::is_none")] + pub grok_config_dir: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] pub opencode_config_dir: Option, #[serde(default, skip_serializing_if = "Option::is_none")] pub openclaw_config_dir: Option, @@ -430,6 +436,9 @@ pub struct AppSettings { /// 当前 Gemini 供应商 ID(本地存储,优先于数据库 is_current) #[serde(default, skip_serializing_if = "Option::is_none")] pub current_provider_gemini: Option, + /// 当前 Grok Build 供应商 ID(本地存储,优先于数据库 is_current) + #[serde(default, skip_serializing_if = "Option::is_none")] + pub current_provider_grokbuild: Option, /// 当前 OpenCode 供应商 ID(本地存储,对 OpenCode 可能无意义,但保持结构一致) #[serde(default, skip_serializing_if = "Option::is_none")] pub current_provider_opencode: Option, @@ -520,6 +529,7 @@ impl Default for AppSettings { claude_config_dir: None, codex_config_dir: None, gemini_config_dir: None, + grok_config_dir: None, opencode_config_dir: None, openclaw_config_dir: None, hermes_config_dir: None, @@ -527,6 +537,7 @@ impl Default for AppSettings { current_provider_claude_desktop: None, current_provider_codex: None, current_provider_gemini: None, + current_provider_grokbuild: None, current_provider_opencode: None, current_provider_openclaw: None, current_provider_hermes: None, @@ -575,6 +586,13 @@ impl AppSettings { .filter(|s| !s.is_empty()) .map(|s| s.to_string()); + self.grok_config_dir = self + .grok_config_dir + .as_ref() + .map(|s| s.trim()) + .filter(|s| !s.is_empty()) + .map(|s| s.to_string()); + self.opencode_config_dir = self .opencode_config_dir .as_ref() @@ -883,6 +901,14 @@ pub fn get_gemini_override_dir() -> Option { .map(|p| resolve_override_path(p)) } +pub fn get_grok_override_dir() -> Option { + let settings = settings_store().read().ok()?; + settings + .grok_config_dir + .as_ref() + .map(|p| resolve_override_path(p)) +} + pub fn get_opencode_override_dir() -> Option { let settings = settings_store().read().ok()?; settings @@ -940,6 +966,7 @@ pub fn get_current_provider(app_type: &AppType) -> Option { AppType::ClaudeDesktop => settings.current_provider_claude_desktop.clone(), AppType::Codex => settings.current_provider_codex.clone(), AppType::Gemini => settings.current_provider_gemini.clone(), + AppType::GrokBuild => settings.current_provider_grokbuild.clone(), AppType::OpenCode => settings.current_provider_opencode.clone(), AppType::OpenClaw => settings.current_provider_openclaw.clone(), AppType::Hermes => settings.current_provider_hermes.clone(), @@ -957,6 +984,7 @@ pub fn set_current_provider(app_type: &AppType, id: Option<&str>) -> Result<(), AppType::ClaudeDesktop => settings.current_provider_claude_desktop = id_owned.clone(), AppType::Codex => settings.current_provider_codex = id_owned.clone(), AppType::Gemini => settings.current_provider_gemini = id_owned.clone(), + AppType::GrokBuild => settings.current_provider_grokbuild = id_owned.clone(), AppType::OpenCode => settings.current_provider_opencode = id_owned.clone(), AppType::OpenClaw => settings.current_provider_openclaw = id_owned.clone(), AppType::Hermes => settings.current_provider_hermes = id_owned.clone(), diff --git a/src-tauri/src/tray.rs b/src-tauri/src/tray.rs index 95efbb87f..b33a00c54 100644 --- a/src-tauri/src/tray.rs +++ b/src-tauri/src/tray.rs @@ -118,7 +118,7 @@ pub struct TrayAppSection { pub const AUTO_SUFFIX: &str = "auto"; pub const TRAY_ID: &str = "cc-switch"; -pub const TRAY_SECTIONS: [TrayAppSection; 3] = [ +pub const TRAY_SECTIONS: [TrayAppSection; 4] = [ TrayAppSection { app_type: AppType::Claude, prefix: "claude_", @@ -140,6 +140,13 @@ pub const TRAY_SECTIONS: [TrayAppSection; 3] = [ header_label: "Gemini", log_name: "Gemini", }, + TrayAppSection { + app_type: AppType::GrokBuild, + prefix: "grokbuild_", + empty_id: "grokbuild_empty", + header_label: "Grok Build", + log_name: "Grok Build", + }, ]; /// 配色阈值(与前端 `utilizationColor` 语义一致)。 @@ -1072,7 +1079,8 @@ pub(crate) async fn refresh_all_usage_in_tray(app: &tauri::AppHandle) { #[cfg(test)] mod tests { - use super::{format_script_summary, format_subscription_summary, TRAY_ID}; + use super::{format_script_summary, format_subscription_summary, TRAY_ID, TRAY_SECTIONS}; + use crate::app_config::AppType; use crate::provider::{UsageData, UsageResult}; use crate::services::subscription::{ CredentialStatus, QuotaTier, SubscriptionQuota, TIER_FIVE_HOUR, TIER_GEMINI_FLASH, @@ -1086,6 +1094,18 @@ mod tests { assert_ne!(TRAY_ID, "main"); } + #[test] + fn tray_sections_include_grokbuild_provider_switching() { + let section = TRAY_SECTIONS + .iter() + .find(|section| section.app_type == AppType::GrokBuild) + .expect("Grok Build tray section should exist"); + + assert_eq!(section.prefix, "grokbuild_"); + assert_eq!(section.empty_id, "grokbuild_empty"); + assert_eq!(section.header_label, "Grok Build"); + } + fn make_quota(tool: &str, success: bool, tiers: Vec) -> SubscriptionQuota { SubscriptionQuota { tool: tool.to_string(), diff --git a/src-tauri/tests/app_type_parse.rs b/src-tauri/tests/app_type_parse.rs index 4abd316cc..e96632cc3 100644 --- a/src-tauri/tests/app_type_parse.rs +++ b/src-tauri/tests/app_type_parse.rs @@ -6,6 +6,14 @@ use cc_switch_lib::AppType; fn parse_known_apps_case_insensitive_and_trim() { assert!(matches!(AppType::from_str("claude"), Ok(AppType::Claude))); assert!(matches!(AppType::from_str("codex"), Ok(AppType::Codex))); + assert!(matches!( + AppType::from_str("grokbuild"), + Ok(AppType::GrokBuild) + )); + assert!(matches!( + AppType::from_str("Grok-Build"), + Ok(AppType::GrokBuild) + )); assert!(matches!( AppType::from_str(" ClAuDe \n"), Ok(AppType::Claude) diff --git a/src-tauri/tests/import_export_sync.rs b/src-tauri/tests/import_export_sync.rs index f6df65876..8c1f560d9 100644 --- a/src-tauri/tests/import_export_sync.rs +++ b/src-tauri/tests/import_export_sync.rs @@ -748,6 +748,7 @@ command = "echo" claude: false, codex: false, // 初始未启用 gemini: false, + grokbuild: false, opencode: false, hermes: false, }, @@ -877,6 +878,7 @@ fn import_from_claude_merges_into_config() { claude: false, // 初始未启用 codex: false, gemini: false, + grokbuild: false, opencode: false, hermes: false, }, diff --git a/src-tauri/tests/mcp_commands.rs b/src-tauri/tests/mcp_commands.rs index 15a30221b..c533b0f38 100644 --- a/src-tauri/tests/mcp_commands.rs +++ b/src-tauri/tests/mcp_commands.rs @@ -227,6 +227,7 @@ command = "echo" claude: false, codex: true, gemini: false, + grokbuild: false, opencode: false, hermes: false, }, @@ -371,6 +372,7 @@ fn set_mcp_enabled_for_codex_writes_live_config() { claude: false, codex: false, // 初始未启用 gemini: false, + grokbuild: false, opencode: false, hermes: false, }, @@ -436,6 +438,7 @@ fn enabling_codex_mcp_skips_when_codex_dir_missing() { claude: false, codex: false, gemini: false, + grokbuild: false, opencode: false, hermes: false, }, @@ -481,6 +484,7 @@ fn upsert_mcp_server_disabling_app_removes_from_claude_live_config() { claude: true, codex: false, gemini: false, + grokbuild: false, opencode: false, hermes: false, }, @@ -515,6 +519,7 @@ fn upsert_mcp_server_disabling_app_removes_from_claude_live_config() { claude: false, codex: false, gemini: false, + grokbuild: false, opencode: false, hermes: false, }, @@ -648,6 +653,7 @@ fn enabling_gemini_mcp_skips_when_gemini_dir_missing() { claude: false, codex: false, gemini: false, + grokbuild: false, opencode: false, hermes: false, }, @@ -703,6 +709,7 @@ fn enabling_claude_mcp_skips_when_claude_config_absent() { claude: false, codex: false, gemini: false, + grokbuild: false, opencode: false, hermes: false, }, @@ -758,6 +765,7 @@ fn explicit_default_claude_dir_keeps_default_split_mcp_path() { claude: true, codex: false, gemini: false, + grokbuild: false, opencode: false, hermes: false, }, @@ -814,6 +822,7 @@ fn custom_claude_dir_writes_mcp_inside_config_dir() { claude: true, codex: false, gemini: false, + grokbuild: false, opencode: false, hermes: false, }, @@ -893,6 +902,7 @@ fn custom_claude_dir_sync_does_not_copy_default_profile() { claude: true, codex: false, gemini: false, + grokbuild: false, opencode: false, hermes: false, }, @@ -1032,6 +1042,7 @@ fn sync_all_enabled_removes_known_disabled_but_preserves_unknown_live_entries() claude: false, codex: false, gemini: false, + grokbuild: false, opencode: false, hermes: false, }, @@ -1054,6 +1065,7 @@ fn sync_all_enabled_removes_known_disabled_but_preserves_unknown_live_entries() claude: true, codex: false, gemini: false, + grokbuild: false, opencode: false, hermes: false, }, diff --git a/src-tauri/tests/provider_commands.rs b/src-tauri/tests/provider_commands.rs index 29eb199c5..baf532419 100644 --- a/src-tauri/tests/provider_commands.rs +++ b/src-tauri/tests/provider_commands.rs @@ -19,6 +19,81 @@ fn settings_path(home: &Path) -> PathBuf { home.join(".cc-switch").join("settings.json") } +fn grokbuild_config(name: &str, endpoint: &str, api_key: &str) -> String { + format!( + r#"[models] +default = "grok-4.5" + +[model."grok-4.5"] +model = "grok-4.5" +base_url = "{endpoint}" +name = "{name}" +api_key = "{api_key}" +api_backend = "responses" +context_window = 500000 +"# + ) +} + +#[test] +fn grokbuild_import_and_switch_write_live_config() { + let _guard = test_mutex().lock().expect("acquire test mutex"); + reset_test_fs(); + let home = ensure_test_home(); + let live_path = home.join(".grok").join("config.toml"); + std::fs::create_dir_all(live_path.parent().expect("grok config dir")) + .expect("create grok config dir"); + let imported_config = grokbuild_config("Imported", "https://old.example/v1", "old-key"); + std::fs::write(&live_path, &imported_config).expect("seed Grok Build config"); + + let state = create_test_state().expect("create test state"); + import_default_config_test_hook(&state, AppType::GrokBuild) + .expect("import Grok Build default provider"); + + let imported = state + .db + .get_provider_by_id("default", AppType::GrokBuild.as_str()) + .expect("query imported provider") + .expect("imported provider exists"); + assert_eq!( + imported + .settings_config + .get("config") + .and_then(|value| value.as_str()), + Some(imported_config.as_str()) + ); + + let next_config = grokbuild_config("Relay", "https://new.example/v1", "new-key"); + state + .db + .save_provider( + AppType::GrokBuild.as_str(), + &Provider::with_id( + "relay".to_string(), + "Relay".to_string(), + json!({ "config": next_config }), + None, + ), + ) + .expect("save second Grok Build provider"); + + switch_provider_test_hook(&state, AppType::GrokBuild, "relay") + .expect("switch Grok Build provider"); + + assert_eq!( + std::fs::read_to_string(&live_path).expect("read switched Grok Build config"), + next_config + ); + assert_eq!( + state + .db + .get_current_provider(AppType::GrokBuild.as_str()) + .expect("read Grok Build current provider") + .as_deref(), + Some("relay") + ); +} + #[test] fn codex_startup_import_fresh_install_imports_once_and_syncs_current_setting() { let _guard = test_mutex().lock().expect("acquire test mutex"); @@ -300,6 +375,7 @@ command = "say" claude: false, codex: true, // 启用 Codex gemini: false, + grokbuild: false, opencode: false, hermes: false, }, diff --git a/src-tauri/tests/provider_service.rs b/src-tauri/tests/provider_service.rs index dde2fe469..bbb11cf02 100644 --- a/src-tauri/tests/provider_service.rs +++ b/src-tauri/tests/provider_service.rs @@ -164,6 +164,7 @@ command = "say" claude: false, codex: true, gemini: false, + grokbuild: false, opencode: false, hermes: false, }, @@ -934,6 +935,7 @@ fn reapply_codex_official_live_resyncs_mcp_servers() { claude: false, codex: true, gemini: false, + grokbuild: false, opencode: false, hermes: false, }, @@ -1032,6 +1034,7 @@ fn reapply_codex_official_live_projects_mcp_despite_broken_claude_json() { claude: false, codex: true, gemini: false, + grokbuild: false, opencode: false, hermes: false, }, @@ -1124,6 +1127,7 @@ fn switch_codex_projects_mcp_despite_broken_claude_json() { claude: false, codex: true, gemini: false, + grokbuild: false, opencode: false, hermes: false, }, @@ -1187,6 +1191,7 @@ fn sync_all_enabled_reports_broken_app_but_projects_the_rest() { claude: false, codex: true, gemini: false, + grokbuild: false, opencode: false, hermes: false, }, diff --git a/src-tauri/tests/support.rs b/src-tauri/tests/support.rs index 35ff1ee3a..d9b2f0259 100644 --- a/src-tauri/tests/support.rs +++ b/src-tauri/tests/support.rs @@ -31,6 +31,7 @@ pub fn reset_test_fs() { ".codex", ".cc-switch", ".gemini", + ".grok", ".config", ".openclaw", "profiles", diff --git a/src/App.tsx b/src/App.tsx index 645f1002d..1ac823033 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -127,6 +127,7 @@ const VALID_APPS: AppId[] = [ "claude-desktop", "codex", "gemini", + "grokbuild", "opencode", "openclaw", "hermes", @@ -194,6 +195,7 @@ function App() { "claude-desktop": true, codex: true, gemini: true, + grokbuild: true, opencode: true, openclaw: true, hermes: true, @@ -204,6 +206,7 @@ function App() { if (visibleApps["claude-desktop"]) return "claude-desktop"; if (visibleApps.codex) return "codex"; if (visibleApps.gemini) return "gemini"; + if (visibleApps.grokbuild) return "grokbuild"; if (visibleApps.opencode) return "opencode"; if (visibleApps.openclaw) return "openclaw"; if (visibleApps.hermes) return "hermes"; @@ -222,6 +225,7 @@ function App() { currentView === "sessions" && sharedFeatureApp !== "claude" && sharedFeatureApp !== "codex" && + sharedFeatureApp !== "grokbuild" && sharedFeatureApp !== "opencode" && sharedFeatureApp !== "openclaw" && sharedFeatureApp !== "gemini" && @@ -291,6 +295,7 @@ function App() { const hasSessionSupport = sharedFeatureApp === "claude" || sharedFeatureApp === "codex" || + sharedFeatureApp === "grokbuild" || sharedFeatureApp === "opencode" || sharedFeatureApp === "openclaw" || sharedFeatureApp === "gemini" || @@ -1405,7 +1410,9 @@ function App() { ? "openclaw" : activeApp === "hermes" ? "hermes" - : "default" + : activeApp === "grokbuild" + ? "grokbuild" + : "default" } className="flex items-center gap-1" initial={{ opacity: 0 }} diff --git a/src/components/AppSwitcher.tsx b/src/components/AppSwitcher.tsx index 3ffdb09b8..06bc5368b 100644 --- a/src/components/AppSwitcher.tsx +++ b/src/components/AppSwitcher.tsx @@ -23,6 +23,7 @@ const ALL_APPS: AppId[] = [ "claude-desktop", "codex", "gemini", + "grokbuild", "opencode", "openclaw", "hermes", @@ -46,6 +47,7 @@ export function AppSwitcher({ "claude-desktop": "claude", codex: "openai", gemini: "gemini", + grokbuild: "grok", opencode: "opencode", openclaw: "openclaw", hermes: "hermes", @@ -55,6 +57,7 @@ export function AppSwitcher({ "claude-desktop": "Claude Desktop", codex: "Codex", gemini: "Gemini", + grokbuild: "Grok Build", opencode: "OpenCode", openclaw: "OpenClaw", hermes: "Hermes", diff --git a/src/components/UsageScriptModal.tsx b/src/components/UsageScriptModal.tsx index ec827b2fd..8430a3e87 100644 --- a/src/components/UsageScriptModal.tsx +++ b/src/components/UsageScriptModal.tsx @@ -14,6 +14,7 @@ import { extractCodexBaseUrl, extractCodexExperimentalBearerToken, } from "@/utils/providerConfigUtils"; +import { parseGrokBuildConfig } from "@/utils/grokBuildConfig"; import JsonEditor from "./JsonEditor"; import * as prettier from "prettier/standalone"; import * as parserBabel from "prettier/parser-babel"; @@ -262,6 +263,15 @@ const UsageScriptModal: React.FC = ({ apiKey: env.GEMINI_API_KEY || env.GOOGLE_API_KEY, baseUrl: env.GOOGLE_GEMINI_BASE_URL, }; + } else if (appId === "grokbuild") { + const grokConfig = parseGrokBuildConfig( + (config as any).config, + provider.name, + ); + return { + apiKey: grokConfig.apiKey, + baseUrl: grokConfig.baseUrl, + }; } else if (appId === "hermes") { // Hermes: settingsConfig 顶层扁平(snake_case,对应 config.yaml) return { diff --git a/src/components/mcp/McpFormModal.tsx b/src/components/mcp/McpFormModal.tsx index 0fd784b05..778de7d59 100644 --- a/src/components/mcp/McpFormModal.tsx +++ b/src/components/mcp/McpFormModal.tsx @@ -42,7 +42,7 @@ const McpFormModal: React.FC = ({ onClose, existingIds = [], defaultFormat = "json", - defaultEnabledApps = ["claude", "codex", "gemini"], + defaultEnabledApps = ["claude", "codex", "gemini", "grokbuild"], }) => { const { t } = useTranslation(); const { formatTomlError, validateTomlConfig, validateJsonConfig } = @@ -65,17 +65,22 @@ const McpFormModal: React.FC = ({ claude: boolean; codex: boolean; gemini: boolean; + grokbuild: boolean; opencode: boolean; openclaw: boolean; hermes: boolean; }>(() => { if (initialData?.apps) { - return { ...initialData.apps }; + return { + ...initialData.apps, + grokbuild: initialData.apps.grokbuild ?? false, + }; } return { claude: defaultEnabledApps.includes("claude"), codex: defaultEnabledApps.includes("codex"), gemini: defaultEnabledApps.includes("gemini"), + grokbuild: defaultEnabledApps.includes("grokbuild"), opencode: defaultEnabledApps.includes("opencode"), openclaw: defaultEnabledApps.includes("openclaw"), hermes: defaultEnabledApps.includes("hermes"), @@ -566,6 +571,22 @@ const McpFormModal: React.FC = ({ +
+ + setEnabledApps({ ...enabledApps, grokbuild: checked }) + } + /> + +
+
= ({ "claude-desktop": "CLAUDE.md", codex: "AGENTS.md", gemini: "GEMINI.md", + grokbuild: "AGENTS.md", opencode: "AGENTS.md", hermes: "AGENTS.md", }; diff --git a/src/components/prompts/PromptFormPanel.tsx b/src/components/prompts/PromptFormPanel.tsx index 1486dff06..b9bc9db09 100644 --- a/src/components/prompts/PromptFormPanel.tsx +++ b/src/components/prompts/PromptFormPanel.tsx @@ -29,6 +29,7 @@ const PromptFormPanel: React.FC = ({ "claude-desktop": "CLAUDE.md", codex: "AGENTS.md", gemini: "GEMINI.md", + grokbuild: "AGENTS.md", opencode: "AGENTS.md", openclaw: "AGENTS.md", hermes: "AGENTS.md", diff --git a/src/components/providers/AddProviderDialog.tsx b/src/components/providers/AddProviderDialog.tsx index 11ba54412..10af95859 100644 --- a/src/components/providers/AddProviderDialog.tsx +++ b/src/components/providers/AddProviderDialog.tsx @@ -19,6 +19,7 @@ import { codexProviderPresets } from "@/config/codexProviderPresets"; import { geminiProviderPresets } from "@/config/geminiProviderPresets"; import { claudeDesktopProviderPresets } from "@/config/claudeDesktopProviderPresets"; import { extractCodexBaseUrl } from "@/utils/providerConfigUtils"; +import { extractGrokBuildBaseUrl } from "@/utils/grokBuildConfig"; import type { OpenClawSuggestedDefaults } from "@/config/openclawProviderPresets"; import type { UniversalProviderPreset } from "@/config/universalProviderPresets"; @@ -48,6 +49,7 @@ export function AddProviderDialog({ appId !== "opencode" && appId !== "openclaw" && appId !== "hermes" && + appId !== "grokbuild" && appId !== "claude-desktop"; const [activeTab, setActiveTab] = useState<"app-specific" | "universal">( "app-specific", @@ -255,6 +257,11 @@ export function AddProviderDialog({ if (env?.GOOGLE_GEMINI_BASE_URL) { addUrl(env.GOOGLE_GEMINI_BASE_URL); } + } else if (appId === "grokbuild") { + const config = parsedConfig.config as string | undefined; + if (config) { + addUrl(extractGrokBuildBaseUrl(config)); + } } else if (appId === "opencode") { const options = parsedConfig.options as | Record diff --git a/src/components/providers/ProviderCard.tsx b/src/components/providers/ProviderCard.tsx index 2c7800478..a73cf246c 100644 --- a/src/components/providers/ProviderCard.tsx +++ b/src/components/providers/ProviderCard.tsx @@ -28,6 +28,7 @@ import { import { supportsOfficialProxyTakeover } from "@/utils/providerCapabilities"; import { useProviderHealth } from "@/lib/query/failover"; import { useUsageQuery } from "@/lib/query/queries"; +import { resolveProviderIcon } from "@/utils/providerIcon"; interface DragHandleProps { attributes: DraggableAttributes; @@ -350,7 +351,11 @@ export function ProviderCard({
= { claude: 8, "claude-desktop": 8, gemini: 8, + grokbuild: 12, opencode: 8, openclaw: 8, hermes: 8, diff --git a/src/components/providers/forms/GrokBuildProviderForm.tsx b/src/components/providers/forms/GrokBuildProviderForm.tsx new file mode 100644 index 000000000..b653bebef --- /dev/null +++ b/src/components/providers/forms/GrokBuildProviderForm.tsx @@ -0,0 +1,576 @@ +import { useEffect, useMemo, useState } from "react"; +import { useForm } from "react-hook-form"; +import { zodResolver } from "@hookform/resolvers/zod"; +import { useTranslation } from "react-i18next"; +import { toast } from "sonner"; +import { Button } from "@/components/ui/button"; +import { + Form, + FormControl, + FormField, + FormItem, + FormLabel, + FormMessage, +} from "@/components/ui/form"; +import { Input } from "@/components/ui/input"; +import JsonEditor from "@/components/JsonEditor"; +import { useDarkMode } from "@/hooks/useDarkMode"; +import { providerSchema, type ProviderFormData } from "@/lib/schemas/provider"; +import { + buildLocalProxyRequestOverrides, + formatRequestOverrideObject, +} from "@/lib/requestOverrides"; +import type { + ClaudeApiKeyField, + CodexApiFormat, + CodexChatReasoning, + PromptCacheRoutingMode, + ProviderCategory, + ProviderMeta, +} from "@/types"; +import type { ProviderFormProps, ProviderFormValues } from "./ProviderForm"; +import { BasicFormFields } from "./BasicFormFields"; +import { CodexFormFields } from "./CodexFormFields"; +import { ProviderPresetSelector } from "./ProviderPresetSelector"; +import { + codexProviderPresets, + type CodexProviderPreset, +} from "@/config/codexProviderPresets"; +import { + codexApiFormatFromWireApi, + extractCodexBaseUrl, + extractCodexModelName, + extractCodexWireApi, +} from "@/utils/providerConfigUtils"; +import { + buildGrokBuildConfig, + parseGrokBuildConfig, + updateGrokBuildConfig, + validateGrokBuildConfig, +} from "@/utils/grokBuildConfig"; +import { resolveProviderIcon } from "@/utils/providerIcon"; + +type GrokBuildProviderFormProps = Omit; + +const grokPresetEntries: Array<{ + id: string; + preset: CodexProviderPreset; +}> = codexProviderPresets + .map((preset, index) => ({ id: `grokbuild-${index}`, preset })) + .filter(({ preset }) => preset.category !== "official" && !preset.isOfficial); + +export const grokApiBackendFromApiFormat = (format: CodexApiFormat): string => { + if (format === "openai_chat") return "chat_completions"; + if (format === "anthropic") return "messages"; + return "responses"; +}; + +export function GrokBuildProviderForm({ + providerId, + submitLabel, + onSubmit, + onCancel, + onSubmittingChange, + initialData, + showButtons = true, +}: GrokBuildProviderFormProps) { + const { t } = useTranslation(); + const isDarkMode = useDarkMode(); + const initialConfigText = + typeof initialData?.settingsConfig?.config === "string" + ? initialData.settingsConfig.config + : undefined; + const initialConfig = useMemo( + () => parseGrokBuildConfig(initialConfigText, initialData?.name), + [initialConfigText, initialData?.name], + ); + + const [selectedPresetId, setSelectedPresetId] = useState( + initialData ? null : "custom", + ); + const [category, setCategory] = useState( + initialData?.category ?? "custom", + ); + const [isPartner, setIsPartner] = useState( + initialData?.meta?.isPartner ?? false, + ); + const [partnerPromotionKey, setPartnerPromotionKey] = useState(); + const [profile, setProfile] = useState(initialConfig.model); + const [upstreamModel, setUpstreamModel] = useState( + initialConfig.upstreamModel ?? initialConfig.model, + ); + const [baseUrl, setBaseUrl] = useState(initialConfig.baseUrl); + const [apiKey, setApiKey] = useState(initialConfig.apiKey); + const [apiBackend, setApiBackend] = useState(initialConfig.apiBackend); + const [contextWindow, setContextWindow] = useState( + String(initialConfig.contextWindow), + ); + const [rawConfig, setRawConfig] = useState( + initialConfigText ?? buildGrokBuildConfig(initialConfig), + ); + const [apiFormat, setApiFormat] = useState( + (initialData?.meta?.apiFormat as CodexApiFormat | undefined) ?? + "openai_responses", + ); + const [anthropicAuthField, setAnthropicAuthField] = + useState( + initialData?.meta?.apiKeyField ?? "ANTHROPIC_AUTH_TOKEN", + ); + const [impersonateClaudeCode, setImpersonateClaudeCode] = useState( + initialData?.meta?.impersonateClaudeCode === true, + ); + const [maxOutputTokens, setMaxOutputTokens] = useState( + initialData?.meta?.maxOutputTokens + ? String(initialData.meta.maxOutputTokens) + : "", + ); + const [codexChatReasoning, setCodexChatReasoning] = + useState(initialData?.meta?.codexChatReasoning ?? {}); + const [promptCacheRouting, setPromptCacheRouting] = + useState( + initialData?.meta?.promptCacheRouting ?? "auto", + ); + const [isFullUrl, setIsFullUrl] = useState( + initialData?.meta?.isFullUrl ?? false, + ); + const [customUserAgent, setCustomUserAgent] = useState( + initialData?.meta?.customUserAgent ?? "", + ); + const [headersOverride, setHeadersOverride] = useState( + formatRequestOverrideObject( + initialData?.meta?.localProxyRequestOverrides?.headers, + ), + ); + const [bodyOverride, setBodyOverride] = useState( + formatRequestOverrideObject( + initialData?.meta?.localProxyRequestOverrides?.body, + ), + ); + const [endpointAutoSelect, setEndpointAutoSelect] = useState( + initialData?.meta?.endpointAutoSelect ?? true, + ); + const [isEndpointModalOpen, setIsEndpointModalOpen] = useState(false); + const [presetEndpoints, setPresetEndpoints] = useState([]); + const [draftCustomEndpoints, setDraftCustomEndpoints] = useState( + [], + ); + + const form = useForm({ + resolver: zodResolver(providerSchema), + defaultValues: { + name: initialData?.name ?? initialConfig.name, + websiteUrl: initialData?.websiteUrl ?? "", + notes: initialData?.notes ?? "", + settingsConfig: JSON.stringify({ config: rawConfig }), + icon: + resolveProviderIcon( + "grokbuild", + initialData?.icon, + initialData?.iconColor, + ) ?? "", + iconColor: initialData?.iconColor ?? "", + }, + mode: "onSubmit", + }); + const { isSubmitting } = form.formState; + const websiteUrl = form.watch("websiteUrl") ?? ""; + + useEffect(() => { + onSubmittingChange?.(isSubmitting); + }, [isSubmitting, onSubmittingChange]); + + const presetCategoryLabels = useMemo( + () => ({ + official: t("providerForm.categoryOfficial", { defaultValue: "官方" }), + cn_official: t("providerForm.categoryCnOfficial", { + defaultValue: "国内官方", + }), + aggregator: t("providerForm.categoryAggregation", { + defaultValue: "聚合服务", + }), + third_party: t("providerForm.categoryThirdParty", { + defaultValue: "第三方", + }), + }), + [t], + ); + + const speedTestEndpoints = useMemo(() => { + const urls = new Set(); + const add = (url?: string) => { + const normalized = url?.trim().replace(/\/+$/, ""); + if (normalized) urls.add(normalized); + }; + add(baseUrl); + presetEndpoints.forEach(add); + draftCustomEndpoints.forEach(add); + return Array.from(urls).map((url) => ({ url })); + }, [baseUrl, draftCustomEndpoints, presetEndpoints]); + + const syncStructuredConfig = ( + overrides: Partial>, + ) => { + const next = { + model: profile, + upstreamModel, + baseUrl, + name: form.getValues("name") || initialConfig.name, + apiKey, + apiBackend, + contextWindow: Number.parseInt(contextWindow, 10), + ...overrides, + }; + setRawConfig((current) => updateGrokBuildConfig(current, next)); + }; + + const handlePresetChange = (presetId: string) => { + setSelectedPresetId(presetId); + if (presetId === "custom") { + setCategory("custom"); + setIsPartner(false); + setPartnerPromotionKey(undefined); + setPresetEndpoints([]); + return; + } + + const entry = grokPresetEntries.find( + (candidate) => candidate.id === presetId, + ); + if (!entry) return; + const preset = entry.preset; + const presetName = preset.nameKey ? String(t(preset.nameKey)) : preset.name; + const presetBaseUrl = extractCodexBaseUrl(preset.config) ?? ""; + const presetModel = extractCodexModelName(preset.config) ?? profile; + const presetApiFormat = + preset.apiFormat ?? + codexApiFormatFromWireApi(extractCodexWireApi(preset.config)) ?? + "openai_responses"; + const presetApiKey = + "auth" in preset && typeof preset.auth?.OPENAI_API_KEY === "string" + ? preset.auth.OPENAI_API_KEY + : ""; + const presetApiBackend = grokApiBackendFromApiFormat(presetApiFormat); + + form.setValue("name", presetName); + form.setValue("websiteUrl", preset.websiteUrl ?? ""); + form.setValue("icon", preset.icon ?? ""); + form.setValue("iconColor", preset.iconColor ?? ""); + setCategory(preset.category ?? "custom"); + setIsPartner(preset.isPartner ?? false); + setPartnerPromotionKey(preset.partnerPromotionKey); + setBaseUrl(presetBaseUrl); + setApiKey(presetApiKey); + setUpstreamModel(presetModel); + setApiFormat(presetApiFormat); + setApiBackend(presetApiBackend); + setPresetEndpoints(preset.endpointCandidates ?? []); + setRawConfig( + buildGrokBuildConfig({ + model: profile, + upstreamModel: presetModel, + baseUrl: presetBaseUrl, + name: presetName, + apiKey: presetApiKey, + apiBackend: presetApiBackend, + contextWindow: Number.parseInt(contextWindow, 10), + }), + ); + }; + + const handleRawConfigChange = (value: string) => { + setRawConfig(value); + if (validateGrokBuildConfig(value)) return; + const parsed = parseGrokBuildConfig(value, form.getValues("name")); + setProfile(parsed.model); + setUpstreamModel(parsed.upstreamModel ?? parsed.model); + setBaseUrl(parsed.baseUrl); + setApiKey(parsed.apiKey); + setApiBackend(parsed.apiBackend); + setContextWindow(String(parsed.contextWindow)); + if (parsed.name) form.setValue("name", parsed.name); + }; + + const handleSubmit = async (values: ProviderFormData) => { + const name = values.name.trim(); + const parsedContextWindow = Number.parseInt(contextWindow, 10); + const envKey = parseGrokBuildConfig(rawConfig).envKey?.trim(); + if ( + !name || + !baseUrl.trim() || + (!apiKey.trim() && !envKey) || + !profile.trim() + ) { + toast.error( + t("providerForm.requiredFields", { + defaultValue: "请填写供应商名称、API 地址、API Key 和模型", + }), + ); + return; + } + if (!Number.isInteger(parsedContextWindow) || parsedContextWindow <= 0) { + toast.error( + t("grokBuild.contextWindowInvalid", { + defaultValue: "上下文窗口必须是正整数", + }), + ); + return; + } + + const finalConfig = updateGrokBuildConfig(rawConfig, { + model: profile, + upstreamModel, + baseUrl, + name, + apiKey, + apiBackend, + contextWindow: parsedContextWindow, + }); + const configError = validateGrokBuildConfig(finalConfig); + if (configError) { + toast.error( + t("grokBuild.invalidToml", { + error: configError, + defaultValue: `config.toml 格式错误: ${configError}`, + }), + ); + return; + } + + const requestOverrides = buildLocalProxyRequestOverrides( + headersOverride, + bodyOverride, + ); + if (requestOverrides.error) { + toast.error(requestOverrides.error); + return; + } + + const customEndpoints = Object.fromEntries( + draftCustomEndpoints.map((url) => [ + url, + { url, addedAt: Date.now(), lastUsed: undefined }, + ]), + ); + const parsedMaxOutputTokens = Number.parseInt(maxOutputTokens, 10); + const initialMeta = { ...(initialData?.meta ?? {}) }; + delete initialMeta.custom_endpoints; + const meta: ProviderMeta = { + ...initialMeta, + apiFormat, + apiKeyField: anthropicAuthField, + isFullUrl, + endpointAutoSelect, + isPartner, + partnerPromotionKey, + impersonateClaudeCode, + promptCacheRouting, + codexChatReasoning, + customUserAgent: customUserAgent.trim() || undefined, + localProxyRequestOverrides: requestOverrides.overrides, + maxOutputTokens: + Number.isInteger(parsedMaxOutputTokens) && parsedMaxOutputTokens > 0 + ? parsedMaxOutputTokens + : undefined, + }; + if (!providerId && Object.keys(customEndpoints).length > 0) { + meta.custom_endpoints = customEndpoints; + } + const payload: ProviderFormValues = { + ...values, + name, + websiteUrl: values.websiteUrl?.trim() ?? "", + notes: values.notes?.trim() ?? "", + settingsConfig: JSON.stringify({ config: finalConfig }), + presetId: selectedPresetId ?? undefined, + presetCategory: category ?? "custom", + isPartner, + meta, + }; + + await onSubmit(payload); + }; + + const rawConfigError = validateGrokBuildConfig(rawConfig); + + return ( +
+ + {!initialData && ( + + )} + + + +
+ + + {t("grokBuild.profile", { defaultValue: "客户端模型档位" })} + + { + const value = event.target.value; + setProfile(value); + syncStructuredConfig({ model: value }); + }} + placeholder="grok-4.5" + autoComplete="off" + /> + + + + + {t("grokBuild.apiBackend", { defaultValue: "API Backend" })} + + { + const value = event.target.value; + setApiBackend(value); + syncStructuredConfig({ apiBackend: value }); + }} + placeholder="responses" + autoComplete="off" + /> + + + + + {t("grokBuild.contextWindow", { defaultValue: "上下文窗口" })} + + { + const value = event.target.value; + setContextWindow(value); + syncStructuredConfig({ + contextWindow: Number.parseInt(value, 10), + }); + }} + /> + +
+ + { + setApiKey(value); + syncStructuredConfig({ apiKey: value }); + }} + category={category} + shouldShowApiKeyLink={Boolean(websiteUrl)} + websiteUrl={websiteUrl} + isPartner={isPartner} + partnerPromotionKey={partnerPromotionKey} + shouldShowSpeedTest + codexBaseUrl={baseUrl} + onBaseUrlChange={(value) => { + setBaseUrl(value); + syncStructuredConfig({ baseUrl: value }); + }} + isFullUrl={isFullUrl} + onFullUrlChange={setIsFullUrl} + isEndpointModalOpen={isEndpointModalOpen} + onEndpointModalToggle={setIsEndpointModalOpen} + onCustomEndpointsChange={setDraftCustomEndpoints} + autoSelect={endpointAutoSelect} + onAutoSelectChange={setEndpointAutoSelect} + codexModel={upstreamModel} + onModelChange={(value) => { + setUpstreamModel(value); + syncStructuredConfig({ upstreamModel: value }); + }} + apiFormat={apiFormat} + onApiFormatChange={(value) => { + const backend = grokApiBackendFromApiFormat(value); + setApiFormat(value); + setApiBackend(backend); + syncStructuredConfig({ apiBackend: backend }); + }} + anthropicAuthField={anthropicAuthField} + onAnthropicAuthFieldChange={setAnthropicAuthField} + impersonateClaudeCode={impersonateClaudeCode} + onImpersonateClaudeCodeChange={setImpersonateClaudeCode} + maxOutputTokens={maxOutputTokens} + onMaxOutputTokensChange={setMaxOutputTokens} + codexChatReasoning={codexChatReasoning} + onCodexChatReasoningChange={setCodexChatReasoning} + promptCacheRouting={promptCacheRouting} + onPromptCacheRoutingChange={setPromptCacheRouting} + speedTestEndpoints={speedTestEndpoints} + customUserAgent={customUserAgent} + onCustomUserAgentChange={setCustomUserAgent} + localProxyHeadersOverride={headersOverride} + onLocalProxyHeadersOverrideChange={setHeadersOverride} + localProxyBodyOverride={bodyOverride} + onLocalProxyBodyOverrideChange={setBodyOverride} + /> + +
+ + {t("grokBuild.rawConfig", { defaultValue: "config.toml" })} + + + {rawConfigError && ( +

+ {t("grokBuild.invalidToml", { + error: rawConfigError, + defaultValue: `Invalid config.toml: ${rawConfigError}`, + })} +

+ )} +
+ + ( + + + + + + + )} + /> + + {showButtons && ( +
+ + +
+ )} + + + ); +} diff --git a/src/components/providers/forms/ProviderForm.tsx b/src/components/providers/forms/ProviderForm.tsx index 75130ecbe..ec118dd1c 100644 --- a/src/components/providers/forms/ProviderForm.tsx +++ b/src/components/providers/forms/ProviderForm.tsx @@ -77,6 +77,7 @@ import { ProviderPresetSelector } from "./ProviderPresetSelector"; import { BasicFormFields } from "./BasicFormFields"; import { ClaudeFormFields } from "./ClaudeFormFields"; import { ClaudeDesktopProviderForm } from "./ClaudeDesktopProviderForm"; +import { GrokBuildProviderForm } from "./GrokBuildProviderForm"; import { CodexFormFields } from "./CodexFormFields"; import { GeminiFormFields } from "./GeminiFormFields"; import { OmoFormFields } from "./OmoFormFields"; @@ -243,6 +244,9 @@ export function ProviderForm(props: ProviderFormProps) { if (props.appId === "claude-desktop") { return ; } + if (props.appId === "grokbuild") { + return ; + } return ; } diff --git a/src/components/proxy/ClaudeDesktopRouteToggle.tsx b/src/components/proxy/ClaudeDesktopRouteToggle.tsx index cc924d0fc..bf9aa950f 100644 --- a/src/components/proxy/ClaudeDesktopRouteToggle.tsx +++ b/src/components/proxy/ClaudeDesktopRouteToggle.tsx @@ -25,7 +25,10 @@ export function ClaudeDesktopRouteToggle({ const isBusy = isStarting || isStoppingServer; const otherTakeoverActive = Boolean( - takeoverStatus?.claude || takeoverStatus?.codex || takeoverStatus?.gemini, + takeoverStatus?.claude || + takeoverStatus?.codex || + takeoverStatus?.gemini || + takeoverStatus?.grokbuild, ); const routeAddress = status?.address ?? "127.0.0.1"; const routePort = status?.port ?? 15721; diff --git a/src/components/proxy/FailoverToggle.tsx b/src/components/proxy/FailoverToggle.tsx index 757a73018..739fb03b7 100644 --- a/src/components/proxy/FailoverToggle.tsx +++ b/src/components/proxy/FailoverToggle.tsx @@ -38,7 +38,9 @@ export function FailoverToggle({ className, activeApp }: FailoverToggleProps) { ? "Claude" : activeApp === "codex" ? "Codex" - : "Gemini"; + : activeApp === "grokbuild" + ? "Grok Build" + : "Gemini"; const tooltipText = !takeoverEnabled ? t("failover.tooltip.takeoverRequired", { diff --git a/src/components/proxy/ProxyPanel.tsx b/src/components/proxy/ProxyPanel.tsx index 6166271af..a7b6fbda5 100644 --- a/src/components/proxy/ProxyPanel.tsx +++ b/src/components/proxy/ProxyPanel.tsx @@ -72,6 +72,7 @@ export function ProxyPanel({ const { data: claudeQueue = [] } = useFailoverQueue("claude"); const { data: codexQueue = [] } = useFailoverQueue("codex"); const { data: geminiQueue = [] } = useFailoverQueue("gemini"); + const { data: grokQueue = [] } = useFailoverQueue("grokbuild"); const handleTakeoverChange = async (appType: string, enabled: boolean) => { try { @@ -272,30 +273,32 @@ export function ProxyPanel({ defaultValue: "应用接管", })}

-
- {(["claude", "codex", "gemini"] as const).map((appType) => { - const isEnabled = - takeoverStatus?.[ - appType as keyof typeof takeoverStatus - ] ?? false; - return ( -
- - {appType} - - - handleTakeoverChange(appType, checked) - } - disabled={setTakeoverForApp.isPending} - /> -
- ); - })} +
+ {(["claude", "codex", "gemini", "grokbuild"] as const).map( + (appType) => { + const isEnabled = + takeoverStatus?.[ + appType as keyof typeof takeoverStatus + ] ?? false; + return ( +
+ + {appType === "grokbuild" ? "Grok Build" : appType} + + + handleTakeoverChange(appType, checked) + } + disabled={setTakeoverForApp.isPending} + /> +
+ ); + }, + )}

{t("proxy.takeover.hint", { @@ -415,7 +418,8 @@ export function ProxyPanel({ {/* [6] Provider queues */} {(claudeQueue.length > 0 || codexQueue.length > 0 || - geminiQueue.length > 0) && ( + geminiQueue.length > 0 || + grokQueue.length > 0) && (

@@ -459,6 +463,18 @@ export function ProxyPanel({ status={status} /> )} + + {grokQueue.length > 0 && ( + ({ + id: item.providerId, + name: item.providerName, + }))} + status={status} + /> + )}
)}
diff --git a/src/components/proxy/ProxyToggle.tsx b/src/components/proxy/ProxyToggle.tsx index 61c831edd..fa2993d40 100644 --- a/src/components/proxy/ProxyToggle.tsx +++ b/src/components/proxy/ProxyToggle.tsx @@ -39,7 +39,9 @@ export function ProxyToggle({ className, activeApp }: ProxyToggleProps) { ? "Codex" : activeApp === "gemini" ? "Gemini" - : "OpenCode"; + : activeApp === "grokbuild" + ? "Grok Build" + : "OpenCode"; const tooltipText = takeoverEnabled ? isRunning diff --git a/src/components/sessions/SessionManagerPage.tsx b/src/components/sessions/SessionManagerPage.tsx index 0c900a930..11178e0b2 100644 --- a/src/components/sessions/SessionManagerPage.tsx +++ b/src/components/sessions/SessionManagerPage.tsx @@ -83,6 +83,7 @@ const SESSION_GROUP_EXPANSION_STORAGE_KEY = type ProviderFilter = | "all" | "codex" + | "grokbuild" | "claude" | "opencode" | "openclaw" @@ -1077,6 +1078,16 @@ export function SessionManagerPage({ appId }: { appId: string }) { Codex
+ +
+ + Grok Build +
+
{ if (providerId === "codex") return "openai"; + if (providerId === "grokbuild") return "grok"; if (providerId === "claude") return "claude"; if (providerId === "opencode") return "opencode"; if (providerId === "openclaw") return "openclaw"; diff --git a/src/components/settings/AboutSection.tsx b/src/components/settings/AboutSection.tsx index cf5e1d524..117e36793 100644 --- a/src/components/settings/AboutSection.tsx +++ b/src/components/settings/AboutSection.tsx @@ -63,6 +63,7 @@ const TOOL_NAMES = [ "claude", "codex", "gemini", + "grok", "opencode", "openclaw", "hermes", @@ -130,6 +131,8 @@ ${posixScriptInstallCommand("https://claude.ai/install.sh")} || npm i -g @anthro npm i -g @openai/codex@latest # Gemini CLI npm i -g @google/gemini-cli@latest +# Grok Build +npm i -g @xai-official/grok@latest # OpenCode ${posixScriptInstallCommand("https://opencode.ai/install")} || npm i -g opencode-ai@latest # OpenClaw @@ -143,6 +146,8 @@ npm i -g @anthropic-ai/claude-code@latest npm i -g @openai/codex@latest # Gemini CLI npm i -g @google/gemini-cli@latest +# Grok Build +npm i -g @xai-official/grok@latest # OpenCode npm i -g opencode-ai@latest # OpenClaw @@ -158,6 +163,7 @@ const TOOL_DISPLAY_NAMES: Record = { claude: "Claude Code", codex: "Codex", gemini: "Gemini CLI", + grok: "Grok Build", opencode: "OpenCode", openclaw: "OpenClaw", hermes: "Hermes", @@ -173,6 +179,7 @@ const TOOL_APP_IDS: Record = { claude: "claude", codex: "codex", gemini: "gemini", + grok: "grokbuild", opencode: "opencode", openclaw: "openclaw", hermes: "hermes", diff --git a/src/components/settings/AppVisibilitySettings.tsx b/src/components/settings/AppVisibilitySettings.tsx index f9f1195e2..7276b89a6 100644 --- a/src/components/settings/AppVisibilitySettings.tsx +++ b/src/components/settings/AppVisibilitySettings.tsx @@ -26,6 +26,7 @@ const APP_CONFIG: Array<{ }, { id: "codex", icon: "openai", nameKey: "apps.codex" }, { id: "gemini", icon: "gemini", nameKey: "apps.gemini" }, + { id: "grokbuild", icon: "grok", nameKey: "apps.grokbuild" }, { id: "opencode", icon: "opencode", nameKey: "apps.opencode" }, { id: "openclaw", icon: "openclaw", nameKey: "apps.openclaw" }, { id: "hermes", icon: "hermes", nameKey: "apps.hermes" }, @@ -42,6 +43,7 @@ export function AppVisibilitySettings({ "claude-desktop": true, codex: true, gemini: true, + grokbuild: true, opencode: true, openclaw: true, hermes: true, @@ -73,7 +75,7 @@ export function AppVisibilitySettings({ {t("settings.appVisibility.description")}

-
+
{APP_CONFIG.map((app) => { const isVisible = visibleApps[app.id]; // Disable button if this is the last visible app diff --git a/src/components/settings/DirectorySettings.tsx b/src/components/settings/DirectorySettings.tsx index 5966a1268..9ce3f8b0e 100644 --- a/src/components/settings/DirectorySettings.tsx +++ b/src/components/settings/DirectorySettings.tsx @@ -17,6 +17,7 @@ interface DirectorySettingsProps { claudeDir?: string; codexDir?: string; geminiDir?: string; + grokDir?: string; opencodeDir?: string; openclawDir?: string; hermesDir?: string; @@ -34,6 +35,7 @@ export function DirectorySettings({ claudeDir, codexDir, geminiDir, + grokDir, opencodeDir, openclawDir, hermesDir, @@ -126,6 +128,17 @@ export function DirectorySettings({ onReset={() => onResetDirectory("gemini")} /> + onDirectoryChange("grokbuild", val)} + onBrowse={() => onBrowseDirectory("grokbuild")} + onReset={() => onResetDirectory("grokbuild")} + /> + = ({ claude: skill.foundIn.includes("claude"), codex: skill.foundIn.includes("codex"), gemini: skill.foundIn.includes("gemini"), + grokbuild: skill.foundIn.includes("grokbuild"), opencode: skill.foundIn.includes("opencode"), openclaw: false, hermes: skill.foundIn.includes("hermes"), @@ -772,6 +774,7 @@ const ImportSkillsDialog: React.FC = ({ claude: false, codex: false, gemini: false, + grokbuild: false, opencode: false, openclaw: false, hermes: false, @@ -815,6 +818,7 @@ const ImportSkillsDialog: React.FC = ({ claude: false, codex: false, gemini: false, + grokbuild: false, opencode: false, openclaw: false, hermes: false, @@ -828,6 +832,7 @@ const ImportSkillsDialog: React.FC = ({ claude: false, codex: false, gemini: false, + grokbuild: false, opencode: false, openclaw: false, hermes: false, diff --git a/src/components/usage/PricingConfigPanel.tsx b/src/components/usage/PricingConfigPanel.tsx index 5e69b4278..1d3a939a2 100644 --- a/src/components/usage/PricingConfigPanel.tsx +++ b/src/components/usage/PricingConfigPanel.tsx @@ -33,7 +33,7 @@ import { Plus, Pencil, Trash2, Loader2 } from "lucide-react"; import { toast } from "sonner"; import { proxyApi } from "@/lib/api/proxy"; -const PRICING_APPS = ["claude", "codex", "gemini"] as const; +const PRICING_APPS = ["claude", "codex", "gemini", "grokbuild"] as const; type PricingApp = (typeof PRICING_APPS)[number]; type PricingModelSource = "request" | "response"; @@ -57,6 +57,7 @@ export function PricingConfigPanel() { claude: { multiplier: "1", source: "response" }, codex: { multiplier: "1", source: "response" }, gemini: { multiplier: "1", source: "response" }, + grokbuild: { multiplier: "1", source: "response" }, }); const [originalConfigs, setOriginalConfigs] = useState( null, @@ -102,6 +103,7 @@ export function PricingConfigPanel() { claude: { multiplier: "1", source: "response" }, codex: { multiplier: "1", source: "response" }, gemini: { multiplier: "1", source: "response" }, + grokbuild: { multiplier: "1", source: "response" }, }; for (const result of results) { newState[result.app] = { diff --git a/src/components/usage/UsageDashboard.tsx b/src/components/usage/UsageDashboard.tsx index a03fa833c..0da44b0f1 100644 --- a/src/components/usage/UsageDashboard.tsx +++ b/src/components/usage/UsageDashboard.tsx @@ -63,6 +63,7 @@ const APP_FILTER_ICON: Record = { claude: "claude", codex: "openai", gemini: "gemini", + grokbuild: "grok", opencode: "opencode", }; diff --git a/src/components/usage/UsageHero.tsx b/src/components/usage/UsageHero.tsx index 8cc524f4d..8a17ccfdb 100644 --- a/src/components/usage/UsageHero.tsx +++ b/src/components/usage/UsageHero.tsx @@ -61,6 +61,10 @@ const TITLE_THEMES: Record = { accent: "text-sky-600 dark:text-sky-400", iconBg: "bg-sky-500/10", }, + grokbuild: { + accent: "text-rose-600 dark:text-rose-400", + iconBg: "bg-rose-500/10", + }, opencode: { accent: "text-purple-600 dark:text-purple-400", iconBg: "bg-purple-500/10", diff --git a/src/config/appConfig.tsx b/src/config/appConfig.tsx index a2103a926..c3be05c45 100644 --- a/src/config/appConfig.tsx +++ b/src/config/appConfig.tsx @@ -20,6 +20,7 @@ export const APP_IDS: AppId[] = [ "claude-desktop", "codex", "gemini", + "grokbuild", "opencode", "openclaw", "hermes", @@ -30,6 +31,7 @@ export const SKILLS_APP_IDS: AppId[] = [ "claude", "codex", "gemini", + "grokbuild", "opencode", "hermes", ]; @@ -70,6 +72,21 @@ export const APP_ICON_MAP: Record = { badgeClass: "bg-blue-500/10 text-blue-700 dark:text-blue-300 hover:bg-blue-500/20 border-0 gap-1.5", }, + grokbuild: { + label: "Grok Build", + icon: ( + + ), + activeClass: + "bg-cyan-500/10 ring-1 ring-cyan-500/20 hover:bg-cyan-500/20 text-cyan-700 dark:text-cyan-300", + badgeClass: + "bg-cyan-500/10 text-cyan-700 dark:text-cyan-300 hover:bg-cyan-500/20 border-0 gap-1.5", + }, opencode: { label: "OpenCode", icon: ( diff --git a/src/hooks/useDirectorySettings.ts b/src/hooks/useDirectorySettings.ts index 70347328a..35d0ed801 100644 --- a/src/hooks/useDirectorySettings.ts +++ b/src/hooks/useDirectorySettings.ts @@ -10,6 +10,7 @@ type AppDirectoryKey = | "claude" | "codex" | "gemini" + | "grokbuild" | "opencode" | "openclaw" | "hermes"; @@ -20,6 +21,7 @@ export interface ResolvedDirectories { claude: string; codex: string; gemini: string; + grokbuild: string; opencode: string; openclaw: string; hermes: string; @@ -33,6 +35,7 @@ const APP_DIRECTORY_META: Record< claude: { key: "claude", defaultFolder: ".claude" }, codex: { key: "codex", defaultFolder: ".codex" }, gemini: { key: "gemini", defaultFolder: ".gemini" }, + grokbuild: { key: "grokbuild", defaultFolder: ".grok" }, opencode: { key: "opencode", defaultFolder: ".config/opencode" }, openclaw: { key: "openclaw", defaultFolder: ".openclaw" }, hermes: { key: "hermes", defaultFolder: ".hermes" }, @@ -45,6 +48,7 @@ const DIRECTORY_KEY_TO_SETTINGS_FIELD: Record< claude: "claudeConfigDir", codex: "codexConfigDir", gemini: "geminiConfigDir", + grokbuild: "grokConfigDir", opencode: "opencodeConfigDir", openclaw: "openclawConfigDir", hermes: "hermesConfigDir", @@ -130,6 +134,7 @@ export function useDirectorySettings({ claude: "", codex: "", gemini: "", + grokbuild: "", opencode: "", openclaw: "", hermes: "", @@ -141,6 +146,7 @@ export function useDirectorySettings({ claude: "", codex: "", gemini: "", + grokbuild: "", opencode: "", openclaw: "", hermes: "", @@ -159,6 +165,7 @@ export function useDirectorySettings({ claudeDir, codexDir, geminiDir, + grokDir, opencodeDir, openclawDir, hermesDir, @@ -166,6 +173,7 @@ export function useDirectorySettings({ defaultClaudeDir, defaultCodexDir, defaultGeminiDir, + defaultGrokDir, defaultOpencodeDir, defaultOpenclawDir, defaultHermesDir, @@ -174,6 +182,7 @@ export function useDirectorySettings({ settingsApi.getConfigDir("claude"), settingsApi.getConfigDir("codex"), settingsApi.getConfigDir("gemini"), + settingsApi.getConfigDir("grokbuild"), settingsApi.getConfigDir("opencode"), settingsApi.getConfigDir("openclaw"), settingsApi.getConfigDir("hermes"), @@ -181,6 +190,7 @@ export function useDirectorySettings({ computeDefaultConfigDir("claude"), computeDefaultConfigDir("codex"), computeDefaultConfigDir("gemini"), + computeDefaultConfigDir("grokbuild"), computeDefaultConfigDir("opencode"), computeDefaultConfigDir("openclaw"), computeDefaultConfigDir("hermes"), @@ -195,6 +205,7 @@ export function useDirectorySettings({ claude: defaultClaudeDir ?? "", codex: defaultCodexDir ?? "", gemini: defaultGeminiDir ?? "", + grokbuild: defaultGrokDir ?? "", opencode: defaultOpencodeDir ?? "", openclaw: defaultOpenclawDir ?? "", hermes: defaultHermesDir ?? "", @@ -208,6 +219,7 @@ export function useDirectorySettings({ claude: claudeDir || defaultsRef.current.claude, codex: codexDir || defaultsRef.current.codex, gemini: geminiDir || defaultsRef.current.gemini, + grokbuild: grokDir || defaultsRef.current.grokbuild, opencode: opencodeDir || defaultsRef.current.opencode, openclaw: openclawDir || defaultsRef.current.openclaw, hermes: hermesDir || defaultsRef.current.hermes, @@ -349,6 +361,7 @@ export function useDirectorySettings({ claude: overrides?.claude ?? defaultsRef.current.claude, codex: overrides?.codex ?? defaultsRef.current.codex, gemini: overrides?.gemini ?? defaultsRef.current.gemini, + grokbuild: overrides?.grokbuild ?? defaultsRef.current.grokbuild, opencode: overrides?.opencode ?? defaultsRef.current.opencode, openclaw: overrides?.openclaw ?? defaultsRef.current.openclaw, hermes: overrides?.hermes ?? defaultsRef.current.hermes, diff --git a/src/hooks/useProviderActions.ts b/src/hooks/useProviderActions.ts index daa463224..84b9ce69e 100644 --- a/src/hooks/useProviderActions.ts +++ b/src/hooks/useProviderActions.ts @@ -159,7 +159,7 @@ export function useProviderActions( activeApp === "claude" && provider.meta?.providerType === "github_copilot"; const isCodexChatFormat = - activeApp === "codex" && + (activeApp === "codex" || activeApp === "grokbuild") && (provider.meta?.apiFormat === "openai_chat" || (typeof (provider.settingsConfig as Record)?.config === "string" && @@ -169,7 +169,7 @@ export function useProviderActions( ), ))); const isCodexAnthropicFormat = - activeApp === "codex" && + (activeApp === "codex" || activeApp === "grokbuild") && (provider.meta?.apiFormat === "anthropic" || (typeof (provider.settingsConfig as Record)?.config === "string" && @@ -220,7 +220,9 @@ export function useProviderActions( }); } else if ( provider.meta?.isFullUrl && - (activeApp === "claude" || activeApp === "codex") + (activeApp === "claude" || + activeApp === "codex" || + activeApp === "grokbuild") ) { proxyRequiredReason = t("notifications.proxyReasonFullUrl", { defaultValue: "开启了完整 URL 连接模式", @@ -281,6 +283,9 @@ export function useProviderActions( if (activeApp === "codex") { messageKey = "notifications.codexRestartRequired"; defaultMessage = "切换成功,请重启客户端以生效"; + } else if (activeApp === "grokbuild") { + messageKey = "notifications.grokBuildRestartRequired"; + defaultMessage = "切换成功,请重启 Grok Build 以生效"; } else if (activeApp === "claude-desktop") { if (provider.meta?.claudeDesktopMode === "proxy") { messageKey = "notifications.claudeDesktopProxyRestartRequired"; diff --git a/src/hooks/useProxyStatus.ts b/src/hooks/useProxyStatus.ts index 072c9b884..c7995e154 100644 --- a/src/hooks/useProxyStatus.ts +++ b/src/hooks/useProxyStatus.ts @@ -132,7 +132,9 @@ export function useProxyStatus() { ? "Codex" : variables.appType === "gemini" ? "Gemini" - : "OpenCode"; + : variables.appType === "grokbuild" + ? "Grok Build" + : "OpenCode"; toast.success( variables.enabled @@ -215,6 +217,7 @@ export function useProxyStatus() { takeoverStatus?.claude || takeoverStatus?.codex || takeoverStatus?.gemini || + takeoverStatus?.grokbuild || false, // 启动/停止(总开关) diff --git a/src/hooks/useSettings.ts b/src/hooks/useSettings.ts index ef1a66757..492da10a4 100644 --- a/src/hooks/useSettings.ts +++ b/src/hooks/useSettings.ts @@ -110,6 +110,7 @@ export function useSettings(): UseSettingsResult { claude: sanitizeDir(data?.claudeConfigDir), codex: sanitizeDir(data?.codexConfigDir), gemini: sanitizeDir(data?.geminiConfigDir), + grokbuild: sanitizeDir(data?.grokConfigDir), opencode: sanitizeDir(data?.opencodeConfigDir), openclaw: sanitizeDir(data?.openclawConfigDir), hermes: sanitizeDir(data?.hermesConfigDir), @@ -187,6 +188,7 @@ export function useSettings(): UseSettingsResult { const sanitizedClaudeDir = sanitizeDir(mergedSettings.claudeConfigDir); const sanitizedCodexDir = sanitizeDir(mergedSettings.codexConfigDir); const sanitizedGeminiDir = sanitizeDir(mergedSettings.geminiConfigDir); + const sanitizedGrokDir = sanitizeDir(mergedSettings.grokConfigDir); const sanitizedOpencodeDir = sanitizeDir( mergedSettings.opencodeConfigDir, ); @@ -204,6 +206,7 @@ export function useSettings(): UseSettingsResult { claudeConfigDir: sanitizedClaudeDir, codexConfigDir: sanitizedCodexDir, geminiConfigDir: sanitizedGeminiDir, + grokConfigDir: sanitizedGrokDir, opencodeConfigDir: sanitizedOpencodeDir, openclawConfigDir: sanitizedOpenclawDir, language: mergedSettings.language, @@ -318,6 +321,7 @@ export function useSettings(): UseSettingsResult { const sanitizedClaudeDir = sanitizeDir(mergedSettings.claudeConfigDir); const sanitizedCodexDir = sanitizeDir(mergedSettings.codexConfigDir); const sanitizedGeminiDir = sanitizeDir(mergedSettings.geminiConfigDir); + const sanitizedGrokDir = sanitizeDir(mergedSettings.grokConfigDir); const sanitizedOpencodeDir = sanitizeDir( mergedSettings.opencodeConfigDir, ); @@ -328,6 +332,7 @@ export function useSettings(): UseSettingsResult { const previousClaudeDir = sanitizeDir(data?.claudeConfigDir); const previousCodexDir = sanitizeDir(data?.codexConfigDir); const previousGeminiDir = sanitizeDir(data?.geminiConfigDir); + const previousGrokDir = sanitizeDir(data?.grokConfigDir); const previousOpencodeDir = sanitizeDir(data?.opencodeConfigDir); const previousOpenclawDir = sanitizeDir(data?.openclawConfigDir); const { @@ -341,6 +346,7 @@ export function useSettings(): UseSettingsResult { claudeConfigDir: sanitizedClaudeDir, codexConfigDir: sanitizedCodexDir, geminiConfigDir: sanitizedGeminiDir, + grokConfigDir: sanitizedGrokDir, opencodeConfigDir: sanitizedOpencodeDir, openclawConfigDir: sanitizedOpenclawDir, language: mergedSettings.language, @@ -427,6 +433,7 @@ export function useSettings(): UseSettingsResult { const claudeDirChanged = sanitizedClaudeDir !== previousClaudeDir; const codexDirChanged = sanitizedCodexDir !== previousCodexDir; const geminiDirChanged = sanitizedGeminiDir !== previousGeminiDir; + const grokDirChanged = sanitizedGrokDir !== previousGrokDir; const opencodeDirChanged = sanitizedOpencodeDir !== previousOpencodeDir; const openclawDirChanged = sanitizedOpenclawDir !== previousOpenclawDir; if ( @@ -434,6 +441,7 @@ export function useSettings(): UseSettingsResult { (claudeDirChanged || codexDirChanged || geminiDirChanged || + grokDirChanged || opencodeDirChanged || openclawDirChanged) ) { diff --git a/src/hooks/useSettingsForm.ts b/src/hooks/useSettingsForm.ts index 03c7e34a3..bf7c9af09 100644 --- a/src/hooks/useSettingsForm.ts +++ b/src/hooks/useSettingsForm.ts @@ -122,6 +122,7 @@ export function useSettingsForm(): UseSettingsFormResult { claudeConfigDir: sanitizeDir(data.claudeConfigDir), codexConfigDir: sanitizeDir(data.codexConfigDir), geminiConfigDir: sanitizeDir(data.geminiConfigDir), + grokConfigDir: sanitizeDir(data.grokConfigDir), opencodeConfigDir: sanitizeDir(data.opencodeConfigDir), openclawConfigDir: sanitizeDir(data.openclawConfigDir), language: normalizedLanguage, @@ -188,6 +189,7 @@ export function useSettingsForm(): UseSettingsFormResult { claudeConfigDir: sanitizeDir(serverData.claudeConfigDir), codexConfigDir: sanitizeDir(serverData.codexConfigDir), geminiConfigDir: sanitizeDir(serverData.geminiConfigDir), + grokConfigDir: sanitizeDir(serverData.grokConfigDir), opencodeConfigDir: sanitizeDir(serverData.opencodeConfigDir), openclawConfigDir: sanitizeDir(serverData.openclawConfigDir), language: normalizedLanguage, diff --git a/src/i18n/locales/en.json b/src/i18n/locales/en.json index 2924ee842..714cbcacf 100644 --- a/src/i18n/locales/en.json +++ b/src/i18n/locales/en.json @@ -231,6 +231,7 @@ "providerDeleted": "Provider deleted successfully", "switchSuccess": "Switch successful!", "codexRestartRequired": "Switched successfully. Restart the client to apply changes.", + "grokBuildRestartRequired": "Switched successfully. Restart Grok Build to apply changes.", "claudeDesktopRestartRequired": "Switched successfully. Restart Claude Desktop to apply changes.", "claudeDesktopProxyRestartRequired": "Switched successfully. Keep CC Switch running and restart Claude Desktop to apply changes.", "addToConfigSuccess": "Added to config", @@ -756,6 +757,8 @@ "codexConfigDirDescription": "Override Codex configuration directory.", "geminiConfigDir": "Gemini Configuration Directory", "geminiConfigDirDescription": "Override Gemini configuration directory (.env).", + "grokConfigDir": "Grok Build Configuration Directory", + "grokConfigDirDescription": "Override Grok Build configuration directory (config.toml).", "opencodeConfigDir": "OpenCode Configuration Directory", "opencodeConfigDirDescription": "Override OpenCode configuration directory (opencode.json).", "openclawConfigDir": "OpenClaw Configuration Directory", @@ -765,6 +768,7 @@ "browsePlaceholderClaude": "e.g., /home//.claude", "browsePlaceholderCodex": "e.g., /home//.codex", "browsePlaceholderGemini": "e.g., /home//.gemini", + "browsePlaceholderGrok": "e.g., /home//.grok", "browsePlaceholderOpencode": "e.g., /home//.config/opencode", "browsePlaceholderOpenclaw": "e.g., /home//.openclaw", "browsePlaceholderHermes": "e.g., /home//.hermes", @@ -875,13 +879,22 @@ "claude-desktop": "Claude Desktop", "codex": "Codex", "gemini": "Gemini", + "grokbuild": "Grok Build", "opencode": "OpenCode", "openclaw": "OpenClaw", "hermes": "Hermes" }, + "grokBuild": { + "apiBackend": "API backend", + "contextWindow": "Context window", + "contextWindowInvalid": "Context window must be a positive integer", + "profile": "Client model profile", + "rawConfig": "config.toml", + "invalidToml": "Invalid config.toml: {{error}}" + }, "sessionManager": { "title": "Session Manager", - "subtitle": "Manage Claude Code, Codex, OpenCode, OpenClaw, Hermes and Gemini CLI sessions", + "subtitle": "Manage Claude Code, Codex, Gemini CLI, Grok Build, OpenCode, OpenClaw and Hermes sessions", "searchPlaceholder": "Search by content, directory, or ID", "searchSessions": "Search sessions", "providerFilterAll": "All", @@ -1719,6 +1732,7 @@ "claude": "Claude", "codex": "Codex", "gemini": "Gemini", + "grokbuild": "Grok Build", "opencode": "OpenCode", "openclaw": "OpenClaw", "hermes": "Hermes" diff --git a/src/i18n/locales/ja.json b/src/i18n/locales/ja.json index ddcbf6f8a..2b61d2d2b 100644 --- a/src/i18n/locales/ja.json +++ b/src/i18n/locales/ja.json @@ -231,6 +231,7 @@ "providerDeleted": "プロバイダーを削除しました", "switchSuccess": "切り替え成功!", "codexRestartRequired": "切り替えました。反映するにはクライアントを再起動してください", + "grokBuildRestartRequired": "切り替えました。反映するには Grok Build を再起動してください", "claudeDesktopRestartRequired": "切り替えました。反映するには Claude Desktop を再起動してください", "claudeDesktopProxyRestartRequired": "切り替えました。CC Switch を起動したまま Claude Desktop を再起動してください", "addToConfigSuccess": "設定に追加しました", @@ -756,6 +757,8 @@ "codexConfigDirDescription": "Codex の設定ディレクトリを上書きします。", "geminiConfigDir": "Gemini 設定ディレクトリ", "geminiConfigDirDescription": "Gemini の設定ディレクトリ(.env)を上書きします。", + "grokConfigDir": "Grok Build 設定ディレクトリ", + "grokConfigDirDescription": "Grok Build の設定ディレクトリ(config.toml)を上書きします。", "opencodeConfigDir": "OpenCode 設定ディレクトリ", "opencodeConfigDirDescription": "OpenCode の設定ディレクトリ(opencode.json)を上書きします。", "openclawConfigDir": "OpenClaw 設定ディレクトリ", @@ -765,6 +768,7 @@ "browsePlaceholderClaude": "例: /home//.claude", "browsePlaceholderCodex": "例: /home//.codex", "browsePlaceholderGemini": "例: /home//.gemini", + "browsePlaceholderGrok": "例: /home//.grok", "browsePlaceholderOpencode": "例: /home//.config/opencode", "browsePlaceholderOpenclaw": "例: /home//.openclaw", "browsePlaceholderHermes": "例: /home//.hermes", @@ -875,13 +879,22 @@ "claude-desktop": "Claude Desktop", "codex": "Codex", "gemini": "Gemini", + "grokbuild": "Grok Build", "opencode": "OpenCode", "openclaw": "OpenClaw", "hermes": "Hermes" }, + "grokBuild": { + "apiBackend": "API Backend", + "contextWindow": "コンテキストウィンドウ", + "contextWindowInvalid": "コンテキストウィンドウは正の整数で指定してください", + "profile": "クライアントモデルプロファイル", + "rawConfig": "config.toml", + "invalidToml": "config.toml の形式が不正です: {{error}}" + }, "sessionManager": { "title": "セッション管理", - "subtitle": "Claude Code / Codex / OpenCode / OpenClaw / Hermes / Gemini CLI のセッションを管理", + "subtitle": "Claude Code / Codex / Gemini CLI / Grok Build / OpenCode / OpenClaw / Hermes のセッションを管理", "searchPlaceholder": "内容・ディレクトリ・ID で検索", "searchSessions": "セッションを検索", "providerFilterAll": "すべて", @@ -1719,6 +1732,7 @@ "claude": "Claude", "codex": "Codex", "gemini": "Gemini", + "grokbuild": "Grok Build", "opencode": "OpenCode", "openclaw": "OpenClaw", "hermes": "Hermes" diff --git a/src/i18n/locales/zh-TW.json b/src/i18n/locales/zh-TW.json index 61a965442..5c6865868 100644 --- a/src/i18n/locales/zh-TW.json +++ b/src/i18n/locales/zh-TW.json @@ -231,6 +231,7 @@ "providerDeleted": "供應商刪除成功", "switchSuccess": "切換成功!", "codexRestartRequired": "切換成功,請重新啟動客戶端以套用", + "grokBuildRestartRequired": "切換成功,請重新啟動 Grok Build 以套用", "claudeDesktopRestartRequired": "切換成功,重新啟動 Claude Desktop 後生效", "claudeDesktopProxyRestartRequired": "切換成功,請保持 CC Switch 執行,並重新啟動 Claude Desktop 後生效", "addToConfigSuccess": "已新增至設定", @@ -756,6 +757,8 @@ "codexConfigDirDescription": "覆寫 Codex 設定目錄。", "geminiConfigDir": "Gemini 設定目錄", "geminiConfigDirDescription": "覆寫 Gemini 設定目錄 (.env)。", + "grokConfigDir": "Grok Build 設定目錄", + "grokConfigDirDescription": "覆寫 Grok Build 設定目錄 (config.toml)。", "opencodeConfigDir": "OpenCode 設定目錄", "opencodeConfigDirDescription": "覆寫 OpenCode 設定目錄 (opencode.json)。", "openclawConfigDir": "OpenClaw 設定目錄", @@ -765,6 +768,7 @@ "browsePlaceholderClaude": "例如:/home/<您的帳號>/.claude", "browsePlaceholderCodex": "例如:/home/<您的帳號>/.codex", "browsePlaceholderGemini": "例如:/home/<您的帳號>/.gemini", + "browsePlaceholderGrok": "例如:/home/<您的帳號>/.grok", "browsePlaceholderOpencode": "例如:/home/<您的帳號>/.config/opencode", "browsePlaceholderOpenclaw": "例如:/home/<您的帳號>/.openclaw", "browsePlaceholderHermes": "例如:/home/<您的帳號>/.hermes", @@ -846,13 +850,22 @@ "claude-desktop": "Claude Desktop", "codex": "Codex", "gemini": "Gemini", + "grokbuild": "Grok Build", "opencode": "OpenCode", "openclaw": "OpenClaw", "hermes": "Hermes" }, + "grokBuild": { + "apiBackend": "API Backend", + "contextWindow": "上下文視窗", + "contextWindowInvalid": "上下文視窗必須是正整數", + "profile": "用戶端模型檔位", + "rawConfig": "config.toml", + "invalidToml": "config.toml 格式錯誤:{{error}}" + }, "sessionManager": { "title": "工作階段管理", - "subtitle": "管理 Claude Code、Codex、OpenCode、OpenClaw、Hermes 與 Gemini CLI 工作階段紀錄", + "subtitle": "管理 Claude Code、Codex、Gemini CLI、Grok Build、OpenCode、OpenClaw 與 Hermes 工作階段紀錄", "searchPlaceholder": "搜尋對話內容、目錄或 ID", "searchSessions": "搜尋工作階段", "providerFilterAll": "全部", @@ -1691,6 +1704,7 @@ "claude": "Claude", "codex": "Codex", "gemini": "Gemini", + "grokbuild": "Grok Build", "opencode": "OpenCode", "openclaw": "OpenClaw", "hermes": "Hermes" diff --git a/src/i18n/locales/zh.json b/src/i18n/locales/zh.json index 6b60c0b42..9bd52b7cb 100644 --- a/src/i18n/locales/zh.json +++ b/src/i18n/locales/zh.json @@ -231,6 +231,7 @@ "providerDeleted": "供应商删除成功", "switchSuccess": "切换成功!", "codexRestartRequired": "切换成功,请重启客户端以生效", + "grokBuildRestartRequired": "切换成功,请重启 Grok Build 以生效", "claudeDesktopRestartRequired": "切换成功,重启 Claude Desktop 后生效", "claudeDesktopProxyRestartRequired": "切换成功,请保持 CC Switch 运行,并重启 Claude Desktop 后生效", "addToConfigSuccess": "已添加到配置", @@ -756,6 +757,8 @@ "codexConfigDirDescription": "覆盖 Codex 配置目录。", "geminiConfigDir": "Gemini 配置目录", "geminiConfigDirDescription": "覆盖 Gemini 配置目录 (.env)。", + "grokConfigDir": "Grok Build 配置目录", + "grokConfigDirDescription": "覆盖 Grok Build 配置目录 (config.toml)。", "opencodeConfigDir": "OpenCode 配置目录", "opencodeConfigDirDescription": "覆盖 OpenCode 配置目录 (opencode.json)。", "openclawConfigDir": "OpenClaw 配置目录", @@ -765,6 +768,7 @@ "browsePlaceholderClaude": "例如:/home/<你的用户名>/.claude", "browsePlaceholderCodex": "例如:/home/<你的用户名>/.codex", "browsePlaceholderGemini": "例如:/home/<你的用户名>/.gemini", + "browsePlaceholderGrok": "例如:/home/<你的用户名>/.grok", "browsePlaceholderOpencode": "例如:/home/<你的用户名>/.config/opencode", "browsePlaceholderOpenclaw": "例如:/home/<你的用户名>/.openclaw", "browsePlaceholderHermes": "例如:/home/<你的用户名>/.hermes", @@ -875,13 +879,22 @@ "claude-desktop": "Claude Desktop", "codex": "Codex", "gemini": "Gemini", + "grokbuild": "Grok Build", "opencode": "OpenCode", "openclaw": "OpenClaw", "hermes": "Hermes" }, + "grokBuild": { + "apiBackend": "API Backend", + "contextWindow": "上下文窗口", + "contextWindowInvalid": "上下文窗口必须是正整数", + "profile": "客户端模型档位", + "rawConfig": "config.toml", + "invalidToml": "config.toml 格式错误:{{error}}" + }, "sessionManager": { "title": "会话管理", - "subtitle": "管理 Claude Code、Codex、OpenCode、OpenClaw、Hermes 与 Gemini CLI 会话记录", + "subtitle": "管理 Claude Code、Codex、Gemini CLI、Grok Build、OpenCode、OpenClaw 与 Hermes 会话记录", "searchPlaceholder": "搜索会话内容、目录或 ID", "searchSessions": "搜索会话", "providerFilterAll": "全部", @@ -1719,6 +1732,7 @@ "claude": "Claude", "codex": "Codex", "gemini": "Gemini", + "grokbuild": "Grok Build", "opencode": "OpenCode", "openclaw": "OpenClaw", "hermes": "Hermes" diff --git a/src/lib/api/skills.ts b/src/lib/api/skills.ts index 191ca384b..3722ac896 100644 --- a/src/lib/api/skills.ts +++ b/src/lib/api/skills.ts @@ -7,6 +7,7 @@ export type AppType = | "claude-desktop" | "codex" | "gemini" + | "grokbuild" | "opencode" | "openclaw" | "hermes"; @@ -17,6 +18,7 @@ export interface SkillApps { "claude-desktop"?: boolean; codex: boolean; gemini: boolean; + grokbuild?: boolean; opencode: boolean; openclaw: boolean; hermes: boolean; diff --git a/src/lib/api/types.ts b/src/lib/api/types.ts index 72b5ec28d..08962a091 100644 --- a/src/lib/api/types.ts +++ b/src/lib/api/types.ts @@ -4,6 +4,7 @@ export type AppId = | "claude-desktop" | "codex" | "gemini" + | "grokbuild" | "opencode" | "openclaw" | "hermes"; diff --git a/src/lib/query/failover.ts b/src/lib/query/failover.ts index a2a8be7c8..d9ba9b9b9 100644 --- a/src/lib/query/failover.ts +++ b/src/lib/query/failover.ts @@ -227,7 +227,9 @@ export function useSetAutoFailoverEnabled() { ? "Claude" : variables.appType === "codex" ? "Codex" - : "Gemini"; + : variables.appType === "grokbuild" + ? "Grok Build" + : "Gemini"; toast.success( variables.enabled diff --git a/src/lib/schemas/settings.ts b/src/lib/schemas/settings.ts index 2d2780d8e..61f17166d 100644 --- a/src/lib/schemas/settings.ts +++ b/src/lib/schemas/settings.ts @@ -24,6 +24,7 @@ export const settingsSchema = z.object({ claudeConfigDir: directorySchema.nullable().optional(), codexConfigDir: directorySchema.nullable().optional(), geminiConfigDir: directorySchema.nullable().optional(), + grokConfigDir: directorySchema.nullable().optional(), opencodeConfigDir: directorySchema.nullable().optional(), openclawConfigDir: directorySchema.nullable().optional(), diff --git a/src/types.ts b/src/types.ts index afb99def3..585e95429 100644 --- a/src/types.ts +++ b/src/types.ts @@ -280,6 +280,7 @@ export interface VisibleApps { "claude-desktop": boolean; codex: boolean; gemini: boolean; + grokbuild: boolean; opencode: boolean; openclaw: boolean; hermes: boolean; @@ -394,6 +395,8 @@ export interface Settings { codexConfigDir?: string; // 覆盖 Gemini 配置目录(可选) geminiConfigDir?: string; + // 覆盖 Grok Build 配置目录(可选) + grokConfigDir?: string; // 覆盖 OpenCode 配置目录(可选) opencodeConfigDir?: string; // 覆盖 OpenClaw 配置目录(可选) @@ -488,6 +491,7 @@ export interface McpApps { "claude-desktop"?: boolean; codex: boolean; gemini: boolean; + grokbuild?: boolean; opencode: boolean; openclaw: boolean; hermes: boolean; diff --git a/src/types/proxy.ts b/src/types/proxy.ts index 75f8c24b4..01e33116d 100644 --- a/src/types/proxy.ts +++ b/src/types/proxy.ts @@ -46,6 +46,7 @@ export interface ProxyTakeoverStatus { "claude-desktop"?: boolean; codex: boolean; gemini: boolean; + grokbuild: boolean; opencode: boolean; openclaw: boolean; hermes: boolean; diff --git a/src/types/usage.ts b/src/types/usage.ts index 256d58aec..b791a34df 100644 --- a/src/types/usage.ts +++ b/src/types/usage.ts @@ -172,7 +172,7 @@ export interface UsageRangeSelection { * `opencode` / `openclaw` / `hermes` have no proxy handler at all — they * appear only as managed apps elsewhere. */ -export type AppType = "claude" | "codex" | "gemini" | "opencode"; +export type AppType = "claude" | "codex" | "gemini" | "grokbuild" | "opencode"; export type AppTypeFilter = "all" | AppType; @@ -180,6 +180,7 @@ export const KNOWN_APP_TYPES: ReadonlyArray = [ "claude", "codex", "gemini", + "grokbuild", "opencode", ]; @@ -198,6 +199,7 @@ export const KNOWN_APP_TYPES: ReadonlyArray = [ export const CACHE_INCLUSIVE_APP_TYPES: ReadonlySet = new Set([ "codex", "gemini", + "grokbuild", ]); /** Subset of request-log fields needed to derive cache-normalized input. */ diff --git a/src/utils/grokBuildConfig.test.ts b/src/utils/grokBuildConfig.test.ts new file mode 100644 index 000000000..58b614f85 --- /dev/null +++ b/src/utils/grokBuildConfig.test.ts @@ -0,0 +1,142 @@ +import { describe, expect, it } from "vitest"; +import { parse as parseToml } from "smol-toml"; +import { + buildGrokBuildConfig, + extractGrokBuildBaseUrl, + parseGrokBuildConfig, + updateGrokBuildConfig, + validateGrokBuildConfig, +} from "./grokBuildConfig"; + +describe("Grok Build config", () => { + it("builds the expected provider TOML", () => { + const config = buildGrokBuildConfig({ + model: "grok-4.5", + baseUrl: "https://relay.example.com/v1", + name: 'Relay "A"', + apiKey: "secret", + apiBackend: "responses", + contextWindow: 500000, + }); + const parsed = parseToml(config) as any; + + expect(parsed.models.default).toBe("grok-4.5"); + expect(parsed.model["grok-4.5"]).toEqual({ + model: "grok-4.5", + base_url: "https://relay.example.com/v1", + name: 'Relay "A"', + api_key: "secret", + api_backend: "responses", + context_window: 500000, + }); + expect(config).toContain('[model."grok-4.5"]'); + }); + + it("reads values back from a generated config", () => { + const config = buildGrokBuildConfig({ + model: "custom-model", + upstreamModel: "upstream-model", + baseUrl: "https://api.example.com", + name: "Custom", + apiKey: "key", + envKey: "", + apiBackend: "responses", + contextWindow: 320000, + }); + + expect(parseGrokBuildConfig(config)).toEqual({ + model: "custom-model", + upstreamModel: "upstream-model", + baseUrl: "https://api.example.com", + name: "Custom", + apiKey: "key", + envKey: "", + apiBackend: "responses", + contextWindow: 320000, + }); + expect(extractGrokBuildBaseUrl(config)).toBe("https://api.example.com"); + }); + + it("accepts env_key credentials without adding an empty api_key", () => { + const config = `[models] +default = "env-profile" + +[model."env-profile"] +model = "grok-4.5" +base_url = "https://api.example.com/v1" +name = "Env Relay" +env_key = "XAI_API_KEY" +api_backend = "responses" +context_window = 500000 +`; + + expect(validateGrokBuildConfig(config)).toBeNull(); + expect(parseGrokBuildConfig(config).envKey).toBe("XAI_API_KEY"); + + const updated = updateGrokBuildConfig(config, { + ...parseGrokBuildConfig(config), + baseUrl: "https://updated.example.com/v1", + }); + const parsed = parseToml(updated) as any; + expect(parsed.model["env-profile"].env_key).toBe("XAI_API_KEY"); + expect(parsed.model["env-profile"]).not.toHaveProperty("api_key"); + }); + + it("reports malformed, incomplete, and invalid-window configs", () => { + expect(validateGrokBuildConfig("")).toBe("config.toml must not be empty"); + expect(validateGrokBuildConfig("[models")).not.toBeNull(); + expect(validateGrokBuildConfig('[models]\ndefault = "missing"\n')).toBe( + "Missing [models] default model table", + ); + + const missingCredentials = buildGrokBuildConfig({ + model: "grok-4.5", + baseUrl: "https://api.example.com/v1", + name: "Relay", + apiKey: "", + apiBackend: "responses", + contextWindow: 500000, + }); + expect(validateGrokBuildConfig(missingCredentials)).toBe( + "Missing api_key or env_key", + ); + + const invalidWindow = missingCredentials.replace( + "context_window = 500000", + "context_window = 0", + ); + expect(validateGrokBuildConfig(invalidWindow)).toBe( + "Missing api_key or env_key", + ); + expect( + validateGrokBuildConfig( + invalidWindow.replace( + 'name = "Relay"', + 'name = "Relay"\napi_key = "secret"', + ), + ), + ).toBe("context_window must be a positive integer"); + }); + + it("renames the selected profile without leaving the old table behind", () => { + const original = buildGrokBuildConfig({ + model: "old-profile", + upstreamModel: "grok-upstream", + baseUrl: "https://api.example.com/v1", + name: "Relay", + apiKey: "secret", + apiBackend: "responses", + contextWindow: 500000, + }); + + const renamed = updateGrokBuildConfig(original, { + ...parseGrokBuildConfig(original), + model: "new-profile", + }); + const parsed = parseToml(renamed) as any; + + expect(parsed.models.default).toBe("new-profile"); + expect(parsed.model["new-profile"].model).toBe("grok-upstream"); + expect(parsed.model).not.toHaveProperty("old-profile"); + }); +}); diff --git a/src/utils/grokBuildConfig.ts b/src/utils/grokBuildConfig.ts new file mode 100644 index 000000000..38dd04406 --- /dev/null +++ b/src/utils/grokBuildConfig.ts @@ -0,0 +1,166 @@ +import { parse as parseToml, stringify as stringifyToml } from "smol-toml"; + +export const GROK_BUILD_DEFAULT_MODEL = "grok-4.5"; +export const GROK_BUILD_DEFAULT_API_BACKEND = "responses"; +export const GROK_BUILD_DEFAULT_CONTEXT_WINDOW = 500000; + +export interface GrokBuildConfigValues { + /** Client-visible profile selected by [models].default. */ + model: string; + /** Real model sent to the upstream provider. */ + upstreamModel?: string; + baseUrl: string; + name: string; + apiKey: string; + envKey?: string; + apiBackend: string; + contextWindow: number; +} + +const asRecord = (value: unknown): Record | undefined => + value && typeof value === "object" && !Array.isArray(value) + ? (value as Record) + : undefined; + +const asString = (value: unknown, fallback = "") => + typeof value === "string" ? value : fallback; + +export function parseGrokBuildConfig( + configToml: string | undefined, + fallbackName = "", +): GrokBuildConfigValues { + const fallback: GrokBuildConfigValues = { + model: GROK_BUILD_DEFAULT_MODEL, + upstreamModel: GROK_BUILD_DEFAULT_MODEL, + baseUrl: "", + name: fallbackName, + apiKey: "", + apiBackend: GROK_BUILD_DEFAULT_API_BACKEND, + contextWindow: GROK_BUILD_DEFAULT_CONTEXT_WINDOW, + }; + + if (!configToml?.trim()) return fallback; + + try { + const root = asRecord(parseToml(configToml)); + const models = asRecord(root?.models); + const defaultModel = asString(models?.default, GROK_BUILD_DEFAULT_MODEL); + const modelTables = asRecord(root?.model); + const selectedModel = asRecord(modelTables?.[defaultModel]); + const rawContextWindow = selectedModel?.context_window; + + return { + model: defaultModel, + upstreamModel: asString(selectedModel?.model, defaultModel), + baseUrl: asString(selectedModel?.base_url), + name: asString(selectedModel?.name, fallbackName), + apiKey: asString(selectedModel?.api_key), + envKey: asString(selectedModel?.env_key), + apiBackend: asString( + selectedModel?.api_backend, + GROK_BUILD_DEFAULT_API_BACKEND, + ), + contextWindow: + typeof rawContextWindow === "number" && + Number.isInteger(rawContextWindow) && + rawContextWindow > 0 + ? rawContextWindow + : GROK_BUILD_DEFAULT_CONTEXT_WINDOW, + }; + } catch { + return fallback; + } +} + +export function buildGrokBuildConfig(values: GrokBuildConfigValues): string { + return updateGrokBuildConfig(undefined, values); +} + +export function updateGrokBuildConfig( + configToml: string | undefined, + values: GrokBuildConfigValues, +): string { + const profile = values.model.trim() || GROK_BUILD_DEFAULT_MODEL; + const upstreamModel = values.upstreamModel?.trim() || profile; + let config: Record = {}; + + try { + config = asRecord(configToml?.trim() ? parseToml(configToml) : {}) ?? {}; + } catch { + config = {}; + } + + const existingModels = asRecord(config.models) ?? {}; + const previousProfile = asString(existingModels.default, profile); + config.models = { ...existingModels, default: profile }; + + const modelTables = asRecord(config.model) ?? {}; + const existingSelected = + asRecord(modelTables[profile]) ?? + asRecord(modelTables[previousProfile]) ?? + {}; + const apiKey = values.apiKey.trim(); + const envKey = + values.envKey?.trim() || asString(existingSelected.env_key).trim(); + const updatedSelected: Record = { + ...existingSelected, + model: upstreamModel, + base_url: values.baseUrl.trim(), + name: values.name.trim(), + api_backend: values.apiBackend.trim() || GROK_BUILD_DEFAULT_API_BACKEND, + context_window: + Number.isInteger(values.contextWindow) && values.contextWindow > 0 + ? values.contextWindow + : GROK_BUILD_DEFAULT_CONTEXT_WINDOW, + }; + if (apiKey) updatedSelected.api_key = apiKey; + else delete updatedSelected.api_key; + if (envKey) updatedSelected.env_key = envKey; + else delete updatedSelected.env_key; + + config.model = { + ...modelTables, + [profile]: updatedSelected, + }; + + if (previousProfile !== profile && previousProfile in modelTables) { + delete (config.model as Record)[previousProfile]; + } + + return `${stringifyToml(config).trim()}\n`; +} + +export function validateGrokBuildConfig(configToml: string): string | null { + if (!configToml.trim()) return "config.toml must not be empty"; + try { + const root = asRecord(parseToml(configToml)); + const models = asRecord(root?.models); + const profile = asString(models?.default).trim(); + const selected = asRecord(asRecord(root?.model)?.[profile]); + if (!profile || !selected) return "Missing [models] default model table"; + for (const field of ["model", "base_url", "name", "api_backend"]) { + if (!asString(selected[field]).trim()) return `Missing ${field}`; + } + if ( + !asString(selected.api_key).trim() && + !asString(selected.env_key).trim() + ) { + return "Missing api_key or env_key"; + } + const contextWindow = selected.context_window; + if ( + typeof contextWindow !== "number" || + !Number.isInteger(contextWindow) || + contextWindow <= 0 + ) { + return "context_window must be a positive integer"; + } + return null; + } catch (error) { + return error instanceof Error ? error.message : "Invalid TOML"; + } +} + +export function extractGrokBuildBaseUrl(configToml: string): string { + return parseGrokBuildConfig(configToml).baseUrl; +} diff --git a/src/utils/providerIcon.test.ts b/src/utils/providerIcon.test.ts new file mode 100644 index 000000000..589ff984b --- /dev/null +++ b/src/utils/providerIcon.test.ts @@ -0,0 +1,23 @@ +import { describe, expect, it } from "vitest"; +import { resolveProviderIcon } from "./providerIcon"; + +describe("resolveProviderIcon", () => { + it("clears the legacy automatic Grok Build icon", () => { + expect(resolveProviderIcon("grokbuild", "grok", "")).toBeUndefined(); + expect(resolveProviderIcon("grokbuild", "grok")).toBeUndefined(); + }); + + it("preserves a Grok icon explicitly selected by the user", () => { + expect(resolveProviderIcon("grokbuild", "grok", "currentColor")).toBe( + "grok", + ); + }); + + it("does not reinterpret another app's provider icon", () => { + expect(resolveProviderIcon("codex", "grok", "")).toBe("grok"); + }); + + it("normalizes an empty icon to the initials fallback", () => { + expect(resolveProviderIcon("grokbuild", " ", "")).toBeUndefined(); + }); +}); diff --git a/src/utils/providerIcon.ts b/src/utils/providerIcon.ts new file mode 100644 index 000000000..55e2f0168 --- /dev/null +++ b/src/utils/providerIcon.ts @@ -0,0 +1,26 @@ +import type { AppId } from "@/lib/api/types"; + +/** + * Grok Build providers created before the provider-icon rules were aligned + * received the Grok app icon automatically. The icon picker records the + * selected icon's default color (`currentColor` for Grok), so an empty color + * identifies the old automatic value without hiding an explicit user choice. + */ +export function resolveProviderIcon( + appId: AppId, + icon?: string, + iconColor?: string, +): string | undefined { + const normalizedIcon = icon?.trim(); + if (!normalizedIcon) return undefined; + + if ( + appId === "grokbuild" && + normalizedIcon === "grok" && + !iconColor?.trim() + ) { + return undefined; + } + + return normalizedIcon; +} diff --git a/tests/components/AddProviderDialog.test.tsx b/tests/components/AddProviderDialog.test.tsx index 957353753..37908ed1d 100644 --- a/tests/components/AddProviderDialog.test.tsx +++ b/tests/components/AddProviderDialog.test.tsx @@ -125,4 +125,45 @@ describe("AddProviderDialog", () => { }, }); }); + + it("新建 Grok Build 自定义供应商时不补默认 Grok 图标", async () => { + const handleSubmit = vi.fn().mockResolvedValue(undefined); + + mockFormValues = { + name: "tes 1", + websiteUrl: "", + icon: "", + iconColor: "", + settingsConfig: JSON.stringify({ + config: `[models] +default = "grok-4.5" + +[model."grok-4.5"] +model = "grok-4.5" +base_url = "https://grok.example.com/v1" +name = "tes 1" +api_key = "secret" +api_backend = "responses" +context_window = 500000 +`, + }), + }; + + render( + , + ); + + fireEvent.click(screen.getByRole("button", { name: "common.add" })); + + await waitFor(() => expect(handleSubmit).toHaveBeenCalledTimes(1)); + + const submitted = handleSubmit.mock.calls[0][0]; + expect(submitted.icon).toBeUndefined(); + expect(submitted.iconColor).toBeUndefined(); + }); }); diff --git a/tests/components/GrokBuildProviderForm.test.tsx b/tests/components/GrokBuildProviderForm.test.tsx new file mode 100644 index 000000000..17df0540d --- /dev/null +++ b/tests/components/GrokBuildProviderForm.test.tsx @@ -0,0 +1,178 @@ +import { fireEvent, render, screen } from "@testing-library/react"; +import userEvent from "@testing-library/user-event"; +import { parse as parseToml } from "smol-toml"; +import { describe, expect, it, vi } from "vitest"; +import { GrokBuildProviderForm } from "@/components/providers/forms/GrokBuildProviderForm"; + +vi.mock("@/components/JsonEditor", () => ({ + default: ({ + value, + onChange, + }: { + value: string; + onChange: (value: string) => void; + }) => ( +

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Ǥ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