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.
- package/.claude/agents/test-neural.md +14 -0
- package/.claude/settings.json +9 -133
- package/README.md +624 -1776
- package/dist/.tsbuildinfo +1 -1
- package/dist/billing/mcp/tools.js +0 -1
- package/dist/billing/mcp/tools.js.map +1 -1
- package/dist/cli/commands/hooks.d.ts.map +1 -1
- package/dist/cli/commands/hooks.js +4 -79
- package/dist/cli/commands/hooks.js.map +1 -1
- package/dist/cli-proxy.js +1 -89
- package/dist/cli-proxy.js.map +1 -1
- package/dist/core/agentdb-fast.js +3 -3
- package/dist/core/agentdb-fast.js.map +1 -1
- package/dist/core/agentdb-wrapper-enhanced.d.ts.map +1 -1
- package/dist/core/agentdb-wrapper-enhanced.js +4 -20
- package/dist/core/agentdb-wrapper-enhanced.js.map +1 -1
- package/dist/core/agentdb-wrapper.d.ts +2 -3
- package/dist/core/agentdb-wrapper.d.ts.map +1 -1
- package/dist/core/agentdb-wrapper.js +1 -15
- package/dist/core/agentdb-wrapper.js.map +1 -1
- package/dist/core/attention-native.d.ts +0 -4
- package/dist/core/attention-native.d.ts.map +1 -1
- package/dist/core/attention-native.js +2 -14
- package/dist/core/attention-native.js.map +1 -1
- package/dist/federation/SecurityManager.d.ts +2 -11
- package/dist/federation/SecurityManager.d.ts.map +1 -1
- package/dist/federation/SecurityManager.js +17 -50
- package/dist/federation/SecurityManager.js.map +1 -1
- package/dist/federation/integrations/supabase-adapter-debug.js +3 -3
- package/dist/federation/integrations/supabase-adapter-debug.js.map +1 -1
- package/dist/hooks/swarm-learning-optimizer.js +5 -5
- package/dist/hooks/swarm-learning-optimizer.js.map +1 -1
- package/dist/intelligence/IntelligenceStore.d.ts +26 -35
- package/dist/intelligence/IntelligenceStore.d.ts.map +1 -1
- package/dist/intelligence/IntelligenceStore.js +123 -308
- package/dist/intelligence/IntelligenceStore.js.map +1 -1
- package/dist/intelligence/RuVectorIntelligence.d.ts +1 -26
- package/dist/intelligence/RuVectorIntelligence.d.ts.map +1 -1
- package/dist/intelligence/RuVectorIntelligence.js +10 -49
- package/dist/intelligence/RuVectorIntelligence.js.map +1 -1
- package/dist/intelligence/agent-booster-enhanced.d.ts +0 -1
- package/dist/intelligence/agent-booster-enhanced.d.ts.map +1 -1
- package/dist/intelligence/agent-booster-enhanced.js +3 -24
- package/dist/intelligence/agent-booster-enhanced.js.map +1 -1
- package/dist/intelligence/index.d.ts +3 -29
- package/dist/intelligence/index.d.ts.map +1 -1
- package/dist/intelligence/index.js +3 -13
- package/dist/intelligence/index.js.map +1 -1
- package/dist/mcp/claudeFlowSdkServer.d.ts.map +1 -1
- package/dist/mcp/claudeFlowSdkServer.js +3 -9
- package/dist/mcp/claudeFlowSdkServer.js.map +1 -1
- package/dist/mcp/fastmcp/tools/hooks/intelligence-bridge.js +5 -5
- package/dist/mcp/fastmcp/tools/hooks/intelligence-bridge.js.map +1 -1
- package/dist/mcp/fastmcp/tools/swarm/init.d.ts.map +1 -1
- package/dist/mcp/fastmcp/tools/swarm/init.js +7 -36
- package/dist/mcp/fastmcp/tools/swarm/init.js.map +1 -1
- package/dist/mcp/fastmcp/tools/swarm/spawn.d.ts.map +1 -1
- package/dist/mcp/fastmcp/tools/swarm/spawn.js +8 -47
- package/dist/mcp/fastmcp/tools/swarm/spawn.js.map +1 -1
- package/dist/mcp/tools/agent-booster-tools.d.ts +1 -1
- package/dist/mcp/tools/agent-booster-tools.d.ts.map +1 -1
- package/dist/mcp/tools/agent-booster-tools.js +4 -10
- package/dist/mcp/tools/agent-booster-tools.js.map +1 -1
- package/dist/mcp/tools/sona-tools.d.ts.map +1 -1
- package/dist/mcp/tools/sona-tools.js +0 -6
- package/dist/mcp/tools/sona-tools.js.map +1 -1
- package/dist/optimizations/agent-booster-migration.d.ts.map +1 -1
- package/dist/optimizations/agent-booster-migration.js +2 -5
- package/dist/optimizations/agent-booster-migration.js.map +1 -1
- package/dist/proxy/anthropic-to-openrouter.js.map +1 -1
- package/dist/proxy/anthropic-to-requesty.js.map +1 -1
- package/dist/proxy/quic-proxy.d.ts +1 -0
- package/dist/proxy/quic-proxy.d.ts.map +1 -1
- package/dist/proxy/quic-proxy.js +2 -2
- package/dist/proxy/quic-proxy.js.map +1 -1
- package/dist/reasoningbank/AdvancedMemory.js +1 -1
- package/dist/reasoningbank/AdvancedMemory.js.map +1 -1
- package/dist/reasoningbank/HybridBackend.d.ts.map +1 -1
- package/dist/reasoningbank/HybridBackend.js +5 -2
- package/dist/reasoningbank/HybridBackend.js.map +1 -1
- package/dist/reasoningbank/backend-selector.d.ts +1 -11
- package/dist/reasoningbank/backend-selector.d.ts.map +1 -1
- package/dist/reasoningbank/backend-selector.js +5 -45
- package/dist/reasoningbank/backend-selector.js.map +1 -1
- package/dist/reasoningbank/core/consolidate.d.ts.map +1 -1
- package/dist/reasoningbank/core/consolidate.js +45 -113
- package/dist/reasoningbank/core/consolidate.js.map +1 -1
- package/dist/reasoningbank/index-new.d.ts +6 -1
- package/dist/reasoningbank/index-new.d.ts.map +1 -1
- package/dist/reasoningbank/index-new.js +6 -1
- package/dist/reasoningbank/index-new.js.map +1 -1
- package/dist/reasoningbank/index.d.ts +6 -2
- package/dist/reasoningbank/index.d.ts.map +1 -1
- package/dist/reasoningbank/index.js +6 -2
- package/dist/reasoningbank/index.js.map +1 -1
- package/dist/reasoningbank/utils/embeddings.d.ts +0 -1
- package/dist/reasoningbank/utils/embeddings.d.ts.map +1 -1
- package/dist/reasoningbank/utils/embeddings.js +26 -53
- package/dist/reasoningbank/utils/embeddings.js.map +1 -1
- package/dist/router/index.d.ts +17 -0
- package/dist/router/index.d.ts.map +1 -0
- package/dist/router/index.js +19 -0
- package/dist/router/index.js.map +1 -0
- package/dist/router/providers/onnx-local-optimized.d.ts +0 -2
- package/dist/router/providers/onnx-local-optimized.d.ts.map +1 -1
- package/dist/router/providers/onnx-local-optimized.js +0 -10
- package/dist/router/providers/onnx-local-optimized.js.map +1 -1
- package/dist/router/providers/onnx-local.d.ts +0 -1
- package/dist/router/providers/onnx-local.d.ts.map +1 -1
- package/dist/router/providers/onnx-local.js +5 -22
- package/dist/router/providers/onnx-local.js.map +1 -1
- package/dist/services/embedding-service.js.map +1 -1
- package/dist/services/sona-agent-training.d.ts +0 -1
- package/dist/services/sona-agent-training.d.ts.map +1 -1
- package/dist/services/sona-agent-training.js.map +1 -1
- package/dist/services/sona-agentdb-integration.d.ts.map +1 -1
- package/dist/services/sona-agentdb-integration.js +6 -9
- package/dist/services/sona-agentdb-integration.js.map +1 -1
- package/dist/services/sona-service.d.ts.map +1 -1
- package/dist/services/sona-service.js +5 -6
- package/dist/services/sona-service.js.map +1 -1
- package/dist/utils/cli.d.ts +1 -1
- package/dist/utils/cli.d.ts.map +1 -1
- package/dist/utils/cli.js +0 -21
- package/dist/utils/cli.js.map +1 -1
- package/package.json +7 -19
- package/scripts/postinstall.js +4 -45
- package/.claude/agents/.claude-flow/metrics/agent-metrics.json +0 -1
- package/.claude/agents/.claude-flow/metrics/performance.json +0 -87
- package/.claude/agents/.claude-flow/metrics/task-metrics.json +0 -10
- package/.claude/skills/.claude-flow/metrics/agent-metrics.json +0 -1
- package/.claude/skills/.claude-flow/metrics/performance.json +0 -87
- package/.claude/skills/.claude-flow/metrics/task-metrics.json +0 -10
- package/.claude/skills/agentic-flow-quickstart/skill.md +0 -69
- package/.claude/skills/hooks-automation/skill.md +0 -155
- package/.claude/skills/memory-patterns/skill.md +0 -110
- package/.claude/skills/skill-builder/.claude-flow/metrics/agent-metrics.json +0 -1
- package/.claude/skills/skill-builder/.claude-flow/metrics/performance.json +0 -87
- package/.claude/skills/skill-builder/.claude-flow/metrics/task-metrics.json +0 -10
- package/.claude/skills/sparc-methodology/skill.md +0 -137
- package/.claude/skills/swarm-coordination/skill.md +0 -94
- package/.claude/skills/worker-benchmarks/skill.md +0 -135
- package/.claude/skills/worker-integration/skill.md +0 -154
- package/.claude/statusline.mjs +0 -109
- package/.claude/statusline.sh +0 -71
- package/dist/agentdb/benchmarks/comprehensive-benchmark.js +0 -664
- package/dist/agentdb/benchmarks/frontier-benchmark.js +0 -419
- package/dist/agentdb/benchmarks/reflexion-benchmark.js +0 -370
- package/dist/agentdb/cli/agentdb-cli.js +0 -717
- package/dist/agentdb/controllers/CausalMemoryGraph.js +0 -322
- package/dist/agentdb/controllers/CausalRecall.js +0 -281
- package/dist/agentdb/controllers/EmbeddingService.d.ts +0 -37
- package/dist/agentdb/controllers/EmbeddingService.d.ts.map +0 -1
- package/dist/agentdb/controllers/EmbeddingService.js +0 -119
- package/dist/agentdb/controllers/EmbeddingService.js.map +0 -1
- package/dist/agentdb/controllers/ExplainableRecall.js +0 -387
- package/dist/agentdb/controllers/NightlyLearner.js +0 -382
- package/dist/agentdb/controllers/ReflexionMemory.js +0 -239
- package/dist/agentdb/controllers/SkillLibrary.js +0 -276
- package/dist/agentdb/controllers/frontier-index.js +0 -9
- package/dist/agentdb/controllers/index.js +0 -8
- package/dist/agentdb/optimizations/BatchOperations.js +0 -198
- package/dist/agentdb/optimizations/QueryOptimizer.js +0 -225
- package/dist/agentdb/optimizations/index.js +0 -7
- package/dist/agentdb/tests/frontier-features.test.js +0 -665
- package/dist/benchmarks/embeddings-benchmark.d.ts +0 -38
- package/dist/benchmarks/embeddings-benchmark.d.ts.map +0 -1
- package/dist/benchmarks/embeddings-benchmark.js +0 -282
- package/dist/benchmarks/embeddings-benchmark.js.map +0 -1
- package/dist/cli/commands/embeddings.d.ts +0 -12
- package/dist/cli/commands/embeddings.d.ts.map +0 -1
- package/dist/cli/commands/embeddings.js +0 -386
- package/dist/cli/commands/embeddings.js.map +0 -1
- package/dist/cli/commands/init.d.ts +0 -8
- package/dist/cli/commands/init.d.ts.map +0 -1
- package/dist/cli/commands/init.js +0 -514
- package/dist/cli/commands/init.js.map +0 -1
- package/dist/cli/commands/workers.d.ts +0 -9
- package/dist/cli/commands/workers.d.ts.map +0 -1
- package/dist/cli/commands/workers.js +0 -991
- package/dist/cli/commands/workers.js.map +0 -1
- package/dist/cli/skills-manager.js +0 -1297
- package/dist/cli/update-message.js +0 -175
- package/dist/embeddings/index.d.ts +0 -17
- package/dist/embeddings/index.d.ts.map +0 -1
- package/dist/embeddings/index.js +0 -17
- package/dist/embeddings/index.js.map +0 -1
- package/dist/embeddings/neural-substrate.d.ts +0 -206
- package/dist/embeddings/neural-substrate.d.ts.map +0 -1
- package/dist/embeddings/neural-substrate.js +0 -629
- package/dist/embeddings/neural-substrate.js.map +0 -1
- package/dist/embeddings/optimized-embedder.d.ts +0 -103
- package/dist/embeddings/optimized-embedder.d.ts.map +0 -1
- package/dist/embeddings/optimized-embedder.js +0 -730
- package/dist/embeddings/optimized-embedder.js.map +0 -1
- package/dist/examples/embedding-geometry.d.ts +0 -105
- package/dist/examples/embedding-geometry.d.ts.map +0 -1
- package/dist/examples/embedding-geometry.js +0 -528
- package/dist/examples/embedding-geometry.js.map +0 -1
- package/dist/memory/SharedMemoryPool.d.ts +0 -129
- package/dist/memory/SharedMemoryPool.d.ts.map +0 -1
- package/dist/memory/SharedMemoryPool.js +0 -243
- package/dist/memory/SharedMemoryPool.js.map +0 -1
- package/dist/memory/index.d.ts +0 -8
- package/dist/memory/index.d.ts.map +0 -1
- package/dist/memory/index.js +0 -7
- package/dist/memory/index.js.map +0 -1
- package/dist/proxy/http3-proxy-old.js +0 -331
- package/dist/proxy/proxy/anthropic-to-gemini.js +0 -439
- package/dist/proxy/utils/logger.js +0 -59
- package/dist/reasoningbank/agentdb-adapter.js +0 -125
- package/dist/reasoningbank/core/database.js +0 -250
- package/dist/reasoningbank/core/memory-engine.js +0 -335
- package/dist/swarm/ipfs-swarm.d.ts +0 -265
- package/dist/swarm/ipfs-swarm.d.ts.map +0 -1
- package/dist/swarm/ipfs-swarm.js +0 -508
- package/dist/swarm/ipfs-swarm.js.map +0 -1
- package/dist/swarm/p2p-free-swarm.d.ts +0 -344
- package/dist/swarm/p2p-free-swarm.d.ts.map +0 -1
- package/dist/swarm/p2p-free-swarm.js +0 -603
- package/dist/swarm/p2p-free-swarm.js.map +0 -1
- package/dist/swarm/real-p2p-swarm.d.ts +0 -183
- package/dist/swarm/real-p2p-swarm.d.ts.map +0 -1
- package/dist/swarm/real-p2p-swarm.js +0 -469
- package/dist/swarm/real-p2p-swarm.js.map +0 -1
- package/dist/utils/adaptive-pool-sizing.js +0 -414
- package/dist/utils/agentdbCommands.js +0 -175
- package/dist/utils/circular-rate-limiter.js +0 -391
- package/dist/utils/dynamic-compression.js +0 -298
- package/dist/utils/http2-multiplexing.js +0 -319
- package/dist/utils/index.d.ts +0 -6
- package/dist/utils/index.d.ts.map +0 -1
- package/dist/utils/index.js +0 -6
- package/dist/utils/index.js.map +0 -1
- package/dist/utils/lazy-auth.js +0 -311
- package/dist/utils/model-cache.d.ts +0 -61
- package/dist/utils/model-cache.d.ts.map +0 -1
- package/dist/utils/model-cache.js +0 -176
- package/dist/utils/model-cache.js.map +0 -1
- package/dist/utils/server-push.js +0 -251
- package/dist/utils/suppress-warnings.d.ts +0 -19
- package/dist/utils/suppress-warnings.d.ts.map +0 -1
- package/dist/utils/suppress-warnings.js +0 -59
- package/dist/utils/suppress-warnings.js.map +0 -1
- package/dist/utils/zero-copy-buffer.js +0 -286
- package/dist/workers/consolidated-phases.d.ts +0 -40
- package/dist/workers/consolidated-phases.d.ts.map +0 -1
- package/dist/workers/consolidated-phases.js +0 -497
- package/dist/workers/consolidated-phases.js.map +0 -1
- package/dist/workers/custom-worker-config.d.ts +0 -133
- package/dist/workers/custom-worker-config.d.ts.map +0 -1
- package/dist/workers/custom-worker-config.js +0 -215
- package/dist/workers/custom-worker-config.js.map +0 -1
- package/dist/workers/custom-worker-factory.d.ts +0 -89
- package/dist/workers/custom-worker-factory.d.ts.map +0 -1
- package/dist/workers/custom-worker-factory.js +0 -404
- package/dist/workers/custom-worker-factory.js.map +0 -1
- package/dist/workers/dispatch-service.d.ts +0 -123
- package/dist/workers/dispatch-service.d.ts.map +0 -1
- package/dist/workers/dispatch-service.js +0 -1024
- package/dist/workers/dispatch-service.js.map +0 -1
- package/dist/workers/hooks-integration.d.ts +0 -79
- package/dist/workers/hooks-integration.d.ts.map +0 -1
- package/dist/workers/hooks-integration.js +0 -286
- package/dist/workers/hooks-integration.js.map +0 -1
- package/dist/workers/index.d.ts +0 -42
- package/dist/workers/index.d.ts.map +0 -1
- package/dist/workers/index.js +0 -52
- package/dist/workers/index.js.map +0 -1
- package/dist/workers/mcp-tools.d.ts +0 -56
- package/dist/workers/mcp-tools.d.ts.map +0 -1
- package/dist/workers/mcp-tools.js +0 -359
- package/dist/workers/mcp-tools.js.map +0 -1
- package/dist/workers/phase-executors.d.ts +0 -22
- package/dist/workers/phase-executors.d.ts.map +0 -1
- package/dist/workers/phase-executors.js +0 -445
- package/dist/workers/phase-executors.js.map +0 -1
- package/dist/workers/resource-governor.d.ts +0 -75
- package/dist/workers/resource-governor.d.ts.map +0 -1
- package/dist/workers/resource-governor.js +0 -187
- package/dist/workers/resource-governor.js.map +0 -1
- package/dist/workers/ruvector-integration.d.ts +0 -163
- package/dist/workers/ruvector-integration.d.ts.map +0 -1
- package/dist/workers/ruvector-integration.js +0 -543
- package/dist/workers/ruvector-integration.js.map +0 -1
- package/dist/workers/ruvector-native-integration.d.ts +0 -91
- package/dist/workers/ruvector-native-integration.d.ts.map +0 -1
- package/dist/workers/ruvector-native-integration.js +0 -254
- package/dist/workers/ruvector-native-integration.js.map +0 -1
- package/dist/workers/trigger-detector.d.ts +0 -68
- package/dist/workers/trigger-detector.d.ts.map +0 -1
- package/dist/workers/trigger-detector.js +0 -281
- package/dist/workers/trigger-detector.js.map +0 -1
- package/dist/workers/types.d.ts +0 -145
- package/dist/workers/types.d.ts.map +0 -1
- package/dist/workers/types.js +0 -6
- package/dist/workers/types.js.map +0 -1
- package/dist/workers/worker-agent-integration.d.ts +0 -140
- package/dist/workers/worker-agent-integration.d.ts.map +0 -1
- package/dist/workers/worker-agent-integration.js +0 -471
- package/dist/workers/worker-agent-integration.js.map +0 -1
- package/dist/workers/worker-benchmarks.d.ts +0 -88
- package/dist/workers/worker-benchmarks.d.ts.map +0 -1
- package/dist/workers/worker-benchmarks.js +0 -452
- package/dist/workers/worker-benchmarks.js.map +0 -1
- package/dist/workers/worker-registry.d.ts +0 -85
- package/dist/workers/worker-registry.d.ts.map +0 -1
- package/dist/workers/worker-registry.js +0 -547
- package/dist/workers/worker-registry.js.map +0 -1
- package/docs/.claude-flow/metrics/agent-metrics.json +0 -1
- package/docs/.claude-flow/metrics/performance.json +0 -87
- package/docs/.claude-flow/metrics/task-metrics.json +0 -10
- package/docs/embeddings/EMBEDDING_GEOMETRY.md +0 -935
- /package/.claude/agents/analysis/{analyze-code-quality.md → code-review/analyze-code-quality.md} +0 -0
- /package/.claude/agents/architecture/{arch-system-design.md → system-design/arch-system-design.md} +0 -0
- /package/.claude/agents/data/{data-ml-model.md → ml/data-ml-model.md} +0 -0
- /package/.claude/agents/development/{dev-backend-api.md → backend/dev-backend-api.md} +0 -0
- /package/.claude/agents/devops/{ops-cicd-github.md → ci-cd/ops-cicd-github.md} +0 -0
- /package/.claude/agents/documentation/{docs-api-openapi.md → api-docs/docs-api-openapi.md} +0 -0
- /package/.claude/agents/specialized/{spec-mobile-react-native.md → mobile/spec-mobile-react-native.md} +0 -0
- /package/.claude/agents/testing/{tdd-london-swarm.md → unit/tdd-london-swarm.md} +0 -0
- /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"]}
|