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
This commit is contained in:
Thefool
2026-07-17 15:50:50 +08:00
committed by GitHub
parent f6e37ed994
commit 1c0ee0c58a
112 changed files with 4530 additions and 246 deletions
+15 -1
View File
@@ -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/<your-username>/.claude",
"browsePlaceholderCodex": "e.g., /home/<your-username>/.codex",
"browsePlaceholderGemini": "e.g., /home/<your-username>/.gemini",
"browsePlaceholderGrok": "e.g., /home/<your-username>/.grok",
"browsePlaceholderOpencode": "e.g., /home/<your-username>/.config/opencode",
"browsePlaceholderOpenclaw": "e.g., /home/<your-username>/.openclaw",
"browsePlaceholderHermes": "e.g., /home/<your-username>/.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"
+15 -1
View File
@@ -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/<your-username>/.claude",
"browsePlaceholderCodex": "例: /home/<your-username>/.codex",
"browsePlaceholderGemini": "例: /home/<your-username>/.gemini",
"browsePlaceholderGrok": "例: /home/<your-username>/.grok",
"browsePlaceholderOpencode": "例: /home/<your-username>/.config/opencode",
"browsePlaceholderOpenclaw": "例: /home/<your-username>/.openclaw",
"browsePlaceholderHermes": "例: /home/<your-username>/.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"
+15 -1
View File
@@ -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、OpenClawHermes 與 Gemini CLI 工作階段紀錄",
"subtitle": "管理 Claude Code、Codex、Gemini CLI、Grok Build、OpenCode、OpenClawHermes 工作階段紀錄",
"searchPlaceholder": "搜尋對話內容、目錄或 ID",
"searchSessions": "搜尋工作階段",
"providerFilterAll": "全部",
@@ -1691,6 +1704,7 @@
"claude": "Claude",
"codex": "Codex",
"gemini": "Gemini",
"grokbuild": "Grok Build",
"opencode": "OpenCode",
"openclaw": "OpenClaw",
"hermes": "Hermes"
+15 -1
View File
@@ -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、OpenClawHermes 与 Gemini CLI 会话记录",
"subtitle": "管理 Claude Code、Codex、Gemini CLI、Grok Build、OpenCode、OpenClawHermes 会话记录",
"searchPlaceholder": "搜索会话内容、目录或 ID",
"searchSessions": "搜索会话",
"providerFilterAll": "全部",
@@ -1719,6 +1732,7 @@
"claude": "Claude",
"codex": "Codex",
"gemini": "Gemini",
"grokbuild": "Grok Build",
"opencode": "OpenCode",
"openclaw": "OpenClaw",
"hermes": "Hermes"