@nxuss/lemma 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +347 -181
- package/dist/cjs/cloud/KeyManager.d.ts.map +1 -0
- package/dist/cjs/cloud/KeyManager.js.map +1 -0
- package/dist/cjs/cloud/TenantCache.d.ts.map +1 -0
- package/dist/cjs/cloud/TenantCache.js.map +1 -0
- package/dist/cjs/cloud/index.d.ts.map +1 -0
- package/dist/cjs/cloud/index.js.map +1 -0
- package/dist/cjs/cloud/server.d.ts.map +1 -0
- package/dist/cjs/cloud/server.js.map +1 -0
- package/dist/cjs/cloud/types.d.ts.map +1 -0
- package/dist/cjs/cloud/types.js.map +1 -0
- package/dist/cjs/config/index.d.ts.map +1 -0
- package/dist/cjs/config/index.js.map +1 -0
- package/dist/cjs/consensus/ConsensusEngine.d.ts.map +1 -0
- package/dist/cjs/consensus/ConsensusEngine.js.map +1 -0
- package/dist/cjs/consensus/ModelPool.d.ts.map +1 -0
- package/dist/cjs/consensus/ModelPool.js.map +1 -0
- package/dist/cjs/consensus/index.d.ts.map +1 -0
- package/dist/cjs/consensus/index.js.map +1 -0
- package/dist/cjs/core/AgentRegistry.d.ts.map +1 -0
- package/dist/cjs/core/AgentRegistry.js.map +1 -0
- package/dist/cjs/core/DashboardBroadcaster.d.ts.map +1 -0
- package/dist/cjs/core/DashboardBroadcaster.js.map +1 -0
- package/dist/{core → cjs/core}/OrchestrationEngine.d.ts +1 -0
- package/dist/cjs/core/OrchestrationEngine.d.ts.map +1 -0
- package/dist/{core → cjs/core}/OrchestrationEngine.js +29 -23
- package/dist/cjs/core/OrchestrationEngine.js.map +1 -0
- package/dist/cjs/core/SubconsciousEngine.d.ts.map +1 -0
- package/dist/{core → cjs/core}/SubconsciousEngine.js +15 -3
- package/dist/cjs/core/SubconsciousEngine.js.map +1 -0
- package/dist/cjs/core/WebSocketServer.d.ts.map +1 -0
- package/dist/{core → cjs/core}/WebSocketServer.js +2 -1
- package/dist/cjs/core/WebSocketServer.js.map +1 -0
- package/dist/cjs/core/index.d.ts.map +1 -0
- package/dist/cjs/core/index.js.map +1 -0
- package/dist/cjs/core/router.d.ts.map +1 -0
- package/dist/cjs/core/router.js.map +1 -0
- package/dist/{embed → cjs/embed}/index.d.ts +66 -1
- package/dist/cjs/embed/index.d.ts.map +1 -0
- package/dist/cjs/embed/index.js +979 -0
- package/dist/cjs/embed/index.js.map +1 -0
- package/dist/cjs/embed.d.ts.map +1 -0
- package/dist/cjs/embed.js.map +1 -0
- package/dist/cjs/examples/basic-usage.d.ts +12 -0
- package/dist/cjs/examples/basic-usage.d.ts.map +1 -0
- package/dist/cjs/examples/basic-usage.js +128 -0
- package/dist/cjs/examples/basic-usage.js.map +1 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/package.json +3 -0
- package/dist/cjs/protocol/flows.d.ts.map +1 -0
- package/dist/cjs/protocol/flows.js.map +1 -0
- package/dist/cjs/protocol/iap.d.ts.map +1 -0
- package/dist/cjs/protocol/iap.js.map +1 -0
- package/dist/cjs/protocol/index.d.ts.map +1 -0
- package/dist/cjs/protocol/index.js.map +1 -0
- package/dist/cjs/protocol/types.d.ts.map +1 -0
- package/dist/cjs/protocol/types.js.map +1 -0
- package/dist/cjs/protocol/utils.d.ts.map +1 -0
- package/dist/cjs/protocol/utils.js.map +1 -0
- package/dist/cjs/protocol/validators.d.ts.map +1 -0
- package/dist/cjs/protocol/validators.js.map +1 -0
- package/dist/cjs/security/AuthManager.d.ts.map +1 -0
- package/dist/cjs/security/AuthManager.js.map +1 -0
- package/dist/cjs/security/MessageSanitizer.d.ts.map +1 -0
- package/dist/{security → cjs/security}/MessageSanitizer.js +22 -6
- package/dist/cjs/security/MessageSanitizer.js.map +1 -0
- package/dist/cjs/security/RateLimiter.d.ts.map +1 -0
- package/dist/cjs/security/RateLimiter.js.map +1 -0
- package/dist/{security → cjs/security}/SecurityMiddleware.d.ts +3 -1
- package/dist/cjs/security/SecurityMiddleware.d.ts.map +1 -0
- package/dist/{security → cjs/security}/SecurityMiddleware.js +5 -3
- package/dist/cjs/security/SecurityMiddleware.js.map +1 -0
- package/dist/cjs/security/index.d.ts.map +1 -0
- package/dist/cjs/security/index.js.map +1 -0
- package/dist/cjs/speculative/PredictionEngine.d.ts.map +1 -0
- package/dist/cjs/speculative/PredictionEngine.js.map +1 -0
- package/dist/cjs/speculative/SpeculativeCache.d.ts.map +1 -0
- package/dist/cjs/speculative/SpeculativeCache.js.map +1 -0
- package/dist/cjs/speculative/SpeculativeEngine.d.ts.map +1 -0
- package/dist/cjs/speculative/SpeculativeEngine.js.map +1 -0
- package/dist/cjs/speculative/WorkerPool.d.ts.map +1 -0
- package/dist/cjs/speculative/WorkerPool.js.map +1 -0
- package/dist/cjs/speculative/index.d.ts.map +1 -0
- package/dist/cjs/speculative/index.js.map +1 -0
- package/dist/cjs/subconscious/EmbeddingService.d.ts.map +1 -0
- package/dist/cjs/subconscious/EmbeddingService.js.map +1 -0
- package/dist/cjs/subconscious/SemanticCache.d.ts.map +1 -0
- package/dist/cjs/subconscious/SemanticCache.js.map +1 -0
- package/dist/cjs/subconscious/SubconsciousEngine.d.ts.map +1 -0
- package/dist/cjs/subconscious/SubconsciousEngine.js.map +1 -0
- package/dist/cjs/subconscious/VectorStore.d.ts.map +1 -0
- package/dist/{subconscious → cjs/subconscious}/VectorStore.js +3 -3
- package/dist/cjs/subconscious/VectorStore.js.map +1 -0
- package/dist/cjs/subconscious/cache.d.ts.map +1 -0
- package/dist/cjs/subconscious/cache.js.map +1 -0
- package/dist/cjs/subconscious/embeddings.d.ts.map +1 -0
- package/dist/cjs/subconscious/embeddings.js.map +1 -0
- package/dist/cjs/subconscious/index.d.ts.map +1 -0
- package/dist/cjs/subconscious/index.js.map +1 -0
- package/dist/cjs/types/index.d.ts.map +1 -0
- package/dist/cjs/types/index.js.map +1 -0
- package/dist/cjs/utils/logger.d.ts.map +1 -0
- package/dist/cjs/utils/logger.js.map +1 -0
- package/dist/esm/cloud/KeyManager.d.ts +29 -0
- package/dist/esm/cloud/KeyManager.d.ts.map +1 -0
- package/dist/esm/cloud/KeyManager.js +135 -0
- package/dist/esm/cloud/KeyManager.js.map +1 -0
- package/dist/esm/cloud/TenantCache.d.ts +29 -0
- package/dist/esm/cloud/TenantCache.d.ts.map +1 -0
- package/dist/esm/cloud/TenantCache.js +125 -0
- package/dist/esm/cloud/TenantCache.js.map +1 -0
- package/dist/esm/cloud/index.d.ts +4 -0
- package/dist/esm/cloud/index.d.ts.map +1 -0
- package/dist/esm/cloud/index.js +4 -0
- package/dist/esm/cloud/index.js.map +1 -0
- package/dist/esm/cloud/server.d.ts +17 -0
- package/dist/esm/cloud/server.d.ts.map +1 -0
- package/dist/esm/cloud/server.js +181 -0
- package/dist/esm/cloud/server.js.map +1 -0
- package/dist/esm/cloud/types.d.ts +35 -0
- package/dist/esm/cloud/types.d.ts.map +1 -0
- package/dist/esm/cloud/types.js +11 -0
- package/dist/esm/cloud/types.js.map +1 -0
- package/dist/esm/config/index.d.ts +44 -0
- package/dist/esm/config/index.d.ts.map +1 -0
- package/dist/esm/config/index.js +151 -0
- package/dist/esm/config/index.js.map +1 -0
- package/dist/esm/consensus/ConsensusEngine.d.ts +119 -0
- package/dist/esm/consensus/ConsensusEngine.d.ts.map +1 -0
- package/dist/esm/consensus/ConsensusEngine.js +310 -0
- package/dist/esm/consensus/ConsensusEngine.js.map +1 -0
- package/dist/esm/consensus/ModelPool.d.ts +103 -0
- package/dist/esm/consensus/ModelPool.d.ts.map +1 -0
- package/dist/esm/consensus/ModelPool.js +269 -0
- package/dist/esm/consensus/ModelPool.js.map +1 -0
- package/dist/esm/consensus/index.d.ts +8 -0
- package/dist/esm/consensus/index.d.ts.map +1 -0
- package/dist/esm/consensus/index.js +8 -0
- package/dist/esm/consensus/index.js.map +1 -0
- package/dist/esm/core/AgentRegistry.d.ts +89 -0
- package/dist/esm/core/AgentRegistry.d.ts.map +1 -0
- package/dist/esm/core/AgentRegistry.js +260 -0
- package/dist/esm/core/AgentRegistry.js.map +1 -0
- package/dist/esm/core/DashboardBroadcaster.d.ts +67 -0
- package/dist/esm/core/DashboardBroadcaster.d.ts.map +1 -0
- package/dist/esm/core/DashboardBroadcaster.js +260 -0
- package/dist/esm/core/DashboardBroadcaster.js.map +1 -0
- package/dist/esm/core/OrchestrationEngine.d.ts +85 -0
- package/dist/esm/core/OrchestrationEngine.d.ts.map +1 -0
- package/dist/esm/core/OrchestrationEngine.js +457 -0
- package/dist/esm/core/OrchestrationEngine.js.map +1 -0
- package/dist/esm/core/SubconsciousEngine.d.ts +53 -0
- package/dist/esm/core/SubconsciousEngine.d.ts.map +1 -0
- package/dist/esm/core/SubconsciousEngine.js +278 -0
- package/dist/esm/core/SubconsciousEngine.js.map +1 -0
- package/dist/esm/core/WebSocketServer.d.ts +89 -0
- package/dist/esm/core/WebSocketServer.d.ts.map +1 -0
- package/dist/esm/core/WebSocketServer.js +380 -0
- package/dist/esm/core/WebSocketServer.js.map +1 -0
- package/dist/esm/core/index.d.ts +15 -0
- package/dist/esm/core/index.d.ts.map +1 -0
- package/dist/esm/core/index.js +15 -0
- package/dist/esm/core/index.js.map +1 -0
- package/dist/esm/core/router.d.ts +105 -0
- package/dist/esm/core/router.d.ts.map +1 -0
- package/dist/esm/core/router.js +416 -0
- package/dist/esm/core/router.js.map +1 -0
- package/dist/esm/embed/index.d.ts +218 -0
- package/dist/esm/embed/index.d.ts.map +1 -0
- package/dist/esm/embed/index.js +939 -0
- package/dist/esm/embed/index.js.map +1 -0
- package/dist/esm/embed.d.ts +11 -0
- package/dist/esm/embed.d.ts.map +1 -0
- package/dist/esm/embed.js +11 -0
- package/dist/esm/embed.js.map +1 -0
- package/dist/esm/examples/basic-usage.d.ts +12 -0
- package/dist/esm/examples/basic-usage.d.ts.map +1 -0
- package/dist/esm/examples/basic-usage.js +126 -0
- package/dist/esm/examples/basic-usage.js.map +1 -0
- package/dist/esm/index.d.ts +83 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +132 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/package.json +3 -0
- package/dist/esm/protocol/flows.d.ts +126 -0
- package/dist/esm/protocol/flows.d.ts.map +1 -0
- package/dist/esm/protocol/flows.js +338 -0
- package/dist/esm/protocol/flows.js.map +1 -0
- package/dist/esm/protocol/iap.d.ts +54 -0
- package/dist/esm/protocol/iap.d.ts.map +1 -0
- package/dist/esm/protocol/iap.js +104 -0
- package/dist/esm/protocol/iap.js.map +1 -0
- package/dist/esm/protocol/index.d.ts +23 -0
- package/dist/esm/protocol/index.d.ts.map +1 -0
- package/dist/esm/protocol/index.js +28 -0
- package/dist/esm/protocol/index.js.map +1 -0
- package/dist/esm/protocol/types.d.ts +332 -0
- package/dist/esm/protocol/types.d.ts.map +1 -0
- package/dist/esm/protocol/types.js +54 -0
- package/dist/esm/protocol/types.js.map +1 -0
- package/dist/esm/protocol/utils.d.ts +130 -0
- package/dist/esm/protocol/utils.d.ts.map +1 -0
- package/dist/esm/protocol/utils.js +260 -0
- package/dist/esm/protocol/utils.js.map +1 -0
- package/dist/esm/protocol/validators.d.ts +54 -0
- package/dist/esm/protocol/validators.d.ts.map +1 -0
- package/dist/esm/protocol/validators.js +332 -0
- package/dist/esm/protocol/validators.js.map +1 -0
- package/dist/esm/security/AuthManager.d.ts +73 -0
- package/dist/esm/security/AuthManager.d.ts.map +1 -0
- package/dist/esm/security/AuthManager.js +95 -0
- package/dist/esm/security/AuthManager.js.map +1 -0
- package/dist/esm/security/MessageSanitizer.d.ts +51 -0
- package/dist/esm/security/MessageSanitizer.d.ts.map +1 -0
- package/dist/esm/security/MessageSanitizer.js +178 -0
- package/dist/esm/security/MessageSanitizer.js.map +1 -0
- package/dist/esm/security/RateLimiter.d.ts +46 -0
- package/dist/esm/security/RateLimiter.d.ts.map +1 -0
- package/dist/esm/security/RateLimiter.js +129 -0
- package/dist/esm/security/RateLimiter.js.map +1 -0
- package/dist/esm/security/SecurityMiddleware.d.ts +90 -0
- package/dist/esm/security/SecurityMiddleware.d.ts.map +1 -0
- package/dist/esm/security/SecurityMiddleware.js +144 -0
- package/dist/esm/security/SecurityMiddleware.js.map +1 -0
- package/dist/esm/security/index.d.ts +35 -0
- package/dist/esm/security/index.d.ts.map +1 -0
- package/dist/esm/security/index.js +35 -0
- package/dist/esm/security/index.js.map +1 -0
- package/dist/esm/speculative/PredictionEngine.d.ts +99 -0
- package/dist/esm/speculative/PredictionEngine.d.ts.map +1 -0
- package/dist/esm/speculative/PredictionEngine.js +284 -0
- package/dist/esm/speculative/PredictionEngine.js.map +1 -0
- package/dist/esm/speculative/SpeculativeCache.d.ts +117 -0
- package/dist/esm/speculative/SpeculativeCache.d.ts.map +1 -0
- package/dist/esm/speculative/SpeculativeCache.js +288 -0
- package/dist/esm/speculative/SpeculativeCache.js.map +1 -0
- package/dist/esm/speculative/SpeculativeEngine.d.ts +114 -0
- package/dist/esm/speculative/SpeculativeEngine.d.ts.map +1 -0
- package/dist/esm/speculative/SpeculativeEngine.js +240 -0
- package/dist/esm/speculative/SpeculativeEngine.js.map +1 -0
- package/dist/esm/speculative/WorkerPool.d.ts +109 -0
- package/dist/esm/speculative/WorkerPool.d.ts.map +1 -0
- package/dist/esm/speculative/WorkerPool.js +323 -0
- package/dist/esm/speculative/WorkerPool.js.map +1 -0
- package/dist/esm/speculative/index.d.ts +10 -0
- package/dist/esm/speculative/index.d.ts.map +1 -0
- package/dist/esm/speculative/index.js +10 -0
- package/dist/esm/speculative/index.js.map +1 -0
- package/dist/esm/subconscious/EmbeddingService.d.ts +73 -0
- package/dist/esm/subconscious/EmbeddingService.d.ts.map +1 -0
- package/dist/esm/subconscious/EmbeddingService.js +189 -0
- package/dist/esm/subconscious/EmbeddingService.js.map +1 -0
- package/dist/esm/subconscious/SemanticCache.d.ts +82 -0
- package/dist/esm/subconscious/SemanticCache.d.ts.map +1 -0
- package/dist/esm/subconscious/SemanticCache.js +160 -0
- package/dist/esm/subconscious/SemanticCache.js.map +1 -0
- package/dist/esm/subconscious/SubconsciousEngine.d.ts +121 -0
- package/dist/esm/subconscious/SubconsciousEngine.d.ts.map +1 -0
- package/dist/esm/subconscious/SubconsciousEngine.js +237 -0
- package/dist/esm/subconscious/SubconsciousEngine.js.map +1 -0
- package/dist/esm/subconscious/VectorStore.d.ts +54 -0
- package/dist/esm/subconscious/VectorStore.d.ts.map +1 -0
- package/dist/esm/subconscious/VectorStore.js +164 -0
- package/dist/esm/subconscious/VectorStore.js.map +1 -0
- package/dist/esm/subconscious/cache.d.ts +34 -0
- package/dist/esm/subconscious/cache.d.ts.map +1 -0
- package/dist/esm/subconscious/cache.js +152 -0
- package/dist/{subconscious → esm/subconscious}/cache.js.map +1 -1
- package/dist/esm/subconscious/embeddings.d.ts +25 -0
- package/dist/esm/subconscious/embeddings.d.ts.map +1 -0
- package/dist/esm/subconscious/embeddings.js +58 -0
- package/dist/esm/subconscious/embeddings.js.map +1 -0
- package/dist/esm/subconscious/index.d.ts +12 -0
- package/dist/esm/subconscious/index.d.ts.map +1 -0
- package/dist/esm/subconscious/index.js +12 -0
- package/dist/esm/subconscious/index.js.map +1 -0
- package/dist/esm/types/index.d.ts +286 -0
- package/dist/esm/types/index.d.ts.map +1 -0
- package/dist/esm/types/index.js +40 -0
- package/dist/esm/types/index.js.map +1 -0
- package/dist/esm/utils/logger.d.ts +63 -0
- package/dist/esm/utils/logger.d.ts.map +1 -0
- package/dist/esm/utils/logger.js +122 -0
- package/dist/esm/utils/logger.js.map +1 -0
- package/package.json +77 -13
- package/dist/cloud/KeyManager.d.ts.map +0 -1
- package/dist/cloud/KeyManager.js.map +0 -1
- package/dist/cloud/TenantCache.d.ts.map +0 -1
- package/dist/cloud/TenantCache.js.map +0 -1
- package/dist/cloud/index.d.ts.map +0 -1
- package/dist/cloud/index.js.map +0 -1
- package/dist/cloud/server.d.ts.map +0 -1
- package/dist/cloud/server.js.map +0 -1
- package/dist/cloud/types.d.ts.map +0 -1
- package/dist/cloud/types.js.map +0 -1
- package/dist/config/index.d.ts.map +0 -1
- package/dist/config/index.js.map +0 -1
- package/dist/consensus/ConsensusEngine.d.ts.map +0 -1
- package/dist/consensus/ConsensusEngine.js.map +0 -1
- package/dist/consensus/ModelPool.d.ts.map +0 -1
- package/dist/consensus/ModelPool.js.map +0 -1
- package/dist/consensus/index.d.ts.map +0 -1
- package/dist/consensus/index.js.map +0 -1
- package/dist/core/AgentRegistry.d.ts.map +0 -1
- package/dist/core/AgentRegistry.js.map +0 -1
- package/dist/core/DashboardBroadcaster.d.ts.map +0 -1
- package/dist/core/DashboardBroadcaster.js.map +0 -1
- package/dist/core/OrchestrationEngine.d.ts.map +0 -1
- package/dist/core/OrchestrationEngine.js.map +0 -1
- package/dist/core/SubconsciousEngine.d.ts.map +0 -1
- package/dist/core/SubconsciousEngine.js.map +0 -1
- package/dist/core/WebSocketServer.d.ts.map +0 -1
- package/dist/core/WebSocketServer.js.map +0 -1
- package/dist/core/index.d.ts.map +0 -1
- package/dist/core/index.js.map +0 -1
- package/dist/core/router.d.ts.map +0 -1
- package/dist/core/router.js.map +0 -1
- package/dist/embed/index.d.ts.map +0 -1
- package/dist/embed/index.js +0 -408
- package/dist/embed/index.js.map +0 -1
- package/dist/embed.d.ts.map +0 -1
- package/dist/embed.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/protocol/flows.d.ts.map +0 -1
- package/dist/protocol/flows.js.map +0 -1
- package/dist/protocol/iap.d.ts.map +0 -1
- package/dist/protocol/iap.js.map +0 -1
- package/dist/protocol/index.d.ts.map +0 -1
- package/dist/protocol/index.js.map +0 -1
- package/dist/protocol/types.d.ts.map +0 -1
- package/dist/protocol/types.js.map +0 -1
- package/dist/protocol/utils.d.ts.map +0 -1
- package/dist/protocol/utils.js.map +0 -1
- package/dist/protocol/validators.d.ts.map +0 -1
- package/dist/protocol/validators.js.map +0 -1
- package/dist/security/AuthManager.d.ts.map +0 -1
- package/dist/security/AuthManager.js.map +0 -1
- package/dist/security/MessageSanitizer.d.ts.map +0 -1
- package/dist/security/MessageSanitizer.js.map +0 -1
- package/dist/security/RateLimiter.d.ts.map +0 -1
- package/dist/security/RateLimiter.js.map +0 -1
- package/dist/security/SecurityMiddleware.d.ts.map +0 -1
- package/dist/security/SecurityMiddleware.js.map +0 -1
- package/dist/security/index.d.ts.map +0 -1
- package/dist/security/index.js.map +0 -1
- package/dist/speculative/PredictionEngine.d.ts.map +0 -1
- package/dist/speculative/PredictionEngine.js.map +0 -1
- package/dist/speculative/SpeculativeCache.d.ts.map +0 -1
- package/dist/speculative/SpeculativeCache.js.map +0 -1
- package/dist/speculative/SpeculativeEngine.d.ts.map +0 -1
- package/dist/speculative/SpeculativeEngine.js.map +0 -1
- package/dist/speculative/WorkerPool.d.ts.map +0 -1
- package/dist/speculative/WorkerPool.js.map +0 -1
- package/dist/speculative/index.d.ts.map +0 -1
- package/dist/speculative/index.js.map +0 -1
- package/dist/subconscious/EmbeddingService.d.ts.map +0 -1
- package/dist/subconscious/EmbeddingService.js.map +0 -1
- package/dist/subconscious/SemanticCache.d.ts.map +0 -1
- package/dist/subconscious/SemanticCache.js.map +0 -1
- package/dist/subconscious/SubconsciousEngine.d.ts.map +0 -1
- package/dist/subconscious/SubconsciousEngine.js.map +0 -1
- package/dist/subconscious/VectorStore.d.ts.map +0 -1
- package/dist/subconscious/VectorStore.js.map +0 -1
- package/dist/subconscious/cache.d.ts.map +0 -1
- package/dist/subconscious/embeddings.d.ts.map +0 -1
- package/dist/subconscious/embeddings.js.map +0 -1
- package/dist/subconscious/index.d.ts.map +0 -1
- package/dist/subconscious/index.js.map +0 -1
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/index.js.map +0 -1
- package/dist/utils/logger.d.ts.map +0 -1
- package/dist/utils/logger.js.map +0 -1
- /package/dist/{cloud → cjs/cloud}/KeyManager.d.ts +0 -0
- /package/dist/{cloud → cjs/cloud}/KeyManager.js +0 -0
- /package/dist/{cloud → cjs/cloud}/TenantCache.d.ts +0 -0
- /package/dist/{cloud → cjs/cloud}/TenantCache.js +0 -0
- /package/dist/{cloud → cjs/cloud}/index.d.ts +0 -0
- /package/dist/{cloud → cjs/cloud}/index.js +0 -0
- /package/dist/{cloud → cjs/cloud}/server.d.ts +0 -0
- /package/dist/{cloud → cjs/cloud}/server.js +0 -0
- /package/dist/{cloud → cjs/cloud}/types.d.ts +0 -0
- /package/dist/{cloud → cjs/cloud}/types.js +0 -0
- /package/dist/{config → cjs/config}/index.d.ts +0 -0
- /package/dist/{config → cjs/config}/index.js +0 -0
- /package/dist/{consensus → cjs/consensus}/ConsensusEngine.d.ts +0 -0
- /package/dist/{consensus → cjs/consensus}/ConsensusEngine.js +0 -0
- /package/dist/{consensus → cjs/consensus}/ModelPool.d.ts +0 -0
- /package/dist/{consensus → cjs/consensus}/ModelPool.js +0 -0
- /package/dist/{consensus → cjs/consensus}/index.d.ts +0 -0
- /package/dist/{consensus → cjs/consensus}/index.js +0 -0
- /package/dist/{core → cjs/core}/AgentRegistry.d.ts +0 -0
- /package/dist/{core → cjs/core}/AgentRegistry.js +0 -0
- /package/dist/{core → cjs/core}/DashboardBroadcaster.d.ts +0 -0
- /package/dist/{core → cjs/core}/DashboardBroadcaster.js +0 -0
- /package/dist/{core → cjs/core}/SubconsciousEngine.d.ts +0 -0
- /package/dist/{core → cjs/core}/WebSocketServer.d.ts +0 -0
- /package/dist/{core → cjs/core}/index.d.ts +0 -0
- /package/dist/{core → cjs/core}/index.js +0 -0
- /package/dist/{core → cjs/core}/router.d.ts +0 -0
- /package/dist/{core → cjs/core}/router.js +0 -0
- /package/dist/{embed.d.ts → cjs/embed.d.ts} +0 -0
- /package/dist/{embed.js → cjs/embed.js} +0 -0
- /package/dist/{index.d.ts → cjs/index.d.ts} +0 -0
- /package/dist/{index.js → cjs/index.js} +0 -0
- /package/dist/{protocol → cjs/protocol}/flows.d.ts +0 -0
- /package/dist/{protocol → cjs/protocol}/flows.js +0 -0
- /package/dist/{protocol → cjs/protocol}/iap.d.ts +0 -0
- /package/dist/{protocol → cjs/protocol}/iap.js +0 -0
- /package/dist/{protocol → cjs/protocol}/index.d.ts +0 -0
- /package/dist/{protocol → cjs/protocol}/index.js +0 -0
- /package/dist/{protocol → cjs/protocol}/types.d.ts +0 -0
- /package/dist/{protocol → cjs/protocol}/types.js +0 -0
- /package/dist/{protocol → cjs/protocol}/utils.d.ts +0 -0
- /package/dist/{protocol → cjs/protocol}/utils.js +0 -0
- /package/dist/{protocol → cjs/protocol}/validators.d.ts +0 -0
- /package/dist/{protocol → cjs/protocol}/validators.js +0 -0
- /package/dist/{security → cjs/security}/AuthManager.d.ts +0 -0
- /package/dist/{security → cjs/security}/AuthManager.js +0 -0
- /package/dist/{security → cjs/security}/MessageSanitizer.d.ts +0 -0
- /package/dist/{security → cjs/security}/RateLimiter.d.ts +0 -0
- /package/dist/{security → cjs/security}/RateLimiter.js +0 -0
- /package/dist/{security → cjs/security}/index.d.ts +0 -0
- /package/dist/{security → cjs/security}/index.js +0 -0
- /package/dist/{speculative → cjs/speculative}/PredictionEngine.d.ts +0 -0
- /package/dist/{speculative → cjs/speculative}/PredictionEngine.js +0 -0
- /package/dist/{speculative → cjs/speculative}/SpeculativeCache.d.ts +0 -0
- /package/dist/{speculative → cjs/speculative}/SpeculativeCache.js +0 -0
- /package/dist/{speculative → cjs/speculative}/SpeculativeEngine.d.ts +0 -0
- /package/dist/{speculative → cjs/speculative}/SpeculativeEngine.js +0 -0
- /package/dist/{speculative → cjs/speculative}/WorkerPool.d.ts +0 -0
- /package/dist/{speculative → cjs/speculative}/WorkerPool.js +0 -0
- /package/dist/{speculative → cjs/speculative}/index.d.ts +0 -0
- /package/dist/{speculative → cjs/speculative}/index.js +0 -0
- /package/dist/{subconscious → cjs/subconscious}/EmbeddingService.d.ts +0 -0
- /package/dist/{subconscious → cjs/subconscious}/EmbeddingService.js +0 -0
- /package/dist/{subconscious → cjs/subconscious}/SemanticCache.d.ts +0 -0
- /package/dist/{subconscious → cjs/subconscious}/SemanticCache.js +0 -0
- /package/dist/{subconscious → cjs/subconscious}/SubconsciousEngine.d.ts +0 -0
- /package/dist/{subconscious → cjs/subconscious}/SubconsciousEngine.js +0 -0
- /package/dist/{subconscious → cjs/subconscious}/VectorStore.d.ts +0 -0
- /package/dist/{subconscious → cjs/subconscious}/cache.d.ts +0 -0
- /package/dist/{subconscious → cjs/subconscious}/cache.js +0 -0
- /package/dist/{subconscious → cjs/subconscious}/embeddings.d.ts +0 -0
- /package/dist/{subconscious → cjs/subconscious}/embeddings.js +0 -0
- /package/dist/{subconscious → cjs/subconscious}/index.d.ts +0 -0
- /package/dist/{subconscious → cjs/subconscious}/index.js +0 -0
- /package/dist/{types → cjs/types}/index.d.ts +0 -0
- /package/dist/{types → cjs/types}/index.js +0 -0
- /package/dist/{utils → cjs/utils}/logger.d.ts +0 -0
- /package/dist/{utils → cjs/utils}/logger.js +0 -0
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
import { VectorStore } from './VectorStore';
|
|
2
|
+
import { EmbeddingService } from './EmbeddingService';
|
|
3
|
+
import { SemanticCache } from './SemanticCache';
|
|
4
|
+
import { EventEmitter } from 'events';
|
|
5
|
+
/**
|
|
6
|
+
* SubconsciousEngine is the main orchestrator for semantic caching.
|
|
7
|
+
* It intercepts tasks, checks for cached results, and manages background vectorization.
|
|
8
|
+
*/
|
|
9
|
+
export class SubconsciousEngine extends EventEmitter {
|
|
10
|
+
constructor(config = {}) {
|
|
11
|
+
super();
|
|
12
|
+
this.isInitialized = false;
|
|
13
|
+
this.backgroundQueue = [];
|
|
14
|
+
this.isProcessingQueue = false;
|
|
15
|
+
this.cacheLatencies = [];
|
|
16
|
+
this.missLatencies = [];
|
|
17
|
+
// Set default configuration
|
|
18
|
+
this.config = {
|
|
19
|
+
chromaUrl: config.chromaUrl || 'http://localhost:8000',
|
|
20
|
+
ollamaUrl: config.ollamaUrl || 'http://localhost:11434',
|
|
21
|
+
model: config.model || 'llama3',
|
|
22
|
+
collectionName: config.collectionName || 'subconscious_cache',
|
|
23
|
+
threshold: config.threshold || 0.95,
|
|
24
|
+
enableBackgroundVectorization: config.enableBackgroundVectorization ?? true,
|
|
25
|
+
};
|
|
26
|
+
// Initialize components
|
|
27
|
+
this.vectorStore = new VectorStore(this.config.collectionName, this.config.chromaUrl);
|
|
28
|
+
this.embeddingService = new EmbeddingService(this.config.ollamaUrl, this.config.model);
|
|
29
|
+
this.semanticCache = new SemanticCache(this.vectorStore, this.embeddingService, this.config.threshold);
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Initialize the Subconscious Engine.
|
|
33
|
+
* Must be called before using the engine.
|
|
34
|
+
*/
|
|
35
|
+
async initialize() {
|
|
36
|
+
if (this.isInitialized) {
|
|
37
|
+
console.log('[SubconsciousEngine] Already initialized');
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
console.log('[SubconsciousEngine] Initializing...');
|
|
41
|
+
try {
|
|
42
|
+
// Initialize vector store
|
|
43
|
+
await this.vectorStore.initialize();
|
|
44
|
+
// Health check for Ollama
|
|
45
|
+
const health = await this.embeddingService.healthCheck();
|
|
46
|
+
if (!health.available) {
|
|
47
|
+
console.warn(`[SubconsciousEngine] Warning: Ollama not available - ${health.error}`);
|
|
48
|
+
console.warn('[SubconsciousEngine] Engine will operate in degraded mode');
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
console.log(`[SubconsciousEngine] Ollama connected (model: ${health.model})`);
|
|
52
|
+
}
|
|
53
|
+
this.isInitialized = true;
|
|
54
|
+
this.emit('initialized');
|
|
55
|
+
console.log('[SubconsciousEngine] ✓ Initialization complete');
|
|
56
|
+
console.log(`[SubconsciousEngine] Threshold: ${this.config.threshold}`);
|
|
57
|
+
console.log(`[SubconsciousEngine] Background vectorization: ${this.config.enableBackgroundVectorization ? 'enabled' : 'disabled'}`);
|
|
58
|
+
}
|
|
59
|
+
catch (error) {
|
|
60
|
+
console.error('[SubconsciousEngine] Initialization failed:', error);
|
|
61
|
+
throw error;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Intercept a task and check for cached results.
|
|
66
|
+
* This is the main entry point for the semantic short-circuit.
|
|
67
|
+
*
|
|
68
|
+
* @param task - Task to intercept
|
|
69
|
+
* @returns CacheResult indicating if a cached result was found
|
|
70
|
+
*/
|
|
71
|
+
async interceptTask(task) {
|
|
72
|
+
if (!this.isInitialized) {
|
|
73
|
+
throw new Error('SubconsciousEngine not initialized. Call initialize() first.');
|
|
74
|
+
}
|
|
75
|
+
console.log(`[SubconsciousEngine] Intercepting task: ${task.id}`);
|
|
76
|
+
const cacheResult = await this.semanticCache.check(task.description);
|
|
77
|
+
// Track latencies for metrics
|
|
78
|
+
if (cacheResult.hit) {
|
|
79
|
+
this.cacheLatencies.push(cacheResult.latencyMs);
|
|
80
|
+
this.emit('cacheHit', {
|
|
81
|
+
taskId: task.id,
|
|
82
|
+
similarity: cacheResult.similarity,
|
|
83
|
+
latencyMs: cacheResult.latencyMs,
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
else {
|
|
87
|
+
this.missLatencies.push(cacheResult.latencyMs);
|
|
88
|
+
this.emit('cacheMiss', {
|
|
89
|
+
taskId: task.id,
|
|
90
|
+
latencyMs: cacheResult.latencyMs,
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
return cacheResult;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Store a task result for future caching.
|
|
97
|
+
* If background vectorization is enabled, queues the task for async processing.
|
|
98
|
+
*
|
|
99
|
+
* @param task - Original task
|
|
100
|
+
* @param result - Result to cache
|
|
101
|
+
*/
|
|
102
|
+
async storeResult(task, result) {
|
|
103
|
+
if (!this.isInitialized) {
|
|
104
|
+
throw new Error('SubconsciousEngine not initialized. Call initialize() first.');
|
|
105
|
+
}
|
|
106
|
+
if (this.config.enableBackgroundVectorization) {
|
|
107
|
+
// Queue for background processing
|
|
108
|
+
this.backgroundQueue.push({
|
|
109
|
+
taskId: task.id,
|
|
110
|
+
description: task.description,
|
|
111
|
+
result,
|
|
112
|
+
metadata: task.metadata || {},
|
|
113
|
+
});
|
|
114
|
+
console.log(`[SubconsciousEngine] Queued task ${task.id} for background vectorization ` +
|
|
115
|
+
`(queue size: ${this.backgroundQueue.length})`);
|
|
116
|
+
// Start processing queue if not already running
|
|
117
|
+
if (!this.isProcessingQueue) {
|
|
118
|
+
this.processBackgroundQueue();
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
else {
|
|
122
|
+
// Store immediately
|
|
123
|
+
await this.semanticCache.store(task.id, task.description, result, task.metadata || {});
|
|
124
|
+
}
|
|
125
|
+
this.emit('resultStored', { taskId: task.id });
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Process the background vectorization queue.
|
|
129
|
+
* Runs asynchronously without blocking the main thread.
|
|
130
|
+
*/
|
|
131
|
+
async processBackgroundQueue() {
|
|
132
|
+
if (this.isProcessingQueue || this.backgroundQueue.length === 0) {
|
|
133
|
+
return;
|
|
134
|
+
}
|
|
135
|
+
this.isProcessingQueue = true;
|
|
136
|
+
console.log('[SubconsciousEngine] Starting background vectorization...');
|
|
137
|
+
while (this.backgroundQueue.length > 0) {
|
|
138
|
+
const item = this.backgroundQueue.shift();
|
|
139
|
+
if (!item)
|
|
140
|
+
continue;
|
|
141
|
+
try {
|
|
142
|
+
await this.semanticCache.store(item.taskId, item.description, item.result, item.metadata);
|
|
143
|
+
this.emit('backgroundVectorized', { taskId: item.taskId });
|
|
144
|
+
}
|
|
145
|
+
catch (error) {
|
|
146
|
+
console.error(`[SubconsciousEngine] Failed to vectorize task ${item.taskId}:`, error);
|
|
147
|
+
this.emit('vectorizationError', { taskId: item.taskId, error });
|
|
148
|
+
}
|
|
149
|
+
// Small delay to avoid overwhelming the system
|
|
150
|
+
await this.sleep(10);
|
|
151
|
+
}
|
|
152
|
+
this.isProcessingQueue = false;
|
|
153
|
+
console.log('[SubconsciousEngine] Background vectorization complete');
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Get comprehensive engine metrics.
|
|
157
|
+
*/
|
|
158
|
+
async getMetrics() {
|
|
159
|
+
const cacheMetrics = this.semanticCache.getMetrics();
|
|
160
|
+
const totalCachedTasks = await this.semanticCache.getCacheSize();
|
|
161
|
+
const avgCacheLatency = this.cacheLatencies.length > 0
|
|
162
|
+
? this.cacheLatencies.reduce((a, b) => a + b, 0) / this.cacheLatencies.length
|
|
163
|
+
: 0;
|
|
164
|
+
const avgMissLatency = this.missLatencies.length > 0
|
|
165
|
+
? this.missLatencies.reduce((a, b) => a + b, 0) / this.missLatencies.length
|
|
166
|
+
: 0;
|
|
167
|
+
return {
|
|
168
|
+
totalTasks: cacheMetrics.total,
|
|
169
|
+
cacheHits: cacheMetrics.hits,
|
|
170
|
+
cacheMisses: cacheMetrics.misses,
|
|
171
|
+
hitRate: cacheMetrics.hitRate,
|
|
172
|
+
avgCacheLatencyMs: Math.round(avgCacheLatency),
|
|
173
|
+
avgMissLatencyMs: Math.round(avgMissLatency),
|
|
174
|
+
totalCachedTasks,
|
|
175
|
+
backgroundQueueSize: this.backgroundQueue.length,
|
|
176
|
+
};
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* Reset all metrics.
|
|
180
|
+
*/
|
|
181
|
+
resetMetrics() {
|
|
182
|
+
this.semanticCache.resetMetrics();
|
|
183
|
+
this.cacheLatencies = [];
|
|
184
|
+
this.missLatencies = [];
|
|
185
|
+
console.log('[SubconsciousEngine] Metrics reset');
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* Update the similarity threshold.
|
|
189
|
+
*/
|
|
190
|
+
setThreshold(threshold) {
|
|
191
|
+
this.semanticCache.setThreshold(threshold);
|
|
192
|
+
this.config.threshold = threshold;
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* Get the current configuration.
|
|
196
|
+
*/
|
|
197
|
+
getConfig() {
|
|
198
|
+
return { ...this.config };
|
|
199
|
+
}
|
|
200
|
+
/**
|
|
201
|
+
* Clear all cached tasks and reset metrics.
|
|
202
|
+
*/
|
|
203
|
+
async clear() {
|
|
204
|
+
await this.semanticCache.clear();
|
|
205
|
+
this.backgroundQueue = [];
|
|
206
|
+
this.resetMetrics();
|
|
207
|
+
console.log('[SubconsciousEngine] Engine cleared');
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* Shutdown the engine gracefully.
|
|
211
|
+
* Waits for background queue to finish processing.
|
|
212
|
+
*/
|
|
213
|
+
async shutdown() {
|
|
214
|
+
console.log('[SubconsciousEngine] Shutting down...');
|
|
215
|
+
// Wait for background queue to finish
|
|
216
|
+
while (this.isProcessingQueue || this.backgroundQueue.length > 0) {
|
|
217
|
+
console.log(`[SubconsciousEngine] Waiting for background queue (${this.backgroundQueue.length} items)...`);
|
|
218
|
+
await this.sleep(100);
|
|
219
|
+
}
|
|
220
|
+
this.isInitialized = false;
|
|
221
|
+
this.emit('shutdown');
|
|
222
|
+
console.log('[SubconsciousEngine] Shutdown complete');
|
|
223
|
+
}
|
|
224
|
+
/**
|
|
225
|
+
* Check if the engine is ready to use.
|
|
226
|
+
*/
|
|
227
|
+
isReady() {
|
|
228
|
+
return this.isInitialized && this.vectorStore.isReady();
|
|
229
|
+
}
|
|
230
|
+
/**
|
|
231
|
+
* Sleep for specified milliseconds.
|
|
232
|
+
*/
|
|
233
|
+
sleep(ms) {
|
|
234
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
//# sourceMappingURL=SubconsciousEngine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SubconsciousEngine.js","sourceRoot":"","sources":["../../../src/subconscious/SubconsciousEngine.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* VectorStore manages the ChromaDB client and collection for semantic caching.
|
|
3
|
+
* It provides methods to insert task vectors and search for similar tasks.
|
|
4
|
+
*/
|
|
5
|
+
export declare class VectorStore {
|
|
6
|
+
private client;
|
|
7
|
+
private collection;
|
|
8
|
+
private collectionName;
|
|
9
|
+
private isInitialized;
|
|
10
|
+
constructor(collectionName?: string, chromaUrl?: string);
|
|
11
|
+
/**
|
|
12
|
+
* Initialize the ChromaDB collection.
|
|
13
|
+
* Creates a new collection if it doesn't exist.
|
|
14
|
+
*/
|
|
15
|
+
initialize(): Promise<void>;
|
|
16
|
+
/**
|
|
17
|
+
* Insert a task vector with its result into the collection.
|
|
18
|
+
*
|
|
19
|
+
* @param taskId - Unique identifier for the task
|
|
20
|
+
* @param embedding - Vector embedding of the task
|
|
21
|
+
* @param taskDescription - Original task description
|
|
22
|
+
* @param result - Cached result to return on cache hit
|
|
23
|
+
* @param metadata - Additional metadata (agent, timestamp, etc.)
|
|
24
|
+
*/
|
|
25
|
+
insertVector(taskId: string, embedding: number[], taskDescription: string, result: any, metadata?: Record<string, any>): Promise<void>;
|
|
26
|
+
/**
|
|
27
|
+
* Search for similar tasks using semantic similarity.
|
|
28
|
+
*
|
|
29
|
+
* @param queryEmbedding - Vector embedding of the query task
|
|
30
|
+
* @param threshold - Minimum similarity score (0-1, default 0.95)
|
|
31
|
+
* @param topK - Number of results to return (default 1)
|
|
32
|
+
* @returns Array of similar tasks with their results and similarity scores
|
|
33
|
+
*/
|
|
34
|
+
searchSimilar(queryEmbedding: number[], threshold?: number, topK?: number): Promise<Array<{
|
|
35
|
+
id: string;
|
|
36
|
+
similarity: number;
|
|
37
|
+
result: any;
|
|
38
|
+
taskDescription: string;
|
|
39
|
+
metadata: Record<string, any>;
|
|
40
|
+
}>>;
|
|
41
|
+
/**
|
|
42
|
+
* Get the total count of cached tasks.
|
|
43
|
+
*/
|
|
44
|
+
getCount(): Promise<number>;
|
|
45
|
+
/**
|
|
46
|
+
* Clear all cached tasks from the collection.
|
|
47
|
+
*/
|
|
48
|
+
clear(): Promise<void>;
|
|
49
|
+
/**
|
|
50
|
+
* Check if the VectorStore is ready to use.
|
|
51
|
+
*/
|
|
52
|
+
isReady(): boolean;
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=VectorStore.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VectorStore.d.ts","sourceRoot":"","sources":["../../../src/subconscious/VectorStore.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,UAAU,CAA2B;IAC7C,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,aAAa,CAAkB;gBAGrC,cAAc,GAAE,MAA6B,EAC7C,SAAS,GAAE,MAAgC;IAM7C;;;OAGG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAuBjC;;;;;;;;OAQG;IACG,YAAY,CAChB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EAAE,EACnB,eAAe,EAAE,MAAM,EACvB,MAAM,EAAE,GAAG,EACX,QAAQ,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,GACjC,OAAO,CAAC,IAAI,CAAC;IAwBhB;;;;;;;OAOG;IACG,aAAa,CACjB,cAAc,EAAE,MAAM,EAAE,EACxB,SAAS,GAAE,MAAa,EACxB,IAAI,GAAE,MAAU,GACf,OAAO,CAAC,KAAK,CAAC;QACf,EAAE,EAAE,MAAM,CAAC;QACX,UAAU,EAAE,MAAM,CAAC;QACnB,MAAM,EAAE,GAAG,CAAC;QACZ,eAAe,EAAE,MAAM,CAAC;QACxB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;KAC/B,CAAC,CAAC;IAyDH;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC;IAcjC;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAiB5B;;OAEG;IACH,OAAO,IAAI,OAAO;CAGnB"}
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
import { ChromaClient, IncludeEnum } from 'chromadb';
|
|
2
|
+
/**
|
|
3
|
+
* VectorStore manages the ChromaDB client and collection for semantic caching.
|
|
4
|
+
* It provides methods to insert task vectors and search for similar tasks.
|
|
5
|
+
*/
|
|
6
|
+
export class VectorStore {
|
|
7
|
+
constructor(collectionName = 'subconscious_cache', chromaUrl = 'http://localhost:8000') {
|
|
8
|
+
this.collection = null;
|
|
9
|
+
this.isInitialized = false;
|
|
10
|
+
this.collectionName = collectionName;
|
|
11
|
+
this.client = new ChromaClient({ path: chromaUrl });
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Initialize the ChromaDB collection.
|
|
15
|
+
* Creates a new collection if it doesn't exist.
|
|
16
|
+
*/
|
|
17
|
+
async initialize() {
|
|
18
|
+
if (this.isInitialized) {
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
try {
|
|
22
|
+
// Try to get existing collection
|
|
23
|
+
this.collection = await this.client.getOrCreateCollection({
|
|
24
|
+
name: this.collectionName,
|
|
25
|
+
metadata: {
|
|
26
|
+
description: 'Semantic cache for agent task results',
|
|
27
|
+
'hnsw:space': 'cosine', // Use cosine similarity
|
|
28
|
+
},
|
|
29
|
+
});
|
|
30
|
+
this.isInitialized = true;
|
|
31
|
+
console.log(`[VectorStore] Initialized collection: ${this.collectionName}`);
|
|
32
|
+
}
|
|
33
|
+
catch (error) {
|
|
34
|
+
console.error('[VectorStore] Failed to initialize collection:', error);
|
|
35
|
+
throw new Error(`VectorStore initialization failed: ${error}`);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Insert a task vector with its result into the collection.
|
|
40
|
+
*
|
|
41
|
+
* @param taskId - Unique identifier for the task
|
|
42
|
+
* @param embedding - Vector embedding of the task
|
|
43
|
+
* @param taskDescription - Original task description
|
|
44
|
+
* @param result - Cached result to return on cache hit
|
|
45
|
+
* @param metadata - Additional metadata (agent, timestamp, etc.)
|
|
46
|
+
*/
|
|
47
|
+
async insertVector(taskId, embedding, taskDescription, result, metadata = {}) {
|
|
48
|
+
if (!this.collection) {
|
|
49
|
+
throw new Error('VectorStore not initialized. Call initialize() first.');
|
|
50
|
+
}
|
|
51
|
+
try {
|
|
52
|
+
await this.collection.add({
|
|
53
|
+
ids: [taskId],
|
|
54
|
+
embeddings: [embedding],
|
|
55
|
+
documents: [taskDescription],
|
|
56
|
+
metadatas: [{
|
|
57
|
+
result: JSON.stringify(result),
|
|
58
|
+
timestamp: new Date().toISOString(),
|
|
59
|
+
...metadata,
|
|
60
|
+
}],
|
|
61
|
+
});
|
|
62
|
+
console.log(`[VectorStore] Inserted vector for task: ${taskId}`);
|
|
63
|
+
}
|
|
64
|
+
catch (error) {
|
|
65
|
+
console.error('[VectorStore] Failed to insert vector:', error);
|
|
66
|
+
throw error;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Search for similar tasks using semantic similarity.
|
|
71
|
+
*
|
|
72
|
+
* @param queryEmbedding - Vector embedding of the query task
|
|
73
|
+
* @param threshold - Minimum similarity score (0-1, default 0.95)
|
|
74
|
+
* @param topK - Number of results to return (default 1)
|
|
75
|
+
* @returns Array of similar tasks with their results and similarity scores
|
|
76
|
+
*/
|
|
77
|
+
async searchSimilar(queryEmbedding, threshold = 0.95, topK = 1) {
|
|
78
|
+
if (!this.collection) {
|
|
79
|
+
throw new Error('VectorStore not initialized. Call initialize() first.');
|
|
80
|
+
}
|
|
81
|
+
try {
|
|
82
|
+
const results = await this.collection.query({
|
|
83
|
+
queryEmbeddings: [queryEmbedding],
|
|
84
|
+
nResults: topK,
|
|
85
|
+
include: [
|
|
86
|
+
IncludeEnum.documents,
|
|
87
|
+
IncludeEnum.metadatas,
|
|
88
|
+
IncludeEnum.distances,
|
|
89
|
+
],
|
|
90
|
+
});
|
|
91
|
+
const matches = [];
|
|
92
|
+
if (results.ids && results.ids[0]) {
|
|
93
|
+
for (let i = 0; i < results.ids[0].length; i++) {
|
|
94
|
+
// ChromaDB returns distances, convert to similarity (1 - distance for cosine)
|
|
95
|
+
const distance = results.distances?.[0]?.[i] ?? 1;
|
|
96
|
+
const similarity = 1 - distance;
|
|
97
|
+
// Only include results above threshold
|
|
98
|
+
if (similarity >= threshold) {
|
|
99
|
+
const metadata = results.metadatas?.[0]?.[i] || {};
|
|
100
|
+
const resultStr = metadata.result || '{}';
|
|
101
|
+
matches.push({
|
|
102
|
+
id: results.ids[0][i],
|
|
103
|
+
similarity,
|
|
104
|
+
result: JSON.parse(resultStr),
|
|
105
|
+
taskDescription: results.documents?.[0]?.[i] || '',
|
|
106
|
+
metadata: {
|
|
107
|
+
...metadata,
|
|
108
|
+
result: undefined, // Remove result from metadata to avoid duplication
|
|
109
|
+
},
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
console.log(`[VectorStore] Found ${matches.length} matches above threshold ${threshold}`);
|
|
115
|
+
return matches;
|
|
116
|
+
}
|
|
117
|
+
catch (error) {
|
|
118
|
+
console.error('[VectorStore] Search failed:', error);
|
|
119
|
+
throw error;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Get the total count of cached tasks.
|
|
124
|
+
*/
|
|
125
|
+
async getCount() {
|
|
126
|
+
if (!this.collection) {
|
|
127
|
+
throw new Error('VectorStore not initialized. Call initialize() first.');
|
|
128
|
+
}
|
|
129
|
+
try {
|
|
130
|
+
const count = await this.collection.count();
|
|
131
|
+
return count;
|
|
132
|
+
}
|
|
133
|
+
catch (error) {
|
|
134
|
+
console.error('[VectorStore] Failed to get count:', error);
|
|
135
|
+
return 0;
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Clear all cached tasks from the collection.
|
|
140
|
+
*/
|
|
141
|
+
async clear() {
|
|
142
|
+
if (!this.collection) {
|
|
143
|
+
throw new Error('VectorStore not initialized. Call initialize() first.');
|
|
144
|
+
}
|
|
145
|
+
try {
|
|
146
|
+
await this.client.deleteCollection({ name: this.collectionName });
|
|
147
|
+
this.collection = null;
|
|
148
|
+
this.isInitialized = false;
|
|
149
|
+
await this.initialize();
|
|
150
|
+
console.log('[VectorStore] Collection cleared and reinitialized');
|
|
151
|
+
}
|
|
152
|
+
catch (error) {
|
|
153
|
+
console.error('[VectorStore] Failed to clear collection:', error);
|
|
154
|
+
throw error;
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Check if the VectorStore is ready to use.
|
|
159
|
+
*/
|
|
160
|
+
isReady() {
|
|
161
|
+
return this.isInitialized && this.collection !== null;
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
//# sourceMappingURL=VectorStore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VectorStore.js","sourceRoot":"","sources":["../../../src/subconscious/VectorStore.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Semantic cache using ChromaDB for vector storage
|
|
3
|
+
*/
|
|
4
|
+
import { TaskRequest, TaskResponse, SemanticCacheEntry } from '../types/index.js';
|
|
5
|
+
import { EmbeddingService } from './embeddings.js';
|
|
6
|
+
export declare class SemanticCache {
|
|
7
|
+
private client;
|
|
8
|
+
private collection;
|
|
9
|
+
private collectionName;
|
|
10
|
+
private embeddingService;
|
|
11
|
+
private similarityThreshold;
|
|
12
|
+
constructor(host: string, port: number, collectionName: string, embeddingService: EmbeddingService, similarityThreshold?: number);
|
|
13
|
+
/**
|
|
14
|
+
* Initialize the ChromaDB collection
|
|
15
|
+
*/
|
|
16
|
+
initialize(): Promise<void>;
|
|
17
|
+
/**
|
|
18
|
+
* Search for similar cached tasks
|
|
19
|
+
*/
|
|
20
|
+
search(taskRequest: TaskRequest): Promise<SemanticCacheEntry | null>;
|
|
21
|
+
/**
|
|
22
|
+
* Store a new task-response pair in the cache
|
|
23
|
+
*/
|
|
24
|
+
store(taskRequest: TaskRequest, taskResponse: TaskResponse): Promise<void>;
|
|
25
|
+
/**
|
|
26
|
+
* Update access count for a cache entry
|
|
27
|
+
*/
|
|
28
|
+
private updateAccessCount;
|
|
29
|
+
/**
|
|
30
|
+
* Clear old cache entries (TTL cleanup)
|
|
31
|
+
*/
|
|
32
|
+
cleanup(ttl: number): Promise<void>;
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=cache.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../../src/subconscious/cache.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAClF,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEnD,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,UAAU,CAA2B;IAC7C,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,gBAAgB,CAAmB;IAC3C,OAAO,CAAC,mBAAmB,CAAS;gBAGlC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,cAAc,EAAE,MAAM,EACtB,gBAAgB,EAAE,gBAAgB,EAClC,mBAAmB,GAAE,MAAa;IAQpC;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAajC;;OAEG;IACG,MAAM,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC;IAsD1E;;OAEG;IACG,KAAK,CAAC,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IA6BhF;;OAEG;YACW,iBAAiB;IAmB/B;;OAEG;IACG,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAwB1C"}
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Semantic cache using ChromaDB for vector storage
|
|
3
|
+
*/
|
|
4
|
+
import { ChromaClient } from 'chromadb';
|
|
5
|
+
import { EmbeddingService } from './embeddings.js';
|
|
6
|
+
export class SemanticCache {
|
|
7
|
+
constructor(host, port, collectionName, embeddingService, similarityThreshold = 0.95) {
|
|
8
|
+
this.collection = null;
|
|
9
|
+
this.client = new ChromaClient({ path: `http://${host}:${port}` });
|
|
10
|
+
this.collectionName = collectionName;
|
|
11
|
+
this.embeddingService = embeddingService;
|
|
12
|
+
this.similarityThreshold = similarityThreshold;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Initialize the ChromaDB collection
|
|
16
|
+
*/
|
|
17
|
+
async initialize() {
|
|
18
|
+
try {
|
|
19
|
+
this.collection = await this.client.getOrCreateCollection({
|
|
20
|
+
name: this.collectionName,
|
|
21
|
+
metadata: { description: 'Subconscious Router semantic cache' },
|
|
22
|
+
});
|
|
23
|
+
console.log(`✓ Semantic cache initialized: ${this.collectionName}`);
|
|
24
|
+
}
|
|
25
|
+
catch (error) {
|
|
26
|
+
console.error('Failed to initialize semantic cache:', error);
|
|
27
|
+
throw error;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Search for similar cached tasks
|
|
32
|
+
*/
|
|
33
|
+
async search(taskRequest) {
|
|
34
|
+
if (!this.collection) {
|
|
35
|
+
throw new Error('Cache not initialized');
|
|
36
|
+
}
|
|
37
|
+
try {
|
|
38
|
+
// Generate embedding for the incoming task
|
|
39
|
+
const taskText = EmbeddingService.serializeTask(taskRequest);
|
|
40
|
+
const queryEmbedding = await this.embeddingService.generateEmbedding(taskText);
|
|
41
|
+
// Query ChromaDB for similar entries
|
|
42
|
+
const results = await this.collection.query({
|
|
43
|
+
queryEmbeddings: [queryEmbedding],
|
|
44
|
+
nResults: 1,
|
|
45
|
+
});
|
|
46
|
+
// Check if we have results and if similarity exceeds threshold
|
|
47
|
+
if (results.ids[0].length === 0) {
|
|
48
|
+
return null;
|
|
49
|
+
}
|
|
50
|
+
const similarity = 1 - (results.distances?.[0]?.[0] ?? 1);
|
|
51
|
+
if (similarity < this.similarityThreshold) {
|
|
52
|
+
return null;
|
|
53
|
+
}
|
|
54
|
+
// Retrieve the cached entry
|
|
55
|
+
const metadata = results.metadatas[0][0];
|
|
56
|
+
const document = results.documents[0][0];
|
|
57
|
+
if (!metadata || !document) {
|
|
58
|
+
return null;
|
|
59
|
+
}
|
|
60
|
+
const cacheEntry = {
|
|
61
|
+
id: results.ids[0][0],
|
|
62
|
+
taskRequest: JSON.parse(metadata.taskRequest),
|
|
63
|
+
taskResponse: JSON.parse(metadata.taskResponse),
|
|
64
|
+
embedding: queryEmbedding,
|
|
65
|
+
timestamp: metadata.timestamp,
|
|
66
|
+
accessCount: metadata.accessCount + 1,
|
|
67
|
+
};
|
|
68
|
+
// Update access count
|
|
69
|
+
await this.updateAccessCount(cacheEntry.id, cacheEntry.accessCount);
|
|
70
|
+
return cacheEntry;
|
|
71
|
+
}
|
|
72
|
+
catch (error) {
|
|
73
|
+
console.error('Cache search failed:', error);
|
|
74
|
+
return null;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Store a new task-response pair in the cache
|
|
79
|
+
*/
|
|
80
|
+
async store(taskRequest, taskResponse) {
|
|
81
|
+
if (!this.collection) {
|
|
82
|
+
throw new Error('Cache not initialized');
|
|
83
|
+
}
|
|
84
|
+
try {
|
|
85
|
+
const taskText = EmbeddingService.serializeTask(taskRequest);
|
|
86
|
+
const embedding = await this.embeddingService.generateEmbedding(taskText);
|
|
87
|
+
const id = `cache_${taskRequest.taskId}_${Date.now()}`;
|
|
88
|
+
await this.collection.add({
|
|
89
|
+
ids: [id],
|
|
90
|
+
embeddings: [embedding],
|
|
91
|
+
documents: [taskText],
|
|
92
|
+
metadatas: [{
|
|
93
|
+
taskRequest: JSON.stringify(taskRequest),
|
|
94
|
+
taskResponse: JSON.stringify(taskResponse),
|
|
95
|
+
timestamp: Date.now(),
|
|
96
|
+
accessCount: 0,
|
|
97
|
+
}],
|
|
98
|
+
});
|
|
99
|
+
console.log(`✓ Cached task ${taskRequest.taskId} with similarity indexing`);
|
|
100
|
+
}
|
|
101
|
+
catch (error) {
|
|
102
|
+
console.error('Failed to store in cache:', error);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Update access count for a cache entry
|
|
107
|
+
*/
|
|
108
|
+
async updateAccessCount(id, newCount) {
|
|
109
|
+
if (!this.collection)
|
|
110
|
+
return;
|
|
111
|
+
try {
|
|
112
|
+
const result = await this.collection.get({ ids: [id] });
|
|
113
|
+
if (result.metadatas[0]) {
|
|
114
|
+
const metadata = result.metadatas[0];
|
|
115
|
+
metadata.accessCount = newCount;
|
|
116
|
+
await this.collection.update({
|
|
117
|
+
ids: [id],
|
|
118
|
+
metadatas: [metadata],
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
catch (error) {
|
|
123
|
+
console.error('Failed to update access count:', error);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Clear old cache entries (TTL cleanup)
|
|
128
|
+
*/
|
|
129
|
+
async cleanup(ttl) {
|
|
130
|
+
if (!this.collection)
|
|
131
|
+
return;
|
|
132
|
+
try {
|
|
133
|
+
const now = Date.now();
|
|
134
|
+
const cutoff = now - ttl * 1000;
|
|
135
|
+
const allEntries = await this.collection.get();
|
|
136
|
+
const idsToDelete = [];
|
|
137
|
+
allEntries.metadatas.forEach((metadata, index) => {
|
|
138
|
+
if (metadata && metadata.timestamp < cutoff) {
|
|
139
|
+
idsToDelete.push(allEntries.ids[index]);
|
|
140
|
+
}
|
|
141
|
+
});
|
|
142
|
+
if (idsToDelete.length > 0) {
|
|
143
|
+
await this.collection.delete({ ids: idsToDelete });
|
|
144
|
+
console.log(`✓ Cleaned up ${idsToDelete.length} expired cache entries`);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
catch (error) {
|
|
148
|
+
console.error('Cache cleanup failed:', error);
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
//# sourceMappingURL=cache.js.map
|