@mxf-dev/core 1.0.1 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +18 -0
- package/dist/adapters/FrameworkAdapter.js +1 -1
- package/dist/adapters/FrameworkAdapter.js.map +1 -1
- package/dist/config/ConfigManager.d.ts +9 -8
- package/dist/config/ConfigManager.d.ts.map +1 -1
- package/dist/config/ConfigManager.js +47 -17
- package/dist/config/ConfigManager.js.map +1 -1
- package/dist/config/memory-strata.config.d.ts +25 -0
- package/dist/config/memory-strata.config.d.ts.map +1 -0
- package/dist/config/memory-strata.config.js +107 -0
- package/dist/config/memory-strata.config.js.map +1 -0
- package/dist/constants/ToolNames.d.ts +1 -29
- package/dist/constants/ToolNames.d.ts.map +1 -1
- package/dist/constants/ToolNames.js +4 -17
- package/dist/constants/ToolNames.js.map +1 -1
- package/dist/database/DatabaseAdapterFactory.d.ts +14 -2
- package/dist/database/DatabaseAdapterFactory.d.ts.map +1 -1
- package/dist/database/DatabaseAdapterFactory.js +21 -6
- package/dist/database/DatabaseAdapterFactory.js.map +1 -1
- package/dist/database/adapters/mongodb/MongoBaseRepository.d.ts +7 -1
- package/dist/database/adapters/mongodb/MongoBaseRepository.d.ts.map +1 -1
- package/dist/database/adapters/mongodb/MongoBaseRepository.js +12 -2
- package/dist/database/adapters/mongodb/MongoBaseRepository.js.map +1 -1
- package/dist/events/ClientEventBus.d.ts +16 -77
- package/dist/events/ClientEventBus.d.ts.map +1 -1
- package/dist/events/ClientEventBus.js +38 -311
- package/dist/events/ClientEventBus.js.map +1 -1
- package/dist/events/EventBus.d.ts +1 -1
- package/dist/events/EventBus.d.ts.map +1 -1
- package/dist/events/EventBus.js +5 -4
- package/dist/events/EventBus.js.map +1 -1
- package/dist/events/EventBusBase.d.ts +139 -34
- package/dist/events/EventBusBase.d.ts.map +1 -1
- package/dist/events/EventBusBase.js +366 -88
- package/dist/events/EventBusBase.js.map +1 -1
- package/dist/events/EventNames.d.ts +10 -1
- package/dist/events/EventNames.d.ts.map +1 -1
- package/dist/events/EventNames.js +3 -0
- package/dist/events/EventNames.js.map +1 -1
- package/dist/events/PublicEvents.d.ts +6 -2
- package/dist/events/PublicEvents.d.ts.map +1 -1
- package/dist/events/PublicEvents.js +7 -4
- package/dist/events/PublicEvents.js.map +1 -1
- package/dist/events/ServerEventBus.d.ts +23 -112
- package/dist/events/ServerEventBus.d.ts.map +1 -1
- package/dist/events/ServerEventBus.js +58 -323
- package/dist/events/ServerEventBus.js.map +1 -1
- package/dist/events/event-definitions/LlmBudgetEvents.d.ts +68 -0
- package/dist/events/event-definitions/LlmBudgetEvents.d.ts.map +1 -0
- package/dist/events/event-definitions/LlmBudgetEvents.js +35 -0
- package/dist/events/event-definitions/LlmBudgetEvents.js.map +1 -0
- package/dist/interfaces/IMemoryPersistence.d.ts +41 -0
- package/dist/interfaces/IMemoryPersistence.d.ts.map +1 -0
- package/dist/interfaces/IMemoryPersistence.js +15 -0
- package/dist/interfaces/IMemoryPersistence.js.map +1 -0
- package/dist/middleware/MxpMiddleware.d.ts +8 -1
- package/dist/middleware/MxpMiddleware.d.ts.map +1 -1
- package/dist/middleware/MxpMiddleware.js +42 -20
- package/dist/middleware/MxpMiddleware.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/memoryUtility.d.ts +39 -0
- package/dist/models/memoryUtility.d.ts.map +1 -0
- package/dist/models/memoryUtility.js +39 -0
- package/dist/models/memoryUtility.js.map +1 -0
- package/dist/models/user.d.ts.map +1 -1
- package/dist/models/user.js +23 -1
- package/dist/models/user.js.map +1 -1
- package/dist/mxp/BinaryProtocolLayer.d.ts +24 -8
- package/dist/mxp/BinaryProtocolLayer.d.ts.map +1 -1
- package/dist/mxp/BinaryProtocolLayer.js +90 -103
- package/dist/mxp/BinaryProtocolLayer.js.map +1 -1
- package/dist/mxp/ContextCompressionEngine.d.ts +57 -10
- package/dist/mxp/ContextCompressionEngine.d.ts.map +1 -1
- package/dist/mxp/ContextCompressionEngine.js +170 -128
- package/dist/mxp/ContextCompressionEngine.js.map +1 -1
- package/dist/mxp/MxpTokenOptimizer.d.ts +7 -3
- package/dist/mxp/MxpTokenOptimizer.d.ts.map +1 -1
- package/dist/mxp/MxpTokenOptimizer.js +8 -5
- package/dist/mxp/MxpTokenOptimizer.js.map +1 -1
- package/dist/prompts/MxfAgentSystemPrompt.d.ts +1 -1
- package/dist/prompts/MxfAgentSystemPrompt.d.ts.map +1 -1
- package/dist/prompts/MxfAgentSystemPrompt.js +47 -57
- package/dist/prompts/MxfAgentSystemPrompt.js.map +1 -1
- package/dist/protocols/mcp/ToolError.d.ts +123 -0
- package/dist/protocols/mcp/ToolError.d.ts.map +1 -0
- package/dist/protocols/mcp/ToolError.js +108 -0
- package/dist/protocols/mcp/ToolError.js.map +1 -0
- package/dist/protocols/mcp/defineTool.d.ts +133 -0
- package/dist/protocols/mcp/defineTool.d.ts.map +1 -0
- package/dist/protocols/mcp/defineTool.js +236 -0
- package/dist/protocols/mcp/defineTool.js.map +1 -0
- package/dist/protocols/mcp/security/HttpTargetGuard.d.ts +38 -0
- package/dist/protocols/mcp/security/HttpTargetGuard.d.ts.map +1 -0
- package/dist/protocols/mcp/security/HttpTargetGuard.js +227 -0
- package/dist/protocols/mcp/security/HttpTargetGuard.js.map +1 -0
- package/dist/protocols/mcp/security/McpSecurityGuard.d.ts +9 -1
- package/dist/protocols/mcp/security/McpSecurityGuard.d.ts.map +1 -1
- package/dist/protocols/mcp/security/McpSecurityGuard.js +10 -2
- package/dist/protocols/mcp/security/McpSecurityGuard.js.map +1 -1
- package/dist/protocols/mcp/security/McpToolPolicy.d.ts +81 -0
- package/dist/protocols/mcp/security/McpToolPolicy.d.ts.map +1 -0
- package/dist/protocols/mcp/security/McpToolPolicy.js +202 -0
- package/dist/protocols/mcp/security/McpToolPolicy.js.map +1 -0
- package/dist/protocols/mcp/services/ExternalMcpServerManager.d.ts +51 -18
- package/dist/protocols/mcp/services/ExternalMcpServerManager.d.ts.map +1 -1
- package/dist/protocols/mcp/services/ExternalMcpServerManager.js +256 -283
- package/dist/protocols/mcp/services/ExternalMcpServerManager.js.map +1 -1
- package/dist/protocols/mcp/services/ExternalServerConfigs.d.ts +39 -6
- package/dist/protocols/mcp/services/ExternalServerConfigs.d.ts.map +1 -1
- package/dist/protocols/mcp/services/ExternalServerConfigs.js +76 -18
- package/dist/protocols/mcp/services/ExternalServerConfigs.js.map +1 -1
- package/dist/protocols/mcp/tools/AnalyticsTools.js +1 -1
- 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 +15 -0
- package/dist/protocols/mcp/tools/CodeAnalysisTools.js.map +1 -1
- package/dist/protocols/mcp/tools/EffectivenessTools.js +3 -3
- package/dist/protocols/mcp/tools/EffectivenessTools.js.map +1 -1
- package/dist/protocols/mcp/tools/GitTools.d.ts +9 -369
- package/dist/protocols/mcp/tools/GitTools.d.ts.map +1 -1
- package/dist/protocols/mcp/tools/GitTools.js +222 -517
- package/dist/protocols/mcp/tools/GitTools.js.map +1 -1
- package/dist/protocols/mcp/tools/InfrastructureTools.d.ts +56 -24
- package/dist/protocols/mcp/tools/InfrastructureTools.d.ts.map +1 -1
- package/dist/protocols/mcp/tools/InfrastructureTools.js +117 -26
- package/dist/protocols/mcp/tools/InfrastructureTools.js.map +1 -1
- package/dist/protocols/mcp/tools/MemorySearchTools.d.ts +0 -3
- package/dist/protocols/mcp/tools/MemorySearchTools.d.ts.map +1 -1
- package/dist/protocols/mcp/tools/MemorySearchTools.js +58 -1
- package/dist/protocols/mcp/tools/MemorySearchTools.js.map +1 -1
- package/dist/protocols/mcp/tools/OrparTools.d.ts +8 -0
- package/dist/protocols/mcp/tools/OrparTools.d.ts.map +1 -1
- package/dist/protocols/mcp/tools/OrparTools.js +66 -0
- package/dist/protocols/mcp/tools/OrparTools.js.map +1 -1
- package/dist/protocols/mcp/tools/SafetyTools.d.ts +7 -525
- package/dist/protocols/mcp/tools/SafetyTools.d.ts.map +1 -1
- package/dist/protocols/mcp/tools/SafetyTools.js +349 -514
- package/dist/protocols/mcp/tools/SafetyTools.js.map +1 -1
- package/dist/protocols/mcp/tools/TaskPlanningTools.d.ts.map +1 -1
- package/dist/protocols/mcp/tools/TaskPlanningTools.js +56 -26
- package/dist/protocols/mcp/tools/TaskPlanningTools.js.map +1 -1
- package/dist/protocols/mcp/tools/TestTools.d.ts +15 -376
- package/dist/protocols/mcp/tools/TestTools.d.ts.map +1 -1
- package/dist/protocols/mcp/tools/TestTools.js +241 -363
- package/dist/protocols/mcp/tools/TestTools.js.map +1 -1
- package/dist/protocols/mcp/tools/TypeScriptTools.d.ts +6 -276
- package/dist/protocols/mcp/tools/TypeScriptTools.d.ts.map +1 -1
- package/dist/protocols/mcp/tools/TypeScriptTools.js +223 -337
- package/dist/protocols/mcp/tools/TypeScriptTools.js.map +1 -1
- package/dist/protocols/mcp/tools/WebTools.d.ts +15 -728
- package/dist/protocols/mcp/tools/WebTools.d.ts.map +1 -1
- package/dist/protocols/mcp/tools/WebTools.js +151 -257
- package/dist/protocols/mcp/tools/WebTools.js.map +1 -1
- package/dist/protocols/mcp/tools/shell/ShellExecuteHandler.d.ts +5 -3
- package/dist/protocols/mcp/tools/shell/ShellExecuteHandler.d.ts.map +1 -1
- package/dist/protocols/mcp/tools/shell/ShellExecuteHandler.js +31 -6
- package/dist/protocols/mcp/tools/shell/ShellExecuteHandler.js.map +1 -1
- package/dist/schemas/EventPayloadSchema.d.ts +21 -0
- package/dist/schemas/EventPayloadSchema.d.ts.map +1 -1
- package/dist/schemas/EventPayloadSchema.js +14 -0
- package/dist/schemas/EventPayloadSchema.js.map +1 -1
- package/dist/services/BackgroundTaskManager.d.ts.map +1 -1
- package/dist/services/BackgroundTaskManager.js +12 -4
- package/dist/services/BackgroundTaskManager.js.map +1 -1
- package/dist/services/BrowserManager.d.ts +1 -1
- package/dist/services/BrowserManager.d.ts.map +1 -1
- package/dist/services/BrowserManager.js +26 -3
- package/dist/services/BrowserManager.js.map +1 -1
- package/dist/services/MemoryCompressor.d.ts +11 -2
- package/dist/services/MemoryCompressor.d.ts.map +1 -1
- package/dist/services/MemoryCompressor.js +8 -26
- package/dist/services/MemoryCompressor.js.map +1 -1
- package/dist/services/MemoryService.d.ts +16 -3
- package/dist/services/MemoryService.d.ts.map +1 -1
- package/dist/services/MemoryService.js +79 -55
- package/dist/services/MemoryService.js.map +1 -1
- package/dist/services/MxfMLService.d.ts +5 -0
- package/dist/services/MxfMLService.d.ts.map +1 -1
- package/dist/services/MxfMLService.js +32 -6
- package/dist/services/MxfMLService.js.map +1 -1
- package/dist/services/PredictiveAnalyticsService.d.ts +45 -9
- package/dist/services/PredictiveAnalyticsService.d.ts.map +1 -1
- package/dist/services/PredictiveAnalyticsService.js +82 -44
- package/dist/services/PredictiveAnalyticsService.js.map +1 -1
- package/dist/services/QValueManager.d.ts +7 -0
- package/dist/services/QValueManager.d.ts.map +1 -1
- package/dist/services/QValueManager.js +9 -0
- package/dist/services/QValueManager.js.map +1 -1
- package/dist/services/RewardSignalProcessor.d.ts +38 -1
- package/dist/services/RewardSignalProcessor.d.ts.map +1 -1
- package/dist/services/RewardSignalProcessor.js +109 -7
- package/dist/services/RewardSignalProcessor.js.map +1 -1
- package/dist/services/SharedStateService.d.ts +16 -2
- package/dist/services/SharedStateService.d.ts.map +1 -1
- package/dist/services/SharedStateService.js +44 -3
- package/dist/services/SharedStateService.js.map +1 -1
- package/dist/services/TaskEffectivenessService.d.ts +34 -18
- package/dist/services/TaskEffectivenessService.d.ts.map +1 -1
- package/dist/services/TaskEffectivenessService.js +91 -155
- package/dist/services/TaskEffectivenessService.js.map +1 -1
- package/dist/services/WebSearchService.d.ts.map +1 -1
- package/dist/services/WebSearchService.js.map +1 -1
- package/dist/services/dag/TaskDagService.d.ts.map +1 -1
- package/dist/services/dag/TaskDagService.js +2 -0
- package/dist/services/dag/TaskDagService.js.map +1 -1
- package/dist/services/orpar-memory/OrparMemoryCoordinator.d.ts +7 -0
- package/dist/services/orpar-memory/OrparMemoryCoordinator.d.ts.map +1 -1
- package/dist/services/orpar-memory/OrparMemoryCoordinator.js +71 -10
- package/dist/services/orpar-memory/OrparMemoryCoordinator.js.map +1 -1
- package/dist/types/MemoryUtilityTypes.d.ts +2 -0
- package/dist/types/MemoryUtilityTypes.d.ts.map +1 -1
- package/dist/types/MemoryUtilityTypes.js.map +1 -1
- package/dist/utils/Logger.d.ts +43 -3
- package/dist/utils/Logger.d.ts.map +1 -1
- package/dist/utils/Logger.js +78 -36
- package/dist/utils/Logger.js.map +1 -1
- package/dist/utils/MxpEncryption.d.ts +19 -6
- package/dist/utils/MxpEncryption.d.ts.map +1 -1
- package/dist/utils/MxpEncryption.js +48 -16
- package/dist/utils/MxpEncryption.js.map +1 -1
- package/package.json +19 -4
- package/src/adapters/FrameworkAdapter.ts +1 -1
- package/src/config/ConfigManager.ts +52 -19
- package/src/config/memory-strata.config.ts +136 -0
- package/src/constants/ToolNames.ts +4 -18
- package/src/database/DatabaseAdapterFactory.ts +23 -6
- package/src/database/adapters/mongodb/MongoBaseRepository.ts +16 -2
- package/src/events/ClientEventBus.ts +68 -403
- package/src/events/EventBus.ts +7 -8
- package/src/events/EventBusBase.ts +479 -116
- package/src/events/EventNames.ts +6 -0
- package/src/events/PublicEvents.ts +7 -4
- package/src/events/ServerEventBus.ts +78 -473
- package/src/events/event-definitions/LlmBudgetEvents.ts +74 -0
- package/src/interfaces/IMemoryPersistence.ts +51 -0
- package/src/middleware/MxpMiddleware.ts +51 -24
- package/src/models/channelKey.ts +18 -4
- package/src/models/memoryUtility.ts +64 -0
- package/src/models/user.ts +36 -4
- package/src/mxp/BinaryProtocolLayer.ts +108 -124
- package/src/mxp/ContextCompressionEngine.ts +219 -161
- package/src/mxp/MxpTokenOptimizer.ts +10 -10
- package/src/prompts/MxfAgentSystemPrompt.ts +45 -55
- package/src/protocols/mcp/ToolError.ts +201 -0
- package/src/protocols/mcp/defineTool.ts +379 -0
- package/src/protocols/mcp/security/HttpTargetGuard.ts +267 -0
- package/src/protocols/mcp/security/McpSecurityGuard.ts +10 -3
- package/src/protocols/mcp/security/McpToolPolicy.ts +221 -0
- package/src/protocols/mcp/services/ExternalMcpServerManager.ts +340 -322
- package/src/protocols/mcp/services/ExternalServerConfigs.ts +82 -19
- package/src/protocols/mcp/tools/AnalyticsTools.ts +1 -1
- package/src/protocols/mcp/tools/CodeAnalysisTools.ts +15 -0
- package/src/protocols/mcp/tools/EffectivenessTools.ts +3 -3
- package/src/protocols/mcp/tools/GitTools.ts +290 -569
- package/src/protocols/mcp/tools/InfrastructureTools.ts +189 -43
- package/src/protocols/mcp/tools/MemorySearchTools.ts +77 -1
- package/src/protocols/mcp/tools/OrparTools.ts +87 -0
- package/src/protocols/mcp/tools/SafetyTools.ts +501 -579
- package/src/protocols/mcp/tools/TaskPlanningTools.ts +81 -39
- package/src/protocols/mcp/tools/TestTools.ts +339 -419
- package/src/protocols/mcp/tools/TypeScriptTools.ts +316 -376
- package/src/protocols/mcp/tools/WebTools.ts +209 -307
- package/src/protocols/mcp/tools/shell/ShellExecuteHandler.ts +53 -14
- package/src/schemas/EventPayloadSchema.ts +37 -0
- package/src/services/BackgroundTaskManager.ts +12 -4
- package/src/services/BrowserManager.ts +41 -1
- package/src/services/MemoryCompressor.ts +20 -32
- package/src/services/MemoryService.ts +96 -58
- package/src/services/MxfMLService.ts +41 -7
- package/src/services/PredictiveAnalyticsService.ts +101 -51
- package/src/services/QValueManager.ts +10 -0
- package/src/services/RewardSignalProcessor.ts +138 -9
- package/src/services/SharedStateService.ts +56 -8
- package/src/services/TaskEffectivenessService.ts +114 -187
- package/src/services/WebSearchService.ts +2 -1
- package/src/services/dag/TaskDagService.ts +2 -0
- package/src/services/orpar-memory/OrparMemoryCoordinator.ts +86 -10
- package/src/types/MemoryUtilityTypes.ts +2 -0
- package/src/utils/Logger.ts +116 -40
- package/src/utils/MxpEncryption.ts +69 -34
- package/dist/mxp/MxpEventForwardingEnhancer.d.ts +0 -134
- package/dist/mxp/MxpEventForwardingEnhancer.d.ts.map +0 -1
- package/dist/mxp/MxpEventForwardingEnhancer.js +0 -361
- package/dist/mxp/MxpEventForwardingEnhancer.js.map +0 -1
- package/dist/protocols/mcp/services/ToolSchemaEnhancements.d.ts +0 -56
- package/dist/protocols/mcp/services/ToolSchemaEnhancements.d.ts.map +0 -1
- package/dist/protocols/mcp/services/ToolSchemaEnhancements.js +0 -57
- package/dist/protocols/mcp/services/ToolSchemaEnhancements.js.map +0 -1
- package/dist/protocols/mcp/tools/ControlLoopLifecycle.d.ts +0 -270
- package/dist/protocols/mcp/tools/ControlLoopLifecycle.d.ts.map +0 -1
- package/dist/protocols/mcp/tools/ControlLoopLifecycle.js +0 -256
- package/dist/protocols/mcp/tools/ControlLoopLifecycle.js.map +0 -1
- package/dist/protocols/mcp/tools/LspTools.d.ts +0 -495
- package/dist/protocols/mcp/tools/LspTools.d.ts.map +0 -1
- package/dist/protocols/mcp/tools/LspTools.js +0 -469
- package/dist/protocols/mcp/tools/LspTools.js.map +0 -1
- package/src/mxp/MxpEventForwardingEnhancer.ts +0 -471
- package/src/protocols/mcp/services/ToolSchemaEnhancements.ts +0 -92
- package/src/protocols/mcp/tools/ControlLoopLifecycle.ts +0 -302
- package/src/protocols/mcp/tools/LspTools.ts +0 -476
|
@@ -1,302 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Copyright 2024 Brad Anderson
|
|
3
|
-
*
|
|
4
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
-
* you may not use this file except in compliance with the License.
|
|
6
|
-
* You may obtain a copy of the License at
|
|
7
|
-
*
|
|
8
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
-
*
|
|
10
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
-
* See the License for the specific language governing permissions and
|
|
14
|
-
* limitations under the License.
|
|
15
|
-
*
|
|
16
|
-
* @author Brad Anderson <BradA1878@pm.me>
|
|
17
|
-
* @repository https://github.com/BradA1878/model-exchange-framework
|
|
18
|
-
* @documentation https://mxf-dev.github.io/mxf/
|
|
19
|
-
*/
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* ControlLoopLifecycle.ts
|
|
23
|
-
*
|
|
24
|
-
* MCP tools for control loop lifecycle management - start, stop, and status operations.
|
|
25
|
-
* Handles the core lifecycle of ORPAR control loops within the MXF framework.
|
|
26
|
-
*/
|
|
27
|
-
|
|
28
|
-
import { Events } from '../../../events/EventNames.js';
|
|
29
|
-
import { EventBus } from '../../../events/EventBus.js';
|
|
30
|
-
import { createControlLoopEventPayload, ControlLoopSpecificData } from '../../../schemas/EventPayloadSchema.js';
|
|
31
|
-
import { AgentId, ChannelId } from '../../../types/ChannelContext.js';
|
|
32
|
-
import { Logger } from '../../../utils/Logger.js';
|
|
33
|
-
import { CONTROL_LOOP_TOOLS } from '../../../constants/ToolNames.js';
|
|
34
|
-
import { McpToolHandlerContext, McpToolHandlerResult, McpToolResultContent } from '../McpServerTypes.js';
|
|
35
|
-
|
|
36
|
-
const logger = new Logger('info', 'ControlLoopLifecycle', 'server');
|
|
37
|
-
|
|
38
|
-
/**
|
|
39
|
-
* MCP Tool: controlLoop_start
|
|
40
|
-
* Initialize and start an agent's control loop with configuration
|
|
41
|
-
*/
|
|
42
|
-
export const controlLoopStartTool = {
|
|
43
|
-
name: CONTROL_LOOP_TOOLS.START,
|
|
44
|
-
description: 'Initialize and start an agent\'s control loop with configuration',
|
|
45
|
-
inputSchema: {
|
|
46
|
-
type: 'object',
|
|
47
|
-
properties: {
|
|
48
|
-
loopId: {
|
|
49
|
-
type: 'string',
|
|
50
|
-
description: 'Unique identifier for the control loop instance'
|
|
51
|
-
},
|
|
52
|
-
config: {
|
|
53
|
-
type: 'object',
|
|
54
|
-
description: 'Configuration parameters for the control loop',
|
|
55
|
-
properties: {
|
|
56
|
-
maxIterations: { type: 'number', description: 'Maximum number of loop iterations' },
|
|
57
|
-
timeoutMs: { type: 'number', description: 'Timeout in milliseconds' },
|
|
58
|
-
observationInterval: { type: 'number', description: 'Observation interval in ms' },
|
|
59
|
-
autoReflection: { type: 'boolean', description: 'Enable automatic reflection' },
|
|
60
|
-
phases: {
|
|
61
|
-
type: 'array',
|
|
62
|
-
items: { type: 'string' },
|
|
63
|
-
description: 'Enabled ORPAR phases'
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
},
|
|
67
|
-
initialObservations: {
|
|
68
|
-
type: 'array',
|
|
69
|
-
description: 'Initial observations to start the loop with',
|
|
70
|
-
items: { type: 'object' }
|
|
71
|
-
}
|
|
72
|
-
},
|
|
73
|
-
required: ['loopId']
|
|
74
|
-
},
|
|
75
|
-
|
|
76
|
-
handler: async (input: {
|
|
77
|
-
loopId: string;
|
|
78
|
-
config?: {
|
|
79
|
-
maxIterations?: number;
|
|
80
|
-
timeoutMs?: number;
|
|
81
|
-
observationInterval?: number;
|
|
82
|
-
autoReflection?: boolean;
|
|
83
|
-
phases?: string[];
|
|
84
|
-
};
|
|
85
|
-
initialObservations?: any[];
|
|
86
|
-
}, context: McpToolHandlerContext): Promise<McpToolHandlerResult> => {
|
|
87
|
-
try {
|
|
88
|
-
const controlLoopData: ControlLoopSpecificData = {
|
|
89
|
-
loopId: input.loopId,
|
|
90
|
-
status: 'initializing',
|
|
91
|
-
config: {
|
|
92
|
-
maxIterations: input.config?.maxIterations || 10,
|
|
93
|
-
timeoutMs: input.config?.timeoutMs || 300000, // 5 minutes
|
|
94
|
-
observationInterval: input.config?.observationInterval || 1000,
|
|
95
|
-
autoReflection: input.config?.autoReflection ?? true,
|
|
96
|
-
phases: input.config?.phases || ['observation', 'reasoning', 'action', 'planning', 'reflection'],
|
|
97
|
-
initialObservations: input.initialObservations || [],
|
|
98
|
-
startedAt: Date.now(),
|
|
99
|
-
requestId: context.requestId
|
|
100
|
-
}
|
|
101
|
-
};
|
|
102
|
-
|
|
103
|
-
// Emit control loop initialize event using existing infrastructure
|
|
104
|
-
const payload = createControlLoopEventPayload(
|
|
105
|
-
Events.ControlLoop.INITIALIZE,
|
|
106
|
-
context.agentId!,
|
|
107
|
-
context.channelId!,
|
|
108
|
-
controlLoopData
|
|
109
|
-
);
|
|
110
|
-
|
|
111
|
-
EventBus.server.emit(Events.ControlLoop.INITIALIZE, payload);
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
const content: McpToolResultContent = {
|
|
115
|
-
type: 'application/json',
|
|
116
|
-
data: {
|
|
117
|
-
loopId: input.loopId,
|
|
118
|
-
status: 'initializing',
|
|
119
|
-
startedAt: controlLoopData.config?.startedAt,
|
|
120
|
-
config: controlLoopData.config
|
|
121
|
-
}
|
|
122
|
-
};
|
|
123
|
-
return { content };
|
|
124
|
-
} catch (error) {
|
|
125
|
-
logger.error(`Failed to start control loop: ${error}`);
|
|
126
|
-
const content: McpToolResultContent = {
|
|
127
|
-
type: 'application/json',
|
|
128
|
-
data: {
|
|
129
|
-
error: `Failed to start control loop: ${error instanceof Error ? error.message : String(error)}`
|
|
130
|
-
}
|
|
131
|
-
};
|
|
132
|
-
return { content };
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
};
|
|
136
|
-
|
|
137
|
-
/**
|
|
138
|
-
* MCP Tool: controlLoop_status
|
|
139
|
-
* Get current state and metrics of control loops
|
|
140
|
-
*/
|
|
141
|
-
export const controlLoopStatusTool = {
|
|
142
|
-
name: CONTROL_LOOP_TOOLS.STATUS,
|
|
143
|
-
description: 'Get current state and metrics of control loops',
|
|
144
|
-
inputSchema: {
|
|
145
|
-
type: 'object',
|
|
146
|
-
properties: {
|
|
147
|
-
loopId: {
|
|
148
|
-
type: 'string',
|
|
149
|
-
description: 'ID of the specific control loop to get status for (optional - if not provided, returns all loops)'
|
|
150
|
-
},
|
|
151
|
-
includeMetrics: {
|
|
152
|
-
type: 'boolean',
|
|
153
|
-
default: true,
|
|
154
|
-
description: 'Whether to include performance metrics'
|
|
155
|
-
},
|
|
156
|
-
includeHistory: {
|
|
157
|
-
type: 'boolean',
|
|
158
|
-
default: false,
|
|
159
|
-
description: 'Whether to include execution history'
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
},
|
|
163
|
-
|
|
164
|
-
handler: async (input: {
|
|
165
|
-
loopId?: string;
|
|
166
|
-
includeMetrics?: boolean;
|
|
167
|
-
includeHistory?: boolean;
|
|
168
|
-
}, context: McpToolHandlerContext): Promise<McpToolHandlerResult> => {
|
|
169
|
-
try {
|
|
170
|
-
|
|
171
|
-
// This would normally query the control loop service/registry
|
|
172
|
-
// For now, return a placeholder implementation
|
|
173
|
-
const mockLoops = [
|
|
174
|
-
{
|
|
175
|
-
loopId: input.loopId || 'example-loop-1',
|
|
176
|
-
status: 'running',
|
|
177
|
-
currentPhase: 'observation',
|
|
178
|
-
startedAt: Date.now() - 60000, // Started 1 minute ago
|
|
179
|
-
lastActivity: Date.now() - 5000, // Last activity 5 seconds ago
|
|
180
|
-
metrics: input.includeMetrics ? {
|
|
181
|
-
cyclesCompleted: 3,
|
|
182
|
-
averageCycleTime: 15000,
|
|
183
|
-
successRate: 0.95,
|
|
184
|
-
errorsCount: 1
|
|
185
|
-
} : undefined,
|
|
186
|
-
history: input.includeHistory ? [
|
|
187
|
-
{ phase: 'observation', startedAt: Date.now() - 50000, completedAt: Date.now() - 45000 },
|
|
188
|
-
{ phase: 'reasoning', startedAt: Date.now() - 45000, completedAt: Date.now() - 40000 },
|
|
189
|
-
{ phase: 'action', startedAt: Date.now() - 40000, completedAt: Date.now() - 35000 }
|
|
190
|
-
] : undefined
|
|
191
|
-
}
|
|
192
|
-
];
|
|
193
|
-
|
|
194
|
-
const content: McpToolResultContent = {
|
|
195
|
-
type: 'application/json',
|
|
196
|
-
data: {
|
|
197
|
-
loops: mockLoops,
|
|
198
|
-
totalLoops: mockLoops.length
|
|
199
|
-
}
|
|
200
|
-
};
|
|
201
|
-
return { content };
|
|
202
|
-
} catch (error) {
|
|
203
|
-
logger.error(`Failed to get control loop status: ${error}`);
|
|
204
|
-
const content: McpToolResultContent = {
|
|
205
|
-
type: 'application/json',
|
|
206
|
-
data: {
|
|
207
|
-
error: `Failed to get control loop status: ${error instanceof Error ? error.message : String(error)}`
|
|
208
|
-
}
|
|
209
|
-
};
|
|
210
|
-
return { content };
|
|
211
|
-
}
|
|
212
|
-
}
|
|
213
|
-
};
|
|
214
|
-
|
|
215
|
-
/**
|
|
216
|
-
* MCP Tool: controlLoop_stop
|
|
217
|
-
* Stop a running control loop
|
|
218
|
-
*/
|
|
219
|
-
export const controlLoopStopTool = {
|
|
220
|
-
name: CONTROL_LOOP_TOOLS.STOP,
|
|
221
|
-
description: 'Stop a running control loop',
|
|
222
|
-
inputSchema: {
|
|
223
|
-
type: 'object',
|
|
224
|
-
properties: {
|
|
225
|
-
loopId: {
|
|
226
|
-
type: 'string',
|
|
227
|
-
description: 'ID of the control loop to stop'
|
|
228
|
-
},
|
|
229
|
-
reason: {
|
|
230
|
-
type: 'string',
|
|
231
|
-
description: 'Reason for stopping the control loop',
|
|
232
|
-
default: 'Stopped by agent'
|
|
233
|
-
},
|
|
234
|
-
graceful: {
|
|
235
|
-
type: 'boolean',
|
|
236
|
-
description: 'Whether to stop gracefully or immediately',
|
|
237
|
-
default: true
|
|
238
|
-
}
|
|
239
|
-
},
|
|
240
|
-
required: ['loopId']
|
|
241
|
-
},
|
|
242
|
-
|
|
243
|
-
handler: async (input: {
|
|
244
|
-
loopId: string;
|
|
245
|
-
reason?: string;
|
|
246
|
-
graceful?: boolean;
|
|
247
|
-
}, context: McpToolHandlerContext): Promise<McpToolHandlerResult> => {
|
|
248
|
-
try {
|
|
249
|
-
const controlLoopData: ControlLoopSpecificData = {
|
|
250
|
-
loopId: input.loopId,
|
|
251
|
-
status: 'stopping',
|
|
252
|
-
context: {
|
|
253
|
-
reason: input.reason || 'Stopped by agent',
|
|
254
|
-
graceful: input.graceful ?? true,
|
|
255
|
-
stoppedAt: Date.now(),
|
|
256
|
-
requestId: context.requestId
|
|
257
|
-
}
|
|
258
|
-
};
|
|
259
|
-
|
|
260
|
-
// Emit control loop stopped event using existing infrastructure
|
|
261
|
-
const payload = createControlLoopEventPayload(
|
|
262
|
-
Events.ControlLoop.STOPPED,
|
|
263
|
-
context.agentId!,
|
|
264
|
-
context.channelId!,
|
|
265
|
-
controlLoopData
|
|
266
|
-
);
|
|
267
|
-
|
|
268
|
-
EventBus.server.emit(Events.ControlLoop.STOPPED, payload);
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
const content: McpToolResultContent = {
|
|
272
|
-
type: 'application/json',
|
|
273
|
-
data: {
|
|
274
|
-
loopId: input.loopId,
|
|
275
|
-
status: 'stopped',
|
|
276
|
-
stoppedAt: Date.now(),
|
|
277
|
-
reason: input.reason || 'Stopped by agent',
|
|
278
|
-
graceful: input.graceful ?? true
|
|
279
|
-
}
|
|
280
|
-
};
|
|
281
|
-
return { content };
|
|
282
|
-
} catch (error) {
|
|
283
|
-
logger.error(`Failed to stop control loop: ${error}`);
|
|
284
|
-
const content: McpToolResultContent = {
|
|
285
|
-
type: 'application/json',
|
|
286
|
-
data: {
|
|
287
|
-
error: `Failed to stop control loop: ${error instanceof Error ? error.message : String(error)}`
|
|
288
|
-
}
|
|
289
|
-
};
|
|
290
|
-
return { content };
|
|
291
|
-
}
|
|
292
|
-
}
|
|
293
|
-
};
|
|
294
|
-
|
|
295
|
-
/**
|
|
296
|
-
* Export lifecycle control loop tools
|
|
297
|
-
*/
|
|
298
|
-
export const controlLoopLifecycleTools = [
|
|
299
|
-
controlLoopStartTool,
|
|
300
|
-
controlLoopStatusTool,
|
|
301
|
-
controlLoopStopTool
|
|
302
|
-
];
|