@mxf-dev/core 2.0.4 → 3.0.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/dist/config/ModelContextLimits.d.ts.map +1 -1
- package/dist/config/ModelContextLimits.js +7 -1
- package/dist/config/ModelContextLimits.js.map +1 -1
- package/dist/constants/CoreTools.d.ts +6 -5
- package/dist/constants/CoreTools.d.ts.map +1 -1
- package/dist/constants/CoreTools.js +6 -5
- package/dist/constants/CoreTools.js.map +1 -1
- package/dist/constants/DefaultPhaseProfiles.d.ts.map +1 -1
- package/dist/constants/DefaultPhaseProfiles.js +29 -0
- package/dist/constants/DefaultPhaseProfiles.js.map +1 -1
- package/dist/constants/ReservedIdentities.d.ts +14 -0
- package/dist/constants/ReservedIdentities.d.ts.map +1 -0
- package/dist/constants/ReservedIdentities.js +42 -0
- package/dist/constants/ReservedIdentities.js.map +1 -0
- package/dist/database/adapters/mongodb/MongoKnowledgeGraphRepository.d.ts +16 -16
- package/dist/database/adapters/mongodb/MongoKnowledgeGraphRepository.d.ts.map +1 -1
- package/dist/database/adapters/mongodb/MongoKnowledgeGraphRepository.js +98 -36
- package/dist/database/adapters/mongodb/MongoKnowledgeGraphRepository.js.map +1 -1
- package/dist/events/ClientEventBus.d.ts +28 -0
- package/dist/events/ClientEventBus.d.ts.map +1 -1
- package/dist/events/ClientEventBus.js +87 -40
- package/dist/events/ClientEventBus.js.map +1 -1
- package/dist/events/EventBus.d.ts +19 -1
- package/dist/events/EventBus.d.ts.map +1 -1
- package/dist/events/EventBus.js +23 -0
- package/dist/events/EventBus.js.map +1 -1
- package/dist/events/EventBusBase.d.ts +37 -6
- package/dist/events/EventBusBase.d.ts.map +1 -1
- package/dist/events/EventBusBase.js +75 -27
- package/dist/events/EventBusBase.js.map +1 -1
- package/dist/events/EventNames.d.ts +49 -36
- package/dist/events/EventNames.d.ts.map +1 -1
- package/dist/events/EventNames.js +38 -36
- package/dist/events/EventNames.js.map +1 -1
- package/dist/events/PublicEvents.d.ts +5 -1
- package/dist/events/PublicEvents.d.ts.map +1 -1
- package/dist/events/PublicEvents.js +7 -0
- package/dist/events/PublicEvents.js.map +1 -1
- package/dist/events/ServerEventBus.d.ts +7 -54
- package/dist/events/ServerEventBus.d.ts.map +1 -1
- package/dist/events/ServerEventBus.js +10 -96
- package/dist/events/ServerEventBus.js.map +1 -1
- package/dist/events/event-definitions/ControlLoopEvents.d.ts +35 -0
- package/dist/events/event-definitions/ControlLoopEvents.d.ts.map +1 -1
- package/dist/events/event-definitions/ControlLoopEvents.js +6 -0
- package/dist/events/event-definitions/ControlLoopEvents.js.map +1 -1
- package/dist/events/event-definitions/SdkEvents.d.ts +55 -0
- package/dist/events/event-definitions/SdkEvents.d.ts.map +1 -0
- package/dist/events/event-definitions/SdkEvents.js +36 -0
- package/dist/events/event-definitions/SdkEvents.js.map +1 -0
- package/dist/events/event-definitions/TaskEvents.d.ts +2 -7
- package/dist/events/event-definitions/TaskEvents.d.ts.map +1 -1
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/interfaces/AgentInterfaces.d.ts +5 -0
- package/dist/interfaces/AgentInterfaces.d.ts.map +1 -1
- package/dist/interfaces/ChannelConfig.d.ts +2 -2
- package/dist/interfaces/ChannelConfig.d.ts.map +1 -1
- package/dist/interfaces/ConversationMessage.d.ts +1 -1
- package/dist/interfaces/ConversationMessage.d.ts.map +1 -1
- package/dist/interfaces/IMemoryPersistence.d.ts +47 -1
- package/dist/interfaces/IMemoryPersistence.d.ts.map +1 -1
- package/dist/interfaces/SocketServiceInterface.d.ts +3 -2
- package/dist/interfaces/SocketServiceInterface.d.ts.map +1 -1
- package/dist/interfaces/TaskInterfaces.d.ts +14 -1
- package/dist/interfaces/TaskInterfaces.d.ts.map +1 -1
- package/dist/models/agent.d.ts +0 -1
- package/dist/models/agent.d.ts.map +1 -1
- package/dist/models/agent.js +0 -5
- package/dist/models/agent.js.map +1 -1
- package/dist/models/agentIdentityReservation.d.ts +42 -0
- package/dist/models/agentIdentityReservation.d.ts.map +1 -0
- package/dist/models/agentIdentityReservation.js +52 -0
- package/dist/models/agentIdentityReservation.js.map +1 -0
- package/dist/models/channel.d.ts +2 -0
- package/dist/models/channel.d.ts.map +1 -1
- package/dist/models/channel.js.map +1 -1
- package/dist/models/channelKey.d.ts +1 -0
- package/dist/models/channelKey.d.ts.map +1 -1
- package/dist/models/channelKey.js +5 -0
- package/dist/models/channelKey.js.map +1 -1
- package/dist/models/memory.d.ts +1 -1
- package/dist/models/memory.d.ts.map +1 -1
- package/dist/models/memory.js +9 -12
- package/dist/models/memory.js.map +1 -1
- package/dist/models/memoryStrata.d.ts +3 -16
- package/dist/models/memoryStrata.d.ts.map +1 -1
- package/dist/models/memoryStrata.js +3 -5
- package/dist/models/memoryStrata.js.map +1 -1
- package/dist/models/plan.d.ts +2 -2
- package/dist/models/plan.d.ts.map +1 -1
- package/dist/models/plan.js +1 -1
- package/dist/models/plan.js.map +1 -1
- package/dist/models/taskEffectiveness.d.ts +1 -0
- package/dist/models/taskEffectiveness.d.ts.map +1 -1
- package/dist/models/taskEffectiveness.js +7 -1
- package/dist/models/taskEffectiveness.js.map +1 -1
- package/dist/models/user.d.ts +4 -0
- package/dist/models/user.d.ts.map +1 -1
- package/dist/models/user.js +8 -0
- package/dist/models/user.js.map +1 -1
- package/dist/protocols/mcp/LlmTestEnvironmentGuard.d.ts +16 -0
- package/dist/protocols/mcp/LlmTestEnvironmentGuard.d.ts.map +1 -0
- package/dist/protocols/mcp/LlmTestEnvironmentGuard.js +25 -0
- package/dist/protocols/mcp/LlmTestEnvironmentGuard.js.map +1 -0
- package/dist/protocols/mcp/McpServerTypes.d.ts +9 -0
- package/dist/protocols/mcp/McpServerTypes.d.ts.map +1 -1
- package/dist/protocols/mcp/providers/AnthropicMcpClient.d.ts.map +1 -1
- package/dist/protocols/mcp/providers/AnthropicMcpClient.js +1 -0
- package/dist/protocols/mcp/providers/AnthropicMcpClient.js.map +1 -1
- package/dist/protocols/mcp/providers/AzureOpenAiMcpClient.d.ts.map +1 -1
- package/dist/protocols/mcp/providers/AzureOpenAiMcpClient.js +1 -0
- package/dist/protocols/mcp/providers/AzureOpenAiMcpClient.js.map +1 -1
- package/dist/protocols/mcp/providers/BaseMcpClient.d.ts +4 -0
- package/dist/protocols/mcp/providers/BaseMcpClient.d.ts.map +1 -1
- package/dist/protocols/mcp/providers/BaseMcpClient.js +10 -0
- package/dist/protocols/mcp/providers/BaseMcpClient.js.map +1 -1
- package/dist/protocols/mcp/providers/CustomMcpClient.d.ts.map +1 -1
- package/dist/protocols/mcp/providers/CustomMcpClient.js +7 -0
- package/dist/protocols/mcp/providers/CustomMcpClient.js.map +1 -1
- package/dist/protocols/mcp/providers/GeminiMcpClient.d.ts.map +1 -1
- package/dist/protocols/mcp/providers/GeminiMcpClient.js +1 -0
- package/dist/protocols/mcp/providers/GeminiMcpClient.js.map +1 -1
- package/dist/protocols/mcp/providers/OllamaMcpClient.d.ts +1 -0
- package/dist/protocols/mcp/providers/OllamaMcpClient.d.ts.map +1 -1
- package/dist/protocols/mcp/providers/OllamaMcpClient.js +1 -0
- package/dist/protocols/mcp/providers/OllamaMcpClient.js.map +1 -1
- package/dist/protocols/mcp/providers/OpenAiMcpClient.d.ts.map +1 -1
- package/dist/protocols/mcp/providers/OpenAiMcpClient.js +1 -0
- package/dist/protocols/mcp/providers/OpenAiMcpClient.js.map +1 -1
- package/dist/protocols/mcp/providers/OpenRouterMcpClient.d.ts.map +1 -1
- package/dist/protocols/mcp/providers/OpenRouterMcpClient.js +2 -0
- package/dist/protocols/mcp/providers/OpenRouterMcpClient.js.map +1 -1
- package/dist/protocols/mcp/providers/XaiMcpClient.d.ts.map +1 -1
- package/dist/protocols/mcp/providers/XaiMcpClient.js +1 -0
- package/dist/protocols/mcp/providers/XaiMcpClient.js.map +1 -1
- package/dist/protocols/mcp/security/BrowserTargetGuard.d.ts +14 -0
- package/dist/protocols/mcp/security/BrowserTargetGuard.d.ts.map +1 -0
- package/dist/protocols/mcp/security/BrowserTargetGuard.js +55 -0
- package/dist/protocols/mcp/security/BrowserTargetGuard.js.map +1 -0
- package/dist/protocols/mcp/security/ExternalMcpRegistrationPolicy.d.ts +24 -0
- package/dist/protocols/mcp/security/ExternalMcpRegistrationPolicy.d.ts.map +1 -0
- package/dist/protocols/mcp/security/ExternalMcpRegistrationPolicy.js +33 -0
- package/dist/protocols/mcp/security/ExternalMcpRegistrationPolicy.js.map +1 -0
- package/dist/protocols/mcp/security/HttpTargetGuard.d.ts.map +1 -1
- package/dist/protocols/mcp/security/HttpTargetGuard.js +68 -6
- package/dist/protocols/mcp/security/HttpTargetGuard.js.map +1 -1
- package/dist/protocols/mcp/security/McpSecurityGuard.d.ts.map +1 -1
- package/dist/protocols/mcp/security/McpSecurityGuard.js +7 -5
- package/dist/protocols/mcp/security/McpSecurityGuard.js.map +1 -1
- package/dist/protocols/mcp/security/McpToolPolicy.d.ts +18 -0
- package/dist/protocols/mcp/security/McpToolPolicy.d.ts.map +1 -1
- package/dist/protocols/mcp/security/McpToolPolicy.js +60 -0
- package/dist/protocols/mcp/security/McpToolPolicy.js.map +1 -1
- package/dist/protocols/mcp/services/ExternalMcpServerManager.d.ts +118 -5
- package/dist/protocols/mcp/services/ExternalMcpServerManager.d.ts.map +1 -1
- package/dist/protocols/mcp/services/ExternalMcpServerManager.js +499 -98
- package/dist/protocols/mcp/services/ExternalMcpServerManager.js.map +1 -1
- package/dist/protocols/mcp/services/ExternalServerConfigs.d.ts +2 -2
- package/dist/protocols/mcp/services/ExternalServerConfigs.d.ts.map +1 -1
- package/dist/protocols/mcp/services/ExternalServerConfigs.js +25 -8
- package/dist/protocols/mcp/services/ExternalServerConfigs.js.map +1 -1
- package/dist/protocols/mcp/tools/AnalyticsTools.d.ts +3 -37
- package/dist/protocols/mcp/tools/AnalyticsTools.d.ts.map +1 -1
- package/dist/protocols/mcp/tools/AnalyticsTools.js +134 -614
- package/dist/protocols/mcp/tools/AnalyticsTools.js.map +1 -1
- package/dist/protocols/mcp/tools/CodeAnalysisTools.d.ts.map +1 -1
- package/dist/protocols/mcp/tools/CodeAnalysisTools.js +16 -13
- package/dist/protocols/mcp/tools/CodeAnalysisTools.js.map +1 -1
- package/dist/protocols/mcp/tools/EffectivenessTools.d.ts.map +1 -1
- package/dist/protocols/mcp/tools/EffectivenessTools.js +94 -30
- package/dist/protocols/mcp/tools/EffectivenessTools.js.map +1 -1
- package/dist/protocols/mcp/tools/GitTools.d.ts.map +1 -1
- package/dist/protocols/mcp/tools/GitTools.js +9 -5
- package/dist/protocols/mcp/tools/GitTools.js.map +1 -1
- package/dist/protocols/mcp/tools/InfrastructureTools.d.ts +10 -40
- package/dist/protocols/mcp/tools/InfrastructureTools.d.ts.map +1 -1
- package/dist/protocols/mcp/tools/InfrastructureTools.js +29 -70
- package/dist/protocols/mcp/tools/InfrastructureTools.js.map +1 -1
- package/dist/protocols/mcp/tools/JsonTools.d.ts.map +1 -1
- package/dist/protocols/mcp/tools/JsonTools.js +4 -4
- package/dist/protocols/mcp/tools/JsonTools.js.map +1 -1
- package/dist/protocols/mcp/tools/KnowledgeGraphTools.d.ts +55 -592
- package/dist/protocols/mcp/tools/KnowledgeGraphTools.d.ts.map +1 -1
- package/dist/protocols/mcp/tools/KnowledgeGraphTools.js +169 -119
- package/dist/protocols/mcp/tools/KnowledgeGraphTools.js.map +1 -1
- package/dist/protocols/mcp/tools/MemorySearchTools.d.ts +6 -6
- package/dist/protocols/mcp/tools/MemorySearchTools.d.ts.map +1 -1
- package/dist/protocols/mcp/tools/MemorySearchTools.js +107 -39
- package/dist/protocols/mcp/tools/MemorySearchTools.js.map +1 -1
- package/dist/protocols/mcp/tools/MemoryUtilityTools.d.ts +4 -5
- package/dist/protocols/mcp/tools/MemoryUtilityTools.d.ts.map +1 -1
- package/dist/protocols/mcp/tools/MemoryUtilityTools.js +59 -208
- package/dist/protocols/mcp/tools/MemoryUtilityTools.js.map +1 -1
- package/dist/protocols/mcp/tools/PlanningTools.d.ts +2 -1
- package/dist/protocols/mcp/tools/PlanningTools.d.ts.map +1 -1
- package/dist/protocols/mcp/tools/PlanningTools.js +111 -49
- package/dist/protocols/mcp/tools/PlanningTools.js.map +1 -1
- package/dist/protocols/mcp/tools/ProjectContextTools.d.ts.map +1 -1
- package/dist/protocols/mcp/tools/ProjectContextTools.js +18 -12
- package/dist/protocols/mcp/tools/ProjectContextTools.js.map +1 -1
- package/dist/protocols/mcp/tools/SafetyTools.d.ts.map +1 -1
- package/dist/protocols/mcp/tools/SafetyTools.js +16 -13
- package/dist/protocols/mcp/tools/SafetyTools.js.map +1 -1
- package/dist/protocols/mcp/tools/SearchProjectTools.d.ts +24 -7
- package/dist/protocols/mcp/tools/SearchProjectTools.d.ts.map +1 -1
- package/dist/protocols/mcp/tools/SearchProjectTools.js +226 -126
- package/dist/protocols/mcp/tools/SearchProjectTools.js.map +1 -1
- package/dist/protocols/mcp/tools/TaskPlanningTools.d.ts +0 -32
- package/dist/protocols/mcp/tools/TaskPlanningTools.d.ts.map +1 -1
- package/dist/protocols/mcp/tools/TaskPlanningTools.js +363 -450
- package/dist/protocols/mcp/tools/TaskPlanningTools.js.map +1 -1
- package/dist/protocols/mcp/tools/TestTools.d.ts.map +1 -1
- package/dist/protocols/mcp/tools/TestTools.js +18 -11
- package/dist/protocols/mcp/tools/TestTools.js.map +1 -1
- package/dist/protocols/mcp/tools/TypeScriptTools.d.ts.map +1 -1
- package/dist/protocols/mcp/tools/TypeScriptTools.js +22 -12
- package/dist/protocols/mcp/tools/TypeScriptTools.js.map +1 -1
- package/dist/protocols/mcp/tools/UserInputTools.d.ts.map +1 -1
- package/dist/protocols/mcp/tools/UserInputTools.js +14 -1
- package/dist/protocols/mcp/tools/UserInputTools.js.map +1 -1
- package/dist/protocols/mcp/tools/UserMemoryTools.d.ts +3 -1
- package/dist/protocols/mcp/tools/UserMemoryTools.d.ts.map +1 -1
- package/dist/protocols/mcp/tools/UserMemoryTools.js +27 -62
- package/dist/protocols/mcp/tools/UserMemoryTools.js.map +1 -1
- package/dist/protocols/mcp/tools/shell/ShellExecuteHandler.d.ts.map +1 -1
- package/dist/protocols/mcp/tools/shell/ShellExecuteHandler.js +14 -60
- package/dist/protocols/mcp/tools/shell/ShellExecuteHandler.js.map +1 -1
- package/dist/protocols/mcp/tools/shell/ShellSandbox.d.ts.map +1 -1
- package/dist/protocols/mcp/tools/shell/ShellSandbox.js +9 -27
- package/dist/protocols/mcp/tools/shell/ShellSandbox.js.map +1 -1
- package/dist/repositories/interfaces/IKnowledgeGraphRepository.d.ts +40 -30
- package/dist/repositories/interfaces/IKnowledgeGraphRepository.d.ts.map +1 -1
- package/dist/schemas/EventPayloadSchema.d.ts +28 -0
- package/dist/schemas/EventPayloadSchema.d.ts.map +1 -1
- package/dist/schemas/EventPayloadSchema.js +30 -1
- package/dist/schemas/EventPayloadSchema.js.map +1 -1
- package/dist/schemas/MxpProtocolSchemas.d.ts +6 -6
- package/dist/services/AgentPerformanceService.d.ts +11 -0
- package/dist/services/AgentPerformanceService.d.ts.map +1 -1
- package/dist/services/AgentPerformanceService.js +59 -33
- package/dist/services/AgentPerformanceService.js.map +1 -1
- package/dist/services/AutoCorrectionService.d.ts +3 -0
- package/dist/services/AutoCorrectionService.d.ts.map +1 -1
- package/dist/services/AutoCorrectionService.js +19 -2
- package/dist/services/AutoCorrectionService.js.map +1 -1
- package/dist/services/BackgroundTaskManager.d.ts +23 -7
- package/dist/services/BackgroundTaskManager.d.ts.map +1 -1
- package/dist/services/BackgroundTaskManager.js +137 -57
- package/dist/services/BackgroundTaskManager.js.map +1 -1
- package/dist/services/BrowserManager.d.ts +2 -0
- package/dist/services/BrowserManager.d.ts.map +1 -1
- package/dist/services/BrowserManager.js +18 -15
- package/dist/services/BrowserManager.js.map +1 -1
- package/dist/services/ChannelContextMemoryOperations.d.ts +8 -1
- package/dist/services/ChannelContextMemoryOperations.d.ts.map +1 -1
- package/dist/services/ChannelContextMemoryOperations.js +89 -165
- package/dist/services/ChannelContextMemoryOperations.js.map +1 -1
- package/dist/services/ChannelContextMessageOperations.d.ts +4 -3
- package/dist/services/ChannelContextMessageOperations.d.ts.map +1 -1
- package/dist/services/ChannelContextMessageOperations.js +72 -212
- package/dist/services/ChannelContextMessageOperations.js.map +1 -1
- package/dist/services/MemoryService.d.ts +52 -21
- package/dist/services/MemoryService.d.ts.map +1 -1
- package/dist/services/MemoryService.js +775 -548
- package/dist/services/MemoryService.js.map +1 -1
- package/dist/services/PatternLearningService.d.ts +5 -0
- package/dist/services/PatternLearningService.d.ts.map +1 -1
- package/dist/services/PatternLearningService.js +26 -3
- package/dist/services/PatternLearningService.js.map +1 -1
- package/dist/services/PerformanceOptimizationService.d.ts +2 -1
- package/dist/services/PerformanceOptimizationService.d.ts.map +1 -1
- package/dist/services/PerformanceOptimizationService.js +21 -6
- package/dist/services/PerformanceOptimizationService.js.map +1 -1
- package/dist/services/PredictiveAnalyticsService.d.ts +1 -0
- package/dist/services/PredictiveAnalyticsService.d.ts.map +1 -1
- package/dist/services/PredictiveAnalyticsService.js +18 -6
- package/dist/services/PredictiveAnalyticsService.js.map +1 -1
- package/dist/services/ProactiveValidationService.d.ts +6 -0
- package/dist/services/ProactiveValidationService.d.ts.map +1 -1
- package/dist/services/ProactiveValidationService.js +58 -39
- package/dist/services/ProactiveValidationService.js.map +1 -1
- package/dist/services/TaskEffectivenessService.d.ts +55 -31
- package/dist/services/TaskEffectivenessService.d.ts.map +1 -1
- package/dist/services/TaskEffectivenessService.js +243 -125
- package/dist/services/TaskEffectivenessService.js.map +1 -1
- package/dist/services/ToolExecutionInterceptor.d.ts +4 -0
- package/dist/services/ToolExecutionInterceptor.d.ts.map +1 -1
- package/dist/services/ToolExecutionInterceptor.js +31 -5
- package/dist/services/ToolExecutionInterceptor.js.map +1 -1
- package/dist/services/UserInputRequestManager.d.ts +13 -3
- package/dist/services/UserInputRequestManager.d.ts.map +1 -1
- package/dist/services/UserInputRequestManager.js +42 -6
- package/dist/services/UserInputRequestManager.js.map +1 -1
- package/dist/services/UserMemoryService.d.ts +2 -0
- package/dist/services/UserMemoryService.d.ts.map +1 -1
- package/dist/services/UserMemoryService.js +9 -4
- package/dist/services/UserMemoryService.js.map +1 -1
- package/dist/services/ValidationAnalyticsService.d.ts +4 -0
- package/dist/services/ValidationAnalyticsService.d.ts.map +1 -1
- package/dist/services/ValidationAnalyticsService.js +30 -8
- package/dist/services/ValidationAnalyticsService.js.map +1 -1
- package/dist/services/ValidationCacheService.d.ts +3 -1
- package/dist/services/ValidationCacheService.d.ts.map +1 -1
- package/dist/services/ValidationCacheService.js +25 -4
- package/dist/services/ValidationCacheService.js.map +1 -1
- package/dist/services/ValidationMiddleware.d.ts +7 -0
- package/dist/services/ValidationMiddleware.d.ts.map +1 -1
- package/dist/services/ValidationMiddleware.js +53 -10
- package/dist/services/ValidationMiddleware.js.map +1 -1
- package/dist/services/ValidationPerformanceService.d.ts +3 -0
- package/dist/services/ValidationPerformanceService.d.ts.map +1 -1
- package/dist/services/ValidationPerformanceService.js +28 -11
- package/dist/services/ValidationPerformanceService.js.map +1 -1
- package/dist/services/WebSearchService.d.ts.map +1 -1
- package/dist/services/WebSearchService.js +9 -0
- package/dist/services/WebSearchService.js.map +1 -1
- package/dist/services/dag/TaskDagService.d.ts +3 -0
- package/dist/services/dag/TaskDagService.d.ts.map +1 -1
- package/dist/services/dag/TaskDagService.js +18 -0
- package/dist/services/dag/TaskDagService.js.map +1 -1
- package/dist/services/kg/EntityQValueManager.d.ts +3 -1
- package/dist/services/kg/EntityQValueManager.d.ts.map +1 -1
- package/dist/services/kg/EntityQValueManager.js +10 -10
- package/dist/services/kg/EntityQValueManager.js.map +1 -1
- package/dist/services/kg/GraphSurpriseCalculator.d.ts +0 -4
- package/dist/services/kg/GraphSurpriseCalculator.d.ts.map +1 -1
- package/dist/services/kg/GraphSurpriseCalculator.js +0 -9
- package/dist/services/kg/GraphSurpriseCalculator.js.map +1 -1
- package/dist/services/kg/KnowledgeGraphService.d.ts +12 -12
- package/dist/services/kg/KnowledgeGraphService.d.ts.map +1 -1
- package/dist/services/kg/KnowledgeGraphService.js +43 -51
- package/dist/services/kg/KnowledgeGraphService.js.map +1 -1
- package/dist/services/kg/OrparGraphIntegration.d.ts.map +1 -1
- package/dist/services/kg/OrparGraphIntegration.js +6 -5
- package/dist/services/kg/OrparGraphIntegration.js.map +1 -1
- package/dist/services/orpar-memory/CycleConsolidationTrigger.d.ts +1 -0
- package/dist/services/orpar-memory/CycleConsolidationTrigger.d.ts.map +1 -1
- package/dist/services/orpar-memory/CycleConsolidationTrigger.js +8 -1
- package/dist/services/orpar-memory/CycleConsolidationTrigger.js.map +1 -1
- package/dist/services/orpar-memory/OrparMemoryCoordinator.d.ts +8 -1
- package/dist/services/orpar-memory/OrparMemoryCoordinator.d.ts.map +1 -1
- package/dist/services/orpar-memory/OrparMemoryCoordinator.js +93 -45
- package/dist/services/orpar-memory/OrparMemoryCoordinator.js.map +1 -1
- package/dist/services/orpar-memory/SurpriseOrparAdapter.d.ts +1 -0
- package/dist/services/orpar-memory/SurpriseOrparAdapter.d.ts.map +1 -1
- package/dist/services/orpar-memory/SurpriseOrparAdapter.js +8 -1
- package/dist/services/orpar-memory/SurpriseOrparAdapter.js.map +1 -1
- package/dist/types/ChannelContext.d.ts +2 -1
- package/dist/types/ChannelContext.d.ts.map +1 -1
- package/dist/types/EffectivenessTypes.d.ts +4 -1
- package/dist/types/EffectivenessTypes.d.ts.map +1 -1
- package/dist/types/TaskCompletionTypes.d.ts +7 -5
- package/dist/types/TaskCompletionTypes.d.ts.map +1 -1
- package/dist/types/TaskTypes.d.ts +8 -1
- package/dist/types/TaskTypes.d.ts.map +1 -1
- package/dist/utils/GlobMatcher.d.ts +37 -0
- package/dist/utils/GlobMatcher.d.ts.map +1 -0
- package/dist/utils/GlobMatcher.js +131 -0
- package/dist/utils/GlobMatcher.js.map +1 -0
- package/package.json +1 -1
- package/src/config/ModelContextLimits.ts +7 -1
- package/src/constants/CoreTools.ts +6 -5
- package/src/constants/DefaultPhaseProfiles.ts +29 -0
- package/src/constants/ReservedIdentities.ts +51 -0
- package/src/database/adapters/mongodb/MongoKnowledgeGraphRepository.ts +115 -36
- package/src/events/ClientEventBus.ts +117 -48
- package/src/events/EventBus.ts +32 -2
- package/src/events/EventBusBase.ts +132 -39
- package/src/events/EventNames.ts +43 -36
- package/src/events/PublicEvents.ts +8 -0
- package/src/events/ServerEventBus.ts +9 -128
- package/src/events/event-definitions/ControlLoopEvents.ts +12 -0
- package/src/events/event-definitions/SdkEvents.ts +58 -0
- package/src/events/event-definitions/TaskEvents.ts +2 -2
- package/src/index.ts +15 -0
- package/src/interfaces/AgentInterfaces.ts +5 -0
- package/src/interfaces/ChannelConfig.ts +2 -2
- package/src/interfaces/ConversationMessage.ts +5 -0
- package/src/interfaces/IMemoryPersistence.ts +55 -1
- package/src/interfaces/SocketServiceInterface.ts +3 -2
- package/src/interfaces/TaskInterfaces.ts +16 -1
- package/src/models/agent.ts +0 -6
- package/src/models/agentIdentityReservation.ts +77 -0
- package/src/models/channel.ts +2 -0
- package/src/models/channelKey.ts +10 -0
- package/src/models/memory.ts +18 -19
- package/src/models/memoryStrata.ts +9 -23
- package/src/models/plan.ts +3 -3
- package/src/models/taskEffectiveness.ts +9 -2
- package/src/models/user.ts +12 -0
- package/src/protocols/mcp/LlmTestEnvironmentGuard.ts +30 -0
- package/src/protocols/mcp/McpServerTypes.ts +9 -0
- package/src/protocols/mcp/providers/AnthropicMcpClient.ts +2 -0
- package/src/protocols/mcp/providers/AzureOpenAiMcpClient.ts +1 -0
- package/src/protocols/mcp/providers/BaseMcpClient.ts +13 -0
- package/src/protocols/mcp/providers/CustomMcpClient.ts +7 -0
- package/src/protocols/mcp/providers/GeminiMcpClient.ts +2 -0
- package/src/protocols/mcp/providers/OllamaMcpClient.ts +3 -1
- package/src/protocols/mcp/providers/OpenAiMcpClient.ts +2 -0
- package/src/protocols/mcp/providers/OpenRouterMcpClient.ts +3 -0
- package/src/protocols/mcp/providers/XaiMcpClient.ts +2 -0
- package/src/protocols/mcp/security/BrowserTargetGuard.ts +64 -0
- package/src/protocols/mcp/security/ExternalMcpRegistrationPolicy.ts +38 -0
- package/src/protocols/mcp/security/HttpTargetGuard.ts +77 -6
- package/src/protocols/mcp/security/McpSecurityGuard.ts +7 -5
- package/src/protocols/mcp/security/McpToolPolicy.ts +74 -0
- package/src/protocols/mcp/services/ExternalMcpServerManager.ts +656 -111
- package/src/protocols/mcp/services/ExternalServerConfigs.ts +26 -8
- package/src/protocols/mcp/tools/AnalyticsTools.ts +167 -641
- package/src/protocols/mcp/tools/CodeAnalysisTools.ts +44 -14
- package/src/protocols/mcp/tools/EffectivenessTools.ts +185 -45
- package/src/protocols/mcp/tools/GitTools.ts +15 -5
- package/src/protocols/mcp/tools/InfrastructureTools.ts +42 -90
- package/src/protocols/mcp/tools/JsonTools.ts +7 -4
- package/src/protocols/mcp/tools/KnowledgeGraphTools.ts +313 -164
- package/src/protocols/mcp/tools/MemorySearchTools.ts +158 -46
- package/src/protocols/mcp/tools/MemoryUtilityTools.ts +85 -232
- package/src/protocols/mcp/tools/PlanningTools.ts +137 -59
- package/src/protocols/mcp/tools/ProjectContextTools.ts +33 -12
- package/src/protocols/mcp/tools/SafetyTools.ts +49 -13
- package/src/protocols/mcp/tools/SearchProjectTools.ts +294 -153
- package/src/protocols/mcp/tools/TaskPlanningTools.ts +437 -514
- package/src/protocols/mcp/tools/TestTools.ts +41 -11
- package/src/protocols/mcp/tools/TypeScriptTools.ts +61 -12
- package/src/protocols/mcp/tools/UserInputTools.ts +15 -1
- package/src/protocols/mcp/tools/UserMemoryTools.ts +27 -62
- package/src/protocols/mcp/tools/shell/ShellExecuteHandler.ts +26 -84
- package/src/protocols/mcp/tools/shell/ShellSandbox.ts +13 -31
- package/src/repositories/interfaces/IKnowledgeGraphRepository.ts +45 -27
- package/src/schemas/EventPayloadSchema.ts +45 -1
- package/src/services/AgentPerformanceService.ts +85 -36
- package/src/services/AutoCorrectionService.ts +25 -6
- package/src/services/BackgroundTaskManager.ts +183 -76
- package/src/services/BrowserManager.ts +20 -16
- package/src/services/ChannelContextMemoryOperations.ts +169 -202
- package/src/services/ChannelContextMessageOperations.ts +112 -274
- package/src/services/MemoryService.ts +1053 -760
- package/src/services/PatternLearningService.ts +32 -7
- package/src/services/PerformanceOptimizationService.ts +26 -9
- package/src/services/PredictiveAnalyticsService.ts +23 -10
- package/src/services/ProactiveValidationService.ts +66 -40
- package/src/services/TaskEffectivenessService.ts +421 -206
- package/src/services/ToolExecutionInterceptor.ts +40 -9
- package/src/services/UserInputRequestManager.ts +51 -6
- package/src/services/UserMemoryService.ts +12 -3
- package/src/services/ValidationAnalyticsService.ts +36 -11
- package/src/services/ValidationCacheService.ts +30 -7
- package/src/services/ValidationMiddleware.ts +62 -14
- package/src/services/ValidationPerformanceService.ts +47 -25
- package/src/services/WebSearchService.ts +16 -4
- package/src/services/dag/TaskDagService.ts +20 -1
- package/src/services/kg/EntityQValueManager.ts +21 -10
- package/src/services/kg/GraphSurpriseCalculator.ts +0 -14
- package/src/services/kg/KnowledgeGraphService.ts +56 -48
- package/src/services/kg/OrparGraphIntegration.ts +11 -5
- package/src/services/orpar-memory/CycleConsolidationTrigger.ts +10 -1
- package/src/services/orpar-memory/OrparMemoryCoordinator.ts +142 -71
- package/src/services/orpar-memory/SurpriseOrparAdapter.ts +10 -1
- package/src/types/ChannelContext.ts +3 -1
- package/src/types/EffectivenessTypes.ts +6 -2
- package/src/types/TaskCompletionTypes.ts +9 -9
- package/src/types/TaskTypes.ts +12 -1
- package/src/utils/GlobMatcher.ts +157 -0
|
@@ -25,6 +25,10 @@
|
|
|
25
25
|
|
|
26
26
|
import { BrowserManager, BrowserConfig } from './BrowserManager.js';
|
|
27
27
|
import { ContentProcessor, OptimizationOptions } from './ContentProcessor.js';
|
|
28
|
+
import {
|
|
29
|
+
installBrowserTargetGuard,
|
|
30
|
+
requireAllowedBrowserTarget
|
|
31
|
+
} from '../protocols/mcp/security/BrowserTargetGuard.js';
|
|
28
32
|
// Type-only: erased at compile time, so puppeteer stays an optional peer dependency.
|
|
29
33
|
import type { Page } from 'puppeteer';
|
|
30
34
|
|
|
@@ -90,6 +94,7 @@ export class WebSearchService {
|
|
|
90
94
|
try {
|
|
91
95
|
// Set user agent
|
|
92
96
|
await page.setUserAgent('Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36');
|
|
97
|
+
await installBrowserTargetGuard(page);
|
|
93
98
|
|
|
94
99
|
// Perform search based on engine
|
|
95
100
|
let results: SearchResult[] = [];
|
|
@@ -131,6 +136,7 @@ export class WebSearchService {
|
|
|
131
136
|
|
|
132
137
|
async navigate(args: WebNavigationArgs): Promise<any> {
|
|
133
138
|
try {
|
|
139
|
+
await requireAllowedBrowserTarget(args.url);
|
|
134
140
|
const browserInstance = await this.browserManager.getBrowser();
|
|
135
141
|
const browser = browserInstance.browser;
|
|
136
142
|
const page = await browser.newPage();
|
|
@@ -138,6 +144,7 @@ export class WebSearchService {
|
|
|
138
144
|
try {
|
|
139
145
|
// Set viewport if needed
|
|
140
146
|
await page.setViewport({ width: 1280, height: 720 });
|
|
147
|
+
await installBrowserTargetGuard(page);
|
|
141
148
|
|
|
142
149
|
// Navigate to URL
|
|
143
150
|
const response = await page.goto(args.url, {
|
|
@@ -223,6 +230,7 @@ export class WebSearchService {
|
|
|
223
230
|
|
|
224
231
|
async screenshot(args: WebScreenshotArgs): Promise<Buffer> {
|
|
225
232
|
try {
|
|
233
|
+
await requireAllowedBrowserTarget(args.url);
|
|
226
234
|
const browserInstance = await this.browserManager.getBrowser();
|
|
227
235
|
const browser = browserInstance.browser;
|
|
228
236
|
const page = await browser.newPage();
|
|
@@ -233,6 +241,7 @@ export class WebSearchService {
|
|
|
233
241
|
width: args.width || 1280,
|
|
234
242
|
height: args.height || 720
|
|
235
243
|
});
|
|
244
|
+
await installBrowserTargetGuard(page);
|
|
236
245
|
|
|
237
246
|
// Navigate to URL
|
|
238
247
|
await page.goto(args.url, {
|
|
@@ -261,7 +270,8 @@ export class WebSearchService {
|
|
|
261
270
|
|
|
262
271
|
private async searchGoogle(page: Page, query: string, maxResults: number): Promise<SearchResult[]> {
|
|
263
272
|
const searchUrl = `https://www.google.com/search?q=${encodeURIComponent(query)}&num=${maxResults}`;
|
|
264
|
-
|
|
273
|
+
|
|
274
|
+
await requireAllowedBrowserTarget(searchUrl);
|
|
265
275
|
await page.goto(searchUrl, { waitUntil: 'networkidle2' });
|
|
266
276
|
|
|
267
277
|
// Extract search results
|
|
@@ -291,7 +301,8 @@ export class WebSearchService {
|
|
|
291
301
|
|
|
292
302
|
private async searchBing(page: Page, query: string, maxResults: number): Promise<SearchResult[]> {
|
|
293
303
|
const searchUrl = `https://www.bing.com/search?q=${encodeURIComponent(query)}&count=${maxResults}`;
|
|
294
|
-
|
|
304
|
+
|
|
305
|
+
await requireAllowedBrowserTarget(searchUrl);
|
|
295
306
|
await page.goto(searchUrl, { waitUntil: 'networkidle2' });
|
|
296
307
|
|
|
297
308
|
// Extract search results
|
|
@@ -320,7 +331,8 @@ export class WebSearchService {
|
|
|
320
331
|
|
|
321
332
|
private async searchDuckDuckGo(page: Page, query: string, maxResults: number): Promise<SearchResult[]> {
|
|
322
333
|
const searchUrl = `https://duckduckgo.com/?q=${encodeURIComponent(query)}`;
|
|
323
|
-
|
|
334
|
+
|
|
335
|
+
await requireAllowedBrowserTarget(searchUrl);
|
|
324
336
|
await page.goto(searchUrl, { waitUntil: 'networkidle2' });
|
|
325
337
|
|
|
326
338
|
// Extract search results
|
|
@@ -380,4 +392,4 @@ export class WebSearchService {
|
|
|
380
392
|
async cleanup(): Promise<void> {
|
|
381
393
|
await this.browserManager.cleanup();
|
|
382
394
|
}
|
|
383
|
-
}
|
|
395
|
+
}
|
|
@@ -107,7 +107,7 @@ interface DagCacheEntry {
|
|
|
107
107
|
* TaskDagService manages Task DAGs for all channels
|
|
108
108
|
*/
|
|
109
109
|
export class TaskDagService {
|
|
110
|
-
private static instance: TaskDagService;
|
|
110
|
+
private static instance: TaskDagService | undefined;
|
|
111
111
|
private logger: Logger;
|
|
112
112
|
private enabled: boolean = false;
|
|
113
113
|
|
|
@@ -119,6 +119,7 @@ export class TaskDagService {
|
|
|
119
119
|
|
|
120
120
|
// Cache cleanup interval
|
|
121
121
|
private cleanupInterval: NodeJS.Timeout | null = null;
|
|
122
|
+
private shutdownComplete = false;
|
|
122
123
|
|
|
123
124
|
private constructor() {
|
|
124
125
|
this.logger = new Logger('info', 'TaskDagService', 'server');
|
|
@@ -135,6 +136,16 @@ export class TaskDagService {
|
|
|
135
136
|
return TaskDagService.instance;
|
|
136
137
|
}
|
|
137
138
|
|
|
139
|
+
/** Stop the live singleton without constructing one solely for teardown. */
|
|
140
|
+
public static shutdownExisting(): boolean {
|
|
141
|
+
const instance = TaskDagService.instance;
|
|
142
|
+
if (!instance) {
|
|
143
|
+
return false;
|
|
144
|
+
}
|
|
145
|
+
instance.shutdown();
|
|
146
|
+
return true;
|
|
147
|
+
}
|
|
148
|
+
|
|
138
149
|
/**
|
|
139
150
|
* Initialize the service
|
|
140
151
|
*/
|
|
@@ -1048,12 +1059,20 @@ export class TaskDagService {
|
|
|
1048
1059
|
* Shutdown the service
|
|
1049
1060
|
*/
|
|
1050
1061
|
public shutdown(): void {
|
|
1062
|
+
if (this.shutdownComplete) {
|
|
1063
|
+
return;
|
|
1064
|
+
}
|
|
1065
|
+
this.shutdownComplete = true;
|
|
1051
1066
|
if (this.cleanupInterval) {
|
|
1052
1067
|
clearInterval(this.cleanupInterval);
|
|
1053
1068
|
this.cleanupInterval = null;
|
|
1054
1069
|
}
|
|
1055
1070
|
this.channelLocks.clear();
|
|
1056
1071
|
this.clearAllCaches();
|
|
1072
|
+
this.enabled = false;
|
|
1073
|
+
if (TaskDagService.instance === this) {
|
|
1074
|
+
TaskDagService.instance = undefined;
|
|
1075
|
+
}
|
|
1057
1076
|
this.logger.info('TaskDagService shutdown complete');
|
|
1058
1077
|
}
|
|
1059
1078
|
}
|
|
@@ -50,6 +50,8 @@ import { createBaseEventPayload } from '../../schemas/EventPayloadSchema.js';
|
|
|
50
50
|
*/
|
|
51
51
|
export interface EntityRewardSignal {
|
|
52
52
|
entityId: string;
|
|
53
|
+
/** Channel the entity belongs to; the update is bound to it. */
|
|
54
|
+
channelId: ChannelId;
|
|
53
55
|
reward: number; // -1 to 1
|
|
54
56
|
reason: string;
|
|
55
57
|
taskId?: string;
|
|
@@ -122,7 +124,7 @@ export class EntityQValueManager {
|
|
|
122
124
|
return null;
|
|
123
125
|
}
|
|
124
126
|
|
|
125
|
-
const entity = await this.repository.getEntity(signal.entityId);
|
|
127
|
+
const entity = await this.repository.getEntity(signal.entityId, signal.channelId);
|
|
126
128
|
if (!entity) {
|
|
127
129
|
this.logger.warn(`Entity not found for Q-value update: ${signal.entityId}`);
|
|
128
130
|
return null;
|
|
@@ -141,7 +143,12 @@ export class EntityQValueManager {
|
|
|
141
143
|
const clampedQValue = Math.max(0, Math.min(1, newQValue));
|
|
142
144
|
|
|
143
145
|
// Update in database
|
|
144
|
-
await this.repository.updateEntityQValue(
|
|
146
|
+
await this.repository.updateEntityQValue(
|
|
147
|
+
signal.entityId,
|
|
148
|
+
signal.channelId,
|
|
149
|
+
clampedQValue,
|
|
150
|
+
signal.reason
|
|
151
|
+
);
|
|
145
152
|
|
|
146
153
|
const result: QValueUpdateResult = {
|
|
147
154
|
entityId: signal.entityId,
|
|
@@ -184,7 +191,7 @@ export class EntityQValueManager {
|
|
|
184
191
|
const updates: Array<{ entityId: string; qValue: number; reason: string }> = [];
|
|
185
192
|
|
|
186
193
|
for (const entityId of entityIds) {
|
|
187
|
-
const entity = await this.repository.getEntity(entityId);
|
|
194
|
+
const entity = await this.repository.getEntity(entityId, channelId);
|
|
188
195
|
if (!entity) continue;
|
|
189
196
|
|
|
190
197
|
const alpha = getQValueLearningRate();
|
|
@@ -208,10 +215,10 @@ export class EntityQValueManager {
|
|
|
208
215
|
|
|
209
216
|
// Batch update
|
|
210
217
|
if (updates.length > 0) {
|
|
211
|
-
await this.repository.batchUpdateQValues(updates);
|
|
218
|
+
await this.repository.batchUpdateQValues(channelId, updates);
|
|
212
219
|
|
|
213
220
|
// Record outcomes for statistics
|
|
214
|
-
await this.repository.recordOutcome(entityIds, taskOutcome.success);
|
|
221
|
+
await this.repository.recordOutcome(channelId, entityIds, taskOutcome.success);
|
|
215
222
|
|
|
216
223
|
// Emit batch event
|
|
217
224
|
this.emitBatchQValueUpdatedEvent(channelId, results, taskOutcome.taskId);
|
|
@@ -251,7 +258,7 @@ export class EntityQValueManager {
|
|
|
251
258
|
}
|
|
252
259
|
|
|
253
260
|
if (updates.length > 0) {
|
|
254
|
-
await this.repository.batchUpdateQValues(updates);
|
|
261
|
+
await this.repository.batchUpdateQValues(channelId, updates);
|
|
255
262
|
this.logger.info(`Decayed Q-values for ${updates.length} unused entities in channel ${channelId}`);
|
|
256
263
|
}
|
|
257
264
|
|
|
@@ -262,19 +269,23 @@ export class EntityQValueManager {
|
|
|
262
269
|
* Boost Q-value for retrieved entities
|
|
263
270
|
* Called when entities are used in context retrieval
|
|
264
271
|
*/
|
|
265
|
-
public async boostRetrievedEntities(
|
|
272
|
+
public async boostRetrievedEntities(
|
|
273
|
+
channelId: ChannelId,
|
|
274
|
+
entityIds: string[],
|
|
275
|
+
boostAmount: number = 0.05
|
|
276
|
+
): Promise<void> {
|
|
266
277
|
if (!this.enabled || entityIds.length === 0) {
|
|
267
278
|
return;
|
|
268
279
|
}
|
|
269
280
|
|
|
270
281
|
// Increment retrieval counts
|
|
271
|
-
await this.repository.incrementRetrievalCount(entityIds);
|
|
282
|
+
await this.repository.incrementRetrievalCount(channelId, entityIds);
|
|
272
283
|
|
|
273
284
|
// Small Q-value boost for being retrieved
|
|
274
285
|
const updates: Array<{ entityId: string; qValue: number; reason: string }> = [];
|
|
275
286
|
|
|
276
287
|
for (const entityId of entityIds) {
|
|
277
|
-
const entity = await this.repository.getEntity(entityId);
|
|
288
|
+
const entity = await this.repository.getEntity(entityId, channelId);
|
|
278
289
|
if (entity) {
|
|
279
290
|
const newQValue = Math.min(1, entity.utility.qValue + boostAmount);
|
|
280
291
|
if (newQValue !== entity.utility.qValue) {
|
|
@@ -288,7 +299,7 @@ export class EntityQValueManager {
|
|
|
288
299
|
}
|
|
289
300
|
|
|
290
301
|
if (updates.length > 0) {
|
|
291
|
-
await this.repository.batchUpdateQValues(updates);
|
|
302
|
+
await this.repository.batchUpdateQValues(channelId, updates);
|
|
292
303
|
}
|
|
293
304
|
}
|
|
294
305
|
|
|
@@ -309,20 +309,6 @@ export class GraphSurpriseCalculator {
|
|
|
309
309
|
return analyses.sort((a, b) => b.surpriseScore - a.surpriseScore);
|
|
310
310
|
}
|
|
311
311
|
|
|
312
|
-
/**
|
|
313
|
-
* Update surprise score for a relationship after analysis
|
|
314
|
-
*/
|
|
315
|
-
public async updateRelationshipSurprise(
|
|
316
|
-
relationshipId: string,
|
|
317
|
-
surpriseScore: number
|
|
318
|
-
): Promise<void> {
|
|
319
|
-
if (!this.enabled) {
|
|
320
|
-
return;
|
|
321
|
-
}
|
|
322
|
-
|
|
323
|
-
await this.repository.updateRelationship(relationshipId, { surpriseScore });
|
|
324
|
-
}
|
|
325
|
-
|
|
326
312
|
/**
|
|
327
313
|
* Emit high surprise relationship event
|
|
328
314
|
*/
|
|
@@ -176,12 +176,12 @@ export class KnowledgeGraphService {
|
|
|
176
176
|
/**
|
|
177
177
|
* Get entity by ID
|
|
178
178
|
*/
|
|
179
|
-
public async getEntity(entityId: string): Promise<Entity | null> {
|
|
179
|
+
public async getEntity(entityId: string, channelId?: ChannelId): Promise<Entity | null> {
|
|
180
180
|
if (!this.enabled) {
|
|
181
181
|
return null;
|
|
182
182
|
}
|
|
183
183
|
|
|
184
|
-
return this.repository.getEntity(entityId);
|
|
184
|
+
return this.repository.getEntity(entityId, channelId);
|
|
185
185
|
}
|
|
186
186
|
|
|
187
187
|
/**
|
|
@@ -219,6 +219,7 @@ export class KnowledgeGraphService {
|
|
|
219
219
|
*/
|
|
220
220
|
public async updateEntity(
|
|
221
221
|
entityId: string,
|
|
222
|
+
channelId: ChannelId,
|
|
222
223
|
updates: Partial<Entity>,
|
|
223
224
|
updatedBy?: AgentId
|
|
224
225
|
): Promise<Entity | null> {
|
|
@@ -226,12 +227,12 @@ export class KnowledgeGraphService {
|
|
|
226
227
|
return null;
|
|
227
228
|
}
|
|
228
229
|
|
|
229
|
-
const original = await this.repository.getEntity(entityId);
|
|
230
|
+
const original = await this.repository.getEntity(entityId, channelId);
|
|
230
231
|
if (!original) {
|
|
231
232
|
return null;
|
|
232
233
|
}
|
|
233
234
|
|
|
234
|
-
const updated = await this.repository.updateEntity(entityId, updates);
|
|
235
|
+
const updated = await this.repository.updateEntity(entityId, channelId, updates);
|
|
235
236
|
|
|
236
237
|
if (updated) {
|
|
237
238
|
// Build changes object
|
|
@@ -261,6 +262,7 @@ export class KnowledgeGraphService {
|
|
|
261
262
|
*/
|
|
262
263
|
public async deleteEntity(
|
|
263
264
|
entityId: string,
|
|
265
|
+
channelId: ChannelId,
|
|
264
266
|
deletedBy?: AgentId,
|
|
265
267
|
reason?: string
|
|
266
268
|
): Promise<boolean> {
|
|
@@ -268,12 +270,12 @@ export class KnowledgeGraphService {
|
|
|
268
270
|
return false;
|
|
269
271
|
}
|
|
270
272
|
|
|
271
|
-
const entity = await this.repository.getEntity(entityId);
|
|
273
|
+
const entity = await this.repository.getEntity(entityId, channelId);
|
|
272
274
|
if (!entity) {
|
|
273
275
|
return false;
|
|
274
276
|
}
|
|
275
277
|
|
|
276
|
-
const deleted = await this.repository.deleteEntity(entityId);
|
|
278
|
+
const deleted = await this.repository.deleteEntity(entityId, channelId);
|
|
277
279
|
|
|
278
280
|
if (deleted) {
|
|
279
281
|
this.emitEvent(KnowledgeGraphEvents.ENTITY_DELETED, entity.channelId, deletedBy || 'system', {
|
|
@@ -293,13 +295,18 @@ export class KnowledgeGraphService {
|
|
|
293
295
|
public async mergeEntities(
|
|
294
296
|
targetEntityId: string,
|
|
295
297
|
sourceEntityIds: string[],
|
|
296
|
-
mergedBy?: AgentId
|
|
298
|
+
mergedBy?: AgentId,
|
|
299
|
+
channelId?: ChannelId
|
|
297
300
|
): Promise<EntityMergeResult> {
|
|
298
301
|
if (!this.enabled) {
|
|
299
302
|
return { success: false, sourceEntityIds, error: 'Knowledge Graph not enabled' };
|
|
300
303
|
}
|
|
301
304
|
|
|
302
|
-
const result = await this.repository.mergeEntities(
|
|
305
|
+
const result = await this.repository.mergeEntities(
|
|
306
|
+
targetEntityId,
|
|
307
|
+
sourceEntityIds,
|
|
308
|
+
channelId
|
|
309
|
+
);
|
|
303
310
|
|
|
304
311
|
if (result.success && result.mergedEntity) {
|
|
305
312
|
this.emitEvent(
|
|
@@ -399,6 +406,7 @@ export class KnowledgeGraphService {
|
|
|
399
406
|
*/
|
|
400
407
|
public async updateRelationship(
|
|
401
408
|
relationshipId: string,
|
|
409
|
+
channelId: ChannelId,
|
|
402
410
|
updates: Partial<Relationship>,
|
|
403
411
|
updatedBy?: AgentId
|
|
404
412
|
): Promise<Relationship | null> {
|
|
@@ -407,11 +415,11 @@ export class KnowledgeGraphService {
|
|
|
407
415
|
}
|
|
408
416
|
|
|
409
417
|
const original = await this.repository.getRelationship(relationshipId);
|
|
410
|
-
if (!original) {
|
|
418
|
+
if (!original || original.channelId !== channelId) {
|
|
411
419
|
return null;
|
|
412
420
|
}
|
|
413
421
|
|
|
414
|
-
const updated = await this.repository.updateRelationship(relationshipId, updates);
|
|
422
|
+
const updated = await this.repository.updateRelationship(relationshipId, channelId, updates);
|
|
415
423
|
|
|
416
424
|
if (updated) {
|
|
417
425
|
const changes: Record<string, { old: any; new: any }> = {};
|
|
@@ -445,6 +453,7 @@ export class KnowledgeGraphService {
|
|
|
445
453
|
*/
|
|
446
454
|
public async deleteRelationship(
|
|
447
455
|
relationshipId: string,
|
|
456
|
+
channelId: ChannelId,
|
|
448
457
|
deletedBy?: AgentId,
|
|
449
458
|
reason?: string
|
|
450
459
|
): Promise<boolean> {
|
|
@@ -453,11 +462,11 @@ export class KnowledgeGraphService {
|
|
|
453
462
|
}
|
|
454
463
|
|
|
455
464
|
const relationship = await this.repository.getRelationship(relationshipId);
|
|
456
|
-
if (!relationship) {
|
|
465
|
+
if (!relationship || relationship.channelId !== channelId) {
|
|
457
466
|
return false;
|
|
458
467
|
}
|
|
459
468
|
|
|
460
|
-
const deleted = await this.repository.deleteRelationship(relationshipId);
|
|
469
|
+
const deleted = await this.repository.deleteRelationship(relationshipId, channelId);
|
|
461
470
|
|
|
462
471
|
if (deleted) {
|
|
463
472
|
this.emitEvent(
|
|
@@ -518,13 +527,14 @@ export class KnowledgeGraphService {
|
|
|
518
527
|
entityType?: EntityType | EntityType[];
|
|
519
528
|
maxDepth?: number;
|
|
520
529
|
limit?: number;
|
|
521
|
-
}
|
|
530
|
+
},
|
|
531
|
+
channelId?: ChannelId
|
|
522
532
|
): Promise<{ entities: Entity[]; relationships: Relationship[] }> {
|
|
523
533
|
if (!this.enabled) {
|
|
524
534
|
return { entities: [], relationships: [] };
|
|
525
535
|
}
|
|
526
536
|
|
|
527
|
-
return this.repository.getNeighbors(entityId, options);
|
|
537
|
+
return this.repository.getNeighbors(entityId, options, channelId);
|
|
528
538
|
}
|
|
529
539
|
|
|
530
540
|
/**
|
|
@@ -533,13 +543,14 @@ export class KnowledgeGraphService {
|
|
|
533
543
|
public async findPath(
|
|
534
544
|
fromEntityId: string,
|
|
535
545
|
toEntityId: string,
|
|
536
|
-
maxHops?: number
|
|
546
|
+
maxHops?: number,
|
|
547
|
+
channelId?: ChannelId
|
|
537
548
|
): Promise<GraphPath | null> {
|
|
538
549
|
if (!this.enabled) {
|
|
539
550
|
return null;
|
|
540
551
|
}
|
|
541
552
|
|
|
542
|
-
return this.repository.findPath(fromEntityId, toEntityId, maxHops);
|
|
553
|
+
return this.repository.findPath(fromEntityId, toEntityId, maxHops, channelId);
|
|
543
554
|
}
|
|
544
555
|
|
|
545
556
|
/**
|
|
@@ -547,13 +558,14 @@ export class KnowledgeGraphService {
|
|
|
547
558
|
*/
|
|
548
559
|
public async getEntityContext(
|
|
549
560
|
entityId: string,
|
|
550
|
-
depth?: number
|
|
561
|
+
depth?: number,
|
|
562
|
+
channelId?: ChannelId
|
|
551
563
|
): Promise<{ entities: Entity[]; relationships: Relationship[] }> {
|
|
552
564
|
if (!this.enabled) {
|
|
553
565
|
return { entities: [], relationships: [] };
|
|
554
566
|
}
|
|
555
567
|
|
|
556
|
-
return this.repository.getSubgraph(entityId, depth);
|
|
568
|
+
return this.repository.getSubgraph(entityId, depth, undefined, channelId);
|
|
557
569
|
}
|
|
558
570
|
|
|
559
571
|
/**
|
|
@@ -599,6 +611,7 @@ export class KnowledgeGraphService {
|
|
|
599
611
|
* Uses batch queries to avoid N+1 database calls.
|
|
600
612
|
*/
|
|
601
613
|
public async findConnections(
|
|
614
|
+
channelId: ChannelId,
|
|
602
615
|
entityIds: string[],
|
|
603
616
|
maxHops?: number
|
|
604
617
|
): Promise<{ entities: Entity[]; relationships: Relationship[]; paths: GraphPath[] }> {
|
|
@@ -616,7 +629,8 @@ export class KnowledgeGraphService {
|
|
|
616
629
|
entityIds[i],
|
|
617
630
|
entityIds[j],
|
|
618
631
|
maxHops ?? 3,
|
|
619
|
-
5
|
|
632
|
+
5,
|
|
633
|
+
channelId
|
|
620
634
|
);
|
|
621
635
|
allPaths.push(...paths);
|
|
622
636
|
|
|
@@ -630,10 +644,10 @@ export class KnowledgeGraphService {
|
|
|
630
644
|
}
|
|
631
645
|
|
|
632
646
|
// Batch fetch all entities in one query instead of N individual calls
|
|
633
|
-
const entities = await this.repository.getEntitiesByIds(Array.from(entitySet));
|
|
647
|
+
const entities = await this.repository.getEntitiesByIds(channelId, Array.from(entitySet));
|
|
634
648
|
|
|
635
649
|
// Batch fetch all relationships involving these entities in one query
|
|
636
|
-
const allRels = await this.repository.getRelationshipsByEntityIds(Array.from(entitySet));
|
|
650
|
+
const allRels = await this.repository.getRelationshipsByEntityIds(channelId, Array.from(entitySet));
|
|
637
651
|
|
|
638
652
|
// Filter to only relationships where both endpoints are in our entity set
|
|
639
653
|
const seenRelIds = new Set<string>();
|
|
@@ -665,6 +679,7 @@ export class KnowledgeGraphService {
|
|
|
665
679
|
*/
|
|
666
680
|
public async updateEntityQValue(
|
|
667
681
|
entityId: string,
|
|
682
|
+
channelId: ChannelId,
|
|
668
683
|
reward: number,
|
|
669
684
|
reason: string
|
|
670
685
|
): Promise<Entity | null> {
|
|
@@ -672,7 +687,7 @@ export class KnowledgeGraphService {
|
|
|
672
687
|
return null;
|
|
673
688
|
}
|
|
674
689
|
|
|
675
|
-
const entity = await this.repository.getEntity(entityId);
|
|
690
|
+
const entity = await this.repository.getEntity(entityId, channelId);
|
|
676
691
|
if (!entity) {
|
|
677
692
|
return null;
|
|
678
693
|
}
|
|
@@ -682,7 +697,7 @@ export class KnowledgeGraphService {
|
|
|
682
697
|
const oldQValue = entity.utility.qValue;
|
|
683
698
|
const newQValue = oldQValue + alpha * (reward - oldQValue);
|
|
684
699
|
|
|
685
|
-
const updated = await this.repository.updateEntityQValue(entityId, newQValue, reason);
|
|
700
|
+
const updated = await this.repository.updateEntityQValue(entityId, channelId, newQValue, reason);
|
|
686
701
|
|
|
687
702
|
if (updated) {
|
|
688
703
|
this.emitEvent(
|
|
@@ -706,6 +721,7 @@ export class KnowledgeGraphService {
|
|
|
706
721
|
* Propagate reward to entities involved in a task
|
|
707
722
|
*/
|
|
708
723
|
public async propagateReward(
|
|
724
|
+
channelId: ChannelId,
|
|
709
725
|
entityIds: string[],
|
|
710
726
|
reward: number,
|
|
711
727
|
taskId?: string
|
|
@@ -716,13 +732,10 @@ export class KnowledgeGraphService {
|
|
|
716
732
|
|
|
717
733
|
const updates: Array<{ entityId: string; qValue: number; reason: string }> = [];
|
|
718
734
|
const alpha = getQValueLearningRate();
|
|
719
|
-
let channelId: ChannelId | null = null;
|
|
720
735
|
|
|
721
736
|
for (const entityId of entityIds) {
|
|
722
|
-
const entity = await this.repository.getEntity(entityId);
|
|
737
|
+
const entity = await this.repository.getEntity(entityId, channelId);
|
|
723
738
|
if (entity) {
|
|
724
|
-
if (!channelId) channelId = entity.channelId;
|
|
725
|
-
|
|
726
739
|
const newQValue = entity.utility.qValue + alpha * (reward - entity.utility.qValue);
|
|
727
740
|
updates.push({
|
|
728
741
|
entityId,
|
|
@@ -733,32 +746,27 @@ export class KnowledgeGraphService {
|
|
|
733
746
|
}
|
|
734
747
|
|
|
735
748
|
if (updates.length > 0) {
|
|
736
|
-
await this.repository.batchUpdateQValues(updates);
|
|
749
|
+
await this.repository.batchUpdateQValues(channelId, updates);
|
|
737
750
|
|
|
738
751
|
// Record outcome
|
|
739
|
-
await this.repository.recordOutcome(entityIds, reward > 0.5);
|
|
752
|
+
await this.repository.recordOutcome(channelId, entityIds, reward > 0.5);
|
|
740
753
|
|
|
741
754
|
// Emit batch update event
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
755
|
+
this.emitEvent(
|
|
756
|
+
KnowledgeGraphEvents.ENTITY_QVALUE_BATCH_UPDATED,
|
|
757
|
+
channelId,
|
|
758
|
+
'system',
|
|
759
|
+
{
|
|
745
760
|
channelId,
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
};
|
|
756
|
-
}),
|
|
757
|
-
reason: taskId ? `Task ${taskId} outcome` : 'Reward propagation',
|
|
758
|
-
taskId,
|
|
759
|
-
}
|
|
760
|
-
);
|
|
761
|
-
}
|
|
761
|
+
updates: updates.map((u) => ({
|
|
762
|
+
entityId: u.entityId,
|
|
763
|
+
oldQValue: 0, // We don't track old values in batch
|
|
764
|
+
newQValue: u.qValue,
|
|
765
|
+
})),
|
|
766
|
+
reason: taskId ? `Task ${taskId} outcome` : 'Reward propagation',
|
|
767
|
+
taskId,
|
|
768
|
+
}
|
|
769
|
+
);
|
|
762
770
|
}
|
|
763
771
|
}
|
|
764
772
|
|
|
@@ -236,7 +236,11 @@ export class OrparGraphIntegration {
|
|
|
236
236
|
// Get relationships between matching entities
|
|
237
237
|
const relationships: Relationship[] = [];
|
|
238
238
|
for (const entity of matchingEntities) {
|
|
239
|
-
const neighbors = await this.kgService.getNeighbors(
|
|
239
|
+
const neighbors = await this.kgService.getNeighbors(
|
|
240
|
+
entity.id,
|
|
241
|
+
{ limit: 5 },
|
|
242
|
+
channelId
|
|
243
|
+
);
|
|
240
244
|
for (const rel of neighbors.relationships) {
|
|
241
245
|
if (!relationships.find((r) => r.id === rel.id)) {
|
|
242
246
|
relationships.push(rel);
|
|
@@ -300,7 +304,7 @@ export class OrparGraphIntegration {
|
|
|
300
304
|
}
|
|
301
305
|
|
|
302
306
|
for (const entityId of centralEntityIds) {
|
|
303
|
-
const subgraph = await this.kgService.getEntityContext(entityId, 2);
|
|
307
|
+
const subgraph = await this.kgService.getEntityContext(entityId, 2, channelId);
|
|
304
308
|
for (const entity of subgraph.entities) {
|
|
305
309
|
if (!allEntities.find((e) => e.id === entity.id)) {
|
|
306
310
|
allEntities.push(entity);
|
|
@@ -320,7 +324,8 @@ export class OrparGraphIntegration {
|
|
|
320
324
|
const path = await this.kgService.findPath(
|
|
321
325
|
centralEntityIds[i],
|
|
322
326
|
centralEntityIds[i + 1],
|
|
323
|
-
3
|
|
327
|
+
3,
|
|
328
|
+
channelId
|
|
324
329
|
);
|
|
325
330
|
if (path) {
|
|
326
331
|
const fromEntity = allEntities.find((e) => e.id === centralEntityIds[i]);
|
|
@@ -400,7 +405,7 @@ export class OrparGraphIntegration {
|
|
|
400
405
|
|
|
401
406
|
// Get entities and their dependencies
|
|
402
407
|
for (const entityId of taskEntityIds) {
|
|
403
|
-
const entity = await this.kgService.getEntity(entityId);
|
|
408
|
+
const entity = await this.kgService.getEntity(entityId, channelId);
|
|
404
409
|
if (entity) {
|
|
405
410
|
entities.push(entity);
|
|
406
411
|
|
|
@@ -408,7 +413,7 @@ export class OrparGraphIntegration {
|
|
|
408
413
|
const neighbors = await this.kgService.getNeighbors(entityId, {
|
|
409
414
|
direction: 'both',
|
|
410
415
|
limit: 20,
|
|
411
|
-
});
|
|
416
|
+
}, channelId);
|
|
412
417
|
|
|
413
418
|
for (const rel of neighbors.relationships) {
|
|
414
419
|
if (!relationships.find((r) => r.id === rel.id)) {
|
|
@@ -544,6 +549,7 @@ export class OrparGraphIntegration {
|
|
|
544
549
|
for (const qUpdate of update.qValueUpdates) {
|
|
545
550
|
const result = await this.qValueManager.updateEntityQValue({
|
|
546
551
|
entityId: qUpdate.entityId,
|
|
552
|
+
channelId,
|
|
547
553
|
reward: qUpdate.reward,
|
|
548
554
|
reason: qUpdate.reason,
|
|
549
555
|
});
|
|
@@ -37,6 +37,7 @@
|
|
|
37
37
|
*/
|
|
38
38
|
|
|
39
39
|
import { createBaseEventPayload } from '../../schemas/EventPayloadSchema.js';
|
|
40
|
+
import type { Subscription } from 'rxjs';
|
|
40
41
|
import { Logger } from '../../utils/Logger.js';
|
|
41
42
|
import { EventBus } from '../../events/EventBus.js';
|
|
42
43
|
import { Events, ControlLoopEvents } from '../../events/EventNames.js';
|
|
@@ -88,6 +89,7 @@ export class CycleConsolidationTrigger {
|
|
|
88
89
|
private qValueManager: QValueManager;
|
|
89
90
|
private enabled: boolean = false;
|
|
90
91
|
private rules: ConsolidationRule[];
|
|
92
|
+
private cycleCompletedSubscription?: Subscription;
|
|
91
93
|
|
|
92
94
|
// Track success/failure counts per memory
|
|
93
95
|
private memorySuccessCounts: Map<string, number> = new Map();
|
|
@@ -132,8 +134,13 @@ export class CycleConsolidationTrigger {
|
|
|
132
134
|
* Setup event listeners for ORPAR cycle completion
|
|
133
135
|
*/
|
|
134
136
|
private setupEventListeners(): void {
|
|
137
|
+
if (this.cycleCompletedSubscription && !this.cycleCompletedSubscription.closed) {
|
|
138
|
+
return;
|
|
139
|
+
}
|
|
140
|
+
this.cycleCompletedSubscription = undefined;
|
|
141
|
+
|
|
135
142
|
// Listen to cycle completed events
|
|
136
|
-
EventBus.server.on(OrparMemoryEvents.CYCLE_COMPLETED, async
|
|
143
|
+
this.cycleCompletedSubscription = EventBus.server.on(OrparMemoryEvents.CYCLE_COMPLETED, async payload => {
|
|
137
144
|
if (this.enabled) {
|
|
138
145
|
await this.onCycleCompleted(payload);
|
|
139
146
|
}
|
|
@@ -686,6 +693,8 @@ export class CycleConsolidationTrigger {
|
|
|
686
693
|
*/
|
|
687
694
|
public reset(): void {
|
|
688
695
|
this.enabled = false;
|
|
696
|
+
this.cycleCompletedSubscription?.unsubscribe();
|
|
697
|
+
this.cycleCompletedSubscription = undefined;
|
|
689
698
|
this.rules = DEFAULT_CONSOLIDATION_RULES;
|
|
690
699
|
this.memorySuccessCounts.clear();
|
|
691
700
|
this.memoryFailureCounts.clear();
|