diff --git a/app/chrome-extension/common/env-config.ts b/app/chrome-extension/common/env-config.ts index 7ba94ea..66b687d 100644 --- a/app/chrome-extension/common/env-config.ts +++ b/app/chrome-extension/common/env-config.ts @@ -15,12 +15,47 @@ console.log('Environment Config Loaded:', { REMOTE_SERVER_PORT, }); +// Helper function to determine if we should include port in URL +const shouldIncludePort = (host: string, port: string): boolean => { + // For localhost/127.0.0.1, always include port + if (host === '127.0.0.1' || host === 'localhost') { + return true; + } + + // For HTTPS domains using standard port 443, don't include port + if (port === '443') { + return false; + } + + // For HTTP domains using standard port 80, don't include port + if (port === '80') { + return false; + } + + // For all other cases, include the port + return true; +}; + +// Helper function to determine protocol +const getProtocol = (port: string): { ws: string; http: string } => { + if (port === '443') { + return { ws: 'wss', http: 'https' }; + } + return { ws: 'ws', http: 'http' }; +}; + +// Build URLs based on whether port should be included +const includePort = shouldIncludePort(REMOTE_SERVER_HOST, REMOTE_SERVER_PORT); +const protocols = getProtocol(REMOTE_SERVER_PORT); + +const baseUrl = includePort ? `${REMOTE_SERVER_HOST}:${REMOTE_SERVER_PORT}` : REMOTE_SERVER_HOST; + // Remote Server Configuration export const REMOTE_SERVER_CONFIG = { HOST: REMOTE_SERVER_HOST, PORT: REMOTE_SERVER_PORT, - WS_URL: `ws://${REMOTE_SERVER_HOST}:${REMOTE_SERVER_PORT}/chrome`, - HTTP_URL: `http://${REMOTE_SERVER_HOST}:${REMOTE_SERVER_PORT}/mcp`, + WS_URL: `${protocols.ws}://${baseUrl}/chrome`, + HTTP_URL: `${protocols.http}://${baseUrl}/mcp`, } as const; // Default connection settings diff --git a/app/chrome-extension/entrypoints/popup/App.vue b/app/chrome-extension/entrypoints/popup/App.vue index a6b15b0..30275dd 100644 --- a/app/chrome-extension/entrypoints/popup/App.vue +++ b/app/chrome-extension/entrypoints/popup/App.vue @@ -384,7 +384,7 @@ -
+