import {$, api, badge, escapeHtml, exposeHandlers, pageWrap, setPanel} from './core.js?v=20260819-3';
export async function renderMemory() {
const memory = await api('/api/memory');
const categories = memory.categories || {};
const total = Object.values(categories).reduce((sum, value) => sum + value, 0);
const cards = Object.entries(categories).map(([name, value]) => `
${escapeHtml(name)}
${value}
`).join('');
setPanel('Memory', pageWrap(`Memory
${badge(`${total} total`, 'grey')}`, `${cards || '
No memory entries yet.
'}
Intelligence retentionPreview expired operational records and low-value knowledge before deleting them.
`));
}
export async function runIntelligenceMaintenance(execute) {
if (execute && !confirm('Delete the retention candidates shown by the current policy?')) return;
const message = $('intelligence-maintenance-msg');
message.textContent = execute ? 'Deleting...' : 'Calculating...';
try {
const result = await api(`/api/maintenance/intelligence?execute=${execute ? 'true' : 'false'}`, {method:'POST'});
const entries = Object.entries(result).filter(([key, value]) => !['ok','executed'].includes(key) && Number.isFinite(value));
message.textContent = `${execute ? 'Deleted' : 'Candidates'} - ${entries.map(([key, value]) => `${key.replaceAll('_', ' ')}: ${value}`).join(' - ') || 'none'}`;
} catch (error) {
message.textContent = `Error: ${error.message}`;
}
}
exposeHandlers({runIntelligenceMaintenance});