Virtual-Kimi / kimi-js /kimi-config.js
VirtualKimi's picture
Upload 21 files
70b31b7 verified
// ===== KIMI CONFIGURATION CENTER =====
window.KIMI_CONFIG = {
// Default values for all components
DEFAULTS: {
LANGUAGE: "en",
THEME: "purple",
INTERFACE_OPACITY: 0.8,
ANIMATIONS_ENABLED: true,
VOICE_RATE: 1.1,
VOICE_PITCH: 1.1,
VOICE_VOLUME: 0.8,
LLM_TEMPERATURE: 0.9,
LLM_MAX_TOKENS: 400,
LLM_TOP_P: 0.9,
LLM_FREQUENCY_PENALTY: 0.9,
LLM_PRESENCE_PENALTY: 0.8,
SELECTED_CHARACTER: "kimi",
SHOW_TRANSCRIPT: true
},
// Validation ranges
RANGES: {
VOICE_RATE: { min: 0.5, max: 2.0 },
VOICE_PITCH: { min: 0.5, max: 2.0 },
VOICE_VOLUME: { min: 0.0, max: 1.0 },
INTERFACE_OPACITY: { min: 0.1, max: 1.0 },
LLM_TEMPERATURE: { min: 0.0, max: 1.0 },
LLM_MAX_TOKENS: { min: 10, max: 8192 },
LLM_TOP_P: { min: 0.0, max: 1.0 },
LLM_FREQUENCY_PENALTY: { min: 0.0, max: 2.0 },
LLM_PRESENCE_PENALTY: { min: 0.0, max: 2.0 }
},
// Performance settings
PERFORMANCE: {
DEBOUNCE_DELAY: 300,
THROTTLE_DELAY: 100,
BATCH_SIZE: 10,
MAX_MEMORY_ENTRIES: 1000,
CLEANUP_INTERVAL: 300000 // 5 minutes
},
// UI settings
UI: {
LOADING_TIMEOUT: 1500,
ANIMATION_DURATION: 500,
FEEDBACK_DURATION: 1500,
TAB_SCROLL_THRESHOLD: 50
},
// API settings
API: {
MAX_RETRIES: 3,
TIMEOUT: 30000,
RATE_LIMIT_DELAY: 1000
},
// Error messages
ERRORS: {
INIT_FAILED: "Initialization failed",
DB_ERROR: "Database error",
API_ERROR: "API error",
VALIDATION_ERROR: "Validation error",
NETWORK_ERROR: "Network error"
},
// Available themes
THEMES: {
dark: "Dark Night",
default: "Passionate Pink",
blue: "Ocean Blue",
purple: "Mystic Purple",
green: "Emerald Forest"
},
// Supported languages
LANGUAGES: {
fr: "French",
en: "English",
es: "Spanish",
de: "German",
it: "Italian",
ja: "Japanese",
zh: "Chinese"
}
};
// Configuration utility functions
window.KIMI_CONFIG.get = function (path, fallback = null) {
try {
const keys = path.split(".");
let value = this;
for (const key of keys) {
if (value && typeof value === "object" && key in value) {
value = value[key];
} else {
return fallback;
}
}
return value;
} catch (error) {
console.error("Config get error:", error);
return fallback;
}
};
window.KIMI_CONFIG.validate = function (value, type) {
try {
const range = this.RANGES[type];
if (!range) return { valid: true, value };
const numValue = parseFloat(value);
if (isNaN(numValue)) return { valid: false, value: this.DEFAULTS[type] };
const clampedValue = Math.max(range.min, Math.min(range.max, numValue));
return { valid: true, value: clampedValue };
} catch (error) {
console.error("Config validation error:", error);
return { valid: false, value: this.DEFAULTS[type] };
}
};