From 1622872c55f032c660c062e71971cf04b9a72f3d Mon Sep 17 00:00:00 2001 From: kurihada Date: Tue, 30 Dec 2025 15:42:17 +0800 Subject: [PATCH] =?UTF-8?q?feat(desktop):=20=E9=9B=86=E6=88=90=20ServicesP?= =?UTF-8?q?anel=20=E5=A4=96=E9=83=A8=E6=9C=8D=E5=8A=A1=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E9=9D=A2=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 添加 External Services 菜单入口 - 同步窗口权限配置到 capabilities schema --- packages/desktop/src-tauri/gen/schemas/capabilities.json | 2 +- packages/desktop/src/App.tsx | 6 ++++++ packages/desktop/src/pages/Chat.tsx | 5 ++++- 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/packages/desktop/src-tauri/gen/schemas/capabilities.json b/packages/desktop/src-tauri/gen/schemas/capabilities.json index 877453e..ab544c8 100644 --- a/packages/desktop/src-tauri/gen/schemas/capabilities.json +++ b/packages/desktop/src-tauri/gen/schemas/capabilities.json @@ -1 +1 @@ -{"default":{"identifier":"default","description":"Default capabilities for the application","local":true,"windows":["*"],"permissions":["core:default","shell:default","fs:default","dialog:default",{"identifier":"http:default","allow":[{"url":"http://localhost:*/*"},{"url":"http://127.0.0.1:*/*"}]}]}} \ No newline at end of file +{"default":{"identifier":"default","description":"Default capabilities for the application","local":true,"windows":["*"],"permissions":["core:default","core:window:allow-show","core:window:allow-hide","core:window:allow-close","core:window:allow-set-focus","core:window:allow-set-position","core:window:allow-set-size","core:window:allow-start-dragging","core:window:allow-is-visible","core:webview:allow-create-webview-window","shell:default","fs:default","dialog:default",{"identifier":"http:default","allow":[{"url":"http://localhost:*/*"},{"url":"http://127.0.0.1:*/*"}]}]}} \ No newline at end of file diff --git a/packages/desktop/src/App.tsx b/packages/desktop/src/App.tsx index e0ca1c8..d2174c8 100644 --- a/packages/desktop/src/App.tsx +++ b/packages/desktop/src/App.tsx @@ -13,6 +13,7 @@ import { AgentsPanel, CheckpointPanel, ProvidersPanel, + ServicesPanel, LSPPanel, DiagnosticsPanel, SessionPanel, @@ -38,6 +39,7 @@ export function App() { const [showAgents, setShowAgents] = useState(false); const [showCheckpoints, setShowCheckpoints] = useState(false); const [showProviders, setShowProviders] = useState(false); + const [showServices, setShowServices] = useState(false); const [showLSP, setShowLSP] = useState(false); const [showDiagnostics, setShowDiagnostics] = useState(false); const [showSessions, setShowSessions] = useState(false); @@ -218,6 +220,7 @@ export function App() { onOpenAgents={() => setShowAgents(true)} onOpenCheckpoints={() => setShowCheckpoints(true)} onOpenProviders={() => setShowProviders(true)} + onOpenServices={() => setShowServices(true)} onOpenLSP={() => setShowLSP(true)} onOpenDiagnostics={() => setShowDiagnostics(true)} onOpenSessions={() => setShowSessions(true)} @@ -260,6 +263,9 @@ export function App() { {/* Providers 面板 */} {showProviders && setShowProviders(false)} responsive />} + {/* Services 面板 */} + {showServices && setShowServices(false)} responsive />} + {/* LSP 面板 */} {showLSP && ( void; onOpenCheckpoints?: () => void; onOpenProviders?: () => void; + onOpenServices?: () => void; onOpenLSP?: () => void; onOpenDiagnostics?: () => void; onOpenSessions?: () => void; @@ -61,6 +62,7 @@ export function ChatPage({ onOpenAgents, onOpenCheckpoints, onOpenProviders, + onOpenServices, onOpenLSP, onOpenDiagnostics, onOpenSessions, @@ -197,6 +199,7 @@ export function ChatPage({ items={[ { icon: History, label: 'Checkpoints', onClick: onOpenCheckpoints }, { icon: Server, label: 'Model Providers', onClick: onOpenProviders }, + { icon: Globe, label: 'External Services', onClick: onOpenServices }, { icon: Bot, label: 'Agent Presets', onClick: onOpenAgents }, { icon: Zap, label: 'Hooks', onClick: onOpenHooks }, { icon: Plug, label: 'MCP Servers', onClick: onOpenMCP },