agentic-flow 2.0.3 → 2.0.4

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 (322) hide show
  1. package/.claude/agents/test-neural.md +14 -0
  2. package/.claude/settings.json +9 -133
  3. package/README.md +624 -1776
  4. package/dist/.tsbuildinfo +1 -1
  5. package/dist/billing/mcp/tools.js +0 -1
  6. package/dist/billing/mcp/tools.js.map +1 -1
  7. package/dist/cli/commands/hooks.d.ts.map +1 -1
  8. package/dist/cli/commands/hooks.js +4 -79
  9. package/dist/cli/commands/hooks.js.map +1 -1
  10. package/dist/cli-proxy.js +1 -89
  11. package/dist/cli-proxy.js.map +1 -1
  12. package/dist/core/agentdb-fast.js +3 -3
  13. package/dist/core/agentdb-fast.js.map +1 -1
  14. package/dist/core/agentdb-wrapper-enhanced.d.ts.map +1 -1
  15. package/dist/core/agentdb-wrapper-enhanced.js +4 -20
  16. package/dist/core/agentdb-wrapper-enhanced.js.map +1 -1
  17. package/dist/core/agentdb-wrapper.d.ts +2 -3
  18. package/dist/core/agentdb-wrapper.d.ts.map +1 -1
  19. package/dist/core/agentdb-wrapper.js +1 -15
  20. package/dist/core/agentdb-wrapper.js.map +1 -1
  21. package/dist/core/attention-native.d.ts +0 -4
  22. package/dist/core/attention-native.d.ts.map +1 -1
  23. package/dist/core/attention-native.js +2 -14
  24. package/dist/core/attention-native.js.map +1 -1
  25. package/dist/federation/SecurityManager.d.ts +2 -11
  26. package/dist/federation/SecurityManager.d.ts.map +1 -1
  27. package/dist/federation/SecurityManager.js +17 -50
  28. package/dist/federation/SecurityManager.js.map +1 -1
  29. package/dist/federation/integrations/supabase-adapter-debug.js +3 -3
  30. package/dist/federation/integrations/supabase-adapter-debug.js.map +1 -1
  31. package/dist/hooks/swarm-learning-optimizer.js +5 -5
  32. package/dist/hooks/swarm-learning-optimizer.js.map +1 -1
  33. package/dist/intelligence/IntelligenceStore.d.ts +26 -35
  34. package/dist/intelligence/IntelligenceStore.d.ts.map +1 -1
  35. package/dist/intelligence/IntelligenceStore.js +123 -308
  36. package/dist/intelligence/IntelligenceStore.js.map +1 -1
  37. package/dist/intelligence/RuVectorIntelligence.d.ts +1 -26
  38. package/dist/intelligence/RuVectorIntelligence.d.ts.map +1 -1
  39. package/dist/intelligence/RuVectorIntelligence.js +10 -49
  40. package/dist/intelligence/RuVectorIntelligence.js.map +1 -1
  41. package/dist/intelligence/agent-booster-enhanced.d.ts +0 -1
  42. package/dist/intelligence/agent-booster-enhanced.d.ts.map +1 -1
  43. package/dist/intelligence/agent-booster-enhanced.js +3 -24
  44. package/dist/intelligence/agent-booster-enhanced.js.map +1 -1
  45. package/dist/intelligence/index.d.ts +3 -29
  46. package/dist/intelligence/index.d.ts.map +1 -1
  47. package/dist/intelligence/index.js +3 -13
  48. package/dist/intelligence/index.js.map +1 -1
  49. package/dist/mcp/claudeFlowSdkServer.d.ts.map +1 -1
  50. package/dist/mcp/claudeFlowSdkServer.js +3 -9
  51. package/dist/mcp/claudeFlowSdkServer.js.map +1 -1
  52. package/dist/mcp/fastmcp/tools/hooks/intelligence-bridge.js +5 -5
  53. package/dist/mcp/fastmcp/tools/hooks/intelligence-bridge.js.map +1 -1
  54. package/dist/mcp/fastmcp/tools/swarm/init.d.ts.map +1 -1
  55. package/dist/mcp/fastmcp/tools/swarm/init.js +7 -36
  56. package/dist/mcp/fastmcp/tools/swarm/init.js.map +1 -1
  57. package/dist/mcp/fastmcp/tools/swarm/spawn.d.ts.map +1 -1
  58. package/dist/mcp/fastmcp/tools/swarm/spawn.js +8 -47
  59. package/dist/mcp/fastmcp/tools/swarm/spawn.js.map +1 -1
  60. package/dist/mcp/tools/agent-booster-tools.d.ts +1 -1
  61. package/dist/mcp/tools/agent-booster-tools.d.ts.map +1 -1
  62. package/dist/mcp/tools/agent-booster-tools.js +4 -10
  63. package/dist/mcp/tools/agent-booster-tools.js.map +1 -1
  64. package/dist/mcp/tools/sona-tools.d.ts.map +1 -1
  65. package/dist/mcp/tools/sona-tools.js +0 -6
  66. package/dist/mcp/tools/sona-tools.js.map +1 -1
  67. package/dist/optimizations/agent-booster-migration.d.ts.map +1 -1
  68. package/dist/optimizations/agent-booster-migration.js +2 -5
  69. package/dist/optimizations/agent-booster-migration.js.map +1 -1
  70. package/dist/proxy/anthropic-to-openrouter.js.map +1 -1
  71. package/dist/proxy/anthropic-to-requesty.js.map +1 -1
  72. package/dist/proxy/quic-proxy.d.ts +1 -0
  73. package/dist/proxy/quic-proxy.d.ts.map +1 -1
  74. package/dist/proxy/quic-proxy.js +2 -2
  75. package/dist/proxy/quic-proxy.js.map +1 -1
  76. package/dist/reasoningbank/AdvancedMemory.js +1 -1
  77. package/dist/reasoningbank/AdvancedMemory.js.map +1 -1
  78. package/dist/reasoningbank/HybridBackend.d.ts.map +1 -1
  79. package/dist/reasoningbank/HybridBackend.js +5 -2
  80. package/dist/reasoningbank/HybridBackend.js.map +1 -1
  81. package/dist/reasoningbank/backend-selector.d.ts +1 -11
  82. package/dist/reasoningbank/backend-selector.d.ts.map +1 -1
  83. package/dist/reasoningbank/backend-selector.js +5 -45
  84. package/dist/reasoningbank/backend-selector.js.map +1 -1
  85. package/dist/reasoningbank/core/consolidate.d.ts.map +1 -1
  86. package/dist/reasoningbank/core/consolidate.js +45 -113
  87. package/dist/reasoningbank/core/consolidate.js.map +1 -1
  88. package/dist/reasoningbank/index-new.d.ts +6 -1
  89. package/dist/reasoningbank/index-new.d.ts.map +1 -1
  90. package/dist/reasoningbank/index-new.js +6 -1
  91. package/dist/reasoningbank/index-new.js.map +1 -1
  92. package/dist/reasoningbank/index.d.ts +6 -2
  93. package/dist/reasoningbank/index.d.ts.map +1 -1
  94. package/dist/reasoningbank/index.js +6 -2
  95. package/dist/reasoningbank/index.js.map +1 -1
  96. package/dist/reasoningbank/utils/embeddings.d.ts +0 -1
  97. package/dist/reasoningbank/utils/embeddings.d.ts.map +1 -1
  98. package/dist/reasoningbank/utils/embeddings.js +26 -53
  99. package/dist/reasoningbank/utils/embeddings.js.map +1 -1
  100. package/dist/router/index.d.ts +17 -0
  101. package/dist/router/index.d.ts.map +1 -0
  102. package/dist/router/index.js +19 -0
  103. package/dist/router/index.js.map +1 -0
  104. package/dist/router/providers/onnx-local-optimized.d.ts +0 -2
  105. package/dist/router/providers/onnx-local-optimized.d.ts.map +1 -1
  106. package/dist/router/providers/onnx-local-optimized.js +0 -10
  107. package/dist/router/providers/onnx-local-optimized.js.map +1 -1
  108. package/dist/router/providers/onnx-local.d.ts +0 -1
  109. package/dist/router/providers/onnx-local.d.ts.map +1 -1
  110. package/dist/router/providers/onnx-local.js +5 -22
  111. package/dist/router/providers/onnx-local.js.map +1 -1
  112. package/dist/services/embedding-service.js.map +1 -1
  113. package/dist/services/sona-agent-training.d.ts +0 -1
  114. package/dist/services/sona-agent-training.d.ts.map +1 -1
  115. package/dist/services/sona-agent-training.js.map +1 -1
  116. package/dist/services/sona-agentdb-integration.d.ts.map +1 -1
  117. package/dist/services/sona-agentdb-integration.js +6 -9
  118. package/dist/services/sona-agentdb-integration.js.map +1 -1
  119. package/dist/services/sona-service.d.ts.map +1 -1
  120. package/dist/services/sona-service.js +5 -6
  121. package/dist/services/sona-service.js.map +1 -1
  122. package/dist/utils/cli.d.ts +1 -1
  123. package/dist/utils/cli.d.ts.map +1 -1
  124. package/dist/utils/cli.js +0 -21
  125. package/dist/utils/cli.js.map +1 -1
  126. package/package.json +7 -19
  127. package/scripts/postinstall.js +4 -45
  128. package/.claude/agents/.claude-flow/metrics/agent-metrics.json +0 -1
  129. package/.claude/agents/.claude-flow/metrics/performance.json +0 -87
  130. package/.claude/agents/.claude-flow/metrics/task-metrics.json +0 -10
  131. package/.claude/skills/.claude-flow/metrics/agent-metrics.json +0 -1
  132. package/.claude/skills/.claude-flow/metrics/performance.json +0 -87
  133. package/.claude/skills/.claude-flow/metrics/task-metrics.json +0 -10
  134. package/.claude/skills/agentic-flow-quickstart/skill.md +0 -69
  135. package/.claude/skills/hooks-automation/skill.md +0 -155
  136. package/.claude/skills/memory-patterns/skill.md +0 -110
  137. package/.claude/skills/skill-builder/.claude-flow/metrics/agent-metrics.json +0 -1
  138. package/.claude/skills/skill-builder/.claude-flow/metrics/performance.json +0 -87
  139. package/.claude/skills/skill-builder/.claude-flow/metrics/task-metrics.json +0 -10
  140. package/.claude/skills/sparc-methodology/skill.md +0 -137
  141. package/.claude/skills/swarm-coordination/skill.md +0 -94
  142. package/.claude/skills/worker-benchmarks/skill.md +0 -135
  143. package/.claude/skills/worker-integration/skill.md +0 -154
  144. package/.claude/statusline.mjs +0 -109
  145. package/.claude/statusline.sh +0 -71
  146. package/dist/agentdb/benchmarks/comprehensive-benchmark.js +0 -664
  147. package/dist/agentdb/benchmarks/frontier-benchmark.js +0 -419
  148. package/dist/agentdb/benchmarks/reflexion-benchmark.js +0 -370
  149. package/dist/agentdb/cli/agentdb-cli.js +0 -717
  150. package/dist/agentdb/controllers/CausalMemoryGraph.js +0 -322
  151. package/dist/agentdb/controllers/CausalRecall.js +0 -281
  152. package/dist/agentdb/controllers/EmbeddingService.d.ts +0 -37
  153. package/dist/agentdb/controllers/EmbeddingService.d.ts.map +0 -1
  154. package/dist/agentdb/controllers/EmbeddingService.js +0 -119
  155. package/dist/agentdb/controllers/EmbeddingService.js.map +0 -1
  156. package/dist/agentdb/controllers/ExplainableRecall.js +0 -387
  157. package/dist/agentdb/controllers/NightlyLearner.js +0 -382
  158. package/dist/agentdb/controllers/ReflexionMemory.js +0 -239
  159. package/dist/agentdb/controllers/SkillLibrary.js +0 -276
  160. package/dist/agentdb/controllers/frontier-index.js +0 -9
  161. package/dist/agentdb/controllers/index.js +0 -8
  162. package/dist/agentdb/optimizations/BatchOperations.js +0 -198
  163. package/dist/agentdb/optimizations/QueryOptimizer.js +0 -225
  164. package/dist/agentdb/optimizations/index.js +0 -7
  165. package/dist/agentdb/tests/frontier-features.test.js +0 -665
  166. package/dist/benchmarks/embeddings-benchmark.d.ts +0 -38
  167. package/dist/benchmarks/embeddings-benchmark.d.ts.map +0 -1
  168. package/dist/benchmarks/embeddings-benchmark.js +0 -282
  169. package/dist/benchmarks/embeddings-benchmark.js.map +0 -1
  170. package/dist/cli/commands/embeddings.d.ts +0 -12
  171. package/dist/cli/commands/embeddings.d.ts.map +0 -1
  172. package/dist/cli/commands/embeddings.js +0 -386
  173. package/dist/cli/commands/embeddings.js.map +0 -1
  174. package/dist/cli/commands/init.d.ts +0 -8
  175. package/dist/cli/commands/init.d.ts.map +0 -1
  176. package/dist/cli/commands/init.js +0 -514
  177. package/dist/cli/commands/init.js.map +0 -1
  178. package/dist/cli/commands/workers.d.ts +0 -9
  179. package/dist/cli/commands/workers.d.ts.map +0 -1
  180. package/dist/cli/commands/workers.js +0 -991
  181. package/dist/cli/commands/workers.js.map +0 -1
  182. package/dist/cli/skills-manager.js +0 -1297
  183. package/dist/cli/update-message.js +0 -175
  184. package/dist/embeddings/index.d.ts +0 -17
  185. package/dist/embeddings/index.d.ts.map +0 -1
  186. package/dist/embeddings/index.js +0 -17
  187. package/dist/embeddings/index.js.map +0 -1
  188. package/dist/embeddings/neural-substrate.d.ts +0 -206
  189. package/dist/embeddings/neural-substrate.d.ts.map +0 -1
  190. package/dist/embeddings/neural-substrate.js +0 -629
  191. package/dist/embeddings/neural-substrate.js.map +0 -1
  192. package/dist/embeddings/optimized-embedder.d.ts +0 -103
  193. package/dist/embeddings/optimized-embedder.d.ts.map +0 -1
  194. package/dist/embeddings/optimized-embedder.js +0 -730
  195. package/dist/embeddings/optimized-embedder.js.map +0 -1
  196. package/dist/examples/embedding-geometry.d.ts +0 -105
  197. package/dist/examples/embedding-geometry.d.ts.map +0 -1
  198. package/dist/examples/embedding-geometry.js +0 -528
  199. package/dist/examples/embedding-geometry.js.map +0 -1
  200. package/dist/memory/SharedMemoryPool.d.ts +0 -129
  201. package/dist/memory/SharedMemoryPool.d.ts.map +0 -1
  202. package/dist/memory/SharedMemoryPool.js +0 -243
  203. package/dist/memory/SharedMemoryPool.js.map +0 -1
  204. package/dist/memory/index.d.ts +0 -8
  205. package/dist/memory/index.d.ts.map +0 -1
  206. package/dist/memory/index.js +0 -7
  207. package/dist/memory/index.js.map +0 -1
  208. package/dist/proxy/http3-proxy-old.js +0 -331
  209. package/dist/proxy/proxy/anthropic-to-gemini.js +0 -439
  210. package/dist/proxy/utils/logger.js +0 -59
  211. package/dist/reasoningbank/agentdb-adapter.js +0 -125
  212. package/dist/reasoningbank/core/database.js +0 -250
  213. package/dist/reasoningbank/core/memory-engine.js +0 -335
  214. package/dist/swarm/ipfs-swarm.d.ts +0 -265
  215. package/dist/swarm/ipfs-swarm.d.ts.map +0 -1
  216. package/dist/swarm/ipfs-swarm.js +0 -508
  217. package/dist/swarm/ipfs-swarm.js.map +0 -1
  218. package/dist/swarm/p2p-free-swarm.d.ts +0 -344
  219. package/dist/swarm/p2p-free-swarm.d.ts.map +0 -1
  220. package/dist/swarm/p2p-free-swarm.js +0 -603
  221. package/dist/swarm/p2p-free-swarm.js.map +0 -1
  222. package/dist/swarm/real-p2p-swarm.d.ts +0 -183
  223. package/dist/swarm/real-p2p-swarm.d.ts.map +0 -1
  224. package/dist/swarm/real-p2p-swarm.js +0 -469
  225. package/dist/swarm/real-p2p-swarm.js.map +0 -1
  226. package/dist/utils/adaptive-pool-sizing.js +0 -414
  227. package/dist/utils/agentdbCommands.js +0 -175
  228. package/dist/utils/circular-rate-limiter.js +0 -391
  229. package/dist/utils/dynamic-compression.js +0 -298
  230. package/dist/utils/http2-multiplexing.js +0 -319
  231. package/dist/utils/index.d.ts +0 -6
  232. package/dist/utils/index.d.ts.map +0 -1
  233. package/dist/utils/index.js +0 -6
  234. package/dist/utils/index.js.map +0 -1
  235. package/dist/utils/lazy-auth.js +0 -311
  236. package/dist/utils/model-cache.d.ts +0 -61
  237. package/dist/utils/model-cache.d.ts.map +0 -1
  238. package/dist/utils/model-cache.js +0 -176
  239. package/dist/utils/model-cache.js.map +0 -1
  240. package/dist/utils/server-push.js +0 -251
  241. package/dist/utils/suppress-warnings.d.ts +0 -19
  242. package/dist/utils/suppress-warnings.d.ts.map +0 -1
  243. package/dist/utils/suppress-warnings.js +0 -59
  244. package/dist/utils/suppress-warnings.js.map +0 -1
  245. package/dist/utils/zero-copy-buffer.js +0 -286
  246. package/dist/workers/consolidated-phases.d.ts +0 -40
  247. package/dist/workers/consolidated-phases.d.ts.map +0 -1
  248. package/dist/workers/consolidated-phases.js +0 -497
  249. package/dist/workers/consolidated-phases.js.map +0 -1
  250. package/dist/workers/custom-worker-config.d.ts +0 -133
  251. package/dist/workers/custom-worker-config.d.ts.map +0 -1
  252. package/dist/workers/custom-worker-config.js +0 -215
  253. package/dist/workers/custom-worker-config.js.map +0 -1
  254. package/dist/workers/custom-worker-factory.d.ts +0 -89
  255. package/dist/workers/custom-worker-factory.d.ts.map +0 -1
  256. package/dist/workers/custom-worker-factory.js +0 -404
  257. package/dist/workers/custom-worker-factory.js.map +0 -1
  258. package/dist/workers/dispatch-service.d.ts +0 -123
  259. package/dist/workers/dispatch-service.d.ts.map +0 -1
  260. package/dist/workers/dispatch-service.js +0 -1024
  261. package/dist/workers/dispatch-service.js.map +0 -1
  262. package/dist/workers/hooks-integration.d.ts +0 -79
  263. package/dist/workers/hooks-integration.d.ts.map +0 -1
  264. package/dist/workers/hooks-integration.js +0 -286
  265. package/dist/workers/hooks-integration.js.map +0 -1
  266. package/dist/workers/index.d.ts +0 -42
  267. package/dist/workers/index.d.ts.map +0 -1
  268. package/dist/workers/index.js +0 -52
  269. package/dist/workers/index.js.map +0 -1
  270. package/dist/workers/mcp-tools.d.ts +0 -56
  271. package/dist/workers/mcp-tools.d.ts.map +0 -1
  272. package/dist/workers/mcp-tools.js +0 -359
  273. package/dist/workers/mcp-tools.js.map +0 -1
  274. package/dist/workers/phase-executors.d.ts +0 -22
  275. package/dist/workers/phase-executors.d.ts.map +0 -1
  276. package/dist/workers/phase-executors.js +0 -445
  277. package/dist/workers/phase-executors.js.map +0 -1
  278. package/dist/workers/resource-governor.d.ts +0 -75
  279. package/dist/workers/resource-governor.d.ts.map +0 -1
  280. package/dist/workers/resource-governor.js +0 -187
  281. package/dist/workers/resource-governor.js.map +0 -1
  282. package/dist/workers/ruvector-integration.d.ts +0 -163
  283. package/dist/workers/ruvector-integration.d.ts.map +0 -1
  284. package/dist/workers/ruvector-integration.js +0 -543
  285. package/dist/workers/ruvector-integration.js.map +0 -1
  286. package/dist/workers/ruvector-native-integration.d.ts +0 -91
  287. package/dist/workers/ruvector-native-integration.d.ts.map +0 -1
  288. package/dist/workers/ruvector-native-integration.js +0 -254
  289. package/dist/workers/ruvector-native-integration.js.map +0 -1
  290. package/dist/workers/trigger-detector.d.ts +0 -68
  291. package/dist/workers/trigger-detector.d.ts.map +0 -1
  292. package/dist/workers/trigger-detector.js +0 -281
  293. package/dist/workers/trigger-detector.js.map +0 -1
  294. package/dist/workers/types.d.ts +0 -145
  295. package/dist/workers/types.d.ts.map +0 -1
  296. package/dist/workers/types.js +0 -6
  297. package/dist/workers/types.js.map +0 -1
  298. package/dist/workers/worker-agent-integration.d.ts +0 -140
  299. package/dist/workers/worker-agent-integration.d.ts.map +0 -1
  300. package/dist/workers/worker-agent-integration.js +0 -471
  301. package/dist/workers/worker-agent-integration.js.map +0 -1
  302. package/dist/workers/worker-benchmarks.d.ts +0 -88
  303. package/dist/workers/worker-benchmarks.d.ts.map +0 -1
  304. package/dist/workers/worker-benchmarks.js +0 -452
  305. package/dist/workers/worker-benchmarks.js.map +0 -1
  306. package/dist/workers/worker-registry.d.ts +0 -85
  307. package/dist/workers/worker-registry.d.ts.map +0 -1
  308. package/dist/workers/worker-registry.js +0 -547
  309. package/dist/workers/worker-registry.js.map +0 -1
  310. package/docs/.claude-flow/metrics/agent-metrics.json +0 -1
  311. package/docs/.claude-flow/metrics/performance.json +0 -87
  312. package/docs/.claude-flow/metrics/task-metrics.json +0 -10
  313. package/docs/embeddings/EMBEDDING_GEOMETRY.md +0 -935
  314. /package/.claude/agents/analysis/{analyze-code-quality.md → code-review/analyze-code-quality.md} +0 -0
  315. /package/.claude/agents/architecture/{arch-system-design.md → system-design/arch-system-design.md} +0 -0
  316. /package/.claude/agents/data/{data-ml-model.md → ml/data-ml-model.md} +0 -0
  317. /package/.claude/agents/development/{dev-backend-api.md → backend/dev-backend-api.md} +0 -0
  318. /package/.claude/agents/devops/{ops-cicd-github.md → ci-cd/ops-cicd-github.md} +0 -0
  319. /package/.claude/agents/documentation/{docs-api-openapi.md → api-docs/docs-api-openapi.md} +0 -0
  320. /package/.claude/agents/specialized/{spec-mobile-react-native.md → mobile/spec-mobile-react-native.md} +0 -0
  321. /package/.claude/agents/testing/{tdd-london-swarm.md → unit/tdd-london-swarm.md} +0 -0
  322. /package/.claude/agents/testing/{production-validator.md → validation/production-validator.md} +0 -0
@@ -1,543 +0,0 @@
1
- /**
2
- * RuVector Integration for Background Workers
3
- *
4
- * Connects workers to the full RuVector ecosystem:
5
- * - SONA: Self-learning trajectory tracking
6
- * - ReasoningBank: Pattern storage and memory retrieval
7
- * - HNSW: Vector indexing for fast semantic search
8
- * - Intelligence Layer: Unified pattern recognition
9
- */
10
- import { EventEmitter } from 'events';
11
- const DEFAULT_CONFIG = {
12
- enableSona: true,
13
- enableReasoningBank: true,
14
- enableHnsw: true,
15
- sonaProfile: 'batch',
16
- embeddingDim: 384,
17
- hnswM: 16,
18
- hnswEfConstruction: 200,
19
- qualityThreshold: 0.6
20
- };
21
- /**
22
- * RuVector Worker Integration Service
23
- * Provides unified access to RuVector capabilities for background workers
24
- */
25
- export class RuVectorWorkerIntegration extends EventEmitter {
26
- config;
27
- sonaService = null;
28
- reasoningBank = null;
29
- ruvectorCore = null;
30
- intelligenceStore = null;
31
- onnxEmbeddings = null;
32
- initialized = false;
33
- activeTrajectories = new Map();
34
- constructor(config = {}) {
35
- super();
36
- this.config = { ...DEFAULT_CONFIG, ...config };
37
- }
38
- /**
39
- * Initialize RuVector services lazily
40
- * Uses unified 'ruvector' package which includes SONA, VectorDB, embeddings
41
- * Falls back gracefully if native modules aren't available
42
- */
43
- async initialize() {
44
- if (this.initialized)
45
- return true;
46
- try {
47
- // Try to load ruvector - may fail if native bindings not available
48
- try {
49
- const ruvector = await import('ruvector');
50
- this.ruvectorCore = ruvector;
51
- // Initialize SONA engine if available
52
- if (this.config.enableSona && ruvector.SonaEngine) {
53
- try {
54
- // SonaEngine constructor signature varies by version - use any for compatibility
55
- this.sonaService = new ruvector.SonaEngine(this.config.embeddingDim);
56
- this.emit('module:loaded', { module: 'sona' });
57
- }
58
- catch (e) {
59
- // SONA is optional
60
- }
61
- }
62
- // Initialize VectorDB if available (may require native bindings)
63
- if (this.config.enableReasoningBank && ruvector.VectorDb) {
64
- try {
65
- // VectorDb constructor signature varies by version - use any for compatibility
66
- this.reasoningBank = new ruvector.VectorDb({
67
- dimensions: this.config.embeddingDim,
68
- storagePath: '.agentic-flow/vectors.db',
69
- hnswConfig: {
70
- efConstruction: this.config.hnswEfConstruction,
71
- M: this.config.hnswM
72
- }
73
- });
74
- this.emit('module:loaded', { module: 'reasoningbank' });
75
- }
76
- catch (e) {
77
- // VectorDB is optional - continue without pattern storage
78
- }
79
- }
80
- // HNSW is part of VectorDb
81
- if (this.config.enableHnsw && this.reasoningBank) {
82
- this.emit('module:loaded', { module: 'hnsw' });
83
- }
84
- }
85
- catch (e) {
86
- // RuVector package not available - workers still function without learning
87
- // This is expected in environments without native bindings
88
- }
89
- // Lazy load IntelligenceStore (optional fallback for local learning)
90
- try {
91
- const intModule = await import('../intelligence/IntelligenceStore.js');
92
- this.intelligenceStore = intModule.getIntelligenceStore?.();
93
- this.emit('module:loaded', { module: 'intelligence' });
94
- }
95
- catch (e) {
96
- // Intelligence store is optional
97
- }
98
- // Load ONNX WASM embeddings (uses global cache for performance)
99
- try {
100
- const { getCachedOnnxEmbedder } = await import('../utils/model-cache.js');
101
- this.onnxEmbeddings = await getCachedOnnxEmbedder();
102
- if (this.onnxEmbeddings) {
103
- this.emit('module:loaded', { module: 'onnx-embeddings', cached: true });
104
- }
105
- }
106
- catch (e) {
107
- // ONNX embeddings optional - will use fallback
108
- }
109
- this.initialized = true;
110
- this.emit('initialized', {
111
- sona: !!this.sonaService,
112
- reasoningBank: !!this.reasoningBank,
113
- hnsw: !!this.ruvectorCore,
114
- intelligence: !!this.intelligenceStore,
115
- onnxEmbeddings: !!this.onnxEmbeddings
116
- });
117
- return true;
118
- }
119
- catch (error) {
120
- // Even on error, mark as initialized so workers can continue
121
- this.initialized = true;
122
- this.emit('initialized', {
123
- sona: false,
124
- reasoningBank: false,
125
- hnsw: false,
126
- intelligence: false,
127
- onnxEmbeddings: false
128
- });
129
- return true; // Return true so workers continue without learning
130
- }
131
- }
132
- /**
133
- * Start tracking a worker trajectory
134
- */
135
- async startTrajectory(workerId, trigger, topic) {
136
- await this.initialize();
137
- const trajectoryId = `traj_${workerId}_${Date.now()}`;
138
- // Create initial embedding from topic/trigger
139
- let embedding;
140
- if (this.ruvectorCore && topic) {
141
- try {
142
- // Generate embedding for semantic similarity later
143
- embedding = await this.generateEmbedding(`${trigger} ${topic}`);
144
- }
145
- catch (e) {
146
- // Embedding is optional
147
- }
148
- }
149
- this.activeTrajectories.set(trajectoryId, {
150
- workerId,
151
- trigger,
152
- steps: [],
153
- startTime: Date.now(),
154
- embedding
155
- });
156
- // Start SONA trajectory if available
157
- if (this.sonaService) {
158
- try {
159
- await this.sonaService.startTrajectory?.(trajectoryId, {
160
- route: `worker/${trigger}`,
161
- contexts: [workerId, topic || 'general'],
162
- embedding
163
- });
164
- }
165
- catch (e) {
166
- // SONA tracking is best-effort
167
- }
168
- }
169
- this.emit('trajectory:started', { trajectoryId, workerId, trigger });
170
- return trajectoryId;
171
- }
172
- /**
173
- * Record a worker phase step
174
- */
175
- async recordStep(trajectoryId, phase, metrics) {
176
- const trajectory = this.activeTrajectories.get(trajectoryId);
177
- if (!trajectory)
178
- return;
179
- // Generate activations (simplified - would be actual neural activations in production)
180
- const activations = this.generateActivations(phase, metrics);
181
- const step = {
182
- phase,
183
- activations,
184
- duration: metrics.duration,
185
- memoryDeposits: metrics.memoryDeposits,
186
- successRate: metrics.successRate
187
- };
188
- trajectory.steps.push(step);
189
- // Record SONA step if available
190
- if (this.sonaService) {
191
- try {
192
- await this.sonaService.recordStep?.(trajectoryId, {
193
- activations,
194
- attentionWeights: activations.map(a => Math.abs(a)),
195
- reward: metrics.successRate,
196
- timestamp: Date.now()
197
- });
198
- }
199
- catch (e) {
200
- // Best effort
201
- }
202
- }
203
- this.emit('step:recorded', { trajectoryId, phase, step });
204
- }
205
- /**
206
- * Complete trajectory and trigger learning
207
- */
208
- async completeTrajectory(trajectoryId, results) {
209
- const trajectory = this.activeTrajectories.get(trajectoryId);
210
- if (!trajectory) {
211
- return {
212
- trajectoryId,
213
- qualityScore: 0,
214
- patternsLearned: 0,
215
- memoryDeposits: [],
216
- sonaAdaptation: false
217
- };
218
- }
219
- const duration = Date.now() - trajectory.startTime;
220
- const qualityScore = this.calculateQualityScore(trajectory, results);
221
- let patternsLearned = 0;
222
- const memoryDeposits = [];
223
- let sonaAdaptation = false;
224
- // Store in ReasoningBank if quality meets threshold
225
- if (this.reasoningBank && qualityScore >= this.config.qualityThreshold) {
226
- try {
227
- const memoryKey = `worker/${trajectory.trigger}/${trajectoryId}`;
228
- // Store trajectory pattern
229
- await this.storePattern(memoryKey, {
230
- trigger: trajectory.trigger,
231
- steps: trajectory.steps.map(s => s.phase),
232
- duration,
233
- qualityScore,
234
- results: results.data
235
- });
236
- memoryDeposits.push(memoryKey);
237
- patternsLearned++;
238
- }
239
- catch (e) {
240
- console.warn('[RuVector] Failed to store pattern:', e);
241
- }
242
- }
243
- // Complete SONA trajectory and trigger learning
244
- if (this.sonaService) {
245
- try {
246
- await this.sonaService.endTrajectory?.(trajectoryId, qualityScore);
247
- // Force learn if quality is high
248
- if (qualityScore >= 0.8) {
249
- await this.sonaService.forceLearn?.();
250
- sonaAdaptation = true;
251
- }
252
- }
253
- catch (e) {
254
- // Best effort
255
- }
256
- }
257
- // Index in HNSW for semantic search
258
- if (this.ruvectorCore && trajectory.embedding) {
259
- try {
260
- await this.indexPattern(trajectoryId, trajectory.embedding, {
261
- trigger: trajectory.trigger,
262
- qualityScore,
263
- timestamp: Date.now()
264
- });
265
- }
266
- catch (e) {
267
- // Best effort
268
- }
269
- }
270
- // Cleanup
271
- this.activeTrajectories.delete(trajectoryId);
272
- const result = {
273
- trajectoryId,
274
- qualityScore,
275
- patternsLearned,
276
- memoryDeposits,
277
- sonaAdaptation
278
- };
279
- this.emit('trajectory:completed', result);
280
- return result;
281
- }
282
- /**
283
- * Find relevant patterns for a worker task
284
- */
285
- async findRelevantPatterns(trigger, topic, limit = 5) {
286
- await this.initialize();
287
- const patterns = [];
288
- // Search HNSW if available
289
- if (this.ruvectorCore && topic) {
290
- try {
291
- const embedding = await this.generateEmbedding(`${trigger} ${topic}`);
292
- const results = await this.searchHnsw(embedding, limit);
293
- for (const result of results) {
294
- patterns.push({
295
- key: result.id,
296
- similarity: result.similarity,
297
- pattern: result.metadata || {}
298
- });
299
- }
300
- }
301
- catch (e) {
302
- // Fallback to ReasoningBank
303
- }
304
- }
305
- // Also query ReasoningBank
306
- if (this.reasoningBank && patterns.length < limit) {
307
- try {
308
- const rbPatterns = await this.reasoningBank.retrieveMemories?.(`${trigger} ${topic || ''}`, { domain: 'workers', limit: limit - patterns.length });
309
- if (rbPatterns) {
310
- for (const p of rbPatterns) {
311
- patterns.push({
312
- key: p.id || p.key,
313
- similarity: p.score || 0.5,
314
- pattern: p.content || p
315
- });
316
- }
317
- }
318
- }
319
- catch (e) {
320
- // Best effort
321
- }
322
- }
323
- return patterns;
324
- }
325
- /**
326
- * Store pattern in ReasoningBank with distillation
327
- */
328
- async storePattern(key, data) {
329
- if (!this.reasoningBank)
330
- return;
331
- try {
332
- // Use distillMemories if available for intelligent storage
333
- if (this.reasoningBank.distillMemories) {
334
- await this.reasoningBank.distillMemories(data, { label: 'success', confidence: data.qualityScore }, `Worker task: ${key}`, { taskId: key, domain: 'workers' });
335
- }
336
- else {
337
- // Fallback to direct db storage
338
- const db = this.reasoningBank.db;
339
- if (db?.storePattern) {
340
- await db.storePattern(key, JSON.stringify(data), Date.now());
341
- }
342
- }
343
- }
344
- catch (e) {
345
- console.warn('[RuVector] Pattern storage failed:', e);
346
- }
347
- }
348
- /**
349
- * Index pattern in HNSW for semantic search
350
- */
351
- async indexPattern(id, embedding, metadata) {
352
- if (!this.ruvectorCore)
353
- return;
354
- try {
355
- // Access HNSW index (implementation depends on ruvector version)
356
- const index = this.ruvectorCore.getIndex?.() || this.ruvectorCore;
357
- if (index.add) {
358
- await index.add(id, embedding, metadata);
359
- }
360
- }
361
- catch (e) {
362
- // HNSW indexing is best-effort
363
- }
364
- }
365
- /**
366
- * Search HNSW index
367
- */
368
- async searchHnsw(embedding, limit) {
369
- if (!this.ruvectorCore)
370
- return [];
371
- try {
372
- const index = this.ruvectorCore.getIndex?.() || this.ruvectorCore;
373
- if (index.search) {
374
- return await index.search(embedding, limit);
375
- }
376
- }
377
- catch (e) {
378
- // Search is best-effort
379
- }
380
- return [];
381
- }
382
- /**
383
- * Generate embedding for text using ONNX WASM (real semantic embeddings)
384
- */
385
- async generateEmbedding(text) {
386
- // Priority 1: Use ONNX WASM embeddings (real semantic embeddings)
387
- if (this.onnxEmbeddings) {
388
- try {
389
- const embedding = await this.onnxEmbeddings.embed?.(text)
390
- || await this.onnxEmbeddings.encode?.(text)
391
- || await this.onnxEmbeddings.generate?.(text);
392
- if (embedding && embedding.length > 0) {
393
- return Array.isArray(embedding) ? embedding : Array.from(embedding);
394
- }
395
- }
396
- catch (e) {
397
- // Try other methods
398
- }
399
- }
400
- // Priority 2: Use ruvector core embedding if available
401
- if (this.ruvectorCore?.embed) {
402
- try {
403
- const embedding = await this.ruvectorCore.embed(text);
404
- if (embedding)
405
- return Array.from(embedding);
406
- }
407
- catch (e) {
408
- // Fallback
409
- }
410
- }
411
- // Priority 3: Use intelligence store if available
412
- if (this.intelligenceStore?.embed) {
413
- try {
414
- return await this.intelligenceStore.embed(text);
415
- }
416
- catch (e) {
417
- // Fallback
418
- }
419
- }
420
- // Priority 4: Use ReasoningBank embedding
421
- if (this.reasoningBank?.computeEmbedding) {
422
- try {
423
- return await this.reasoningBank.computeEmbedding(text);
424
- }
425
- catch (e) {
426
- // Fallback
427
- }
428
- }
429
- // Fallback: Generate simple hash-based embedding
430
- return this.simpleEmbedding(text);
431
- }
432
- /**
433
- * Simple hash-based embedding fallback
434
- */
435
- simpleEmbedding(text) {
436
- const dim = this.config.embeddingDim;
437
- const embedding = new Array(dim).fill(0);
438
- const words = text.toLowerCase().split(/\s+/);
439
- for (let i = 0; i < words.length; i++) {
440
- const word = words[i];
441
- for (let j = 0; j < word.length; j++) {
442
- const idx = (word.charCodeAt(j) + i * 31 + j * 17) % dim;
443
- embedding[idx] += 1 / (1 + Math.sqrt(i + j));
444
- }
445
- }
446
- // Normalize
447
- const norm = Math.sqrt(embedding.reduce((s, v) => s + v * v, 0)) || 1;
448
- return embedding.map(v => v / norm);
449
- }
450
- /**
451
- * Generate activations for a phase
452
- */
453
- generateActivations(phase, metrics) {
454
- const dim = 64; // Reduced dimension for activations
455
- const activations = new Array(dim).fill(0);
456
- // Encode phase name
457
- for (let i = 0; i < phase.length; i++) {
458
- const idx = phase.charCodeAt(i) % dim;
459
- activations[idx] += 1 / phase.length;
460
- }
461
- // Encode success rate
462
- activations[0] = metrics.successRate;
463
- activations[dim - 1] = 1 - metrics.successRate;
464
- return activations;
465
- }
466
- /**
467
- * Calculate quality score for a trajectory
468
- */
469
- calculateQualityScore(trajectory, results) {
470
- if (results.status !== 'complete')
471
- return 0;
472
- const completedPhases = results.completedPhases || 0;
473
- const totalPhases = results.totalPhases || 1;
474
- const phaseScore = completedPhases / totalPhases;
475
- // Average success rate across steps
476
- const avgSuccessRate = trajectory.steps.length > 0
477
- ? trajectory.steps.reduce((s, step) => s + step.successRate, 0) / trajectory.steps.length
478
- : 0.5;
479
- // Duration penalty (penalize very long or very short runs)
480
- const duration = Date.now() - trajectory.startTime;
481
- const expectedDuration = 30000; // 30 seconds expected
482
- const durationScore = Math.exp(-Math.abs(Math.log(duration / expectedDuration)));
483
- // Weighted combination
484
- return phaseScore * 0.4 + avgSuccessRate * 0.4 + durationScore * 0.2;
485
- }
486
- /**
487
- * Get integration stats
488
- */
489
- getStats() {
490
- return {
491
- initialized: this.initialized,
492
- modules: {
493
- sona: !!this.sonaService,
494
- reasoningBank: !!this.reasoningBank,
495
- hnsw: !!this.ruvectorCore,
496
- intelligence: !!this.intelligenceStore,
497
- onnxEmbeddings: !!this.onnxEmbeddings
498
- },
499
- activeTrajectories: this.activeTrajectories.size,
500
- config: this.config
501
- };
502
- }
503
- /**
504
- * Cleanup resources
505
- */
506
- async cleanup() {
507
- // Complete any remaining trajectories
508
- for (const [trajectoryId, trajectory] of this.activeTrajectories) {
509
- await this.completeTrajectory(trajectoryId, {
510
- status: 'cancelled',
511
- data: null,
512
- completedPhases: trajectory.steps.length,
513
- totalPhases: trajectory.steps.length,
514
- memoryKeys: [],
515
- duration: Date.now() - trajectory.startTime
516
- });
517
- }
518
- this.activeTrajectories.clear();
519
- this.emit('cleanup');
520
- }
521
- }
522
- // Singleton instance
523
- let instance = null;
524
- export function getRuVectorWorkerIntegration(config) {
525
- if (!instance) {
526
- instance = new RuVectorWorkerIntegration(config);
527
- }
528
- return instance;
529
- }
530
- /**
531
- * Create worker context with RuVector integration
532
- */
533
- export async function createRuVectorWorkerContext(context) {
534
- const integration = getRuVectorWorkerIntegration();
535
- const trajectoryId = await integration.startTrajectory(context.workerId, context.trigger, context.topic);
536
- return {
537
- trajectoryId,
538
- recordStep: (phase, metrics) => integration.recordStep(trajectoryId, phase, metrics),
539
- complete: (results) => integration.completeTrajectory(trajectoryId, results),
540
- findPatterns: (limit = 5) => integration.findRelevantPatterns(context.trigger, context.topic, limit)
541
- };
542
- }
543
- //# sourceMappingURL=ruvector-integration.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ruvector-integration.js","sourceRoot":"","sources":["../../src/workers/ruvector-integration.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * RuVector Integration for Background Workers\n *\n * Connects workers to the full RuVector ecosystem:\n * - SONA: Self-learning trajectory tracking\n * - ReasoningBank: Pattern storage and memory retrieval\n * - HNSW: Vector indexing for fast semantic search\n * - Intelligence Layer: Unified pattern recognition\n */\n\nimport { EventEmitter } from 'events';\nimport { WorkerContext, WorkerResults, WorkerTrigger } from './types.js';\n\n// Types for lazy-loaded modules\ntype SONAService = any;\ntype ReasoningBankModule = any;\ntype RuVectorCore = any;\ntype IntelligenceStore = any;\ntype OnnxEmbeddings = any;\n\n/**\n * RuVector integration configuration\n */\nexport interface RuVectorWorkerConfig {\n /** Enable SONA trajectory tracking (default: true) */\n enableSona: boolean;\n\n /** Enable ReasoningBank pattern storage (default: true) */\n enableReasoningBank: boolean;\n\n /** Enable HNSW vector indexing (default: true) */\n enableHnsw: boolean;\n\n /** SONA learning profile */\n sonaProfile: 'real-time' | 'batch' | 'balanced';\n\n /** Embedding dimension (default: 384) */\n embeddingDim: number;\n\n /** HNSW parameters */\n hnswM: number;\n hnswEfConstruction: number;\n\n /** Quality threshold for pattern storage (0-1) */\n qualityThreshold: number;\n}\n\nconst DEFAULT_CONFIG: RuVectorWorkerConfig = {\n enableSona: true,\n enableReasoningBank: true,\n enableHnsw: true,\n sonaProfile: 'batch',\n embeddingDim: 384,\n hnswM: 16,\n hnswEfConstruction: 200,\n qualityThreshold: 0.6\n};\n\n/**\n * Worker trajectory step\n */\nexport interface WorkerStep {\n phase: string;\n activations: number[];\n duration: number;\n memoryDeposits: number;\n successRate: number;\n}\n\n/**\n * Worker learning result\n */\nexport interface WorkerLearningResult {\n trajectoryId: string;\n qualityScore: number;\n patternsLearned: number;\n memoryDeposits: string[];\n sonaAdaptation: boolean;\n}\n\n/**\n * RuVector Worker Integration Service\n * Provides unified access to RuVector capabilities for background workers\n */\nexport class RuVectorWorkerIntegration extends EventEmitter {\n private config: RuVectorWorkerConfig;\n private sonaService: SONAService | null = null;\n private reasoningBank: ReasoningBankModule | null = null;\n private ruvectorCore: RuVectorCore | null = null;\n private intelligenceStore: IntelligenceStore | null = null;\n private onnxEmbeddings: OnnxEmbeddings | null = null;\n private initialized = false;\n private activeTrajectories: Map<string, {\n workerId: string;\n trigger: WorkerTrigger;\n steps: WorkerStep[];\n startTime: number;\n embedding?: number[];\n }> = new Map();\n\n constructor(config: Partial<RuVectorWorkerConfig> = {}) {\n super();\n this.config = { ...DEFAULT_CONFIG, ...config };\n }\n\n /**\n * Initialize RuVector services lazily\n * Uses unified 'ruvector' package which includes SONA, VectorDB, embeddings\n * Falls back gracefully if native modules aren't available\n */\n async initialize(): Promise<boolean> {\n if (this.initialized) return true;\n\n try {\n // Try to load ruvector - may fail if native bindings not available\n try {\n const ruvector = await import('ruvector');\n this.ruvectorCore = ruvector;\n\n // Initialize SONA engine if available\n if (this.config.enableSona && ruvector.SonaEngine) {\n try {\n // SonaEngine constructor signature varies by version - use any for compatibility\n this.sonaService = new (ruvector.SonaEngine as any)(this.config.embeddingDim);\n this.emit('module:loaded', { module: 'sona' });\n } catch (e) {\n // SONA is optional\n }\n }\n\n // Initialize VectorDB if available (may require native bindings)\n if (this.config.enableReasoningBank && ruvector.VectorDb) {\n try {\n // VectorDb constructor signature varies by version - use any for compatibility\n this.reasoningBank = new (ruvector.VectorDb as any)({\n dimensions: this.config.embeddingDim,\n storagePath: '.agentic-flow/vectors.db',\n hnswConfig: {\n efConstruction: this.config.hnswEfConstruction,\n M: this.config.hnswM\n }\n });\n this.emit('module:loaded', { module: 'reasoningbank' });\n } catch (e) {\n // VectorDB is optional - continue without pattern storage\n }\n }\n\n // HNSW is part of VectorDb\n if (this.config.enableHnsw && this.reasoningBank) {\n this.emit('module:loaded', { module: 'hnsw' });\n }\n } catch (e) {\n // RuVector package not available - workers still function without learning\n // This is expected in environments without native bindings\n }\n\n // Lazy load IntelligenceStore (optional fallback for local learning)\n try {\n const intModule = await import('../intelligence/IntelligenceStore.js');\n this.intelligenceStore = intModule.getIntelligenceStore?.();\n this.emit('module:loaded', { module: 'intelligence' });\n } catch (e) {\n // Intelligence store is optional\n }\n\n // Load ONNX WASM embeddings (uses global cache for performance)\n try {\n const { getCachedOnnxEmbedder } = await import('../utils/model-cache.js');\n this.onnxEmbeddings = await getCachedOnnxEmbedder();\n if (this.onnxEmbeddings) {\n this.emit('module:loaded', { module: 'onnx-embeddings', cached: true });\n }\n } catch (e) {\n // ONNX embeddings optional - will use fallback\n }\n\n this.initialized = true;\n this.emit('initialized', {\n sona: !!this.sonaService,\n reasoningBank: !!this.reasoningBank,\n hnsw: !!this.ruvectorCore,\n intelligence: !!this.intelligenceStore,\n onnxEmbeddings: !!this.onnxEmbeddings\n });\n\n return true;\n } catch (error) {\n // Even on error, mark as initialized so workers can continue\n this.initialized = true;\n this.emit('initialized', {\n sona: false,\n reasoningBank: false,\n hnsw: false,\n intelligence: false,\n onnxEmbeddings: false\n });\n return true; // Return true so workers continue without learning\n }\n }\n\n /**\n * Start tracking a worker trajectory\n */\n async startTrajectory(\n workerId: string,\n trigger: WorkerTrigger,\n topic: string | null\n ): Promise<string> {\n await this.initialize();\n\n const trajectoryId = `traj_${workerId}_${Date.now()}`;\n\n // Create initial embedding from topic/trigger\n let embedding: number[] | undefined;\n if (this.ruvectorCore && topic) {\n try {\n // Generate embedding for semantic similarity later\n embedding = await this.generateEmbedding(`${trigger} ${topic}`);\n } catch (e) {\n // Embedding is optional\n }\n }\n\n this.activeTrajectories.set(trajectoryId, {\n workerId,\n trigger,\n steps: [],\n startTime: Date.now(),\n embedding\n });\n\n // Start SONA trajectory if available\n if (this.sonaService) {\n try {\n await this.sonaService.startTrajectory?.(trajectoryId, {\n route: `worker/${trigger}`,\n contexts: [workerId, topic || 'general'],\n embedding\n });\n } catch (e) {\n // SONA tracking is best-effort\n }\n }\n\n this.emit('trajectory:started', { trajectoryId, workerId, trigger });\n return trajectoryId;\n }\n\n /**\n * Record a worker phase step\n */\n async recordStep(\n trajectoryId: string,\n phase: string,\n metrics: {\n duration: number;\n memoryDeposits: number;\n successRate: number;\n data?: Record<string, unknown>;\n }\n ): Promise<void> {\n const trajectory = this.activeTrajectories.get(trajectoryId);\n if (!trajectory) return;\n\n // Generate activations (simplified - would be actual neural activations in production)\n const activations = this.generateActivations(phase, metrics);\n\n const step: WorkerStep = {\n phase,\n activations,\n duration: metrics.duration,\n memoryDeposits: metrics.memoryDeposits,\n successRate: metrics.successRate\n };\n\n trajectory.steps.push(step);\n\n // Record SONA step if available\n if (this.sonaService) {\n try {\n await this.sonaService.recordStep?.(trajectoryId, {\n activations,\n attentionWeights: activations.map(a => Math.abs(a)),\n reward: metrics.successRate,\n timestamp: Date.now()\n });\n } catch (e) {\n // Best effort\n }\n }\n\n this.emit('step:recorded', { trajectoryId, phase, step });\n }\n\n /**\n * Complete trajectory and trigger learning\n */\n async completeTrajectory(\n trajectoryId: string,\n results: WorkerResults\n ): Promise<WorkerLearningResult> {\n const trajectory = this.activeTrajectories.get(trajectoryId);\n if (!trajectory) {\n return {\n trajectoryId,\n qualityScore: 0,\n patternsLearned: 0,\n memoryDeposits: [],\n sonaAdaptation: false\n };\n }\n\n const duration = Date.now() - trajectory.startTime;\n const qualityScore = this.calculateQualityScore(trajectory, results);\n let patternsLearned = 0;\n const memoryDeposits: string[] = [];\n let sonaAdaptation = false;\n\n // Store in ReasoningBank if quality meets threshold\n if (this.reasoningBank && qualityScore >= this.config.qualityThreshold) {\n try {\n const memoryKey = `worker/${trajectory.trigger}/${trajectoryId}`;\n\n // Store trajectory pattern\n await this.storePattern(memoryKey, {\n trigger: trajectory.trigger,\n steps: trajectory.steps.map(s => s.phase),\n duration,\n qualityScore,\n results: results.data\n });\n\n memoryDeposits.push(memoryKey);\n patternsLearned++;\n } catch (e) {\n console.warn('[RuVector] Failed to store pattern:', e);\n }\n }\n\n // Complete SONA trajectory and trigger learning\n if (this.sonaService) {\n try {\n await this.sonaService.endTrajectory?.(trajectoryId, qualityScore);\n\n // Force learn if quality is high\n if (qualityScore >= 0.8) {\n await this.sonaService.forceLearn?.();\n sonaAdaptation = true;\n }\n } catch (e) {\n // Best effort\n }\n }\n\n // Index in HNSW for semantic search\n if (this.ruvectorCore && trajectory.embedding) {\n try {\n await this.indexPattern(trajectoryId, trajectory.embedding, {\n trigger: trajectory.trigger,\n qualityScore,\n timestamp: Date.now()\n });\n } catch (e) {\n // Best effort\n }\n }\n\n // Cleanup\n this.activeTrajectories.delete(trajectoryId);\n\n const result: WorkerLearningResult = {\n trajectoryId,\n qualityScore,\n patternsLearned,\n memoryDeposits,\n sonaAdaptation\n };\n\n this.emit('trajectory:completed', result);\n return result;\n }\n\n /**\n * Find relevant patterns for a worker task\n */\n async findRelevantPatterns(\n trigger: WorkerTrigger,\n topic: string | null,\n limit: number = 5\n ): Promise<Array<{\n key: string;\n similarity: number;\n pattern: Record<string, unknown>;\n }>> {\n await this.initialize();\n\n const patterns: Array<{\n key: string;\n similarity: number;\n pattern: Record<string, unknown>;\n }> = [];\n\n // Search HNSW if available\n if (this.ruvectorCore && topic) {\n try {\n const embedding = await this.generateEmbedding(`${trigger} ${topic}`);\n const results = await this.searchHnsw(embedding, limit);\n\n for (const result of results) {\n patterns.push({\n key: result.id,\n similarity: result.similarity,\n pattern: result.metadata || {}\n });\n }\n } catch (e) {\n // Fallback to ReasoningBank\n }\n }\n\n // Also query ReasoningBank\n if (this.reasoningBank && patterns.length < limit) {\n try {\n const rbPatterns = await this.reasoningBank.retrieveMemories?.(\n `${trigger} ${topic || ''}`,\n { domain: 'workers', limit: limit - patterns.length }\n );\n\n if (rbPatterns) {\n for (const p of rbPatterns) {\n patterns.push({\n key: p.id || p.key,\n similarity: p.score || 0.5,\n pattern: p.content || p\n });\n }\n }\n } catch (e) {\n // Best effort\n }\n }\n\n return patterns;\n }\n\n /**\n * Store pattern in ReasoningBank with distillation\n */\n private async storePattern(\n key: string,\n data: Record<string, unknown>\n ): Promise<void> {\n if (!this.reasoningBank) return;\n\n try {\n // Use distillMemories if available for intelligent storage\n if (this.reasoningBank.distillMemories) {\n await this.reasoningBank.distillMemories(\n data,\n { label: 'success', confidence: data.qualityScore as number },\n `Worker task: ${key}`,\n { taskId: key, domain: 'workers' }\n );\n } else {\n // Fallback to direct db storage\n const db = this.reasoningBank.db;\n if (db?.storePattern) {\n await db.storePattern(key, JSON.stringify(data), Date.now());\n }\n }\n } catch (e) {\n console.warn('[RuVector] Pattern storage failed:', e);\n }\n }\n\n /**\n * Index pattern in HNSW for semantic search\n */\n private async indexPattern(\n id: string,\n embedding: number[],\n metadata: Record<string, unknown>\n ): Promise<void> {\n if (!this.ruvectorCore) return;\n\n try {\n // Access HNSW index (implementation depends on ruvector version)\n const index = this.ruvectorCore.getIndex?.() || this.ruvectorCore;\n if (index.add) {\n await index.add(id, embedding, metadata);\n }\n } catch (e) {\n // HNSW indexing is best-effort\n }\n }\n\n /**\n * Search HNSW index\n */\n private async searchHnsw(\n embedding: number[],\n limit: number\n ): Promise<Array<{ id: string; similarity: number; metadata?: Record<string, unknown> }>> {\n if (!this.ruvectorCore) return [];\n\n try {\n const index = this.ruvectorCore.getIndex?.() || this.ruvectorCore;\n if (index.search) {\n return await index.search(embedding, limit);\n }\n } catch (e) {\n // Search is best-effort\n }\n\n return [];\n }\n\n /**\n * Generate embedding for text using ONNX WASM (real semantic embeddings)\n */\n private async generateEmbedding(text: string): Promise<number[]> {\n // Priority 1: Use ONNX WASM embeddings (real semantic embeddings)\n if (this.onnxEmbeddings) {\n try {\n const embedding = await this.onnxEmbeddings.embed?.(text)\n || await this.onnxEmbeddings.encode?.(text)\n || await this.onnxEmbeddings.generate?.(text);\n if (embedding && embedding.length > 0) {\n return Array.isArray(embedding) ? embedding : Array.from(embedding);\n }\n } catch (e) {\n // Try other methods\n }\n }\n\n // Priority 2: Use ruvector core embedding if available\n if (this.ruvectorCore?.embed) {\n try {\n const embedding = await this.ruvectorCore.embed(text);\n if (embedding) return Array.from(embedding);\n } catch (e) {\n // Fallback\n }\n }\n\n // Priority 3: Use intelligence store if available\n if (this.intelligenceStore?.embed) {\n try {\n return await this.intelligenceStore.embed(text);\n } catch (e) {\n // Fallback\n }\n }\n\n // Priority 4: Use ReasoningBank embedding\n if (this.reasoningBank?.computeEmbedding) {\n try {\n return await this.reasoningBank.computeEmbedding(text);\n } catch (e) {\n // Fallback\n }\n }\n\n // Fallback: Generate simple hash-based embedding\n return this.simpleEmbedding(text);\n }\n\n /**\n * Simple hash-based embedding fallback\n */\n private simpleEmbedding(text: string): number[] {\n const dim = this.config.embeddingDim;\n const embedding = new Array(dim).fill(0);\n\n const words = text.toLowerCase().split(/\\s+/);\n for (let i = 0; i < words.length; i++) {\n const word = words[i];\n for (let j = 0; j < word.length; j++) {\n const idx = (word.charCodeAt(j) + i * 31 + j * 17) % dim;\n embedding[idx] += 1 / (1 + Math.sqrt(i + j));\n }\n }\n\n // Normalize\n const norm = Math.sqrt(embedding.reduce((s, v) => s + v * v, 0)) || 1;\n return embedding.map(v => v / norm);\n }\n\n /**\n * Generate activations for a phase\n */\n private generateActivations(phase: string, metrics: { successRate: number }): number[] {\n const dim = 64; // Reduced dimension for activations\n const activations = new Array(dim).fill(0);\n\n // Encode phase name\n for (let i = 0; i < phase.length; i++) {\n const idx = phase.charCodeAt(i) % dim;\n activations[idx] += 1 / phase.length;\n }\n\n // Encode success rate\n activations[0] = metrics.successRate;\n activations[dim - 1] = 1 - metrics.successRate;\n\n return activations;\n }\n\n /**\n * Calculate quality score for a trajectory\n */\n private calculateQualityScore(\n trajectory: { steps: WorkerStep[]; startTime: number },\n results: WorkerResults\n ): number {\n if (results.status !== 'complete') return 0;\n\n const completedPhases = results.completedPhases || 0;\n const totalPhases = results.totalPhases || 1;\n const phaseScore = completedPhases / totalPhases;\n\n // Average success rate across steps\n const avgSuccessRate = trajectory.steps.length > 0\n ? trajectory.steps.reduce((s, step) => s + step.successRate, 0) / trajectory.steps.length\n : 0.5;\n\n // Duration penalty (penalize very long or very short runs)\n const duration = Date.now() - trajectory.startTime;\n const expectedDuration = 30000; // 30 seconds expected\n const durationScore = Math.exp(-Math.abs(Math.log(duration / expectedDuration)));\n\n // Weighted combination\n return phaseScore * 0.4 + avgSuccessRate * 0.4 + durationScore * 0.2;\n }\n\n /**\n * Get integration stats\n */\n getStats(): {\n initialized: boolean;\n modules: { sona: boolean; reasoningBank: boolean; hnsw: boolean; intelligence: boolean; onnxEmbeddings: boolean };\n activeTrajectories: number;\n config: RuVectorWorkerConfig;\n } {\n return {\n initialized: this.initialized,\n modules: {\n sona: !!this.sonaService,\n reasoningBank: !!this.reasoningBank,\n hnsw: !!this.ruvectorCore,\n intelligence: !!this.intelligenceStore,\n onnxEmbeddings: !!this.onnxEmbeddings\n },\n activeTrajectories: this.activeTrajectories.size,\n config: this.config\n };\n }\n\n /**\n * Cleanup resources\n */\n async cleanup(): Promise<void> {\n // Complete any remaining trajectories\n for (const [trajectoryId, trajectory] of this.activeTrajectories) {\n await this.completeTrajectory(trajectoryId, {\n status: 'cancelled',\n data: null,\n completedPhases: trajectory.steps.length,\n totalPhases: trajectory.steps.length,\n memoryKeys: [],\n duration: Date.now() - trajectory.startTime\n });\n }\n\n this.activeTrajectories.clear();\n this.emit('cleanup');\n }\n}\n\n// Singleton instance\nlet instance: RuVectorWorkerIntegration | null = null;\n\nexport function getRuVectorWorkerIntegration(\n config?: Partial<RuVectorWorkerConfig>\n): RuVectorWorkerIntegration {\n if (!instance) {\n instance = new RuVectorWorkerIntegration(config);\n }\n return instance;\n}\n\n/**\n * Create worker context with RuVector integration\n */\nexport async function createRuVectorWorkerContext(\n context: WorkerContext\n): Promise<{\n trajectoryId: string;\n recordStep: (phase: string, metrics: { duration: number; memoryDeposits: number; successRate: number }) => Promise<void>;\n complete: (results: WorkerResults) => Promise<WorkerLearningResult>;\n findPatterns: (limit?: number) => Promise<Array<{ key: string; similarity: number; pattern: Record<string, unknown> }>>;\n}> {\n const integration = getRuVectorWorkerIntegration();\n const trajectoryId = await integration.startTrajectory(\n context.workerId,\n context.trigger,\n context.topic\n );\n\n return {\n trajectoryId,\n recordStep: (phase, metrics) => integration.recordStep(trajectoryId, phase, metrics),\n complete: (results) => integration.completeTrajectory(trajectoryId, results),\n findPatterns: (limit = 5) => integration.findRelevantPatterns(context.trigger, context.topic, limit)\n };\n}\n"]}