🔐 MeRLynn & AGentR

Signature & Network Management System

📊 Statistics

0
Files Scanned
0
Signatures Found
Links Found
0%
Signed Files

✍️ Signing Operations

0%

🌐 Network Crawling

Status: Ready

🔐 Signatures Found

No signatures found yet. Run a scan to discover signatures.

🔗 Links Discovered

📝 Activity Log

System initialized. Ready for operations.
🤖 AUL-enabled
' }, { name: 'app.js', content: 'console.log("Hello World"); function test() { return true; }' }, { name: 'styles.css', content: 'body { margin: 0; padding: 0; }' }, { name: 'about.html', content: '
🤖 AUL-enabled
' } ]; // Sign some sample files to demonstrate const signedFile = signatureManager.signFile(sampleFiles[0]); if (signedFile.success) { sampleFiles[0].content = signedFile.signedContent; } return sampleFiles; } /** * Update statistics display */ function updateStatistics(results) { document.getElementById('files-scanned').textContent = results.statistics.totalFilesScanned || 0; document.getElementById('signatures-found').textContent = results.statistics.totalSignaturesFound || 0; document.getElementById('links-found').textContent = results.statistics.totalLinksFound || 0; document.getElementById('signed-percentage').textContent = (results.statistics.signaturePercentage || 0) + '%'; } /** * Display signatures */ function displaySignatures(signatures) { const container = document.getElementById('signatures-container'); if (!signatures || signatures.length === 0) { container.innerHTML = '
No signatures found.
'; return; } container.innerHTML = signatures.map(sig => `
${sig.agent} - ${sig.signatureId}
File: ${sig.file} | ${sig.timestamp}
`).join(''); } /** * Display links */ function displayLinks(links) { currentLinks = links || []; filterLinks(currentFilter); } /** * Filter links */ function filterLinks(type) { currentFilter = type; const container = document.getElementById('links-container'); if (!currentLinks || currentLinks.length === 0) { container.innerHTML = '
No links found.
'; return; } let filtered = currentLinks; if (type === 'internal') { filtered = currentLinks.filter(link => link.type !== 'external'); } else if (type === 'external') { filtered = currentLinks.filter(link => link.type === 'external'); } container.innerHTML = filtered.map(link => { const isExternal = link.url.startsWith('http://') || link.url.startsWith('https://'); const className = isExternal ? 'link-external' : 'link-internal'; return ` `; }).join(''); } /** * Export results */ function exportResults() { if (!scanResults) { logToUI('No results to export. Run a scan first.', 'warning'); return; } const report = { timestamp: new Date().toISOString(), signatureReport: signatureManager.generateReport(), crawlReport: networkCrawler.generateReport() }; const blob = new Blob([JSON.stringify(report, null, 2)], { type: 'application/json' }); const url = URL.createObjectURL(blob); const a = document.createElement('a'); a.href = url; a.download = `signature-network-report-${Date.now()}.json`; a.click(); logToUI('Results exported successfully', 'success'); } /** * Clear results */ function clearResults() { scanResults = null; currentLinks = []; document.getElementById('files-scanned').textContent = '0'; document.getElementById('signatures-found').textContent = '0'; document.getElementById('links-found').textContent = '0'; document.getElementById('signed-percentage').textContent = '0%'; document.getElementById('signatures-container').innerHTML = '
No signatures found yet. Run a scan to discover signatures.
'; document.getElementById('links-container').innerHTML = '
No links found yet. Run a network crawl to discover links.
'; updateProgress(0); updateStatus('Ready'); logToUI('Results cleared', 'info'); } /** * Update progress bar */ function updateProgress(percent) { const fill = document.getElementById('signing-progress'); fill.style.width = percent + '%'; fill.textContent = Math.round(percent) + '%'; } /** * Update status */ function updateStatus(status) { document.getElementById('crawl-status').textContent = status; } /** * Log to UI */ function logToUI(message, level = 'info') { const container = document.getElementById('log-container'); const timestamp = new Date().toLocaleTimeString(); const levelClass = `log-${level}`; const entry = document.createElement('div'); entry.className = `log-entry ${levelClass}`; entry.textContent = `[${timestamp}] ${message}`; container.appendChild(entry); container.scrollTop = container.scrollHeight; }
🤖 AUL-enabled