@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,260 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Inter-Agent Protocol (I.A.P.) v1.0.0
|
|
3
|
+
*
|
|
4
|
+
* Utility functions for message creation and handling
|
|
5
|
+
*/
|
|
6
|
+
import { v4 as uuidv4 } from 'uuid';
|
|
7
|
+
import { MessageType } from './types';
|
|
8
|
+
import { PROTOCOL_VERSION } from './validators';
|
|
9
|
+
/**
|
|
10
|
+
* Generates a unique message ID
|
|
11
|
+
*/
|
|
12
|
+
export function generateMessageId() {
|
|
13
|
+
return `msg_${uuidv4()}`;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Generates a unique task ID
|
|
17
|
+
*/
|
|
18
|
+
export function generateTaskId() {
|
|
19
|
+
return `task_${uuidv4()}`;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Generates a unique agent ID
|
|
23
|
+
*/
|
|
24
|
+
export function generateAgentId(prefix) {
|
|
25
|
+
const id = uuidv4().split('-')[0];
|
|
26
|
+
return prefix ? `${prefix}_${id}` : `agent_${id}`;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Gets current timestamp in ISO 8601 format
|
|
30
|
+
*/
|
|
31
|
+
export function getCurrentTimestamp() {
|
|
32
|
+
return new Date().toISOString();
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Creates a base I.A.P. message structure
|
|
36
|
+
*/
|
|
37
|
+
export function createBaseMessage(type, from, to, payload, correlationId) {
|
|
38
|
+
return {
|
|
39
|
+
messageId: generateMessageId(),
|
|
40
|
+
type,
|
|
41
|
+
from,
|
|
42
|
+
to,
|
|
43
|
+
timestamp: getCurrentTimestamp(),
|
|
44
|
+
protocolVersion: PROTOCOL_VERSION,
|
|
45
|
+
payload,
|
|
46
|
+
...(correlationId && { correlationId })
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Creates a handshake message
|
|
51
|
+
*/
|
|
52
|
+
export function createHandshakeMessage(handshake) {
|
|
53
|
+
return createBaseMessage(MessageType.HANDSHAKE, handshake.agentId, 'router', handshake);
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Creates a capability discovery message
|
|
57
|
+
*/
|
|
58
|
+
export function createCapabilityDiscoveryMessage(discovery) {
|
|
59
|
+
return createBaseMessage(MessageType.CAPABILITY_DISCOVERY, discovery.requesterId, 'router', discovery);
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Creates a task proposal message
|
|
63
|
+
*/
|
|
64
|
+
export function createTaskProposalMessage(proposal) {
|
|
65
|
+
return createBaseMessage(MessageType.TASK_PROPOSAL, proposal.proposerId, 'router', proposal);
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Creates a task bid message
|
|
69
|
+
*/
|
|
70
|
+
export function createTaskBidMessage(bid, agentId) {
|
|
71
|
+
return createBaseMessage(MessageType.TASK_BID, agentId, 'router', bid, bid.taskId);
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Creates a task assignment message
|
|
75
|
+
*/
|
|
76
|
+
export function createTaskAssignmentMessage(assignment) {
|
|
77
|
+
return createBaseMessage(MessageType.TASK_ASSIGNMENT, 'router', assignment.assignedTo, assignment, assignment.taskId);
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Creates a task result message
|
|
81
|
+
*/
|
|
82
|
+
export function createTaskResultMessage(result) {
|
|
83
|
+
return createBaseMessage(MessageType.TASK_RESULT, result.executorId, 'router', result, result.taskId);
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Creates a context transfer message
|
|
87
|
+
*/
|
|
88
|
+
export function createContextTransferMessage(transfer) {
|
|
89
|
+
return createBaseMessage(MessageType.CONTEXT_TRANSFER, transfer.fromAgent, transfer.toAgent, transfer, transfer.taskId);
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Creates an error message
|
|
93
|
+
*/
|
|
94
|
+
export function createErrorMessage(from, to, error, correlationId) {
|
|
95
|
+
return createBaseMessage(MessageType.ERROR, from, to, error, correlationId);
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Creates a heartbeat message
|
|
99
|
+
*/
|
|
100
|
+
export function createHeartbeatMessage(heartbeat) {
|
|
101
|
+
return createBaseMessage(MessageType.HEARTBEAT, heartbeat.agentId, 'router', heartbeat);
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Creates a disconnect message
|
|
105
|
+
*/
|
|
106
|
+
export function createDisconnectMessage(disconnect) {
|
|
107
|
+
return createBaseMessage(MessageType.DISCONNECT, disconnect.agentId, 'router', disconnect);
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Serializes a message to JSON string
|
|
111
|
+
*/
|
|
112
|
+
export function serializeMessage(message) {
|
|
113
|
+
return JSON.stringify(message);
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Deserializes a JSON string to a message
|
|
117
|
+
*/
|
|
118
|
+
export function deserializeMessage(json) {
|
|
119
|
+
try {
|
|
120
|
+
return JSON.parse(json);
|
|
121
|
+
}
|
|
122
|
+
catch (error) {
|
|
123
|
+
throw new Error(`Failed to deserialize message: ${error}`);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Extracts correlation ID from a message
|
|
128
|
+
*/
|
|
129
|
+
export function getCorrelationId(message) {
|
|
130
|
+
return message.correlationId || message.messageId;
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Checks if a message is a request type
|
|
134
|
+
*/
|
|
135
|
+
export function isRequestMessage(type) {
|
|
136
|
+
const requestTypes = [
|
|
137
|
+
MessageType.HANDSHAKE,
|
|
138
|
+
MessageType.CAPABILITY_DISCOVERY,
|
|
139
|
+
MessageType.TASK_PROPOSAL,
|
|
140
|
+
MessageType.TASK_BID,
|
|
141
|
+
MessageType.CONTEXT_TRANSFER
|
|
142
|
+
];
|
|
143
|
+
return requestTypes.includes(type);
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Checks if a message is a response type
|
|
147
|
+
*/
|
|
148
|
+
export function isResponseMessage(type) {
|
|
149
|
+
const responseTypes = [
|
|
150
|
+
MessageType.HANDSHAKE_ACK,
|
|
151
|
+
MessageType.CAPABILITY_RESPONSE,
|
|
152
|
+
MessageType.TASK_ASSIGNMENT,
|
|
153
|
+
MessageType.TASK_RESULT,
|
|
154
|
+
MessageType.ERROR
|
|
155
|
+
];
|
|
156
|
+
return responseTypes.includes(type);
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Calculates message size in bytes
|
|
160
|
+
*/
|
|
161
|
+
export function getMessageSize(message) {
|
|
162
|
+
return new Blob([serializeMessage(message)]).size;
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Compresses large payloads (placeholder for actual compression)
|
|
166
|
+
*/
|
|
167
|
+
export function compressPayload(payload) {
|
|
168
|
+
const serialized = JSON.stringify(payload);
|
|
169
|
+
const size = new Blob([serialized]).size;
|
|
170
|
+
// Compress if larger than 10KB (in production, use actual compression)
|
|
171
|
+
if (size > 10240) {
|
|
172
|
+
// TODO: Implement actual compression (gzip/brotli)
|
|
173
|
+
return {
|
|
174
|
+
data: serialized,
|
|
175
|
+
compressed: true
|
|
176
|
+
};
|
|
177
|
+
}
|
|
178
|
+
return {
|
|
179
|
+
data: serialized,
|
|
180
|
+
compressed: false
|
|
181
|
+
};
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* Decompresses payloads (placeholder for actual decompression)
|
|
185
|
+
*/
|
|
186
|
+
export function decompressPayload(data, compressed) {
|
|
187
|
+
if (!compressed) {
|
|
188
|
+
return JSON.parse(data);
|
|
189
|
+
}
|
|
190
|
+
// TODO: Implement actual decompression
|
|
191
|
+
return JSON.parse(data);
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* Creates a response message from a request
|
|
195
|
+
*/
|
|
196
|
+
export function createResponseMessage(request, responseType, payload) {
|
|
197
|
+
return createBaseMessage(responseType, request.to === 'router' ? 'router' : request.to, request.from, payload, request.messageId);
|
|
198
|
+
}
|
|
199
|
+
/**
|
|
200
|
+
* Checks if a message has expired based on deadline
|
|
201
|
+
*/
|
|
202
|
+
export function isMessageExpired(message, deadlineMs) {
|
|
203
|
+
if (!deadlineMs)
|
|
204
|
+
return false;
|
|
205
|
+
const messageTime = new Date(message.timestamp).getTime();
|
|
206
|
+
const now = Date.now();
|
|
207
|
+
return (now - messageTime) > deadlineMs;
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* Calculates message age in milliseconds
|
|
211
|
+
*/
|
|
212
|
+
export function getMessageAge(message) {
|
|
213
|
+
const messageTime = new Date(message.timestamp).getTime();
|
|
214
|
+
return Date.now() - messageTime;
|
|
215
|
+
}
|
|
216
|
+
/**
|
|
217
|
+
* Redacts sensitive information from a message for logging
|
|
218
|
+
*/
|
|
219
|
+
export function redactMessage(message) {
|
|
220
|
+
const redacted = { ...message };
|
|
221
|
+
// Redact potentially sensitive payload data
|
|
222
|
+
if (redacted.payload && typeof redacted.payload === 'object') {
|
|
223
|
+
const payload = { ...redacted.payload };
|
|
224
|
+
// List of fields to redact
|
|
225
|
+
const sensitiveFields = ['apiKey', 'token', 'password', 'secret', 'credentials'];
|
|
226
|
+
for (const field of sensitiveFields) {
|
|
227
|
+
if (field in payload) {
|
|
228
|
+
payload[field] = '[REDACTED]';
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
redacted.payload = payload;
|
|
232
|
+
}
|
|
233
|
+
return redacted;
|
|
234
|
+
}
|
|
235
|
+
/**
|
|
236
|
+
* Formats a message for human-readable logging
|
|
237
|
+
*/
|
|
238
|
+
export function formatMessageForLog(message) {
|
|
239
|
+
const redacted = redactMessage(message);
|
|
240
|
+
return `[${redacted.type}] ${redacted.from} -> ${redacted.to} (${redacted.messageId})`;
|
|
241
|
+
}
|
|
242
|
+
/**
|
|
243
|
+
* Batch messages for efficient transmission
|
|
244
|
+
*/
|
|
245
|
+
export function batchMessages(messages) {
|
|
246
|
+
return JSON.stringify(messages);
|
|
247
|
+
}
|
|
248
|
+
/**
|
|
249
|
+
* Unbatch messages from a batch transmission
|
|
250
|
+
*/
|
|
251
|
+
export function unbatchMessages(batch) {
|
|
252
|
+
try {
|
|
253
|
+
const messages = JSON.parse(batch);
|
|
254
|
+
return Array.isArray(messages) ? messages : [messages];
|
|
255
|
+
}
|
|
256
|
+
catch (error) {
|
|
257
|
+
throw new Error(`Failed to unbatch messages: ${error}`);
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/protocol/utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Inter-Agent Protocol (I.A.P.) v1.0.0
|
|
3
|
+
*
|
|
4
|
+
* Message validators for ensuring protocol compliance
|
|
5
|
+
*/
|
|
6
|
+
import { IAPMessage, ErrorMessage } from './types';
|
|
7
|
+
/**
|
|
8
|
+
* Validation result
|
|
9
|
+
*/
|
|
10
|
+
export interface ValidationResult {
|
|
11
|
+
valid: boolean;
|
|
12
|
+
errors: string[];
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Protocol version supported by this implementation
|
|
16
|
+
*/
|
|
17
|
+
export declare const PROTOCOL_VERSION = "1.0.0";
|
|
18
|
+
/**
|
|
19
|
+
* Validates a complete I.A.P. message
|
|
20
|
+
*/
|
|
21
|
+
export declare function validateIAPMessage(message: any): ValidationResult;
|
|
22
|
+
/**
|
|
23
|
+
* Validates an AgentHandshake payload
|
|
24
|
+
*/
|
|
25
|
+
export declare function validateHandshake(handshake: any): ValidationResult;
|
|
26
|
+
/**
|
|
27
|
+
* Validates an AgentCapability
|
|
28
|
+
*/
|
|
29
|
+
export declare function validateCapability(capability: any): ValidationResult;
|
|
30
|
+
/**
|
|
31
|
+
* Validates a TaskProposal payload
|
|
32
|
+
*/
|
|
33
|
+
export declare function validateTaskProposal(proposal: any): ValidationResult;
|
|
34
|
+
/**
|
|
35
|
+
* Validates a TaskBid payload
|
|
36
|
+
*/
|
|
37
|
+
export declare function validateTaskBid(bid: any): ValidationResult;
|
|
38
|
+
/**
|
|
39
|
+
* Validates a ContextTransfer payload
|
|
40
|
+
*/
|
|
41
|
+
export declare function validateContextTransfer(transfer: any): ValidationResult;
|
|
42
|
+
/**
|
|
43
|
+
* Validates an ErrorMessage payload
|
|
44
|
+
*/
|
|
45
|
+
export declare function validateErrorMessage(error: any): ValidationResult;
|
|
46
|
+
/**
|
|
47
|
+
* Creates a validation error message
|
|
48
|
+
*/
|
|
49
|
+
export declare function createValidationError(errors: string[]): ErrorMessage;
|
|
50
|
+
/**
|
|
51
|
+
* Sanitizes a message by removing invalid fields
|
|
52
|
+
*/
|
|
53
|
+
export declare function sanitizeMessage(message: any): Partial<IAPMessage>;
|
|
54
|
+
//# sourceMappingURL=validators.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validators.d.ts","sourceRoot":"","sources":["../../../src/protocol/validators.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,UAAU,EASV,YAAY,EACb,MAAM,SAAS,CAAC;AAEjB;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED;;GAEG;AACH,eAAO,MAAM,gBAAgB,UAAU,CAAC;AAExC;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,GAAG,GAAG,gBAAgB,CA+CjE;AAsBD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,GAAG,GAAG,gBAAgB,CAgDlE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,GAAG,GAAG,gBAAgB,CA+BpE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,GAAG,GAAG,gBAAgB,CAkDpE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,GAAG,GAAG,gBAAgB,CAmC1D;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,GAAG,GAAG,gBAAgB,CA0CvE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,GAAG,GAAG,gBAAgB,CAmBjE;AAqBD;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,YAAY,CAOpE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC,CAejE"}
|
|
@@ -0,0 +1,332 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Inter-Agent Protocol (I.A.P.) v1.0.0
|
|
3
|
+
*
|
|
4
|
+
* Message validators for ensuring protocol compliance
|
|
5
|
+
*/
|
|
6
|
+
import { MessageType, CapabilityType } from './types';
|
|
7
|
+
/**
|
|
8
|
+
* Protocol version supported by this implementation
|
|
9
|
+
*/
|
|
10
|
+
export const PROTOCOL_VERSION = '1.0.0';
|
|
11
|
+
/**
|
|
12
|
+
* Validates a complete I.A.P. message
|
|
13
|
+
*/
|
|
14
|
+
export function validateIAPMessage(message) {
|
|
15
|
+
const errors = [];
|
|
16
|
+
// Check required fields
|
|
17
|
+
if (!message.messageId || typeof message.messageId !== 'string') {
|
|
18
|
+
errors.push('Missing or invalid messageId');
|
|
19
|
+
}
|
|
20
|
+
if (!message.type || !Object.values(MessageType).includes(message.type)) {
|
|
21
|
+
errors.push('Missing or invalid message type');
|
|
22
|
+
}
|
|
23
|
+
if (!message.from || typeof message.from !== 'string') {
|
|
24
|
+
errors.push('Missing or invalid from field');
|
|
25
|
+
}
|
|
26
|
+
if (!message.to || typeof message.to !== 'string') {
|
|
27
|
+
errors.push('Missing or invalid to field');
|
|
28
|
+
}
|
|
29
|
+
if (!message.timestamp || !isValidTimestamp(message.timestamp)) {
|
|
30
|
+
errors.push('Missing or invalid timestamp');
|
|
31
|
+
}
|
|
32
|
+
if (!message.protocolVersion || typeof message.protocolVersion !== 'string') {
|
|
33
|
+
errors.push('Missing or invalid protocolVersion');
|
|
34
|
+
}
|
|
35
|
+
if (!message.payload || typeof message.payload !== 'object') {
|
|
36
|
+
errors.push('Missing or invalid payload');
|
|
37
|
+
}
|
|
38
|
+
// Validate protocol version compatibility
|
|
39
|
+
if (message.protocolVersion && !isCompatibleVersion(message.protocolVersion)) {
|
|
40
|
+
errors.push(`Incompatible protocol version: ${message.protocolVersion}`);
|
|
41
|
+
}
|
|
42
|
+
// Validate payload based on message type
|
|
43
|
+
if (message.type && message.payload) {
|
|
44
|
+
const payloadValidation = validatePayload(message.type, message.payload);
|
|
45
|
+
errors.push(...payloadValidation.errors);
|
|
46
|
+
}
|
|
47
|
+
return {
|
|
48
|
+
valid: errors.length === 0,
|
|
49
|
+
errors
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Validates payload based on message type
|
|
54
|
+
*/
|
|
55
|
+
function validatePayload(type, payload) {
|
|
56
|
+
switch (type) {
|
|
57
|
+
case MessageType.HANDSHAKE:
|
|
58
|
+
return validateHandshake(payload);
|
|
59
|
+
case MessageType.TASK_PROPOSAL:
|
|
60
|
+
return validateTaskProposal(payload);
|
|
61
|
+
case MessageType.TASK_BID:
|
|
62
|
+
return validateTaskBid(payload);
|
|
63
|
+
case MessageType.CONTEXT_TRANSFER:
|
|
64
|
+
return validateContextTransfer(payload);
|
|
65
|
+
case MessageType.ERROR:
|
|
66
|
+
return validateErrorMessage(payload);
|
|
67
|
+
default:
|
|
68
|
+
return { valid: true, errors: [] };
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Validates an AgentHandshake payload
|
|
73
|
+
*/
|
|
74
|
+
export function validateHandshake(handshake) {
|
|
75
|
+
const errors = [];
|
|
76
|
+
if (!handshake.agentId || typeof handshake.agentId !== 'string') {
|
|
77
|
+
errors.push('Handshake: Missing or invalid agentId');
|
|
78
|
+
}
|
|
79
|
+
if (!handshake.name || typeof handshake.name !== 'string') {
|
|
80
|
+
errors.push('Handshake: Missing or invalid name');
|
|
81
|
+
}
|
|
82
|
+
if (!handshake.version || typeof handshake.version !== 'string') {
|
|
83
|
+
errors.push('Handshake: Missing or invalid version');
|
|
84
|
+
}
|
|
85
|
+
if (!handshake.protocolVersion || typeof handshake.protocolVersion !== 'string') {
|
|
86
|
+
errors.push('Handshake: Missing or invalid protocolVersion');
|
|
87
|
+
}
|
|
88
|
+
if (!Array.isArray(handshake.capabilities)) {
|
|
89
|
+
errors.push('Handshake: capabilities must be an array');
|
|
90
|
+
}
|
|
91
|
+
else {
|
|
92
|
+
handshake.capabilities.forEach((cap, index) => {
|
|
93
|
+
const capValidation = validateCapability(cap);
|
|
94
|
+
capValidation.errors.forEach(err => {
|
|
95
|
+
errors.push(`Handshake: capability[${index}] - ${err}`);
|
|
96
|
+
});
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
if (handshake.maxConcurrentTasks !== undefined) {
|
|
100
|
+
if (typeof handshake.maxConcurrentTasks !== 'number' || handshake.maxConcurrentTasks < 1) {
|
|
101
|
+
errors.push('Handshake: maxConcurrentTasks must be a positive number');
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
if (handshake.currentLoad !== undefined) {
|
|
105
|
+
if (typeof handshake.currentLoad !== 'number' ||
|
|
106
|
+
handshake.currentLoad < 0 ||
|
|
107
|
+
handshake.currentLoad > 1) {
|
|
108
|
+
errors.push('Handshake: currentLoad must be between 0.0 and 1.0');
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
return {
|
|
112
|
+
valid: errors.length === 0,
|
|
113
|
+
errors
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Validates an AgentCapability
|
|
118
|
+
*/
|
|
119
|
+
export function validateCapability(capability) {
|
|
120
|
+
const errors = [];
|
|
121
|
+
if (!capability.id || typeof capability.id !== 'string') {
|
|
122
|
+
errors.push('Missing or invalid capability id');
|
|
123
|
+
}
|
|
124
|
+
if (!capability.type || !Object.values(CapabilityType).includes(capability.type)) {
|
|
125
|
+
errors.push('Missing or invalid capability type');
|
|
126
|
+
}
|
|
127
|
+
if (!capability.name || typeof capability.name !== 'string') {
|
|
128
|
+
errors.push('Missing or invalid capability name');
|
|
129
|
+
}
|
|
130
|
+
if (!capability.description || typeof capability.description !== 'string') {
|
|
131
|
+
errors.push('Missing or invalid capability description');
|
|
132
|
+
}
|
|
133
|
+
if (capability.estimatedCost !== undefined && typeof capability.estimatedCost !== 'number') {
|
|
134
|
+
errors.push('estimatedCost must be a number');
|
|
135
|
+
}
|
|
136
|
+
if (capability.averageLatency !== undefined && typeof capability.averageLatency !== 'number') {
|
|
137
|
+
errors.push('averageLatency must be a number');
|
|
138
|
+
}
|
|
139
|
+
return {
|
|
140
|
+
valid: errors.length === 0,
|
|
141
|
+
errors
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Validates a TaskProposal payload
|
|
146
|
+
*/
|
|
147
|
+
export function validateTaskProposal(proposal) {
|
|
148
|
+
const errors = [];
|
|
149
|
+
if (!proposal.taskId || typeof proposal.taskId !== 'string') {
|
|
150
|
+
errors.push('TaskProposal: Missing or invalid taskId');
|
|
151
|
+
}
|
|
152
|
+
if (!proposal.proposerId || typeof proposal.proposerId !== 'string') {
|
|
153
|
+
errors.push('TaskProposal: Missing or invalid proposerId');
|
|
154
|
+
}
|
|
155
|
+
if (!proposal.description || typeof proposal.description !== 'string') {
|
|
156
|
+
errors.push('TaskProposal: Missing or invalid description');
|
|
157
|
+
}
|
|
158
|
+
if (!proposal.requiredCapability ||
|
|
159
|
+
!Object.values(CapabilityType).includes(proposal.requiredCapability)) {
|
|
160
|
+
errors.push('TaskProposal: Missing or invalid requiredCapability');
|
|
161
|
+
}
|
|
162
|
+
if (!proposal.input || typeof proposal.input !== 'object') {
|
|
163
|
+
errors.push('TaskProposal: Missing or invalid input');
|
|
164
|
+
}
|
|
165
|
+
if (proposal.priority !== undefined) {
|
|
166
|
+
if (typeof proposal.priority !== 'number' ||
|
|
167
|
+
proposal.priority < 1 ||
|
|
168
|
+
proposal.priority > 10) {
|
|
169
|
+
errors.push('TaskProposal: priority must be between 1 and 10');
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
if (proposal.maxLatency !== undefined &&
|
|
173
|
+
(typeof proposal.maxLatency !== 'number' || proposal.maxLatency <= 0)) {
|
|
174
|
+
errors.push('TaskProposal: maxLatency must be a positive number');
|
|
175
|
+
}
|
|
176
|
+
if (proposal.maxCost !== undefined &&
|
|
177
|
+
(typeof proposal.maxCost !== 'number' || proposal.maxCost <= 0)) {
|
|
178
|
+
errors.push('TaskProposal: maxCost must be a positive number');
|
|
179
|
+
}
|
|
180
|
+
if (proposal.deadline !== undefined && !isValidTimestamp(proposal.deadline)) {
|
|
181
|
+
errors.push('TaskProposal: Invalid deadline timestamp');
|
|
182
|
+
}
|
|
183
|
+
return {
|
|
184
|
+
valid: errors.length === 0,
|
|
185
|
+
errors
|
|
186
|
+
};
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Validates a TaskBid payload
|
|
190
|
+
*/
|
|
191
|
+
export function validateTaskBid(bid) {
|
|
192
|
+
const errors = [];
|
|
193
|
+
if (!bid.taskId || typeof bid.taskId !== 'string') {
|
|
194
|
+
errors.push('TaskBid: Missing or invalid taskId');
|
|
195
|
+
}
|
|
196
|
+
if (!bid.bidderId || typeof bid.bidderId !== 'string') {
|
|
197
|
+
errors.push('TaskBid: Missing or invalid bidderId');
|
|
198
|
+
}
|
|
199
|
+
if (typeof bid.estimatedLatency !== 'number' || bid.estimatedLatency <= 0) {
|
|
200
|
+
errors.push('TaskBid: estimatedLatency must be a positive number');
|
|
201
|
+
}
|
|
202
|
+
if (typeof bid.estimatedCost !== 'number' || bid.estimatedCost < 0) {
|
|
203
|
+
errors.push('TaskBid: estimatedCost must be a non-negative number');
|
|
204
|
+
}
|
|
205
|
+
if (typeof bid.confidence !== 'number' || bid.confidence < 0 || bid.confidence > 1) {
|
|
206
|
+
errors.push('TaskBid: confidence must be between 0.0 and 1.0');
|
|
207
|
+
}
|
|
208
|
+
if (typeof bid.queueDepth !== 'number' || bid.queueDepth < 0) {
|
|
209
|
+
errors.push('TaskBid: queueDepth must be a non-negative number');
|
|
210
|
+
}
|
|
211
|
+
if (bid.earliestStartTime !== undefined && !isValidTimestamp(bid.earliestStartTime)) {
|
|
212
|
+
errors.push('TaskBid: Invalid earliestStartTime timestamp');
|
|
213
|
+
}
|
|
214
|
+
return {
|
|
215
|
+
valid: errors.length === 0,
|
|
216
|
+
errors
|
|
217
|
+
};
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* Validates a ContextTransfer payload
|
|
221
|
+
*/
|
|
222
|
+
export function validateContextTransfer(transfer) {
|
|
223
|
+
const errors = [];
|
|
224
|
+
if (!transfer.fromAgent || typeof transfer.fromAgent !== 'string') {
|
|
225
|
+
errors.push('ContextTransfer: Missing or invalid fromAgent');
|
|
226
|
+
}
|
|
227
|
+
if (!transfer.toAgent || typeof transfer.toAgent !== 'string') {
|
|
228
|
+
errors.push('ContextTransfer: Missing or invalid toAgent');
|
|
229
|
+
}
|
|
230
|
+
if (!transfer.taskId || typeof transfer.taskId !== 'string') {
|
|
231
|
+
errors.push('ContextTransfer: Missing or invalid taskId');
|
|
232
|
+
}
|
|
233
|
+
if (!transfer.contextType || typeof transfer.contextType !== 'string') {
|
|
234
|
+
errors.push('ContextTransfer: Missing or invalid contextType');
|
|
235
|
+
}
|
|
236
|
+
if (!transfer.data || typeof transfer.data !== 'object') {
|
|
237
|
+
errors.push('ContextTransfer: Missing or invalid data');
|
|
238
|
+
}
|
|
239
|
+
if (transfer.embedding !== undefined) {
|
|
240
|
+
if (!Array.isArray(transfer.embedding)) {
|
|
241
|
+
errors.push('ContextTransfer: embedding must be an array');
|
|
242
|
+
}
|
|
243
|
+
else if (!transfer.embedding.every((n) => typeof n === 'number')) {
|
|
244
|
+
errors.push('ContextTransfer: embedding must contain only numbers');
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
if (transfer.compression !== undefined) {
|
|
248
|
+
const validCompressions = ['gzip', 'brotli', 'none'];
|
|
249
|
+
if (!validCompressions.includes(transfer.compression)) {
|
|
250
|
+
errors.push('ContextTransfer: Invalid compression format');
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
return {
|
|
254
|
+
valid: errors.length === 0,
|
|
255
|
+
errors
|
|
256
|
+
};
|
|
257
|
+
}
|
|
258
|
+
/**
|
|
259
|
+
* Validates an ErrorMessage payload
|
|
260
|
+
*/
|
|
261
|
+
export function validateErrorMessage(error) {
|
|
262
|
+
const errors = [];
|
|
263
|
+
if (!error.code || typeof error.code !== 'string') {
|
|
264
|
+
errors.push('ErrorMessage: Missing or invalid code');
|
|
265
|
+
}
|
|
266
|
+
if (!error.message || typeof error.message !== 'string') {
|
|
267
|
+
errors.push('ErrorMessage: Missing or invalid message');
|
|
268
|
+
}
|
|
269
|
+
if (typeof error.recoverable !== 'boolean') {
|
|
270
|
+
errors.push('ErrorMessage: recoverable must be a boolean');
|
|
271
|
+
}
|
|
272
|
+
return {
|
|
273
|
+
valid: errors.length === 0,
|
|
274
|
+
errors
|
|
275
|
+
};
|
|
276
|
+
}
|
|
277
|
+
/**
|
|
278
|
+
* Checks if a timestamp is valid ISO 8601 format
|
|
279
|
+
*/
|
|
280
|
+
function isValidTimestamp(timestamp) {
|
|
281
|
+
if (typeof timestamp !== 'string')
|
|
282
|
+
return false;
|
|
283
|
+
const date = new Date(timestamp);
|
|
284
|
+
return !isNaN(date.getTime()) && date.toISOString() === timestamp;
|
|
285
|
+
}
|
|
286
|
+
/**
|
|
287
|
+
* Checks if a protocol version is compatible with this implementation
|
|
288
|
+
*/
|
|
289
|
+
function isCompatibleVersion(version) {
|
|
290
|
+
// Simple major version check (1.x.x is compatible with 1.0.0)
|
|
291
|
+
const [major] = version.split('.');
|
|
292
|
+
const [expectedMajor] = PROTOCOL_VERSION.split('.');
|
|
293
|
+
return major === expectedMajor;
|
|
294
|
+
}
|
|
295
|
+
/**
|
|
296
|
+
* Creates a validation error message
|
|
297
|
+
*/
|
|
298
|
+
export function createValidationError(errors) {
|
|
299
|
+
return {
|
|
300
|
+
code: 'VALIDATION_ERROR',
|
|
301
|
+
message: 'Message validation failed',
|
|
302
|
+
details: { errors },
|
|
303
|
+
recoverable: true
|
|
304
|
+
};
|
|
305
|
+
}
|
|
306
|
+
/**
|
|
307
|
+
* Sanitizes a message by removing invalid fields
|
|
308
|
+
*/
|
|
309
|
+
export function sanitizeMessage(message) {
|
|
310
|
+
const sanitized = {};
|
|
311
|
+
// Copy only valid fields
|
|
312
|
+
if (message.messageId)
|
|
313
|
+
sanitized.messageId = message.messageId;
|
|
314
|
+
if (message.type)
|
|
315
|
+
sanitized.type = message.type;
|
|
316
|
+
if (message.from)
|
|
317
|
+
sanitized.from = message.from;
|
|
318
|
+
if (message.to)
|
|
319
|
+
sanitized.to = message.to;
|
|
320
|
+
if (message.timestamp)
|
|
321
|
+
sanitized.timestamp = message.timestamp;
|
|
322
|
+
if (message.protocolVersion)
|
|
323
|
+
sanitized.protocolVersion = message.protocolVersion;
|
|
324
|
+
if (message.payload)
|
|
325
|
+
sanitized.payload = message.payload;
|
|
326
|
+
if (message.correlationId)
|
|
327
|
+
sanitized.correlationId = message.correlationId;
|
|
328
|
+
if (message.metadata)
|
|
329
|
+
sanitized.metadata = message.metadata;
|
|
330
|
+
return sanitized;
|
|
331
|
+
}
|
|
332
|
+
//# sourceMappingURL=validators.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validators.js","sourceRoot":"","sources":["../../../src/protocol/validators.ts"],"names":[],"mappings":"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"}
|