@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,189 @@
|
|
|
1
|
+
import axios from 'axios';
|
|
2
|
+
/**
|
|
3
|
+
* EmbeddingService handles communication with Ollama API for generating embeddings.
|
|
4
|
+
* Includes caching, error handling, and retry logic.
|
|
5
|
+
*/
|
|
6
|
+
export class EmbeddingService {
|
|
7
|
+
constructor(ollamaUrl = 'http://localhost:11434', model = 'llama3', maxRetries = 3, retryDelay = 1000) {
|
|
8
|
+
this.client = axios.create({
|
|
9
|
+
baseURL: ollamaUrl,
|
|
10
|
+
timeout: 30000, // 30 second timeout
|
|
11
|
+
headers: {
|
|
12
|
+
'Content-Type': 'application/json',
|
|
13
|
+
},
|
|
14
|
+
});
|
|
15
|
+
this.model = model;
|
|
16
|
+
this.cache = new Map();
|
|
17
|
+
this.maxRetries = maxRetries;
|
|
18
|
+
this.retryDelay = retryDelay;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Generate an embedding vector for the given text.
|
|
22
|
+
* Uses cache if available, otherwise calls Ollama API.
|
|
23
|
+
*
|
|
24
|
+
* @param text - Text to generate embedding for
|
|
25
|
+
* @param useCache - Whether to use cached embeddings (default true)
|
|
26
|
+
* @returns Embedding vector as array of numbers
|
|
27
|
+
*/
|
|
28
|
+
async generateEmbedding(text, useCache = true) {
|
|
29
|
+
// Normalize text for consistent caching
|
|
30
|
+
const normalizedText = text.trim().toLowerCase();
|
|
31
|
+
const cacheKey = this.getCacheKey(normalizedText);
|
|
32
|
+
// Check cache first
|
|
33
|
+
if (useCache && this.cache.has(cacheKey)) {
|
|
34
|
+
console.log('[EmbeddingService] Cache hit for text');
|
|
35
|
+
return this.cache.get(cacheKey);
|
|
36
|
+
}
|
|
37
|
+
// Generate new embedding with retry logic
|
|
38
|
+
let lastError = null;
|
|
39
|
+
for (let attempt = 1; attempt <= this.maxRetries; attempt++) {
|
|
40
|
+
try {
|
|
41
|
+
const embedding = await this.callOllamaAPI(text);
|
|
42
|
+
// Cache the result
|
|
43
|
+
if (useCache) {
|
|
44
|
+
this.cache.set(cacheKey, embedding);
|
|
45
|
+
}
|
|
46
|
+
console.log(`[EmbeddingService] Generated embedding (dimension: ${embedding.length})`);
|
|
47
|
+
return embedding;
|
|
48
|
+
}
|
|
49
|
+
catch (error) {
|
|
50
|
+
lastError = error;
|
|
51
|
+
console.warn(`[EmbeddingService] Attempt ${attempt}/${this.maxRetries} failed:`, error instanceof Error ? error.message : error);
|
|
52
|
+
// Wait before retrying (exponential backoff)
|
|
53
|
+
if (attempt < this.maxRetries) {
|
|
54
|
+
const delay = this.retryDelay * Math.pow(2, attempt - 1);
|
|
55
|
+
await this.sleep(delay);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
// All retries failed
|
|
60
|
+
throw new Error(`Failed to generate embedding after ${this.maxRetries} attempts: ${lastError?.message}`);
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Generate embeddings for multiple texts in batch.
|
|
64
|
+
*
|
|
65
|
+
* @param texts - Array of texts to generate embeddings for
|
|
66
|
+
* @param useCache - Whether to use cached embeddings (default true)
|
|
67
|
+
* @returns Array of embedding vectors
|
|
68
|
+
*/
|
|
69
|
+
async generateEmbeddings(texts, useCache = true) {
|
|
70
|
+
const embeddings = [];
|
|
71
|
+
for (const text of texts) {
|
|
72
|
+
const embedding = await this.generateEmbedding(text, useCache);
|
|
73
|
+
embeddings.push(embedding);
|
|
74
|
+
}
|
|
75
|
+
return embeddings;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Call Ollama API to generate embedding.
|
|
79
|
+
*
|
|
80
|
+
* @param text - Text to generate embedding for
|
|
81
|
+
* @returns Embedding vector
|
|
82
|
+
*/
|
|
83
|
+
async callOllamaAPI(text) {
|
|
84
|
+
try {
|
|
85
|
+
const response = await this.client.post('/api/embeddings', {
|
|
86
|
+
model: this.model,
|
|
87
|
+
prompt: text,
|
|
88
|
+
});
|
|
89
|
+
if (!response.data || !response.data.embedding) {
|
|
90
|
+
throw new Error('Invalid response from Ollama API: missing embedding');
|
|
91
|
+
}
|
|
92
|
+
return response.data.embedding;
|
|
93
|
+
}
|
|
94
|
+
catch (error) {
|
|
95
|
+
if (axios.isAxiosError(error)) {
|
|
96
|
+
if (error.code === 'ECONNREFUSED') {
|
|
97
|
+
throw new Error('Cannot connect to Ollama. Make sure Ollama is running at ' + this.client.defaults.baseURL);
|
|
98
|
+
}
|
|
99
|
+
if (error.response?.status === 404) {
|
|
100
|
+
throw new Error(`Model '${this.model}' not found. Pull it with: ollama pull ${this.model}`);
|
|
101
|
+
}
|
|
102
|
+
throw new Error(`Ollama API error: ${error.response?.status} - ${error.response?.data?.error || error.message}`);
|
|
103
|
+
}
|
|
104
|
+
throw error;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Generate a cache key from text.
|
|
109
|
+
* Uses a simple hash to avoid storing full text as keys.
|
|
110
|
+
*/
|
|
111
|
+
getCacheKey(text) {
|
|
112
|
+
// Simple hash function for cache key
|
|
113
|
+
let hash = 0;
|
|
114
|
+
for (let i = 0; i < text.length; i++) {
|
|
115
|
+
const char = text.charCodeAt(i);
|
|
116
|
+
hash = (hash << 5) - hash + char;
|
|
117
|
+
hash = hash & hash; // Convert to 32-bit integer
|
|
118
|
+
}
|
|
119
|
+
return `emb_${hash}_${text.length}`;
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Sleep for specified milliseconds.
|
|
123
|
+
*/
|
|
124
|
+
sleep(ms) {
|
|
125
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Clear the embedding cache.
|
|
129
|
+
*/
|
|
130
|
+
clearCache() {
|
|
131
|
+
this.cache.clear();
|
|
132
|
+
console.log('[EmbeddingService] Cache cleared');
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Get cache statistics.
|
|
136
|
+
*/
|
|
137
|
+
getCacheStats() {
|
|
138
|
+
return {
|
|
139
|
+
size: this.cache.size,
|
|
140
|
+
maxSize: 10000, // Could be configurable
|
|
141
|
+
};
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Check if Ollama is available and the model is loaded.
|
|
145
|
+
*/
|
|
146
|
+
async healthCheck() {
|
|
147
|
+
try {
|
|
148
|
+
// Try to generate a simple embedding
|
|
149
|
+
await this.callOllamaAPI('test');
|
|
150
|
+
return {
|
|
151
|
+
available: true,
|
|
152
|
+
model: this.model,
|
|
153
|
+
};
|
|
154
|
+
}
|
|
155
|
+
catch (error) {
|
|
156
|
+
return {
|
|
157
|
+
available: false,
|
|
158
|
+
model: this.model,
|
|
159
|
+
error: error instanceof Error ? error.message : String(error),
|
|
160
|
+
};
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Calculate cosine similarity between two embedding vectors.
|
|
165
|
+
*
|
|
166
|
+
* @param vecA - First embedding vector
|
|
167
|
+
* @param vecB - Second embedding vector
|
|
168
|
+
* @returns Similarity score between 0 and 1
|
|
169
|
+
*/
|
|
170
|
+
static cosineSimilarity(vecA, vecB) {
|
|
171
|
+
if (vecA.length !== vecB.length) {
|
|
172
|
+
throw new Error('Vectors must have the same dimension');
|
|
173
|
+
}
|
|
174
|
+
let dotProduct = 0;
|
|
175
|
+
let normA = 0;
|
|
176
|
+
let normB = 0;
|
|
177
|
+
for (let i = 0; i < vecA.length; i++) {
|
|
178
|
+
dotProduct += vecA[i] * vecB[i];
|
|
179
|
+
normA += vecA[i] * vecA[i];
|
|
180
|
+
normB += vecB[i] * vecB[i];
|
|
181
|
+
}
|
|
182
|
+
const denominator = Math.sqrt(normA) * Math.sqrt(normB);
|
|
183
|
+
if (denominator === 0) {
|
|
184
|
+
return 0;
|
|
185
|
+
}
|
|
186
|
+
return dotProduct / denominator;
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
//# sourceMappingURL=EmbeddingService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EmbeddingService.js","sourceRoot":"","sources":["../../../src/subconscious/EmbeddingService.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { VectorStore } from './VectorStore';
|
|
2
|
+
import { EmbeddingService } from './EmbeddingService';
|
|
3
|
+
/**
|
|
4
|
+
* Result of a cache lookup operation.
|
|
5
|
+
*/
|
|
6
|
+
export interface CacheResult {
|
|
7
|
+
hit: boolean;
|
|
8
|
+
result?: any;
|
|
9
|
+
similarity?: number;
|
|
10
|
+
taskId?: string;
|
|
11
|
+
latencyMs: number;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* SemanticCache implements the "short-circuit" logic for semantic caching.
|
|
15
|
+
* It checks if a similar task has been resolved before and returns cached results.
|
|
16
|
+
*/
|
|
17
|
+
export declare class SemanticCache {
|
|
18
|
+
private vectorStore;
|
|
19
|
+
private embeddingService;
|
|
20
|
+
private threshold;
|
|
21
|
+
private cacheHits;
|
|
22
|
+
private cacheMisses;
|
|
23
|
+
constructor(vectorStore: VectorStore, embeddingService: EmbeddingService, threshold?: number);
|
|
24
|
+
/**
|
|
25
|
+
* Check if a similar task exists in the cache.
|
|
26
|
+
* Returns cached result if similarity exceeds threshold.
|
|
27
|
+
*
|
|
28
|
+
* @param taskDescription - Description of the task to check
|
|
29
|
+
* @returns CacheResult with hit status and cached data if found
|
|
30
|
+
*/
|
|
31
|
+
check(taskDescription: string): Promise<CacheResult>;
|
|
32
|
+
/**
|
|
33
|
+
* Store a task result in the cache for future lookups.
|
|
34
|
+
*
|
|
35
|
+
* @param taskId - Unique identifier for the task
|
|
36
|
+
* @param taskDescription - Description of the task
|
|
37
|
+
* @param result - Result to cache
|
|
38
|
+
* @param metadata - Additional metadata to store
|
|
39
|
+
*/
|
|
40
|
+
store(taskId: string, taskDescription: string, result: any, metadata?: Record<string, any>): Promise<void>;
|
|
41
|
+
/**
|
|
42
|
+
* Calculate cosine similarity between two task descriptions.
|
|
43
|
+
* Useful for debugging and testing.
|
|
44
|
+
*
|
|
45
|
+
* @param taskA - First task description
|
|
46
|
+
* @param taskB - Second task description
|
|
47
|
+
* @returns Similarity score between 0 and 1
|
|
48
|
+
*/
|
|
49
|
+
calculateSimilarity(taskA: string, taskB: string): Promise<number>;
|
|
50
|
+
/**
|
|
51
|
+
* Get cache performance metrics.
|
|
52
|
+
*/
|
|
53
|
+
getMetrics(): {
|
|
54
|
+
hits: number;
|
|
55
|
+
misses: number;
|
|
56
|
+
total: number;
|
|
57
|
+
hitRate: number;
|
|
58
|
+
};
|
|
59
|
+
/**
|
|
60
|
+
* Reset cache metrics.
|
|
61
|
+
*/
|
|
62
|
+
resetMetrics(): void;
|
|
63
|
+
/**
|
|
64
|
+
* Update the similarity threshold.
|
|
65
|
+
*
|
|
66
|
+
* @param threshold - New threshold value (0-1)
|
|
67
|
+
*/
|
|
68
|
+
setThreshold(threshold: number): void;
|
|
69
|
+
/**
|
|
70
|
+
* Get the current similarity threshold.
|
|
71
|
+
*/
|
|
72
|
+
getThreshold(): number;
|
|
73
|
+
/**
|
|
74
|
+
* Get the total number of cached tasks.
|
|
75
|
+
*/
|
|
76
|
+
getCacheSize(): Promise<number>;
|
|
77
|
+
/**
|
|
78
|
+
* Clear all cached tasks.
|
|
79
|
+
*/
|
|
80
|
+
clear(): Promise<void>;
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=SemanticCache.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SemanticCache.d.ts","sourceRoot":"","sources":["../../../src/subconscious/SemanticCache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,OAAO,CAAC;IACb,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,gBAAgB,CAAmB;IAC3C,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,SAAS,CAAa;IAC9B,OAAO,CAAC,WAAW,CAAa;gBAG9B,WAAW,EAAE,WAAW,EACxB,gBAAgB,EAAE,gBAAgB,EAClC,SAAS,GAAE,MAAa;IAO1B;;;;;;OAMG;IACG,KAAK,CAAC,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAwD1D;;;;;;;OAOG;IACG,KAAK,CACT,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,MAAM,EACvB,MAAM,EAAE,GAAG,EACX,QAAQ,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,GACjC,OAAO,CAAC,IAAI,CAAC;IAqBhB;;;;;;;OAOG;IACG,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAcxE;;OAEG;IACH,UAAU,IAAI;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;KACjB;IAYD;;OAEG;IACH,YAAY,IAAI,IAAI;IAMpB;;;;OAIG;IACH,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAQrC;;OAEG;IACH,YAAY,IAAI,MAAM;IAItB;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC;IAIrC;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAK7B"}
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
import { EmbeddingService } from './EmbeddingService';
|
|
2
|
+
/**
|
|
3
|
+
* SemanticCache implements the "short-circuit" logic for semantic caching.
|
|
4
|
+
* It checks if a similar task has been resolved before and returns cached results.
|
|
5
|
+
*/
|
|
6
|
+
export class SemanticCache {
|
|
7
|
+
constructor(vectorStore, embeddingService, threshold = 0.95) {
|
|
8
|
+
this.cacheHits = 0;
|
|
9
|
+
this.cacheMisses = 0;
|
|
10
|
+
this.vectorStore = vectorStore;
|
|
11
|
+
this.embeddingService = embeddingService;
|
|
12
|
+
this.threshold = threshold;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Check if a similar task exists in the cache.
|
|
16
|
+
* Returns cached result if similarity exceeds threshold.
|
|
17
|
+
*
|
|
18
|
+
* @param taskDescription - Description of the task to check
|
|
19
|
+
* @returns CacheResult with hit status and cached data if found
|
|
20
|
+
*/
|
|
21
|
+
async check(taskDescription) {
|
|
22
|
+
const startTime = Date.now();
|
|
23
|
+
try {
|
|
24
|
+
// Generate embedding for the task
|
|
25
|
+
const embedding = await this.embeddingService.generateEmbedding(taskDescription);
|
|
26
|
+
// Search for similar tasks
|
|
27
|
+
const matches = await this.vectorStore.searchSimilar(embedding, this.threshold, 1 // Only need the top match
|
|
28
|
+
);
|
|
29
|
+
const latencyMs = Date.now() - startTime;
|
|
30
|
+
if (matches.length > 0) {
|
|
31
|
+
// Cache hit!
|
|
32
|
+
this.cacheHits++;
|
|
33
|
+
const match = matches[0];
|
|
34
|
+
console.log(`[SemanticCache] ✓ HIT (similarity: ${match.similarity.toFixed(4)}, ` +
|
|
35
|
+
`latency: ${latencyMs}ms)`);
|
|
36
|
+
return {
|
|
37
|
+
hit: true,
|
|
38
|
+
result: match.result,
|
|
39
|
+
similarity: match.similarity,
|
|
40
|
+
taskId: match.id,
|
|
41
|
+
latencyMs,
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
// Cache miss
|
|
46
|
+
this.cacheMisses++;
|
|
47
|
+
console.log(`[SemanticCache] ✗ MISS (latency: ${latencyMs}ms)`);
|
|
48
|
+
return {
|
|
49
|
+
hit: false,
|
|
50
|
+
latencyMs,
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
catch (error) {
|
|
55
|
+
console.error('[SemanticCache] Error during cache check:', error);
|
|
56
|
+
// On error, treat as cache miss
|
|
57
|
+
this.cacheMisses++;
|
|
58
|
+
return {
|
|
59
|
+
hit: false,
|
|
60
|
+
latencyMs: Date.now() - startTime,
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Store a task result in the cache for future lookups.
|
|
66
|
+
*
|
|
67
|
+
* @param taskId - Unique identifier for the task
|
|
68
|
+
* @param taskDescription - Description of the task
|
|
69
|
+
* @param result - Result to cache
|
|
70
|
+
* @param metadata - Additional metadata to store
|
|
71
|
+
*/
|
|
72
|
+
async store(taskId, taskDescription, result, metadata = {}) {
|
|
73
|
+
try {
|
|
74
|
+
// Generate embedding for the task
|
|
75
|
+
const embedding = await this.embeddingService.generateEmbedding(taskDescription);
|
|
76
|
+
// Store in vector database
|
|
77
|
+
await this.vectorStore.insertVector(taskId, embedding, taskDescription, result, metadata);
|
|
78
|
+
console.log(`[SemanticCache] Stored result for task: ${taskId}`);
|
|
79
|
+
}
|
|
80
|
+
catch (error) {
|
|
81
|
+
console.error('[SemanticCache] Error storing result:', error);
|
|
82
|
+
throw error;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Calculate cosine similarity between two task descriptions.
|
|
87
|
+
* Useful for debugging and testing.
|
|
88
|
+
*
|
|
89
|
+
* @param taskA - First task description
|
|
90
|
+
* @param taskB - Second task description
|
|
91
|
+
* @returns Similarity score between 0 and 1
|
|
92
|
+
*/
|
|
93
|
+
async calculateSimilarity(taskA, taskB) {
|
|
94
|
+
try {
|
|
95
|
+
const [embeddingA, embeddingB] = await this.embeddingService.generateEmbeddings([
|
|
96
|
+
taskA,
|
|
97
|
+
taskB,
|
|
98
|
+
]);
|
|
99
|
+
return EmbeddingService.cosineSimilarity(embeddingA, embeddingB);
|
|
100
|
+
}
|
|
101
|
+
catch (error) {
|
|
102
|
+
console.error('[SemanticCache] Error calculating similarity:', error);
|
|
103
|
+
throw error;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Get cache performance metrics.
|
|
108
|
+
*/
|
|
109
|
+
getMetrics() {
|
|
110
|
+
const total = this.cacheHits + this.cacheMisses;
|
|
111
|
+
const hitRate = total > 0 ? this.cacheHits / total : 0;
|
|
112
|
+
return {
|
|
113
|
+
hits: this.cacheHits,
|
|
114
|
+
misses: this.cacheMisses,
|
|
115
|
+
total,
|
|
116
|
+
hitRate,
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Reset cache metrics.
|
|
121
|
+
*/
|
|
122
|
+
resetMetrics() {
|
|
123
|
+
this.cacheHits = 0;
|
|
124
|
+
this.cacheMisses = 0;
|
|
125
|
+
console.log('[SemanticCache] Metrics reset');
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Update the similarity threshold.
|
|
129
|
+
*
|
|
130
|
+
* @param threshold - New threshold value (0-1)
|
|
131
|
+
*/
|
|
132
|
+
setThreshold(threshold) {
|
|
133
|
+
if (threshold < 0 || threshold > 1) {
|
|
134
|
+
throw new Error('Threshold must be between 0 and 1');
|
|
135
|
+
}
|
|
136
|
+
this.threshold = threshold;
|
|
137
|
+
console.log(`[SemanticCache] Threshold updated to ${threshold}`);
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Get the current similarity threshold.
|
|
141
|
+
*/
|
|
142
|
+
getThreshold() {
|
|
143
|
+
return this.threshold;
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Get the total number of cached tasks.
|
|
147
|
+
*/
|
|
148
|
+
async getCacheSize() {
|
|
149
|
+
return await this.vectorStore.getCount();
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Clear all cached tasks.
|
|
153
|
+
*/
|
|
154
|
+
async clear() {
|
|
155
|
+
await this.vectorStore.clear();
|
|
156
|
+
this.resetMetrics();
|
|
157
|
+
console.log('[SemanticCache] Cache cleared');
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
//# sourceMappingURL=SemanticCache.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SemanticCache.js","sourceRoot":"","sources":["../../../src/subconscious/SemanticCache.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import { CacheResult } from './SemanticCache';
|
|
2
|
+
import { EventEmitter } from 'events';
|
|
3
|
+
/**
|
|
4
|
+
* Configuration options for SubconsciousEngine.
|
|
5
|
+
*/
|
|
6
|
+
export interface SubconsciousConfig {
|
|
7
|
+
chromaUrl?: string;
|
|
8
|
+
ollamaUrl?: string;
|
|
9
|
+
model?: string;
|
|
10
|
+
collectionName?: string;
|
|
11
|
+
threshold?: number;
|
|
12
|
+
enableBackgroundVectorization?: boolean;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Task to be processed by the engine.
|
|
16
|
+
*/
|
|
17
|
+
export interface Task {
|
|
18
|
+
id: string;
|
|
19
|
+
description: string;
|
|
20
|
+
metadata?: Record<string, any>;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Result of task processing.
|
|
24
|
+
*/
|
|
25
|
+
export interface TaskResult {
|
|
26
|
+
taskId: string;
|
|
27
|
+
result: any;
|
|
28
|
+
fromCache: boolean;
|
|
29
|
+
similarity?: number;
|
|
30
|
+
latencyMs: number;
|
|
31
|
+
timestamp: string;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Engine metrics for monitoring performance.
|
|
35
|
+
*/
|
|
36
|
+
export interface EngineMetrics {
|
|
37
|
+
totalTasks: number;
|
|
38
|
+
cacheHits: number;
|
|
39
|
+
cacheMisses: number;
|
|
40
|
+
hitRate: number;
|
|
41
|
+
avgCacheLatencyMs: number;
|
|
42
|
+
avgMissLatencyMs: number;
|
|
43
|
+
totalCachedTasks: number;
|
|
44
|
+
backgroundQueueSize: number;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* SubconsciousEngine is the main orchestrator for semantic caching.
|
|
48
|
+
* It intercepts tasks, checks for cached results, and manages background vectorization.
|
|
49
|
+
*/
|
|
50
|
+
export declare class SubconsciousEngine extends EventEmitter {
|
|
51
|
+
private vectorStore;
|
|
52
|
+
private embeddingService;
|
|
53
|
+
private semanticCache;
|
|
54
|
+
private config;
|
|
55
|
+
private isInitialized;
|
|
56
|
+
private backgroundQueue;
|
|
57
|
+
private isProcessingQueue;
|
|
58
|
+
private cacheLatencies;
|
|
59
|
+
private missLatencies;
|
|
60
|
+
constructor(config?: SubconsciousConfig);
|
|
61
|
+
/**
|
|
62
|
+
* Initialize the Subconscious Engine.
|
|
63
|
+
* Must be called before using the engine.
|
|
64
|
+
*/
|
|
65
|
+
initialize(): Promise<void>;
|
|
66
|
+
/**
|
|
67
|
+
* Intercept a task and check for cached results.
|
|
68
|
+
* This is the main entry point for the semantic short-circuit.
|
|
69
|
+
*
|
|
70
|
+
* @param task - Task to intercept
|
|
71
|
+
* @returns CacheResult indicating if a cached result was found
|
|
72
|
+
*/
|
|
73
|
+
interceptTask(task: Task): Promise<CacheResult>;
|
|
74
|
+
/**
|
|
75
|
+
* Store a task result for future caching.
|
|
76
|
+
* If background vectorization is enabled, queues the task for async processing.
|
|
77
|
+
*
|
|
78
|
+
* @param task - Original task
|
|
79
|
+
* @param result - Result to cache
|
|
80
|
+
*/
|
|
81
|
+
storeResult(task: Task, result: any): Promise<void>;
|
|
82
|
+
/**
|
|
83
|
+
* Process the background vectorization queue.
|
|
84
|
+
* Runs asynchronously without blocking the main thread.
|
|
85
|
+
*/
|
|
86
|
+
private processBackgroundQueue;
|
|
87
|
+
/**
|
|
88
|
+
* Get comprehensive engine metrics.
|
|
89
|
+
*/
|
|
90
|
+
getMetrics(): Promise<EngineMetrics>;
|
|
91
|
+
/**
|
|
92
|
+
* Reset all metrics.
|
|
93
|
+
*/
|
|
94
|
+
resetMetrics(): void;
|
|
95
|
+
/**
|
|
96
|
+
* Update the similarity threshold.
|
|
97
|
+
*/
|
|
98
|
+
setThreshold(threshold: number): void;
|
|
99
|
+
/**
|
|
100
|
+
* Get the current configuration.
|
|
101
|
+
*/
|
|
102
|
+
getConfig(): Required<SubconsciousConfig>;
|
|
103
|
+
/**
|
|
104
|
+
* Clear all cached tasks and reset metrics.
|
|
105
|
+
*/
|
|
106
|
+
clear(): Promise<void>;
|
|
107
|
+
/**
|
|
108
|
+
* Shutdown the engine gracefully.
|
|
109
|
+
* Waits for background queue to finish processing.
|
|
110
|
+
*/
|
|
111
|
+
shutdown(): Promise<void>;
|
|
112
|
+
/**
|
|
113
|
+
* Check if the engine is ready to use.
|
|
114
|
+
*/
|
|
115
|
+
isReady(): boolean;
|
|
116
|
+
/**
|
|
117
|
+
* Sleep for specified milliseconds.
|
|
118
|
+
*/
|
|
119
|
+
private sleep;
|
|
120
|
+
}
|
|
121
|
+
//# sourceMappingURL=SubconsciousEngine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SubconsciousEngine.d.ts","sourceRoot":"","sources":["../../../src/subconscious/SubconsciousEngine.ts"],"names":[],"mappings":"AAEA,OAAO,EAAiB,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEtC;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6BAA6B,CAAC,EAAE,OAAO,CAAC;CACzC;AAED;;GAEG;AACH,MAAM,WAAW,IAAI;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,GAAG,CAAC;IACZ,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAED;;;GAGG;AACH,qBAAa,kBAAmB,SAAQ,YAAY;IAClD,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,gBAAgB,CAAmB;IAC3C,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,MAAM,CAA+B;IAC7C,OAAO,CAAC,aAAa,CAAkB;IACvC,OAAO,CAAC,eAAe,CAKf;IACR,OAAO,CAAC,iBAAiB,CAAkB;IAC3C,OAAO,CAAC,cAAc,CAAgB;IACtC,OAAO,CAAC,aAAa,CAAgB;gBAEzB,MAAM,GAAE,kBAAuB;IA+B3C;;;OAGG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAqCjC;;;;;;OAMG;IACG,aAAa,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC;IA4BrD;;;;;;OAMG;IACG,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAoCzD;;;OAGG;YACW,sBAAsB;IAqCpC;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,aAAa,CAAC;IA0B1C;;OAEG;IACH,YAAY,IAAI,IAAI;IAOpB;;OAEG;IACH,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAKrC;;OAEG;IACH,SAAS,IAAI,QAAQ,CAAC,kBAAkB,CAAC;IAIzC;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAO5B;;;OAGG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAgB/B;;OAEG;IACH,OAAO,IAAI,OAAO;IAIlB;;OAEG;IACH,OAAO,CAAC,KAAK;CAGd"}
|