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
package/dist/server.js ADDED
@@ -0,0 +1,568 @@
1
+ /**
2
+ * ShieldCortex MCP Server
3
+ *
4
+ * Brain-like memory system for Claude Code.
5
+ * Solves context compaction and memory persistence issues.
6
+ */
7
+ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
8
+ import { z } from 'zod';
9
+ import { initDatabase } from './database/init.js';
10
+ import { DEFAULT_CONFIG } from './memory/types.js';
11
+ import { getCurrentVersion } from './api/version.js';
12
+ import { initProjectContext, getActiveProject, setActiveProject, getProjectContextInfo, GLOBAL_PROJECT_SENTINEL, } from './context/project-context.js';
13
+ // Import tools
14
+ import { executeRemember, formatRememberResult } from './tools/remember.js';
15
+ import { executeRecall, formatRecallResult, executeGetMemory, formatMemory } from './tools/recall.js';
16
+ import { executeForget, formatForgetResult } from './tools/forget.js';
17
+ import { executeGetContext, executeStartSession, executeEndSession, executeConsolidate, executeStats, formatStats, executeExport, executeImport, } from './tools/context.js';
18
+ import { generateContextSummary, formatContextSummary, consolidate, fullCleanup } from './memory/consolidate.js';
19
+ import { getHighPriorityMemories, getRecentMemories, getRelatedMemories, createMemoryLink } from './memory/store.js';
20
+ import { detectContradictions } from './memory/contradiction.js';
21
+ import { handleGraphQuery, handleGraphEntities, handleGraphExplain } from './tools/graph.js';
22
+ import { checkDatabaseSize } from './database/init.js';
23
+ import { queryAuditLogs, getAuditStats } from './defence/audit/index.js';
24
+ import { scanExistingMemories } from './defence/scanner/index.js';
25
+ /**
26
+ * Create and configure the MCP server
27
+ */
28
+ export function createServer(dbPath) {
29
+ // Initialize database
30
+ const config = { ...DEFAULT_CONFIG };
31
+ if (dbPath) {
32
+ config.dbPath = dbPath;
33
+ }
34
+ initDatabase(config.dbPath);
35
+ // Initialize project context (auto-detect from working directory)
36
+ initProjectContext();
37
+ const projectInfo = getProjectContextInfo();
38
+ if (projectInfo.project) {
39
+ console.error(`[shieldcortex] Project: "${projectInfo.project}" (from ${projectInfo.source})`);
40
+ }
41
+ else {
42
+ console.error('[shieldcortex] Project: global scope');
43
+ }
44
+ // Create MCP server
45
+ const server = new McpServer({
46
+ name: 'shieldcortex',
47
+ version: getCurrentVersion(),
48
+ });
49
+ // ============================================
50
+ // TOOLS
51
+ // ============================================
52
+ // Remember - Store a memory
53
+ server.tool('remember', `Store information in memory for later recall. Use this to remember:
54
+ - Architecture decisions ("We're using PostgreSQL for the database")
55
+ - Code patterns ("The auth flow uses JWT tokens")
56
+ - User preferences ("Always use TypeScript strict mode")
57
+ - Error resolutions ("Fixed by updating the dependency")
58
+ - Project context ("This is a React + Node.js project")
59
+ - Important notes ("Remember to test the edge cases")
60
+
61
+ The system automatically detects importance, categorizes, and manages storage.`, {
62
+ title: z.string().describe('Short title for the memory'),
63
+ content: z.string().describe('Detailed content'),
64
+ category: z.enum([
65
+ 'architecture', 'pattern', 'preference', 'error',
66
+ 'context', 'learning', 'todo', 'note', 'relationship', 'custom'
67
+ ]).optional().describe('Category (auto-detected if not provided)'),
68
+ type: z.enum(['short_term', 'long_term', 'episodic']).optional()
69
+ .describe('Memory type (auto-determined if not provided)'),
70
+ project: z.string().optional().describe('Project scope. Auto-detected from working directory if not provided. Use "*" for global.'),
71
+ tags: z.array(z.string()).optional().describe('Tags for categorization'),
72
+ importance: z.enum(['low', 'normal', 'high', 'critical']).optional()
73
+ .describe('Override automatic salience'),
74
+ scope: z.enum(['project', 'global']).optional()
75
+ .describe('Memory scope: project (default) or global (cross-project)'),
76
+ transferable: z.boolean().optional()
77
+ .describe('Whether this memory can be transferred to other projects'),
78
+ }, async (args) => {
79
+ const result = await executeRemember(args);
80
+ return {
81
+ content: [{ type: 'text', text: formatRememberResult(result) }],
82
+ };
83
+ });
84
+ // Recall - Search and retrieve memories
85
+ server.tool('recall', `Search and retrieve memories. Use this to:
86
+ - Find relevant context ("What do I know about auth?")
87
+ - Get recent activity ("What did we work on?")
88
+ - Find decisions ("What architecture decisions were made?")
89
+
90
+ Modes: search (query-based), recent (by time), important (by salience)`, {
91
+ query: z.string().optional().describe('Search query'),
92
+ category: z.enum([
93
+ 'architecture', 'pattern', 'preference', 'error',
94
+ 'context', 'learning', 'todo', 'note', 'relationship', 'custom'
95
+ ]).optional().describe('Filter by category'),
96
+ type: z.enum(['short_term', 'long_term', 'episodic']).optional()
97
+ .describe('Filter by type'),
98
+ project: z.string().optional().describe('Project scope. Auto-detected if not provided. Use "*" for all projects.'),
99
+ tags: z.array(z.string()).optional().describe('Filter by tags'),
100
+ limit: z.number().min(1).max(50).optional().default(10)
101
+ .describe('Max results'),
102
+ includeDecayed: z.boolean().optional().default(false)
103
+ .describe('Include decayed memories'),
104
+ includeGlobal: z.boolean().optional().default(true)
105
+ .describe('Include global memories in search results (default: true)'),
106
+ mode: z.enum(['search', 'recent', 'important']).optional().default('search')
107
+ .describe('Recall mode'),
108
+ }, async (args) => {
109
+ const result = await executeRecall(args);
110
+ return {
111
+ content: [{ type: 'text', text: formatRecallResult(result, true) }],
112
+ };
113
+ });
114
+ // Forget - Delete memories
115
+ server.tool('forget', `Delete memories. Use dryRun: true to preview, confirm: true for bulk.`, {
116
+ id: z.number().optional().describe('Memory ID to delete'),
117
+ query: z.string().optional().describe('Delete matching query'),
118
+ category: z.enum([
119
+ 'architecture', 'pattern', 'preference', 'error',
120
+ 'context', 'learning', 'todo', 'note', 'relationship', 'custom'
121
+ ]).optional().describe('Delete category'),
122
+ project: z.string().optional().describe('Project scope for deletion. Auto-detected if not provided. Use "*" for all projects.'),
123
+ olderThan: z.number().optional().describe('Delete older than N days'),
124
+ belowSalience: z.number().min(0).max(1).optional()
125
+ .describe('Delete below salience'),
126
+ dryRun: z.boolean().optional().default(false)
127
+ .describe('Preview only'),
128
+ confirm: z.boolean().optional().default(false)
129
+ .describe('Confirm bulk delete'),
130
+ }, async (args) => {
131
+ const result = await executeForget(args);
132
+ return {
133
+ content: [{ type: 'text', text: formatForgetResult(result) }],
134
+ };
135
+ });
136
+ // Get Context - THE KEY TOOL
137
+ server.tool('get_context', `Get relevant context from memory. THE KEY TOOL for maintaining context.
138
+
139
+ Use at session start, after compaction, when switching tasks, or to recall project info.
140
+ Returns: architecture decisions, patterns, pending items, recent activity.`, {
141
+ project: z.string().optional().describe('Project scope. Auto-detected if not provided. Use "*" for all projects.'),
142
+ query: z.string().optional().describe('Current task for relevant context'),
143
+ format: z.enum(['summary', 'detailed', 'raw']).optional().default('summary')
144
+ .describe('Output format'),
145
+ }, async (args) => {
146
+ const result = await executeGetContext(args);
147
+ return {
148
+ content: [{
149
+ type: 'text',
150
+ text: result.success ? result.context : `Error: ${result.error}`
151
+ }],
152
+ };
153
+ });
154
+ // Start Session
155
+ server.tool('start_session', 'Start a new coding session. Returns relevant context.', {
156
+ project: z.string().optional().describe('Project scope. Auto-detected if not provided. Use "*" for global.'),
157
+ }, async (args) => {
158
+ const result = await executeStartSession(args);
159
+ return {
160
+ content: [{
161
+ type: 'text',
162
+ text: result.success
163
+ ? `Session ${result.sessionId} started.\n\n${result.context}`
164
+ : `Error: ${result.error}`
165
+ }],
166
+ };
167
+ });
168
+ // End Session
169
+ server.tool('end_session', 'End session and trigger consolidation.', {
170
+ sessionId: z.number().describe('Session ID'),
171
+ summary: z.string().optional().describe('Session summary'),
172
+ }, async (args) => {
173
+ const result = executeEndSession(args);
174
+ if (!result.success) {
175
+ return { content: [{ type: 'text', text: `Error: ${result.error}` }] };
176
+ }
177
+ const r = result.consolidationResult;
178
+ return {
179
+ content: [{
180
+ type: 'text',
181
+ text: `Session ended. Consolidation: ${r.consolidated} promoted, ${r.decayed} decayed, ${r.deleted} deleted.`
182
+ }],
183
+ };
184
+ });
185
+ // Consolidate
186
+ server.tool('consolidate', 'Run memory consolidation (like brain sleep). Promotes STM to LTM, decays old memories. Use dryRun to preview.', {
187
+ force: z.boolean().optional().default(false).describe('Force consolidation'),
188
+ dryRun: z.boolean().optional().default(false).describe('Preview what would happen without doing it'),
189
+ }, async (args) => {
190
+ const result = executeConsolidate(args);
191
+ if (!result.success) {
192
+ return { content: [{ type: 'text', text: `Error: ${result.error}` }] };
193
+ }
194
+ // Dry run returns preview
195
+ if (result.preview) {
196
+ const p = result.preview;
197
+ const lines = [
198
+ '## Consolidation Preview (Dry Run)',
199
+ '',
200
+ `Would promote: ${p.toPromote} memories`,
201
+ `Would delete: ${p.toDelete} memories`,
202
+ ];
203
+ if (p.promoteList.length > 0) {
204
+ lines.push('', '**To promote:**');
205
+ lines.push(...p.promoteList.map(t => ` - ${t}`));
206
+ }
207
+ if (p.deleteList.length > 0) {
208
+ lines.push('', '**At risk of deletion:**');
209
+ lines.push(...p.deleteList.map(t => ` - ${t}`));
210
+ }
211
+ return { content: [{ type: 'text', text: lines.join('\n') }] };
212
+ }
213
+ // Actual consolidation result
214
+ const r = result.result;
215
+ return {
216
+ content: [{
217
+ type: 'text',
218
+ text: `Consolidation: ${r.consolidated} promoted, ${r.decayed} updated, ${r.deleted} deleted.`
219
+ }],
220
+ };
221
+ });
222
+ // Stats
223
+ server.tool('memory_stats', 'Get memory statistics.', {
224
+ project: z.string().optional().describe('Project scope. Auto-detected if not provided. Use "*" for all projects.'),
225
+ }, async (args) => {
226
+ const result = executeStats(args);
227
+ return {
228
+ content: [{
229
+ type: 'text',
230
+ text: result.success ? formatStats(result.stats) : `Error: ${result.error}`
231
+ }],
232
+ };
233
+ });
234
+ // Get Memory by ID
235
+ server.tool('get_memory', 'Get a specific memory by ID.', {
236
+ id: z.number().describe('Memory ID'),
237
+ }, async (args) => {
238
+ const result = executeGetMemory(args);
239
+ return {
240
+ content: [{
241
+ type: 'text',
242
+ text: result.success ? formatMemory(result.memory, true) : `Error: ${result.error}`
243
+ }],
244
+ };
245
+ });
246
+ // Export memories
247
+ server.tool('export_memories', 'Export memories as JSON for backup.', {
248
+ project: z.string().optional().describe('Project scope. Auto-detected if not provided. Use "*" for all projects.'),
249
+ }, async (args) => {
250
+ const result = executeExport(args);
251
+ return {
252
+ content: [{
253
+ type: 'text',
254
+ text: result.success
255
+ ? `Exported ${result.count} memories:\n\n${result.data}`
256
+ : `Error: ${result.error}`
257
+ }],
258
+ };
259
+ });
260
+ // Import memories
261
+ server.tool('import_memories', 'Import memories from JSON.', {
262
+ data: z.string().describe('JSON data'),
263
+ }, async (args) => {
264
+ const result = executeImport(args);
265
+ return {
266
+ content: [{
267
+ type: 'text',
268
+ text: result.success
269
+ ? `Imported ${result.imported} memories.`
270
+ : `Error: ${result.error}`
271
+ }],
272
+ };
273
+ });
274
+ // Get Related Memories
275
+ server.tool('get_related', 'Get memories related to a specific memory. Shows connections and relationships.', {
276
+ id: z.number().describe('Memory ID to find relationships for'),
277
+ }, async (args) => {
278
+ const related = getRelatedMemories(args.id);
279
+ if (related.length === 0) {
280
+ return { content: [{ type: 'text', text: 'No related memories found.' }] };
281
+ }
282
+ const lines = [`## Related Memories for ID ${args.id}\n`];
283
+ for (const r of related) {
284
+ const arrow = r.direction === 'outgoing' ? '→' : '←';
285
+ lines.push(`${arrow} **${r.memory.title}** (${r.relationship}, ${(r.strength * 100).toFixed(0)}% strength)`);
286
+ lines.push(` ID: ${r.memory.id} | ${r.memory.category} | ${(r.memory.salience * 100).toFixed(0)}% salience`);
287
+ }
288
+ return { content: [{ type: 'text', text: lines.join('\n') }] };
289
+ });
290
+ // Link Memories
291
+ server.tool('link_memories', 'Create a relationship link between two memories.', {
292
+ sourceId: z.number().describe('Source memory ID'),
293
+ targetId: z.number().describe('Target memory ID'),
294
+ relationship: z.enum(['references', 'extends', 'contradicts', 'related'])
295
+ .describe('Type of relationship'),
296
+ strength: z.number().min(0).max(1).optional().default(0.5)
297
+ .describe('Relationship strength (0-1)'),
298
+ }, async (args) => {
299
+ const link = createMemoryLink(args.sourceId, args.targetId, args.relationship, args.strength);
300
+ if (!link) {
301
+ return { content: [{ type: 'text', text: 'Failed to create link. Memories may not exist or link already exists.' }] };
302
+ }
303
+ return { content: [{ type: 'text', text: `✓ Linked memory ${args.sourceId} → ${args.targetId} (${args.relationship})` }] };
304
+ });
305
+ // Set Project - Switch active project context
306
+ server.tool('set_project', `Switch active project context. Use "${GLOBAL_PROJECT_SENTINEL}" for global/all projects.`, {
307
+ project: z.string().describe(`Project name, or "${GLOBAL_PROJECT_SENTINEL}" for global scope`),
308
+ }, async (args) => {
309
+ const oldProject = getActiveProject();
310
+ setActiveProject(args.project === GLOBAL_PROJECT_SENTINEL ? null : args.project);
311
+ const newProject = getActiveProject();
312
+ return {
313
+ content: [{
314
+ type: 'text',
315
+ text: `Project context changed: ${oldProject || 'global'} → ${newProject || 'global'}`
316
+ }]
317
+ };
318
+ });
319
+ // Get Project - Show current project scope
320
+ server.tool('get_project', 'Show current project scope and detection info.', {}, async () => {
321
+ const info = getProjectContextInfo();
322
+ const lines = [
323
+ `**Current Project:** ${info.project || 'global (all projects)'}`,
324
+ `**Detection Source:** ${info.source}`,
325
+ `**Scope:** ${info.isGlobal ? 'Global - queries return all projects' : `Scoped - queries filtered to "${info.project}"`}`,
326
+ ];
327
+ return { content: [{ type: 'text', text: lines.join('\n') }] };
328
+ });
329
+ // ============================================
330
+ // ORGANIC BRAIN TOOLS (Phase 3)
331
+ // ============================================
332
+ // Detect Contradictions - Find conflicting memories
333
+ server.tool('detect_contradictions', `Scan memories for potential contradictions. Finds memories that may contain
334
+ conflicting information about the same topic, such as:
335
+ - Different solutions to the same problem
336
+ - Conflicting recommendations (use X vs don't use X)
337
+ - Opposite decisions or preferences
338
+
339
+ Contradictions are automatically detected during consolidation and linked,
340
+ but you can use this tool to check for new contradictions at any time.`, {
341
+ project: z.string().optional().describe('Filter by project (omit for current project)'),
342
+ category: z.enum([
343
+ 'architecture', 'pattern', 'preference', 'error',
344
+ 'context', 'learning', 'todo', 'note', 'relationship', 'custom'
345
+ ]).optional().describe('Filter by category'),
346
+ minScore: z.number().min(0).max(1).optional().default(0.4)
347
+ .describe('Minimum contradiction score (0-1, default 0.4)'),
348
+ limit: z.number().min(1).max(50).optional().default(10)
349
+ .describe('Maximum results to return'),
350
+ }, async (args) => {
351
+ const project = args.project ?? getActiveProject() ?? undefined;
352
+ const contradictions = detectContradictions({
353
+ project,
354
+ category: args.category,
355
+ minScore: args.minScore,
356
+ limit: args.limit,
357
+ });
358
+ if (contradictions.length === 0) {
359
+ return { content: [{ type: 'text', text: 'No contradictions detected.' }] };
360
+ }
361
+ const lines = ['## Potential Contradictions\n'];
362
+ for (const c of contradictions) {
363
+ lines.push(`### ${c.reason} (${(c.score * 100).toFixed(0)}% confidence)`);
364
+ lines.push(`**Memory A:** [#${c.memoryA.id}] ${c.memoryA.title}`);
365
+ lines.push(`**Memory B:** [#${c.memoryB.id}] ${c.memoryB.title}`);
366
+ if (c.sharedTopics.length > 0) {
367
+ lines.push(`**Shared Topics:** ${c.sharedTopics.join(', ')}`);
368
+ }
369
+ lines.push('');
370
+ }
371
+ lines.push(`\n*Found ${contradictions.length} potential contradiction(s). Use \`get_related\` to see linked contradictions.*`);
372
+ return { content: [{ type: 'text', text: lines.join('\n') }] };
373
+ });
374
+ // ============================================
375
+ // KNOWLEDGE GRAPH TOOLS
376
+ // ============================================
377
+ // Graph Query - Traverse from an entity
378
+ server.tool('graph_query', 'Traverse the knowledge graph from an entity. Returns connected entities and relationships up to N hops away.', {
379
+ entity: z.string().describe('Entity name to start from'),
380
+ depth: z.number().optional().describe('Max traversal depth (default 2)'),
381
+ predicates: z.array(z.string()).optional().describe('Filter by predicate types'),
382
+ }, async (args) => handleGraphQuery(args));
383
+ // Graph Entities - List known entities
384
+ server.tool('graph_entities', 'List known entities in the knowledge graph, optionally filtered by type.', {
385
+ type: z.string().optional().describe('Filter by entity type (person, tool, concept, file, language, service, pattern)'),
386
+ minMentions: z.number().optional().describe('Minimum memory references (default 1)'),
387
+ limit: z.number().optional().describe('Max results (default 50)'),
388
+ }, async (args) => handleGraphEntities(args));
389
+ // Graph Explain - Find paths between entities
390
+ server.tool('graph_explain', 'Explain the relationship between two entities by finding paths connecting them in the knowledge graph.', {
391
+ from: z.string().describe('Source entity name'),
392
+ to: z.string().describe('Target entity name'),
393
+ maxDepth: z.number().optional().describe('Max path length (default 4)'),
394
+ }, async (args) => handleGraphExplain(args));
395
+ // ============================================
396
+ // DEFENCE TOOLS
397
+ // ============================================
398
+ // Audit Query
399
+ server.tool('audit_query', 'Query defence audit logs for forensic analysis', {
400
+ startTime: z.string().optional().describe('ISO timestamp start'),
401
+ endTime: z.string().optional().describe('ISO timestamp end'),
402
+ operation: z.enum(['write', 'read', 'delete', 'update']).optional(),
403
+ source: z.string().optional().describe('Filter by source'),
404
+ firewallResult: z.enum(['ALLOW', 'BLOCK', 'QUARANTINE']).optional(),
405
+ limit: z.number().default(50),
406
+ }, async (args) => {
407
+ const logs = queryAuditLogs(args);
408
+ const text = logs.length === 0 ? 'No audit logs found.' : logs.map(l => `[${l.timestamp}] ${l.firewall_result} | source:${l.source_type}:${l.source_identifier} | trust:${l.trust_score}`).join('\n');
409
+ return { content: [{ type: 'text', text }] };
410
+ });
411
+ // Quarantine Review
412
+ server.tool('quarantine_review', 'Review and manage quarantined memories', {
413
+ action: z.enum(['list', 'approve', 'reject']),
414
+ quarantineId: z.number().optional().describe('ID for approve/reject'),
415
+ notes: z.string().optional(),
416
+ }, async (args) => {
417
+ const db = (await import('./database/init.js')).getDatabase();
418
+ if (args.action === 'list') {
419
+ const items = db.prepare('SELECT * FROM quarantine WHERE status = ? ORDER BY created_at DESC LIMIT 50').all('pending');
420
+ const text = items.length === 0 ? 'No items in quarantine.' : items.map((q) => `[${q.id}] ${q.title} | reason: ${q.block_reason} | trust: ${q.trust_score}`).join('\n');
421
+ return { content: [{ type: 'text', text }] };
422
+ }
423
+ else if (args.action === 'approve' && args.quarantineId) {
424
+ db.prepare('UPDATE quarantine SET status = ?, reviewer_notes = ? WHERE id = ?').run('approved', args.notes || null, args.quarantineId);
425
+ // Optionally promote to memory
426
+ const q = db.prepare('SELECT * FROM quarantine WHERE id = ?').get(args.quarantineId);
427
+ if (q) {
428
+ const { addMemory: add } = await import('./memory/store.js');
429
+ add({ title: q.title, content: q.content });
430
+ }
431
+ return { content: [{ type: 'text', text: `Quarantine item ${args.quarantineId} approved.` }] };
432
+ }
433
+ else if (args.action === 'reject' && args.quarantineId) {
434
+ db.prepare('UPDATE quarantine SET status = ?, reviewer_notes = ? WHERE id = ?').run('rejected', args.notes || null, args.quarantineId);
435
+ return { content: [{ type: 'text', text: `Quarantine item ${args.quarantineId} rejected.` }] };
436
+ }
437
+ return { content: [{ type: 'text', text: 'Invalid action or missing quarantineId.' }] };
438
+ });
439
+ // Defence Stats
440
+ server.tool('defence_stats', 'Get defence system statistics', {
441
+ timeRange: z.enum(['24h', '7d', '30d']).default('24h'),
442
+ }, async (args) => {
443
+ const stats = getAuditStats(args.timeRange);
444
+ const lines = [
445
+ `Defence Stats (${args.timeRange}):`,
446
+ ` Total operations: ${stats.totalOperations}`,
447
+ ` Allowed: ${stats.allowedCount}`,
448
+ ` Blocked: ${stats.blockedCount}`,
449
+ ` Quarantined: ${stats.quarantinedCount}`,
450
+ ` Top sources: ${stats.topSources.map(s => `${s.source}(${s.count})`).join(', ') || 'none'}`,
451
+ ];
452
+ if (Object.keys(stats.threatBreakdown).length > 0) {
453
+ lines.push(` Threats: ${Object.entries(stats.threatBreakdown).map(([k, v]) => `${k}:${v}`).join(', ')}`);
454
+ }
455
+ return { content: [{ type: 'text', text: lines.join('\n') }] };
456
+ });
457
+ // Scan Memories
458
+ server.tool('scan_memories', 'Scan existing memories for signs of poisoning', {
459
+ project: z.string().optional().describe('Scan specific project'),
460
+ limit: z.number().default(1000).describe('Max memories to scan'),
461
+ }, async (args) => {
462
+ const report = scanExistingMemories({ project: args.project, limit: args.limit });
463
+ let text = report.summary + '\n';
464
+ if (report.threatsFound.length > 0) {
465
+ text += '\nThreats:\n';
466
+ for (const t of report.threatsFound) {
467
+ text += ` [${t.severity}] Memory #${t.memoryId}: "${t.title}" — ${t.details}\n`;
468
+ }
469
+ }
470
+ return { content: [{ type: 'text', text }] };
471
+ });
472
+ // ============================================
473
+ // RESOURCES
474
+ // ============================================
475
+ // Project context resource
476
+ server.resource('memory://context', 'memory://context', async () => {
477
+ const summary = await generateContextSummary();
478
+ return {
479
+ contents: [{
480
+ uri: 'memory://context',
481
+ mimeType: 'text/markdown',
482
+ text: formatContextSummary(summary),
483
+ }],
484
+ };
485
+ });
486
+ // Important memories resource
487
+ server.resource('memory://important', 'memory://important', async () => {
488
+ const memories = getHighPriorityMemories(20);
489
+ const text = memories.map(m => `## ${m.title}\n${m.content}\n*${m.category} | ${(m.salience * 100).toFixed(0)}% salience*\n`).join('\n');
490
+ return {
491
+ contents: [{
492
+ uri: 'memory://important',
493
+ mimeType: 'text/markdown',
494
+ text: text || 'No high-priority memories stored yet.',
495
+ }],
496
+ };
497
+ });
498
+ // Recent memories resource
499
+ server.resource('memory://recent', 'memory://recent', async () => {
500
+ const memories = getRecentMemories(15);
501
+ const text = memories.map(m => `- **${m.title}** (${m.category}): ${m.content.slice(0, 100)}...`).join('\n');
502
+ return {
503
+ contents: [{
504
+ uri: 'memory://recent',
505
+ mimeType: 'text/markdown',
506
+ text: text || 'No recent memories.',
507
+ }],
508
+ };
509
+ });
510
+ // ============================================
511
+ // PROMPTS
512
+ // ============================================
513
+ // Context restoration prompt
514
+ server.prompt('restore_context', 'Restore context after compaction or at session start', async () => {
515
+ const summary = await generateContextSummary();
516
+ const context = formatContextSummary(summary);
517
+ return {
518
+ messages: [{
519
+ role: 'user',
520
+ content: {
521
+ type: 'text',
522
+ text: `Please review this context from memory and use it:\n\n${context}`,
523
+ },
524
+ }],
525
+ };
526
+ });
527
+ // Memory search prompt
528
+ server.prompt('search_memory', 'Search memories for information', async () => {
529
+ return {
530
+ messages: [{
531
+ role: 'user',
532
+ content: {
533
+ type: 'text',
534
+ text: `Search my memories for relevant information.`,
535
+ },
536
+ }],
537
+ };
538
+ });
539
+ // ============================================
540
+ // AUTO-CONSOLIDATION (Anti-bloat)
541
+ // ============================================
542
+ // Run initial consolidation on startup
543
+ try {
544
+ const startupResult = consolidate();
545
+ console.error(`[shieldcortex] Startup consolidation: ${startupResult.consolidated} promoted, ${startupResult.deleted} deleted`);
546
+ }
547
+ catch (e) {
548
+ console.error('[shieldcortex] Startup consolidation failed:', e);
549
+ }
550
+ // Check database size on startup
551
+ const sizeInfo = checkDatabaseSize();
552
+ if (sizeInfo.warning || sizeInfo.blocked) {
553
+ console.error(`[shieldcortex] ${sizeInfo.message}`);
554
+ }
555
+ // Schedule periodic consolidation every 4 hours
556
+ const CONSOLIDATION_INTERVAL = 4 * 60 * 60 * 1000; // 4 hours
557
+ setInterval(() => {
558
+ try {
559
+ const result = fullCleanup();
560
+ console.error(`[shieldcortex] Scheduled cleanup: ${result.consolidation.consolidated} promoted, ${result.consolidation.deleted} deleted, ${result.merged} merged, vacuumed: ${result.vacuumed}`);
561
+ }
562
+ catch (e) {
563
+ console.error('[shieldcortex] Scheduled cleanup failed:', e);
564
+ }
565
+ }, CONSOLIDATION_INTERVAL);
566
+ return server;
567
+ }
568
+ //# sourceMappingURL=server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Cross-platform service installer for ShieldCortex dashboard auto-start.
3
+ *
4
+ * Supports:
5
+ * - macOS: LaunchAgent plist
6
+ * - Linux: systemd user service
7
+ * - Windows: VBS script in Startup folder
8
+ */
9
+ export declare function installService(): Promise<void>;
10
+ export declare function uninstallService(options?: {
11
+ cleanLogs?: boolean;
12
+ }): Promise<void>;
13
+ export declare function serviceStatus(): Promise<void>;
14
+ export declare function handleServiceCommand(subcommand: string): Promise<void>;
15
+ //# sourceMappingURL=install.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/service/install.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AA+CH,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAmDpD;AAUD,wBAAsB,gBAAgB,CAAC,OAAO,CAAC,EAAE;IAAE,SAAS,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA+BvF;AAED,wBAAsB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAgCnD;AAED,wBAAsB,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAe5E"}