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,103 @@
1
+ /**
2
+ * Link Discovery Module
3
+ *
4
+ * Phase 4 Organic Brain Feature
5
+ *
6
+ * Finds memories that have no links and discovers relationships
7
+ * for them during background worker cycles.
8
+ */
9
+ import { getDatabase } from '../database/init.js';
10
+ import { rowToMemory, detectRelationships, createMemoryLink, } from '../memory/store.js';
11
+ /**
12
+ * Find memories that have no outgoing links
13
+ * These are candidates for relationship discovery
14
+ *
15
+ * @param limit - Maximum number of memories to return
16
+ * @returns Array of Memory objects with no outgoing links
17
+ */
18
+ export function findUnlinkedMemories(limit = 10) {
19
+ const db = getDatabase();
20
+ // Find memories that are not the source of any link
21
+ // Prioritize by salience (important memories should be linked first)
22
+ const rows = db.prepare(`
23
+ SELECT m.* FROM memories m
24
+ LEFT JOIN memory_links ml ON m.id = ml.source_id
25
+ WHERE ml.id IS NULL
26
+ ORDER BY m.salience DESC, m.last_accessed DESC
27
+ LIMIT ?
28
+ `).all(limit);
29
+ return rows.map(rowToMemory);
30
+ }
31
+ /**
32
+ * Find memories with few links (under-linked)
33
+ * These might benefit from additional connections
34
+ *
35
+ * @param maxLinks - Maximum number of existing links to qualify
36
+ * @param limit - Maximum number of memories to return
37
+ * @returns Array of Memory objects with fewer than maxLinks links
38
+ */
39
+ export function findUnderlinkedMemories(maxLinks = 2, limit = 10) {
40
+ const db = getDatabase();
41
+ // Find memories with fewer than maxLinks total links (as source or target)
42
+ const rows = db.prepare(`
43
+ SELECT m.*, COUNT(ml.id) as link_count
44
+ FROM memories m
45
+ LEFT JOIN memory_links ml ON m.id = ml.source_id OR m.id = ml.target_id
46
+ GROUP BY m.id
47
+ HAVING link_count < ?
48
+ ORDER BY m.salience DESC
49
+ LIMIT ?
50
+ `).all(maxLinks, limit);
51
+ return rows.map(rowToMemory);
52
+ }
53
+ /**
54
+ * Discover and create links for unlinked memories
55
+ * Called during medium tick to build the knowledge graph organically
56
+ *
57
+ * @param limit - Maximum number of memories to process per cycle
58
+ * @returns Number of new links created
59
+ */
60
+ export function discoverMissingLinks(limit = 10) {
61
+ const unlinked = findUnlinkedMemories(limit);
62
+ let linksCreated = 0;
63
+ for (const memory of unlinked) {
64
+ try {
65
+ // Find up to 3 related memories
66
+ const relationships = detectRelationships(memory, 3);
67
+ for (const rel of relationships) {
68
+ const link = createMemoryLink(memory.id, rel.targetId, rel.relationship, rel.strength);
69
+ if (link) {
70
+ linksCreated++;
71
+ }
72
+ }
73
+ }
74
+ catch (e) {
75
+ // Log but don't stop - continue with other memories
76
+ console.error(`[BrainWorker] Link discovery failed for memory ${memory.id}:`, e);
77
+ }
78
+ }
79
+ return linksCreated;
80
+ }
81
+ /**
82
+ * Get statistics about memory link coverage
83
+ * Useful for dashboard visualization
84
+ *
85
+ * @returns Object with link coverage stats
86
+ */
87
+ export function getLinkCoverageStats() {
88
+ const db = getDatabase();
89
+ const totalMemories = db.prepare('SELECT COUNT(*) as count FROM memories').get().count;
90
+ const memoriesWithLinks = db.prepare(`
91
+ SELECT COUNT(DISTINCT source_id) as count FROM memory_links
92
+ `).get().count;
93
+ const totalLinks = db.prepare('SELECT COUNT(*) as count FROM memory_links').get().count;
94
+ return {
95
+ totalMemories,
96
+ memoriesWithLinks,
97
+ memoriesWithoutLinks: totalMemories - memoriesWithLinks,
98
+ averageLinksPerMemory: totalMemories > 0
99
+ ? totalLinks / totalMemories
100
+ : 0,
101
+ };
102
+ }
103
+ //# sourceMappingURL=link-discovery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"link-discovery.js","sourceRoot":"","sources":["../../src/worker/link-discovery.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EACL,WAAW,EACX,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,oBAAoB,CAAC;AAG5B;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB,CAAC,QAAgB,EAAE;IACrD,MAAM,EAAE,GAAG,WAAW,EAAE,CAAC;IAEzB,oDAAoD;IACpD,qEAAqE;IACrE,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC;;;;;;GAMvB,CAAC,CAAC,GAAG,CAAC,KAAK,CAA8B,CAAC;IAE3C,OAAO,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;AAC/B,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,uBAAuB,CACrC,WAAmB,CAAC,EACpB,QAAgB,EAAE;IAElB,MAAM,EAAE,GAAG,WAAW,EAAE,CAAC;IAEzB,2EAA2E;IAC3E,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC;;;;;;;;GAQvB,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAA8B,CAAC;IAErD,OAAO,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;AAC/B,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB,CAAC,QAAgB,EAAE;IACrD,MAAM,QAAQ,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;IAC7C,IAAI,YAAY,GAAG,CAAC,CAAC;IAErB,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;QAC9B,IAAI,CAAC;YACH,gCAAgC;YAChC,MAAM,aAAa,GAAG,mBAAmB,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YAErD,KAAK,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;gBAChC,MAAM,IAAI,GAAG,gBAAgB,CAC3B,MAAM,CAAC,EAAE,EACT,GAAG,CAAC,QAAQ,EACZ,GAAG,CAAC,YAAY,EAChB,GAAG,CAAC,QAAQ,CACb,CAAC;gBACF,IAAI,IAAI,EAAE,CAAC;oBACT,YAAY,EAAE,CAAC;gBACjB,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,oDAAoD;YACpD,OAAO,CAAC,KAAK,CACX,kDAAkD,MAAM,CAAC,EAAE,GAAG,EAC9D,CAAC,CACF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,YAAY,CAAC;AACtB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB;IAMlC,MAAM,EAAE,GAAG,WAAW,EAAE,CAAC;IAEzB,MAAM,aAAa,GAAI,EAAE,CAAC,OAAO,CAC/B,wCAAwC,CACzC,CAAC,GAAG,EAAwB,CAAC,KAAK,CAAC;IAEpC,MAAM,iBAAiB,GAAI,EAAE,CAAC,OAAO,CAAC;;GAErC,CAAC,CAAC,GAAG,EAAwB,CAAC,KAAK,CAAC;IAErC,MAAM,UAAU,GAAI,EAAE,CAAC,OAAO,CAC5B,4CAA4C,CAC7C,CAAC,GAAG,EAAwB,CAAC,KAAK,CAAC;IAEpC,OAAO;QACL,aAAa;QACb,iBAAiB;QACjB,oBAAoB,EAAE,aAAa,GAAG,iBAAiB;QACvD,qBAAqB,EAAE,aAAa,GAAG,CAAC;YACtC,CAAC,CAAC,UAAU,GAAG,aAAa;YAC5B,CAAC,CAAC,CAAC;KACN,CAAC;AACJ,CAAC"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Predictive Consolidation Module
3
+ *
4
+ * Phase 4 Organic Brain Feature
5
+ *
6
+ * Determines when to run consolidation early based on memory pressure
7
+ * and activity patterns, rather than waiting for the 4-hour cycle.
8
+ */
9
+ import { WorkerConfig, PredictiveDecision } from './types.js';
10
+ /**
11
+ * Memory statistics type (matches getMemoryStats return type)
12
+ */
13
+ export interface MemoryStats {
14
+ total: number;
15
+ shortTerm: number;
16
+ longTerm: number;
17
+ episodic: number;
18
+ byCategory: Record<string, number>;
19
+ averageSalience: number;
20
+ }
21
+ /**
22
+ * Determine if consolidation should run early
23
+ * More intelligent than just waiting for the 4-hour cycle
24
+ *
25
+ * @param stats - Current memory statistics
26
+ * @param config - Worker configuration
27
+ * @returns Decision object with shouldRun, reason, and urgency
28
+ */
29
+ export declare function shouldTriggerPredictiveConsolidation(stats: MemoryStats, config: WorkerConfig): PredictiveDecision;
30
+ /**
31
+ * Get detailed memory pressure information
32
+ * Useful for dashboard visualization and debugging
33
+ *
34
+ * @param stats - Current memory statistics
35
+ * @param config - Worker configuration
36
+ * @returns Object with detailed pressure metrics
37
+ */
38
+ export declare function getMemoryPressure(stats: MemoryStats, config: WorkerConfig): {
39
+ stmFullness: number;
40
+ totalFullness: number;
41
+ ltmFullness: number;
42
+ isWarning: boolean;
43
+ isCritical: boolean;
44
+ recommendation: string;
45
+ };
46
+ //# sourceMappingURL=predictive-consolidation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"predictive-consolidation.d.ts","sourceRoot":"","sources":["../../src/worker/predictive-consolidation.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAE9D;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,eAAe,EAAE,MAAM,CAAC;CACzB;AASD;;;;;;;GAOG;AACH,wBAAgB,oCAAoC,CAClD,KAAK,EAAE,WAAW,EAClB,MAAM,EAAE,YAAY,GACnB,kBAAkB,CA8DpB;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,WAAW,EAClB,MAAM,EAAE,YAAY,GACnB;IACD,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;CACxB,CAwBA"}
@@ -0,0 +1,110 @@
1
+ /**
2
+ * Predictive Consolidation Module
3
+ *
4
+ * Phase 4 Organic Brain Feature
5
+ *
6
+ * Determines when to run consolidation early based on memory pressure
7
+ * and activity patterns, rather than waiting for the 4-hour cycle.
8
+ */
9
+ import { getDatabase } from '../database/init.js';
10
+ /**
11
+ * Memory limits (from DEFAULT_CONFIG)
12
+ */
13
+ const MAX_SHORT_TERM = 100;
14
+ const MAX_LONG_TERM = 1000;
15
+ const MAX_TOTAL = MAX_SHORT_TERM + MAX_LONG_TERM;
16
+ /**
17
+ * Determine if consolidation should run early
18
+ * More intelligent than just waiting for the 4-hour cycle
19
+ *
20
+ * @param stats - Current memory statistics
21
+ * @param config - Worker configuration
22
+ * @returns Decision object with shouldRun, reason, and urgency
23
+ */
24
+ export function shouldTriggerPredictiveConsolidation(stats, config) {
25
+ const stmFullness = stats.shortTerm / MAX_SHORT_TERM;
26
+ const totalFullness = stats.total / MAX_TOTAL;
27
+ // Critical: Over 85% STM capacity - consolidate immediately
28
+ if (stmFullness > config.stmCriticalThreshold) {
29
+ return {
30
+ shouldRun: true,
31
+ reason: `STM at ${(stmFullness * 100).toFixed(0)}% (critical threshold)`,
32
+ urgency: 'critical',
33
+ };
34
+ }
35
+ // High: Over 80% total capacity
36
+ if (totalFullness > config.totalMemoryWarningThreshold) {
37
+ return {
38
+ shouldRun: true,
39
+ reason: `Total memory at ${(totalFullness * 100).toFixed(0)}% capacity`,
40
+ urgency: 'high',
41
+ };
42
+ }
43
+ // Medium: Over 70% STM + high recent activity
44
+ if (stmFullness > config.stmWarningThreshold) {
45
+ const db = getDatabase();
46
+ // Check recent activity (memories created in last 30 minutes)
47
+ const recentActivity = db.prepare(`
48
+ SELECT COUNT(*) as count FROM memories
49
+ WHERE created_at > datetime('now', '-30 minutes')
50
+ `).get();
51
+ if (recentActivity.count >= config.highActivityThreshold) {
52
+ return {
53
+ shouldRun: true,
54
+ reason: `STM at ${(stmFullness * 100).toFixed(0)}% with high activity (${recentActivity.count} recent memories)`,
55
+ urgency: 'medium',
56
+ };
57
+ }
58
+ // Check if many memories are below deletion threshold
59
+ // These are candidates for cleanup
60
+ const lowScoreCount = db.prepare(`
61
+ SELECT COUNT(*) as count FROM memories
62
+ WHERE type = 'short_term' AND decayed_score < 0.25
63
+ `).get();
64
+ if (lowScoreCount.count > 15) {
65
+ return {
66
+ shouldRun: true,
67
+ reason: `${lowScoreCount.count} STM memories below salience threshold`,
68
+ urgency: 'medium',
69
+ };
70
+ }
71
+ }
72
+ // No consolidation needed
73
+ return {
74
+ shouldRun: false,
75
+ reason: 'No consolidation triggers met',
76
+ urgency: 'low',
77
+ };
78
+ }
79
+ /**
80
+ * Get detailed memory pressure information
81
+ * Useful for dashboard visualization and debugging
82
+ *
83
+ * @param stats - Current memory statistics
84
+ * @param config - Worker configuration
85
+ * @returns Object with detailed pressure metrics
86
+ */
87
+ export function getMemoryPressure(stats, config) {
88
+ const stmFullness = stats.shortTerm / MAX_SHORT_TERM;
89
+ const ltmFullness = stats.longTerm / MAX_LONG_TERM;
90
+ const totalFullness = stats.total / MAX_TOTAL;
91
+ const isCritical = stmFullness > config.stmCriticalThreshold;
92
+ const isWarning = stmFullness > config.stmWarningThreshold ||
93
+ totalFullness > config.totalMemoryWarningThreshold;
94
+ let recommendation = 'Memory levels healthy';
95
+ if (isCritical) {
96
+ recommendation = 'Immediate consolidation recommended';
97
+ }
98
+ else if (isWarning) {
99
+ recommendation = 'Consider running consolidation soon';
100
+ }
101
+ return {
102
+ stmFullness,
103
+ totalFullness,
104
+ ltmFullness,
105
+ isWarning,
106
+ isCritical,
107
+ recommendation,
108
+ };
109
+ }
110
+ //# sourceMappingURL=predictive-consolidation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"predictive-consolidation.js","sourceRoot":"","sources":["../../src/worker/predictive-consolidation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,91 @@
1
+ /**
2
+ * Brain Worker Types and Configuration
3
+ *
4
+ * Phase 4 Organic Brain Feature
5
+ *
6
+ * Defines configuration, result types, and status interfaces
7
+ * for the background brain worker.
8
+ */
9
+ import { ConsolidationResult } from '../memory/types.js';
10
+ /**
11
+ * Configuration for the brain worker
12
+ */
13
+ export interface WorkerConfig {
14
+ /** Light tick interval - activation pruning, predictive check (default: 5 min) */
15
+ lightTickIntervalMs: number;
16
+ /** Medium tick interval - link discovery, contradiction scan (default: 30 min) */
17
+ mediumTickIntervalMs: number;
18
+ /** STM warning threshold - consider consolidation when exceeded (default: 0.7 = 70%) */
19
+ stmWarningThreshold: number;
20
+ /** STM critical threshold - immediate consolidation (default: 0.85 = 85%) */
21
+ stmCriticalThreshold: number;
22
+ /** Total memory warning threshold (default: 0.8 = 80% of 1100 total) */
23
+ totalMemoryWarningThreshold: number;
24
+ /** Max memories to process for link discovery per cycle (default: 10) */
25
+ maxLinksPerCycle: number;
26
+ /** Max contradiction pairs to check per scan (default: 50) */
27
+ contradictionScanLimit: number;
28
+ /** High activity threshold - memories created in 30 min (default: 5) */
29
+ highActivityThreshold: number;
30
+ }
31
+ /**
32
+ * Default worker configuration
33
+ */
34
+ export declare const DEFAULT_WORKER_CONFIG: WorkerConfig;
35
+ /**
36
+ * Result of a light tick operation
37
+ */
38
+ export interface LightTickResult {
39
+ /** Number of stale activation entries pruned */
40
+ activationsPruned: number;
41
+ /** Consolidation result if predictive consolidation ran, null otherwise */
42
+ predictiveConsolidation: ConsolidationResult | null;
43
+ /** When this tick completed */
44
+ timestamp: Date;
45
+ }
46
+ /**
47
+ * Result of a medium tick operation
48
+ */
49
+ export interface MediumTickResult {
50
+ /** Number of new links discovered and created */
51
+ linksDiscovered: number;
52
+ /** Number of contradictions detected */
53
+ contradictionsFound: number;
54
+ /** Number of contradiction links created */
55
+ contradictionsLinked: number;
56
+ /** Number of memories scanned for links */
57
+ memoriesScanned: number;
58
+ /** When this tick completed */
59
+ timestamp: Date;
60
+ }
61
+ /**
62
+ * Current status of the brain worker
63
+ */
64
+ export interface WorkerStatus {
65
+ /** Whether the worker is currently running */
66
+ isRunning: boolean;
67
+ /** When the last light tick completed */
68
+ lastLightTick: Date | null;
69
+ /** When the last medium tick completed */
70
+ lastMediumTick: Date | null;
71
+ /** When the last predictive consolidation ran */
72
+ lastConsolidation: Date | null;
73
+ /** Cumulative statistics */
74
+ stats: {
75
+ lightTicks: number;
76
+ mediumTicks: number;
77
+ consolidations: number;
78
+ };
79
+ }
80
+ /**
81
+ * Decision from predictive consolidation check
82
+ */
83
+ export interface PredictiveDecision {
84
+ /** Whether consolidation should run */
85
+ shouldRun: boolean;
86
+ /** Human-readable reason for the decision */
87
+ reason: string;
88
+ /** Urgency level of the consolidation need */
89
+ urgency: 'low' | 'medium' | 'high' | 'critical';
90
+ }
91
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/worker/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAEzD;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,kFAAkF;IAClF,mBAAmB,EAAE,MAAM,CAAC;IAE5B,kFAAkF;IAClF,oBAAoB,EAAE,MAAM,CAAC;IAE7B,wFAAwF;IACxF,mBAAmB,EAAE,MAAM,CAAC;IAE5B,6EAA6E;IAC7E,oBAAoB,EAAE,MAAM,CAAC;IAE7B,wEAAwE;IACxE,2BAA2B,EAAE,MAAM,CAAC;IAEpC,yEAAyE;IACzE,gBAAgB,EAAE,MAAM,CAAC;IAEzB,8DAA8D;IAC9D,sBAAsB,EAAE,MAAM,CAAC;IAE/B,wEAAwE;IACxE,qBAAqB,EAAE,MAAM,CAAC;CAC/B;AAED;;GAEG;AACH,eAAO,MAAM,qBAAqB,EAAE,YASnC,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,gDAAgD;IAChD,iBAAiB,EAAE,MAAM,CAAC;IAE1B,2EAA2E;IAC3E,uBAAuB,EAAE,mBAAmB,GAAG,IAAI,CAAC;IAEpD,+BAA+B;IAC/B,SAAS,EAAE,IAAI,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,iDAAiD;IACjD,eAAe,EAAE,MAAM,CAAC;IAExB,wCAAwC;IACxC,mBAAmB,EAAE,MAAM,CAAC;IAE5B,4CAA4C;IAC5C,oBAAoB,EAAE,MAAM,CAAC;IAE7B,2CAA2C;IAC3C,eAAe,EAAE,MAAM,CAAC;IAExB,+BAA+B;IAC/B,SAAS,EAAE,IAAI,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,8CAA8C;IAC9C,SAAS,EAAE,OAAO,CAAC;IAEnB,yCAAyC;IACzC,aAAa,EAAE,IAAI,GAAG,IAAI,CAAC;IAE3B,0CAA0C;IAC1C,cAAc,EAAE,IAAI,GAAG,IAAI,CAAC;IAE5B,iDAAiD;IACjD,iBAAiB,EAAE,IAAI,GAAG,IAAI,CAAC;IAE/B,4BAA4B;IAC5B,KAAK,EAAE;QACL,UAAU,EAAE,MAAM,CAAC;QACnB,WAAW,EAAE,MAAM,CAAC;QACpB,cAAc,EAAE,MAAM,CAAC;KACxB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,uCAAuC;IACvC,SAAS,EAAE,OAAO,CAAC;IAEnB,6CAA6C;IAC7C,MAAM,EAAE,MAAM,CAAC;IAEf,8CAA8C;IAC9C,OAAO,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;CACjD"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Brain Worker Types and Configuration
3
+ *
4
+ * Phase 4 Organic Brain Feature
5
+ *
6
+ * Defines configuration, result types, and status interfaces
7
+ * for the background brain worker.
8
+ */
9
+ /**
10
+ * Default worker configuration
11
+ */
12
+ export const DEFAULT_WORKER_CONFIG = {
13
+ lightTickIntervalMs: 5 * 60 * 1000, // 5 minutes
14
+ mediumTickIntervalMs: 30 * 60 * 1000, // 30 minutes
15
+ stmWarningThreshold: 0.7, // 70 of 100 STM
16
+ stmCriticalThreshold: 0.85, // 85 of 100 STM
17
+ totalMemoryWarningThreshold: 0.8, // 880 of 1100 total
18
+ maxLinksPerCycle: 10,
19
+ contradictionScanLimit: 50,
20
+ highActivityThreshold: 5,
21
+ };
22
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/worker/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAiCH;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAiB;IACjD,mBAAmB,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI,EAAQ,YAAY;IACtD,oBAAoB,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAM,aAAa;IACvD,mBAAmB,EAAE,GAAG,EAAmB,gBAAgB;IAC3D,oBAAoB,EAAE,IAAI,EAAiB,gBAAgB;IAC3D,2BAA2B,EAAE,GAAG,EAAW,oBAAoB;IAC/D,gBAAgB,EAAE,EAAE;IACpB,sBAAsB,EAAE,EAAE;IAC1B,qBAAqB,EAAE,CAAC;CACzB,CAAC"}
@@ -0,0 +1,71 @@
1
+ ---
2
+ name: cortex-memory
3
+ description: "Persistent brain-like memory via ShieldCortex — auto-saves session context and recalls past knowledge"
4
+ homepage: https://github.com/mkdelta221/shieldcortex
5
+ metadata:
6
+ {
7
+ "clawdbot":
8
+ {
9
+ "emoji": "🧠",
10
+ "events": ["command:new", "agent:bootstrap", "command"],
11
+ "requires": { "anyBins": ["npx"] },
12
+ "install": [{ "id": "community", "kind": "community", "label": "ShieldCortex" }],
13
+ },
14
+ }
15
+ ---
16
+
17
+ # Cortex Memory Hook
18
+
19
+ Integrates [ShieldCortex](https://github.com/mkdelta221/shieldcortex) persistent memory. Automatically saves important session context and recalls past knowledge at session start.
20
+
21
+ ## What It Does
22
+
23
+ ### On `/new` (Session End)
24
+ 1. Reads the ending session transcript
25
+ 2. Pattern-matches for decisions, bug fixes, learnings, architecture changes, and preferences
26
+ 3. Saves up to 5 high-salience memories to ShieldCortex via mcporter
27
+
28
+ ### On Session Start (Agent Bootstrap)
29
+ 1. Calls Cortex `get_context` to retrieve relevant memories
30
+ 2. Injects them into the agent's bootstrap context
31
+ 3. Agent starts with knowledge of past sessions
32
+
33
+ ### Keyword Triggers
34
+ - Say **"remember this"** or **"don't forget"** followed by content
35
+ - Auto-saves to Cortex with critical importance
36
+
37
+ ## Requirements
38
+
39
+ - **npx** must be available (Node.js installed)
40
+ - ShieldCortex installs automatically on first use via `npx -y shieldcortex`
41
+ - mcporter must be available for MCP tool calls
42
+
43
+ ## Database
44
+
45
+ Memories stored in `~/.shieldcortex/memories.db` (SQLite). Shared with Claude Code sessions — memories created here are available everywhere.
46
+
47
+ ## Install
48
+
49
+ ```bash
50
+ npx shieldcortex clawdbot install
51
+ ```
52
+
53
+ ## Uninstall
54
+
55
+ ```bash
56
+ npx shieldcortex clawdbot uninstall
57
+ ```
58
+
59
+ Or disable without removing:
60
+
61
+ ```json
62
+ {
63
+ "hooks": {
64
+ "internal": {
65
+ "entries": {
66
+ "cortex-memory": { "enabled": false }
67
+ }
68
+ }
69
+ }
70
+ }
71
+ ```