From f5406f7013ea2168f16310f3caa697220c14d8be Mon Sep 17 00:00:00 2001 From: jiesen Date: Sat, 20 Dec 2025 21:05:20 +0700 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E5=89=8D=E7=AB=AF=E7=AB=AF?= =?UTF-8?q?=E5=8F=A3=E4=B8=8E=E5=AE=89=E5=85=A8=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package-lock.json | 22 ++++++++++++++-- src/components/Dashboard.tsx | 2 +- src/components/api-server/ApiServerPage.tsx | 6 ++--- src/components/clients/ProviderForm.tsx | 10 +++---- .../provider-pool/EditCredentialModal.tsx | 2 +- .../provider-pool/ProviderPoolPage.tsx | 2 +- src/components/settings/ProxySettings.tsx | 2 +- .../settings/RemoteManagementSettings.tsx | 16 +++++++++--- src/components/settings/TlsSettings.tsx | 26 ++++++++++++++++--- src/components/switch/ProviderForm.tsx | 8 +++--- 10 files changed, 71 insertions(+), 25 deletions(-) diff --git a/package-lock.json b/package-lock.json index aa6b336ad..3401438c8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "proxycast", - "version": "0.14.2", + "version": "0.14.6", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "proxycast", - "version": "0.14.2", + "version": "0.14.6", "dependencies": { "@radix-ui/react-dialog": "^1.1.2", "@radix-ui/react-dropdown-menu": "^2.1.2", @@ -97,6 +97,7 @@ "integrity": "sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@babel/code-frame": "^7.27.1", "@babel/generator": "^7.28.5", @@ -2780,6 +2781,7 @@ "integrity": "sha512-LPM2G3Syo1GLzXLGJAKdqoU35XvrWzGJ21/7sgZTUpbkBaOasTj8tjwn6w+hCkqaa1TfJ/w67rJSwYItlJ2mYw==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "undici-types": "~6.21.0" } @@ -2797,6 +2799,7 @@ "integrity": "sha512-cisd7gxkzjBKU2GgdYrTdtQx1SORymWyaAFhaxQPK9bYO9ot3Y5OikQRvY0VYQtvwjeQnizCINJAenh/V7MK2w==", "devOptional": true, "license": "MIT", + "peer": true, "dependencies": { "@types/prop-types": "*", "csstype": "^3.2.2" @@ -2808,6 +2811,7 @@ "integrity": "sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ==", "devOptional": true, "license": "MIT", + "peer": true, "peerDependencies": { "@types/react": "^18.0.0" } @@ -2847,6 +2851,7 @@ "integrity": "sha512-N9lBGA9o9aqb1hVMc9hzySbhKibHmB+N3IpoShyV6HyQYRGIhlrO5rQgttypi+yEeKsKI4idxC8Jw6gXKD4THA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@typescript-eslint/scope-manager": "8.49.0", "@typescript-eslint/types": "8.49.0", @@ -3169,6 +3174,7 @@ "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", "dev": true, "license": "MIT", + "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -3387,6 +3393,7 @@ } ], "license": "MIT", + "peer": true, "dependencies": { "baseline-browser-mapping": "^2.9.0", "caniuse-lite": "^1.0.30001759", @@ -3734,6 +3741,7 @@ "integrity": "sha512-LEyamqS7W5HB3ujJyvi0HQK/dtVINZvd5mAAp9eT5S/ujByGjiZLCzPcHVzuXbpJDJF/cxwHlfceVUDZ2lnSTw==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@eslint-community/eslint-utils": "^4.8.0", "@eslint-community/regexpp": "^4.12.1", @@ -4368,6 +4376,7 @@ "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==", "dev": true, "license": "MIT", + "peer": true, "bin": { "jiti": "bin/jiti.js" } @@ -4846,6 +4855,7 @@ } ], "license": "MIT", + "peer": true, "dependencies": { "nanoid": "^3.3.11", "picocolors": "^1.1.1", @@ -5068,6 +5078,7 @@ "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", "license": "MIT", + "peer": true, "dependencies": { "loose-envify": "^1.1.0" }, @@ -5080,6 +5091,7 @@ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", "license": "MIT", + "peer": true, "dependencies": { "loose-envify": "^1.1.0", "scheduler": "^0.23.2" @@ -5572,6 +5584,7 @@ "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=12" }, @@ -5647,6 +5660,7 @@ "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", "dev": true, "license": "Apache-2.0", + "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -5759,6 +5773,7 @@ "integrity": "sha512-o5a9xKjbtuhY6Bi5S3+HvbRERmouabWbyUcpXXUA1u+GNUKoROi9byOJ8M0nHbHYHkYICiMlqxkg1KkYmm25Sw==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "esbuild": "^0.21.3", "postcss": "^8.4.43", @@ -5819,6 +5834,7 @@ "integrity": "sha512-E4t7DJ9pESL6E3I8nFjPa4xGUd3PmiWDLsDztS2qXSJWfHtbQnwAWylaBvSNY48I3vr8PTqIZlyK8TE3V3CA4Q==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@vitest/expect": "4.0.16", "@vitest/mocker": "4.0.16", @@ -6375,6 +6391,7 @@ "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=12" }, @@ -6388,6 +6405,7 @@ "integrity": "sha512-dZwN5L1VlUBewiP6H9s2+B3e3Jg96D0vzN+Ry73sOefebhYr9f94wwkMNN/9ouoU8pV1BqA1d1zGk8928cx0rg==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "esbuild": "^0.27.0", "fdir": "^6.5.0", diff --git a/src/components/Dashboard.tsx b/src/components/Dashboard.tsx index 9196f9727..534972239 100644 --- a/src/components/Dashboard.tsx +++ b/src/components/Dashboard.tsx @@ -153,7 +153,7 @@ export function Dashboard() { const serverUrl = status ? `http://${status.host}:${status.port}` - : "http://localhost:3001"; + : "http://localhost:8999"; const getProviderName = (id: string) => { switch (id) { diff --git a/src/components/api-server/ApiServerPage.tsx b/src/components/api-server/ApiServerPage.tsx index fdf633e0a..434407f6f 100644 --- a/src/components/api-server/ApiServerPage.tsx +++ b/src/components/api-server/ApiServerPage.tsx @@ -148,7 +148,7 @@ export function ApiServerPage() { ...config, server: { ...config.server, - port: parseInt(editPort) || 3001, + port: parseInt(editPort) || 8999, api_key: editApiKey, }, }; @@ -236,8 +236,8 @@ export function ApiServerPage() { const serverUrl = status ? `http://${status.host}:${status.port}` - : "http://localhost:3001"; - const apiKey = config?.server.api_key || "proxycast-key"; + : `http://localhost:${config?.server.port ?? 8999}`; + const apiKey = config?.server.api_key ?? ""; // Test endpoints const testEndpoints = [ diff --git a/src/components/clients/ProviderForm.tsx b/src/components/clients/ProviderForm.tsx index ed67f76a4..e370b6a97 100644 --- a/src/components/clients/ProviderForm.tsx +++ b/src/components/clients/ProviderForm.tsx @@ -142,7 +142,7 @@ const presets: Record = { name: "ProxyCast", category: "proxy", iconColor: "#3b82f6", - defaultBaseUrl: "http://127.0.0.1:3001", + defaultBaseUrl: "http://127.0.0.1:8999", }, // 从凭证池导入 { @@ -192,7 +192,7 @@ model = "gpt-4o" iconColor: "#3b82f6", defaultCodexAuth: { api_key: "proxycast", - api_base_url: "http://127.0.0.1:3001/v1", + api_base_url: "http://127.0.0.1:8999/v1", }, }, // 从凭证池导入 @@ -228,7 +228,7 @@ model = "gpt-4o" iconColor: "#3b82f6", defaultGeminiEnv: { GEMINI_API_KEY: "proxycast", - GOOGLE_GEMINI_BASE_URL: "http://127.0.0.1:3001", + GOOGLE_GEMINI_BASE_URL: "http://127.0.0.1:8999", GEMINI_MODEL: "gemini-2.0-flash", }, }, @@ -562,7 +562,7 @@ export function ProviderForm({ const config = await getConfig(); const proxyApiKey = config.server.api_key || ""; const proxyHost = config.server.host || "127.0.0.1"; - const proxyPort = config.server.port || 3001; + const proxyPort = config.server.port || 8999; const proxyBaseUrl = `http://${proxyHost}:${proxyPort}`; if (appType === "claude") { @@ -681,7 +681,7 @@ export function ProviderForm({ const config = await getConfig(); const proxyApiKey = config.server.api_key || ""; const proxyHost = config.server.host || "127.0.0.1"; - const proxyPort = config.server.port || 3001; + const proxyPort = config.server.port || 8999; const proxyBaseUrl = `http://${proxyHost}:${proxyPort}`; if (appType === "claude") { diff --git a/src/components/provider-pool/EditCredentialModal.tsx b/src/components/provider-pool/EditCredentialModal.tsx index 391975926..18fa230bf 100644 --- a/src/components/provider-pool/EditCredentialModal.tsx +++ b/src/components/provider-pool/EditCredentialModal.tsx @@ -53,7 +53,7 @@ const providerModels: Record = { ], openai: [], // 自定义 API,无预设模型 claude: [], // 自定义 API,无预设模型 - codex: ["gpt-4o", "gpt-4o-mini", "o1", "o1-mini", "o3-mini"], // Codex OAuth + codex: ["gpt-4o", "gpt-4o-mini", "o1", "o1-mini", "o3-mini"], // Codex(OAuth / API Key) claude_oauth: [ "claude-3-5-sonnet-latest", "claude-3-5-haiku-latest", diff --git a/src/components/provider-pool/ProviderPoolPage.tsx b/src/components/provider-pool/ProviderPoolPage.tsx index 976bc761c..4e984035b 100644 --- a/src/components/provider-pool/ProviderPoolPage.tsx +++ b/src/components/provider-pool/ProviderPoolPage.tsx @@ -56,7 +56,7 @@ const providerLabels: Record = { antigravity: "Antigravity (Gemini 3 Pro)", openai: "OpenAI", claude: "Claude (Anthropic)", - codex: "Codex (OpenAI OAuth)", + codex: "Codex (OAuth / API Key)", claude_oauth: "Claude OAuth", iflow: "iFlow", }; diff --git a/src/components/settings/ProxySettings.tsx b/src/components/settings/ProxySettings.tsx index fee178288..c21d25f9c 100644 --- a/src/components/settings/ProxySettings.tsx +++ b/src/components/settings/ProxySettings.tsx @@ -173,7 +173,7 @@ export function ProxySettings() { ...config, server: { ...config.server, - port: parseInt(e.target.value) || 3001, + port: parseInt(e.target.value) || 8999, }, }) } diff --git a/src/components/settings/RemoteManagementSettings.tsx b/src/components/settings/RemoteManagementSettings.tsx index bb3865cbd..78c9c4c0f 100644 --- a/src/components/settings/RemoteManagementSettings.tsx +++ b/src/components/settings/RemoteManagementSettings.tsx @@ -88,7 +88,8 @@ export function RemoteManagementSettings() { } const rm = config.remote_management; - const isEnabled = rm.secret_key && rm.secret_key.length > 0; + const isEnabled = Boolean(rm.secret_key && rm.secret_key.length > 0); + const remoteAccessSupported = false; return (
@@ -121,6 +122,13 @@ export function RemoteManagementSettings() { )}
+ {!remoteAccessSupported && ( +
+ + 当前版本未启用 TLS,暂不支持远程管理访问,请保持关闭。 +
+ )} + {/* 管理密钥 */}
@@ -179,7 +187,7 @@ export function RemoteManagementSettings() { {/* 允许远程访问 */}