@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,1371 @@
1
+ diff --git a/CHANGELOG.md b/CHANGELOG.md
2
+ index f6f99da..c0bbfc0 100644
3
+ --- a/CHANGELOG.md
4
+ +++ b/CHANGELOG.md
5
+ @@ -1,5 +1,157 @@
6
+ # HeartFlow 变更日志
7
+
8
+ +## v2.2.2 (2026-04-09)
9
+ +
10
+ +### 🎉 新增功能
11
+ +
12
+ +#### 元认知进化模块 (`src/core/self-evolution/goedel-engine.js`)
13
+ +
14
+ +- **原则性反思 `principleBasedReflect()`**
15
+ + - 基于核心价值观进行深度反思
16
+ + - 评估当前行为是否符合长期原则
17
+ + - 计算原则对齐分数
18
+ + - 检测原则偏离并提供建议
19
+ +
20
+ +- **过程性反思 `proceduralReflect()`**
21
+ + - 反思进化过程本身的有效性
22
+ + - 分析进化频率、成功率、时间间隔
23
+ + - 识别效率瓶颈和优化空间
24
+ +
25
+ +#### 元认知自我修改 (`src/core/self-modifier.js`)
26
+ +
27
+ +- **补丁生成机制**
28
+ + - 所有修改生成 `.patch` 文件交由用户审查
29
+ + - 不直接应用修改,确保用户可控
30
+ + - 补丁存储在 `patches/` 目录
31
+ +
32
+ +- **审批工作流**
33
+ + - `metacognitiveModify(suggestion)` - 生成补丁
34
+ + - `listPendingPatches()` - 列出待审批补丁
35
+ + - `applyApprovedPatch(patchFileName)` - 应用已审批补丁
36
+ + - `rejectPatch(patchFileName)` - 拒绝并删除补丁
37
+ +
38
+ +- **差异化对比**
39
+ + - `computeSimpleDiff()` - 计算行级差异
40
+ + - 标准 unified diff 格式
41
+ + - 包含应用/撤销说明
42
+ +
43
+ +### 🔧 技术改进
44
+ +
45
+ +- 补丁文件命名:`self-mod-{timestamp}.patch`
46
+ +- 变更历史记录增加 `requiresApproval` 字段
47
+ +- 新增 patches 目录管理
48
+ +
49
+ +### 📋 审查流程
50
+ +
51
+ +1. 自我修改建议 → 生成补丁 → 存储到 `patches/`
52
+ +2. 用户审查补丁文件
53
+ +3. 使用 `patch -p1 < patches/xxx.patch` 应用
54
+ +4. 使用 `patch -R -p1 < patches/xxx.patch` 撤销
55
+ +
56
+ +---
57
+ +
58
+ +## v2.2.1 (2026-04-09)
59
+ +
60
+ +### 🎉 新增功能
61
+ +
62
+ +#### 自适应调节引擎 (`src/core/adaptive-controller.js`)
63
+ +- `adjustInterventionPolicy(userFlowState, taskComplexity)` 函数
64
+ +- 根据心流状态动态调整干预频率和风格
65
+ +- 策略映射:
66
+ + - 深度心流 → 极低干预 (`⚡`)
67
+ + - 轻度分心 → 中等干预 (`要继续吗?`)
68
+ + - 焦虑/挫败 → 高干预 (`我注意到你卡住了...`)
69
+ + - 无聊 → 低干预 (`想试试更优雅的写法吗?`)
70
+ +- 内部日志记录调节决策
71
+ +
72
+ +#### 多智能体编排器 (`src/core/agent-orchestrator.js`)
73
+ +- 基于DAG的任务调度器
74
+ +- 支持并行执行(FocusAgent + MoodAgent)
75
+ +- 依赖链:FocusAgent/MoodAgent → ContextAgent → SelfAgent → DecisionAgent
76
+ +- `Promise.all` 实现并行调用
77
+ +- 专家权重投票机制 `resolveConflict(opinions)`
78
+ +- 根据历史准确率自动计算权重
79
+ +
80
+ +#### 智能体表现追踪 (`src/core/agent-performance.json`)
81
+ +- 追踪各智能体任务成功率
82
+ +- 权重公式:`weight = 0.3 + accuracy * 0.7`
83
+ +- 定期更新权重
84
+ +
85
+ +#### 错误处理器 (`src/core/error-handler.js`)
86
+ +- 统一捕获系统异常
87
+ +- 错误分类:timeout/memory/permission/network/syntax/unknown
88
+ +- 错误历史记录和统计
89
+ +
90
+ +#### 状态快照管理器 (`src/core/state-snapshot.js`)
91
+ +- 定期保存系统状态
92
+ +- 支持快照恢复
93
+ +- 自动清理敏感数据
94
+ +
95
+ +### 📝 文档更新
96
+ +
97
+ +- `SKILL.md` 新增调试命令:
98
+ + - `/flow agents status` - 查看智能体状态
99
+ + - `/flow auto on/off` - 开关自适应模式
100
+ + - `/flow test` - 触发基准测试
101
+ +- `src/core/heartflow-engine.js` 集成所有新模块
102
+ +
103
+ +### 🔧 技术改进
104
+ +
105
+ +- 心流引擎模块化重构
106
+ +- 统一的错误处理和日志
107
+ +- 快照恢复机制
108
+ +- DAG执行优化(并行+依赖)
109
+ +
110
+ +### 📊 新增测试
111
+ +
112
+ +- `tests/self-benchmark/test-cases.json` - 25个标准测试用例
113
+ +- `tests/self-benchmark/run-benchmark.js` - 基准测试运行器
114
+ +- 意图识别率、情感识别率、伦理合规率
115
+ +
116
+ +### 🚀 下一步测试重点
117
+ +
118
+ +1. **自适应调节测试**
119
+ + - 测试不同心流状态下的干预策略
120
+ + - 验证干预频率和风格是否正确
121
+ +
122
+ +2. **多智能体DAG测试**
123
+ + - 测试并行执行性能
124
+ + - 测试专家权重投票
125
+ +
126
+ +3. **错误恢复测试**
127
+ + - 模拟异常,验证错误捕获
128
+ + - 验证快照恢复
129
+ +
130
+ +4. **基准测试**
131
+ + - 运行 `/flow test`
132
+ + - 评估意图识别和情感分析准确率
133
+ +
134
+ +---
135
+ +
136
+ +## v2.2.3 (2026-04-09)
137
+ +
138
+ +### 🎉 新增功能
139
+ +
140
+ +#### 三维经验大脑 (`src/core/memory/triality-memory.js`)
141
+ +- 时间维度:微秒级时间戳
142
+ +- 语义维度:384维向量嵌入
143
+ +- 关系维度:因果/引述/相似/相关关系
144
+ +- narrativeQuery() 图遍历叙事查询
145
+ +- 语义相似度搜索、时间范围查询
146
+ +
147
+ +#### 具身认知核心 (`src/core/embodied-core.js`)
148
+ +- 双系统架构:System 1 + System 2
149
+ +- cognitivePlan() 目标→思维步骤
150
+ +- executionMapping() 思维步骤→智能体调用
151
+ +- 思维链:OBSERVE→ANALYZE→PLAN→DECIDE→EXECUTE→REFLECT→ADAPT
152
+ +
153
+ +#### 生物传感器适配器 (`src/core/bio-sensor-adapter.js`)
154
+ +- 统一传感器接口
155
+ +- 支持 HRV/EDIT_FLOW/EYE_TRACKING/SKIN_CONDUCTANCE
156
+ +- 传感器融合计算专注度
157
+ +
158
+ +---
159
+ +
160
+ ## v2.2.0 (2026-04-08)
161
+
162
+ ### 🎉 新增功能
163
+ diff --git a/src/core/bio-sensor-adapter.js b/src/core/bio-sensor-adapter.js
164
+ new file mode 100644
165
+ index 0000000..eef1204
166
+ --- /dev/null
167
+ +++ b/src/core/bio-sensor-adapter.js
168
+ @@ -0,0 +1,353 @@
169
+ +/**
170
+ + * Bio-Sensor-Adapter - 生物传感器适配器接口
171
+ + *
172
+ + * 设计理念:
173
+ + * - 统一的传感器接口规范
174
+ + * - 支持心率变异 (HRV)、代码编辑流等多种数据源
175
+ + * - 预留扩展点,未来可集成更多生物信号
176
+ + *
177
+ + * 支持的传感器类型:
178
+ + * - HRV: 心率变异性
179
+ + * - EDIT_FLOW: 代码编辑流
180
+ + * - EYE_TRACKING: 眼动追踪
181
+ + * - SKIN_CONDUCTANCE: 皮肤电导
182
+ + */
183
+ +
184
+ +class BioSensorAdapter {
185
+ + constructor() {
186
+ + this.adapters = {};
187
+ + this.activeSensors = new Set();
188
+ + this.readingHistory = new Map();
189
+ +
190
+ + this.sensorTypes = {
191
+ + HRV: 'heart-rate-variability',
192
+ + EDIT_FLOW: 'code-edit-flow',
193
+ + EYE_TRACKING: 'eye-tracking',
194
+ + SKIN_CONDUCTANCE: 'skin-conductance',
195
+ + EEG: 'eeg-brainwave'
196
+ + };
197
+ +
198
+ + this.initializeBuiltIn();
199
+ + }
200
+ +
201
+ + /**
202
+ + * 初始化内置适配器
203
+ + */
204
+ + initializeBuiltIn() {
205
+ + // HRV 适配器(从 bio-signal-adapter 集成)
206
+ + this.adapters[this.sensorTypes.HRV] = {
207
+ + name: 'HRV Sensor',
208
+ + enabled: false,
209
+ + lastReading: null,
210
+ + readings: [],
211
+ + config: {
212
+ + samplingRate: 1000, // 1秒
213
+ + bufferSize: 100
214
+ + },
215
+ +
216
+ + enable: function() { this.enabled = true; },
217
+ + disable: function() { this.enabled = false; },
218
+ +
219
+ + read: function() {
220
+ + return this.lastReading;
221
+ + },
222
+ +
223
+ + onData: function(data) {
224
+ + this.lastReading = {
225
+ + value: data.hrv,
226
+ + timestamp: Date.now(),
227
+ + state: data.state,
228
+ + focus: data.focusScore
229
+ + };
230
+ + this.readings.push(this.lastReading);
231
+ + if (this.readings.length > this.config.bufferSize) {
232
+ + this.readings.shift();
233
+ + }
234
+ + }
235
+ + };
236
+ +
237
+ + // 代码编辑流适配器
238
+ + this.adapters[this.sensorTypes.EDIT_FLOW] = {
239
+ + name: 'Edit Flow Sensor',
240
+ + enabled: false,
241
+ + editPatterns: [],
242
+ + keystrokeBuffer: [],
243
+ + lastEvent: null,
244
+ + config: {
245
+ + windowSize: 5000, // 5秒窗口
246
+ + minEditDistance: 3
247
+ + },
248
+ +
249
+ + enable: function() { this.enabled = true; },
250
+ + disable: function() { this.enabled = false; },
251
+ +
252
+ + read: function() {
253
+ + return {
254
+ + editRate: this.calculateEditRate(),
255
+ + pauseCount: this.countPauses(),
256
+ + pattern: this.getCurrentPattern()
257
+ + };
258
+ + },
259
+ +
260
+ + onData: function(data) {
261
+ + this.keystrokeBuffer.push({
262
+ + type: data.type, // typing, delete, paste
263
+ + timestamp: Date.now(),
264
+ + length: data.length || 0
265
+ + });
266
+ + this.lastEvent = data;
267
+ + this.cleanupOldEvents();
268
+ + },
269
+ +
270
+ + calculateEditRate: function() {
271
+ + const now = Date.now();
272
+ + const recent = this.keystrokeBuffer.filter(e => now - e.timestamp < this.config.windowSize);
273
+ + return recent.length / (this.config.windowSize / 1000);
274
+ + },
275
+ +
276
+ + countPauses: function() {
277
+ + const now = Date.now();
278
+ + const recent = this.keystrokeBuffer.filter(e => now - e.timestamp < this.config.windowSize);
279
+ + let pauses = 0;
280
+ + for (let i = 1; i < recent.length; i++) {
281
+ + if (recent[i].timestamp - recent[i-1].timestamp > 2000) {
282
+ + pauses++;
283
+ + }
284
+ + }
285
+ + return pauses;
286
+ + },
287
+ +
288
+ + getCurrentPattern: function() {
289
+ + if (this.keystrokeBuffer.length < 3) return 'initializing';
290
+ + const rate = this.calculateEditRate();
291
+ + if (rate < 0.5) return 'paused';
292
+ + if (rate > 5) return 'rapid';
293
+ + return 'steady';
294
+ + },
295
+ +
296
+ + cleanupOldEvents: function() {
297
+ + const cutoff = Date.now() - this.config.windowSize * 2;
298
+ + this.keystrokeBuffer = this.keystrokeBuffer.filter(e => e.timestamp > cutoff);
299
+ + }
300
+ + };
301
+ + }
302
+ +
303
+ + /**
304
+ + * 注册新的传感器适配器
305
+ + * @param {string} type - 传感器类型
306
+ + * @param {object} adapter - 适配器实例
307
+ + */
308
+ + register(type, adapter) {
309
+ + this.adapters[type] = {
310
+ + ...adapter,
311
+ + enabled: false,
312
+ + readings: []
313
+ + };
314
+ + console.log(`[BioSensorAdapter] 注册传感器: ${type}`);
315
+ + return { success: true, type };
316
+ + }
317
+ +
318
+ + /**
319
+ + * 启用传感器
320
+ + * @param {string} type - 传感器类型
321
+ + */
322
+ + enable(type) {
323
+ + const adapter = this.adapters[type];
324
+ + if (!adapter) {
325
+ + return { success: false, reason: 'sensor_not_found' };
326
+ + }
327
+ +
328
+ + adapter.enable?.();
329
+ + this.activeSensors.add(type);
330
+ + console.log(`[BioSensorAdapter] 启用: ${type}`);
331
+ + return { success: true, type };
332
+ + }
333
+ +
334
+ + /**
335
+ + * 禁用传感器
336
+ + * @param {string} type - 传感器类型
337
+ + */
338
+ + disable(type) {
339
+ + const adapter = this.adapters[type];
340
+ + if (!adapter) {
341
+ + return { success: false, reason: 'sensor_not_found' };
342
+ + }
343
+ +
344
+ + adapter.disable?.();
345
+ + this.activeSensors.delete(type);
346
+ + console.log(`[BioSensorAdapter] 禁用: ${type}`);
347
+ + return { success: true, type };
348
+ + }
349
+ +
350
+ + /**
351
+ + * 读取传感器数据
352
+ + * @param {string} type - 传感器类型
353
+ + */
354
+ + read(type) {
355
+ + const adapter = this.adapters[type];
356
+ + if (!adapter || !adapter.enabled) {
357
+ + return null;
358
+ + }
359
+ +
360
+ + return adapter.read?.() || null;
361
+ + }
362
+ +
363
+ + /**
364
+ + * 写入传感器数据
365
+ + * @param {string} type - 传感器类型
366
+ + * @param {object} data - 数据
367
+ + */
368
+ + write(type, data) {
369
+ + const adapter = this.adapters[type];
370
+ + if (!adapter) {
371
+ + return { success: false, reason: 'sensor_not_found' };
372
+ + }
373
+ +
374
+ + adapter.onData?.(data);
375
+ +
376
+ + // 记录历史
377
+ + if (!this.readingHistory.has(type)) {
378
+ + this.readingHistory.set(type, []);
379
+ + }
380
+ + this.readingHistory.get(type).push({
381
+ + data,
382
+ + timestamp: Date.now()
383
+ + });
384
+ +
385
+ + return { success: true };
386
+ + }
387
+ +
388
+ + /**
389
+ + * 获取所有活跃传感器的融合数据
390
+ + */
391
+ + readAll() {
392
+ + const fusion = {
393
+ + timestamp: Date.now(),
394
+ + sensors: {}
395
+ + };
396
+ +
397
+ + for (const type of this.activeSensors) {
398
+ + const reading = this.read(type);
399
+ + if (reading) {
400
+ + fusion.sensors[type] = reading;
401
+ + }
402
+ + }
403
+ +
404
+ + // 计算融合专注度
405
+ + fusion.focusScore = this.calculateFusionFocus(fusion.sensors);
406
+ +
407
+ + return fusion;
408
+ + }
409
+ +
410
+ + /**
411
+ + * 计算融合专注度
412
+ + */
413
+ + calculateFusionFocus(sensorReadings) {
414
+ + let totalWeight = 0;
415
+ + let weightedSum = 0;
416
+ +
417
+ + // HRV 权重
418
+ + if (sensorReadings[this.sensorTypes.HRV]?.focus !== undefined) {
419
+ + const weight = 0.4;
420
+ + weightedSum += sensorReadings[this.sensorTypes.HRV].focus * weight;
421
+ + totalWeight += weight;
422
+ + }
423
+ +
424
+ + // 编辑流权重
425
+ + if (sensorReadings[this.sensorTypes.EDIT_FLOW]) {
426
+ + const editData = sensorReadings[this.sensorTypes.EDIT_FLOW];
427
+ + let editFocus = 5;
428
+ +
429
+ + if (editData.pattern === 'steady') editFocus = 8;
430
+ + else if (editData.pattern === 'rapid') editFocus = 7;
431
+ + else if (editData.pattern === 'paused') editFocus = 3;
432
+ +
433
+ + const weight = 0.6;
434
+ + weightedSum += editFocus * weight;
435
+ + totalWeight += weight;
436
+ + }
437
+ +
438
+ + if (totalWeight === 0) return 5;
439
+ + return Math.round((weightedSum / totalWeight) * 10) / 10;
440
+ + }
441
+ +
442
+ + /**
443
+ + * 获取传感器状态
444
+ + */
445
+ + getStatus() {
446
+ + const status = {
447
+ + activeSensors: Array.from(this.activeSensors),
448
+ + availableSensors: Object.keys(this.adapters),
449
+ + historySize: this.readingHistory.size
450
+ + };
451
+ +
452
+ + for (const type of this.activeSensors) {
453
+ + status[type] = {
454
+ + enabled: true,
455
+ + lastReading: this.read(type),
456
+ + readingCount: this.readingHistory.get(type)?.length || 0
457
+ + };
458
+ + }
459
+ +
460
+ + return status;
461
+ + }
462
+ +
463
+ + /**
464
+ + * 获取传感器配置
465
+ + */
466
+ + getConfig(type) {
467
+ + return this.adapters[type]?.config || null;
468
+ + }
469
+ +
470
+ + /**
471
+ + * 设置传感器配置
472
+ + */
473
+ + setConfig(type, config) {
474
+ + const adapter = this.adapters[type];
475
+ + if (!adapter) {
476
+ + return { success: false, reason: 'sensor_not_found' };
477
+ + }
478
+ +
479
+ + adapter.config = { ...adapter.config, ...config };
480
+ + return { success: true, config: adapter.config };
481
+ + }
482
+ +
483
+ + /**
484
+ + * 获取传感器历史数据
485
+ + */
486
+ + getHistory(type, limit = 100) {
487
+ + const history = this.readingHistory.get(type) || [];
488
+ + return history.slice(-limit);
489
+ + }
490
+ +
491
+ + /**
492
+ + * 清空传感器数据
493
+ + */
494
+ + clear(type) {
495
+ + if (type) {
496
+ + this.readingHistory.delete(type);
497
+ + if (this.adapters[type]) {
498
+ + this.adapters[type].readings = [];
499
+ + }
500
+ + } else {
501
+ + this.readingHistory.clear();
502
+ + for (const adapter of Object.values(this.adapters)) {
503
+ + adapter.readings = [];
504
+ + }
505
+ + }
506
+ + return { success: true };
507
+ + }
508
+ +}
509
+ +
510
+ +// 创建全局实例
511
+ +const bioSensorAdapter = new BioSensorAdapter();
512
+ +
513
+ +module.exports = BioSensorAdapter;
514
+ +module.exports.bioSensorAdapter = bioSensorAdapter;
515
+ +module.exports.SensorTypes = {
516
+ + HRV: 'heart-rate-variability',
517
+ + EDIT_FLOW: 'code-edit-flow',
518
+ + EYE_TRACKING: 'eye-tracking',
519
+ + SKIN_CONDUCTANCE: 'skin-conductance',
520
+ + EEG: 'eeg-brainwave'
521
+ +};
522
+
523
+ diff --git a/src/core/embodied-core.js b/src/core/embodied-core.js
524
+ new file mode 100644
525
+ index 0000000..8b6bf7b
526
+ --- /dev/null
527
+ +++ b/src/core/embodied-core.js
528
+ @@ -0,0 +1,468 @@
529
+ +/**
530
+ + * Embodied-Core - 具身认知核心
531
+ + *
532
+ + * 设计理念:
533
+ + * - 双系统架构:System 1 (直觉/快思考) + System 2 (分析/慢思考)
534
+ + * - 动作思维链 (Action-Thought Chain):将高层目标拆解为有序思维步骤
535
+ + * - bio-sensor-adapter 接口:为心率变异、代码编辑流等数据预留扩展点
536
+ + *
537
+ + * 核心功能:
538
+ + * - cognitivePlan(): 目标 -> 思维步骤
539
+ + * - executionMapping(): 思维步骤 -> 智能体/工具调用
540
+ + */
541
+ +
542
+ +const fs = require('fs');
543
+ +const path = require('path');
544
+ +
545
+ +class EmbodiedCore {
546
+ + constructor(projectRoot) {
547
+ + this.projectRoot = projectRoot;
548
+ +
549
+ + // 认知系统状态
550
+ + this.cognitiveState = {
551
+ + system: 'idle', // idle, planning, executing, reflecting
552
+ + activePlan: null,
553
+ + executionHistory: [],
554
+ + workingMemory: []
555
+ + };
556
+ +
557
+ + // 思维步骤类型
558
+ + this.stepTypes = {
559
+ + OBSERVE: 'observe', // 观察/感知
560
+ + ANALYZE: 'analyze', // 分析/推理
561
+ + PLAN: 'plan', // 规划/计划
562
+ + DECIDE: 'decide', // 决策/选择
563
+ + EXECUTE: 'execute', // 执行/行动
564
+ + REFLECT: 'reflect', // 反思/复盘
565
+ + ADAPT: 'adapt' // 适应/调整
566
+ + };
567
+ +
568
+ + // 可用执行器
569
+ + this.executors = this.loadExecutors();
570
+ +
571
+ + // 传感器适配器
572
+ + this.sensorAdapters = {};
573
+ +
574
+ + console.log('[EmbodiedCore] 具身认知核心初始化');
575
+ + }
576
+ +
577
+ + /**
578
+ + * 加载可用的执行器
579
+ + */
580
+ + loadExecutors() {
581
+ + return {
582
+ + // 智能体
583
+ + SelfAgent: { type: 'agent', module: '../agents/SelfAgent', weight: 1.0 },
584
+ + MoodAgent: { type: 'agent', module: '../agents/MoodAgent', weight: 0.9 },
585
+ + FocusAgent: { type: 'agent', module: '../agents/FocusAgent', weight: 0.9 },
586
+ + ReflectionAgent: { type: 'agent', module: '../agents/ReflectionAgent', weight: 0.8 },
587
+ +
588
+ + // 工具
589
+ + 'code-analysis': { type: 'tool', capability: 'analyze', weight: 1.0 },
590
+ + 'code-generation': { type: 'tool', capability: 'generate', weight: 1.0 },
591
+ + 'search': { type: 'tool', capability: 'search', weight: 0.8 },
592
+ + 'git-operations': { type: 'tool', capability: 'version-control', weight: 0.7 },
593
+ + 'file-operation': { type: 'tool', capability: 'io', weight: 0.9 }
594
+ + };
595
+ + }
596
+ +
597
+ + /**
598
+ + * 注册传感器适配器
599
+ + * @param {string} name - 传感器名称
600
+ + * @param {object} adapter - 适配器实例
601
+ + */
602
+ + registerSensorAdapter(name, adapter) {
603
+ + this.sensorAdapters[name] = adapter;
604
+ + console.log(`[EmbodiedCore] 注册传感器: ${name}`);
605
+ + }
606
+ +
607
+ + /**
608
+ + * 认知规划 - 将高层目标拆解为有序思维步骤
609
+ + * @param {object} goal - 目标对象
610
+ + * @returns {object} 思维步骤序列
611
+ + */
612
+ + cognitivePlan(goal) {
613
+ + const {
614
+ + description,
615
+ + type = 'general', // general, coding, debugging, learning, creative
616
+ + constraints = {},
617
+ + context = {}
618
+ + } = goal;
619
+ +
620
+ + this.cognitiveState.system = 'planning';
621
+ +
622
+ + const steps = this.decomposeGoal(description, type, constraints, context);
623
+ +
624
+ + const plan = {
625
+ + id: `plan-${Date.now()}`,
626
+ + goal: description,
627
+ + type,
628
+ + steps,
629
+ + metadata: {
630
+ + createdAt: new Date().toISOString(),
631
+ + estimatedSteps: steps.length,
632
+ + complexity: this.estimateComplexity(steps)
633
+ + }
634
+ + };
635
+ +
636
+ + this.cognitiveState.activePlan = plan;
637
+ + this.cognitiveState.system = 'ready';
638
+ +
639
+ + console.log(`[EmbodiedCore] 认知规划: ${steps.length} 步思维链`);
640
+ + return plan;
641
+ + }
642
+ +
643
+ + /**
644
+ + * 目标分解
645
+ + */
646
+ + decomposeGoal(description, type, constraints, context) {
647
+ + const steps = [];
648
+ + const baseSteps = this.getBaseStepsForType(type);
649
+ +
650
+ + for (let i = 0; i < baseSteps.length; i++) {
651
+ + const stepType = baseSteps[i];
652
+ +
653
+ + steps.push({
654
+ + index: i,
655
+ + type: stepType,
656
+ + description: this.generateStepDescription(stepType, description, i),
657
+ + expectedOutcome: this.getExpectedOutcome(stepType),
658
+ + dependsOn: i > 0 ? [i - 1] : [],
659
+ + executor: this.selectExecutor(stepType, type),
660
+ + estimatedDuration: this.estimateDuration(stepType),
661
+ + fallback: this.getFallbackStrategy(stepType)
662
+ + });
663
+ + }
664
+ +
665
+ + return steps;
666
+ + }
667
+ +
668
+ + /**
669
+ + * 获取类型的基础步骤
670
+ + */
671
+ + getBaseStepsForType(type) {
672
+ + const templates = {
673
+ + general: [
674
+ + this.stepTypes.OBSERVE,
675
+ + this.stepTypes.ANALYZE,
676
+ + this.stepTypes.PLAN,
677
+ + this.stepTypes.DECIDE,
678
+ + this.stepTypes.EXECUTE,
679
+ + this.stepTypes.REFLECT
680
+ + ],
681
+ + coding: [
682
+ + this.stepTypes.OBSERVE,
683
+ + this.stepTypes.ANALYZE,
684
+ + this.stepTypes.PLAN,
685
+ + this.stepTypes.DECIDE,
686
+ + this.stepTypes.EXECUTE,
687
+ + this.stepTypes.REFLECT,
688
+ + this.stepTypes.ADAPT
689
+ + ],
690
+ + debugging: [
691
+ + this.stepTypes.OBSERVE,
692
+ + this.stepTypes.ANALYZE,
693
+ + this.stepTypes.DECIDE,
694
+ + this.stepTypes.EXECUTE,
695
+ + this.stepTypes.REFLECT
696
+ + ],
697
+ + learning: [
698
+ + this.stepTypes.OBSERVE,
699
+ + this.stepTypes.ANALYZE,
700
+ + this.stepTypes.PLAN,
701
+ + this.stepTypes.REFLECT
702
+ + ],
703
+ + creative: [
704
+ + this.stepTypes.OBSERVE,
705
+ + this.stepTypes.ANALYZE,
706
+ + this.stepTypes.PLAN,
707
+ + this.stepTypes.DECIDE,
708
+ + this.stepTypes.EXECUTE,
709
+ + this.stepTypes.ADAPT
710
+ + ]
711
+ + };
712
+ +
713
+ + return templates[type] || templates.general;
714
+ + }
715
+ +
716
+ + /**
717
+ + * 生成步骤描述
718
+ + */
719
+ + generateStepDescription(stepType, goal, index) {
720
+ + const templates = {
721
+ + [this.stepTypes.OBSERVE]: `观察当前状态和上下文`,
722
+ + [this.stepTypes.ANALYZE]: `分析问题:${goal}`,
723
+ + [this.stepTypes.PLAN]: `制定实现方案`,
724
+ + [this.stepTypes.DECIDE]: `选择最佳方案`,
725
+ + [this.stepTypes.EXECUTE]: `执行:${goal}`,
726
+ + [this.stepTypes.REFLECT]: `反思执行结果`,
727
+ + [this.stepTypes.ADAPT]: `根据反馈调整策略`
728
+ + };
729
+ +
730
+ + return templates[stepType] || `${stepType}: 步骤 ${index + 1}`;
731
+ + }
732
+ +
733
+ + /**
734
+ + * 获取预期结果
735
+ + */
736
+ + getExpectedOutcome(stepType) {
737
+ + const outcomes = {
738
+ + [this.stepTypes.OBSERVE]: '收集到当前状态信息',
739
+ + [this.stepTypes.ANALYZE]: '形成问题分析报告',
740
+ + [this.stepTypes.PLAN]: '产出可执行计划',
741
+ + [this.stepTypes.DECIDE]: '确定最终方案',
742
+ + [this.stepTypes.EXECUTE]: '完成任务或产出',
743
+ + [this.stepTypes.REFLECT]: '获得改进建议',
744
+ + [this.stepTypes.ADAPT]: '更新执行策略'
745
+ + };
746
+ + return outcomes[stepType] || '完成步骤';
747
+ + }
748
+ +
749
+ + /**
750
+ + * 选择执行器
751
+ + */
752
+ + selectExecutor(stepType, goalType) {
753
+ + const mapping = {
754
+ + [this.stepTypes.OBSERVE]: ['SelfAgent', 'code-analysis'],
755
+ + [this.stepTypes.ANALYZE]: ['SelfAgent', 'code-analysis'],
756
+ + [this.stepTypes.PLAN]: ['SelfAgent'],
757
+ + [this.stepTypes.DECIDE]: ['SelfAgent', 'ReflectionAgent'],
758
+ + [this.stepTypes.EXECUTE]: ['SelfAgent', 'code-generation'],
759
+ + [this.stepTypes.REFLECT]: ['ReflectionAgent', 'SelfAgent'],
760
+ + [this.stepTypes.ADAPT]: ['SelfAgent']
761
+ + };
762
+ +
763
+ + const options = mapping[stepType] || ['SelfAgent'];
764
+ + return options[0]; // 返回主执行器
765
+ + }
766
+ +
767
+ + /**
768
+ + * 估计步骤耗时(毫秒)
769
+ + */
770
+ + estimateDuration(stepType) {
771
+ + const durations = {
772
+ + [this.stepTypes.OBSERVE]: 500,
773
+ + [this.stepTypes.ANALYZE]: 2000,
774
+ + [this.stepTypes.PLAN]: 3000,
775
+ + [this.stepTypes.DECIDE]: 1000,
776
+ + [this.stepTypes.EXECUTE]: 5000,
777
+ + [this.stepTypes.REFLECT]: 2000,
778
+ + [this.stepTypes.ADAPT]: 1500
779
+ + };
780
+ + return durations[stepType] || 2000;
781
+ + }
782
+ +
783
+ + /**
784
+ + * 获取回退策略
785
+ + */
786
+ + getFallbackStrategy(stepType) {
787
+ + return {
788
+ + retry: true,
789
+ + timeout: this.estimateDuration(stepType) * 2,
790
+ + fallbackExecutor: 'SelfAgent'
791
+ + };
792
+ + }
793
+ +
794
+ + /**
795
+ + * 估计复杂度
796
+ + */
797
+ + estimateComplexity(steps) {
798
+ + const baseScore = steps.length;
799
+ + const typeWeight = steps.filter(s => s.type === this.stepTypes.EXECUTE).length * 0.5;
800
+ + return Math.min(10, (baseScore + typeWeight) / 2);
801
+ + }
802
+ +
803
+ + /**
804
+ + * 执行映射 - 将思维步骤映射到具体的智能体调用或工具使用
805
+ + * @param {object} plan - 认知计划
806
+ + * @param {object} context - 执行上下文
807
+ + * @returns {object} 执行序列
808
+ + */
809
+ + executionMapping(plan, context = {}) {
810
+ + this.cognitiveState.system = 'executing';
811
+ +
812
+ + const execution = {
813
+ + planId: plan.id,
814
+ + steps: [],
815
+ + startTime: Date.now(),
816
+ + context: {
817
+ + ...context,
818
+ + sensors: this.readSensors()
819
+ + }
820
+ + };
821
+ +
822
+ + for (const step of plan.steps) {
823
+ + const stepExecution = this.mapStepToAction(step, execution.context);
824
+ + execution.steps.push(stepExecution);
825
+ +
826
+ + // 更新工作记忆
827
+ + this.cognitiveState.workingMemory.push({
828
+ + step: step.index,
829
+ + result: stepExecution.result,
830
+ + timestamp: Date.now()
831
+ + });
832
+ +
833
+ + // 检查是否需要调整
834
+ + if (stepExecution.requiresAdaptation) {
835
+ + this.cognitiveState.system = 'adapting';
836
+ + const adaptation = this.adaptPlan(plan, stepExecution);
837
+ + execution.adaptation = adaptation;
838
+ + this.cognitiveState.system = 'executing';
839
+ + }
840
+ + }
841
+ +
842
+ + execution.endTime = Date.now();
843
+ + execution.duration = execution.endTime - execution.startTime;
844
+ +
845
+ + this.cognitiveState.executionHistory.push(execution);
846
+ + this.cognitiveState.system = 'idle';
847
+ +
848
+ + console.log(`[EmbodiedCore] 执行映射: ${execution.steps.length} 步执行`);
849
+ + return execution;
850
+ + }
851
+ +
852
+ + /**
853
+ + * 读取传感器数据
854
+ + */
855
+ + readSensors() {
856
+ + const sensorData = {};
857
+ +
858
+ + for (const [name, adapter] of Object.entries(this.sensorAdapters)) {
859
+ + try {
860
+ + sensorData[name] = adapter.read?.() || adapter.getStatus?.() || null;
861
+ + } catch (e) {
862
+ + sensorData[name] = { error: e.message };
863
+ + }
864
+ + }
865
+ +
866
+ + return sensorData;
867
+ + }
868
+ +
869
+ + /**
870
+ + * 将步骤映射到具体动作
871
+ + */
872
+ + mapStepToAction(step, context) {
873
+ + const executorName = step.executor;
874
+ + const executor = this.executors[executorName];
875
+ +
876
+ + const action = {
877
+ + stepIndex: step.index,
878
+ + stepType: step.type,
879
+ + executor: executorName,
880
+ + executorType: executor?.type || 'unknown',
881
+ + parameters: this.buildParameters(step, context),
882
+ + expectedDuration: step.estimatedDuration
883
+ + };
884
+ +
885
+ + // 模拟执行(实际会调用智能体/工具)
886
+ + action.result = this.simulateExecution(action, context);
887
+ + action.requiresAdaptation = this.checkAdaptationNeed(action.result, step);
888
+ +
889
+ + return action;
890
+ + }
891
+ +
892
+ + /**
893
+ + * 构建参数
894
+ + */
895
+ + buildParameters(step, context) {
896
+ + return {
897
+ + task: step.description,
898
+ + context: {
899
+ + workingMemory: context.sensors,
900
+ + previousResults: this.cognitiveState.workingMemory.slice(-3)
901
+ + },
902
+ + constraints: {
903
+ + timeout: step.estimatedDuration,
904
+ + fallback: step.fallback
905
+ + }
906
+ + };
907
+ + }
908
+ +
909
+ + /**
910
+ + * 模拟执行
911
+ + */
912
+ + simulateExecution(action, context) {
913
+ + // 这里模拟实际执行结果
914
+ + // 实际实现会调用真实的智能体
915
+ +
916
+ + const mockResults = {
917
+ + [this.stepTypes.OBSERVE]: { observations: ['当前状态良好', '环境稳定'] },
918
+ + [this.stepTypes.ANALYZE]: { analysis: '问题已识别', 'confidence': 0.85 },
919
+ + [this.stepTypes.PLAN]: { plan: '方案已制定', 'alternatives': 2 },
920
+ + [this.stepTypes.DECIDE]: { decision: '选择方案A', 'reason': '最优' },
921
+ + [this.stepTypes.EXECUTE]: { outcome: '完成', 'success': true },
922
+ + [this.stepTypes.REFLECT]: { feedback: '执行顺利', 'improvements': [] },
923
+ + [this.stepTypes.ADAPT]: { adapted: true, 'changes': [] }
924
+ + };
925
+ +
926
+ + return {
927
+ + ...mockResults[action.stepType],
928
+ + timestamp: Date.now()
929
+ + };
930
+ + }
931
+ +
932
+ + /**
933
+ + * 检查是否需要调整
934
+ + */
935
+ + checkAdaptationNeed(result, step) {
936
+ + // 简单规则:执行失败或分析不充分时需要调整
937
+ + if (result.success === false) return true;
938
+ + if (result.confidence && result.confidence < 0.6) return true;
939
+ + return false;
940
+ + }
941
+ +
942
+ + /**
943
+ + * 调整计划
944
+ + */
945
+ + adaptPlan(plan, failedStep) {
946
+ + const adaptation = {
947
+ + originalStep: failedStep.stepIndex,
948
+ + reason: '执行结果不理想',
949
+ + modifications: []
950
+ + };
951
+ +
952
+ + // 添加额外的反思和调整步骤
953
+ + const newSteps = plan.steps.slice(failedStep.stepIndex);
954
+ + newSteps.unshift({
955
+ + index: failedStep.stepIndex,
956
+ + type: this.stepTypes.ADAPT,
957
+ + description: '调整策略后重试',
958
+ + executor: 'SelfAgent'
959
+ + });
960
+ +
961
+ + adaptation.modifications = newSteps;
962
+ + console.log(`[EmbodiedCore] 计划调整: 步骤 ${failedStep.stepIndex} 需要重试`);
963
+ +
964
+ + return adaptation;
965
+ + }
966
+ +
967
+ + /**
968
+ + * 获取认知状态
969
+ + */
970
+ + getStatus() {
971
+ + return {
972
+ + cognitiveState: this.cognitiveState.system,
973
+ + activePlan: this.cognitiveState.activePlan?.id || null,
974
+ + executionHistoryCount: this.cognitiveState.executionHistory.length,
975
+ + workingMemorySize: this.cognitiveState.workingMemory.length,
976
+ + registeredSensors: Object.keys(this.sensorAdapters),
977
+ + availableExecutors: Object.keys(this.executors)
978
+ + };
979
+ + }
980
+ +
981
+ + /**
982
+ + * 重置状态
983
+ + */
984
+ + reset() {
985
+ + this.cognitiveState = {
986
+ + system: 'idle',
987
+ + activePlan: null,
988
+ + executionHistory: [],
989
+ + workingMemory: []
990
+ + };
991
+ + console.log('[EmbodiedCore] 状态已重置');
992
+ + return { success: true };
993
+ + }
994
+ +}
995
+ +
996
+ +module.exports = { EmbodiedCore };
997
+
998
+ diff --git a/src/core/memory/triality-memory.js b/src/core/memory/triality-memory.js
999
+ new file mode 100644
1000
+ index 0000000..b03b5b4
1001
+ --- /dev/null
1002
+ +++ b/src/core/memory/triality-memory.js
1003
+ @@ -0,0 +1,367 @@
1004
+ +/**
1005
+ + * Triality-Memory - 三维经验大脑
1006
+ + *
1007
+ + * 设计理念:
1008
+ + * - 时间维度:微秒级时间戳,记录事件发生顺序
1009
+ + * - 语义维度:向量嵌入表示记忆内容
1010
+ + * - 关系维度:因果、引述、相似等关系链
1011
+ + *
1012
+ + * 本地优先设计:SQLite + 向量扩展 (sqlite-vec)
1013
+ + * 支持 narrativeQuery 图遍历查询
1014
+ + */
1015
+ +
1016
+ +const fs = require('fs');
1017
+ +const path = require('path');
1018
+ +const crypto = require('crypto');
1019
+ +
1020
+ +class TrialityMemory {
1021
+ + constructor(projectRoot, options = {}) {
1022
+ + this.projectRoot = projectRoot;
1023
+ + this.dbPath = options.dbPath || path.join(projectRoot, 'data', 'triality-memory.db');
1024
+ + this.vectorDim = options.vectorDim || 384;
1025
+ + this.vecEnabled = options.vecEnabled !== false;
1026
+ +
1027
+ + this.db = null;
1028
+ + this.useMem = true; // 内存模式
1029
+ + this.memories = [];
1030
+ + this.vectors = new Map();
1031
+ + this.relationships = new Map();
1032
+ +
1033
+ + this.stats = {
1034
+ + totalMemories: 0,
1035
+ + totalRelationships: 0,
1036
+ + lastCleanup: null
1037
+ + };
1038
+ +
1039
+ + this.init();
1040
+ + }
1041
+ +
1042
+ + init() {
1043
+ + const dataDir = path.dirname(this.dbPath);
1044
+ + if (!fs.existsSync(dataDir)) {
1045
+ + fs.mkdirSync(dataDir, { recursive: true });
1046
+ + }
1047
+ +
1048
+ + this.initializeSchema();
1049
+ + console.log('[TrialityMemory] 三维经验大脑初始化完成');
1050
+ + }
1051
+ +
1052
+ + initializeSchema() {
1053
+ + // 内存模式:使用 JavaScript 数据结构模拟
1054
+ + // 实际 SQLite 模式如下(需要 sqlite-vec 扩展)
1055
+ + /*
1056
+ + CREATE TABLE IF NOT EXISTS memories (
1057
+ + id TEXT PRIMARY KEY,
1058
+ + timestamp INTEGER NOT NULL,
1059
+ + content TEXT NOT NULL,
1060
+ + embedding BLOB,
1061
+ + metadata JSON,
1062
+ + created_at INTEGER
1063
+ + );
1064
+ +
1065
+ + CREATE TABLE IF NOT EXISTS relationships (
1066
+ + id TEXT PRIMARY KEY,
1067
+ + source_id TEXT NOT NULL,
1068
+ + target_id TEXT NOT NULL,
1069
+ + relation_type TEXT NOT NULL,
1070
+ + strength REAL DEFAULT 1.0,
1071
+ + metadata JSON,
1072
+ + created_at INTEGER
1073
+ + );
1074
+ +
1075
+ + CREATE VIRTUAL TABLE IF NOT EXISTS memories_vec USING vec(
1076
+ + memory_id TEXT,
1077
+ + embedding float[384]
1078
+ + );
1079
+ + */
1080
+ +
1081
+ + // 初始化内存存储
1082
+ + this.memories = [];
1083
+ + this.vectors = new Map();
1084
+ + this.relationships = new Map();
1085
+ + }
1086
+ +
1087
+ + /**
1088
+ + * 存储记忆
1089
+ + * @param {object} memory - 记忆对象
1090
+ + * @returns {string} 记忆ID
1091
+ + */
1092
+ + store(memory) {
1093
+ + const id = memory.id || this.generateId();
1094
+ + const timestamp = memory.timestamp || Date.now() * 1000; // 微秒
1095
+ +
1096
+ + const memoryRecord = {
1097
+ + id,
1098
+ + timestamp,
1099
+ + content: memory.content,
1100
+ + embedding: memory.embedding || this.generateMockEmbedding(memory.content),
1101
+ + metadata: memory.metadata || {},
1102
+ + createdAt: Date.now()
1103
+ + };
1104
+ +
1105
+ + this.memories.push(memoryRecord);
1106
+ + this.vectors.set(id, memoryRecord.embedding);
1107
+ +
1108
+ + // 添加关系(如果有)
1109
+ + if (memory.relatedTo) {
1110
+ + for (const rel of memory.relatedTo) {
1111
+ + this.addRelationship({
1112
+ + sourceId: id,
1113
+ + targetId: rel.targetId,
1114
+ + relationType: rel.type || 'related',
1115
+ + strength: rel.strength || 1.0
1116
+ + });
1117
+ + }
1118
+ + }
1119
+ +
1120
+ + this.stats.totalMemories = this.memories.length;
1121
+ +
1122
+ + console.log(`[TrialityMemory] 记忆存储: ${id} (${this.memories.length} total)`);
1123
+ + return id;
1124
+ + }
1125
+ +
1126
+ + /**
1127
+ + * 生成记忆ID
1128
+ + */
1129
+ + generateId() {
1130
+ + return `mem-${Date.now()}-${crypto.randomBytes(4).toString('hex')}`;
1131
+ + }
1132
+ +
1133
+ + /**
1134
+ + * 生成模拟向量嵌入
1135
+ + */
1136
+ + generateMockEmbedding(content) {
1137
+ + const hash = crypto.createHash('sha256').update(content).digest();
1138
+ + const embedding = [];
1139
+ + for (let i = 0; i < this.vectorDim; i++) {
1140
+ + embedding.push((hash[i % hash.length] / 255) * 2 - 1);
1141
+ + }
1142
+ + return embedding;
1143
+ + }
1144
+ +
1145
+ + /**
1146
+ + * 添加关系
1147
+ + */
1148
+ + addRelationship(rel) {
1149
+ + const id = `rel-${Date.now()}-${crypto.randomBytes(3).toString('hex')}`;
1150
+ + const record = {
1151
+ + id,
1152
+ + sourceId: rel.sourceId,
1153
+ + targetId: rel.targetId,
1154
+ + relationType: rel.relationType,
1155
+ + strength: rel.strength || 1.0,
1156
+ + metadata: rel.metadata || {},
1157
+ + createdAt: Date.now()
1158
+ + };
1159
+ +
1160
+ + if (!this.relationships.has(rel.sourceId)) {
1161
+ + this.relationships.set(rel.sourceId, []);
1162
+ + }
1163
+ + this.relationships.get(rel.sourceId).push(record);
1164
+ +
1165
+ + this.stats.totalRelationships = this.relationships.size;
1166
+ + return id;
1167
+ + }
1168
+ +
1169
+ + /**
1170
+ + * 语义相似度搜索
1171
+ + * @param {number[]} queryEmbedding - 查询向量
1172
+ + * @param {number} topK - 返回数量
1173
+ + * @returns {object[]} 相似记忆
1174
+ + */
1175
+ + semanticSearch(queryEmbedding, topK = 10) {
1176
+ + const similarities = [];
1177
+ +
1178
+ + for (const [id, embedding] of this.vectors) {
1179
+ + const sim = this.cosineSimilarity(queryEmbedding, embedding);
1180
+ + const memory = this.memories.find(m => m.id === id);
1181
+ + if (memory) {
1182
+ + similarities.push({
1183
+ + id,
1184
+ + content: memory.content,
1185
+ + timestamp: memory.timestamp,
1186
+ + similarity: sim,
1187
+ + metadata: memory.metadata
1188
+ + });
1189
+ + }
1190
+ + }
1191
+ +
1192
+ + similarities.sort((a, b) => b.similarity - a.similarity);
1193
+ + return similarities.slice(0, topK);
1194
+ + }
1195
+ +
1196
+ + /**
1197
+ + * 余弦相似度
1198
+ + */
1199
+ + cosineSimilarity(a, b) {
1200
+ + let dotProduct = 0;
1201
+ + let normA = 0;
1202
+ + let normB = 0;
1203
+ +
1204
+ + for (let i = 0; i < Math.min(a.length, b.length); i++) {
1205
+ + dotProduct += a[i] * b[i];
1206
+ + normA += a[i] * a[i];
1207
+ + normB += b[i] * b[i];
1208
+ + }
1209
+ +
1210
+ + return dotProduct / (Math.sqrt(normA) * Math.sqrt(normB) + 0.0001);
1211
+ + }
1212
+ +
1213
+ + /**
1214
+ + * 叙事查询 - 沿时间线或关系链图遍历
1215
+ + * @param {object} query - 查询参数
1216
+ + * @returns {object[]} 连贯叙事
1217
+ + */
1218
+ + narrativeQuery(query) {
1219
+ + const {
1220
+ + startMemoryId,
1221
+ + direction = 'forward', // forward, backward, bidirectional
1222
+ + relationTypes = ['causal', 'quotes', 'similar', 'related'],
1223
+ + maxDepth = 5,
1224
+ + maxNodes = 50
1225
+ + } = query;
1226
+ +
1227
+ + if (!startMemoryId) {
1228
+ + return this.getRecentNarrative(maxNodes);
1229
+ + }
1230
+ +
1231
+ + const visited = new Set();
1232
+ + const narrative = [];
1233
+ + const queue = [{ id: startMemoryId, depth: 0 }];
1234
+ +
1235
+ + while (queue.length > 0 && narrative.length < maxNodes) {
1236
+ + const current = queue.shift();
1237
+ +
1238
+ + if (visited.has(current.id) || current.depth > maxDepth) continue;
1239
+ + visited.add(current.id);
1240
+ +
1241
+ + const memory = this.memories.find(m => m.id === current.id);
1242
+ + if (memory) {
1243
+ + narrative.push({
1244
+ + ...memory,
1245
+ + depth: current.depth
1246
+ + });
1247
+ + }
1248
+ +
1249
+ + // 沿关系链扩展
1250
+ + const relations = this.relationships.get(current.id) || [];
1251
+ + for (const rel of relations) {
1252
+ + if (relationTypes.includes(rel.relationType) || relationTypes.includes('all')) {
1253
+ + if (!visited.has(rel.targetId)) {
1254
+ + queue.push({ id: rel.targetId, depth: current.depth + 1 });
1255
+ + }
1256
+ + }
1257
+ + }
1258
+ +
1259
+ + // 反向扩展
1260
+ + if (direction === 'bidirectional') {
1261
+ + for (const [sourceId, rels] of this.relationships) {
1262
+ + for (const rel of rels) {
1263
+ + if (rel.targetId === current.id && !visited.has(sourceId)) {
1264
+ + if (relationTypes.includes(rel.relationType) || relationTypes.includes('all')) {
1265
+ + queue.push({ id: sourceId, depth: current.depth + 1 });
1266
+ + }
1267
+ + }
1268
+ + }
1269
+ + }
1270
+ + }
1271
+ + }
1272
+ +
1273
+ + // 按时间排序
1274
+ + narrative.sort((a, b) => a.timestamp - b.timestamp);
1275
+ +
1276
+ + console.log(`[TrialityMemory] 叙事查询: ${narrative.length} 个记忆节点`);
1277
+ + return narrative;
1278
+ + }
1279
+ +
1280
+ + /**
1281
+ + * 获取最近的叙事
1282
+ + */
1283
+ + getRecentNarrative(count = 20) {
1284
+ + const sorted = [...this.memories].sort((a, b) => b.timestamp - a.timestamp);
1285
+ + return sorted.slice(0, count).map(m => ({
1286
+ + ...m,
1287
+ + depth: 0
1288
+ + }));
1289
+ + }
1290
+ +
1291
+ + /**
1292
+ + * 时间范围查询
1293
+ + */
1294
+ + queryByTimeRange(startTime, endTime) {
1295
+ + return this.memories
1296
+ + .filter(m => m.timestamp >= startTime && m.timestamp <= endTime)
1297
+ + .sort((a, b) => a.timestamp - b.timestamp);
1298
+ + }
1299
+ +
1300
+ + /**
1301
+ + * 按关系类型查询
1302
+ + */
1303
+ + queryByRelationType(relationType, memoryId) {
1304
+ + const relations = this.relationships.get(memoryId) || [];
1305
+ + const targets = relations
1306
+ + .filter(r => r.relationType === relationType)
1307
+ + .map(r => r.targetId);
1308
+ +
1309
+ + return targets.map(id => this.memories.find(m => m.id === id)).filter(Boolean);
1310
+ + }
1311
+ +
1312
+ + /**
1313
+ + * 获取统计信息
1314
+ + */
1315
+ + getStats() {
1316
+ + return {
1317
+ + ...this.stats,
1318
+ + vectorDimension: this.vectorDim,
1319
+ + storageMode: this.useMem ? 'memory' : 'sqlite-vec',
1320
+ + dbPath: this.dbPath
1321
+ + };
1322
+ + }
1323
+ +
1324
+ + /**
1325
+ + * 导出记忆到文件
1326
+ + */
1327
+ + exportToFile(filePath) {
1328
+ + const data = {
1329
+ + memories: this.memories,
1330
+ + relationships: Array.from(this.relationships.entries()),
1331
+ + exportedAt: new Date().toISOString()
1332
+ + };
1333
+ + fs.writeFileSync(filePath, JSON.stringify(data, null, 2));
1334
+ + console.log(`[TrialityMemory] 导出到: ${filePath}`);
1335
+ + return { success: true, count: this.memories.length };
1336
+ + }
1337
+ +
1338
+ + /**
1339
+ + * 从文件导入记忆
1340
+ + */
1341
+ + importFromFile(filePath) {
1342
+ + const data = JSON.parse(fs.readFileSync(filePath, 'utf8'));
1343
+ +
1344
+ + if (data.memories) {
1345
+ + for (const mem of data.memories) {
1346
+ + this.store(mem);
1347
+ + }
1348
+ + }
1349
+ +
1350
+ + console.log(`[TrialityMemory] 从 ${filePath} 导入`);
1351
+ + return { success: true, count: data.memories?.length || 0 };
1352
+ + }
1353
+ +
1354
+ + /**
1355
+ + * 清理旧记忆
1356
+ + */
1357
+ + cleanup(maxAge = 30 * 24 * 60 * 60 * 1000) { // 默认30天
1358
+ + const cutoff = Date.now() * 1000 - maxAge;
1359
+ + const before = this.memories.length;
1360
+ +
1361
+ + this.memories = this.memories.filter(m => m.timestamp > cutoff);
1362
+ + this.stats.lastCleanup = new Date().toISOString();
1363
+ +
1364
+ + const removed = before - this.memories.length;
1365
+ + console.log(`[TrialityMemory] 清理: 移除 ${removed} 条旧记忆`);
1366
+ + return { removed, remaining: this.memories.length };
1367
+ + }
1368
+ +}
1369
+ +
1370
+ +module.exports = { TrialityMemory };
1371
+