basant307/AI_Governance_Project
048
1/**2 * @license3 * Copyright 2025 Qwen Team4 * SPDX-License-Identifier: Apache-2.05 */6 7import * as os from 'node:os';8import * as path from 'node:path';9 10// Keep this literal in sync with core's QWEN_DIR. This lite module must not11// import @qwen-code/qwen-code-core because it runs before serve listener ready.12export const SETTINGS_DIRECTORY_NAME = '.qwen';13 14export function resolveConfigPathLite(dir: string, cwd?: string): string {15 let resolved = dir;16 if (17 resolved === '~' ||18 resolved.startsWith('~/') ||19 resolved.startsWith('~\\')20 ) {21 const relativeSegments =22 resolved === '~'23 ? []24 : resolved25 .slice(2)26 .split(/[/\\]+/)27 .filter(Boolean);28 resolved = path.join(os.homedir(), ...relativeSegments);29 }30 if (!path.isAbsolute(resolved)) {31 resolved = path.resolve(cwd || process.cwd(), resolved);32 }33 return resolved;34}35 36export function getGlobalQwenDirLite(): string {37 const envDir = process.env['QWEN_HOME'];38 if (envDir) {39 return resolveConfigPathLite(envDir);40 }41 const homeDir = os.homedir();42 if (!homeDir) {43 return path.join(os.tmpdir(), SETTINGS_DIRECTORY_NAME);44 }45 return path.join(homeDir, SETTINGS_DIRECTORY_NAME);46}47 48export function getSystemSettingsPath(): string {49 if (process.env['QWEN_CODE_SYSTEM_SETTINGS_PATH']) {50 return process.env['QWEN_CODE_SYSTEM_SETTINGS_PATH'];51 }52 if (os.platform() === 'darwin') {53 return '/Library/Application Support/QwenCode/settings.json';54 }55 if (os.platform() === 'win32') {56 return 'C:\\ProgramData\\qwen-code\\settings.json';57 }58 return '/etc/qwen-code/settings.json';59}60 61export function getSystemDefaultsPath(): string {62 if (process.env['QWEN_CODE_SYSTEM_DEFAULTS_PATH']) {63 return process.env['QWEN_CODE_SYSTEM_DEFAULTS_PATH'];64 }65 return path.join(66 path.dirname(getSystemSettingsPath()),67 'system-defaults.json',68 );69}70 