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.
Files changed (232) hide show
  1. package/CHANGELOG.md +637 -0
  2. package/CONTRIBUTING.md +42 -0
  3. package/Caddyfile +77 -0
  4. package/README.md +119 -29
  5. package/adapters/adapter-mlv-bible/README.md +124 -0
  6. package/adapters/adapter-mlv-bible/index.js +400 -0
  7. package/adapters/chat-mod-adapter.js +532 -0
  8. package/adapters/content-adapter.js +273 -0
  9. package/content/api.js +50 -41
  10. package/content/index.js +2 -2
  11. package/content/store.js +355 -173
  12. package/dashboard/index.html +19 -3
  13. package/database/replication.js +117 -37
  14. package/docs/CRYPTO-AGILITY.md +204 -0
  15. package/docs/MTLS-RESEARCH.md +367 -0
  16. package/docs/NAMCHE-SPEC.md +681 -0
  17. package/docs/PEERQUANTA-YAKMESH-INTEGRATION.md +407 -0
  18. package/docs/PRECISION-DISCLOSURE.md +96 -0
  19. package/docs/README.md +76 -0
  20. package/docs/ROADMAP-2.4.0.md +447 -0
  21. package/docs/ROADMAP-2.5.0.md +244 -0
  22. package/docs/SECURITY-AUDIT-REPORT.md +306 -0
  23. package/docs/SST-INTEGRATION.md +712 -0
  24. package/docs/STEADYWATCH-IMPLEMENTATION.md +303 -0
  25. package/docs/TERNARY-AUDIT-REPORT.md +247 -0
  26. package/docs/TME-FAQ.md +221 -0
  27. package/docs/WHITEPAPER.md +623 -0
  28. package/docs/adapters.html +1001 -0
  29. package/docs/advanced-systems.html +1045 -0
  30. package/docs/annex.html +1046 -0
  31. package/docs/api.html +970 -0
  32. package/docs/business/response-templates.md +160 -0
  33. package/docs/c2c.html +1225 -0
  34. package/docs/cli.html +1332 -0
  35. package/docs/configuration.html +1248 -0
  36. package/docs/darshan.html +1085 -0
  37. package/docs/dharma.html +966 -0
  38. package/docs/docs-bundle.html +1075 -0
  39. package/docs/docs.css +3120 -0
  40. package/docs/docs.js +556 -0
  41. package/docs/doko.html +969 -0
  42. package/docs/geo-proof.html +858 -0
  43. package/docs/getting-started.html +840 -0
  44. package/docs/gumba-tutorial.html +1144 -0
  45. package/docs/gumba.html +1098 -0
  46. package/docs/index.html +914 -0
  47. package/docs/jhilke.html +1312 -0
  48. package/docs/karma.html +1100 -0
  49. package/docs/katha.html +1037 -0
  50. package/docs/lama.html +978 -0
  51. package/docs/mandala.html +1067 -0
  52. package/docs/mani.html +964 -0
  53. package/docs/mantra.html +967 -0
  54. package/docs/mesh.html +1409 -0
  55. package/docs/nakpak.html +869 -0
  56. package/docs/namche.html +928 -0
  57. package/docs/nav-order.json +53 -0
  58. package/docs/prahari.html +1043 -0
  59. package/docs/prism-bash.min.js +1 -0
  60. package/docs/prism-javascript.min.js +1 -0
  61. package/docs/prism-json.min.js +1 -0
  62. package/docs/prism-tomorrow.min.css +1 -0
  63. package/docs/prism.min.js +1 -0
  64. package/docs/privacy.html +699 -0
  65. package/docs/quick-reference.html +1181 -0
  66. package/docs/sakshi.html +1402 -0
  67. package/docs/sandboxing.md +386 -0
  68. package/docs/seva.html +911 -0
  69. package/docs/sherpa.html +871 -0
  70. package/docs/studio.html +860 -0
  71. package/docs/stupa.html +995 -0
  72. package/docs/tailwind.min.css +2 -0
  73. package/docs/tattva.html +1332 -0
  74. package/docs/terms.html +686 -0
  75. package/docs/time-server-deployment.md +166 -0
  76. package/docs/time-sources.html +1392 -0
  77. package/docs/tivra.html +1127 -0
  78. package/docs/trademark-policy.html +686 -0
  79. package/docs/tribhuj.html +1183 -0
  80. package/docs/trust-security.html +1029 -0
  81. package/docs/tutorials/backup-recovery.html +654 -0
  82. package/docs/tutorials/dashboard.html +604 -0
  83. package/docs/tutorials/domain-setup.html +605 -0
  84. package/docs/tutorials/host-website.html +456 -0
  85. package/docs/tutorials/mesh-network.html +505 -0
  86. package/docs/tutorials/mobile-access.html +445 -0
  87. package/docs/tutorials/privacy.html +467 -0
  88. package/docs/tutorials/raspberry-pi.html +600 -0
  89. package/docs/tutorials/security-basics.html +539 -0
  90. package/docs/tutorials/share-files.html +431 -0
  91. package/docs/tutorials/troubleshooting.html +637 -0
  92. package/docs/tutorials/trust-karma.html +419 -0
  93. package/docs/tutorials/yak-protocol.html +456 -0
  94. package/docs/tutorials.html +1034 -0
  95. package/docs/vani.html +1270 -0
  96. package/docs/webserver.html +809 -0
  97. package/docs/yak-protocol.html +940 -0
  98. package/docs/yak-timeserver-design.md +475 -0
  99. package/docs/yakapp.html +1015 -0
  100. package/docs/ypc27.html +1069 -0
  101. package/docs/yurt.html +1344 -0
  102. package/embedded-docs/bundle.js +334 -74
  103. package/gossip/protocol.js +247 -27
  104. package/identity/key-resolver.js +262 -0
  105. package/identity/machine-seed.js +632 -0
  106. package/identity/node-key.js +669 -368
  107. package/identity/tribhuj-ratchet.js +506 -0
  108. package/knowledge-base.js +37 -8
  109. package/launcher/yakmesh.bat +62 -0
  110. package/launcher/yakmesh.sh +70 -0
  111. package/mesh/annex.js +462 -108
  112. package/mesh/beacon-broadcast.js +113 -1
  113. package/mesh/darshan.js +1718 -0
  114. package/mesh/gumba.js +1567 -0
  115. package/mesh/jhilke.js +651 -0
  116. package/mesh/katha.js +1012 -0
  117. package/mesh/nakpak-routing.js +8 -5
  118. package/mesh/network.js +724 -34
  119. package/mesh/pulse-sync.js +4 -1
  120. package/mesh/rate-limiter.js +127 -15
  121. package/mesh/seva.js +526 -0
  122. package/mesh/sherpa-discovery.js +89 -8
  123. package/mesh/sybil-defense.js +19 -5
  124. package/mesh/temporal-encoder.js +4 -3
  125. package/mesh/vani.js +1364 -0
  126. package/mesh/yurt.js +1340 -0
  127. package/models/entropy-sentinel.onnx +0 -0
  128. package/models/karma-trust.onnx +0 -0
  129. package/models/manifest.json +43 -0
  130. package/models/sakshi-anomaly.onnx +0 -0
  131. package/oracle/code-proof-protocol.js +7 -6
  132. package/oracle/codebase-lock.js +257 -28
  133. package/oracle/index.js +74 -15
  134. package/oracle/ma902-snmp.js +678 -0
  135. package/oracle/module-sealer.js +5 -3
  136. package/oracle/network-identity.js +16 -0
  137. package/oracle/packet-checksum.js +201 -0
  138. package/oracle/sst.js +579 -0
  139. package/oracle/ternary-144t.js +714 -0
  140. package/oracle/ternary-ml.js +481 -0
  141. package/oracle/time-api.js +239 -0
  142. package/oracle/time-source.js +137 -47
  143. package/oracle/validation-oracle-hardened.js +1111 -1071
  144. package/oracle/validation-oracle.js +4 -2
  145. package/oracle/ypc27.js +211 -0
  146. package/package.json +20 -3
  147. package/protocol/yak-handler.js +35 -9
  148. package/protocol/yak-protocol.js +28 -13
  149. package/reference/cpp/yakmesh_mceliece_shard.cpp +168 -0
  150. package/reference/cpp/yakmesh_ypc27.cpp +179 -0
  151. package/sbom.json +87 -0
  152. package/scripts/security-audit.mjs +264 -0
  153. package/scripts/update-docs-nav.js +194 -0
  154. package/scripts/update-docs-sidebar.cjs +164 -0
  155. package/security/crypto-config.js +4 -3
  156. package/security/dharma-moderation.js +517 -0
  157. package/security/doko-identity.js +193 -143
  158. package/security/domain-consensus.js +86 -85
  159. package/security/fs-hardening.js +620 -0
  160. package/security/hardware-attestation.js +5 -3
  161. package/security/hybrid-trust.js +227 -87
  162. package/security/karma-rate-limiter.js +692 -0
  163. package/security/khata-protocol.js +22 -21
  164. package/security/khata-trust-integration.js +277 -150
  165. package/security/memory-safety.js +635 -0
  166. package/security/mesh-auth.js +11 -10
  167. package/security/mesh-revocation.js +373 -5
  168. package/security/namche-gateway.js +298 -69
  169. package/security/sakshi.js +460 -3
  170. package/security/sangha.js +770 -0
  171. package/security/secure-config.js +473 -0
  172. package/security/silicon-parity.js +13 -10
  173. package/security/steadywatch.js +1142 -0
  174. package/security/strike-system.js +32 -3
  175. package/security/temporal-signing.js +488 -0
  176. package/security/trit-commitment.js +464 -0
  177. package/server/crypto/annex.js +247 -0
  178. package/server/darshan-api.js +343 -0
  179. package/server/index.js +3259 -362
  180. package/server/komm-api.js +668 -0
  181. package/utils/accel.js +2273 -0
  182. package/utils/ternary-id.js +79 -0
  183. package/utils/verify-worker.js +57 -0
  184. package/webserver/index.js +95 -5
  185. package/assets/yakmesh-logo.png +0 -0
  186. package/assets/yakmesh-logo.svg +0 -80
  187. package/assets/yakmesh-logo2.png +0 -0
  188. package/assets/yakmesh-logo2sm.png +0 -0
  189. package/assets/ymsm.png +0 -0
  190. package/website/assets/silhouettes/adapters.svg +0 -107
  191. package/website/assets/silhouettes/api-endpoints.svg +0 -115
  192. package/website/assets/silhouettes/atomic-clock.svg +0 -83
  193. package/website/assets/silhouettes/base-camp.svg +0 -81
  194. package/website/assets/silhouettes/bridge.svg +0 -69
  195. package/website/assets/silhouettes/docs-bundle.svg +0 -113
  196. package/website/assets/silhouettes/doko-basket.svg +0 -70
  197. package/website/assets/silhouettes/fortress.svg +0 -93
  198. package/website/assets/silhouettes/gateway.svg +0 -54
  199. package/website/assets/silhouettes/gears.svg +0 -93
  200. package/website/assets/silhouettes/globe-satellite.svg +0 -67
  201. package/website/assets/silhouettes/karma-wheel.svg +0 -137
  202. package/website/assets/silhouettes/lama-council.svg +0 -141
  203. package/website/assets/silhouettes/mandala-network.svg +0 -169
  204. package/website/assets/silhouettes/mani-stones.svg +0 -149
  205. package/website/assets/silhouettes/mantra-wheel.svg +0 -116
  206. package/website/assets/silhouettes/mesh-nodes.svg +0 -113
  207. package/website/assets/silhouettes/nakpak.svg +0 -56
  208. package/website/assets/silhouettes/peak-lightning.svg +0 -73
  209. package/website/assets/silhouettes/sherpa.svg +0 -69
  210. package/website/assets/silhouettes/stupa-tower.svg +0 -119
  211. package/website/assets/silhouettes/tattva-eye.svg +0 -78
  212. package/website/assets/silhouettes/terminal.svg +0 -74
  213. package/website/assets/silhouettes/webserver.svg +0 -145
  214. package/website/assets/silhouettes/yak.svg +0 -78
  215. package/website/assets/yakmesh-logo.png +0 -0
  216. package/website/assets/yakmesh-logo.webp +0 -0
  217. package/website/assets/yakmesh-logo128x140.webp +0 -0
  218. package/website/assets/yakmesh-logo2.png +0 -0
  219. package/website/assets/yakmesh-logo2.svg +0 -51
  220. package/website/assets/yakmesh-logo40x44.webp +0 -0
  221. package/website/assets/yakmesh.gif +0 -0
  222. package/website/assets/yakmesh.ico +0 -0
  223. package/website/assets/yakmesh.jpg +0 -0
  224. package/website/assets/yakmesh.pdf +0 -0
  225. package/website/assets/yakmesh.png +0 -0
  226. package/website/assets/yakmesh.svg +0 -70
  227. package/website/assets/yakmesh128.webp +0 -0
  228. package/website/assets/yakmesh32.png +0 -0
  229. package/website/assets/yakmesh32.svg +0 -65
  230. package/website/assets/yakmesh32o.ico +0 -2
  231. package/website/assets/yakmesh32o.svg +0 -65
  232. package/website/assets/yakmesh32o.svgz +0 -0
@@ -0,0 +1,1332 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en" data-theme="tattva">
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>TATTVA System | YAKMESH Documentation</title>
10
+ <meta name="description" content="YAKMESH TATTVA system. Self-verifying validation, code proof protocol, and truth engine for trustless network coordination.">
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: #a855f7; }
17
+ .theme-accent-hover:hover { color: #c084fc; }
18
+ .theme-badge { background: rgba(168, 85, 247, 0.2); color: #c084fc; }
19
+ .theme-border { border-color: #a855f7; }
20
+ .theme-callout { background: rgba(168, 85, 247, 0.1); border-color: #9333ea; }
21
+ .active-link { background: rgba(168, 85, 247, 0.2) !important; color: #c084fc !important; }
22
+ .oracle-table { width: 100%; border-collapse: collapse; }
23
+ .oracle-table th, .oracle-table td { padding: 0.75rem; text-align: left; border-bottom: 1px solid #2e4c43; }
24
+ .oracle-table th { color: #a855f7; font-weight: 600; background: rgba(168, 85, 247, 0.1); }
25
+ .oracle-table code { background: #1f332d; padding: 0.25rem 0.5rem; border-radius: 4px; color: #c084fc; }
26
+ .module-card { background: linear-gradient(135deg, rgba(168, 85, 247, 0.15), rgba(147, 51, 234, 0.1)); border-left: 4px solid #a855f7; }
27
+ .module-card-validation { background: linear-gradient(135deg, rgba(168, 85, 247, 0.2), rgba(139, 92, 246, 0.1)); border-left: 4px solid #a855f7; }
28
+ .module-card-codeproof { background: linear-gradient(135deg, rgba(59, 130, 246, 0.2), rgba(37, 99, 235, 0.1)); border-left: 4px solid #3b82f6; }
29
+ .module-card-consensus { background: linear-gradient(135deg, rgba(34, 197, 94, 0.2), rgba(22, 163, 74, 0.1)); border-left: 4px solid #22c55e; }
30
+ .module-card-sealer { background: linear-gradient(135deg, rgba(251, 191, 36, 0.2), rgba(245, 158, 11, 0.1)); border-left: 4px solid #fbbf24; }
31
+ .module-card-identity { background: linear-gradient(135deg, rgba(236, 72, 153, 0.2), rgba(219, 39, 119, 0.1)); border-left: 4px solid #ec4899; }
32
+ .module-card-genesis { background: linear-gradient(135deg, rgba(99, 102, 241, 0.2), rgba(79, 70, 229, 0.1)); border-left: 4px solid #6366f1; }
33
+ .module-card-lock { background: linear-gradient(135deg, rgba(239, 68, 68, 0.2), rgba(220, 38, 38, 0.1)); border-left: 4px solid #ef4444; }
34
+ .critical-warning { background: linear-gradient(135deg, rgba(239, 68, 68, 0.2), rgba(220, 38, 38, 0.1)); border: 2px solid #ef4444; }
35
+ .philosophy-quote { font-style: italic; background: linear-gradient(135deg, rgba(168, 85, 247, 0.2), rgba(99, 102, 241, 0.1)); border-left: 4px solid #a855f7; }
36
+ </style>
37
+
38
+ <!-- Open Graph -->
39
+ <meta property="og:type" content="article">
40
+ <meta property="og:site_name" content="Yakmesh Documentation">
41
+ <meta property="og:title" content="TATTVA — Yakmesh">
42
+ <meta property="og:description" content="TATTVA core principles — state and element management across the protocol stack.">
43
+ </head>
44
+ <body class="bg-mountain-900 text-white min-h-screen">
45
+ <!-- YAKMESH-ICON-SPRITE-START -->
46
+ <svg xmlns="http://www.w3.org/2000/svg" style="display:none">
47
+ <!--
48
+ Yakmesh Docs Icon Sprite Sheet
49
+ 24×24 viewBox — stroke/fill set via .doc-icon CSS
50
+ Usage: <svg class="doc-icon"><use href="#icon-name"/></svg>
51
+ -->
52
+
53
+ <!-- ═══ GUIDES ═══ -->
54
+
55
+ <symbol id="icon-home" viewBox="0 0 24 24">
56
+ <path d="M3 9.5L12 3l9 6.5V20a1 1 0 01-1 1H4a1 1 0 01-1-1V9.5z"/>
57
+ <polyline points="9 22 9 12 15 12 15 22"/>
58
+ </symbol>
59
+
60
+ <symbol id="icon-rocket" viewBox="0 0 24 24">
61
+ <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"/>
62
+ <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"/>
63
+ <path d="M9 12H4s.55-3.03 2-4c1.62-1.08 5 0 5 0"/>
64
+ <path d="M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5"/>
65
+ </symbol>
66
+
67
+ <symbol id="icon-book" viewBox="0 0 24 24">
68
+ <path d="M4 19.5A2.5 2.5 0 016.5 17H20"/>
69
+ <path d="M6.5 2H20v20H6.5A2.5 2.5 0 014 19.5v-15A2.5 2.5 0 016.5 2z"/>
70
+ <line x1="8" y1="7" x2="16" y2="7"/>
71
+ <line x1="8" y1="11" x2="13" y2="11"/>
72
+ </symbol>
73
+
74
+ <!-- ═══ PROTOCOL STACK ═══ -->
75
+
76
+ <!-- YAK:// — Content addressing (yak horns) -->
77
+ <symbol id="icon-yak" viewBox="0 0 24 24">
78
+ <path d="M4 4c1 3 3 5 5 6"/>
79
+ <path d="M20 4c-1 3-3 5-5 6"/>
80
+ <circle cx="12" cy="14" r="5"/>
81
+ <circle cx="10" cy="13" r="0.5" fill="currentColor"/>
82
+ <circle cx="14" cy="13" r="0.5" fill="currentColor"/>
83
+ <path d="M10 16c1 1 3 1 4 0"/>
84
+ </symbol>
85
+
86
+ <!-- ANNEX — Encrypted bridge -->
87
+ <symbol id="icon-annex" viewBox="0 0 24 24">
88
+ <path d="M4 18h3a4 4 0 004-4V8"/>
89
+ <path d="M20 18h-3a4 4 0 01-4-4V8"/>
90
+ <circle cx="7" cy="6" r="2"/>
91
+ <circle cx="17" cy="6" r="2"/>
92
+ <line x1="7" y1="8" x2="7" y2="18"/>
93
+ <line x1="17" y1="8" x2="17" y2="18"/>
94
+ </symbol>
95
+
96
+ <!-- JHILKE — Cricket / steganographic key lifecycle -->
97
+ <symbol id="icon-jhilke" viewBox="0 0 24 24">
98
+ <ellipse cx="12" cy="14" rx="4" ry="6"/>
99
+ <path d="M8 10c-2-3-4-6-3-8"/>
100
+ <path d="M16 10c2-3 4-6 3-8"/>
101
+ <line x1="10" y1="20" x2="8" y2="23"/>
102
+ <line x1="14" y1="20" x2="16" y2="23"/>
103
+ <path d="M9 12l-4 2"/>
104
+ <path d="M15 12l4 2"/>
105
+ </symbol>
106
+
107
+ <!-- NAKPAK — Onion layers / backpack -->
108
+ <symbol id="icon-nakpak" viewBox="0 0 24 24">
109
+ <circle cx="12" cy="12" r="10" opacity="0.3"/>
110
+ <circle cx="12" cy="12" r="7" opacity="0.5"/>
111
+ <circle cx="12" cy="12" r="4" opacity="0.8"/>
112
+ <circle cx="12" cy="12" r="1.5" fill="currentColor"/>
113
+ </symbol>
114
+
115
+ <!-- NAMCHE — Gateway door -->
116
+ <symbol id="icon-namche" viewBox="0 0 24 24">
117
+ <rect x="3" y="3" width="18" height="18" rx="2"/>
118
+ <path d="M9 3v18"/>
119
+ <path d="M15 3v18"/>
120
+ <line x1="3" y1="8" x2="9" y2="8"/>
121
+ <line x1="15" y1="8" x2="21" y2="8"/>
122
+ <circle cx="12" cy="14" r="1" fill="currentColor"/>
123
+ </symbol>
124
+
125
+ <!-- DOKO — Basket / certificate -->
126
+ <symbol id="icon-doko" viewBox="0 0 24 24">
127
+ <path d="M6 8l-2 12h16l-2-12"/>
128
+ <path d="M6 8c0-3 2.7-5 6-5s6 2 6 5"/>
129
+ <line x1="8" y1="10" x2="10" y2="18"/>
130
+ <line x1="16" y1="10" x2="14" y2="18"/>
131
+ <line x1="12" y1="10" x2="12" y2="18"/>
132
+ </symbol>
133
+
134
+ <!-- SHERPA — Mountain climber -->
135
+ <symbol id="icon-sherpa" viewBox="0 0 24 24">
136
+ <path d="M4 20L10 6l3 6 3-4 4 12"/>
137
+ <line x1="4" y1="20" x2="20" y2="20"/>
138
+ <circle cx="13" cy="4" r="1.5"/>
139
+ </symbol>
140
+
141
+ <!-- MANDALA — Network topology web -->
142
+ <symbol id="icon-mandala" viewBox="0 0 24 24">
143
+ <circle cx="12" cy="12" r="9"/>
144
+ <circle cx="12" cy="12" r="4.5"/>
145
+ <line x1="12" y1="3" x2="12" y2="21"/>
146
+ <line x1="3" y1="12" x2="21" y2="12"/>
147
+ <line x1="5.6" y1="5.6" x2="18.4" y2="18.4"/>
148
+ <line x1="18.4" y1="5.6" x2="5.6" y2="18.4"/>
149
+ </symbol>
150
+
151
+ <!-- MANTRA — Gossip / prayer wheel -->
152
+ <symbol id="icon-mantra" viewBox="0 0 24 24">
153
+ <circle cx="12" cy="10" r="7"/>
154
+ <path d="M12 3v14"/>
155
+ <path d="M8 7c2 1.5 6 1.5 8 0"/>
156
+ <path d="M8 13c2-1.5 6-1.5 8 0"/>
157
+ <line x1="12" y1="17" x2="12" y2="22"/>
158
+ <line x1="9" y1="22" x2="15" y2="22"/>
159
+ </symbol>
160
+
161
+ <!-- GUMBA — Temple / access control -->
162
+ <symbol id="icon-gumba" viewBox="0 0 24 24">
163
+ <path d="M12 2L3 9h18z"/>
164
+ <line x1="5" y1="9" x2="5" y2="19"/>
165
+ <line x1="9" y1="9" x2="9" y2="19"/>
166
+ <line x1="15" y1="9" x2="15" y2="19"/>
167
+ <line x1="19" y1="9" x2="19" y2="19"/>
168
+ <line x1="3" y1="19" x2="21" y2="19"/>
169
+ <line x1="3" y1="21" x2="21" y2="21"/>
170
+ </symbol>
171
+
172
+ <!-- YURT — Camp / room -->
173
+ <symbol id="icon-yurt" viewBox="0 0 24 24">
174
+ <path d="M3 20L12 4l9 16"/>
175
+ <line x1="3" y1="20" x2="21" y2="20"/>
176
+ <path d="M10 20v-5a2 2 0 014 0v5"/>
177
+ <path d="M6 14h12"/>
178
+ </symbol>
179
+
180
+ <!-- KATHA — Chat / story scroll -->
181
+ <symbol id="icon-katha" viewBox="0 0 24 24">
182
+ <path d="M21 15a2 2 0 01-2 2H7l-4 4V5a2 2 0 012-2h14a2 2 0 012 2z"/>
183
+ <line x1="8" y1="8" x2="16" y2="8"/>
184
+ <line x1="8" y1="12" x2="13" y2="12"/>
185
+ </symbol>
186
+
187
+ <!-- VANI — Voice / microphone -->
188
+ <symbol id="icon-vani" viewBox="0 0 24 24">
189
+ <rect x="9" y="2" width="6" height="11" rx="3"/>
190
+ <path d="M5 10a7 7 0 0014 0"/>
191
+ <line x1="12" y1="17" x2="12" y2="22"/>
192
+ <line x1="8" y1="22" x2="16" y2="22"/>
193
+ </symbol>
194
+
195
+ <!-- DARSHAN — Eye / viewing -->
196
+ <symbol id="icon-darshan" viewBox="0 0 24 24">
197
+ <path d="M1 12s4-8 11-8 11 8 11 8-4 8-11 8S1 12 1 12z"/>
198
+ <circle cx="12" cy="12" r="3"/>
199
+ </symbol>
200
+
201
+ <!-- STUPA — Tower / distributed storage -->
202
+ <symbol id="icon-stupa" viewBox="0 0 24 24">
203
+ <line x1="12" y1="2" x2="12" y2="5"/>
204
+ <path d="M10 5h4l1 3H9z"/>
205
+ <ellipse cx="12" cy="11" rx="5" ry="3"/>
206
+ <ellipse cx="12" cy="15" rx="6" ry="3"/>
207
+ <ellipse cx="12" cy="19" rx="7" ry="3"/>
208
+ </symbol>
209
+
210
+ <!-- LAMA — Crystal ball / consensus -->
211
+ <symbol id="icon-lama" viewBox="0 0 24 24">
212
+ <circle cx="12" cy="10" r="7"/>
213
+ <path d="M12 3c-1.5 2-2 5 0 7s4.5 2 6 0"/>
214
+ <path d="M7 19h10"/>
215
+ <path d="M9 22h6"/>
216
+ <line x1="9" y1="17" x2="9" y2="19"/>
217
+ <line x1="15" y1="17" x2="15" y2="19"/>
218
+ </symbol>
219
+
220
+ <!-- MANI — Prayer stone / time sync -->
221
+ <symbol id="icon-mani" viewBox="0 0 24 24">
222
+ <circle cx="12" cy="12" r="9"/>
223
+ <polyline points="12 6 12 12 16 14"/>
224
+ <circle cx="12" cy="12" r="1" fill="currentColor"/>
225
+ </symbol>
226
+
227
+ <!-- KARMA — Yin-yang / reputation -->
228
+ <symbol id="icon-karma" viewBox="0 0 24 24">
229
+ <circle cx="12" cy="12" r="9"/>
230
+ <path d="M12 3a4.5 4.5 0 010 9 4.5 4.5 0 000 9"/>
231
+ <circle cx="12" cy="7.5" r="1.5" fill="currentColor"/>
232
+ <circle cx="12" cy="16.5" r="1.5"/>
233
+ </symbol>
234
+
235
+ <!-- TATTVA — Quantum elements / atom -->
236
+ <symbol id="icon-tattva" viewBox="0 0 24 24">
237
+ <circle cx="12" cy="12" r="2.5" fill="currentColor" stroke="none"/>
238
+ <ellipse cx="12" cy="12" rx="10" ry="4"/>
239
+ <ellipse cx="12" cy="12" rx="10" ry="4" transform="rotate(60 12 12)"/>
240
+ <ellipse cx="12" cy="12" rx="10" ry="4" transform="rotate(120 12 12)"/>
241
+ </symbol>
242
+
243
+ <!-- TRIBHUJ — Triangle / balanced ternary -->
244
+ <symbol id="icon-tribhuj" viewBox="0 0 24 24">
245
+ <polygon points="12,3 21,20 3,20"/>
246
+ <line x1="12" y1="3" x2="12" y2="20"/>
247
+ <line x1="7.5" y1="11.5" x2="16.5" y2="11.5"/>
248
+ <circle cx="12" cy="14" r="1" fill="currentColor"/>
249
+ </symbol>
250
+
251
+ <!-- YPC-27 — Lock / cipher -->
252
+ <symbol id="icon-ypc27" viewBox="0 0 24 24">
253
+ <rect x="5" y="11" width="14" height="10" rx="2"/>
254
+ <path d="M8 11V7a4 4 0 118 0v4"/>
255
+ <circle cx="12" cy="16" r="1" fill="currentColor"/>
256
+ <line x1="12" y1="17" x2="12" y2="19"/>
257
+ </symbol>
258
+
259
+ <!-- SAKSHI — Witness / aperture eye -->
260
+ <symbol id="icon-sakshi" viewBox="0 0 24 24">
261
+ <circle cx="12" cy="12" r="9"/>
262
+ <path d="M12 3l3 9-3 9"/>
263
+ <path d="M12 3l-3 9 3 9"/>
264
+ <circle cx="12" cy="12" r="2.5"/>
265
+ <circle cx="12" cy="12" r="0.8" fill="currentColor"/>
266
+ </symbol>
267
+
268
+ <!-- PRAMAAN — Globe / geographic proof -->
269
+ <symbol id="icon-pramaan" viewBox="0 0 24 24">
270
+ <circle cx="12" cy="12" r="9"/>
271
+ <ellipse cx="12" cy="12" rx="4" ry="9"/>
272
+ <line x1="3" y1="9" x2="21" y2="9"/>
273
+ <line x1="3" y1="15" x2="21" y2="15"/>
274
+ <path d="M18 4l-2 2 1 3"/>
275
+ <path d="M6 18l2-1 3 1"/>
276
+ </symbol>
277
+
278
+ <!-- SURAKSHA — Shield / security -->
279
+ <symbol id="icon-suraksha" viewBox="0 0 24 24">
280
+ <path d="M12 2l8 4v6c0 5.5-3.8 10.7-8 12-4.2-1.3-8-6.5-8-12V6z"/>
281
+ <polyline points="9 12 11 14 15 10"/>
282
+ </symbol>
283
+
284
+ <!-- TIVRA — Lightning bolt / acceleration -->
285
+ <symbol id="icon-tivra" viewBox="0 0 24 24">
286
+ <polygon points="13,2 3,14 12,14 11,22 21,10 12,10"/>
287
+ </symbol>
288
+
289
+ <!-- PRAHARI — Satellite / sentinel -->
290
+ <symbol id="icon-prahari" viewBox="0 0 24 24">
291
+ <rect x="9" y="9" width="6" height="6" rx="1" transform="rotate(45 12 12)"/>
292
+ <line x1="12" y1="5" x2="12" y2="2"/>
293
+ <line x1="19" y1="12" x2="22" y2="12"/>
294
+ <line x1="12" y1="19" x2="12" y2="22"/>
295
+ <line x1="5" y1="12" x2="2" y2="12"/>
296
+ <path d="M7 7L5 5"/>
297
+ <path d="M17 7l2-2"/>
298
+ </symbol>
299
+
300
+ <!-- DHARMA — Balance scale / content moderation -->
301
+ <symbol id="icon-dharma" viewBox="0 0 24 24">
302
+ <line x1="12" y1="3" x2="12" y2="21"/>
303
+ <line x1="4" y1="7" x2="20" y2="7"/>
304
+ <path d="M4 7l2 7h0a3 3 0 006 0h0l2-7"/>
305
+ <path d="M14 7l2 7h0a3 3 0 006 0h0l2-7"/>
306
+ <line x1="10" y1="21" x2="14" y2="21"/>
307
+ </symbol>
308
+
309
+ <!-- SEVA — Helping hands / NPU sharing -->
310
+ <symbol id="icon-seva" viewBox="0 0 24 24">
311
+ <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"/>
312
+ <path d="M12 11V5"/>
313
+ <path d="M9 8l3-3 3 3"/>
314
+ <circle cx="12" cy="16" r="2"/>
315
+ </symbol>
316
+
317
+ <!-- ═══ APPLICATIONS ═══ -->
318
+
319
+ <!-- YakApp — Messenger -->
320
+ <symbol id="icon-yakapp" viewBox="0 0 24 24">
321
+ <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"/>
322
+ </symbol>
323
+
324
+ <!-- C2C — Core to Cosmos -->
325
+ <symbol id="icon-c2c" viewBox="0 0 24 24">
326
+ <circle cx="12" cy="12" r="3"/>
327
+ <circle cx="12" cy="12" r="9"/>
328
+ <path d="M12 3v3"/>
329
+ <path d="M12 18v3"/>
330
+ <path d="M3 12h3"/>
331
+ <path d="M18 12h3"/>
332
+ </symbol>
333
+
334
+ <!-- Studio — Creative suite -->
335
+ <symbol id="icon-studio" viewBox="0 0 24 24">
336
+ <circle cx="13.5" cy="6.5" r="2.5"/>
337
+ <path d="M6 21l4-10 3 5 4-7 4 12"/>
338
+ <rect x="2" y="2" width="20" height="20" rx="2"/>
339
+ </symbol>
340
+
341
+
342
+ <!-- ═══ REFERENCE ═══ -->
343
+
344
+ <!-- Quick Reference — Clipboard -->
345
+ <symbol id="icon-quickref" viewBox="0 0 24 24">
346
+ <path d="M16 4h2a2 2 0 012 2v14a2 2 0 01-2 2H6a2 2 0 01-2-2V6a2 2 0 012-2h2"/>
347
+ <rect x="8" y="2" width="8" height="4" rx="1"/>
348
+ <line x1="8" y1="10" x2="16" y2="10"/>
349
+ <line x1="8" y1="14" x2="16" y2="14"/>
350
+ <line x1="8" y1="18" x2="12" y2="18"/>
351
+ </symbol>
352
+
353
+ <!-- GRANTH — Docs bundle -->
354
+ <symbol id="icon-granth" viewBox="0 0 24 24">
355
+ <path d="M4 19.5A2.5 2.5 0 016.5 17H20"/>
356
+ <path d="M6.5 2H20v20H6.5A2.5 2.5 0 014 19.5v-15A2.5 2.5 0 016.5 2z"/>
357
+ <path d="M8 7h8"/>
358
+ <path d="M8 11h5"/>
359
+ <path d="M8 15h3"/>
360
+ </symbol>
361
+
362
+ <!-- API — Signal tower -->
363
+ <symbol id="icon-api" viewBox="0 0 24 24">
364
+ <line x1="12" y1="10" x2="12" y2="22"/>
365
+ <path d="M8 6a6 6 0 018 0"/>
366
+ <path d="M5 3a10 10 0 0114 0"/>
367
+ <circle cx="12" cy="10" r="2"/>
368
+ </symbol>
369
+
370
+ <!-- Adapters — Plug connector -->
371
+ <symbol id="icon-adapters" viewBox="0 0 24 24">
372
+ <path d="M6 3v4"/>
373
+ <path d="M10 3v4"/>
374
+ <path d="M4 7h8v3a4 4 0 01-8 0V7z"/>
375
+ <line x1="8" y1="14" x2="8" y2="17"/>
376
+ <path d="M14 10h4v3a2 2 0 01-4 0v-3z"/>
377
+ <line x1="16" y1="7" x2="16" y2="10"/>
378
+ <line x1="16" y1="13" x2="16" y2="17"/>
379
+ <line x1="8" y1="17" x2="16" y2="17"/>
380
+ <line x1="12" y1="17" x2="12" y2="21"/>
381
+ </symbol>
382
+
383
+ <!-- ═══ EXTRA (pages outside nav-order) ═══ -->
384
+
385
+ <!-- Terminal / CLI -->
386
+ <symbol id="icon-terminal" viewBox="0 0 24 24">
387
+ <rect x="2" y="3" width="20" height="18" rx="2"/>
388
+ <polyline points="7 9 10 12 7 15"/>
389
+ <line x1="13" y1="15" x2="17" y2="15"/>
390
+ </symbol>
391
+
392
+ <!-- Gear / Configuration -->
393
+ <symbol id="icon-gear" viewBox="0 0 24 24">
394
+ <circle cx="12" cy="12" r="3"/>
395
+ <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"/>
396
+ </symbol>
397
+
398
+ <!-- Server / Web hosting -->
399
+ <symbol id="icon-server" viewBox="0 0 24 24">
400
+ <rect x="2" y="2" width="20" height="8" rx="2"/>
401
+ <rect x="2" y="14" width="20" height="8" rx="2"/>
402
+ <line x1="6" y1="6" x2="6.01" y2="6"/>
403
+ <line x1="6" y1="18" x2="6.01" y2="18"/>
404
+ </symbol>
405
+
406
+ <!-- ═══ CHROME / UI ═══ -->
407
+
408
+ <!-- Mountain peak — logo icon (replaces 🏔️) -->
409
+ <symbol id="icon-mountain" viewBox="0 0 24 24">
410
+ <path d="M8 21l4.5-9 3 5.5L19 12l3 9H2l6-9z"/>
411
+ <path d="M12 12l1.5-3L16 14"/>
412
+ </symbol>
413
+
414
+ <!-- Dashboard / bar chart (replaces 📊) -->
415
+ <symbol id="icon-dashboard" viewBox="0 0 24 24">
416
+ <line x1="18" y1="20" x2="18" y2="10"/>
417
+ <line x1="12" y1="20" x2="12" y2="4"/>
418
+ <line x1="6" y1="20" x2="6" y2="14"/>
419
+ <rect x="2" y="2" width="20" height="20" rx="2" stroke-opacity="0.4"/>
420
+ </symbol>
421
+
422
+ <!-- ═══ GENERIC / CONTENT ICONS ═══ -->
423
+
424
+ <!-- Lock / encrypted (replaces 🔐) -->
425
+ <symbol id="icon-lock" viewBox="0 0 24 24">
426
+ <rect x="3" y="11" width="18" height="11" rx="2"/>
427
+ <path d="M7 11V7a5 5 0 0110 0v4"/>
428
+ </symbol>
429
+
430
+ <!-- Signal / broadcast (replaces 📡) -->
431
+ <symbol id="icon-signal" viewBox="0 0 24 24">
432
+ <path d="M2 12a10 10 0 0118 0"/>
433
+ <path d="M5 12a7 7 0 0112 0"/>
434
+ <path d="M8 12a4 4 0 016 0"/>
435
+ <circle cx="11" cy="12" r="1"/>
436
+ </symbol>
437
+
438
+ <!-- Link / chain (replaces 🔗) -->
439
+ <symbol id="icon-link" viewBox="0 0 24 24">
440
+ <path d="M10 13a5 5 0 007.54.54l3-3a5 5 0 00-7.07-7.07l-1.72 1.71"/>
441
+ <path d="M14 11a5 5 0 00-7.54-.54l-3 3a5 5 0 007.07 7.07l1.71-1.71"/>
442
+ </symbol>
443
+
444
+ <!-- Globe / network (replaces 🌐) -->
445
+ <symbol id="icon-globe" viewBox="0 0 24 24">
446
+ <circle cx="12" cy="12" r="10"/>
447
+ <line x1="2" y1="12" x2="22" y2="12"/>
448
+ <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"/>
449
+ </symbol>
450
+
451
+ <!-- Sync / refresh (replaces 🔄) -->
452
+ <symbol id="icon-sync" viewBox="0 0 24 24">
453
+ <polyline points="23 4 23 10 17 10"/>
454
+ <polyline points="1 20 1 14 7 14"/>
455
+ <path d="M3.51 9a9 9 0 0114.85-3.36L23 10M1 14l4.64 4.36A9 9 0 0020.49 15"/>
456
+ </symbol>
457
+
458
+ <!-- Users / group (replaces 👥) -->
459
+ <symbol id="icon-users" viewBox="0 0 24 24">
460
+ <path d="M17 21v-2a4 4 0 00-4-4H5a4 4 0 00-4 4v2"/>
461
+ <circle cx="9" cy="7" r="4"/>
462
+ <path d="M23 21v-2a4 4 0 00-3-3.87"/>
463
+ <path d="M16 3.13a4 4 0 010 7.75"/>
464
+ </symbol>
465
+
466
+ <!-- Shield / protection (replaces 🛡) -->
467
+ <symbol id="icon-shield" viewBox="0 0 24 24">
468
+ <path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"/>
469
+ </symbol>
470
+
471
+ <!-- Heartbeat / pulse (replaces 💓) -->
472
+ <symbol id="icon-heartbeat" viewBox="0 0 24 24">
473
+ <path d="M3 12h4l3-9 4 18 3-9h4"/>
474
+ </symbol>
475
+
476
+ <!-- Map pin / location (replaces 📍) -->
477
+ <symbol id="icon-pin" viewBox="0 0 24 24">
478
+ <path d="M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0118 0z"/>
479
+ <circle cx="12" cy="10" r="3"/>
480
+ </symbol>
481
+
482
+ <!-- Traffic light / status (replaces 🚦) -->
483
+ <symbol id="icon-traffic" viewBox="0 0 24 24">
484
+ <rect x="7" y="2" width="10" height="20" rx="3"/>
485
+ <circle cx="12" cy="7" r="1.5"/>
486
+ <circle cx="12" cy="12" r="1.5"/>
487
+ <circle cx="12" cy="17" r="1.5"/>
488
+ </symbol>
489
+
490
+ <!-- Check circle (replaces ✅) -->
491
+ <symbol id="icon-check" viewBox="0 0 24 24">
492
+ <path d="M22 11.08V12a10 10 0 11-5.93-9.14"/>
493
+ <polyline points="22 4 12 14.01 9 11.01"/>
494
+ </symbol>
495
+
496
+ <!-- Megaphone / broadcast (replaces 📢) -->
497
+ <symbol id="icon-megaphone" viewBox="0 0 24 24">
498
+ <path d="M21 15a2 2 0 01-2 2H7l-4 4V5a2 2 0 012-2h14a2 2 0 012 2z"/>
499
+ </symbol>
500
+
501
+ <!-- Pen / signed (replaces ✍) -->
502
+ <symbol id="icon-pen" viewBox="0 0 24 24">
503
+ <path d="M12 20h9"/>
504
+ <path d="M16.5 3.5a2.121 2.121 0 013 3L7 19l-4 1 1-4L16.5 3.5z"/>
505
+ </symbol>
506
+
507
+ <!-- Warning / alert (replaces ⚠) -->
508
+ <symbol id="icon-warning" viewBox="0 0 24 24">
509
+ <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"/>
510
+ <line x1="12" y1="9" x2="12" y2="13"/>
511
+ <line x1="12" y1="17" x2="12.01" y2="17"/>
512
+ </symbol>
513
+
514
+ <!-- Hourglass / timer (replaces ⏳) -->
515
+ <symbol id="icon-hourglass" viewBox="0 0 24 24">
516
+ <path d="M6 2h12v5l-4 4 4 4v5H6v-5l4-4-4-4V2z"/>
517
+ </symbol>
518
+
519
+ <!-- Scroll / document (replaces 📜) -->
520
+ <symbol id="icon-scroll" viewBox="0 0 24 24">
521
+ <path d="M14 2H6a2 2 0 00-2 2v16a2 2 0 002 2h12a2 2 0 002-2V8z"/>
522
+ <polyline points="14 2 14 8 20 8"/>
523
+ <line x1="16" y1="13" x2="8" y2="13"/>
524
+ <line x1="16" y1="17" x2="8" y2="17"/>
525
+ </symbol>
526
+
527
+ <!-- Bolt / lightning (replaces ⚡) -->
528
+ <symbol id="icon-bolt" viewBox="0 0 24 24">
529
+ <polygon points="13 2 3 14 12 14 11 22 21 10 12 10 13 2"/>
530
+ </symbol>
531
+
532
+ <!-- Target / crosshair (replaces 🎯) -->
533
+ <symbol id="icon-target" viewBox="0 0 24 24">
534
+ <circle cx="12" cy="12" r="10"/>
535
+ <circle cx="12" cy="12" r="6"/>
536
+ <circle cx="12" cy="12" r="2"/>
537
+ </symbol>
538
+
539
+ <!-- Handshake / trust (replaces 🤝) -->
540
+ <symbol id="icon-handshake" viewBox="0 0 24 24">
541
+ <path d="M11 17l-3.5-3.5a2.12 2.12 0 013-3L14 14"/>
542
+ <path d="M20.88 7.12l-3.17 3.17"/>
543
+ <path d="M3.12 7.12l3.17 3.17"/>
544
+ <path d="M2 12h4"/>
545
+ <path d="M18 12h4"/>
546
+ <path d="M7.76 4.25L12 2l4.24 2.25"/>
547
+ </symbol>
548
+
549
+ <!-- Leaf / organic (replaces 🌿) -->
550
+ <symbol id="icon-leaf" viewBox="0 0 24 24">
551
+ <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"/>
552
+ <path d="M7 15c2-2 5.5-3 9-3"/>
553
+ </symbol>
554
+
555
+ <!-- Satellite (replaces 🛰) -->
556
+ <symbol id="icon-satellite" viewBox="0 0 24 24">
557
+ <path d="M13 7L9 3 5 7l4 4"/>
558
+ <path d="M17 11l4 4-4 4-4-4"/>
559
+ <line x1="8" y1="11" x2="13" y2="16"/>
560
+ <line x1="3" y1="21" x2="3.01" y2="21"/>
561
+ <path d="M6 18a3 3 0 000 0"/>
562
+ <path d="M9 15a6 6 0 000 0"/>
563
+ </symbol>
564
+
565
+ <!-- Phone / mobile (replaces 📱) -->
566
+ <symbol id="icon-phone" viewBox="0 0 24 24">
567
+ <rect x="5" y="2" width="14" height="20" rx="2"/>
568
+ <line x1="12" y1="18" x2="12.01" y2="18"/>
569
+ </symbol>
570
+
571
+ <!-- Masks / theater (replaces 🎭) -->
572
+ <symbol id="icon-masks" viewBox="0 0 24 24">
573
+ <circle cx="12" cy="12" r="10"/>
574
+ <path d="M8 14s1.5 2 4 2 4-2 4-2"/>
575
+ <line x1="9" y1="9" x2="9.01" y2="9"/>
576
+ <line x1="15" y1="9" x2="15.01" y2="9"/>
577
+ </symbol>
578
+
579
+ <!-- Stars / cosmos (replaces 🌌) -->
580
+ <symbol id="icon-cosmos" viewBox="0 0 24 24">
581
+ <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"/>
582
+ </symbol>
583
+
584
+ <!-- Gem / diamond (replaces 💎) -->
585
+ <symbol id="icon-gem" viewBox="0 0 24 24">
586
+ <polygon points="6 3 18 3 22 9 12 22 2 9 6 3"/>
587
+ <line x1="2" y1="9" x2="22" y2="9"/>
588
+ <line x1="12" y1="22" x2="8" y2="9"/>
589
+ <line x1="12" y1="22" x2="16" y2="9"/>
590
+ <line x1="8" y1="9" x2="10" y2="3"/>
591
+ <line x1="16" y1="9" x2="14" y2="3"/>
592
+ </symbol>
593
+
594
+ <!-- Search / magnifying glass (replaces 🔍) -->
595
+ <symbol id="icon-search" viewBox="0 0 24 24">
596
+ <circle cx="11" cy="11" r="8"/>
597
+ <line x1="21" y1="21" x2="16.65" y2="16.65"/>
598
+ </symbol>
599
+
600
+ </svg>
601
+ <!-- YAKMESH-ICON-SPRITE-END -->
602
+ <a href="#mainContent" class="skip-link">Skip to main content</a>
603
+
604
+ <nav class="docs-sidebar" id="sidebar">
605
+ <a href="index.html" class="sidebar-logo">
606
+ <span class="logo-icon"><svg class="doc-icon" aria-hidden="true"><use href="#icon-mountain"/></svg></span>
607
+ <span class="logo-text">Yakmesh</span>
608
+ </a>
609
+ <a href="/dashboard" class="sidebar-dashboard-link"><svg class="doc-icon" aria-hidden="true"><use href="#icon-dashboard"/></svg> <span>Dashboard</span></a>
610
+ <ul class="sidebar-nav">
611
+ <li class="sidebar-section"><span><svg class="doc-icon" aria-hidden="true"><use href="#icon-book"/></svg> Guides</span></li>
612
+ <li><a href="index.html"><svg class="doc-icon" aria-hidden="true"><use href="#icon-home"/></svg> <span>Overview</span></a></li>
613
+ <li><a href="getting-started.html"><svg class="doc-icon" aria-hidden="true"><use href="#icon-rocket"/></svg> <span>Getting Started</span></a></li>
614
+ <li><a href="tutorials.html"><svg class="doc-icon" aria-hidden="true"><use href="#icon-book"/></svg> <span>Tutorials</span></a></li>
615
+ <li class="sidebar-section"><span><svg class="doc-icon" aria-hidden="true"><use href="#icon-yak"/></svg> Protocol Stack</span></li>
616
+ <li><a href="yak-protocol.html"><svg class="doc-icon" aria-hidden="true"><use href="#icon-yak"/></svg> <span>YAK://</span></a></li>
617
+ <li><a href="annex.html"><svg class="doc-icon" aria-hidden="true"><use href="#icon-annex"/></svg> <span>ANNEX</span></a></li>
618
+ <li><a href="jhilke.html"><svg class="doc-icon" aria-hidden="true"><use href="#icon-jhilke"/></svg> <span>JHILKE</span></a></li>
619
+ <li><a href="nakpak.html"><svg class="doc-icon" aria-hidden="true"><use href="#icon-nakpak"/></svg> <span>NAKPAK</span></a></li>
620
+ <li><a href="namche.html"><svg class="doc-icon" aria-hidden="true"><use href="#icon-namche"/></svg> <span>NAMCHE</span></a></li>
621
+ <li><a href="doko.html"><svg class="doc-icon" aria-hidden="true"><use href="#icon-doko"/></svg> <span>DOKO</span></a></li>
622
+ <li><a href="sherpa.html"><svg class="doc-icon" aria-hidden="true"><use href="#icon-sherpa"/></svg> <span>SHERPA</span></a></li>
623
+ <li><a href="mandala.html"><svg class="doc-icon" aria-hidden="true"><use href="#icon-mandala"/></svg> <span>MANDALA</span></a></li>
624
+ <li><a href="mantra.html"><svg class="doc-icon" aria-hidden="true"><use href="#icon-mantra"/></svg> <span>MANTRA</span></a></li>
625
+ <li><a href="gumba.html"><svg class="doc-icon" aria-hidden="true"><use href="#icon-gumba"/></svg> <span>GUMBA</span></a></li>
626
+ <li><a href="yurt.html"><svg class="doc-icon" aria-hidden="true"><use href="#icon-yurt"/></svg> <span>YURT</span></a></li>
627
+ <li><a href="katha.html"><svg class="doc-icon" aria-hidden="true"><use href="#icon-katha"/></svg> <span>KATHA</span></a></li>
628
+ <li><a href="vani.html"><svg class="doc-icon" aria-hidden="true"><use href="#icon-vani"/></svg> <span>VANI</span></a></li>
629
+ <li><a href="darshan.html"><svg class="doc-icon" aria-hidden="true"><use href="#icon-darshan"/></svg> <span>DARSHAN</span></a></li>
630
+ <li><a href="stupa.html"><svg class="doc-icon" aria-hidden="true"><use href="#icon-stupa"/></svg> <span>STUPA</span></a></li>
631
+ <li><a href="lama.html"><svg class="doc-icon" aria-hidden="true"><use href="#icon-lama"/></svg> <span>LAMA</span></a></li>
632
+ <li><a href="mani.html"><svg class="doc-icon" aria-hidden="true"><use href="#icon-mani"/></svg> <span>MANI</span></a></li>
633
+ <li><a href="karma.html"><svg class="doc-icon" aria-hidden="true"><use href="#icon-karma"/></svg> <span>KARMA</span></a></li>
634
+ <li><a href="tattva.html" class="active"><svg class="doc-icon" aria-hidden="true"><use href="#icon-tattva"/></svg> <span>TATTVA</span></a></li>
635
+ <li><a href="tribhuj.html"><svg class="doc-icon" aria-hidden="true"><use href="#icon-tribhuj"/></svg> <span>TRIBHUJ</span></a></li>
636
+ <li><a href="ypc27.html"><svg class="doc-icon" aria-hidden="true"><use href="#icon-ypc27"/></svg> <span>YPC-27</span></a></li>
637
+ <li><a href="sakshi.html"><svg class="doc-icon" aria-hidden="true"><use href="#icon-sakshi"/></svg> <span>SAKSHI</span></a></li>
638
+ <li><a href="geo-proof.html"><svg class="doc-icon" aria-hidden="true"><use href="#icon-pramaan"/></svg> <span>PRAMAAN</span></a></li>
639
+ <li><a href="trust-security.html"><svg class="doc-icon" aria-hidden="true"><use href="#icon-suraksha"/></svg> <span>SURAKSHA</span></a></li>
640
+ <li><a href="tivra.html"><svg class="doc-icon" aria-hidden="true"><use href="#icon-tivra"/></svg> <span>TIVRA</span></a></li>
641
+ <li><a href="prahari.html"><svg class="doc-icon" aria-hidden="true"><use href="#icon-prahari"/></svg> <span>PRAHARI</span></a></li>
642
+ <li><a href="dharma.html"><svg class="doc-icon" aria-hidden="true"><use href="#icon-dharma"/></svg> <span>DHARMA</span></a></li>
643
+ <li><a href="seva.html"><svg class="doc-icon" aria-hidden="true"><use href="#icon-seva"/></svg> <span>SEVA</span></a></li>
644
+ <li><a href="docs-bundle.html"><svg class="doc-icon" aria-hidden="true"><use href="#icon-granth"/></svg> <span>GRANTH</span></a></li>
645
+ <li><a href="api.html"><svg class="doc-icon" aria-hidden="true"><use href="#icon-api"/></svg> <span>API</span></a></li>
646
+ <li><a href="adapters.html"><svg class="doc-icon" aria-hidden="true"><use href="#icon-adapters"/></svg> <span>Adapters</span></a></li>
647
+ <li class="sidebar-section"><span><svg class="doc-icon" aria-hidden="true"><use href="#icon-rocket"/></svg> Applications</span></li>
648
+ <li><a href="yakapp.html"><svg class="doc-icon" aria-hidden="true"><use href="#icon-yakapp"/></svg> <span>YakApp</span></a></li>
649
+ <li><a href="c2c.html"><svg class="doc-icon" aria-hidden="true"><use href="#icon-c2c"/></svg> <span>C2C</span></a></li>
650
+ <li><a href="studio.html"><svg class="doc-icon" aria-hidden="true"><use href="#icon-studio"/></svg> <span>Studio</span></a></li>
651
+ <li class="sidebar-section"><span><svg class="doc-icon" aria-hidden="true"><use href="#icon-gear"/></svg> Infrastructure</span></li>
652
+ <li><a href="cli.html"><svg class="doc-icon" aria-hidden="true"><use href="#icon-terminal"/></svg> <span>CLI</span></a></li>
653
+ <li><a href="configuration.html"><svg class="doc-icon" aria-hidden="true"><use href="#icon-gear"/></svg> <span>Configuration</span></a></li>
654
+ <li><a href="mesh.html"><svg class="doc-icon" aria-hidden="true"><use href="#icon-mandala"/></svg> <span>Mesh Network</span></a></li>
655
+ <li><a href="time-sources.html"><svg class="doc-icon" aria-hidden="true"><use href="#icon-mani"/></svg> <span>Time Sources</span></a></li>
656
+ <li><a href="webserver.html"><svg class="doc-icon" aria-hidden="true"><use href="#icon-server"/></svg> <span>Web Server</span></a></li>
657
+ <li><a href="advanced-systems.html"><svg class="doc-icon" aria-hidden="true"><use href="#icon-tivra"/></svg> <span>Advanced Systems</span></a></li>
658
+ <li class="sidebar-section"><span><svg class="doc-icon" aria-hidden="true"><use href="#icon-book"/></svg> Tutorials</span></li>
659
+ <li><a href="gumba-tutorial.html"><svg class="doc-icon" aria-hidden="true"><use href="#icon-gumba"/></svg> <span>GUMBA Tutorial</span></a></li>
660
+ <li class="sidebar-section"><span><svg class="doc-icon" aria-hidden="true"><use href="#icon-quickref"/></svg> Reference</span></li>
661
+ <li><a href="quick-reference.html"><svg class="doc-icon" aria-hidden="true"><use href="#icon-quickref"/></svg> <span>Quick Ref</span></a></li>
662
+ </ul>
663
+ </nav>
664
+
665
+ <button class="sidebar-toggle" id="sidebarToggle" title="Toggle sidebar">
666
+ <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor">
667
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M11 19l-7-7 7-7m8 14l-7-7 7-7" />
668
+ </svg>
669
+ </button>
670
+
671
+ <!-- Mobile overlay for tap-to-close sidebar -->
672
+ <div class="sidebar-overlay" id="sidebarOverlay"></div>
673
+
674
+ <main class="docs-main" id="mainContent">
675
+
676
+ <div class="docs-content">
677
+ <!-- Page Header -->
678
+ <div class="flex items-center gap-3 mb-4">
679
+ <svg class="doc-icon hero-icon" aria-hidden="true"><use href="#icon-tattva"/></svg>
680
+ <div>
681
+ <div class="flex items-center gap-3">
682
+ <h1 class="text-4xl font-bold">TATTVA <span class="text-2xl text-mountain-400">तत्त्व</span></h1>
683
+ <span class="theme-badge text-xs px-2 py-1 rounded-full font-mono">v1.1.0</span>
684
+ </div>
685
+ <p class="theme-accent">Fundamental Truth Engine — Self-verifying distributed truth through mathematical proof</p>
686
+ </div>
687
+ </div>
688
+ <p class="text-xl text-mountain-300 mb-8">
689
+ The YAKMESH TATTVA System is the cryptographic foundation of network identity and verified truth.
690
+ Every node runs provably-correct code that independently arrives at the same essential truth.
691
+ </p>
692
+
693
+ <!-- Philosophy Callout -->
694
+ <div class="philosophy-quote rounded-xl p-6 mb-8">
695
+ <p class="text-lg text-purple-200 mb-2">
696
+ <strong class="theme-accent">"Code reveals tattva — the essential truth."</strong>
697
+ </p>
698
+ <p class="text-mountain-300">
699
+ Every node running the same provably-correct code will independently arrive at the same fundamental reality.
700
+ Mathematical inevitability replaces social trust. There is no authority — only verified truth.
701
+ </p>
702
+ </div>
703
+
704
+ <!-- iO Identity Obfuscation Warning -->
705
+ <div class="critical-warning rounded-xl p-6 mb-8">
706
+ <p class="font-semibold mb-2 text-red-400"><svg class="doc-icon inline-icon" aria-hidden="true"><use href="#icon-warning"/></svg> iO IDENTITY OBFUSCATION — CRITICAL SECURITY PRIMITIVE</p>
707
+ <p class="text-mountain-300 text-sm mb-4">
708
+ ALL user-facing and network-exposed identifiers <strong>MUST</strong> use the iO system.
709
+ <strong class="text-red-300">NEVER expose raw hashes</strong> in node IDs, API responses, or logs.
710
+ </p>
711
+ <pre class="language-javascript mb-4"><code>import { deriveNetworkName, deriveNetworkId } from './oracle/index.js';
712
+
713
+ // For human-readable names
714
+ const name = deriveNetworkName(hash, 3); // "qubit-lattice-prism"
715
+
716
+ // For short identifiers
717
+ const id = deriveNetworkId(hash); // "pq-a7x9"
718
+
719
+ // For verification phrases
720
+ const phrase = deriveVerificationPhrase(hash); // "quantum tiger mesa echo"</code></pre>
721
+ <p class="text-mountain-400 text-xs">
722
+ Raw hashes (e.g., "7f3a9b2c...") enable fingerprinting attacks, precomputation attacks, and correlation attacks.
723
+ See <code>oracle/network-identity.js</code> and SECURITY.md for details.
724
+ </p>
725
+ </div>
726
+
727
+ <!-- Quick Start -->
728
+ <h2 class="text-2xl font-bold mb-4" id="quick-start">Quick Start</h2>
729
+ <p class="text-mountain-300 mb-4">
730
+ Create a fully configured oracle system for your YAKMESH node:
731
+ </p>
732
+ <pre class="language-javascript mb-8"><code>import { createOracleSystem } from './oracle/index.js';
733
+
734
+ const system = createOracleSystem(nodeIdentity, options);
735
+
736
+ // Returns:
737
+ // {
738
+ // oracle, // ValidationOracle instance
739
+ // codeProof, // CodeProofProtocol instance
740
+ // consensus, // ConsensusEngine instance
741
+ // validate, // (type, content) => ValidationResult
742
+ // submit, // (type, content, metadata) => SubmissionResult
743
+ // generateChallenge,// (peerId) => Challenge
744
+ // verifyPeer, // (proof) => boolean
745
+ // getStats, // () => { oracle, consensus, codeProof }
746
+ // }
747
+
748
+ // Validate content
749
+ const result = system.validate('listing', contentData);
750
+
751
+ // Submit to consensus
752
+ const submission = system.submit('qcoa', certData, { signature, pubkey });
753
+
754
+ // Challenge a peer
755
+ const challenge = system.generateChallenge(peerId);
756
+
757
+ // Verify peer proof
758
+ const verified = system.verifyPeer(peerProof);</code></pre>
759
+
760
+ <!-- Core Exports Section -->
761
+ <h2 class="text-2xl font-bold mb-4" id="core-exports">Core Exports</h2>
762
+ <p class="text-mountain-300 mb-6">
763
+ The oracle system exports these core components from <code class="bg-mountain-800 px-2 py-1 rounded theme-accent">oracle/index.js</code>:
764
+ </p>
765
+
766
+ <div class="overflow-x-auto mb-8">
767
+ <table class="oracle-table rounded-lg overflow-hidden">
768
+ <thead>
769
+ <tr>
770
+ <th>Export</th>
771
+ <th>Source</th>
772
+ <th>Description</th>
773
+ </tr>
774
+ </thead>
775
+ <tbody>
776
+ <tr>
777
+ <td><code>ValidationOracle</code></td>
778
+ <td>validation-oracle-hardened.js</td>
779
+ <td>Self-verifying validation engine</td>
780
+ </tr>
781
+ <tr>
782
+ <td><code>ValidationResult</code></td>
783
+ <td>validation-oracle-hardened.js</td>
784
+ <td>Immutable validation result type</td>
785
+ </tr>
786
+ <tr>
787
+ <td><code>getOracle</code></td>
788
+ <td>validation-oracle-hardened.js</td>
789
+ <td>Singleton oracle accessor</td>
790
+ </tr>
791
+ <tr>
792
+ <td><code>contentHash</code></td>
793
+ <td>validation-oracle-hardened.js</td>
794
+ <td>SHA3-256 content addressing</td>
795
+ </tr>
796
+ <tr>
797
+ <td><code>deterministicStringify</code></td>
798
+ <td>validation-oracle-hardened.js</td>
799
+ <td>Canonical JSON serialization</td>
800
+ </tr>
801
+ <tr>
802
+ <td><code>CodeProofProtocol</code></td>
803
+ <td>code-proof-protocol.js</td>
804
+ <td>Peer verification protocol</td>
805
+ </tr>
806
+ <tr>
807
+ <td><code>ProofState</code></td>
808
+ <td>code-proof-protocol.js</td>
809
+ <td>Challenge-response states</td>
810
+ </tr>
811
+ <tr>
812
+ <td><code>mutualVerification</code></td>
813
+ <td>code-proof-protocol.js</td>
814
+ <td>Bi-directional verification</td>
815
+ </tr>
816
+ <tr>
817
+ <td><code>ConsensusEngine</code></td>
818
+ <td>consensus-engine.js</td>
819
+ <td>Distributed consensus mechanism</td>
820
+ </tr>
821
+ <tr>
822
+ <td><code>ContentState</code></td>
823
+ <td>consensus-engine.js</td>
824
+ <td>Content consensus states</td>
825
+ </tr>
826
+ <tr>
827
+ <td><code>ModuleSealer</code></td>
828
+ <td>module-sealer.js</td>
829
+ <td>Cryptographic module sealing</td>
830
+ </tr>
831
+ <tr>
832
+ <td><code>SealedModule</code></td>
833
+ <td>module-sealer.js</td>
834
+ <td>Sealed module structure</td>
835
+ </tr>
836
+ <tr>
837
+ <td><code>GenesisNetwork</code></td>
838
+ <td>genesis-network.js</td>
839
+ <td>Code-hash network identity</td>
840
+ </tr>
841
+ <tr>
842
+ <td><code>GenesisNetworkV2</code></td>
843
+ <td>genesis-network-v2.js</td>
844
+ <td>iO-obfuscated version</td>
845
+ </tr>
846
+ <tr>
847
+ <td><code>NetworkIdentity</code></td>
848
+ <td>network-identity.js</td>
849
+ <td>iO identity derivation</td>
850
+ </tr>
851
+ <tr>
852
+ <td><code>deriveNetworkName</code></td>
853
+ <td>network-identity.js</td>
854
+ <td>Human-readable name derivation</td>
855
+ </tr>
856
+ <tr>
857
+ <td><code>deriveNetworkId</code></td>
858
+ <td>network-identity.js</td>
859
+ <td>Short ID derivation</td>
860
+ </tr>
861
+ <tr>
862
+ <td><code>CodebaseLock</code></td>
863
+ <td>codebase-lock.js</td>
864
+ <td>Runtime source protection</td>
865
+ </tr>
866
+ <tr>
867
+ <td><code>lockCodebase</code></td>
868
+ <td>codebase-lock.js</td>
869
+ <td>Lock source files</td>
870
+ </tr>
871
+ <tr>
872
+ <td><code>unlockCodebase</code></td>
873
+ <td>codebase-lock.js</td>
874
+ <td>Unlock source files</td>
875
+ </tr>
876
+ </tbody>
877
+ </table>
878
+ </div>
879
+
880
+ <!-- Ternary ValidationResult -->
881
+ <h2 class="text-2xl font-bold mb-4" id="ternary">Ternary ValidationResult <span class="theme-badge text-xs px-2 py-1 rounded-full">v2.8.0</span></h2>
882
+ <p class="text-mountain-300 mb-6">
883
+ As of v2.8.0, TATTVA's ValidationResult uses balanced ternary internally, mapping naturally to
884
+ VALID (+1), INVALID (−1), and PENDING (0). This enables mathematical consensus via
885
+ <a href="tribhuj.html" class="theme-accent">TRIBHUJ</a> operations.
886
+ </p>
887
+
888
+ <div class="module-card rounded-xl p-6 mb-6">
889
+ <div class="flex items-center gap-3 mb-4">
890
+ <svg class="doc-icon card-icon" aria-hidden="true"><use href="#icon-tribhuj"/></svg>
891
+ <h3 class="text-xl font-bold text-purple-300">Ternary Mapping</h3>
892
+ </div>
893
+ <div class="grid grid-cols-3 gap-4 text-center mb-4">
894
+ <div class="bg-red-900/30 rounded-lg p-4">
895
+ <div class="text-3xl font-mono text-red-400">T</div>
896
+ <div class="text-sm text-mountain-300">INVALID (−1)</div>
897
+ </div>
898
+ <div class="bg-gray-700/50 rounded-lg p-4">
899
+ <div class="text-3xl font-mono text-gray-400">0</div>
900
+ <div class="text-sm text-mountain-300">PENDING (0)</div>
901
+ </div>
902
+ <div class="bg-green-900/30 rounded-lg p-4">
903
+ <div class="text-3xl font-mono text-green-400">1</div>
904
+ <div class="text-sm text-mountain-300">VALID (+1)</div>
905
+ </div>
906
+ </div>
907
+ <pre class="language-javascript mb-4"><code>import { ValidationResult, toTrit, fromTrit } from './oracle/validation-oracle-hardened.js';
908
+ import { Trit } from './oracle/tribhuj.js';
909
+
910
+ // Convert to trit for mathematical operations
911
+ const result = oracle.validateListing(data);
912
+ const trit = toTrit(result); // → Trit.POS, Trit.NEG, or Trit.ZERO
913
+
914
+ // Ternary consensus across multiple validations
915
+ import { ternaryConsensus } from './oracle/tribhuj.js';
916
+ const multiResults = [result1, result2, result3].map(toTrit);
917
+ const consensusTrit = ternaryConsensus(multiResults);
918
+
919
+ // Convert back to ValidationResult
920
+ const consensusResult = fromTrit(consensusTrit); // → VALID, INVALID, or PENDING</code></pre>
921
+ <p class="text-sm text-mountain-400">
922
+ See <a href="tribhuj.html" class="theme-accent">TRIBHUJ</a> for full balanced ternary math,
923
+ and <a href="lama.html" class="theme-accent">LAMA</a> for ternary consensus in practice.
924
+ </p>
925
+ </div>
926
+
927
+ <!-- Module Cards -->
928
+ <h2 class="text-2xl font-bold mb-4" id="modules">Oracle Modules</h2>
929
+ <p class="text-mountain-300 mb-6">
930
+ The oracle system is composed of specialized modules, each handling a critical aspect of distributed trust.
931
+ </p>
932
+
933
+ <div class="space-y-4 mb-8">
934
+ <!-- Validation Oracle -->
935
+ <div class="module-card-validation rounded-xl p-5">
936
+ <div class="flex items-center gap-3 mb-3">
937
+ <svg class="doc-icon card-icon" aria-hidden="true"><use href="#icon-lama"/></svg>
938
+ <div>
939
+ <h3 class="text-xl font-bold text-purple-300">ValidationOracle</h3>
940
+ <span class="text-sm text-purple-400">validation-oracle-hardened.js</span>
941
+ </div>
942
+ </div>
943
+ <p class="text-mountain-300 text-sm mb-3">
944
+ Security-hardened self-verifying oracle with protection against runtime tampering,
945
+ prototype pollution, and race conditions. The cryptographic foundation of network identity.
946
+ </p>
947
+ <pre class="language-javascript mb-3"><code>import { getOracle, contentHash, ValidationResult } from './oracle/index.js';
948
+
949
+ const oracle = getOracle();
950
+ const result = oracle.validateListing(listingData);
951
+ const hash = contentHash(content); // SHA3-256 content address</code></pre>
952
+ <div class="flex flex-wrap gap-2">
953
+ <span class="text-xs bg-purple-900/50 text-purple-300 px-2 py-1 rounded">SHA3-256</span>
954
+ <span class="text-xs bg-purple-900/50 text-purple-300 px-2 py-1 rounded">ML-DSA65</span>
955
+ <span class="text-xs bg-purple-900/50 text-purple-300 px-2 py-1 rounded">Object.freeze</span>
956
+ <span class="text-xs bg-purple-900/50 text-purple-300 px-2 py-1 rounded">Null Prototype</span>
957
+ </div>
958
+ </div>
959
+
960
+ <!-- Code Proof Protocol -->
961
+ <div class="module-card-codeproof rounded-xl p-5">
962
+ <div class="flex items-center gap-3 mb-3">
963
+ <svg class="doc-icon card-icon" aria-hidden="true"><use href="#icon-lock"/></svg>
964
+ <div>
965
+ <h3 class="text-xl font-bold text-blue-300">CodeProofProtocol</h3>
966
+ <span class="text-sm text-blue-400">code-proof-protocol.js</span>
967
+ </div>
968
+ </div>
969
+ <p class="text-mountain-300 text-sm mb-3">
970
+ Challenge-response protocol for nodes to verify they are running identical validation code.
971
+ Includes phase-modulated challenges (Star Trek TNG inspired) for replay protection.
972
+ </p>
973
+ <pre class="language-javascript mb-3"><code>import { CodeProofProtocol, ProofState } from './oracle/index.js';
974
+
975
+ const codeProof = new CodeProofProtocol(nodeIdentity);
976
+ const challenge = codeProof.generateChallenge(peerId);
977
+ // ProofState: PENDING, VERIFIED, FAILED, TIMEOUT</code></pre>
978
+ <div class="flex flex-wrap gap-2">
979
+ <span class="text-xs bg-blue-900/50 text-blue-300 px-2 py-1 rounded">Challenge-Response</span>
980
+ <span class="text-xs bg-blue-900/50 text-blue-300 px-2 py-1 rounded">Phase Modulation</span>
981
+ <span class="text-xs bg-blue-900/50 text-blue-300 px-2 py-1 rounded">Outlier Detection</span>
982
+ </div>
983
+ </div>
984
+
985
+ <!-- Consensus Engine -->
986
+ <div class="module-card-consensus rounded-xl p-5">
987
+ <div class="flex items-center gap-3 mb-3">
988
+ <svg class="doc-icon card-icon" aria-hidden="true"><use href="#icon-bolt"/></svg>
989
+ <div>
990
+ <h3 class="text-xl font-bold text-green-300">ConsensusEngine</h3>
991
+ <span class="text-sm text-green-400">consensus-engine.js</span>
992
+ </div>
993
+ </div>
994
+ <p class="text-mountain-300 text-sm mb-3">
995
+ Distributed consensus where all nodes independently arrive at the same truth.
996
+ Features deterministic conflict resolution (no voting needed), content-addressed storage,
997
+ and automatic outlier rejection.
998
+ </p>
999
+ <pre class="language-javascript mb-3"><code>import { ConsensusEngine, ContentState } from './oracle/index.js';
1000
+
1001
+ const consensus = new ConsensusEngine(nodeIdentity, { minAttestations: 1 });
1002
+ const result = consensus.submitContent('listing', content, metadata);
1003
+ // ContentState: PENDING, VALIDATED, CONSENSUS, REJECTED, CONFLICT</code></pre>
1004
+ <div class="flex flex-wrap gap-2">
1005
+ <span class="text-xs bg-green-900/50 text-green-300 px-2 py-1 rounded">Deterministic</span>
1006
+ <span class="text-xs bg-green-900/50 text-green-300 px-2 py-1 rounded">Content-Addressed</span>
1007
+ <span class="text-xs bg-green-900/50 text-green-300 px-2 py-1 rounded">No Voting</span>
1008
+ </div>
1009
+ </div>
1010
+
1011
+ <!-- Module Sealer -->
1012
+ <div class="module-card-sealer rounded-xl p-5">
1013
+ <div class="flex items-center gap-3 mb-3">
1014
+ <svg class="doc-icon card-icon" aria-hidden="true"><use href="#icon-scroll"/></svg>
1015
+ <div>
1016
+ <h3 class="text-xl font-bold text-yellow-300">ModuleSealer</h3>
1017
+ <span class="text-sm text-yellow-400">module-sealer.js</span>
1018
+ </div>
1019
+ </div>
1020
+ <p class="text-mountain-300 text-sm mb-3">
1021
+ Creates cryptographic seals binding source code hash, behavior fingerprint, function hashes,
1022
+ genesis timestamp, and creator signatures. Sealed modules are provably authentic and tamper-evident.
1023
+ </p>
1024
+ <pre class="language-javascript mb-3"><code>import { ModuleSealer, SealedModule } from './oracle/index.js';
1025
+
1026
+ const sealer = new ModuleSealer();
1027
+ const sealed = sealer.sealModule(sourceCode);
1028
+ const isValid = sealed.verifySealIntegrity();</code></pre>
1029
+ <div class="flex flex-wrap gap-2">
1030
+ <span class="text-xs bg-yellow-900/50 text-yellow-300 px-2 py-1 rounded">Tamper-Evident</span>
1031
+ <span class="text-xs bg-yellow-900/50 text-yellow-300 px-2 py-1 rounded">Multi-Attestation</span>
1032
+ <span class="text-xs bg-yellow-900/50 text-yellow-300 px-2 py-1 rounded">Behavior Fingerprint</span>
1033
+ </div>
1034
+ </div>
1035
+
1036
+ <!-- Network Identity -->
1037
+ <div class="module-card-identity rounded-xl p-5">
1038
+ <div class="flex items-center gap-3 mb-3">
1039
+ <svg class="doc-icon card-icon" aria-hidden="true"><use href="#icon-masks"/></svg>
1040
+ <div>
1041
+ <h3 class="text-xl font-bold text-pink-300">NetworkIdentity</h3>
1042
+ <span class="text-sm text-pink-400">network-identity.js</span>
1043
+ </div>
1044
+ </div>
1045
+ <p class="text-mountain-300 text-sm mb-3">
1046
+ iO-inspired (indistinguishability obfuscation) identity derivation. Derives human-readable,
1047
+ deterministic, but opaque identifiers. Uses a 256-word quantum/crypto themed wordlist.
1048
+ </p>
1049
+ <pre class="language-javascript mb-3"><code>import {
1050
+ deriveNetworkName,
1051
+ deriveNetworkId,
1052
+ deriveVerificationPhrase,
1053
+ QUANTUM_WORDLIST
1054
+ } from './oracle/index.js';
1055
+
1056
+ deriveNetworkName(hash, 3); // "qubit-lattice-prism"
1057
+ deriveNetworkId(hash); // "pq-a7x9"
1058
+ deriveVerificationPhrase(hash); // "quantum tiger mesa echo"</code></pre>
1059
+ <div class="flex flex-wrap gap-2">
1060
+ <span class="text-xs bg-pink-900/50 text-pink-300 px-2 py-1 rounded">iO Obfuscation</span>
1061
+ <span class="text-xs bg-pink-900/50 text-pink-300 px-2 py-1 rounded">Deterministic</span>
1062
+ <span class="text-xs bg-pink-900/50 text-pink-300 px-2 py-1 rounded">One-Way</span>
1063
+ <span class="text-xs bg-pink-900/50 text-pink-300 px-2 py-1 rounded">256-Word List</span>
1064
+ </div>
1065
+ </div>
1066
+
1067
+ <!-- Genesis Network -->
1068
+ <div class="module-card-genesis rounded-xl p-5">
1069
+ <div class="flex items-center gap-3 mb-3">
1070
+ <svg class="doc-icon card-icon" aria-hidden="true"><use href="#icon-cosmos"/></svg>
1071
+ <div>
1072
+ <h3 class="text-xl font-bold text-indigo-300">GenesisNetwork</h3>
1073
+ <span class="text-sm text-indigo-400">genesis-network.js / genesis-network-v2.js</span>
1074
+ </div>
1075
+ </div>
1076
+ <p class="text-mountain-300 text-sm mb-3">
1077
+ Network identity derived purely from code hash. Same code → Same hash → Same network.
1078
+ No permission needed. No governance needed. Physics enforces the boundary.
1079
+ </p>
1080
+ <pre class="language-javascript mb-3"><code>import {
1081
+ createGenesisNetwork, // v1: Direct hash
1082
+ createGenesisNetworkV2 // v2: iO obfuscated
1083
+ } from './oracle/index.js';
1084
+
1085
+ const network = createGenesisNetwork(oracleHash);
1086
+ const compatible = network.isCompatible(peerHash);
1087
+ network.registerPeer(peerId, peerHash);</code></pre>
1088
+ <div class="flex flex-wrap gap-2">
1089
+ <span class="text-xs bg-indigo-900/50 text-indigo-300 px-2 py-1 rounded">Code = Identity</span>
1090
+ <span class="text-xs bg-indigo-900/50 text-indigo-300 px-2 py-1 rounded">No Authority</span>
1091
+ <span class="text-xs bg-indigo-900/50 text-indigo-300 px-2 py-1 rounded">Upgrade Proposals</span>
1092
+ </div>
1093
+ </div>
1094
+
1095
+ <!-- Codebase Lock -->
1096
+ <div class="module-card-lock rounded-xl p-5">
1097
+ <div class="flex items-center gap-3 mb-3">
1098
+ <svg class="doc-icon card-icon" aria-hidden="true"><use href="#icon-lock"/></svg>
1099
+ <div>
1100
+ <h3 class="text-xl font-bold text-red-300">CodebaseLock</h3>
1101
+ <span class="text-sm text-red-400">codebase-lock.js</span>
1102
+ </div>
1103
+ </div>
1104
+ <p class="text-mountain-300 text-sm mb-3">
1105
+ Prevents source code modification during runtime by opening exclusive file handles.
1106
+ Critical security measure for the Code Proof Protocol. Platform-aware (Windows/Unix).
1107
+ </p>
1108
+ <pre class="language-javascript mb-3"><code>import { lockCodebase, unlockCodebase, setupUnlockOnExit } from './oracle/index.js';
1109
+
1110
+ // Lock all source files
1111
+ const lockResult = lockCodebase();
1112
+ console.log(`Locked ${lockResult.fileCount} files`);
1113
+
1114
+ // Unlock on exit
1115
+ setupUnlockOnExit();
1116
+
1117
+ // Manual unlock
1118
+ unlockCodebase();</code></pre>
1119
+ <div class="flex flex-wrap gap-2">
1120
+ <span class="text-xs bg-red-900/50 text-red-300 px-2 py-1 rounded">Exclusive Handles</span>
1121
+ <span class="text-xs bg-red-900/50 text-red-300 px-2 py-1 rounded">Windows Sharing</span>
1122
+ <span class="text-xs bg-red-900/50 text-red-300 px-2 py-1 rounded">Unix Permissions</span>
1123
+ </div>
1124
+ </div>
1125
+ </div>
1126
+
1127
+ <!-- Files Reference -->
1128
+ <h2 class="text-2xl font-bold mb-4" id="files">Oracle Directory Files</h2>
1129
+ <div class="overflow-x-auto mb-8">
1130
+ <table class="oracle-table rounded-lg overflow-hidden">
1131
+ <thead>
1132
+ <tr>
1133
+ <th>File</th>
1134
+ <th>Purpose</th>
1135
+ <th>Key Exports</th>
1136
+ </tr>
1137
+ </thead>
1138
+ <tbody>
1139
+ <tr>
1140
+ <td><code>index.js</code></td>
1141
+ <td>Main entry point, aggregates all exports</td>
1142
+ <td>createOracleSystem, VERSION</td>
1143
+ </tr>
1144
+ <tr>
1145
+ <td><code>validation-oracle-hardened.js</code></td>
1146
+ <td>Hardened validation with security protections</td>
1147
+ <td>ValidationOracle, getOracle, contentHash</td>
1148
+ </tr>
1149
+ <tr>
1150
+ <td><code>code-proof-protocol.js</code></td>
1151
+ <td>Challenge-response peer verification</td>
1152
+ <td>CodeProofProtocol, ProofState</td>
1153
+ </tr>
1154
+ <tr>
1155
+ <td><code>consensus-engine.js</code></td>
1156
+ <td>Distributed consensus mechanism</td>
1157
+ <td>ConsensusEngine, ContentState</td>
1158
+ </tr>
1159
+ <tr>
1160
+ <td><code>module-sealer.js</code></td>
1161
+ <td>Cryptographic module sealing</td>
1162
+ <td>ModuleSealer, SealedModule</td>
1163
+ </tr>
1164
+ <tr>
1165
+ <td><code>genesis-network.js</code></td>
1166
+ <td>Code-hash network identity (v1)</td>
1167
+ <td>GenesisNetwork, createGenesisNetwork</td>
1168
+ </tr>
1169
+ <tr>
1170
+ <td><code>genesis-network-v2.js</code></td>
1171
+ <td>iO-obfuscated version (v2)</td>
1172
+ <td>GenesisNetworkV2, createGenesisNetworkV2</td>
1173
+ </tr>
1174
+ <tr>
1175
+ <td><code>network-identity.js</code></td>
1176
+ <td>iO identity derivation system</td>
1177
+ <td>deriveNetworkName, deriveNetworkId</td>
1178
+ </tr>
1179
+ <tr>
1180
+ <td><code>codebase-lock.js</code></td>
1181
+ <td>Runtime source file protection</td>
1182
+ <td>CodebaseLock, lockCodebase, unlockCodebase</td>
1183
+ </tr>
1184
+ <tr>
1185
+ <td><code>time-source.js</code></td>
1186
+ <td>Precision time source detection</td>
1187
+ <td>TimeSourceDetector, TimeTrustLevel</td>
1188
+ </tr>
1189
+ <tr>
1190
+ <td><code>phase-epoch.js</code></td>
1191
+ <td>Phase modulation for rotating security</td>
1192
+ <td>getCurrentEpoch, createPhasedChallenge</td>
1193
+ </tr>
1194
+ </tbody>
1195
+ </table>
1196
+ </div>
1197
+
1198
+ <!-- Security Properties -->
1199
+ <h2 class="text-2xl font-bold mb-4" id="security">Security Properties</h2>
1200
+ <div class="theme-callout rounded-xl p-6 mb-8 border">
1201
+ <p class="font-semibold mb-4 theme-accent"><svg class="doc-icon inline-icon" width="24" height="24" aria-hidden="true"><use href="#icon-shield"/></svg> Identity Obfuscation (iO) Properties</p>
1202
+ <ul class="text-mountain-300 text-sm space-y-2">
1203
+ <li>• <strong>Deterministic:</strong> Same hash → Same name (always reproducible)</li>
1204
+ <li>• <strong>One-way:</strong> Cannot reverse name → hash (preimage resistant)</li>
1205
+ <li>• <strong>Collision-resistant:</strong> Different hashes → Different names</li>
1206
+ <li>• <strong>Human-memorable:</strong> Easy to verify verbally</li>
1207
+ <li>• <strong>Fingerprint-safe:</strong> Cannot fingerprint nodes by hash patterns</li>
1208
+ </ul>
1209
+ </div>
1210
+
1211
+ <h3 class="text-xl font-bold mb-3">Where to Use iO</h3>
1212
+ <div class="grid md:grid-cols-2 gap-4 mb-8">
1213
+ <div class="bg-green-900/20 border border-green-600 rounded-xl p-4">
1214
+ <p class="font-semibold text-green-400 mb-2"><svg class="doc-icon inline-icon" aria-hidden="true"><use href="#icon-check"/></svg> USE iO For:</p>
1215
+ <ul class="text-mountain-300 text-sm space-y-1">
1216
+ <li>• Node IDs (identity/node-key.js)</li>
1217
+ <li>• Network names (genesis-network-v2.js)</li>
1218
+ <li>• DOKO identity IDs</li>
1219
+ <li>• Any user-facing identifier</li>
1220
+ <li>• Network-exposed identifiers</li>
1221
+ <li>• API responses, logs</li>
1222
+ </ul>
1223
+ </div>
1224
+ <div class="bg-red-900/20 border border-red-600 rounded-xl p-4">
1225
+ <p class="font-semibold text-red-400 mb-2"><svg class="doc-icon inline-icon" width="24" height="24" aria-hidden="true"><use href="#icon-warning"/></svg> DO NOT USE iO For:</p>
1226
+ <ul class="text-mountain-300 text-sm space-y-1">
1227
+ <li>• Content hashes (content's address by design)</li>
1228
+ <li>• Internal DHT keys (lookup efficiency)</li>
1229
+ <li>• Signature verification (needs original hash)</li>
1230
+ <li>• Cryptographic operations</li>
1231
+ </ul>
1232
+ </div>
1233
+ </div>
1234
+
1235
+ <!-- Quantum Wordlist -->
1236
+ <h2 class="text-2xl font-bold mb-4" id="wordlist">QUANTUM_WORDLIST</h2>
1237
+ <p class="text-mountain-300 mb-4">
1238
+ The identity system uses a 256-word quantum/crypto themed wordlist curated for uniqueness,
1239
+ pronounceability, and thematic consistency. Categories include:
1240
+ </p>
1241
+ <div class="grid md:grid-cols-2 lg:grid-cols-4 gap-4 mb-8">
1242
+ <div class="bg-mountain-800 rounded-lg p-4">
1243
+ <p class="font-semibold text-purple-400 mb-2"><svg class="doc-icon inline-icon" aria-hidden="true"><use href="#icon-tattva"/></svg> Quantum Physics (64)</p>
1244
+ <p class="text-xs text-mountain-400">qubit, photon, hadron, lepton, boson, fermion, entangle, superpose...</p>
1245
+ </div>
1246
+ <div class="bg-mountain-800 rounded-lg p-4">
1247
+ <p class="font-semibold text-blue-400 mb-2"><svg class="doc-icon inline-icon" width="24" height="24" aria-hidden="true"><use href="#icon-lock"/></svg> Cryptography (64)</p>
1248
+ <p class="text-xs text-mountain-400">cipher, lattice, merkle, kyber, falcon, sphincs, dilith, isogeny...</p>
1249
+ </div>
1250
+ <div class="bg-mountain-800 rounded-lg p-4">
1251
+ <p class="font-semibold text-green-400 mb-2"><svg class="doc-icon inline-icon" width="24" height="24" aria-hidden="true"><use href="#icon-mandala"/></svg> Network/Mesh (64)</p>
1252
+ <p class="text-xs text-mountain-400">node, edge, vertex, graph, mesh, torus, manifold, simplex...</p>
1253
+ </div>
1254
+ <div class="bg-mountain-800 rounded-lg p-4">
1255
+ <p class="font-semibold text-yellow-400 mb-2"><svg class="doc-icon inline-icon" width="24" height="24" aria-hidden="true"><use href="#icon-gem"/></svg> Elements/Materials (64)</p>
1256
+ <p class="text-xs text-mountain-400">crystal, prism, lens, fiber, resonator, graphene, topologic...</p>
1257
+ </div>
1258
+ </div>
1259
+
1260
+ <!-- Next Steps -->
1261
+ <div class="bg-mountain-800 border theme-border rounded-xl p-6 mt-8">
1262
+ <h3 class="text-lg font-semibold mb-4">Related Documentation</h3>
1263
+ <ul class="space-y-3 text-mountain-300">
1264
+ <li class="flex items-center gap-2">
1265
+ <svg class="doc-icon inline-icon" aria-hidden="true"><use href="#icon-mani"/></svg>
1266
+ <a href="time-sources.html" class="theme-accent theme-accent-hover">Time Sources</a>
1267
+ <span class="text-mountain-400 text-sm">— Precision time synchronization</span>
1268
+ </li>
1269
+ <li class="flex items-center gap-2">
1270
+ <svg class="doc-icon inline-icon" aria-hidden="true"><use href="#icon-suraksha"/></svg>
1271
+ <a href="trust-security.html" class="theme-accent theme-accent-hover">SURAKSHA</a>
1272
+ <span class="text-mountain-400 text-sm">— Trust scoring and verification</span>
1273
+ </li>
1274
+ <li class="flex items-center gap-2">
1275
+ <svg class="doc-icon inline-icon" aria-hidden="true"><use href="#icon-mandala"/></svg>
1276
+ <a href="mandala.html" class="theme-accent theme-accent-hover">MANDALA (Mesh)</a>
1277
+ <span class="text-mountain-400 text-sm">— Peer coordination and routing</span>
1278
+ </li>
1279
+ <li class="flex items-center gap-2">
1280
+ <svg class="doc-icon inline-icon" aria-hidden="true"><use href="#icon-doko"/></svg>
1281
+ <a href="doko.html" class="theme-accent theme-accent-hover">DOKO Identity</a>
1282
+ <span class="text-mountain-400 text-sm">— Decentralized identity system</span>
1283
+ </li>
1284
+ <li class="flex items-center gap-2">
1285
+ <svg class="doc-icon inline-icon" aria-hidden="true"><use href="#icon-gear"/></svg>
1286
+ <a href="configuration.html" class="theme-accent theme-accent-hover">Configuration</a>
1287
+ <span class="text-mountain-400 text-sm">— Oracle configuration options</span>
1288
+ </li>
1289
+ </ul>
1290
+ </div>
1291
+
1292
+ <!-- Journey Navigation -->
1293
+ <div class="border-t border-mountain-700 mt-12 pt-8">
1294
+ <h2 class="text-xl font-bold mb-6">Continue the Journey</h2>
1295
+ <div class="flex flex-col sm:flex-row gap-4">
1296
+ <a href="karma.html" class="flex-1 block bg-mountain-800 border border-mountain-700 rounded-xl p-4 hover:border-theme-accent transition group">
1297
+ <div class="text-xs text-mountain-400 mb-1">← Previous</div>
1298
+ <div class="flex items-center gap-2">
1299
+ <svg class="doc-icon journey-icon" aria-hidden="true"><use href="#icon-karma"/></svg>
1300
+ <span class="font-semibold group-hover:text-theme-accent">KARMA</span>
1301
+ </div>
1302
+ <p class="text-mountain-400 text-sm mt-1">Reputation system</p>
1303
+ </a>
1304
+ <a href="tribhuj.html" class="flex-1 block bg-mountain-800 border border-theme-primary rounded-xl p-4 hover:border-theme-accent transition group">
1305
+ <div class="text-xs text-mountain-400 mb-1">Next →</div>
1306
+ <div class="flex items-center gap-2">
1307
+ <svg class="doc-icon journey-icon" aria-hidden="true"><use href="#icon-tribhuj"/></svg>
1308
+ <span class="font-semibold group-hover:text-theme-accent">TRIBHUJ</span>
1309
+ </div>
1310
+ <p class="text-mountain-400 text-sm mt-1">Triangle verification</p>
1311
+ </a>
1312
+ </div>
1313
+ </div>
1314
+ </main>
1315
+
1316
+ <footer class="docs-footer">
1317
+ <p>© 2026 YAKMESH™</p>
1318
+ </footer><!-- Scripts -->
1319
+ <script src="prism.min.js" defer></script>
1320
+ <script src="prism-javascript.min.js" defer></script>
1321
+ <script src="prism-bash.min.js" defer></script>
1322
+ <script src="prism-json.min.js" defer></script>
1323
+ <script src="docs.js" defer></script>
1324
+
1325
+
1326
+ </body>
1327
+ </html>
1328
+
1329
+
1330
+
1331
+
1332
+