refactor(desktop): split kernel_commands/pipeline_commands into modules, add SaaS client libs and gateway modules
Split monolithic kernel_commands.rs (2185 lines) and pipeline_commands.rs (1391 lines) into focused sub-modules under kernel_commands/ and pipeline_commands/ directories. Add gateway module (commands, config, io, runtime), health_check, and 15 new TypeScript client libraries for SaaS relay, auth, admin, telemetry, and kernel sub-systems (a2a, agent, chat, hands, skills, triggers). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -10,6 +10,9 @@
|
||||
|
||||
import { secureStorage } from './secure-storage';
|
||||
import { logKeyEvent, logSecurityEvent } from './security-audit';
|
||||
import { createLogger } from './logger';
|
||||
|
||||
const logger = createLogger('GatewayStorage');
|
||||
|
||||
// === WSS Configuration ===
|
||||
|
||||
@@ -35,7 +38,8 @@ export function isLocalhost(url: string): boolean {
|
||||
return parsed.hostname === 'localhost' ||
|
||||
parsed.hostname === '127.0.0.1' ||
|
||||
parsed.hostname === '[::1]';
|
||||
} catch {
|
||||
} catch (e) {
|
||||
logger.debug('URL parsing failed in isLocalhost', { error: e });
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -87,7 +91,8 @@ export function getStoredGatewayUrl(): string {
|
||||
try {
|
||||
const stored = localStorage.getItem(GATEWAY_URL_STORAGE_KEY);
|
||||
return normalizeGatewayUrl(stored || DEFAULT_GATEWAY_URL);
|
||||
} catch {
|
||||
} catch (e) {
|
||||
logger.debug('localStorage unavailable for gateway URL read', { error: e });
|
||||
return DEFAULT_GATEWAY_URL;
|
||||
}
|
||||
}
|
||||
@@ -96,7 +101,7 @@ export function setStoredGatewayUrl(url: string): string {
|
||||
const normalized = normalizeGatewayUrl(url || DEFAULT_GATEWAY_URL);
|
||||
try {
|
||||
localStorage.setItem(GATEWAY_URL_STORAGE_KEY, normalized);
|
||||
} catch { /* ignore localStorage failures */ }
|
||||
} catch (e) { logger.debug('localStorage unavailable for gateway URL write', { error: e }); }
|
||||
return normalized;
|
||||
}
|
||||
|
||||
@@ -142,13 +147,15 @@ export function getStoredGatewayToken(): string {
|
||||
console.warn('[GatewayStorage] Token is encrypted - use async version');
|
||||
return '';
|
||||
}
|
||||
} catch {
|
||||
} catch (e) {
|
||||
// Not JSON, so it's plaintext (legacy format)
|
||||
logger.debug('Legacy plaintext token format detected', { error: e });
|
||||
return stored;
|
||||
}
|
||||
}
|
||||
return '';
|
||||
} catch {
|
||||
} catch (e) {
|
||||
logger.warn('Failed to read gateway token from localStorage', { error: e });
|
||||
return '';
|
||||
}
|
||||
}
|
||||
@@ -202,8 +209,8 @@ export function setStoredGatewayToken(token: string): string {
|
||||
} else {
|
||||
localStorage.removeItem(GATEWAY_TOKEN_STORAGE_KEY);
|
||||
}
|
||||
} catch {
|
||||
/* ignore localStorage failures */
|
||||
} catch (e) {
|
||||
logger.warn('Failed to write gateway token to localStorage', { error: e });
|
||||
}
|
||||
|
||||
return normalized;
|
||||
|
||||
Reference in New Issue
Block a user