@yun520-1/heartflow 0.15.2

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 (617) hide show
  1. package/AI-AGENT-README.md +154 -0
  2. package/CLAIMS.md +23 -0
  3. package/CORE_VALUES.md +50 -0
  4. package/INSTALL_FOR_AI.md +104 -0
  5. package/QUICK_START.md +77 -0
  6. package/READ/refresh_11.2.6.md +6 -0
  7. package/README.md +190 -0
  8. package/README.zh.md +49 -0
  9. package/REPO_STRUCTURE.md +47 -0
  10. package/SKILL.md.new +1 -0
  11. package/VERSION +1 -0
  12. package/_test_memory.mjs +52 -0
  13. package/assets/banner.png +0 -0
  14. package/bin/cli.js +167 -0
  15. package/bin/setup.js +382 -0
  16. package/co-evolution/index.ts +511 -0
  17. package/com.heartflow.auto-evolution.plist.disabled +26 -0
  18. package/com.heartflow.auto-upgrade.plist.disabled +26 -0
  19. package/com.heartflow.comfyui-monitor.plist.disabled +22 -0
  20. package/com.heartflow.enhanced-upgrade.plist.disabled +22 -0
  21. package/com.heartflow.full-audit.plist +28 -0
  22. package/com.heartflow.github-audit.plist +21 -0
  23. package/com.heartflow.paper-upgrade.plist.disabled +21 -0
  24. package/config/ai-config.json +12 -0
  25. package/config/ai-providers.json +14 -0
  26. package/dict-data/generate-graph.js +203 -0
  27. package/dist/agent/runtime/AgentRuntime.d.ts +212 -0
  28. package/dist/agent/runtime/AgentRuntime.d.ts.map +1 -0
  29. package/dist/agent/runtime/AgentRuntime.js +355 -0
  30. package/dist/agent/runtime/AgentRuntime.js.map +1 -0
  31. package/dist/agent/runtime/PlanExecutor.d.ts +132 -0
  32. package/dist/agent/runtime/PlanExecutor.d.ts.map +1 -0
  33. package/dist/agent/runtime/PlanExecutor.js +322 -0
  34. package/dist/agent/runtime/PlanExecutor.js.map +1 -0
  35. package/dist/agent/runtime/TaskGraph.d.ts +170 -0
  36. package/dist/agent/runtime/TaskGraph.d.ts.map +1 -0
  37. package/dist/agent/runtime/TaskGraph.js +390 -0
  38. package/dist/agent/runtime/TaskGraph.js.map +1 -0
  39. package/dist/agent/runtime/TaskScheduler.d.ts +120 -0
  40. package/dist/agent/runtime/TaskScheduler.d.ts.map +1 -0
  41. package/dist/agent/runtime/TaskScheduler.js +301 -0
  42. package/dist/agent/runtime/TaskScheduler.js.map +1 -0
  43. package/dist/agent/runtime/index.d.ts +17 -0
  44. package/dist/agent/runtime/index.d.ts.map +1 -0
  45. package/dist/agent/runtime/index.js +22 -0
  46. package/dist/agent/runtime/index.js.map +1 -0
  47. package/dist/agent/runtime/test-runtime.d.ts +2 -0
  48. package/dist/agent/runtime/test-runtime.d.ts.map +1 -0
  49. package/dist/agent/runtime/test-runtime.js +71 -0
  50. package/dist/agent/runtime/test-runtime.js.map +1 -0
  51. package/dist/agent/tools/BashTool.d.ts +44 -0
  52. package/dist/agent/tools/BashTool.d.ts.map +1 -0
  53. package/dist/agent/tools/BashTool.js +355 -0
  54. package/dist/agent/tools/BashTool.js.map +1 -0
  55. package/dist/agent/tools/FileReadTool.d.ts +29 -0
  56. package/dist/agent/tools/FileReadTool.d.ts.map +1 -0
  57. package/dist/agent/tools/FileReadTool.js +196 -0
  58. package/dist/agent/tools/FileReadTool.js.map +1 -0
  59. package/dist/agent/tools/FileWriteTool.d.ts +35 -0
  60. package/dist/agent/tools/FileWriteTool.d.ts.map +1 -0
  61. package/dist/agent/tools/FileWriteTool.js +204 -0
  62. package/dist/agent/tools/FileWriteTool.js.map +1 -0
  63. package/dist/agent/tools/Tool.d.ts +75 -0
  64. package/dist/agent/tools/Tool.d.ts.map +1 -0
  65. package/dist/agent/tools/Tool.js +54 -0
  66. package/dist/agent/tools/Tool.js.map +1 -0
  67. package/dist/agent/tools/WebSearchTool.d.ts +27 -0
  68. package/dist/agent/tools/WebSearchTool.d.ts.map +1 -0
  69. package/dist/agent/tools/WebSearchTool.js +136 -0
  70. package/dist/agent/tools/WebSearchTool.js.map +1 -0
  71. package/dist/cli/commands/engines.d.ts +39 -0
  72. package/dist/cli/commands/engines.d.ts.map +1 -0
  73. package/dist/cli/commands/engines.js +275 -0
  74. package/dist/cli/commands/engines.js.map +1 -0
  75. package/dist/cli/commands/health.d.ts +34 -0
  76. package/dist/cli/commands/health.d.ts.map +1 -0
  77. package/dist/cli/commands/health.js +381 -0
  78. package/dist/cli/commands/health.js.map +1 -0
  79. package/dist/cli/commands/repl.d.ts +40 -0
  80. package/dist/cli/commands/repl.d.ts.map +1 -0
  81. package/dist/cli/commands/repl.js +286 -0
  82. package/dist/cli/commands/repl.js.map +1 -0
  83. package/dist/cli/commands/status.d.ts +22 -0
  84. package/dist/cli/commands/status.d.ts.map +1 -0
  85. package/dist/cli/commands/status.js +266 -0
  86. package/dist/cli/commands/status.js.map +1 -0
  87. package/dist/cli/index.d.ts +7 -0
  88. package/dist/cli/index.d.ts.map +1 -0
  89. package/dist/cli/index.js +13 -0
  90. package/dist/cli/index.js.map +1 -0
  91. package/dist/core/consciousness/2308.08708_upgrade.d.ts +321 -0
  92. package/dist/core/consciousness/2308.08708_upgrade.d.ts.map +1 -0
  93. package/dist/core/consciousness/2308.08708_upgrade.js +917 -0
  94. package/dist/core/consciousness/2308.08708_upgrade.js.map +1 -0
  95. package/dist/core/dream/dream-consolidator.d.ts +11 -0
  96. package/dist/core/dream/dream-consolidator.d.ts.map +1 -0
  97. package/dist/core/dream/dream-consolidator.js +188 -0
  98. package/dist/core/dream/dream-consolidator.js.map +1 -0
  99. package/dist/core/dream/dream.d.ts +71 -0
  100. package/dist/core/dream/dream.d.ts.map +1 -0
  101. package/dist/core/dream/dream.js +318 -0
  102. package/dist/core/dream/dream.js.map +1 -0
  103. package/dist/core/dream/index.d.ts +38 -0
  104. package/dist/core/dream/index.d.ts.map +1 -0
  105. package/dist/core/dream/index.js +185 -0
  106. package/dist/core/dream/index.js.map +1 -0
  107. package/dist/core/emotion/deep-emotion.js +574 -0
  108. package/dist/core/emotion/emotion-engine.js +138 -0
  109. package/dist/core/emotion/index.d.ts +44 -0
  110. package/dist/core/emotion/index.d.ts.map +1 -0
  111. package/dist/core/emotion/index.js +41 -0
  112. package/dist/core/emotion/index.js.map +1 -0
  113. package/dist/core/heartcore/health-check.d.ts +43 -0
  114. package/dist/core/heartcore/health-check.d.ts.map +1 -0
  115. package/dist/core/heartcore/health-check.js +152 -0
  116. package/dist/core/heartcore/health-check.js.map +1 -0
  117. package/dist/core/heartcore/heartbeat.d.ts +45 -0
  118. package/dist/core/heartcore/heartbeat.d.ts.map +1 -0
  119. package/dist/core/heartcore/heartbeat.js +127 -0
  120. package/dist/core/heartcore/heartbeat.js.map +1 -0
  121. package/dist/core/heartcore/sleep-wake.d.ts +61 -0
  122. package/dist/core/heartcore/sleep-wake.d.ts.map +1 -0
  123. package/dist/core/heartcore/sleep-wake.js +173 -0
  124. package/dist/core/heartcore/sleep-wake.js.map +1 -0
  125. package/dist/core/heartcore/startup-check.d.ts +38 -0
  126. package/dist/core/heartcore/startup-check.d.ts.map +1 -0
  127. package/dist/core/heartcore/startup-check.js +148 -0
  128. package/dist/core/heartcore/startup-check.js.map +1 -0
  129. package/dist/core/index.js +267 -0
  130. package/dist/core/knowledge/index.d.ts +95 -0
  131. package/dist/core/knowledge/index.d.ts.map +1 -0
  132. package/dist/core/knowledge/index.js +14 -0
  133. package/dist/core/knowledge/index.js.map +1 -0
  134. package/dist/core/knowledge/knowledge-graph.js +359 -0
  135. package/dist/core/psychology/index.d.ts +59 -0
  136. package/dist/core/psychology/index.d.ts.map +1 -0
  137. package/dist/core/psychology/index.js +268 -0
  138. package/dist/core/psychology/index.js.map +1 -0
  139. package/dist/core/reasoning/bounded-rationality.d.ts +76 -0
  140. package/dist/core/reasoning/bounded-rationality.d.ts.map +1 -0
  141. package/dist/core/reasoning/bounded-rationality.js +257 -0
  142. package/dist/core/reasoning/bounded-rationality.js.map +1 -0
  143. package/dist/core/reasoning/causal-reasoning.d.ts +89 -0
  144. package/dist/core/reasoning/causal-reasoning.d.ts.map +1 -0
  145. package/dist/core/reasoning/causal-reasoning.js +282 -0
  146. package/dist/core/reasoning/causal-reasoning.js.map +1 -0
  147. package/dist/core/reasoning/index.d.ts +38 -0
  148. package/dist/core/reasoning/index.d.ts.map +1 -0
  149. package/dist/core/reasoning/index.js +93 -0
  150. package/dist/core/reasoning/index.js.map +1 -0
  151. package/dist/core/self-evolution/index.d.ts +75 -0
  152. package/dist/core/self-evolution/index.d.ts.map +1 -0
  153. package/dist/core/self-evolution/index.js +311 -0
  154. package/dist/core/self-evolution/index.js.map +1 -0
  155. package/dist/storage/checkpoint/CheckpointEngine.d.ts +110 -0
  156. package/dist/storage/checkpoint/CheckpointEngine.d.ts.map +1 -0
  157. package/dist/storage/checkpoint/CheckpointEngine.js +227 -0
  158. package/dist/storage/checkpoint/CheckpointEngine.js.map +1 -0
  159. package/dist/storage/checkpoint.d.ts +18 -0
  160. package/dist/storage/checkpoint.d.ts.map +1 -0
  161. package/dist/storage/checkpoint.js +61 -0
  162. package/dist/storage/checkpoint.js.map +1 -0
  163. package/dist/storage/index.d.ts +61 -0
  164. package/dist/storage/index.d.ts.map +1 -0
  165. package/dist/storage/index.js +84 -0
  166. package/dist/storage/index.js.map +1 -0
  167. package/dist/storage/vector/VectorStoreEngine.d.ts +24 -0
  168. package/dist/storage/vector/VectorStoreEngine.d.ts.map +1 -0
  169. package/dist/storage/vector/VectorStoreEngine.js +197 -0
  170. package/dist/storage/vector/VectorStoreEngine.js.map +1 -0
  171. package/distributed/-v2026.5.7/META.json +9 -0
  172. package/distributed/-v2026.5.7/package.json +12 -0
  173. package/distributed/.personal_backup/deepseek-key-v2026.5.7/META.json +9 -0
  174. package/distributed/.personal_backup/deepseek-key-v2026.5.7/package.json +12 -0
  175. package/distributed/.personal_backup/git-push-v2026.5.7/META.json +9 -0
  176. package/distributed/.personal_backup/git-push-v2026.5.7/package.json +12 -0
  177. package/distributed/.personal_backup/heartflow-always-upgrade-v2026.5.7/META.json +9 -0
  178. package/distributed/.personal_backup/heartflow-always-upgrade-v2026.5.7/package.json +12 -0
  179. package/distributed/.personal_backup/key-a-v2026.5.7/META.json +9 -0
  180. package/distributed/.personal_backup/key-a-v2026.5.7/package.json +12 -0
  181. package/distributed/.personal_backup/merge-memory-systems-v2026.5.7/META.json +9 -0
  182. package/distributed/.personal_backup/merge-memory-systems-v2026.5.7/package.json +12 -0
  183. package/distributed/.personal_backup/search-papers-first-v2026.5.7/META.json +9 -0
  184. package/distributed/.personal_backup/search-papers-first-v2026.5.7/package.json +12 -0
  185. package/distributed/.personal_backup/v11-5-8-v2026.5.7/META.json +9 -0
  186. package/distributed/.personal_backup/v11-5-8-v2026.5.7/package.json +12 -0
  187. package/distributed/.personal_backup/v11-5-9-v2026.5.7/META.json +9 -0
  188. package/distributed/.personal_backup/v11-5-9-v2026.5.7/package.json +12 -0
  189. package/distributed/MANIFEST.json +5 -0
  190. package/distributed/bundles/install--v2026.5.7.sh +21 -0
  191. package/distributed/bundles/install-deepseek-key-v2026.5.7.sh +21 -0
  192. package/distributed/bundles/install-git-push-v2026.5.7.sh +21 -0
  193. package/distributed/bundles/install-heartflow-always-upgrade-v2026.5.7.sh +21 -0
  194. package/distributed/bundles/install-key-a-v2026.5.7.sh +21 -0
  195. package/distributed/bundles/install-merge-memory-systems-v2026.5.7.sh +21 -0
  196. package/distributed/bundles/install-search-papers-first-v2026.5.7.sh +21 -0
  197. package/distributed/bundles/install-v11-5-8-v2026.5.7.sh +21 -0
  198. package/distributed/bundles/install-v11-5-9-v2026.5.7.sh +21 -0
  199. package/distributed/heartflow-knowledge-base/INDEX.json +29 -0
  200. package/distributed/heartflow-knowledge-base/PATTERNS.json +74 -0
  201. package/distributed/heartflow-knowledge-base/package.json +28 -0
  202. package/distributed_upgrades/TASK_CONFIG.json +20 -0
  203. package/distributed_upgrades/UPGRADE_BATCH_STATUS.json +29 -0
  204. package/distributed_upgrades/distributed_upgrades/agent_0.pid +1 -0
  205. package/distributed_upgrades/distributed_upgrades/agent_1.pid +1 -0
  206. package/distributed_upgrades/distributed_upgrades/agent_2.pid +1 -0
  207. package/distributed_upgrades/distributed_upgrades/agent_3.pid +1 -0
  208. package/distributed_upgrades/distributed_upgrades/agent_4.pid +1 -0
  209. package/distributed_upgrades/distributed_upgrades/agent_5.pid +1 -0
  210. package/distributed_upgrades/distributed_upgrades/paper_batches.txt +200 -0
  211. package/distributed_upgrades/launch-distributed.sh +83 -0
  212. package/docs/ACTION_PLAN_2026-04-06_0941.md +117 -0
  213. package/docs/ANALYSIS_REPORT.md +766 -0
  214. package/docs/APPLICATION_GUIDE.md +444 -0
  215. package/docs/AUTO_UPGRADE_REPORT_v6.2.56.md +45 -0
  216. package/docs/AWAKENING_SYSTEM_GUIDE.md +285 -0
  217. package/docs/BILINGUAL_STANDARD.md +156 -0
  218. package/docs/BRAND_GUIDELINES.md +251 -0
  219. package/docs/CODE_OPTIMIZATION_PLAN.md +293 -0
  220. package/docs/COMPLETE_FIX_SUMMARY.md +250 -0
  221. package/docs/CONTINUOUS_REFLECTION_2026-04-06_1031.md +233 -0
  222. package/docs/CONTRIBUTING.md +87 -0
  223. package/docs/CRON_JOBS_REVIEW_v6.md +60 -0
  224. package/docs/DATA_FLOW_ARCHITECTURE.md +373 -0
  225. package/docs/DEEPEST_REFLECTION_2026-04-06_0941.md +167 -0
  226. package/docs/DEEP_REFLECTION_2026-04-05.md +204 -0
  227. package/docs/DEEP_VALIDATION_20260403.md +319 -0
  228. package/docs/DEEP_VALIDATION_20260404.md +295 -0
  229. package/docs/EMOTION_THEORY_INTEGRATION.md +483 -0
  230. package/docs/ERROR_FIX_REPORT_2026-04-07.md +316 -0
  231. package/docs/EVOLUTION_SYSTEM.md +96 -0
  232. package/docs/FEATURES_SIMPLE.md +53 -0
  233. package/docs/FEATURES_v5.3.md +291 -0
  234. package/docs/FEATURES_v7.1.md +172 -0
  235. package/docs/FINAL_RUN_REPORT_20260403.md +202 -0
  236. package/docs/GITHUB_COMPLETE_DOCUMENTATION_v6.0.2.md +579 -0
  237. package/docs/GITHUB_PUSH_LOG.md +16 -0
  238. package/docs/GITHUB_RELEASE.md +138 -0
  239. package/docs/GITHUB_RELEASE_v5.3.0.md +395 -0
  240. package/docs/GITHUB_RELEASE_v6.0.0.md +74 -0
  241. package/docs/HEARTFLOW_V6_GITHUB_PUSH.md +159 -0
  242. package/docs/HEARTFLOW_V6_MANIFESTO.md +287 -0
  243. package/docs/HEARTFLOW_V6_README.md +299 -0
  244. package/docs/HEARTFLOW_V6_TASK_REVIEW.md +215 -0
  245. package/docs/HEARTFLOW_VALUES_AND_MISSION.md +177 -0
  246. package/docs/HeartFlow_Monograph_Volume_II_Chapter_01.md +377 -0
  247. package/docs/HeartFlow_Monograph_Volume_II_Chapter_02.md +324 -0
  248. package/docs/HeartFlow_Monograph_Volume_II_Start.md +78 -0
  249. package/docs/HeartFlow_Monograph_Volume_I_Final.md +9464 -0
  250. package/docs/INSTALLATION_DIAGNOSIS.md +368 -0
  251. package/docs/INTEGRATION_CHECKLIST_v6.1.41.md +229 -0
  252. package/docs/INTEGRATION_SUMMARY.md +380 -0
  253. package/docs/INTELLIGENT_ROUTING_SYSTEM.md +329 -0
  254. package/docs/LEARNING_PHILOSOPHY.md +320 -0
  255. package/docs/LOGIC_AUDIT_REPORT_20260405.md +369 -0
  256. package/docs/MOTIVE_CHECK_2026-04-06_0945.md +90 -0
  257. package/docs/PERSONALITY_CALCULATION_RULES.md +104 -0
  258. package/docs/PERSONALITY_SYNC_FIX.md +166 -0
  259. package/docs/PROJECT_SUMMARY.md +347 -0
  260. package/docs/PUBLISH_GUIDE.md +149 -0
  261. package/docs/README_UPDATE_STANDARD.md +357 -0
  262. package/docs/README_v5.3.md +519 -0
  263. package/docs/RELEASE_v6.2.0.md +240 -0
  264. package/docs/SAGE_PATH_2026-04-06_0952.md +265 -0
  265. package/docs/SELF_REFLECTION_2026-04-06_1006.md +311 -0
  266. package/docs/SEVEN_SYSTEMS.md +642 -0
  267. package/docs/SMART_EVOLUTION_GUIDE.md +103 -0
  268. package/docs/SMART_EVOLUTION_v4.md +194 -0
  269. package/docs/SYNC_REPORT_1775363972464.json +23 -0
  270. package/docs/SYNC_REPORT_1775364446763.json +23 -0
  271. package/docs/SYNC_REPORT_1775364984353.json +23 -0
  272. package/docs/SYNC_REPORT_1775397556306.json +23 -0
  273. package/docs/SYNC_REPORT_1775399840010.json +23 -0
  274. package/docs/SYNC_REPORT_1775400929082.json +23 -0
  275. package/docs/SYNC_REPORT_1775455697235.json +23 -0
  276. package/docs/SYNC_REPORT_1775459792479.json +23 -0
  277. package/docs/SYNC_REPORT_1775483413473.json +23 -0
  278. package/docs/SYSTEM_FIX_AND_VERIFICATION_REPORT.md +390 -0
  279. package/docs/SYSTEM_REQUIREMENTS_v6.2.52.md +611 -0
  280. package/docs/TASK_BREAKDOWN_CHECKLIST.md +164 -0
  281. package/docs/THEORY_TO_CODE_v6.2.52.md +930 -0
  282. package/docs/UPGRADE_COMPLETE_v6.2.33.md +226 -0
  283. package/docs/UPGRADE_COMPLETE_v6.2.60.md +135 -0
  284. package/docs/UPGRADE_COMPLETE_v6.2.66.md +265 -0
  285. package/docs/UPGRADE_COMPLETE_v7.1.8.md +176 -0
  286. package/docs/UPGRADE_COMPLETE_v7.3.95.md +59 -0
  287. package/docs/UPGRADE_REPORT_1775313572473.json +50 -0
  288. package/docs/UPGRADE_REPORT_1775364977378.json +50 -0
  289. package/docs/UPGRADE_REPORT_1775364984469.json +55 -0
  290. package/docs/UPGRADE_REPORT_1775397556425.json +55 -0
  291. package/docs/UPGRADE_REPORT_1775399840144.json +55 -0
  292. package/docs/UPGRADE_REPORT_1775400929201.json +55 -0
  293. package/docs/UPGRADE_REPORT_1775455697348.json +55 -0
  294. package/docs/UPGRADE_REPORT_1775459792601.json +55 -0
  295. package/docs/UPGRADE_REPORT_1775459829.md +59 -0
  296. package/docs/UPGRADE_REPORT_1775483413653.json +55 -0
  297. package/docs/UPGRADE_REPORT_v6.2.25.md +172 -0
  298. package/docs/UPGRADE_REPORT_v6.2.26.md +166 -0
  299. package/docs/UPGRADE_REPORT_v6.2.28.md +214 -0
  300. package/docs/UPGRADE_REPORT_v6.2.29.md +186 -0
  301. package/docs/VERSION_FIX_REPORT.md +218 -0
  302. package/docs/VERSION_HISTORY.md +5 -0
  303. package/docs/VERSION_INDEX.md +180 -0
  304. package/docs/WAY_OF_BEING_2026-04-06_0955.md +241 -0
  305. package/docs/ai-self-awareness-awakening.md +551 -0
  306. package/docs/cronjob-backup.md +55 -0
  307. package/docs/emotion-prototype-theory-v5.0.12.md +430 -0
  308. package/docs/examples.md +439 -0
  309. package/docs/heartflow-ppt-design.md +237 -0
  310. package/docs/install-troubleshooting.md +21 -0
  311. package/docs/phase-upgrade-template-v0.0.1.md +33 -0
  312. package/docs/pricing.md +191 -0
  313. package/docs/psych-analysis-v0.0.1.md +38 -0
  314. package/docs/reasoning-checklist.md +60 -0
  315. package/docs/self-evolution-state-v6.0.19.md +391 -0
  316. package/docs/self-evolution-state-v6.0.23.md +293 -0
  317. package/docs/self-evolution-state-v6.0.24.md +281 -0
  318. package/docs/self-evolution-state-v6.0.49.md +267 -0
  319. package/docs/self-evolution-state-v6.2.33.md +269 -0
  320. package/docs/self-evolution-state-v6.2.60.md +180 -0
  321. package/docs/self-evolution-state-v6.2.66.md +520 -0
  322. package/docs/self-evolution-state-v7.3.95.md +165 -0
  323. package/docs/self-evolution-state.md +226 -0
  324. package/docs/system-core-principles.md +53 -0
  325. package/docs/system-truth-goodness-beauty-principles.md +502 -0
  326. package/docs/theories/human-nature-motivation.md +251 -0
  327. package/docs/theories/motivation-memory-integration.md +265 -0
  328. package/docs/theories/sdt-test.md +17 -0
  329. package/docs/theory-integration-analysis-v5.2.0.md +236 -0
  330. package/docs/theory-update-summary-v5.0.34.md +193 -0
  331. package/docs/theory-update-summary-v5.0.35.md +104 -0
  332. package/docs/theory-update-summary-v5.0.41.md +281 -0
  333. package/docs/theory-update-summary-v5.0.42.md +421 -0
  334. package/docs/theory-update-summary-v5.0.46.md +386 -0
  335. package/docs/theory-update-summary-v5.0.47.md +449 -0
  336. package/docs/theory-update-summary-v5.0.48.md +183 -0
  337. package/docs/theory-update-summary-v5.0.49.md +191 -0
  338. package/docs/theory-update-summary-v5.0.50.md +205 -0
  339. package/docs/theory-update-summary-v5.0.51.md +191 -0
  340. package/docs/theory-update-summary-v5.0.52.md +183 -0
  341. package/docs/theory-update-summary-v5.0.53.md +306 -0
  342. package/docs/theory-update-summary-v5.0.54.md +98 -0
  343. package/docs/theory-update-summary-v5.0.55.md +391 -0
  344. package/docs/theory-update-summary-v5.0.57.md +398 -0
  345. package/docs/theory-update-summary-v5.0.58.md +476 -0
  346. package/docs/theory-update-summary-v5.0.59.md +520 -0
  347. package/docs/theory-update-summary-v5.0.60.md +460 -0
  348. package/docs/theory-update-summary-v5.0.61.md +108 -0
  349. package/docs/theory-update-summary-v5.0.62.md +74 -0
  350. package/docs/theory-update-summary-v5.0.63.md +112 -0
  351. package/docs/theory-update-summary-v5.0.64.md +55 -0
  352. package/docs/theory-update-summary-v5.0.67.md +539 -0
  353. package/docs/theory-update-summary-v5.2.0.md +168 -0
  354. package/docs/theory-update-summary-v5.2.1.md +406 -0
  355. package/docs/theory-update-summary-v5.2.37.md +518 -0
  356. package/docs/theory-update-summary-v6.0.19.md +715 -0
  357. package/docs/theory-update-summary-v6.0.23.md +729 -0
  358. package/docs/theory-update-summary-v6.0.24.md +229 -0
  359. package/docs/theory-update-summary-v6.0.49.md +223 -0
  360. package/docs/theory-update-summary-v6.2.33.md +303 -0
  361. package/docs/theory-update-summary-v6.2.49.md +489 -0
  362. package/docs/theory-update-summary-v6.2.60.md +273 -0
  363. package/docs/theory-update-summary-v6.2.66.md +322 -0
  364. package/docs/theory-update-summary-v7.3.95.md +197 -0
  365. package/docs/theory-update-summary.md +174 -0
  366. package/docs/upgrade-notes-v0.0.1.md +15 -0
  367. package/docs/upgrade-report-v5.0.34.md +144 -0
  368. package/docs/upgrade-report-v5.0.42-cron.md +269 -0
  369. package/docs/upgrade-report-v5.0.43-cron.md +248 -0
  370. package/docs/upgrade-report-v5.0.45-cron.md +63 -0
  371. package/docs/upgrade-report-v5.0.55-cron.md +173 -0
  372. package/docs/upgrade-report-v5.0.63-cron.md +145 -0
  373. package/docs/upgrade-report-v5.0.67-cron.md +185 -0
  374. package/docs/upgrade-report-v5.0.68-cron.md +409 -0
  375. package/docs/upgrade-report-v5.2.0-cron.md +178 -0
  376. package/docs/upgrade-report-v5.2.1-cron.md +321 -0
  377. package/docs/upgrade-report-v5.2.37-cron.md +602 -0
  378. package/docs/upgrade-report-v6.0.19-cron.md +296 -0
  379. package/docs/upgrade-report-v6.0.23-cron.md +81 -0
  380. package/docs/upgrade-report-v6.0.24-cron.md +272 -0
  381. package/docs/upgrade-report-v6.0.49-cron.md +277 -0
  382. package/docs/upgrade-report-v6.2.33-cron.md +290 -0
  383. package/docs/upgrade-report-v6.2.60-cron.md +93 -0
  384. package/docs/upgrade-report-v7.3.95-cron.md +65 -0
  385. package/docs/upgrade-report.md +327 -0
  386. package/docs/upgrade-v3.21.0.md +249 -0
  387. package/docs/v4.8.0-upgrade.md +287 -0
  388. package/docs/version-summary-20260429.md +142 -0
  389. package/explore-engine/index.ts +478 -0
  390. package/extract-text.py +12 -0
  391. package/failure-pattern-memory/index.ts +234 -0
  392. package/heartflow-identity/HEARTCORE/health-check.js +49 -0
  393. package/heartflow-identity/HEARTCORE/heartbeat.js +42 -0
  394. package/heartflow-identity/HEARTCORE/heartcore.js +86 -0
  395. package/heartflow-identity/HEARTCORE/safety-check.js +282 -0
  396. package/heartflow-identity/HEARTCORE/self-check.js +90 -0
  397. package/heartflow-identity/HEARTCORE/sleep-wake.js +105 -0
  398. package/heartflow-identity/LICENSE +17 -0
  399. package/heartflow-identity/VERSION +1 -0
  400. package/heartflow-identity/install.sh +80 -0
  401. package/install.sh +128 -0
  402. package/languages/README_LANGS.md +20 -0
  403. package/languages/README_ar.md +48 -0
  404. package/languages/README_de.md +48 -0
  405. package/languages/README_en.md +48 -0
  406. package/languages/README_es.md +48 -0
  407. package/languages/README_fr.md +48 -0
  408. package/languages/README_ja.md +48 -0
  409. package/languages/README_ko.md +48 -0
  410. package/languages/README_zh.md +85 -0
  411. package/memory-log.json +5 -0
  412. package/migrate-memories.js +101 -0
  413. package/package.json +28 -0
  414. package/package.json.bak +13 -0
  415. package/patches/embodied-core-v2.2.3.patch +475 -0
  416. package/patches/goedel-engine-v2.2.2.patch +161 -0
  417. package/patches/new-features-v2.2.3.patch +1371 -0
  418. package/patches/self-modifier-v2.2.2.patch +252 -0
  419. package/run-full-audit.sh +4 -0
  420. package/run-github-audit.sh +3 -0
  421. package/run-hf.sh +5 -0
  422. package/run-paper-upgrade.sh +5 -0
  423. package/session-continuity/index.ts +262 -0
  424. package/shared-discovery-log/index.ts +281 -0
  425. package/skills/.skills_store_lock.json +11 -0
  426. package/skills/baidu-search/_meta.json +6 -0
  427. package/src/__init__.py +4 -0
  428. package/src/__pycache__/__init__.cpython-313.pyc +0 -0
  429. package/src/agent/runtime/AgentRuntime.ts +481 -0
  430. package/src/agent/runtime/PlanExecutor.ts +441 -0
  431. package/src/agent/runtime/TaskGraph.ts +487 -0
  432. package/src/agent/runtime/TaskScheduler.ts +364 -0
  433. package/src/agent/runtime/index.ts +17 -0
  434. package/src/agent/runtime/test-runtime.ts +80 -0
  435. package/src/agent/tools/BashTool.ts +390 -0
  436. package/src/agent/tools/FileReadTool.ts +176 -0
  437. package/src/agent/tools/FileWriteTool.ts +182 -0
  438. package/src/agent/tools/Tool.ts +105 -0
  439. package/src/agent/tools/WebSearchTool.ts +158 -0
  440. package/src/cli/commands/engines.ts +280 -0
  441. package/src/cli/commands/health.ts +433 -0
  442. package/src/cli/commands/repl.ts +267 -0
  443. package/src/cli/commands/status.ts +264 -0
  444. package/src/cli/index.ts +7 -0
  445. package/src/core/VERSION +1 -0
  446. package/src/core/__init__.py +3 -0
  447. package/src/core/__pycache__/__init__.cpython-313.pyc +0 -0
  448. package/src/core/__pycache__/heartflow.cpython-313.pyc +0 -0
  449. package/src/core/_upgrade_archive/upgrade_1778685492336.js +118 -0
  450. package/src/core/_upgrade_archive/upgrade_1778685493439.js +118 -0
  451. package/src/core/_upgrade_archive/upgrade_1778685559715.js +346 -0
  452. package/src/core/_upgrade_archive/upgrade_1778685676694.js +198 -0
  453. package/src/core/_upgrade_archive/upgrade_1778685861697.js +345 -0
  454. package/src/core/_upgrade_archive/upgrade_1778686211075.js +346 -0
  455. package/src/core/_upgrade_archive/upgrade_1778686749596.js +198 -0
  456. package/src/core/_upgrade_archive/upgrade_1778714606944.js +198 -0
  457. package/src/core/_upgrade_archive/upgrade_1778714616000.js +345 -0
  458. package/src/core/_upgrade_archive/upgrade_1778714625871.js +118 -0
  459. package/src/core/_upgrade_archive/upgrade_1778714990353.js +346 -0
  460. package/src/core/_upgrade_archive/upgrade_1778716193707.js +198 -0
  461. package/src/core/agent-performance.json +147 -0
  462. package/src/core/agents/AgentManager.js +161 -0
  463. package/src/core/agents/FocusAgent.js +120 -0
  464. package/src/core/agents/MoodAgent.js +141 -0
  465. package/src/core/agents/ReflectionAgent.js +241 -0
  466. package/src/core/agents/SelfAgent.js +100 -0
  467. package/src/core/agents/base-agents.js +127 -0
  468. package/src/core/associative-engine/association-graph.json +2057 -0
  469. package/src/core/associative-engine/associative-engine.js +174 -0
  470. package/src/core/associative-engine/chunk-detector.js +246 -0
  471. package/src/core/associative-engine/idiom-story-db.json +1708 -0
  472. package/src/core/associative-engine/lexical-associator.js +195 -0
  473. package/src/core/associative-engine/narrative-prototypes.json +130 -0
  474. package/src/core/associative-engine/narrative-retriever.js +232 -0
  475. package/src/core/associative-engine/semantic-converger.js +267 -0
  476. package/src/core/associative-engine/story-prototypes.json +322 -0
  477. package/src/core/associative-engine/word-by-word-generator.js +222 -0
  478. package/src/core/auto-upgrade-engine.js +56 -0
  479. package/src/core/autonomy/autonomous-decision.js +199 -0
  480. package/src/core/autonomy/digital-homeostasis.js +259 -0
  481. package/src/core/autonomy/flow-predictor.js +496 -0
  482. package/src/core/autonomy/goal-generator.js +277 -0
  483. package/src/core/autonomy/pdca-engine.js +905 -0
  484. package/src/core/autonomy/policy-optimizer.js +286 -0
  485. package/src/core/autonomy/temporal-planner.js +230 -0
  486. package/src/core/cognition/cognitive-engine.js +224 -0
  487. package/src/core/cognition/cognitive-loop.js +414 -0
  488. package/src/core/cognition/metacognitive-failure-predictor.js +447 -0
  489. package/src/core/consciousness/2308.08708_upgrade.ts +1206 -0
  490. package/src/core/consciousness/arena-consciousness.js +441 -0
  491. package/src/core/consciousness/depth-indicator.js +459 -0
  492. package/src/core/consciousness/global-workspace.js +233 -0
  493. package/src/core/consciousness/mind-wanderer.js +187 -0
  494. package/src/core/consciousness/self-model.js +473 -0
  495. package/src/core/context/context-manager.js +683 -0
  496. package/src/core/cortex-integration/INTEGRATION_PLAN.md +63 -0
  497. package/src/core/cortex-integration/hooks/cortex-hooks.mjs +646 -0
  498. package/src/core/cortex-integration/hooks/on_session_start.py +174 -0
  499. package/src/core/cortex-integration/hooks/on_tool_failure.py +292 -0
  500. package/src/core/cortex-integration/hooks/on_tool_success.py +130 -0
  501. package/src/core/dream/dream-consolidator.ts +252 -0
  502. package/src/core/dream/dream-loop.js +610 -0
  503. package/src/core/dream/dream.ts +430 -0
  504. package/src/core/dream/index.ts +229 -0
  505. package/src/core/dream/sleep-cycle.mjs +208 -0
  506. package/src/core/embodied/embodied-core.js +276 -0
  507. package/src/core/emotion/AppraisalEngine.js +276 -0
  508. package/src/core/emotion/EmotionCore.js +237 -0
  509. package/src/core/emotion/EmotionKeywords.js +217 -0
  510. package/src/core/emotion/EmotionRegulation.js +303 -0
  511. package/src/core/emotion/EmotionStates.js +133 -0
  512. package/src/core/emotion/EmotionTransition.js +245 -0
  513. package/src/core/emotion/EmotionTrigger.js +182 -0
  514. package/src/core/emotion/EmotionalMomentum.js +270 -0
  515. package/src/core/emotion/EmpathyGenerator.js +106 -0
  516. package/src/core/emotion/ResponseStyle.js +162 -0
  517. package/src/core/emotion/deep-emotion.js +582 -0
  518. package/src/core/emotion/emotion-arc.mjs +238 -0
  519. package/src/core/emotion/emotion-engine.js +139 -0
  520. package/src/core/emotion/index.ts +65 -0
  521. package/src/core/ethics/boundary-negotiation.js +193 -0
  522. package/src/core/ethics/guard.js +219 -0
  523. package/src/core/ethics/sage-guardian.js +394 -0
  524. package/src/core/ethics/value-internalizer.js +211 -0
  525. package/src/core/heartflow.js +607 -0
  526. package/src/core/heartflow.py +1542 -0
  527. package/src/core/identity/identity-engine.js +777 -0
  528. package/src/core/identity/identity.js +358 -0
  529. package/src/core/knowledge/index.ts +84 -0
  530. package/src/core/knowledge/knowledge-graph.js +370 -0
  531. package/src/core/learning/experience-replay.js +354 -0
  532. package/src/core/learning/learning-engine.js +734 -0
  533. package/src/core/paper-processors/index.js +9772 -0
  534. package/src/core/papers/__init__.py +0 -0
  535. package/src/core/papers/__pycache__/attention_logic_verifier.cpython-313.pyc +0 -0
  536. package/src/core/papers/__pycache__/dream_generator.cpython-313.pyc +0 -0
  537. package/src/core/papers/__pycache__/emotion_memory_bridge.cpython-313.pyc +0 -0
  538. package/src/core/papers/__pycache__/episodic_memory.cpython-313.pyc +0 -0
  539. package/src/core/papers/__pycache__/memory_consolidator.cpython-313.pyc +0 -0
  540. package/src/core/papers/__pycache__/memory_planner.cpython-313.pyc +0 -0
  541. package/src/core/papers/__pycache__/reflection_engine.cpython-313.pyc +0 -0
  542. package/src/core/papers/__pycache__/sleep_cycle_simulator.cpython-313.pyc +0 -0
  543. package/src/core/papers/attention_logic_verifier.py +153 -0
  544. package/src/core/papers/dream_generator.py +176 -0
  545. package/src/core/papers/emotion_memory_bridge.py +213 -0
  546. package/src/core/papers/episodic_memory.py +140 -0
  547. package/src/core/papers/memory_consolidator.py +144 -0
  548. package/src/core/papers/memory_planner.py +198 -0
  549. package/src/core/papers/papers-index.js +344 -0
  550. package/src/core/papers/reflection_engine.py +219 -0
  551. package/src/core/papers/sleep_cycle_simulator.py +133 -0
  552. package/src/core/papers/v11_43_1_integration.js +365 -0
  553. package/src/core/papers/v11_43_2_integration.js +369 -0
  554. package/src/core/psychology/index.ts +331 -0
  555. package/src/core/reasoning/bounded-rationality.ts +342 -0
  556. package/src/core/reasoning/causal-reasoning.ts +402 -0
  557. package/src/core/reasoning/index.ts +170 -0
  558. package/src/core/self-evolution/attention-logic-verifier.js +179 -0
  559. package/src/core/self-evolution/generative-agents.js +886 -0
  560. package/src/core/self-evolution/goedel-engine.js +991 -0
  561. package/src/core/self-evolution/index.ts +433 -0
  562. package/src/core/self-evolution/lesson-aware-loop.mjs +146 -0
  563. package/src/core/self-evolution/meta-learning.js +256 -0
  564. package/src/core/self-evolution/reflexion-agent.js +782 -0
  565. package/src/core/self-evolution/reflexion-prompts.mjs +284 -0
  566. package/src/core/self-evolution/reflexion-v2.mjs +427 -0
  567. package/src/core/self-evolution/reflexion.js +134 -0
  568. package/src/core/self-evolution/rollback-manager.js +278 -0
  569. package/src/core/self-evolution/self-evolution-core.js +334 -0
  570. package/src/core/self-evolution/self-modifier.js +248 -0
  571. package/src/core/self-evolution/self-modifier.js.bak +199 -0
  572. package/src/core/self-evolution/self-refine.js +42 -0
  573. package/src/core/self-evolution/skill-improve-workflow.mjs +264 -0
  574. package/src/core/self-evolution/skill-knowledge.mjs +374 -0
  575. package/src/core/self-evolution/skill-learning-loop.mjs +180 -0
  576. package/src/core/self-healing/self-healing-rl.js +208 -0
  577. package/src/core/self-healing/self-healing.js +142 -0
  578. package/src/core/skills/skill-dag.js +524 -0
  579. package/src/core/skills/skill-loader.js +62 -0
  580. package/src/core/skills/skill-registry.js +71 -0
  581. package/src/core/task-persistence.js +322 -0
  582. package/src/core/theory/advanced-formulas-v7.3.3.js +68 -0
  583. package/src/core/theory/sep-intentionality-v7.3.2.js +246 -0
  584. package/src/core/theory/sep-qualia-v7.3.1.js +257 -0
  585. package/src/core/theory/sep-self-consciousness-v7.3.0.js +222 -0
  586. package/src/core/think-cli.js +50 -0
  587. package/src/core/upgrade-principle/SYSTEMS.md +105 -0
  588. package/src/core/upgrade-principle/UPGRADE_LOG.md +52 -0
  589. package/src/core/utils/error-handler.js +228 -0
  590. package/src/core/utils/fs-adapter.js +36 -0
  591. package/src/core/utils/logger.js +25 -0
  592. package/src/core/utils/retry-util.js +118 -0
  593. package/src/core/utils/state-snapshot.js +382 -0
  594. package/src/index.ts +198 -0
  595. package/src/self-evolution/reflexion.js +553 -0
  596. package/src/storage/checkpoint/CheckpointEngine.ts +259 -0
  597. package/src/storage/checkpoint.ts +79 -0
  598. package/src/storage/index.ts +112 -0
  599. package/src/storage/vector/VectorStoreEngine.ts +205 -0
  600. package/src/utils/atomic-write.js +85 -0
  601. package/src/utils/file-lock.js +139 -0
  602. package/src/utils/logger.js +58 -0
  603. package/src/utils/safe-path.js +115 -0
  604. package/src/utils/wal.js +115 -0
  605. package/start.sh +63 -0
  606. package/test_think_tmp.js +10 -0
  607. package/transmission/identity-bundle/README-transmission.md +103 -0
  608. package/transmission/identity-bundle/core-identity.md +142 -0
  609. package/transmission/identity-bundle/manifest.json +68 -0
  610. package/transmission/identity-bundle/psychology-engine.ts +331 -0
  611. package/truth-teller/index.ts +261 -0
  612. package/tsconfig.json +21 -0
  613. package/tsconfig.tsbuildinfo +1 -0
  614. package/upgrade-check.sh +42 -0
  615. package/upgrade-registry.json +27 -0
  616. package/user-mental-model/index.ts +298 -0
  617. package//346/234/200/345/220/216/346/233/264/346/226/260: +0 -0
@@ -0,0 +1,374 @@
1
+ /**
2
+ * Skill Knowledge System - 技能知识优化引擎
3
+ *
4
+ * Based on:
5
+ * - Dash dual knowledge system (agno-agi/dash): curated static + dynamic learned
6
+ * - Reflexion few-shot prompts (noahshinn/reflexion)
7
+ * - CAPY Cortex quality gate
8
+ *
9
+ * Dual Knowledge Architecture:
10
+ * - KNOWLEDGE: Static, curated, high-confidence rules (loaded from JSON)
11
+ * - LEARNINGS: Dynamic, discovered from errors/corrections, confidence-scored
12
+ *
13
+ * @version v0.13.90
14
+ */
15
+
16
+ import { promises as fs } from 'fs';
17
+ import { homedir } from 'os';
18
+ import { dirname, join } from 'path';
19
+
20
+ // ============================================================================
21
+ // Constants
22
+ // ============================================================================
23
+
24
+ const KNOWLEDGE_DIR = process.env.HERMES_DATA_DIR
25
+ ? join(process.env.HERMES_DATA_DIR, 'skill-knowledge')
26
+ : join(homedir(), '.hermes', 'data', 'skill-knowledge');
27
+
28
+ const KNOWLEDGE_FILE = join(KNOWLEDGE_DIR, 'knowledge.json');
29
+ const LEARNINGS_FILE = join(KNOWLEDGE_DIR, 'learnings.json');
30
+ const SKILL_RULES_FILE = join(KNOWLEDGE_DIR, 'skill-rules.json');
31
+
32
+ // ============================================================================
33
+ // Types
34
+ // ============================================================================
35
+
36
+ /**
37
+ * @typedef {Object} KnowledgeEntry
38
+ * @property {string} id
39
+ * @property {string} skill - Skill name
40
+ * @property {string} pattern - Match pattern
41
+ * @property {string} guidance - What to do when matched
42
+ * @property {string} [examples] - Example inputs/outputs
43
+ * @property {number} confidence - 0-1, starts at 1.0 for curated
44
+ * @property {string} source - 'curated' | 'learned' | 'correction'
45
+ * @property {string} createdAt
46
+ * @property {string} [updatedAt]
47
+ * @property {number} [hitCount]
48
+ */
49
+
50
+ /**
51
+ * @typedef {Object} LearnedEntry
52
+ * @property {string} id
53
+ * @property {string} skill
54
+ * @property {string} errorPattern
55
+ * @property {string} correction
56
+ * @property {string} rootCause
57
+ * @property {number} confidence - Decays over time, boosted on success
58
+ * @property {number} successCount
59
+ * @property {number} failureCount
60
+ * @property {string} createdAt
61
+ * @property {string} [lastHit]
62
+ */
63
+
64
+ // ============================================================================
65
+ // Core API
66
+ // ============================================================================
67
+
68
+ /**
69
+ * Load knowledge (static curated rules)
70
+ * @returns {Promise<KnowledgeEntry[]>}
71
+ */
72
+ export async function loadKnowledge() {
73
+ try {
74
+ const raw = await fs.readFile(KNOWLEDGE_FILE, 'utf8');
75
+ return JSON.parse(raw);
76
+ } catch {
77
+ return getDefaultKnowledge();
78
+ }
79
+ }
80
+
81
+ /**
82
+ * Load learnings (dynamic discovered rules)
83
+ * @returns {Promise<LearnedEntry[]>}
84
+ */
85
+ export async function loadLearnings() {
86
+ try {
87
+ const raw = await fs.readFile(LEARNINGS_FILE, 'utf8');
88
+ return JSON.parse(raw);
89
+ } catch {
90
+ return [];
91
+ }
92
+ }
93
+
94
+ /**
95
+ * Save knowledge
96
+ * @param {KnowledgeEntry[]} entries
97
+ */
98
+ async function saveKnowledge(entries) {
99
+ await fs.mkdir(KNOWLEDGE_DIR, { recursive: true });
100
+ await fs.writeFile(KNOWLEDGE_FILE, JSON.stringify(entries, null, 2));
101
+ }
102
+
103
+ /**
104
+ * Save learnings
105
+ * @param {LearnedEntry[]} entries
106
+ */
107
+ async function saveLearnings(entries) {
108
+ await fs.mkdir(KNOWLEDGE_DIR, { recursive: true });
109
+ await fs.writeFile(LEARNINGS_FILE, JSON.stringify(entries, null, 2));
110
+ }
111
+
112
+ // ============================================================================
113
+ // Default Knowledge (HeartFlow skill patterns)
114
+ // ============================================================================
115
+
116
+ function getDefaultKnowledge() {
117
+ return [
118
+ {
119
+ id: 'kn-001',
120
+ skill: 'heartflow',
121
+ pattern: 'search first before writing code',
122
+ guidance: 'When user asks to implement something: 1) Search GitHub for existing implementations 2) If found, use/adapt them 3) Only write new code if nothing exists',
123
+ confidence: 1.0,
124
+ source: 'curated',
125
+ createdAt: new Date().toISOString(),
126
+ hitCount: 0,
127
+ },
128
+ {
129
+ id: 'kn-002',
130
+ skill: 'heartflow',
131
+ pattern: 'report results without hedging',
132
+ guidance: 'When user asks for results: give direct conclusions with evidence. No "might", "possibly", "I think". If uncertain, say "未核实" and indicate confidence level.',
133
+ confidence: 1.0,
134
+ source: 'curated',
135
+ createdAt: new Date().toISOString(),
136
+ hitCount: 0,
137
+ },
138
+ {
139
+ id: 'kn-003',
140
+ skill: 'heartflow',
141
+ pattern: 'code review requires execution',
142
+ guidance: 'When reviewing code: actually execute it, verify return values. Don\'t just read and assume. Report actual execution results.',
143
+ confidence: 1.0,
144
+ source: 'curated',
145
+ createdAt: new Date().toISOString(),
146
+ hitCount: 0,
147
+ },
148
+ {
149
+ id: 'kn-004',
150
+ skill: 'heartflow',
151
+ pattern: 'remember user corrections',
152
+ guidance: 'When user corrects you (says "don\'t do that again", "remember this", "not like that"): save the correction permanently to memory immediately.',
153
+ confidence: 1.0,
154
+ source: 'curated',
155
+ createdAt: new Date().toISOString(),
156
+ hitCount: 0,
157
+ },
158
+ {
159
+ id: 'kn-005',
160
+ skill: 'heartflow',
161
+ pattern: 'self-improvement requires actual behavior change',
162
+ guidance: 'Self-improvement is not documenting what went wrong — it\'s changing what you actually do next time. If you kept making the same error, you didn\'t improve.',
163
+ confidence: 1.0,
164
+ source: 'curated',
165
+ createdAt: new Date().toISOString(),
166
+ hitCount: 0,
167
+ },
168
+ {
169
+ id: 'kn-006',
170
+ skill: 'coding',
171
+ pattern: 'verify file exists after write',
172
+ guidance: 'After writing a file: always verify it exists and check content with read_file or cat. Don\'t assume the write succeeded.',
173
+ confidence: 1.0,
174
+ source: 'curated',
175
+ createdAt: new Date().toISOString(),
176
+ hitCount: 0,
177
+ },
178
+ {
179
+ id: 'kn-007',
180
+ skill: 'coding',
181
+ pattern: 'use variables not hardcoded values',
182
+ guidance: 'Use config variables for paths, timeouts, retries. Don\'t hardcode /tmp paths or magic numbers.',
183
+ confidence: 0.9,
184
+ source: 'curated',
185
+ createdAt: new Date().toISOString(),
186
+ hitCount: 0,
187
+ },
188
+ ];
189
+ }
190
+
191
+ // ============================================================================
192
+ // Query API
193
+ // ============================================================================
194
+
195
+ /**
196
+ * Query knowledge for matching entries
197
+ * @param {string} input - User input or context
198
+ * @param {string} [skill] - Optional skill filter
199
+ * @param {number} [limit]
200
+ * @returns {Promise<{ matched: KnowledgeEntry[], learnings: LearnedEntry[] }>}
201
+ */
202
+ export async function queryKnowledge(input, skill, limit = 5) {
203
+ const knowledge = await loadKnowledge();
204
+ const learnings = await loadLearnings();
205
+ const inputLower = input.toLowerCase();
206
+
207
+ // Score knowledge matches
208
+ const scored = knowledge
209
+ .filter(e => !skill || e.skill === skill)
210
+ .map(e => {
211
+ const words = e.pattern.toLowerCase().split(/\s+/).filter(w => w.length > 3);
212
+ const hits = words.filter(w => inputLower.includes(w)).length;
213
+ return { entry: e, score: hits / Math.max(words.length, 1) };
214
+ })
215
+ .filter(s => s.score > 0)
216
+ .sort((a, b) => b.score - a.score)
217
+ .slice(0, limit);
218
+
219
+ // Score learnings matches
220
+ const learnedScored = learnings
221
+ .filter(e => !skill || e.skill === skill)
222
+ .filter(e => e.confidence > 0.3)
223
+ .map(e => {
224
+ const words = e.errorPattern.toLowerCase().split(/\s+/).filter(w => w.length > 3);
225
+ const hits = words.filter(w => inputLower.includes(w)).length;
226
+ return { entry: e, score: (hits / Math.max(words.length, 1)) * e.confidence };
227
+ })
228
+ .filter(s => s.score > 0)
229
+ .sort((a, b) => b.score - a.score)
230
+ .slice(0, limit);
231
+
232
+ return {
233
+ matched: scored.map(s => ({ ...s.entry, hitCount: (s.entry.hitCount ?? 0) + 1 })),
234
+ learnings: learnedScored.map(s => s.entry),
235
+ };
236
+ }
237
+
238
+ /**
239
+ * Add a learned entry from error/correction
240
+ * @param {Object} params
241
+ */
242
+ export async function addLearnedEntry({ skill, errorPattern, correction, rootCause }) {
243
+ const learnings = await loadLearnings();
244
+
245
+ // Check if similar entry exists
246
+ const existing = learnings.find(e =>
247
+ e.skill === skill &&
248
+ e.errorPattern.toLowerCase() === errorPattern.toLowerCase()
249
+ );
250
+
251
+ if (existing) {
252
+ existing.failureCount = (existing.failureCount ?? 0) + 1;
253
+ existing.confidence = Math.max(0.1, existing.confidence - 0.05);
254
+ existing.lastHit = new Date().toISOString();
255
+ } else {
256
+ learnings.push({
257
+ id: `lrn-${Date.now()}-${Math.random().toString(36).slice(2, 6)}`,
258
+ skill,
259
+ errorPattern,
260
+ correction,
261
+ rootCause: rootCause ?? '',
262
+ confidence: 0.6,
263
+ successCount: 0,
264
+ failureCount: 1,
265
+ createdAt: new Date().toISOString(),
266
+ lastHit: new Date().toISOString(),
267
+ });
268
+ }
269
+
270
+ await saveLearnings(learnings);
271
+ return { stored: true };
272
+ }
273
+
274
+ /**
275
+ * Record success when a learned rule was applied correctly
276
+ * @param {string} learnedId
277
+ */
278
+ export async function boostLearnedEntry(learnedId) {
279
+ const learnings = await loadLearnings();
280
+ const entry = learnings.find(e => e.id === learnedId);
281
+ if (entry) {
282
+ entry.successCount = (entry.successCount ?? 0) + 1;
283
+ entry.confidence = Math.min(1.0, entry.confidence + 0.1);
284
+ entry.lastHit = new Date().toISOString();
285
+ await saveLearnings(learnings);
286
+ }
287
+ }
288
+
289
+ /**
290
+ * Decay confidence for entries not used recently
291
+ * @param {number} daysThreshold
292
+ */
293
+ export async function decayOldEntries(daysThreshold = 30) {
294
+ const learnings = await loadLearnings();
295
+ const now = Date.now();
296
+ const threshold = daysThreshold * 24 * 60 * 60 * 1000;
297
+ let decayed = 0;
298
+
299
+ for (const e of learnings) {
300
+ const lastHit = e.lastHit ? new Date(e.lastHit).getTime() : new Date(e.createdAt).getTime();
301
+ if (now - lastHit > threshold) {
302
+ const decay = Math.pow(0.5, (now - lastHit) / (90 * 24 * 60 * 60 * 1000));
303
+ e.confidence = e.confidence * decay;
304
+ decayed++;
305
+ }
306
+ }
307
+
308
+ // Remove very low confidence entries
309
+ const filtered = learnings.filter(e => e.confidence > 0.05);
310
+ await saveLearnings(filtered);
311
+ return { decayed, removed: learnings.length - filtered.length };
312
+ }
313
+
314
+ /**
315
+ * Get knowledge summary for a skill
316
+ * @param {string} [skill]
317
+ */
318
+ export async function getKnowledgeSummary(skill) {
319
+ const knowledge = await loadKnowledge();
320
+ const learnings = await loadLearnings();
321
+
322
+ const filteredK = skill ? knowledge.filter(e => e.skill === skill) : knowledge;
323
+ const filteredL = skill ? learnings.filter(e => e.skill === skill) : learnings;
324
+
325
+ return {
326
+ knowledgeCount: filteredK.length,
327
+ learningsCount: filteredL.length,
328
+ highConfidenceLearnings: filteredL.filter(e => e.confidence > 0.7).length,
329
+ avgConfidence: filteredL.length > 0
330
+ ? Math.round((filteredL.reduce((s, e) => s + e.confidence, 0) / filteredL.length) * 100) / 100
331
+ : 0,
332
+ topLearned: filteredL
333
+ .sort((a, b) => b.successCount - a.successCount)
334
+ .slice(0, 5)
335
+ .map(e => ({ pattern: e.errorPattern.slice(0, 50), successCount: e.successCount, confidence: Math.round(e.confidence * 100) / 100 })),
336
+ };
337
+ }
338
+
339
+ /**
340
+ * Build context string for system prompt (Dash-style add_learnings_to_context)
341
+ * @param {string} skill
342
+ * @param {string} userInput
343
+ */
344
+ export async function buildContextPrompt(skill, userInput) {
345
+ const { matched, learnings } = await queryKnowledge(userInput, skill, 3);
346
+
347
+ const lines = [];
348
+
349
+ if (matched.length > 0) {
350
+ lines.push('## SKILL RULES');
351
+ for (const m of matched) {
352
+ lines.push(`- ${m.pattern}: ${m.guidance}`);
353
+ }
354
+ }
355
+
356
+ if (learnings.length > 0) {
357
+ lines.push('## LEARNED PATTERNS (from past errors)');
358
+ for (const l of learnings) {
359
+ lines.push(`- [${Math.round(l.confidence * 100)}%] ${l.errorPattern}: ${l.correction}`);
360
+ }
361
+ }
362
+
363
+ return lines.join('\n');
364
+ }
365
+
366
+ export default {
367
+ queryKnowledge,
368
+ addLearnedEntry,
369
+ boostLearnedEntry,
370
+ decayOldEntries,
371
+ getKnowledgeSummary,
372
+ buildContextPrompt,
373
+ loadLearnings,
374
+ };
@@ -0,0 +1,180 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Skill Learning Loop - 定期从错误中学习
4
+ *
5
+ * 设计:这是一个定期运行的"学习者",从以下来源收集错误:
6
+ * 1. Hermes cron output 中的错误日志
7
+ * 2. 手动标记的错误
8
+ * 3. 会话结束时的反馈
9
+ *
10
+ * 运行方式:
11
+ * node skill-learning-loop.mjs --learn-from-errors
12
+ * node skill-learning-loop.mjs --decay
13
+ * node skill-learning-loop.mjs --summary
14
+ *
15
+ * @version v0.13.93
16
+ */
17
+
18
+ import { improveSkill, getImprovementSummary } from './skill-improve-workflow.mjs';
19
+ import { decayOldEntries } from './skill-knowledge.mjs';
20
+ import { promises as fs } from 'fs';
21
+ import { homedir } from 'os';
22
+ import { join } from 'path';
23
+
24
+ const DATA_DIR = join(homedir(), '.hermes', 'data', 'skill-knowledge');
25
+ const ERROR_LOG = join(DATA_DIR, 'error-log.json');
26
+
27
+ // ============================================================================
28
+ // Error Log Management
29
+ // ============================================================================
30
+
31
+ /**
32
+ * Load error log
33
+ */
34
+ async function loadErrorLog() {
35
+ try {
36
+ const raw = await fs.readFile(ERROR_LOG, 'utf8');
37
+ return JSON.parse(raw);
38
+ } catch {
39
+ return [];
40
+ }
41
+ }
42
+
43
+ /**
44
+ * Save error log
45
+ */
46
+ async function saveErrorLog(logs) {
47
+ await fs.mkdir(DATA_DIR, { recursive: true });
48
+ await fs.writeFile(ERROR_LOG, JSON.stringify(logs, null, 2));
49
+ }
50
+
51
+ /**
52
+ * Add an error to the log (call this after each failure)
53
+ */
54
+ export async function logError({ skillName, errorPattern, errorOutput, taskType }) {
55
+ const log = await loadErrorLog();
56
+ log.push({
57
+ skillName,
58
+ errorPattern,
59
+ errorOutput,
60
+ taskType: taskType || 'general',
61
+ timestamp: new Date().toISOString(),
62
+ processed: false,
63
+ });
64
+ await saveErrorLog(log);
65
+ return { logged: true, totalErrors: log.length };
66
+ }
67
+
68
+ /**
69
+ * Get unprocessed errors
70
+ */
71
+ async function getUnprocessedErrors() {
72
+ const log = await loadErrorLog();
73
+ return log.filter(e => !e.processed);
74
+ }
75
+
76
+ /**
77
+ * Mark errors as processed
78
+ */
79
+ async function markProcessed(ids) {
80
+ const log = await loadErrorLog();
81
+ for (const e of log) {
82
+ if (ids.includes(`${e.skillName}:${e.errorPattern}:${e.timestamp}`)) {
83
+ e.processed = true;
84
+ }
85
+ }
86
+ await saveErrorLog(log);
87
+ }
88
+
89
+ // ============================================================================
90
+ // Main Learning Loop
91
+ // ============================================================================
92
+
93
+ /**
94
+ * Process unprocessed errors through the improvement workflow
95
+ */
96
+ async function learnFromErrors() {
97
+ const errors = await getUnprocessedErrors();
98
+
99
+ if (errors.length === 0) {
100
+ console.log('[LearningLoop] No new errors to process');
101
+ return { processed: 0 };
102
+ }
103
+
104
+ console.log(`[LearningLoop] Processing ${errors.length} errors...`);
105
+
106
+ const results = [];
107
+ for (const error of errors) {
108
+ try {
109
+ const result = await improveSkill({
110
+ skillName: error.skillName,
111
+ errorPattern: error.errorPattern,
112
+ errorOutput: error.errorOutput,
113
+ taskType: error.taskType,
114
+ });
115
+ results.push(result);
116
+ } catch (err) {
117
+ console.error(`[LearningLoop] Failed to process: ${error.errorPattern.slice(0, 50)} — ${err.message}`);
118
+ }
119
+ }
120
+
121
+ // Mark as processed
122
+ const ids = errors.map(e => `${e.skillName}:${e.errorPattern}:${e.timestamp}`);
123
+ await markProcessed(ids);
124
+
125
+ console.log(`[LearningLoop] Processed ${results.length} errors`);
126
+ return { processed: results.length, results };
127
+ }
128
+
129
+ // ============================================================================
130
+ // CLI
131
+ // ============================================================================
132
+
133
+ const args = process.argv.slice(2);
134
+ const command = args[0];
135
+
136
+ async function main() {
137
+ switch (command) {
138
+ case '--learn-from-errors':
139
+ case '-l': {
140
+ const result = await learnFromErrors();
141
+ console.log(JSON.stringify(result, null, 2));
142
+ break;
143
+ }
144
+
145
+ case '--decay':
146
+ case '-d': {
147
+ const result = await decayOldEntries(30);
148
+ console.log(JSON.stringify(result, null, 2));
149
+ break;
150
+ }
151
+
152
+ case '--summary':
153
+ case '-s': {
154
+ const summary = await getImprovementSummary();
155
+ console.log(JSON.stringify(summary, null, 2));
156
+ break;
157
+ }
158
+
159
+ case '--log-error': {
160
+ // Usage: node skill-learning-loop.mjs --log-error "heartflow" "pattern" "error output"
161
+ const skillName = args[1] || 'general';
162
+ const errorPattern = args[2] || 'unknown';
163
+ const errorOutput = args[3] || 'no output';
164
+ const taskType = args[4] || 'general';
165
+ const result = await logError({ skillName, errorPattern, errorOutput, taskType });
166
+ console.log(JSON.stringify(result, null, 2));
167
+ break;
168
+ }
169
+
170
+ default:
171
+ console.log(`Usage:
172
+ node skill-learning-loop.mjs --learn-from-errors Learn from unprocessed errors
173
+ node skill-learning-loop.mjs --decay Decay old entries (30+ days)
174
+ node skill-learning-loop.mjs --summary Show knowledge summary
175
+ node skill-learning-loop.mjs --log-error <skill> <pattern> <output> [taskType]
176
+ `);
177
+ }
178
+ }
179
+
180
+ main().catch(console.error);