@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,886 @@
1
+ /**
2
+ * Generative Agents - Memory Stream Architecture
3
+ * Based on "Generative Agents: Interactive Simulacra of Human Behavior" (Park et al. 2023)
4
+ * arXiv: 2304.03442, UIST '23
5
+ *
6
+ * Core Architecture:
7
+ * - Memory Stream: Comprehensive record of agent's experience (natural language)
8
+ * - Reflection: Synthesizes memories into higher-level inferences
9
+ * - Planning: Translates conclusions into high-level action plans
10
+ *
11
+ * Key Innovation: Three-component architecture enabling emergent social behaviors
12
+ * and believable agent simulation through dynamic memory retrieval
13
+ *
14
+ * @version v0.13.13
15
+ */
16
+
17
+ 'use strict';
18
+
19
+ const path = require('path');
20
+ const fs = require('fs');
21
+
22
+ /**
23
+ * Memory Object - Base element of the memory stream
24
+ * Contains natural language description, timestamps, and metadata
25
+ */
26
+ class MemoryObject {
27
+ constructor(type, content, metadata = {}) {
28
+ this.id = `mem-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;
29
+ this.type = type; // 'observation', 'reflection', 'plan', 'event'
30
+ this.content = content;
31
+ this.createdAt = Date.now();
32
+ this.lastAccessedAt = Date.now();
33
+ this.importance = metadata.importance || 5; // 1-10 scale
34
+ this.tags = metadata.tags || [];
35
+ this.metadata = metadata;
36
+ }
37
+
38
+ access() {
39
+ this.lastAccessedAt = Date.now();
40
+ }
41
+
42
+ toString() {
43
+ return `[${this.type}] ${this.content}`;
44
+ }
45
+ }
46
+
47
+ /**
48
+ * Observation - Events directly perceived by the agent
49
+ * Base element of the memory stream
50
+ */
51
+ class Observation extends MemoryObject {
52
+ constructor(content, metadata = {}) {
53
+ super('observation', content, metadata);
54
+ this.actor = metadata.actor || null; // Who performed the action
55
+ this.subject = metadata.subject || null; // What the action was performed on
56
+ this.location = metadata.location || null;
57
+ }
58
+ }
59
+
60
+ /**
61
+ * Reflection - Higher-level, abstract thoughts generated by the agent
62
+ * Synthesized from multiple observations
63
+ */
64
+ class Reflection extends MemoryObject {
65
+ constructor(content, insights, evidence, metadata = {}) {
66
+ super('reflection', content, metadata);
67
+ this.insights = insights; // Extracted high-level insights
68
+ this.evidence = evidence; // Memory IDs that support this reflection
69
+ this.level = metadata.level || 1; // Abstraction level (higher = more abstract)
70
+ }
71
+ }
72
+
73
+ /**
74
+ * Plan - Future sequence of actions for the agent
75
+ * Includes location, start time, and duration
76
+ */
77
+ class Plan extends MemoryObject {
78
+ constructor(content, details = {}) {
79
+ super('plan', content, {});
80
+ this.location = details.location || null;
81
+ this.startTime = details.startTime || null;
82
+ this.duration = details.duration || null;
83
+ this.subTasks = details.subTasks || [];
84
+ this.status = details.status || 'pending'; // 'pending', 'in_progress', 'completed'
85
+ }
86
+
87
+ addSubTask(task) {
88
+ this.subTasks.push(task);
89
+ }
90
+
91
+ complete() {
92
+ this.status = 'completed';
93
+ }
94
+ }
95
+
96
+ /**
97
+ * Memory Retrieval Function
98
+ * Implements the three-component scoring:
99
+ * 1. Recency - exponential decay over time
100
+ * 2. Importance - distinguishes mundane from core memories
101
+ * 3. Relevance - cosine similarity with query embedding
102
+ */
103
+ class MemoryRetrieval {
104
+ constructor(config = {}) {
105
+ this.recencyDecay = config.recencyDecay || 0.995;
106
+ this.recencyWeight = config.recencyWeight || 1.0;
107
+ this.importanceWeight = config.importanceWeight || 1.0;
108
+ this.relevanceWeight = config.relevanceWeight || 1.0;
109
+ this.maxResults = config.maxResults || 10;
110
+ }
111
+
112
+ /**
113
+ * Calculate recency score using exponential decay
114
+ * @param {number} hoursAgo - Hours since memory was last accessed
115
+ * @returns {number} Recency score [0, 1]
116
+ */
117
+ calculateRecency(hoursAgo) {
118
+ return Math.pow(this.recencyDecay, hoursAgo);
119
+ }
120
+
121
+ /**
122
+ * Calculate importance score (already stored with memory)
123
+ * @param {number} importance - Importance value [1-10]
124
+ * @returns {number} Normalized importance [0, 1]
125
+ */
126
+ normalizeImportance(importance) {
127
+ return importance / 10;
128
+ }
129
+
130
+ /**
131
+ * Calculate relevance using cosine similarity (simplified embedding)
132
+ * In production, would use actual embeddings
133
+ * @param {string} text1 - First text
134
+ * @param {string} text2 - Second text
135
+ * @returns {number} Relevance score [0, 1]
136
+ */
137
+ calculateRelevance(text1, text2) {
138
+ // Simple keyword-based similarity
139
+ const words1 = new Set(text1.toLowerCase().split(/\s+/).filter(w => w.length > 2));
140
+ const words2 = new Set(text2.toLowerCase().split(/\s+/).filter(w => w.length > 2));
141
+
142
+ if (words1.size === 0 || words2.size === 0) return 0;
143
+
144
+ const intersection = [...words1].filter(w => words2.has(w)).length;
145
+ const union = new Set([...words1, ...words2]).size;
146
+
147
+ return union > 0 ? intersection / union : 0;
148
+ }
149
+
150
+ /**
151
+ * Retrieve relevant memories for a given query
152
+ * @param {MemoryObject[]} memories - All memories in the stream
153
+ * @param {string} query - Query describing current situation
154
+ * @param {object} context - Additional context for filtering
155
+ * @returns {MemoryObject[]} Sorted list of relevant memories
156
+ */
157
+ retrieve(memories, query, context = {}) {
158
+ const now = Date.now();
159
+ const scores = [];
160
+
161
+ for (const memory of memories) {
162
+ // Calculate recency
163
+ const hoursAgo = (now - memory.lastAccessedAt) / (1000 * 60 * 60);
164
+ const recencyScore = this.calculateRecency(hoursAgo);
165
+
166
+ // Calculate importance (normalized)
167
+ const importanceScore = this.normalizeImportance(memory.importance);
168
+
169
+ // Calculate relevance
170
+ const relevanceScore = this.calculateRelevance(query, memory.content);
171
+
172
+ // Weighted combination
173
+ const totalScore =
174
+ this.recencyWeight * recencyScore +
175
+ this.importanceWeight * importanceScore +
176
+ this.relevanceWeight * relevanceScore;
177
+
178
+ scores.push({
179
+ memory,
180
+ score: totalScore,
181
+ breakdown: { recency: recencyScore, importance: importanceScore, relevance: relevanceScore }
182
+ });
183
+ }
184
+
185
+ // Sort by score descending
186
+ scores.sort((a, b) => b.score - a.score);
187
+
188
+ // Return top results
189
+ return scores.slice(0, this.maxResults).map(s => ({
190
+ memory: s.memory,
191
+ score: s.score,
192
+ breakdown: s.breakdown
193
+ }));
194
+ }
195
+ }
196
+
197
+ /**
198
+ * Reflection Generator
199
+ * Synthesizes observations into higher-level reflections
200
+ * Triggered when sum of importance scores exceeds threshold
201
+ */
202
+ class ReflectionGenerator {
203
+ constructor(config = {}) {
204
+ this.importanceThreshold = config.importanceThreshold || 150;
205
+ this.maxMemoriesForReflection = config.maxMemoriesForReflection || 100;
206
+ }
207
+
208
+ /**
209
+ * Determine if reflection should be triggered
210
+ * @param {MemoryObject[]} recentMemories - Recent memories to evaluate
211
+ * @returns {boolean} True if reflection should be generated
212
+ */
213
+ shouldReflect(recentMemories) {
214
+ const totalImportance = recentMemories
215
+ .slice(0, this.maxMemoriesForReflection)
216
+ .reduce((sum, m) => sum + m.importance, 0);
217
+
218
+ return totalImportance >= this.importanceThreshold;
219
+ }
220
+
221
+ /**
222
+ * Generate candidate questions from recent memories
223
+ * @param {MemoryObject[]} memories - Recent memories
224
+ * @returns {string[]} Candidate questions
225
+ */
226
+ generateCandidateQuestions(memories) {
227
+ // In production, would use LLM to generate questions
228
+ // Here we use heuristic extraction
229
+ const contents = memories.map(m => m.content).join('\n');
230
+
231
+ const questions = [];
232
+
233
+ // Detect topics
234
+ if (/research|study|paper/i.test(contents)) {
235
+ questions.push('What is the subject passionate about?');
236
+ }
237
+ if (/talk|converse|discuss/i.test(contents)) {
238
+ questions.push('What is the nature of the relationship?');
239
+ }
240
+ if (/work|job|task/i.test(contents)) {
241
+ questions.push('What are the work priorities and deadlines?');
242
+ }
243
+
244
+ // Default questions
245
+ if (questions.length === 0) {
246
+ questions.push('What are the most salient observations?');
247
+ questions.push('What patterns can be identified?');
248
+ }
249
+
250
+ return questions.slice(0, 3);
251
+ }
252
+
253
+ /**
254
+ * Generate reflection from memories
255
+ * @param {MemoryObject[]} memories - Relevant memories
256
+ * @param {string} question - Question being addressed
257
+ * @returns {object} Reflection with insights and evidence
258
+ */
259
+ generateReflection(memories, question) {
260
+ const insights = [];
261
+ const evidence = memories.map(m => m.id);
262
+
263
+ // In production, would use LLM to extract insights
264
+ // Here we use pattern matching
265
+
266
+ const contents = memories.map(m => m.content).join(' ');
267
+
268
+ // Detect passion/interest
269
+ if (/research|study|paper|write/i.test(contents)) {
270
+ insights.push('Subject is dedicated to their research work');
271
+ }
272
+
273
+ // Detect relationships
274
+ if (/talk|converse|discuss|meet/i.test(contents)) {
275
+ insights.push('Subject has active social interactions');
276
+ }
277
+
278
+ // Detect location patterns
279
+ const locations = memories.filter(m => m.location).map(m => m.location);
280
+ if (locations.length > 0) {
281
+ const mostCommon = this.mostCommon(locations);
282
+ insights.push(`Frequently at ${mostCommon}`);
283
+ }
284
+
285
+ // Generate reflection content
286
+ const content = insights.length > 0
287
+ ? `Based on recent observations: ${insights.join('. ')}`
288
+ : 'No significant patterns detected in recent observations';
289
+
290
+ return {
291
+ content,
292
+ insights,
293
+ evidence,
294
+ question,
295
+ timestamp: Date.now()
296
+ };
297
+ }
298
+
299
+ mostCommon(arr) {
300
+ const counts = {};
301
+ arr.forEach(item => { counts[item] = (counts[item] || 0) + 1; });
302
+ return Object.entries(counts).sort((a, b) => b[1] - a[1])[0]?.[0] || 'unknown';
303
+ }
304
+ }
305
+
306
+ /**
307
+ * Plan Generator
308
+ * Creates and manages agent plans using top-down decomposition
309
+ */
310
+ class PlanGenerator {
311
+ constructor(config = {}) {
312
+ this.planDetailLevels = config.planDetailLevels || 5;
313
+ this.hoursPerChunk = config.hoursPerChunk || 2;
314
+ }
315
+
316
+ /**
317
+ * Create initial day plan from agent summary and previous day
318
+ * @param {object} agentSummary - Agent's summary description
319
+ * @param {string} previousDaySummary - Summary of previous day's activities
320
+ * @param {string} currentDate - Current date
321
+ * @returns {Plan[]} Generated plans
322
+ */
323
+ createDayPlan(agentSummary, previousDaySummary, currentDate) {
324
+ const plans = [];
325
+
326
+ // In production, would use LLM to generate plans
327
+ // Here we use template-based generation
328
+
329
+ const wakeHour = 8;
330
+ const sleepHour = 22;
331
+ const activeHours = sleepHour - wakeHour;
332
+ const chunks = Math.floor(activeHours / this.hoursPerChunk);
333
+
334
+ const templates = [
335
+ { hour: wakeHour, activity: 'morning routine', location: 'home' },
336
+ { hour: wakeHour + 1, activity: 'breakfast', location: 'kitchen' },
337
+ { hour: 9, activity: 'work/school', location: 'office/classroom' },
338
+ { hour: 12, activity: 'lunch', location: 'cafetereria' },
339
+ { hour: 13, activity: 'work/classes', location: 'office/classroom' },
340
+ { hour: 17, activity: 'personal time', location: 'varies' },
341
+ { hour: 19, activity: 'dinner', location: 'home' },
342
+ { hour: 20, activity: 'evening relaxation', location: 'home' },
343
+ ];
344
+
345
+ templates.forEach((t, i) => {
346
+ if (i < chunks) {
347
+ const plan = new Plan(
348
+ `${t.activity} at ${t.hour}:00`,
349
+ {
350
+ location: t.location,
351
+ startTime: `${currentDate} ${t.hour}:00`,
352
+ duration: this.hoursPerChunk * 60, // minutes
353
+ subTasks: []
354
+ }
355
+ );
356
+ plans.push(plan);
357
+ }
358
+ });
359
+
360
+ return plans;
361
+ }
362
+
363
+ /**
364
+ * Refine plan with more detail (top-down decomposition)
365
+ * @param {Plan} plan - Plan to refine
366
+ * @param {string} context - Additional context
367
+ * @returns {Plan} Refined plan with sub-tasks
368
+ */
369
+ refinePlan(plan, context = '') {
370
+ // Add sub-tasks based on activity type
371
+ const activityLower = plan.content.toLowerCase();
372
+
373
+ if (/work|study|research/i.test(activityLower)) {
374
+ plan.addSubTask('Gather materials/resources');
375
+ plan.addSubTask('Focus on primary task');
376
+ plan.addSubTask('Take breaks periodically');
377
+ }
378
+
379
+ if (/paint|art|creative/i.test(activityLower)) {
380
+ plan.addSubTask('Gather art supplies');
381
+ plan.addSubTask('Set up workspace');
382
+ plan.addSubTask('Work on project');
383
+ plan.addSubTask('Clean up materials');
384
+ }
385
+
386
+ if (/cook|meal/i.test(activityLower)) {
387
+ plan.addSubTask('Prepare ingredients');
388
+ plan.addSubTask('Cook meal');
389
+ plan.addSubTask('Set table');
390
+ plan.addSubTask('Clean up kitchen');
391
+ }
392
+
393
+ return plan;
394
+ }
395
+
396
+ /**
397
+ * Update plan based on environment changes
398
+ * @param {Plan[]} plans - Current plans
399
+ * @param {object} change - Environment change
400
+ * @returns {Plan[]} Updated plans
401
+ */
402
+ reactToEnvironment(plans, change) {
403
+ // In production, would use LLM to decide how to modify plans
404
+ // Here we use simple heuristics
405
+
406
+ if (change.interrupted) {
407
+ // Find current plan and mark as interrupted
408
+ const currentPlan = plans.find(p => p.status === 'in_progress');
409
+ if (currentPlan) {
410
+ currentPlan.status = 'interrupted';
411
+ }
412
+ }
413
+
414
+ if (change.opportunity) {
415
+ // Could add new plan for opportunity
416
+ const opportunityPlan = new Plan(
417
+ `Take advantage of: ${change.opportunity}`,
418
+ { location: change.location || null }
419
+ );
420
+ plans.push(opportunityPlan);
421
+ }
422
+
423
+ return plans;
424
+ }
425
+ }
426
+
427
+ /**
428
+ * Memory Stream - Long-term memory module
429
+ * Maintains comprehensive record of agent's experience
430
+ */
431
+ class MemoryStream {
432
+ constructor(config = {}) {
433
+ this.memories = [];
434
+ this.maxMemories = config.maxMemories || 10000;
435
+ this.retrieval = new MemoryRetrieval(config.retrieval);
436
+ this.reflectionGenerator = new ReflectionGenerator(config.reflection);
437
+ this.planGenerator = new PlanGenerator(config.plan);
438
+
439
+ // Importance scoring callback (in production, would use LLM)
440
+ this.importanceFn = config.importanceFn || this.defaultImportance;
441
+ }
442
+
443
+ /**
444
+ * Default importance scoring function
445
+ */
446
+ defaultImportance(content) {
447
+ const lower = content.toLowerCase();
448
+
449
+ // High importance events
450
+ if (/breakup|acceptance|fired|death|birth|marriage/i.test(lower)) return 8;
451
+ if (/passionate|love|hate|excited|angry/i.test(lower)) return 7;
452
+
453
+ // Medium importance
454
+ if (/work|school|project|meeting|deadline/i.test(lower)) return 5;
455
+ if (/friend|family|colleague/i.test(lower)) return 5;
456
+
457
+ // Low importance - daily routines
458
+ if (/eat|sleep|brush|shower|bed|routine/i.test(lower)) return 2;
459
+
460
+ return 4; // Default
461
+ }
462
+
463
+ /**
464
+ * Add observation to memory stream
465
+ * @param {string} content - Observation content
466
+ * @param {object} metadata - Additional metadata
467
+ */
468
+ addObservation(content, metadata = {}) {
469
+ const importance = metadata.importance || this.importanceFn(content);
470
+
471
+ const observation = new Observation(content, {
472
+ ...metadata,
473
+ importance
474
+ });
475
+
476
+ this.memories.push(observation);
477
+ this.enforceMaxSize();
478
+
479
+ return observation;
480
+ }
481
+
482
+ /**
483
+ * Add reflection to memory stream
484
+ * @param {Reflection} reflection - Reflection object
485
+ */
486
+ addReflection(reflection) {
487
+ this.memories.push(reflection);
488
+ this.enforceMaxSize();
489
+ return reflection;
490
+ }
491
+
492
+ /**
493
+ * Add plan to memory stream
494
+ * @param {Plan} plan - Plan object
495
+ */
496
+ addPlan(plan) {
497
+ this.memories.push(plan);
498
+ this.enforceMaxSize();
499
+ return plan;
500
+ }
501
+
502
+ /**
503
+ * Retrieve relevant memories for current situation
504
+ * @param {string} query - Query describing current situation
505
+ * @param {object} context - Additional context
506
+ * @returns {object[]} Retrieved memories with scores
507
+ */
508
+ retrieve(query, context = {}) {
509
+ const results = this.retrieval.retrieve(this.memories, query, context);
510
+
511
+ // Update last accessed time
512
+ results.forEach(r => r.memory.access());
513
+
514
+ return results;
515
+ }
516
+
517
+ /**
518
+ * Check if reflection should be triggered and generate if needed
519
+ * @returns {Reflection|null} Generated reflection or null
520
+ */
521
+ maybeGenerateReflection() {
522
+ const recentMemories = this.getRecentMemories(100);
523
+
524
+ if (this.reflectionGenerator.shouldReflect(recentMemories)) {
525
+ const questions = this.reflectionGenerator.generateCandidateQuestions(recentMemories);
526
+ const question = questions[0];
527
+
528
+ const relevantMemories = this.retrieve(question);
529
+ const memoryObjects = relevantMemories.map(r => r.memory);
530
+
531
+ const reflectionData = this.reflectionGenerator.generateReflection(memoryObjects, question);
532
+
533
+ const reflection = new Reflection(
534
+ reflectionData.content,
535
+ reflectionData.insights,
536
+ reflectionData.evidence,
537
+ { level: 1 }
538
+ );
539
+
540
+ this.addReflection(reflection);
541
+ return reflection;
542
+ }
543
+
544
+ return null;
545
+ }
546
+
547
+ /**
548
+ * Get recent memories
549
+ * @param {number} count - Number of recent memories
550
+ * @returns {MemoryObject[]}
551
+ */
552
+ getRecentMemories(count = 10) {
553
+ return [...this.memories]
554
+ .sort((a, b) => b.createdAt - a.createdAt)
555
+ .slice(0, count);
556
+ }
557
+
558
+ /**
559
+ * Get all memories of a specific type
560
+ * @param {string} type - Memory type
561
+ * @returns {MemoryObject[]}
562
+ */
563
+ getMemoriesByType(type) {
564
+ return this.memories.filter(m => m.type === type);
565
+ }
566
+
567
+ /**
568
+ * Enforce maximum memory size using FIFO
569
+ */
570
+ enforceMaxSize() {
571
+ while (this.memories.length > this.maxMemories) {
572
+ // Find oldest-lowest-importance in O(n) instead of full O(n log n) sort
573
+ let minScore = Infinity;
574
+ let minIdx = -1;
575
+ for (let i = 0; i < this.memories.length; i++) {
576
+ const m = this.memories[i];
577
+ const score = (m.createdAt || 0) + (m.importance || 0) * 1e10;
578
+ if (score < minScore) { minScore = score; minIdx = i; }
579
+ }
580
+ if (minIdx >= 0) this.memories.splice(minIdx, 1);
581
+ }
582
+ }
583
+
584
+ /**
585
+ * Get statistics
586
+ */
587
+ getStats() {
588
+ const byType = {};
589
+ this.memories.forEach(m => {
590
+ byType[m.type] = (byType[m.type] || 0) + 1;
591
+ });
592
+
593
+ return {
594
+ total: this.memories.length,
595
+ byType,
596
+ recentCount: this.getRecentMemories(5).length
597
+ };
598
+ }
599
+ }
600
+
601
+ /**
602
+ * Generative Agent - Main Class
603
+ * Combines Memory Stream, Reflection, and Planning for believable agent behavior
604
+ */
605
+ class GenerativeAgent {
606
+ constructor(config = {}) {
607
+ this.name = config.name || 'Agent';
608
+ this.age = config.age || null;
609
+ this.traits = config.traits || [];
610
+ this.summary = config.summary || '';
611
+
612
+ this.memoryStream = new MemoryStream(config.memory);
613
+ this.observationCount = 0;
614
+ this.planCount = 0;
615
+
616
+ console.log(`[GenerativeAgent] ${this.name} initialized`);
617
+ }
618
+
619
+ /**
620
+ * Set agent's core description
621
+ * @param {string} summary - Summary description
622
+ * @param {string[]} traits - Innate traits
623
+ */
624
+ setCoreDescription(summary, traits = []) {
625
+ this.summary = summary;
626
+ this.traits = traits;
627
+
628
+ // Add to memory
629
+ this.memoryStream.addObservation(
630
+ `Core identity: ${summary}`,
631
+ { importance: 10, tags: ['identity'] }
632
+ );
633
+ }
634
+
635
+ /**
636
+ * Perceive environment and add observation
637
+ * @param {string} content - What was perceived
638
+ * @param {object} metadata - Additional metadata
639
+ */
640
+ observe(content, metadata = {}) {
641
+ this.observationCount++;
642
+
643
+ const observation = this.memoryStream.addObservation(content, {
644
+ ...metadata,
645
+ importance: metadata.importance || this.memoryStream.importanceFn(content)
646
+ });
647
+
648
+ // Check for reflection
649
+ const reflection = this.memoryStream.maybeGenerateReflection();
650
+ if (reflection) {
651
+ console.log(`[${this.name}] Generated reflection: ${reflection.content.substring(0, 50)}...`);
652
+ }
653
+
654
+ return observation;
655
+ }
656
+
657
+ /**
658
+ * Retrieve relevant memories for current situation
659
+ * @param {string} situation - Current situation description
660
+ * @returns {MemoryObject[]} Relevant memories
661
+ */
662
+ remember(situation) {
663
+ const results = this.memoryStream.retrieve(situation);
664
+ return results;
665
+ }
666
+
667
+ /**
668
+ * Create daily plan
669
+ * @param {string} date - Date for plan
670
+ * @param {string} previousDaySummary - Previous day's activities
671
+ */
672
+ planDay(date, previousDaySummary = '') {
673
+ const plans = this.planGenerator.createDayPlan(
674
+ this.summary + '\nTraits: ' + this.traits.join(', '),
675
+ previousDaySummary,
676
+ date
677
+ );
678
+
679
+ plans.forEach(p => {
680
+ this.planGenerator.refinePlan(p);
681
+ this.memoryStream.addPlan(p);
682
+ this.planCount++;
683
+ });
684
+
685
+ return plans;
686
+ }
687
+
688
+ /**
689
+ * Get current plan
690
+ * @returns {Plan[]}
691
+ */
692
+ getCurrentPlans() {
693
+ return this.memoryStream.getMemoriesByType('plan')
694
+ .filter(p => p.status === 'pending' || p.status === 'in_progress');
695
+ }
696
+
697
+ /**
698
+ * React to environment change
699
+ * @param {object} change - Environment change
700
+ */
701
+ react(change) {
702
+ // Observe the change
703
+ this.observe(`Environment changed: ${change.description || JSON.stringify(change)}`);
704
+
705
+ // Update plans if needed
706
+ const plans = this.getCurrentPlans();
707
+ this.planGenerator.reactToEnvironment(plans, change);
708
+ }
709
+
710
+ /**
711
+ * Converse with another agent
712
+ * @param {string} message - Message received
713
+ * @param {GenerativeAgent} other - Other agent
714
+ * @returns {string} Response
715
+ */
716
+ async converse(message, other) {
717
+ // Remember the conversation
718
+ this.observe(`${this.name} and ${other.name} conversed about: ${message}`);
719
+
720
+ // Retrieve relevant memories
721
+ const relevant = this.remember(message);
722
+
723
+ // In production, would use LLM to generate response
724
+ // Here we generate simple response
725
+ const response = this.generateResponse(message, relevant, other);
726
+
727
+ // Remember own response
728
+ this.observe(`${this.name} said to ${other.name}: ${response}`);
729
+
730
+ return response;
731
+ }
732
+
733
+ /**
734
+ * Generate response (simplified)
735
+ */
736
+ generateResponse(message, relevantMemories, other) {
737
+ const memoryContents = relevantMemories.map(r => r.memory.content).join('; ');
738
+
739
+ if (/party|event|invitation/i.test(message)) {
740
+ return "That sounds great! I'd like to come.";
741
+ }
742
+ if (/help|assist|support/i.test(message)) {
743
+ return "I'd be happy to help with that.";
744
+ }
745
+ if (/what.*doing|plans/i.test(message)) {
746
+ const plans = this.getCurrentPlans();
747
+ if (plans.length > 0) {
748
+ return `I'm planning to ${plans[0].content}`;
749
+ }
750
+ }
751
+
752
+ return "I understand. Let me think about that.";
753
+ }
754
+
755
+ /**
756
+ * Get agent summary for prompting
757
+ * @returns {string} Summary string
758
+ */
759
+ getSummary() {
760
+ return `${this.name}${this.age ? ` (age ${this.age})` : ''}. ${this.summary}. Traits: ${this.traits.join(', ')}`;
761
+ }
762
+
763
+ /**
764
+ * Get statistics
765
+ */
766
+ getStats() {
767
+ return {
768
+ name: this.name,
769
+ observations: this.observationCount,
770
+ plans: this.planCount,
771
+ memoryStats: this.memoryStream.getStats()
772
+ };
773
+ }
774
+ }
775
+
776
+ // Create default plan generator for backwards compatibility
777
+ GenerativeAgent.prototype.planGenerator = new PlanGenerator();
778
+
779
+ /**
780
+ * Demo function demonstrating Generative Agents architecture
781
+ */
782
+ function demo() {
783
+ console.log('='.repeat(60));
784
+ console.log('Generative Agents Demo - Memory Stream Architecture');
785
+ console.log('='.repeat(60));
786
+
787
+ // Create agent
788
+ const eddy = new GenerativeAgent({
789
+ name: 'Eddy Lin',
790
+ age: 19,
791
+ traits: ['friendly', 'outgoing', 'hospitable'],
792
+ config: {
793
+ memory: {
794
+ maxMemories: 100,
795
+ retrieval: { maxResults: 5 }
796
+ }
797
+ }
798
+ });
799
+
800
+ // Set core description
801
+ eddy.setCoreDescription(
802
+ 'Eddy Lin is a student at Oak Hill College studying music theory and composition. ' +
803
+ 'He loves to explore different musical styles and is always looking for ways to expand his knowledge.',
804
+ ['friendly', 'outgoing', 'hospitable']
805
+ );
806
+
807
+ console.log('\n--- Memory Stream: Adding Observations ---');
808
+
809
+ // Add observations (simulating environment perception)
810
+ const observations = [
811
+ { content: 'Eddy Lin is writing a research paper on gentrification', location: 'library' },
812
+ { content: 'Eddy Lin enjoys reading a book on urban development', location: 'library' },
813
+ { content: 'Eddy Lin is conversing with Ayesha Khan about exercising', location: 'gym' },
814
+ { content: 'Eddy Lin is setting up his music studio at home', location: 'home' },
815
+ { content: 'Eddy Lin is meeting with his music professor about composition project', location: 'campus' },
816
+ ];
817
+
818
+ observations.forEach(obs => {
819
+ eddy.observe(obs.content, { location: obs.location });
820
+ console.log(` + Observation: ${obs.content.substring(0, 50)}...`);
821
+ });
822
+
823
+ console.log('\n--- Memory Retrieval: Query "research and passion" ---');
824
+
825
+ const relevant = eddy.remember('research and passion');
826
+ relevant.forEach(r => {
827
+ console.log(` [score: ${r.score.toFixed(3)}] ${r.memory.content.substring(0, 60)}...`);
828
+ console.log(` breakdown: recency=${r.breakdown.recency.toFixed(2)}, importance=${r.breakdown.importance.toFixed(2)}, relevance=${r.breakdown.relevance.toFixed(2)}`);
829
+ });
830
+
831
+ console.log('\n--- Reflection Generation ---');
832
+
833
+ // Force reflection generation for demo
834
+ const reflection = eddy.memoryStream.maybeGenerateReflection();
835
+ if (reflection) {
836
+ console.log(` Generated Reflection: ${reflection.content}`);
837
+ console.log(` Insights: ${reflection.insights.join(', ')}`);
838
+ } else {
839
+ console.log(' (Reflection threshold not met yet)');
840
+ }
841
+
842
+ console.log('\n--- Planning: Create Day Plan ---');
843
+
844
+ const plans = eddy.planDay('2024-02-14', 'Tuesday: classes, library study, dinner with friends');
845
+ plans.forEach(p => {
846
+ console.log(` Plan: ${p.content}`);
847
+ console.log(` Location: ${p.location}, Duration: ${p.duration}min`);
848
+ if (p.subTasks.length > 0) {
849
+ console.log(` Sub-tasks: ${p.subTasks.join(', ')}`);
850
+ }
851
+ });
852
+
853
+ console.log('\n--- Social Interaction ---');
854
+
855
+ const edison = new GenerativeAgent({ name: 'Isabella', traits: ['warm', 'organized'] });
856
+ eddy.converse('Would you like to come to a Valentine\'s Day party?', edison).then(response => {
857
+ console.log(` Eddy's response: "${response}"`);
858
+
859
+ console.log('\n--- Memory Statistics ---');
860
+ const stats = eddy.getStats();
861
+ console.log(` Total memories: ${stats.memoryStats.total}`);
862
+ console.log(` By type:`, stats.memoryStats.byType);
863
+
864
+ console.log('\n--- Agent Statistics ---');
865
+ console.log(` Observations: ${stats.observations}`);
866
+ console.log(` Plans created: ${stats.plans}`);
867
+
868
+ console.log('\n' + '='.repeat(60));
869
+ console.log('Demo complete!');
870
+ console.log('='.repeat(60));
871
+ });
872
+ }
873
+
874
+ // Export for HeartFlow integration
875
+ module.exports = {
876
+ GenerativeAgent,
877
+ MemoryStream,
878
+ MemoryRetrieval,
879
+ ReflectionGenerator,
880
+ PlanGenerator,
881
+ MemoryObject,
882
+ Observation,
883
+ Reflection,
884
+ Plan,
885
+ demo
886
+ };