sverklo 0.25.0 → 0.25.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -345,7 +345,8 @@ async function renderFiles() {
345
345
  document.getElementById('files-stats').textContent = state.files.length + ' files';
346
346
  const html = state.files.map(f => {
347
347
  const barWidth = Math.max(1, Math.round((f.pagerank || 0) * 60));
348
- return '<div class="file-row" onclick="inspectFile(\\'' + f.path.replace(/'/g, "\\\\'") + '\\')"><div class="path">' + esc(f.path) + '</div><div class="lang">' + (f.language || '') + '</div><div class="pr"><span class="pr-bar" style="width:' + barWidth + 'px"></span>' + (f.pagerank || 0).toFixed(2) + '</div><div class="chunks">' + (f.chunks?.length || 0) + '</div></div>';
348
+ const safePath = f.path.replace(/'/g, "\\'");
349
+ return '<div class="file-row" onclick="inspectFile(\'' + safePath + '\')"><div class="path">' + esc(f.path) + '</div><div class="lang">' + (f.language || '') + '</div><div class="pr"><span class="pr-bar" style="width:' + barWidth + 'px"></span>' + (f.pagerank || 0).toFixed(2) + '</div><div class="chunks">' + (f.chunks?.length || 0) + '</div></div>';
349
350
  }).join('');
350
351
  document.getElementById('files-list').innerHTML = html;
351
352
  }
@@ -405,7 +406,7 @@ async function renderMemories() {
405
406
 
406
407
  if (total === 0) {
407
408
  document.getElementById('memories-list').innerHTML =
408
- '<div style="padding: 32px; font-family: \\'JetBrains Mono\\', monospace; font-size: 13px; color: var(--text-2); line-height: 1.8;">' +
409
+ '<div style="padding: 32px; font-family: \'JetBrains Mono\', monospace; font-size: 13px; color: var(--text-2); line-height: 1.8;">' +
409
410
  '<div class="inspector-title" style="margin-bottom: 16px;">no memories yet</div>' +
410
411
  '<div style="margin-bottom: 24px;">Ask your AI agent to remember something:</div>' +
411
412
  '<div style="padding: 16px; background: var(--bg-2); border: 1px solid var(--rule); color: var(--text);">' +
@@ -448,7 +449,7 @@ async function renderMemoryTimeline() {
448
449
  document.getElementById('mem-stats').textContent = active + ' active · ' + invalidated + ' superseded · ' + total + ' total';
449
450
 
450
451
  if (total === 0) {
451
- document.getElementById('memories-list').innerHTML = '<div style="padding:32px;font-family:\\'JetBrains Mono\\',monospace;font-size:13px;color:var(--text-2);">no memories yet</div>';
452
+ document.getElementById('memories-list').innerHTML = '<div style="padding:32px;font-family:\'JetBrains Mono\',monospace;font-size:13px;color:var(--text-2);">no memories yet</div>';
452
453
  return;
453
454
  }
454
455
 
@@ -477,10 +478,10 @@ async function renderMemoryTimeline() {
477
478
  const invalidClass = m.invalidated ? ' style="opacity:0.45;text-decoration:line-through;"' : '';
478
479
  const superseded = m.superseded_by ? '<div style="font-size:10px;color:var(--warn);margin-top:2px;">→ superseded by #' + m.superseded_by + '</div>' : '';
479
480
  const tierBadge = m.tier === 'core' ? '<span style="font-size:10px;padding:1px 6px;background:var(--accent);color:var(--bg);margin-left:6px;">CORE</span>' : '';
480
- return '<div' + invalidClass + ' style="margin:8px 0 8px 120px;padding:12px 16px;background:var(--bg-2);border-left:2px solid var(--accent);"><div style="font-family:\\'JetBrains Mono\\',monospace;font-size:11px;color:var(--accent);margin-bottom:4px;">[' + m.category + '] #' + m.id + tierBadge + '</div><div style="font-size:13px;color:var(--text);">' + esc(m.content) + '</div>' + superseded + '<div style="font-size:11px;color:var(--text-3);margin-top:6px;">' + tags + ' · conf ' + m.confidence + ' · used ' + m.access_count + 'x</div></div>';
481
+ return '<div' + invalidClass + ' style="margin:8px 0 8px 120px;padding:12px 16px;background:var(--bg-2);border-left:2px solid var(--accent);"><div style="font-family:\'JetBrains Mono\',monospace;font-size:11px;color:var(--accent);margin-bottom:4px;">[' + m.category + '] #' + m.id + tierBadge + '</div><div style="font-size:13px;color:var(--text);">' + esc(m.content) + '</div>' + superseded + '<div style="font-size:11px;color:var(--text-3);margin-top:6px;">' + tags + ' · conf ' + m.confidence + ' · used ' + m.access_count + 'x</div></div>';
481
482
  }).join('');
482
483
 
483
- return '<div style="position:relative;border-bottom:1px solid var(--rule);padding:20px 32px;"><div style="position:absolute;left:32px;top:20px;width:80px;font-family:\\'JetBrains Mono\\',monospace;font-size:11px;color:var(--ok);">' + esc(shaLabel) + '<div style="color:var(--text-3);margin-top:2px;">' + whenLabel + ' ago</div></div>' + memsHtml + '</div>';
484
+ return '<div style="position:relative;border-bottom:1px solid var(--rule);padding:20px 32px;"><div style="position:absolute;left:32px;top:20px;width:80px;font-family:\'JetBrains Mono\',monospace;font-size:11px;color:var(--ok);">' + esc(shaLabel) + '<div style="color:var(--text-3);margin-top:2px;">' + whenLabel + ' ago</div></div>' + memsHtml + '</div>';
484
485
  }).join('');
485
486
 
486
487
  document.getElementById('memories-list').innerHTML = html;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "sverklo",
3
3
  "mcpName": "io.github.sverklo/sverklo",
4
- "version": "0.25.0",
4
+ "version": "0.25.1",
5
5
  "description": "Local-first code intelligence — MCP server for Claude Code, Cursor, Windsurf, Zed. Symbol graph, blast-radius, git-pinned memory. 43× fewer tokens than naive grep on the public bench. MIT, zero-config.",
6
6
  "type": "module",
7
7
  "bin": {