@nexus-ai-nexoralabs/cli 0.1.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/.env.example +16 -0
- package/LICENSE +21 -0
- package/README.md +106 -0
- package/dist/api/index.d.ts +81 -0
- package/dist/api/index.d.ts.map +1 -0
- package/dist/api/index.js +224 -0
- package/dist/api/index.js.map +1 -0
- package/dist/chat/chatService.d.ts +49 -0
- package/dist/chat/chatService.d.ts.map +1 -0
- package/dist/chat/chatService.js +163 -0
- package/dist/chat/chatService.js.map +1 -0
- package/dist/chat/contextBuilder.d.ts +19 -0
- package/dist/chat/contextBuilder.d.ts.map +1 -0
- package/dist/chat/contextBuilder.js +43 -0
- package/dist/chat/contextBuilder.js.map +1 -0
- package/dist/chat/conversationService.d.ts +25 -0
- package/dist/chat/conversationService.d.ts.map +1 -0
- package/dist/chat/conversationService.js +55 -0
- package/dist/chat/conversationService.js.map +1 -0
- package/dist/chat/index.d.ts +6 -0
- package/dist/chat/index.d.ts.map +1 -0
- package/dist/chat/index.js +6 -0
- package/dist/chat/index.js.map +1 -0
- package/dist/chat/messageService.d.ts +18 -0
- package/dist/chat/messageService.d.ts.map +1 -0
- package/dist/chat/messageService.js +26 -0
- package/dist/chat/messageService.js.map +1 -0
- package/dist/chat/promptTemplates.d.ts +19 -0
- package/dist/chat/promptTemplates.d.ts.map +1 -0
- package/dist/chat/promptTemplates.js +32 -0
- package/dist/chat/promptTemplates.js.map +1 -0
- package/dist/cli/agentRunner.d.ts +126 -0
- package/dist/cli/agentRunner.d.ts.map +1 -0
- package/dist/cli/agentRunner.js +892 -0
- package/dist/cli/agentRunner.js.map +1 -0
- package/dist/cli/bin.d.ts +14 -0
- package/dist/cli/bin.d.ts.map +1 -0
- package/dist/cli/bin.js +20 -0
- package/dist/cli/bin.js.map +1 -0
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +2 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/inputEngine.d.ts +76 -0
- package/dist/cli/inputEngine.d.ts.map +1 -0
- package/dist/cli/inputEngine.js +281 -0
- package/dist/cli/inputEngine.js.map +1 -0
- package/dist/cli/main.d.ts +9 -0
- package/dist/cli/main.d.ts.map +1 -0
- package/dist/cli/main.js +144 -0
- package/dist/cli/main.js.map +1 -0
- package/dist/cli/uiFormatters.d.ts +108 -0
- package/dist/cli/uiFormatters.d.ts.map +1 -0
- package/dist/cli/uiFormatters.js +925 -0
- package/dist/cli/uiFormatters.js.map +1 -0
- package/dist/common/logger.d.ts +13 -0
- package/dist/common/logger.d.ts.map +1 -0
- package/dist/common/logger.js +43 -0
- package/dist/common/logger.js.map +1 -0
- package/dist/config/firstRunHealthCheck.d.ts +50 -0
- package/dist/config/firstRunHealthCheck.d.ts.map +1 -0
- package/dist/config/firstRunHealthCheck.js +196 -0
- package/dist/config/firstRunHealthCheck.js.map +1 -0
- package/dist/config/firstRunService.d.ts +53 -0
- package/dist/config/firstRunService.d.ts.map +1 -0
- package/dist/config/firstRunService.js +93 -0
- package/dist/config/firstRunService.js.map +1 -0
- package/dist/config/index.d.ts +30 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +65 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/productionPaths.d.ts +34 -0
- package/dist/config/productionPaths.d.ts.map +1 -0
- package/dist/config/productionPaths.js +95 -0
- package/dist/config/productionPaths.js.map +1 -0
- package/dist/config/workspaceService.d.ts +42 -0
- package/dist/config/workspaceService.d.ts.map +1 -0
- package/dist/config/workspaceService.js +218 -0
- package/dist/config/workspaceService.js.map +1 -0
- package/dist/desktop/appWindow.d.ts +21 -0
- package/dist/desktop/appWindow.d.ts.map +1 -0
- package/dist/desktop/appWindow.js +77 -0
- package/dist/desktop/appWindow.js.map +1 -0
- package/dist/desktop/main.d.ts +14 -0
- package/dist/desktop/main.d.ts.map +1 -0
- package/dist/desktop/main.js +90 -0
- package/dist/desktop/main.js.map +1 -0
- package/dist/desktop/preload.d.ts +14 -0
- package/dist/desktop/preload.d.ts.map +1 -0
- package/dist/desktop/preload.js +20 -0
- package/dist/desktop/preload.js.map +1 -0
- package/dist/intelligence/index.d.ts +33 -0
- package/dist/intelligence/index.d.ts.map +1 -0
- package/dist/intelligence/index.js +82 -0
- package/dist/intelligence/index.js.map +1 -0
- package/dist/intelligence/modelGateway.d.ts +35 -0
- package/dist/intelligence/modelGateway.d.ts.map +1 -0
- package/dist/intelligence/modelGateway.js +123 -0
- package/dist/intelligence/modelGateway.js.map +1 -0
- package/dist/intelligence/modelRegistry.d.ts +17 -0
- package/dist/intelligence/modelRegistry.d.ts.map +1 -0
- package/dist/intelligence/modelRegistry.js +87 -0
- package/dist/intelligence/modelRegistry.js.map +1 -0
- package/dist/intelligence/modelRouter.d.ts +76 -0
- package/dist/intelligence/modelRouter.d.ts.map +1 -0
- package/dist/intelligence/modelRouter.js +256 -0
- package/dist/intelligence/modelRouter.js.map +1 -0
- package/dist/intelligence/ollamaAdapter.d.ts +49 -0
- package/dist/intelligence/ollamaAdapter.d.ts.map +1 -0
- package/dist/intelligence/ollamaAdapter.js +197 -0
- package/dist/intelligence/ollamaAdapter.js.map +1 -0
- package/dist/intelligence/prototype/runPrototype.d.ts +14 -0
- package/dist/intelligence/prototype/runPrototype.d.ts.map +1 -0
- package/dist/intelligence/prototype/runPrototype.js +87 -0
- package/dist/intelligence/prototype/runPrototype.js.map +1 -0
- package/dist/intelligence/providers/embeddedInferenceProvider.d.ts +29 -0
- package/dist/intelligence/providers/embeddedInferenceProvider.d.ts.map +1 -0
- package/dist/intelligence/providers/embeddedInferenceProvider.js +162 -0
- package/dist/intelligence/providers/embeddedInferenceProvider.js.map +1 -0
- package/dist/intelligence/providers/index.d.ts +4 -0
- package/dist/intelligence/providers/index.d.ts.map +1 -0
- package/dist/intelligence/providers/index.js +4 -0
- package/dist/intelligence/providers/index.js.map +1 -0
- package/dist/intelligence/providers/inferenceProvider.d.ts +98 -0
- package/dist/intelligence/providers/inferenceProvider.d.ts.map +1 -0
- package/dist/intelligence/providers/inferenceProvider.js +9 -0
- package/dist/intelligence/providers/inferenceProvider.js.map +1 -0
- package/dist/intelligence/providers/ollamaInferenceProvider.d.ts +17 -0
- package/dist/intelligence/providers/ollamaInferenceProvider.d.ts.map +1 -0
- package/dist/intelligence/providers/ollamaInferenceProvider.js +103 -0
- package/dist/intelligence/providers/ollamaInferenceProvider.js.map +1 -0
- package/dist/intelligence/provisioning/hardwareDetector.d.ts +5 -0
- package/dist/intelligence/provisioning/hardwareDetector.d.ts.map +1 -0
- package/dist/intelligence/provisioning/hardwareDetector.js +48 -0
- package/dist/intelligence/provisioning/hardwareDetector.js.map +1 -0
- package/dist/intelligence/provisioning/index.d.ts +12 -0
- package/dist/intelligence/provisioning/index.d.ts.map +1 -0
- package/dist/intelligence/provisioning/index.js +12 -0
- package/dist/intelligence/provisioning/index.js.map +1 -0
- package/dist/intelligence/provisioning/modelDownloader.d.ts +22 -0
- package/dist/intelligence/provisioning/modelDownloader.d.ts.map +1 -0
- package/dist/intelligence/provisioning/modelDownloader.js +134 -0
- package/dist/intelligence/provisioning/modelDownloader.js.map +1 -0
- package/dist/intelligence/provisioning/modelManifest.d.ts +10 -0
- package/dist/intelligence/provisioning/modelManifest.d.ts.map +1 -0
- package/dist/intelligence/provisioning/modelManifest.js +72 -0
- package/dist/intelligence/provisioning/modelManifest.js.map +1 -0
- package/dist/intelligence/provisioning/modelSelector.d.ts +14 -0
- package/dist/intelligence/provisioning/modelSelector.d.ts.map +1 -0
- package/dist/intelligence/provisioning/modelSelector.js +40 -0
- package/dist/intelligence/provisioning/modelSelector.js.map +1 -0
- package/dist/intelligence/provisioning/modelStorage.d.ts +12 -0
- package/dist/intelligence/provisioning/modelStorage.d.ts.map +1 -0
- package/dist/intelligence/provisioning/modelStorage.js +66 -0
- package/dist/intelligence/provisioning/modelStorage.js.map +1 -0
- package/dist/intelligence/provisioning/modelUpdater.d.ts +29 -0
- package/dist/intelligence/provisioning/modelUpdater.d.ts.map +1 -0
- package/dist/intelligence/provisioning/modelUpdater.js +89 -0
- package/dist/intelligence/provisioning/modelUpdater.js.map +1 -0
- package/dist/intelligence/provisioning/modelVerifier.d.ts +16 -0
- package/dist/intelligence/provisioning/modelVerifier.d.ts.map +1 -0
- package/dist/intelligence/provisioning/modelVerifier.js +108 -0
- package/dist/intelligence/provisioning/modelVerifier.js.map +1 -0
- package/dist/intelligence/provisioning/nativeRuntime.d.ts +18 -0
- package/dist/intelligence/provisioning/nativeRuntime.d.ts.map +1 -0
- package/dist/intelligence/provisioning/nativeRuntime.js +78 -0
- package/dist/intelligence/provisioning/nativeRuntime.js.map +1 -0
- package/dist/intelligence/provisioning/platformDetector.d.ts +15 -0
- package/dist/intelligence/provisioning/platformDetector.d.ts.map +1 -0
- package/dist/intelligence/provisioning/platformDetector.js +40 -0
- package/dist/intelligence/provisioning/platformDetector.js.map +1 -0
- package/dist/intelligence/provisioning/setupState.d.ts +10 -0
- package/dist/intelligence/provisioning/setupState.d.ts.map +1 -0
- package/dist/intelligence/provisioning/setupState.js +59 -0
- package/dist/intelligence/provisioning/setupState.js.map +1 -0
- package/dist/intelligence/provisioning/types.d.ts +51 -0
- package/dist/intelligence/provisioning/types.d.ts.map +1 -0
- package/dist/intelligence/provisioning/types.js +2 -0
- package/dist/intelligence/provisioning/types.js.map +1 -0
- package/dist/intelligence/runtime/embeddedRuntimeAdapter.d.ts +26 -0
- package/dist/intelligence/runtime/embeddedRuntimeAdapter.d.ts.map +1 -0
- package/dist/intelligence/runtime/embeddedRuntimeAdapter.js +119 -0
- package/dist/intelligence/runtime/embeddedRuntimeAdapter.js.map +1 -0
- package/dist/intelligence/runtime/ollamaRuntimeAdapter.d.ts +28 -0
- package/dist/intelligence/runtime/ollamaRuntimeAdapter.d.ts.map +1 -0
- package/dist/intelligence/runtime/ollamaRuntimeAdapter.js +131 -0
- package/dist/intelligence/runtime/ollamaRuntimeAdapter.js.map +1 -0
- package/dist/intelligence/runtime/runtimeManager.d.ts +37 -0
- package/dist/intelligence/runtime/runtimeManager.d.ts.map +1 -0
- package/dist/intelligence/runtime/runtimeManager.js +168 -0
- package/dist/intelligence/runtime/runtimeManager.js.map +1 -0
- package/dist/intelligence/runtime/types.d.ts +56 -0
- package/dist/intelligence/runtime/types.d.ts.map +1 -0
- package/dist/intelligence/runtime/types.js +7 -0
- package/dist/intelligence/runtime/types.js.map +1 -0
- package/dist/knowledge/chunker.d.ts +18 -0
- package/dist/knowledge/chunker.d.ts.map +1 -0
- package/dist/knowledge/chunker.js +55 -0
- package/dist/knowledge/chunker.js.map +1 -0
- package/dist/knowledge/citationService.d.ts +26 -0
- package/dist/knowledge/citationService.d.ts.map +1 -0
- package/dist/knowledge/citationService.js +47 -0
- package/dist/knowledge/citationService.js.map +1 -0
- package/dist/knowledge/embeddings.d.ts +11 -0
- package/dist/knowledge/embeddings.d.ts.map +1 -0
- package/dist/knowledge/embeddings.js +28 -0
- package/dist/knowledge/embeddings.js.map +1 -0
- package/dist/knowledge/hybridSearch.d.ts +13 -0
- package/dist/knowledge/hybridSearch.d.ts.map +1 -0
- package/dist/knowledge/hybridSearch.js +38 -0
- package/dist/knowledge/hybridSearch.js.map +1 -0
- package/dist/knowledge/index.d.ts +25 -0
- package/dist/knowledge/index.d.ts.map +1 -0
- package/dist/knowledge/index.js +37 -0
- package/dist/knowledge/index.js.map +1 -0
- package/dist/knowledge/parsers.d.ts +20 -0
- package/dist/knowledge/parsers.d.ts.map +1 -0
- package/dist/knowledge/parsers.js +94 -0
- package/dist/knowledge/parsers.js.map +1 -0
- package/dist/knowledge/ragEngine.d.ts +24 -0
- package/dist/knowledge/ragEngine.d.ts.map +1 -0
- package/dist/knowledge/ragEngine.js +121 -0
- package/dist/knowledge/ragEngine.js.map +1 -0
- package/dist/knowledge/reranker.d.ts +10 -0
- package/dist/knowledge/reranker.d.ts.map +1 -0
- package/dist/knowledge/reranker.js +11 -0
- package/dist/knowledge/reranker.js.map +1 -0
- package/dist/knowledge/vectorStore.d.ts +22 -0
- package/dist/knowledge/vectorStore.d.ts.map +1 -0
- package/dist/knowledge/vectorStore.js +74 -0
- package/dist/knowledge/vectorStore.js.map +1 -0
- package/dist/main.d.ts +2 -0
- package/dist/main.d.ts.map +1 -0
- package/dist/main.js +113 -0
- package/dist/main.js.map +1 -0
- package/dist/orchestration/agentExecutionService.d.ts +29 -0
- package/dist/orchestration/agentExecutionService.d.ts.map +1 -0
- package/dist/orchestration/agentExecutionService.js +306 -0
- package/dist/orchestration/agentExecutionService.js.map +1 -0
- package/dist/orchestration/agentStateMachine.d.ts +29 -0
- package/dist/orchestration/agentStateMachine.d.ts.map +1 -0
- package/dist/orchestration/agentStateMachine.js +153 -0
- package/dist/orchestration/agentStateMachine.js.map +1 -0
- package/dist/orchestration/agentTaskService.d.ts +44 -0
- package/dist/orchestration/agentTaskService.d.ts.map +1 -0
- package/dist/orchestration/agentTaskService.js +168 -0
- package/dist/orchestration/agentTaskService.js.map +1 -0
- package/dist/orchestration/codingAgentDiscovery.d.ts +32 -0
- package/dist/orchestration/codingAgentDiscovery.d.ts.map +1 -0
- package/dist/orchestration/codingAgentDiscovery.js +148 -0
- package/dist/orchestration/codingAgentDiscovery.js.map +1 -0
- package/dist/orchestration/codingAgentService.d.ts +40 -0
- package/dist/orchestration/codingAgentService.d.ts.map +1 -0
- package/dist/orchestration/codingAgentService.js +319 -0
- package/dist/orchestration/codingAgentService.js.map +1 -0
- package/dist/orchestration/codingAgentTypes.d.ts +111 -0
- package/dist/orchestration/codingAgentTypes.d.ts.map +1 -0
- package/dist/orchestration/codingAgentTypes.js +32 -0
- package/dist/orchestration/codingAgentTypes.js.map +1 -0
- package/dist/orchestration/codingAgentVerifier.d.ts +34 -0
- package/dist/orchestration/codingAgentVerifier.d.ts.map +1 -0
- package/dist/orchestration/codingAgentVerifier.js +109 -0
- package/dist/orchestration/codingAgentVerifier.js.map +1 -0
- package/dist/orchestration/codingRepairService.d.ts +34 -0
- package/dist/orchestration/codingRepairService.d.ts.map +1 -0
- package/dist/orchestration/codingRepairService.js +120 -0
- package/dist/orchestration/codingRepairService.js.map +1 -0
- package/dist/orchestration/goalCompletionVerifier.d.ts +36 -0
- package/dist/orchestration/goalCompletionVerifier.d.ts.map +1 -0
- package/dist/orchestration/goalCompletionVerifier.js +165 -0
- package/dist/orchestration/goalCompletionVerifier.js.map +1 -0
- package/dist/orchestration/humanApprovalService.d.ts +89 -0
- package/dist/orchestration/humanApprovalService.d.ts.map +1 -0
- package/dist/orchestration/humanApprovalService.js +346 -0
- package/dist/orchestration/humanApprovalService.js.map +1 -0
- package/dist/orchestration/index.d.ts +47 -0
- package/dist/orchestration/index.d.ts.map +1 -0
- package/dist/orchestration/index.js +67 -0
- package/dist/orchestration/index.js.map +1 -0
- package/dist/orchestration/planner.d.ts +105 -0
- package/dist/orchestration/planner.d.ts.map +1 -0
- package/dist/orchestration/planner.js +692 -0
- package/dist/orchestration/planner.js.map +1 -0
- package/dist/orchestration/types.d.ts +109 -0
- package/dist/orchestration/types.d.ts.map +1 -0
- package/dist/orchestration/types.js +20 -0
- package/dist/orchestration/types.js.map +1 -0
- package/dist/preview/previewServer.d.ts +39 -0
- package/dist/preview/previewServer.d.ts.map +1 -0
- package/dist/preview/previewServer.js +228 -0
- package/dist/preview/previewServer.js.map +1 -0
- package/dist/preview/previewService.d.ts +43 -0
- package/dist/preview/previewService.d.ts.map +1 -0
- package/dist/preview/previewService.js +289 -0
- package/dist/preview/previewService.js.map +1 -0
- package/dist/preview/previewTypes.d.ts +35 -0
- package/dist/preview/previewTypes.d.ts.map +1 -0
- package/dist/preview/previewTypes.js +5 -0
- package/dist/preview/previewTypes.js.map +1 -0
- package/dist/storage/database.d.ts +12 -0
- package/dist/storage/database.d.ts.map +1 -0
- package/dist/storage/database.js +46 -0
- package/dist/storage/database.js.map +1 -0
- package/dist/storage/health.d.ts +17 -0
- package/dist/storage/health.d.ts.map +1 -0
- package/dist/storage/health.js +48 -0
- package/dist/storage/health.js.map +1 -0
- package/dist/storage/index.d.ts +45 -0
- package/dist/storage/index.d.ts.map +1 -0
- package/dist/storage/index.js +96 -0
- package/dist/storage/index.js.map +1 -0
- package/dist/storage/migration.d.ts +17 -0
- package/dist/storage/migration.d.ts.map +1 -0
- package/dist/storage/migration.js +354 -0
- package/dist/storage/migration.js.map +1 -0
- package/dist/storage/projectService.d.ts +19 -0
- package/dist/storage/projectService.d.ts.map +1 -0
- package/dist/storage/projectService.js +29 -0
- package/dist/storage/projectService.js.map +1 -0
- package/dist/storage/repositories/agentTaskRepository.d.ts +34 -0
- package/dist/storage/repositories/agentTaskRepository.d.ts.map +1 -0
- package/dist/storage/repositories/agentTaskRepository.js +128 -0
- package/dist/storage/repositories/agentTaskRepository.js.map +1 -0
- package/dist/storage/repositories/approvalRepository.d.ts +20 -0
- package/dist/storage/repositories/approvalRepository.d.ts.map +1 -0
- package/dist/storage/repositories/approvalRepository.js +116 -0
- package/dist/storage/repositories/approvalRepository.js.map +1 -0
- package/dist/storage/repositories/conversationRepository.d.ts +16 -0
- package/dist/storage/repositories/conversationRepository.d.ts.map +1 -0
- package/dist/storage/repositories/conversationRepository.js +50 -0
- package/dist/storage/repositories/conversationRepository.js.map +1 -0
- package/dist/storage/repositories/knowledgeRepository.d.ts +109 -0
- package/dist/storage/repositories/knowledgeRepository.d.ts.map +1 -0
- package/dist/storage/repositories/knowledgeRepository.js +177 -0
- package/dist/storage/repositories/knowledgeRepository.js.map +1 -0
- package/dist/storage/repositories/messageRepository.d.ts +13 -0
- package/dist/storage/repositories/messageRepository.d.ts.map +1 -0
- package/dist/storage/repositories/messageRepository.js +39 -0
- package/dist/storage/repositories/messageRepository.js.map +1 -0
- package/dist/storage/repositories/modelsRepository.d.ts +39 -0
- package/dist/storage/repositories/modelsRepository.d.ts.map +1 -0
- package/dist/storage/repositories/modelsRepository.js +92 -0
- package/dist/storage/repositories/modelsRepository.js.map +1 -0
- package/dist/storage/repositories/projectRepository.d.ts +14 -0
- package/dist/storage/repositories/projectRepository.d.ts.map +1 -0
- package/dist/storage/repositories/projectRepository.js +44 -0
- package/dist/storage/repositories/projectRepository.js.map +1 -0
- package/dist/storage/repositories/settingsRepository.d.ts +10 -0
- package/dist/storage/repositories/settingsRepository.d.ts.map +1 -0
- package/dist/storage/repositories/settingsRepository.js +27 -0
- package/dist/storage/repositories/settingsRepository.js.map +1 -0
- package/dist/storage/repositories/types.d.ts +56 -0
- package/dist/storage/repositories/types.d.ts.map +1 -0
- package/dist/storage/repositories/types.js +2 -0
- package/dist/storage/repositories/types.js.map +1 -0
- package/dist/tools/adapters/filesystemAdapter.d.ts +121 -0
- package/dist/tools/adapters/filesystemAdapter.d.ts.map +1 -0
- package/dist/tools/adapters/filesystemAdapter.js +808 -0
- package/dist/tools/adapters/filesystemAdapter.js.map +1 -0
- package/dist/tools/adapters/terminalAdapter.d.ts +67 -0
- package/dist/tools/adapters/terminalAdapter.d.ts.map +1 -0
- package/dist/tools/adapters/terminalAdapter.js +487 -0
- package/dist/tools/adapters/terminalAdapter.js.map +1 -0
- package/dist/tools/adapters/terminalCommandPolicy.d.ts +44 -0
- package/dist/tools/adapters/terminalCommandPolicy.d.ts.map +1 -0
- package/dist/tools/adapters/terminalCommandPolicy.js +422 -0
- package/dist/tools/adapters/terminalCommandPolicy.js.map +1 -0
- package/dist/tools/adapters/terminalTypes.d.ts +111 -0
- package/dist/tools/adapters/terminalTypes.d.ts.map +1 -0
- package/dist/tools/adapters/terminalTypes.js +26 -0
- package/dist/tools/adapters/terminalTypes.js.map +1 -0
- package/dist/tools/approvalGate.d.ts +24 -0
- package/dist/tools/approvalGate.d.ts.map +1 -0
- package/dist/tools/approvalGate.js +137 -0
- package/dist/tools/approvalGate.js.map +1 -0
- package/dist/tools/approvalPolicyEngine.d.ts +32 -0
- package/dist/tools/approvalPolicyEngine.d.ts.map +1 -0
- package/dist/tools/approvalPolicyEngine.js +141 -0
- package/dist/tools/approvalPolicyEngine.js.map +1 -0
- package/dist/tools/approvalTypes.d.ts +67 -0
- package/dist/tools/approvalTypes.d.ts.map +1 -0
- package/dist/tools/approvalTypes.js +23 -0
- package/dist/tools/approvalTypes.js.map +1 -0
- package/dist/tools/index.d.ts +72 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +353 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/permissionEngine.d.ts +27 -0
- package/dist/tools/permissionEngine.d.ts.map +1 -0
- package/dist/tools/permissionEngine.js +130 -0
- package/dist/tools/permissionEngine.js.map +1 -0
- package/dist/tools/toolExecutor.d.ts +37 -0
- package/dist/tools/toolExecutor.d.ts.map +1 -0
- package/dist/tools/toolExecutor.js +440 -0
- package/dist/tools/toolExecutor.js.map +1 -0
- package/dist/tools/toolRegistry.d.ts +34 -0
- package/dist/tools/toolRegistry.d.ts.map +1 -0
- package/dist/tools/toolRegistry.js +92 -0
- package/dist/tools/toolRegistry.js.map +1 -0
- package/dist/tools/types.d.ts +82 -0
- package/dist/tools/types.d.ts.map +1 -0
- package/dist/tools/types.js +33 -0
- package/dist/tools/types.js.map +1 -0
- package/dist/ui/public/app.js +777 -0
- package/dist/ui/public/index.html +117 -0
- package/dist/ui/public/styles.css +413 -0
- package/dist/ui/server.d.ts +27 -0
- package/dist/ui/server.d.ts.map +1 -0
- package/dist/ui/server.js +373 -0
- package/dist/ui/server.js.map +1 -0
- package/package.json +63 -0
|
@@ -0,0 +1,346 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* NEXUS AI — Human Approval Service
|
|
3
|
+
*
|
|
4
|
+
* Orchestrates the human approval lifecycle: request creation, policy evaluation,
|
|
5
|
+
* task state machine integration (transition to/from awaiting_approval), expiration,
|
|
6
|
+
* resolution, and privacy-safe audit logging.
|
|
7
|
+
*
|
|
8
|
+
* SECURITY INVARIANTS:
|
|
9
|
+
* - Terminal approval states (approved, rejected, expired, cancelled) CANNOT be reopened.
|
|
10
|
+
* - Approval DOES NOT equal permission — authorization remains mandatory via PermissionEngine.
|
|
11
|
+
* - Privacy-safe logging: Secrets, full prompts, model responses, and raw document contents are NEVER logged.
|
|
12
|
+
*/
|
|
13
|
+
import { TERMINAL_APPROVAL_STATES } from '../tools/approvalTypes.js';
|
|
14
|
+
import { ApprovalPolicyEngine } from '../tools/approvalPolicyEngine.js';
|
|
15
|
+
import { ApprovalGate } from '../tools/approvalGate.js';
|
|
16
|
+
import { AgentStateMachine } from './agentStateMachine.js';
|
|
17
|
+
import { Logger } from '../common/logger.js';
|
|
18
|
+
export class HumanApprovalService {
|
|
19
|
+
taskService;
|
|
20
|
+
toolGateway;
|
|
21
|
+
repository;
|
|
22
|
+
policyEngine;
|
|
23
|
+
approvalGate;
|
|
24
|
+
logger;
|
|
25
|
+
// In-memory store fallback if repository is not passed
|
|
26
|
+
memoryStore = new Map();
|
|
27
|
+
constructor(taskService, toolGateway, repository, policyConfig, logLevel = 'info') {
|
|
28
|
+
this.taskService = taskService;
|
|
29
|
+
this.toolGateway = toolGateway;
|
|
30
|
+
this.repository = repository;
|
|
31
|
+
this.logger = new Logger('HumanApprovalService', logLevel);
|
|
32
|
+
this.policyEngine = new ApprovalPolicyEngine(policyConfig, logLevel);
|
|
33
|
+
this.approvalGate = new ApprovalGate(logLevel);
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Create an approval request for a task step based on policy evaluation.
|
|
37
|
+
*/
|
|
38
|
+
createApprovalRequest(dto) {
|
|
39
|
+
const { taskId, planId, stepId, toolId, requestedCapability, ttlMs } = dto;
|
|
40
|
+
const nowIso = new Date().toISOString();
|
|
41
|
+
const effectiveTtlMs = ttlMs ?? this.policyEngine.getConfig().defaultTtlMs;
|
|
42
|
+
const expiresAt = new Date(Date.now() + effectiveTtlMs).toISOString();
|
|
43
|
+
// 1. Resolve tool definition from ToolRegistry
|
|
44
|
+
const toolDef = this.toolGateway.getTool(toolId);
|
|
45
|
+
const riskLevel = dto.riskLevel ?? (toolDef ? toolDef.riskLevel : 'high');
|
|
46
|
+
// 2. Evaluate policy
|
|
47
|
+
const decision = this.policyEngine.evaluate(toolDef, requestedCapability);
|
|
48
|
+
let initialStatus = 'pending';
|
|
49
|
+
let decisionReason;
|
|
50
|
+
if (decision.decision === 'AUTO_APPROVED') {
|
|
51
|
+
initialStatus = 'approved';
|
|
52
|
+
decisionReason = decision.reason;
|
|
53
|
+
}
|
|
54
|
+
else if (decision.decision === 'POLICY_DENIED') {
|
|
55
|
+
initialStatus = 'rejected';
|
|
56
|
+
decisionReason = decision.reason;
|
|
57
|
+
}
|
|
58
|
+
const approvalId = `appr-${taskId}-${stepId}-${Date.now()}-${Math.random().toString(36).substring(2, 6)}`;
|
|
59
|
+
const request = {
|
|
60
|
+
approvalId,
|
|
61
|
+
taskId,
|
|
62
|
+
planId,
|
|
63
|
+
stepId,
|
|
64
|
+
toolId,
|
|
65
|
+
riskLevel,
|
|
66
|
+
requestedCapability,
|
|
67
|
+
status: initialStatus,
|
|
68
|
+
createdAt: nowIso,
|
|
69
|
+
resolvedAt: initialStatus !== 'pending' ? nowIso : undefined,
|
|
70
|
+
expiresAt,
|
|
71
|
+
decisionReason,
|
|
72
|
+
};
|
|
73
|
+
// 3. Persist request
|
|
74
|
+
this.saveApproval(request);
|
|
75
|
+
// 4. Privacy-safe audit log
|
|
76
|
+
this.logger.info(`Approval request created`, {
|
|
77
|
+
approvalId: request.approvalId,
|
|
78
|
+
taskId: request.taskId,
|
|
79
|
+
stepId: request.stepId,
|
|
80
|
+
toolId: request.toolId,
|
|
81
|
+
riskLevel: request.riskLevel,
|
|
82
|
+
status: request.status,
|
|
83
|
+
decision: decision.decision,
|
|
84
|
+
reasonCategory: decision.reason,
|
|
85
|
+
timestamp: request.createdAt,
|
|
86
|
+
});
|
|
87
|
+
// 5. Task state machine integration
|
|
88
|
+
let task = this.taskService.getTask(taskId);
|
|
89
|
+
if (initialStatus === 'pending') {
|
|
90
|
+
// Transition task state to 'awaiting_approval' if not already terminal or awaiting
|
|
91
|
+
if (task.state !== 'awaiting_approval' && !AgentStateMachine.isTerminal(task.state)) {
|
|
92
|
+
if (task.state === 'created' || task.state === 'verifying' || task.state === 'observing' || task.state === 'executing') {
|
|
93
|
+
task = this.taskService.transitionTask(taskId, { targetState: 'planning', currentStep: stepId });
|
|
94
|
+
}
|
|
95
|
+
task = this.taskService.transitionTask(taskId, {
|
|
96
|
+
targetState: 'awaiting_approval',
|
|
97
|
+
currentStep: stepId,
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
else if (initialStatus === 'rejected') {
|
|
102
|
+
// Fail/cancel task on policy denial
|
|
103
|
+
if (!AgentStateMachine.isTerminal(task.state)) {
|
|
104
|
+
task = this.taskService.failTask(taskId, {
|
|
105
|
+
errorCategory: 'POLICY_DENIED',
|
|
106
|
+
currentStep: stepId,
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
return { approval: request, decision, task };
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Resolve a pending approval request with explicit user decision ('approved' | 'rejected').
|
|
114
|
+
*/
|
|
115
|
+
resolveApproval(approvalId, userDecision, reason) {
|
|
116
|
+
let approval = this.getApproval(approvalId);
|
|
117
|
+
if (!approval) {
|
|
118
|
+
this.logger.error(`Failed to resolve approval: approvalId '${approvalId}' not found`);
|
|
119
|
+
throw new Error(`Approval request '${approvalId}' not found.`);
|
|
120
|
+
}
|
|
121
|
+
// 1. Terminal state check — NO SILENT REOPENING OF TERMINAL APPROVALS!
|
|
122
|
+
if (TERMINAL_APPROVAL_STATES.has(approval.status)) {
|
|
123
|
+
const msg = `Transition rejected: approval '${approvalId}' is in terminal state '${approval.status}' and cannot be resolved to '${userDecision}'.`;
|
|
124
|
+
this.logger.warn(msg, { approvalId, status: approval.status });
|
|
125
|
+
return {
|
|
126
|
+
success: false,
|
|
127
|
+
approval,
|
|
128
|
+
task: this.taskService.getTask(approval.taskId),
|
|
129
|
+
error: msg,
|
|
130
|
+
};
|
|
131
|
+
}
|
|
132
|
+
const nowIso = new Date().toISOString();
|
|
133
|
+
// 2. Check expiration
|
|
134
|
+
if (approval.expiresAt <= nowIso) {
|
|
135
|
+
approval.status = 'expired';
|
|
136
|
+
approval.resolvedAt = nowIso;
|
|
137
|
+
approval.decisionReason = 'Approval request expired before decision was submitted.';
|
|
138
|
+
this.saveApproval(approval);
|
|
139
|
+
this.logger.warn(`Approval request '${approvalId}' expired before resolution`, { approvalId });
|
|
140
|
+
return {
|
|
141
|
+
success: false,
|
|
142
|
+
approval,
|
|
143
|
+
task: this.taskService.getTask(approval.taskId),
|
|
144
|
+
error: `Approval request '${approvalId}' has expired.`,
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
// 3. Check associated task state — cannot approve if task is terminal or cancelled
|
|
148
|
+
let task = this.taskService.getTask(approval.taskId);
|
|
149
|
+
if (AgentStateMachine.isTerminal(task.state) || task.state === 'cancelled') {
|
|
150
|
+
approval.status = 'cancelled';
|
|
151
|
+
approval.resolvedAt = nowIso;
|
|
152
|
+
approval.decisionReason = `Task '${task.id}' is in terminal state '${task.state}'.`;
|
|
153
|
+
this.saveApproval(approval);
|
|
154
|
+
this.logger.warn(`Cannot resolve approval '${approvalId}': associated task '${task.id}' is in terminal state '${task.state}'`, {
|
|
155
|
+
approvalId,
|
|
156
|
+
taskId: task.id,
|
|
157
|
+
taskState: task.state,
|
|
158
|
+
});
|
|
159
|
+
return {
|
|
160
|
+
success: false,
|
|
161
|
+
approval,
|
|
162
|
+
task,
|
|
163
|
+
error: `Associated task '${task.id}' is in terminal state '${task.state}'.`,
|
|
164
|
+
};
|
|
165
|
+
}
|
|
166
|
+
// 4. Perform resolution transition
|
|
167
|
+
const finalReason = reason ?? (userDecision === 'approved' ? 'User granted approval' : 'User rejected approval');
|
|
168
|
+
approval.status = userDecision;
|
|
169
|
+
approval.resolvedAt = nowIso;
|
|
170
|
+
approval.decisionReason = finalReason;
|
|
171
|
+
this.saveApproval(approval);
|
|
172
|
+
// 5. Privacy-safe audit log
|
|
173
|
+
this.logger.info(`Approval request resolved`, {
|
|
174
|
+
approvalId: approval.approvalId,
|
|
175
|
+
taskId: approval.taskId,
|
|
176
|
+
stepId: approval.stepId,
|
|
177
|
+
toolId: approval.toolId,
|
|
178
|
+
decision: userDecision,
|
|
179
|
+
reasonCategory: finalReason,
|
|
180
|
+
timestamp: nowIso,
|
|
181
|
+
});
|
|
182
|
+
// 6. Integrate with AgentStateMachine
|
|
183
|
+
if (userDecision === 'approved') {
|
|
184
|
+
// Transition task state: awaiting_approval -> executing
|
|
185
|
+
if (task.state === 'awaiting_approval') {
|
|
186
|
+
task = this.taskService.transitionTask(task.id, {
|
|
187
|
+
targetState: 'executing',
|
|
188
|
+
currentStep: approval.stepId,
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
else {
|
|
193
|
+
// Transition task state: awaiting_approval -> cancelled
|
|
194
|
+
if (task.state === 'awaiting_approval') {
|
|
195
|
+
task = this.taskService.cancelTask(task.id);
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
return {
|
|
199
|
+
success: true,
|
|
200
|
+
approval,
|
|
201
|
+
task,
|
|
202
|
+
};
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* Retrieve an approval request by ID, automatically evaluating expiration if pending.
|
|
206
|
+
*/
|
|
207
|
+
getApproval(approvalId) {
|
|
208
|
+
let approval = null;
|
|
209
|
+
if (this.repository) {
|
|
210
|
+
approval = this.repository.findById(approvalId);
|
|
211
|
+
}
|
|
212
|
+
else {
|
|
213
|
+
approval = this.memoryStore.get(approvalId) ?? null;
|
|
214
|
+
}
|
|
215
|
+
if (!approval)
|
|
216
|
+
return null;
|
|
217
|
+
// Auto-expire if pending and past expiration timestamp
|
|
218
|
+
if (approval.status === 'pending') {
|
|
219
|
+
const nowIso = new Date().toISOString();
|
|
220
|
+
if (approval.expiresAt <= nowIso) {
|
|
221
|
+
approval.status = 'expired';
|
|
222
|
+
approval.resolvedAt = nowIso;
|
|
223
|
+
approval.decisionReason = 'Approval request expired.';
|
|
224
|
+
this.saveApproval(approval);
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
return approval;
|
|
228
|
+
}
|
|
229
|
+
/**
|
|
230
|
+
* Retrieve all approval requests for a task.
|
|
231
|
+
*/
|
|
232
|
+
getApprovalsForTask(taskId) {
|
|
233
|
+
if (this.repository) {
|
|
234
|
+
return this.repository.findByTaskId(taskId);
|
|
235
|
+
}
|
|
236
|
+
return Array.from(this.memoryStore.values()).filter((a) => a.taskId === taskId);
|
|
237
|
+
}
|
|
238
|
+
/**
|
|
239
|
+
* List all pending approval requests.
|
|
240
|
+
*/
|
|
241
|
+
listPendingApprovals() {
|
|
242
|
+
if (this.repository) {
|
|
243
|
+
return this.repository.listPending();
|
|
244
|
+
}
|
|
245
|
+
return Array.from(this.memoryStore.values()).filter((a) => a.status === 'pending');
|
|
246
|
+
}
|
|
247
|
+
/**
|
|
248
|
+
* Respond to an approval request with decision APPROVED or REJECTED.
|
|
249
|
+
*/
|
|
250
|
+
respondToApproval(approvalId, params) {
|
|
251
|
+
const userDecision = params.decision.toLowerCase();
|
|
252
|
+
const result = this.resolveApproval(approvalId, userDecision, params.reason);
|
|
253
|
+
if (!result.success) {
|
|
254
|
+
throw new Error(result.error || `Failed to resolve approval request '${approvalId}'`);
|
|
255
|
+
}
|
|
256
|
+
return result.approval;
|
|
257
|
+
}
|
|
258
|
+
/**
|
|
259
|
+
* Evaluate the ApprovalGate for a given task step.
|
|
260
|
+
*/
|
|
261
|
+
evaluateGateForStep(taskId, stepId) {
|
|
262
|
+
let request = null;
|
|
263
|
+
if (this.repository) {
|
|
264
|
+
request = this.repository.findPendingForStep(taskId, stepId);
|
|
265
|
+
if (!request) {
|
|
266
|
+
// Find latest resolved request for this step if not pending
|
|
267
|
+
const all = this.repository.findByTaskId(taskId).filter((a) => a.stepId === stepId);
|
|
268
|
+
if (all.length > 0) {
|
|
269
|
+
request = all[all.length - 1];
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
else {
|
|
274
|
+
const all = Array.from(this.memoryStore.values()).filter((a) => a.taskId === taskId && a.stepId === stepId);
|
|
275
|
+
if (all.length > 0) {
|
|
276
|
+
request = all[all.length - 1];
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
return this.approvalGate.evaluateGate(request);
|
|
280
|
+
}
|
|
281
|
+
/**
|
|
282
|
+
* Expire all stale pending approvals.
|
|
283
|
+
*/
|
|
284
|
+
expireStaleApprovals() {
|
|
285
|
+
const nowIso = new Date().toISOString();
|
|
286
|
+
if (this.repository) {
|
|
287
|
+
return this.repository.expireStaleApprovals(nowIso);
|
|
288
|
+
}
|
|
289
|
+
let count = 0;
|
|
290
|
+
for (const approval of this.memoryStore.values()) {
|
|
291
|
+
if (approval.status === 'pending' && approval.expiresAt <= nowIso) {
|
|
292
|
+
approval.status = 'expired';
|
|
293
|
+
approval.resolvedAt = nowIso;
|
|
294
|
+
approval.decisionReason = 'Approval request expired.';
|
|
295
|
+
count++;
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
return count;
|
|
299
|
+
}
|
|
300
|
+
/**
|
|
301
|
+
* Invalidate/cancel all pending approvals for a task (e.g. when task is cancelled).
|
|
302
|
+
*/
|
|
303
|
+
cancelApprovalsForTask(taskId, reason = 'Task cancelled') {
|
|
304
|
+
const nowIso = new Date().toISOString();
|
|
305
|
+
if (this.repository) {
|
|
306
|
+
return this.repository.cancelPendingForTask(taskId, nowIso, reason);
|
|
307
|
+
}
|
|
308
|
+
let count = 0;
|
|
309
|
+
for (const approval of this.memoryStore.values()) {
|
|
310
|
+
if (approval.taskId === taskId && approval.status === 'pending') {
|
|
311
|
+
approval.status = 'cancelled';
|
|
312
|
+
approval.resolvedAt = nowIso;
|
|
313
|
+
approval.decisionReason = reason;
|
|
314
|
+
count++;
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
return count;
|
|
318
|
+
}
|
|
319
|
+
/**
|
|
320
|
+
* Get policy engine instance.
|
|
321
|
+
*/
|
|
322
|
+
getPolicyEngine() {
|
|
323
|
+
return this.policyEngine;
|
|
324
|
+
}
|
|
325
|
+
/**
|
|
326
|
+
* Get approval gate instance.
|
|
327
|
+
*/
|
|
328
|
+
getGate() {
|
|
329
|
+
return this.approvalGate;
|
|
330
|
+
}
|
|
331
|
+
saveApproval(request) {
|
|
332
|
+
if (this.repository) {
|
|
333
|
+
const existing = this.repository.findById(request.approvalId);
|
|
334
|
+
if (existing) {
|
|
335
|
+
this.repository.updateStatus(request.approvalId, request.status, request.resolvedAt, request.decisionReason);
|
|
336
|
+
}
|
|
337
|
+
else {
|
|
338
|
+
this.repository.create(request);
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
else {
|
|
342
|
+
this.memoryStore.set(request.approvalId, request);
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
}
|
|
346
|
+
//# sourceMappingURL=humanApprovalService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"humanApprovalService.js","sourceRoot":"","sources":["../../src/orchestration/humanApprovalService.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import type { SubsystemStatus } from '../storage/index.js';
|
|
2
|
+
import type { AgentTaskRepository } from '../storage/repositories/agentTaskRepository.js';
|
|
3
|
+
import type { ApprovalRepository } from '../storage/repositories/approvalRepository.js';
|
|
4
|
+
import type { ToolGateway } from '../tools/index.js';
|
|
5
|
+
import type { ModelGateway } from '../intelligence/modelGateway.js';
|
|
6
|
+
import { AgentTaskService } from './agentTaskService.js';
|
|
7
|
+
import { AgentExecutionService } from './agentExecutionService.js';
|
|
8
|
+
import { PlanSynthesisService } from './planner.js';
|
|
9
|
+
import { HumanApprovalService } from './humanApprovalService.js';
|
|
10
|
+
import { CodingAgentService } from './codingAgentService.js';
|
|
11
|
+
import { LogLevel } from '../common/logger.js';
|
|
12
|
+
export * from './types.js';
|
|
13
|
+
export * from './codingAgentTypes.js';
|
|
14
|
+
export { AgentStateMachine } from './agentStateMachine.js';
|
|
15
|
+
export { AgentTaskService } from './agentTaskService.js';
|
|
16
|
+
export { AgentExecutionService } from './agentExecutionService.js';
|
|
17
|
+
export { PlanValidator, PlanSynthesisService } from './planner.js';
|
|
18
|
+
export { HumanApprovalService } from './humanApprovalService.js';
|
|
19
|
+
export { CodingAgentService } from './codingAgentService.js';
|
|
20
|
+
export { CodingAgentDiscovery } from './codingAgentDiscovery.js';
|
|
21
|
+
export { CodingAgentVerifier } from './codingAgentVerifier.js';
|
|
22
|
+
export { CodingRepairService } from './codingRepairService.js';
|
|
23
|
+
export type { CreateAgentTaskDto, TransitionAgentTaskDto, FailAgentTaskDto } from './agentTaskService.js';
|
|
24
|
+
export type { TransitionResult } from './agentStateMachine.js';
|
|
25
|
+
export interface IOrchestrator {
|
|
26
|
+
initialize(taskRepo: AgentTaskRepository, toolGateway?: ToolGateway, modelGateway?: ModelGateway, approvalRepo?: ApprovalRepository): Promise<SubsystemStatus>;
|
|
27
|
+
getStatus(): SubsystemStatus;
|
|
28
|
+
readonly tasks: AgentTaskService;
|
|
29
|
+
readonly execution?: AgentExecutionService;
|
|
30
|
+
readonly planner?: PlanSynthesisService;
|
|
31
|
+
readonly approvals?: HumanApprovalService;
|
|
32
|
+
readonly codingAgent?: CodingAgentService;
|
|
33
|
+
}
|
|
34
|
+
export declare class Orchestrator implements IOrchestrator {
|
|
35
|
+
private initialized;
|
|
36
|
+
private logger;
|
|
37
|
+
private logLevel;
|
|
38
|
+
tasks: AgentTaskService;
|
|
39
|
+
execution?: AgentExecutionService;
|
|
40
|
+
planner?: PlanSynthesisService;
|
|
41
|
+
approvals?: HumanApprovalService;
|
|
42
|
+
codingAgent?: CodingAgentService;
|
|
43
|
+
constructor(logLevel?: LogLevel);
|
|
44
|
+
initialize(taskRepo: AgentTaskRepository, toolGateway?: ToolGateway, modelGateway?: ModelGateway, approvalRepo?: ApprovalRepository): Promise<SubsystemStatus>;
|
|
45
|
+
getStatus(): SubsystemStatus;
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/orchestration/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gDAAgD,CAAC;AAC1F,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,+CAA+C,CAAC;AACxF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAiB,MAAM,cAAc,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAU,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAEvD,cAAc,YAAY,CAAC;AAC3B,cAAc,uBAAuB,CAAC;AACtC,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,YAAY,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC1G,YAAY,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,MAAM,WAAW,aAAa;IAC5B,UAAU,CACR,QAAQ,EAAE,mBAAmB,EAC7B,WAAW,CAAC,EAAE,WAAW,EACzB,YAAY,CAAC,EAAE,YAAY,EAC3B,YAAY,CAAC,EAAE,kBAAkB,GAChC,OAAO,CAAC,eAAe,CAAC,CAAC;IAC5B,SAAS,IAAI,eAAe,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAC;IACjC,QAAQ,CAAC,SAAS,CAAC,EAAE,qBAAqB,CAAC;IAC3C,QAAQ,CAAC,OAAO,CAAC,EAAE,oBAAoB,CAAC;IACxC,QAAQ,CAAC,SAAS,CAAC,EAAE,oBAAoB,CAAC;IAC1C,QAAQ,CAAC,WAAW,CAAC,EAAE,kBAAkB,CAAC;CAC3C;AAED,qBAAa,YAAa,YAAW,aAAa;IAChD,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,QAAQ,CAAW;IACpB,KAAK,EAAG,gBAAgB,CAAC;IACzB,SAAS,CAAC,EAAE,qBAAqB,CAAC;IAClC,OAAO,CAAC,EAAE,oBAAoB,CAAC;IAC/B,SAAS,CAAC,EAAE,oBAAoB,CAAC;IACjC,WAAW,CAAC,EAAE,kBAAkB,CAAC;gBAE5B,QAAQ,GAAE,QAAiB;IAKjC,UAAU,CACd,QAAQ,EAAE,mBAAmB,EAC7B,WAAW,CAAC,EAAE,WAAW,EACzB,YAAY,CAAC,EAAE,YAAY,EAC3B,YAAY,CAAC,EAAE,kBAAkB,GAChC,OAAO,CAAC,eAAe,CAAC;IAiC3B,SAAS,IAAI,eAAe;CAe7B"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { AgentTaskService } from './agentTaskService.js';
|
|
2
|
+
import { AgentExecutionService } from './agentExecutionService.js';
|
|
3
|
+
import { PlanSynthesisService, PlanValidator } from './planner.js';
|
|
4
|
+
import { HumanApprovalService } from './humanApprovalService.js';
|
|
5
|
+
import { CodingAgentService } from './codingAgentService.js';
|
|
6
|
+
import { Logger } from '../common/logger.js';
|
|
7
|
+
export * from './types.js';
|
|
8
|
+
export * from './codingAgentTypes.js';
|
|
9
|
+
export { AgentStateMachine } from './agentStateMachine.js';
|
|
10
|
+
export { AgentTaskService } from './agentTaskService.js';
|
|
11
|
+
export { AgentExecutionService } from './agentExecutionService.js';
|
|
12
|
+
export { PlanValidator, PlanSynthesisService } from './planner.js';
|
|
13
|
+
export { HumanApprovalService } from './humanApprovalService.js';
|
|
14
|
+
export { CodingAgentService } from './codingAgentService.js';
|
|
15
|
+
export { CodingAgentDiscovery } from './codingAgentDiscovery.js';
|
|
16
|
+
export { CodingAgentVerifier } from './codingAgentVerifier.js';
|
|
17
|
+
export { CodingRepairService } from './codingRepairService.js';
|
|
18
|
+
export class Orchestrator {
|
|
19
|
+
initialized = false;
|
|
20
|
+
logger;
|
|
21
|
+
logLevel;
|
|
22
|
+
tasks;
|
|
23
|
+
execution;
|
|
24
|
+
planner;
|
|
25
|
+
approvals;
|
|
26
|
+
codingAgent;
|
|
27
|
+
constructor(logLevel = 'info') {
|
|
28
|
+
this.logLevel = logLevel;
|
|
29
|
+
this.logger = new Logger('Orchestrator', logLevel);
|
|
30
|
+
}
|
|
31
|
+
async initialize(taskRepo, toolGateway, modelGateway, approvalRepo) {
|
|
32
|
+
this.tasks = new AgentTaskService(taskRepo, this.logLevel);
|
|
33
|
+
if (toolGateway) {
|
|
34
|
+
this.approvals = new HumanApprovalService(this.tasks, toolGateway, approvalRepo, undefined, this.logLevel);
|
|
35
|
+
this.logger.info('HumanApprovalService initialized');
|
|
36
|
+
this.execution = new AgentExecutionService(this.tasks, toolGateway, this.approvals, this.logLevel);
|
|
37
|
+
this.logger.info('AgentExecutionService initialized');
|
|
38
|
+
if (modelGateway) {
|
|
39
|
+
this.planner = new PlanSynthesisService(modelGateway, toolGateway, this.logLevel);
|
|
40
|
+
this.logger.info('PlanSynthesisService initialized');
|
|
41
|
+
const validator = new PlanValidator(toolGateway);
|
|
42
|
+
this.codingAgent = new CodingAgentService(this.tasks, toolGateway, this.execution, this.planner, validator, this.logLevel);
|
|
43
|
+
this.logger.info('CodingAgentService initialized');
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
this.logger.info('PlanSynthesisService & CodingAgentService skipped (no ModelGateway provided)');
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
this.initialized = true;
|
|
50
|
+
return this.getStatus();
|
|
51
|
+
}
|
|
52
|
+
getStatus() {
|
|
53
|
+
const plannerReady = this.planner !== undefined;
|
|
54
|
+
const execReady = this.execution !== undefined;
|
|
55
|
+
const approvalReady = this.approvals !== undefined;
|
|
56
|
+
const codingAgentReady = this.codingAgent !== undefined;
|
|
57
|
+
return {
|
|
58
|
+
name: 'Orchestrator',
|
|
59
|
+
initialized: this.initialized,
|
|
60
|
+
status: this.initialized ? 'ok' : 'degraded',
|
|
61
|
+
message: this.initialized
|
|
62
|
+
? `Orchestrator ready — execution: ${execReady ? 'yes' : 'no'}, planner: ${plannerReady ? 'yes' : 'no'}, approvals: ${approvalReady ? 'yes' : 'no'}, codingAgent: ${codingAgentReady ? 'yes' : 'no'}`
|
|
63
|
+
: 'Uninitialized',
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/orchestration/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* NEXUS AI — P5-E: Agent Plan Synthesis & Controlled Task Orchestration
|
|
3
|
+
*
|
|
4
|
+
* Security invariant:
|
|
5
|
+
* PlanSynthesisService is an UNTRUSTED PLAN GENERATOR.
|
|
6
|
+
* It has NO execution authority — it cannot call tools, modify task state,
|
|
7
|
+
* or interact with the PermissionEngine.
|
|
8
|
+
* The AgentExecutionService (P5-D) remains the sole execution authority.
|
|
9
|
+
*
|
|
10
|
+
* Data flow:
|
|
11
|
+
* PlanSynthesisService
|
|
12
|
+
* → ModelGateway (plain-text inference only)
|
|
13
|
+
* → PlanValidator (deterministic, stateless, no side effects)
|
|
14
|
+
* → PlanSynthesisResult (validated AgentPlan or typed error)
|
|
15
|
+
* → caller passes AgentPlan.steps to AgentExecutionService.runExecutionLoop()
|
|
16
|
+
*/
|
|
17
|
+
import type { ModelGateway } from '../intelligence/modelGateway.js';
|
|
18
|
+
import type { ToolGateway } from '../tools/index.js';
|
|
19
|
+
import type { PlanSynthesisOptions, PlanSynthesisResult, PlanValidationResult } from './types.js';
|
|
20
|
+
import { LogLevel } from '../common/logger.js';
|
|
21
|
+
/**
|
|
22
|
+
* Utility to determine if a task goal represents an authoring/creation request.
|
|
23
|
+
*
|
|
24
|
+
* Uses word-boundary regex matching to prevent substring false-positives
|
|
25
|
+
* (e.g. 'typescript' must not match keyword 'script').
|
|
26
|
+
*/
|
|
27
|
+
export declare function isAuthoringGoal(goalText: string): boolean;
|
|
28
|
+
/**
|
|
29
|
+
* Deterministic, stateless plan validator.
|
|
30
|
+
*
|
|
31
|
+
* Validates a raw model-generated plan proposal against the tool registry.
|
|
32
|
+
* No side effects. No execution. Returns a typed validation result.
|
|
33
|
+
*
|
|
34
|
+
* Security note: model-generated params are treated as untrusted strings.
|
|
35
|
+
* The validator does NOT evaluate or execute any param values.
|
|
36
|
+
*/
|
|
37
|
+
export declare class PlanValidator {
|
|
38
|
+
private toolGateway;
|
|
39
|
+
constructor(toolGateway: ToolGateway);
|
|
40
|
+
/**
|
|
41
|
+
* Validate a raw parsed plan proposal.
|
|
42
|
+
* Returns a deterministic result with all errors (does not short-circuit on first error).
|
|
43
|
+
*/
|
|
44
|
+
validate(proposal: unknown, taskId: string, maxSteps?: number, taskGoal?: string): PlanValidationResult;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* PlanSynthesisService — generates structured, validated agent plans using
|
|
48
|
+
* the ModelGateway.
|
|
49
|
+
*
|
|
50
|
+
* SECURITY CONTRACT:
|
|
51
|
+
* - This service is an UNTRUSTED PLAN GENERATOR.
|
|
52
|
+
* - It has NO access to ToolExecutor, PermissionEngine, or AgentExecutionService.
|
|
53
|
+
* - It passes only plain-text prompts to the model and returns structured data.
|
|
54
|
+
* - The resulting AgentPlan carries zero execution authority.
|
|
55
|
+
* - Callers must pass plan.steps to AgentExecutionService.runExecutionLoop()
|
|
56
|
+
* for execution, which enforces all authorization and sandbox boundaries.
|
|
57
|
+
*/
|
|
58
|
+
export declare class PlanSynthesisService {
|
|
59
|
+
private modelGateway;
|
|
60
|
+
private toolGateway;
|
|
61
|
+
private logger;
|
|
62
|
+
private validator;
|
|
63
|
+
private planVersion;
|
|
64
|
+
constructor(modelGateway: ModelGateway, toolGateway: ToolGateway, logLevel?: LogLevel);
|
|
65
|
+
/**
|
|
66
|
+
* Synthesize a validated agent plan for the given task.
|
|
67
|
+
*
|
|
68
|
+
* Flow:
|
|
69
|
+
* 1. Build a structured prompt listing available tools + constraints.
|
|
70
|
+
* 2. Invoke ModelGateway with a low-temperature generation call.
|
|
71
|
+
* 3. Extract the JSON plan block from the raw model output.
|
|
72
|
+
* 4. Parse the JSON.
|
|
73
|
+
* 5. Run PlanValidator (deterministic, no side effects).
|
|
74
|
+
* 6. If valid → assemble and return AgentPlan.
|
|
75
|
+
* If invalid → return PlanSynthesisResult with typed errors.
|
|
76
|
+
*/
|
|
77
|
+
synthesize(taskId: string, options: PlanSynthesisOptions): Promise<PlanSynthesisResult>;
|
|
78
|
+
/**
|
|
79
|
+
* Build the structured planner prompt.
|
|
80
|
+
* Lists available registered tools with their IDs and required capabilities
|
|
81
|
+
* so the model can only reference tools that exist in the registry.
|
|
82
|
+
*/
|
|
83
|
+
private buildPlannerPrompt;
|
|
84
|
+
/**
|
|
85
|
+
* Build targeted retry prompt requesting JSON correction.
|
|
86
|
+
*/
|
|
87
|
+
private buildRetryPlannerPrompt;
|
|
88
|
+
/**
|
|
89
|
+
* Extract a JSON object from raw model output.
|
|
90
|
+
*
|
|
91
|
+
* Handles:
|
|
92
|
+
* - Pure JSON responses (ideal)
|
|
93
|
+
* - JSON wrapped in markdown code fences (```json ... ```)
|
|
94
|
+
* - Leading/trailing conversational text
|
|
95
|
+
* - Sanitization of unescaped raw control characters (newlines/tabs) inside JSON strings
|
|
96
|
+
*
|
|
97
|
+
* Throws if no valid JSON object can be extracted.
|
|
98
|
+
*/
|
|
99
|
+
private extractJsonFromModelOutput;
|
|
100
|
+
/**
|
|
101
|
+
* Repair unescaped raw newlines, tabs, and trailing commas inside JSON string candidate.
|
|
102
|
+
*/
|
|
103
|
+
private sanitizeJsonString;
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=planner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"planner.d.ts","sourceRoot":"","sources":["../../src/orchestration/planner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAGV,oBAAoB,EACpB,mBAAmB,EAEnB,oBAAoB,EACrB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAU,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAkEvD;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAsCzD;AAMD;;;;;;;;GAQG;AACH,qBAAa,aAAa;IACZ,OAAO,CAAC,WAAW;gBAAX,WAAW,EAAE,WAAW;IAE5C;;;OAGG;IACH,QAAQ,CACN,QAAQ,EAAE,OAAO,EACjB,MAAM,EAAE,MAAM,EACd,QAAQ,GAAE,MAA0B,EACpC,QAAQ,CAAC,EAAE,MAAM,GAChB,oBAAoB;CAiPxB;AAMD;;;;;;;;;;;GAWG;AACH,qBAAa,oBAAoB;IAM7B,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,WAAW;IANrB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,SAAS,CAAgB;IACjC,OAAO,CAAC,WAAW,CAAK;gBAGd,YAAY,EAAE,YAAY,EAC1B,WAAW,EAAE,WAAW,EAChC,QAAQ,GAAE,QAAiB;IAM7B;;;;;;;;;;;OAWG;IACG,UAAU,CACd,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,mBAAmB,CAAC;IAmK/B;;;;OAIG;IACH,OAAO,CAAC,kBAAkB;IA8B1B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAiB/B;;;;;;;;;;OAUG;IACH,OAAO,CAAC,0BAA0B;IAiDlC;;OAEG;IACH,OAAO,CAAC,kBAAkB;CAwC3B"}
|