moflo 4.8.31 → 4.8.33

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 (415) hide show
  1. package/package.json +13 -10
  2. package/src/@claude-flow/cli/dist/src/commands/doctor.js +1298 -1107
  3. package/src/@claude-flow/cli/dist/src/memory/memory-initializer.js +4 -7
  4. package/src/@claude-flow/cli/package.json +106 -106
  5. package/src/@claude-flow/neural/README.md +260 -0
  6. package/src/@claude-flow/neural/dist/algorithms/a2c.js +361 -0
  7. package/src/@claude-flow/neural/dist/algorithms/curiosity.js +392 -0
  8. package/src/@claude-flow/neural/dist/algorithms/decision-transformer.js +415 -0
  9. package/src/@claude-flow/neural/dist/algorithms/dqn.js +303 -0
  10. package/src/@claude-flow/neural/dist/algorithms/index.js +74 -0
  11. package/src/@claude-flow/neural/dist/algorithms/ppo.js +331 -0
  12. package/src/@claude-flow/neural/dist/algorithms/q-learning.js +259 -0
  13. package/src/@claude-flow/neural/dist/algorithms/sarsa.js +297 -0
  14. package/src/@claude-flow/neural/dist/application/index.js +7 -0
  15. package/src/@claude-flow/neural/dist/application/services/neural-application-service.js +161 -0
  16. package/src/@claude-flow/neural/dist/domain/entities/pattern.js +134 -0
  17. package/src/@claude-flow/neural/dist/domain/index.js +8 -0
  18. package/src/@claude-flow/neural/dist/domain/services/learning-service.js +195 -0
  19. package/src/@claude-flow/neural/dist/index.js +201 -0
  20. package/src/@claude-flow/neural/dist/modes/balanced.js +234 -0
  21. package/src/@claude-flow/neural/dist/modes/base.js +77 -0
  22. package/src/@claude-flow/neural/dist/modes/batch.js +316 -0
  23. package/src/@claude-flow/neural/dist/modes/edge.js +310 -0
  24. package/src/@claude-flow/neural/dist/modes/index.js +13 -0
  25. package/src/@claude-flow/neural/dist/modes/real-time.js +196 -0
  26. package/src/@claude-flow/neural/dist/modes/research.js +389 -0
  27. package/src/@claude-flow/neural/dist/pattern-learner.js +603 -0
  28. package/src/@claude-flow/neural/dist/reasoning-bank.js +993 -0
  29. package/src/@claude-flow/neural/dist/reasoningbank-adapter.js +463 -0
  30. package/src/@claude-flow/neural/dist/sona-integration.js +316 -0
  31. package/src/@claude-flow/neural/dist/sona-manager.js +695 -0
  32. package/src/@claude-flow/neural/dist/types.js +11 -0
  33. package/src/@claude-flow/neural/package.json +26 -0
  34. package/.claude/agents/browser/browser-agent.yaml +0 -182
  35. package/.claude/agents/database-specialist.yaml +0 -21
  36. package/.claude/agents/index.yaml +0 -17
  37. package/.claude/agents/project-coordinator.yaml +0 -15
  38. package/.claude/agents/python-specialist.yaml +0 -21
  39. package/.claude/agents/security-auditor.yaml +0 -20
  40. package/.claude/agents/typescript-specialist.yaml +0 -21
  41. package/.claude/checkpoints/1767754460.json +0 -8
  42. package/.claude/config/v3-dependency-optimization.json +0 -266
  43. package/.claude/config/v3-performance-targets.json +0 -251
  44. package/.claude/guidance/moflo-bootstrap.md +0 -129
  45. package/.claude/mcp.json +0 -13
  46. package/.claude/settings.json +0 -351
  47. package/.claude/settings.local.json +0 -18
  48. package/.claude/skills/agentdb-advanced/SKILL.md +0 -550
  49. package/.claude/skills/agentdb-learning/SKILL.md +0 -545
  50. package/.claude/skills/agentdb-memory-patterns/SKILL.md +0 -339
  51. package/.claude/skills/agentdb-optimization/SKILL.md +0 -509
  52. package/.claude/skills/agentdb-vector-search/SKILL.md +0 -339
  53. package/.claude/skills/browser/SKILL.md +0 -204
  54. package/.claude/skills/fl/SKILL.md +0 -583
  55. package/.claude/skills/flo/SKILL.md +0 -583
  56. package/.claude/skills/github-code-review/SKILL.md +0 -1140
  57. package/.claude/skills/github-multi-repo/SKILL.md +0 -874
  58. package/.claude/skills/github-project-management/SKILL.md +0 -1277
  59. package/.claude/skills/github-release-management/SKILL.md +0 -1081
  60. package/.claude/skills/github-workflow-automation/SKILL.md +0 -1065
  61. package/.claude/skills/hive-mind-advanced/SKILL.md +0 -712
  62. package/.claude/skills/hooks-automation/SKILL.md +0 -1201
  63. package/.claude/skills/pair-programming/SKILL.md +0 -1202
  64. package/.claude/skills/performance-analysis/SKILL.md +0 -563
  65. package/.claude/skills/reasoningbank-agentdb/SKILL.md +0 -446
  66. package/.claude/skills/reasoningbank-intelligence/SKILL.md +0 -201
  67. package/.claude/skills/skill-builder/SKILL.md +0 -910
  68. package/.claude/skills/sparc-methodology/SKILL.md +0 -1115
  69. package/.claude/skills/stream-chain/SKILL.md +0 -563
  70. package/.claude/skills/swarm-advanced/SKILL.md +0 -973
  71. package/.claude/skills/swarm-orchestration/SKILL.md +0 -179
  72. package/.claude/skills/v3-cli-modernization/SKILL.md +0 -872
  73. package/.claude/skills/v3-core-implementation/SKILL.md +0 -797
  74. package/.claude/skills/v3-ddd-architecture/SKILL.md +0 -442
  75. package/.claude/skills/v3-integration-deep/SKILL.md +0 -241
  76. package/.claude/skills/v3-mcp-optimization/SKILL.md +0 -777
  77. package/.claude/skills/v3-memory-unification/SKILL.md +0 -174
  78. package/.claude/skills/v3-performance-optimization/SKILL.md +0 -390
  79. package/.claude/skills/v3-security-overhaul/SKILL.md +0 -82
  80. package/.claude/skills/v3-swarm-coordination/SKILL.md +0 -340
  81. package/.claude/skills/verification-quality/SKILL.md +0 -649
  82. package/.claude/skills/worker-benchmarks/skill.md +0 -135
  83. package/.claude/skills/worker-integration/skill.md +0 -154
  84. package/.claude/workflow-state.json +0 -9
  85. package/src/@claude-flow/cli/dist/src/appliance/gguf-engine.d.ts +0 -91
  86. package/src/@claude-flow/cli/dist/src/appliance/ruvllm-bridge.d.ts +0 -102
  87. package/src/@claude-flow/cli/dist/src/appliance/rvfa-builder.d.ts +0 -44
  88. package/src/@claude-flow/cli/dist/src/appliance/rvfa-distribution.d.ts +0 -97
  89. package/src/@claude-flow/cli/dist/src/appliance/rvfa-format.d.ts +0 -111
  90. package/src/@claude-flow/cli/dist/src/appliance/rvfa-runner.d.ts +0 -69
  91. package/src/@claude-flow/cli/dist/src/appliance/rvfa-signing.d.ts +0 -123
  92. package/src/@claude-flow/cli/dist/src/benchmarks/pretrain/index.d.ts +0 -58
  93. package/src/@claude-flow/cli/dist/src/commands/agent.d.ts +0 -8
  94. package/src/@claude-flow/cli/dist/src/commands/analyze.d.ts +0 -19
  95. package/src/@claude-flow/cli/dist/src/commands/appliance-advanced.d.ts +0 -9
  96. package/src/@claude-flow/cli/dist/src/commands/appliance.d.ts +0 -8
  97. package/src/@claude-flow/cli/dist/src/commands/benchmark.d.ts +0 -10
  98. package/src/@claude-flow/cli/dist/src/commands/claims.d.ts +0 -10
  99. package/src/@claude-flow/cli/dist/src/commands/completions.d.ts +0 -10
  100. package/src/@claude-flow/cli/dist/src/commands/config.d.ts +0 -8
  101. package/src/@claude-flow/cli/dist/src/commands/daemon.d.ts +0 -8
  102. package/src/@claude-flow/cli/dist/src/commands/deployment.d.ts +0 -10
  103. package/src/@claude-flow/cli/dist/src/commands/diagnose.d.ts +0 -16
  104. package/src/@claude-flow/cli/dist/src/commands/doctor.d.ts +0 -10
  105. package/src/@claude-flow/cli/dist/src/commands/embeddings.d.ts +0 -18
  106. package/src/@claude-flow/cli/dist/src/commands/gate.d.ts +0 -23
  107. package/src/@claude-flow/cli/dist/src/commands/github.d.ts +0 -12
  108. package/src/@claude-flow/cli/dist/src/commands/guidance.d.ts +0 -8
  109. package/src/@claude-flow/cli/dist/src/commands/hive-mind.d.ts +0 -11
  110. package/src/@claude-flow/cli/dist/src/commands/hooks.d.ts +0 -8
  111. package/src/@claude-flow/cli/dist/src/commands/index.d.ts +0 -115
  112. package/src/@claude-flow/cli/dist/src/commands/init.d.ts +0 -8
  113. package/src/@claude-flow/cli/dist/src/commands/issues.d.ts +0 -21
  114. package/src/@claude-flow/cli/dist/src/commands/mcp.d.ts +0 -11
  115. package/src/@claude-flow/cli/dist/src/commands/memory.d.ts +0 -8
  116. package/src/@claude-flow/cli/dist/src/commands/migrate.d.ts +0 -8
  117. package/src/@claude-flow/cli/dist/src/commands/neural.d.ts +0 -10
  118. package/src/@claude-flow/cli/dist/src/commands/orc.d.ts +0 -21
  119. package/src/@claude-flow/cli/dist/src/commands/performance.d.ts +0 -10
  120. package/src/@claude-flow/cli/dist/src/commands/plugins.d.ts +0 -11
  121. package/src/@claude-flow/cli/dist/src/commands/process.d.ts +0 -10
  122. package/src/@claude-flow/cli/dist/src/commands/progress.d.ts +0 -11
  123. package/src/@claude-flow/cli/dist/src/commands/providers.d.ts +0 -10
  124. package/src/@claude-flow/cli/dist/src/commands/route.d.ts +0 -16
  125. package/src/@claude-flow/cli/dist/src/commands/ruvector/backup.d.ts +0 -11
  126. package/src/@claude-flow/cli/dist/src/commands/ruvector/benchmark.d.ts +0 -11
  127. package/src/@claude-flow/cli/dist/src/commands/ruvector/import.d.ts +0 -18
  128. package/src/@claude-flow/cli/dist/src/commands/ruvector/index.d.ts +0 -29
  129. package/src/@claude-flow/cli/dist/src/commands/ruvector/init.d.ts +0 -11
  130. package/src/@claude-flow/cli/dist/src/commands/ruvector/migrate.d.ts +0 -11
  131. package/src/@claude-flow/cli/dist/src/commands/ruvector/optimize.d.ts +0 -11
  132. package/src/@claude-flow/cli/dist/src/commands/ruvector/setup.d.ts +0 -18
  133. package/src/@claude-flow/cli/dist/src/commands/ruvector/status.d.ts +0 -11
  134. package/src/@claude-flow/cli/dist/src/commands/security.d.ts +0 -10
  135. package/src/@claude-flow/cli/dist/src/commands/session.d.ts +0 -8
  136. package/src/@claude-flow/cli/dist/src/commands/start.d.ts +0 -8
  137. package/src/@claude-flow/cli/dist/src/commands/status.d.ts +0 -8
  138. package/src/@claude-flow/cli/dist/src/commands/swarm.d.ts +0 -8
  139. package/src/@claude-flow/cli/dist/src/commands/task.d.ts +0 -8
  140. package/src/@claude-flow/cli/dist/src/commands/transfer-store.d.ts +0 -13
  141. package/src/@claude-flow/cli/dist/src/commands/update.d.ts +0 -8
  142. package/src/@claude-flow/cli/dist/src/commands/workflow.d.ts +0 -8
  143. package/src/@claude-flow/cli/dist/src/config/moflo-config.d.ts +0 -93
  144. package/src/@claude-flow/cli/dist/src/config-adapter.d.ts +0 -15
  145. package/src/@claude-flow/cli/dist/src/index.d.ts +0 -81
  146. package/src/@claude-flow/cli/dist/src/infrastructure/in-memory-repositories.d.ts +0 -68
  147. package/src/@claude-flow/cli/dist/src/init/claudemd-generator.d.ts +0 -30
  148. package/src/@claude-flow/cli/dist/src/init/executor.d.ts +0 -41
  149. package/src/@claude-flow/cli/dist/src/init/helpers-generator.d.ts +0 -51
  150. package/src/@claude-flow/cli/dist/src/init/index.d.ts +0 -13
  151. package/src/@claude-flow/cli/dist/src/init/mcp-generator.d.ts +0 -29
  152. package/src/@claude-flow/cli/dist/src/init/moflo-init.d.ts +0 -31
  153. package/src/@claude-flow/cli/dist/src/init/settings-generator.d.ts +0 -14
  154. package/src/@claude-flow/cli/dist/src/init/statusline-generator.d.ts +0 -28
  155. package/src/@claude-flow/cli/dist/src/init/types.d.ts +0 -285
  156. package/src/@claude-flow/cli/dist/src/mcp-client.d.ts +0 -92
  157. package/src/@claude-flow/cli/dist/src/mcp-server.d.ts +0 -161
  158. package/src/@claude-flow/cli/dist/src/mcp-tools/agent-tools.d.ts +0 -9
  159. package/src/@claude-flow/cli/dist/src/mcp-tools/agentdb-tools.d.ts +0 -30
  160. package/src/@claude-flow/cli/dist/src/mcp-tools/analyze-tools.d.ts +0 -38
  161. package/src/@claude-flow/cli/dist/src/mcp-tools/auto-install.d.ts +0 -83
  162. package/src/@claude-flow/cli/dist/src/mcp-tools/browser-tools.d.ts +0 -13
  163. package/src/@claude-flow/cli/dist/src/mcp-tools/claims-tools.d.ts +0 -12
  164. package/src/@claude-flow/cli/dist/src/mcp-tools/config-tools.d.ts +0 -8
  165. package/src/@claude-flow/cli/dist/src/mcp-tools/coordination-tools.d.ts +0 -13
  166. package/src/@claude-flow/cli/dist/src/mcp-tools/daa-tools.d.ts +0 -13
  167. package/src/@claude-flow/cli/dist/src/mcp-tools/embeddings-tools.d.ts +0 -9
  168. package/src/@claude-flow/cli/dist/src/mcp-tools/github-tools.d.ts +0 -13
  169. package/src/@claude-flow/cli/dist/src/mcp-tools/hive-mind-tools.d.ts +0 -8
  170. package/src/@claude-flow/cli/dist/src/mcp-tools/hooks-tools.d.ts +0 -44
  171. package/src/@claude-flow/cli/dist/src/mcp-tools/index.d.ts +0 -23
  172. package/src/@claude-flow/cli/dist/src/mcp-tools/memory-tools.d.ts +0 -14
  173. package/src/@claude-flow/cli/dist/src/mcp-tools/neural-tools.d.ts +0 -16
  174. package/src/@claude-flow/cli/dist/src/mcp-tools/performance-tools.d.ts +0 -16
  175. package/src/@claude-flow/cli/dist/src/mcp-tools/progress-tools.d.ts +0 -14
  176. package/src/@claude-flow/cli/dist/src/mcp-tools/security-tools.d.ts +0 -18
  177. package/src/@claude-flow/cli/dist/src/mcp-tools/session-tools.d.ts +0 -8
  178. package/src/@claude-flow/cli/dist/src/mcp-tools/swarm-tools.d.ts +0 -8
  179. package/src/@claude-flow/cli/dist/src/mcp-tools/system-tools.d.ts +0 -13
  180. package/src/@claude-flow/cli/dist/src/mcp-tools/task-tools.d.ts +0 -8
  181. package/src/@claude-flow/cli/dist/src/mcp-tools/terminal-tools.d.ts +0 -13
  182. package/src/@claude-flow/cli/dist/src/mcp-tools/transfer-tools.d.ts +0 -14
  183. package/src/@claude-flow/cli/dist/src/mcp-tools/types.d.ts +0 -31
  184. package/src/@claude-flow/cli/dist/src/mcp-tools/workflow-tools.d.ts +0 -8
  185. package/src/@claude-flow/cli/dist/src/memory/ewc-consolidation.d.ts +0 -271
  186. package/src/@claude-flow/cli/dist/src/memory/intelligence.d.ts +0 -285
  187. package/src/@claude-flow/cli/dist/src/memory/memory-bridge.d.ts +0 -413
  188. package/src/@claude-flow/cli/dist/src/memory/memory-initializer.d.ts +0 -405
  189. package/src/@claude-flow/cli/dist/src/memory/sona-optimizer.d.ts +0 -227
  190. package/src/@claude-flow/cli/dist/src/output.d.ts +0 -133
  191. package/src/@claude-flow/cli/dist/src/parser.d.ts +0 -51
  192. package/src/@claude-flow/cli/dist/src/plugins/manager.d.ts +0 -133
  193. package/src/@claude-flow/cli/dist/src/plugins/store/discovery.d.ts +0 -88
  194. package/src/@claude-flow/cli/dist/src/plugins/store/index.d.ts +0 -76
  195. package/src/@claude-flow/cli/dist/src/plugins/store/search.d.ts +0 -46
  196. package/src/@claude-flow/cli/dist/src/plugins/store/types.d.ts +0 -274
  197. package/src/@claude-flow/cli/dist/src/plugins/tests/demo-plugin-store.d.ts +0 -7
  198. package/src/@claude-flow/cli/dist/src/plugins/tests/standalone-test.d.ts +0 -12
  199. package/src/@claude-flow/cli/dist/src/plugins/tests/test-plugin-store.d.ts +0 -7
  200. package/src/@claude-flow/cli/dist/src/production/circuit-breaker.d.ts +0 -101
  201. package/src/@claude-flow/cli/dist/src/production/error-handler.d.ts +0 -92
  202. package/src/@claude-flow/cli/dist/src/production/index.d.ts +0 -23
  203. package/src/@claude-flow/cli/dist/src/production/monitoring.d.ts +0 -161
  204. package/src/@claude-flow/cli/dist/src/production/rate-limiter.d.ts +0 -80
  205. package/src/@claude-flow/cli/dist/src/production/retry.d.ts +0 -48
  206. package/src/@claude-flow/cli/dist/src/prompt.d.ts +0 -44
  207. package/src/@claude-flow/cli/dist/src/runtime/headless.d.ts +0 -60
  208. package/src/@claude-flow/cli/dist/src/ruvector/ast-analyzer.d.ts +0 -67
  209. package/src/@claude-flow/cli/dist/src/ruvector/coverage-router.d.ts +0 -160
  210. package/src/@claude-flow/cli/dist/src/ruvector/coverage-tools.d.ts +0 -33
  211. package/src/@claude-flow/cli/dist/src/ruvector/diff-classifier.d.ts +0 -175
  212. package/src/@claude-flow/cli/dist/src/ruvector/enhanced-model-router.d.ts +0 -146
  213. package/src/@claude-flow/cli/dist/src/ruvector/flash-attention.d.ts +0 -195
  214. package/src/@claude-flow/cli/dist/src/ruvector/graph-analyzer.d.ts +0 -187
  215. package/src/@claude-flow/cli/dist/src/ruvector/index.d.ts +0 -34
  216. package/src/@claude-flow/cli/dist/src/ruvector/lora-adapter.d.ts +0 -218
  217. package/src/@claude-flow/cli/dist/src/ruvector/model-router.d.ts +0 -220
  218. package/src/@claude-flow/cli/dist/src/ruvector/moe-router.d.ts +0 -206
  219. package/src/@claude-flow/cli/dist/src/ruvector/q-learning-router.d.ts +0 -211
  220. package/src/@claude-flow/cli/dist/src/ruvector/semantic-router.d.ts +0 -77
  221. package/src/@claude-flow/cli/dist/src/ruvector/vector-db.d.ts +0 -69
  222. package/src/@claude-flow/cli/dist/src/services/agent-router.d.ts +0 -63
  223. package/src/@claude-flow/cli/dist/src/services/agentic-flow-bridge.d.ts +0 -50
  224. package/src/@claude-flow/cli/dist/src/services/claim-service.d.ts +0 -204
  225. package/src/@claude-flow/cli/dist/src/services/container-worker-pool.d.ts +0 -197
  226. package/src/@claude-flow/cli/dist/src/services/daemon-lock.d.ts +0 -60
  227. package/src/@claude-flow/cli/dist/src/services/headless-worker-executor.d.ts +0 -304
  228. package/src/@claude-flow/cli/dist/src/services/index.d.ts +0 -13
  229. package/src/@claude-flow/cli/dist/src/services/learning-service.d.ts +0 -161
  230. package/src/@claude-flow/cli/dist/src/services/moflo-require.d.ts +0 -34
  231. package/src/@claude-flow/cli/dist/src/services/registry-api.d.ts +0 -58
  232. package/src/@claude-flow/cli/dist/src/services/ruvector-training.d.ts +0 -214
  233. package/src/@claude-flow/cli/dist/src/services/worker-daemon.d.ts +0 -225
  234. package/src/@claude-flow/cli/dist/src/services/worker-queue.d.ts +0 -194
  235. package/src/@claude-flow/cli/dist/src/services/workflow-gate.d.ts +0 -88
  236. package/src/@claude-flow/cli/dist/src/suggest.d.ts +0 -53
  237. package/src/@claude-flow/cli/dist/src/transfer/anonymization/index.d.ts +0 -25
  238. package/src/@claude-flow/cli/dist/src/transfer/deploy-seraphine.d.ts +0 -13
  239. package/src/@claude-flow/cli/dist/src/transfer/export.d.ts +0 -25
  240. package/src/@claude-flow/cli/dist/src/transfer/index.d.ts +0 -12
  241. package/src/@claude-flow/cli/dist/src/transfer/ipfs/client.d.ts +0 -109
  242. package/src/@claude-flow/cli/dist/src/transfer/ipfs/upload.d.ts +0 -95
  243. package/src/@claude-flow/cli/dist/src/transfer/models/seraphine.d.ts +0 -72
  244. package/src/@claude-flow/cli/dist/src/transfer/serialization/cfp.d.ts +0 -49
  245. package/src/@claude-flow/cli/dist/src/transfer/storage/gcs.d.ts +0 -82
  246. package/src/@claude-flow/cli/dist/src/transfer/storage/index.d.ts +0 -6
  247. package/src/@claude-flow/cli/dist/src/transfer/store/discovery.d.ts +0 -84
  248. package/src/@claude-flow/cli/dist/src/transfer/store/download.d.ts +0 -70
  249. package/src/@claude-flow/cli/dist/src/transfer/store/index.d.ts +0 -84
  250. package/src/@claude-flow/cli/dist/src/transfer/store/publish.d.ts +0 -76
  251. package/src/@claude-flow/cli/dist/src/transfer/store/registry.d.ts +0 -58
  252. package/src/@claude-flow/cli/dist/src/transfer/store/search.d.ts +0 -54
  253. package/src/@claude-flow/cli/dist/src/transfer/store/tests/standalone-test.d.ts +0 -12
  254. package/src/@claude-flow/cli/dist/src/transfer/store/types.d.ts +0 -193
  255. package/src/@claude-flow/cli/dist/src/transfer/test-seraphine.d.ts +0 -6
  256. package/src/@claude-flow/cli/dist/src/transfer/tests/test-store.d.ts +0 -7
  257. package/src/@claude-flow/cli/dist/src/transfer/types.d.ts +0 -245
  258. package/src/@claude-flow/cli/dist/src/types.d.ts +0 -198
  259. package/src/@claude-flow/cli/dist/src/update/checker.d.ts +0 -34
  260. package/src/@claude-flow/cli/dist/src/update/executor.d.ts +0 -32
  261. package/src/@claude-flow/cli/dist/src/update/index.d.ts +0 -33
  262. package/src/@claude-flow/cli/dist/src/update/rate-limiter.d.ts +0 -20
  263. package/src/@claude-flow/cli/dist/src/update/validator.d.ts +0 -17
  264. package/src/@claude-flow/guidance/dist/adversarial.d.ts +0 -284
  265. package/src/@claude-flow/guidance/dist/analyzer.d.ts +0 -530
  266. package/src/@claude-flow/guidance/dist/artifacts.d.ts +0 -283
  267. package/src/@claude-flow/guidance/dist/authority.d.ts +0 -290
  268. package/src/@claude-flow/guidance/dist/capabilities.d.ts +0 -209
  269. package/src/@claude-flow/guidance/dist/coherence.d.ts +0 -233
  270. package/src/@claude-flow/guidance/dist/compiler.d.ts +0 -87
  271. package/src/@claude-flow/guidance/dist/conformance-kit.d.ts +0 -225
  272. package/src/@claude-flow/guidance/dist/continue-gate.d.ts +0 -214
  273. package/src/@claude-flow/guidance/dist/crypto-utils.d.ts +0 -17
  274. package/src/@claude-flow/guidance/dist/evolution.d.ts +0 -282
  275. package/src/@claude-flow/guidance/dist/gates.d.ts +0 -79
  276. package/src/@claude-flow/guidance/dist/gateway.d.ts +0 -206
  277. package/src/@claude-flow/guidance/dist/generators.d.ts +0 -153
  278. package/src/@claude-flow/guidance/dist/headless.d.ts +0 -177
  279. package/src/@claude-flow/guidance/dist/hooks.d.ts +0 -109
  280. package/src/@claude-flow/guidance/dist/index.d.ts +0 -205
  281. package/src/@claude-flow/guidance/dist/ledger.d.ts +0 -162
  282. package/src/@claude-flow/guidance/dist/manifest-validator.d.ts +0 -289
  283. package/src/@claude-flow/guidance/dist/memory-gate.d.ts +0 -222
  284. package/src/@claude-flow/guidance/dist/meta-governance.d.ts +0 -265
  285. package/src/@claude-flow/guidance/dist/optimizer.d.ts +0 -104
  286. package/src/@claude-flow/guidance/dist/persistence.d.ts +0 -189
  287. package/src/@claude-flow/guidance/dist/proof.d.ts +0 -185
  288. package/src/@claude-flow/guidance/dist/retriever.d.ts +0 -116
  289. package/src/@claude-flow/guidance/dist/ruvbot-integration.d.ts +0 -370
  290. package/src/@claude-flow/guidance/dist/temporal.d.ts +0 -426
  291. package/src/@claude-flow/guidance/dist/trust.d.ts +0 -283
  292. package/src/@claude-flow/guidance/dist/truth-anchors.d.ts +0 -276
  293. package/src/@claude-flow/guidance/dist/types.d.ts +0 -378
  294. package/src/@claude-flow/guidance/dist/uncertainty.d.ts +0 -372
  295. package/src/@claude-flow/guidance/dist/wasm-kernel.d.ts +0 -48
  296. package/src/@claude-flow/memory/dist/agent-memory-scope.d.ts +0 -131
  297. package/src/@claude-flow/memory/dist/agent-memory-scope.test.d.ts +0 -8
  298. package/src/@claude-flow/memory/dist/agentdb-adapter.d.ts +0 -165
  299. package/src/@claude-flow/memory/dist/agentdb-backend.d.ts +0 -212
  300. package/src/@claude-flow/memory/dist/agentdb-backend.test.d.ts +0 -7
  301. package/src/@claude-flow/memory/dist/application/commands/delete-memory.command.d.ts +0 -65
  302. package/src/@claude-flow/memory/dist/application/commands/store-memory.command.d.ts +0 -48
  303. package/src/@claude-flow/memory/dist/application/index.d.ts +0 -12
  304. package/src/@claude-flow/memory/dist/application/queries/search-memory.query.d.ts +0 -72
  305. package/src/@claude-flow/memory/dist/application/services/memory-application-service.d.ts +0 -121
  306. package/src/@claude-flow/memory/dist/auto-memory-bridge.d.ts +0 -226
  307. package/src/@claude-flow/memory/dist/auto-memory-bridge.test.d.ts +0 -8
  308. package/src/@claude-flow/memory/dist/benchmark.test.d.ts +0 -2
  309. package/src/@claude-flow/memory/dist/cache-manager.d.ts +0 -134
  310. package/src/@claude-flow/memory/dist/controller-registry.d.ts +0 -216
  311. package/src/@claude-flow/memory/dist/controller-registry.test.d.ts +0 -14
  312. package/src/@claude-flow/memory/dist/database-provider.d.ts +0 -87
  313. package/src/@claude-flow/memory/dist/database-provider.test.d.ts +0 -7
  314. package/src/@claude-flow/memory/dist/domain/entities/memory-entry.d.ts +0 -143
  315. package/src/@claude-flow/memory/dist/domain/index.d.ts +0 -11
  316. package/src/@claude-flow/memory/dist/domain/repositories/memory-repository.interface.d.ts +0 -102
  317. package/src/@claude-flow/memory/dist/domain/services/memory-domain-service.d.ts +0 -105
  318. package/src/@claude-flow/memory/dist/hnsw-index.d.ts +0 -111
  319. package/src/@claude-flow/memory/dist/hnsw-lite.d.ts +0 -23
  320. package/src/@claude-flow/memory/dist/hybrid-backend.d.ts +0 -245
  321. package/src/@claude-flow/memory/dist/hybrid-backend.test.d.ts +0 -8
  322. package/src/@claude-flow/memory/dist/index.d.ts +0 -204
  323. package/src/@claude-flow/memory/dist/infrastructure/index.d.ts +0 -17
  324. package/src/@claude-flow/memory/dist/infrastructure/repositories/hybrid-memory-repository.d.ts +0 -66
  325. package/src/@claude-flow/memory/dist/learning-bridge.d.ts +0 -137
  326. package/src/@claude-flow/memory/dist/learning-bridge.test.d.ts +0 -8
  327. package/src/@claude-flow/memory/dist/memory-graph.d.ts +0 -100
  328. package/src/@claude-flow/memory/dist/memory-graph.test.d.ts +0 -8
  329. package/src/@claude-flow/memory/dist/migration.d.ts +0 -68
  330. package/src/@claude-flow/memory/dist/persistent-sona.d.ts +0 -144
  331. package/src/@claude-flow/memory/dist/query-builder.d.ts +0 -211
  332. package/src/@claude-flow/memory/dist/rvf-backend.d.ts +0 -51
  333. package/src/@claude-flow/memory/dist/rvf-learning-store.d.ts +0 -139
  334. package/src/@claude-flow/memory/dist/rvf-migration.d.ts +0 -45
  335. package/src/@claude-flow/memory/dist/sqlite-backend.d.ts +0 -121
  336. package/src/@claude-flow/memory/dist/sqljs-backend.d.ts +0 -127
  337. package/src/@claude-flow/memory/dist/types.d.ts +0 -484
  338. package/src/@claude-flow/shared/dist/core/config/defaults.d.ts +0 -41
  339. package/src/@claude-flow/shared/dist/core/config/index.d.ts +0 -8
  340. package/src/@claude-flow/shared/dist/core/config/loader.d.ts +0 -45
  341. package/src/@claude-flow/shared/dist/core/config/schema.d.ts +0 -1134
  342. package/src/@claude-flow/shared/dist/core/config/validator.d.ts +0 -92
  343. package/src/@claude-flow/shared/dist/core/event-bus.d.ts +0 -31
  344. package/src/@claude-flow/shared/dist/core/index.d.ts +0 -15
  345. package/src/@claude-flow/shared/dist/core/interfaces/agent.interface.d.ts +0 -200
  346. package/src/@claude-flow/shared/dist/core/interfaces/coordinator.interface.d.ts +0 -310
  347. package/src/@claude-flow/shared/dist/core/interfaces/event.interface.d.ts +0 -224
  348. package/src/@claude-flow/shared/dist/core/interfaces/index.d.ts +0 -10
  349. package/src/@claude-flow/shared/dist/core/interfaces/memory.interface.d.ts +0 -298
  350. package/src/@claude-flow/shared/dist/core/interfaces/task.interface.d.ts +0 -185
  351. package/src/@claude-flow/shared/dist/core/orchestrator/event-coordinator.d.ts +0 -35
  352. package/src/@claude-flow/shared/dist/core/orchestrator/health-monitor.d.ts +0 -60
  353. package/src/@claude-flow/shared/dist/core/orchestrator/index.d.ts +0 -46
  354. package/src/@claude-flow/shared/dist/core/orchestrator/lifecycle-manager.d.ts +0 -56
  355. package/src/@claude-flow/shared/dist/core/orchestrator/session-manager.d.ts +0 -83
  356. package/src/@claude-flow/shared/dist/core/orchestrator/task-manager.d.ts +0 -49
  357. package/src/@claude-flow/shared/dist/events/domain-events.d.ts +0 -282
  358. package/src/@claude-flow/shared/dist/events/event-store.d.ts +0 -126
  359. package/src/@claude-flow/shared/dist/events/event-store.test.d.ts +0 -8
  360. package/src/@claude-flow/shared/dist/events/example-usage.d.ts +0 -10
  361. package/src/@claude-flow/shared/dist/events/index.d.ts +0 -21
  362. package/src/@claude-flow/shared/dist/events/projections.d.ts +0 -177
  363. package/src/@claude-flow/shared/dist/events/rvf-event-log.d.ts +0 -82
  364. package/src/@claude-flow/shared/dist/events/state-reconstructor.d.ts +0 -101
  365. package/src/@claude-flow/shared/dist/events.d.ts +0 -80
  366. package/src/@claude-flow/shared/dist/hooks/example-usage.d.ts +0 -42
  367. package/src/@claude-flow/shared/dist/hooks/executor.d.ts +0 -100
  368. package/src/@claude-flow/shared/dist/hooks/hooks.test.d.ts +0 -9
  369. package/src/@claude-flow/shared/dist/hooks/index.d.ts +0 -52
  370. package/src/@claude-flow/shared/dist/hooks/registry.d.ts +0 -133
  371. package/src/@claude-flow/shared/dist/hooks/safety/bash-safety.d.ts +0 -105
  372. package/src/@claude-flow/shared/dist/hooks/safety/file-organization.d.ts +0 -144
  373. package/src/@claude-flow/shared/dist/hooks/safety/git-commit.d.ts +0 -158
  374. package/src/@claude-flow/shared/dist/hooks/safety/index.d.ts +0 -17
  375. package/src/@claude-flow/shared/dist/hooks/session-hooks.d.ts +0 -234
  376. package/src/@claude-flow/shared/dist/hooks/task-hooks.d.ts +0 -163
  377. package/src/@claude-flow/shared/dist/hooks/types.d.ts +0 -267
  378. package/src/@claude-flow/shared/dist/hooks/verify-exports.test.d.ts +0 -9
  379. package/src/@claude-flow/shared/dist/index.d.ts +0 -20
  380. package/src/@claude-flow/shared/dist/mcp/connection-pool.d.ts +0 -98
  381. package/src/@claude-flow/shared/dist/mcp/index.d.ts +0 -69
  382. package/src/@claude-flow/shared/dist/mcp/server.d.ts +0 -166
  383. package/src/@claude-flow/shared/dist/mcp/session-manager.d.ts +0 -136
  384. package/src/@claude-flow/shared/dist/mcp/tool-registry.d.ts +0 -178
  385. package/src/@claude-flow/shared/dist/mcp/transport/http.d.ts +0 -104
  386. package/src/@claude-flow/shared/dist/mcp/transport/index.d.ts +0 -102
  387. package/src/@claude-flow/shared/dist/mcp/transport/stdio.d.ts +0 -104
  388. package/src/@claude-flow/shared/dist/mcp/transport/websocket.d.ts +0 -133
  389. package/src/@claude-flow/shared/dist/mcp/types.d.ts +0 -438
  390. package/src/@claude-flow/shared/dist/plugin-interface.d.ts +0 -544
  391. package/src/@claude-flow/shared/dist/plugin-loader.d.ts +0 -139
  392. package/src/@claude-flow/shared/dist/plugin-registry.d.ts +0 -183
  393. package/src/@claude-flow/shared/dist/plugins/index.d.ts +0 -10
  394. package/src/@claude-flow/shared/dist/plugins/official/hive-mind-plugin.d.ts +0 -106
  395. package/src/@claude-flow/shared/dist/plugins/official/index.d.ts +0 -10
  396. package/src/@claude-flow/shared/dist/plugins/official/maestro-plugin.d.ts +0 -121
  397. package/src/@claude-flow/shared/dist/plugins/types.d.ts +0 -93
  398. package/src/@claude-flow/shared/dist/resilience/bulkhead.d.ts +0 -105
  399. package/src/@claude-flow/shared/dist/resilience/circuit-breaker.d.ts +0 -132
  400. package/src/@claude-flow/shared/dist/resilience/index.d.ts +0 -19
  401. package/src/@claude-flow/shared/dist/resilience/rate-limiter.d.ts +0 -168
  402. package/src/@claude-flow/shared/dist/resilience/retry.d.ts +0 -91
  403. package/src/@claude-flow/shared/dist/security/index.d.ts +0 -10
  404. package/src/@claude-flow/shared/dist/security/input-validation.d.ts +0 -73
  405. package/src/@claude-flow/shared/dist/security/secure-random.d.ts +0 -92
  406. package/src/@claude-flow/shared/dist/services/index.d.ts +0 -7
  407. package/src/@claude-flow/shared/dist/services/v3-progress.service.d.ts +0 -124
  408. package/src/@claude-flow/shared/dist/types/agent.types.d.ts +0 -137
  409. package/src/@claude-flow/shared/dist/types/index.d.ts +0 -11
  410. package/src/@claude-flow/shared/dist/types/mcp.types.d.ts +0 -266
  411. package/src/@claude-flow/shared/dist/types/memory.types.d.ts +0 -236
  412. package/src/@claude-flow/shared/dist/types/swarm.types.d.ts +0 -186
  413. package/src/@claude-flow/shared/dist/types/task.types.d.ts +0 -178
  414. package/src/@claude-flow/shared/dist/types.d.ts +0 -197
  415. package/src/@claude-flow/shared/dist/utils/secure-logger.d.ts +0 -69
@@ -0,0 +1,603 @@
1
+ /**
2
+ * Pattern Learner
3
+ *
4
+ * Implements pattern extraction, matching, and evolution for
5
+ * continuous learning from agent experiences.
6
+ *
7
+ * Performance Targets:
8
+ * - Pattern matching: <1ms
9
+ * - Pattern extraction: <5ms
10
+ * - Evolution step: <2ms
11
+ */
12
+ /**
13
+ * Default Pattern Learner configuration
14
+ */
15
+ const DEFAULT_CONFIG = {
16
+ maxPatterns: 1000,
17
+ matchThreshold: 0.7,
18
+ minUsagesForStable: 5,
19
+ qualityThreshold: 0.5,
20
+ enableClustering: true,
21
+ numClusters: 50,
22
+ evolutionLearningRate: 0.1,
23
+ };
24
+ /**
25
+ * Pattern Learner - Manages pattern extraction, matching, and evolution
26
+ */
27
+ export class PatternLearner {
28
+ config;
29
+ patterns = new Map();
30
+ clusters = [];
31
+ patternToCluster = new Map();
32
+ // Performance tracking
33
+ matchCount = 0;
34
+ totalMatchTime = 0;
35
+ extractionCount = 0;
36
+ totalExtractionTime = 0;
37
+ evolutionCount = 0;
38
+ totalEvolutionTime = 0;
39
+ // Event listeners
40
+ eventListeners = new Set();
41
+ constructor(config = {}) {
42
+ this.config = { ...DEFAULT_CONFIG, ...config };
43
+ }
44
+ // ==========================================================================
45
+ // Pattern Matching
46
+ // ==========================================================================
47
+ /**
48
+ * Find matching patterns for a query embedding
49
+ * Target: <1ms
50
+ */
51
+ findMatches(queryEmbedding, k = 3) {
52
+ const startTime = performance.now();
53
+ if (this.patterns.size === 0) {
54
+ return [];
55
+ }
56
+ let candidates;
57
+ // Use clustering for faster search if enabled and clusters exist
58
+ if (this.config.enableClustering && this.clusters.length > 0) {
59
+ candidates = this.getCandidatesFromClusters(queryEmbedding);
60
+ }
61
+ else {
62
+ candidates = Array.from(this.patterns.values());
63
+ }
64
+ // Compute similarities
65
+ const matches = [];
66
+ for (const pattern of candidates) {
67
+ const similarity = this.cosineSimilarity(queryEmbedding, pattern.embedding);
68
+ if (similarity >= this.config.matchThreshold) {
69
+ matches.push({
70
+ pattern,
71
+ similarity,
72
+ confidence: this.computeMatchConfidence(pattern, similarity),
73
+ latencyMs: 0,
74
+ });
75
+ }
76
+ }
77
+ // Sort by similarity
78
+ matches.sort((a, b) => b.similarity - a.similarity);
79
+ const result = matches.slice(0, k);
80
+ // Track performance
81
+ const elapsed = performance.now() - startTime;
82
+ this.matchCount++;
83
+ this.totalMatchTime += elapsed;
84
+ // Warn if over target
85
+ if (elapsed > 1) {
86
+ console.warn(`Pattern matching exceeded target: ${elapsed.toFixed(2)}ms > 1ms`);
87
+ }
88
+ return result;
89
+ }
90
+ /**
91
+ * Find best single match
92
+ */
93
+ findBestMatch(queryEmbedding) {
94
+ const matches = this.findMatches(queryEmbedding, 1);
95
+ return matches.length > 0 ? matches[0] : null;
96
+ }
97
+ // ==========================================================================
98
+ // Pattern Extraction
99
+ // ==========================================================================
100
+ /**
101
+ * Extract a pattern from a trajectory
102
+ * Target: <5ms
103
+ */
104
+ extractPattern(trajectory, memory) {
105
+ const startTime = performance.now();
106
+ // Validate trajectory
107
+ if (!trajectory.isComplete || trajectory.qualityScore < this.config.qualityThreshold) {
108
+ return null;
109
+ }
110
+ // Check for duplicates
111
+ const embedding = this.computePatternEmbedding(trajectory);
112
+ const existing = this.findSimilarPattern(embedding, 0.95);
113
+ if (existing) {
114
+ // Update existing pattern instead
115
+ this.updatePatternFromTrajectory(existing, trajectory);
116
+ return existing;
117
+ }
118
+ // Create new pattern
119
+ const pattern = {
120
+ patternId: `pat_${Date.now()}_${Math.random().toString(36).slice(2, 9)}`,
121
+ name: this.generatePatternName(trajectory),
122
+ domain: trajectory.domain,
123
+ embedding,
124
+ strategy: this.extractStrategy(trajectory),
125
+ successRate: trajectory.qualityScore,
126
+ usageCount: 1,
127
+ qualityHistory: [trajectory.qualityScore],
128
+ evolutionHistory: [],
129
+ createdAt: Date.now(),
130
+ updatedAt: Date.now(),
131
+ };
132
+ // Store pattern
133
+ this.patterns.set(pattern.patternId, pattern);
134
+ // Update clusters if enabled
135
+ if (this.config.enableClustering) {
136
+ this.assignToCluster(pattern);
137
+ }
138
+ // Prune if over capacity
139
+ if (this.patterns.size > this.config.maxPatterns) {
140
+ this.prunePatterns();
141
+ }
142
+ // Track performance
143
+ const elapsed = performance.now() - startTime;
144
+ this.extractionCount++;
145
+ this.totalExtractionTime += elapsed;
146
+ return pattern;
147
+ }
148
+ /**
149
+ * Extract patterns from multiple trajectories in batch
150
+ */
151
+ extractPatternsBatch(trajectories) {
152
+ const patterns = [];
153
+ for (const trajectory of trajectories) {
154
+ const pattern = this.extractPattern(trajectory);
155
+ if (pattern) {
156
+ patterns.push(pattern);
157
+ }
158
+ }
159
+ // Rebuild clusters after batch extraction
160
+ if (this.config.enableClustering && patterns.length > 10) {
161
+ this.rebuildClusters();
162
+ }
163
+ return patterns;
164
+ }
165
+ // ==========================================================================
166
+ // Pattern Evolution
167
+ // ==========================================================================
168
+ /**
169
+ * Evolve a pattern based on new experience
170
+ * Target: <2ms
171
+ */
172
+ evolvePattern(patternId, quality, context) {
173
+ const startTime = performance.now();
174
+ const pattern = this.patterns.get(patternId);
175
+ if (!pattern)
176
+ return;
177
+ const previousQuality = pattern.successRate;
178
+ const lr = this.config.evolutionLearningRate;
179
+ // Update quality history
180
+ pattern.qualityHistory.push(quality);
181
+ if (pattern.qualityHistory.length > 100) {
182
+ pattern.qualityHistory = pattern.qualityHistory.slice(-100);
183
+ }
184
+ // Exponential moving average for success rate
185
+ pattern.successRate = pattern.successRate * (1 - lr) + quality * lr;
186
+ pattern.usageCount++;
187
+ pattern.updatedAt = Date.now();
188
+ // Record evolution
189
+ const evolutionType = this.determineEvolutionType(previousQuality, pattern.successRate);
190
+ pattern.evolutionHistory.push({
191
+ timestamp: Date.now(),
192
+ type: evolutionType,
193
+ previousQuality,
194
+ newQuality: pattern.successRate,
195
+ description: context || 'Updated from new experience',
196
+ });
197
+ // Keep evolution history bounded
198
+ if (pattern.evolutionHistory.length > 50) {
199
+ pattern.evolutionHistory = pattern.evolutionHistory.slice(-50);
200
+ }
201
+ // Emit event
202
+ this.emitEvent({
203
+ type: 'pattern_evolved',
204
+ patternId,
205
+ evolutionType,
206
+ });
207
+ // Track performance
208
+ const elapsed = performance.now() - startTime;
209
+ this.evolutionCount++;
210
+ this.totalEvolutionTime += elapsed;
211
+ }
212
+ /**
213
+ * Merge two similar patterns
214
+ */
215
+ mergePatterns(patternId1, patternId2) {
216
+ const p1 = this.patterns.get(patternId1);
217
+ const p2 = this.patterns.get(patternId2);
218
+ if (!p1 || !p2)
219
+ return null;
220
+ // Keep the higher quality pattern as base
221
+ const [keep, remove] = p1.successRate >= p2.successRate ? [p1, p2] : [p2, p1];
222
+ // Merge embeddings (weighted average)
223
+ const totalUsage = keep.usageCount + remove.usageCount;
224
+ const w1 = keep.usageCount / totalUsage;
225
+ const w2 = remove.usageCount / totalUsage;
226
+ for (let i = 0; i < keep.embedding.length; i++) {
227
+ keep.embedding[i] = keep.embedding[i] * w1 + remove.embedding[i] * w2;
228
+ }
229
+ // Merge statistics
230
+ keep.usageCount += remove.usageCount;
231
+ keep.qualityHistory.push(...remove.qualityHistory);
232
+ keep.successRate = keep.qualityHistory.reduce((a, b) => a + b, 0) / keep.qualityHistory.length;
233
+ // Record merge
234
+ keep.evolutionHistory.push({
235
+ timestamp: Date.now(),
236
+ type: 'merge',
237
+ previousQuality: p1.successRate,
238
+ newQuality: keep.successRate,
239
+ description: `Merged with pattern ${remove.patternId}`,
240
+ });
241
+ // Remove the merged pattern
242
+ this.patterns.delete(remove.patternId);
243
+ this.patternToCluster.delete(remove.patternId);
244
+ return keep;
245
+ }
246
+ /**
247
+ * Split a pattern into more specific sub-patterns
248
+ */
249
+ splitPattern(patternId, numSplits = 2) {
250
+ const pattern = this.patterns.get(patternId);
251
+ if (!pattern || numSplits < 2)
252
+ return [];
253
+ const splits = [];
254
+ for (let i = 0; i < numSplits; i++) {
255
+ // Create variation of embedding with noise
256
+ const newEmbedding = new Float32Array(pattern.embedding.length);
257
+ for (let j = 0; j < newEmbedding.length; j++) {
258
+ const noise = (Math.random() - 0.5) * 0.1;
259
+ newEmbedding[j] = pattern.embedding[j] + noise;
260
+ }
261
+ const newPattern = {
262
+ patternId: `pat_${Date.now()}_${i}_${Math.random().toString(36).slice(2, 6)}`,
263
+ name: `${pattern.name}_split_${i}`,
264
+ domain: pattern.domain,
265
+ embedding: newEmbedding,
266
+ strategy: pattern.strategy,
267
+ successRate: pattern.successRate * 0.9, // Slight penalty for uncertainty
268
+ usageCount: 0,
269
+ qualityHistory: [],
270
+ evolutionHistory: [{
271
+ timestamp: Date.now(),
272
+ type: 'split',
273
+ previousQuality: pattern.successRate,
274
+ newQuality: pattern.successRate * 0.9,
275
+ description: `Split from pattern ${patternId}`,
276
+ }],
277
+ createdAt: Date.now(),
278
+ updatedAt: Date.now(),
279
+ };
280
+ this.patterns.set(newPattern.patternId, newPattern);
281
+ splits.push(newPattern);
282
+ }
283
+ // Remove original pattern
284
+ this.patterns.delete(patternId);
285
+ this.patternToCluster.delete(patternId);
286
+ // Rebuild clusters
287
+ if (this.config.enableClustering) {
288
+ this.rebuildClusters();
289
+ }
290
+ return splits;
291
+ }
292
+ // ==========================================================================
293
+ // Pattern Access
294
+ // ==========================================================================
295
+ /**
296
+ * Get all patterns
297
+ */
298
+ getPatterns() {
299
+ return Array.from(this.patterns.values());
300
+ }
301
+ /**
302
+ * Get pattern by ID
303
+ */
304
+ getPattern(patternId) {
305
+ return this.patterns.get(patternId);
306
+ }
307
+ /**
308
+ * Get patterns by domain
309
+ */
310
+ getPatternsByDomain(domain) {
311
+ return Array.from(this.patterns.values()).filter(p => p.domain === domain);
312
+ }
313
+ /**
314
+ * Get stable patterns (sufficient usage)
315
+ */
316
+ getStablePatterns() {
317
+ return Array.from(this.patterns.values())
318
+ .filter(p => p.usageCount >= this.config.minUsagesForStable);
319
+ }
320
+ // ==========================================================================
321
+ // Statistics
322
+ // ==========================================================================
323
+ getStats() {
324
+ const patterns = Array.from(this.patterns.values());
325
+ return {
326
+ totalPatterns: this.patterns.size,
327
+ stablePatterns: patterns.filter(p => p.usageCount >= this.config.minUsagesForStable).length,
328
+ avgSuccessRate: patterns.length > 0
329
+ ? patterns.reduce((s, p) => s + p.successRate, 0) / patterns.length
330
+ : 0,
331
+ avgUsageCount: patterns.length > 0
332
+ ? patterns.reduce((s, p) => s + p.usageCount, 0) / patterns.length
333
+ : 0,
334
+ numClusters: this.clusters.length,
335
+ avgMatchTimeMs: this.matchCount > 0 ? this.totalMatchTime / this.matchCount : 0,
336
+ avgExtractionTimeMs: this.extractionCount > 0 ? this.totalExtractionTime / this.extractionCount : 0,
337
+ avgEvolutionTimeMs: this.evolutionCount > 0 ? this.totalEvolutionTime / this.evolutionCount : 0,
338
+ };
339
+ }
340
+ // ==========================================================================
341
+ // Event System
342
+ // ==========================================================================
343
+ addEventListener(listener) {
344
+ this.eventListeners.add(listener);
345
+ }
346
+ removeEventListener(listener) {
347
+ this.eventListeners.delete(listener);
348
+ }
349
+ emitEvent(event) {
350
+ for (const listener of this.eventListeners) {
351
+ try {
352
+ listener(event);
353
+ }
354
+ catch (error) {
355
+ console.error('Error in PatternLearner event listener:', error);
356
+ }
357
+ }
358
+ }
359
+ // ==========================================================================
360
+ // Private Helper Methods
361
+ // ==========================================================================
362
+ cosineSimilarity(a, b) {
363
+ if (a.length !== b.length)
364
+ return 0;
365
+ let dot = 0, normA = 0, normB = 0;
366
+ for (let i = 0; i < a.length; i++) {
367
+ dot += a[i] * b[i];
368
+ normA += a[i] * a[i];
369
+ normB += b[i] * b[i];
370
+ }
371
+ const denom = Math.sqrt(normA) * Math.sqrt(normB);
372
+ return denom > 0 ? dot / denom : 0;
373
+ }
374
+ computeMatchConfidence(pattern, similarity) {
375
+ // Combine similarity with pattern reliability
376
+ const usageWeight = Math.min(pattern.usageCount / 10, 1);
377
+ const qualityWeight = pattern.successRate;
378
+ return similarity * (1 - usageWeight * 0.2 - qualityWeight * 0.2) +
379
+ usageWeight * 0.1 +
380
+ qualityWeight * 0.1;
381
+ }
382
+ getCandidatesFromClusters(queryEmbedding) {
383
+ // Find nearest clusters
384
+ const clusterScores = [];
385
+ for (const cluster of this.clusters) {
386
+ const score = this.cosineSimilarity(queryEmbedding, cluster.centroid);
387
+ clusterScores.push({ cluster, score });
388
+ }
389
+ clusterScores.sort((a, b) => b.score - a.score);
390
+ // Get patterns from top 3 clusters
391
+ const candidates = [];
392
+ for (const { cluster } of clusterScores.slice(0, 3)) {
393
+ for (const patternId of cluster.patternIds) {
394
+ const pattern = this.patterns.get(patternId);
395
+ if (pattern) {
396
+ candidates.push(pattern);
397
+ }
398
+ }
399
+ }
400
+ return candidates;
401
+ }
402
+ findSimilarPattern(embedding, threshold) {
403
+ for (const pattern of this.patterns.values()) {
404
+ const sim = this.cosineSimilarity(embedding, pattern.embedding);
405
+ if (sim >= threshold) {
406
+ return pattern;
407
+ }
408
+ }
409
+ return null;
410
+ }
411
+ updatePatternFromTrajectory(pattern, trajectory) {
412
+ // Update quality
413
+ pattern.qualityHistory.push(trajectory.qualityScore);
414
+ if (pattern.qualityHistory.length > 100) {
415
+ pattern.qualityHistory = pattern.qualityHistory.slice(-100);
416
+ }
417
+ // EMA for success rate
418
+ const lr = this.config.evolutionLearningRate;
419
+ pattern.successRate = pattern.successRate * (1 - lr) + trajectory.qualityScore * lr;
420
+ pattern.usageCount++;
421
+ pattern.updatedAt = Date.now();
422
+ }
423
+ computePatternEmbedding(trajectory) {
424
+ if (trajectory.steps.length === 0) {
425
+ return new Float32Array(768);
426
+ }
427
+ const dim = trajectory.steps[0].stateAfter.length;
428
+ const embedding = new Float32Array(dim);
429
+ // Weighted average (higher weight for later steps)
430
+ let totalWeight = 0;
431
+ for (let i = 0; i < trajectory.steps.length; i++) {
432
+ const weight = (i + 1) / trajectory.steps.length;
433
+ totalWeight += weight;
434
+ for (let j = 0; j < dim; j++) {
435
+ embedding[j] += trajectory.steps[i].stateAfter[j] * weight;
436
+ }
437
+ }
438
+ for (let j = 0; j < dim; j++) {
439
+ embedding[j] /= totalWeight;
440
+ }
441
+ return embedding;
442
+ }
443
+ generatePatternName(trajectory) {
444
+ const domain = trajectory.domain;
445
+ const quality = trajectory.qualityScore > 0.7 ? 'high' : 'mid';
446
+ const steps = trajectory.steps.length > 5 ? 'complex' : 'simple';
447
+ return `${domain}_${quality}_${steps}_${Date.now() % 10000}`;
448
+ }
449
+ extractStrategy(trajectory) {
450
+ const actions = trajectory.steps.map(s => s.action);
451
+ if (actions.length === 0)
452
+ return 'empty';
453
+ if (actions.length <= 3)
454
+ return actions.join(' -> ');
455
+ return `${actions.slice(0, 2).join(' -> ')} ... ${actions[actions.length - 1]}`;
456
+ }
457
+ assignToCluster(pattern) {
458
+ if (this.clusters.length === 0) {
459
+ // Create first cluster
460
+ this.clusters.push({
461
+ clusterId: 0,
462
+ centroid: new Float32Array(pattern.embedding),
463
+ patternIds: new Set([pattern.patternId]),
464
+ });
465
+ this.patternToCluster.set(pattern.patternId, 0);
466
+ return;
467
+ }
468
+ // Find nearest cluster
469
+ let bestCluster = 0;
470
+ let bestSim = -1;
471
+ for (let i = 0; i < this.clusters.length; i++) {
472
+ const sim = this.cosineSimilarity(pattern.embedding, this.clusters[i].centroid);
473
+ if (sim > bestSim) {
474
+ bestSim = sim;
475
+ bestCluster = i;
476
+ }
477
+ }
478
+ // Create new cluster if not similar enough and under limit
479
+ if (bestSim < 0.7 && this.clusters.length < this.config.numClusters) {
480
+ const newId = this.clusters.length;
481
+ this.clusters.push({
482
+ clusterId: newId,
483
+ centroid: new Float32Array(pattern.embedding),
484
+ patternIds: new Set([pattern.patternId]),
485
+ });
486
+ this.patternToCluster.set(pattern.patternId, newId);
487
+ }
488
+ else {
489
+ // Add to existing cluster and update centroid
490
+ const cluster = this.clusters[bestCluster];
491
+ cluster.patternIds.add(pattern.patternId);
492
+ this.patternToCluster.set(pattern.patternId, bestCluster);
493
+ this.updateClusterCentroid(cluster);
494
+ }
495
+ }
496
+ updateClusterCentroid(cluster) {
497
+ const dim = cluster.centroid.length;
498
+ const newCentroid = new Float32Array(dim);
499
+ let count = 0;
500
+ for (const patternId of cluster.patternIds) {
501
+ const pattern = this.patterns.get(patternId);
502
+ if (pattern) {
503
+ for (let i = 0; i < dim; i++) {
504
+ newCentroid[i] += pattern.embedding[i];
505
+ }
506
+ count++;
507
+ }
508
+ }
509
+ if (count > 0) {
510
+ for (let i = 0; i < dim; i++) {
511
+ newCentroid[i] /= count;
512
+ }
513
+ cluster.centroid = newCentroid;
514
+ }
515
+ }
516
+ rebuildClusters() {
517
+ if (this.patterns.size === 0) {
518
+ this.clusters = [];
519
+ this.patternToCluster.clear();
520
+ return;
521
+ }
522
+ const patterns = Array.from(this.patterns.values());
523
+ const k = Math.min(this.config.numClusters, Math.ceil(patterns.length / 5));
524
+ const dim = patterns[0].embedding.length;
525
+ // Initialize clusters with random patterns
526
+ this.clusters = [];
527
+ this.patternToCluster.clear();
528
+ const indices = new Set();
529
+ while (indices.size < k && indices.size < patterns.length) {
530
+ indices.add(Math.floor(Math.random() * patterns.length));
531
+ }
532
+ let clusterId = 0;
533
+ for (const idx of indices) {
534
+ this.clusters.push({
535
+ clusterId: clusterId++,
536
+ centroid: new Float32Array(patterns[idx].embedding),
537
+ patternIds: new Set(),
538
+ });
539
+ }
540
+ // K-means iterations
541
+ for (let iter = 0; iter < 10; iter++) {
542
+ // Clear assignments
543
+ for (const cluster of this.clusters) {
544
+ cluster.patternIds.clear();
545
+ }
546
+ // Assign patterns to nearest cluster
547
+ for (const pattern of patterns) {
548
+ let bestCluster = 0;
549
+ let bestSim = -1;
550
+ for (let c = 0; c < this.clusters.length; c++) {
551
+ const sim = this.cosineSimilarity(pattern.embedding, this.clusters[c].centroid);
552
+ if (sim > bestSim) {
553
+ bestSim = sim;
554
+ bestCluster = c;
555
+ }
556
+ }
557
+ this.clusters[bestCluster].patternIds.add(pattern.patternId);
558
+ this.patternToCluster.set(pattern.patternId, bestCluster);
559
+ }
560
+ // Update centroids
561
+ for (const cluster of this.clusters) {
562
+ this.updateClusterCentroid(cluster);
563
+ }
564
+ }
565
+ // Remove empty clusters
566
+ this.clusters = this.clusters.filter(c => c.patternIds.size > 0);
567
+ }
568
+ prunePatterns() {
569
+ // Sort by score (quality * log(usage))
570
+ const scored = Array.from(this.patterns.entries())
571
+ .map(([id, pattern]) => ({
572
+ id,
573
+ pattern,
574
+ score: pattern.successRate * Math.log(pattern.usageCount + 1),
575
+ }))
576
+ .sort((a, b) => a.score - b.score);
577
+ // Remove lowest scoring patterns
578
+ const toRemove = scored.length - Math.floor(this.config.maxPatterns * 0.8);
579
+ for (let i = 0; i < toRemove && i < scored.length; i++) {
580
+ this.patterns.delete(scored[i].id);
581
+ this.patternToCluster.delete(scored[i].id);
582
+ }
583
+ // Rebuild clusters
584
+ if (this.config.enableClustering) {
585
+ this.rebuildClusters();
586
+ }
587
+ }
588
+ determineEvolutionType(prev, curr) {
589
+ const delta = curr - prev;
590
+ if (delta > 0.05)
591
+ return 'improvement';
592
+ if (delta < -0.15)
593
+ return 'prune';
594
+ return 'improvement';
595
+ }
596
+ }
597
+ /**
598
+ * Factory function for creating PatternLearner
599
+ */
600
+ export function createPatternLearner(config) {
601
+ return new PatternLearner(config);
602
+ }
603
+ //# sourceMappingURL=pattern-learner.js.map