@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
|
@@ -39,7 +39,13 @@ const DEFAULT_CONTEXT_LIMIT = 128_000;
|
|
|
39
39
|
* then walks prefixes so "claude-3.5-sonnet-20241022" matches "claude-3.5-sonnet".
|
|
40
40
|
*/
|
|
41
41
|
const MODEL_CONTEXT_LIMITS: Record<string, number> = {
|
|
42
|
-
// Claude models
|
|
42
|
+
// Claude models. The `-latest` rows are OpenRouter's `~anthropic/...-latest`
|
|
43
|
+
// aliases, which resolve to the newest model in each family. Windows are
|
|
44
|
+
// as OpenRouter listed them on 2026-08-21; they move with each release.
|
|
45
|
+
'claude-fable-latest': 1_000_000,
|
|
46
|
+
'claude-opus-latest': 1_000_000,
|
|
47
|
+
'claude-sonnet-latest': 1_000_000,
|
|
48
|
+
'claude-haiku-latest': 200_000,
|
|
43
49
|
'claude-opus-4': 200_000,
|
|
44
50
|
'claude-sonnet-4': 200_000,
|
|
45
51
|
'claude-3.5-sonnet': 200_000,
|
|
@@ -19,18 +19,19 @@
|
|
|
19
19
|
*/
|
|
20
20
|
|
|
21
21
|
/**
|
|
22
|
-
* Core MXF Tools - Essential tools
|
|
22
|
+
* Core MXF Tools - Essential tools available when allowedTools is omitted
|
|
23
23
|
*
|
|
24
24
|
* These tools provide a curated selection that demonstrates the MXF ecosystem
|
|
25
25
|
* without overwhelming agents with all 180+ available tools.
|
|
26
26
|
*
|
|
27
|
-
* IMPORTANT: allowedTools always takes priority
|
|
28
|
-
*
|
|
27
|
+
* IMPORTANT: allowedTools always takes priority when specified. An explicit
|
|
28
|
+
* empty array denies every tool; this core set is used only when the policy is
|
|
29
|
+
* undefined.
|
|
29
30
|
*/
|
|
30
31
|
|
|
31
32
|
/**
|
|
32
|
-
* Essential core MXF tools
|
|
33
|
-
*
|
|
33
|
+
* Essential core MXF tools available as the fallback when allowedTools is
|
|
34
|
+
* undefined.
|
|
34
35
|
*/
|
|
35
36
|
export const CORE_MXF_TOOLS = [
|
|
36
37
|
// Meta-discovery tools (most important - gateway to other tools)
|
|
@@ -560,6 +560,13 @@ export const MODEL_COST_ESTIMATES: Record<string, ParameterCostEstimate> = {
|
|
|
560
560
|
outputCostPer1k: 0.00125,
|
|
561
561
|
tier: 'budget'
|
|
562
562
|
},
|
|
563
|
+
// OpenRouter `~anthropic/...-latest` aliases resolve to the newest model in
|
|
564
|
+
// each family; these rows carry the family's current rate.
|
|
565
|
+
'~anthropic/claude-haiku-latest': {
|
|
566
|
+
inputCostPer1k: 0.00100,
|
|
567
|
+
outputCostPer1k: 0.00500,
|
|
568
|
+
tier: 'budget'
|
|
569
|
+
},
|
|
563
570
|
|
|
564
571
|
// Standard tier (under $5.00/1M tokens)
|
|
565
572
|
'google/gemini-2.5-pro': {
|
|
@@ -582,6 +589,12 @@ export const MODEL_COST_ESTIMATES: Record<string, ParameterCostEstimate> = {
|
|
|
582
589
|
reasoningCostPer1k: 0.01500,
|
|
583
590
|
tier: 'premium'
|
|
584
591
|
},
|
|
592
|
+
'~anthropic/claude-sonnet-latest': {
|
|
593
|
+
inputCostPer1k: 0.00200,
|
|
594
|
+
outputCostPer1k: 0.01000,
|
|
595
|
+
reasoningCostPer1k: 0.01000,
|
|
596
|
+
tier: 'premium'
|
|
597
|
+
},
|
|
585
598
|
'openai/gpt-4.1': {
|
|
586
599
|
inputCostPer1k: 0.00250,
|
|
587
600
|
outputCostPer1k: 0.01000,
|
|
@@ -595,6 +608,22 @@ export const MODEL_COST_ESTIMATES: Record<string, ParameterCostEstimate> = {
|
|
|
595
608
|
outputCostPer1k: 0.07500,
|
|
596
609
|
reasoningCostPer1k: 0.07500,
|
|
597
610
|
tier: 'ultra_premium'
|
|
611
|
+
},
|
|
612
|
+
// The `~anthropic/...-latest` alias rows carry the rates OpenRouter listed
|
|
613
|
+
// for them on 2026-08-21 (USD per 1k tokens); they move with each release.
|
|
614
|
+
'~anthropic/claude-opus-latest': {
|
|
615
|
+
inputCostPer1k: 0.00500,
|
|
616
|
+
outputCostPer1k: 0.02500,
|
|
617
|
+
reasoningCostPer1k: 0.02500,
|
|
618
|
+
tier: 'ultra_premium'
|
|
619
|
+
},
|
|
620
|
+
// Listed so a configured fable model is priced; nothing in the framework,
|
|
621
|
+
// demos, or tests selects it.
|
|
622
|
+
'~anthropic/claude-fable-latest': {
|
|
623
|
+
inputCostPer1k: 0.01000,
|
|
624
|
+
outputCostPer1k: 0.05000,
|
|
625
|
+
reasoningCostPer1k: 0.05000,
|
|
626
|
+
tier: 'ultra_premium'
|
|
598
627
|
}
|
|
599
628
|
};
|
|
600
629
|
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Identifiers used by MXF as internal routing sentinels.
|
|
3
|
+
*
|
|
4
|
+
* Agent and channel ids are also socket-routing coordinates. Letting an
|
|
5
|
+
* external tenant claim one of these values would turn a framework-emitted
|
|
6
|
+
* event into traffic for that tenant's socket. Comparisons are intentionally
|
|
7
|
+
* case-insensitive so visually equivalent aliases cannot be persisted and
|
|
8
|
+
* later confused with an internal principal.
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
const RESERVED_AGENT_IDS = new Set([
|
|
12
|
+
'system',
|
|
13
|
+
'system_agent',
|
|
14
|
+
'sdk_system_agent',
|
|
15
|
+
'system-service',
|
|
16
|
+
'mxf-server'
|
|
17
|
+
]);
|
|
18
|
+
|
|
19
|
+
const RESERVED_CHANNEL_IDS = new Set([
|
|
20
|
+
'system',
|
|
21
|
+
'no_channel',
|
|
22
|
+
'global',
|
|
23
|
+
'config_channel'
|
|
24
|
+
]);
|
|
25
|
+
|
|
26
|
+
const normalizeIdentity = (value: unknown): string | null => {
|
|
27
|
+
if (typeof value !== 'string') {
|
|
28
|
+
return null;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
const normalized = value.trim().toLowerCase();
|
|
32
|
+
return normalized.length > 0 ? normalized : null;
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
/** Return true when an agent id is reserved for framework-originated work. */
|
|
36
|
+
export const isReservedAgentId = (value: unknown): boolean => {
|
|
37
|
+
const normalized = normalizeIdentity(value);
|
|
38
|
+
return normalized !== null && (
|
|
39
|
+
RESERVED_AGENT_IDS.has(normalized) ||
|
|
40
|
+
normalized.startsWith('system:')
|
|
41
|
+
);
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
/** Return true when a channel id denotes a framework/global routing scope. */
|
|
45
|
+
export const isReservedChannelId = (value: unknown): boolean => {
|
|
46
|
+
const normalized = normalizeIdentity(value);
|
|
47
|
+
return normalized !== null && (
|
|
48
|
+
RESERVED_CHANNEL_IDS.has(normalized) ||
|
|
49
|
+
normalized.startsWith('system:')
|
|
50
|
+
);
|
|
51
|
+
};
|
|
@@ -52,6 +52,18 @@ import { Logger } from '../../../utils/Logger.js';
|
|
|
52
52
|
|
|
53
53
|
const logger = new Logger('info', 'MongoKnowledgeGraphRepository', 'server');
|
|
54
54
|
|
|
55
|
+
/**
|
|
56
|
+
* Every mutation and id-list read is bound to one channel. A blank channel
|
|
57
|
+
* would turn the predicate into "any channel", so it is rejected before the
|
|
58
|
+
* query is built.
|
|
59
|
+
*/
|
|
60
|
+
const requireChannelId = (channelId: ChannelId, operation: string): ChannelId => {
|
|
61
|
+
if (typeof channelId !== 'string' || channelId.trim().length === 0) {
|
|
62
|
+
throw new Error(`${operation} requires a non-empty channelId`);
|
|
63
|
+
}
|
|
64
|
+
return channelId;
|
|
65
|
+
};
|
|
66
|
+
|
|
55
67
|
/**
|
|
56
68
|
* MongoDB implementation of IKnowledgeGraphRepository
|
|
57
69
|
*/
|
|
@@ -95,25 +107,30 @@ export class MongoKnowledgeGraphRepository implements IKnowledgeGraphRepository
|
|
|
95
107
|
return toEntityObject(saved);
|
|
96
108
|
}
|
|
97
109
|
|
|
98
|
-
async getEntity(entityId: string): Promise<Entity | null> {
|
|
99
|
-
const doc = await EntityModel.
|
|
110
|
+
async getEntity(entityId: string, channelId?: ChannelId): Promise<Entity | null> {
|
|
111
|
+
const doc = await EntityModel.findOne({
|
|
112
|
+
_id: entityId,
|
|
113
|
+
...(channelId ? { channelId } : {})
|
|
114
|
+
});
|
|
100
115
|
return doc ? toEntityObject(doc) : null;
|
|
101
116
|
}
|
|
102
117
|
|
|
103
|
-
async updateEntity(entityId: string, updates: Partial<Entity>): Promise<Entity | null> {
|
|
104
|
-
const doc = await EntityModel.
|
|
105
|
-
entityId,
|
|
118
|
+
async updateEntity(entityId: string, channelId: ChannelId, updates: Partial<Entity>): Promise<Entity | null> {
|
|
119
|
+
const doc = await EntityModel.findOneAndUpdate(
|
|
120
|
+
{ _id: entityId, channelId: requireChannelId(channelId, 'updateEntity') },
|
|
106
121
|
{ $set: updates },
|
|
107
122
|
{ new: true }
|
|
108
123
|
);
|
|
109
124
|
return doc ? toEntityObject(doc) : null;
|
|
110
125
|
}
|
|
111
126
|
|
|
112
|
-
async deleteEntity(entityId: string): Promise<boolean> {
|
|
113
|
-
const
|
|
127
|
+
async deleteEntity(entityId: string, channelId: ChannelId): Promise<boolean> {
|
|
128
|
+
const exactChannelId = requireChannelId(channelId, 'deleteEntity');
|
|
129
|
+
const result = await EntityModel.deleteOne({ _id: entityId, channelId: exactChannelId });
|
|
114
130
|
if (result.deletedCount > 0) {
|
|
115
131
|
// Also delete relationships involving this entity
|
|
116
132
|
await RelationshipModel.deleteMany({
|
|
133
|
+
channelId: exactChannelId,
|
|
117
134
|
$or: [
|
|
118
135
|
{ fromEntityId: entityId },
|
|
119
136
|
{ toEntityId: entityId },
|
|
@@ -224,9 +241,13 @@ export class MongoKnowledgeGraphRepository implements IKnowledgeGraphRepository
|
|
|
224
241
|
|
|
225
242
|
async mergeEntities(
|
|
226
243
|
targetEntityId: string,
|
|
227
|
-
sourceEntityIds: string[]
|
|
244
|
+
sourceEntityIds: string[],
|
|
245
|
+
channelId?: ChannelId
|
|
228
246
|
): Promise<EntityMergeResult> {
|
|
229
|
-
const target = await EntityModel.
|
|
247
|
+
const target = await EntityModel.findOne({
|
|
248
|
+
_id: targetEntityId,
|
|
249
|
+
...(channelId ? { channelId } : {})
|
|
250
|
+
});
|
|
230
251
|
if (!target) {
|
|
231
252
|
return {
|
|
232
253
|
success: false,
|
|
@@ -235,12 +256,23 @@ export class MongoKnowledgeGraphRepository implements IKnowledgeGraphRepository
|
|
|
235
256
|
};
|
|
236
257
|
}
|
|
237
258
|
|
|
238
|
-
const
|
|
239
|
-
if (
|
|
259
|
+
const uniqueSourceEntityIds = [...new Set(sourceEntityIds)];
|
|
260
|
+
if (uniqueSourceEntityIds.includes(targetEntityId)) {
|
|
261
|
+
return {
|
|
262
|
+
success: false,
|
|
263
|
+
sourceEntityIds,
|
|
264
|
+
error: 'The merge target cannot also be a source entity',
|
|
265
|
+
};
|
|
266
|
+
}
|
|
267
|
+
const sources = await EntityModel.find({
|
|
268
|
+
_id: { $in: uniqueSourceEntityIds },
|
|
269
|
+
...(channelId ? { channelId } : {})
|
|
270
|
+
});
|
|
271
|
+
if (sources.length !== uniqueSourceEntityIds.length) {
|
|
240
272
|
return {
|
|
241
273
|
success: false,
|
|
242
274
|
sourceEntityIds,
|
|
243
|
-
error: '
|
|
275
|
+
error: 'Every source entity must exist in the authorized channel',
|
|
244
276
|
};
|
|
245
277
|
}
|
|
246
278
|
|
|
@@ -261,7 +293,10 @@ export class MongoKnowledgeGraphRepository implements IKnowledgeGraphRepository
|
|
|
261
293
|
|
|
262
294
|
// Mark sources as merged
|
|
263
295
|
await EntityModel.updateMany(
|
|
264
|
-
{
|
|
296
|
+
{
|
|
297
|
+
_id: { $in: uniqueSourceEntityIds },
|
|
298
|
+
...(channelId ? { channelId } : {})
|
|
299
|
+
},
|
|
265
300
|
{
|
|
266
301
|
$set: {
|
|
267
302
|
merged: true,
|
|
@@ -272,11 +307,17 @@ export class MongoKnowledgeGraphRepository implements IKnowledgeGraphRepository
|
|
|
272
307
|
|
|
273
308
|
// Update relationships to point to target
|
|
274
309
|
await RelationshipModel.updateMany(
|
|
275
|
-
{
|
|
310
|
+
{
|
|
311
|
+
fromEntityId: { $in: uniqueSourceEntityIds },
|
|
312
|
+
...(channelId ? { channelId } : {})
|
|
313
|
+
},
|
|
276
314
|
{ $set: { fromEntityId: targetEntityId } }
|
|
277
315
|
);
|
|
278
316
|
await RelationshipModel.updateMany(
|
|
279
|
-
{
|
|
317
|
+
{
|
|
318
|
+
toEntityId: { $in: uniqueSourceEntityIds },
|
|
319
|
+
...(channelId ? { channelId } : {})
|
|
320
|
+
},
|
|
280
321
|
{ $set: { toEntityId: targetEntityId } }
|
|
281
322
|
);
|
|
282
323
|
|
|
@@ -423,18 +464,22 @@ export class MongoKnowledgeGraphRepository implements IKnowledgeGraphRepository
|
|
|
423
464
|
|
|
424
465
|
async updateRelationship(
|
|
425
466
|
relationshipId: string,
|
|
467
|
+
channelId: ChannelId,
|
|
426
468
|
updates: Partial<Relationship>
|
|
427
469
|
): Promise<Relationship | null> {
|
|
428
|
-
const doc = await RelationshipModel.
|
|
429
|
-
relationshipId,
|
|
470
|
+
const doc = await RelationshipModel.findOneAndUpdate(
|
|
471
|
+
{ _id: relationshipId, channelId: requireChannelId(channelId, 'updateRelationship') },
|
|
430
472
|
{ $set: updates },
|
|
431
473
|
{ new: true }
|
|
432
474
|
);
|
|
433
475
|
return doc ? toRelationshipObject(doc) : null;
|
|
434
476
|
}
|
|
435
477
|
|
|
436
|
-
async deleteRelationship(relationshipId: string): Promise<boolean> {
|
|
437
|
-
const result = await RelationshipModel.deleteOne({
|
|
478
|
+
async deleteRelationship(relationshipId: string, channelId: ChannelId): Promise<boolean> {
|
|
479
|
+
const result = await RelationshipModel.deleteOne({
|
|
480
|
+
_id: relationshipId,
|
|
481
|
+
channelId: requireChannelId(channelId, 'deleteRelationship')
|
|
482
|
+
});
|
|
438
483
|
return result.deletedCount > 0;
|
|
439
484
|
}
|
|
440
485
|
|
|
@@ -497,7 +542,8 @@ export class MongoKnowledgeGraphRepository implements IKnowledgeGraphRepository
|
|
|
497
542
|
entityType?: EntityType | EntityType[];
|
|
498
543
|
maxDepth?: number;
|
|
499
544
|
limit?: number;
|
|
500
|
-
}
|
|
545
|
+
},
|
|
546
|
+
channelId?: ChannelId
|
|
501
547
|
): Promise<{ entities: Entity[]; relationships: Relationship[] }> {
|
|
502
548
|
const direction = options?.direction || 'both';
|
|
503
549
|
const limit = options?.limit || 100;
|
|
@@ -519,6 +565,9 @@ export class MongoKnowledgeGraphRepository implements IKnowledgeGraphRepository
|
|
|
519
565
|
? { $in: options.relationshipType }
|
|
520
566
|
: options.relationshipType;
|
|
521
567
|
}
|
|
568
|
+
if (channelId) {
|
|
569
|
+
relationshipQuery.channelId = channelId;
|
|
570
|
+
}
|
|
522
571
|
|
|
523
572
|
const relationships = await RelationshipModel.find(relationshipQuery)
|
|
524
573
|
.limit(limit)
|
|
@@ -533,6 +582,7 @@ export class MongoKnowledgeGraphRepository implements IKnowledgeGraphRepository
|
|
|
533
582
|
let entityQuery: any = {
|
|
534
583
|
_id: { $in: Array.from(neighborIds) },
|
|
535
584
|
merged: false,
|
|
585
|
+
...(channelId ? { channelId } : {})
|
|
536
586
|
};
|
|
537
587
|
|
|
538
588
|
if (options?.entityType) {
|
|
@@ -542,19 +592,37 @@ export class MongoKnowledgeGraphRepository implements IKnowledgeGraphRepository
|
|
|
542
592
|
}
|
|
543
593
|
|
|
544
594
|
const entities = await EntityModel.find(entityQuery).lean();
|
|
595
|
+
const scopedEntities = entities.map(doc => toEntityObject(doc as unknown as IEntity));
|
|
596
|
+
const scopedEntityIds = new Set<string>([
|
|
597
|
+
entityId,
|
|
598
|
+
...scopedEntities.map(entity => entity.id)
|
|
599
|
+
]);
|
|
600
|
+
const scopedRelationships = relationships
|
|
601
|
+
.map(doc => toRelationshipObject(doc as unknown as IRelationship))
|
|
602
|
+
.filter(relationship => (
|
|
603
|
+
scopedEntityIds.has(relationship.fromEntityId) &&
|
|
604
|
+
scopedEntityIds.has(relationship.toEntityId)
|
|
605
|
+
));
|
|
545
606
|
|
|
546
607
|
return {
|
|
547
|
-
entities:
|
|
548
|
-
relationships:
|
|
608
|
+
entities: scopedEntities,
|
|
609
|
+
relationships: scopedRelationships,
|
|
549
610
|
};
|
|
550
611
|
}
|
|
551
612
|
|
|
552
613
|
async findPath(
|
|
553
614
|
fromEntityId: string,
|
|
554
615
|
toEntityId: string,
|
|
555
|
-
maxHops?: number
|
|
616
|
+
maxHops?: number,
|
|
617
|
+
channelId?: ChannelId
|
|
556
618
|
): Promise<GraphPath | null> {
|
|
557
|
-
const paths = await this.findAllPaths(
|
|
619
|
+
const paths = await this.findAllPaths(
|
|
620
|
+
fromEntityId,
|
|
621
|
+
toEntityId,
|
|
622
|
+
maxHops,
|
|
623
|
+
1,
|
|
624
|
+
channelId
|
|
625
|
+
);
|
|
558
626
|
return paths.length > 0 ? paths[0] : null;
|
|
559
627
|
}
|
|
560
628
|
|
|
@@ -562,7 +630,8 @@ export class MongoKnowledgeGraphRepository implements IKnowledgeGraphRepository
|
|
|
562
630
|
fromEntityId: string,
|
|
563
631
|
toEntityId: string,
|
|
564
632
|
maxHops?: number,
|
|
565
|
-
limit?: number
|
|
633
|
+
limit?: number,
|
|
634
|
+
channelId?: ChannelId
|
|
566
635
|
): Promise<GraphPath[]> {
|
|
567
636
|
const maxDepth = maxHops ?? 5;
|
|
568
637
|
const maxPaths = limit ?? 10;
|
|
@@ -613,6 +682,7 @@ export class MongoKnowledgeGraphRepository implements IKnowledgeGraphRepository
|
|
|
613
682
|
// Get outgoing relationships
|
|
614
683
|
const rels = await RelationshipModel.find({
|
|
615
684
|
fromEntityId: current.currentId,
|
|
685
|
+
...(channelId ? { channelId } : {})
|
|
616
686
|
}).lean();
|
|
617
687
|
|
|
618
688
|
for (const rel of rels) {
|
|
@@ -687,7 +757,8 @@ export class MongoKnowledgeGraphRepository implements IKnowledgeGraphRepository
|
|
|
687
757
|
async getSubgraph(
|
|
688
758
|
entityId: string,
|
|
689
759
|
depth?: number,
|
|
690
|
-
limit?: number
|
|
760
|
+
limit?: number,
|
|
761
|
+
channelId?: ChannelId
|
|
691
762
|
): Promise<{ entities: Entity[]; relationships: Relationship[] }> {
|
|
692
763
|
const maxDepth = depth ?? 2;
|
|
693
764
|
const maxEntities = limit ?? 50;
|
|
@@ -703,7 +774,7 @@ export class MongoKnowledgeGraphRepository implements IKnowledgeGraphRepository
|
|
|
703
774
|
for (const id of currentLevel) {
|
|
704
775
|
const neighbors = await this.getNeighbors(id, {
|
|
705
776
|
limit: Math.min(10, maxEntities - entityIds.size),
|
|
706
|
-
});
|
|
777
|
+
}, channelId);
|
|
707
778
|
|
|
708
779
|
for (const rel of neighbors.relationships) {
|
|
709
780
|
if (!relationships.find((r) => r.id === rel.id)) {
|
|
@@ -724,6 +795,7 @@ export class MongoKnowledgeGraphRepository implements IKnowledgeGraphRepository
|
|
|
724
795
|
|
|
725
796
|
const entities = await EntityModel.find({
|
|
726
797
|
_id: { $in: Array.from(entityIds) },
|
|
798
|
+
...(channelId ? { channelId } : {})
|
|
727
799
|
}).lean();
|
|
728
800
|
|
|
729
801
|
return {
|
|
@@ -736,24 +808,28 @@ export class MongoKnowledgeGraphRepository implements IKnowledgeGraphRepository
|
|
|
736
808
|
// Batch Operations
|
|
737
809
|
// ========================================================================
|
|
738
810
|
|
|
739
|
-
async getEntitiesByIds(entityIds: string[]): Promise<Entity[]> {
|
|
811
|
+
async getEntitiesByIds(channelId: ChannelId, entityIds: string[]): Promise<Entity[]> {
|
|
812
|
+
const exactChannelId = requireChannelId(channelId, 'getEntitiesByIds');
|
|
740
813
|
if (entityIds.length === 0) {
|
|
741
814
|
return [];
|
|
742
815
|
}
|
|
743
816
|
|
|
744
817
|
const docs = await EntityModel.find({
|
|
745
818
|
_id: { $in: entityIds },
|
|
819
|
+
channelId: exactChannelId,
|
|
746
820
|
merged: false,
|
|
747
821
|
}).lean();
|
|
748
822
|
return docs.map((doc: any) => toEntityObject(doc as IEntity));
|
|
749
823
|
}
|
|
750
824
|
|
|
751
|
-
async getRelationshipsByEntityIds(entityIds: string[]): Promise<Relationship[]> {
|
|
825
|
+
async getRelationshipsByEntityIds(channelId: ChannelId, entityIds: string[]): Promise<Relationship[]> {
|
|
826
|
+
const exactChannelId = requireChannelId(channelId, 'getRelationshipsByEntityIds');
|
|
752
827
|
if (entityIds.length === 0) {
|
|
753
828
|
return [];
|
|
754
829
|
}
|
|
755
830
|
|
|
756
831
|
const docs = await RelationshipModel.find({
|
|
832
|
+
channelId: exactChannelId,
|
|
757
833
|
$or: [
|
|
758
834
|
{ fromEntityId: { $in: entityIds } },
|
|
759
835
|
{ toEntityId: { $in: entityIds } },
|
|
@@ -792,11 +868,12 @@ export class MongoKnowledgeGraphRepository implements IKnowledgeGraphRepository
|
|
|
792
868
|
|
|
793
869
|
async updateEntityQValue(
|
|
794
870
|
entityId: string,
|
|
871
|
+
channelId: ChannelId,
|
|
795
872
|
newQValue: number,
|
|
796
873
|
reason: string
|
|
797
874
|
): Promise<Entity | null> {
|
|
798
|
-
const doc = await EntityModel.
|
|
799
|
-
entityId,
|
|
875
|
+
const doc = await EntityModel.findOneAndUpdate(
|
|
876
|
+
{ _id: entityId, channelId: requireChannelId(channelId, 'updateEntityQValue') },
|
|
800
877
|
{
|
|
801
878
|
$set: {
|
|
802
879
|
'utility.qValue': newQValue,
|
|
@@ -814,11 +891,13 @@ export class MongoKnowledgeGraphRepository implements IKnowledgeGraphRepository
|
|
|
814
891
|
}
|
|
815
892
|
|
|
816
893
|
async batchUpdateQValues(
|
|
894
|
+
channelId: ChannelId,
|
|
817
895
|
updates: Array<{ entityId: string; qValue: number; reason: string }>
|
|
818
896
|
): Promise<void> {
|
|
897
|
+
const exactChannelId = requireChannelId(channelId, 'batchUpdateQValues');
|
|
819
898
|
const bulkOps = updates.map((update) => ({
|
|
820
899
|
updateOne: {
|
|
821
|
-
filter: { _id: update.entityId },
|
|
900
|
+
filter: { _id: update.entityId, channelId: exactChannelId },
|
|
822
901
|
update: {
|
|
823
902
|
$set: {
|
|
824
903
|
'utility.qValue': update.qValue,
|
|
@@ -861,9 +940,9 @@ export class MongoKnowledgeGraphRepository implements IKnowledgeGraphRepository
|
|
|
861
940
|
return docs.map((doc: any) => toEntityObject(doc as IEntity));
|
|
862
941
|
}
|
|
863
942
|
|
|
864
|
-
async incrementRetrievalCount(entityIds: string[]): Promise<void> {
|
|
943
|
+
async incrementRetrievalCount(channelId: ChannelId, entityIds: string[]): Promise<void> {
|
|
865
944
|
await EntityModel.updateMany(
|
|
866
|
-
{ _id: { $in: entityIds } },
|
|
945
|
+
{ _id: { $in: entityIds }, channelId: requireChannelId(channelId, 'incrementRetrievalCount') },
|
|
867
946
|
{
|
|
868
947
|
$inc: { 'utility.retrievalCount': 1 },
|
|
869
948
|
$set: { 'utility.lastAccessedAt': Date.now() },
|
|
@@ -871,10 +950,10 @@ export class MongoKnowledgeGraphRepository implements IKnowledgeGraphRepository
|
|
|
871
950
|
);
|
|
872
951
|
}
|
|
873
952
|
|
|
874
|
-
async recordOutcome(entityIds: string[], success: boolean): Promise<void> {
|
|
953
|
+
async recordOutcome(channelId: ChannelId, entityIds: string[], success: boolean): Promise<void> {
|
|
875
954
|
const field = success ? 'utility.successCount' : 'utility.failureCount';
|
|
876
955
|
await EntityModel.updateMany(
|
|
877
|
-
{ _id: { $in: entityIds } },
|
|
956
|
+
{ _id: { $in: entityIds }, channelId: requireChannelId(channelId, 'recordOutcome') },
|
|
878
957
|
{ $inc: { [field]: 1 } }
|
|
879
958
|
);
|
|
880
959
|
}
|