monomind 1.6.0 → 1.6.1

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 (1234) hide show
  1. package/bin/monomind.js +50 -0
  2. package/package.json +10 -69
  3. package/.claude/agents/academic/academic-anthropologist.md +0 -126
  4. package/.claude/agents/academic/academic-geographer.md +0 -128
  5. package/.claude/agents/academic/academic-historian.md +0 -124
  6. package/.claude/agents/academic/academic-narratologist.md +0 -119
  7. package/.claude/agents/academic/academic-psychologist.md +0 -119
  8. package/.claude/agents/analysis/analyze-code-quality.md +0 -58
  9. package/.claude/agents/analysis/code-analyzer.md +0 -189
  10. package/.claude/agents/analysis/code-review/analyze-code-quality.md +0 -58
  11. package/.claude/agents/architecture/system-design/arch-system-design.md +0 -54
  12. package/.claude/agents/consensus/crdt-synchronizer.md +0 -977
  13. package/.claude/agents/consensus/performance-benchmarker.md +0 -831
  14. package/.claude/agents/consensus/quorum-manager.md +0 -803
  15. package/.claude/agents/consensus/security-manager.md +0 -602
  16. package/.claude/agents/core/coder.md +0 -262
  17. package/.claude/agents/core/planner.md +0 -170
  18. package/.claude/agents/core/researcher.md +0 -192
  19. package/.claude/agents/core/reviewer.md +0 -327
  20. package/.claude/agents/core/tester.md +0 -318
  21. package/.claude/agents/data/ml/data-ml-model.md +0 -76
  22. package/.claude/agents/design/design-brand-guardian.md +0 -323
  23. package/.claude/agents/design/design-image-prompt-engineer.md +0 -237
  24. package/.claude/agents/design/design-inclusive-visuals-specialist.md +0 -72
  25. package/.claude/agents/design/design-ui-designer.md +0 -384
  26. package/.claude/agents/design/design-ux-architect.md +0 -470
  27. package/.claude/agents/design/design-ux-researcher.md +0 -330
  28. package/.claude/agents/design/design-visual-storyteller.md +0 -150
  29. package/.claude/agents/design/design-whimsy-injector.md +0 -439
  30. package/.claude/agents/development/dev-backend-api.md +0 -178
  31. package/.claude/agents/devops/ci-cd/ops-cicd-github.md +0 -52
  32. package/.claude/agents/documentation/api-docs/docs-api-openapi.md +0 -63
  33. package/.claude/agents/engineering/engineering-ai-data-remediation-engineer.md +0 -212
  34. package/.claude/agents/engineering/engineering-ai-engineer.md +0 -165
  35. package/.claude/agents/engineering/engineering-autonomous-optimization-architect.md +0 -108
  36. package/.claude/agents/engineering/engineering-backend-architect.md +0 -254
  37. package/.claude/agents/engineering/engineering-code-reviewer.md +0 -95
  38. package/.claude/agents/engineering/engineering-data-engineer.md +0 -307
  39. package/.claude/agents/engineering/engineering-database-optimizer.md +0 -200
  40. package/.claude/agents/engineering/engineering-devops-automator.md +0 -430
  41. package/.claude/agents/engineering/engineering-embedded-firmware-engineer.md +0 -174
  42. package/.claude/agents/engineering/engineering-feishu-integration-developer.md +0 -607
  43. package/.claude/agents/engineering/engineering-frontend-developer.md +0 -249
  44. package/.claude/agents/engineering/engineering-git-workflow-master.md +0 -108
  45. package/.claude/agents/engineering/engineering-incident-response-commander.md +0 -482
  46. package/.claude/agents/engineering/engineering-mobile-app-builder.md +0 -499
  47. package/.claude/agents/engineering/engineering-rapid-prototyper.md +0 -463
  48. package/.claude/agents/engineering/engineering-security-engineer.md +0 -303
  49. package/.claude/agents/engineering/engineering-senior-developer.md +0 -195
  50. package/.claude/agents/engineering/engineering-software-architect.md +0 -100
  51. package/.claude/agents/engineering/engineering-solidity-smart-contract-engineer.md +0 -528
  52. package/.claude/agents/engineering/engineering-sre.md +0 -114
  53. package/.claude/agents/engineering/engineering-technical-writer.md +0 -412
  54. package/.claude/agents/engineering/engineering-threat-detection-engineer.md +0 -540
  55. package/.claude/agents/engineering/engineering-wechat-mini-program-developer.md +0 -351
  56. package/.claude/agents/game-development/blender/blender-addon-engineer.md +0 -235
  57. package/.claude/agents/game-development/game-audio-engineer.md +0 -265
  58. package/.claude/agents/game-development/game-designer.md +0 -168
  59. package/.claude/agents/game-development/godot/godot-gameplay-scripter.md +0 -335
  60. package/.claude/agents/game-development/godot/godot-multiplayer-engineer.md +0 -298
  61. package/.claude/agents/game-development/godot/godot-shader-developer.md +0 -267
  62. package/.claude/agents/game-development/level-designer.md +0 -209
  63. package/.claude/agents/game-development/narrative-designer.md +0 -244
  64. package/.claude/agents/game-development/roblox-studio/roblox-avatar-creator.md +0 -298
  65. package/.claude/agents/game-development/roblox-studio/roblox-experience-designer.md +0 -306
  66. package/.claude/agents/game-development/roblox-studio/roblox-systems-scripter.md +0 -326
  67. package/.claude/agents/game-development/technical-artist.md +0 -230
  68. package/.claude/agents/game-development/unity/unity-architect.md +0 -272
  69. package/.claude/agents/game-development/unity/unity-editor-tool-developer.md +0 -311
  70. package/.claude/agents/game-development/unity/unity-multiplayer-engineer.md +0 -322
  71. package/.claude/agents/game-development/unity/unity-shader-graph-artist.md +0 -270
  72. package/.claude/agents/game-development/unreal-engine/unreal-multiplayer-architect.md +0 -314
  73. package/.claude/agents/game-development/unreal-engine/unreal-systems-engineer.md +0 -311
  74. package/.claude/agents/game-development/unreal-engine/unreal-technical-artist.md +0 -257
  75. package/.claude/agents/game-development/unreal-engine/unreal-world-builder.md +0 -274
  76. package/.claude/agents/github/code-review-swarm.md +0 -557
  77. package/.claude/agents/github/github-modes.md +0 -154
  78. package/.claude/agents/github/issue-tracker.md +0 -299
  79. package/.claude/agents/github/multi-repo-swarm.md +0 -525
  80. package/.claude/agents/github/pr-manager.md +0 -163
  81. package/.claude/agents/github/project-board-sync.md +0 -478
  82. package/.claude/agents/github/release-manager.md +0 -352
  83. package/.claude/agents/github/release-swarm.md +0 -597
  84. package/.claude/agents/github/repo-architect.md +0 -378
  85. package/.claude/agents/github/swarm-issue.md +0 -548
  86. package/.claude/agents/github/swarm-pr.md +0 -427
  87. package/.claude/agents/github/sync-coordinator.md +0 -423
  88. package/.claude/agents/github/workflow-automation.md +0 -640
  89. package/.claude/agents/goal/agent.md +0 -804
  90. package/.claude/agents/goal/code-goal-planner.md +0 -445
  91. package/.claude/agents/goal/goal-planner.md +0 -168
  92. package/.claude/agents/hive-mind/collective-intelligence-coordinator.md +0 -129
  93. package/.claude/agents/hive-mind/queen-coordinator.md +0 -202
  94. package/.claude/agents/hive-mind/scout-explorer.md +0 -241
  95. package/.claude/agents/hive-mind/swarm-memory-manager.md +0 -192
  96. package/.claude/agents/hive-mind/worker-specialist.md +0 -216
  97. package/.claude/agents/marketing/marketing-ai-citation-strategist.md +0 -171
  98. package/.claude/agents/marketing/marketing-app-store-optimizer.md +0 -322
  99. package/.claude/agents/marketing/marketing-baidu-seo-specialist.md +0 -227
  100. package/.claude/agents/marketing/marketing-bilibili-content-strategist.md +0 -200
  101. package/.claude/agents/marketing/marketing-book-co-author.md +0 -111
  102. package/.claude/agents/marketing/marketing-carousel-growth-engine.md +0 -200
  103. package/.claude/agents/marketing/marketing-china-ecommerce-operator.md +0 -284
  104. package/.claude/agents/marketing/marketing-content-creator.md +0 -54
  105. package/.claude/agents/marketing/marketing-cross-border-ecommerce.md +0 -260
  106. package/.claude/agents/marketing/marketing-douyin-strategist.md +0 -150
  107. package/.claude/agents/marketing/marketing-growth-hacker.md +0 -54
  108. package/.claude/agents/marketing/marketing-instagram-curator.md +0 -114
  109. package/.claude/agents/marketing/marketing-kuaishou-strategist.md +0 -224
  110. package/.claude/agents/marketing/marketing-linkedin-content-creator.md +0 -215
  111. package/.claude/agents/marketing/marketing-livestream-commerce-coach.md +0 -306
  112. package/.claude/agents/marketing/marketing-podcast-strategist.md +0 -278
  113. package/.claude/agents/marketing/marketing-private-domain-operator.md +0 -309
  114. package/.claude/agents/marketing/marketing-reddit-community-builder.md +0 -124
  115. package/.claude/agents/marketing/marketing-seo-specialist.md +0 -279
  116. package/.claude/agents/marketing/marketing-short-video-editing-coach.md +0 -413
  117. package/.claude/agents/marketing/marketing-social-media-strategist.md +0 -125
  118. package/.claude/agents/marketing/marketing-tiktok-strategist.md +0 -126
  119. package/.claude/agents/marketing/marketing-twitter-engager.md +0 -127
  120. package/.claude/agents/marketing/marketing-wechat-official-account.md +0 -146
  121. package/.claude/agents/marketing/marketing-weibo-strategist.md +0 -241
  122. package/.claude/agents/marketing/marketing-xiaohongshu-specialist.md +0 -139
  123. package/.claude/agents/marketing/marketing-zhihu-strategist.md +0 -163
  124. package/.claude/agents/neural/safla-neural.md +0 -74
  125. package/.claude/agents/optimization/benchmark-suite.md +0 -663
  126. package/.claude/agents/optimization/load-balancer.md +0 -429
  127. package/.claude/agents/optimization/performance-monitor.md +0 -670
  128. package/.claude/agents/optimization/resource-allocator.md +0 -672
  129. package/.claude/agents/optimization/topology-optimizer.md +0 -806
  130. package/.claude/agents/paid-media/paid-media-auditor.md +0 -71
  131. package/.claude/agents/paid-media/paid-media-creative-strategist.md +0 -71
  132. package/.claude/agents/paid-media/paid-media-paid-social-strategist.md +0 -71
  133. package/.claude/agents/paid-media/paid-media-ppc-strategist.md +0 -71
  134. package/.claude/agents/paid-media/paid-media-programmatic-buyer.md +0 -71
  135. package/.claude/agents/paid-media/paid-media-search-query-analyst.md +0 -71
  136. package/.claude/agents/paid-media/paid-media-tracking-specialist.md +0 -71
  137. package/.claude/agents/payments/agentic-payments.md +0 -126
  138. package/.claude/agents/product/product-behavioral-nudge-engine.md +0 -81
  139. package/.claude/agents/product/product-feedback-synthesizer.md +0 -119
  140. package/.claude/agents/product/product-manager.md +0 -469
  141. package/.claude/agents/product/product-sprint-prioritizer.md +0 -154
  142. package/.claude/agents/product/product-trend-researcher.md +0 -159
  143. package/.claude/agents/project-management/project-management-experiment-tracker.md +0 -199
  144. package/.claude/agents/project-management/project-management-jira-workflow-steward.md +0 -231
  145. package/.claude/agents/project-management/project-management-project-shepherd.md +0 -195
  146. package/.claude/agents/project-management/project-management-studio-operations.md +0 -201
  147. package/.claude/agents/project-management/project-management-studio-producer.md +0 -204
  148. package/.claude/agents/project-management/project-manager-senior.md +0 -136
  149. package/.claude/agents/reasoning/agent.md +0 -804
  150. package/.claude/agents/reasoning/goal-planner.md +0 -73
  151. package/.claude/agents/sales/sales-account-strategist.md +0 -228
  152. package/.claude/agents/sales/sales-coach.md +0 -272
  153. package/.claude/agents/sales/sales-deal-strategist.md +0 -181
  154. package/.claude/agents/sales/sales-discovery-coach.md +0 -226
  155. package/.claude/agents/sales/sales-engineer.md +0 -183
  156. package/.claude/agents/sales/sales-outbound-strategist.md +0 -202
  157. package/.claude/agents/sales/sales-pipeline-analyst.md +0 -268
  158. package/.claude/agents/sales/sales-proposal-strategist.md +0 -218
  159. package/.claude/agents/schemas/architecture-output.json +0 -43
  160. package/.claude/agents/schemas/code-review-output.json +0 -28
  161. package/.claude/agents/schemas/generic-task-input.json +0 -12
  162. package/.claude/agents/schemas/implementation-output.json +0 -18
  163. package/.claude/agents/schemas/research-output.json +0 -31
  164. package/.claude/agents/schemas/security-audit-output.json +0 -29
  165. package/.claude/agents/schemas/test-report-output.json +0 -29
  166. package/.claude/agents/sona/sona-learning-optimizer.md +0 -65
  167. package/.claude/agents/sparc/architecture.md +0 -453
  168. package/.claude/agents/sparc/pseudocode.md +0 -299
  169. package/.claude/agents/sparc/refinement.md +0 -504
  170. package/.claude/agents/sparc/specification.md +0 -258
  171. package/.claude/agents/spatial-computing/macos-spatial-metal-engineer.md +0 -338
  172. package/.claude/agents/spatial-computing/terminal-integration-specialist.md +0 -71
  173. package/.claude/agents/spatial-computing/visionos-spatial-engineer.md +0 -55
  174. package/.claude/agents/specialized/accounts-payable-agent.md +0 -186
  175. package/.claude/agents/specialized/agentic-identity-trust.md +0 -388
  176. package/.claude/agents/specialized/agents-orchestrator.md +0 -368
  177. package/.claude/agents/specialized/automation-governance-architect.md +0 -217
  178. package/.claude/agents/specialized/blockchain-security-auditor.md +0 -497
  179. package/.claude/agents/specialized/compliance-auditor.md +0 -159
  180. package/.claude/agents/specialized/corporate-training-designer.md +0 -193
  181. package/.claude/agents/specialized/data-consolidation-agent.md +0 -61
  182. package/.claude/agents/specialized/government-digital-presales-consultant.md +0 -364
  183. package/.claude/agents/specialized/healthcare-marketing-compliance.md +0 -396
  184. package/.claude/agents/specialized/identity-graph-operator.md +0 -261
  185. package/.claude/agents/specialized/lsp-index-engineer.md +0 -315
  186. package/.claude/agents/specialized/mobile/spec-mobile-react-native.md +0 -89
  187. package/.claude/agents/specialized/recruitment-specialist.md +0 -510
  188. package/.claude/agents/specialized/report-distribution-agent.md +0 -66
  189. package/.claude/agents/specialized/sales-data-extraction-agent.md +0 -68
  190. package/.claude/agents/specialized/specialized-cultural-intelligence-strategist.md +0 -89
  191. package/.claude/agents/specialized/specialized-developer-advocate.md +0 -318
  192. package/.claude/agents/specialized/specialized-document-generator.md +0 -56
  193. package/.claude/agents/specialized/specialized-french-consulting-market.md +0 -193
  194. package/.claude/agents/specialized/specialized-korean-business-navigator.md +0 -217
  195. package/.claude/agents/specialized/specialized-mcp-builder.md +0 -64
  196. package/.claude/agents/specialized/specialized-model-qa.md +0 -489
  197. package/.claude/agents/specialized/specialized-salesforce-architect.md +0 -181
  198. package/.claude/agents/specialized/specialized-workflow-architect.md +0 -598
  199. package/.claude/agents/specialized/study-abroad-advisor.md +0 -283
  200. package/.claude/agents/specialized/supply-chain-strategist.md +0 -583
  201. package/.claude/agents/specialized/zk-steward.md +0 -212
  202. package/.claude/agents/sublinear/consensus-coordinator.md +0 -333
  203. package/.claude/agents/sublinear/matrix-optimizer.md +0 -180
  204. package/.claude/agents/sublinear/pagerank-analyzer.md +0 -295
  205. package/.claude/agents/sublinear/performance-optimizer.md +0 -363
  206. package/.claude/agents/sublinear/trading-predictor.md +0 -242
  207. package/.claude/agents/support/support-analytics-reporter.md +0 -366
  208. package/.claude/agents/support/support-executive-summary-generator.md +0 -213
  209. package/.claude/agents/support/support-finance-tracker.md +0 -443
  210. package/.claude/agents/support/support-infrastructure-maintainer.md +0 -619
  211. package/.claude/agents/support/support-legal-compliance-checker.md +0 -589
  212. package/.claude/agents/support/support-support-responder.md +0 -586
  213. package/.claude/agents/swarm/adaptive-coordinator.md +0 -364
  214. package/.claude/agents/swarm/hierarchical-coordinator.md +0 -318
  215. package/.claude/agents/swarm/mesh-coordinator.md +0 -363
  216. package/.claude/agents/templates/automation-smart-agent.md +0 -185
  217. package/.claude/agents/templates/coordinator-swarm-init.md +0 -83
  218. package/.claude/agents/templates/github-pr-manager.md +0 -155
  219. package/.claude/agents/templates/implementer-sparc-coder.md +0 -231
  220. package/.claude/agents/templates/memory-coordinator.md +0 -163
  221. package/.claude/agents/templates/migration-plan.md +0 -724
  222. package/.claude/agents/templates/orchestrator-task.md +0 -120
  223. package/.claude/agents/templates/performance-analyzer.md +0 -179
  224. package/.claude/agents/templates/sparc-coordinator.md +0 -163
  225. package/.claude/agents/testing/production-validator.md +0 -374
  226. package/.claude/agents/testing/tdd-london-swarm.md +0 -241
  227. package/.claude/agents/testing/testing-accessibility-auditor.md +0 -322
  228. package/.claude/agents/testing/testing-api-tester.md +0 -307
  229. package/.claude/agents/testing/testing-evidence-collector.md +0 -211
  230. package/.claude/agents/testing/testing-performance-benchmarker.md +0 -269
  231. package/.claude/agents/testing/testing-reality-checker.md +0 -237
  232. package/.claude/agents/testing/testing-test-results-analyzer.md +0 -306
  233. package/.claude/agents/testing/testing-tool-evaluator.md +0 -395
  234. package/.claude/agents/testing/testing-workflow-optimizer.md +0 -451
  235. package/.claude/agents/v3/integration-architect.md +0 -338
  236. package/.claude/agents/v3/memory-specialist.md +0 -298
  237. package/.claude/agents/v3/performance-engineer.md +0 -387
  238. package/.claude/agents/v3/queen-coordinator.md +0 -67
  239. package/.claude/agents/v3/security-architect.md +0 -154
  240. package/.claude/checkpoints/1767754460.json +0 -8
  241. package/.claude/commands/agents/README.md +0 -10
  242. package/.claude/commands/agents/agent-capabilities.md +0 -21
  243. package/.claude/commands/agents/agent-coordination.md +0 -28
  244. package/.claude/commands/agents/agent-spawning.md +0 -28
  245. package/.claude/commands/agents/agent-types.md +0 -26
  246. package/.claude/commands/analysis/COMMAND_COMPLIANCE_REPORT.md +0 -54
  247. package/.claude/commands/analysis/README.md +0 -9
  248. package/.claude/commands/analysis/bottleneck-detect.md +0 -162
  249. package/.claude/commands/analysis/performance-bottlenecks.md +0 -59
  250. package/.claude/commands/analysis/performance-report.md +0 -25
  251. package/.claude/commands/analysis/token-efficiency.md +0 -45
  252. package/.claude/commands/analysis/token-usage.md +0 -25
  253. package/.claude/commands/automation/README.md +0 -9
  254. package/.claude/commands/automation/auto-agent.md +0 -122
  255. package/.claude/commands/automation/self-healing.md +0 -106
  256. package/.claude/commands/automation/session-memory.md +0 -90
  257. package/.claude/commands/automation/smart-agents.md +0 -73
  258. package/.claude/commands/automation/smart-spawn.md +0 -25
  259. package/.claude/commands/automation/workflow-select.md +0 -25
  260. package/.claude/commands/browse.md +0 -27
  261. package/.claude/commands/coordination/README.md +0 -9
  262. package/.claude/commands/coordination/agent-spawn.md +0 -25
  263. package/.claude/commands/coordination/init.md +0 -44
  264. package/.claude/commands/coordination/orchestrate.md +0 -43
  265. package/.claude/commands/coordination/spawn.md +0 -45
  266. package/.claude/commands/coordination/swarm-init.md +0 -85
  267. package/.claude/commands/coordination/task-orchestrate.md +0 -25
  268. package/.claude/commands/github/README.md +0 -11
  269. package/.claude/commands/github/code-review-swarm.md +0 -550
  270. package/.claude/commands/github/code-review.md +0 -25
  271. package/.claude/commands/github/github-modes.md +0 -147
  272. package/.claude/commands/github/github-swarm.md +0 -121
  273. package/.claude/commands/github/issue-tracker.md +0 -292
  274. package/.claude/commands/github/issue-triage.md +0 -25
  275. package/.claude/commands/github/multi-repo-swarm.md +0 -519
  276. package/.claude/commands/github/pr-enhance.md +0 -26
  277. package/.claude/commands/github/pr-manager.md +0 -170
  278. package/.claude/commands/github/project-board-sync.md +0 -471
  279. package/.claude/commands/github/release-manager.md +0 -355
  280. package/.claude/commands/github/release-swarm.md +0 -590
  281. package/.claude/commands/github/repo-analyze.md +0 -25
  282. package/.claude/commands/github/repo-architect.md +0 -381
  283. package/.claude/commands/github/swarm-issue.md +0 -482
  284. package/.claude/commands/github/swarm-pr.md +0 -310
  285. package/.claude/commands/github/sync-coordinator.md +0 -301
  286. package/.claude/commands/github/workflow-automation.md +0 -468
  287. package/.claude/commands/hive-mind/README.md +0 -17
  288. package/.claude/commands/hive-mind/hive-mind-consensus.md +0 -8
  289. package/.claude/commands/hive-mind/hive-mind-init.md +0 -18
  290. package/.claude/commands/hive-mind/hive-mind-memory.md +0 -8
  291. package/.claude/commands/hive-mind/hive-mind-metrics.md +0 -8
  292. package/.claude/commands/hive-mind/hive-mind-resume.md +0 -8
  293. package/.claude/commands/hive-mind/hive-mind-sessions.md +0 -8
  294. package/.claude/commands/hive-mind/hive-mind-spawn.md +0 -21
  295. package/.claude/commands/hive-mind/hive-mind-status.md +0 -8
  296. package/.claude/commands/hive-mind/hive-mind-stop.md +0 -8
  297. package/.claude/commands/hive-mind/hive-mind-wizard.md +0 -8
  298. package/.claude/commands/hive-mind/hive-mind.md +0 -27
  299. package/.claude/commands/hooks/README.md +0 -11
  300. package/.claude/commands/hooks/overview.md +0 -58
  301. package/.claude/commands/hooks/post-edit.md +0 -117
  302. package/.claude/commands/hooks/post-task.md +0 -112
  303. package/.claude/commands/hooks/pre-edit.md +0 -113
  304. package/.claude/commands/hooks/pre-task.md +0 -111
  305. package/.claude/commands/hooks/session-end.md +0 -118
  306. package/.claude/commands/hooks/setup.md +0 -103
  307. package/.claude/commands/list-agents.md +0 -17
  308. package/.claude/commands/mastermind.md +0 -121
  309. package/.claude/commands/memory/README.md +0 -9
  310. package/.claude/commands/memory/memory-persist.md +0 -25
  311. package/.claude/commands/memory/memory-search.md +0 -25
  312. package/.claude/commands/memory/memory-usage.md +0 -25
  313. package/.claude/commands/memory/neural.md +0 -47
  314. package/.claude/commands/metrics.md +0 -11
  315. package/.claude/commands/monitoring/README.md +0 -9
  316. package/.claude/commands/monitoring/agent-metrics.md +0 -25
  317. package/.claude/commands/monitoring/agents.md +0 -44
  318. package/.claude/commands/monitoring/real-time-view.md +0 -25
  319. package/.claude/commands/monitoring/status.md +0 -46
  320. package/.claude/commands/monitoring/swarm-monitor.md +0 -25
  321. package/.claude/commands/monobrain-help.md +0 -103
  322. package/.claude/commands/monobrain-memory.md +0 -107
  323. package/.claude/commands/monobrain-swarm.md +0 -205
  324. package/.claude/commands/monomind-do.md +0 -276
  325. package/.claude/commands/monomind-idea.md +0 -269
  326. package/.claude/commands/monomind-repeat.md +0 -95
  327. package/.claude/commands/optimization/README.md +0 -9
  328. package/.claude/commands/optimization/auto-topology.md +0 -62
  329. package/.claude/commands/optimization/cache-manage.md +0 -25
  330. package/.claude/commands/optimization/parallel-execution.md +0 -50
  331. package/.claude/commands/optimization/topology-optimize.md +0 -25
  332. package/.claude/commands/pair/README.md +0 -261
  333. package/.claude/commands/pair/commands.md +0 -546
  334. package/.claude/commands/pair/config.md +0 -510
  335. package/.claude/commands/pair/examples.md +0 -512
  336. package/.claude/commands/pair/modes.md +0 -348
  337. package/.claude/commands/pair/session.md +0 -407
  338. package/.claude/commands/pair/start.md +0 -209
  339. package/.claude/commands/sparc/analyzer.md +0 -52
  340. package/.claude/commands/sparc/architect.md +0 -53
  341. package/.claude/commands/sparc/ask.md +0 -97
  342. package/.claude/commands/sparc/batch-executor.md +0 -54
  343. package/.claude/commands/sparc/code.md +0 -89
  344. package/.claude/commands/sparc/coder.md +0 -54
  345. package/.claude/commands/sparc/debug.md +0 -83
  346. package/.claude/commands/sparc/debugger.md +0 -54
  347. package/.claude/commands/sparc/designer.md +0 -53
  348. package/.claude/commands/sparc/devops.md +0 -109
  349. package/.claude/commands/sparc/docs-writer.md +0 -80
  350. package/.claude/commands/sparc/documenter.md +0 -54
  351. package/.claude/commands/sparc/innovator.md +0 -54
  352. package/.claude/commands/sparc/integration.md +0 -83
  353. package/.claude/commands/sparc/mcp.md +0 -117
  354. package/.claude/commands/sparc/memory-manager.md +0 -54
  355. package/.claude/commands/sparc/optimizer.md +0 -54
  356. package/.claude/commands/sparc/orchestrator.md +0 -132
  357. package/.claude/commands/sparc/post-deployment-monitoring-mode.md +0 -83
  358. package/.claude/commands/sparc/refinement-optimization-mode.md +0 -83
  359. package/.claude/commands/sparc/researcher.md +0 -54
  360. package/.claude/commands/sparc/reviewer.md +0 -54
  361. package/.claude/commands/sparc/security-review.md +0 -80
  362. package/.claude/commands/sparc/sparc-modes.md +0 -174
  363. package/.claude/commands/sparc/sparc.md +0 -111
  364. package/.claude/commands/sparc/spec-pseudocode.md +0 -80
  365. package/.claude/commands/sparc/supabase-admin.md +0 -348
  366. package/.claude/commands/sparc/swarm-coordinator.md +0 -54
  367. package/.claude/commands/sparc/tdd.md +0 -54
  368. package/.claude/commands/sparc/tester.md +0 -54
  369. package/.claude/commands/sparc/tutorial.md +0 -79
  370. package/.claude/commands/sparc/workflow-manager.md +0 -54
  371. package/.claude/commands/sparc.md +0 -166
  372. package/.claude/commands/stream-chain/pipeline.md +0 -121
  373. package/.claude/commands/stream-chain/run.md +0 -70
  374. package/.claude/commands/swarm/README.md +0 -15
  375. package/.claude/commands/swarm/analysis.md +0 -95
  376. package/.claude/commands/swarm/development.md +0 -96
  377. package/.claude/commands/swarm/examples.md +0 -168
  378. package/.claude/commands/swarm/maintenance.md +0 -102
  379. package/.claude/commands/swarm/optimization.md +0 -117
  380. package/.claude/commands/swarm/research.md +0 -136
  381. package/.claude/commands/swarm/swarm-analysis.md +0 -8
  382. package/.claude/commands/swarm/swarm-background.md +0 -8
  383. package/.claude/commands/swarm/swarm-modes.md +0 -8
  384. package/.claude/commands/swarm/swarm-monitor.md +0 -8
  385. package/.claude/commands/swarm/swarm-status.md +0 -8
  386. package/.claude/commands/swarm/swarm-strategies.md +0 -8
  387. package/.claude/commands/swarm/swarm.md +0 -27
  388. package/.claude/commands/swarm/testing.md +0 -131
  389. package/.claude/commands/tokens.md +0 -13
  390. package/.claude/commands/training/README.md +0 -9
  391. package/.claude/commands/training/model-update.md +0 -25
  392. package/.claude/commands/training/neural-patterns.md +0 -74
  393. package/.claude/commands/training/neural-train.md +0 -25
  394. package/.claude/commands/training/pattern-learn.md +0 -25
  395. package/.claude/commands/training/specialization.md +0 -63
  396. package/.claude/commands/truth/start.md +0 -143
  397. package/.claude/commands/ts.md +0 -9
  398. package/.claude/commands/use-agent.md +0 -67
  399. package/.claude/commands/verify/check.md +0 -50
  400. package/.claude/commands/verify/start.md +0 -128
  401. package/.claude/commands/workflows/README.md +0 -9
  402. package/.claude/commands/workflows/development.md +0 -78
  403. package/.claude/commands/workflows/research.md +0 -63
  404. package/.claude/commands/workflows/workflow-create.md +0 -25
  405. package/.claude/commands/workflows/workflow-execute.md +0 -25
  406. package/.claude/commands/workflows/workflow-export.md +0 -25
  407. package/.claude/config/v1-dependency-optimization.json +0 -266
  408. package/.claude/config/v1-performance-targets.json +0 -251
  409. package/.claude/helpers/README.md +0 -105
  410. package/.claude/helpers/auto-memory-hook.mjs +0 -369
  411. package/.claude/helpers/context-persistence-hook.mjs +0 -1988
  412. package/.claude/helpers/extras-registry.json +0 -3028
  413. package/.claude/helpers/graphify-freshen.cjs +0 -109
  414. package/.claude/helpers/hook-handler.cjs +0 -1446
  415. package/.claude/helpers/intelligence.cjs +0 -227
  416. package/.claude/helpers/learning-service.mjs +0 -1144
  417. package/.claude/helpers/memory-palace.cjs +0 -401
  418. package/.claude/helpers/memory.cjs +0 -84
  419. package/.claude/helpers/metrics-db.mjs +0 -488
  420. package/.claude/helpers/router.cjs +0 -306
  421. package/.claude/helpers/session.cjs +0 -125
  422. package/.claude/helpers/skill-registry.json +0 -961
  423. package/.claude/helpers/statusline.cjs +0 -1276
  424. package/.claude/helpers/swarm-hooks.sh +0 -761
  425. package/.claude/helpers/toggle-statusline.cjs +0 -58
  426. package/.claude/helpers/token-tracker.cjs +0 -934
  427. package/.claude/mcp.json +0 -3
  428. package/.claude/settings.json +0 -303
  429. package/.claude/settings.local.json +0 -48
  430. package/.claude/skills/agent-browser-testing/SKILL.md +0 -312
  431. package/.claude/skills/agentdb-advanced/SKILL.md +0 -550
  432. package/.claude/skills/agentdb-learning/SKILL.md +0 -545
  433. package/.claude/skills/agentdb-memory-patterns/SKILL.md +0 -339
  434. package/.claude/skills/agentdb-optimization/SKILL.md +0 -509
  435. package/.claude/skills/agentdb-vector-search/SKILL.md +0 -339
  436. package/.claude/skills/agentic-jujutsu/SKILL.md +0 -645
  437. package/.claude/skills/github-code-review/SKILL.md +0 -1148
  438. package/.claude/skills/github-multi-repo/SKILL.md +0 -916
  439. package/.claude/skills/github-project-management/SKILL.md +0 -1250
  440. package/.claude/skills/github-release-management/SKILL.md +0 -1124
  441. package/.claude/skills/github-workflow-automation/SKILL.md +0 -1111
  442. package/.claude/skills/hive-mind-advanced/SKILL.md +0 -709
  443. package/.claude/skills/hooks-automation/SKILL.md +0 -1200
  444. package/.claude/skills/pair-programming/SKILL.md +0 -1202
  445. package/.claude/skills/performance-analysis/SKILL.md +0 -560
  446. package/.claude/skills/reasoningbank-agentdb/SKILL.md +0 -446
  447. package/.claude/skills/reasoningbank-intelligence/SKILL.md +0 -201
  448. package/.claude/skills/skill-builder/SKILL.md +0 -910
  449. package/.claude/skills/sparc-methodology/SKILL.md +0 -1106
  450. package/.claude/skills/specialagent/SKILL.md +0 -208
  451. package/.claude/skills/stream-chain/SKILL.md +0 -560
  452. package/.claude/skills/swarm-advanced/SKILL.md +0 -970
  453. package/.claude/skills/swarm-orchestration/SKILL.md +0 -179
  454. package/.claude/skills/v3-cli-modernization/SKILL.md +0 -941
  455. package/.claude/skills/v3-core-implementation/SKILL.md +0 -867
  456. package/.claude/skills/v3-ddd-architecture/SKILL.md +0 -451
  457. package/.claude/skills/v3-integration-deep/SKILL.md +0 -258
  458. package/.claude/skills/v3-mcp-optimization/SKILL.md +0 -816
  459. package/.claude/skills/v3-memory-unification/SKILL.md +0 -180
  460. package/.claude/skills/v3-performance-optimization/SKILL.md +0 -408
  461. package/.claude/skills/v3-security-overhaul/SKILL.md +0 -91
  462. package/.claude/skills/v3-swarm-coordination/SKILL.md +0 -433
  463. package/.claude/skills/verification-quality/SKILL.md +0 -674
  464. package/.claude/statusline-command.sh +0 -176
  465. package/.claude/statusline.mjs +0 -109
  466. package/.claude/statusline.sh +0 -431
  467. package/.claude/workflows/feature-dev.yaml +0 -18
  468. package/.claude/workflows/security-audit.yaml +0 -10
  469. package/.claude-plugin/README.md +0 -705
  470. package/.claude-plugin/docs/INSTALLATION.md +0 -258
  471. package/.claude-plugin/docs/PLUGIN_SUMMARY.md +0 -359
  472. package/.claude-plugin/docs/QUICKSTART.md +0 -360
  473. package/.claude-plugin/docs/STRUCTURE.md +0 -126
  474. package/.claude-plugin/hooks/hooks.json +0 -74
  475. package/.claude-plugin/marketplace.json +0 -98
  476. package/.claude-plugin/plugin.json +0 -70
  477. package/.claude-plugin/scripts/install.sh +0 -234
  478. package/.claude-plugin/scripts/uninstall.sh +0 -36
  479. package/.claude-plugin/scripts/verify.sh +0 -108
  480. package/LICENSE +0 -21
  481. package/README.md +0 -687
  482. package/bin/cli.js +0 -11
  483. package/bin/npx-safe-launch.js +0 -9
  484. package/packages/@monomind/cli/README.md +0 -687
  485. package/packages/@monomind/cli/bin/cli.js +0 -156
  486. package/packages/@monomind/cli/bin/mcp-server.js +0 -189
  487. package/packages/@monomind/cli/bin/preinstall.cjs +0 -2
  488. package/packages/@monomind/cli/dist/src/agents/halt-signal.d.ts +0 -25
  489. package/packages/@monomind/cli/dist/src/agents/halt-signal.js +0 -50
  490. package/packages/@monomind/cli/dist/src/agents/index.d.ts +0 -18
  491. package/packages/@monomind/cli/dist/src/agents/index.js +0 -13
  492. package/packages/@monomind/cli/dist/src/agents/managed-agent.d.ts +0 -41
  493. package/packages/@monomind/cli/dist/src/agents/managed-agent.js +0 -66
  494. package/packages/@monomind/cli/dist/src/agents/prompt-experiment.d.ts +0 -22
  495. package/packages/@monomind/cli/dist/src/agents/prompt-experiment.js +0 -49
  496. package/packages/@monomind/cli/dist/src/agents/prompt-version-manager.d.ts +0 -19
  497. package/packages/@monomind/cli/dist/src/agents/prompt-version-manager.js +0 -58
  498. package/packages/@monomind/cli/dist/src/agents/registry-builder.d.ts +0 -36
  499. package/packages/@monomind/cli/dist/src/agents/registry-builder.js +0 -200
  500. package/packages/@monomind/cli/dist/src/agents/registry-query.d.ts +0 -71
  501. package/packages/@monomind/cli/dist/src/agents/registry-query.js +0 -125
  502. package/packages/@monomind/cli/dist/src/agents/score-decay.d.ts +0 -19
  503. package/packages/@monomind/cli/dist/src/agents/score-decay.js +0 -22
  504. package/packages/@monomind/cli/dist/src/agents/shared-instructions-loader.d.ts +0 -13
  505. package/packages/@monomind/cli/dist/src/agents/shared-instructions-loader.js +0 -40
  506. package/packages/@monomind/cli/dist/src/agents/specialization-scorer.d.ts +0 -54
  507. package/packages/@monomind/cli/dist/src/agents/specialization-scorer.js +0 -204
  508. package/packages/@monomind/cli/dist/src/agents/termination-watcher.d.ts +0 -30
  509. package/packages/@monomind/cli/dist/src/agents/termination-watcher.js +0 -84
  510. package/packages/@monomind/cli/dist/src/agents/trigger-index.d.ts +0 -20
  511. package/packages/@monomind/cli/dist/src/agents/trigger-index.js +0 -38
  512. package/packages/@monomind/cli/dist/src/agents/trigger-scanner.d.ts +0 -62
  513. package/packages/@monomind/cli/dist/src/agents/trigger-scanner.js +0 -260
  514. package/packages/@monomind/cli/dist/src/agents/version-diff.d.ts +0 -18
  515. package/packages/@monomind/cli/dist/src/agents/version-diff.js +0 -64
  516. package/packages/@monomind/cli/dist/src/agents/version-store.d.ts +0 -61
  517. package/packages/@monomind/cli/dist/src/agents/version-store.js +0 -212
  518. package/packages/@monomind/cli/dist/src/autopilot-state.d.ts +0 -77
  519. package/packages/@monomind/cli/dist/src/autopilot-state.js +0 -279
  520. package/packages/@monomind/cli/dist/src/benchmarks/benchmark-runner.d.ts +0 -82
  521. package/packages/@monomind/cli/dist/src/benchmarks/benchmark-runner.js +0 -261
  522. package/packages/@monomind/cli/dist/src/benchmarks/metric-evaluators.d.ts +0 -35
  523. package/packages/@monomind/cli/dist/src/benchmarks/metric-evaluators.js +0 -91
  524. package/packages/@monomind/cli/dist/src/benchmarks/pretrain/index.d.ts +0 -58
  525. package/packages/@monomind/cli/dist/src/benchmarks/pretrain/index.js +0 -404
  526. package/packages/@monomind/cli/dist/src/commands/agent-wasm.d.ts +0 -14
  527. package/packages/@monomind/cli/dist/src/commands/agent-wasm.js +0 -333
  528. package/packages/@monomind/cli/dist/src/commands/agent.d.ts +0 -8
  529. package/packages/@monomind/cli/dist/src/commands/agent.js +0 -941
  530. package/packages/@monomind/cli/dist/src/commands/analyze.d.ts +0 -19
  531. package/packages/@monomind/cli/dist/src/commands/analyze.js +0 -2048
  532. package/packages/@monomind/cli/dist/src/commands/appliance-advanced.d.ts +0 -9
  533. package/packages/@monomind/cli/dist/src/commands/appliance-advanced.js +0 -215
  534. package/packages/@monomind/cli/dist/src/commands/appliance.d.ts +0 -8
  535. package/packages/@monomind/cli/dist/src/commands/appliance.js +0 -406
  536. package/packages/@monomind/cli/dist/src/commands/autopilot.d.ts +0 -15
  537. package/packages/@monomind/cli/dist/src/commands/autopilot.js +0 -362
  538. package/packages/@monomind/cli/dist/src/commands/benchmark.d.ts +0 -10
  539. package/packages/@monomind/cli/dist/src/commands/benchmark.js +0 -460
  540. package/packages/@monomind/cli/dist/src/commands/claims.d.ts +0 -10
  541. package/packages/@monomind/cli/dist/src/commands/claims.js +0 -624
  542. package/packages/@monomind/cli/dist/src/commands/cleanup.d.ts +0 -13
  543. package/packages/@monomind/cli/dist/src/commands/cleanup.js +0 -218
  544. package/packages/@monomind/cli/dist/src/commands/completions.d.ts +0 -10
  545. package/packages/@monomind/cli/dist/src/commands/completions.js +0 -539
  546. package/packages/@monomind/cli/dist/src/commands/config.d.ts +0 -8
  547. package/packages/@monomind/cli/dist/src/commands/config.js +0 -428
  548. package/packages/@monomind/cli/dist/src/commands/daemon.d.ts +0 -8
  549. package/packages/@monomind/cli/dist/src/commands/daemon.js +0 -669
  550. package/packages/@monomind/cli/dist/src/commands/deployment.d.ts +0 -10
  551. package/packages/@monomind/cli/dist/src/commands/deployment.js +0 -672
  552. package/packages/@monomind/cli/dist/src/commands/doctor.d.ts +0 -10
  553. package/packages/@monomind/cli/dist/src/commands/doctor.js +0 -619
  554. package/packages/@monomind/cli/dist/src/commands/embeddings.d.ts +0 -18
  555. package/packages/@monomind/cli/dist/src/commands/embeddings.js +0 -1576
  556. package/packages/@monomind/cli/dist/src/commands/guidance.d.ts +0 -8
  557. package/packages/@monomind/cli/dist/src/commands/guidance.js +0 -560
  558. package/packages/@monomind/cli/dist/src/commands/hive-mind.d.ts +0 -11
  559. package/packages/@monomind/cli/dist/src/commands/hive-mind.js +0 -1237
  560. package/packages/@monomind/cli/dist/src/commands/hooks.d.ts +0 -8
  561. package/packages/@monomind/cli/dist/src/commands/hooks.js +0 -4442
  562. package/packages/@monomind/cli/dist/src/commands/index.d.ts +0 -117
  563. package/packages/@monomind/cli/dist/src/commands/index.js +0 -391
  564. package/packages/@monomind/cli/dist/src/commands/init.d.ts +0 -8
  565. package/packages/@monomind/cli/dist/src/commands/init.js +0 -817
  566. package/packages/@monomind/cli/dist/src/commands/issues.d.ts +0 -21
  567. package/packages/@monomind/cli/dist/src/commands/issues.js +0 -567
  568. package/packages/@monomind/cli/dist/src/commands/mcp.d.ts +0 -11
  569. package/packages/@monomind/cli/dist/src/commands/mcp.js +0 -718
  570. package/packages/@monomind/cli/dist/src/commands/memory.d.ts +0 -8
  571. package/packages/@monomind/cli/dist/src/commands/memory.js +0 -1565
  572. package/packages/@monomind/cli/dist/src/commands/migrate.d.ts +0 -8
  573. package/packages/@monomind/cli/dist/src/commands/migrate.js +0 -742
  574. package/packages/@monomind/cli/dist/src/commands/neural.d.ts +0 -10
  575. package/packages/@monomind/cli/dist/src/commands/neural.js +0 -1454
  576. package/packages/@monomind/cli/dist/src/commands/performance.d.ts +0 -10
  577. package/packages/@monomind/cli/dist/src/commands/performance.js +0 -579
  578. package/packages/@monomind/cli/dist/src/commands/plugins.d.ts +0 -11
  579. package/packages/@monomind/cli/dist/src/commands/plugins.js +0 -820
  580. package/packages/@monomind/cli/dist/src/commands/process.d.ts +0 -10
  581. package/packages/@monomind/cli/dist/src/commands/process.js +0 -695
  582. package/packages/@monomind/cli/dist/src/commands/progress.d.ts +0 -11
  583. package/packages/@monomind/cli/dist/src/commands/progress.js +0 -259
  584. package/packages/@monomind/cli/dist/src/commands/providers.d.ts +0 -10
  585. package/packages/@monomind/cli/dist/src/commands/providers.js +0 -359
  586. package/packages/@monomind/cli/dist/src/commands/replay.d.ts +0 -8
  587. package/packages/@monomind/cli/dist/src/commands/replay.js +0 -60
  588. package/packages/@monomind/cli/dist/src/commands/route.d.ts +0 -16
  589. package/packages/@monomind/cli/dist/src/commands/route.js +0 -907
  590. package/packages/@monomind/cli/dist/src/commands/ruvector/backup.d.ts +0 -11
  591. package/packages/@monomind/cli/dist/src/commands/ruvector/backup.js +0 -746
  592. package/packages/@monomind/cli/dist/src/commands/ruvector/benchmark.d.ts +0 -11
  593. package/packages/@monomind/cli/dist/src/commands/ruvector/benchmark.js +0 -489
  594. package/packages/@monomind/cli/dist/src/commands/ruvector/import.d.ts +0 -18
  595. package/packages/@monomind/cli/dist/src/commands/ruvector/import.js +0 -349
  596. package/packages/@monomind/cli/dist/src/commands/ruvector/index.d.ts +0 -29
  597. package/packages/@monomind/cli/dist/src/commands/ruvector/index.js +0 -129
  598. package/packages/@monomind/cli/dist/src/commands/ruvector/init.d.ts +0 -11
  599. package/packages/@monomind/cli/dist/src/commands/ruvector/init.js +0 -466
  600. package/packages/@monomind/cli/dist/src/commands/ruvector/migrate.d.ts +0 -11
  601. package/packages/@monomind/cli/dist/src/commands/ruvector/migrate.js +0 -497
  602. package/packages/@monomind/cli/dist/src/commands/ruvector/optimize.d.ts +0 -11
  603. package/packages/@monomind/cli/dist/src/commands/ruvector/optimize.js +0 -504
  604. package/packages/@monomind/cli/dist/src/commands/ruvector/setup.d.ts +0 -18
  605. package/packages/@monomind/cli/dist/src/commands/ruvector/setup.js +0 -765
  606. package/packages/@monomind/cli/dist/src/commands/ruvector/status.d.ts +0 -11
  607. package/packages/@monomind/cli/dist/src/commands/ruvector/status.js +0 -478
  608. package/packages/@monomind/cli/dist/src/commands/security.d.ts +0 -10
  609. package/packages/@monomind/cli/dist/src/commands/security.js +0 -794
  610. package/packages/@monomind/cli/dist/src/commands/session.d.ts +0 -8
  611. package/packages/@monomind/cli/dist/src/commands/session.js +0 -750
  612. package/packages/@monomind/cli/dist/src/commands/start.d.ts +0 -8
  613. package/packages/@monomind/cli/dist/src/commands/start.js +0 -418
  614. package/packages/@monomind/cli/dist/src/commands/status.d.ts +0 -8
  615. package/packages/@monomind/cli/dist/src/commands/status.js +0 -591
  616. package/packages/@monomind/cli/dist/src/commands/swarm.d.ts +0 -8
  617. package/packages/@monomind/cli/dist/src/commands/swarm.js +0 -801
  618. package/packages/@monomind/cli/dist/src/commands/task.d.ts +0 -8
  619. package/packages/@monomind/cli/dist/src/commands/task.js +0 -671
  620. package/packages/@monomind/cli/dist/src/commands/tokens.d.ts +0 -8
  621. package/packages/@monomind/cli/dist/src/commands/tokens.js +0 -107
  622. package/packages/@monomind/cli/dist/src/commands/transfer-store.d.ts +0 -13
  623. package/packages/@monomind/cli/dist/src/commands/transfer-store.js +0 -428
  624. package/packages/@monomind/cli/dist/src/commands/ui.js +0 -68
  625. package/packages/@monomind/cli/dist/src/commands/update.d.ts +0 -8
  626. package/packages/@monomind/cli/dist/src/commands/update.js +0 -276
  627. package/packages/@monomind/cli/dist/src/commands/workflow.d.ts +0 -8
  628. package/packages/@monomind/cli/dist/src/commands/workflow.js +0 -617
  629. package/packages/@monomind/cli/dist/src/config-adapter.d.ts +0 -15
  630. package/packages/@monomind/cli/dist/src/config-adapter.js +0 -186
  631. package/packages/@monomind/cli/dist/src/consensus/audit-writer.d.ts +0 -50
  632. package/packages/@monomind/cli/dist/src/consensus/audit-writer.js +0 -109
  633. package/packages/@monomind/cli/dist/src/consensus/index.d.ts +0 -7
  634. package/packages/@monomind/cli/dist/src/consensus/index.js +0 -6
  635. package/packages/@monomind/cli/dist/src/consensus/vote-signer.d.ts +0 -39
  636. package/packages/@monomind/cli/dist/src/consensus/vote-signer.js +0 -63
  637. package/packages/@monomind/cli/dist/src/context/context-provider.d.ts +0 -44
  638. package/packages/@monomind/cli/dist/src/context/context-provider.js +0 -25
  639. package/packages/@monomind/cli/dist/src/context/git-state-provider.d.ts +0 -12
  640. package/packages/@monomind/cli/dist/src/context/git-state-provider.js +0 -34
  641. package/packages/@monomind/cli/dist/src/context/index.d.ts +0 -12
  642. package/packages/@monomind/cli/dist/src/context/index.js +0 -12
  643. package/packages/@monomind/cli/dist/src/context/project-conventions-provider.d.ts +0 -15
  644. package/packages/@monomind/cli/dist/src/context/project-conventions-provider.js +0 -19
  645. package/packages/@monomind/cli/dist/src/context/prompt-assembler.d.ts +0 -26
  646. package/packages/@monomind/cli/dist/src/context/prompt-assembler.js +0 -93
  647. package/packages/@monomind/cli/dist/src/context/task-history-provider.d.ts +0 -24
  648. package/packages/@monomind/cli/dist/src/context/task-history-provider.js +0 -32
  649. package/packages/@monomind/cli/dist/src/context/user-preferences-provider.d.ts +0 -14
  650. package/packages/@monomind/cli/dist/src/context/user-preferences-provider.js +0 -27
  651. package/packages/@monomind/cli/dist/src/dlq/dlq-reader.d.ts +0 -29
  652. package/packages/@monomind/cli/dist/src/dlq/dlq-reader.js +0 -64
  653. package/packages/@monomind/cli/dist/src/dlq/dlq-replayer.d.ts +0 -20
  654. package/packages/@monomind/cli/dist/src/dlq/dlq-replayer.js +0 -56
  655. package/packages/@monomind/cli/dist/src/dlq/dlq-writer.d.ts +0 -24
  656. package/packages/@monomind/cli/dist/src/dlq/dlq-writer.js +0 -43
  657. package/packages/@monomind/cli/dist/src/dlq/index.d.ts +0 -10
  658. package/packages/@monomind/cli/dist/src/dlq/index.js +0 -7
  659. package/packages/@monomind/cli/dist/src/eval/dataset-manager.d.ts +0 -33
  660. package/packages/@monomind/cli/dist/src/eval/dataset-manager.js +0 -97
  661. package/packages/@monomind/cli/dist/src/eval/dataset-runner.d.ts +0 -23
  662. package/packages/@monomind/cli/dist/src/eval/dataset-runner.js +0 -59
  663. package/packages/@monomind/cli/dist/src/eval/index.d.ts +0 -10
  664. package/packages/@monomind/cli/dist/src/eval/index.js +0 -7
  665. package/packages/@monomind/cli/dist/src/eval/trace-collector.d.ts +0 -40
  666. package/packages/@monomind/cli/dist/src/eval/trace-collector.js +0 -82
  667. package/packages/@monomind/cli/dist/src/index.d.ts +0 -82
  668. package/packages/@monomind/cli/dist/src/index.js +0 -578
  669. package/packages/@monomind/cli/dist/src/infrastructure/in-memory-repositories.d.ts +0 -68
  670. package/packages/@monomind/cli/dist/src/infrastructure/in-memory-repositories.js +0 -264
  671. package/packages/@monomind/cli/dist/src/init/claudemd-generator.d.ts +0 -25
  672. package/packages/@monomind/cli/dist/src/init/claudemd-generator.js +0 -522
  673. package/packages/@monomind/cli/dist/src/init/executor.d.ts +0 -38
  674. package/packages/@monomind/cli/dist/src/init/executor.js +0 -1919
  675. package/packages/@monomind/cli/dist/src/init/helpers-generator.d.ts +0 -60
  676. package/packages/@monomind/cli/dist/src/init/helpers-generator.js +0 -1222
  677. package/packages/@monomind/cli/dist/src/init/index.d.ts +0 -13
  678. package/packages/@monomind/cli/dist/src/init/index.js +0 -15
  679. package/packages/@monomind/cli/dist/src/init/mcp-generator.d.ts +0 -26
  680. package/packages/@monomind/cli/dist/src/init/mcp-generator.js +0 -99
  681. package/packages/@monomind/cli/dist/src/init/settings-generator.d.ts +0 -14
  682. package/packages/@monomind/cli/dist/src/init/settings-generator.js +0 -392
  683. package/packages/@monomind/cli/dist/src/init/statusline-generator.d.ts +0 -25
  684. package/packages/@monomind/cli/dist/src/init/statusline-generator.js +0 -1157
  685. package/packages/@monomind/cli/dist/src/init/types.d.ts +0 -291
  686. package/packages/@monomind/cli/dist/src/init/types.js +0 -258
  687. package/packages/@monomind/cli/dist/src/interactive/interrupt.d.ts +0 -22
  688. package/packages/@monomind/cli/dist/src/interactive/interrupt.js +0 -66
  689. package/packages/@monomind/cli/dist/src/mcp/deprecation-injector.d.ts +0 -25
  690. package/packages/@monomind/cli/dist/src/mcp/deprecation-injector.js +0 -48
  691. package/packages/@monomind/cli/dist/src/mcp/tool-registry.d.ts +0 -61
  692. package/packages/@monomind/cli/dist/src/mcp/tool-registry.js +0 -212
  693. package/packages/@monomind/cli/dist/src/mcp-client.d.ts +0 -92
  694. package/packages/@monomind/cli/dist/src/mcp-client.js +0 -261
  695. package/packages/@monomind/cli/dist/src/mcp-server.d.ts +0 -163
  696. package/packages/@monomind/cli/dist/src/mcp-server.js +0 -682
  697. package/packages/@monomind/cli/dist/src/mcp-tools/a2a-tools.d.ts +0 -14
  698. package/packages/@monomind/cli/dist/src/mcp-tools/a2a-tools.js +0 -244
  699. package/packages/@monomind/cli/dist/src/mcp-tools/agent-tools.d.ts +0 -9
  700. package/packages/@monomind/cli/dist/src/mcp-tools/agent-tools.js +0 -564
  701. package/packages/@monomind/cli/dist/src/mcp-tools/agentdb-tools.d.ts +0 -30
  702. package/packages/@monomind/cli/dist/src/mcp-tools/agentdb-tools.js +0 -569
  703. package/packages/@monomind/cli/dist/src/mcp-tools/analyze-tools.d.ts +0 -38
  704. package/packages/@monomind/cli/dist/src/mcp-tools/analyze-tools.js +0 -317
  705. package/packages/@monomind/cli/dist/src/mcp-tools/auto-install.d.ts +0 -83
  706. package/packages/@monomind/cli/dist/src/mcp-tools/auto-install.js +0 -131
  707. package/packages/@monomind/cli/dist/src/mcp-tools/autopilot-tools.d.ts +0 -12
  708. package/packages/@monomind/cli/dist/src/mcp-tools/autopilot-tools.js +0 -227
  709. package/packages/@monomind/cli/dist/src/mcp-tools/browser-tools.d.ts +0 -13
  710. package/packages/@monomind/cli/dist/src/mcp-tools/browser-tools.js +0 -550
  711. package/packages/@monomind/cli/dist/src/mcp-tools/claims-tools.d.ts +0 -12
  712. package/packages/@monomind/cli/dist/src/mcp-tools/claims-tools.js +0 -747
  713. package/packages/@monomind/cli/dist/src/mcp-tools/config-tools.d.ts +0 -8
  714. package/packages/@monomind/cli/dist/src/mcp-tools/config-tools.js +0 -353
  715. package/packages/@monomind/cli/dist/src/mcp-tools/coordination-tools.d.ts +0 -13
  716. package/packages/@monomind/cli/dist/src/mcp-tools/coordination-tools.js +0 -673
  717. package/packages/@monomind/cli/dist/src/mcp-tools/daa-tools.d.ts +0 -13
  718. package/packages/@monomind/cli/dist/src/mcp-tools/daa-tools.js +0 -473
  719. package/packages/@monomind/cli/dist/src/mcp-tools/embeddings-tools.d.ts +0 -9
  720. package/packages/@monomind/cli/dist/src/mcp-tools/embeddings-tools.js +0 -782
  721. package/packages/@monomind/cli/dist/src/mcp-tools/github-tools.d.ts +0 -9
  722. package/packages/@monomind/cli/dist/src/mcp-tools/github-tools.js +0 -472
  723. package/packages/@monomind/cli/dist/src/mcp-tools/graphify-tools.d.ts +0 -73
  724. package/packages/@monomind/cli/dist/src/mcp-tools/graphify-tools.js +0 -1235
  725. package/packages/@monomind/cli/dist/src/mcp-tools/guidance-tools.d.ts +0 -15
  726. package/packages/@monomind/cli/dist/src/mcp-tools/guidance-tools.js +0 -618
  727. package/packages/@monomind/cli/dist/src/mcp-tools/hive-mind-tools.d.ts +0 -8
  728. package/packages/@monomind/cli/dist/src/mcp-tools/hive-mind-tools.js +0 -877
  729. package/packages/@monomind/cli/dist/src/mcp-tools/hooks-tools.d.ts +0 -44
  730. package/packages/@monomind/cli/dist/src/mcp-tools/hooks-tools.js +0 -3397
  731. package/packages/@monomind/cli/dist/src/mcp-tools/index.d.ts +0 -38
  732. package/packages/@monomind/cli/dist/src/mcp-tools/index.js +0 -40
  733. package/packages/@monomind/cli/dist/src/mcp-tools/memory-tools.d.ts +0 -14
  734. package/packages/@monomind/cli/dist/src/mcp-tools/memory-tools.js +0 -514
  735. package/packages/@monomind/cli/dist/src/mcp-tools/neural-tools.d.ts +0 -16
  736. package/packages/@monomind/cli/dist/src/mcp-tools/neural-tools.js +0 -634
  737. package/packages/@monomind/cli/dist/src/mcp-tools/performance-tools.d.ts +0 -16
  738. package/packages/@monomind/cli/dist/src/mcp-tools/performance-tools.js +0 -643
  739. package/packages/@monomind/cli/dist/src/mcp-tools/progress-tools.d.ts +0 -14
  740. package/packages/@monomind/cli/dist/src/mcp-tools/progress-tools.js +0 -348
  741. package/packages/@monomind/cli/dist/src/mcp-tools/request-tracker.d.ts +0 -17
  742. package/packages/@monomind/cli/dist/src/mcp-tools/request-tracker.js +0 -27
  743. package/packages/@monomind/cli/dist/src/mcp-tools/ruvllm-tools.d.ts +0 -9
  744. package/packages/@monomind/cli/dist/src/mcp-tools/ruvllm-tools.js +0 -284
  745. package/packages/@monomind/cli/dist/src/mcp-tools/security-tools.d.ts +0 -18
  746. package/packages/@monomind/cli/dist/src/mcp-tools/security-tools.js +0 -434
  747. package/packages/@monomind/cli/dist/src/mcp-tools/session-tools.d.ts +0 -8
  748. package/packages/@monomind/cli/dist/src/mcp-tools/session-tools.js +0 -338
  749. package/packages/@monomind/cli/dist/src/mcp-tools/swarm-tools.d.ts +0 -9
  750. package/packages/@monomind/cli/dist/src/mcp-tools/swarm-tools.js +0 -289
  751. package/packages/@monomind/cli/dist/src/mcp-tools/system-tools.d.ts +0 -13
  752. package/packages/@monomind/cli/dist/src/mcp-tools/system-tools.js +0 -551
  753. package/packages/@monomind/cli/dist/src/mcp-tools/task-tools.d.ts +0 -8
  754. package/packages/@monomind/cli/dist/src/mcp-tools/task-tools.js +0 -406
  755. package/packages/@monomind/cli/dist/src/mcp-tools/terminal-tools.d.ts +0 -8
  756. package/packages/@monomind/cli/dist/src/mcp-tools/terminal-tools.js +0 -260
  757. package/packages/@monomind/cli/dist/src/mcp-tools/transfer-tools.d.ts +0 -14
  758. package/packages/@monomind/cli/dist/src/mcp-tools/transfer-tools.js +0 -396
  759. package/packages/@monomind/cli/dist/src/mcp-tools/types.d.ts +0 -37
  760. package/packages/@monomind/cli/dist/src/mcp-tools/types.js +0 -14
  761. package/packages/@monomind/cli/dist/src/mcp-tools/wasm-agent-tools.d.ts +0 -9
  762. package/packages/@monomind/cli/dist/src/mcp-tools/wasm-agent-tools.js +0 -230
  763. package/packages/@monomind/cli/dist/src/mcp-tools/workflow-tools.d.ts +0 -8
  764. package/packages/@monomind/cli/dist/src/mcp-tools/workflow-tools.js +0 -562
  765. package/packages/@monomind/cli/dist/src/memory/ewc-consolidation.d.ts +0 -295
  766. package/packages/@monomind/cli/dist/src/memory/ewc-consolidation.js +0 -601
  767. package/packages/@monomind/cli/dist/src/memory/intelligence.d.ts +0 -338
  768. package/packages/@monomind/cli/dist/src/memory/intelligence.js +0 -1023
  769. package/packages/@monomind/cli/dist/src/memory/memory-bridge.d.ts +0 -409
  770. package/packages/@monomind/cli/dist/src/memory/memory-bridge.js +0 -1561
  771. package/packages/@monomind/cli/dist/src/memory/memory-initializer.d.ts +0 -414
  772. package/packages/@monomind/cli/dist/src/memory/memory-initializer.js +0 -2222
  773. package/packages/@monomind/cli/dist/src/memory/sona-optimizer.d.ts +0 -227
  774. package/packages/@monomind/cli/dist/src/memory/sona-optimizer.js +0 -633
  775. package/packages/@monomind/cli/dist/src/model/complexity-scorer.d.ts +0 -21
  776. package/packages/@monomind/cli/dist/src/model/complexity-scorer.js +0 -106
  777. package/packages/@monomind/cli/dist/src/model/index.d.ts +0 -4
  778. package/packages/@monomind/cli/dist/src/model/index.js +0 -4
  779. package/packages/@monomind/cli/dist/src/model/model-settings.d.ts +0 -22
  780. package/packages/@monomind/cli/dist/src/model/model-settings.js +0 -33
  781. package/packages/@monomind/cli/dist/src/model/model-tier-resolver.d.ts +0 -24
  782. package/packages/@monomind/cli/dist/src/model/model-tier-resolver.js +0 -65
  783. package/packages/@monomind/cli/dist/src/orchestration/index.d.ts +0 -7
  784. package/packages/@monomind/cli/dist/src/orchestration/index.js +0 -6
  785. package/packages/@monomind/cli/dist/src/orchestration/mode-dispatcher.d.ts +0 -11
  786. package/packages/@monomind/cli/dist/src/orchestration/mode-dispatcher.js +0 -31
  787. package/packages/@monomind/cli/dist/src/orchestration/routing-modes.d.ts +0 -68
  788. package/packages/@monomind/cli/dist/src/orchestration/routing-modes.js +0 -150
  789. package/packages/@monomind/cli/dist/src/output.d.ts +0 -133
  790. package/packages/@monomind/cli/dist/src/output.js +0 -514
  791. package/packages/@monomind/cli/dist/src/parser.d.ts +0 -51
  792. package/packages/@monomind/cli/dist/src/parser.js +0 -425
  793. package/packages/@monomind/cli/dist/src/plugins/manager.d.ts +0 -133
  794. package/packages/@monomind/cli/dist/src/plugins/manager.js +0 -400
  795. package/packages/@monomind/cli/dist/src/plugins/store/discovery.d.ts +0 -88
  796. package/packages/@monomind/cli/dist/src/plugins/store/discovery.js +0 -841
  797. package/packages/@monomind/cli/dist/src/plugins/store/index.d.ts +0 -76
  798. package/packages/@monomind/cli/dist/src/plugins/store/index.js +0 -141
  799. package/packages/@monomind/cli/dist/src/plugins/store/search.d.ts +0 -46
  800. package/packages/@monomind/cli/dist/src/plugins/store/search.js +0 -230
  801. package/packages/@monomind/cli/dist/src/plugins/store/types.d.ts +0 -274
  802. package/packages/@monomind/cli/dist/src/plugins/store/types.js +0 -7
  803. package/packages/@monomind/cli/dist/src/plugins/tests/demo-plugin-store.d.ts +0 -7
  804. package/packages/@monomind/cli/dist/src/plugins/tests/demo-plugin-store.js +0 -126
  805. package/packages/@monomind/cli/dist/src/plugins/tests/standalone-test.d.ts +0 -12
  806. package/packages/@monomind/cli/dist/src/plugins/tests/standalone-test.js +0 -188
  807. package/packages/@monomind/cli/dist/src/plugins/tests/test-plugin-store.d.ts +0 -7
  808. package/packages/@monomind/cli/dist/src/plugins/tests/test-plugin-store.js +0 -206
  809. package/packages/@monomind/cli/dist/src/production/circuit-breaker.d.ts +0 -101
  810. package/packages/@monomind/cli/dist/src/production/circuit-breaker.js +0 -241
  811. package/packages/@monomind/cli/dist/src/production/error-handler.d.ts +0 -92
  812. package/packages/@monomind/cli/dist/src/production/error-handler.js +0 -299
  813. package/packages/@monomind/cli/dist/src/production/index.d.ts +0 -23
  814. package/packages/@monomind/cli/dist/src/production/index.js +0 -18
  815. package/packages/@monomind/cli/dist/src/production/monitoring.d.ts +0 -161
  816. package/packages/@monomind/cli/dist/src/production/monitoring.js +0 -356
  817. package/packages/@monomind/cli/dist/src/production/rate-limiter.d.ts +0 -80
  818. package/packages/@monomind/cli/dist/src/production/rate-limiter.js +0 -201
  819. package/packages/@monomind/cli/dist/src/production/retry.d.ts +0 -48
  820. package/packages/@monomind/cli/dist/src/production/retry.js +0 -179
  821. package/packages/@monomind/cli/dist/src/prompt.d.ts +0 -44
  822. package/packages/@monomind/cli/dist/src/prompt.js +0 -501
  823. package/packages/@monomind/cli/dist/src/runtime/headless.d.ts +0 -60
  824. package/packages/@monomind/cli/dist/src/runtime/headless.js +0 -284
  825. package/packages/@monomind/cli/dist/src/ruvector/agent-wasm.d.ts +0 -182
  826. package/packages/@monomind/cli/dist/src/ruvector/agent-wasm.js +0 -316
  827. package/packages/@monomind/cli/dist/src/ruvector/ast-analyzer.d.ts +0 -67
  828. package/packages/@monomind/cli/dist/src/ruvector/ast-analyzer.js +0 -277
  829. package/packages/@monomind/cli/dist/src/ruvector/coverage-router.d.ts +0 -160
  830. package/packages/@monomind/cli/dist/src/ruvector/coverage-router.js +0 -529
  831. package/packages/@monomind/cli/dist/src/ruvector/coverage-tools.d.ts +0 -33
  832. package/packages/@monomind/cli/dist/src/ruvector/coverage-tools.js +0 -157
  833. package/packages/@monomind/cli/dist/src/ruvector/diff-classifier.d.ts +0 -175
  834. package/packages/@monomind/cli/dist/src/ruvector/diff-classifier.js +0 -698
  835. package/packages/@monomind/cli/dist/src/ruvector/enhanced-model-router.d.ts +0 -146
  836. package/packages/@monomind/cli/dist/src/ruvector/enhanced-model-router.js +0 -529
  837. package/packages/@monomind/cli/dist/src/ruvector/flash-attention.d.ts +0 -195
  838. package/packages/@monomind/cli/dist/src/ruvector/flash-attention.js +0 -643
  839. package/packages/@monomind/cli/dist/src/ruvector/graph-analyzer.d.ts +0 -187
  840. package/packages/@monomind/cli/dist/src/ruvector/graph-analyzer.js +0 -929
  841. package/packages/@monomind/cli/dist/src/ruvector/index.d.ts +0 -40
  842. package/packages/@monomind/cli/dist/src/ruvector/index.js +0 -76
  843. package/packages/@monomind/cli/dist/src/ruvector/lora-adapter.d.ts +0 -218
  844. package/packages/@monomind/cli/dist/src/ruvector/lora-adapter.js +0 -455
  845. package/packages/@monomind/cli/dist/src/ruvector/model-router.d.ts +0 -220
  846. package/packages/@monomind/cli/dist/src/ruvector/model-router.js +0 -488
  847. package/packages/@monomind/cli/dist/src/ruvector/moe-router.d.ts +0 -206
  848. package/packages/@monomind/cli/dist/src/ruvector/moe-router.js +0 -626
  849. package/packages/@monomind/cli/dist/src/ruvector/q-learning-router.d.ts +0 -211
  850. package/packages/@monomind/cli/dist/src/ruvector/q-learning-router.js +0 -681
  851. package/packages/@monomind/cli/dist/src/ruvector/ruvllm-wasm.d.ts +0 -179
  852. package/packages/@monomind/cli/dist/src/ruvector/ruvllm-wasm.js +0 -363
  853. package/packages/@monomind/cli/dist/src/ruvector/semantic-router.d.ts +0 -77
  854. package/packages/@monomind/cli/dist/src/ruvector/semantic-router.js +0 -178
  855. package/packages/@monomind/cli/dist/src/ruvector/vector-db.d.ts +0 -69
  856. package/packages/@monomind/cli/dist/src/ruvector/vector-db.js +0 -243
  857. package/packages/@monomind/cli/dist/src/services/agentic-flow-bridge.d.ts +0 -50
  858. package/packages/@monomind/cli/dist/src/services/agentic-flow-bridge.js +0 -95
  859. package/packages/@monomind/cli/dist/src/services/claim-service.d.ts +0 -204
  860. package/packages/@monomind/cli/dist/src/services/claim-service.js +0 -818
  861. package/packages/@monomind/cli/dist/src/services/config-file-manager.d.ts +0 -37
  862. package/packages/@monomind/cli/dist/src/services/config-file-manager.js +0 -224
  863. package/packages/@monomind/cli/dist/src/services/container-worker-pool.d.ts +0 -197
  864. package/packages/@monomind/cli/dist/src/services/container-worker-pool.js +0 -583
  865. package/packages/@monomind/cli/dist/src/services/headless-worker-executor.d.ts +0 -304
  866. package/packages/@monomind/cli/dist/src/services/headless-worker-executor.js +0 -1024
  867. package/packages/@monomind/cli/dist/src/services/index.d.ts +0 -13
  868. package/packages/@monomind/cli/dist/src/services/index.js +0 -11
  869. package/packages/@monomind/cli/dist/src/services/registry-api.d.ts +0 -58
  870. package/packages/@monomind/cli/dist/src/services/registry-api.js +0 -146
  871. package/packages/@monomind/cli/dist/src/services/ruvector-training.d.ts +0 -222
  872. package/packages/@monomind/cli/dist/src/services/ruvector-training.js +0 -688
  873. package/packages/@monomind/cli/dist/src/services/worker-daemon.d.ts +0 -245
  874. package/packages/@monomind/cli/dist/src/services/worker-daemon.js +0 -999
  875. package/packages/@monomind/cli/dist/src/services/worker-queue.d.ts +0 -194
  876. package/packages/@monomind/cli/dist/src/services/worker-queue.js +0 -513
  877. package/packages/@monomind/cli/dist/src/suggest.d.ts +0 -53
  878. package/packages/@monomind/cli/dist/src/suggest.js +0 -200
  879. package/packages/@monomind/cli/dist/src/swarm/communication-graph.d.ts +0 -25
  880. package/packages/@monomind/cli/dist/src/swarm/communication-graph.js +0 -77
  881. package/packages/@monomind/cli/dist/src/swarm/flow-enforcer.d.ts +0 -29
  882. package/packages/@monomind/cli/dist/src/swarm/flow-enforcer.js +0 -49
  883. package/packages/@monomind/cli/dist/src/swarm/flow-visualizer.d.ts +0 -16
  884. package/packages/@monomind/cli/dist/src/swarm/flow-visualizer.js +0 -44
  885. package/packages/@monomind/cli/dist/src/transfer/anonymization/index.d.ts +0 -25
  886. package/packages/@monomind/cli/dist/src/transfer/anonymization/index.js +0 -175
  887. package/packages/@monomind/cli/dist/src/transfer/deploy-seraphine.d.ts +0 -13
  888. package/packages/@monomind/cli/dist/src/transfer/deploy-seraphine.js +0 -205
  889. package/packages/@monomind/cli/dist/src/transfer/export.d.ts +0 -25
  890. package/packages/@monomind/cli/dist/src/transfer/export.js +0 -113
  891. package/packages/@monomind/cli/dist/src/transfer/index.d.ts +0 -12
  892. package/packages/@monomind/cli/dist/src/transfer/index.js +0 -31
  893. package/packages/@monomind/cli/dist/src/transfer/ipfs/client.d.ts +0 -109
  894. package/packages/@monomind/cli/dist/src/transfer/ipfs/client.js +0 -307
  895. package/packages/@monomind/cli/dist/src/transfer/ipfs/upload.d.ts +0 -95
  896. package/packages/@monomind/cli/dist/src/transfer/ipfs/upload.js +0 -411
  897. package/packages/@monomind/cli/dist/src/transfer/models/seraphine.d.ts +0 -72
  898. package/packages/@monomind/cli/dist/src/transfer/models/seraphine.js +0 -373
  899. package/packages/@monomind/cli/dist/src/transfer/serialization/cfp.d.ts +0 -49
  900. package/packages/@monomind/cli/dist/src/transfer/serialization/cfp.js +0 -183
  901. package/packages/@monomind/cli/dist/src/transfer/storage/gcs.d.ts +0 -82
  902. package/packages/@monomind/cli/dist/src/transfer/storage/gcs.js +0 -272
  903. package/packages/@monomind/cli/dist/src/transfer/storage/index.d.ts +0 -6
  904. package/packages/@monomind/cli/dist/src/transfer/storage/index.js +0 -6
  905. package/packages/@monomind/cli/dist/src/transfer/store/discovery.d.ts +0 -84
  906. package/packages/@monomind/cli/dist/src/transfer/store/discovery.js +0 -382
  907. package/packages/@monomind/cli/dist/src/transfer/store/download.d.ts +0 -70
  908. package/packages/@monomind/cli/dist/src/transfer/store/download.js +0 -334
  909. package/packages/@monomind/cli/dist/src/transfer/store/index.d.ts +0 -84
  910. package/packages/@monomind/cli/dist/src/transfer/store/index.js +0 -153
  911. package/packages/@monomind/cli/dist/src/transfer/store/publish.d.ts +0 -76
  912. package/packages/@monomind/cli/dist/src/transfer/store/publish.js +0 -294
  913. package/packages/@monomind/cli/dist/src/transfer/store/registry.d.ts +0 -58
  914. package/packages/@monomind/cli/dist/src/transfer/store/registry.js +0 -285
  915. package/packages/@monomind/cli/dist/src/transfer/store/search.d.ts +0 -54
  916. package/packages/@monomind/cli/dist/src/transfer/store/search.js +0 -232
  917. package/packages/@monomind/cli/dist/src/transfer/store/tests/standalone-test.d.ts +0 -12
  918. package/packages/@monomind/cli/dist/src/transfer/store/tests/standalone-test.js +0 -190
  919. package/packages/@monomind/cli/dist/src/transfer/store/types.d.ts +0 -193
  920. package/packages/@monomind/cli/dist/src/transfer/store/types.js +0 -6
  921. package/packages/@monomind/cli/dist/src/transfer/test-seraphine.d.ts +0 -6
  922. package/packages/@monomind/cli/dist/src/transfer/test-seraphine.js +0 -105
  923. package/packages/@monomind/cli/dist/src/transfer/tests/test-store.d.ts +0 -7
  924. package/packages/@monomind/cli/dist/src/transfer/tests/test-store.js +0 -214
  925. package/packages/@monomind/cli/dist/src/transfer/types.d.ts +0 -245
  926. package/packages/@monomind/cli/dist/src/transfer/types.js +0 -6
  927. package/packages/@monomind/cli/dist/src/types.d.ts +0 -198
  928. package/packages/@monomind/cli/dist/src/types.js +0 -38
  929. package/packages/@monomind/cli/dist/src/update/checker.d.ts +0 -34
  930. package/packages/@monomind/cli/dist/src/update/checker.js +0 -185
  931. package/packages/@monomind/cli/dist/src/update/executor.d.ts +0 -32
  932. package/packages/@monomind/cli/dist/src/update/executor.js +0 -181
  933. package/packages/@monomind/cli/dist/src/update/index.d.ts +0 -33
  934. package/packages/@monomind/cli/dist/src/update/index.js +0 -64
  935. package/packages/@monomind/cli/dist/src/update/rate-limiter.d.ts +0 -20
  936. package/packages/@monomind/cli/dist/src/update/rate-limiter.js +0 -96
  937. package/packages/@monomind/cli/dist/src/update/validator.d.ts +0 -17
  938. package/packages/@monomind/cli/dist/src/update/validator.js +0 -118
  939. package/packages/@monomind/cli/dist/src/workflow/condition-evaluator.d.ts +0 -10
  940. package/packages/@monomind/cli/dist/src/workflow/condition-evaluator.js +0 -48
  941. package/packages/@monomind/cli/dist/src/workflow/context-resolver.d.ts +0 -12
  942. package/packages/@monomind/cli/dist/src/workflow/context-resolver.js +0 -23
  943. package/packages/@monomind/cli/dist/src/workflow/dag-builder.d.ts +0 -17
  944. package/packages/@monomind/cli/dist/src/workflow/dag-builder.js +0 -113
  945. package/packages/@monomind/cli/dist/src/workflow/dag-executor.d.ts +0 -9
  946. package/packages/@monomind/cli/dist/src/workflow/dag-executor.js +0 -78
  947. package/packages/@monomind/cli/dist/src/workflow/dag-types.d.ts +0 -41
  948. package/packages/@monomind/cli/dist/src/workflow/dag-types.js +0 -8
  949. package/packages/@monomind/cli/dist/src/workflow/dsl-parser.d.ts +0 -12
  950. package/packages/@monomind/cli/dist/src/workflow/dsl-parser.js +0 -20
  951. package/packages/@monomind/cli/dist/src/workflow/dsl-schema.d.ts +0 -162
  952. package/packages/@monomind/cli/dist/src/workflow/dsl-schema.js +0 -78
  953. package/packages/@monomind/cli/dist/src/workflow/index.d.ts +0 -13
  954. package/packages/@monomind/cli/dist/src/workflow/index.js +0 -11
  955. package/packages/@monomind/cli/dist/src/workflow/template-engine.d.ts +0 -11
  956. package/packages/@monomind/cli/dist/src/workflow/template-engine.js +0 -33
  957. package/packages/@monomind/cli/dist/src/workflow/workflow-executor.d.ts +0 -29
  958. package/packages/@monomind/cli/dist/src/workflow/workflow-executor.js +0 -146
  959. package/packages/@monomind/cli/package.json +0 -105
  960. package/packages/@monomind/guidance/README.md +0 -1195
  961. package/packages/@monomind/guidance/dist/adversarial.d.ts +0 -284
  962. package/packages/@monomind/guidance/dist/adversarial.js +0 -572
  963. package/packages/@monomind/guidance/dist/analyzer.d.ts +0 -530
  964. package/packages/@monomind/guidance/dist/analyzer.js +0 -2518
  965. package/packages/@monomind/guidance/dist/artifacts.d.ts +0 -283
  966. package/packages/@monomind/guidance/dist/artifacts.js +0 -356
  967. package/packages/@monomind/guidance/dist/authority.d.ts +0 -290
  968. package/packages/@monomind/guidance/dist/authority.js +0 -558
  969. package/packages/@monomind/guidance/dist/capabilities.d.ts +0 -209
  970. package/packages/@monomind/guidance/dist/capabilities.js +0 -485
  971. package/packages/@monomind/guidance/dist/coherence.d.ts +0 -233
  972. package/packages/@monomind/guidance/dist/coherence.js +0 -372
  973. package/packages/@monomind/guidance/dist/compiler.d.ts +0 -87
  974. package/packages/@monomind/guidance/dist/compiler.js +0 -419
  975. package/packages/@monomind/guidance/dist/conformance-kit.d.ts +0 -225
  976. package/packages/@monomind/guidance/dist/conformance-kit.js +0 -629
  977. package/packages/@monomind/guidance/dist/continue-gate.d.ts +0 -214
  978. package/packages/@monomind/guidance/dist/continue-gate.js +0 -353
  979. package/packages/@monomind/guidance/dist/crypto-utils.d.ts +0 -17
  980. package/packages/@monomind/guidance/dist/crypto-utils.js +0 -24
  981. package/packages/@monomind/guidance/dist/evolution.d.ts +0 -282
  982. package/packages/@monomind/guidance/dist/evolution.js +0 -500
  983. package/packages/@monomind/guidance/dist/gates.d.ts +0 -79
  984. package/packages/@monomind/guidance/dist/gates.js +0 -302
  985. package/packages/@monomind/guidance/dist/gateway.d.ts +0 -206
  986. package/packages/@monomind/guidance/dist/gateway.js +0 -452
  987. package/packages/@monomind/guidance/dist/generators.d.ts +0 -153
  988. package/packages/@monomind/guidance/dist/generators.js +0 -682
  989. package/packages/@monomind/guidance/dist/headless.d.ts +0 -177
  990. package/packages/@monomind/guidance/dist/headless.js +0 -342
  991. package/packages/@monomind/guidance/dist/hooks.d.ts +0 -109
  992. package/packages/@monomind/guidance/dist/hooks.js +0 -347
  993. package/packages/@monomind/guidance/dist/index.d.ts +0 -205
  994. package/packages/@monomind/guidance/dist/index.js +0 -321
  995. package/packages/@monomind/guidance/dist/ledger.d.ts +0 -162
  996. package/packages/@monomind/guidance/dist/ledger.js +0 -375
  997. package/packages/@monomind/guidance/dist/manifest-validator.d.ts +0 -289
  998. package/packages/@monomind/guidance/dist/manifest-validator.js +0 -838
  999. package/packages/@monomind/guidance/dist/memory-gate.d.ts +0 -222
  1000. package/packages/@monomind/guidance/dist/memory-gate.js +0 -382
  1001. package/packages/@monomind/guidance/dist/meta-governance.d.ts +0 -265
  1002. package/packages/@monomind/guidance/dist/meta-governance.js +0 -348
  1003. package/packages/@monomind/guidance/dist/optimizer.d.ts +0 -104
  1004. package/packages/@monomind/guidance/dist/optimizer.js +0 -329
  1005. package/packages/@monomind/guidance/dist/persistence.d.ts +0 -189
  1006. package/packages/@monomind/guidance/dist/persistence.js +0 -464
  1007. package/packages/@monomind/guidance/dist/proof.d.ts +0 -185
  1008. package/packages/@monomind/guidance/dist/proof.js +0 -238
  1009. package/packages/@monomind/guidance/dist/retriever.d.ts +0 -116
  1010. package/packages/@monomind/guidance/dist/retriever.js +0 -394
  1011. package/packages/@monomind/guidance/dist/ruvbot-integration.d.ts +0 -370
  1012. package/packages/@monomind/guidance/dist/ruvbot-integration.js +0 -738
  1013. package/packages/@monomind/guidance/dist/temporal.d.ts +0 -426
  1014. package/packages/@monomind/guidance/dist/temporal.js +0 -658
  1015. package/packages/@monomind/guidance/dist/trust.d.ts +0 -283
  1016. package/packages/@monomind/guidance/dist/trust.js +0 -473
  1017. package/packages/@monomind/guidance/dist/truth-anchors.d.ts +0 -276
  1018. package/packages/@monomind/guidance/dist/truth-anchors.js +0 -488
  1019. package/packages/@monomind/guidance/dist/types.d.ts +0 -378
  1020. package/packages/@monomind/guidance/dist/types.js +0 -10
  1021. package/packages/@monomind/guidance/dist/uncertainty.d.ts +0 -372
  1022. package/packages/@monomind/guidance/dist/uncertainty.js +0 -619
  1023. package/packages/@monomind/guidance/dist/wasm-kernel.d.ts +0 -48
  1024. package/packages/@monomind/guidance/dist/wasm-kernel.js +0 -158
  1025. package/packages/@monomind/guidance/package.json +0 -198
  1026. package/packages/@monomind/shared/README.md +0 -323
  1027. package/packages/@monomind/shared/dist/agent-contract.d.ts +0 -28
  1028. package/packages/@monomind/shared/dist/agent-contract.js +0 -57
  1029. package/packages/@monomind/shared/dist/agent-error-result.d.ts +0 -17
  1030. package/packages/@monomind/shared/dist/agent-error-result.js +0 -23
  1031. package/packages/@monomind/shared/dist/core/config/defaults.d.ts +0 -41
  1032. package/packages/@monomind/shared/dist/core/config/defaults.js +0 -186
  1033. package/packages/@monomind/shared/dist/core/config/index.d.ts +0 -8
  1034. package/packages/@monomind/shared/dist/core/config/index.js +0 -12
  1035. package/packages/@monomind/shared/dist/core/config/loader.d.ts +0 -45
  1036. package/packages/@monomind/shared/dist/core/config/loader.js +0 -238
  1037. package/packages/@monomind/shared/dist/core/config/schema.d.ts +0 -324
  1038. package/packages/@monomind/shared/dist/core/config/schema.js +0 -160
  1039. package/packages/@monomind/shared/dist/core/config/validator.d.ts +0 -92
  1040. package/packages/@monomind/shared/dist/core/config/validator.js +0 -147
  1041. package/packages/@monomind/shared/dist/core/event-bus.d.ts +0 -31
  1042. package/packages/@monomind/shared/dist/core/event-bus.js +0 -197
  1043. package/packages/@monomind/shared/dist/core/index.d.ts +0 -15
  1044. package/packages/@monomind/shared/dist/core/index.js +0 -19
  1045. package/packages/@monomind/shared/dist/core/interfaces/agent.interface.d.ts +0 -200
  1046. package/packages/@monomind/shared/dist/core/interfaces/agent.interface.js +0 -6
  1047. package/packages/@monomind/shared/dist/core/interfaces/coordinator.interface.d.ts +0 -310
  1048. package/packages/@monomind/shared/dist/core/interfaces/coordinator.interface.js +0 -7
  1049. package/packages/@monomind/shared/dist/core/interfaces/event.interface.d.ts +0 -224
  1050. package/packages/@monomind/shared/dist/core/interfaces/event.interface.js +0 -46
  1051. package/packages/@monomind/shared/dist/core/interfaces/index.d.ts +0 -10
  1052. package/packages/@monomind/shared/dist/core/interfaces/index.js +0 -15
  1053. package/packages/@monomind/shared/dist/core/interfaces/memory.interface.d.ts +0 -298
  1054. package/packages/@monomind/shared/dist/core/interfaces/memory.interface.js +0 -7
  1055. package/packages/@monomind/shared/dist/core/interfaces/task.interface.d.ts +0 -185
  1056. package/packages/@monomind/shared/dist/core/interfaces/task.interface.js +0 -6
  1057. package/packages/@monomind/shared/dist/core/orchestrator/event-coordinator.d.ts +0 -35
  1058. package/packages/@monomind/shared/dist/core/orchestrator/event-coordinator.js +0 -101
  1059. package/packages/@monomind/shared/dist/core/orchestrator/health-monitor.d.ts +0 -60
  1060. package/packages/@monomind/shared/dist/core/orchestrator/health-monitor.js +0 -166
  1061. package/packages/@monomind/shared/dist/core/orchestrator/index.d.ts +0 -46
  1062. package/packages/@monomind/shared/dist/core/orchestrator/index.js +0 -64
  1063. package/packages/@monomind/shared/dist/core/orchestrator/lifecycle-manager.d.ts +0 -56
  1064. package/packages/@monomind/shared/dist/core/orchestrator/lifecycle-manager.js +0 -195
  1065. package/packages/@monomind/shared/dist/core/orchestrator/session-manager.d.ts +0 -83
  1066. package/packages/@monomind/shared/dist/core/orchestrator/session-manager.js +0 -193
  1067. package/packages/@monomind/shared/dist/core/orchestrator/task-manager.d.ts +0 -49
  1068. package/packages/@monomind/shared/dist/core/orchestrator/task-manager.js +0 -253
  1069. package/packages/@monomind/shared/dist/events/domain-events.d.ts +0 -282
  1070. package/packages/@monomind/shared/dist/events/domain-events.js +0 -165
  1071. package/packages/@monomind/shared/dist/events/event-store.d.ts +0 -126
  1072. package/packages/@monomind/shared/dist/events/event-store.js +0 -416
  1073. package/packages/@monomind/shared/dist/events/event-store.test.d.ts +0 -8
  1074. package/packages/@monomind/shared/dist/events/event-store.test.js +0 -293
  1075. package/packages/@monomind/shared/dist/events/example-usage.d.ts +0 -10
  1076. package/packages/@monomind/shared/dist/events/example-usage.js +0 -193
  1077. package/packages/@monomind/shared/dist/events/index.d.ts +0 -21
  1078. package/packages/@monomind/shared/dist/events/index.js +0 -22
  1079. package/packages/@monomind/shared/dist/events/projections.d.ts +0 -177
  1080. package/packages/@monomind/shared/dist/events/projections.js +0 -421
  1081. package/packages/@monomind/shared/dist/events/rvf-event-log.d.ts +0 -82
  1082. package/packages/@monomind/shared/dist/events/rvf-event-log.js +0 -340
  1083. package/packages/@monomind/shared/dist/events/state-reconstructor.d.ts +0 -101
  1084. package/packages/@monomind/shared/dist/events/state-reconstructor.js +0 -263
  1085. package/packages/@monomind/shared/dist/events.d.ts +0 -80
  1086. package/packages/@monomind/shared/dist/events.js +0 -249
  1087. package/packages/@monomind/shared/dist/hooks/example-usage.d.ts +0 -42
  1088. package/packages/@monomind/shared/dist/hooks/example-usage.js +0 -351
  1089. package/packages/@monomind/shared/dist/hooks/executor.d.ts +0 -100
  1090. package/packages/@monomind/shared/dist/hooks/executor.js +0 -264
  1091. package/packages/@monomind/shared/dist/hooks/hooks.test.d.ts +0 -9
  1092. package/packages/@monomind/shared/dist/hooks/hooks.test.js +0 -322
  1093. package/packages/@monomind/shared/dist/hooks/index.d.ts +0 -52
  1094. package/packages/@monomind/shared/dist/hooks/index.js +0 -51
  1095. package/packages/@monomind/shared/dist/hooks/registry.d.ts +0 -133
  1096. package/packages/@monomind/shared/dist/hooks/registry.js +0 -277
  1097. package/packages/@monomind/shared/dist/hooks/safety/bash-safety.d.ts +0 -105
  1098. package/packages/@monomind/shared/dist/hooks/safety/bash-safety.js +0 -481
  1099. package/packages/@monomind/shared/dist/hooks/safety/file-organization.d.ts +0 -144
  1100. package/packages/@monomind/shared/dist/hooks/safety/file-organization.js +0 -328
  1101. package/packages/@monomind/shared/dist/hooks/safety/git-commit.d.ts +0 -158
  1102. package/packages/@monomind/shared/dist/hooks/safety/git-commit.js +0 -450
  1103. package/packages/@monomind/shared/dist/hooks/safety/index.d.ts +0 -17
  1104. package/packages/@monomind/shared/dist/hooks/safety/index.js +0 -17
  1105. package/packages/@monomind/shared/dist/hooks/session-hooks.d.ts +0 -234
  1106. package/packages/@monomind/shared/dist/hooks/session-hooks.js +0 -334
  1107. package/packages/@monomind/shared/dist/hooks/task-hooks.d.ts +0 -163
  1108. package/packages/@monomind/shared/dist/hooks/task-hooks.js +0 -326
  1109. package/packages/@monomind/shared/dist/hooks/types.d.ts +0 -267
  1110. package/packages/@monomind/shared/dist/hooks/types.js +0 -62
  1111. package/packages/@monomind/shared/dist/hooks/verify-exports.test.d.ts +0 -9
  1112. package/packages/@monomind/shared/dist/hooks/verify-exports.test.js +0 -93
  1113. package/packages/@monomind/shared/dist/index.d.ts +0 -46
  1114. package/packages/@monomind/shared/dist/index.js +0 -77
  1115. package/packages/@monomind/shared/dist/mcp/connection-pool.d.ts +0 -98
  1116. package/packages/@monomind/shared/dist/mcp/connection-pool.js +0 -364
  1117. package/packages/@monomind/shared/dist/mcp/index.d.ts +0 -69
  1118. package/packages/@monomind/shared/dist/mcp/index.js +0 -84
  1119. package/packages/@monomind/shared/dist/mcp/server.d.ts +0 -166
  1120. package/packages/@monomind/shared/dist/mcp/server.js +0 -593
  1121. package/packages/@monomind/shared/dist/mcp/session-manager.d.ts +0 -136
  1122. package/packages/@monomind/shared/dist/mcp/session-manager.js +0 -335
  1123. package/packages/@monomind/shared/dist/mcp/tool-registry.d.ts +0 -178
  1124. package/packages/@monomind/shared/dist/mcp/tool-registry.js +0 -439
  1125. package/packages/@monomind/shared/dist/mcp/transport/http.d.ts +0 -104
  1126. package/packages/@monomind/shared/dist/mcp/transport/http.js +0 -476
  1127. package/packages/@monomind/shared/dist/mcp/transport/index.d.ts +0 -102
  1128. package/packages/@monomind/shared/dist/mcp/transport/index.js +0 -238
  1129. package/packages/@monomind/shared/dist/mcp/transport/stdio.d.ts +0 -104
  1130. package/packages/@monomind/shared/dist/mcp/transport/stdio.js +0 -263
  1131. package/packages/@monomind/shared/dist/mcp/transport/websocket.d.ts +0 -133
  1132. package/packages/@monomind/shared/dist/mcp/transport/websocket.js +0 -396
  1133. package/packages/@monomind/shared/dist/mcp/types.d.ts +0 -438
  1134. package/packages/@monomind/shared/dist/mcp/types.js +0 -54
  1135. package/packages/@monomind/shared/dist/plugin-interface.d.ts +0 -544
  1136. package/packages/@monomind/shared/dist/plugin-interface.js +0 -23
  1137. package/packages/@monomind/shared/dist/plugin-loader.d.ts +0 -139
  1138. package/packages/@monomind/shared/dist/plugin-loader.js +0 -434
  1139. package/packages/@monomind/shared/dist/plugin-registry.d.ts +0 -183
  1140. package/packages/@monomind/shared/dist/plugin-registry.js +0 -457
  1141. package/packages/@monomind/shared/dist/plugins/index.d.ts +0 -10
  1142. package/packages/@monomind/shared/dist/plugins/index.js +0 -10
  1143. package/packages/@monomind/shared/dist/plugins/official/hive-mind-plugin.d.ts +0 -106
  1144. package/packages/@monomind/shared/dist/plugins/official/hive-mind-plugin.js +0 -241
  1145. package/packages/@monomind/shared/dist/plugins/official/index.d.ts +0 -10
  1146. package/packages/@monomind/shared/dist/plugins/official/index.js +0 -10
  1147. package/packages/@monomind/shared/dist/plugins/official/maestro-plugin.d.ts +0 -121
  1148. package/packages/@monomind/shared/dist/plugins/official/maestro-plugin.js +0 -355
  1149. package/packages/@monomind/shared/dist/plugins/types.d.ts +0 -93
  1150. package/packages/@monomind/shared/dist/plugins/types.js +0 -9
  1151. package/packages/@monomind/shared/dist/reducers.d.ts +0 -33
  1152. package/packages/@monomind/shared/dist/reducers.js +0 -89
  1153. package/packages/@monomind/shared/dist/resilience/bulkhead.d.ts +0 -105
  1154. package/packages/@monomind/shared/dist/resilience/bulkhead.js +0 -206
  1155. package/packages/@monomind/shared/dist/resilience/circuit-breaker.d.ts +0 -132
  1156. package/packages/@monomind/shared/dist/resilience/circuit-breaker.js +0 -233
  1157. package/packages/@monomind/shared/dist/resilience/index.d.ts +0 -19
  1158. package/packages/@monomind/shared/dist/resilience/index.js +0 -19
  1159. package/packages/@monomind/shared/dist/resilience/rate-limiter.d.ts +0 -168
  1160. package/packages/@monomind/shared/dist/resilience/rate-limiter.js +0 -314
  1161. package/packages/@monomind/shared/dist/resilience/retry.d.ts +0 -91
  1162. package/packages/@monomind/shared/dist/resilience/retry.js +0 -159
  1163. package/packages/@monomind/shared/dist/retry-policy.d.ts +0 -14
  1164. package/packages/@monomind/shared/dist/retry-policy.js +0 -23
  1165. package/packages/@monomind/shared/dist/retry-runner.d.ts +0 -21
  1166. package/packages/@monomind/shared/dist/retry-runner.js +0 -57
  1167. package/packages/@monomind/shared/dist/schema-validator.d.ts +0 -46
  1168. package/packages/@monomind/shared/dist/schema-validator.js +0 -133
  1169. package/packages/@monomind/shared/dist/scratchpad.d.ts +0 -23
  1170. package/packages/@monomind/shared/dist/scratchpad.js +0 -32
  1171. package/packages/@monomind/shared/dist/security/index.d.ts +0 -10
  1172. package/packages/@monomind/shared/dist/security/index.js +0 -12
  1173. package/packages/@monomind/shared/dist/security/input-validation.d.ts +0 -73
  1174. package/packages/@monomind/shared/dist/security/input-validation.js +0 -201
  1175. package/packages/@monomind/shared/dist/security/secure-random.d.ts +0 -92
  1176. package/packages/@monomind/shared/dist/security/secure-random.js +0 -142
  1177. package/packages/@monomind/shared/dist/services/index.d.ts +0 -7
  1178. package/packages/@monomind/shared/dist/services/index.js +0 -7
  1179. package/packages/@monomind/shared/dist/services/progress.service.d.ts +0 -124
  1180. package/packages/@monomind/shared/dist/services/progress.service.js +0 -402
  1181. package/packages/@monomind/shared/dist/state-manager.d.ts +0 -34
  1182. package/packages/@monomind/shared/dist/state-manager.js +0 -73
  1183. package/packages/@monomind/shared/dist/state-validator.d.ts +0 -20
  1184. package/packages/@monomind/shared/dist/state-validator.js +0 -49
  1185. package/packages/@monomind/shared/dist/swarm-state.d.ts +0 -52
  1186. package/packages/@monomind/shared/dist/swarm-state.js +0 -18
  1187. package/packages/@monomind/shared/dist/testing/fixture-builder.d.ts +0 -14
  1188. package/packages/@monomind/shared/dist/testing/fixture-builder.js +0 -32
  1189. package/packages/@monomind/shared/dist/testing/index.d.ts +0 -2
  1190. package/packages/@monomind/shared/dist/testing/index.js +0 -2
  1191. package/packages/@monomind/shared/dist/testing/test-model.d.ts +0 -29
  1192. package/packages/@monomind/shared/dist/testing/test-model.js +0 -53
  1193. package/packages/@monomind/shared/dist/types/agent-registry.d.ts +0 -62
  1194. package/packages/@monomind/shared/dist/types/agent-registry.js +0 -8
  1195. package/packages/@monomind/shared/dist/types/agent-version.d.ts +0 -49
  1196. package/packages/@monomind/shared/dist/types/agent-version.js +0 -7
  1197. package/packages/@monomind/shared/dist/types/agent.types.d.ts +0 -137
  1198. package/packages/@monomind/shared/dist/types/agent.types.js +0 -6
  1199. package/packages/@monomind/shared/dist/types/benchmark.d.ts +0 -39
  1200. package/packages/@monomind/shared/dist/types/benchmark.js +0 -6
  1201. package/packages/@monomind/shared/dist/types/communication-flow.d.ts +0 -25
  1202. package/packages/@monomind/shared/dist/types/communication-flow.js +0 -7
  1203. package/packages/@monomind/shared/dist/types/consensus-audit.d.ts +0 -38
  1204. package/packages/@monomind/shared/dist/types/consensus-audit.js +0 -7
  1205. package/packages/@monomind/shared/dist/types/dlq.d.ts +0 -40
  1206. package/packages/@monomind/shared/dist/types/dlq.js +0 -7
  1207. package/packages/@monomind/shared/dist/types/eval.d.ts +0 -59
  1208. package/packages/@monomind/shared/dist/types/eval.js +0 -6
  1209. package/packages/@monomind/shared/dist/types/index.d.ts +0 -19
  1210. package/packages/@monomind/shared/dist/types/index.js +0 -33
  1211. package/packages/@monomind/shared/dist/types/mcp.types.d.ts +0 -266
  1212. package/packages/@monomind/shared/dist/types/mcp.types.js +0 -7
  1213. package/packages/@monomind/shared/dist/types/memory.types.d.ts +0 -236
  1214. package/packages/@monomind/shared/dist/types/memory.types.js +0 -7
  1215. package/packages/@monomind/shared/dist/types/retry.d.ts +0 -72
  1216. package/packages/@monomind/shared/dist/types/retry.js +0 -40
  1217. package/packages/@monomind/shared/dist/types/specialization.d.ts +0 -27
  1218. package/packages/@monomind/shared/dist/types/specialization.js +0 -8
  1219. package/packages/@monomind/shared/dist/types/swarm.types.d.ts +0 -186
  1220. package/packages/@monomind/shared/dist/types/swarm.types.js +0 -65
  1221. package/packages/@monomind/shared/dist/types/task.types.d.ts +0 -178
  1222. package/packages/@monomind/shared/dist/types/task.types.js +0 -32
  1223. package/packages/@monomind/shared/dist/types/termination.d.ts +0 -29
  1224. package/packages/@monomind/shared/dist/types/termination.js +0 -14
  1225. package/packages/@monomind/shared/dist/types/tool-version.d.ts +0 -41
  1226. package/packages/@monomind/shared/dist/types/tool-version.js +0 -8
  1227. package/packages/@monomind/shared/dist/types/trigger.d.ts +0 -40
  1228. package/packages/@monomind/shared/dist/types/trigger.js +0 -8
  1229. package/packages/@monomind/shared/dist/types.d.ts +0 -197
  1230. package/packages/@monomind/shared/dist/types.js +0 -21
  1231. package/packages/@monomind/shared/dist/utils/secure-logger.d.ts +0 -69
  1232. package/packages/@monomind/shared/dist/utils/secure-logger.js +0 -208
  1233. package/packages/@monomind/shared/package.json +0 -42
  1234. package/packages/README.md +0 -514
@@ -1,1988 +0,0 @@
1
- #!/usr/bin/env node
2
- /**
3
- * Context Persistence Hook (ADR-051)
4
- *
5
- * Intercepts Claude Code's PreCompact, SessionStart, and UserPromptSubmit
6
- * lifecycle events to persist conversation history in SQLite (primary),
7
- * RuVector PostgreSQL (optional), or JSON (fallback), enabling "infinite
8
- * context" across compaction boundaries.
9
- *
10
- * Backend priority:
11
- * 1. better-sqlite3 (native, WAL mode, indexed queries, ACID transactions)
12
- * 2. RuVector PostgreSQL (if RUVECTOR_* env vars set - TB-scale, GNN search)
13
- * 3. AgentDB from @monomind/memory (HNSW vector search)
14
- * 4. JsonFileBackend (zero dependencies, always works)
15
- *
16
- * Proactive archiving:
17
- * - UserPromptSubmit hook archives on every prompt, BEFORE context fills up
18
- * - PreCompact hook is a safety net that catches any remaining unarchived turns
19
- * - SessionStart hook restores context after compaction
20
- * - Together, compaction becomes invisible — no information is ever lost
21
- *
22
- * Usage:
23
- * node context-persistence-hook.mjs pre-compact # PreCompact: archive transcript
24
- * node context-persistence-hook.mjs session-start # SessionStart: restore context
25
- * node context-persistence-hook.mjs user-prompt-submit # UserPromptSubmit: proactive archive
26
- * node context-persistence-hook.mjs status # Show archive stats
27
- */
28
-
29
- import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'fs';
30
- import { createHash } from 'crypto';
31
- import { join, dirname } from 'path';
32
- import { fileURLToPath } from 'url';
33
- import { createRequire } from 'module';
34
-
35
- const __filename = fileURLToPath(import.meta.url);
36
- const __dirname = dirname(__filename);
37
- const PROJECT_ROOT = join(__dirname, '../..');
38
- const DATA_DIR = join(PROJECT_ROOT, '.monomind', 'data');
39
- const ARCHIVE_JSON_PATH = join(DATA_DIR, 'transcript-archive.json');
40
- const ARCHIVE_DB_PATH = join(DATA_DIR, 'transcript-archive.db');
41
-
42
- const NAMESPACE = 'transcript-archive';
43
- const RESTORE_BUDGET = parseInt(process.env.MONOMIND_COMPACT_RESTORE_BUDGET || '4000', 10);
44
- const MAX_MESSAGES = 500;
45
- const BLOCK_COMPACTION = process.env.MONOMIND_BLOCK_COMPACTION === 'true';
46
- const COMPACT_INSTRUCTION_BUDGET = parseInt(process.env.MONOMIND_COMPACT_INSTRUCTION_BUDGET || '2000', 10);
47
- const RETENTION_DAYS = parseInt(process.env.MONOMIND_RETENTION_DAYS || '30', 10);
48
- const AUTO_OPTIMIZE = process.env.MONOMIND_AUTO_OPTIMIZE !== 'false'; // on by default
49
-
50
- // ============================================================================
51
- // Context Autopilot — prevent compaction by managing context size in real-time
52
- // ============================================================================
53
- const AUTOPILOT_ENABLED = process.env.MONOMIND_CONTEXT_AUTOPILOT !== 'false'; // on by default
54
- const CONTEXT_WINDOW_TOKENS = parseInt(process.env.MONOMIND_CONTEXT_WINDOW || '200000', 10);
55
- const AUTOPILOT_WARN_PCT = parseFloat(process.env.MONOMIND_AUTOPILOT_WARN || '0.70');
56
- const AUTOPILOT_PRUNE_PCT = parseFloat(process.env.MONOMIND_AUTOPILOT_PRUNE || '0.85');
57
- const AUTOPILOT_STATE_PATH = join(DATA_DIR, 'autopilot-state.json');
58
-
59
- // Approximate tokens per character (Claude averages ~3.5 chars per token)
60
- const CHARS_PER_TOKEN = 3.5;
61
-
62
- // Ensure data dir
63
- if (!existsSync(DATA_DIR)) mkdirSync(DATA_DIR, { recursive: true });
64
-
65
- // ============================================================================
66
- // SQLite Backend (better-sqlite3 — synchronous, fast, WAL mode)
67
- // ============================================================================
68
-
69
- class SQLiteBackend {
70
- constructor(dbPath) {
71
- this.dbPath = dbPath;
72
- this.db = null;
73
- }
74
-
75
- async initialize() {
76
- const require = createRequire(import.meta.url);
77
- const Database = require('better-sqlite3');
78
- this.db = new Database(this.dbPath);
79
-
80
- // Performance optimizations
81
- this.db.pragma('journal_mode = WAL');
82
- this.db.pragma('synchronous = NORMAL');
83
- this.db.pragma('cache_size = 5000');
84
- this.db.pragma('temp_store = MEMORY');
85
-
86
- // Create schema
87
- this.db.exec(`
88
- CREATE TABLE IF NOT EXISTS transcript_entries (
89
- id TEXT PRIMARY KEY,
90
- key TEXT NOT NULL,
91
- content TEXT NOT NULL,
92
- type TEXT NOT NULL DEFAULT 'episodic',
93
- namespace TEXT NOT NULL DEFAULT 'transcript-archive',
94
- tags TEXT NOT NULL DEFAULT '[]',
95
- metadata TEXT NOT NULL DEFAULT '{}',
96
- access_level TEXT NOT NULL DEFAULT 'private',
97
- created_at INTEGER NOT NULL,
98
- updated_at INTEGER NOT NULL,
99
- version INTEGER NOT NULL DEFAULT 1,
100
- access_count INTEGER NOT NULL DEFAULT 0,
101
- last_accessed_at INTEGER NOT NULL,
102
- content_hash TEXT,
103
- session_id TEXT,
104
- chunk_index INTEGER,
105
- summary TEXT
106
- );
107
-
108
- CREATE INDEX IF NOT EXISTS idx_te_namespace ON transcript_entries(namespace);
109
- CREATE INDEX IF NOT EXISTS idx_te_session ON transcript_entries(session_id);
110
- CREATE INDEX IF NOT EXISTS idx_te_hash ON transcript_entries(content_hash);
111
- CREATE INDEX IF NOT EXISTS idx_te_chunk ON transcript_entries(session_id, chunk_index);
112
- CREATE INDEX IF NOT EXISTS idx_te_created ON transcript_entries(created_at);
113
- `);
114
-
115
- // Schema migration: add confidence + embedding columns (self-learning support)
116
- try {
117
- this.db.exec(`ALTER TABLE transcript_entries ADD COLUMN confidence REAL NOT NULL DEFAULT 0.8`);
118
- } catch { /* column already exists */ }
119
- try {
120
- this.db.exec(`ALTER TABLE transcript_entries ADD COLUMN embedding BLOB`);
121
- } catch { /* column already exists */ }
122
- try {
123
- this.db.exec(`CREATE INDEX IF NOT EXISTS idx_te_confidence ON transcript_entries(confidence)`);
124
- } catch { /* index already exists */ }
125
-
126
- // Prepare statements for reuse
127
- this._stmts = {
128
- insert: this.db.prepare(`
129
- INSERT OR IGNORE INTO transcript_entries
130
- (id, key, content, type, namespace, tags, metadata, access_level,
131
- created_at, updated_at, version, access_count, last_accessed_at,
132
- content_hash, session_id, chunk_index, summary)
133
- VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
134
- `),
135
- queryByNamespace: this.db.prepare(
136
- 'SELECT * FROM transcript_entries WHERE namespace = ? ORDER BY created_at DESC'
137
- ),
138
- queryBySession: this.db.prepare(
139
- 'SELECT * FROM transcript_entries WHERE namespace = ? AND session_id = ? ORDER BY chunk_index DESC'
140
- ),
141
- countAll: this.db.prepare('SELECT COUNT(*) as cnt FROM transcript_entries'),
142
- countByNamespace: this.db.prepare(
143
- 'SELECT COUNT(*) as cnt FROM transcript_entries WHERE namespace = ?'
144
- ),
145
- hashExists: this.db.prepare(
146
- 'SELECT 1 FROM transcript_entries WHERE content_hash = ? LIMIT 1'
147
- ),
148
- listNamespaces: this.db.prepare(
149
- 'SELECT DISTINCT namespace FROM transcript_entries'
150
- ),
151
- listSessions: this.db.prepare(
152
- 'SELECT session_id, COUNT(*) as cnt FROM transcript_entries WHERE namespace = ? GROUP BY session_id ORDER BY MAX(created_at) DESC'
153
- ),
154
- };
155
-
156
- this._bulkInsert = this.db.transaction((entries) => {
157
- for (const e of entries) {
158
- this._stmts.insert.run(
159
- e.id, e.key, e.content, e.type, e.namespace,
160
- JSON.stringify(e.tags), JSON.stringify(e.metadata), e.accessLevel,
161
- e.createdAt, e.updatedAt, e.version, e.accessCount, e.lastAccessedAt,
162
- e.metadata?.contentHash || null,
163
- e.metadata?.sessionId || null,
164
- e.metadata?.chunkIndex ?? null,
165
- e.metadata?.summary || null
166
- );
167
- }
168
- });
169
-
170
- // Optimization statements
171
- this._stmts.markAccessed = this.db.prepare(
172
- 'UPDATE transcript_entries SET access_count = access_count + 1, last_accessed_at = ? WHERE id = ?'
173
- );
174
- this._stmts.pruneStale = this.db.prepare(
175
- 'DELETE FROM transcript_entries WHERE namespace = ? AND access_count = 0 AND created_at < ?'
176
- );
177
- this._stmts.queryByImportance = this.db.prepare(`
178
- SELECT *, (
179
- (CAST(access_count AS REAL) + 1) *
180
- (1.0 / (1.0 + (? - created_at) / 86400000.0)) *
181
- (CASE WHEN json_array_length(json_extract(metadata, '$.toolNames')) > 0 THEN 1.5 ELSE 1.0 END) *
182
- (CASE WHEN json_array_length(json_extract(metadata, '$.filePaths')) > 0 THEN 1.3 ELSE 1.0 END)
183
- ) AS importance_score
184
- FROM transcript_entries
185
- WHERE namespace = ? AND session_id = ?
186
- ORDER BY importance_score DESC
187
- `);
188
- this._stmts.allForSync = this.db.prepare(
189
- 'SELECT * FROM transcript_entries WHERE namespace = ? ORDER BY created_at ASC'
190
- );
191
- }
192
-
193
- async store(entry) {
194
- this._stmts.insert.run(
195
- entry.id, entry.key, entry.content, entry.type, entry.namespace,
196
- JSON.stringify(entry.tags), JSON.stringify(entry.metadata), entry.accessLevel,
197
- entry.createdAt, entry.updatedAt, entry.version, entry.accessCount, entry.lastAccessedAt,
198
- entry.metadata?.contentHash || null,
199
- entry.metadata?.sessionId || null,
200
- entry.metadata?.chunkIndex ?? null,
201
- entry.metadata?.summary || null
202
- );
203
- }
204
-
205
- async bulkInsert(entries) {
206
- this._bulkInsert(entries);
207
- }
208
-
209
- async query(opts) {
210
- let rows;
211
- if (opts?.namespace && opts?.sessionId) {
212
- rows = this._stmts.queryBySession.all(opts.namespace, opts.sessionId);
213
- } else if (opts?.namespace) {
214
- rows = this._stmts.queryByNamespace.all(opts.namespace);
215
- } else {
216
- rows = this.db.prepare('SELECT * FROM transcript_entries ORDER BY created_at DESC').all();
217
- }
218
- return rows.map(r => this._rowToEntry(r));
219
- }
220
-
221
- async queryBySession(namespace, sessionId) {
222
- const rows = this._stmts.queryBySession.all(namespace, sessionId);
223
- return rows.map(r => this._rowToEntry(r));
224
- }
225
-
226
- hashExists(hash) {
227
- return !!this._stmts.hashExists.get(hash);
228
- }
229
-
230
- async count(namespace) {
231
- if (namespace) {
232
- return this._stmts.countByNamespace.get(namespace).cnt;
233
- }
234
- return this._stmts.countAll.get().cnt;
235
- }
236
-
237
- async listNamespaces() {
238
- return this._stmts.listNamespaces.all().map(r => r.namespace);
239
- }
240
-
241
- async listSessions(namespace) {
242
- return this._stmts.listSessions.all(namespace || NAMESPACE);
243
- }
244
-
245
- markAccessed(ids) {
246
- const now = Date.now();
247
- const boostStmt = this.db.prepare(
248
- 'UPDATE transcript_entries SET access_count = access_count + 1, last_accessed_at = ?, confidence = MIN(1.0, confidence + 0.03) WHERE id = ?'
249
- );
250
- for (const id of ids) {
251
- boostStmt.run(now, id);
252
- }
253
- }
254
-
255
- /**
256
- * Confidence decay: reduce confidence for entries not accessed recently.
257
- * Decay rate: 0.5% per hour (matches LearningBridge default).
258
- * Entries with confidence below 0.1 are floor-clamped.
259
- */
260
- decayConfidence(namespace, hoursElapsed = 1) {
261
- const decayRate = 0.005 * hoursElapsed;
262
- const result = this.db.prepare(
263
- 'UPDATE transcript_entries SET confidence = MAX(0.1, confidence - ?) WHERE namespace = ? AND confidence > 0.1'
264
- ).run(decayRate, namespace || NAMESPACE);
265
- return result.changes;
266
- }
267
-
268
- /**
269
- * Store embedding blob for an entry (768-dim Float32Array → Buffer).
270
- */
271
- storeEmbedding(id, embedding) {
272
- const buf = Buffer.from(embedding.buffer, embedding.byteOffset, embedding.byteLength);
273
- this.db.prepare('UPDATE transcript_entries SET embedding = ? WHERE id = ?').run(buf, id);
274
- }
275
-
276
- /**
277
- * Cosine similarity search across all entries with embeddings.
278
- * Handles both 384-dim (ONNX) and 768-dim (legacy hash) embeddings.
279
- * Returns top-k entries ranked by similarity to the query embedding.
280
- */
281
- semanticSearch(queryEmbedding, k = 10, namespace) {
282
- const rows = this.db.prepare(
283
- 'SELECT id, embedding, summary, session_id, chunk_index, confidence, access_count FROM transcript_entries WHERE namespace = ? AND embedding IS NOT NULL'
284
- ).all(namespace || NAMESPACE);
285
-
286
- const queryDim = queryEmbedding.length;
287
- const scored = [];
288
- for (const row of rows) {
289
- if (!row.embedding) continue;
290
- const stored = new Float32Array(row.embedding.buffer, row.embedding.byteOffset, row.embedding.byteLength / 4);
291
- // Only compare if dimensions match
292
- if (stored.length !== queryDim) continue;
293
- let dot = 0;
294
- for (let i = 0; i < queryDim; i++) {
295
- dot += queryEmbedding[i] * stored[i];
296
- }
297
- // Boost by confidence (self-learning signal)
298
- const score = dot * (row.confidence || 0.8);
299
- scored.push({ id: row.id, score, summary: row.summary, sessionId: row.session_id, chunkIndex: row.chunk_index, confidence: row.confidence, accessCount: row.access_count });
300
- }
301
-
302
- scored.sort((a, b) => b.score - a.score);
303
- return scored.slice(0, k);
304
- }
305
-
306
- /**
307
- * Smart pruning: prune by confidence instead of just age.
308
- * Removes entries with confidence <= threshold AND access_count = 0.
309
- */
310
- pruneByConfidence(namespace, threshold = 0.2) {
311
- const result = this.db.prepare(
312
- 'DELETE FROM transcript_entries WHERE namespace = ? AND confidence <= ? AND access_count = 0'
313
- ).run(namespace || NAMESPACE, threshold);
314
- return result.changes;
315
- }
316
-
317
- pruneStale(namespace, maxAgeDays) {
318
- const cutoff = Date.now() - (maxAgeDays * 24 * 60 * 60 * 1000);
319
- const result = this._stmts.pruneStale.run(namespace || NAMESPACE, cutoff);
320
- return result.changes;
321
- }
322
-
323
- queryByImportance(namespace, sessionId) {
324
- const now = Date.now();
325
- const rows = this._stmts.queryByImportance.all(now, namespace, sessionId);
326
- return rows.map(r => ({ ...this._rowToEntry(r), importanceScore: r.importance_score }));
327
- }
328
-
329
- allForSync(namespace) {
330
- const rows = this._stmts.allForSync.all(namespace || NAMESPACE);
331
- return rows.map(r => this._rowToEntry(r));
332
- }
333
-
334
- async shutdown() {
335
- if (this.db) {
336
- this.db.pragma('optimize');
337
- this.db.close();
338
- this.db = null;
339
- }
340
- }
341
-
342
- _rowToEntry(row) {
343
- return {
344
- id: row.id,
345
- key: row.key,
346
- content: row.content,
347
- type: row.type,
348
- namespace: row.namespace,
349
- tags: JSON.parse(row.tags),
350
- metadata: JSON.parse(row.metadata),
351
- accessLevel: row.access_level,
352
- createdAt: row.created_at,
353
- updatedAt: row.updated_at,
354
- version: row.version,
355
- accessCount: row.access_count,
356
- lastAccessedAt: row.last_accessed_at,
357
- references: [],
358
- };
359
- }
360
- }
361
-
362
- // ============================================================================
363
- // JSON File Backend (fallback when better-sqlite3 unavailable)
364
- // ============================================================================
365
-
366
- class JsonFileBackend {
367
- constructor(filePath) {
368
- this.filePath = filePath;
369
- this.entries = new Map();
370
- }
371
-
372
- async initialize() {
373
- if (existsSync(this.filePath)) {
374
- try {
375
- const data = JSON.parse(readFileSync(this.filePath, 'utf-8'));
376
- if (Array.isArray(data)) {
377
- for (const entry of data) this.entries.set(entry.id, entry);
378
- }
379
- } catch { /* start fresh */ }
380
- }
381
- }
382
-
383
- async store(entry) { this.entries.set(entry.id, entry); this._persist(); }
384
-
385
- async bulkInsert(entries) {
386
- for (const e of entries) this.entries.set(e.id, e);
387
- this._persist();
388
- }
389
-
390
- async query(opts) {
391
- let results = [...this.entries.values()];
392
- if (opts?.namespace) results = results.filter(e => e.namespace === opts.namespace);
393
- if (opts?.type) results = results.filter(e => e.type === opts.type);
394
- if (opts?.limit) results = results.slice(0, opts.limit);
395
- return results;
396
- }
397
-
398
- async queryBySession(namespace, sessionId) {
399
- return [...this.entries.values()]
400
- .filter(e => e.namespace === namespace && e.metadata?.sessionId === sessionId)
401
- .sort((a, b) => (b.metadata?.chunkIndex ?? 0) - (a.metadata?.chunkIndex ?? 0));
402
- }
403
-
404
- hashExists(hash) {
405
- for (const e of this.entries.values()) {
406
- if (e.metadata?.contentHash === hash) return true;
407
- }
408
- return false;
409
- }
410
-
411
- async count(namespace) {
412
- if (!namespace) return this.entries.size;
413
- let n = 0;
414
- for (const e of this.entries.values()) {
415
- if (e.namespace === namespace) n++;
416
- }
417
- return n;
418
- }
419
-
420
- async listNamespaces() {
421
- const ns = new Set();
422
- for (const e of this.entries.values()) ns.add(e.namespace || 'default');
423
- return [...ns];
424
- }
425
-
426
- async listSessions(namespace) {
427
- const sessions = new Map();
428
- for (const e of this.entries.values()) {
429
- if (e.namespace === (namespace || NAMESPACE) && e.metadata?.sessionId) {
430
- sessions.set(e.metadata.sessionId, (sessions.get(e.metadata.sessionId) || 0) + 1);
431
- }
432
- }
433
- return [...sessions.entries()].map(([session_id, cnt]) => ({ session_id, cnt }));
434
- }
435
-
436
- async shutdown() { this._persist(); }
437
-
438
- _persist() {
439
- try {
440
- writeFileSync(this.filePath, JSON.stringify([...this.entries.values()], null, 2), 'utf-8');
441
- } catch { /* best effort */ }
442
- }
443
- }
444
-
445
- // ============================================================================
446
- // RuVector PostgreSQL Backend (optional, TB-scale, GNN-enhanced)
447
- // ============================================================================
448
-
449
- class RuVectorBackend {
450
- constructor(config) {
451
- this.config = config;
452
- this.pool = null;
453
- }
454
-
455
- async initialize() {
456
- const pg = await import('pg');
457
- const Pool = pg.default?.Pool || pg.Pool;
458
- this.pool = new Pool({
459
- host: this.config.host,
460
- port: this.config.port || 5432,
461
- database: this.config.database,
462
- user: this.config.user,
463
- password: this.config.password,
464
- ssl: this.config.ssl || false,
465
- max: 3,
466
- idleTimeoutMillis: 10000,
467
- connectionTimeoutMillis: 3000,
468
- application_name: 'monomind-context-persistence',
469
- });
470
-
471
- // Test connection and create schema
472
- const client = await this.pool.connect();
473
- try {
474
- await client.query(`
475
- CREATE TABLE IF NOT EXISTS transcript_entries (
476
- id TEXT PRIMARY KEY,
477
- key TEXT NOT NULL,
478
- content TEXT NOT NULL,
479
- type TEXT NOT NULL DEFAULT 'episodic',
480
- namespace TEXT NOT NULL DEFAULT 'transcript-archive',
481
- tags JSONB NOT NULL DEFAULT '[]',
482
- metadata JSONB NOT NULL DEFAULT '{}',
483
- access_level TEXT NOT NULL DEFAULT 'private',
484
- created_at BIGINT NOT NULL,
485
- updated_at BIGINT NOT NULL,
486
- version INTEGER NOT NULL DEFAULT 1,
487
- access_count INTEGER NOT NULL DEFAULT 0,
488
- last_accessed_at BIGINT NOT NULL,
489
- content_hash TEXT,
490
- session_id TEXT,
491
- chunk_index INTEGER,
492
- summary TEXT,
493
- embedding vector(768)
494
- );
495
-
496
- CREATE INDEX IF NOT EXISTS idx_te_namespace ON transcript_entries(namespace);
497
- CREATE INDEX IF NOT EXISTS idx_te_session ON transcript_entries(session_id);
498
- CREATE INDEX IF NOT EXISTS idx_te_hash ON transcript_entries(content_hash);
499
- CREATE INDEX IF NOT EXISTS idx_te_chunk ON transcript_entries(session_id, chunk_index);
500
- CREATE INDEX IF NOT EXISTS idx_te_created ON transcript_entries(created_at);
501
- `);
502
- } finally {
503
- client.release();
504
- }
505
- }
506
-
507
- async store(entry) {
508
- const embeddingArr = entry._embedding
509
- ? `[${Array.from(entry._embedding).join(',')}]`
510
- : null;
511
- await this.pool.query(
512
- `INSERT INTO transcript_entries
513
- (id, key, content, type, namespace, tags, metadata, access_level,
514
- created_at, updated_at, version, access_count, last_accessed_at,
515
- content_hash, session_id, chunk_index, summary, embedding)
516
- VALUES ($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18)
517
- ON CONFLICT (id) DO NOTHING`,
518
- [
519
- entry.id, entry.key, entry.content, entry.type, entry.namespace,
520
- JSON.stringify(entry.tags), JSON.stringify(entry.metadata), entry.accessLevel,
521
- entry.createdAt, entry.updatedAt, entry.version, entry.accessCount, entry.lastAccessedAt,
522
- entry.metadata?.contentHash || null,
523
- entry.metadata?.sessionId || null,
524
- entry.metadata?.chunkIndex ?? null,
525
- entry.metadata?.summary || null,
526
- embeddingArr,
527
- ]
528
- );
529
- }
530
-
531
- async bulkInsert(entries) {
532
- const client = await this.pool.connect();
533
- try {
534
- await client.query('BEGIN');
535
- for (const entry of entries) {
536
- const embeddingArr = entry._embedding
537
- ? `[${Array.from(entry._embedding).join(',')}]`
538
- : null;
539
- await client.query(
540
- `INSERT INTO transcript_entries
541
- (id, key, content, type, namespace, tags, metadata, access_level,
542
- created_at, updated_at, version, access_count, last_accessed_at,
543
- content_hash, session_id, chunk_index, summary, embedding)
544
- VALUES ($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18)
545
- ON CONFLICT (id) DO NOTHING`,
546
- [
547
- entry.id, entry.key, entry.content, entry.type, entry.namespace,
548
- JSON.stringify(entry.tags), JSON.stringify(entry.metadata), entry.accessLevel,
549
- entry.createdAt, entry.updatedAt, entry.version, entry.accessCount, entry.lastAccessedAt,
550
- entry.metadata?.contentHash || null,
551
- entry.metadata?.sessionId || null,
552
- entry.metadata?.chunkIndex ?? null,
553
- entry.metadata?.summary || null,
554
- embeddingArr,
555
- ]
556
- );
557
- }
558
- await client.query('COMMIT');
559
- } catch (err) {
560
- await client.query('ROLLBACK');
561
- throw err;
562
- } finally {
563
- client.release();
564
- }
565
- }
566
-
567
- async query(opts) {
568
- let sql = 'SELECT * FROM transcript_entries';
569
- const params = [];
570
- const clauses = [];
571
- if (opts?.namespace) { params.push(opts.namespace); clauses.push(`namespace = $${params.length}`); }
572
- if (clauses.length) sql += ' WHERE ' + clauses.join(' AND ');
573
- sql += ' ORDER BY created_at DESC';
574
- if (opts?.limit) { params.push(opts.limit); sql += ` LIMIT $${params.length}`; }
575
- const { rows } = await this.pool.query(sql, params);
576
- return rows.map(r => this._rowToEntry(r));
577
- }
578
-
579
- async queryBySession(namespace, sessionId) {
580
- const { rows } = await this.pool.query(
581
- 'SELECT * FROM transcript_entries WHERE namespace = $1 AND session_id = $2 ORDER BY chunk_index DESC',
582
- [namespace, sessionId]
583
- );
584
- return rows.map(r => this._rowToEntry(r));
585
- }
586
-
587
- hashExists(hash) {
588
- // Synchronous check not possible with pg — use a cached check
589
- // The bulkInsert uses ON CONFLICT DO NOTHING for dedup at DB level
590
- return false;
591
- }
592
-
593
- async hashExistsAsync(hash) {
594
- const { rows } = await this.pool.query(
595
- 'SELECT 1 FROM transcript_entries WHERE content_hash = $1 LIMIT 1',
596
- [hash]
597
- );
598
- return rows.length > 0;
599
- }
600
-
601
- async count(namespace) {
602
- const sql = namespace
603
- ? 'SELECT COUNT(*) as cnt FROM transcript_entries WHERE namespace = $1'
604
- : 'SELECT COUNT(*) as cnt FROM transcript_entries';
605
- const params = namespace ? [namespace] : [];
606
- const { rows } = await this.pool.query(sql, params);
607
- return parseInt(rows[0].cnt, 10);
608
- }
609
-
610
- async listNamespaces() {
611
- const { rows } = await this.pool.query('SELECT DISTINCT namespace FROM transcript_entries');
612
- return rows.map(r => r.namespace);
613
- }
614
-
615
- async listSessions(namespace) {
616
- const { rows } = await this.pool.query(
617
- `SELECT session_id, COUNT(*) as cnt FROM transcript_entries
618
- WHERE namespace = $1 GROUP BY session_id ORDER BY MAX(created_at) DESC`,
619
- [namespace || NAMESPACE]
620
- );
621
- return rows.map(r => ({ session_id: r.session_id, cnt: parseInt(r.cnt, 10) }));
622
- }
623
-
624
- async markAccessed(ids) {
625
- const now = Date.now();
626
- for (const id of ids) {
627
- await this.pool.query(
628
- 'UPDATE transcript_entries SET access_count = access_count + 1, last_accessed_at = $1 WHERE id = $2',
629
- [now, id]
630
- );
631
- }
632
- }
633
-
634
- async pruneStale(namespace, maxAgeDays) {
635
- const cutoff = Date.now() - (maxAgeDays * 24 * 60 * 60 * 1000);
636
- const { rowCount } = await this.pool.query(
637
- 'DELETE FROM transcript_entries WHERE namespace = $1 AND access_count = 0 AND created_at < $2',
638
- [namespace || NAMESPACE, cutoff]
639
- );
640
- return rowCount;
641
- }
642
-
643
- async queryByImportance(namespace, sessionId) {
644
- const now = Date.now();
645
- const { rows } = await this.pool.query(`
646
- SELECT *, (
647
- (CAST(access_count AS REAL) + 1) *
648
- (1.0 / (1.0 + ($1 - created_at) / 86400000.0)) *
649
- (CASE WHEN jsonb_array_length(metadata->'toolNames') > 0 THEN 1.5 ELSE 1.0 END) *
650
- (CASE WHEN jsonb_array_length(metadata->'filePaths') > 0 THEN 1.3 ELSE 1.0 END)
651
- ) AS importance_score
652
- FROM transcript_entries
653
- WHERE namespace = $2 AND session_id = $3
654
- ORDER BY importance_score DESC
655
- `, [now, namespace, sessionId]);
656
- return rows.map(r => ({ ...this._rowToEntry(r), importanceScore: r.importance_score }));
657
- }
658
-
659
- async shutdown() {
660
- if (this.pool) {
661
- await this.pool.end();
662
- this.pool = null;
663
- }
664
- }
665
-
666
- _rowToEntry(row) {
667
- return {
668
- id: row.id,
669
- key: row.key,
670
- content: row.content,
671
- type: row.type,
672
- namespace: row.namespace,
673
- tags: typeof row.tags === 'string' ? JSON.parse(row.tags) : row.tags,
674
- metadata: typeof row.metadata === 'string' ? JSON.parse(row.metadata) : row.metadata,
675
- accessLevel: row.access_level,
676
- createdAt: parseInt(row.created_at, 10),
677
- updatedAt: parseInt(row.updated_at, 10),
678
- version: row.version,
679
- accessCount: row.access_count,
680
- lastAccessedAt: parseInt(row.last_accessed_at, 10),
681
- references: [],
682
- };
683
- }
684
- }
685
-
686
- /**
687
- * Parse RuVector config from environment variables.
688
- * Returns null if required vars are not set.
689
- */
690
- function getRuVectorConfig() {
691
- const host = process.env.RUVECTOR_HOST || process.env.PGHOST;
692
- const database = process.env.RUVECTOR_DATABASE || process.env.PGDATABASE;
693
- const user = process.env.RUVECTOR_USER || process.env.PGUSER;
694
- const password = process.env.RUVECTOR_PASSWORD || process.env.PGPASSWORD;
695
-
696
- if (!host || !database || !user) return null;
697
-
698
- return {
699
- host,
700
- port: parseInt(process.env.RUVECTOR_PORT || process.env.PGPORT || '5432', 10),
701
- database,
702
- user,
703
- password: password || '',
704
- ssl: process.env.RUVECTOR_SSL === 'true',
705
- };
706
- }
707
-
708
- // ============================================================================
709
- // Backend resolution: SQLite > RuVector PostgreSQL > AgentDB > JSON
710
- // ============================================================================
711
-
712
- async function resolveBackend() {
713
- // Tier 1: better-sqlite3 (native, fastest, local)
714
- try {
715
- const backend = new SQLiteBackend(ARCHIVE_DB_PATH);
716
- await backend.initialize();
717
- return { backend, type: 'sqlite' };
718
- } catch { /* fall through */ }
719
-
720
- // Tier 2: RuVector PostgreSQL (TB-scale, vector search, GNN)
721
- try {
722
- const rvConfig = getRuVectorConfig();
723
- if (rvConfig) {
724
- const backend = new RuVectorBackend(rvConfig);
725
- await backend.initialize();
726
- return { backend, type: 'ruvector' };
727
- }
728
- } catch { /* fall through */ }
729
-
730
- // Tier 3: AgentDB from @monomind/memory (HNSW)
731
- try {
732
- const localDist = join(PROJECT_ROOT, 'packages/@monomind/memory/dist/index.js');
733
- let memPkg = null;
734
- if (existsSync(localDist)) {
735
- memPkg = await import(`file://${localDist}`);
736
- } else {
737
- memPkg = await import('@monomind/memory');
738
- }
739
- if (memPkg?.AgentDBBackend) {
740
- const backend = new memPkg.AgentDBBackend();
741
- await backend.initialize();
742
- return { backend, type: 'agentdb' };
743
- }
744
- } catch { /* fall through */ }
745
-
746
- // Tier 4: JSON file (always works)
747
- const backend = new JsonFileBackend(ARCHIVE_JSON_PATH);
748
- await backend.initialize();
749
- return { backend, type: 'json' };
750
- }
751
-
752
- // ============================================================================
753
- // ONNX Embedding (384-dim, all-MiniLM-L6-v2 via @xenova/transformers)
754
- // ============================================================================
755
-
756
- const EMBEDDING_DIM = 384; // ONNX all-MiniLM-L6-v2 output dimension
757
- let _onnxPipeline = null;
758
- let _onnxFailed = false;
759
-
760
- /**
761
- * Initialize ONNX embedding pipeline (lazy, cached).
762
- * Returns null if @xenova/transformers is not available.
763
- */
764
- async function getOnnxPipeline() {
765
- if (_onnxFailed) return null;
766
- if (_onnxPipeline) return _onnxPipeline;
767
- try {
768
- const { pipeline } = await import('@xenova/transformers');
769
- _onnxPipeline = await pipeline('feature-extraction', 'Xenova/all-MiniLM-L6-v2');
770
- return _onnxPipeline;
771
- } catch {
772
- _onnxFailed = true;
773
- return null;
774
- }
775
- }
776
-
777
- /**
778
- * Generate ONNX embedding (384-dim, high quality semantic vectors).
779
- * Falls back to hash embedding if ONNX is unavailable.
780
- */
781
- async function createEmbedding(text) {
782
- // Try ONNX first (384-dim, real semantic understanding)
783
- const pipe = await getOnnxPipeline();
784
- if (pipe) {
785
- try {
786
- const truncated = text.slice(0, 512); // MiniLM max ~512 tokens
787
- const output = await pipe(truncated, { pooling: 'mean', normalize: true });
788
- return { embedding: new Float32Array(output.data), dim: 384, method: 'onnx' };
789
- } catch { /* fall through to hash */ }
790
- }
791
- // Fallback: hash embedding (384-dim to match ONNX dimension)
792
- return { embedding: createHashEmbedding(text, 384), dim: 384, method: 'hash' };
793
- }
794
-
795
- // ============================================================================
796
- // Hash embedding fallback (deterministic, sub-millisecond)
797
- // ============================================================================
798
-
799
- function createHashEmbedding(text, dimensions = 384) {
800
- const embedding = new Float32Array(dimensions);
801
- const normalized = text.toLowerCase().trim();
802
- for (let i = 0; i < dimensions; i++) {
803
- let hash = 0;
804
- for (let j = 0; j < normalized.length; j++) {
805
- hash = ((hash << 5) - hash + normalized.charCodeAt(j) * (i + 1)) | 0;
806
- }
807
- embedding[i] = (Math.sin(hash) + 1) / 2;
808
- }
809
- let norm = 0;
810
- for (let i = 0; i < dimensions; i++) norm += embedding[i] * embedding[i];
811
- norm = Math.sqrt(norm);
812
- if (norm > 0) for (let i = 0; i < dimensions; i++) embedding[i] /= norm;
813
- return embedding;
814
- }
815
-
816
- // ============================================================================
817
- // Content hash for dedup
818
- // ============================================================================
819
-
820
- function hashContent(content) {
821
- return createHash('sha256').update(content).digest('hex');
822
- }
823
-
824
- // ============================================================================
825
- // Read stdin with timeout (hooks receive JSON input on stdin)
826
- // ============================================================================
827
-
828
- function readStdin(timeoutMs = 100) {
829
- return new Promise((resolve) => {
830
- let data = '';
831
- const timer = setTimeout(() => {
832
- process.stdin.removeAllListeners();
833
- resolve(data ? JSON.parse(data) : null);
834
- }, timeoutMs);
835
-
836
- if (process.stdin.isTTY) {
837
- clearTimeout(timer);
838
- resolve(null);
839
- return;
840
- }
841
-
842
- process.stdin.setEncoding('utf-8');
843
- process.stdin.on('data', (chunk) => { data += chunk; });
844
- process.stdin.on('end', () => {
845
- clearTimeout(timer);
846
- try { resolve(data ? JSON.parse(data) : null); }
847
- catch { resolve(null); }
848
- });
849
- process.stdin.on('error', () => {
850
- clearTimeout(timer);
851
- resolve(null);
852
- });
853
- process.stdin.resume();
854
- });
855
- }
856
-
857
- // ============================================================================
858
- // Transcript parsing
859
- // ============================================================================
860
-
861
- function parseTranscript(transcriptPath) {
862
- if (!existsSync(transcriptPath)) return [];
863
- const content = readFileSync(transcriptPath, 'utf-8');
864
- const lines = content.split('\n').filter(Boolean);
865
- const messages = [];
866
- for (const line of lines) {
867
- try {
868
- const parsed = JSON.parse(line);
869
- // SDK transcript wraps messages: { type: "user"|"A", message: { role, content } }
870
- // Unwrap to get the inner API message with role/content
871
- if (parsed.message && parsed.message.role) {
872
- messages.push(parsed.message);
873
- } else if (parsed.role) {
874
- // Already in API message format (e.g. from tests)
875
- messages.push(parsed);
876
- }
877
- // Skip non-message entries (progress, file-history-snapshot, queue-operation)
878
- } catch { /* skip malformed lines */ }
879
- }
880
- return messages;
881
- }
882
-
883
- // ============================================================================
884
- // Extract text content from message content blocks
885
- // ============================================================================
886
-
887
- function extractTextContent(message) {
888
- if (!message) return '';
889
- if (typeof message.content === 'string') return message.content;
890
- if (Array.isArray(message.content)) {
891
- return message.content
892
- .filter(b => b.type === 'text')
893
- .map(b => b.text || '')
894
- .join('\n');
895
- }
896
- if (typeof message.text === 'string') return message.text;
897
- return '';
898
- }
899
-
900
- // ============================================================================
901
- // Extract tool calls from assistant message
902
- // ============================================================================
903
-
904
- function extractToolCalls(message) {
905
- if (!message || !Array.isArray(message.content)) return [];
906
- return message.content
907
- .filter(b => b.type === 'tool_use')
908
- .map(b => ({
909
- name: b.name || 'unknown',
910
- input: b.input || {},
911
- }));
912
- }
913
-
914
- // ============================================================================
915
- // Extract file paths from tool calls
916
- // ============================================================================
917
-
918
- function extractFilePaths(toolCalls) {
919
- const paths = new Set();
920
- for (const tc of toolCalls) {
921
- if (tc.input?.file_path) paths.add(tc.input.file_path);
922
- if (tc.input?.path) paths.add(tc.input.path);
923
- if (tc.input?.notebook_path) paths.add(tc.input.notebook_path);
924
- }
925
- return [...paths];
926
- }
927
-
928
- // ============================================================================
929
- // Chunk transcript into conversation turns
930
- // ============================================================================
931
-
932
- function chunkTranscript(messages) {
933
- const relevant = messages.filter(
934
- m => m.role === 'user' || m.role === 'assistant'
935
- );
936
- const capped = relevant.slice(-MAX_MESSAGES);
937
-
938
- const chunks = [];
939
- let currentChunk = null;
940
-
941
- for (const msg of capped) {
942
- if (msg.role === 'user') {
943
- const isSynthetic = Array.isArray(msg.content) &&
944
- msg.content.every(b => b.type === 'tool_result');
945
- if (isSynthetic && currentChunk) continue;
946
- if (currentChunk) chunks.push(currentChunk);
947
- currentChunk = {
948
- userMessage: msg,
949
- assistantMessage: null,
950
- toolCalls: [],
951
- turnIndex: chunks.length,
952
- };
953
- } else if (msg.role === 'assistant' && currentChunk) {
954
- currentChunk.assistantMessage = msg;
955
- currentChunk.toolCalls = extractToolCalls(msg);
956
- }
957
- }
958
-
959
- if (currentChunk) chunks.push(currentChunk);
960
- return chunks;
961
- }
962
-
963
- // ============================================================================
964
- // Extract summary from chunk (no LLM, extractive only)
965
- // ============================================================================
966
-
967
- function extractSummary(chunk) {
968
- const parts = [];
969
-
970
- const userText = extractTextContent(chunk.userMessage);
971
- const firstUserLine = userText.split('\n').find(l => l.trim()) || '';
972
- if (firstUserLine) parts.push(firstUserLine.slice(0, 100));
973
-
974
- const toolNames = [...new Set(chunk.toolCalls.map(tc => tc.name))];
975
- if (toolNames.length) parts.push('Tools: ' + toolNames.join(', '));
976
-
977
- const filePaths = extractFilePaths(chunk.toolCalls);
978
- if (filePaths.length) {
979
- const shortPaths = filePaths.slice(0, 5).map(p => {
980
- const segs = p.split('/');
981
- return segs.length > 2 ? '.../' + segs.slice(-2).join('/') : p;
982
- });
983
- parts.push('Files: ' + shortPaths.join(', '));
984
- }
985
-
986
- const assistantText = extractTextContent(chunk.assistantMessage);
987
- const assistantLines = assistantText.split('\n').filter(l => l.trim()).slice(0, 2);
988
- if (assistantLines.length) parts.push(assistantLines.join(' ').slice(0, 120));
989
-
990
- return parts.join(' | ').slice(0, 300);
991
- }
992
-
993
- // ============================================================================
994
- // Generate unique ID
995
- // ============================================================================
996
-
997
- let idCounter = 0;
998
- function generateId() {
999
- return `ctx-${Date.now()}-${++idCounter}-${Math.random().toString(36).slice(2, 8)}`;
1000
- }
1001
-
1002
- // ============================================================================
1003
- // Build MemoryEntry from chunk
1004
- // ============================================================================
1005
-
1006
- function buildEntry(chunk, sessionId, trigger, timestamp) {
1007
- const userText = extractTextContent(chunk.userMessage);
1008
- const assistantText = extractTextContent(chunk.assistantMessage);
1009
- const fullContent = `User: ${userText}\n\nAssistant: ${assistantText}`;
1010
- const toolNames = [...new Set(chunk.toolCalls.map(tc => tc.name))];
1011
- const filePaths = extractFilePaths(chunk.toolCalls);
1012
- const summary = extractSummary(chunk);
1013
- const contentHash = hashContent(fullContent);
1014
-
1015
- const now = Date.now();
1016
- return {
1017
- id: generateId(),
1018
- key: `transcript:${sessionId}:${chunk.turnIndex}:${timestamp}`,
1019
- content: fullContent,
1020
- type: 'episodic',
1021
- namespace: NAMESPACE,
1022
- tags: ['transcript', 'compaction', sessionId, ...toolNames],
1023
- metadata: {
1024
- sessionId,
1025
- chunkIndex: chunk.turnIndex,
1026
- trigger,
1027
- timestamp,
1028
- toolNames,
1029
- filePaths,
1030
- summary,
1031
- contentHash,
1032
- turnRange: [chunk.turnIndex, chunk.turnIndex],
1033
- },
1034
- accessLevel: 'private',
1035
- createdAt: now,
1036
- updatedAt: now,
1037
- version: 1,
1038
- references: [],
1039
- accessCount: 0,
1040
- lastAccessedAt: now,
1041
- };
1042
- }
1043
-
1044
- // ============================================================================
1045
- // Store chunks with dedup (uses indexed hash lookup for SQLite)
1046
- // ============================================================================
1047
-
1048
- async function storeChunks(backend, chunks, sessionId, trigger) {
1049
- const timestamp = new Date().toISOString();
1050
-
1051
- const entries = [];
1052
- for (const chunk of chunks) {
1053
- const entry = buildEntry(chunk, sessionId, trigger, timestamp);
1054
- // Fast hash-based dedup (indexed lookup in SQLite, scan in JSON)
1055
- if (!backend.hashExists(entry.metadata.contentHash)) {
1056
- entries.push(entry);
1057
- }
1058
- }
1059
-
1060
- if (entries.length > 0) {
1061
- await backend.bulkInsert(entries);
1062
- }
1063
-
1064
- return { stored: entries.length, deduped: chunks.length - entries.length };
1065
- }
1066
-
1067
- // ============================================================================
1068
- // Retrieve context for restoration (uses indexed session query for SQLite)
1069
- // ============================================================================
1070
-
1071
- async function retrieveContext(backend, sessionId, budget) {
1072
- // Use optimized session query if available, otherwise filter manually
1073
- const sessionEntries = backend.queryBySession
1074
- ? await backend.queryBySession(NAMESPACE, sessionId)
1075
- : (await backend.query({ namespace: NAMESPACE }))
1076
- .filter(e => e.metadata?.sessionId === sessionId)
1077
- .sort((a, b) => (b.metadata?.chunkIndex ?? 0) - (a.metadata?.chunkIndex ?? 0));
1078
-
1079
- if (sessionEntries.length === 0) return '';
1080
-
1081
- const lines = [];
1082
- let charCount = 0;
1083
- const header = `## Restored Context (from pre-compaction archive)\n\nPrevious conversation included ${sessionEntries.length} archived turns:\n\n`;
1084
- charCount += header.length;
1085
-
1086
- for (const entry of sessionEntries) {
1087
- const meta = entry.metadata || {};
1088
- const toolStr = meta.toolNames?.length ? ` Tools: ${meta.toolNames.join(', ')}.` : '';
1089
- const fileStr = meta.filePaths?.length ? ` Files: ${meta.filePaths.slice(0, 3).join(', ')}.` : '';
1090
- const line = `- [Turn ${meta.chunkIndex ?? '?'}] ${meta.summary || '(no summary)'}${toolStr}${fileStr}`;
1091
-
1092
- if (charCount + line.length + 1 > budget) break;
1093
- lines.push(line);
1094
- charCount += line.length + 1;
1095
- }
1096
-
1097
- if (lines.length === 0) return '';
1098
-
1099
- const footer = `\n\nFull archive: ${NAMESPACE} namespace in AgentDB (query with session ID: ${sessionId})`;
1100
- return header + lines.join('\n') + footer;
1101
- }
1102
-
1103
- // ============================================================================
1104
- // Build custom compact instructions (exit code 0 stdout)
1105
- // Guides Claude on what to preserve during compaction summary
1106
- // ============================================================================
1107
-
1108
- function buildCompactInstructions(chunks, sessionId, archiveResult) {
1109
- const parts = [];
1110
-
1111
- parts.push('COMPACTION GUIDANCE (from context-persistence-hook):');
1112
- parts.push('');
1113
- parts.push(`All ${chunks.length} conversation turns have been archived to the transcript-archive database.`);
1114
- parts.push(`Session: ${sessionId} | Stored: ${archiveResult.stored} new, ${archiveResult.deduped} deduped.`);
1115
- parts.push('After compaction, archived context will be automatically restored via SessionStart hook.');
1116
- parts.push('');
1117
-
1118
- // Collect unique tools and files across all chunks for preservation hints
1119
- const allTools = new Set();
1120
- const allFiles = new Set();
1121
- const decisions = [];
1122
-
1123
- for (const chunk of chunks) {
1124
- const toolNames = [...new Set(chunk.toolCalls.map(tc => tc.name))];
1125
- for (const t of toolNames) allTools.add(t);
1126
- const filePaths = extractFilePaths(chunk.toolCalls);
1127
- for (const f of filePaths) allFiles.add(f);
1128
-
1129
- // Look for decision indicators in assistant text
1130
- const assistantText = extractTextContent(chunk.assistantMessage);
1131
- if (assistantText) {
1132
- const lower = assistantText.toLowerCase();
1133
- if (lower.includes('decided') || lower.includes('choosing') || lower.includes('approach')
1134
- || lower.includes('instead of') || lower.includes('rather than')) {
1135
- const firstLine = assistantText.split('\n').find(l => l.trim()) || '';
1136
- if (firstLine.length > 10) decisions.push(firstLine.slice(0, 120));
1137
- }
1138
- }
1139
- }
1140
-
1141
- parts.push('PRESERVE in compaction summary:');
1142
-
1143
- if (allFiles.size > 0) {
1144
- const fileList = [...allFiles].slice(0, 15).map(f => {
1145
- const segs = f.split('/');
1146
- return segs.length > 3 ? '.../' + segs.slice(-3).join('/') : f;
1147
- });
1148
- parts.push(`- Files modified/read: ${fileList.join(', ')}`);
1149
- }
1150
-
1151
- if (allTools.size > 0) {
1152
- parts.push(`- Tools used: ${[...allTools].join(', ')}`);
1153
- }
1154
-
1155
- if (decisions.length > 0) {
1156
- parts.push('- Key decisions:');
1157
- for (const d of decisions.slice(0, 5)) {
1158
- parts.push(` * ${d}`);
1159
- }
1160
- }
1161
-
1162
- // Recent turns summary (most important context)
1163
- const recentChunks = chunks.slice(-5);
1164
- if (recentChunks.length > 0) {
1165
- parts.push('');
1166
- parts.push('MOST RECENT TURNS (prioritize preserving):');
1167
- for (const chunk of recentChunks) {
1168
- const userText = extractTextContent(chunk.userMessage);
1169
- const firstLine = userText.split('\n').find(l => l.trim()) || '';
1170
- const toolNames = [...new Set(chunk.toolCalls.map(tc => tc.name))];
1171
- parts.push(`- [Turn ${chunk.turnIndex}] ${firstLine.slice(0, 80)}${toolNames.length ? ` (${toolNames.join(', ')})` : ''}`);
1172
- }
1173
- }
1174
-
1175
- // Cap at budget
1176
- let result = parts.join('\n');
1177
- if (result.length > COMPACT_INSTRUCTION_BUDGET) {
1178
- result = result.slice(0, COMPACT_INSTRUCTION_BUDGET - 3) + '...';
1179
- }
1180
- return result;
1181
- }
1182
-
1183
- // ============================================================================
1184
- // Importance scoring for retrieval ranking
1185
- // ============================================================================
1186
-
1187
- function computeImportance(entry, now) {
1188
- const meta = entry.metadata || {};
1189
- const accessCount = entry.accessCount || 0;
1190
- const createdAt = entry.createdAt || now;
1191
- const ageMs = Math.max(1, now - createdAt);
1192
- const ageDays = ageMs / 86400000;
1193
-
1194
- // Recency: exponential decay, half-life of 7 days
1195
- const recency = Math.exp(-0.693 * ageDays / 7);
1196
-
1197
- // Frequency: log-scaled access count
1198
- const frequency = Math.log2(accessCount + 1) + 1;
1199
-
1200
- // Richness: tool calls and file paths indicate actionable context
1201
- const toolCount = meta.toolNames?.length || 0;
1202
- const fileCount = meta.filePaths?.length || 0;
1203
- const richness = 1.0 + (toolCount > 0 ? 0.5 : 0) + (fileCount > 0 ? 0.3 : 0);
1204
-
1205
- return recency * frequency * richness;
1206
- }
1207
-
1208
- // ============================================================================
1209
- // Smart retrieval: importance-ranked instead of just recency
1210
- // ============================================================================
1211
-
1212
- async function retrieveContextSmart(backend, sessionId, budget) {
1213
- let sessionEntries;
1214
-
1215
- // Use importance-ranked query if backend supports it
1216
- if (backend.queryByImportance) {
1217
- try {
1218
- sessionEntries = backend.queryByImportance(NAMESPACE, sessionId);
1219
- } catch {
1220
- // Fall back to standard query
1221
- sessionEntries = null;
1222
- }
1223
- }
1224
-
1225
- if (!sessionEntries) {
1226
- // Fall back: fetch all, compute importance in JS
1227
- const raw = backend.queryBySession
1228
- ? await backend.queryBySession(NAMESPACE, sessionId)
1229
- : (await backend.query({ namespace: NAMESPACE }))
1230
- .filter(e => e.metadata?.sessionId === sessionId);
1231
-
1232
- const now = Date.now();
1233
- sessionEntries = raw
1234
- .map(e => ({ ...e, importanceScore: computeImportance(e, now) }))
1235
- .sort((a, b) => b.importanceScore - a.importanceScore);
1236
- }
1237
-
1238
- if (sessionEntries.length === 0) return { text: '', accessedIds: [] };
1239
-
1240
- const lines = [];
1241
- const accessedIds = [];
1242
- let charCount = 0;
1243
- const header = `## Restored Context (importance-ranked from archive)\n\nPrevious conversation: ${sessionEntries.length} archived turns, ranked by importance:\n\n`;
1244
- charCount += header.length;
1245
-
1246
- for (const entry of sessionEntries) {
1247
- const meta = entry.metadata || {};
1248
- const score = entry.importanceScore?.toFixed(2) || '?';
1249
- const toolStr = meta.toolNames?.length ? ` Tools: ${meta.toolNames.join(', ')}.` : '';
1250
- const fileStr = meta.filePaths?.length ? ` Files: ${meta.filePaths.slice(0, 3).join(', ')}.` : '';
1251
- const line = `- [Turn ${meta.chunkIndex ?? '?'}, score:${score}] ${meta.summary || '(no summary)'}${toolStr}${fileStr}`;
1252
-
1253
- if (charCount + line.length + 1 > budget) break;
1254
- lines.push(line);
1255
- accessedIds.push(entry.id);
1256
- charCount += line.length + 1;
1257
- }
1258
-
1259
- if (lines.length === 0) return { text: '', accessedIds: [] };
1260
-
1261
- // Cross-session semantic search: find related context from previous sessions
1262
- let crossSessionText = '';
1263
- if (backend.semanticSearch && sessionEntries.length > 0) {
1264
- try {
1265
- // Use the most recent turn's summary as the search query
1266
- const recentSummary = sessionEntries[0]?.metadata?.summary || '';
1267
- if (recentSummary) {
1268
- const crossResults = await crossSessionSearch(backend, recentSummary, sessionId, 3);
1269
- if (crossResults.length > 0) {
1270
- const crossLines = crossResults.map(r =>
1271
- `- [Session ${r.sessionId?.slice(0, 8)}..., turn ${r.chunkIndex ?? '?'}, conf:${(r.confidence || 0).toFixed(2)}] ${r.summary || '(no summary)'}`
1272
- );
1273
- crossSessionText = `\n\nRelated context from previous sessions:\n${crossLines.join('\n')}`;
1274
- }
1275
- }
1276
- } catch { /* cross-session search is best-effort */ }
1277
- }
1278
-
1279
- const footer = `\n\nFull archive: ${NAMESPACE} namespace (session: ${sessionId}). ${sessionEntries.length - lines.length} additional turns available.`;
1280
- return { text: header + lines.join('\n') + crossSessionText + footer, accessedIds };
1281
- }
1282
-
1283
- // ============================================================================
1284
- // Auto-optimize: prune stale entries, run after archiving
1285
- // ============================================================================
1286
-
1287
- async function autoOptimize(backend, backendType) {
1288
- if (!AUTO_OPTIMIZE) return { pruned: 0, synced: 0, decayed: 0, embedded: 0 };
1289
-
1290
- let pruned = 0;
1291
- let decayed = 0;
1292
- let embedded = 0;
1293
-
1294
- // Step 1: Confidence decay — reduce confidence for unaccessed entries
1295
- if (backend.decayConfidence) {
1296
- try {
1297
- decayed = backend.decayConfidence(NAMESPACE, 1); // 1 hour worth of decay per optimize cycle
1298
- } catch { /* non-critical */ }
1299
- }
1300
-
1301
- // Step 2: Smart pruning — remove low-confidence entries first
1302
- if (backend.pruneByConfidence) {
1303
- try {
1304
- pruned += backend.pruneByConfidence(NAMESPACE, 0.15);
1305
- } catch { /* non-critical */ }
1306
- }
1307
-
1308
- // Step 3: Age-based pruning as fallback
1309
- if (backend.pruneStale) {
1310
- try {
1311
- pruned += backend.pruneStale(NAMESPACE, RETENTION_DAYS);
1312
- } catch { /* non-critical */ }
1313
- }
1314
-
1315
- // Step 4: Generate ONNX embeddings (384-dim) for entries missing them
1316
- if (backend.storeEmbedding) {
1317
- try {
1318
- const rows = backend.db?.prepare?.(
1319
- 'SELECT id, content FROM transcript_entries WHERE namespace = ? AND embedding IS NULL LIMIT 20'
1320
- )?.all(NAMESPACE);
1321
- if (rows) {
1322
- for (const row of rows) {
1323
- const { embedding } = await createEmbedding(row.content);
1324
- backend.storeEmbedding(row.id, embedding);
1325
- embedded++;
1326
- }
1327
- }
1328
- } catch { /* non-critical */ }
1329
- }
1330
-
1331
- // Step 5: Auto-sync to RuVector if available
1332
- let synced = 0;
1333
- if (backendType === 'sqlite' && backend.allForSync) {
1334
- try {
1335
- const rvConfig = getRuVectorConfig();
1336
- if (rvConfig) {
1337
- const rvBackend = new RuVectorBackend(rvConfig);
1338
- await rvBackend.initialize();
1339
-
1340
- const allEntries = backend.allForSync(NAMESPACE);
1341
- if (allEntries.length > 0) {
1342
- // Add hash embeddings for vector search in RuVector
1343
- const entriesToSync = allEntries.map(e => ({
1344
- ...e,
1345
- _embedding: createHashEmbedding(e.content),
1346
- }));
1347
- await rvBackend.bulkInsert(entriesToSync);
1348
- synced = entriesToSync.length;
1349
- }
1350
-
1351
- await rvBackend.shutdown();
1352
- }
1353
- } catch { /* RuVector sync is best-effort */ }
1354
- }
1355
-
1356
- return { pruned, synced, decayed, embedded };
1357
- }
1358
-
1359
- // ============================================================================
1360
- // Cross-session semantic retrieval
1361
- // ============================================================================
1362
-
1363
- /**
1364
- * Find relevant context from OTHER sessions using semantic similarity.
1365
- * This enables "What did we discuss about auth?" across sessions.
1366
- */
1367
- async function crossSessionSearch(backend, queryText, currentSessionId, k = 5) {
1368
- if (!backend.semanticSearch) return [];
1369
- try {
1370
- const { embedding: queryEmb } = await createEmbedding(queryText);
1371
- const results = backend.semanticSearch(queryEmb, k * 2, NAMESPACE);
1372
- // Filter out current session entries (we already have those)
1373
- return results
1374
- .filter(r => r.sessionId !== currentSessionId)
1375
- .slice(0, k);
1376
- } catch { return []; }
1377
- }
1378
-
1379
- // ============================================================================
1380
- // Context Autopilot Engine
1381
- // ============================================================================
1382
-
1383
- /**
1384
- * Estimate context token usage from transcript JSONL.
1385
- *
1386
- * Primary method: Read the most recent assistant message's `usage` field which
1387
- * contains `input_tokens` + `cache_read_input_tokens` — this is the ACTUAL
1388
- * context size as reported by the Claude API. This includes system prompt,
1389
- * CLAUDE.md, tool definitions, all messages, and everything Claude sees.
1390
- *
1391
- * Fallback: Sum character lengths and divide by CHARS_PER_TOKEN.
1392
- */
1393
- function estimateContextTokens(transcriptPath) {
1394
- if (!existsSync(transcriptPath)) return { tokens: 0, turns: 0, method: 'none' };
1395
-
1396
- const content = readFileSync(transcriptPath, 'utf-8');
1397
- const lines = content.split('\n').filter(Boolean);
1398
-
1399
- // Track the most recent usage data (from the last assistant message)
1400
- let lastInputTokens = 0;
1401
- let lastCacheRead = 0;
1402
- let lastCacheCreate = 0;
1403
- let turns = 0;
1404
- let lastPreTokens = 0;
1405
- let totalChars = 0;
1406
-
1407
- for (let i = 0; i < lines.length; i++) {
1408
- try {
1409
- const parsed = JSON.parse(lines[i]);
1410
-
1411
- // Check for compact_boundary
1412
- if (parsed.type === 'system' && parsed.subtype === 'compact_boundary') {
1413
- lastPreTokens = parsed.compactMetadata?.preTokens
1414
- || parsed.compact_metadata?.pre_tokens || 0;
1415
- // Reset after compaction — new context starts here
1416
- totalChars = 0;
1417
- turns = 0;
1418
- lastInputTokens = 0;
1419
- lastCacheRead = 0;
1420
- lastCacheCreate = 0;
1421
- continue;
1422
- }
1423
-
1424
- // Extract ACTUAL token usage from assistant messages
1425
- // The SDK transcript stores: { message: { role, content, usage: { input_tokens, cache_read_input_tokens, ... } } }
1426
- const msg = parsed.message || parsed;
1427
- const usage = msg.usage;
1428
- if (usage && (msg.role === 'assistant' || parsed.type === 'assistant')) {
1429
- const inputTokens = usage.input_tokens || 0;
1430
- const cacheRead = usage.cache_read_input_tokens || 0;
1431
- const cacheCreate = usage.cache_creation_input_tokens || 0;
1432
-
1433
- // The total context sent to Claude = input_tokens + cache_read + cache_create
1434
- // input_tokens: non-cached tokens actually processed
1435
- // cache_read: tokens served from cache (still in context)
1436
- // cache_create: tokens newly cached (still in context)
1437
- const totalContext = inputTokens + cacheRead + cacheCreate;
1438
-
1439
- if (totalContext > 0) {
1440
- lastInputTokens = inputTokens;
1441
- lastCacheRead = cacheRead;
1442
- lastCacheCreate = cacheCreate;
1443
- }
1444
- }
1445
-
1446
- // Count turns for display
1447
- const role = msg.role || parsed.type;
1448
- if (role === 'user') turns++;
1449
-
1450
- // Char fallback accumulation
1451
- if (role === 'user' || role === 'assistant') {
1452
- const c = msg.content;
1453
- if (typeof c === 'string') totalChars += c.length;
1454
- else if (Array.isArray(c)) {
1455
- for (const block of c) {
1456
- if (block.text) totalChars += block.text.length;
1457
- else if (block.input) totalChars += JSON.stringify(block.input).length;
1458
- }
1459
- }
1460
- }
1461
- } catch { /* skip */ }
1462
- }
1463
-
1464
- // Primary: use actual API usage data
1465
- const actualTotal = lastInputTokens + lastCacheRead + lastCacheCreate;
1466
- if (actualTotal > 0) {
1467
- return {
1468
- tokens: actualTotal,
1469
- turns,
1470
- method: 'api-usage',
1471
- lastPreTokens,
1472
- breakdown: {
1473
- input: lastInputTokens,
1474
- cacheRead: lastCacheRead,
1475
- cacheCreate: lastCacheCreate,
1476
- },
1477
- };
1478
- }
1479
-
1480
- // Fallback: char-based estimate
1481
- const estimatedTokens = Math.ceil(totalChars / CHARS_PER_TOKEN);
1482
- if (lastPreTokens > 0) {
1483
- const compactSummaryTokens = 3000;
1484
- return {
1485
- tokens: compactSummaryTokens + estimatedTokens,
1486
- turns,
1487
- method: 'post-compact-char-estimate',
1488
- lastPreTokens,
1489
- };
1490
- }
1491
-
1492
- return { tokens: estimatedTokens, turns, method: 'char-estimate' };
1493
- }
1494
-
1495
- /**
1496
- * Load autopilot state (persisted across hook invocations).
1497
- */
1498
- function loadAutopilotState() {
1499
- try {
1500
- if (existsSync(AUTOPILOT_STATE_PATH)) {
1501
- return JSON.parse(readFileSync(AUTOPILOT_STATE_PATH, 'utf-8'));
1502
- }
1503
- } catch { /* fresh state */ }
1504
- return {
1505
- sessionId: null,
1506
- lastTokenEstimate: 0,
1507
- lastPercentage: 0,
1508
- pruneCount: 0,
1509
- warningIssued: false,
1510
- lastCheck: 0,
1511
- history: [], // Track token growth over time
1512
- };
1513
- }
1514
-
1515
- /**
1516
- * Save autopilot state.
1517
- */
1518
- function saveAutopilotState(state) {
1519
- try {
1520
- writeFileSync(AUTOPILOT_STATE_PATH, JSON.stringify(state, null, 2), 'utf-8');
1521
- } catch { /* best effort */ }
1522
- }
1523
-
1524
- /**
1525
- * Build a context optimization report for additionalContext injection.
1526
- */
1527
- function buildAutopilotReport(percentage, tokens, windowSize, turns, state) {
1528
- const bar = buildProgressBar(percentage);
1529
- const status = percentage >= AUTOPILOT_PRUNE_PCT
1530
- ? 'OPTIMIZING'
1531
- : percentage >= AUTOPILOT_WARN_PCT
1532
- ? 'WARNING'
1533
- : 'OK';
1534
-
1535
- const parts = [
1536
- `[ContextAutopilot] ${bar} ${(percentage * 100).toFixed(1)}% context used`,
1537
- `(~${formatTokens(tokens)}/${formatTokens(windowSize)} tokens, ${turns} turns)`,
1538
- `Status: ${status}`,
1539
- ];
1540
-
1541
- if (state.pruneCount > 0) {
1542
- parts.push(`| Optimizations: ${state.pruneCount} prune cycles`);
1543
- }
1544
-
1545
- // Add trend if we have history
1546
- if (state.history.length >= 2) {
1547
- const recent = state.history.slice(-3);
1548
- const avgGrowth = recent.reduce((sum, h, i) => {
1549
- if (i === 0) return 0;
1550
- return sum + (h.pct - recent[i - 1].pct);
1551
- }, 0) / (recent.length - 1);
1552
-
1553
- if (avgGrowth > 0) {
1554
- const turnsUntilFull = Math.ceil((1.0 - percentage) / avgGrowth);
1555
- parts.push(`| ~${turnsUntilFull} turns until optimization needed`);
1556
- }
1557
- }
1558
-
1559
- return parts.join(' ');
1560
- }
1561
-
1562
- /**
1563
- * Visual progress bar for context usage.
1564
- */
1565
- function buildProgressBar(percentage) {
1566
- const width = 20;
1567
- const filled = Math.round(percentage * width);
1568
- const empty = width - filled;
1569
- const fillChar = percentage >= AUTOPILOT_PRUNE_PCT ? '!' : percentage >= AUTOPILOT_WARN_PCT ? '#' : '=';
1570
- return `[${fillChar.repeat(filled)}${'-'.repeat(empty)}]`;
1571
- }
1572
-
1573
- /**
1574
- * Format token count for display.
1575
- */
1576
- function formatTokens(n) {
1577
- if (n >= 1000000) return (n / 1000000).toFixed(1) + 'M';
1578
- if (n >= 1000) return (n / 1000).toFixed(1) + 'K';
1579
- return String(n);
1580
- }
1581
-
1582
- /**
1583
- * Context Autopilot: run on every UserPromptSubmit.
1584
- * Returns { additionalContext, shouldBlock } for the hook output.
1585
- */
1586
- async function runAutopilot(transcriptPath, sessionId, backend, backendType) {
1587
- const state = loadAutopilotState();
1588
-
1589
- // Reset state if session changed
1590
- if (state.sessionId !== sessionId) {
1591
- state.sessionId = sessionId;
1592
- state.lastTokenEstimate = 0;
1593
- state.lastPercentage = 0;
1594
- state.pruneCount = 0;
1595
- state.warningIssued = false;
1596
- state.history = [];
1597
- }
1598
-
1599
- // Estimate current context usage
1600
- const { tokens, turns, method, lastPreTokens } = estimateContextTokens(transcriptPath);
1601
- const percentage = Math.min(tokens / CONTEXT_WINDOW_TOKENS, 1.0);
1602
-
1603
- // Track history (keep last 50 data points)
1604
- state.history.push({ ts: Date.now(), tokens, pct: percentage, turns });
1605
- if (state.history.length > 50) state.history.shift();
1606
-
1607
- state.lastTokenEstimate = tokens;
1608
- state.lastPercentage = percentage;
1609
- state.lastCheck = Date.now();
1610
-
1611
- let optimizationMessage = '';
1612
-
1613
- // Phase 1: Warning zone (70-85%) — advise concise responses
1614
- if (percentage >= AUTOPILOT_WARN_PCT && percentage < AUTOPILOT_PRUNE_PCT) {
1615
- if (!state.warningIssued) {
1616
- state.warningIssued = true;
1617
- optimizationMessage = ` | Context at ${(percentage * 100).toFixed(0)}%. Keep responses concise to extend session.`;
1618
- }
1619
- }
1620
-
1621
- // Phase 2: Critical zone (85%+) — session rotation needed
1622
- if (percentage >= AUTOPILOT_PRUNE_PCT) {
1623
- state.pruneCount++;
1624
-
1625
- // Prune stale entries from archive to free up storage
1626
- if (backend.pruneStale) {
1627
- try {
1628
- const pruned = backend.pruneStale(NAMESPACE, Math.min(RETENTION_DAYS, 7));
1629
- if (pruned > 0) {
1630
- optimizationMessage += ` | Pruned ${pruned} stale archive entries.`;
1631
- }
1632
- } catch { /* non-critical */ }
1633
- }
1634
-
1635
- const turnsLeft = Math.max(0, Math.ceil((1.0 - percentage) / 0.03));
1636
- optimizationMessage += ` | CRITICAL: ${(percentage * 100).toFixed(0)}% context used (~${turnsLeft} turns left). All ${turns} turns archived. Start a new session with /clear — context will be fully restored via SessionStart hook.`;
1637
- }
1638
-
1639
- const report = buildAutopilotReport(percentage, tokens, CONTEXT_WINDOW_TOKENS, turns, state);
1640
- saveAutopilotState(state);
1641
-
1642
- return {
1643
- additionalContext: report + optimizationMessage,
1644
- percentage,
1645
- tokens,
1646
- turns,
1647
- method,
1648
- state,
1649
- };
1650
- }
1651
-
1652
- // ============================================================================
1653
- // Commands
1654
- // ============================================================================
1655
-
1656
- async function doPreCompact() {
1657
- const input = await readStdin(200);
1658
- if (!input) return;
1659
-
1660
- const { session_id: sessionId, transcript_path: transcriptPath, trigger } = input;
1661
- if (!transcriptPath || !sessionId) return;
1662
-
1663
- const messages = parseTranscript(transcriptPath);
1664
- if (messages.length === 0) return;
1665
-
1666
- const chunks = chunkTranscript(messages);
1667
- if (chunks.length === 0) return;
1668
-
1669
- const { backend, type } = await resolveBackend();
1670
-
1671
- const archiveResult = await storeChunks(backend, chunks, sessionId, trigger || 'auto');
1672
-
1673
- // Auto-optimize: prune stale entries + sync to RuVector if available
1674
- const optimizeResult = await autoOptimize(backend, type);
1675
-
1676
- const total = await backend.count(NAMESPACE);
1677
- await backend.shutdown();
1678
-
1679
- const optParts = [];
1680
- if (optimizeResult.pruned > 0) optParts.push(`${optimizeResult.pruned} pruned`);
1681
- if (optimizeResult.decayed > 0) optParts.push(`${optimizeResult.decayed} decayed`);
1682
- if (optimizeResult.embedded > 0) optParts.push(`${optimizeResult.embedded} embedded`);
1683
- if (optimizeResult.synced > 0) optParts.push(`${optimizeResult.synced} synced`);
1684
- const optimizeMsg = optParts.length > 0 ? ` Optimized: ${optParts.join(', ')}.` : '';
1685
- process.stderr.write(
1686
- `[ContextPersistence] Archived ${archiveResult.stored} turns (${archiveResult.deduped} deduped) via ${type}. Total: ${total}.${optimizeMsg}\n`
1687
- );
1688
-
1689
- // Exit code 0: stdout is appended as custom compact instructions
1690
- // This guides Claude on what to preserve in the compaction summary
1691
- const instructions = buildCompactInstructions(chunks, sessionId, archiveResult);
1692
- process.stdout.write(instructions);
1693
-
1694
- // Context Autopilot: track state and log archival status
1695
- // NOTE: Claude Code 2.0.76 executePreCompactHooks uses executeHooksOutsideREPL
1696
- // which does NOT support exit code 2 blocking. Compaction always proceeds.
1697
- // Our "infinite context" comes from archive + restore, not blocking.
1698
- if (AUTOPILOT_ENABLED) {
1699
- const state = loadAutopilotState();
1700
- const pct = state.lastPercentage || 0;
1701
- const bar = buildProgressBar(pct);
1702
-
1703
- process.stderr.write(
1704
- `[ContextAutopilot] ${bar} ${(pct * 100).toFixed(1)}% | ${trigger} compact — ${chunks.length} turns archived. Context will be restored after compaction.\n`
1705
- );
1706
-
1707
- // Reset autopilot state for post-compaction fresh start
1708
- state.lastTokenEstimate = 0;
1709
- state.lastPercentage = 0;
1710
- state.warningIssued = false;
1711
- saveAutopilotState(state);
1712
- }
1713
- }
1714
-
1715
- async function doSessionStart() {
1716
- const input = await readStdin(200);
1717
-
1718
- // Restore context after compaction OR after /clear (session rotation)
1719
- // With DISABLE_COMPACT, /clear is the primary way to free context
1720
- if (!input || (input.source !== 'compact' && input.source !== 'clear')) return;
1721
-
1722
- const sessionId = input.session_id;
1723
- if (!sessionId) return;
1724
-
1725
- const { backend, type } = await resolveBackend();
1726
-
1727
- // Use smart retrieval (importance-ranked) when auto-optimize is on
1728
- let additionalContext;
1729
- if (AUTO_OPTIMIZE) {
1730
- const { text, accessedIds } = await retrieveContextSmart(backend, sessionId, RESTORE_BUDGET);
1731
- additionalContext = text;
1732
-
1733
- // Track which entries were actually restored (access pattern learning)
1734
- if (accessedIds.length > 0 && backend.markAccessed) {
1735
- try { backend.markAccessed(accessedIds); } catch { /* non-critical */ }
1736
- }
1737
-
1738
- if (accessedIds.length > 0) {
1739
- process.stderr.write(
1740
- `[ContextPersistence] Smart restore: ${accessedIds.length} turns (importance-ranked) via ${type}\n`
1741
- );
1742
- }
1743
- } else {
1744
- additionalContext = await retrieveContext(backend, sessionId, RESTORE_BUDGET);
1745
- }
1746
-
1747
- await backend.shutdown();
1748
-
1749
- if (!additionalContext) return;
1750
-
1751
- const output = {
1752
- hookSpecificOutput: {
1753
- hookEventName: 'SessionStart',
1754
- additionalContext,
1755
- },
1756
- };
1757
- process.stdout.write(JSON.stringify(output));
1758
- }
1759
-
1760
- // ============================================================================
1761
- // Proactive archiving on every user prompt (prevents context cliff)
1762
- // ============================================================================
1763
-
1764
- async function doUserPromptSubmit() {
1765
- const input = await readStdin(200);
1766
- if (!input) return;
1767
-
1768
- const { session_id: sessionId, transcript_path: transcriptPath } = input;
1769
- if (!transcriptPath || !sessionId) return;
1770
-
1771
- const messages = parseTranscript(transcriptPath);
1772
- if (messages.length === 0) return;
1773
-
1774
- const chunks = chunkTranscript(messages);
1775
- if (chunks.length === 0) return;
1776
-
1777
- const { backend, type } = await resolveBackend();
1778
-
1779
- // Only archive new turns (dedup handles the rest, but we can skip early
1780
- // by only processing the last N chunks since the previous archive)
1781
- const existingCount = backend.queryBySession
1782
- ? (await backend.queryBySession(NAMESPACE, sessionId)).length
1783
- : 0;
1784
-
1785
- // Skip if we've already archived most turns (within 2 turns tolerance)
1786
- const skipArchive = existingCount > 0 && chunks.length - existingCount <= 2;
1787
-
1788
- let archiveMsg = '';
1789
- if (!skipArchive) {
1790
- const result = await storeChunks(backend, chunks, sessionId, 'proactive');
1791
- if (result.stored > 0) {
1792
- const total = await backend.count(NAMESPACE);
1793
- archiveMsg = `[ContextPersistence] Proactively archived ${result.stored} turns (total: ${total}).`;
1794
- process.stderr.write(
1795
- `[ContextPersistence] Proactive archive: ${result.stored} new, ${result.deduped} deduped via ${type}. Total: ${total}\n`
1796
- );
1797
- }
1798
- }
1799
-
1800
- // Context Autopilot: estimate usage and report percentage
1801
- let autopilotMsg = '';
1802
- if (AUTOPILOT_ENABLED && transcriptPath) {
1803
- try {
1804
- const autopilot = await runAutopilot(transcriptPath, sessionId, backend, type);
1805
- autopilotMsg = autopilot.additionalContext;
1806
-
1807
- process.stderr.write(
1808
- `[ContextAutopilot] ${(autopilot.percentage * 100).toFixed(1)}% context used (~${formatTokens(autopilot.tokens)} tokens, ${autopilot.turns} turns, ${autopilot.method})\n`
1809
- );
1810
- } catch (err) {
1811
- process.stderr.write(`[ContextAutopilot] Error: ${err.message}\n`);
1812
- }
1813
- }
1814
-
1815
- await backend.shutdown();
1816
-
1817
- // Combine archive message and autopilot report
1818
- const additionalContext = [archiveMsg, autopilotMsg].filter(Boolean).join(' ');
1819
-
1820
- if (additionalContext) {
1821
- const output = {
1822
- hookSpecificOutput: {
1823
- hookEventName: 'UserPromptSubmit',
1824
- additionalContext,
1825
- },
1826
- };
1827
- process.stdout.write(JSON.stringify(output));
1828
- }
1829
- }
1830
-
1831
- async function doStatus() {
1832
- const { backend, type } = await resolveBackend();
1833
-
1834
- const total = await backend.count();
1835
- const archiveCount = await backend.count(NAMESPACE);
1836
- const namespaces = await backend.listNamespaces();
1837
- const sessions = await backend.listSessions(NAMESPACE);
1838
-
1839
- console.log('\n=== Context Persistence Archive Status ===\n');
1840
- const backendLabel = {
1841
- sqlite: ARCHIVE_DB_PATH,
1842
- ruvector: `${process.env.RUVECTOR_HOST || 'N/A'}:${process.env.RUVECTOR_PORT || '5432'}`,
1843
- agentdb: 'in-memory HNSW',
1844
- json: ARCHIVE_JSON_PATH,
1845
- };
1846
- console.log(` Backend: ${type} (${backendLabel[type] || type})`);
1847
- console.log(` Total: ${total} entries`);
1848
- console.log(` Transcripts: ${archiveCount} entries`);
1849
- console.log(` Namespaces: ${namespaces.join(', ') || 'none'}`);
1850
- console.log(` Budget: ${RESTORE_BUDGET} chars`);
1851
- console.log(` Sessions: ${sessions.length}`);
1852
- console.log(` Proactive: enabled (UserPromptSubmit hook)`);
1853
- console.log(` Auto-opt: ${AUTO_OPTIMIZE ? 'enabled' : 'disabled'} (importance ranking, pruning, sync)`);
1854
- console.log(` Retention: ${RETENTION_DAYS} days (prune never-accessed entries)`);
1855
- const rvConfig = getRuVectorConfig();
1856
- console.log(` RuVector: ${rvConfig ? `${rvConfig.host}:${rvConfig.port}/${rvConfig.database} (auto-sync enabled)` : 'not configured'}`);
1857
-
1858
- // Self-learning stats
1859
- if (type === 'sqlite' && backend.db) {
1860
- try {
1861
- const embCount = backend.db.prepare('SELECT COUNT(*) as cnt FROM transcript_entries WHERE embedding IS NOT NULL').get().cnt;
1862
- const avgConf = backend.db.prepare('SELECT AVG(confidence) as avg FROM transcript_entries WHERE namespace = ?').get(NAMESPACE)?.avg || 0;
1863
- const lowConf = backend.db.prepare('SELECT COUNT(*) as cnt FROM transcript_entries WHERE namespace = ? AND confidence < 0.3').get(NAMESPACE).cnt;
1864
- console.log('');
1865
- console.log(' --- Self-Learning ---');
1866
- console.log(` Embeddings: ${embCount}/${archiveCount} entries have vector embeddings`);
1867
- console.log(` Avg conf: ${(avgConf * 100).toFixed(1)}% (decay: -0.5%/hr, boost: +3%/access)`);
1868
- console.log(` Low conf: ${lowConf} entries below 30% (pruned at 15%)`);
1869
- console.log(` Semantic: ${embCount > 0 ? 'enabled (cross-session search)' : 'pending (embeddings generating)'}`);
1870
- } catch { /* stats are non-critical */ }
1871
- }
1872
-
1873
- // Autopilot status
1874
- console.log('');
1875
- console.log(' --- Context Autopilot ---');
1876
- console.log(` Enabled: ${AUTOPILOT_ENABLED}`);
1877
- console.log(` Window: ${formatTokens(CONTEXT_WINDOW_TOKENS)} tokens`);
1878
- console.log(` Warn at: ${(AUTOPILOT_WARN_PCT * 100).toFixed(0)}%`);
1879
- console.log(` Prune at: ${(AUTOPILOT_PRUNE_PCT * 100).toFixed(0)}%`);
1880
- console.log(` Compaction: LOSSLESS (archive before, restore after)`);
1881
-
1882
- const apState = loadAutopilotState();
1883
- if (apState.sessionId) {
1884
- const pct = apState.lastPercentage || 0;
1885
- const bar = buildProgressBar(pct);
1886
- console.log(` Current: ${bar} ${(pct * 100).toFixed(1)}% (~${formatTokens(apState.lastTokenEstimate)} tokens)`);
1887
- console.log(` Prune cycles: ${apState.pruneCount}`);
1888
- if (apState.history.length >= 2) {
1889
- const first = apState.history[0];
1890
- const last = apState.history[apState.history.length - 1];
1891
- const growthRate = (last.pct - first.pct) / apState.history.length;
1892
- if (growthRate > 0) {
1893
- const turnsLeft = Math.ceil((1.0 - pct) / growthRate);
1894
- console.log(` Est. runway: ~${turnsLeft} turns until prune threshold`);
1895
- }
1896
- }
1897
- }
1898
-
1899
- if (sessions.length > 0) {
1900
- console.log('\n Recent sessions:');
1901
- for (const s of sessions.slice(0, 10)) {
1902
- console.log(` - ${s.session_id}: ${s.cnt} turns`);
1903
- }
1904
- }
1905
-
1906
- console.log('');
1907
- await backend.shutdown();
1908
- }
1909
-
1910
- // ============================================================================
1911
- // Exports for testing
1912
- // ============================================================================
1913
-
1914
- // Wrappers used by hook-handler.cjs which imports this module and calls
1915
- // cpHook.archive() (session-end / pre-compact) and cpHook.restore() (session-restore).
1916
- export async function archive() { return doPreCompact(); }
1917
- export async function restore() { return doSessionStart(); }
1918
-
1919
- export {
1920
- SQLiteBackend,
1921
- RuVectorBackend,
1922
- JsonFileBackend,
1923
- resolveBackend,
1924
- getRuVectorConfig,
1925
- createEmbedding,
1926
- createHashEmbedding,
1927
- getOnnxPipeline,
1928
- EMBEDDING_DIM,
1929
- hashContent,
1930
- parseTranscript,
1931
- extractTextContent,
1932
- extractToolCalls,
1933
- extractFilePaths,
1934
- chunkTranscript,
1935
- extractSummary,
1936
- buildEntry,
1937
- buildCompactInstructions,
1938
- computeImportance,
1939
- retrieveContextSmart,
1940
- autoOptimize,
1941
- crossSessionSearch,
1942
- storeChunks,
1943
- retrieveContext,
1944
- readStdin,
1945
- // Autopilot
1946
- estimateContextTokens,
1947
- loadAutopilotState,
1948
- saveAutopilotState,
1949
- runAutopilot,
1950
- buildProgressBar,
1951
- formatTokens,
1952
- buildAutopilotReport,
1953
- NAMESPACE,
1954
- ARCHIVE_DB_PATH,
1955
- ARCHIVE_JSON_PATH,
1956
- COMPACT_INSTRUCTION_BUDGET,
1957
- RETENTION_DAYS,
1958
- AUTO_OPTIMIZE,
1959
- AUTOPILOT_ENABLED,
1960
- CONTEXT_WINDOW_TOKENS,
1961
- AUTOPILOT_WARN_PCT,
1962
- AUTOPILOT_PRUNE_PCT,
1963
- };
1964
-
1965
- // ============================================================================
1966
- // Main — only runs when invoked directly (not when imported as a module)
1967
- // ============================================================================
1968
-
1969
- const _isMain = process.argv[1] === __filename;
1970
-
1971
- if (_isMain) {
1972
- const command = process.argv[2] || 'status';
1973
-
1974
- try {
1975
- switch (command) {
1976
- case 'pre-compact': await doPreCompact(); break;
1977
- case 'session-start': await doSessionStart(); break;
1978
- case 'user-prompt-submit': await doUserPromptSubmit(); break;
1979
- case 'status': await doStatus(); break;
1980
- default:
1981
- console.log('Usage: context-persistence-hook.mjs <pre-compact|session-start|user-prompt-submit|status>');
1982
- process.exit(1);
1983
- }
1984
- } catch (err) {
1985
- // Hooks must never crash Claude Code - fail silently
1986
- process.stderr.write(`[ContextPersistence] Error (non-critical): ${err.message}\n`);
1987
- }
1988
- }