@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,28 @@
|
|
|
1
|
+
import crypto from 'node:crypto';
|
|
2
|
+
export class LocalFeatureEmbeddingProvider {
|
|
3
|
+
dimension = 64;
|
|
4
|
+
modelName = 'local-feature-hash-v1';
|
|
5
|
+
async embedText(text) {
|
|
6
|
+
const vector = new Array(this.dimension).fill(0);
|
|
7
|
+
const cleaned = text.toLowerCase().replace(/[^\w\s]/g, ' ');
|
|
8
|
+
const tokens = cleaned.split(/\s+/).filter(Boolean);
|
|
9
|
+
if (tokens.length === 0) {
|
|
10
|
+
return vector;
|
|
11
|
+
}
|
|
12
|
+
for (const token of tokens) {
|
|
13
|
+
const hashHex = crypto.createHash('md5').update(token).digest('hex');
|
|
14
|
+
const hashVal = parseInt(hashHex.substring(0, 8), 16);
|
|
15
|
+
const index = Math.abs(hashVal) % this.dimension;
|
|
16
|
+
vector[index] += 1;
|
|
17
|
+
}
|
|
18
|
+
// Normalize L2 vector
|
|
19
|
+
const norm = Math.sqrt(vector.reduce((sum, val) => sum + val * val, 0));
|
|
20
|
+
if (norm > 0) {
|
|
21
|
+
for (let i = 0; i < vector.length; i++) {
|
|
22
|
+
vector[i] = vector[i] / norm;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
return vector;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=embeddings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"embeddings.js","sourceRoot":"","sources":["../../src/knowledge/embeddings.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAC;AAQjC,MAAM,OAAO,6BAA6B;IACxB,SAAS,GAAW,EAAE,CAAC;IACvB,SAAS,GAAW,uBAAuB,CAAC;IAE5D,KAAK,CAAC,SAAS,CAAC,IAAY;QAC1B,MAAM,MAAM,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjD,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;QAC5D,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAEpD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACrE,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACtD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;YACjD,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACrB,CAAC;QAED,sBAAsB;QACtB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;QACxE,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC;YACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACvC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;YAC/B,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;CACF"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { VectorStore, SearchCandidate } from './vectorStore.js';
|
|
2
|
+
import type { IEmbeddingProvider } from './embeddings.js';
|
|
3
|
+
export interface HybridSearchOptions {
|
|
4
|
+
alpha?: number;
|
|
5
|
+
topK?: number;
|
|
6
|
+
}
|
|
7
|
+
export declare class HybridSearchEngine {
|
|
8
|
+
private vectorStore;
|
|
9
|
+
private embeddingProvider;
|
|
10
|
+
constructor(vectorStore: VectorStore, embeddingProvider: IEmbeddingProvider);
|
|
11
|
+
search(collectionId: string, query: string, options?: HybridSearchOptions): Promise<SearchCandidate[]>;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=hybridSearch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hybridSearch.d.ts","sourceRoot":"","sources":["../../src/knowledge/hybridSearch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAE1D,MAAM,WAAW,mBAAmB;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,qBAAa,kBAAkB;IAE3B,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,iBAAiB;gBADjB,WAAW,EAAE,WAAW,EACxB,iBAAiB,EAAE,kBAAkB;IAGlC,MAAM,CACjB,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,eAAe,EAAE,CAAC;CAiC9B"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
export class HybridSearchEngine {
|
|
2
|
+
vectorStore;
|
|
3
|
+
embeddingProvider;
|
|
4
|
+
constructor(vectorStore, embeddingProvider) {
|
|
5
|
+
this.vectorStore = vectorStore;
|
|
6
|
+
this.embeddingProvider = embeddingProvider;
|
|
7
|
+
}
|
|
8
|
+
async search(collectionId, query, options = {}) {
|
|
9
|
+
const alpha = options.alpha ?? 0.6;
|
|
10
|
+
const topK = options.topK ?? 10;
|
|
11
|
+
const queryVector = await this.embeddingProvider.embedText(query);
|
|
12
|
+
const vectorCandidates = this.vectorStore.searchVector(collectionId, queryVector, topK * 2);
|
|
13
|
+
const lexicalCandidates = this.vectorStore.searchLexical(collectionId, query, topK * 2);
|
|
14
|
+
const mergedMap = new Map();
|
|
15
|
+
for (const c of vectorCandidates) {
|
|
16
|
+
mergedMap.set(c.chunkId, {
|
|
17
|
+
...c,
|
|
18
|
+
combinedScore: alpha * c.vectorScore,
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
for (const c of lexicalCandidates) {
|
|
22
|
+
const existing = mergedMap.get(c.chunkId);
|
|
23
|
+
if (existing) {
|
|
24
|
+
existing.lexicalScore = c.lexicalScore;
|
|
25
|
+
existing.combinedScore = alpha * existing.vectorScore + (1 - alpha) * c.lexicalScore;
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
mergedMap.set(c.chunkId, {
|
|
29
|
+
...c,
|
|
30
|
+
combinedScore: (1 - alpha) * c.lexicalScore,
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
const merged = Array.from(mergedMap.values());
|
|
35
|
+
return merged.sort((a, b) => b.combinedScore - a.combinedScore).slice(0, topK);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=hybridSearch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hybridSearch.js","sourceRoot":"","sources":["../../src/knowledge/hybridSearch.ts"],"names":[],"mappings":"AAQA,MAAM,OAAO,kBAAkB;IAEnB;IACA;IAFV,YACU,WAAwB,EACxB,iBAAqC;QADrC,gBAAW,GAAX,WAAW,CAAa;QACxB,sBAAiB,GAAjB,iBAAiB,CAAoB;IAC5C,CAAC;IAEG,KAAK,CAAC,MAAM,CACjB,YAAoB,EACpB,KAAa,EACb,UAA+B,EAAE;QAEjC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,GAAG,CAAC;QACnC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC;QAEhC,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAClE,MAAM,gBAAgB,GAAG,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,YAAY,EAAE,WAAW,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC;QAC5F,MAAM,iBAAiB,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,YAAY,EAAE,KAAK,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC;QAExF,MAAM,SAAS,GAAG,IAAI,GAAG,EAA2B,CAAC;QAErD,KAAK,MAAM,CAAC,IAAI,gBAAgB,EAAE,CAAC;YACjC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE;gBACvB,GAAG,CAAC;gBACJ,aAAa,EAAE,KAAK,GAAG,CAAC,CAAC,WAAW;aACrC,CAAC,CAAC;QACL,CAAC;QAED,KAAK,MAAM,CAAC,IAAI,iBAAiB,EAAE,CAAC;YAClC,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YAC1C,IAAI,QAAQ,EAAE,CAAC;gBACb,QAAQ,CAAC,YAAY,GAAG,CAAC,CAAC,YAAY,CAAC;gBACvC,QAAQ,CAAC,aAAa,GAAG,KAAK,GAAG,QAAQ,CAAC,WAAW,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC;YACvF,CAAC;iBAAM,CAAC;gBACN,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE;oBACvB,GAAG,CAAC;oBACJ,aAAa,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,YAAY;iBAC5C,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;QAC9C,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,GAAG,CAAC,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IACjF,CAAC;CACF"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { SubsystemStatus } from '../storage/index.js';
|
|
2
|
+
import type { KnowledgeRepository } from '../storage/repositories/knowledgeRepository.js';
|
|
3
|
+
import { RagEngine } from './ragEngine.js';
|
|
4
|
+
import { LogLevel } from '../common/logger.js';
|
|
5
|
+
export interface IKnowledgeEngine {
|
|
6
|
+
initialize(repo?: KnowledgeRepository): Promise<SubsystemStatus>;
|
|
7
|
+
getStatus(): SubsystemStatus;
|
|
8
|
+
}
|
|
9
|
+
export declare class KnowledgeEngine implements IKnowledgeEngine {
|
|
10
|
+
private initialized;
|
|
11
|
+
private logger;
|
|
12
|
+
rag: RagEngine;
|
|
13
|
+
constructor(logLevel?: LogLevel);
|
|
14
|
+
initialize(repo?: KnowledgeRepository): Promise<SubsystemStatus>;
|
|
15
|
+
getStatus(): SubsystemStatus;
|
|
16
|
+
}
|
|
17
|
+
export * from './parsers.js';
|
|
18
|
+
export * from './chunker.js';
|
|
19
|
+
export * from './embeddings.js';
|
|
20
|
+
export * from './vectorStore.js';
|
|
21
|
+
export * from './hybridSearch.js';
|
|
22
|
+
export * from './reranker.js';
|
|
23
|
+
export * from './citationService.js';
|
|
24
|
+
export * from './ragEngine.js';
|
|
25
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/knowledge/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gDAAgD,CAAC;AAC1F,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAU,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAEvD,MAAM,WAAW,gBAAgB;IAC/B,UAAU,CAAC,IAAI,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IACjE,SAAS,IAAI,eAAe,CAAC;CAC9B;AAED,qBAAa,eAAgB,YAAW,gBAAgB;IACtD,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,MAAM,CAAS;IAChB,GAAG,EAAG,SAAS,CAAC;gBAEX,QAAQ,GAAE,QAAiB;IAIjC,UAAU,CAAC,IAAI,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,eAAe,CAAC;IAatE,SAAS,IAAI,eAAe;CAQ7B;AAED,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { RagEngine } from './ragEngine.js';
|
|
2
|
+
import { Logger } from '../common/logger.js';
|
|
3
|
+
export class KnowledgeEngine {
|
|
4
|
+
initialized = false;
|
|
5
|
+
logger;
|
|
6
|
+
rag;
|
|
7
|
+
constructor(logLevel = 'info') {
|
|
8
|
+
this.logger = new Logger('KnowledgeEngine', logLevel);
|
|
9
|
+
}
|
|
10
|
+
async initialize(repo) {
|
|
11
|
+
this.logger.info('Initializing KnowledgeEngine & local RAG pipeline');
|
|
12
|
+
if (repo) {
|
|
13
|
+
this.rag = new RagEngine(repo, 'info');
|
|
14
|
+
// Ensure a default collection exists
|
|
15
|
+
this.rag.getOrCreateDefaultCollection();
|
|
16
|
+
}
|
|
17
|
+
this.initialized = true;
|
|
18
|
+
return this.getStatus();
|
|
19
|
+
}
|
|
20
|
+
getStatus() {
|
|
21
|
+
return {
|
|
22
|
+
name: 'KnowledgeEngine',
|
|
23
|
+
initialized: this.initialized,
|
|
24
|
+
status: this.initialized ? 'ok' : 'degraded',
|
|
25
|
+
message: this.initialized ? 'Local RAG & Knowledge Engine ready' : 'Uninitialized',
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
export * from './parsers.js';
|
|
30
|
+
export * from './chunker.js';
|
|
31
|
+
export * from './embeddings.js';
|
|
32
|
+
export * from './vectorStore.js';
|
|
33
|
+
export * from './hybridSearch.js';
|
|
34
|
+
export * from './reranker.js';
|
|
35
|
+
export * from './citationService.js';
|
|
36
|
+
export * from './ragEngine.js';
|
|
37
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/knowledge/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAY,MAAM,qBAAqB,CAAC;AAOvD,MAAM,OAAO,eAAe;IAClB,WAAW,GAAG,KAAK,CAAC;IACpB,MAAM,CAAS;IAChB,GAAG,CAAa;IAEvB,YAAY,WAAqB,MAAM;QACrC,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAAC;IACxD,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,IAA0B;QACzC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC;QAEtE,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,CAAC,GAAG,GAAG,IAAI,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YACvC,qCAAqC;YACrC,IAAI,CAAC,GAAG,CAAC,4BAA4B,EAAE,CAAC;QAC1C,CAAC;QAED,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC;IAC1B,CAAC;IAED,SAAS;QACP,OAAO;YACL,IAAI,EAAE,iBAAiB;YACvB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU;YAC5C,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,oCAAoC,CAAC,CAAC,CAAC,eAAe;SACnF,CAAC;IACJ,CAAC;CACF;AAED,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export interface ParsedDocumentSection {
|
|
2
|
+
title: string | null;
|
|
3
|
+
pageNumber: number | null;
|
|
4
|
+
content: string;
|
|
5
|
+
}
|
|
6
|
+
export interface ParsedDocument {
|
|
7
|
+
filename: string;
|
|
8
|
+
sourcePath: string;
|
|
9
|
+
mimeType: string;
|
|
10
|
+
contentHash: string;
|
|
11
|
+
fullText: string;
|
|
12
|
+
sections: ParsedDocumentSection[];
|
|
13
|
+
}
|
|
14
|
+
export declare class DocumentParser {
|
|
15
|
+
parseFile(filePath: string): ParsedDocument;
|
|
16
|
+
parseRawText(filename: string, text: string, sourcePath?: string): ParsedDocument;
|
|
17
|
+
private detectMimeType;
|
|
18
|
+
private extractSections;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=parsers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parsers.d.ts","sourceRoot":"","sources":["../../src/knowledge/parsers.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,qBAAqB,EAAE,CAAC;CACnC;AAED,qBAAa,cAAc;IAClB,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc;IAwB3C,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,GAAE,MAAiB,GAAG,cAAc;IAgBlG,OAAO,CAAC,cAAc;IAqBtB,OAAO,CAAC,eAAe;CAsCxB"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import fs from 'node:fs';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
import crypto from 'node:crypto';
|
|
4
|
+
export class DocumentParser {
|
|
5
|
+
parseFile(filePath) {
|
|
6
|
+
if (!fs.existsSync(filePath)) {
|
|
7
|
+
throw new Error(`File not found at path: '${filePath}'`);
|
|
8
|
+
}
|
|
9
|
+
const rawBytes = fs.readFileSync(filePath);
|
|
10
|
+
const contentHash = crypto.createHash('sha256').update(rawBytes).digest('hex');
|
|
11
|
+
const filename = path.basename(filePath);
|
|
12
|
+
const ext = path.extname(filePath).toLowerCase();
|
|
13
|
+
const mimeType = this.detectMimeType(ext);
|
|
14
|
+
const fullText = rawBytes.toString('utf-8');
|
|
15
|
+
const sections = this.extractSections(fullText, ext);
|
|
16
|
+
return {
|
|
17
|
+
filename,
|
|
18
|
+
sourcePath: filePath,
|
|
19
|
+
mimeType,
|
|
20
|
+
contentHash,
|
|
21
|
+
fullText,
|
|
22
|
+
sections,
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
parseRawText(filename, text, sourcePath = filename) {
|
|
26
|
+
const contentHash = crypto.createHash('sha256').update(text).digest('hex');
|
|
27
|
+
const ext = path.extname(filename).toLowerCase() || '.txt';
|
|
28
|
+
const mimeType = this.detectMimeType(ext);
|
|
29
|
+
const sections = this.extractSections(text, ext);
|
|
30
|
+
return {
|
|
31
|
+
filename,
|
|
32
|
+
sourcePath,
|
|
33
|
+
mimeType,
|
|
34
|
+
contentHash,
|
|
35
|
+
fullText: text,
|
|
36
|
+
sections,
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
detectMimeType(ext) {
|
|
40
|
+
switch (ext) {
|
|
41
|
+
case '.md':
|
|
42
|
+
case '.markdown':
|
|
43
|
+
return 'text/markdown';
|
|
44
|
+
case '.json':
|
|
45
|
+
return 'application/json';
|
|
46
|
+
case '.csv':
|
|
47
|
+
return 'text/csv';
|
|
48
|
+
case '.js':
|
|
49
|
+
case '.ts':
|
|
50
|
+
case '.py':
|
|
51
|
+
case '.java':
|
|
52
|
+
case '.c':
|
|
53
|
+
case '.cpp':
|
|
54
|
+
return 'text/x-code';
|
|
55
|
+
default:
|
|
56
|
+
return 'text/plain';
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
extractSections(text, ext) {
|
|
60
|
+
const lines = text.split('\n');
|
|
61
|
+
const sections = [];
|
|
62
|
+
let currentTitle = null;
|
|
63
|
+
let currentBuffer = [];
|
|
64
|
+
for (const line of lines) {
|
|
65
|
+
const trimmed = line.trim();
|
|
66
|
+
const isHeader = trimmed.startsWith('#') ||
|
|
67
|
+
(ext === '.md' && /^#+\s+/.test(trimmed)) ||
|
|
68
|
+
(ext === '.txt' && /^[A-Z0-9\s_\-]{3,50}:$/.test(trimmed));
|
|
69
|
+
if (isHeader) {
|
|
70
|
+
if (currentBuffer.length > 0) {
|
|
71
|
+
sections.push({
|
|
72
|
+
title: currentTitle,
|
|
73
|
+
pageNumber: 1,
|
|
74
|
+
content: currentBuffer.join('\n').trim(),
|
|
75
|
+
});
|
|
76
|
+
currentBuffer = [];
|
|
77
|
+
}
|
|
78
|
+
currentTitle = trimmed.replace(/^#+\s*/, '').replace(/:$/, '');
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
currentBuffer.push(line);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
if (currentBuffer.length > 0) {
|
|
85
|
+
sections.push({
|
|
86
|
+
title: currentTitle,
|
|
87
|
+
pageNumber: 1,
|
|
88
|
+
content: currentBuffer.join('\n').trim(),
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
return sections.length > 0 ? sections : [{ title: null, pageNumber: 1, content: text }];
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=parsers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parsers.js","sourceRoot":"","sources":["../../src/knowledge/parsers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { KnowledgeRepository } from '../storage/repositories/knowledgeRepository.js';
|
|
2
|
+
import type { KnowledgeCollectionRecord, DocumentRecord } from '../storage/repositories/knowledgeRepository.js';
|
|
3
|
+
import { type RetrievalResultPackage } from './citationService.js';
|
|
4
|
+
import { LogLevel } from '../common/logger.js';
|
|
5
|
+
export declare class RagEngine {
|
|
6
|
+
private knowledgeRepo;
|
|
7
|
+
private logger;
|
|
8
|
+
private parser;
|
|
9
|
+
private chunker;
|
|
10
|
+
private embeddingProvider;
|
|
11
|
+
private vectorStore;
|
|
12
|
+
private hybridSearch;
|
|
13
|
+
private reranker;
|
|
14
|
+
private citationService;
|
|
15
|
+
constructor(knowledgeRepo: KnowledgeRepository, logLevel?: LogLevel);
|
|
16
|
+
createCollection(name: string, projectId?: string | null): KnowledgeCollectionRecord;
|
|
17
|
+
getOrCreateDefaultCollection(): KnowledgeCollectionRecord;
|
|
18
|
+
listCollections(): KnowledgeCollectionRecord[];
|
|
19
|
+
ingestText(filename: string, text: string, collectionId: string): Promise<DocumentRecord>;
|
|
20
|
+
ingestFile(filePath: string, collectionId: string): Promise<DocumentRecord>;
|
|
21
|
+
retrieveEvidence(query: string, collectionId: string, topK?: number): Promise<RetrievalResultPackage>;
|
|
22
|
+
deleteDocument(documentId: string): boolean;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=ragEngine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ragEngine.d.ts","sourceRoot":"","sources":["../../src/knowledge/ragEngine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gDAAgD,CAAC;AAC1F,OAAO,KAAK,EAAE,yBAAyB,EAAE,cAAc,EAAE,MAAM,gDAAgD,CAAC;AAOhH,OAAO,EAAmB,KAAK,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AACpF,OAAO,EAAU,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAEvD,qBAAa,SAAS;IAWlB,OAAO,CAAC,aAAa;IAVvB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAAwB;IACtC,OAAO,CAAC,OAAO,CAA0D;IACzE,OAAO,CAAC,iBAAiB,CAAuC;IAChE,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,YAAY,CAAqB;IACzC,OAAO,CAAC,QAAQ,CAA4B;IAC5C,OAAO,CAAC,eAAe,CAAyB;gBAGtC,aAAa,EAAE,mBAAmB,EAC1C,QAAQ,GAAE,QAAiB;IAOtB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,GAAE,MAAM,GAAG,IAAW,GAAG,yBAAyB;IAM1F,4BAA4B,IAAI,yBAAyB;IAQzD,eAAe,IAAI,yBAAyB,EAAE;IAIxC,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IA6DzF,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAY3E,gBAAgB,CAC3B,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,MAAM,EACpB,IAAI,GAAE,MAAU,GACf,OAAO,CAAC,sBAAsB,CAAC;IAkB3B,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;CAInD"}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import { DocumentParser } from './parsers.js';
|
|
2
|
+
import { Chunker } from './chunker.js';
|
|
3
|
+
import { LocalFeatureEmbeddingProvider } from './embeddings.js';
|
|
4
|
+
import { VectorStore } from './vectorStore.js';
|
|
5
|
+
import { HybridSearchEngine } from './hybridSearch.js';
|
|
6
|
+
import { SimpleReranker } from './reranker.js';
|
|
7
|
+
import { CitationService } from './citationService.js';
|
|
8
|
+
import { Logger } from '../common/logger.js';
|
|
9
|
+
export class RagEngine {
|
|
10
|
+
knowledgeRepo;
|
|
11
|
+
logger;
|
|
12
|
+
parser = new DocumentParser();
|
|
13
|
+
chunker = new Chunker({ targetChunkSize: 400, overlapSize: 50 });
|
|
14
|
+
embeddingProvider = new LocalFeatureEmbeddingProvider();
|
|
15
|
+
vectorStore;
|
|
16
|
+
hybridSearch;
|
|
17
|
+
reranker = new SimpleReranker(0.01);
|
|
18
|
+
citationService = new CitationService();
|
|
19
|
+
constructor(knowledgeRepo, logLevel = 'info') {
|
|
20
|
+
this.knowledgeRepo = knowledgeRepo;
|
|
21
|
+
this.logger = new Logger('RagEngine', logLevel);
|
|
22
|
+
this.vectorStore = new VectorStore(knowledgeRepo);
|
|
23
|
+
this.hybridSearch = new HybridSearchEngine(this.vectorStore, this.embeddingProvider);
|
|
24
|
+
}
|
|
25
|
+
createCollection(name, projectId = null) {
|
|
26
|
+
const id = `col-${Date.now()}-${Math.random().toString(36).substring(2, 7)}`;
|
|
27
|
+
this.logger.info(`Creating knowledge collection '${id}' (name: "${name}")`);
|
|
28
|
+
return this.knowledgeRepo.createCollection({ id, name, projectId });
|
|
29
|
+
}
|
|
30
|
+
getOrCreateDefaultCollection() {
|
|
31
|
+
const collections = this.knowledgeRepo.listCollections();
|
|
32
|
+
if (collections.length > 0) {
|
|
33
|
+
return collections[0];
|
|
34
|
+
}
|
|
35
|
+
return this.createCollection('Default Knowledge Base');
|
|
36
|
+
}
|
|
37
|
+
listCollections() {
|
|
38
|
+
return this.knowledgeRepo.listCollections();
|
|
39
|
+
}
|
|
40
|
+
async ingestText(filename, text, collectionId) {
|
|
41
|
+
const parsed = this.parser.parseRawText(filename, text);
|
|
42
|
+
// Check idempotency: if content hash matches, return existing document
|
|
43
|
+
const existing = this.knowledgeRepo.findDocumentByHash(collectionId, parsed.contentHash);
|
|
44
|
+
if (existing) {
|
|
45
|
+
this.logger.info(`Document '${filename}' hash match. Skipping duplicate indexing.`);
|
|
46
|
+
return existing;
|
|
47
|
+
}
|
|
48
|
+
const docId = `doc-${Date.now()}-${Math.random().toString(36).substring(2, 7)}`;
|
|
49
|
+
const versionId = `ver-${docId}-1`;
|
|
50
|
+
const docRecord = this.knowledgeRepo.createDocument({
|
|
51
|
+
id: docId,
|
|
52
|
+
collectionId,
|
|
53
|
+
filename: parsed.filename,
|
|
54
|
+
sourcePath: parsed.sourcePath,
|
|
55
|
+
mimeType: parsed.mimeType,
|
|
56
|
+
contentHash: parsed.contentHash,
|
|
57
|
+
});
|
|
58
|
+
this.knowledgeRepo.createVersion({
|
|
59
|
+
id: versionId,
|
|
60
|
+
documentId: docId,
|
|
61
|
+
version: 1,
|
|
62
|
+
content: parsed.fullText,
|
|
63
|
+
});
|
|
64
|
+
// Chunking
|
|
65
|
+
const chunkSpecs = this.chunker.chunkDocument(parsed);
|
|
66
|
+
this.logger.info(`Chunked document '${filename}' into ${chunkSpecs.length} chunk(s)`);
|
|
67
|
+
for (const spec of chunkSpecs) {
|
|
68
|
+
const chunkId = `chk-${docId}-${spec.chunkIndex}`;
|
|
69
|
+
this.knowledgeRepo.createChunk({
|
|
70
|
+
id: chunkId,
|
|
71
|
+
documentId: docId,
|
|
72
|
+
versionId,
|
|
73
|
+
collectionId,
|
|
74
|
+
chunkIndex: spec.chunkIndex,
|
|
75
|
+
content: spec.content,
|
|
76
|
+
section: spec.section,
|
|
77
|
+
pageNumber: spec.pageNumber,
|
|
78
|
+
tokenCount: spec.tokenCount,
|
|
79
|
+
});
|
|
80
|
+
// Local vector embedding
|
|
81
|
+
const vector = await this.embeddingProvider.embedText(spec.content);
|
|
82
|
+
const embId = `emb-${chunkId}`;
|
|
83
|
+
this.knowledgeRepo.saveEmbedding({
|
|
84
|
+
id: embId,
|
|
85
|
+
chunkId,
|
|
86
|
+
embedding: vector,
|
|
87
|
+
modelName: this.embeddingProvider.modelName,
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
return docRecord;
|
|
91
|
+
}
|
|
92
|
+
async ingestFile(filePath, collectionId) {
|
|
93
|
+
const parsed = this.parser.parseFile(filePath);
|
|
94
|
+
const existing = this.knowledgeRepo.findDocumentByHash(collectionId, parsed.contentHash);
|
|
95
|
+
if (existing) {
|
|
96
|
+
this.logger.info(`File '${filePath}' hash match. Skipping duplicate indexing.`);
|
|
97
|
+
return existing;
|
|
98
|
+
}
|
|
99
|
+
return this.ingestText(parsed.filename, parsed.fullText, collectionId);
|
|
100
|
+
}
|
|
101
|
+
async retrieveEvidence(query, collectionId, topK = 3) {
|
|
102
|
+
this.logger.info(`Retrieving evidence for query in collection '${collectionId}'`);
|
|
103
|
+
const rawCandidates = await this.hybridSearch.search(collectionId, query, { alpha: 0.6, topK: topK * 2 });
|
|
104
|
+
const reranked = this.reranker.rerank(query, rawCandidates, topK);
|
|
105
|
+
const citations = this.citationService.formatCitations(reranked);
|
|
106
|
+
const groundingStatus = this.citationService.evaluateGrounding(citations);
|
|
107
|
+
const evidenceText = this.citationService.assembleEvidenceBlock(citations);
|
|
108
|
+
return {
|
|
109
|
+
query,
|
|
110
|
+
citations,
|
|
111
|
+
groundingStatus,
|
|
112
|
+
evidenceText,
|
|
113
|
+
totalCandidatesFound: rawCandidates.length,
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
deleteDocument(documentId) {
|
|
117
|
+
this.logger.info(`Deleting document '${documentId}' and derived chunks/embeddings`);
|
|
118
|
+
return this.knowledgeRepo.deleteDocument(documentId);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
//# sourceMappingURL=ragEngine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ragEngine.js","sourceRoot":"","sources":["../../src/knowledge/ragEngine.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { SearchCandidate } from './vectorStore.js';
|
|
2
|
+
export interface IReranker {
|
|
3
|
+
rerank(query: string, candidates: SearchCandidate[], topN?: number): SearchCandidate[];
|
|
4
|
+
}
|
|
5
|
+
export declare class SimpleReranker implements IReranker {
|
|
6
|
+
private minScoreThreshold;
|
|
7
|
+
constructor(minScoreThreshold?: number);
|
|
8
|
+
rerank(_query: string, candidates: SearchCandidate[], topN?: number): SearchCandidate[];
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=reranker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reranker.d.ts","sourceRoot":"","sources":["../../src/knowledge/reranker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAExD,MAAM,WAAW,SAAS;IACxB,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,eAAe,EAAE,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,eAAe,EAAE,CAAC;CACxF;AAED,qBAAa,cAAe,YAAW,SAAS;IAClC,OAAO,CAAC,iBAAiB;gBAAjB,iBAAiB,GAAE,MAAa;IAE7C,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,eAAe,EAAE,EAAE,IAAI,GAAE,MAAU,GAAG,eAAe,EAAE;CAIlG"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export class SimpleReranker {
|
|
2
|
+
minScoreThreshold;
|
|
3
|
+
constructor(minScoreThreshold = 0.01) {
|
|
4
|
+
this.minScoreThreshold = minScoreThreshold;
|
|
5
|
+
}
|
|
6
|
+
rerank(_query, candidates, topN = 5) {
|
|
7
|
+
const filtered = candidates.filter((c) => c.combinedScore >= this.minScoreThreshold);
|
|
8
|
+
return filtered.sort((a, b) => b.combinedScore - a.combinedScore).slice(0, topN);
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=reranker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reranker.js","sourceRoot":"","sources":["../../src/knowledge/reranker.ts"],"names":[],"mappings":"AAMA,MAAM,OAAO,cAAc;IACL;IAApB,YAAoB,oBAA4B,IAAI;QAAhC,sBAAiB,GAAjB,iBAAiB,CAAe;IAAG,CAAC;IAEjD,MAAM,CAAC,MAAc,EAAE,UAA6B,EAAE,OAAe,CAAC;QAC3E,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,IAAI,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACrF,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,GAAG,CAAC,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IACnF,CAAC;CACF"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { KnowledgeRepository } from '../storage/repositories/knowledgeRepository.js';
|
|
2
|
+
export interface SearchCandidate {
|
|
3
|
+
chunkId: string;
|
|
4
|
+
documentId: string;
|
|
5
|
+
collectionId: string;
|
|
6
|
+
content: string;
|
|
7
|
+
section: string | null;
|
|
8
|
+
pageNumber: number | null;
|
|
9
|
+
filename: string;
|
|
10
|
+
sourcePath: string;
|
|
11
|
+
vectorScore: number;
|
|
12
|
+
lexicalScore: number;
|
|
13
|
+
combinedScore: number;
|
|
14
|
+
}
|
|
15
|
+
export declare class VectorStore {
|
|
16
|
+
private knowledgeRepo;
|
|
17
|
+
constructor(knowledgeRepo: KnowledgeRepository);
|
|
18
|
+
static cosineSimilarity(v1: number[], v2: number[]): number;
|
|
19
|
+
searchVector(collectionId: string, queryVector: number[], topK?: number): SearchCandidate[];
|
|
20
|
+
searchLexical(collectionId: string, query: string, topK?: number): SearchCandidate[];
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=vectorStore.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vectorStore.d.ts","sourceRoot":"","sources":["../../src/knowledge/vectorStore.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gDAAgD,CAAC;AAE1F,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,qBAAa,WAAW;IACV,OAAO,CAAC,aAAa;gBAAb,aAAa,EAAE,mBAAmB;WAExC,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,MAAM;IAiB3D,YAAY,CAAC,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,IAAI,GAAE,MAAU,GAAG,eAAe,EAAE;IAwB9F,aAAa,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,GAAE,MAAU,GAAG,eAAe,EAAE;CAmC/F"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
export class VectorStore {
|
|
2
|
+
knowledgeRepo;
|
|
3
|
+
constructor(knowledgeRepo) {
|
|
4
|
+
this.knowledgeRepo = knowledgeRepo;
|
|
5
|
+
}
|
|
6
|
+
static cosineSimilarity(v1, v2) {
|
|
7
|
+
if (v1.length !== v2.length || v1.length === 0)
|
|
8
|
+
return 0;
|
|
9
|
+
let dot = 0;
|
|
10
|
+
let norm1 = 0;
|
|
11
|
+
let norm2 = 0;
|
|
12
|
+
for (let i = 0; i < v1.length; i++) {
|
|
13
|
+
dot += v1[i] * v2[i];
|
|
14
|
+
norm1 += v1[i] * v1[i];
|
|
15
|
+
norm2 += v2[i] * v2[i];
|
|
16
|
+
}
|
|
17
|
+
if (norm1 === 0 || norm2 === 0)
|
|
18
|
+
return 0;
|
|
19
|
+
return dot / (Math.sqrt(norm1) * Math.sqrt(norm2));
|
|
20
|
+
}
|
|
21
|
+
searchVector(collectionId, queryVector, topK = 5) {
|
|
22
|
+
const records = this.knowledgeRepo.getEmbeddingsForCollection(collectionId);
|
|
23
|
+
const results = [];
|
|
24
|
+
for (const rec of records) {
|
|
25
|
+
const vectorScore = VectorStore.cosineSimilarity(queryVector, rec.embedding);
|
|
26
|
+
results.push({
|
|
27
|
+
chunkId: rec.chunkId,
|
|
28
|
+
documentId: rec.documentId,
|
|
29
|
+
collectionId: rec.collectionId,
|
|
30
|
+
content: rec.content,
|
|
31
|
+
section: rec.section,
|
|
32
|
+
pageNumber: rec.pageNumber,
|
|
33
|
+
filename: rec.filename,
|
|
34
|
+
sourcePath: rec.sourcePath,
|
|
35
|
+
vectorScore,
|
|
36
|
+
lexicalScore: 0,
|
|
37
|
+
combinedScore: vectorScore,
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
return results.sort((a, b) => b.vectorScore - a.vectorScore).slice(0, topK);
|
|
41
|
+
}
|
|
42
|
+
searchLexical(collectionId, query, topK = 5) {
|
|
43
|
+
const chunks = this.knowledgeRepo.getChunksByCollection(collectionId);
|
|
44
|
+
const queryTokens = query.toLowerCase().split(/\s+/).filter(Boolean);
|
|
45
|
+
const results = [];
|
|
46
|
+
for (const chunk of chunks) {
|
|
47
|
+
const contentLower = chunk.content.toLowerCase();
|
|
48
|
+
let matchCount = 0;
|
|
49
|
+
for (const token of queryTokens) {
|
|
50
|
+
if (contentLower.includes(token)) {
|
|
51
|
+
matchCount++;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
const lexicalScore = queryTokens.length > 0 ? matchCount / queryTokens.length : 0;
|
|
55
|
+
if (lexicalScore > 0) {
|
|
56
|
+
results.push({
|
|
57
|
+
chunkId: chunk.id,
|
|
58
|
+
documentId: chunk.documentId,
|
|
59
|
+
collectionId: chunk.collectionId,
|
|
60
|
+
content: chunk.content,
|
|
61
|
+
section: chunk.section,
|
|
62
|
+
pageNumber: chunk.pageNumber,
|
|
63
|
+
filename: chunk.filename,
|
|
64
|
+
sourcePath: chunk.sourcePath,
|
|
65
|
+
vectorScore: 0,
|
|
66
|
+
lexicalScore,
|
|
67
|
+
combinedScore: lexicalScore,
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
return results.sort((a, b) => b.lexicalScore - a.lexicalScore).slice(0, topK);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=vectorStore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vectorStore.js","sourceRoot":"","sources":["../../src/knowledge/vectorStore.ts"],"names":[],"mappings":"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"}
|
package/dist/main.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":""}
|