nexo-brain 1.6.0 → 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 (301) hide show
  1. package/README.md +102 -79
  2. package/bin/nexo-brain.js +681 -303
  3. package/bin/postinstall.js +46 -0
  4. package/package.json +14 -2
  5. package/scripts/migrate-to-unified.sh +813 -0
  6. package/scripts/migrate-v1.7-to-v1.8.py +214 -0
  7. package/scripts/pre-commit-check.sh +1 -1
  8. package/src/__pycache__/auto_close_sessions.cpython-310.pyc +0 -0
  9. package/src/__pycache__/auto_close_sessions.cpython-314.pyc +0 -0
  10. package/src/__pycache__/auto_update.cpython-310.pyc +0 -0
  11. package/src/__pycache__/auto_update.cpython-314.pyc +0 -0
  12. package/src/__pycache__/claim_graph.cpython-310.pyc +0 -0
  13. package/src/__pycache__/claim_graph.cpython-314.pyc +0 -0
  14. package/src/__pycache__/evolution_cycle.cpython-310.pyc +0 -0
  15. package/src/__pycache__/evolution_cycle.cpython-314.pyc +0 -0
  16. package/src/__pycache__/hnsw_index.cpython-310.pyc +0 -0
  17. package/src/__pycache__/hnsw_index.cpython-314.pyc +0 -0
  18. package/src/__pycache__/kg_populate.cpython-310.pyc +0 -0
  19. package/src/__pycache__/kg_populate.cpython-314.pyc +0 -0
  20. package/src/__pycache__/knowledge_graph.cpython-310.pyc +0 -0
  21. package/src/__pycache__/knowledge_graph.cpython-314.pyc +0 -0
  22. package/src/__pycache__/maintenance.cpython-310.pyc +0 -0
  23. package/src/__pycache__/maintenance.cpython-314.pyc +0 -0
  24. package/src/__pycache__/migrate_embeddings.cpython-310.pyc +0 -0
  25. package/src/__pycache__/migrate_embeddings.cpython-314.pyc +0 -0
  26. package/src/__pycache__/plugin_loader.cpython-310.pyc +0 -0
  27. package/src/__pycache__/plugin_loader.cpython-314.pyc +0 -0
  28. package/src/__pycache__/server.cpython-310.pyc +0 -0
  29. package/src/__pycache__/server.cpython-314.pyc +0 -0
  30. package/src/__pycache__/storage_router.cpython-310.pyc +0 -0
  31. package/src/__pycache__/storage_router.cpython-314.pyc +0 -0
  32. package/src/__pycache__/tools_coordination.cpython-310.pyc +0 -0
  33. package/src/__pycache__/tools_coordination.cpython-314.pyc +0 -0
  34. package/src/__pycache__/tools_credentials.cpython-310.pyc +0 -0
  35. package/src/__pycache__/tools_credentials.cpython-314.pyc +0 -0
  36. package/src/__pycache__/tools_learnings.cpython-310.pyc +0 -0
  37. package/src/__pycache__/tools_learnings.cpython-314.pyc +0 -0
  38. package/src/__pycache__/tools_menu.cpython-310.pyc +0 -0
  39. package/src/__pycache__/tools_menu.cpython-314.pyc +0 -0
  40. package/src/__pycache__/tools_reminders.cpython-310.pyc +0 -0
  41. package/src/__pycache__/tools_reminders.cpython-314.pyc +0 -0
  42. package/src/__pycache__/tools_reminders_crud.cpython-310.pyc +0 -0
  43. package/src/__pycache__/tools_reminders_crud.cpython-314.pyc +0 -0
  44. package/src/__pycache__/tools_sessions.cpython-310.pyc +0 -0
  45. package/src/__pycache__/tools_sessions.cpython-314.pyc +0 -0
  46. package/src/__pycache__/tools_task_history.cpython-310.pyc +0 -0
  47. package/src/__pycache__/tools_task_history.cpython-314.pyc +0 -0
  48. package/src/auto_close_sessions.py +4 -3
  49. package/src/auto_update.py +634 -0
  50. package/src/cognitive/__pycache__/__init__.cpython-310.pyc +0 -0
  51. package/src/cognitive/__pycache__/__init__.cpython-314.pyc +0 -0
  52. package/src/cognitive/__pycache__/_core.cpython-310.pyc +0 -0
  53. package/src/cognitive/__pycache__/_core.cpython-314.pyc +0 -0
  54. package/src/cognitive/__pycache__/_decay.cpython-310.pyc +0 -0
  55. package/src/cognitive/__pycache__/_decay.cpython-314.pyc +0 -0
  56. package/src/cognitive/__pycache__/_ingest.cpython-310.pyc +0 -0
  57. package/src/cognitive/__pycache__/_ingest.cpython-314.pyc +0 -0
  58. package/src/cognitive/__pycache__/_memory.cpython-310.pyc +0 -0
  59. package/src/cognitive/__pycache__/_memory.cpython-314.pyc +0 -0
  60. package/src/cognitive/__pycache__/_search.cpython-310.pyc +0 -0
  61. package/src/cognitive/__pycache__/_search.cpython-314.pyc +0 -0
  62. package/src/cognitive/__pycache__/_trust.cpython-310.pyc +0 -0
  63. package/src/cognitive/__pycache__/_trust.cpython-314.pyc +0 -0
  64. package/src/cognitive/_core.py +7 -3
  65. package/src/cognitive/_decay.py +1 -1
  66. package/src/cognitive/_memory.py +7 -3
  67. package/src/cognitive/_search.py +12 -10
  68. package/src/cognitive/_trust.py +3 -3
  69. package/src/dashboard/__pycache__/__init__.cpython-310.pyc +0 -0
  70. package/src/dashboard/__pycache__/__init__.cpython-314.pyc +0 -0
  71. package/src/dashboard/__pycache__/app.cpython-310.pyc +0 -0
  72. package/src/dashboard/__pycache__/app.cpython-314.pyc +0 -0
  73. package/src/dashboard/app.py +9 -3
  74. package/src/dashboard/templates/dashboard.html +4 -4
  75. package/src/dashboard/templates/operations.html +6 -6
  76. package/src/db/__init__.py +2 -1
  77. package/src/db/__pycache__/__init__.cpython-310.pyc +0 -0
  78. package/src/db/__pycache__/__init__.cpython-312.pyc +0 -0
  79. package/src/db/__pycache__/__init__.cpython-314.pyc +0 -0
  80. package/src/db/__pycache__/_core.cpython-310.pyc +0 -0
  81. package/src/db/__pycache__/_core.cpython-312.pyc +0 -0
  82. package/src/db/__pycache__/_core.cpython-314.pyc +0 -0
  83. package/src/db/__pycache__/_credentials.cpython-310.pyc +0 -0
  84. package/src/db/__pycache__/_credentials.cpython-312.pyc +0 -0
  85. package/src/db/__pycache__/_credentials.cpython-314.pyc +0 -0
  86. package/src/db/__pycache__/_entities.cpython-310.pyc +0 -0
  87. package/src/db/__pycache__/_entities.cpython-312.pyc +0 -0
  88. package/src/db/__pycache__/_entities.cpython-314.pyc +0 -0
  89. package/src/db/__pycache__/_episodic.cpython-310.pyc +0 -0
  90. package/src/db/__pycache__/_episodic.cpython-312.pyc +0 -0
  91. package/src/db/__pycache__/_episodic.cpython-314.pyc +0 -0
  92. package/src/db/__pycache__/_evolution.cpython-310.pyc +0 -0
  93. package/src/db/__pycache__/_evolution.cpython-312.pyc +0 -0
  94. package/src/db/__pycache__/_evolution.cpython-314.pyc +0 -0
  95. package/src/db/__pycache__/_fts.cpython-310.pyc +0 -0
  96. package/src/db/__pycache__/_fts.cpython-312.pyc +0 -0
  97. package/src/db/__pycache__/_fts.cpython-314.pyc +0 -0
  98. package/src/db/__pycache__/_learnings.cpython-310.pyc +0 -0
  99. package/src/db/__pycache__/_learnings.cpython-312.pyc +0 -0
  100. package/src/db/__pycache__/_learnings.cpython-314.pyc +0 -0
  101. package/src/db/__pycache__/_reminders.cpython-310.pyc +0 -0
  102. package/src/db/__pycache__/_reminders.cpython-312.pyc +0 -0
  103. package/src/db/__pycache__/_reminders.cpython-314.pyc +0 -0
  104. package/src/db/__pycache__/_schema.cpython-310.pyc +0 -0
  105. package/src/db/__pycache__/_schema.cpython-312.pyc +0 -0
  106. package/src/db/__pycache__/_schema.cpython-314.pyc +0 -0
  107. package/src/db/__pycache__/_sessions.cpython-310.pyc +0 -0
  108. package/src/db/__pycache__/_sessions.cpython-312.pyc +0 -0
  109. package/src/db/__pycache__/_sessions.cpython-314.pyc +0 -0
  110. package/src/db/__pycache__/_tasks.cpython-310.pyc +0 -0
  111. package/src/db/__pycache__/_tasks.cpython-312.pyc +0 -0
  112. package/src/db/__pycache__/_tasks.cpython-314.pyc +0 -0
  113. package/src/db/_core.py +7 -3
  114. package/src/db/_episodic.py +69 -1
  115. package/src/db/_fts.py +12 -12
  116. package/src/db/_reminders.py +89 -15
  117. package/src/db/_schema.py +41 -0
  118. package/src/evolution_cycle.py +33 -11
  119. package/src/hooks/__pycache__/auto_capture.cpython-310.pyc +0 -0
  120. package/src/hooks/__pycache__/auto_capture.cpython-314.pyc +0 -0
  121. package/src/hooks/auto_capture.py +1 -1
  122. package/src/hooks/capture-tool-logs.sh +76 -0
  123. package/src/hooks/inbox-hook.sh +2 -1
  124. package/src/hooks/post-compact.sh +2 -1
  125. package/src/hooks/pre-compact.sh +104 -2
  126. package/src/hooks/session-start.sh +6 -2
  127. package/src/hooks/session-stop.sh +2 -1
  128. package/src/kg_populate.py +4 -1
  129. package/src/migrate_embeddings.py +4 -1
  130. package/src/plugin_loader.py +100 -34
  131. package/src/plugins/__pycache__/__init__.cpython-310.pyc +0 -0
  132. package/src/plugins/__pycache__/__init__.cpython-314.pyc +0 -0
  133. package/src/plugins/__pycache__/adaptive_mode.cpython-310.pyc +0 -0
  134. package/src/plugins/__pycache__/adaptive_mode.cpython-314.pyc +0 -0
  135. package/src/plugins/__pycache__/agents.cpython-310.pyc +0 -0
  136. package/src/plugins/__pycache__/agents.cpython-314.pyc +0 -0
  137. package/src/plugins/__pycache__/artifact_registry.cpython-310.pyc +0 -0
  138. package/src/plugins/__pycache__/artifact_registry.cpython-314.pyc +0 -0
  139. package/src/plugins/__pycache__/backup.cpython-310.pyc +0 -0
  140. package/src/plugins/__pycache__/backup.cpython-314.pyc +0 -0
  141. package/src/plugins/__pycache__/cognitive_memory.cpython-310.pyc +0 -0
  142. package/src/plugins/__pycache__/cognitive_memory.cpython-314.pyc +0 -0
  143. package/src/plugins/__pycache__/core_rules.cpython-310.pyc +0 -0
  144. package/src/plugins/__pycache__/core_rules.cpython-314.pyc +0 -0
  145. package/src/plugins/__pycache__/cortex.cpython-310.pyc +0 -0
  146. package/src/plugins/__pycache__/cortex.cpython-314.pyc +0 -0
  147. package/src/plugins/__pycache__/entities.cpython-310.pyc +0 -0
  148. package/src/plugins/__pycache__/entities.cpython-314.pyc +0 -0
  149. package/src/plugins/__pycache__/episodic_memory.cpython-310.pyc +0 -0
  150. package/src/plugins/__pycache__/episodic_memory.cpython-314.pyc +0 -0
  151. package/src/plugins/__pycache__/evolution.cpython-310.pyc +0 -0
  152. package/src/plugins/__pycache__/evolution.cpython-314.pyc +0 -0
  153. package/src/plugins/__pycache__/guard.cpython-310.pyc +0 -0
  154. package/src/plugins/__pycache__/guard.cpython-314.pyc +0 -0
  155. package/src/plugins/__pycache__/knowledge_graph_tools.cpython-310.pyc +0 -0
  156. package/src/plugins/__pycache__/knowledge_graph_tools.cpython-314.pyc +0 -0
  157. package/src/plugins/__pycache__/preferences.cpython-310.pyc +0 -0
  158. package/src/plugins/__pycache__/preferences.cpython-314.pyc +0 -0
  159. package/src/plugins/__pycache__/update.cpython-310.pyc +0 -0
  160. package/src/plugins/agents.py +2 -2
  161. package/src/plugins/backup.py +5 -4
  162. package/src/plugins/cognitive_memory.py +1 -1
  163. package/src/plugins/core_rules.py +5 -1
  164. package/src/plugins/episodic_memory.py +43 -16
  165. package/src/plugins/evolution.py +7 -2
  166. package/src/plugins/guard.py +45 -17
  167. package/src/plugins/update.py +238 -0
  168. package/src/requirements.txt +12 -0
  169. package/src/rules/__pycache__/__init__.cpython-310.pyc +0 -0
  170. package/src/rules/__pycache__/__init__.cpython-314.pyc +0 -0
  171. package/src/rules/__pycache__/migrate.cpython-310.pyc +0 -0
  172. package/src/rules/__pycache__/migrate.cpython-314.pyc +0 -0
  173. package/src/scripts/__pycache__/check-context.cpython-310.pyc +0 -0
  174. package/src/scripts/__pycache__/check-context.cpython-314.pyc +0 -0
  175. package/src/scripts/__pycache__/nexo-auto-update.cpython-310.pyc +0 -0
  176. package/src/scripts/__pycache__/nexo-auto-update.cpython-314.pyc +0 -0
  177. package/src/scripts/__pycache__/nexo-catchup.cpython-310.pyc +0 -0
  178. package/src/scripts/__pycache__/nexo-catchup.cpython-314.pyc +0 -0
  179. package/src/scripts/__pycache__/nexo-cognitive-decay.cpython-310.pyc +0 -0
  180. package/src/scripts/__pycache__/nexo-cognitive-decay.cpython-314.pyc +0 -0
  181. package/src/scripts/__pycache__/nexo-daily-self-audit.cpython-310.pyc +0 -0
  182. package/src/scripts/__pycache__/nexo-daily-self-audit.cpython-314.pyc +0 -0
  183. package/src/scripts/__pycache__/nexo-evolution-run.cpython-310.pyc +0 -0
  184. package/src/scripts/__pycache__/nexo-evolution-run.cpython-314.pyc +0 -0
  185. package/src/scripts/__pycache__/nexo-followup-hygiene.cpython-310.pyc +0 -0
  186. package/src/scripts/__pycache__/nexo-followup-hygiene.cpython-314.pyc +0 -0
  187. package/src/scripts/__pycache__/nexo-github-monitor.cpython-310.pyc +0 -0
  188. package/src/scripts/__pycache__/nexo-github-monitor.cpython-314.pyc +0 -0
  189. package/src/scripts/__pycache__/nexo-immune.cpython-310.pyc +0 -0
  190. package/src/scripts/__pycache__/nexo-immune.cpython-314.pyc +0 -0
  191. package/src/scripts/__pycache__/nexo-install.cpython-310.pyc +0 -0
  192. package/src/scripts/__pycache__/nexo-install.cpython-314.pyc +0 -0
  193. package/src/scripts/__pycache__/nexo-learning-housekeep.cpython-310.pyc +0 -0
  194. package/src/scripts/__pycache__/nexo-learning-housekeep.cpython-314.pyc +0 -0
  195. package/src/scripts/__pycache__/nexo-learning-validator.cpython-310.pyc +0 -0
  196. package/src/scripts/__pycache__/nexo-learning-validator.cpython-314.pyc +0 -0
  197. package/src/scripts/__pycache__/nexo-migrate.cpython-310.pyc +0 -0
  198. package/src/scripts/__pycache__/nexo-migrate.cpython-314.pyc +0 -0
  199. package/src/scripts/__pycache__/nexo-postmortem-consolidator.cpython-310.pyc +0 -0
  200. package/src/scripts/__pycache__/nexo-postmortem-consolidator.cpython-314.pyc +0 -0
  201. package/src/scripts/__pycache__/nexo-pre-commit.cpython-310.pyc +0 -0
  202. package/src/scripts/__pycache__/nexo-pre-commit.cpython-314.pyc +0 -0
  203. package/src/scripts/__pycache__/nexo-proactive-dashboard.cpython-310.pyc +0 -0
  204. package/src/scripts/__pycache__/nexo-proactive-dashboard.cpython-314.pyc +0 -0
  205. package/src/scripts/__pycache__/nexo-reflection.cpython-310.pyc +0 -0
  206. package/src/scripts/__pycache__/nexo-reflection.cpython-314.pyc +0 -0
  207. package/src/scripts/__pycache__/nexo-runtime-preflight.cpython-310.pyc +0 -0
  208. package/src/scripts/__pycache__/nexo-runtime-preflight.cpython-314.pyc +0 -0
  209. package/src/scripts/__pycache__/nexo-send-email.cpython-310.pyc +0 -0
  210. package/src/scripts/__pycache__/nexo-send-email.cpython-314.pyc +0 -0
  211. package/src/scripts/__pycache__/nexo-send-reply.cpython-310.pyc +0 -0
  212. package/src/scripts/__pycache__/nexo-send-reply.cpython-314.pyc +0 -0
  213. package/src/scripts/__pycache__/nexo-sleep.cpython-310.pyc +0 -0
  214. package/src/scripts/__pycache__/nexo-sleep.cpython-314.pyc +0 -0
  215. package/src/scripts/__pycache__/nexo-synthesis.cpython-310.pyc +0 -0
  216. package/src/scripts/__pycache__/nexo-synthesis.cpython-314.pyc +0 -0
  217. package/src/scripts/__pycache__/nexo-watchdog-smoke.cpython-310.pyc +0 -0
  218. package/src/scripts/__pycache__/nexo-watchdog-smoke.cpython-314.pyc +0 -0
  219. package/src/scripts/check-context.py +13 -3
  220. package/src/scripts/deep-sleep/__pycache__/analyze_session.cpython-310.pyc +0 -0
  221. package/src/scripts/deep-sleep/__pycache__/analyze_session.cpython-314.pyc +0 -0
  222. package/src/scripts/deep-sleep/__pycache__/apply_findings.cpython-310.pyc +0 -0
  223. package/src/scripts/deep-sleep/__pycache__/apply_findings.cpython-314.pyc +0 -0
  224. package/src/scripts/deep-sleep/__pycache__/collect_transcripts.cpython-310.pyc +0 -0
  225. package/src/scripts/deep-sleep/__pycache__/collect_transcripts.cpython-314.pyc +0 -0
  226. package/src/scripts/deep-sleep/analyze_session.py +3 -1
  227. package/src/scripts/deep-sleep/apply_findings.py +7 -4
  228. package/src/scripts/deep-sleep/collect_transcripts.py +3 -1
  229. package/src/scripts/nexo-auto-update.py +4 -211
  230. package/src/scripts/nexo-backup.sh +25 -0
  231. package/src/scripts/nexo-brain-activation.sh +26 -26
  232. package/src/scripts/nexo-catchup.py +39 -25
  233. package/src/scripts/nexo-cognitive-decay.py +12 -5
  234. package/src/scripts/nexo-daily-self-audit.py +36 -14
  235. package/src/scripts/nexo-deep-sleep.sh +4 -3
  236. package/src/scripts/nexo-evolution-run.py +40 -12
  237. package/src/scripts/nexo-followup-hygiene.py +6 -3
  238. package/src/scripts/nexo-github-monitor.py +11 -4
  239. package/src/scripts/nexo-immune.py +20 -3
  240. package/src/scripts/nexo-inbox-hook.sh +2 -1
  241. package/src/scripts/nexo-install.py +6 -0
  242. package/src/scripts/nexo-learning-housekeep.py +245 -0
  243. package/src/scripts/nexo-learning-validator.py +12 -2
  244. package/src/scripts/nexo-migrate.py +232 -0
  245. package/src/scripts/nexo-postmortem-consolidator.py +38 -19
  246. package/src/scripts/nexo-pre-commit.py +3 -1
  247. package/src/scripts/nexo-prevent-sleep.sh +29 -0
  248. package/src/scripts/nexo-proactive-dashboard.py +8 -6
  249. package/src/scripts/nexo-runtime-preflight.py +59 -55
  250. package/src/scripts/nexo-send-email.py +2 -2
  251. package/src/scripts/nexo-send-reply.py +3 -1
  252. package/src/scripts/nexo-sleep.py +21 -5
  253. package/src/scripts/nexo-snapshot-restore.sh +2 -1
  254. package/src/scripts/nexo-synthesis.py +19 -4
  255. package/src/scripts/nexo-tcc-approve.sh +79 -0
  256. package/src/scripts/nexo-update.sh +161 -0
  257. package/src/scripts/nexo-watchdog-smoke.py +18 -13
  258. package/src/scripts/nexo-watchdog.sh +41 -31
  259. package/src/server.py +107 -44
  260. package/src/storage_router.py +6 -2
  261. package/src/tools_coordination.py +14 -14
  262. package/src/tools_credentials.py +11 -11
  263. package/src/tools_learnings.py +36 -27
  264. package/src/tools_menu.py +7 -6
  265. package/src/tools_reminders.py +11 -5
  266. package/src/tools_reminders_crud.py +11 -9
  267. package/src/tools_sessions.py +62 -187
  268. package/src/tools_task_history.py +7 -7
  269. package/templates/CLAUDE.md.template +49 -469
  270. package/templates/launchagents/README.md +7 -7
  271. package/templates/launchagents/com.nexo.auto-close-sessions.plist +5 -1
  272. package/templates/launchagents/com.nexo.catchup.plist +4 -0
  273. package/templates/launchagents/com.nexo.cognitive-decay.plist +7 -0
  274. package/templates/launchagents/com.nexo.dashboard.plist +5 -1
  275. package/templates/launchagents/com.nexo.deep-sleep.plist +4 -0
  276. package/templates/launchagents/com.nexo.evolution.plist +4 -0
  277. package/templates/launchagents/com.nexo.followup-hygiene.plist +4 -0
  278. package/templates/launchagents/com.nexo.github-monitor.plist +3 -1
  279. package/templates/launchagents/com.nexo.immune.plist +4 -0
  280. package/templates/launchagents/com.nexo.postmortem.plist +4 -0
  281. package/templates/launchagents/com.nexo.self-audit.plist +4 -0
  282. package/templates/launchagents/com.nexo.synthesis.plist +4 -0
  283. package/templates/launchagents/com.nexo.watchdog.plist +4 -0
  284. package/templates/openclaw.json +1 -1
  285. package/tests/__pycache__/__init__.cpython-310.pyc +0 -0
  286. package/tests/__pycache__/__init__.cpython-314.pyc +0 -0
  287. package/tests/__pycache__/conftest.cpython-310-pytest-9.0.2.pyc +0 -0
  288. package/tests/__pycache__/conftest.cpython-310.pyc +0 -0
  289. package/tests/__pycache__/conftest.cpython-314-pytest-9.0.2.pyc +0 -0
  290. package/tests/__pycache__/test_cognitive.cpython-310-pytest-9.0.2.pyc +0 -0
  291. package/tests/__pycache__/test_cognitive.cpython-310.pyc +0 -0
  292. package/tests/__pycache__/test_cognitive.cpython-314-pytest-9.0.2.pyc +0 -0
  293. package/tests/__pycache__/test_knowledge_graph.cpython-310-pytest-9.0.2.pyc +0 -0
  294. package/tests/__pycache__/test_knowledge_graph.cpython-310.pyc +0 -0
  295. package/tests/__pycache__/test_knowledge_graph.cpython-314-pytest-9.0.2.pyc +0 -0
  296. package/tests/__pycache__/test_migrations.cpython-310-pytest-9.0.2.pyc +0 -0
  297. package/tests/__pycache__/test_migrations.cpython-310.pyc +0 -0
  298. package/tests/__pycache__/test_migrations.cpython-314-pytest-9.0.2.pyc +0 -0
  299. package/tests/conftest.py +2 -2
  300. package/tests/test_cognitive.py +7 -6
  301. package/tests/test_migrations.py +29 -3
package/README.md CHANGED
@@ -130,22 +130,10 @@ Like a human brain, NEXO Brain has automated processes that run while you're not
130
130
  |------|---------|---------------|
131
131
  | 03:00 | Decay + memory consolidation + merge duplicates + dreaming | Deep sleep consolidation |
132
132
  | 04:00 | Clean expired data, prune redundant memories | Synaptic pruning |
133
- | 04:30 | **Deep Sleep** — analyze full session transcripts for uncaptured corrections, protocol violations, missed commitments | REM sleep review |
134
133
  | 07:00 | Self-audit, health checks, metrics | Waking up + orientation |
135
134
  | 23:30 | Process day's events, extract patterns | Pre-sleep reflection |
136
135
  | Boot | Catch-up: run anything missed while computer was off | -- |
137
136
 
138
- #### Deep Sleep (v1.5.2)
139
-
140
- Deep Sleep reads your **complete session transcripts** (not just the diary summary) and finds what the agent missed during the day:
141
-
142
- - **Uncaptured corrections** — user corrections the agent didn't save as learnings
143
- - **Protocol violations** — guard_check skipped, trust not adjusted, change_log omitted
144
- - **Missed commitments** — things mentioned but never tracked as followups
145
- - **Quality issues** — agent declaring "done" when work wasn't complete
146
-
147
- Uses Claude CLI in `--bare` mode (no hooks, no CLAUDE.md interference). Catch-up system re-runs yesterday if the Mac was off.
148
-
149
137
  If your Mac was asleep during any scheduled process, NEXO Brain catches up in order when it wakes.
150
138
 
151
139
  ## Cognitive Cortex
@@ -210,7 +198,7 @@ This means long sessions (8+ hours) feel like one continuous conversation instea
210
198
 
211
199
  ## Cognitive Features
212
200
 
213
- NEXO Brain provides **100+ MCP tools** implementing cognitive science concepts that go beyond basic memory:
201
+ NEXO Brain provides 29 cognitive tools on top of the 78 base tools, totaling **115+ MCP tools**. These features implement cognitive science concepts that go beyond basic memory:
214
202
 
215
203
  ### Input Pipeline
216
204
 
@@ -238,13 +226,11 @@ NEXO Brain provides **100+ MCP tools** implementing cognitive science concepts t
238
226
  |---------|-------------|
239
227
  | **HyDE Query Expansion** | Generates hypothetical answer embeddings for richer semantic search. Instead of searching for "deploy error", it imagines what a helpful memory about deploy errors would look like, then searches for that. |
240
228
  | **Hybrid Search (FTS5+BM25+RRF)** | Combines dense vector search with BM25 keyword search via Reciprocal Rank Fusion. Outperforms pure semantic search on precise terminology and code identifiers. |
241
- | **KG Boost** | Knowledge Graph connection count influences retrieval ranking. Memories linked to well-connected entities (many edges) receive a logarithmic score bonus, surfacing contextually important facts higher. |
242
- | **HNSW Vector Index** | Optional approximate nearest neighbor index (hnswlib). Activates automatically when memory count exceeds 10,000. Falls back to exact brute-force below that threshold — no configuration needed. |
243
229
  | **Cross-Encoder Reranking** | After initial vector retrieval, a cross-encoder model rescores candidates for precision. The top-k results are reordered by true semantic relevance before being returned to the agent. |
244
230
  | **Multi-Query Decomposition** | Complex questions are automatically split into sub-queries. Each component is retrieved independently, then fused for a higher-quality answer — improves recall on multi-faceted prompts. |
245
231
  | **Temporal Indexing** | Memories are indexed by time in addition to semantics. Time-sensitive queries ("what did we decide last Tuesday?") use temporal proximity scoring alongside semantic similarity. |
246
232
  | **Spreading Activation** | Graph-based co-activation network. Memories retrieved together reinforce each other's connections, building an associative web that improves over time. |
247
- | **Recall Explanations** | Transparent score breakdown for every retrieval result. Shows exactly why a memory was returned: semantic similarity, recency, access frequency, KG boost, and co-activation bonuses. |
233
+ | **Recall Explanations** | Transparent score breakdown for every retrieval result. Shows exactly why a memory was returned: semantic similarity, recency, access frequency, and co-activation bonuses. |
248
234
 
249
235
  ### Proactive
250
236
 
@@ -281,21 +267,61 @@ NEXO Brain was evaluated on [LoCoMo](https://github.com/snap-research/locomo) (A
281
267
 
282
268
  Full results in [`benchmarks/locomo/results/`](benchmarks/locomo/results/).
283
269
 
284
- ## Full Orchestration System (v0.7.0)
270
+ ## Nervous System (v1.6.0)
271
+
272
+ NEXO Brain doesn't just respond — it runs autonomous processes in the background, like a biological nervous system. 11 scripts handle maintenance, health monitoring, and self-improvement without any user interaction:
273
+
274
+ | Script | Schedule | What It Does |
275
+ |--------|----------|-------------|
276
+ | **cognitive-decay** | 03:00 daily | Ebbinghaus decay + memory consolidation + duplicate merging + dreaming |
277
+ | **deep-sleep** | 04:30 daily | Reads full session transcripts, finds uncaptured corrections and protocol violations |
278
+ | **daily-self-audit** | 07:00 daily | Health checks, guard stats, trust score review, metrics |
279
+ | **catchup** | On boot | Runs any missed scheduled processes (Mac was off/asleep) |
280
+ | **evolution-run** | Weekly | Self-improvement proposals — NEXO suggests and applies enhancements |
281
+ | **followup-hygiene** | Weekly | Normalizes statuses, flags stale followups, cleans orphans |
282
+ | **immune** | 04:00 daily | Quarantine processing, memory promotion/rejection, synaptic pruning |
283
+ | **watchdog** | Every 30 min | Monitors 15+ services, LaunchAgents, and infrastructure health |
284
+ | **github-monitor** | 08:00 daily | Checks issues, PRs, and commits on public repos |
285
+ | **learning-validator** | Nightly | Validates learnings for staleness, contradictions, and duplicates |
286
+
287
+ All scripts run via macOS LaunchAgents (or catch-up on Linux). If your Mac was asleep during a scheduled process, the catch-up script re-runs everything in order when it wakes.
288
+
289
+ ### LaunchAgent Templates
290
+
291
+ 13 macOS automation templates are included for scheduling the nervous system. The installer configures them automatically. On Linux, equivalent cron entries are generated.
292
+
293
+ ## Dashboard (v1.6.0)
294
+
295
+ A web interface at `localhost:6174` with 6 interactive pages for visual insight into your brain's state:
296
+
297
+ | Page | What It Shows |
298
+ |------|-------------|
299
+ | **Overview** | System health at a glance — memory counts, trust score, active sessions, recent changes |
300
+ | **Graph** | Interactive D3.js visualization of the knowledge graph (nodes, edges, clusters) |
301
+ | **Memory** | Browse and search all memory stores (STM, LTM, sensory, archived) |
302
+ | **Somatic** | Pain map per file/area — see which parts of your codebase cause the most errors |
303
+ | **Adaptive** | Personality signals, learned weights, and current mode |
304
+ | **Sessions** | Active and historical sessions with timeline and diary entries |
305
+
306
+ Built with FastAPI backend and D3.js frontend. Runs as a LaunchAgent, auto-starts with the system.
307
+
308
+ ## Full Orchestration System
285
309
 
286
310
  Memory alone doesn't make a co-operator. What makes the difference is the **behavioral loop** — the automated discipline that ensures every session starts informed, runs with guardrails, and ends with self-reflection.
287
311
 
288
- ### 6 Automated Hooks
312
+ ### Automated Hooks
289
313
 
290
- These fire automatically at key moments in every Claude Code session:
314
+ 7 hooks fire automatically at key moments in every Claude Code session:
291
315
 
292
316
  | Hook | When | What It Does |
293
317
  |------|------|-------------|
294
- | **SessionStart** | Session opens | Generates a briefing from SQLite: overdue reminders, today's tasks, pending followups, active sessions |
318
+ | **SessionStart** | Session opens | Generates briefing from SQLite: overdue reminders, today's tasks, pending followups, active sessions. Cleans up post-mortem flags. |
295
319
  | **Stop** | Session ends | Mandatory post-mortem: self-critique (5 questions), session buffer entry, followup creation, proactive seeds for next session |
296
- | **PostToolUse** | After each tool call | Captures meaningful mutations to the Sensory Register |
320
+ | **PostToolUse** | After each tool call | Captures meaningful mutations to the Sensory Register + inter-terminal inbox delivery |
297
321
  | **PreCompact** | Before context compression | Saves full session checkpoint to SQLite — task, files, decisions, errors, reasoning thread |
298
322
  | **PostCompact** | After context compression | Re-injects Core Memory Block so the session continues seamlessly from where it left off |
323
+ | **PreToolUse** | Before tool execution | Validates tool parameters and injects guard context for destructive operations |
324
+ | **Notification** | External events | Routes incoming notifications (GitHub, email, watchdog alerts) to the active session |
299
325
  | **Caffeinate** | Always (optional) | Keeps Mac awake for nocturnal cognitive processes |
300
326
 
301
327
  ### The Session Lifecycle
@@ -335,23 +361,20 @@ After 3+ sessions accumulate, the stop hook triggers `nexo-reflection.py`:
335
361
 
336
362
  ### Auto-Migration
337
363
 
338
- Existing users upgrading from v0.5.0:
364
+ Existing users upgrading from any previous version:
339
365
  ```bash
340
- npx nexo-brain # detects v0.5.0, migrates automatically
366
+ npx nexo-brain # detects current version, migrates automatically
341
367
  ```
342
- - Updates hooks, core files, plugins, scripts
368
+ - Updates hooks, core files, plugins, scripts, and LaunchAgent templates
369
+ - Runs database schema migrations automatically
343
370
  - **Never touches your data** (memories, learnings, preferences)
344
371
  - Saves updated CLAUDE.md as reference (doesn't overwrite customizations)
345
372
 
346
- ## Knowledge Graph & Dashboard (v0.8)
373
+ ## Knowledge Graph (v0.8)
347
374
 
348
- ### Knowledge Graph
349
375
  A bi-temporal entity-relationship graph with 988 nodes and 896 edges. Entities and relationships carry both valid-time (when the fact was true) and system-time (when it was recorded), enabling temporal queries like "what did we know about X last Tuesday?". BFS traversal discovers multi-hop connections between concepts. Event-sourced edges with smart dedup (ADD/UPDATE/NOOP) prevent redundant writes while preserving full history.
350
376
 
351
- 4 new MCP tools: `nexo_kg_query` (SPARQL-like queries), `nexo_kg_path` (shortest path between entities), `nexo_kg_neighbors` (direct connections), `nexo_kg_stats` (graph metrics).
352
-
353
- ### Web Dashboard
354
- A visual interface at `localhost:6174` with 6 pages: Overview (system health at a glance), Graph (interactive D3.js visualization of the knowledge graph), Memory (browse and search all memory stores), Somatic (pain map per file/area), Adaptive (personality signals and weights), and Sessions (active and historical sessions). Built with FastAPI backend and D3.js frontend.
377
+ 4 MCP tools: `nexo_kg_query` (SPARQL-like queries), `nexo_kg_path` (shortest path between entities), `nexo_kg_neighbors` (direct connections), `nexo_kg_stats` (graph metrics).
355
378
 
356
379
  ### Cross-Platform Support
357
380
  Full Linux support and Windows via WSL. The installer detects the platform and configures the appropriate process manager (LaunchAgents on macOS, catch-up on startup for Linux). PEP 668 compliance (venv on Ubuntu 24.04+). Session keepalive prevents phantom sessions during long tasks. Opportunistic maintenance runs cognitive processes when resources are available.
@@ -395,8 +418,10 @@ The installer handles everything:
395
418
  - 3 git repositories
396
419
  - Node.js project detected
397
420
  Configuring MCP server...
398
- Setting up automated processes...
399
- 6 automated processes configured.
421
+ Setting up nervous system...
422
+ 11 autonomous scripts configured.
423
+ 13 LaunchAgent templates installed.
424
+ Dashboard configured at localhost:6174.
400
425
  Caffeinate enabled.
401
426
  Generating operator instructions...
402
427
 
@@ -426,36 +451,26 @@ That's it. No need to run `claude` manually. Your operator will greet you immedi
426
451
  | Component | What | Where |
427
452
  |-----------|------|-------|
428
453
  | Cognitive engine | Python: fastembed, numpy, vector search | pip packages |
429
- | MCP server | 100+ tools for memory, cognition, learning, guard | ~/.nexo/ |
454
+ | MCP server | 111+ tools for memory, cognition, learning, guard | ~/.nexo/ |
430
455
  | Plugins | Guard, episodic memory, cognitive memory, entities, preferences | ~/.nexo/plugins/ |
431
- | Hooks (6) | SessionStart briefing, Stop post-mortem, PostToolUse capture, PreCompact checkpoint, PostCompact recovery, Caffeinate | ~/.nexo/hooks/ |
432
- | Reflection engine | Processes session buffer, extracts patterns, updates user model | ~/.nexo/scripts/ |
456
+ | Hooks (7) | SessionStart, Stop, PostToolUse, PreCompact, PostCompact, PreToolUse, Notification | ~/.nexo/hooks/ |
457
+ | Nervous system | 11 autonomous scripts (decay, sleep, audit, evolution, watchdog, etc.) | ~/.nexo/scripts/ |
458
+ | Dashboard | Web UI at localhost:6174 (6 pages) | ~/.nexo/dashboard/ |
433
459
  | CLAUDE.md | Complete operator instructions (Codex, hooks, guard, trust, memory) | ~/.claude/CLAUDE.md |
434
- | LaunchAgents | Decay, sleep, audit, postmortem, catch-up | ~/Library/LaunchAgents/ |
435
- | Auto-update | Checks for new versions at boot | Built into catch-up |
436
- | Claude Code config | MCP server + 6 hooks registered | ~/.claude/settings.json |
460
+ | LaunchAgents | 13 templates for macOS automation | ~/Library/LaunchAgents/ |
461
+ | Auto-update | Checks for new versions on startup | Built into server startup |
462
+ | Claude Code config | MCP server + 7 hooks registered | ~/.claude/settings.json |
437
463
 
438
464
  ### Requirements
439
465
 
440
466
  - **macOS or Linux** (Windows via [WSL](https://learn.microsoft.com/en-us/windows/wsl/install))
441
467
  - **Node.js 18+** (for the installer)
442
- - **Claude Opus (latest version) strongly recommended.** NEXO Brain provides 100+ MCP tools across 20 categories. This cognitive load requires a top-tier model with large context window. Smaller models (Haiku, Sonnet) may struggle with tool selection and produce inconsistent results. Opus handles all 100+ tools without hesitation.
468
+ - **Claude Opus (latest version) strongly recommended.** NEXO Brain provides 111+ MCP tools across 20 categories. This cognitive load requires a top-tier model with large context window. Smaller models (Haiku, Sonnet) may struggle with tool selection and produce inconsistent results. Opus handles all 111+ tools without hesitation.
443
469
  - Python 3, Homebrew, and Claude Code are installed automatically if missing.
444
470
 
445
471
  ## Architecture
446
472
 
447
- ### Modular Package Structure (v1.5.0)
448
-
449
- The core is organized into two Python packages:
450
-
451
- | Package | Modules | Responsibility |
452
- |---------|---------|----------------|
453
- | `db/` | 11 modules (`_core`, `_schema`, `_sessions`, `_learnings`, `_episodic`, `_credentials`, `_entities`, `_evolution`, `_fts`, `_reminders`, `_tasks`) | All SQLite persistence: schema migrations, CRUD, FTS indexing |
454
- | `cognitive/` | 6 modules (`_core`, `_memory`, `_ingest`, `_search`, `_decay`, `_trust`) | Cognitive engine: embeddings, RAG, decay, trust scoring |
455
-
456
- The rest of the server (`server.py`, `tools_*.py`, `plugins/`) stays flat for clarity.
457
-
458
- ### 100+ MCP Tools across 20 Categories
473
+ ### 111+ MCP Tools across 20 Categories
459
474
 
460
475
  | Category | Count | Tools | Purpose |
461
476
  |----------|-------|-------|---------|
@@ -469,7 +484,7 @@ The rest of the server (`server.py`, `tools_*.py`, `plugins/`) stays flat for cl
469
484
  | Reminders | 5 | list, create, update, complete, delete | User's tasks and deadlines |
470
485
  | Followups | 4 | create, update, complete, delete | System's autonomous verification tasks |
471
486
  | Learnings | 5 | add, search, update, delete, list | Error patterns and prevention rules |
472
- | Credentials | 5 | create, get, update, delete, list | Secure local credential storage |
487
+ | Credentials | 5 | create, get, update, delete, list | Local credential storage (plaintext SQLite — protect with filesystem permissions) |
473
488
  | Task History | 3 | log, list, frequency | Execution tracking and overdue alerts |
474
489
  | Menu | 1 | menu | Operations center with box-drawing UI |
475
490
  | Entities | 5 | search, create, update, delete, list | People, services, URLs |
@@ -480,7 +495,6 @@ The rest of the server (`server.py`, `tools_*.py`, `plugins/`) stays flat for cl
480
495
  | Adaptive & Somatic | 4 | adaptive_weights, adaptive_override, somatic_check, somatic_stats | Learned signal weights + pain memory per file |
481
496
  | Knowledge Graph | 4 | kg_query, kg_path, kg_neighbors, kg_stats | Bi-temporal entity-relationship graph |
482
497
  | Context Continuity | 2 | checkpoint_save, checkpoint_read | Auto-compaction session preservation |
483
- | Claim Graph | — | (internal) | Atomic facts with provenance and contradiction detection |
484
498
 
485
499
  ### Plugin System
486
500
 
@@ -504,7 +518,7 @@ Reload without restarting: `nexo_plugin_load("my_plugin.py")`
504
518
  - **Everything stays local.** All data in `~/.nexo/`, never uploaded anywhere.
505
519
  - **No telemetry.** No analytics. No phone-home.
506
520
  - **No cloud dependencies.** Vector search runs on CPU (fastembed), not an API.
507
- - **Auto-update is opt-in.** Checks GitHub releases, never sends data.
521
+ - **Auto-update is resilient.** NEXO checks for updates on startup. If an update fails, it continues with the current version and notifies you. Local migrations (database schema, configuration) always run. Network updates (git pull) can be disabled by setting `auto_update: false` in `NEXO_HOME/config/schedule.json`.
508
522
  - **Secret redaction.** API keys and tokens are stripped before they ever reach memory storage.
509
523
 
510
524
  ## The Psychology Behind NEXO Brain
@@ -538,7 +552,7 @@ NEXO Brain is designed as an MCP server. Claude Code is the primary supported cl
538
552
  npx nexo-brain
539
553
  ```
540
554
 
541
- All 100+ tools are available immediately after installation. The installer configures Claude Code's `~/.claude/settings.json` automatically.
555
+ All 111+ tools are available immediately after installation. The installer configures Claude Code's `~/.claude/settings.json` automatically.
542
556
 
543
557
  ### OpenClaw
544
558
 
@@ -554,7 +568,7 @@ Add NEXO Brain to your OpenClaw config at `~/.openclaw/openclaw.json`:
554
568
  "servers": {
555
569
  "nexo-brain": {
556
570
  "command": "python3",
557
- "args": ["~/.nexo/src/server.py"],
571
+ "args": ["~/.nexo/server.py"],
558
572
  "env": {
559
573
  "NEXO_HOME": "~/.nexo"
560
574
  }
@@ -567,7 +581,7 @@ Add NEXO Brain to your OpenClaw config at `~/.openclaw/openclaw.json`:
567
581
  Or via CLI:
568
582
 
569
583
  ```bash
570
- openclaw mcp set nexo-brain '{"command":"python3","args":["~/.nexo/src/server.py"],"env":{"NEXO_HOME":"~/.nexo"}}'
584
+ openclaw mcp set nexo-brain '{"command":"python3","args":["~/.nexo/server.py"],"env":{"NEXO_HOME":"~/.nexo"}}'
571
585
  openclaw gateway restart
572
586
  ```
573
587
 
@@ -597,7 +611,7 @@ This replaces OpenClaw's default memory system with NEXO Brain's full cognitive
597
611
 
598
612
  ### Any MCP Client
599
613
 
600
- NEXO Brain works with any application that supports the MCP protocol. Configure it as an MCP server pointing to `~/.nexo/src/server.py`.
614
+ NEXO Brain works with any application that supports the MCP protocol. Configure it as an MCP server pointing to `~/.nexo/server.py`.
601
615
 
602
616
  ## Listed On
603
617
 
@@ -636,38 +650,47 @@ If NEXO Brain is useful to you, consider:
636
650
 
637
651
  ## Changelog
638
652
 
653
+ ### v1.7.0 — Full Internationalization + Linux Support (2026-03-31)
654
+ - **Full i18n**: All UI strings, error messages, DB status values in English. NLP detection patterns retain bilingual keywords (Spanish + English) for multilingual user support.
655
+ - **Linux support**: systemd user timers (preferred) or crontab fallback for all automated cognitive processes.
656
+ - **Auto-resolve followups**: Change log entries automatically cross-reference and complete matching open followups.
657
+ - **Free-form learning categories**: No more hardcoded category validation — use any category name.
658
+ - **CLAUDE.md template rewrite**: 494→127 lines, compact procedural format with full heartbeat signal reactions.
659
+ - **Complete sanitization**: All hardcoded paths use `NEXO_HOME` env var. Zero personal data in the repo.
660
+
661
+ ### v1.6.0 — Nervous System + Dashboard v2 (2026-03-30)
662
+ - **Nervous System**: 11 autonomous scripts (decay, deep sleep, self-audit, catchup, evolution, followup hygiene, immune, watchdog, github monitor, learning validator)
663
+ - **Dashboard v2**: 6 interactive pages at localhost:6174 (Overview, Graph, Memory, Somatic, Adaptive, Sessions)
664
+ - **LaunchAgent Templates**: 13 macOS automation templates included in the package for scheduling the nervous system
665
+ - **Hooks**: 8 total — added PreToolUse (parameter validation + guard injection) and Notification (external event routing)
666
+ - **Installer**: Now configures dashboard LaunchAgent, nervous system scripts, and all 13 templates automatically
667
+
668
+ ### v1.5.2 — Deep Sleep (2026-03-29)
669
+ - **Deep Sleep**: Reads full session transcripts (not just diary) — finds uncaptured corrections, protocol violations, missed commitments
670
+ - Uses Claude CLI in `--bare` mode (no hooks, no CLAUDE.md interference)
671
+ - Catch-up system re-runs yesterday if the Mac was off
672
+
639
673
  ### v1.5.0 — Modular Core + Knowledge Graph Search (2026-03-29)
640
- - **Architecture**: `db.py` refactored into `db/` package (11 modules: core, schema, sessions, learnings, episodic, credentials, entities, evolution, fts, reminders, tasks)
641
- - **Architecture**: `cognitive.py` refactored into `cognitive/` package (6 modules: core, memory, ingest, search, decay, trust)
642
- - **KG Boost**: Knowledge Graph connection count now influences search result ranking — well-connected entities surface higher in retrieval
643
- - **HNSW Vector Index**: Optional approximate nearest neighbor acceleration (activates automatically above 10,000 memories, falls back to brute-force otherwise)
644
- - **Claim Graph**: Decomposes blob memories into atomic verifiable facts with provenance, confidence scores, and contradiction detection
645
- - **Inter-terminal Auto-inbox (D+)**: `nexo_startup` now accepts `claude_session_id` (Claude Code session UUID) — enables automatic inbox delivery between parallel terminals via PostToolUse hook + migration v13
674
+ - **Architecture**: `db.py` refactored into `db/` package (11 modules); `cognitive.py` into `cognitive/` package (6 modules)
675
+ - **KG Boost**: Knowledge Graph connection count influences search result ranking
676
+ - **HNSW Vector Index**: Optional approximate nearest neighbor acceleration (auto-activates above 10,000 memories)
677
+ - **Claim Graph**: Decomposes blob memories into atomic verifiable facts with provenance and contradiction detection
678
+ - **Inter-terminal Auto-inbox (D+)**: `nexo_startup` accepts `claude_session_id` for automatic inbox delivery between parallel terminals
646
679
  - **Tests**: 24 pytest tests across 3 suites (cognitive, knowledge graph, migrations)
647
680
 
648
681
  ### v1.4.1 — Multi-AI Code Review (2026-03-29)
649
682
  - **Fix**: 3 bugs found by GPT-5.4 (Codex CLI) + Gemini 2.5 (Gemini CLI) reviewing full codebase
650
- - `session_diaries` → `session_diary` table name (smart startup silently failed)
651
- - Quarantine contradiction logic distinguished confirmation from opposition
652
- - Knowledge Graph timezone import crash
653
683
  - **Security**: Memory sanitization prevents prompt injection via stored content
654
- - **Migration #13**: Normalizes legacy status values (PENDIENTE→PENDING) on upgrade
684
+ - **Migration #13**: Normalizes legacy status values on upgrade
655
685
 
656
686
  ### v1.4.0 — The Brain Dreams (2026-03-29)
657
687
  - **Major**: All 9 nightly scripts migrated from Python word-overlap to CLI wrapper pattern
658
- - Postmortem consolidator: opus understands patterns by meaning, not word overlap
659
- - Sleep system: detects real duplicates via semantic understanding
660
- - Daily synthesis: opus prioritizes what matters for tomorrow
661
- - Self-audit: interprets findings for root cause analysis
662
- - Evolution: prompt reduced 95% (45K → 2.2K chars) — CLI investigates using tools
663
- - **Stop Hook v8**: Session-scoped tool counting (not day-wide), buffer fallback removed
688
+ - **Stop Hook v8**: Session-scoped tool counting, buffer fallback removed
664
689
  - **Guard**: Behavioral rules section surfaces most-violated rules at session start
665
- - **Followup hygiene**: Weekly cleanup script normalizes statuses, flags stale items
666
- - 8 missing core scripts + 1 plugin added to repository
667
690
 
668
691
  ### v1.3.0 — Evolution System (2026-03-28)
669
692
  - **New**: Self-improvement cycle — NEXO proposes and applies improvements weekly
670
- - Dual-mode: auto (low-risk changes) and review (owner approval required)
693
+ - Dual-mode: auto (low-risk) and review (owner approval required)
671
694
  - Circuit breaker, snapshot/rollback, immutable file protection
672
695
 
673
696
  ### v1.2.3 — AGPL-3.0 License (2026-03-27)
@@ -696,7 +719,7 @@ If NEXO Brain is useful to you, consider:
696
719
  - New tools: `nexo_checkpoint_save`, `nexo_checkpoint_read`
697
720
  - Heartbeat automatically maintains checkpoint every interaction
698
721
  - Core Memory Block re-injected post-compaction with task, files, decisions, reasoning thread
699
- - 115+ total tools, 20 categories, 6 hooks
722
+ - 115+ total tools, 20 categories
700
723
 
701
724
  ### v1.0.0 — Cognitive Cortex + Stable Release (2026-03-26)
702
725
  - **Cognitive Cortex**: architectural inhibitory control (ASK/PROPOSE/ACT modes)
@@ -713,7 +736,7 @@ If NEXO Brain is useful to you, consider:
713
736
 
714
737
  ### v0.9.0 — Cognitive Memory (2026-03-15)
715
738
  - Atkinson-Shiffrin memory model (STM → LTM promotion)
716
- - Semantic RAG with fastembed (BAAI/bge-small-en-v1.5, 384 dims)
739
+ - Semantic RAG with fastembed (BAAI/bge-base-en-v1.5, 768 dims)
717
740
  - Trust scoring, sentiment detection, adaptive personality modes
718
741
  - Ebbinghaus decay, sister detection, quarantine system
719
742