@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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KnowledgeGraphTools.d.ts","sourceRoot":"","sources":["../../../../src/protocols/mcp/tools/KnowledgeGraphTools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAeH,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;
|
|
1
|
+
{"version":3,"file":"KnowledgeGraphTools.d.ts","sourceRoot":"","sources":["../../../../src/protocols/mcp/tools/KnowledgeGraphTools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAeH,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AACrF,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAS7D,MAAM,WAAW,2BAA4B,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACxE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,UAAU,GAAG,UAAU,GAAG,MAAM,CAAC;IAC7C,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,aAAa,GAAG,WAAW,GAAG,UAAU,GAAG,QAAQ,GAAG,YAAY,CAAC;IAC3E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;CAC9B;AAqED;;GAEG;AACH,eAAO,MAAM,aAAa;;;;;;;;;;;;;oBAcZ,2BAA2B,WACxB,qBAAqB,KAC/B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAsCtC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBA8Bb,2BAA2B,WACxB,qBAAqB,KAC/B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAwCtC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBA+Bf,2BAA2B,WACxB,qBAAqB,KAC/B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAgDtC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;oBAyBX,2BAA2B,WACxB,qBAAqB,KAC/B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAuEtC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;oBAuBb,2BAA2B,WACxB,qBAAqB,KAC/B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAkCtC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;oBAqB3B,2BAA2B,WACxB,qBAAqB,KAC/B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAiCtC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAuCf,2BAA2B,WACxB,qBAAqB,KAC/B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CA0CtC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAsCrB,2BAA2B,WACxB,qBAAqB,KAC/B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAsDtC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;oBAsBnB,2BAA2B,WACxB,qBAAqB,KAC/B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAqCtC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;oBAsBrB,2BAA2B,WACxB,qBAAqB,KAC/B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAsCtC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBA4BnB,2BAA2B,WACxB,qBAAqB,KAC/B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CA+DtC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;oBAqBjB,2BAA2B,WACxB,qBAAqB,KAC/B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAmCtC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;oBAmBhB,2BAA2B,WACxB,qBAAqB,KAC/B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAiDtC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;oBAh+BlB,2BAA2B,WACxB,qBAAqB,KAC/B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAyEzB,2BAA2B,WACxB,qBAAqB,KAC/B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;oBA4JzB,2BAA2B,WACxB,qBAAqB,KAC/B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;oBAmGzB,2BAA2B,WACxB,qBAAqB,KAC/B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;oBA4DzB,2BAA2B,WACxB,qBAAqB,KAC/B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBA6EzB,2BAA2B,WACxB,qBAAqB,KAC/B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAqFzB,2BAA2B,WACxB,qBAAqB,KAC/B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;oBAiFzB,2BAA2B,WACxB,qBAAqB,KAC/B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;oBAgEzB,2BAA2B,WACxB,qBAAqB,KAC/B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAuEzB,2BAA2B,WACxB,qBAAqB,KAC/B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;oBAyFzB,2BAA2B,WACxB,qBAAqB,KAC/B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;oBA2DzB,2BAA2B,WACxB,qBAAqB,KAC/B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAoEtC,CAAC"}
|
|
@@ -31,6 +31,33 @@ import { OrparGraphIntegration } from '../../../services/kg/OrparGraphIntegratio
|
|
|
31
31
|
import { isKnowledgeGraphEnabled } from '../../../config/knowledge-graph.config.js';
|
|
32
32
|
import { EntityType, RelationshipType } from '../../../types/KnowledgeGraphTypes.js';
|
|
33
33
|
const logger = new Logger('info', 'KnowledgeGraphTools', 'server');
|
|
34
|
+
function requireKnowledgeGraphIdentity(args, context) {
|
|
35
|
+
if (typeof context.agentId !== 'string' || context.agentId.trim().length === 0 ||
|
|
36
|
+
typeof context.channelId !== 'string' || context.channelId.trim().length === 0) {
|
|
37
|
+
throw new Error('Authenticated agentId and channelId are required for Knowledge Graph tools');
|
|
38
|
+
}
|
|
39
|
+
const agentId = context.agentId.trim();
|
|
40
|
+
const channelId = context.channelId.trim();
|
|
41
|
+
if (args.channelId !== undefined && (typeof args.channelId !== 'string' || args.channelId.trim() !== channelId)) {
|
|
42
|
+
throw new Error('channelId must match the authenticated tool context');
|
|
43
|
+
}
|
|
44
|
+
return { agentId, channelId };
|
|
45
|
+
}
|
|
46
|
+
const errorMessage = (error) => (error instanceof Error ? error.message : String(error));
|
|
47
|
+
const requireStringArgument = (args, name) => {
|
|
48
|
+
const value = args[name];
|
|
49
|
+
if (typeof value !== 'string' || value.trim().length === 0) {
|
|
50
|
+
throw new Error(`${String(name)} must be a non-empty string`);
|
|
51
|
+
}
|
|
52
|
+
return value.trim();
|
|
53
|
+
};
|
|
54
|
+
const requireStringArrayArgument = (args, name) => {
|
|
55
|
+
const value = args[name];
|
|
56
|
+
if (!Array.isArray(value) || value.length === 0 || value.some(item => (typeof item !== 'string' || item.trim().length === 0))) {
|
|
57
|
+
throw new Error(`${String(name)} must be a non-empty array of non-empty strings`);
|
|
58
|
+
}
|
|
59
|
+
return value.map(item => item.trim());
|
|
60
|
+
};
|
|
34
61
|
/**
|
|
35
62
|
* Helper to get Knowledge Graph service
|
|
36
63
|
*/
|
|
@@ -67,6 +94,7 @@ export const kg_get_entity = {
|
|
|
67
94
|
},
|
|
68
95
|
handler: async (args, context) => {
|
|
69
96
|
try {
|
|
97
|
+
const identity = requireKnowledgeGraphIdentity(args, context);
|
|
70
98
|
if (!isKnowledgeGraphEnabled()) {
|
|
71
99
|
return {
|
|
72
100
|
success: false,
|
|
@@ -75,12 +103,13 @@ export const kg_get_entity = {
|
|
|
75
103
|
};
|
|
76
104
|
}
|
|
77
105
|
const kgService = getKgService();
|
|
78
|
-
const
|
|
106
|
+
const entityId = requireStringArgument(args, 'entityId');
|
|
107
|
+
const entity = await kgService.getEntity(entityId, identity.channelId);
|
|
79
108
|
if (!entity) {
|
|
80
109
|
return {
|
|
81
110
|
success: false,
|
|
82
111
|
entity: null,
|
|
83
|
-
message: `Entity not found: ${
|
|
112
|
+
message: `Entity not found: ${entityId}`,
|
|
84
113
|
};
|
|
85
114
|
}
|
|
86
115
|
return {
|
|
@@ -90,12 +119,12 @@ export const kg_get_entity = {
|
|
|
90
119
|
};
|
|
91
120
|
}
|
|
92
121
|
catch (error) {
|
|
93
|
-
logger.error('Failed to get entity', { error: error
|
|
122
|
+
logger.error('Failed to get entity', { error: errorMessage(error) });
|
|
94
123
|
return {
|
|
95
124
|
success: false,
|
|
96
125
|
entity: null,
|
|
97
126
|
message: 'Failed to get entity',
|
|
98
|
-
error: error
|
|
127
|
+
error: errorMessage(error),
|
|
99
128
|
};
|
|
100
129
|
}
|
|
101
130
|
},
|
|
@@ -134,6 +163,7 @@ export const kg_find_entity = {
|
|
|
134
163
|
},
|
|
135
164
|
handler: async (args, context) => {
|
|
136
165
|
try {
|
|
166
|
+
const identity = requireKnowledgeGraphIdentity(args, context);
|
|
137
167
|
if (!isKnowledgeGraphEnabled()) {
|
|
138
168
|
return {
|
|
139
169
|
success: false,
|
|
@@ -141,16 +171,9 @@ export const kg_find_entity = {
|
|
|
141
171
|
message: 'Knowledge Graph is disabled',
|
|
142
172
|
};
|
|
143
173
|
}
|
|
144
|
-
const channelId = args.channelId || context.channelId;
|
|
145
|
-
if (!channelId) {
|
|
146
|
-
return {
|
|
147
|
-
success: false,
|
|
148
|
-
entities: [],
|
|
149
|
-
message: 'channelId is required but not provided',
|
|
150
|
-
};
|
|
151
|
-
}
|
|
152
174
|
const kgService = getKgService();
|
|
153
|
-
const
|
|
175
|
+
const name = requireStringArgument(args, 'name');
|
|
176
|
+
const entities = await kgService.findEntityByName(identity.channelId, name, args.exact || false);
|
|
154
177
|
const limitedEntities = entities.slice(0, args.limit || 10);
|
|
155
178
|
return {
|
|
156
179
|
success: true,
|
|
@@ -158,17 +181,17 @@ export const kg_find_entity = {
|
|
|
158
181
|
count: limitedEntities.length,
|
|
159
182
|
totalFound: entities.length,
|
|
160
183
|
message: entities.length > 0
|
|
161
|
-
? `Found ${entities.length} entities matching "${
|
|
162
|
-
: `No entities found matching "${
|
|
184
|
+
? `Found ${entities.length} entities matching "${name}"`
|
|
185
|
+
: `No entities found matching "${name}"`,
|
|
163
186
|
};
|
|
164
187
|
}
|
|
165
188
|
catch (error) {
|
|
166
|
-
logger.error('Failed to find entity', { error: error
|
|
189
|
+
logger.error('Failed to find entity', { error: errorMessage(error) });
|
|
167
190
|
return {
|
|
168
191
|
success: false,
|
|
169
192
|
entities: [],
|
|
170
193
|
message: 'Failed to find entity',
|
|
171
|
-
error: error
|
|
194
|
+
error: errorMessage(error),
|
|
172
195
|
};
|
|
173
196
|
}
|
|
174
197
|
},
|
|
@@ -208,6 +231,7 @@ export const kg_get_neighbors = {
|
|
|
208
231
|
},
|
|
209
232
|
handler: async (args, context) => {
|
|
210
233
|
try {
|
|
234
|
+
const identity = requireKnowledgeGraphIdentity(args, context);
|
|
211
235
|
if (!isKnowledgeGraphEnabled()) {
|
|
212
236
|
return {
|
|
213
237
|
success: false,
|
|
@@ -217,11 +241,21 @@ export const kg_get_neighbors = {
|
|
|
217
241
|
};
|
|
218
242
|
}
|
|
219
243
|
const kgService = getKgService();
|
|
220
|
-
const
|
|
244
|
+
const entityId = requireStringArgument(args, 'entityId');
|
|
245
|
+
const entity = await kgService.getEntity(entityId, identity.channelId);
|
|
246
|
+
if (!entity) {
|
|
247
|
+
return {
|
|
248
|
+
success: false,
|
|
249
|
+
entities: [],
|
|
250
|
+
relationships: [],
|
|
251
|
+
message: `Entity not found: ${entityId}`,
|
|
252
|
+
};
|
|
253
|
+
}
|
|
254
|
+
const result = await kgService.getNeighbors(entityId, {
|
|
221
255
|
direction: args.direction || 'both',
|
|
222
256
|
relationshipType: args.relationshipType,
|
|
223
257
|
limit: args.limit || 20,
|
|
224
|
-
});
|
|
258
|
+
}, identity.channelId);
|
|
225
259
|
return {
|
|
226
260
|
success: true,
|
|
227
261
|
entities: result.entities,
|
|
@@ -232,13 +266,13 @@ export const kg_get_neighbors = {
|
|
|
232
266
|
};
|
|
233
267
|
}
|
|
234
268
|
catch (error) {
|
|
235
|
-
logger.error('Failed to get neighbors', { error: error
|
|
269
|
+
logger.error('Failed to get neighbors', { error: errorMessage(error) });
|
|
236
270
|
return {
|
|
237
271
|
success: false,
|
|
238
272
|
entities: [],
|
|
239
273
|
relationships: [],
|
|
240
274
|
message: 'Failed to get neighbors',
|
|
241
|
-
error: error
|
|
275
|
+
error: errorMessage(error),
|
|
242
276
|
};
|
|
243
277
|
}
|
|
244
278
|
},
|
|
@@ -272,6 +306,7 @@ export const kg_find_path = {
|
|
|
272
306
|
},
|
|
273
307
|
handler: async (args, context) => {
|
|
274
308
|
try {
|
|
309
|
+
const identity = requireKnowledgeGraphIdentity(args, context);
|
|
275
310
|
if (!isKnowledgeGraphEnabled()) {
|
|
276
311
|
return {
|
|
277
312
|
success: false,
|
|
@@ -280,7 +315,21 @@ export const kg_find_path = {
|
|
|
280
315
|
};
|
|
281
316
|
}
|
|
282
317
|
const kgService = getKgService();
|
|
283
|
-
const
|
|
318
|
+
const fromEntityId = requireStringArgument(args, 'fromEntityId');
|
|
319
|
+
const toEntityId = requireStringArgument(args, 'toEntityId');
|
|
320
|
+
const [fromEntity, toEntity] = await Promise.all([
|
|
321
|
+
kgService.getEntity(fromEntityId, identity.channelId),
|
|
322
|
+
kgService.getEntity(toEntityId, identity.channelId)
|
|
323
|
+
]);
|
|
324
|
+
if (!fromEntity || !toEntity) {
|
|
325
|
+
return {
|
|
326
|
+
success: false,
|
|
327
|
+
path: null,
|
|
328
|
+
found: false,
|
|
329
|
+
message: 'Both path endpoints must belong to the authenticated channel',
|
|
330
|
+
};
|
|
331
|
+
}
|
|
332
|
+
const path = await kgService.findPath(fromEntityId, toEntityId, args.maxHops || 5, identity.channelId);
|
|
284
333
|
if (!path) {
|
|
285
334
|
return {
|
|
286
335
|
success: true,
|
|
@@ -289,6 +338,15 @@ export const kg_find_path = {
|
|
|
289
338
|
message: `No path found between entities within ${args.maxHops || 5} hops`,
|
|
290
339
|
};
|
|
291
340
|
}
|
|
341
|
+
const pathEntities = await Promise.all(path.entityIds.map(entityId => kgService.getEntity(entityId, identity.channelId)));
|
|
342
|
+
if (pathEntities.some(entity => !entity)) {
|
|
343
|
+
return {
|
|
344
|
+
success: false,
|
|
345
|
+
path: null,
|
|
346
|
+
found: false,
|
|
347
|
+
message: 'The resolved path is not wholly contained in the authenticated channel',
|
|
348
|
+
};
|
|
349
|
+
}
|
|
292
350
|
return {
|
|
293
351
|
success: true,
|
|
294
352
|
path,
|
|
@@ -298,12 +356,12 @@ export const kg_find_path = {
|
|
|
298
356
|
};
|
|
299
357
|
}
|
|
300
358
|
catch (error) {
|
|
301
|
-
logger.error('Failed to find path', { error: error
|
|
359
|
+
logger.error('Failed to find path', { error: errorMessage(error) });
|
|
302
360
|
return {
|
|
303
361
|
success: false,
|
|
304
362
|
path: null,
|
|
305
363
|
message: 'Failed to find path',
|
|
306
|
-
error: error
|
|
364
|
+
error: errorMessage(error),
|
|
307
365
|
};
|
|
308
366
|
}
|
|
309
367
|
},
|
|
@@ -335,6 +393,7 @@ export const kg_get_context = {
|
|
|
335
393
|
},
|
|
336
394
|
handler: async (args, context) => {
|
|
337
395
|
try {
|
|
396
|
+
const identity = requireKnowledgeGraphIdentity(args, context);
|
|
338
397
|
if (!isKnowledgeGraphEnabled()) {
|
|
339
398
|
return {
|
|
340
399
|
success: false,
|
|
@@ -342,16 +401,8 @@ export const kg_get_context = {
|
|
|
342
401
|
message: 'Knowledge Graph is disabled',
|
|
343
402
|
};
|
|
344
403
|
}
|
|
345
|
-
const channelId = args.channelId || context.channelId;
|
|
346
|
-
if (!channelId) {
|
|
347
|
-
return {
|
|
348
|
-
success: false,
|
|
349
|
-
context: null,
|
|
350
|
-
message: 'channelId is required but not provided',
|
|
351
|
-
};
|
|
352
|
-
}
|
|
353
404
|
const kgService = getKgService();
|
|
354
|
-
const graphContext = await kgService.getGraphContext(channelId, args.taskId, args.keywords);
|
|
405
|
+
const graphContext = await kgService.getGraphContext(identity.channelId, args.taskId, args.keywords);
|
|
355
406
|
return {
|
|
356
407
|
success: true,
|
|
357
408
|
context: graphContext,
|
|
@@ -360,12 +411,12 @@ export const kg_get_context = {
|
|
|
360
411
|
};
|
|
361
412
|
}
|
|
362
413
|
catch (error) {
|
|
363
|
-
logger.error('Failed to get context', { error: error
|
|
414
|
+
logger.error('Failed to get context', { error: errorMessage(error) });
|
|
364
415
|
return {
|
|
365
416
|
success: false,
|
|
366
417
|
context: null,
|
|
367
418
|
message: 'Failed to get context',
|
|
368
|
-
error: error
|
|
419
|
+
error: errorMessage(error),
|
|
369
420
|
};
|
|
370
421
|
}
|
|
371
422
|
},
|
|
@@ -395,6 +446,7 @@ export const kg_get_high_utility_entities = {
|
|
|
395
446
|
},
|
|
396
447
|
handler: async (args, context) => {
|
|
397
448
|
try {
|
|
449
|
+
const identity = requireKnowledgeGraphIdentity(args, context);
|
|
398
450
|
if (!isKnowledgeGraphEnabled()) {
|
|
399
451
|
return {
|
|
400
452
|
success: false,
|
|
@@ -402,16 +454,8 @@ export const kg_get_high_utility_entities = {
|
|
|
402
454
|
message: 'Knowledge Graph is disabled',
|
|
403
455
|
};
|
|
404
456
|
}
|
|
405
|
-
const channelId = args.channelId || context.channelId;
|
|
406
|
-
if (!channelId) {
|
|
407
|
-
return {
|
|
408
|
-
success: false,
|
|
409
|
-
entities: [],
|
|
410
|
-
message: 'channelId is required but not provided',
|
|
411
|
-
};
|
|
412
|
-
}
|
|
413
457
|
const kgService = getKgService();
|
|
414
|
-
const entities = await kgService.getHighUtilityEntities(channelId, args.limit || 10);
|
|
458
|
+
const entities = await kgService.getHighUtilityEntities(identity.channelId, args.limit || 10);
|
|
415
459
|
return {
|
|
416
460
|
success: true,
|
|
417
461
|
entities,
|
|
@@ -420,12 +464,12 @@ export const kg_get_high_utility_entities = {
|
|
|
420
464
|
};
|
|
421
465
|
}
|
|
422
466
|
catch (error) {
|
|
423
|
-
logger.error('Failed to get high utility entities', { error: error
|
|
467
|
+
logger.error('Failed to get high utility entities', { error: errorMessage(error) });
|
|
424
468
|
return {
|
|
425
469
|
success: false,
|
|
426
470
|
entities: [],
|
|
427
471
|
message: 'Failed to get high utility entities',
|
|
428
|
-
error: error
|
|
472
|
+
error: errorMessage(error),
|
|
429
473
|
};
|
|
430
474
|
}
|
|
431
475
|
},
|
|
@@ -473,6 +517,7 @@ export const kg_create_entity = {
|
|
|
473
517
|
},
|
|
474
518
|
handler: async (args, context) => {
|
|
475
519
|
try {
|
|
520
|
+
const identity = requireKnowledgeGraphIdentity(args, context);
|
|
476
521
|
if (!isKnowledgeGraphEnabled()) {
|
|
477
522
|
return {
|
|
478
523
|
success: false,
|
|
@@ -480,24 +525,18 @@ export const kg_create_entity = {
|
|
|
480
525
|
message: 'Knowledge Graph is disabled',
|
|
481
526
|
};
|
|
482
527
|
}
|
|
483
|
-
const channelId = args.channelId || context.channelId;
|
|
484
|
-
if (!channelId) {
|
|
485
|
-
return {
|
|
486
|
-
success: false,
|
|
487
|
-
entity: null,
|
|
488
|
-
message: 'channelId is required but not provided',
|
|
489
|
-
};
|
|
490
|
-
}
|
|
491
528
|
const kgService = getKgService();
|
|
529
|
+
const name = requireStringArgument(args, 'name');
|
|
530
|
+
const type = requireStringArgument(args, 'type');
|
|
492
531
|
const entity = await kgService.findOrCreateEntity({
|
|
493
|
-
channelId,
|
|
494
|
-
name
|
|
495
|
-
type
|
|
532
|
+
channelId: identity.channelId,
|
|
533
|
+
name,
|
|
534
|
+
type,
|
|
496
535
|
aliases: args.aliases,
|
|
497
536
|
description: args.description,
|
|
498
537
|
confidence: args.confidence || 0.8,
|
|
499
538
|
source: 'manual',
|
|
500
|
-
},
|
|
539
|
+
}, identity.agentId);
|
|
501
540
|
return {
|
|
502
541
|
success: true,
|
|
503
542
|
entity,
|
|
@@ -505,12 +544,12 @@ export const kg_create_entity = {
|
|
|
505
544
|
};
|
|
506
545
|
}
|
|
507
546
|
catch (error) {
|
|
508
|
-
logger.error('Failed to create entity', { error: error
|
|
547
|
+
logger.error('Failed to create entity', { error: errorMessage(error) });
|
|
509
548
|
return {
|
|
510
549
|
success: false,
|
|
511
550
|
entity: null,
|
|
512
551
|
message: 'Failed to create entity',
|
|
513
|
-
error: error
|
|
552
|
+
error: errorMessage(error),
|
|
514
553
|
};
|
|
515
554
|
}
|
|
516
555
|
},
|
|
@@ -557,6 +596,7 @@ export const kg_create_relationship = {
|
|
|
557
596
|
},
|
|
558
597
|
handler: async (args, context) => {
|
|
559
598
|
try {
|
|
599
|
+
const identity = requireKnowledgeGraphIdentity(args, context);
|
|
560
600
|
if (!isKnowledgeGraphEnabled()) {
|
|
561
601
|
return {
|
|
562
602
|
success: false,
|
|
@@ -564,37 +604,43 @@ export const kg_create_relationship = {
|
|
|
564
604
|
message: 'Knowledge Graph is disabled',
|
|
565
605
|
};
|
|
566
606
|
}
|
|
567
|
-
const
|
|
568
|
-
|
|
607
|
+
const kgService = getKgService();
|
|
608
|
+
const fromEntityId = requireStringArgument(args, 'fromEntityId');
|
|
609
|
+
const toEntityId = requireStringArgument(args, 'toEntityId');
|
|
610
|
+
const type = requireStringArgument(args, 'type');
|
|
611
|
+
const [fromEntity, toEntity] = await Promise.all([
|
|
612
|
+
kgService.getEntity(fromEntityId, identity.channelId),
|
|
613
|
+
kgService.getEntity(toEntityId, identity.channelId)
|
|
614
|
+
]);
|
|
615
|
+
if (!fromEntity || !toEntity) {
|
|
569
616
|
return {
|
|
570
617
|
success: false,
|
|
571
618
|
relationship: null,
|
|
572
|
-
message: '
|
|
619
|
+
message: 'Both relationship endpoints must belong to the authenticated channel',
|
|
573
620
|
};
|
|
574
621
|
}
|
|
575
|
-
const kgService = getKgService();
|
|
576
622
|
const relationship = await kgService.createRelationship({
|
|
577
|
-
channelId,
|
|
578
|
-
fromEntityId
|
|
579
|
-
toEntityId
|
|
580
|
-
type
|
|
623
|
+
channelId: identity.channelId,
|
|
624
|
+
fromEntityId,
|
|
625
|
+
toEntityId,
|
|
626
|
+
type,
|
|
581
627
|
label: args.label,
|
|
582
628
|
confidence: args.confidence || 0.8,
|
|
583
629
|
source: 'manual',
|
|
584
|
-
},
|
|
630
|
+
}, identity.agentId);
|
|
585
631
|
return {
|
|
586
632
|
success: true,
|
|
587
633
|
relationship,
|
|
588
|
-
message: `Created relationship: ${
|
|
634
|
+
message: `Created relationship: ${type}`,
|
|
589
635
|
};
|
|
590
636
|
}
|
|
591
637
|
catch (error) {
|
|
592
|
-
logger.error('Failed to create relationship', { error: error
|
|
638
|
+
logger.error('Failed to create relationship', { error: errorMessage(error) });
|
|
593
639
|
return {
|
|
594
640
|
success: false,
|
|
595
641
|
relationship: null,
|
|
596
642
|
message: 'Failed to create relationship',
|
|
597
|
-
error: error
|
|
643
|
+
error: errorMessage(error),
|
|
598
644
|
};
|
|
599
645
|
}
|
|
600
646
|
},
|
|
@@ -625,6 +671,7 @@ export const kg_extract_from_text = {
|
|
|
625
671
|
},
|
|
626
672
|
handler: async (args, context) => {
|
|
627
673
|
try {
|
|
674
|
+
const identity = requireKnowledgeGraphIdentity(args, context);
|
|
628
675
|
if (!isKnowledgeGraphEnabled()) {
|
|
629
676
|
return {
|
|
630
677
|
success: false,
|
|
@@ -632,16 +679,9 @@ export const kg_extract_from_text = {
|
|
|
632
679
|
message: 'Knowledge Graph is disabled',
|
|
633
680
|
};
|
|
634
681
|
}
|
|
635
|
-
const channelId = args.channelId || context.channelId;
|
|
636
|
-
if (!channelId) {
|
|
637
|
-
return {
|
|
638
|
-
success: false,
|
|
639
|
-
result: null,
|
|
640
|
-
message: 'channelId is required but not provided',
|
|
641
|
-
};
|
|
642
|
-
}
|
|
643
682
|
const extractionService = getExtractionService();
|
|
644
|
-
const
|
|
683
|
+
const text = requireStringArgument(args, 'text');
|
|
684
|
+
const result = await extractionService.extractFromText(identity.channelId, text, args.sourceId);
|
|
645
685
|
return {
|
|
646
686
|
success: true,
|
|
647
687
|
result,
|
|
@@ -652,12 +692,12 @@ export const kg_extract_from_text = {
|
|
|
652
692
|
};
|
|
653
693
|
}
|
|
654
694
|
catch (error) {
|
|
655
|
-
logger.error('Failed to extract from text', { error: error
|
|
695
|
+
logger.error('Failed to extract from text', { error: errorMessage(error) });
|
|
656
696
|
return {
|
|
657
697
|
success: false,
|
|
658
698
|
result: null,
|
|
659
699
|
message: 'Failed to extract from text',
|
|
660
|
-
error: error
|
|
700
|
+
error: errorMessage(error),
|
|
661
701
|
};
|
|
662
702
|
}
|
|
663
703
|
},
|
|
@@ -688,6 +728,7 @@ export const kg_extract_from_memory = {
|
|
|
688
728
|
},
|
|
689
729
|
handler: async (args, context) => {
|
|
690
730
|
try {
|
|
731
|
+
const identity = requireKnowledgeGraphIdentity(args, context);
|
|
691
732
|
if (!isKnowledgeGraphEnabled()) {
|
|
692
733
|
return {
|
|
693
734
|
success: false,
|
|
@@ -695,16 +736,10 @@ export const kg_extract_from_memory = {
|
|
|
695
736
|
message: 'Knowledge Graph is disabled',
|
|
696
737
|
};
|
|
697
738
|
}
|
|
698
|
-
const channelId = args.channelId || context.channelId;
|
|
699
|
-
if (!channelId) {
|
|
700
|
-
return {
|
|
701
|
-
success: false,
|
|
702
|
-
result: null,
|
|
703
|
-
message: 'channelId is required but not provided',
|
|
704
|
-
};
|
|
705
|
-
}
|
|
706
739
|
const extractionService = getExtractionService();
|
|
707
|
-
const
|
|
740
|
+
const memoryId = requireStringArgument(args, 'memoryId');
|
|
741
|
+
const memoryContent = requireStringArgument(args, 'memoryContent');
|
|
742
|
+
const result = await extractionService.processMemory(identity.channelId, memoryId, memoryContent);
|
|
708
743
|
return {
|
|
709
744
|
success: true,
|
|
710
745
|
result,
|
|
@@ -715,12 +750,12 @@ export const kg_extract_from_memory = {
|
|
|
715
750
|
};
|
|
716
751
|
}
|
|
717
752
|
catch (error) {
|
|
718
|
-
logger.error('Failed to extract from memory', { error: error
|
|
753
|
+
logger.error('Failed to extract from memory', { error: errorMessage(error) });
|
|
719
754
|
return {
|
|
720
755
|
success: false,
|
|
721
756
|
result: null,
|
|
722
757
|
message: 'Failed to extract from memory',
|
|
723
|
-
error: error
|
|
758
|
+
error: errorMessage(error),
|
|
724
759
|
};
|
|
725
760
|
}
|
|
726
761
|
},
|
|
@@ -757,6 +792,7 @@ export const kg_get_phase_context = {
|
|
|
757
792
|
},
|
|
758
793
|
handler: async (args, context) => {
|
|
759
794
|
try {
|
|
795
|
+
const identity = requireKnowledgeGraphIdentity(args, context);
|
|
760
796
|
if (!isKnowledgeGraphEnabled()) {
|
|
761
797
|
return {
|
|
762
798
|
success: false,
|
|
@@ -764,16 +800,25 @@ export const kg_get_phase_context = {
|
|
|
764
800
|
message: 'Knowledge Graph is disabled',
|
|
765
801
|
};
|
|
766
802
|
}
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
|
|
803
|
+
if (args.entityIds !== undefined && (!Array.isArray(args.entityIds) ||
|
|
804
|
+
args.entityIds.some((entityId) => (typeof entityId !== 'string' || entityId.trim().length === 0)))) {
|
|
805
|
+
throw new Error('entityIds must contain only non-empty entity identifiers');
|
|
806
|
+
}
|
|
807
|
+
const entityIds = (args.entityIds || []);
|
|
808
|
+
if (entityIds.length > 0) {
|
|
809
|
+
const kgService = getKgService();
|
|
810
|
+
const scopedEntities = await Promise.all(entityIds.map(entityId => kgService.getEntity(entityId, identity.channelId)));
|
|
811
|
+
if (scopedEntities.some(entity => !entity)) {
|
|
812
|
+
return {
|
|
813
|
+
success: false,
|
|
814
|
+
phaseContext: null,
|
|
815
|
+
message: 'Every phase-context entity must belong to the authenticated channel',
|
|
816
|
+
};
|
|
817
|
+
}
|
|
774
818
|
}
|
|
775
819
|
const orparIntegration = getOrparIntegration();
|
|
776
|
-
const
|
|
820
|
+
const phase = requireStringArgument(args, 'phase');
|
|
821
|
+
const phaseContext = await orparIntegration.getPhaseContext(identity.channelId, identity.agentId, phase, args.taskContent, entityIds);
|
|
777
822
|
return {
|
|
778
823
|
success: true,
|
|
779
824
|
phaseContext,
|
|
@@ -785,12 +830,12 @@ export const kg_get_phase_context = {
|
|
|
785
830
|
};
|
|
786
831
|
}
|
|
787
832
|
catch (error) {
|
|
788
|
-
logger.error('Failed to get phase context', { error: error
|
|
833
|
+
logger.error('Failed to get phase context', { error: errorMessage(error) });
|
|
789
834
|
return {
|
|
790
835
|
success: false,
|
|
791
836
|
phaseContext: null,
|
|
792
837
|
message: 'Failed to get phase context',
|
|
793
|
-
error: error
|
|
838
|
+
error: errorMessage(error),
|
|
794
839
|
};
|
|
795
840
|
}
|
|
796
841
|
},
|
|
@@ -820,6 +865,7 @@ export const kg_find_duplicates = {
|
|
|
820
865
|
},
|
|
821
866
|
handler: async (args, context) => {
|
|
822
867
|
try {
|
|
868
|
+
const identity = requireKnowledgeGraphIdentity(args, context);
|
|
823
869
|
if (!isKnowledgeGraphEnabled()) {
|
|
824
870
|
return {
|
|
825
871
|
success: false,
|
|
@@ -827,16 +873,8 @@ export const kg_find_duplicates = {
|
|
|
827
873
|
message: 'Knowledge Graph is disabled',
|
|
828
874
|
};
|
|
829
875
|
}
|
|
830
|
-
const channelId = args.channelId || context.channelId;
|
|
831
|
-
if (!channelId) {
|
|
832
|
-
return {
|
|
833
|
-
success: false,
|
|
834
|
-
duplicates: [],
|
|
835
|
-
message: 'channelId is required but not provided',
|
|
836
|
-
};
|
|
837
|
-
}
|
|
838
876
|
const kgService = getKgService();
|
|
839
|
-
const duplicates = await kgService.findSimilarEntities(channelId, args.threshold || 0.8);
|
|
877
|
+
const duplicates = await kgService.findSimilarEntities(identity.channelId, args.threshold || 0.8);
|
|
840
878
|
return {
|
|
841
879
|
success: true,
|
|
842
880
|
duplicates,
|
|
@@ -847,12 +885,12 @@ export const kg_find_duplicates = {
|
|
|
847
885
|
};
|
|
848
886
|
}
|
|
849
887
|
catch (error) {
|
|
850
|
-
logger.error('Failed to find duplicates', { error: error
|
|
888
|
+
logger.error('Failed to find duplicates', { error: errorMessage(error) });
|
|
851
889
|
return {
|
|
852
890
|
success: false,
|
|
853
891
|
duplicates: [],
|
|
854
892
|
message: 'Failed to find duplicates',
|
|
855
|
-
error: error
|
|
893
|
+
error: errorMessage(error),
|
|
856
894
|
};
|
|
857
895
|
}
|
|
858
896
|
},
|
|
@@ -880,6 +918,7 @@ export const kg_merge_entities = {
|
|
|
880
918
|
},
|
|
881
919
|
handler: async (args, context) => {
|
|
882
920
|
try {
|
|
921
|
+
const identity = requireKnowledgeGraphIdentity(args, context);
|
|
883
922
|
if (!isKnowledgeGraphEnabled()) {
|
|
884
923
|
return {
|
|
885
924
|
success: false,
|
|
@@ -888,22 +927,33 @@ export const kg_merge_entities = {
|
|
|
888
927
|
};
|
|
889
928
|
}
|
|
890
929
|
const kgService = getKgService();
|
|
891
|
-
const
|
|
930
|
+
const targetEntityId = requireStringArgument(args, 'targetEntityId');
|
|
931
|
+
const sourceEntityIds = requireStringArrayArgument(args, 'sourceEntityIds');
|
|
932
|
+
const entityIds = [targetEntityId, ...sourceEntityIds];
|
|
933
|
+
const scopedEntities = await Promise.all(entityIds.map((entityId) => kgService.getEntity(entityId, identity.channelId)));
|
|
934
|
+
if (scopedEntities.some(entity => !entity)) {
|
|
935
|
+
return {
|
|
936
|
+
success: false,
|
|
937
|
+
result: null,
|
|
938
|
+
message: 'Every merged entity must belong to the authenticated channel',
|
|
939
|
+
};
|
|
940
|
+
}
|
|
941
|
+
const result = await kgService.mergeEntities(targetEntityId, sourceEntityIds, identity.agentId, identity.channelId);
|
|
892
942
|
return {
|
|
893
943
|
success: result.success,
|
|
894
944
|
result,
|
|
895
945
|
message: result.success
|
|
896
|
-
? `Successfully merged ${
|
|
946
|
+
? `Successfully merged ${sourceEntityIds.length} entities into target`
|
|
897
947
|
: result.error || 'Merge failed',
|
|
898
948
|
};
|
|
899
949
|
}
|
|
900
950
|
catch (error) {
|
|
901
|
-
logger.error('Failed to merge entities', { error: error
|
|
951
|
+
logger.error('Failed to merge entities', { error: errorMessage(error) });
|
|
902
952
|
return {
|
|
903
953
|
success: false,
|
|
904
954
|
result: null,
|
|
905
955
|
message: 'Failed to merge entities',
|
|
906
|
-
error: error
|
|
956
|
+
error: errorMessage(error),
|
|
907
957
|
};
|
|
908
958
|
}
|
|
909
959
|
},
|