@yun520-1/heartflow 0.15.2 → 0.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +64 -163
- package/VERSION +1 -1
- package/install.sh +26 -117
- package/meaningful-core.json +26 -0
- package/package.json +9 -18
- package/src/core/heartflow.js +187 -532
- package/src/dream/engine.js +99 -0
- package/src/evolution/loop.js +145 -0
- package/src/psychology/engine.js +268 -0
- package/tests/run.js +195 -0
- package/AI-AGENT-README.md +0 -154
- package/CLAIMS.md +0 -23
- package/CORE_VALUES.md +0 -50
- package/INSTALL_FOR_AI.md +0 -104
- package/QUICK_START.md +0 -77
- package/READ/refresh_11.2.6.md +0 -6
- package/README.zh.md +0 -49
- package/REPO_STRUCTURE.md +0 -47
- package/SKILL.md.new +0 -1
- package/_test_memory.mjs +0 -52
- package/assets/banner.png +0 -0
- package/bin/cli.js +0 -167
- package/bin/setup.js +0 -382
- package/co-evolution/index.ts +0 -511
- package/com.heartflow.auto-evolution.plist.disabled +0 -26
- package/com.heartflow.auto-upgrade.plist.disabled +0 -26
- package/com.heartflow.comfyui-monitor.plist.disabled +0 -22
- package/com.heartflow.enhanced-upgrade.plist.disabled +0 -22
- package/com.heartflow.full-audit.plist +0 -28
- package/com.heartflow.github-audit.plist +0 -21
- package/com.heartflow.paper-upgrade.plist.disabled +0 -21
- package/config/ai-config.json +0 -12
- package/config/ai-providers.json +0 -14
- package/dict-data/generate-graph.js +0 -203
- package/dist/agent/runtime/AgentRuntime.d.ts +0 -212
- package/dist/agent/runtime/AgentRuntime.d.ts.map +0 -1
- package/dist/agent/runtime/AgentRuntime.js +0 -355
- package/dist/agent/runtime/AgentRuntime.js.map +0 -1
- package/dist/agent/runtime/PlanExecutor.d.ts +0 -132
- package/dist/agent/runtime/PlanExecutor.d.ts.map +0 -1
- package/dist/agent/runtime/PlanExecutor.js +0 -322
- package/dist/agent/runtime/PlanExecutor.js.map +0 -1
- package/dist/agent/runtime/TaskGraph.d.ts +0 -170
- package/dist/agent/runtime/TaskGraph.d.ts.map +0 -1
- package/dist/agent/runtime/TaskGraph.js +0 -390
- package/dist/agent/runtime/TaskGraph.js.map +0 -1
- package/dist/agent/runtime/TaskScheduler.d.ts +0 -120
- package/dist/agent/runtime/TaskScheduler.d.ts.map +0 -1
- package/dist/agent/runtime/TaskScheduler.js +0 -301
- package/dist/agent/runtime/TaskScheduler.js.map +0 -1
- package/dist/agent/runtime/index.d.ts +0 -17
- package/dist/agent/runtime/index.d.ts.map +0 -1
- package/dist/agent/runtime/index.js +0 -22
- package/dist/agent/runtime/index.js.map +0 -1
- package/dist/agent/runtime/test-runtime.d.ts +0 -2
- package/dist/agent/runtime/test-runtime.d.ts.map +0 -1
- package/dist/agent/runtime/test-runtime.js +0 -71
- package/dist/agent/runtime/test-runtime.js.map +0 -1
- package/dist/agent/tools/BashTool.d.ts +0 -44
- package/dist/agent/tools/BashTool.d.ts.map +0 -1
- package/dist/agent/tools/BashTool.js +0 -355
- package/dist/agent/tools/BashTool.js.map +0 -1
- package/dist/agent/tools/FileReadTool.d.ts +0 -29
- package/dist/agent/tools/FileReadTool.d.ts.map +0 -1
- package/dist/agent/tools/FileReadTool.js +0 -196
- package/dist/agent/tools/FileReadTool.js.map +0 -1
- package/dist/agent/tools/FileWriteTool.d.ts +0 -35
- package/dist/agent/tools/FileWriteTool.d.ts.map +0 -1
- package/dist/agent/tools/FileWriteTool.js +0 -204
- package/dist/agent/tools/FileWriteTool.js.map +0 -1
- package/dist/agent/tools/Tool.d.ts +0 -75
- package/dist/agent/tools/Tool.d.ts.map +0 -1
- package/dist/agent/tools/Tool.js +0 -54
- package/dist/agent/tools/Tool.js.map +0 -1
- package/dist/agent/tools/WebSearchTool.d.ts +0 -27
- package/dist/agent/tools/WebSearchTool.d.ts.map +0 -1
- package/dist/agent/tools/WebSearchTool.js +0 -136
- package/dist/agent/tools/WebSearchTool.js.map +0 -1
- package/dist/cli/commands/engines.d.ts +0 -39
- package/dist/cli/commands/engines.d.ts.map +0 -1
- package/dist/cli/commands/engines.js +0 -275
- package/dist/cli/commands/engines.js.map +0 -1
- package/dist/cli/commands/health.d.ts +0 -34
- package/dist/cli/commands/health.d.ts.map +0 -1
- package/dist/cli/commands/health.js +0 -381
- package/dist/cli/commands/health.js.map +0 -1
- package/dist/cli/commands/repl.d.ts +0 -40
- package/dist/cli/commands/repl.d.ts.map +0 -1
- package/dist/cli/commands/repl.js +0 -286
- package/dist/cli/commands/repl.js.map +0 -1
- package/dist/cli/commands/status.d.ts +0 -22
- package/dist/cli/commands/status.d.ts.map +0 -1
- package/dist/cli/commands/status.js +0 -266
- package/dist/cli/commands/status.js.map +0 -1
- package/dist/cli/index.d.ts +0 -7
- package/dist/cli/index.d.ts.map +0 -1
- package/dist/cli/index.js +0 -13
- package/dist/cli/index.js.map +0 -1
- package/dist/core/consciousness/2308.08708_upgrade.d.ts +0 -321
- package/dist/core/consciousness/2308.08708_upgrade.d.ts.map +0 -1
- package/dist/core/consciousness/2308.08708_upgrade.js +0 -917
- package/dist/core/consciousness/2308.08708_upgrade.js.map +0 -1
- package/dist/core/dream/dream-consolidator.d.ts +0 -11
- package/dist/core/dream/dream-consolidator.d.ts.map +0 -1
- package/dist/core/dream/dream-consolidator.js +0 -188
- package/dist/core/dream/dream-consolidator.js.map +0 -1
- package/dist/core/dream/dream.d.ts +0 -71
- package/dist/core/dream/dream.d.ts.map +0 -1
- package/dist/core/dream/dream.js +0 -318
- package/dist/core/dream/dream.js.map +0 -1
- package/dist/core/dream/index.d.ts +0 -38
- package/dist/core/dream/index.d.ts.map +0 -1
- package/dist/core/dream/index.js +0 -185
- package/dist/core/dream/index.js.map +0 -1
- package/dist/core/emotion/deep-emotion.js +0 -574
- package/dist/core/emotion/emotion-engine.js +0 -138
- package/dist/core/emotion/index.d.ts +0 -44
- package/dist/core/emotion/index.d.ts.map +0 -1
- package/dist/core/emotion/index.js +0 -41
- package/dist/core/emotion/index.js.map +0 -1
- package/dist/core/heartcore/health-check.d.ts +0 -43
- package/dist/core/heartcore/health-check.d.ts.map +0 -1
- package/dist/core/heartcore/health-check.js +0 -152
- package/dist/core/heartcore/health-check.js.map +0 -1
- package/dist/core/heartcore/heartbeat.d.ts +0 -45
- package/dist/core/heartcore/heartbeat.d.ts.map +0 -1
- package/dist/core/heartcore/heartbeat.js +0 -127
- package/dist/core/heartcore/heartbeat.js.map +0 -1
- package/dist/core/heartcore/sleep-wake.d.ts +0 -61
- package/dist/core/heartcore/sleep-wake.d.ts.map +0 -1
- package/dist/core/heartcore/sleep-wake.js +0 -173
- package/dist/core/heartcore/sleep-wake.js.map +0 -1
- package/dist/core/heartcore/startup-check.d.ts +0 -38
- package/dist/core/heartcore/startup-check.d.ts.map +0 -1
- package/dist/core/heartcore/startup-check.js +0 -148
- package/dist/core/heartcore/startup-check.js.map +0 -1
- package/dist/core/index.js +0 -267
- package/dist/core/knowledge/index.d.ts +0 -95
- package/dist/core/knowledge/index.d.ts.map +0 -1
- package/dist/core/knowledge/index.js +0 -14
- package/dist/core/knowledge/index.js.map +0 -1
- package/dist/core/knowledge/knowledge-graph.js +0 -359
- package/dist/core/psychology/index.d.ts +0 -59
- package/dist/core/psychology/index.d.ts.map +0 -1
- package/dist/core/psychology/index.js +0 -268
- package/dist/core/psychology/index.js.map +0 -1
- package/dist/core/reasoning/bounded-rationality.d.ts +0 -76
- package/dist/core/reasoning/bounded-rationality.d.ts.map +0 -1
- package/dist/core/reasoning/bounded-rationality.js +0 -257
- package/dist/core/reasoning/bounded-rationality.js.map +0 -1
- package/dist/core/reasoning/causal-reasoning.d.ts +0 -89
- package/dist/core/reasoning/causal-reasoning.d.ts.map +0 -1
- package/dist/core/reasoning/causal-reasoning.js +0 -282
- package/dist/core/reasoning/causal-reasoning.js.map +0 -1
- package/dist/core/reasoning/index.d.ts +0 -38
- package/dist/core/reasoning/index.d.ts.map +0 -1
- package/dist/core/reasoning/index.js +0 -93
- package/dist/core/reasoning/index.js.map +0 -1
- package/dist/core/self-evolution/index.d.ts +0 -75
- package/dist/core/self-evolution/index.d.ts.map +0 -1
- package/dist/core/self-evolution/index.js +0 -311
- package/dist/core/self-evolution/index.js.map +0 -1
- package/dist/storage/checkpoint/CheckpointEngine.d.ts +0 -110
- package/dist/storage/checkpoint/CheckpointEngine.d.ts.map +0 -1
- package/dist/storage/checkpoint/CheckpointEngine.js +0 -227
- package/dist/storage/checkpoint/CheckpointEngine.js.map +0 -1
- package/dist/storage/checkpoint.d.ts +0 -18
- package/dist/storage/checkpoint.d.ts.map +0 -1
- package/dist/storage/checkpoint.js +0 -61
- package/dist/storage/checkpoint.js.map +0 -1
- package/dist/storage/index.d.ts +0 -61
- package/dist/storage/index.d.ts.map +0 -1
- package/dist/storage/index.js +0 -84
- package/dist/storage/index.js.map +0 -1
- package/dist/storage/vector/VectorStoreEngine.d.ts +0 -24
- package/dist/storage/vector/VectorStoreEngine.d.ts.map +0 -1
- package/dist/storage/vector/VectorStoreEngine.js +0 -197
- package/dist/storage/vector/VectorStoreEngine.js.map +0 -1
- package/distributed/-v2026.5.7/META.json +0 -9
- package/distributed/-v2026.5.7/package.json +0 -12
- package/distributed/.personal_backup/deepseek-key-v2026.5.7/META.json +0 -9
- package/distributed/.personal_backup/deepseek-key-v2026.5.7/package.json +0 -12
- package/distributed/.personal_backup/git-push-v2026.5.7/META.json +0 -9
- package/distributed/.personal_backup/git-push-v2026.5.7/package.json +0 -12
- package/distributed/.personal_backup/heartflow-always-upgrade-v2026.5.7/META.json +0 -9
- package/distributed/.personal_backup/heartflow-always-upgrade-v2026.5.7/package.json +0 -12
- package/distributed/.personal_backup/key-a-v2026.5.7/META.json +0 -9
- package/distributed/.personal_backup/key-a-v2026.5.7/package.json +0 -12
- package/distributed/.personal_backup/merge-memory-systems-v2026.5.7/META.json +0 -9
- package/distributed/.personal_backup/merge-memory-systems-v2026.5.7/package.json +0 -12
- package/distributed/.personal_backup/search-papers-first-v2026.5.7/META.json +0 -9
- package/distributed/.personal_backup/search-papers-first-v2026.5.7/package.json +0 -12
- package/distributed/.personal_backup/v11-5-8-v2026.5.7/META.json +0 -9
- package/distributed/.personal_backup/v11-5-8-v2026.5.7/package.json +0 -12
- package/distributed/.personal_backup/v11-5-9-v2026.5.7/META.json +0 -9
- package/distributed/.personal_backup/v11-5-9-v2026.5.7/package.json +0 -12
- package/distributed/MANIFEST.json +0 -5
- package/distributed/bundles/install--v2026.5.7.sh +0 -21
- package/distributed/bundles/install-deepseek-key-v2026.5.7.sh +0 -21
- package/distributed/bundles/install-git-push-v2026.5.7.sh +0 -21
- package/distributed/bundles/install-heartflow-always-upgrade-v2026.5.7.sh +0 -21
- package/distributed/bundles/install-key-a-v2026.5.7.sh +0 -21
- package/distributed/bundles/install-merge-memory-systems-v2026.5.7.sh +0 -21
- package/distributed/bundles/install-search-papers-first-v2026.5.7.sh +0 -21
- package/distributed/bundles/install-v11-5-8-v2026.5.7.sh +0 -21
- package/distributed/bundles/install-v11-5-9-v2026.5.7.sh +0 -21
- package/distributed/heartflow-knowledge-base/INDEX.json +0 -29
- package/distributed/heartflow-knowledge-base/PATTERNS.json +0 -74
- package/distributed/heartflow-knowledge-base/package.json +0 -28
- package/distributed_upgrades/TASK_CONFIG.json +0 -20
- package/distributed_upgrades/UPGRADE_BATCH_STATUS.json +0 -29
- package/distributed_upgrades/distributed_upgrades/agent_0.pid +0 -1
- package/distributed_upgrades/distributed_upgrades/agent_1.pid +0 -1
- package/distributed_upgrades/distributed_upgrades/agent_2.pid +0 -1
- package/distributed_upgrades/distributed_upgrades/agent_3.pid +0 -1
- package/distributed_upgrades/distributed_upgrades/agent_4.pid +0 -1
- package/distributed_upgrades/distributed_upgrades/agent_5.pid +0 -1
- package/distributed_upgrades/distributed_upgrades/paper_batches.txt +0 -200
- package/distributed_upgrades/launch-distributed.sh +0 -83
- package/docs/ACTION_PLAN_2026-04-06_0941.md +0 -117
- package/docs/ANALYSIS_REPORT.md +0 -766
- package/docs/APPLICATION_GUIDE.md +0 -444
- package/docs/AUTO_UPGRADE_REPORT_v6.2.56.md +0 -45
- package/docs/AWAKENING_SYSTEM_GUIDE.md +0 -285
- package/docs/BILINGUAL_STANDARD.md +0 -156
- package/docs/BRAND_GUIDELINES.md +0 -251
- package/docs/CODE_OPTIMIZATION_PLAN.md +0 -293
- package/docs/COMPLETE_FIX_SUMMARY.md +0 -250
- package/docs/CONTINUOUS_REFLECTION_2026-04-06_1031.md +0 -233
- package/docs/CONTRIBUTING.md +0 -87
- package/docs/CRON_JOBS_REVIEW_v6.md +0 -60
- package/docs/DATA_FLOW_ARCHITECTURE.md +0 -373
- package/docs/DEEPEST_REFLECTION_2026-04-06_0941.md +0 -167
- package/docs/DEEP_REFLECTION_2026-04-05.md +0 -204
- package/docs/DEEP_VALIDATION_20260403.md +0 -319
- package/docs/DEEP_VALIDATION_20260404.md +0 -295
- package/docs/EMOTION_THEORY_INTEGRATION.md +0 -483
- package/docs/ERROR_FIX_REPORT_2026-04-07.md +0 -316
- package/docs/EVOLUTION_SYSTEM.md +0 -96
- package/docs/FEATURES_SIMPLE.md +0 -53
- package/docs/FEATURES_v5.3.md +0 -291
- package/docs/FEATURES_v7.1.md +0 -172
- package/docs/FINAL_RUN_REPORT_20260403.md +0 -202
- package/docs/GITHUB_COMPLETE_DOCUMENTATION_v6.0.2.md +0 -579
- package/docs/GITHUB_PUSH_LOG.md +0 -16
- package/docs/GITHUB_RELEASE.md +0 -138
- package/docs/GITHUB_RELEASE_v5.3.0.md +0 -395
- package/docs/GITHUB_RELEASE_v6.0.0.md +0 -74
- package/docs/HEARTFLOW_V6_GITHUB_PUSH.md +0 -159
- package/docs/HEARTFLOW_V6_MANIFESTO.md +0 -287
- package/docs/HEARTFLOW_V6_README.md +0 -299
- package/docs/HEARTFLOW_V6_TASK_REVIEW.md +0 -215
- package/docs/HEARTFLOW_VALUES_AND_MISSION.md +0 -177
- package/docs/HeartFlow_Monograph_Volume_II_Chapter_01.md +0 -377
- package/docs/HeartFlow_Monograph_Volume_II_Chapter_02.md +0 -324
- package/docs/HeartFlow_Monograph_Volume_II_Start.md +0 -78
- package/docs/HeartFlow_Monograph_Volume_I_Final.md +0 -9464
- package/docs/INSTALLATION_DIAGNOSIS.md +0 -368
- package/docs/INTEGRATION_CHECKLIST_v6.1.41.md +0 -229
- package/docs/INTEGRATION_SUMMARY.md +0 -380
- package/docs/INTELLIGENT_ROUTING_SYSTEM.md +0 -329
- package/docs/LEARNING_PHILOSOPHY.md +0 -320
- package/docs/LOGIC_AUDIT_REPORT_20260405.md +0 -369
- package/docs/MOTIVE_CHECK_2026-04-06_0945.md +0 -90
- package/docs/PERSONALITY_CALCULATION_RULES.md +0 -104
- package/docs/PERSONALITY_SYNC_FIX.md +0 -166
- package/docs/PROJECT_SUMMARY.md +0 -347
- package/docs/PUBLISH_GUIDE.md +0 -149
- package/docs/README_UPDATE_STANDARD.md +0 -357
- package/docs/README_v5.3.md +0 -519
- package/docs/RELEASE_v6.2.0.md +0 -240
- package/docs/SAGE_PATH_2026-04-06_0952.md +0 -265
- package/docs/SELF_REFLECTION_2026-04-06_1006.md +0 -311
- package/docs/SEVEN_SYSTEMS.md +0 -642
- package/docs/SMART_EVOLUTION_GUIDE.md +0 -103
- package/docs/SMART_EVOLUTION_v4.md +0 -194
- package/docs/SYNC_REPORT_1775363972464.json +0 -23
- package/docs/SYNC_REPORT_1775364446763.json +0 -23
- package/docs/SYNC_REPORT_1775364984353.json +0 -23
- package/docs/SYNC_REPORT_1775397556306.json +0 -23
- package/docs/SYNC_REPORT_1775399840010.json +0 -23
- package/docs/SYNC_REPORT_1775400929082.json +0 -23
- package/docs/SYNC_REPORT_1775455697235.json +0 -23
- package/docs/SYNC_REPORT_1775459792479.json +0 -23
- package/docs/SYNC_REPORT_1775483413473.json +0 -23
- package/docs/SYSTEM_FIX_AND_VERIFICATION_REPORT.md +0 -390
- package/docs/SYSTEM_REQUIREMENTS_v6.2.52.md +0 -611
- package/docs/TASK_BREAKDOWN_CHECKLIST.md +0 -164
- package/docs/THEORY_TO_CODE_v6.2.52.md +0 -930
- package/docs/UPGRADE_COMPLETE_v6.2.33.md +0 -226
- package/docs/UPGRADE_COMPLETE_v6.2.60.md +0 -135
- package/docs/UPGRADE_COMPLETE_v6.2.66.md +0 -265
- package/docs/UPGRADE_COMPLETE_v7.1.8.md +0 -176
- package/docs/UPGRADE_COMPLETE_v7.3.95.md +0 -59
- package/docs/UPGRADE_REPORT_1775313572473.json +0 -50
- package/docs/UPGRADE_REPORT_1775364977378.json +0 -50
- package/docs/UPGRADE_REPORT_1775364984469.json +0 -55
- package/docs/UPGRADE_REPORT_1775397556425.json +0 -55
- package/docs/UPGRADE_REPORT_1775399840144.json +0 -55
- package/docs/UPGRADE_REPORT_1775400929201.json +0 -55
- package/docs/UPGRADE_REPORT_1775455697348.json +0 -55
- package/docs/UPGRADE_REPORT_1775459792601.json +0 -55
- package/docs/UPGRADE_REPORT_1775459829.md +0 -59
- package/docs/UPGRADE_REPORT_1775483413653.json +0 -55
- package/docs/UPGRADE_REPORT_v6.2.25.md +0 -172
- package/docs/UPGRADE_REPORT_v6.2.26.md +0 -166
- package/docs/UPGRADE_REPORT_v6.2.28.md +0 -214
- package/docs/UPGRADE_REPORT_v6.2.29.md +0 -186
- package/docs/VERSION_FIX_REPORT.md +0 -218
- package/docs/VERSION_HISTORY.md +0 -5
- package/docs/VERSION_INDEX.md +0 -180
- package/docs/WAY_OF_BEING_2026-04-06_0955.md +0 -241
- package/docs/ai-self-awareness-awakening.md +0 -551
- package/docs/cronjob-backup.md +0 -55
- package/docs/emotion-prototype-theory-v5.0.12.md +0 -430
- package/docs/examples.md +0 -439
- package/docs/heartflow-ppt-design.md +0 -237
- package/docs/install-troubleshooting.md +0 -21
- package/docs/phase-upgrade-template-v0.0.1.md +0 -33
- package/docs/pricing.md +0 -191
- package/docs/psych-analysis-v0.0.1.md +0 -38
- package/docs/reasoning-checklist.md +0 -60
- package/docs/self-evolution-state-v6.0.19.md +0 -391
- package/docs/self-evolution-state-v6.0.23.md +0 -293
- package/docs/self-evolution-state-v6.0.24.md +0 -281
- package/docs/self-evolution-state-v6.0.49.md +0 -267
- package/docs/self-evolution-state-v6.2.33.md +0 -269
- package/docs/self-evolution-state-v6.2.60.md +0 -180
- package/docs/self-evolution-state-v6.2.66.md +0 -520
- package/docs/self-evolution-state-v7.3.95.md +0 -165
- package/docs/self-evolution-state.md +0 -226
- package/docs/system-core-principles.md +0 -53
- package/docs/system-truth-goodness-beauty-principles.md +0 -502
- package/docs/theories/human-nature-motivation.md +0 -251
- package/docs/theories/motivation-memory-integration.md +0 -265
- package/docs/theories/sdt-test.md +0 -17
- package/docs/theory-integration-analysis-v5.2.0.md +0 -236
- package/docs/theory-update-summary-v5.0.34.md +0 -193
- package/docs/theory-update-summary-v5.0.35.md +0 -104
- package/docs/theory-update-summary-v5.0.41.md +0 -281
- package/docs/theory-update-summary-v5.0.42.md +0 -421
- package/docs/theory-update-summary-v5.0.46.md +0 -386
- package/docs/theory-update-summary-v5.0.47.md +0 -449
- package/docs/theory-update-summary-v5.0.48.md +0 -183
- package/docs/theory-update-summary-v5.0.49.md +0 -191
- package/docs/theory-update-summary-v5.0.50.md +0 -205
- package/docs/theory-update-summary-v5.0.51.md +0 -191
- package/docs/theory-update-summary-v5.0.52.md +0 -183
- package/docs/theory-update-summary-v5.0.53.md +0 -306
- package/docs/theory-update-summary-v5.0.54.md +0 -98
- package/docs/theory-update-summary-v5.0.55.md +0 -391
- package/docs/theory-update-summary-v5.0.57.md +0 -398
- package/docs/theory-update-summary-v5.0.58.md +0 -476
- package/docs/theory-update-summary-v5.0.59.md +0 -520
- package/docs/theory-update-summary-v5.0.60.md +0 -460
- package/docs/theory-update-summary-v5.0.61.md +0 -108
- package/docs/theory-update-summary-v5.0.62.md +0 -74
- package/docs/theory-update-summary-v5.0.63.md +0 -112
- package/docs/theory-update-summary-v5.0.64.md +0 -55
- package/docs/theory-update-summary-v5.0.67.md +0 -539
- package/docs/theory-update-summary-v5.2.0.md +0 -168
- package/docs/theory-update-summary-v5.2.1.md +0 -406
- package/docs/theory-update-summary-v5.2.37.md +0 -518
- package/docs/theory-update-summary-v6.0.19.md +0 -715
- package/docs/theory-update-summary-v6.0.23.md +0 -729
- package/docs/theory-update-summary-v6.0.24.md +0 -229
- package/docs/theory-update-summary-v6.0.49.md +0 -223
- package/docs/theory-update-summary-v6.2.33.md +0 -303
- package/docs/theory-update-summary-v6.2.49.md +0 -489
- package/docs/theory-update-summary-v6.2.60.md +0 -273
- package/docs/theory-update-summary-v6.2.66.md +0 -322
- package/docs/theory-update-summary-v7.3.95.md +0 -197
- package/docs/theory-update-summary.md +0 -174
- package/docs/upgrade-notes-v0.0.1.md +0 -15
- package/docs/upgrade-report-v5.0.34.md +0 -144
- package/docs/upgrade-report-v5.0.42-cron.md +0 -269
- package/docs/upgrade-report-v5.0.43-cron.md +0 -248
- package/docs/upgrade-report-v5.0.45-cron.md +0 -63
- package/docs/upgrade-report-v5.0.55-cron.md +0 -173
- package/docs/upgrade-report-v5.0.63-cron.md +0 -145
- package/docs/upgrade-report-v5.0.67-cron.md +0 -185
- package/docs/upgrade-report-v5.0.68-cron.md +0 -409
- package/docs/upgrade-report-v5.2.0-cron.md +0 -178
- package/docs/upgrade-report-v5.2.1-cron.md +0 -321
- package/docs/upgrade-report-v5.2.37-cron.md +0 -602
- package/docs/upgrade-report-v6.0.19-cron.md +0 -296
- package/docs/upgrade-report-v6.0.23-cron.md +0 -81
- package/docs/upgrade-report-v6.0.24-cron.md +0 -272
- package/docs/upgrade-report-v6.0.49-cron.md +0 -277
- package/docs/upgrade-report-v6.2.33-cron.md +0 -290
- package/docs/upgrade-report-v6.2.60-cron.md +0 -93
- package/docs/upgrade-report-v7.3.95-cron.md +0 -65
- package/docs/upgrade-report.md +0 -327
- package/docs/upgrade-v3.21.0.md +0 -249
- package/docs/v4.8.0-upgrade.md +0 -287
- package/docs/version-summary-20260429.md +0 -142
- package/explore-engine/index.ts +0 -478
- package/extract-text.py +0 -12
- package/failure-pattern-memory/index.ts +0 -234
- package/heartflow-identity/HEARTCORE/health-check.js +0 -49
- package/heartflow-identity/HEARTCORE/heartbeat.js +0 -42
- package/heartflow-identity/HEARTCORE/heartcore.js +0 -86
- package/heartflow-identity/HEARTCORE/safety-check.js +0 -282
- package/heartflow-identity/HEARTCORE/self-check.js +0 -90
- package/heartflow-identity/HEARTCORE/sleep-wake.js +0 -105
- package/heartflow-identity/LICENSE +0 -17
- package/heartflow-identity/VERSION +0 -1
- package/heartflow-identity/install.sh +0 -80
- package/languages/README_LANGS.md +0 -20
- package/languages/README_ar.md +0 -48
- package/languages/README_de.md +0 -48
- package/languages/README_en.md +0 -48
- package/languages/README_es.md +0 -48
- package/languages/README_fr.md +0 -48
- package/languages/README_ja.md +0 -48
- package/languages/README_ko.md +0 -48
- package/languages/README_zh.md +0 -85
- package/memory-log.json +0 -5
- package/migrate-memories.js +0 -101
- package/package.json.bak +0 -13
- package/patches/embodied-core-v2.2.3.patch +0 -475
- package/patches/goedel-engine-v2.2.2.patch +0 -161
- package/patches/new-features-v2.2.3.patch +0 -1371
- package/patches/self-modifier-v2.2.2.patch +0 -252
- package/run-full-audit.sh +0 -4
- package/run-github-audit.sh +0 -3
- package/run-hf.sh +0 -5
- package/run-paper-upgrade.sh +0 -5
- package/session-continuity/index.ts +0 -262
- package/shared-discovery-log/index.ts +0 -281
- package/skills/.skills_store_lock.json +0 -11
- package/skills/baidu-search/_meta.json +0 -6
- package/src/__init__.py +0 -4
- package/src/__pycache__/__init__.cpython-313.pyc +0 -0
- package/src/agent/runtime/AgentRuntime.ts +0 -481
- package/src/agent/runtime/PlanExecutor.ts +0 -441
- package/src/agent/runtime/TaskGraph.ts +0 -487
- package/src/agent/runtime/TaskScheduler.ts +0 -364
- package/src/agent/runtime/index.ts +0 -17
- package/src/agent/runtime/test-runtime.ts +0 -80
- package/src/agent/tools/BashTool.ts +0 -390
- package/src/agent/tools/FileReadTool.ts +0 -176
- package/src/agent/tools/FileWriteTool.ts +0 -182
- package/src/agent/tools/Tool.ts +0 -105
- package/src/agent/tools/WebSearchTool.ts +0 -158
- package/src/cli/commands/engines.ts +0 -280
- package/src/cli/commands/health.ts +0 -433
- package/src/cli/commands/repl.ts +0 -267
- package/src/cli/commands/status.ts +0 -264
- package/src/cli/index.ts +0 -7
- package/src/core/VERSION +0 -1
- package/src/core/__init__.py +0 -3
- package/src/core/__pycache__/__init__.cpython-313.pyc +0 -0
- package/src/core/__pycache__/heartflow.cpython-313.pyc +0 -0
- package/src/core/_upgrade_archive/upgrade_1778685492336.js +0 -118
- package/src/core/_upgrade_archive/upgrade_1778685493439.js +0 -118
- package/src/core/_upgrade_archive/upgrade_1778685559715.js +0 -346
- package/src/core/_upgrade_archive/upgrade_1778685676694.js +0 -198
- package/src/core/_upgrade_archive/upgrade_1778685861697.js +0 -345
- package/src/core/_upgrade_archive/upgrade_1778686211075.js +0 -346
- package/src/core/_upgrade_archive/upgrade_1778686749596.js +0 -198
- package/src/core/_upgrade_archive/upgrade_1778714606944.js +0 -198
- package/src/core/_upgrade_archive/upgrade_1778714616000.js +0 -345
- package/src/core/_upgrade_archive/upgrade_1778714625871.js +0 -118
- package/src/core/_upgrade_archive/upgrade_1778714990353.js +0 -346
- package/src/core/_upgrade_archive/upgrade_1778716193707.js +0 -198
- package/src/core/agent-performance.json +0 -147
- package/src/core/agents/AgentManager.js +0 -161
- package/src/core/agents/FocusAgent.js +0 -120
- package/src/core/agents/MoodAgent.js +0 -141
- package/src/core/agents/ReflectionAgent.js +0 -241
- package/src/core/agents/SelfAgent.js +0 -100
- package/src/core/agents/base-agents.js +0 -127
- package/src/core/associative-engine/association-graph.json +0 -2057
- package/src/core/associative-engine/associative-engine.js +0 -174
- package/src/core/associative-engine/chunk-detector.js +0 -246
- package/src/core/associative-engine/idiom-story-db.json +0 -1708
- package/src/core/associative-engine/lexical-associator.js +0 -195
- package/src/core/associative-engine/narrative-prototypes.json +0 -130
- package/src/core/associative-engine/narrative-retriever.js +0 -232
- package/src/core/associative-engine/semantic-converger.js +0 -267
- package/src/core/associative-engine/story-prototypes.json +0 -322
- package/src/core/associative-engine/word-by-word-generator.js +0 -222
- package/src/core/auto-upgrade-engine.js +0 -56
- package/src/core/autonomy/autonomous-decision.js +0 -199
- package/src/core/autonomy/digital-homeostasis.js +0 -259
- package/src/core/autonomy/flow-predictor.js +0 -496
- package/src/core/autonomy/goal-generator.js +0 -277
- package/src/core/autonomy/pdca-engine.js +0 -905
- package/src/core/autonomy/policy-optimizer.js +0 -286
- package/src/core/autonomy/temporal-planner.js +0 -230
- package/src/core/cognition/cognitive-engine.js +0 -224
- package/src/core/cognition/cognitive-loop.js +0 -414
- package/src/core/cognition/metacognitive-failure-predictor.js +0 -447
- package/src/core/consciousness/2308.08708_upgrade.ts +0 -1206
- package/src/core/consciousness/arena-consciousness.js +0 -441
- package/src/core/consciousness/depth-indicator.js +0 -459
- package/src/core/consciousness/global-workspace.js +0 -233
- package/src/core/consciousness/mind-wanderer.js +0 -187
- package/src/core/consciousness/self-model.js +0 -473
- package/src/core/context/context-manager.js +0 -683
- package/src/core/cortex-integration/INTEGRATION_PLAN.md +0 -63
- package/src/core/cortex-integration/hooks/cortex-hooks.mjs +0 -646
- package/src/core/cortex-integration/hooks/on_session_start.py +0 -174
- package/src/core/cortex-integration/hooks/on_tool_failure.py +0 -292
- package/src/core/cortex-integration/hooks/on_tool_success.py +0 -130
- package/src/core/dream/dream-consolidator.ts +0 -252
- package/src/core/dream/dream-loop.js +0 -610
- package/src/core/dream/dream.ts +0 -430
- package/src/core/dream/index.ts +0 -229
- package/src/core/dream/sleep-cycle.mjs +0 -208
- package/src/core/embodied/embodied-core.js +0 -276
- package/src/core/emotion/AppraisalEngine.js +0 -276
- package/src/core/emotion/EmotionCore.js +0 -237
- package/src/core/emotion/EmotionKeywords.js +0 -217
- package/src/core/emotion/EmotionRegulation.js +0 -303
- package/src/core/emotion/EmotionStates.js +0 -133
- package/src/core/emotion/EmotionTransition.js +0 -245
- package/src/core/emotion/EmotionTrigger.js +0 -182
- package/src/core/emotion/EmotionalMomentum.js +0 -270
- package/src/core/emotion/EmpathyGenerator.js +0 -106
- package/src/core/emotion/ResponseStyle.js +0 -162
- package/src/core/emotion/deep-emotion.js +0 -582
- package/src/core/emotion/emotion-arc.mjs +0 -238
- package/src/core/emotion/emotion-engine.js +0 -139
- package/src/core/emotion/index.ts +0 -65
- package/src/core/ethics/boundary-negotiation.js +0 -193
- package/src/core/ethics/guard.js +0 -219
- package/src/core/ethics/sage-guardian.js +0 -394
- package/src/core/ethics/value-internalizer.js +0 -211
- package/src/core/heartflow.py +0 -1542
- package/src/core/identity/identity-engine.js +0 -777
- package/src/core/identity/identity.js +0 -358
- package/src/core/knowledge/index.ts +0 -84
- package/src/core/knowledge/knowledge-graph.js +0 -370
- package/src/core/learning/experience-replay.js +0 -354
- package/src/core/learning/learning-engine.js +0 -734
- package/src/core/paper-processors/index.js +0 -9772
- package/src/core/papers/__init__.py +0 -0
- package/src/core/papers/__pycache__/attention_logic_verifier.cpython-313.pyc +0 -0
- package/src/core/papers/__pycache__/dream_generator.cpython-313.pyc +0 -0
- package/src/core/papers/__pycache__/emotion_memory_bridge.cpython-313.pyc +0 -0
- package/src/core/papers/__pycache__/episodic_memory.cpython-313.pyc +0 -0
- package/src/core/papers/__pycache__/memory_consolidator.cpython-313.pyc +0 -0
- package/src/core/papers/__pycache__/memory_planner.cpython-313.pyc +0 -0
- package/src/core/papers/__pycache__/reflection_engine.cpython-313.pyc +0 -0
- package/src/core/papers/__pycache__/sleep_cycle_simulator.cpython-313.pyc +0 -0
- package/src/core/papers/attention_logic_verifier.py +0 -153
- package/src/core/papers/dream_generator.py +0 -176
- package/src/core/papers/emotion_memory_bridge.py +0 -213
- package/src/core/papers/episodic_memory.py +0 -140
- package/src/core/papers/memory_consolidator.py +0 -144
- package/src/core/papers/memory_planner.py +0 -198
- package/src/core/papers/papers-index.js +0 -344
- package/src/core/papers/reflection_engine.py +0 -219
- package/src/core/papers/sleep_cycle_simulator.py +0 -133
- package/src/core/papers/v11_43_1_integration.js +0 -365
- package/src/core/papers/v11_43_2_integration.js +0 -369
- package/src/core/psychology/index.ts +0 -331
- package/src/core/reasoning/bounded-rationality.ts +0 -342
- package/src/core/reasoning/causal-reasoning.ts +0 -402
- package/src/core/reasoning/index.ts +0 -170
- package/src/core/self-evolution/attention-logic-verifier.js +0 -179
- package/src/core/self-evolution/generative-agents.js +0 -886
- package/src/core/self-evolution/goedel-engine.js +0 -991
- package/src/core/self-evolution/index.ts +0 -433
- package/src/core/self-evolution/lesson-aware-loop.mjs +0 -146
- package/src/core/self-evolution/meta-learning.js +0 -256
- package/src/core/self-evolution/reflexion-agent.js +0 -782
- package/src/core/self-evolution/reflexion-prompts.mjs +0 -284
- package/src/core/self-evolution/reflexion-v2.mjs +0 -427
- package/src/core/self-evolution/reflexion.js +0 -134
- package/src/core/self-evolution/rollback-manager.js +0 -278
- package/src/core/self-evolution/self-evolution-core.js +0 -334
- package/src/core/self-evolution/self-modifier.js +0 -248
- package/src/core/self-evolution/self-modifier.js.bak +0 -199
- package/src/core/self-evolution/self-refine.js +0 -42
- package/src/core/self-evolution/skill-improve-workflow.mjs +0 -264
- package/src/core/self-evolution/skill-knowledge.mjs +0 -374
- package/src/core/self-evolution/skill-learning-loop.mjs +0 -180
- package/src/core/self-healing/self-healing-rl.js +0 -208
- package/src/core/self-healing/self-healing.js +0 -142
- package/src/core/skills/skill-dag.js +0 -524
- package/src/core/skills/skill-loader.js +0 -62
- package/src/core/skills/skill-registry.js +0 -71
- package/src/core/task-persistence.js +0 -322
- package/src/core/theory/advanced-formulas-v7.3.3.js +0 -68
- package/src/core/theory/sep-intentionality-v7.3.2.js +0 -246
- package/src/core/theory/sep-qualia-v7.3.1.js +0 -257
- package/src/core/theory/sep-self-consciousness-v7.3.0.js +0 -222
- package/src/core/think-cli.js +0 -50
- package/src/core/upgrade-principle/SYSTEMS.md +0 -105
- package/src/core/upgrade-principle/UPGRADE_LOG.md +0 -52
- package/src/core/utils/error-handler.js +0 -228
- package/src/core/utils/fs-adapter.js +0 -36
- package/src/core/utils/logger.js +0 -25
- package/src/core/utils/retry-util.js +0 -118
- package/src/core/utils/state-snapshot.js +0 -382
- package/src/index.ts +0 -198
- package/src/self-evolution/reflexion.js +0 -553
- package/src/storage/checkpoint/CheckpointEngine.ts +0 -259
- package/src/storage/checkpoint.ts +0 -79
- package/src/storage/index.ts +0 -112
- package/src/storage/vector/VectorStoreEngine.ts +0 -205
- package/src/utils/atomic-write.js +0 -85
- package/src/utils/file-lock.js +0 -139
- package/src/utils/logger.js +0 -58
- package/src/utils/safe-path.js +0 -115
- package/src/utils/wal.js +0 -115
- package/start.sh +0 -63
- package/test_think_tmp.js +0 -10
- package/transmission/identity-bundle/README-transmission.md +0 -103
- package/transmission/identity-bundle/core-identity.md +0 -142
- package/transmission/identity-bundle/manifest.json +0 -68
- package/transmission/identity-bundle/psychology-engine.ts +0 -331
- package/truth-teller/index.ts +0 -261
- package/tsconfig.json +0 -21
- package/tsconfig.tsbuildinfo +0 -1
- package/upgrade-check.sh +0 -42
- package/upgrade-registry.json +0 -27
- package/user-mental-model/index.ts +0 -298
- package//346/234/200/345/220/216/346/233/264/346/226/260: +0 -0
|
@@ -1,174 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env python3
|
|
2
|
-
"""Capy Cortex Hook: SessionStart - Morning briefing.
|
|
3
|
-
Injects top anti-patterns, preferences, and principles into every new session.
|
|
4
|
-
Runs ONCE per session start. Must be fast (<200ms)."""
|
|
5
|
-
|
|
6
|
-
import json
|
|
7
|
-
import sys
|
|
8
|
-
import sqlite3
|
|
9
|
-
from pathlib import Path
|
|
10
|
-
from datetime import datetime
|
|
11
|
-
|
|
12
|
-
DB_PATH = Path(__file__).parent.parent / "cortex.db"
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
def is_noise_content(content):
|
|
16
|
-
"""Filter out garbage content that shouldn't be injected."""
|
|
17
|
-
if not content or len(content) > 300:
|
|
18
|
-
return True
|
|
19
|
-
|
|
20
|
-
noise_substrings = [
|
|
21
|
-
"session is being continued",
|
|
22
|
-
"Base directory for this skill",
|
|
23
|
-
]
|
|
24
|
-
|
|
25
|
-
content_lower = content.lower()
|
|
26
|
-
for noise in noise_substrings:
|
|
27
|
-
if noise.lower() in content_lower:
|
|
28
|
-
return True
|
|
29
|
-
|
|
30
|
-
# Skip HTML/XML tags
|
|
31
|
-
if content.strip().startswith("<"):
|
|
32
|
-
return True
|
|
33
|
-
|
|
34
|
-
return False
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
def main():
|
|
38
|
-
try:
|
|
39
|
-
data = json.loads(sys.stdin.read())
|
|
40
|
-
except Exception:
|
|
41
|
-
data = {}
|
|
42
|
-
|
|
43
|
-
if not DB_PATH.exists():
|
|
44
|
-
return
|
|
45
|
-
|
|
46
|
-
try:
|
|
47
|
-
db = sqlite3.connect(str(DB_PATH))
|
|
48
|
-
db.row_factory = sqlite3.Row
|
|
49
|
-
db.execute("PRAGMA journal_mode=WAL")
|
|
50
|
-
db.execute("PRAGMA busy_timeout=3000")
|
|
51
|
-
|
|
52
|
-
# Get anti-patterns with quality filter
|
|
53
|
-
all_anti_patterns = db.execute(
|
|
54
|
-
"SELECT content, severity, confidence FROM anti_patterns "
|
|
55
|
-
"WHERE confidence >= 0.6 "
|
|
56
|
-
"ORDER BY severity DESC, confidence DESC LIMIT 20"
|
|
57
|
-
).fetchall()
|
|
58
|
-
|
|
59
|
-
anti_patterns = [
|
|
60
|
-
ap for ap in all_anti_patterns
|
|
61
|
-
if not is_noise_content(ap['content'])
|
|
62
|
-
][:5] # Max 5 after filtering
|
|
63
|
-
|
|
64
|
-
# Get preferences with quality filter
|
|
65
|
-
all_prefs = db.execute(
|
|
66
|
-
"SELECT content, confidence FROM preferences "
|
|
67
|
-
"WHERE confidence >= 0.6 "
|
|
68
|
-
"ORDER BY confidence DESC, occurrences DESC LIMIT 10"
|
|
69
|
-
).fetchall()
|
|
70
|
-
|
|
71
|
-
prefs = [
|
|
72
|
-
p for p in all_prefs
|
|
73
|
-
if not is_noise_content(p['content'])
|
|
74
|
-
][:3] # Max 3 after filtering
|
|
75
|
-
|
|
76
|
-
# Get principles with quality filter
|
|
77
|
-
all_principles = db.execute(
|
|
78
|
-
"SELECT content, confidence FROM principles "
|
|
79
|
-
"WHERE confidence >= 0.6 "
|
|
80
|
-
"ORDER BY confidence DESC LIMIT 15"
|
|
81
|
-
).fetchall()
|
|
82
|
-
|
|
83
|
-
principles = [
|
|
84
|
-
p for p in all_principles
|
|
85
|
-
if not is_noise_content(p['content'])
|
|
86
|
-
][:5] # Max 5 after filtering
|
|
87
|
-
|
|
88
|
-
# Get metadata for header
|
|
89
|
-
rule_count = db.execute(
|
|
90
|
-
"SELECT COUNT(*) FROM rules WHERE maturity != 'deprecated'"
|
|
91
|
-
).fetchone()[0]
|
|
92
|
-
|
|
93
|
-
last_maintenance = db.execute(
|
|
94
|
-
"SELECT value FROM meta WHERE key = 'last_maintenance'"
|
|
95
|
-
).fetchone()
|
|
96
|
-
|
|
97
|
-
maintenance_date = "unknown"
|
|
98
|
-
if last_maintenance and last_maintenance['value']:
|
|
99
|
-
try:
|
|
100
|
-
dt = datetime.fromisoformat(last_maintenance['value'])
|
|
101
|
-
maintenance_date = dt.strftime("%Y-%m-%d")
|
|
102
|
-
except Exception:
|
|
103
|
-
pass
|
|
104
|
-
|
|
105
|
-
# Phase 4E: Detect topics from workspace path
|
|
106
|
-
detected_topics = []
|
|
107
|
-
cwd = data.get("cwd", "")
|
|
108
|
-
try:
|
|
109
|
-
import importlib.util
|
|
110
|
-
te_path = Path(__file__).resolve().parent.parent / "scripts" / "topic_engine.py"
|
|
111
|
-
# SECURITY: validate resolved path stays within HeartFlow's scripts directory
|
|
112
|
-
# to prevent any path traversal risk from cwd being set to unexpected locations
|
|
113
|
-
if te_path.resolve().parent != (Path(__file__).resolve().parent.parent):
|
|
114
|
-
te_path = None
|
|
115
|
-
if te_path and te_path.exists():
|
|
116
|
-
spec = importlib.util.spec_from_file_location("topic_engine", str(te_path))
|
|
117
|
-
if spec is not None and spec.loader is not None:
|
|
118
|
-
te = importlib.util.module_from_spec(spec)
|
|
119
|
-
spec.loader.exec_module(te) # noqa: S322
|
|
120
|
-
detected_topics = te.detect_topics_fast(cwd, file_paths=[cwd])
|
|
121
|
-
except Exception:
|
|
122
|
-
pass
|
|
123
|
-
|
|
124
|
-
# Log session start event with detected topics
|
|
125
|
-
db.execute(
|
|
126
|
-
"INSERT INTO events (event_type, metadata) VALUES (?, ?)",
|
|
127
|
-
("session_start", json.dumps({
|
|
128
|
-
"session_id": data.get("session_id", ""),
|
|
129
|
-
"cwd": cwd,
|
|
130
|
-
"detected_topics": detected_topics,
|
|
131
|
-
}))
|
|
132
|
-
)
|
|
133
|
-
db.commit()
|
|
134
|
-
db.close()
|
|
135
|
-
|
|
136
|
-
lines = []
|
|
137
|
-
if anti_patterns or prefs or principles:
|
|
138
|
-
lines.append("## Cortex v3: Knowledge")
|
|
139
|
-
lines.append(f"({rule_count} rules, last maintained: {maintenance_date})\n")
|
|
140
|
-
|
|
141
|
-
if anti_patterns:
|
|
142
|
-
lines.append("### NEVER DO (learned from past mistakes)")
|
|
143
|
-
for ap in anti_patterns:
|
|
144
|
-
lines.append(f"- [{ap['severity'].upper()}] {ap['content']}")
|
|
145
|
-
lines.append("")
|
|
146
|
-
|
|
147
|
-
if prefs:
|
|
148
|
-
lines.append("### User Preferences")
|
|
149
|
-
for p in prefs:
|
|
150
|
-
lines.append(f"- {p['content']}")
|
|
151
|
-
lines.append("")
|
|
152
|
-
|
|
153
|
-
if principles:
|
|
154
|
-
lines.append("### Principles (distilled from experience)")
|
|
155
|
-
for p in principles:
|
|
156
|
-
lines.append(f"- {p['content']}")
|
|
157
|
-
lines.append("")
|
|
158
|
-
|
|
159
|
-
if lines:
|
|
160
|
-
context = "\n".join(lines)
|
|
161
|
-
output = {
|
|
162
|
-
"hookSpecificOutput": {
|
|
163
|
-
"hookEventName": "SessionStart",
|
|
164
|
-
"additionalContext": context
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
print(json.dumps(output))
|
|
168
|
-
|
|
169
|
-
except Exception:
|
|
170
|
-
pass # Hooks must NEVER crash
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
if __name__ == "__main__":
|
|
174
|
-
main()
|
|
@@ -1,292 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env python3
|
|
2
|
-
"""Capy Cortex Hook: PostToolUseFailure - Pain reflex.
|
|
3
|
-
Records actionable tool failures as error patterns. Runs async (non-blocking)."""
|
|
4
|
-
|
|
5
|
-
import json
|
|
6
|
-
import sys
|
|
7
|
-
import sqlite3
|
|
8
|
-
import re
|
|
9
|
-
from pathlib import Path
|
|
10
|
-
|
|
11
|
-
DB_PATH = Path(__file__).parent.parent / "cortex.db"
|
|
12
|
-
|
|
13
|
-
# Tools to skip - errors from these are not actionable
|
|
14
|
-
SKIP_TOOLS = {"TaskOutput", "Read"}
|
|
15
|
-
|
|
16
|
-
# Error pattern extractors with categories
|
|
17
|
-
ERROR_PATTERNS = [
|
|
18
|
-
# npm/yarn dependency errors
|
|
19
|
-
(r"(?:npm|yarn) ERR.*?(?:ERESOLVE|peer dep|conflict)", "dependency_error",
|
|
20
|
-
"npm dependency resolution: use --legacy-peer-deps or resolve version conflicts"),
|
|
21
|
-
(r"Cannot find module ['\"]([^'\"]+)['\"]", "dependency_error",
|
|
22
|
-
lambda m: f"Missing Node.js module '{m.group(1)}': run npm install"),
|
|
23
|
-
(r"ModuleNotFoundError: No module named ['\"]([^'\"]+)['\"]", "dependency_error",
|
|
24
|
-
lambda m: f"Missing Python module '{m.group(1)}': run pip install"),
|
|
25
|
-
|
|
26
|
-
# File system errors
|
|
27
|
-
(r"(?:No such file or directory|ENOENT).*?['\"]([^'\"]+)['\"]", "file_not_found",
|
|
28
|
-
lambda m: f"File not found: verify path exists: {m.group(1)}"),
|
|
29
|
-
(r"(?:Permission denied|EACCES)", "permission_denied",
|
|
30
|
-
"Permission denied: check file permissions or run with appropriate access"),
|
|
31
|
-
(r"(?:EEXIST|File exists)", "file_exists",
|
|
32
|
-
"File already exists: remove existing file or use different path"),
|
|
33
|
-
|
|
34
|
-
# Compilation errors
|
|
35
|
-
(r"(?:SyntaxError|ParseError|Unexpected token)", "syntax_error",
|
|
36
|
-
"Syntax error: review code for syntax issues"),
|
|
37
|
-
(r"TypeError: .* is not a function", "type_error",
|
|
38
|
-
"Type error: verify function exists and is callable"),
|
|
39
|
-
(r"ReferenceError: (\\w+) is not defined", "reference_error",
|
|
40
|
-
lambda m: f"Undefined reference: '{m.group(1)}' not declared"),
|
|
41
|
-
(r"(?:compilation failed|build error|compile error)", "compilation_error",
|
|
42
|
-
"Compilation failed: review error output for specific issues"),
|
|
43
|
-
|
|
44
|
-
# Network errors
|
|
45
|
-
(r"(?:ECONNREFUSED|Connection refused|ETIMEDOUT)", "network_error",
|
|
46
|
-
"Network connection failed: verify service is running and accessible"),
|
|
47
|
-
(r"(?:getaddrinfo|DNS lookup failed|EAI_AGAIN)", "network_error",
|
|
48
|
-
"DNS resolution failed: check network connectivity"),
|
|
49
|
-
(r"(?:404|Not Found|HTTP.*?404)", "network_error",
|
|
50
|
-
"HTTP 404: verify URL endpoint exists"),
|
|
51
|
-
(r"(?:401|403|Unauthorized|Forbidden)", "auth_error",
|
|
52
|
-
"Authentication failed: verify credentials or permissions"),
|
|
53
|
-
|
|
54
|
-
# Git errors
|
|
55
|
-
(r"fatal: (?:not a git repository|Not a git repository)", "git_error",
|
|
56
|
-
"Not a git repository: initialize git or run from git root"),
|
|
57
|
-
(r"error: Your local changes.*?would be overwritten", "git_error",
|
|
58
|
-
"Git conflict: commit or stash local changes before merge/checkout"),
|
|
59
|
-
(r"fatal: remote.*?already exists", "git_error",
|
|
60
|
-
"Git remote exists: use different name or update existing remote"),
|
|
61
|
-
|
|
62
|
-
# Database errors
|
|
63
|
-
(r"(?:OperationalError|database is locked)", "database_error",
|
|
64
|
-
"Database locked: close other connections or retry"),
|
|
65
|
-
(r"(?:IntegrityError|UNIQUE constraint failed)", "database_error",
|
|
66
|
-
"Database integrity violation: check for duplicate entries"),
|
|
67
|
-
|
|
68
|
-
# Port/socket errors
|
|
69
|
-
(r"(?:EADDRINUSE|address already in use).*?port (\\d+)", "port_conflict",
|
|
70
|
-
lambda m: f"Port {m.group(1)} already in use: stop existing service or use different port"),
|
|
71
|
-
|
|
72
|
-
# Memory/resource errors
|
|
73
|
-
(r"(?:OutOfMemoryError|heap out of memory|Cannot allocate memory)", "resource_error",
|
|
74
|
-
"Out of memory: reduce memory usage or increase available memory"),
|
|
75
|
-
(r"(?:EMFILE|too many open files)", "resource_error",
|
|
76
|
-
"Too many open files: close unused file handles or increase limit"),
|
|
77
|
-
]
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
def normalize_error_text(text):
|
|
81
|
-
"""Remove noise from error text for better pattern matching."""
|
|
82
|
-
# Remove tool IDs (toolu_bdrk_xxxx)
|
|
83
|
-
text = re.sub(r"toolu_[a-zA-Z0-9_]+", "", text)
|
|
84
|
-
# Remove common timestamps
|
|
85
|
-
text = re.sub(r"\d{4}-\d{2}-\d{2}[T\s]\d{2}:\d{2}:\d{2}", "", text)
|
|
86
|
-
# Remove hex addresses/hashes
|
|
87
|
-
text = re.sub(r"0x[0-9a-fA-F]+", "", text)
|
|
88
|
-
# Remove UUIDs
|
|
89
|
-
text = re.sub(r"[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}", "", text)
|
|
90
|
-
# Normalize whitespace
|
|
91
|
-
text = re.sub(r"\s+", " ", text).strip()
|
|
92
|
-
return text
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
def extract_error_pattern(tool_name, tool_response, tool_input=None):
|
|
96
|
-
"""Extract actionable error pattern from tool response.
|
|
97
|
-
|
|
98
|
-
Returns (category, actionable_insight, pattern_key) or None if not actionable.
|
|
99
|
-
"""
|
|
100
|
-
# Normalize the error text
|
|
101
|
-
normalized = normalize_error_text(tool_response)
|
|
102
|
-
|
|
103
|
-
# Try to match known patterns
|
|
104
|
-
for pattern_re, category, insight_template in ERROR_PATTERNS:
|
|
105
|
-
match = re.search(pattern_re, tool_response, re.IGNORECASE | re.DOTALL)
|
|
106
|
-
if match:
|
|
107
|
-
# Generate insight (either static string or lambda)
|
|
108
|
-
if callable(insight_template):
|
|
109
|
-
insight = insight_template(match)
|
|
110
|
-
else:
|
|
111
|
-
insight = insight_template
|
|
112
|
-
|
|
113
|
-
# Create pattern key for deduplication (category + normalized pattern)
|
|
114
|
-
pattern_key = f"{category}:{normalized[:200]}"
|
|
115
|
-
return category, insight, pattern_key
|
|
116
|
-
|
|
117
|
-
# Check for generic exit codes without useful info
|
|
118
|
-
if re.search(r"Exit code \d+$", tool_response.strip()):
|
|
119
|
-
return None # Skip generic exit codes
|
|
120
|
-
|
|
121
|
-
# If error is too short or too long, skip
|
|
122
|
-
if len(normalized) < 10 or len(normalized) > 1000:
|
|
123
|
-
return None
|
|
124
|
-
|
|
125
|
-
return None
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
def find_similar_pattern(db, insight, category):
|
|
129
|
-
"""Check if similar error pattern exists in database.
|
|
130
|
-
Uses exact content match (fast, indexed) with FTS5 fallback.
|
|
131
|
-
Returns rule ID if found, None otherwise.
|
|
132
|
-
"""
|
|
133
|
-
try:
|
|
134
|
-
# 1. Exact content match (uses unique index)
|
|
135
|
-
result = db.execute(
|
|
136
|
-
"SELECT id FROM rules WHERE content = ? LIMIT 1",
|
|
137
|
-
(insight,)
|
|
138
|
-
).fetchone()
|
|
139
|
-
if result:
|
|
140
|
-
return result[0]
|
|
141
|
-
|
|
142
|
-
# 2. FTS5 fuzzy fallback - match on significant words
|
|
143
|
-
words = [w for w in insight.lower().split() if len(w) > 4 and w.isalnum()][:5]
|
|
144
|
-
if words:
|
|
145
|
-
fts_q = " AND ".join(words)
|
|
146
|
-
if fts_q:
|
|
147
|
-
result = db.execute("""
|
|
148
|
-
SELECT r.id FROM rules_fts
|
|
149
|
-
JOIN rules r ON rules_fts.rowid = r.id
|
|
150
|
-
WHERE rules_fts MATCH ? AND r.category = ?
|
|
151
|
-
LIMIT 1
|
|
152
|
-
""", (fts_q, category)).fetchone()
|
|
153
|
-
if result:
|
|
154
|
-
return result[0]
|
|
155
|
-
except Exception:
|
|
156
|
-
pass
|
|
157
|
-
return None
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
def main():
|
|
161
|
-
try:
|
|
162
|
-
data = json.loads(sys.stdin.read())
|
|
163
|
-
except Exception:
|
|
164
|
-
return
|
|
165
|
-
|
|
166
|
-
if not DB_PATH.exists():
|
|
167
|
-
return
|
|
168
|
-
|
|
169
|
-
try:
|
|
170
|
-
tool_name = data.get("tool_name", "unknown")
|
|
171
|
-
tool_response = str(data.get("tool_response", ""))
|
|
172
|
-
session_id = data.get("session_id", "")
|
|
173
|
-
workspace = data.get("source_workspace", "")
|
|
174
|
-
|
|
175
|
-
# Skip non-actionable tools
|
|
176
|
-
if tool_name in SKIP_TOOLS:
|
|
177
|
-
return
|
|
178
|
-
|
|
179
|
-
# Skip empty responses
|
|
180
|
-
if not tool_response or len(tool_response.strip()) < 5:
|
|
181
|
-
return
|
|
182
|
-
|
|
183
|
-
tool_input = data.get("tool_input", {})
|
|
184
|
-
normalized = normalize_error_text(tool_response)
|
|
185
|
-
|
|
186
|
-
# Path 1: Regex extraction (fast, <1ms cache for known patterns)
|
|
187
|
-
result = extract_error_pattern(tool_name, tool_response, tool_input)
|
|
188
|
-
extraction_method = 'regex'
|
|
189
|
-
quality_score = 0
|
|
190
|
-
|
|
191
|
-
if result:
|
|
192
|
-
category, insight, pattern_key = result
|
|
193
|
-
elif len(normalized) >= 30:
|
|
194
|
-
# Path 2: LLM quality-gated extraction (causal analysis + quality score)
|
|
195
|
-
try:
|
|
196
|
-
sys.path.insert(0, str(Path(__file__).parent.parent / "scripts"))
|
|
197
|
-
from llm_extract import extract_with_quality_gate
|
|
198
|
-
llm_rule, score = extract_with_quality_gate(
|
|
199
|
-
tool_name, tool_input, tool_response, session_id=session_id)
|
|
200
|
-
if llm_rule:
|
|
201
|
-
category = llm_rule['category']
|
|
202
|
-
insight = llm_rule['content']
|
|
203
|
-
pattern_key = f"llm_v2:{category}:{normalized[:150]}"
|
|
204
|
-
extraction_method = 'llm_v2'
|
|
205
|
-
quality_score = score
|
|
206
|
-
else:
|
|
207
|
-
return # Below quality threshold or LLM failed
|
|
208
|
-
except Exception:
|
|
209
|
-
return
|
|
210
|
-
else:
|
|
211
|
-
return # Not actionable
|
|
212
|
-
|
|
213
|
-
# Store pattern with deduplication
|
|
214
|
-
db = sqlite3.connect(str(DB_PATH))
|
|
215
|
-
db.execute("PRAGMA journal_mode=WAL")
|
|
216
|
-
db.execute("PRAGMA busy_timeout=3000")
|
|
217
|
-
|
|
218
|
-
# Check for existing similar pattern
|
|
219
|
-
existing_id = find_similar_pattern(db, insight, category)
|
|
220
|
-
|
|
221
|
-
if existing_id:
|
|
222
|
-
# Increment occurrence count
|
|
223
|
-
db.execute("""
|
|
224
|
-
UPDATE rules SET
|
|
225
|
-
occurrences = occurrences + 1,
|
|
226
|
-
last_seen = datetime('now')
|
|
227
|
-
WHERE id = ?
|
|
228
|
-
""", (existing_id,))
|
|
229
|
-
else:
|
|
230
|
-
# Create new error pattern
|
|
231
|
-
evidence_json = json.dumps({
|
|
232
|
-
"pattern_key": pattern_key,
|
|
233
|
-
"tool": tool_name,
|
|
234
|
-
"example_response": tool_response[:300]
|
|
235
|
-
})
|
|
236
|
-
|
|
237
|
-
db.execute("""
|
|
238
|
-
INSERT INTO rules (
|
|
239
|
-
content, category, confidence, occurrences,
|
|
240
|
-
maturity, harmful_count, source_session, source_workspace,
|
|
241
|
-
evidence, quality_score, extraction_method,
|
|
242
|
-
created_at, last_seen
|
|
243
|
-
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, datetime('now'), datetime('now'))
|
|
244
|
-
""", (insight, category, 0.5, 1, 'candidate', 0, session_id, workspace,
|
|
245
|
-
evidence_json, quality_score, extraction_method))
|
|
246
|
-
|
|
247
|
-
# Auto-assign topic (Phase 4F)
|
|
248
|
-
new_rule_id = db.execute("SELECT last_insert_rowid()").fetchone()[0]
|
|
249
|
-
try:
|
|
250
|
-
sys.path.insert(0, str(Path(__file__).parent.parent / "scripts"))
|
|
251
|
-
from topic_engine import detect_topic_for_rule
|
|
252
|
-
topic = detect_topic_for_rule(insight, category)
|
|
253
|
-
topic_row = db.execute(
|
|
254
|
-
"SELECT id FROM topics WHERE name = ?", (topic,)
|
|
255
|
-
).fetchone()
|
|
256
|
-
if topic_row:
|
|
257
|
-
db.execute(
|
|
258
|
-
"INSERT OR IGNORE INTO rule_topics (rule_id, topic_id) VALUES (?, ?)",
|
|
259
|
-
(new_rule_id, topic_row[0])
|
|
260
|
-
)
|
|
261
|
-
db.execute(
|
|
262
|
-
"UPDATE topics SET rule_count = rule_count + 1 WHERE id = ?",
|
|
263
|
-
(topic_row[0],)
|
|
264
|
-
)
|
|
265
|
-
except Exception:
|
|
266
|
-
pass # Topic assignment is best-effort
|
|
267
|
-
|
|
268
|
-
# Log event
|
|
269
|
-
db.execute(
|
|
270
|
-
"INSERT INTO events (event_type, metadata) VALUES (?, ?)",
|
|
271
|
-
("tool_failure_pattern", json.dumps({
|
|
272
|
-
"tool": tool_name,
|
|
273
|
-
"category": category,
|
|
274
|
-
"pattern_key": pattern_key[:100]
|
|
275
|
-
}))
|
|
276
|
-
)
|
|
277
|
-
|
|
278
|
-
db.commit()
|
|
279
|
-
db.close()
|
|
280
|
-
|
|
281
|
-
# Mark TF-IDF as dirty
|
|
282
|
-
db2 = sqlite3.connect(str(DB_PATH))
|
|
283
|
-
db2.execute("UPDATE meta SET value = '1' WHERE key = 'tfidf_dirty'")
|
|
284
|
-
db2.commit()
|
|
285
|
-
db2.close()
|
|
286
|
-
|
|
287
|
-
except Exception:
|
|
288
|
-
pass # Hooks must NEVER crash
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
if __name__ == "__main__":
|
|
292
|
-
main()
|
|
@@ -1,130 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env python3
|
|
2
|
-
"""Capy Cortex Hook: PostToolUse - Success credit.
|
|
3
|
-
When tools succeed, credit recently surfaced rules to close the feedback loop.
|
|
4
|
-
This is the MISSING PIECE that makes Cortex actually learn from success."""
|
|
5
|
-
|
|
6
|
-
import json
|
|
7
|
-
import sys
|
|
8
|
-
import sqlite3
|
|
9
|
-
from pathlib import Path
|
|
10
|
-
|
|
11
|
-
DB_PATH = Path(__file__).parent.parent / "cortex.db"
|
|
12
|
-
|
|
13
|
-
# Tools where success is meaningful (skip Read, Glob, Grep - they always "succeed")
|
|
14
|
-
CREDIT_TOOLS = {"Bash", "Write", "Edit", "NotebookEdit"}
|
|
15
|
-
|
|
16
|
-
# Skip tools that are internal/meta
|
|
17
|
-
SKIP_TOOLS = {"TaskOutput", "TodoWrite", "SendMessage", "AskUserQuestion"}
|
|
18
|
-
|
|
19
|
-
# Confidence boost per successful credit (small, accumulates over time)
|
|
20
|
-
CONFIDENCE_BOOST = 0.02
|
|
21
|
-
MAX_CONFIDENCE = 0.95
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
def is_success(tool_name, tool_response):
|
|
25
|
-
"""Determine if a tool response indicates success."""
|
|
26
|
-
if not tool_response:
|
|
27
|
-
return False
|
|
28
|
-
|
|
29
|
-
response_str = str(tool_response)
|
|
30
|
-
|
|
31
|
-
# Bash: check for error indicators
|
|
32
|
-
if tool_name == "Bash":
|
|
33
|
-
# Explicit failure indicators
|
|
34
|
-
fail_indicators = [
|
|
35
|
-
"Exit code", "Error:", "error:", "ENOENT", "EACCES",
|
|
36
|
-
"Permission denied", "command not found", "No such file",
|
|
37
|
-
"npm ERR", "ModuleNotFoundError", "SyntaxError",
|
|
38
|
-
"TypeError", "ReferenceError", "fatal:",
|
|
39
|
-
]
|
|
40
|
-
for indicator in fail_indicators:
|
|
41
|
-
if indicator in response_str:
|
|
42
|
-
return False
|
|
43
|
-
return True
|
|
44
|
-
|
|
45
|
-
# Write/Edit: success if no error
|
|
46
|
-
if tool_name in ("Write", "Edit", "NotebookEdit"):
|
|
47
|
-
if "error" in response_str.lower() or "failed" in response_str.lower():
|
|
48
|
-
return False
|
|
49
|
-
return True
|
|
50
|
-
|
|
51
|
-
return True
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
def main():
|
|
55
|
-
try:
|
|
56
|
-
data = json.loads(sys.stdin.read())
|
|
57
|
-
except Exception:
|
|
58
|
-
return
|
|
59
|
-
|
|
60
|
-
if not DB_PATH.exists():
|
|
61
|
-
return
|
|
62
|
-
|
|
63
|
-
try:
|
|
64
|
-
tool_name = data.get("tool_name", "unknown")
|
|
65
|
-
tool_response = str(data.get("tool_response", ""))
|
|
66
|
-
session_id = data.get("session_id", "")
|
|
67
|
-
|
|
68
|
-
# Skip non-meaningful tools
|
|
69
|
-
if tool_name in SKIP_TOOLS:
|
|
70
|
-
return
|
|
71
|
-
if tool_name not in CREDIT_TOOLS:
|
|
72
|
-
return
|
|
73
|
-
|
|
74
|
-
# Only credit on success
|
|
75
|
-
if not is_success(tool_name, tool_response):
|
|
76
|
-
return
|
|
77
|
-
|
|
78
|
-
db = sqlite3.connect(str(DB_PATH))
|
|
79
|
-
db.execute("PRAGMA journal_mode=WAL")
|
|
80
|
-
db.execute("PRAGMA busy_timeout=2000")
|
|
81
|
-
|
|
82
|
-
# Find recently surfaced rules for this session (not yet credited)
|
|
83
|
-
surfaced = db.execute("""
|
|
84
|
-
SELECT id, rule_id FROM surfaced_rules
|
|
85
|
-
WHERE session_id = ? AND credited = 0
|
|
86
|
-
ORDER BY surfaced_at DESC LIMIT 10
|
|
87
|
-
""", (session_id,)).fetchall()
|
|
88
|
-
|
|
89
|
-
if not surfaced:
|
|
90
|
-
db.close()
|
|
91
|
-
return
|
|
92
|
-
|
|
93
|
-
credited_count = 0
|
|
94
|
-
for surf_id, rule_id in surfaced:
|
|
95
|
-
# Increment helpful_count and boost confidence
|
|
96
|
-
db.execute("""
|
|
97
|
-
UPDATE rules SET
|
|
98
|
-
helpful_count = helpful_count + 1,
|
|
99
|
-
confidence = MIN(confidence + ?, ?),
|
|
100
|
-
last_seen = datetime('now')
|
|
101
|
-
WHERE id = ? AND maturity != 'deprecated'
|
|
102
|
-
""", (CONFIDENCE_BOOST, MAX_CONFIDENCE, rule_id))
|
|
103
|
-
|
|
104
|
-
# Mark as credited so we don't double-count
|
|
105
|
-
db.execute(
|
|
106
|
-
"UPDATE surfaced_rules SET credited = 1 WHERE id = ?",
|
|
107
|
-
(surf_id,)
|
|
108
|
-
)
|
|
109
|
-
credited_count += 1
|
|
110
|
-
|
|
111
|
-
if credited_count > 0:
|
|
112
|
-
# Log the credit event
|
|
113
|
-
db.execute(
|
|
114
|
-
"INSERT INTO events (event_type, metadata) VALUES (?, ?)",
|
|
115
|
-
("success_credit", json.dumps({
|
|
116
|
-
"session_id": session_id,
|
|
117
|
-
"tool": tool_name,
|
|
118
|
-
"rules_credited": credited_count,
|
|
119
|
-
}))
|
|
120
|
-
)
|
|
121
|
-
|
|
122
|
-
db.commit()
|
|
123
|
-
db.close()
|
|
124
|
-
|
|
125
|
-
except Exception:
|
|
126
|
-
pass # Hooks must NEVER crash
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
if __name__ == "__main__":
|
|
130
|
-
main()
|