yakmesh 2.8.2 → 3.0.0
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/CHANGELOG.md +637 -0
- package/CONTRIBUTING.md +42 -0
- package/Caddyfile +77 -0
- package/README.md +119 -29
- package/adapters/adapter-mlv-bible/README.md +124 -0
- package/adapters/adapter-mlv-bible/index.js +400 -0
- package/adapters/chat-mod-adapter.js +532 -0
- package/adapters/content-adapter.js +273 -0
- package/content/api.js +50 -41
- package/content/index.js +2 -2
- package/content/store.js +355 -173
- package/dashboard/index.html +19 -3
- package/database/replication.js +117 -37
- package/docs/CRYPTO-AGILITY.md +204 -0
- package/docs/MTLS-RESEARCH.md +367 -0
- package/docs/NAMCHE-SPEC.md +681 -0
- package/docs/PEERQUANTA-YAKMESH-INTEGRATION.md +407 -0
- package/docs/PRECISION-DISCLOSURE.md +96 -0
- package/docs/README.md +76 -0
- package/docs/ROADMAP-2.4.0.md +447 -0
- package/docs/ROADMAP-2.5.0.md +244 -0
- package/docs/SECURITY-AUDIT-REPORT.md +306 -0
- package/docs/SST-INTEGRATION.md +712 -0
- package/docs/STEADYWATCH-IMPLEMENTATION.md +303 -0
- package/docs/TERNARY-AUDIT-REPORT.md +247 -0
- package/docs/TME-FAQ.md +221 -0
- package/docs/WHITEPAPER.md +623 -0
- package/docs/adapters.html +1001 -0
- package/docs/advanced-systems.html +1045 -0
- package/docs/annex.html +1046 -0
- package/docs/api.html +970 -0
- package/docs/business/response-templates.md +160 -0
- package/docs/c2c.html +1225 -0
- package/docs/cli.html +1332 -0
- package/docs/configuration.html +1248 -0
- package/docs/darshan.html +1085 -0
- package/docs/dharma.html +966 -0
- package/docs/docs-bundle.html +1075 -0
- package/docs/docs.css +3120 -0
- package/docs/docs.js +556 -0
- package/docs/doko.html +969 -0
- package/docs/geo-proof.html +858 -0
- package/docs/getting-started.html +840 -0
- package/docs/gumba-tutorial.html +1144 -0
- package/docs/gumba.html +1098 -0
- package/docs/index.html +914 -0
- package/docs/jhilke.html +1312 -0
- package/docs/karma.html +1100 -0
- package/docs/katha.html +1037 -0
- package/docs/lama.html +978 -0
- package/docs/mandala.html +1067 -0
- package/docs/mani.html +964 -0
- package/docs/mantra.html +967 -0
- package/docs/mesh.html +1409 -0
- package/docs/nakpak.html +869 -0
- package/docs/namche.html +928 -0
- package/docs/nav-order.json +53 -0
- package/docs/prahari.html +1043 -0
- package/docs/prism-bash.min.js +1 -0
- package/docs/prism-javascript.min.js +1 -0
- package/docs/prism-json.min.js +1 -0
- package/docs/prism-tomorrow.min.css +1 -0
- package/docs/prism.min.js +1 -0
- package/docs/privacy.html +699 -0
- package/docs/quick-reference.html +1181 -0
- package/docs/sakshi.html +1402 -0
- package/docs/sandboxing.md +386 -0
- package/docs/seva.html +911 -0
- package/docs/sherpa.html +871 -0
- package/docs/studio.html +860 -0
- package/docs/stupa.html +995 -0
- package/docs/tailwind.min.css +2 -0
- package/docs/tattva.html +1332 -0
- package/docs/terms.html +686 -0
- package/docs/time-server-deployment.md +166 -0
- package/docs/time-sources.html +1392 -0
- package/docs/tivra.html +1127 -0
- package/docs/trademark-policy.html +686 -0
- package/docs/tribhuj.html +1183 -0
- package/docs/trust-security.html +1029 -0
- package/docs/tutorials/backup-recovery.html +654 -0
- package/docs/tutorials/dashboard.html +604 -0
- package/docs/tutorials/domain-setup.html +605 -0
- package/docs/tutorials/host-website.html +456 -0
- package/docs/tutorials/mesh-network.html +505 -0
- package/docs/tutorials/mobile-access.html +445 -0
- package/docs/tutorials/privacy.html +467 -0
- package/docs/tutorials/raspberry-pi.html +600 -0
- package/docs/tutorials/security-basics.html +539 -0
- package/docs/tutorials/share-files.html +431 -0
- package/docs/tutorials/troubleshooting.html +637 -0
- package/docs/tutorials/trust-karma.html +419 -0
- package/docs/tutorials/yak-protocol.html +456 -0
- package/docs/tutorials.html +1034 -0
- package/docs/vani.html +1270 -0
- package/docs/webserver.html +809 -0
- package/docs/yak-protocol.html +940 -0
- package/docs/yak-timeserver-design.md +475 -0
- package/docs/yakapp.html +1015 -0
- package/docs/ypc27.html +1069 -0
- package/docs/yurt.html +1344 -0
- package/embedded-docs/bundle.js +334 -74
- package/gossip/protocol.js +247 -27
- package/identity/key-resolver.js +262 -0
- package/identity/machine-seed.js +632 -0
- package/identity/node-key.js +669 -368
- package/identity/tribhuj-ratchet.js +506 -0
- package/knowledge-base.js +37 -8
- package/launcher/yakmesh.bat +62 -0
- package/launcher/yakmesh.sh +70 -0
- package/mesh/annex.js +462 -108
- package/mesh/beacon-broadcast.js +113 -1
- package/mesh/darshan.js +1718 -0
- package/mesh/gumba.js +1567 -0
- package/mesh/jhilke.js +651 -0
- package/mesh/katha.js +1012 -0
- package/mesh/nakpak-routing.js +8 -5
- package/mesh/network.js +724 -34
- package/mesh/pulse-sync.js +4 -1
- package/mesh/rate-limiter.js +127 -15
- package/mesh/seva.js +526 -0
- package/mesh/sherpa-discovery.js +89 -8
- package/mesh/sybil-defense.js +19 -5
- package/mesh/temporal-encoder.js +4 -3
- package/mesh/vani.js +1364 -0
- package/mesh/yurt.js +1340 -0
- package/models/entropy-sentinel.onnx +0 -0
- package/models/karma-trust.onnx +0 -0
- package/models/manifest.json +43 -0
- package/models/sakshi-anomaly.onnx +0 -0
- package/oracle/code-proof-protocol.js +7 -6
- package/oracle/codebase-lock.js +257 -28
- package/oracle/index.js +74 -15
- package/oracle/ma902-snmp.js +678 -0
- package/oracle/module-sealer.js +5 -3
- package/oracle/network-identity.js +16 -0
- package/oracle/packet-checksum.js +201 -0
- package/oracle/sst.js +579 -0
- package/oracle/ternary-144t.js +714 -0
- package/oracle/ternary-ml.js +481 -0
- package/oracle/time-api.js +239 -0
- package/oracle/time-source.js +137 -47
- package/oracle/validation-oracle-hardened.js +1111 -1071
- package/oracle/validation-oracle.js +4 -2
- package/oracle/ypc27.js +211 -0
- package/package.json +20 -3
- package/protocol/yak-handler.js +35 -9
- package/protocol/yak-protocol.js +28 -13
- package/reference/cpp/yakmesh_mceliece_shard.cpp +168 -0
- package/reference/cpp/yakmesh_ypc27.cpp +179 -0
- package/sbom.json +87 -0
- package/scripts/security-audit.mjs +264 -0
- package/scripts/update-docs-nav.js +194 -0
- package/scripts/update-docs-sidebar.cjs +164 -0
- package/security/crypto-config.js +4 -3
- package/security/dharma-moderation.js +517 -0
- package/security/doko-identity.js +193 -143
- package/security/domain-consensus.js +86 -85
- package/security/fs-hardening.js +620 -0
- package/security/hardware-attestation.js +5 -3
- package/security/hybrid-trust.js +227 -87
- package/security/karma-rate-limiter.js +692 -0
- package/security/khata-protocol.js +22 -21
- package/security/khata-trust-integration.js +277 -150
- package/security/memory-safety.js +635 -0
- package/security/mesh-auth.js +11 -10
- package/security/mesh-revocation.js +373 -5
- package/security/namche-gateway.js +298 -69
- package/security/sakshi.js +460 -3
- package/security/sangha.js +770 -0
- package/security/secure-config.js +473 -0
- package/security/silicon-parity.js +13 -10
- package/security/steadywatch.js +1142 -0
- package/security/strike-system.js +32 -3
- package/security/temporal-signing.js +488 -0
- package/security/trit-commitment.js +464 -0
- package/server/crypto/annex.js +247 -0
- package/server/darshan-api.js +343 -0
- package/server/index.js +3259 -362
- package/server/komm-api.js +668 -0
- package/utils/accel.js +2273 -0
- package/utils/ternary-id.js +79 -0
- package/utils/verify-worker.js +57 -0
- package/webserver/index.js +95 -5
- package/assets/yakmesh-logo.png +0 -0
- package/assets/yakmesh-logo.svg +0 -80
- package/assets/yakmesh-logo2.png +0 -0
- package/assets/yakmesh-logo2sm.png +0 -0
- package/assets/ymsm.png +0 -0
- package/website/assets/silhouettes/adapters.svg +0 -107
- package/website/assets/silhouettes/api-endpoints.svg +0 -115
- package/website/assets/silhouettes/atomic-clock.svg +0 -83
- package/website/assets/silhouettes/base-camp.svg +0 -81
- package/website/assets/silhouettes/bridge.svg +0 -69
- package/website/assets/silhouettes/docs-bundle.svg +0 -113
- package/website/assets/silhouettes/doko-basket.svg +0 -70
- package/website/assets/silhouettes/fortress.svg +0 -93
- package/website/assets/silhouettes/gateway.svg +0 -54
- package/website/assets/silhouettes/gears.svg +0 -93
- package/website/assets/silhouettes/globe-satellite.svg +0 -67
- package/website/assets/silhouettes/karma-wheel.svg +0 -137
- package/website/assets/silhouettes/lama-council.svg +0 -141
- package/website/assets/silhouettes/mandala-network.svg +0 -169
- package/website/assets/silhouettes/mani-stones.svg +0 -149
- package/website/assets/silhouettes/mantra-wheel.svg +0 -116
- package/website/assets/silhouettes/mesh-nodes.svg +0 -113
- package/website/assets/silhouettes/nakpak.svg +0 -56
- package/website/assets/silhouettes/peak-lightning.svg +0 -73
- package/website/assets/silhouettes/sherpa.svg +0 -69
- package/website/assets/silhouettes/stupa-tower.svg +0 -119
- package/website/assets/silhouettes/tattva-eye.svg +0 -78
- package/website/assets/silhouettes/terminal.svg +0 -74
- package/website/assets/silhouettes/webserver.svg +0 -145
- package/website/assets/silhouettes/yak.svg +0 -78
- package/website/assets/yakmesh-logo.png +0 -0
- package/website/assets/yakmesh-logo.webp +0 -0
- package/website/assets/yakmesh-logo128x140.webp +0 -0
- package/website/assets/yakmesh-logo2.png +0 -0
- package/website/assets/yakmesh-logo2.svg +0 -51
- package/website/assets/yakmesh-logo40x44.webp +0 -0
- package/website/assets/yakmesh.gif +0 -0
- package/website/assets/yakmesh.ico +0 -0
- package/website/assets/yakmesh.jpg +0 -0
- package/website/assets/yakmesh.pdf +0 -0
- package/website/assets/yakmesh.png +0 -0
- package/website/assets/yakmesh.svg +0 -70
- package/website/assets/yakmesh128.webp +0 -0
- package/website/assets/yakmesh32.png +0 -0
- package/website/assets/yakmesh32.svg +0 -65
- package/website/assets/yakmesh32o.ico +0 -2
- package/website/assets/yakmesh32o.svg +0 -65
- package/website/assets/yakmesh32o.svgz +0 -0
package/docs/sakshi.html
ADDED
|
@@ -0,0 +1,1402 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en" data-theme="sakshi">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
|
+
<link rel="icon" href="favicon.ico" sizes="32x32">
|
|
7
|
+
<link rel="icon" href="icon.svg" type="image/svg+xml">
|
|
8
|
+
<link rel="apple-touch-icon" href="apple-touch-icon.png">
|
|
9
|
+
<title>SAKSHI Observational System | YAKMESH Documentation</title>
|
|
10
|
+
<meta name="description" content="YAKMESH SAKSHI observational capability system. The math testifies, not the node.">
|
|
11
|
+
<link rel="stylesheet" href="tailwind.min.css">
|
|
12
|
+
<link rel="stylesheet" href="prism-tomorrow.min.css" media="print" onload="this.media='all'">
|
|
13
|
+
<noscript><link rel="stylesheet" href="prism-tomorrow.min.css"></noscript>
|
|
14
|
+
<link rel="stylesheet" href="docs.css">
|
|
15
|
+
<style>
|
|
16
|
+
.theme-accent { color: #8b5cf6; }
|
|
17
|
+
.theme-accent-hover:hover { color: #a78bfa; }
|
|
18
|
+
.theme-badge { background: rgba(139, 92, 246, 0.2); color: #a78bfa; }
|
|
19
|
+
.theme-border { border-color: #8b5cf6; }
|
|
20
|
+
.theme-callout { background: rgba(139, 92, 246, 0.1); border-color: #7c3aed; }
|
|
21
|
+
.active-link { background: rgba(139, 92, 246, 0.2) !important; color: #a78bfa !important; }
|
|
22
|
+
.module-card-sakshi { background: linear-gradient(135deg, rgba(139, 92, 246, 0.15), rgba(124, 58, 237, 0.1)); border-left: 4px solid #8b5cf6; }
|
|
23
|
+
.module-card-vivaad { background: linear-gradient(135deg, rgba(249, 115, 22, 0.15), rgba(234, 88, 12, 0.1)); border-left: 4px solid #f97316; }
|
|
24
|
+
.module-card-setu { background: linear-gradient(135deg, rgba(6, 182, 212, 0.15), rgba(8, 145, 178, 0.1)); border-left: 4px solid #06b6d4; }
|
|
25
|
+
.philosophy-quote { font-style: italic; background: linear-gradient(135deg, rgba(139, 92, 246, 0.2), rgba(124, 58, 237, 0.1)); border-left: 4px solid #8b5cf6; }
|
|
26
|
+
.anti-pattern { background: linear-gradient(135deg, rgba(239, 68, 68, 0.2), rgba(220, 38, 38, 0.1)); border-left: 4px solid #ef4444; }
|
|
27
|
+
.correct-pattern { background: linear-gradient(135deg, rgba(34, 197, 94, 0.2), rgba(22, 163, 74, 0.1)); border-left: 4px solid #22c55e; }
|
|
28
|
+
.cause-table { width: 100%; border-collapse: collapse; }
|
|
29
|
+
.cause-table th, .cause-table td { padding: 0.75rem; text-align: left; border-bottom: 1px solid #2e4c43; }
|
|
30
|
+
.cause-table th { color: #8b5cf6; font-weight: 600; background: rgba(139, 92, 246, 0.1); }
|
|
31
|
+
.cause-table code { background: #1f332d; padding: 0.25rem 0.5rem; border-radius: 4px; }
|
|
32
|
+
.percent-bar { height: 8px; background: #374151; border-radius: 4px; overflow: hidden; }
|
|
33
|
+
.percent-fill { height: 100%; background: linear-gradient(90deg, #8b5cf6, #a78bfa); }
|
|
34
|
+
.sanskrit-term { font-style: italic; color: #a78bfa; }
|
|
35
|
+
.warning-box { background: rgba(251, 191, 36, 0.1); border: 1px solid #f59e0b; border-radius: 0.5rem; }
|
|
36
|
+
.tabset { display: flex; border-bottom: 2px solid #374151; margin-bottom: 1rem; }
|
|
37
|
+
.tab { padding: 0.75rem 1.5rem; cursor: pointer; border-bottom: 2px solid transparent; margin-bottom: -2px; }
|
|
38
|
+
.tab.active { border-bottom-color: #8b5cf6; color: #a78bfa; }
|
|
39
|
+
.tab-content { display: none; }
|
|
40
|
+
.tab-content.active { display: block; }
|
|
41
|
+
</style>
|
|
42
|
+
|
|
43
|
+
<!-- Open Graph -->
|
|
44
|
+
<meta property="og:type" content="article">
|
|
45
|
+
<meta property="og:site_name" content="Yakmesh Documentation">
|
|
46
|
+
<meta property="og:title" content="SAKSHI — Yakmesh">
|
|
47
|
+
<meta property="og:description" content="SAKSHI witness protocol — observational capability system for consensus verification.">
|
|
48
|
+
</head>
|
|
49
|
+
<body class="bg-mountain-900 text-white min-h-screen">
|
|
50
|
+
<!-- YAKMESH-ICON-SPRITE-START -->
|
|
51
|
+
<svg xmlns="http://www.w3.org/2000/svg" style="display:none">
|
|
52
|
+
<!--
|
|
53
|
+
Yakmesh Docs Icon Sprite Sheet
|
|
54
|
+
24×24 viewBox — stroke/fill set via .doc-icon CSS
|
|
55
|
+
Usage: <svg class="doc-icon"><use href="#icon-name"/></svg>
|
|
56
|
+
-->
|
|
57
|
+
|
|
58
|
+
<!-- ═══ GUIDES ═══ -->
|
|
59
|
+
|
|
60
|
+
<symbol id="icon-home" viewBox="0 0 24 24">
|
|
61
|
+
<path d="M3 9.5L12 3l9 6.5V20a1 1 0 01-1 1H4a1 1 0 01-1-1V9.5z"/>
|
|
62
|
+
<polyline points="9 22 9 12 15 12 15 22"/>
|
|
63
|
+
</symbol>
|
|
64
|
+
|
|
65
|
+
<symbol id="icon-rocket" viewBox="0 0 24 24">
|
|
66
|
+
<path d="M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 00-2.91-.09z"/>
|
|
67
|
+
<path d="M12 15l-3-3a22 22 0 012-3.95A12.88 12.88 0 0122 2c0 2.72-.78 7.5-6 11a22.35 22.35 0 01-4 2z"/>
|
|
68
|
+
<path d="M9 12H4s.55-3.03 2-4c1.62-1.08 5 0 5 0"/>
|
|
69
|
+
<path d="M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5"/>
|
|
70
|
+
</symbol>
|
|
71
|
+
|
|
72
|
+
<symbol id="icon-book" viewBox="0 0 24 24">
|
|
73
|
+
<path d="M4 19.5A2.5 2.5 0 016.5 17H20"/>
|
|
74
|
+
<path d="M6.5 2H20v20H6.5A2.5 2.5 0 014 19.5v-15A2.5 2.5 0 016.5 2z"/>
|
|
75
|
+
<line x1="8" y1="7" x2="16" y2="7"/>
|
|
76
|
+
<line x1="8" y1="11" x2="13" y2="11"/>
|
|
77
|
+
</symbol>
|
|
78
|
+
|
|
79
|
+
<!-- ═══ PROTOCOL STACK ═══ -->
|
|
80
|
+
|
|
81
|
+
<!-- YAK:// — Content addressing (yak horns) -->
|
|
82
|
+
<symbol id="icon-yak" viewBox="0 0 24 24">
|
|
83
|
+
<path d="M4 4c1 3 3 5 5 6"/>
|
|
84
|
+
<path d="M20 4c-1 3-3 5-5 6"/>
|
|
85
|
+
<circle cx="12" cy="14" r="5"/>
|
|
86
|
+
<circle cx="10" cy="13" r="0.5" fill="currentColor"/>
|
|
87
|
+
<circle cx="14" cy="13" r="0.5" fill="currentColor"/>
|
|
88
|
+
<path d="M10 16c1 1 3 1 4 0"/>
|
|
89
|
+
</symbol>
|
|
90
|
+
|
|
91
|
+
<!-- ANNEX — Encrypted bridge -->
|
|
92
|
+
<symbol id="icon-annex" viewBox="0 0 24 24">
|
|
93
|
+
<path d="M4 18h3a4 4 0 004-4V8"/>
|
|
94
|
+
<path d="M20 18h-3a4 4 0 01-4-4V8"/>
|
|
95
|
+
<circle cx="7" cy="6" r="2"/>
|
|
96
|
+
<circle cx="17" cy="6" r="2"/>
|
|
97
|
+
<line x1="7" y1="8" x2="7" y2="18"/>
|
|
98
|
+
<line x1="17" y1="8" x2="17" y2="18"/>
|
|
99
|
+
</symbol>
|
|
100
|
+
|
|
101
|
+
<!-- JHILKE — Cricket / steganographic key lifecycle -->
|
|
102
|
+
<symbol id="icon-jhilke" viewBox="0 0 24 24">
|
|
103
|
+
<ellipse cx="12" cy="14" rx="4" ry="6"/>
|
|
104
|
+
<path d="M8 10c-2-3-4-6-3-8"/>
|
|
105
|
+
<path d="M16 10c2-3 4-6 3-8"/>
|
|
106
|
+
<line x1="10" y1="20" x2="8" y2="23"/>
|
|
107
|
+
<line x1="14" y1="20" x2="16" y2="23"/>
|
|
108
|
+
<path d="M9 12l-4 2"/>
|
|
109
|
+
<path d="M15 12l4 2"/>
|
|
110
|
+
</symbol>
|
|
111
|
+
|
|
112
|
+
<!-- NAKPAK — Onion layers / backpack -->
|
|
113
|
+
<symbol id="icon-nakpak" viewBox="0 0 24 24">
|
|
114
|
+
<circle cx="12" cy="12" r="10" opacity="0.3"/>
|
|
115
|
+
<circle cx="12" cy="12" r="7" opacity="0.5"/>
|
|
116
|
+
<circle cx="12" cy="12" r="4" opacity="0.8"/>
|
|
117
|
+
<circle cx="12" cy="12" r="1.5" fill="currentColor"/>
|
|
118
|
+
</symbol>
|
|
119
|
+
|
|
120
|
+
<!-- NAMCHE — Gateway door -->
|
|
121
|
+
<symbol id="icon-namche" viewBox="0 0 24 24">
|
|
122
|
+
<rect x="3" y="3" width="18" height="18" rx="2"/>
|
|
123
|
+
<path d="M9 3v18"/>
|
|
124
|
+
<path d="M15 3v18"/>
|
|
125
|
+
<line x1="3" y1="8" x2="9" y2="8"/>
|
|
126
|
+
<line x1="15" y1="8" x2="21" y2="8"/>
|
|
127
|
+
<circle cx="12" cy="14" r="1" fill="currentColor"/>
|
|
128
|
+
</symbol>
|
|
129
|
+
|
|
130
|
+
<!-- DOKO — Basket / certificate -->
|
|
131
|
+
<symbol id="icon-doko" viewBox="0 0 24 24">
|
|
132
|
+
<path d="M6 8l-2 12h16l-2-12"/>
|
|
133
|
+
<path d="M6 8c0-3 2.7-5 6-5s6 2 6 5"/>
|
|
134
|
+
<line x1="8" y1="10" x2="10" y2="18"/>
|
|
135
|
+
<line x1="16" y1="10" x2="14" y2="18"/>
|
|
136
|
+
<line x1="12" y1="10" x2="12" y2="18"/>
|
|
137
|
+
</symbol>
|
|
138
|
+
|
|
139
|
+
<!-- SHERPA — Mountain climber -->
|
|
140
|
+
<symbol id="icon-sherpa" viewBox="0 0 24 24">
|
|
141
|
+
<path d="M4 20L10 6l3 6 3-4 4 12"/>
|
|
142
|
+
<line x1="4" y1="20" x2="20" y2="20"/>
|
|
143
|
+
<circle cx="13" cy="4" r="1.5"/>
|
|
144
|
+
</symbol>
|
|
145
|
+
|
|
146
|
+
<!-- MANDALA — Network topology web -->
|
|
147
|
+
<symbol id="icon-mandala" viewBox="0 0 24 24">
|
|
148
|
+
<circle cx="12" cy="12" r="9"/>
|
|
149
|
+
<circle cx="12" cy="12" r="4.5"/>
|
|
150
|
+
<line x1="12" y1="3" x2="12" y2="21"/>
|
|
151
|
+
<line x1="3" y1="12" x2="21" y2="12"/>
|
|
152
|
+
<line x1="5.6" y1="5.6" x2="18.4" y2="18.4"/>
|
|
153
|
+
<line x1="18.4" y1="5.6" x2="5.6" y2="18.4"/>
|
|
154
|
+
</symbol>
|
|
155
|
+
|
|
156
|
+
<!-- MANTRA — Gossip / prayer wheel -->
|
|
157
|
+
<symbol id="icon-mantra" viewBox="0 0 24 24">
|
|
158
|
+
<circle cx="12" cy="10" r="7"/>
|
|
159
|
+
<path d="M12 3v14"/>
|
|
160
|
+
<path d="M8 7c2 1.5 6 1.5 8 0"/>
|
|
161
|
+
<path d="M8 13c2-1.5 6-1.5 8 0"/>
|
|
162
|
+
<line x1="12" y1="17" x2="12" y2="22"/>
|
|
163
|
+
<line x1="9" y1="22" x2="15" y2="22"/>
|
|
164
|
+
</symbol>
|
|
165
|
+
|
|
166
|
+
<!-- GUMBA — Temple / access control -->
|
|
167
|
+
<symbol id="icon-gumba" viewBox="0 0 24 24">
|
|
168
|
+
<path d="M12 2L3 9h18z"/>
|
|
169
|
+
<line x1="5" y1="9" x2="5" y2="19"/>
|
|
170
|
+
<line x1="9" y1="9" x2="9" y2="19"/>
|
|
171
|
+
<line x1="15" y1="9" x2="15" y2="19"/>
|
|
172
|
+
<line x1="19" y1="9" x2="19" y2="19"/>
|
|
173
|
+
<line x1="3" y1="19" x2="21" y2="19"/>
|
|
174
|
+
<line x1="3" y1="21" x2="21" y2="21"/>
|
|
175
|
+
</symbol>
|
|
176
|
+
|
|
177
|
+
<!-- YURT — Camp / room -->
|
|
178
|
+
<symbol id="icon-yurt" viewBox="0 0 24 24">
|
|
179
|
+
<path d="M3 20L12 4l9 16"/>
|
|
180
|
+
<line x1="3" y1="20" x2="21" y2="20"/>
|
|
181
|
+
<path d="M10 20v-5a2 2 0 014 0v5"/>
|
|
182
|
+
<path d="M6 14h12"/>
|
|
183
|
+
</symbol>
|
|
184
|
+
|
|
185
|
+
<!-- KATHA — Chat / story scroll -->
|
|
186
|
+
<symbol id="icon-katha" viewBox="0 0 24 24">
|
|
187
|
+
<path d="M21 15a2 2 0 01-2 2H7l-4 4V5a2 2 0 012-2h14a2 2 0 012 2z"/>
|
|
188
|
+
<line x1="8" y1="8" x2="16" y2="8"/>
|
|
189
|
+
<line x1="8" y1="12" x2="13" y2="12"/>
|
|
190
|
+
</symbol>
|
|
191
|
+
|
|
192
|
+
<!-- VANI — Voice / microphone -->
|
|
193
|
+
<symbol id="icon-vani" viewBox="0 0 24 24">
|
|
194
|
+
<rect x="9" y="2" width="6" height="11" rx="3"/>
|
|
195
|
+
<path d="M5 10a7 7 0 0014 0"/>
|
|
196
|
+
<line x1="12" y1="17" x2="12" y2="22"/>
|
|
197
|
+
<line x1="8" y1="22" x2="16" y2="22"/>
|
|
198
|
+
</symbol>
|
|
199
|
+
|
|
200
|
+
<!-- DARSHAN — Eye / viewing -->
|
|
201
|
+
<symbol id="icon-darshan" viewBox="0 0 24 24">
|
|
202
|
+
<path d="M1 12s4-8 11-8 11 8 11 8-4 8-11 8S1 12 1 12z"/>
|
|
203
|
+
<circle cx="12" cy="12" r="3"/>
|
|
204
|
+
</symbol>
|
|
205
|
+
|
|
206
|
+
<!-- STUPA — Tower / distributed storage -->
|
|
207
|
+
<symbol id="icon-stupa" viewBox="0 0 24 24">
|
|
208
|
+
<line x1="12" y1="2" x2="12" y2="5"/>
|
|
209
|
+
<path d="M10 5h4l1 3H9z"/>
|
|
210
|
+
<ellipse cx="12" cy="11" rx="5" ry="3"/>
|
|
211
|
+
<ellipse cx="12" cy="15" rx="6" ry="3"/>
|
|
212
|
+
<ellipse cx="12" cy="19" rx="7" ry="3"/>
|
|
213
|
+
</symbol>
|
|
214
|
+
|
|
215
|
+
<!-- LAMA — Crystal ball / consensus -->
|
|
216
|
+
<symbol id="icon-lama" viewBox="0 0 24 24">
|
|
217
|
+
<circle cx="12" cy="10" r="7"/>
|
|
218
|
+
<path d="M12 3c-1.5 2-2 5 0 7s4.5 2 6 0"/>
|
|
219
|
+
<path d="M7 19h10"/>
|
|
220
|
+
<path d="M9 22h6"/>
|
|
221
|
+
<line x1="9" y1="17" x2="9" y2="19"/>
|
|
222
|
+
<line x1="15" y1="17" x2="15" y2="19"/>
|
|
223
|
+
</symbol>
|
|
224
|
+
|
|
225
|
+
<!-- MANI — Prayer stone / time sync -->
|
|
226
|
+
<symbol id="icon-mani" viewBox="0 0 24 24">
|
|
227
|
+
<circle cx="12" cy="12" r="9"/>
|
|
228
|
+
<polyline points="12 6 12 12 16 14"/>
|
|
229
|
+
<circle cx="12" cy="12" r="1" fill="currentColor"/>
|
|
230
|
+
</symbol>
|
|
231
|
+
|
|
232
|
+
<!-- KARMA — Yin-yang / reputation -->
|
|
233
|
+
<symbol id="icon-karma" viewBox="0 0 24 24">
|
|
234
|
+
<circle cx="12" cy="12" r="9"/>
|
|
235
|
+
<path d="M12 3a4.5 4.5 0 010 9 4.5 4.5 0 000 9"/>
|
|
236
|
+
<circle cx="12" cy="7.5" r="1.5" fill="currentColor"/>
|
|
237
|
+
<circle cx="12" cy="16.5" r="1.5"/>
|
|
238
|
+
</symbol>
|
|
239
|
+
|
|
240
|
+
<!-- TATTVA — Quantum elements / atom -->
|
|
241
|
+
<symbol id="icon-tattva" viewBox="0 0 24 24">
|
|
242
|
+
<circle cx="12" cy="12" r="2.5" fill="currentColor" stroke="none"/>
|
|
243
|
+
<ellipse cx="12" cy="12" rx="10" ry="4"/>
|
|
244
|
+
<ellipse cx="12" cy="12" rx="10" ry="4" transform="rotate(60 12 12)"/>
|
|
245
|
+
<ellipse cx="12" cy="12" rx="10" ry="4" transform="rotate(120 12 12)"/>
|
|
246
|
+
</symbol>
|
|
247
|
+
|
|
248
|
+
<!-- TRIBHUJ — Triangle / balanced ternary -->
|
|
249
|
+
<symbol id="icon-tribhuj" viewBox="0 0 24 24">
|
|
250
|
+
<polygon points="12,3 21,20 3,20"/>
|
|
251
|
+
<line x1="12" y1="3" x2="12" y2="20"/>
|
|
252
|
+
<line x1="7.5" y1="11.5" x2="16.5" y2="11.5"/>
|
|
253
|
+
<circle cx="12" cy="14" r="1" fill="currentColor"/>
|
|
254
|
+
</symbol>
|
|
255
|
+
|
|
256
|
+
<!-- YPC-27 — Lock / cipher -->
|
|
257
|
+
<symbol id="icon-ypc27" viewBox="0 0 24 24">
|
|
258
|
+
<rect x="5" y="11" width="14" height="10" rx="2"/>
|
|
259
|
+
<path d="M8 11V7a4 4 0 118 0v4"/>
|
|
260
|
+
<circle cx="12" cy="16" r="1" fill="currentColor"/>
|
|
261
|
+
<line x1="12" y1="17" x2="12" y2="19"/>
|
|
262
|
+
</symbol>
|
|
263
|
+
|
|
264
|
+
<!-- SAKSHI — Witness / aperture eye -->
|
|
265
|
+
<symbol id="icon-sakshi" viewBox="0 0 24 24">
|
|
266
|
+
<circle cx="12" cy="12" r="9"/>
|
|
267
|
+
<path d="M12 3l3 9-3 9"/>
|
|
268
|
+
<path d="M12 3l-3 9 3 9"/>
|
|
269
|
+
<circle cx="12" cy="12" r="2.5"/>
|
|
270
|
+
<circle cx="12" cy="12" r="0.8" fill="currentColor"/>
|
|
271
|
+
</symbol>
|
|
272
|
+
|
|
273
|
+
<!-- PRAMAAN — Globe / geographic proof -->
|
|
274
|
+
<symbol id="icon-pramaan" viewBox="0 0 24 24">
|
|
275
|
+
<circle cx="12" cy="12" r="9"/>
|
|
276
|
+
<ellipse cx="12" cy="12" rx="4" ry="9"/>
|
|
277
|
+
<line x1="3" y1="9" x2="21" y2="9"/>
|
|
278
|
+
<line x1="3" y1="15" x2="21" y2="15"/>
|
|
279
|
+
<path d="M18 4l-2 2 1 3"/>
|
|
280
|
+
<path d="M6 18l2-1 3 1"/>
|
|
281
|
+
</symbol>
|
|
282
|
+
|
|
283
|
+
<!-- SURAKSHA — Shield / security -->
|
|
284
|
+
<symbol id="icon-suraksha" viewBox="0 0 24 24">
|
|
285
|
+
<path d="M12 2l8 4v6c0 5.5-3.8 10.7-8 12-4.2-1.3-8-6.5-8-12V6z"/>
|
|
286
|
+
<polyline points="9 12 11 14 15 10"/>
|
|
287
|
+
</symbol>
|
|
288
|
+
|
|
289
|
+
<!-- TIVRA — Lightning bolt / acceleration -->
|
|
290
|
+
<symbol id="icon-tivra" viewBox="0 0 24 24">
|
|
291
|
+
<polygon points="13,2 3,14 12,14 11,22 21,10 12,10"/>
|
|
292
|
+
</symbol>
|
|
293
|
+
|
|
294
|
+
<!-- PRAHARI — Satellite / sentinel -->
|
|
295
|
+
<symbol id="icon-prahari" viewBox="0 0 24 24">
|
|
296
|
+
<rect x="9" y="9" width="6" height="6" rx="1" transform="rotate(45 12 12)"/>
|
|
297
|
+
<line x1="12" y1="5" x2="12" y2="2"/>
|
|
298
|
+
<line x1="19" y1="12" x2="22" y2="12"/>
|
|
299
|
+
<line x1="12" y1="19" x2="12" y2="22"/>
|
|
300
|
+
<line x1="5" y1="12" x2="2" y2="12"/>
|
|
301
|
+
<path d="M7 7L5 5"/>
|
|
302
|
+
<path d="M17 7l2-2"/>
|
|
303
|
+
</symbol>
|
|
304
|
+
|
|
305
|
+
<!-- DHARMA — Balance scale / content moderation -->
|
|
306
|
+
<symbol id="icon-dharma" viewBox="0 0 24 24">
|
|
307
|
+
<line x1="12" y1="3" x2="12" y2="21"/>
|
|
308
|
+
<line x1="4" y1="7" x2="20" y2="7"/>
|
|
309
|
+
<path d="M4 7l2 7h0a3 3 0 006 0h0l2-7"/>
|
|
310
|
+
<path d="M14 7l2 7h0a3 3 0 006 0h0l2-7"/>
|
|
311
|
+
<line x1="10" y1="21" x2="14" y2="21"/>
|
|
312
|
+
</symbol>
|
|
313
|
+
|
|
314
|
+
<!-- SEVA — Helping hands / NPU sharing -->
|
|
315
|
+
<symbol id="icon-seva" viewBox="0 0 24 24">
|
|
316
|
+
<path d="M12 22c-4 0-8-2-8-6 0-2 1-3 3-4l5-3 5 3c2 1 3 2 3 4 0 4-4 6-8 6z"/>
|
|
317
|
+
<path d="M12 11V5"/>
|
|
318
|
+
<path d="M9 8l3-3 3 3"/>
|
|
319
|
+
<circle cx="12" cy="16" r="2"/>
|
|
320
|
+
</symbol>
|
|
321
|
+
|
|
322
|
+
<!-- ═══ APPLICATIONS ═══ -->
|
|
323
|
+
|
|
324
|
+
<!-- YakApp — Messenger -->
|
|
325
|
+
<symbol id="icon-yakapp" viewBox="0 0 24 24">
|
|
326
|
+
<path d="M21 11.5a8.38 8.38 0 01-.9 3.8 8.5 8.5 0 01-7.6 4.7 8.38 8.38 0 01-3.8-.9L3 21l1.9-5.7a8.38 8.38 0 01-.9-3.8 8.5 8.5 0 014.7-7.6 8.38 8.38 0 013.8-.9h.5a8.48 8.48 0 018 8v.5z"/>
|
|
327
|
+
</symbol>
|
|
328
|
+
|
|
329
|
+
<!-- C2C — Core to Cosmos -->
|
|
330
|
+
<symbol id="icon-c2c" viewBox="0 0 24 24">
|
|
331
|
+
<circle cx="12" cy="12" r="3"/>
|
|
332
|
+
<circle cx="12" cy="12" r="9"/>
|
|
333
|
+
<path d="M12 3v3"/>
|
|
334
|
+
<path d="M12 18v3"/>
|
|
335
|
+
<path d="M3 12h3"/>
|
|
336
|
+
<path d="M18 12h3"/>
|
|
337
|
+
</symbol>
|
|
338
|
+
|
|
339
|
+
<!-- Studio — Creative suite -->
|
|
340
|
+
<symbol id="icon-studio" viewBox="0 0 24 24">
|
|
341
|
+
<circle cx="13.5" cy="6.5" r="2.5"/>
|
|
342
|
+
<path d="M6 21l4-10 3 5 4-7 4 12"/>
|
|
343
|
+
<rect x="2" y="2" width="20" height="20" rx="2"/>
|
|
344
|
+
</symbol>
|
|
345
|
+
|
|
346
|
+
|
|
347
|
+
<!-- ═══ REFERENCE ═══ -->
|
|
348
|
+
|
|
349
|
+
<!-- Quick Reference — Clipboard -->
|
|
350
|
+
<symbol id="icon-quickref" viewBox="0 0 24 24">
|
|
351
|
+
<path d="M16 4h2a2 2 0 012 2v14a2 2 0 01-2 2H6a2 2 0 01-2-2V6a2 2 0 012-2h2"/>
|
|
352
|
+
<rect x="8" y="2" width="8" height="4" rx="1"/>
|
|
353
|
+
<line x1="8" y1="10" x2="16" y2="10"/>
|
|
354
|
+
<line x1="8" y1="14" x2="16" y2="14"/>
|
|
355
|
+
<line x1="8" y1="18" x2="12" y2="18"/>
|
|
356
|
+
</symbol>
|
|
357
|
+
|
|
358
|
+
<!-- GRANTH — Docs bundle -->
|
|
359
|
+
<symbol id="icon-granth" viewBox="0 0 24 24">
|
|
360
|
+
<path d="M4 19.5A2.5 2.5 0 016.5 17H20"/>
|
|
361
|
+
<path d="M6.5 2H20v20H6.5A2.5 2.5 0 014 19.5v-15A2.5 2.5 0 016.5 2z"/>
|
|
362
|
+
<path d="M8 7h8"/>
|
|
363
|
+
<path d="M8 11h5"/>
|
|
364
|
+
<path d="M8 15h3"/>
|
|
365
|
+
</symbol>
|
|
366
|
+
|
|
367
|
+
<!-- API — Signal tower -->
|
|
368
|
+
<symbol id="icon-api" viewBox="0 0 24 24">
|
|
369
|
+
<line x1="12" y1="10" x2="12" y2="22"/>
|
|
370
|
+
<path d="M8 6a6 6 0 018 0"/>
|
|
371
|
+
<path d="M5 3a10 10 0 0114 0"/>
|
|
372
|
+
<circle cx="12" cy="10" r="2"/>
|
|
373
|
+
</symbol>
|
|
374
|
+
|
|
375
|
+
<!-- Adapters — Plug connector -->
|
|
376
|
+
<symbol id="icon-adapters" viewBox="0 0 24 24">
|
|
377
|
+
<path d="M6 3v4"/>
|
|
378
|
+
<path d="M10 3v4"/>
|
|
379
|
+
<path d="M4 7h8v3a4 4 0 01-8 0V7z"/>
|
|
380
|
+
<line x1="8" y1="14" x2="8" y2="17"/>
|
|
381
|
+
<path d="M14 10h4v3a2 2 0 01-4 0v-3z"/>
|
|
382
|
+
<line x1="16" y1="7" x2="16" y2="10"/>
|
|
383
|
+
<line x1="16" y1="13" x2="16" y2="17"/>
|
|
384
|
+
<line x1="8" y1="17" x2="16" y2="17"/>
|
|
385
|
+
<line x1="12" y1="17" x2="12" y2="21"/>
|
|
386
|
+
</symbol>
|
|
387
|
+
|
|
388
|
+
<!-- ═══ EXTRA (pages outside nav-order) ═══ -->
|
|
389
|
+
|
|
390
|
+
<!-- Terminal / CLI -->
|
|
391
|
+
<symbol id="icon-terminal" viewBox="0 0 24 24">
|
|
392
|
+
<rect x="2" y="3" width="20" height="18" rx="2"/>
|
|
393
|
+
<polyline points="7 9 10 12 7 15"/>
|
|
394
|
+
<line x1="13" y1="15" x2="17" y2="15"/>
|
|
395
|
+
</symbol>
|
|
396
|
+
|
|
397
|
+
<!-- Gear / Configuration -->
|
|
398
|
+
<symbol id="icon-gear" viewBox="0 0 24 24">
|
|
399
|
+
<circle cx="12" cy="12" r="3"/>
|
|
400
|
+
<path d="M19.4 15a1.65 1.65 0 00.33 1.82l.06.06a2 2 0 01-2.83 2.83l-.06-.06a1.65 1.65 0 00-1.82-.33 1.65 1.65 0 00-1 1.51V21a2 2 0 01-4 0v-.09A1.65 1.65 0 009 19.4a1.65 1.65 0 00-1.82.33l-.06.06a2 2 0 01-2.83-2.83l.06-.06A1.65 1.65 0 004.68 15a1.65 1.65 0 00-1.51-1H3a2 2 0 010-4h.09A1.65 1.65 0 004.6 9a1.65 1.65 0 00-.33-1.82l-.06-.06a2 2 0 012.83-2.83l.06.06A1.65 1.65 0 009 4.68a1.65 1.65 0 001-1.51V3a2 2 0 014 0v.09a1.65 1.65 0 001 1.51 1.65 1.65 0 001.82-.33l.06-.06a2 2 0 012.83 2.83l-.06.06A1.65 1.65 0 0019.4 9a1.65 1.65 0 001.51 1H21a2 2 0 010 4h-.09a1.65 1.65 0 00-1.51 1z"/>
|
|
401
|
+
</symbol>
|
|
402
|
+
|
|
403
|
+
<!-- Server / Web hosting -->
|
|
404
|
+
<symbol id="icon-server" viewBox="0 0 24 24">
|
|
405
|
+
<rect x="2" y="2" width="20" height="8" rx="2"/>
|
|
406
|
+
<rect x="2" y="14" width="20" height="8" rx="2"/>
|
|
407
|
+
<line x1="6" y1="6" x2="6.01" y2="6"/>
|
|
408
|
+
<line x1="6" y1="18" x2="6.01" y2="18"/>
|
|
409
|
+
</symbol>
|
|
410
|
+
|
|
411
|
+
<!-- ═══ CHROME / UI ═══ -->
|
|
412
|
+
|
|
413
|
+
<!-- Mountain peak — logo icon (replaces 🏔️) -->
|
|
414
|
+
<symbol id="icon-mountain" viewBox="0 0 24 24">
|
|
415
|
+
<path d="M8 21l4.5-9 3 5.5L19 12l3 9H2l6-9z"/>
|
|
416
|
+
<path d="M12 12l1.5-3L16 14"/>
|
|
417
|
+
</symbol>
|
|
418
|
+
|
|
419
|
+
<!-- Dashboard / bar chart (replaces 📊) -->
|
|
420
|
+
<symbol id="icon-dashboard" viewBox="0 0 24 24">
|
|
421
|
+
<line x1="18" y1="20" x2="18" y2="10"/>
|
|
422
|
+
<line x1="12" y1="20" x2="12" y2="4"/>
|
|
423
|
+
<line x1="6" y1="20" x2="6" y2="14"/>
|
|
424
|
+
<rect x="2" y="2" width="20" height="20" rx="2" stroke-opacity="0.4"/>
|
|
425
|
+
</symbol>
|
|
426
|
+
|
|
427
|
+
<!-- ═══ GENERIC / CONTENT ICONS ═══ -->
|
|
428
|
+
|
|
429
|
+
<!-- Lock / encrypted (replaces 🔐) -->
|
|
430
|
+
<symbol id="icon-lock" viewBox="0 0 24 24">
|
|
431
|
+
<rect x="3" y="11" width="18" height="11" rx="2"/>
|
|
432
|
+
<path d="M7 11V7a5 5 0 0110 0v4"/>
|
|
433
|
+
</symbol>
|
|
434
|
+
|
|
435
|
+
<!-- Signal / broadcast (replaces 📡) -->
|
|
436
|
+
<symbol id="icon-signal" viewBox="0 0 24 24">
|
|
437
|
+
<path d="M2 12a10 10 0 0118 0"/>
|
|
438
|
+
<path d="M5 12a7 7 0 0112 0"/>
|
|
439
|
+
<path d="M8 12a4 4 0 016 0"/>
|
|
440
|
+
<circle cx="11" cy="12" r="1"/>
|
|
441
|
+
</symbol>
|
|
442
|
+
|
|
443
|
+
<!-- Link / chain (replaces 🔗) -->
|
|
444
|
+
<symbol id="icon-link" viewBox="0 0 24 24">
|
|
445
|
+
<path d="M10 13a5 5 0 007.54.54l3-3a5 5 0 00-7.07-7.07l-1.72 1.71"/>
|
|
446
|
+
<path d="M14 11a5 5 0 00-7.54-.54l-3 3a5 5 0 007.07 7.07l1.71-1.71"/>
|
|
447
|
+
</symbol>
|
|
448
|
+
|
|
449
|
+
<!-- Globe / network (replaces 🌐) -->
|
|
450
|
+
<symbol id="icon-globe" viewBox="0 0 24 24">
|
|
451
|
+
<circle cx="12" cy="12" r="10"/>
|
|
452
|
+
<line x1="2" y1="12" x2="22" y2="12"/>
|
|
453
|
+
<path d="M12 2a15.3 15.3 0 014 10 15.3 15.3 0 01-4 10 15.3 15.3 0 01-4-10 15.3 15.3 0 014-10z"/>
|
|
454
|
+
</symbol>
|
|
455
|
+
|
|
456
|
+
<!-- Sync / refresh (replaces 🔄) -->
|
|
457
|
+
<symbol id="icon-sync" viewBox="0 0 24 24">
|
|
458
|
+
<polyline points="23 4 23 10 17 10"/>
|
|
459
|
+
<polyline points="1 20 1 14 7 14"/>
|
|
460
|
+
<path d="M3.51 9a9 9 0 0114.85-3.36L23 10M1 14l4.64 4.36A9 9 0 0020.49 15"/>
|
|
461
|
+
</symbol>
|
|
462
|
+
|
|
463
|
+
<!-- Users / group (replaces 👥) -->
|
|
464
|
+
<symbol id="icon-users" viewBox="0 0 24 24">
|
|
465
|
+
<path d="M17 21v-2a4 4 0 00-4-4H5a4 4 0 00-4 4v2"/>
|
|
466
|
+
<circle cx="9" cy="7" r="4"/>
|
|
467
|
+
<path d="M23 21v-2a4 4 0 00-3-3.87"/>
|
|
468
|
+
<path d="M16 3.13a4 4 0 010 7.75"/>
|
|
469
|
+
</symbol>
|
|
470
|
+
|
|
471
|
+
<!-- Shield / protection (replaces 🛡) -->
|
|
472
|
+
<symbol id="icon-shield" viewBox="0 0 24 24">
|
|
473
|
+
<path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"/>
|
|
474
|
+
</symbol>
|
|
475
|
+
|
|
476
|
+
<!-- Heartbeat / pulse (replaces 💓) -->
|
|
477
|
+
<symbol id="icon-heartbeat" viewBox="0 0 24 24">
|
|
478
|
+
<path d="M3 12h4l3-9 4 18 3-9h4"/>
|
|
479
|
+
</symbol>
|
|
480
|
+
|
|
481
|
+
<!-- Map pin / location (replaces 📍) -->
|
|
482
|
+
<symbol id="icon-pin" viewBox="0 0 24 24">
|
|
483
|
+
<path d="M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0118 0z"/>
|
|
484
|
+
<circle cx="12" cy="10" r="3"/>
|
|
485
|
+
</symbol>
|
|
486
|
+
|
|
487
|
+
<!-- Traffic light / status (replaces 🚦) -->
|
|
488
|
+
<symbol id="icon-traffic" viewBox="0 0 24 24">
|
|
489
|
+
<rect x="7" y="2" width="10" height="20" rx="3"/>
|
|
490
|
+
<circle cx="12" cy="7" r="1.5"/>
|
|
491
|
+
<circle cx="12" cy="12" r="1.5"/>
|
|
492
|
+
<circle cx="12" cy="17" r="1.5"/>
|
|
493
|
+
</symbol>
|
|
494
|
+
|
|
495
|
+
<!-- Check circle (replaces ✅) -->
|
|
496
|
+
<symbol id="icon-check" viewBox="0 0 24 24">
|
|
497
|
+
<path d="M22 11.08V12a10 10 0 11-5.93-9.14"/>
|
|
498
|
+
<polyline points="22 4 12 14.01 9 11.01"/>
|
|
499
|
+
</symbol>
|
|
500
|
+
|
|
501
|
+
<!-- Megaphone / broadcast (replaces 📢) -->
|
|
502
|
+
<symbol id="icon-megaphone" viewBox="0 0 24 24">
|
|
503
|
+
<path d="M21 15a2 2 0 01-2 2H7l-4 4V5a2 2 0 012-2h14a2 2 0 012 2z"/>
|
|
504
|
+
</symbol>
|
|
505
|
+
|
|
506
|
+
<!-- Pen / signed (replaces ✍) -->
|
|
507
|
+
<symbol id="icon-pen" viewBox="0 0 24 24">
|
|
508
|
+
<path d="M12 20h9"/>
|
|
509
|
+
<path d="M16.5 3.5a2.121 2.121 0 013 3L7 19l-4 1 1-4L16.5 3.5z"/>
|
|
510
|
+
</symbol>
|
|
511
|
+
|
|
512
|
+
<!-- Warning / alert (replaces ⚠) -->
|
|
513
|
+
<symbol id="icon-warning" viewBox="0 0 24 24">
|
|
514
|
+
<path d="M10.29 3.86L1.82 18a2 2 0 001.71 3h16.94a2 2 0 001.71-3L13.71 3.86a2 2 0 00-3.42 0z"/>
|
|
515
|
+
<line x1="12" y1="9" x2="12" y2="13"/>
|
|
516
|
+
<line x1="12" y1="17" x2="12.01" y2="17"/>
|
|
517
|
+
</symbol>
|
|
518
|
+
|
|
519
|
+
<!-- Hourglass / timer (replaces ⏳) -->
|
|
520
|
+
<symbol id="icon-hourglass" viewBox="0 0 24 24">
|
|
521
|
+
<path d="M6 2h12v5l-4 4 4 4v5H6v-5l4-4-4-4V2z"/>
|
|
522
|
+
</symbol>
|
|
523
|
+
|
|
524
|
+
<!-- Scroll / document (replaces 📜) -->
|
|
525
|
+
<symbol id="icon-scroll" viewBox="0 0 24 24">
|
|
526
|
+
<path d="M14 2H6a2 2 0 00-2 2v16a2 2 0 002 2h12a2 2 0 002-2V8z"/>
|
|
527
|
+
<polyline points="14 2 14 8 20 8"/>
|
|
528
|
+
<line x1="16" y1="13" x2="8" y2="13"/>
|
|
529
|
+
<line x1="16" y1="17" x2="8" y2="17"/>
|
|
530
|
+
</symbol>
|
|
531
|
+
|
|
532
|
+
<!-- Bolt / lightning (replaces ⚡) -->
|
|
533
|
+
<symbol id="icon-bolt" viewBox="0 0 24 24">
|
|
534
|
+
<polygon points="13 2 3 14 12 14 11 22 21 10 12 10 13 2"/>
|
|
535
|
+
</symbol>
|
|
536
|
+
|
|
537
|
+
<!-- Target / crosshair (replaces 🎯) -->
|
|
538
|
+
<symbol id="icon-target" viewBox="0 0 24 24">
|
|
539
|
+
<circle cx="12" cy="12" r="10"/>
|
|
540
|
+
<circle cx="12" cy="12" r="6"/>
|
|
541
|
+
<circle cx="12" cy="12" r="2"/>
|
|
542
|
+
</symbol>
|
|
543
|
+
|
|
544
|
+
<!-- Handshake / trust (replaces 🤝) -->
|
|
545
|
+
<symbol id="icon-handshake" viewBox="0 0 24 24">
|
|
546
|
+
<path d="M11 17l-3.5-3.5a2.12 2.12 0 013-3L14 14"/>
|
|
547
|
+
<path d="M20.88 7.12l-3.17 3.17"/>
|
|
548
|
+
<path d="M3.12 7.12l3.17 3.17"/>
|
|
549
|
+
<path d="M2 12h4"/>
|
|
550
|
+
<path d="M18 12h4"/>
|
|
551
|
+
<path d="M7.76 4.25L12 2l4.24 2.25"/>
|
|
552
|
+
</symbol>
|
|
553
|
+
|
|
554
|
+
<!-- Leaf / organic (replaces 🌿) -->
|
|
555
|
+
<symbol id="icon-leaf" viewBox="0 0 24 24">
|
|
556
|
+
<path d="M17 8C8 10 5.9 16.17 3.82 21.34l1.89.66.95-2.3c.48.17.98.3 1.34.3C19 20 22 3 22 3c-1 0-8 0-10 2"/>
|
|
557
|
+
<path d="M7 15c2-2 5.5-3 9-3"/>
|
|
558
|
+
</symbol>
|
|
559
|
+
|
|
560
|
+
<!-- Satellite (replaces 🛰) -->
|
|
561
|
+
<symbol id="icon-satellite" viewBox="0 0 24 24">
|
|
562
|
+
<path d="M13 7L9 3 5 7l4 4"/>
|
|
563
|
+
<path d="M17 11l4 4-4 4-4-4"/>
|
|
564
|
+
<line x1="8" y1="11" x2="13" y2="16"/>
|
|
565
|
+
<line x1="3" y1="21" x2="3.01" y2="21"/>
|
|
566
|
+
<path d="M6 18a3 3 0 000 0"/>
|
|
567
|
+
<path d="M9 15a6 6 0 000 0"/>
|
|
568
|
+
</symbol>
|
|
569
|
+
|
|
570
|
+
<!-- Phone / mobile (replaces 📱) -->
|
|
571
|
+
<symbol id="icon-phone" viewBox="0 0 24 24">
|
|
572
|
+
<rect x="5" y="2" width="14" height="20" rx="2"/>
|
|
573
|
+
<line x1="12" y1="18" x2="12.01" y2="18"/>
|
|
574
|
+
</symbol>
|
|
575
|
+
|
|
576
|
+
<!-- Masks / theater (replaces 🎭) -->
|
|
577
|
+
<symbol id="icon-masks" viewBox="0 0 24 24">
|
|
578
|
+
<circle cx="12" cy="12" r="10"/>
|
|
579
|
+
<path d="M8 14s1.5 2 4 2 4-2 4-2"/>
|
|
580
|
+
<line x1="9" y1="9" x2="9.01" y2="9"/>
|
|
581
|
+
<line x1="15" y1="9" x2="15.01" y2="9"/>
|
|
582
|
+
</symbol>
|
|
583
|
+
|
|
584
|
+
<!-- Stars / cosmos (replaces 🌌) -->
|
|
585
|
+
<symbol id="icon-cosmos" viewBox="0 0 24 24">
|
|
586
|
+
<polygon points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2"/>
|
|
587
|
+
</symbol>
|
|
588
|
+
|
|
589
|
+
<!-- Gem / diamond (replaces 💎) -->
|
|
590
|
+
<symbol id="icon-gem" viewBox="0 0 24 24">
|
|
591
|
+
<polygon points="6 3 18 3 22 9 12 22 2 9 6 3"/>
|
|
592
|
+
<line x1="2" y1="9" x2="22" y2="9"/>
|
|
593
|
+
<line x1="12" y1="22" x2="8" y2="9"/>
|
|
594
|
+
<line x1="12" y1="22" x2="16" y2="9"/>
|
|
595
|
+
<line x1="8" y1="9" x2="10" y2="3"/>
|
|
596
|
+
<line x1="16" y1="9" x2="14" y2="3"/>
|
|
597
|
+
</symbol>
|
|
598
|
+
|
|
599
|
+
<!-- Search / magnifying glass (replaces 🔍) -->
|
|
600
|
+
<symbol id="icon-search" viewBox="0 0 24 24">
|
|
601
|
+
<circle cx="11" cy="11" r="8"/>
|
|
602
|
+
<line x1="21" y1="21" x2="16.65" y2="16.65"/>
|
|
603
|
+
</symbol>
|
|
604
|
+
|
|
605
|
+
</svg>
|
|
606
|
+
<!-- YAKMESH-ICON-SPRITE-END -->
|
|
607
|
+
<a href="#mainContent" class="skip-link">Skip to main content</a>
|
|
608
|
+
|
|
609
|
+
<nav class="docs-sidebar" id="sidebar">
|
|
610
|
+
<a href="index.html" class="sidebar-logo">
|
|
611
|
+
<span class="logo-icon"><svg class="doc-icon" aria-hidden="true"><use href="#icon-mountain"/></svg></span>
|
|
612
|
+
<span class="logo-text">Yakmesh</span>
|
|
613
|
+
</a>
|
|
614
|
+
<a href="/dashboard" class="sidebar-dashboard-link"><svg class="doc-icon" aria-hidden="true"><use href="#icon-dashboard"/></svg> <span>Dashboard</span></a>
|
|
615
|
+
<ul class="sidebar-nav">
|
|
616
|
+
<li class="sidebar-section"><span><svg class="doc-icon" aria-hidden="true"><use href="#icon-book"/></svg> Guides</span></li>
|
|
617
|
+
<li><a href="index.html"><svg class="doc-icon" aria-hidden="true"><use href="#icon-home"/></svg> <span>Overview</span></a></li>
|
|
618
|
+
<li><a href="getting-started.html"><svg class="doc-icon" aria-hidden="true"><use href="#icon-rocket"/></svg> <span>Getting Started</span></a></li>
|
|
619
|
+
<li><a href="tutorials.html"><svg class="doc-icon" aria-hidden="true"><use href="#icon-book"/></svg> <span>Tutorials</span></a></li>
|
|
620
|
+
<li class="sidebar-section"><span><svg class="doc-icon" aria-hidden="true"><use href="#icon-yak"/></svg> Protocol Stack</span></li>
|
|
621
|
+
<li><a href="yak-protocol.html"><svg class="doc-icon" aria-hidden="true"><use href="#icon-yak"/></svg> <span>YAK://</span></a></li>
|
|
622
|
+
<li><a href="annex.html"><svg class="doc-icon" aria-hidden="true"><use href="#icon-annex"/></svg> <span>ANNEX</span></a></li>
|
|
623
|
+
<li><a href="jhilke.html"><svg class="doc-icon" aria-hidden="true"><use href="#icon-jhilke"/></svg> <span>JHILKE</span></a></li>
|
|
624
|
+
<li><a href="nakpak.html"><svg class="doc-icon" aria-hidden="true"><use href="#icon-nakpak"/></svg> <span>NAKPAK</span></a></li>
|
|
625
|
+
<li><a href="namche.html"><svg class="doc-icon" aria-hidden="true"><use href="#icon-namche"/></svg> <span>NAMCHE</span></a></li>
|
|
626
|
+
<li><a href="doko.html"><svg class="doc-icon" aria-hidden="true"><use href="#icon-doko"/></svg> <span>DOKO</span></a></li>
|
|
627
|
+
<li><a href="sherpa.html"><svg class="doc-icon" aria-hidden="true"><use href="#icon-sherpa"/></svg> <span>SHERPA</span></a></li>
|
|
628
|
+
<li><a href="mandala.html"><svg class="doc-icon" aria-hidden="true"><use href="#icon-mandala"/></svg> <span>MANDALA</span></a></li>
|
|
629
|
+
<li><a href="mantra.html"><svg class="doc-icon" aria-hidden="true"><use href="#icon-mantra"/></svg> <span>MANTRA</span></a></li>
|
|
630
|
+
<li><a href="gumba.html"><svg class="doc-icon" aria-hidden="true"><use href="#icon-gumba"/></svg> <span>GUMBA</span></a></li>
|
|
631
|
+
<li><a href="yurt.html"><svg class="doc-icon" aria-hidden="true"><use href="#icon-yurt"/></svg> <span>YURT</span></a></li>
|
|
632
|
+
<li><a href="katha.html"><svg class="doc-icon" aria-hidden="true"><use href="#icon-katha"/></svg> <span>KATHA</span></a></li>
|
|
633
|
+
<li><a href="vani.html"><svg class="doc-icon" aria-hidden="true"><use href="#icon-vani"/></svg> <span>VANI</span></a></li>
|
|
634
|
+
<li><a href="darshan.html"><svg class="doc-icon" aria-hidden="true"><use href="#icon-darshan"/></svg> <span>DARSHAN</span></a></li>
|
|
635
|
+
<li><a href="stupa.html"><svg class="doc-icon" aria-hidden="true"><use href="#icon-stupa"/></svg> <span>STUPA</span></a></li>
|
|
636
|
+
<li><a href="lama.html"><svg class="doc-icon" aria-hidden="true"><use href="#icon-lama"/></svg> <span>LAMA</span></a></li>
|
|
637
|
+
<li><a href="mani.html"><svg class="doc-icon" aria-hidden="true"><use href="#icon-mani"/></svg> <span>MANI</span></a></li>
|
|
638
|
+
<li><a href="karma.html"><svg class="doc-icon" aria-hidden="true"><use href="#icon-karma"/></svg> <span>KARMA</span></a></li>
|
|
639
|
+
<li><a href="tattva.html"><svg class="doc-icon" aria-hidden="true"><use href="#icon-tattva"/></svg> <span>TATTVA</span></a></li>
|
|
640
|
+
<li><a href="tribhuj.html"><svg class="doc-icon" aria-hidden="true"><use href="#icon-tribhuj"/></svg> <span>TRIBHUJ</span></a></li>
|
|
641
|
+
<li><a href="ypc27.html"><svg class="doc-icon" aria-hidden="true"><use href="#icon-ypc27"/></svg> <span>YPC-27</span></a></li>
|
|
642
|
+
<li><a href="sakshi.html" class="active"><svg class="doc-icon" aria-hidden="true"><use href="#icon-sakshi"/></svg> <span>SAKSHI</span></a></li>
|
|
643
|
+
<li><a href="geo-proof.html"><svg class="doc-icon" aria-hidden="true"><use href="#icon-pramaan"/></svg> <span>PRAMAAN</span></a></li>
|
|
644
|
+
<li><a href="trust-security.html"><svg class="doc-icon" aria-hidden="true"><use href="#icon-suraksha"/></svg> <span>SURAKSHA</span></a></li>
|
|
645
|
+
<li><a href="tivra.html"><svg class="doc-icon" aria-hidden="true"><use href="#icon-tivra"/></svg> <span>TIVRA</span></a></li>
|
|
646
|
+
<li><a href="prahari.html"><svg class="doc-icon" aria-hidden="true"><use href="#icon-prahari"/></svg> <span>PRAHARI</span></a></li>
|
|
647
|
+
<li><a href="dharma.html"><svg class="doc-icon" aria-hidden="true"><use href="#icon-dharma"/></svg> <span>DHARMA</span></a></li>
|
|
648
|
+
<li><a href="seva.html"><svg class="doc-icon" aria-hidden="true"><use href="#icon-seva"/></svg> <span>SEVA</span></a></li>
|
|
649
|
+
<li><a href="docs-bundle.html"><svg class="doc-icon" aria-hidden="true"><use href="#icon-granth"/></svg> <span>GRANTH</span></a></li>
|
|
650
|
+
<li><a href="api.html"><svg class="doc-icon" aria-hidden="true"><use href="#icon-api"/></svg> <span>API</span></a></li>
|
|
651
|
+
<li><a href="adapters.html"><svg class="doc-icon" aria-hidden="true"><use href="#icon-adapters"/></svg> <span>Adapters</span></a></li>
|
|
652
|
+
<li class="sidebar-section"><span><svg class="doc-icon" aria-hidden="true"><use href="#icon-rocket"/></svg> Applications</span></li>
|
|
653
|
+
<li><a href="yakapp.html"><svg class="doc-icon" aria-hidden="true"><use href="#icon-yakapp"/></svg> <span>YakApp</span></a></li>
|
|
654
|
+
<li><a href="c2c.html"><svg class="doc-icon" aria-hidden="true"><use href="#icon-c2c"/></svg> <span>C2C</span></a></li>
|
|
655
|
+
<li><a href="studio.html"><svg class="doc-icon" aria-hidden="true"><use href="#icon-studio"/></svg> <span>Studio</span></a></li>
|
|
656
|
+
<li class="sidebar-section"><span><svg class="doc-icon" aria-hidden="true"><use href="#icon-gear"/></svg> Infrastructure</span></li>
|
|
657
|
+
<li><a href="cli.html"><svg class="doc-icon" aria-hidden="true"><use href="#icon-terminal"/></svg> <span>CLI</span></a></li>
|
|
658
|
+
<li><a href="configuration.html"><svg class="doc-icon" aria-hidden="true"><use href="#icon-gear"/></svg> <span>Configuration</span></a></li>
|
|
659
|
+
<li><a href="mesh.html"><svg class="doc-icon" aria-hidden="true"><use href="#icon-mandala"/></svg> <span>Mesh Network</span></a></li>
|
|
660
|
+
<li><a href="time-sources.html"><svg class="doc-icon" aria-hidden="true"><use href="#icon-mani"/></svg> <span>Time Sources</span></a></li>
|
|
661
|
+
<li><a href="webserver.html"><svg class="doc-icon" aria-hidden="true"><use href="#icon-server"/></svg> <span>Web Server</span></a></li>
|
|
662
|
+
<li><a href="advanced-systems.html"><svg class="doc-icon" aria-hidden="true"><use href="#icon-tivra"/></svg> <span>Advanced Systems</span></a></li>
|
|
663
|
+
<li class="sidebar-section"><span><svg class="doc-icon" aria-hidden="true"><use href="#icon-book"/></svg> Tutorials</span></li>
|
|
664
|
+
<li><a href="gumba-tutorial.html"><svg class="doc-icon" aria-hidden="true"><use href="#icon-gumba"/></svg> <span>GUMBA Tutorial</span></a></li>
|
|
665
|
+
<li class="sidebar-section"><span><svg class="doc-icon" aria-hidden="true"><use href="#icon-quickref"/></svg> Reference</span></li>
|
|
666
|
+
<li><a href="quick-reference.html"><svg class="doc-icon" aria-hidden="true"><use href="#icon-quickref"/></svg> <span>Quick Ref</span></a></li>
|
|
667
|
+
</ul>
|
|
668
|
+
</nav>
|
|
669
|
+
|
|
670
|
+
<button class="sidebar-toggle" id="sidebarToggle" title="Toggle sidebar">
|
|
671
|
+
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor">
|
|
672
|
+
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M11 19l-7-7 7-7m8 14l-7-7 7-7" />
|
|
673
|
+
</svg>
|
|
674
|
+
</button>
|
|
675
|
+
|
|
676
|
+
<div class="sidebar-overlay" id="sidebarOverlay"></div>
|
|
677
|
+
|
|
678
|
+
<main class="docs-main" id="mainContent">
|
|
679
|
+
<div class="docs-content">
|
|
680
|
+
|
|
681
|
+
<!-- Page Header -->
|
|
682
|
+
<header class="mb-12">
|
|
683
|
+
<div class="flex items-center gap-4 mb-4">
|
|
684
|
+
<span class="text-6xl"><svg class="doc-icon hero-icon" width="24" height="24" aria-hidden="true"><use href="#icon-sakshi"/></svg></span>
|
|
685
|
+
<div>
|
|
686
|
+
<h1 class="text-4xl font-bold theme-accent">SAKSHI</h1>
|
|
687
|
+
<p class="text-xl text-mountain-300 theme-accent">Secure Attestation & Kapability System for Holistic Integrity</p>
|
|
688
|
+
</div>
|
|
689
|
+
</div>
|
|
690
|
+
<div class="philosophy-quote p-4 rounded-lg mb-4">
|
|
691
|
+
<p class="text-lg">"The math testifies in place of the node."</p>
|
|
692
|
+
<p class="text-sm text-mountain-400 mt-2"><span class="sanskrit-term">sākṣī</span> (साक्षी) — Sanskrit for "witness"</p>
|
|
693
|
+
</div>
|
|
694
|
+
<div class="flex gap-4">
|
|
695
|
+
<span class="theme-badge px-3 py-1 rounded-full text-sm">SAKSHI</span>
|
|
696
|
+
<span class="bg-orange-500/20 text-orange-400 px-3 py-1 rounded-full text-sm">VIVAAD</span>
|
|
697
|
+
<span class="bg-cyan-500/20 text-cyan-400 px-3 py-1 rounded-full text-sm">SETU</span>
|
|
698
|
+
</div>
|
|
699
|
+
</header>
|
|
700
|
+
|
|
701
|
+
<!-- Core Philosophy -->
|
|
702
|
+
<section class="mb-12">
|
|
703
|
+
<h2 class="text-2xl font-bold mb-4 flex items-center gap-2">
|
|
704
|
+
<svg class="doc-icon inline-icon" aria-hidden="true"><use href="#icon-karma"/></svg> Core Philosophy
|
|
705
|
+
</h2>
|
|
706
|
+
<div class="bg-mountain-800 rounded-xl p-6 border border-mountain-700">
|
|
707
|
+
<p class="mb-4 text-lg">
|
|
708
|
+
SAKSHI represents a fundamental shift from <strong>permission-based security</strong>
|
|
709
|
+
to <strong>observation-based verification</strong>. Instead of asking "does this node
|
|
710
|
+
have permission?", we ask "can this node prove it computed correctly?"
|
|
711
|
+
</p>
|
|
712
|
+
|
|
713
|
+
<div class="grid md:grid-cols-2 gap-6 mt-6">
|
|
714
|
+
<div class="anti-pattern rounded-xl p-6">
|
|
715
|
+
<h3 class="text-lg font-semibold mb-3 text-red-400"><svg class="doc-icon inline-icon" width="24" height="24" aria-hidden="true"><use href="#icon-warning"/></svg> Anti-Patterns (Removed)</h3>
|
|
716
|
+
<ul class="space-y-2 text-mountain-200">
|
|
717
|
+
<li>• <strong>Permissions:</strong> "Can this tier do X?"</li>
|
|
718
|
+
<li>• <strong>Weighted voting:</strong> "Higher tiers count more"</li>
|
|
719
|
+
<li>• <strong>Denial systems:</strong> "Block nodes that fail"</li>
|
|
720
|
+
<li>• <strong>Trust hierarchies:</strong> "Some nodes are more trusted"</li>
|
|
721
|
+
</ul>
|
|
722
|
+
<p class="text-sm text-red-300 mt-3 italic">
|
|
723
|
+
"Systems of denial = attack vectors"
|
|
724
|
+
</p>
|
|
725
|
+
</div>
|
|
726
|
+
|
|
727
|
+
<div class="correct-pattern rounded-xl p-6">
|
|
728
|
+
<h3 class="text-lg font-semibold mb-3 text-green-400"><svg class="doc-icon inline-icon" aria-hidden="true"><use href="#icon-check"/></svg> SAKSHI Patterns</h3>
|
|
729
|
+
<ul class="space-y-2 text-mountain-200">
|
|
730
|
+
<li>• <strong>Observation:</strong> "What can this node prove?"</li>
|
|
731
|
+
<li>• <strong>Agreement:</strong> "Do the computations match?"</li>
|
|
732
|
+
<li>• <strong>Remediation:</strong> "Why did they disagree?"</li>
|
|
733
|
+
<li>• <strong>Capability:</strong> "What hardware does it have?"</li>
|
|
734
|
+
</ul>
|
|
735
|
+
<p class="text-sm text-green-300 mt-3 italic">
|
|
736
|
+
"All agreeing attestations are equal"
|
|
737
|
+
</p>
|
|
738
|
+
</div>
|
|
739
|
+
</div>
|
|
740
|
+
</div>
|
|
741
|
+
</section>
|
|
742
|
+
|
|
743
|
+
<!-- SAKSHI Module -->
|
|
744
|
+
<section class="mb-12">
|
|
745
|
+
<h2 class="text-2xl font-bold mb-4 flex items-center gap-2">
|
|
746
|
+
<svg class="doc-icon inline-icon" aria-hidden="true"><use href="#icon-darshan"/></svg> SAKSHI: Witness System
|
|
747
|
+
</h2>
|
|
748
|
+
|
|
749
|
+
<div class="module-card-sakshi rounded-xl p-6 mb-6">
|
|
750
|
+
<h3 class="text-lg font-semibold mb-3">NodeWitness Class</h3>
|
|
751
|
+
<p class="text-sm text-mountain-300 mb-4">
|
|
752
|
+
Observes and records a node's capabilities without granting or denying permissions.
|
|
753
|
+
<strong>Note:</strong> There is no <code>hasPermission()</code> method — by design.
|
|
754
|
+
</p>
|
|
755
|
+
<pre class="bg-mountain-900 rounded-lg p-4 overflow-x-auto"><code class="language-javascript">import { NodeWitness, WITNESS_CAPABILITY } from 'yakmesh/security/sakshi';
|
|
756
|
+
|
|
757
|
+
// Create witness for a node
|
|
758
|
+
const witness = new NodeWitness(nodeId, {
|
|
759
|
+
capabilities: [
|
|
760
|
+
WITNESS_CAPABILITY.AES_NI,
|
|
761
|
+
WITNESS_CAPABILITY.HARDWARE_RNG,
|
|
762
|
+
WITNESS_CAPABILITY.GPS_AVAILABLE
|
|
763
|
+
],
|
|
764
|
+
observedSince: Date.now(),
|
|
765
|
+
lastProofTime: Date.now()
|
|
766
|
+
});
|
|
767
|
+
|
|
768
|
+
// Observe capabilities (not grant permissions!)
|
|
769
|
+
witness.hasCapability(WITNESS_CAPABILITY.AES_NI); // → true
|
|
770
|
+
|
|
771
|
+
// Record attestation
|
|
772
|
+
witness.recordAttestation({
|
|
773
|
+
type: 'time_sync',
|
|
774
|
+
value: Date.now(),
|
|
775
|
+
proof: cryptoProof
|
|
776
|
+
});
|
|
777
|
+
|
|
778
|
+
// Get reliability score (based on proof history)
|
|
779
|
+
witness.getReliabilityScore(); // → 0.0 to 1.0</code></pre>
|
|
780
|
+
</div>
|
|
781
|
+
|
|
782
|
+
<div class="module-card-sakshi rounded-xl p-6">
|
|
783
|
+
<h3 class="text-lg font-semibold mb-3">Capability Observation</h3>
|
|
784
|
+
<p class="text-sm text-mountain-300 mb-4">
|
|
785
|
+
Witnesses observe hardware capabilities — they don't grant or deny based on them.
|
|
786
|
+
</p>
|
|
787
|
+
<pre class="bg-mountain-900 rounded-lg p-4 overflow-x-auto"><code class="language-javascript">// Capability categories
|
|
788
|
+
const WITNESS_CAPABILITY = {
|
|
789
|
+
// Cryptographic Hardware
|
|
790
|
+
AES_NI: 'aes_ni', // AES hardware acceleration
|
|
791
|
+
SHA_EXTENSIONS: 'sha_ext', // SHA hardware extensions
|
|
792
|
+
HARDWARE_RNG: 'hw_rng', // Hardware random generator
|
|
793
|
+
|
|
794
|
+
// Timing/Location
|
|
795
|
+
GPS_AVAILABLE: 'gps', // GPS receiver
|
|
796
|
+
HIGH_PRECISION_CLOCK: 'hpc', // High-precision timing
|
|
797
|
+
NTP_SYNCED: 'ntp', // NTP synchronization
|
|
798
|
+
|
|
799
|
+
// Compute
|
|
800
|
+
MULTI_CORE: 'multi_core', // Multiple CPU cores
|
|
801
|
+
GPU_COMPUTE: 'gpu', // GPU for compute
|
|
802
|
+
|
|
803
|
+
// Network
|
|
804
|
+
LOW_LATENCY: 'low_lat', // <50ms round-trip
|
|
805
|
+
HIGH_BANDWIDTH: 'high_bw', // >100Mbps
|
|
806
|
+
};</code></pre>
|
|
807
|
+
</div>
|
|
808
|
+
</section>
|
|
809
|
+
|
|
810
|
+
<!-- Attestation Fusion -->
|
|
811
|
+
<section class="mb-12">
|
|
812
|
+
<h2 class="text-2xl font-bold mb-4 flex items-center gap-2">
|
|
813
|
+
<svg class="doc-icon inline-icon" aria-hidden="true"><use href="#icon-sakshi"/></svg> Attestation Fusion (Not Voting)
|
|
814
|
+
</h2>
|
|
815
|
+
<div class="bg-mountain-800 rounded-xl p-6 border border-mountain-700">
|
|
816
|
+
<div class="warning-box p-4 mb-6">
|
|
817
|
+
<p class="text-yellow-400 font-semibold mb-2"><svg class="doc-icon inline-icon" aria-hidden="true"><use href="#icon-warning"/></svg> Key Distinction</p>
|
|
818
|
+
<p class="text-sm">
|
|
819
|
+
SAKSHI uses <strong>sensor fusion</strong>, not voting. Multiple witnesses provide
|
|
820
|
+
measurements; we combine them using mathematical techniques (weighted average,
|
|
821
|
+
outlier rejection) — not political consensus.
|
|
822
|
+
</p>
|
|
823
|
+
</div>
|
|
824
|
+
|
|
825
|
+
<pre class="bg-mountain-900 rounded-lg p-4 overflow-x-auto"><code class="language-javascript">import { fuseTimeAttestations, checkMathematicalAgreement } from 'yakmesh/security/sakshi';
|
|
826
|
+
|
|
827
|
+
// Multiple witnesses attest to a timestamp
|
|
828
|
+
const attestations = [
|
|
829
|
+
{ witnessId: 'node1', value: 1704067200000, proof: proof1 },
|
|
830
|
+
{ witnessId: 'node2', value: 1704067200005, proof: proof2 },
|
|
831
|
+
{ witnessId: 'node3', value: 1704067200003, proof: proof3 },
|
|
832
|
+
];
|
|
833
|
+
|
|
834
|
+
// Fuse attestations (weighted average, not voting)
|
|
835
|
+
const fused = fuseTimeAttestations(attestations);
|
|
836
|
+
// → { value: 1704067200003, confidence: 0.98, spread: 5 }
|
|
837
|
+
|
|
838
|
+
// Check if nodes agree on a computation
|
|
839
|
+
const result = checkMathematicalAgreement({
|
|
840
|
+
expected: computeLocally(data),
|
|
841
|
+
attestations: [
|
|
842
|
+
{ nodeId: 'A', result: resultA },
|
|
843
|
+
{ nodeId: 'B', result: resultB },
|
|
844
|
+
{ nodeId: 'C', result: resultC },
|
|
845
|
+
]
|
|
846
|
+
});
|
|
847
|
+
|
|
848
|
+
// Possible outcomes
|
|
849
|
+
result.status === 'AGREE' // All match → accept
|
|
850
|
+
result.status === 'RECOMPUTE_AND_VERIFY' // Mismatch → investigate</code></pre>
|
|
851
|
+
|
|
852
|
+
<p class="text-sm text-mountain-400 mt-4">
|
|
853
|
+
Note: On disagreement, we don't vote or ban — we analyze WHY they disagreed
|
|
854
|
+
(see VIVAAD below).
|
|
855
|
+
</p>
|
|
856
|
+
</div>
|
|
857
|
+
</section>
|
|
858
|
+
|
|
859
|
+
<!-- VIVAAD Module -->
|
|
860
|
+
<section class="mb-12">
|
|
861
|
+
<h2 class="text-2xl font-bold mb-4 flex items-center gap-2">
|
|
862
|
+
<svg class="doc-icon inline-icon" aria-hidden="true"><use href="#icon-darshan"/></svg> VIVAAD: Disagreement Analysis
|
|
863
|
+
</h2>
|
|
864
|
+
|
|
865
|
+
<div class="philosophy-quote p-4 rounded-lg mb-6" style="background: linear-gradient(135deg, rgba(249, 115, 22, 0.2), rgba(234, 88, 12, 0.1)); border-left-color: #f97316;">
|
|
866
|
+
<p class="text-lg">"Don't vote on who's wrong — understand why they disagree."</p>
|
|
867
|
+
<p class="text-sm text-mountain-400 mt-2"><span class="sanskrit-term">vivāda</span> (विवाद) — Sanskrit for "dispute/disagreement"</p>
|
|
868
|
+
</div>
|
|
869
|
+
|
|
870
|
+
<div class="module-card-vivaad rounded-xl p-6 mb-6">
|
|
871
|
+
<h3 class="text-lg font-semibold mb-3">Disagreement Causes</h3>
|
|
872
|
+
<p class="text-sm text-mountain-300 mb-4">
|
|
873
|
+
Most disagreements aren't malicious — they're hardware or timing issues.
|
|
874
|
+
</p>
|
|
875
|
+
|
|
876
|
+
<div class="grid md:grid-cols-2 gap-4">
|
|
877
|
+
<div>
|
|
878
|
+
<h4 class="font-semibold text-orange-400 mb-2">Hardware (~70%)</h4>
|
|
879
|
+
<ul class="text-sm space-y-1 text-mountain-300">
|
|
880
|
+
<li>• <code>TIMEOUT</code> — Computation took too long</li>
|
|
881
|
+
<li>• <code>FLOATING_POINT_VARIANCE</code> — FP precision differs</li>
|
|
882
|
+
<li>• <code>NO_AES_NI</code> — Missing hardware acceleration</li>
|
|
883
|
+
<li>• <code>MEMORY_EXHAUSTION</code> — Ran out of RAM</li>
|
|
884
|
+
<li>• <code>NO_HARDWARE_RNG</code> — Software RNG used</li>
|
|
885
|
+
</ul>
|
|
886
|
+
</div>
|
|
887
|
+
<div>
|
|
888
|
+
<h4 class="font-semibold text-orange-400 mb-2">Timing (~15%)</h4>
|
|
889
|
+
<ul class="text-sm space-y-1 text-mountain-300">
|
|
890
|
+
<li>• <code>CLOCK_DRIFT</code> — NTP not synced</li>
|
|
891
|
+
<li>• <code>EPOCH_BOUNDARY</code> — Computed at epoch edge</li>
|
|
892
|
+
<li>• <code>PROCESSING_DELAY</code> — Queue backup</li>
|
|
893
|
+
</ul>
|
|
894
|
+
</div>
|
|
895
|
+
<div>
|
|
896
|
+
<h4 class="font-semibold text-orange-400 mb-2">Network (~10%)</h4>
|
|
897
|
+
<ul class="text-sm space-y-1 text-mountain-300">
|
|
898
|
+
<li>• <code>INCOMPLETE_DATA</code> — Partial message received</li>
|
|
899
|
+
<li>• <code>MESSAGE_ORDERING</code> — Race condition</li>
|
|
900
|
+
<li>• <code>STALE_CACHE</code> — Old data used</li>
|
|
901
|
+
</ul>
|
|
902
|
+
</div>
|
|
903
|
+
<div>
|
|
904
|
+
<h4 class="font-semibold text-red-400 mb-2">Byzantine (~5%)</h4>
|
|
905
|
+
<ul class="text-sm space-y-1 text-mountain-300">
|
|
906
|
+
<li>• <code>DELIBERATE_WRONG</code> — Intentional lie</li>
|
|
907
|
+
<li>• <code>SYBIL_SUSPECTED</code> — Fake identity</li>
|
|
908
|
+
<li>• <code>ECLIPSE_ATTACK</code> — Isolated from network</li>
|
|
909
|
+
</ul>
|
|
910
|
+
</div>
|
|
911
|
+
</div>
|
|
912
|
+
</div>
|
|
913
|
+
|
|
914
|
+
<div class="module-card-vivaad rounded-xl p-6">
|
|
915
|
+
<h3 class="text-lg font-semibold mb-3">Analyze Disagreement</h3>
|
|
916
|
+
<pre class="bg-mountain-900 rounded-lg p-4 overflow-x-auto"><code class="language-javascript">import { analyzeDisagreement, createRemediationPlan } from 'yakmesh/security/sakshi';
|
|
917
|
+
|
|
918
|
+
// When two nodes disagree
|
|
919
|
+
const analysis = analyzeDisagreement({
|
|
920
|
+
expected: ourResult,
|
|
921
|
+
received: theirResult,
|
|
922
|
+
witnessProfile: theirWitness,
|
|
923
|
+
networkContext: { latency: 150, packetLoss: 0.01 }
|
|
924
|
+
});
|
|
925
|
+
|
|
926
|
+
// → {
|
|
927
|
+
// likelyCause: 'TIMEOUT',
|
|
928
|
+
// confidence: 0.85,
|
|
929
|
+
// category: 'HARDWARE',
|
|
930
|
+
// evidence: ['computation_time: 5200ms', 'deadline: 5000ms']
|
|
931
|
+
// }
|
|
932
|
+
|
|
933
|
+
// Get remediation (not punishment!)
|
|
934
|
+
const plan = createRemediationPlan(analysis);
|
|
935
|
+
// → {
|
|
936
|
+
// action: 'RETRY_WITH_LONGER_TIMEOUT',
|
|
937
|
+
// suggestedTimeout: 7000,
|
|
938
|
+
// notifyOperator: false
|
|
939
|
+
// }</code></pre>
|
|
940
|
+
</div>
|
|
941
|
+
</section>
|
|
942
|
+
|
|
943
|
+
<!-- Remediation Actions -->
|
|
944
|
+
<section class="mb-12">
|
|
945
|
+
<h2 class="text-2xl font-bold mb-4 flex items-center gap-2">
|
|
946
|
+
<svg class="doc-icon inline-icon" aria-hidden="true"><use href="#icon-gear"/></svg> Remediation (Not Punishment)
|
|
947
|
+
</h2>
|
|
948
|
+
<div class="bg-mountain-800 rounded-xl p-6 border border-mountain-700">
|
|
949
|
+
<p class="mb-4">
|
|
950
|
+
VIVAAD provides constructive remediation, not bans or penalties.
|
|
951
|
+
<strong>There are no permanent bans</strong> — even Byzantine behavior gets remediation.
|
|
952
|
+
</p>
|
|
953
|
+
|
|
954
|
+
<table class="cause-table">
|
|
955
|
+
<thead>
|
|
956
|
+
<tr>
|
|
957
|
+
<th>Remediation</th>
|
|
958
|
+
<th>When Used</th>
|
|
959
|
+
<th>Duration</th>
|
|
960
|
+
</tr>
|
|
961
|
+
</thead>
|
|
962
|
+
<tbody>
|
|
963
|
+
<tr>
|
|
964
|
+
<td><code>RETRY_COMPUTATION</code></td>
|
|
965
|
+
<td>Transient failure, timeout</td>
|
|
966
|
+
<td>Immediate</td>
|
|
967
|
+
</tr>
|
|
968
|
+
<tr>
|
|
969
|
+
<td><code>SYNC_CLOCK</code></td>
|
|
970
|
+
<td>Clock drift detected</td>
|
|
971
|
+
<td>Until synced</td>
|
|
972
|
+
</tr>
|
|
973
|
+
<tr>
|
|
974
|
+
<td><code>REQUEST_REBROADCAST</code></td>
|
|
975
|
+
<td>Incomplete data</td>
|
|
976
|
+
<td>Immediate</td>
|
|
977
|
+
</tr>
|
|
978
|
+
<tr>
|
|
979
|
+
<td><code>WAIT_FOR_EPOCH</code></td>
|
|
980
|
+
<td>Epoch boundary issue</td>
|
|
981
|
+
<td>Next epoch</td>
|
|
982
|
+
</tr>
|
|
983
|
+
<tr>
|
|
984
|
+
<td><code>SUGGEST_HARDWARE_UPGRADE</code></td>
|
|
985
|
+
<td>Consistent capability issues</td>
|
|
986
|
+
<td>Informational</td>
|
|
987
|
+
</tr>
|
|
988
|
+
<tr>
|
|
989
|
+
<td><code>INCREASE_OBSERVATION</code></td>
|
|
990
|
+
<td>Pattern suggests issues</td>
|
|
991
|
+
<td>Temporary</td>
|
|
992
|
+
</tr>
|
|
993
|
+
<tr>
|
|
994
|
+
<td><code>QUARANTINE_FOR_ANALYSIS</code></td>
|
|
995
|
+
<td>Byzantine patterns</td>
|
|
996
|
+
<td>Until resolved</td>
|
|
997
|
+
</tr>
|
|
998
|
+
<tr>
|
|
999
|
+
<td><code>NOTIFY_OPERATOR</code></td>
|
|
1000
|
+
<td>Needs human attention</td>
|
|
1001
|
+
<td>N/A</td>
|
|
1002
|
+
</tr>
|
|
1003
|
+
</tbody>
|
|
1004
|
+
</table>
|
|
1005
|
+
|
|
1006
|
+
<p class="text-sm text-green-400 mt-4 italic">
|
|
1007
|
+
<svg class="doc-icon inline-icon" width="24" height="24" aria-hidden="true"><use href="#icon-bolt"/></svg> Even "QUARANTINE_FOR_ANALYSIS" is temporary — the goal is diagnosis, not exile.
|
|
1008
|
+
</p>
|
|
1009
|
+
</div>
|
|
1010
|
+
</section>
|
|
1011
|
+
|
|
1012
|
+
<!-- SETU Bridge -->
|
|
1013
|
+
<section class="mb-12">
|
|
1014
|
+
<h2 class="text-2xl font-bold mb-4 flex items-center gap-2">
|
|
1015
|
+
<svg class="doc-icon inline-icon" aria-hidden="true"><use href="#icon-annex"/></svg> SETU: Trust-Tier Bridge
|
|
1016
|
+
</h2>
|
|
1017
|
+
|
|
1018
|
+
<div class="philosophy-quote p-4 rounded-lg mb-6" style="background: linear-gradient(135deg, rgba(6, 182, 212, 0.2), rgba(8, 145, 178, 0.1)); border-left-color: #06b6d4;">
|
|
1019
|
+
<p class="text-lg">"Bridge the old with the new without breaking compatibility."</p>
|
|
1020
|
+
<p class="text-sm text-mountain-400 mt-2"><span class="sanskrit-term">setu</span> (सेतु) — Sanskrit for "bridge"</p>
|
|
1021
|
+
</div>
|
|
1022
|
+
|
|
1023
|
+
<div class="module-card-setu rounded-xl p-6 mb-6">
|
|
1024
|
+
<h3 class="text-lg font-semibold mb-3">Bridging Functions</h3>
|
|
1025
|
+
<p class="text-sm text-mountain-300 mb-4">
|
|
1026
|
+
SETU provides backward-compatible bridges from the old trust-tier system to SAKSHI.
|
|
1027
|
+
</p>
|
|
1028
|
+
<pre class="bg-mountain-900 rounded-lg p-4 overflow-x-auto"><code class="language-javascript">import {
|
|
1029
|
+
witnessFromTrustProfile,
|
|
1030
|
+
trustProfileFromWitness,
|
|
1031
|
+
checkRevocationAgreement,
|
|
1032
|
+
aggregateAttestations,
|
|
1033
|
+
assessComputationTrust
|
|
1034
|
+
} from 'yakmesh/security/sakshi';
|
|
1035
|
+
|
|
1036
|
+
// Convert old TrustProfile → new NodeWitness
|
|
1037
|
+
const witness = witnessFromTrustProfile(trustProfile);
|
|
1038
|
+
|
|
1039
|
+
// Convert back for compatibility
|
|
1040
|
+
const profile = trustProfileFromWitness(witness);
|
|
1041
|
+
|
|
1042
|
+
// Replace WeightedRevocationCalculator
|
|
1043
|
+
const agreement = checkRevocationAgreement({
|
|
1044
|
+
revocationRequests: requests,
|
|
1045
|
+
targetNodeId: nodeToRevoke
|
|
1046
|
+
});
|
|
1047
|
+
// → { agreed: true, reason: 'ALL_COMPUTATIONS_MATCH' }
|
|
1048
|
+
// or → { agreed: false, action: 'RECOMPUTE_AND_VERIFY' }
|
|
1049
|
+
|
|
1050
|
+
// Replace calculateEffectiveCount (no more weighted voting!)
|
|
1051
|
+
const aggregated = aggregateAttestations(attestations);
|
|
1052
|
+
// All agreeing attestations count equally
|
|
1053
|
+
|
|
1054
|
+
// Assess trust based on verifiable math
|
|
1055
|
+
const trust = assessComputationTrust({
|
|
1056
|
+
nodeId: 'abc123',
|
|
1057
|
+
computations: recentComputations,
|
|
1058
|
+
proofs: cryptoProofs
|
|
1059
|
+
});
|
|
1060
|
+
// → { score: 0.95, basedOn: 'VERIFIED_COMPUTATIONS', not: 'TIER_LEVEL' }</code></pre>
|
|
1061
|
+
</div>
|
|
1062
|
+
</section>
|
|
1063
|
+
|
|
1064
|
+
<!-- Pattern Tracking -->
|
|
1065
|
+
<section class="mb-12">
|
|
1066
|
+
<h2 class="text-2xl font-bold mb-4 flex items-center gap-2">
|
|
1067
|
+
<svg class="doc-icon inline-icon" aria-hidden="true"><use href="#icon-dashboard"/></svg> Disagreement Pattern Tracking
|
|
1068
|
+
</h2>
|
|
1069
|
+
<div class="bg-mountain-800 rounded-xl p-6 border border-mountain-700">
|
|
1070
|
+
<p class="mb-4">
|
|
1071
|
+
VIVAAD tracks disagreement patterns over time to identify recurring issues
|
|
1072
|
+
and suggest systemic fixes.
|
|
1073
|
+
</p>
|
|
1074
|
+
|
|
1075
|
+
<pre class="bg-mountain-900 rounded-lg p-4 overflow-x-auto"><code class="language-javascript">import { trackDisagreementPattern, getPatternInsights } from 'yakmesh/security/sakshi';
|
|
1076
|
+
|
|
1077
|
+
// Track each disagreement
|
|
1078
|
+
trackDisagreementPattern({
|
|
1079
|
+
nodeId: 'abc123',
|
|
1080
|
+
cause: 'TIMEOUT',
|
|
1081
|
+
timestamp: Date.now(),
|
|
1082
|
+
context: { computationType: 'PROOF_VERIFICATION' }
|
|
1083
|
+
});
|
|
1084
|
+
|
|
1085
|
+
// Get insights for a node
|
|
1086
|
+
const insights = getPatternInsights('abc123');
|
|
1087
|
+
// → {
|
|
1088
|
+
// mostCommonCause: 'TIMEOUT',
|
|
1089
|
+
// frequency: 0.15, // 15% of computations
|
|
1090
|
+
// trend: 'STABLE', // or 'IMPROVING', 'DEGRADING'
|
|
1091
|
+
// suggestion: 'Node may benefit from hardware upgrade or reduced load'
|
|
1092
|
+
// }
|
|
1093
|
+
|
|
1094
|
+
// Get network-wide patterns
|
|
1095
|
+
const networkInsights = getPatternInsights();
|
|
1096
|
+
// → {
|
|
1097
|
+
// byCategory: { HARDWARE: 0.70, TIMING: 0.15, NETWORK: 0.10, BYZANTINE: 0.05 },
|
|
1098
|
+
// hotspots: ['proof_verification', 'time_sync'],
|
|
1099
|
+
// trend: 'STABLE'
|
|
1100
|
+
// }</code></pre>
|
|
1101
|
+
</div>
|
|
1102
|
+
</section>
|
|
1103
|
+
|
|
1104
|
+
<!-- API Reference -->
|
|
1105
|
+
<section class="mb-12">
|
|
1106
|
+
<h2 class="text-2xl font-bold mb-4 flex items-center gap-2">
|
|
1107
|
+
<svg class="doc-icon inline-icon" aria-hidden="true"><use href="#icon-signal"/></svg> API Reference
|
|
1108
|
+
</h2>
|
|
1109
|
+
|
|
1110
|
+
<div class="tabset">
|
|
1111
|
+
<div class="tab active" onclick="showTab('sakshi-api')">SAKSHI</div>
|
|
1112
|
+
<div class="tab" onclick="showTab('vivaad-api')">VIVAAD</div>
|
|
1113
|
+
<div class="tab" onclick="showTab('setu-api')">SETU</div>
|
|
1114
|
+
</div>
|
|
1115
|
+
|
|
1116
|
+
<div id="sakshi-api" class="tab-content active bg-mountain-800 rounded-xl p-6 border border-mountain-700">
|
|
1117
|
+
<table class="cause-table">
|
|
1118
|
+
<thead>
|
|
1119
|
+
<tr>
|
|
1120
|
+
<th>Export</th>
|
|
1121
|
+
<th>Description</th>
|
|
1122
|
+
</tr>
|
|
1123
|
+
</thead>
|
|
1124
|
+
<tbody>
|
|
1125
|
+
<tr>
|
|
1126
|
+
<td><code>NodeWitness</code></td>
|
|
1127
|
+
<td>Observational witness class (no permissions!)</td>
|
|
1128
|
+
</tr>
|
|
1129
|
+
<tr>
|
|
1130
|
+
<td><code>WITNESS_CAPABILITY</code></td>
|
|
1131
|
+
<td>Enum of observable hardware capabilities</td>
|
|
1132
|
+
</tr>
|
|
1133
|
+
<tr>
|
|
1134
|
+
<td><code>fuseTimeAttestations(arr)</code></td>
|
|
1135
|
+
<td>Sensor fusion for time attestations</td>
|
|
1136
|
+
</tr>
|
|
1137
|
+
<tr>
|
|
1138
|
+
<td><code>checkMathematicalAgreement(opts)</code></td>
|
|
1139
|
+
<td>Check if computations agree (no voting)</td>
|
|
1140
|
+
</tr>
|
|
1141
|
+
<tr>
|
|
1142
|
+
<td><code>AGREEMENT_RESULT</code></td>
|
|
1143
|
+
<td>Enum: AGREE, RECOMPUTE_AND_VERIFY</td>
|
|
1144
|
+
</tr>
|
|
1145
|
+
</tbody>
|
|
1146
|
+
</table>
|
|
1147
|
+
</div>
|
|
1148
|
+
|
|
1149
|
+
<div id="vivaad-api" class="tab-content bg-mountain-800 rounded-xl p-6 border border-mountain-700">
|
|
1150
|
+
<table class="cause-table">
|
|
1151
|
+
<thead>
|
|
1152
|
+
<tr>
|
|
1153
|
+
<th>Export</th>
|
|
1154
|
+
<th>Description</th>
|
|
1155
|
+
</tr>
|
|
1156
|
+
</thead>
|
|
1157
|
+
<tbody>
|
|
1158
|
+
<tr>
|
|
1159
|
+
<td><code>DISAGREEMENT_CAUSE</code></td>
|
|
1160
|
+
<td>Enum of 16 disagreement causes</td>
|
|
1161
|
+
</tr>
|
|
1162
|
+
<tr>
|
|
1163
|
+
<td><code>CAUSE_CATEGORY</code></td>
|
|
1164
|
+
<td>Enum: HARDWARE, TIMING, NETWORK, BYZANTINE</td>
|
|
1165
|
+
</tr>
|
|
1166
|
+
<tr>
|
|
1167
|
+
<td><code>REMEDIATION</code></td>
|
|
1168
|
+
<td>Enum of 11 remediation actions</td>
|
|
1169
|
+
</tr>
|
|
1170
|
+
<tr>
|
|
1171
|
+
<td><code>analyzeDisagreement(opts)</code></td>
|
|
1172
|
+
<td>Analyze why nodes disagreed</td>
|
|
1173
|
+
</tr>
|
|
1174
|
+
<tr>
|
|
1175
|
+
<td><code>createRemediationPlan(analysis)</code></td>
|
|
1176
|
+
<td>Create constructive remediation plan</td>
|
|
1177
|
+
</tr>
|
|
1178
|
+
<tr>
|
|
1179
|
+
<td><code>trackDisagreementPattern(event)</code></td>
|
|
1180
|
+
<td>Track disagreement for pattern analysis</td>
|
|
1181
|
+
</tr>
|
|
1182
|
+
<tr>
|
|
1183
|
+
<td><code>getPatternInsights(nodeId?)</code></td>
|
|
1184
|
+
<td>Get insights from tracked patterns</td>
|
|
1185
|
+
</tr>
|
|
1186
|
+
</tbody>
|
|
1187
|
+
</table>
|
|
1188
|
+
</div>
|
|
1189
|
+
|
|
1190
|
+
<div id="setu-api" class="tab-content bg-mountain-800 rounded-xl p-6 border border-mountain-700">
|
|
1191
|
+
<table class="cause-table">
|
|
1192
|
+
<thead>
|
|
1193
|
+
<tr>
|
|
1194
|
+
<th>Export</th>
|
|
1195
|
+
<th>Description</th>
|
|
1196
|
+
</tr>
|
|
1197
|
+
</thead>
|
|
1198
|
+
<tbody>
|
|
1199
|
+
<tr>
|
|
1200
|
+
<td><code>witnessFromTrustProfile(profile)</code></td>
|
|
1201
|
+
<td>Convert TrustProfile → NodeWitness</td>
|
|
1202
|
+
</tr>
|
|
1203
|
+
<tr>
|
|
1204
|
+
<td><code>trustProfileFromWitness(witness)</code></td>
|
|
1205
|
+
<td>Convert NodeWitness → TrustProfile</td>
|
|
1206
|
+
</tr>
|
|
1207
|
+
<tr>
|
|
1208
|
+
<td><code>checkRevocationAgreement(opts)</code></td>
|
|
1209
|
+
<td>Replace WeightedRevocationCalculator</td>
|
|
1210
|
+
</tr>
|
|
1211
|
+
<tr>
|
|
1212
|
+
<td><code>aggregateAttestations(arr)</code></td>
|
|
1213
|
+
<td>Replace calculateEffectiveCount (no weights!)</td>
|
|
1214
|
+
</tr>
|
|
1215
|
+
<tr>
|
|
1216
|
+
<td><code>assessComputationTrust(opts)</code></td>
|
|
1217
|
+
<td>Trust based on verified math, not tiers</td>
|
|
1218
|
+
</tr>
|
|
1219
|
+
</tbody>
|
|
1220
|
+
</table>
|
|
1221
|
+
</div>
|
|
1222
|
+
</section>
|
|
1223
|
+
|
|
1224
|
+
<!-- VEGATI Velocity Monitor -->
|
|
1225
|
+
<section class="mb-12">
|
|
1226
|
+
<h2 class="text-2xl font-bold mb-4 flex items-center gap-2">
|
|
1227
|
+
<svg class="doc-icon inline-icon" aria-hidden="true"><use href="#icon-bolt"/></svg> VEGATI — Behavior Velocity Monitor
|
|
1228
|
+
</h2>
|
|
1229
|
+
<p class="text-mountain-300 mb-4">
|
|
1230
|
+
<strong>VEGATI</strong> (वेगति — "velocity, momentum") detects sudden behavioral changes that may indicate
|
|
1231
|
+
compromised keys, reputation farming, or insider threat activation. Each node builds a behavioral fingerprint
|
|
1232
|
+
using exponential moving averages; deviations trigger sigma-based alerts.
|
|
1233
|
+
</p>
|
|
1234
|
+
<h3 class="text-lg font-semibold mb-3">Behavior Dimensions</h3>
|
|
1235
|
+
<div class="overflow-x-auto mb-6">
|
|
1236
|
+
<table class="cause-table">
|
|
1237
|
+
<thead><tr><th>Dimension</th><th>What It Measures</th></tr></thead>
|
|
1238
|
+
<tbody>
|
|
1239
|
+
<tr><td><code>message_rate</code></td><td>Messages per minute</td></tr>
|
|
1240
|
+
<tr><td><code>gossip_ratio</code></td><td>Gossip vs direct messages</td></tr>
|
|
1241
|
+
<tr><td><code>error_rate</code></td><td>Invalid messages / signatures</td></tr>
|
|
1242
|
+
<tr><td><code>attestation_rate</code></td><td>Revocation attestations filed</td></tr>
|
|
1243
|
+
<tr><td><code>connection_churn</code></td><td>Connect / disconnect frequency</td></tr>
|
|
1244
|
+
<tr><td><code>response_latency</code></td><td>Average response time</td></tr>
|
|
1245
|
+
</tbody>
|
|
1246
|
+
</table>
|
|
1247
|
+
</div>
|
|
1248
|
+
<h3 class="text-lg font-semibold mb-3">Alert Levels (σ thresholds)</h3>
|
|
1249
|
+
<div class="grid sm:grid-cols-4 gap-3 mb-6">
|
|
1250
|
+
<div class="rounded-lg p-3 text-center" style="background:rgba(34,197,94,0.15);">
|
|
1251
|
+
<div class="font-bold text-green-400">NORMAL</div>
|
|
1252
|
+
<div class="text-sm text-mountain-400">< 2σ</div>
|
|
1253
|
+
</div>
|
|
1254
|
+
<div class="rounded-lg p-3 text-center" style="background:rgba(234,179,8,0.15);">
|
|
1255
|
+
<div class="font-bold text-yellow-400">ELEVATED</div>
|
|
1256
|
+
<div class="text-sm text-mountain-400">≥ 2σ</div>
|
|
1257
|
+
</div>
|
|
1258
|
+
<div class="rounded-lg p-3 text-center" style="background:rgba(249,115,22,0.15);">
|
|
1259
|
+
<div class="font-bold text-orange-400">WARNING</div>
|
|
1260
|
+
<div class="text-sm text-mountain-400">≥ 3σ</div>
|
|
1261
|
+
</div>
|
|
1262
|
+
<div class="rounded-lg p-3 text-center" style="background:rgba(239,68,68,0.15);">
|
|
1263
|
+
<div class="font-bold text-red-400">CRITICAL</div>
|
|
1264
|
+
<div class="text-sm text-mountain-400">≥ 4σ</div>
|
|
1265
|
+
</div>
|
|
1266
|
+
</div>
|
|
1267
|
+
<p class="text-mountain-400 text-sm">
|
|
1268
|
+
Baseline requires ≥ 50 observations. EMA smoothing factor defaults to 0.1. Alert cooldown: 60 s.
|
|
1269
|
+
Profile TTL: 7 days.
|
|
1270
|
+
</p>
|
|
1271
|
+
</section>
|
|
1272
|
+
|
|
1273
|
+
<!-- NPU Anomaly Assessment -->
|
|
1274
|
+
<section class="mb-12">
|
|
1275
|
+
<h2 class="text-2xl font-bold mb-4 flex items-center gap-2">
|
|
1276
|
+
<svg class="doc-icon inline-icon" aria-hidden="true"><use href="#icon-lama"/></svg> NPU Anomaly Assessment
|
|
1277
|
+
</h2>
|
|
1278
|
+
<p class="text-mountain-300 mb-4">
|
|
1279
|
+
<code>assessNode()</code> feeds a 12-feature input vector into the <code>sakshi-anomaly</code> ONNX model
|
|
1280
|
+
for multi-class attack detection. Falls back to CPU heuristic (z-score aggregation) when ONNX Runtime
|
|
1281
|
+
is unavailable.
|
|
1282
|
+
</p>
|
|
1283
|
+
<h3 class="text-lg font-semibold mb-3">12-Feature Input Vector</h3>
|
|
1284
|
+
<div class="overflow-x-auto mb-6">
|
|
1285
|
+
<table class="cause-table">
|
|
1286
|
+
<thead><tr><th>#</th><th>Feature</th><th>Source</th></tr></thead>
|
|
1287
|
+
<tbody>
|
|
1288
|
+
<tr><td>0–5</td><td>6 behavior dimensions</td><td>VEGATI profile</td></tr>
|
|
1289
|
+
<tr><td>6</td><td>uptimePercent</td><td>Context (0–1)</td></tr>
|
|
1290
|
+
<tr><td>7</td><td>networkAgeDays / 365</td><td>Context</td></tr>
|
|
1291
|
+
<tr><td>8</td><td>karmaScore</td><td>KARMA trust model</td></tr>
|
|
1292
|
+
<tr><td>9</td><td>hasAesni</td><td>Hardware attestation</td></tr>
|
|
1293
|
+
<tr><td>10</td><td>timeSourceQuality</td><td>MANI (0=sys, 0.5=NTP, 1=PTP)</td></tr>
|
|
1294
|
+
<tr><td>11</td><td>observationCount / 1000</td><td>Profile depth</td></tr>
|
|
1295
|
+
</tbody>
|
|
1296
|
+
</table>
|
|
1297
|
+
</div>
|
|
1298
|
+
<h3 class="text-lg font-semibold mb-3">Output Scores</h3>
|
|
1299
|
+
<div class="grid sm:grid-cols-2 gap-3 mb-6">
|
|
1300
|
+
<div class="bg-mountain-800 rounded-lg p-4">
|
|
1301
|
+
<code class="theme-accent font-semibold">anomalyScore</code>
|
|
1302
|
+
<p class="text-mountain-400 text-sm mt-1">General anomaly probability (NPU + CPU fallback)</p>
|
|
1303
|
+
</div>
|
|
1304
|
+
<div class="bg-mountain-800 rounded-lg p-4">
|
|
1305
|
+
<code class="theme-accent font-semibold">sybilScore</code>
|
|
1306
|
+
<p class="text-mountain-400 text-sm mt-1">Sybil attack probability (NPU only)</p>
|
|
1307
|
+
</div>
|
|
1308
|
+
<div class="bg-mountain-800 rounded-lg p-4">
|
|
1309
|
+
<code class="theme-accent font-semibold">eclipseScore</code>
|
|
1310
|
+
<p class="text-mountain-400 text-sm mt-1">Eclipse attack probability (NPU only)</p>
|
|
1311
|
+
</div>
|
|
1312
|
+
<div class="bg-mountain-800 rounded-lg p-4">
|
|
1313
|
+
<code class="theme-accent font-semibold">floodScore</code>
|
|
1314
|
+
<p class="text-mountain-400 text-sm mt-1">Flood attack probability (NPU only)</p>
|
|
1315
|
+
</div>
|
|
1316
|
+
</div>
|
|
1317
|
+
<div class="theme-callout border rounded-xl p-6 mb-4">
|
|
1318
|
+
<p class="font-semibold mb-1">NPU vs CPU</p>
|
|
1319
|
+
<p class="text-mountain-400 text-sm">
|
|
1320
|
+
The NPU path returns per-attack-type scores (sybil, eclipse, flood). The CPU fallback can only
|
|
1321
|
+
compute a general anomalyScore — the individual attack scores are zero. Both paths receive
|
|
1322
|
+
identical feature vectors.
|
|
1323
|
+
</p>
|
|
1324
|
+
</div>
|
|
1325
|
+
</section>
|
|
1326
|
+
|
|
1327
|
+
<!-- Version History -->
|
|
1328
|
+
<section class="mb-12">
|
|
1329
|
+
<h2 class="text-2xl font-bold mb-4 flex items-center gap-2">
|
|
1330
|
+
<svg class="doc-icon inline-icon" width="24" height="24" aria-hidden="true"><use href="#icon-hourglass"/></svg> Version History
|
|
1331
|
+
</h2>
|
|
1332
|
+
<div class="bg-mountain-800 rounded-xl p-6 border border-mountain-700">
|
|
1333
|
+
<table class="cause-table">
|
|
1334
|
+
<thead>
|
|
1335
|
+
<tr>
|
|
1336
|
+
<th>Version</th>
|
|
1337
|
+
<th>Changes</th>
|
|
1338
|
+
</tr>
|
|
1339
|
+
</thead>
|
|
1340
|
+
<tbody>
|
|
1341
|
+
<tr>
|
|
1342
|
+
<td><span class="theme-badge px-2 py-1 rounded">v3.0.0</span></td>
|
|
1343
|
+
<td>VEGATI behavior velocity monitor with 6 dimensions, σ-based alerts.
|
|
1344
|
+
NPU anomaly assessment via <code>assessNode()</code> with 12-feature ONNX model
|
|
1345
|
+
(sakshi-anomaly) and CPU heuristic fallback.</td>
|
|
1346
|
+
</tr>
|
|
1347
|
+
<tr>
|
|
1348
|
+
<td><span class="theme-badge px-2 py-1 rounded">v2.8.2</span></td>
|
|
1349
|
+
<td>Added SETU bridge functions for trust-tier integration</td>
|
|
1350
|
+
</tr>
|
|
1351
|
+
<tr>
|
|
1352
|
+
<td><span class="theme-badge px-2 py-1 rounded">v2.8.1</span></td>
|
|
1353
|
+
<td>Initial SAKSHI + VIVAAD release. Removed VARNA (anti-yakmesh ethos)</td>
|
|
1354
|
+
</tr>
|
|
1355
|
+
</tbody>
|
|
1356
|
+
</table>
|
|
1357
|
+
</div>
|
|
1358
|
+
</section>
|
|
1359
|
+
|
|
1360
|
+
<!-- Journey Navigation -->
|
|
1361
|
+
<div class="border-t border-mountain-700 mt-12 pt-8">
|
|
1362
|
+
<h2 class="text-xl font-bold mb-6">Continue the Journey</h2>
|
|
1363
|
+
<div class="flex flex-col sm:flex-row gap-4">
|
|
1364
|
+
<a href="ypc27.html" class="flex-1 block bg-mountain-800 border border-mountain-700 rounded-xl p-4 hover:border-theme-accent transition group">
|
|
1365
|
+
<div class="text-xs text-mountain-400 mb-1">← Previous</div>
|
|
1366
|
+
<div class="flex items-center gap-2">
|
|
1367
|
+
<svg class="doc-icon journey-icon" aria-hidden="true"><use href="#icon-ypc27"/></svg>
|
|
1368
|
+
<span class="font-semibold group-hover:text-theme-accent">YPC-27</span>
|
|
1369
|
+
</div>
|
|
1370
|
+
<p class="text-mountain-400 text-sm mt-1">Cryptographic suite</p>
|
|
1371
|
+
</a>
|
|
1372
|
+
<a href="geo-proof.html" class="flex-1 block bg-mountain-800 border border-theme-primary rounded-xl p-4 hover:border-theme-accent transition group">
|
|
1373
|
+
<div class="text-xs text-mountain-400 mb-1">Next →</div>
|
|
1374
|
+
<div class="flex items-center gap-2">
|
|
1375
|
+
<svg class="doc-icon journey-icon" aria-hidden="true"><use href="#icon-pramaan"/></svg>
|
|
1376
|
+
<span class="font-semibold group-hover:text-theme-accent">PRAMAAN</span>
|
|
1377
|
+
</div>
|
|
1378
|
+
<p class="text-mountain-400 text-sm mt-1">Geographic proofs</p>
|
|
1379
|
+
</a>
|
|
1380
|
+
</div>
|
|
1381
|
+
</div>
|
|
1382
|
+
</main>
|
|
1383
|
+
|
|
1384
|
+
<footer class="docs-footer">
|
|
1385
|
+
<p>© 2026 YAKMESH™</p>
|
|
1386
|
+
</footer>
|
|
1387
|
+
|
|
1388
|
+
<script src="prism.min.js" defer></script>
|
|
1389
|
+
<script src="prism-javascript.min.js" defer></script>
|
|
1390
|
+
<script src="docs.js" defer></script>
|
|
1391
|
+
<script>
|
|
1392
|
+
function showTab(tabId) {
|
|
1393
|
+
document.querySelectorAll('.tab').forEach(t => t.classList.remove('active'));
|
|
1394
|
+
document.querySelectorAll('.tab-content').forEach(c => c.classList.remove('active'));
|
|
1395
|
+
document.querySelector(`[onclick="showTab('${tabId}')"]`).classList.add('active');
|
|
1396
|
+
document.getElementById(tabId).classList.add('active');
|
|
1397
|
+
}
|
|
1398
|
+
</script>
|
|
1399
|
+
</body>
|
|
1400
|
+
</html>
|
|
1401
|
+
|
|
1402
|
+
|