@sanctuary-framework/mcp-server 0.5.9 → 0.5.10

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.
package/dist/index.js CHANGED
@@ -5690,11 +5690,12 @@ function generateDashboardHTML(options) {
5690
5690
  // API Updates
5691
5691
  async function updateSovereignty() {
5692
5692
  const data = await fetchAPI('/api/sovereignty');
5693
- if (!data) return;
5693
+ if (!data || data.error) return;
5694
5694
 
5695
5695
  apiState.sovereignty = data;
5696
5696
 
5697
- const score = calculateSovereigntyScore(data.shr);
5697
+ // API returns { score, overall_level, layers: { l1, l2, l3, l4 }, ... }
5698
+ const score = data.score ?? 0;
5698
5699
  const badge = document.getElementById('sovereignty-badge');
5699
5700
  const scoreEl = document.getElementById('sovereignty-score');
5700
5701
 
@@ -5704,18 +5705,18 @@ function generateDashboardHTML(options) {
5704
5705
  if (score < 70) badge.classList.add('degraded');
5705
5706
  if (score < 40) badge.classList.add('inactive');
5706
5707
 
5707
- updateLayerCards(data.shr);
5708
+ updateLayerCards(data);
5708
5709
  }
5709
5710
 
5710
- function updateLayerCards(shr) {
5711
- if (!shr || !shr.layers) return;
5711
+ function updateLayerCards(data) {
5712
+ if (!data || !data.layers) return;
5712
5713
 
5713
- const layers = shr.layers;
5714
+ const layers = data.layers;
5714
5715
 
5715
- updateLayerCard('l1', layers.l1, layers.l1?.encryption || 'AES-256-GCM');
5716
- updateLayerCard('l2', layers.l2, layers.l2?.isolation_type || 'Process-level');
5717
- updateLayerCard('l3', layers.l3, layers.l3?.proof_system || 'Schnorr-Pedersen');
5718
- updateLayerCard('l4', layers.l4, layers.l4?.reputation_mode || 'Weighted');
5716
+ updateLayerCard('l1', layers.l1, layers.l1?.detail || 'AES-256-GCM');
5717
+ updateLayerCard('l2', layers.l2, layers.l2?.detail || 'Process-level');
5718
+ updateLayerCard('l3', layers.l3, layers.l3?.detail || 'Schnorr-Pedersen');
5719
+ updateLayerCard('l4', layers.l4, layers.l4?.detail || 'Weighted');
5719
5720
  }
5720
5721
 
5721
5722
  function updateLayerCard(layer, layerData, detail) {
@@ -5743,14 +5744,16 @@ function generateDashboardHTML(options) {
5743
5744
 
5744
5745
  apiState.identity = data;
5745
5746
 
5746
- const primary = data.primary || {};
5747
+ // API returns { identities: [...], count, primary_id }
5748
+ // Find the primary identity from the array
5749
+ const primary = (data.identities || []).find(id => id.identity_id === data.primary_id) || {};
5747
5750
  document.getElementById('identity-label').textContent = primary.label || '\u2014';
5748
5751
  document.getElementById('identity-did').textContent = truncate(primary.did, 24);
5749
5752
  document.getElementById('identity-did').title = primary.did || '';
5750
- document.getElementById('identity-pubkey').textContent = truncate(primary.publicKey, 24);
5751
- document.getElementById('identity-pubkey').title = primary.publicKey || '';
5752
- document.getElementById('identity-created').textContent = formatTime(primary.createdAt);
5753
- document.getElementById('identity-count').textContent = data.identities?.length || '\u2014';
5753
+ document.getElementById('identity-pubkey').textContent = truncate(primary.public_key, 24);
5754
+ document.getElementById('identity-pubkey').title = primary.public_key || '';
5755
+ document.getElementById('identity-created').textContent = formatTime(primary.created_at);
5756
+ document.getElementById('identity-count').textContent = data.count || '\u2014';
5754
5757
  }
5755
5758
 
5756
5759
  async function updateHandshakes() {
@@ -5759,14 +5762,14 @@ function generateDashboardHTML(options) {
5759
5762
 
5760
5763
  apiState.handshakes = data.handshakes || [];
5761
5764
 
5762
- document.getElementById('handshake-count').textContent = data.handshakes?.length || '0';
5765
+ document.getElementById('handshake-count').textContent = data.count || '0';
5763
5766
 
5764
5767
  if (data.handshakes && data.handshakes.length > 0) {
5765
5768
  const latest = data.handshakes[0];
5766
- document.getElementById('handshake-latest').textContent = truncate(latest.counterpartyId, 20);
5767
- document.getElementById('handshake-latest').title = latest.counterpartyId || '';
5768
- document.getElementById('handshake-tier').textContent = (latest.trustTier || 'Unverified').toUpperCase();
5769
- document.getElementById('handshake-time').textContent = formatTime(latest.completedAt);
5769
+ document.getElementById('handshake-latest').textContent = truncate(latest.counterparty_id, 20);
5770
+ document.getElementById('handshake-latest').title = latest.counterparty_id || '';
5771
+ document.getElementById('handshake-tier').textContent = (latest.trust_tier || 'Unverified').toUpperCase();
5772
+ document.getElementById('handshake-time').textContent = formatTime(latest.completed_at);
5770
5773
  } else {
5771
5774
  document.getElementById('handshake-latest').textContent = '\u2014';
5772
5775
  document.getElementById('handshake-tier').textContent = 'Unverified';
@@ -5788,12 +5791,12 @@ function generateDashboardHTML(options) {
5788
5791
  .map(
5789
5792
  (hs) => \`
5790
5793
  <div class="table-row">
5791
- <div class="table-cell strong">\${esc(truncate(hs.counterpartyId, 24))}</div>
5792
- <div class="table-cell">\${esc(hs.trustTier || 'Unverified')}</div>
5793
- <div class="table-cell">\${esc(hs.sovereigntyLevel || '\u2014')}</div>
5794
+ <div class="table-cell strong">\${esc(truncate(hs.counterparty_id, 24))}</div>
5795
+ <div class="table-cell">\${esc(hs.trust_tier || 'Unverified')}</div>
5796
+ <div class="table-cell">\${esc(hs.sovereignty_level || '\u2014')}</div>
5794
5797
  <div class="table-cell">\${hs.verified ? 'Yes' : 'No'}</div>
5795
- <div class="table-cell">\${formatTime(hs.completedAt)}</div>
5796
- <div class="table-cell">\${formatTime(hs.expiresAt)}</div>
5798
+ <div class="table-cell">\${formatTime(hs.completed_at)}</div>
5799
+ <div class="table-cell">\${formatTime(hs.expires_at)}</div>
5797
5800
  </div>
5798
5801
  \`
5799
5802
  )
@@ -5811,11 +5814,14 @@ function generateDashboardHTML(options) {
5811
5814
  function renderSHRViewer(shr) {
5812
5815
  const viewer = document.getElementById('shr-viewer');
5813
5816
 
5814
- if (!shr) {
5817
+ if (!shr || shr.error) {
5815
5818
  viewer.innerHTML = '<div class="empty-state">No SHR available</div>';
5816
5819
  return;
5817
5820
  }
5818
5821
 
5822
+ // SignedSHR shape: { body: { implementation, instance_id, layers, ... }, signed_by, signature }
5823
+ const body = shr.body || shr;
5824
+
5819
5825
  let html = '';
5820
5826
 
5821
5827
  // Implementation
@@ -5828,15 +5834,15 @@ function generateDashboardHTML(options) {
5828
5834
  <div class="shr-section-content">
5829
5835
  <div class="shr-item">
5830
5836
  <div class="shr-key">sanctuary_version:</div>
5831
- <div class="shr-value">\${esc(shr.implementation?.sanctuary_version || '\u2014')}</div>
5837
+ <div class="shr-value">\${esc(body.implementation?.sanctuary_version || '\u2014')}</div>
5832
5838
  </div>
5833
5839
  <div class="shr-item">
5834
5840
  <div class="shr-key">node_version:</div>
5835
- <div class="shr-value">\${esc(shr.implementation?.node_version || '\u2014')}</div>
5841
+ <div class="shr-value">\${esc(body.implementation?.node_version || '\u2014')}</div>
5836
5842
  </div>
5837
5843
  <div class="shr-item">
5838
5844
  <div class="shr-key">generated_by:</div>
5839
- <div class="shr-value">\${esc(shr.implementation?.generated_by || '\u2014')}</div>
5845
+ <div class="shr-value">\${esc(body.implementation?.generated_by || '\u2014')}</div>
5840
5846
  </div>
5841
5847
  </div>
5842
5848
  </div>
@@ -5852,22 +5858,22 @@ function generateDashboardHTML(options) {
5852
5858
  <div class="shr-section-content">
5853
5859
  <div class="shr-item">
5854
5860
  <div class="shr-key">instance_id:</div>
5855
- <div class="shr-value">\${esc(truncate(shr.instance_id, 20))}</div>
5861
+ <div class="shr-value">\${esc(truncate(body.instance_id, 20))}</div>
5856
5862
  </div>
5857
5863
  <div class="shr-item">
5858
5864
  <div class="shr-key">generated_at:</div>
5859
- <div class="shr-value">\${formatTime(shr.generated_at)}</div>
5865
+ <div class="shr-value">\${formatTime(body.generated_at)}</div>
5860
5866
  </div>
5861
5867
  <div class="shr-item">
5862
5868
  <div class="shr-key">expires_at:</div>
5863
- <div class="shr-value">\${formatTime(shr.expires_at)}</div>
5869
+ <div class="shr-value">\${formatTime(body.expires_at)}</div>
5864
5870
  </div>
5865
5871
  </div>
5866
5872
  </div>
5867
5873
  \`;
5868
5874
 
5869
5875
  // Layers
5870
- if (shr.layers) {
5876
+ if (body.layers) {
5871
5877
  html += \`<div class="shr-section">
5872
5878
  <div class="shr-section-header">
5873
5879
  <div class="shr-toggle">\u25BC</div>
@@ -5876,7 +5882,7 @@ function generateDashboardHTML(options) {
5876
5882
  <div class="shr-section-content">
5877
5883
  \`;
5878
5884
 
5879
- for (const [key, layer] of Object.entries(shr.layers)) {
5885
+ for (const [key, layer] of Object.entries(body.layers)) {
5880
5886
  html += \`
5881
5887
  <div style="margin-bottom: 12px;">
5882
5888
  <div style="color: var(--blue); font-weight: 600; margin-bottom: 4px;">\${esc(key)}</div>