mirror of
https://github.com/catlog22/Claude-Code-Workflow.git
synced 2026-02-12 02:37:45 +08:00
feat: Implement core memory management with knowledge graph and evolution tracking
- Added core-memory.js and core-memory-graph.js for managing core memory views and visualizations. - Introduced functions for viewing knowledge graphs and evolution history of memories. - Implemented modal dialogs for creating, editing, and viewing memory details. - Developed core-memory.ts for backend operations including list, import, export, and summary generation. - Integrated Zod for parameter validation in core memory operations. - Enhanced UI with dynamic rendering of memory cards and detailed views.
This commit is contained in:
@@ -297,10 +297,6 @@ async function renderCliManager() {
|
||||
if (statsGrid) statsGrid.style.display = 'none';
|
||||
if (searchInput) searchInput.parentElement.style.display = 'none';
|
||||
|
||||
// Show storage card (only visible in CLI Manager view)
|
||||
var storageCard = document.getElementById('storageCard');
|
||||
if (storageCard) storageCard.style.display = '';
|
||||
|
||||
// Load data (including CodexLens status for tools section)
|
||||
await Promise.all([
|
||||
loadCliToolStatus(),
|
||||
@@ -314,13 +310,17 @@ async function renderCliManager() {
|
||||
'<div class="cli-section" id="tools-section"></div>' +
|
||||
'<div class="cli-section" id="ccw-section"></div>' +
|
||||
'</div>' +
|
||||
'<div class="cli-section" id="language-settings-section" style="margin-top: 1.5rem;"></div>' +
|
||||
'<div class="cli-settings-section" id="cli-settings-section" style="margin-top: 1.5rem;"></div>' +
|
||||
'<div class="cli-section" id="ccw-endpoint-tools-section" style="margin-top: 1.5rem;"></div>' +
|
||||
'</div>';
|
||||
'</div>' +
|
||||
'<section id="storageCard" class="mb-6"></section>' +
|
||||
'<section id="indexCard" class="mb-6"></section>';
|
||||
|
||||
// Render sub-panels
|
||||
renderToolsSection();
|
||||
renderCcwSection();
|
||||
renderLanguageSettingsSection();
|
||||
renderCliSettingsSection();
|
||||
renderCcwEndpointToolsSection();
|
||||
|
||||
@@ -329,6 +329,11 @@ async function renderCliManager() {
|
||||
initStorageManager();
|
||||
}
|
||||
|
||||
// Initialize index manager card
|
||||
if (typeof initIndexManager === 'function') {
|
||||
initIndexManager();
|
||||
}
|
||||
|
||||
// Initialize Lucide icons
|
||||
if (window.lucide) lucide.createIcons();
|
||||
}
|
||||
@@ -504,6 +509,94 @@ function renderCcwSection() {
|
||||
if (window.lucide) lucide.createIcons();
|
||||
}
|
||||
|
||||
// ========== Language Settings State ==========
|
||||
var chineseResponseEnabled = false;
|
||||
var chineseResponseLoading = false;
|
||||
|
||||
// ========== Language Settings Section ==========
|
||||
async function loadLanguageSettings() {
|
||||
try {
|
||||
var response = await fetch('/api/language/chinese-response');
|
||||
if (!response.ok) throw new Error('Failed to load language settings');
|
||||
var data = await response.json();
|
||||
chineseResponseEnabled = data.enabled || false;
|
||||
return data;
|
||||
} catch (err) {
|
||||
console.error('Failed to load language settings:', err);
|
||||
chineseResponseEnabled = false;
|
||||
return { enabled: false, guidelinesExists: false };
|
||||
}
|
||||
}
|
||||
|
||||
async function toggleChineseResponse(enabled) {
|
||||
if (chineseResponseLoading) return;
|
||||
chineseResponseLoading = true;
|
||||
|
||||
try {
|
||||
var response = await fetch('/api/language/chinese-response', {
|
||||
method: 'POST',
|
||||
headers: { 'Content-Type': 'application/json' },
|
||||
body: JSON.stringify({ enabled: enabled })
|
||||
});
|
||||
|
||||
if (!response.ok) {
|
||||
var errData = await response.json();
|
||||
throw new Error(errData.error || 'Failed to update setting');
|
||||
}
|
||||
|
||||
var data = await response.json();
|
||||
chineseResponseEnabled = data.enabled;
|
||||
|
||||
// Update UI
|
||||
renderLanguageSettingsSection();
|
||||
|
||||
// Show toast
|
||||
showRefreshToast(enabled ? t('lang.enableSuccess') : t('lang.disableSuccess'), 'success');
|
||||
} catch (err) {
|
||||
console.error('Failed to toggle Chinese response:', err);
|
||||
showRefreshToast(enabled ? t('lang.enableFailed') : t('lang.disableFailed'), 'error');
|
||||
} finally {
|
||||
chineseResponseLoading = false;
|
||||
}
|
||||
}
|
||||
|
||||
async function renderLanguageSettingsSection() {
|
||||
var container = document.getElementById('language-settings-section');
|
||||
if (!container) return;
|
||||
|
||||
// Load current state if not loaded
|
||||
if (!chineseResponseEnabled && !chineseResponseLoading) {
|
||||
await loadLanguageSettings();
|
||||
}
|
||||
|
||||
var settingsHtml = '<div class="section-header">' +
|
||||
'<div class="section-header-left">' +
|
||||
'<h3><i data-lucide="languages" class="w-4 h-4"></i> ' + t('lang.settings') + '</h3>' +
|
||||
'</div>' +
|
||||
'</div>' +
|
||||
'<div class="cli-settings-grid" style="grid-template-columns: 1fr;">' +
|
||||
'<div class="cli-setting-item">' +
|
||||
'<label class="cli-setting-label">' +
|
||||
'<i data-lucide="message-square-text" class="w-3 h-3"></i>' +
|
||||
t('lang.chinese') +
|
||||
'</label>' +
|
||||
'<div class="cli-setting-control">' +
|
||||
'<label class="cli-toggle">' +
|
||||
'<input type="checkbox"' + (chineseResponseEnabled ? ' checked' : '') + ' onchange="toggleChineseResponse(this.checked)"' + (chineseResponseLoading ? ' disabled' : '') + '>' +
|
||||
'<span class="cli-toggle-slider"></span>' +
|
||||
'</label>' +
|
||||
'<span class="cli-setting-status ' + (chineseResponseEnabled ? 'enabled' : 'disabled') + '">' +
|
||||
(chineseResponseEnabled ? t('lang.enabled') : t('lang.disabled')) +
|
||||
'</span>' +
|
||||
'</div>' +
|
||||
'<p class="cli-setting-desc">' + t('lang.chineseDesc') + '</p>' +
|
||||
'</div>' +
|
||||
'</div>';
|
||||
|
||||
container.innerHTML = settingsHtml;
|
||||
if (window.lucide) lucide.createIcons();
|
||||
}
|
||||
|
||||
// ========== CLI Settings Section (Full Width) ==========
|
||||
function renderCliSettingsSection() {
|
||||
var container = document.getElementById('cli-settings-section');
|
||||
|
||||
Reference in New Issue
Block a user