Spaces:
Running
Running
// KIMI DEBUG UTILITIES | |
// Centralized debug management for production optimization | |
// | |
// USAGE: | |
// debugOn() - Enable all debug logs | |
// debugOff() - Disable all debug logs (production mode) | |
// debugStatus() - Show current debug configuration | |
// kimiDebugAll() - Complete debug dashboard (includes errors) | |
// kimiDiagnosDB() - Database schema diagnostics | |
// | |
// CATEGORIES: | |
// KimiDebugController.setDebugCategory("VIDEO", true) | |
// KimiDebugController.setDebugCategory("MEMORY", false) | |
// Available: VIDEO, VOICE, MEMORY, API, SYNC | |
// Global debug controller | |
window.KimiDebugController = { | |
// Enable/disable all debug features | |
setGlobalDebug(enabled) { | |
if (window.KIMI_CONFIG && window.KIMI_CONFIG.DEBUG) { | |
window.KIMI_CONFIG.DEBUG.ENABLED = enabled; | |
window.KIMI_CONFIG.DEBUG.VOICE = enabled; | |
window.KIMI_CONFIG.DEBUG.VIDEO = enabled; | |
window.KIMI_CONFIG.DEBUG.MEMORY = enabled; | |
window.KIMI_CONFIG.DEBUG.API = enabled; | |
window.KIMI_CONFIG.DEBUG.SYNC = enabled; | |
} | |
// Legacy flags (to be removed) | |
window.KIMI_DEBUG_SYNC = enabled; | |
window.KIMI_DEBUG_MEMORIES = enabled; | |
window.KIMI_DEBUG_API_AUDIT = enabled; | |
window.DEBUG_SAFE_LOGS = enabled; | |
console.log(`π§ Global debug ${enabled ? "ENABLED" : "DISABLED"}`); | |
}, | |
// Enable specific debug category | |
setDebugCategory(category, enabled) { | |
if (window.KIMI_CONFIG && window.KIMI_CONFIG.DEBUG) { | |
if (category in window.KIMI_CONFIG.DEBUG) { | |
window.KIMI_CONFIG.DEBUG[category] = enabled; | |
console.log(`π§ Debug category ${category} ${enabled ? "ENABLED" : "DISABLED"}`); | |
} | |
} | |
// Video manager specific | |
if (category === "VIDEO" && window.kimiVideo) { | |
window.kimiVideo.setDebug(enabled); | |
} | |
}, | |
// Production mode (all debug off) | |
setProductionMode() { | |
this.setGlobalDebug(false); | |
console.log("π Production mode activated - all debug logs disabled"); | |
}, | |
// Development mode (selective debug on) | |
setDevelopmentMode() { | |
this.setGlobalDebug(true); | |
console.log("π οΈ Development mode activated - debug logs enabled"); | |
}, | |
// Get current debug status | |
getDebugStatus() { | |
const status = { | |
global: window.KIMI_CONFIG?.DEBUG?.ENABLED || false, | |
voice: window.KIMI_CONFIG?.DEBUG?.VOICE || false, | |
video: window.KIMI_CONFIG?.DEBUG?.VIDEO || false, | |
memory: window.KIMI_CONFIG?.DEBUG?.MEMORY || false, | |
api: window.KIMI_CONFIG?.DEBUG?.API || false, | |
sync: window.KIMI_CONFIG?.DEBUG?.SYNC || false | |
}; | |
console.table(status); | |
return status; | |
} | |
}; | |
// Quick shortcuts for console | |
window.debugOn = () => window.KimiDebugController.setDevelopmentMode(); | |
window.debugOff = () => window.KimiDebugController.setProductionMode(); | |
window.debugStatus = () => window.KimiDebugController.getDebugStatus(); | |
// Integration with error manager for unified debugging | |
window.kimiDebugAll = () => { | |
console.group("π§ Kimi Debug Dashboard"); | |
window.KimiDebugController.getDebugStatus(); | |
if (window.kimiErrorManager) { | |
window.kimiErrorManager.printErrorSummary(); | |
} | |
console.groupEnd(); | |
}; | |
// Database diagnostics helper | |
window.kimiDiagnosDB = async () => { | |
console.group("π Database Diagnostics"); | |
try { | |
if (window.kimiDB) { | |
console.log("π Database version:", window.kimiDB.db.verno); | |
console.log("π Available tables:", Object.keys(window.kimiDB.db._dbSchema)); | |
// Check memories table schema | |
const memoriesSchema = window.kimiDB.db._dbSchema.memories; | |
if (memoriesSchema) { | |
console.log("π§ Memories schema:", memoriesSchema); | |
const hasCharacterIsActiveIndex = memoriesSchema.indexes?.some( | |
idx => | |
idx.name === "[character+isActive]" || | |
(idx.keyPath?.includes("character") && idx.keyPath?.includes("isActive")) | |
); | |
console.log("β [character+isActive] index:", hasCharacterIsActiveIndex ? "PRESENT" : "β MISSING"); | |
if (!hasCharacterIsActiveIndex) { | |
console.warn( | |
"π¨ SOLUTION: Clear browser data (Application > Storage > Clear Site Data) to force schema upgrade" | |
); | |
} | |
} | |
} else { | |
console.warn("β Database not initialized yet"); | |
} | |
} catch (error) { | |
console.error("Error during database diagnostics:", error); | |
} | |
console.groupEnd(); | |
}; | |
// Auto-initialize to production mode for performance | |
if (typeof window.KIMI_CONFIG !== "undefined") { | |
window.KimiDebugController.setProductionMode(); | |
} | |