shieldcortex 2.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 (377) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +282 -0
  3. package/dashboard/components.json +22 -0
  4. package/dashboard/eslint.config.mjs +42 -0
  5. package/dashboard/next.config.ts +7 -0
  6. package/dashboard/package-lock.json +8053 -0
  7. package/dashboard/package.json +44 -0
  8. package/dashboard/postcss.config.mjs +7 -0
  9. package/dashboard/public/file.svg +1 -0
  10. package/dashboard/public/globe.svg +1 -0
  11. package/dashboard/public/next.svg +1 -0
  12. package/dashboard/public/vercel.svg +1 -0
  13. package/dashboard/public/window.svg +1 -0
  14. package/dashboard/scripts/ensure-api.mjs +76 -0
  15. package/dashboard/src/app/error.tsx +49 -0
  16. package/dashboard/src/app/favicon.ico +0 -0
  17. package/dashboard/src/app/globals.css +130 -0
  18. package/dashboard/src/app/layout.tsx +35 -0
  19. package/dashboard/src/app/page.tsx +364 -0
  20. package/dashboard/src/components/Providers.tsx +27 -0
  21. package/dashboard/src/components/brain/ActivityPulseSystem.tsx +229 -0
  22. package/dashboard/src/components/brain/BrainMesh.tsx +133 -0
  23. package/dashboard/src/components/brain/BrainRegions.tsx +254 -0
  24. package/dashboard/src/components/brain/BrainScene.tsx +255 -0
  25. package/dashboard/src/components/brain/CategoryLabels.tsx +103 -0
  26. package/dashboard/src/components/brain/CoreSphere.tsx +215 -0
  27. package/dashboard/src/components/brain/DataFlowParticles.tsx +123 -0
  28. package/dashboard/src/components/brain/DataStreamRings.tsx +161 -0
  29. package/dashboard/src/components/brain/ElectronFlow.tsx +323 -0
  30. package/dashboard/src/components/brain/HolographicGrid.tsx +235 -0
  31. package/dashboard/src/components/brain/MemoryLinks.tsx +271 -0
  32. package/dashboard/src/components/brain/MemoryNode.tsx +245 -0
  33. package/dashboard/src/components/brain/NeuralPathways.tsx +441 -0
  34. package/dashboard/src/components/brain/SynapseNodes.tsx +312 -0
  35. package/dashboard/src/components/brain/TimelineControls.tsx +205 -0
  36. package/dashboard/src/components/chip/ChipScene.tsx +497 -0
  37. package/dashboard/src/components/chip/ChipSubstrate.tsx +238 -0
  38. package/dashboard/src/components/chip/CortexCore.tsx +210 -0
  39. package/dashboard/src/components/chip/DataBus.tsx +416 -0
  40. package/dashboard/src/components/chip/MemoryCell.tsx +225 -0
  41. package/dashboard/src/components/chip/MemoryGrid.tsx +328 -0
  42. package/dashboard/src/components/chip/QuantumCell.tsx +316 -0
  43. package/dashboard/src/components/chip/SectionLabel.tsx +113 -0
  44. package/dashboard/src/components/chip/index.ts +14 -0
  45. package/dashboard/src/components/controls/ControlPanel.tsx +106 -0
  46. package/dashboard/src/components/controls/VersionPanel.tsx +185 -0
  47. package/dashboard/src/components/dashboard/StatsPanel.tsx +164 -0
  48. package/dashboard/src/components/debug/ActivityLog.tsx +250 -0
  49. package/dashboard/src/components/debug/DebugPanel.tsx +101 -0
  50. package/dashboard/src/components/debug/QueryTester.tsx +192 -0
  51. package/dashboard/src/components/debug/RelationshipGraph.tsx +403 -0
  52. package/dashboard/src/components/debug/SqlConsole.tsx +319 -0
  53. package/dashboard/src/components/graph/KnowledgeGraph.tsx +230 -0
  54. package/dashboard/src/components/graph/OntologyGraph.tsx +631 -0
  55. package/dashboard/src/components/insights/ActivityHeatmap.tsx +131 -0
  56. package/dashboard/src/components/insights/InsightsView.tsx +46 -0
  57. package/dashboard/src/components/insights/KnowledgeMapPanel.tsx +80 -0
  58. package/dashboard/src/components/insights/QualityPanel.tsx +116 -0
  59. package/dashboard/src/components/memories/MemoriesView.tsx +150 -0
  60. package/dashboard/src/components/memories/MemoryCard.tsx +103 -0
  61. package/dashboard/src/components/memory/MemoryDetail.tsx +325 -0
  62. package/dashboard/src/components/nav/NavRail.tsx +54 -0
  63. package/dashboard/src/components/ui/button.tsx +62 -0
  64. package/dashboard/src/components/ui/card.tsx +92 -0
  65. package/dashboard/src/components/ui/input.tsx +21 -0
  66. package/dashboard/src/hooks/useDebouncedValue.ts +24 -0
  67. package/dashboard/src/hooks/useMemories.ts +458 -0
  68. package/dashboard/src/hooks/useSuggestions.ts +46 -0
  69. package/dashboard/src/lib/category-colors.ts +84 -0
  70. package/dashboard/src/lib/position-algorithm.ts +177 -0
  71. package/dashboard/src/lib/simplex-noise.ts +217 -0
  72. package/dashboard/src/lib/store.ts +88 -0
  73. package/dashboard/src/lib/utils.ts +6 -0
  74. package/dashboard/src/lib/websocket.ts +249 -0
  75. package/dashboard/src/types/memory.ts +73 -0
  76. package/dashboard/tsconfig.json +34 -0
  77. package/dist/__tests__/consolidation-merge.test.d.ts +9 -0
  78. package/dist/__tests__/consolidation-merge.test.d.ts.map +1 -0
  79. package/dist/__tests__/consolidation-merge.test.js +137 -0
  80. package/dist/__tests__/consolidation-merge.test.js.map +1 -0
  81. package/dist/__tests__/contradictions.test.d.ts +8 -0
  82. package/dist/__tests__/contradictions.test.d.ts.map +1 -0
  83. package/dist/__tests__/contradictions.test.js +78 -0
  84. package/dist/__tests__/contradictions.test.js.map +1 -0
  85. package/dist/__tests__/salience-evolution.test.d.ts +7 -0
  86. package/dist/__tests__/salience-evolution.test.d.ts.map +1 -0
  87. package/dist/__tests__/salience-evolution.test.js +151 -0
  88. package/dist/__tests__/salience-evolution.test.js.map +1 -0
  89. package/dist/__tests__/store.test.d.ts +7 -0
  90. package/dist/__tests__/store.test.d.ts.map +1 -0
  91. package/dist/__tests__/store.test.js +582 -0
  92. package/dist/__tests__/store.test.js.map +1 -0
  93. package/dist/api/control.d.ts +27 -0
  94. package/dist/api/control.d.ts.map +1 -0
  95. package/dist/api/control.js +60 -0
  96. package/dist/api/control.js.map +1 -0
  97. package/dist/api/events.d.ts +159 -0
  98. package/dist/api/events.d.ts.map +1 -0
  99. package/dist/api/events.js +155 -0
  100. package/dist/api/events.js.map +1 -0
  101. package/dist/api/version.d.ts +36 -0
  102. package/dist/api/version.d.ts.map +1 -0
  103. package/dist/api/version.js +146 -0
  104. package/dist/api/version.js.map +1 -0
  105. package/dist/api/visualization-server.d.ts +11 -0
  106. package/dist/api/visualization-server.d.ts.map +1 -0
  107. package/dist/api/visualization-server.js +1186 -0
  108. package/dist/api/visualization-server.js.map +1 -0
  109. package/dist/context/project-context.d.ts +57 -0
  110. package/dist/context/project-context.d.ts.map +1 -0
  111. package/dist/context/project-context.js +135 -0
  112. package/dist/context/project-context.js.map +1 -0
  113. package/dist/database/init.d.ts +49 -0
  114. package/dist/database/init.d.ts.map +1 -0
  115. package/dist/database/init.js +567 -0
  116. package/dist/database/init.js.map +1 -0
  117. package/dist/defence/__tests__/firewall.test.d.ts +8 -0
  118. package/dist/defence/__tests__/firewall.test.d.ts.map +1 -0
  119. package/dist/defence/__tests__/firewall.test.js +123 -0
  120. package/dist/defence/__tests__/firewall.test.js.map +1 -0
  121. package/dist/defence/__tests__/fragmentation.test.d.ts +7 -0
  122. package/dist/defence/__tests__/fragmentation.test.d.ts.map +1 -0
  123. package/dist/defence/__tests__/fragmentation.test.js +51 -0
  124. package/dist/defence/__tests__/fragmentation.test.js.map +1 -0
  125. package/dist/defence/__tests__/pipeline.test.d.ts +8 -0
  126. package/dist/defence/__tests__/pipeline.test.d.ts.map +1 -0
  127. package/dist/defence/__tests__/pipeline.test.js +61 -0
  128. package/dist/defence/__tests__/pipeline.test.js.map +1 -0
  129. package/dist/defence/__tests__/sensitivity.test.d.ts +7 -0
  130. package/dist/defence/__tests__/sensitivity.test.d.ts.map +1 -0
  131. package/dist/defence/__tests__/sensitivity.test.js +61 -0
  132. package/dist/defence/__tests__/sensitivity.test.js.map +1 -0
  133. package/dist/defence/__tests__/trust.test.d.ts +7 -0
  134. package/dist/defence/__tests__/trust.test.d.ts.map +1 -0
  135. package/dist/defence/__tests__/trust.test.js +49 -0
  136. package/dist/defence/__tests__/trust.test.js.map +1 -0
  137. package/dist/defence/audit/index.d.ts +4 -0
  138. package/dist/defence/audit/index.d.ts.map +1 -0
  139. package/dist/defence/audit/index.js +3 -0
  140. package/dist/defence/audit/index.js.map +1 -0
  141. package/dist/defence/audit/logger.d.ts +14 -0
  142. package/dist/defence/audit/logger.d.ts.map +1 -0
  143. package/dist/defence/audit/logger.js +54 -0
  144. package/dist/defence/audit/logger.js.map +1 -0
  145. package/dist/defence/audit/queries.d.ts +33 -0
  146. package/dist/defence/audit/queries.d.ts.map +1 -0
  147. package/dist/defence/audit/queries.js +103 -0
  148. package/dist/defence/audit/queries.js.map +1 -0
  149. package/dist/defence/firewall/anomaly-scorer.d.ts +8 -0
  150. package/dist/defence/firewall/anomaly-scorer.d.ts.map +1 -0
  151. package/dist/defence/firewall/anomaly-scorer.js +58 -0
  152. package/dist/defence/firewall/anomaly-scorer.js.map +1 -0
  153. package/dist/defence/firewall/encoding-detector.d.ts +13 -0
  154. package/dist/defence/firewall/encoding-detector.d.ts.map +1 -0
  155. package/dist/defence/firewall/encoding-detector.js +120 -0
  156. package/dist/defence/firewall/encoding-detector.js.map +1 -0
  157. package/dist/defence/firewall/index.d.ts +21 -0
  158. package/dist/defence/firewall/index.d.ts.map +1 -0
  159. package/dist/defence/firewall/index.js +133 -0
  160. package/dist/defence/firewall/index.js.map +1 -0
  161. package/dist/defence/firewall/instruction-detector.d.ts +12 -0
  162. package/dist/defence/firewall/instruction-detector.d.ts.map +1 -0
  163. package/dist/defence/firewall/instruction-detector.js +99 -0
  164. package/dist/defence/firewall/instruction-detector.js.map +1 -0
  165. package/dist/defence/firewall/privilege-detector.d.ts +13 -0
  166. package/dist/defence/firewall/privilege-detector.d.ts.map +1 -0
  167. package/dist/defence/firewall/privilege-detector.js +89 -0
  168. package/dist/defence/firewall/privilege-detector.js.map +1 -0
  169. package/dist/defence/fragmentation/assembly-detector.d.ts +18 -0
  170. package/dist/defence/fragmentation/assembly-detector.d.ts.map +1 -0
  171. package/dist/defence/fragmentation/assembly-detector.js +72 -0
  172. package/dist/defence/fragmentation/assembly-detector.js.map +1 -0
  173. package/dist/defence/fragmentation/entity-extractor.d.ts +19 -0
  174. package/dist/defence/fragmentation/entity-extractor.d.ts.map +1 -0
  175. package/dist/defence/fragmentation/entity-extractor.js +86 -0
  176. package/dist/defence/fragmentation/entity-extractor.js.map +1 -0
  177. package/dist/defence/fragmentation/index.d.ts +23 -0
  178. package/dist/defence/fragmentation/index.d.ts.map +1 -0
  179. package/dist/defence/fragmentation/index.js +49 -0
  180. package/dist/defence/fragmentation/index.js.map +1 -0
  181. package/dist/defence/fragmentation/temporal-analyzer.d.ts +28 -0
  182. package/dist/defence/fragmentation/temporal-analyzer.d.ts.map +1 -0
  183. package/dist/defence/fragmentation/temporal-analyzer.js +41 -0
  184. package/dist/defence/fragmentation/temporal-analyzer.js.map +1 -0
  185. package/dist/defence/index.d.ts +12 -0
  186. package/dist/defence/index.d.ts.map +1 -0
  187. package/dist/defence/index.js +18 -0
  188. package/dist/defence/index.js.map +1 -0
  189. package/dist/defence/pipeline.d.ts +9 -0
  190. package/dist/defence/pipeline.d.ts.map +1 -0
  191. package/dist/defence/pipeline.js +115 -0
  192. package/dist/defence/pipeline.js.map +1 -0
  193. package/dist/defence/scanner/index.d.ts +5 -0
  194. package/dist/defence/scanner/index.d.ts.map +1 -0
  195. package/dist/defence/scanner/index.js +5 -0
  196. package/dist/defence/scanner/index.js.map +1 -0
  197. package/dist/defence/scanner/scan-existing.d.ts +34 -0
  198. package/dist/defence/scanner/scan-existing.d.ts.map +1 -0
  199. package/dist/defence/scanner/scan-existing.js +136 -0
  200. package/dist/defence/scanner/scan-existing.js.map +1 -0
  201. package/dist/defence/sensitivity/classifier.d.ts +6 -0
  202. package/dist/defence/sensitivity/classifier.d.ts.map +1 -0
  203. package/dist/defence/sensitivity/classifier.js +50 -0
  204. package/dist/defence/sensitivity/classifier.js.map +1 -0
  205. package/dist/defence/sensitivity/index.d.ts +11 -0
  206. package/dist/defence/sensitivity/index.d.ts.map +1 -0
  207. package/dist/defence/sensitivity/index.js +13 -0
  208. package/dist/defence/sensitivity/index.js.map +1 -0
  209. package/dist/defence/sensitivity/patterns.d.ts +14 -0
  210. package/dist/defence/sensitivity/patterns.d.ts.map +1 -0
  211. package/dist/defence/sensitivity/patterns.js +67 -0
  212. package/dist/defence/sensitivity/patterns.js.map +1 -0
  213. package/dist/defence/sensitivity/redaction.d.ts +17 -0
  214. package/dist/defence/sensitivity/redaction.d.ts.map +1 -0
  215. package/dist/defence/sensitivity/redaction.js +47 -0
  216. package/dist/defence/sensitivity/redaction.js.map +1 -0
  217. package/dist/defence/trust/index.d.ts +3 -0
  218. package/dist/defence/trust/index.d.ts.map +1 -0
  219. package/dist/defence/trust/index.js +3 -0
  220. package/dist/defence/trust/index.js.map +1 -0
  221. package/dist/defence/trust/recall-filter.d.ts +10 -0
  222. package/dist/defence/trust/recall-filter.d.ts.map +1 -0
  223. package/dist/defence/trust/recall-filter.js +38 -0
  224. package/dist/defence/trust/recall-filter.js.map +1 -0
  225. package/dist/defence/trust/source-scorer.d.ts +6 -0
  226. package/dist/defence/trust/source-scorer.d.ts.map +1 -0
  227. package/dist/defence/trust/source-scorer.js +34 -0
  228. package/dist/defence/trust/source-scorer.js.map +1 -0
  229. package/dist/defence/types.d.ts +88 -0
  230. package/dist/defence/types.d.ts.map +1 -0
  231. package/dist/defence/types.js +15 -0
  232. package/dist/defence/types.js.map +1 -0
  233. package/dist/embeddings/generator.d.ts +20 -0
  234. package/dist/embeddings/generator.d.ts.map +1 -0
  235. package/dist/embeddings/generator.js +83 -0
  236. package/dist/embeddings/generator.js.map +1 -0
  237. package/dist/embeddings/index.d.ts +2 -0
  238. package/dist/embeddings/index.d.ts.map +1 -0
  239. package/dist/embeddings/index.js +2 -0
  240. package/dist/embeddings/index.js.map +1 -0
  241. package/dist/errors.d.ts +74 -0
  242. package/dist/errors.d.ts.map +1 -0
  243. package/dist/errors.js +131 -0
  244. package/dist/errors.js.map +1 -0
  245. package/dist/graph/backfill.d.ts +6 -0
  246. package/dist/graph/backfill.d.ts.map +1 -0
  247. package/dist/graph/backfill.js +33 -0
  248. package/dist/graph/backfill.js.map +1 -0
  249. package/dist/graph/extract.d.ts +21 -0
  250. package/dist/graph/extract.d.ts.map +1 -0
  251. package/dist/graph/extract.js +231 -0
  252. package/dist/graph/extract.js.map +1 -0
  253. package/dist/graph/resolve.d.ts +6 -0
  254. package/dist/graph/resolve.d.ts.map +1 -0
  255. package/dist/graph/resolve.js +126 -0
  256. package/dist/graph/resolve.js.map +1 -0
  257. package/dist/index.d.ts +31 -0
  258. package/dist/index.d.ts.map +1 -0
  259. package/dist/index.js +248 -0
  260. package/dist/index.js.map +1 -0
  261. package/dist/memory/activation.d.ts +69 -0
  262. package/dist/memory/activation.d.ts.map +1 -0
  263. package/dist/memory/activation.js +168 -0
  264. package/dist/memory/activation.js.map +1 -0
  265. package/dist/memory/consolidate.d.ts +98 -0
  266. package/dist/memory/consolidate.d.ts.map +1 -0
  267. package/dist/memory/consolidate.js +511 -0
  268. package/dist/memory/consolidate.js.map +1 -0
  269. package/dist/memory/contradiction.d.ts +69 -0
  270. package/dist/memory/contradiction.d.ts.map +1 -0
  271. package/dist/memory/contradiction.js +286 -0
  272. package/dist/memory/contradiction.js.map +1 -0
  273. package/dist/memory/decay.d.ts +62 -0
  274. package/dist/memory/decay.d.ts.map +1 -0
  275. package/dist/memory/decay.js +184 -0
  276. package/dist/memory/decay.js.map +1 -0
  277. package/dist/memory/salience.d.ts +36 -0
  278. package/dist/memory/salience.d.ts.map +1 -0
  279. package/dist/memory/salience.js +216 -0
  280. package/dist/memory/salience.js.map +1 -0
  281. package/dist/memory/similarity.d.ts +57 -0
  282. package/dist/memory/similarity.d.ts.map +1 -0
  283. package/dist/memory/similarity.js +114 -0
  284. package/dist/memory/similarity.js.map +1 -0
  285. package/dist/memory/store.d.ts +179 -0
  286. package/dist/memory/store.d.ts.map +1 -0
  287. package/dist/memory/store.js +1184 -0
  288. package/dist/memory/store.js.map +1 -0
  289. package/dist/memory/types.d.ts +97 -0
  290. package/dist/memory/types.d.ts.map +1 -0
  291. package/dist/memory/types.js +30 -0
  292. package/dist/memory/types.js.map +1 -0
  293. package/dist/server.d.ts +12 -0
  294. package/dist/server.d.ts.map +1 -0
  295. package/dist/server.js +568 -0
  296. package/dist/server.js.map +1 -0
  297. package/dist/service/install.d.ts +15 -0
  298. package/dist/service/install.d.ts.map +1 -0
  299. package/dist/service/install.js +178 -0
  300. package/dist/service/install.js.map +1 -0
  301. package/dist/service/templates.d.ts +13 -0
  302. package/dist/service/templates.d.ts.map +1 -0
  303. package/dist/service/templates.js +58 -0
  304. package/dist/service/templates.js.map +1 -0
  305. package/dist/setup/claude-md.d.ts +12 -0
  306. package/dist/setup/claude-md.d.ts.map +1 -0
  307. package/dist/setup/claude-md.js +68 -0
  308. package/dist/setup/claude-md.js.map +1 -0
  309. package/dist/setup/clawdbot.d.ts +15 -0
  310. package/dist/setup/clawdbot.d.ts.map +1 -0
  311. package/dist/setup/clawdbot.js +118 -0
  312. package/dist/setup/clawdbot.js.map +1 -0
  313. package/dist/setup/doctor.d.ts +5 -0
  314. package/dist/setup/doctor.d.ts.map +1 -0
  315. package/dist/setup/doctor.js +141 -0
  316. package/dist/setup/doctor.js.map +1 -0
  317. package/dist/setup/hooks.d.ts +6 -0
  318. package/dist/setup/hooks.d.ts.map +1 -0
  319. package/dist/setup/hooks.js +36 -0
  320. package/dist/setup/hooks.js.map +1 -0
  321. package/dist/setup/migrate.d.ts +16 -0
  322. package/dist/setup/migrate.d.ts.map +1 -0
  323. package/dist/setup/migrate.js +164 -0
  324. package/dist/setup/migrate.js.map +1 -0
  325. package/dist/setup/settings-hooks.d.ts +7 -0
  326. package/dist/setup/settings-hooks.d.ts.map +1 -0
  327. package/dist/setup/settings-hooks.js +83 -0
  328. package/dist/setup/settings-hooks.js.map +1 -0
  329. package/dist/setup/uninstall.d.ts +12 -0
  330. package/dist/setup/uninstall.d.ts.map +1 -0
  331. package/dist/setup/uninstall.js +125 -0
  332. package/dist/setup/uninstall.js.map +1 -0
  333. package/dist/tools/context.d.ts +135 -0
  334. package/dist/tools/context.d.ts.map +1 -0
  335. package/dist/tools/context.js +273 -0
  336. package/dist/tools/context.js.map +1 -0
  337. package/dist/tools/forget.d.ts +53 -0
  338. package/dist/tools/forget.d.ts.map +1 -0
  339. package/dist/tools/forget.js +179 -0
  340. package/dist/tools/forget.js.map +1 -0
  341. package/dist/tools/graph.d.ts +46 -0
  342. package/dist/tools/graph.d.ts.map +1 -0
  343. package/dist/tools/graph.js +206 -0
  344. package/dist/tools/graph.js.map +1 -0
  345. package/dist/tools/recall.d.ts +79 -0
  346. package/dist/tools/recall.d.ts.map +1 -0
  347. package/dist/tools/recall.js +156 -0
  348. package/dist/tools/recall.js.map +1 -0
  349. package/dist/tools/remember.d.ts +83 -0
  350. package/dist/tools/remember.d.ts.map +1 -0
  351. package/dist/tools/remember.js +151 -0
  352. package/dist/tools/remember.js.map +1 -0
  353. package/dist/worker/brain-worker.d.ts +100 -0
  354. package/dist/worker/brain-worker.d.ts.map +1 -0
  355. package/dist/worker/brain-worker.js +283 -0
  356. package/dist/worker/brain-worker.js.map +1 -0
  357. package/dist/worker/link-discovery.d.ts +47 -0
  358. package/dist/worker/link-discovery.d.ts.map +1 -0
  359. package/dist/worker/link-discovery.js +103 -0
  360. package/dist/worker/link-discovery.js.map +1 -0
  361. package/dist/worker/predictive-consolidation.d.ts +46 -0
  362. package/dist/worker/predictive-consolidation.d.ts.map +1 -0
  363. package/dist/worker/predictive-consolidation.js +110 -0
  364. package/dist/worker/predictive-consolidation.js.map +1 -0
  365. package/dist/worker/types.d.ts +91 -0
  366. package/dist/worker/types.d.ts.map +1 -0
  367. package/dist/worker/types.js +22 -0
  368. package/dist/worker/types.js.map +1 -0
  369. package/hooks/clawdbot/cortex-memory/HOOK.md +71 -0
  370. package/hooks/clawdbot/cortex-memory/handler.js +279 -0
  371. package/package.json +73 -0
  372. package/scripts/pre-compact-hook.mjs +716 -0
  373. package/scripts/session-end-hook.mjs +548 -0
  374. package/scripts/session-start-hook.mjs +221 -0
  375. package/scripts/start-dashboard.sh +41 -0
  376. package/scripts/stop-dashboard.sh +21 -0
  377. package/scripts/stop-hook.mjs +163 -0
@@ -0,0 +1,441 @@
1
+ 'use client';
2
+
3
+ /**
4
+ * Neural Pathways
5
+ * Visualizes the main axon tracts and dendrite networks in the brain
6
+ * - Major pathways: Glowing tubes connecting brain regions
7
+ * - Dendrite network: Fine branching connections
8
+ * - Electron flow along pathways
9
+ */
10
+
11
+ import { useMemo, useRef } from 'react';
12
+ import { useFrame } from '@react-three/fiber';
13
+ import { Line } from '@react-three/drei';
14
+ import * as THREE from 'three';
15
+
16
+ // Jarvis-style golden/orange color palette
17
+ const JARVIS_GOLD = '#FFD700';
18
+ const JARVIS_ORANGE = '#FF8C00';
19
+ const JARVIS_AMBER = '#FFB347';
20
+ const JARVIS_LIGHT_AMBER = '#FFCC66';
21
+ const JARVIS_CYAN = '#00D4FF'; // Accent color for contrast
22
+
23
+ // Major pathway definitions - Jarvis golden theme
24
+ const MAJOR_PATHWAYS = [
25
+ // Central axis: STM → Episodic → LTM
26
+ {
27
+ id: 'central-forward',
28
+ points: [[0, 0, 3.5], [0, 0.5, 1.5], [0, 0.3, 0]],
29
+ color: JARVIS_GOLD,
30
+ intensity: 1.0,
31
+ label: 'STM → Episodic',
32
+ },
33
+ {
34
+ id: 'central-back',
35
+ points: [[0, 0.3, 0], [0, 0.5, -1.5], [0, 0, -3.5]],
36
+ color: JARVIS_ORANGE,
37
+ intensity: 0.9,
38
+ label: 'Episodic → LTM',
39
+ },
40
+ // Left hemisphere tract
41
+ {
42
+ id: 'left-tract',
43
+ points: [[-2, 0, 2.5], [-2.5, 0.3, 0], [-2, 0, -2.5]],
44
+ color: JARVIS_AMBER,
45
+ intensity: 0.7,
46
+ label: 'Left Hemisphere',
47
+ },
48
+ // Right hemisphere tract
49
+ {
50
+ id: 'right-tract',
51
+ points: [[2, 0, 2.5], [2.5, 0.3, 0], [2, 0, -2.5]],
52
+ color: JARVIS_AMBER,
53
+ intensity: 0.7,
54
+ label: 'Right Hemisphere',
55
+ },
56
+ // Corpus callosum (cross-hemisphere) - cyan accent for visual interest
57
+ {
58
+ id: 'corpus-callosum',
59
+ points: [[-2.5, 0.2, 0], [0, 0.8, 0], [2.5, 0.2, 0]],
60
+ color: JARVIS_CYAN,
61
+ intensity: 0.8,
62
+ label: 'Cross-Hemisphere',
63
+ },
64
+ // Diagonal connections
65
+ {
66
+ id: 'left-frontal',
67
+ points: [[-1.5, 0.5, 2.5], [-2, 0.3, 0.5]],
68
+ color: JARVIS_LIGHT_AMBER,
69
+ intensity: 0.5,
70
+ label: 'Left Frontal',
71
+ },
72
+ {
73
+ id: 'right-frontal',
74
+ points: [[1.5, 0.5, 2.5], [2, 0.3, 0.5]],
75
+ color: JARVIS_LIGHT_AMBER,
76
+ intensity: 0.5,
77
+ label: 'Right Frontal',
78
+ },
79
+ {
80
+ id: 'left-occipital',
81
+ points: [[-1.5, 0.3, -2.5], [-2, 0.2, -0.5]],
82
+ color: JARVIS_ORANGE,
83
+ intensity: 0.5,
84
+ label: 'Left Occipital',
85
+ },
86
+ {
87
+ id: 'right-occipital',
88
+ points: [[1.5, 0.3, -2.5], [2, 0.2, -0.5]],
89
+ color: JARVIS_ORANGE,
90
+ intensity: 0.5,
91
+ label: 'Right Occipital',
92
+ },
93
+ ];
94
+
95
+ interface PathwayProps {
96
+ points: number[][];
97
+ color: string;
98
+ intensity: number;
99
+ electronCount?: number;
100
+ }
101
+
102
+ /**
103
+ * Electron particle traveling along a pathway
104
+ */
105
+ function PathwayElectron({
106
+ curve,
107
+ color,
108
+ speed,
109
+ delay,
110
+ }: {
111
+ curve: THREE.CatmullRomCurve3;
112
+ color: string;
113
+ speed: number;
114
+ delay: number;
115
+ }) {
116
+ const meshRef = useRef<THREE.Mesh>(null);
117
+ const glowRef = useRef<THREE.Mesh>(null);
118
+ const progressRef = useRef(delay);
119
+
120
+ useFrame((_, delta) => {
121
+ if (!meshRef.current) return;
122
+
123
+ progressRef.current += delta * speed * 0.3;
124
+ if (progressRef.current > 1) {
125
+ progressRef.current = 0;
126
+ }
127
+
128
+ const point = curve.getPoint(progressRef.current);
129
+ meshRef.current.position.copy(point);
130
+
131
+ // Fade at endpoints
132
+ const fadeIn = Math.min(progressRef.current * 5, 1);
133
+ const fadeOut = Math.min((1 - progressRef.current) * 5, 1);
134
+ const opacity = fadeIn * fadeOut;
135
+
136
+ (meshRef.current.material as THREE.MeshBasicMaterial).opacity = opacity * 0.95;
137
+
138
+ if (glowRef.current) {
139
+ glowRef.current.position.copy(point);
140
+ (glowRef.current.material as THREE.MeshBasicMaterial).opacity = opacity * 0.4;
141
+ }
142
+ });
143
+
144
+ return (
145
+ <>
146
+ {/* Electron core */}
147
+ <mesh ref={meshRef}>
148
+ <sphereGeometry args={[0.06, 8, 8]} />
149
+ <meshBasicMaterial color={color} transparent opacity={0.9} />
150
+ </mesh>
151
+ {/* Glow */}
152
+ <mesh ref={glowRef}>
153
+ <sphereGeometry args={[0.12, 6, 6]} />
154
+ <meshBasicMaterial
155
+ color={color}
156
+ transparent
157
+ opacity={0.4}
158
+ depthWrite={false}
159
+ />
160
+ </mesh>
161
+ </>
162
+ );
163
+ }
164
+
165
+ /**
166
+ * Single major pathway with tube geometry and electrons
167
+ */
168
+ function MajorPathway({ points, color, intensity, electronCount = 3 }: PathwayProps) {
169
+ const tubeRef = useRef<THREE.Mesh>(null);
170
+
171
+ // Create smooth curve through points
172
+ const { curve, tubeGeometry } = useMemo(() => {
173
+ const vectors = points.map((p) => new THREE.Vector3(p[0], p[1], p[2]));
174
+ const curve = new THREE.CatmullRomCurve3(vectors);
175
+ const tubeGeometry = new THREE.TubeGeometry(curve, 32, 0.08, 8, false);
176
+ return { curve, tubeGeometry };
177
+ }, [points]);
178
+
179
+ // Pulsing glow
180
+ useFrame((state) => {
181
+ if (!tubeRef.current) return;
182
+ const pulse = Math.sin(state.clock.elapsedTime * 2) * 0.2 + 0.8;
183
+ (tubeRef.current.material as THREE.MeshStandardMaterial).emissiveIntensity =
184
+ intensity * pulse * 0.6;
185
+ });
186
+
187
+ // Generate electron delays
188
+ const electrons = useMemo(
189
+ () =>
190
+ Array.from({ length: electronCount }, (_, i) => ({
191
+ delay: i / electronCount,
192
+ speed: 0.8 + Math.random() * 0.4,
193
+ })),
194
+ [electronCount]
195
+ );
196
+
197
+ return (
198
+ <group>
199
+ {/* Tube pathway */}
200
+ <mesh ref={tubeRef} geometry={tubeGeometry}>
201
+ <meshStandardMaterial
202
+ color={color}
203
+ emissive={color}
204
+ emissiveIntensity={intensity * 0.5}
205
+ transparent
206
+ opacity={0.35}
207
+ metalness={0.5}
208
+ roughness={0.3}
209
+ />
210
+ </mesh>
211
+
212
+ {/* Electrons along pathway */}
213
+ {electrons.map((e, i) => (
214
+ <PathwayElectron
215
+ key={i}
216
+ curve={curve}
217
+ color={color}
218
+ speed={e.speed}
219
+ delay={e.delay}
220
+ />
221
+ ))}
222
+ </group>
223
+ );
224
+ }
225
+
226
+ /**
227
+ * Helper to convert spherical to cartesian coordinates
228
+ */
229
+ function sphericalToCartesian(
230
+ r: number,
231
+ theta: number,
232
+ phi: number
233
+ ): [number, number, number] {
234
+ return [
235
+ r * Math.sin(phi) * Math.cos(theta),
236
+ r * Math.cos(phi),
237
+ r * Math.sin(phi) * Math.sin(theta),
238
+ ];
239
+ }
240
+
241
+ /**
242
+ * Dendrite network - fine branching connections
243
+ */
244
+ function DendriteNetwork({ count = 60 }: { count?: number }) {
245
+ const dendrites = useMemo(() => {
246
+ return Array.from({ length: count }, (_, i) => {
247
+ const theta = Math.random() * Math.PI * 2;
248
+ const phi = Math.PI * 0.2 + Math.random() * Math.PI * 0.6; // Avoid poles
249
+ const r = 2.2 + Math.random() * 1.3;
250
+
251
+ const start = sphericalToCartesian(r, theta, phi);
252
+ const end = sphericalToCartesian(
253
+ r + 0.3 + Math.random() * 0.5,
254
+ theta + (Math.random() - 0.5) * 0.4,
255
+ phi + (Math.random() - 0.5) * 0.3
256
+ );
257
+
258
+ // Color based on position (depth) - Jarvis golden variants
259
+ const normalizedZ = (start[2] + 3.5) / 7;
260
+ const color = normalizedZ > 0.6
261
+ ? JARVIS_GOLD // Front - bright gold
262
+ : normalizedZ > 0.4
263
+ ? JARVIS_AMBER // Middle - warm gold
264
+ : JARVIS_ORANGE; // Back - deep orange
265
+
266
+ return { start, end, color, opacity: 0.15 + Math.random() * 0.15 };
267
+ });
268
+ }, [count]);
269
+
270
+ return (
271
+ <group>
272
+ {dendrites.map((d, i) => (
273
+ <Line
274
+ key={i}
275
+ points={[d.start, d.end]}
276
+ color={d.color}
277
+ lineWidth={0.8}
278
+ transparent
279
+ opacity={d.opacity}
280
+ />
281
+ ))}
282
+ </group>
283
+ );
284
+ }
285
+
286
+ /**
287
+ * Junction nodes where pathways meet
288
+ */
289
+ function PathwayJunction({
290
+ position,
291
+ color,
292
+ size = 0.15,
293
+ }: {
294
+ position: [number, number, number];
295
+ color: string;
296
+ size?: number;
297
+ }) {
298
+ const meshRef = useRef<THREE.Mesh>(null);
299
+ const glowRef = useRef<THREE.Mesh>(null);
300
+
301
+ useFrame((state) => {
302
+ if (!meshRef.current) return;
303
+ const pulse = Math.sin(state.clock.elapsedTime * 3) * 0.3 + 0.7;
304
+ meshRef.current.scale.setScalar(size * (1 + pulse * 0.2));
305
+ (meshRef.current.material as THREE.MeshBasicMaterial).opacity = pulse * 0.9;
306
+
307
+ if (glowRef.current) {
308
+ glowRef.current.scale.setScalar(size * 2.5 * (1 + pulse * 0.3));
309
+ (glowRef.current.material as THREE.MeshBasicMaterial).opacity = pulse * 0.3;
310
+ }
311
+ });
312
+
313
+ return (
314
+ <group position={position}>
315
+ <mesh ref={glowRef}>
316
+ <sphereGeometry args={[1, 8, 8]} />
317
+ <meshBasicMaterial
318
+ color={color}
319
+ transparent
320
+ opacity={0.3}
321
+ depthWrite={false}
322
+ />
323
+ </mesh>
324
+ <mesh ref={meshRef}>
325
+ <sphereGeometry args={[1, 12, 12]} />
326
+ <meshBasicMaterial color={color} transparent opacity={0.9} />
327
+ </mesh>
328
+ </group>
329
+ );
330
+ }
331
+
332
+ // Junction positions where pathways meet - Jarvis golden theme
333
+ const JUNCTIONS = [
334
+ { position: [0, 0.5, 1.5] as [number, number, number], color: JARVIS_GOLD },
335
+ { position: [0, 0.3, 0] as [number, number, number], color: JARVIS_AMBER },
336
+ { position: [0, 0.5, -1.5] as [number, number, number], color: JARVIS_ORANGE },
337
+ { position: [-2.5, 0.3, 0] as [number, number, number], color: JARVIS_AMBER },
338
+ { position: [2.5, 0.3, 0] as [number, number, number], color: JARVIS_AMBER },
339
+ { position: [0, 0.8, 0] as [number, number, number], color: JARVIS_CYAN },
340
+ ];
341
+
342
+ /**
343
+ * Main neural pathways component
344
+ */
345
+ export function NeuralPathways() {
346
+ return (
347
+ <group name="neural-pathways">
348
+ {/* Major axon tracts */}
349
+ {MAJOR_PATHWAYS.map((pathway) => (
350
+ <MajorPathway
351
+ key={pathway.id}
352
+ points={pathway.points}
353
+ color={pathway.color}
354
+ intensity={pathway.intensity}
355
+ electronCount={pathway.intensity > 0.7 ? 4 : 2}
356
+ />
357
+ ))}
358
+
359
+ {/* Junction nodes */}
360
+ {JUNCTIONS.map((junction, i) => (
361
+ <PathwayJunction
362
+ key={i}
363
+ position={junction.position}
364
+ color={junction.color}
365
+ size={0.12}
366
+ />
367
+ ))}
368
+
369
+ {/* Fine dendrite network */}
370
+ <DendriteNetwork count={80} />
371
+ </group>
372
+ );
373
+ }
374
+
375
+ /**
376
+ * Dynamic pathway that connects two memory nodes
377
+ */
378
+ export function MemoryConnection({
379
+ startPos,
380
+ endPos,
381
+ strength = 0.5,
382
+ relationship,
383
+ }: {
384
+ startPos: { x: number; y: number; z: number };
385
+ endPos: { x: number; y: number; z: number };
386
+ strength: number;
387
+ relationship: string;
388
+ }) {
389
+ // Jarvis-style golden theme with cyan accent
390
+ const COLORS: Record<string, string> = {
391
+ references: JARVIS_CYAN, // Cyan accent for contrast
392
+ extends: JARVIS_GOLD,
393
+ contradicts: '#FF6B6B', // Keep error red
394
+ related: JARVIS_AMBER,
395
+ };
396
+
397
+ const color = COLORS[relationship] || COLORS.related;
398
+
399
+ const { curve, points } = useMemo(() => {
400
+ const start = new THREE.Vector3(startPos.x, startPos.y, startPos.z);
401
+ const end = new THREE.Vector3(endPos.x, endPos.y, endPos.z);
402
+
403
+ // Create organic curve
404
+ const mid = new THREE.Vector3().lerpVectors(start, end, 0.5);
405
+ const direction = new THREE.Vector3().subVectors(end, start);
406
+ const perpendicular = new THREE.Vector3(
407
+ -direction.y,
408
+ direction.x,
409
+ direction.z * 0.3
410
+ ).normalize();
411
+
412
+ const curveAmount = direction.length() * 0.2 * strength;
413
+ mid.add(perpendicular.multiplyScalar(curveAmount));
414
+
415
+ const curve = new THREE.CatmullRomCurve3([start, mid, end]);
416
+ return { curve, points: curve.getPoints(24) };
417
+ }, [startPos, endPos, strength]);
418
+
419
+ const electronCount = strength > 0.7 ? 3 : strength > 0.4 ? 2 : 1;
420
+
421
+ return (
422
+ <group>
423
+ <Line
424
+ points={points}
425
+ color={color}
426
+ lineWidth={1 + strength * 2}
427
+ transparent
428
+ opacity={0.4 + strength * 0.4}
429
+ />
430
+ {Array.from({ length: electronCount }).map((_, i) => (
431
+ <PathwayElectron
432
+ key={i}
433
+ curve={curve}
434
+ color={color}
435
+ speed={0.8 + strength * 0.5}
436
+ delay={i / electronCount}
437
+ />
438
+ ))}
439
+ </group>
440
+ );
441
+ }