fix(cliproxy): propagate port in unified config and UI preset handlers

Edge case fixes identified in codebase review:
- Unified config variant detection: add settingsPath and port fields
- Provider editor: use variant port in handleApplyPreset/handleCustomPresetApply
- preset-utils: add optional port parameter to applyDefaultPreset()
This commit is contained in:
kaitranntt committed 2025-12-30 13:12:54 -05:00
1 parent e58afd7790
commit 2625389120
3 files changed
+11 -4

No files matched your search

+2
View File
@@ -112,6 +112,8 @@ class ProfileDetector {
type: 'cliproxy', type: 'cliproxy',
name: profileName, name: profileName,
provider: variant.provider as CLIProxyProfileName, provider: variant.provider as CLIProxyProfileName,
settingsPath: variant.settings,
port: variant.port,
}; };
} }
@@ -94,8 +94,9 @@ export function ProviderEditor({
const accounts = authStatus.accounts || []; const accounts = authStatus.accounts || [];
const handleApplyPreset = (updates: Record<string, string>) => { const handleApplyPreset = (updates: Record<string, string>) => {
const effectivePort = port ?? CLIPROXY_PORT;
updateEnvValues({ updateEnvValues({
ANTHROPIC_BASE_URL: `http://127.0.0.1:${CLIPROXY_PORT}/api/provider/${provider}`, ANTHROPIC_BASE_URL: `http://127.0.0.1:${effectivePort}/api/provider/${provider}`,
ANTHROPIC_AUTH_TOKEN: 'ccs-internal-managed', ANTHROPIC_AUTH_TOKEN: 'ccs-internal-managed',
...updates, ...updates,
}); });
@@ -103,8 +104,9 @@ export function ProviderEditor({
}; };
const handleCustomPresetApply = (values: ModelMappingValues, presetName?: string) => { const handleCustomPresetApply = (values: ModelMappingValues, presetName?: string) => {
const effectivePort = port ?? CLIPROXY_PORT;
updateEnvValues({ updateEnvValues({
ANTHROPIC_BASE_URL: `http://127.0.0.1:${CLIPROXY_PORT}/api/provider/${provider}`, ANTHROPIC_BASE_URL: `http://127.0.0.1:${effectivePort}/api/provider/${provider}`,
ANTHROPIC_AUTH_TOKEN: 'ccs-internal-managed', ANTHROPIC_AUTH_TOKEN: 'ccs-internal-managed',
ANTHROPIC_MODEL: values.default, ANTHROPIC_MODEL: values.default,
ANTHROPIC_DEFAULT_OPUS_MODEL: values.opus, ANTHROPIC_DEFAULT_OPUS_MODEL: values.opus,
+5 -2
View File
@@ -13,10 +13,12 @@ export const CLIPROXY_PORT = 8317;
* Uses the first model's presetMapping or falls back to using defaultModel for all tiers * Uses the first model's presetMapping or falls back to using defaultModel for all tiers
* *
* @param provider - The provider ID (e.g., 'gemini', 'codex', 'agy') * @param provider - The provider ID (e.g., 'gemini', 'codex', 'agy')
* @param port - Optional custom port (defaults to CLIPROXY_PORT)
* @returns Object with success status and applied preset name * @returns Object with success status and applied preset name
*/ */
export async function applyDefaultPreset( export async function applyDefaultPreset(
provider: string provider: string,
port?: number
): Promise<{ success: boolean; presetName?: string }> { ): Promise<{ success: boolean; presetName?: string }> {
const catalog = MODEL_CATALOGS[provider]; const catalog = MODEL_CATALOGS[provider];
if (!catalog) return { success: false }; if (!catalog) return { success: false };
@@ -30,9 +32,10 @@ export async function applyDefaultPreset(
haiku: catalog.defaultModel, haiku: catalog.defaultModel,
}; };
const effectivePort = port ?? CLIPROXY_PORT;
const settings = { const settings = {
env: { env: {
ANTHROPIC_BASE_URL: `http://127.0.0.1:${CLIPROXY_PORT}/api/provider/${provider}`, ANTHROPIC_BASE_URL: `http://127.0.0.1:${effectivePort}/api/provider/${provider}`,
ANTHROPIC_AUTH_TOKEN: 'ccs-internal-managed', ANTHROPIC_AUTH_TOKEN: 'ccs-internal-managed',
ANTHROPIC_MODEL: mapping.default, ANTHROPIC_MODEL: mapping.default,
ANTHROPIC_DEFAULT_OPUS_MODEL: mapping.opus, ANTHROPIC_DEFAULT_OPUS_MODEL: mapping.opus,