diff --git a/modules/features/aichat/aicore/aicoreBase.py b/modules/aichat/aicore/aicoreBase.py similarity index 100% rename from modules/features/aichat/aicore/aicoreBase.py rename to modules/aichat/aicore/aicoreBase.py diff --git a/modules/features/aichat/aicore/aicoreModelRegistry.py b/modules/aichat/aicore/aicoreModelRegistry.py similarity index 100% rename from modules/features/aichat/aicore/aicoreModelRegistry.py rename to modules/aichat/aicore/aicoreModelRegistry.py diff --git a/modules/features/aichat/aicore/aicoreModelSelector.py b/modules/aichat/aicore/aicoreModelSelector.py similarity index 100% rename from modules/features/aichat/aicore/aicoreModelSelector.py rename to modules/aichat/aicore/aicoreModelSelector.py diff --git a/modules/features/aichat/aicore/aicorePluginAnthropic.py b/modules/aichat/aicore/aicorePluginAnthropic.py similarity index 100% rename from modules/features/aichat/aicore/aicorePluginAnthropic.py rename to modules/aichat/aicore/aicorePluginAnthropic.py diff --git a/modules/features/aichat/aicore/aicorePluginInternal.py b/modules/aichat/aicore/aicorePluginInternal.py similarity index 100% rename from modules/features/aichat/aicore/aicorePluginInternal.py rename to modules/aichat/aicore/aicorePluginInternal.py diff --git a/modules/features/aichat/aicore/aicorePluginOpenai.py b/modules/aichat/aicore/aicorePluginOpenai.py similarity index 100% rename from modules/features/aichat/aicore/aicorePluginOpenai.py rename to modules/aichat/aicore/aicorePluginOpenai.py diff --git a/modules/features/aichat/aicore/aicorePluginPerplexity.py b/modules/aichat/aicore/aicorePluginPerplexity.py similarity index 100% rename from modules/features/aichat/aicore/aicorePluginPerplexity.py rename to modules/aichat/aicore/aicorePluginPerplexity.py diff --git a/modules/features/aichat/aicore/aicorePluginTavily.py b/modules/aichat/aicore/aicorePluginTavily.py similarity index 100% rename from modules/features/aichat/aicore/aicorePluginTavily.py rename to modules/aichat/aicore/aicorePluginTavily.py diff --git a/modules/features/aichat/datamodelFeatureAiChat.py b/modules/aichat/datamodelFeatureAiChat.py similarity index 100% rename from modules/features/aichat/datamodelFeatureAiChat.py rename to modules/aichat/datamodelFeatureAiChat.py diff --git a/modules/features/aichat/interfaceFeatureAiChat.py b/modules/aichat/interfaceFeatureAiChat.py similarity index 100% rename from modules/features/aichat/interfaceFeatureAiChat.py rename to modules/aichat/interfaceFeatureAiChat.py diff --git a/modules/features/aichat/mainAiChat.py b/modules/aichat/mainAiChat.py similarity index 100% rename from modules/features/aichat/mainAiChat.py rename to modules/aichat/mainAiChat.py diff --git a/modules/features/aichat/routeFeatureAiChat.py b/modules/aichat/routeFeatureAiChat.py similarity index 100% rename from modules/features/aichat/routeFeatureAiChat.py rename to modules/aichat/routeFeatureAiChat.py diff --git a/modules/features/aichat/serviceAi/mainServiceAi.py b/modules/aichat/serviceAi/mainServiceAi.py similarity index 98% rename from modules/features/aichat/serviceAi/mainServiceAi.py rename to modules/aichat/serviceAi/mainServiceAi.py index e5d2605f..40e2e974 100644 --- a/modules/features/aichat/serviceAi/mainServiceAi.py +++ b/modules/aichat/serviceAi/mainServiceAi.py @@ -6,8 +6,8 @@ import re import time import base64 from typing import Dict, Any, List, Optional, Tuple -from modules.features.aichat.datamodelFeatureAiChat import PromptPlaceholder, ChatDocument -from modules.features.aichat.serviceExtraction.mainServiceExtraction import ExtractionService +from modules.aichat.datamodelFeatureAiChat import PromptPlaceholder, ChatDocument +from modules.aichat.serviceExtraction.mainServiceExtraction import ExtractionService from modules.datamodels.datamodelAi import AiCallRequest, AiCallOptions, OperationTypeEnum, PriorityEnum, ProcessingModeEnum from modules.datamodels.datamodelExtraction import ContentPart, DocumentIntent from modules.datamodels.datamodelWorkflow import AiResponse, AiResponseMetadata, DocumentData @@ -329,7 +329,7 @@ Respond with ONLY a JSON object in this exact format: parentOperationId: Optional[str] ) -> AiResponse: """Handle IMAGE_GENERATE operation type using image generation path.""" - from modules.features.aichat.serviceGeneration.paths.imagePath import ImageGenerationPath + from modules.aichat.serviceGeneration.paths.imagePath import ImageGenerationPath imagePath = ImageGenerationPath(self.services) @@ -514,7 +514,7 @@ Respond with ONLY a JSON object in this exact format: ) try: - from modules.features.aichat.serviceGeneration.mainServiceGeneration import GenerationService + from modules.aichat.serviceGeneration.mainServiceGeneration import GenerationService generationService = GenerationService(self.services) @@ -829,7 +829,7 @@ Respond with ONLY a JSON object in this exact format: parentOperationId: Optional[str] ) -> AiResponse: """Handle code generation using code generation path.""" - from modules.features.aichat.serviceGeneration.paths.codePath import CodeGenerationPath + from modules.aichat.serviceGeneration.paths.codePath import CodeGenerationPath codePath = CodeGenerationPath(self.services) return await codePath.generateCode( @@ -852,7 +852,7 @@ Respond with ONLY a JSON object in this exact format: parentOperationId: Optional[str] ) -> AiResponse: """Handle document generation using document generation path.""" - from modules.features.aichat.serviceGeneration.paths.documentPath import DocumentGenerationPath + from modules.aichat.serviceGeneration.paths.documentPath import DocumentGenerationPath # Set compression options for document generation options.compressPrompt = False diff --git a/modules/features/aichat/serviceAi/merge_1.txt b/modules/aichat/serviceAi/merge_1.txt similarity index 100% rename from modules/features/aichat/serviceAi/merge_1.txt rename to modules/aichat/serviceAi/merge_1.txt diff --git a/modules/features/aichat/serviceAi/subAiCallLooping-flow.md b/modules/aichat/serviceAi/subAiCallLooping-flow.md similarity index 100% rename from modules/features/aichat/serviceAi/subAiCallLooping-flow.md rename to modules/aichat/serviceAi/subAiCallLooping-flow.md diff --git a/modules/features/aichat/serviceAi/subAiCallLooping.py b/modules/aichat/serviceAi/subAiCallLooping.py similarity index 100% rename from modules/features/aichat/serviceAi/subAiCallLooping.py rename to modules/aichat/serviceAi/subAiCallLooping.py diff --git a/modules/features/aichat/serviceAi/subContentExtraction.py b/modules/aichat/serviceAi/subContentExtraction.py similarity index 99% rename from modules/features/aichat/serviceAi/subContentExtraction.py rename to modules/aichat/serviceAi/subContentExtraction.py index cace339d..cb6ff743 100644 --- a/modules/features/aichat/serviceAi/subContentExtraction.py +++ b/modules/aichat/serviceAi/subContentExtraction.py @@ -14,7 +14,7 @@ import logging import base64 from typing import Dict, Any, List, Optional -from modules.features.aichat.datamodelFeatureAiChat import ChatDocument +from modules.aichat.datamodelFeatureAiChat import ChatDocument from modules.datamodels.datamodelExtraction import ContentPart, DocumentIntent from modules.workflows.processing.shared.stateTools import checkWorkflowStopped diff --git a/modules/features/aichat/serviceAi/subDocumentIntents.py b/modules/aichat/serviceAi/subDocumentIntents.py similarity index 99% rename from modules/features/aichat/serviceAi/subDocumentIntents.py rename to modules/aichat/serviceAi/subDocumentIntents.py index 2d45179a..a468f1d4 100644 --- a/modules/features/aichat/serviceAi/subDocumentIntents.py +++ b/modules/aichat/serviceAi/subDocumentIntents.py @@ -12,7 +12,7 @@ import json import logging from typing import Dict, Any, List, Optional -from modules.features.aichat.datamodelFeatureAiChat import ChatDocument +from modules.aichat.datamodelFeatureAiChat import ChatDocument from modules.datamodels.datamodelExtraction import DocumentIntent from modules.workflows.processing.shared.stateTools import checkWorkflowStopped diff --git a/modules/features/aichat/serviceAi/subJsonMerger.py b/modules/aichat/serviceAi/subJsonMerger.py similarity index 100% rename from modules/features/aichat/serviceAi/subJsonMerger.py rename to modules/aichat/serviceAi/subJsonMerger.py diff --git a/modules/features/aichat/serviceAi/subJsonResponseHandling.py b/modules/aichat/serviceAi/subJsonResponseHandling.py similarity index 100% rename from modules/features/aichat/serviceAi/subJsonResponseHandling.py rename to modules/aichat/serviceAi/subJsonResponseHandling.py diff --git a/modules/features/aichat/serviceAi/subLoopingUseCases.py b/modules/aichat/serviceAi/subLoopingUseCases.py similarity index 100% rename from modules/features/aichat/serviceAi/subLoopingUseCases.py rename to modules/aichat/serviceAi/subLoopingUseCases.py diff --git a/modules/features/aichat/serviceAi/subResponseParsing.py b/modules/aichat/serviceAi/subResponseParsing.py similarity index 100% rename from modules/features/aichat/serviceAi/subResponseParsing.py rename to modules/aichat/serviceAi/subResponseParsing.py diff --git a/modules/features/aichat/serviceAi/subStructureFilling.py b/modules/aichat/serviceAi/subStructureFilling.py similarity index 99% rename from modules/features/aichat/serviceAi/subStructureFilling.py rename to modules/aichat/serviceAi/subStructureFilling.py index c5ba2f8a..be2197bb 100644 --- a/modules/features/aichat/serviceAi/subStructureFilling.py +++ b/modules/aichat/serviceAi/subStructureFilling.py @@ -2531,7 +2531,7 @@ CRITICAL: List of accepted section content types (e.g., ["table", "code_block"]) """ try: - from modules.features.aichat.serviceGeneration.renderers.registry import getRenderer + from modules.aichat.serviceGeneration.renderers.registry import getRenderer # Get renderer for this format renderer = getRenderer(outputFormat, self.services) diff --git a/modules/features/aichat/serviceAi/subStructureGeneration.py b/modules/aichat/serviceAi/subStructureGeneration.py similarity index 99% rename from modules/features/aichat/serviceAi/subStructureGeneration.py rename to modules/aichat/serviceAi/subStructureGeneration.py index ff01c3dd..429a182c 100644 --- a/modules/features/aichat/serviceAi/subStructureGeneration.py +++ b/modules/aichat/serviceAi/subStructureGeneration.py @@ -231,7 +231,7 @@ CRITICAL: raise ValueError("Structure has no documents - cannot generate without documents") # Import renderer registry for format validation (existing infrastructure) - from modules.features.aichat.serviceGeneration.renderers.registry import getRenderer + from modules.aichat.serviceGeneration.renderers.registry import getRenderer # Validate and fix each document for doc in documents: diff --git a/modules/features/aichat/serviceExtraction/__init__.py b/modules/aichat/serviceExtraction/__init__.py similarity index 100% rename from modules/features/aichat/serviceExtraction/__init__.py rename to modules/aichat/serviceExtraction/__init__.py diff --git a/modules/features/aichat/serviceExtraction/chunking/__init__.py b/modules/aichat/serviceExtraction/chunking/__init__.py similarity index 100% rename from modules/features/aichat/serviceExtraction/chunking/__init__.py rename to modules/aichat/serviceExtraction/chunking/__init__.py diff --git a/modules/features/aichat/serviceExtraction/chunking/chunkerImage.py b/modules/aichat/serviceExtraction/chunking/chunkerImage.py similarity index 100% rename from modules/features/aichat/serviceExtraction/chunking/chunkerImage.py rename to modules/aichat/serviceExtraction/chunking/chunkerImage.py diff --git a/modules/features/aichat/serviceExtraction/chunking/chunkerStructure.py b/modules/aichat/serviceExtraction/chunking/chunkerStructure.py similarity index 100% rename from modules/features/aichat/serviceExtraction/chunking/chunkerStructure.py rename to modules/aichat/serviceExtraction/chunking/chunkerStructure.py diff --git a/modules/features/aichat/serviceExtraction/chunking/chunkerTable.py b/modules/aichat/serviceExtraction/chunking/chunkerTable.py similarity index 100% rename from modules/features/aichat/serviceExtraction/chunking/chunkerTable.py rename to modules/aichat/serviceExtraction/chunking/chunkerTable.py diff --git a/modules/features/aichat/serviceExtraction/chunking/chunkerText.py b/modules/aichat/serviceExtraction/chunking/chunkerText.py similarity index 100% rename from modules/features/aichat/serviceExtraction/chunking/chunkerText.py rename to modules/aichat/serviceExtraction/chunking/chunkerText.py diff --git a/modules/features/aichat/serviceExtraction/extractors/__init__.py b/modules/aichat/serviceExtraction/extractors/__init__.py similarity index 100% rename from modules/features/aichat/serviceExtraction/extractors/__init__.py rename to modules/aichat/serviceExtraction/extractors/__init__.py diff --git a/modules/features/aichat/serviceExtraction/extractors/extractorBinary.py b/modules/aichat/serviceExtraction/extractors/extractorBinary.py similarity index 100% rename from modules/features/aichat/serviceExtraction/extractors/extractorBinary.py rename to modules/aichat/serviceExtraction/extractors/extractorBinary.py diff --git a/modules/features/aichat/serviceExtraction/extractors/extractorCsv.py b/modules/aichat/serviceExtraction/extractors/extractorCsv.py similarity index 100% rename from modules/features/aichat/serviceExtraction/extractors/extractorCsv.py rename to modules/aichat/serviceExtraction/extractors/extractorCsv.py diff --git a/modules/features/aichat/serviceExtraction/extractors/extractorDocx.py b/modules/aichat/serviceExtraction/extractors/extractorDocx.py similarity index 100% rename from modules/features/aichat/serviceExtraction/extractors/extractorDocx.py rename to modules/aichat/serviceExtraction/extractors/extractorDocx.py diff --git a/modules/features/aichat/serviceExtraction/extractors/extractorHtml.py b/modules/aichat/serviceExtraction/extractors/extractorHtml.py similarity index 100% rename from modules/features/aichat/serviceExtraction/extractors/extractorHtml.py rename to modules/aichat/serviceExtraction/extractors/extractorHtml.py diff --git a/modules/features/aichat/serviceExtraction/extractors/extractorImage.py b/modules/aichat/serviceExtraction/extractors/extractorImage.py similarity index 100% rename from modules/features/aichat/serviceExtraction/extractors/extractorImage.py rename to modules/aichat/serviceExtraction/extractors/extractorImage.py diff --git a/modules/features/aichat/serviceExtraction/extractors/extractorJson.py b/modules/aichat/serviceExtraction/extractors/extractorJson.py similarity index 100% rename from modules/features/aichat/serviceExtraction/extractors/extractorJson.py rename to modules/aichat/serviceExtraction/extractors/extractorJson.py diff --git a/modules/features/aichat/serviceExtraction/extractors/extractorPdf.py b/modules/aichat/serviceExtraction/extractors/extractorPdf.py similarity index 100% rename from modules/features/aichat/serviceExtraction/extractors/extractorPdf.py rename to modules/aichat/serviceExtraction/extractors/extractorPdf.py diff --git a/modules/features/aichat/serviceExtraction/extractors/extractorPptx.py b/modules/aichat/serviceExtraction/extractors/extractorPptx.py similarity index 100% rename from modules/features/aichat/serviceExtraction/extractors/extractorPptx.py rename to modules/aichat/serviceExtraction/extractors/extractorPptx.py diff --git a/modules/features/aichat/serviceExtraction/extractors/extractorSql.py b/modules/aichat/serviceExtraction/extractors/extractorSql.py similarity index 100% rename from modules/features/aichat/serviceExtraction/extractors/extractorSql.py rename to modules/aichat/serviceExtraction/extractors/extractorSql.py diff --git a/modules/features/aichat/serviceExtraction/extractors/extractorText.py b/modules/aichat/serviceExtraction/extractors/extractorText.py similarity index 100% rename from modules/features/aichat/serviceExtraction/extractors/extractorText.py rename to modules/aichat/serviceExtraction/extractors/extractorText.py diff --git a/modules/features/aichat/serviceExtraction/extractors/extractorXlsx.py b/modules/aichat/serviceExtraction/extractors/extractorXlsx.py similarity index 100% rename from modules/features/aichat/serviceExtraction/extractors/extractorXlsx.py rename to modules/aichat/serviceExtraction/extractors/extractorXlsx.py diff --git a/modules/features/aichat/serviceExtraction/extractors/extractorXml.py b/modules/aichat/serviceExtraction/extractors/extractorXml.py similarity index 100% rename from modules/features/aichat/serviceExtraction/extractors/extractorXml.py rename to modules/aichat/serviceExtraction/extractors/extractorXml.py diff --git a/modules/features/aichat/serviceExtraction/mainServiceExtraction.py b/modules/aichat/serviceExtraction/mainServiceExtraction.py similarity index 99% rename from modules/features/aichat/serviceExtraction/mainServiceExtraction.py rename to modules/aichat/serviceExtraction/mainServiceExtraction.py index abe32352..8777dbee 100644 --- a/modules/features/aichat/serviceExtraction/mainServiceExtraction.py +++ b/modules/aichat/serviceExtraction/mainServiceExtraction.py @@ -11,10 +11,10 @@ import json from .subRegistry import ExtractorRegistry, ChunkerRegistry from .subPipeline import runExtraction from modules.datamodels.datamodelExtraction import ContentExtracted, ContentPart, MergeStrategy, ExtractionOptions, PartResult, DocumentIntent -from modules.features.aichat.datamodelFeatureAiChat import ChatDocument +from modules.aichat.datamodelFeatureAiChat import ChatDocument from modules.datamodels.datamodelAi import AiCallResponse, AiCallRequest, AiCallOptions, OperationTypeEnum, AiModelCall -from modules.features.aichat.aicore.aicoreModelRegistry import modelRegistry -from modules.features.aichat.aicore.aicoreModelSelector import modelSelector +from modules.aichat.aicore.aicoreModelRegistry import modelRegistry +from modules.aichat.aicore.aicoreModelSelector import modelSelector from modules.shared.jsonUtils import stripCodeFences diff --git a/modules/features/aichat/serviceExtraction/merging/__init__.py b/modules/aichat/serviceExtraction/merging/__init__.py similarity index 100% rename from modules/features/aichat/serviceExtraction/merging/__init__.py rename to modules/aichat/serviceExtraction/merging/__init__.py diff --git a/modules/features/aichat/serviceExtraction/merging/mergerDefault.py b/modules/aichat/serviceExtraction/merging/mergerDefault.py similarity index 100% rename from modules/features/aichat/serviceExtraction/merging/mergerDefault.py rename to modules/aichat/serviceExtraction/merging/mergerDefault.py diff --git a/modules/features/aichat/serviceExtraction/merging/mergerTable.py b/modules/aichat/serviceExtraction/merging/mergerTable.py similarity index 100% rename from modules/features/aichat/serviceExtraction/merging/mergerTable.py rename to modules/aichat/serviceExtraction/merging/mergerTable.py diff --git a/modules/features/aichat/serviceExtraction/merging/mergerText.py b/modules/aichat/serviceExtraction/merging/mergerText.py similarity index 100% rename from modules/features/aichat/serviceExtraction/merging/mergerText.py rename to modules/aichat/serviceExtraction/merging/mergerText.py diff --git a/modules/features/aichat/serviceExtraction/subMerger.py b/modules/aichat/serviceExtraction/subMerger.py similarity index 100% rename from modules/features/aichat/serviceExtraction/subMerger.py rename to modules/aichat/serviceExtraction/subMerger.py diff --git a/modules/features/aichat/serviceExtraction/subPipeline.py b/modules/aichat/serviceExtraction/subPipeline.py similarity index 100% rename from modules/features/aichat/serviceExtraction/subPipeline.py rename to modules/aichat/serviceExtraction/subPipeline.py diff --git a/modules/features/aichat/serviceExtraction/subPromptBuilderExtraction.py b/modules/aichat/serviceExtraction/subPromptBuilderExtraction.py similarity index 98% rename from modules/features/aichat/serviceExtraction/subPromptBuilderExtraction.py rename to modules/aichat/serviceExtraction/subPromptBuilderExtraction.py index 50228983..9b785525 100644 --- a/modules/features/aichat/serviceExtraction/subPromptBuilderExtraction.py +++ b/modules/aichat/serviceExtraction/subPromptBuilderExtraction.py @@ -13,7 +13,7 @@ from modules.datamodels.datamodelAi import AiCallRequest, AiCallOptions, Operati # Type hint for renderer parameter from typing import TYPE_CHECKING if TYPE_CHECKING: - from modules.features.aichat.serviceGeneration.renderers.documentRendererBaseTemplate import BaseRenderer + from modules.aichat.serviceGeneration.renderers.documentRendererBaseTemplate import BaseRenderer _RendererLike = BaseRenderer else: _RendererLike = Any diff --git a/modules/features/aichat/serviceExtraction/subRegistry.py b/modules/aichat/serviceExtraction/subRegistry.py similarity index 99% rename from modules/features/aichat/serviceExtraction/subRegistry.py rename to modules/aichat/serviceExtraction/subRegistry.py index 972c1eb7..68c701cc 100644 --- a/modules/features/aichat/serviceExtraction/subRegistry.py +++ b/modules/aichat/serviceExtraction/subRegistry.py @@ -71,7 +71,7 @@ class ExtractorRegistry: module_name = file_path.stem try: # Import the module - module = importlib.import_module(f".{module_name}", package="modules.features.aichat.serviceExtraction.extractors") + module = importlib.import_module(f".{module_name}", package="modules.aichat.serviceExtraction.extractors") # Find all extractor classes in the module for attr_name in dir(module): diff --git a/modules/features/aichat/serviceExtraction/subUtils.py b/modules/aichat/serviceExtraction/subUtils.py similarity index 100% rename from modules/features/aichat/serviceExtraction/subUtils.py rename to modules/aichat/serviceExtraction/subUtils.py diff --git a/modules/features/aichat/serviceGeneration/mainServiceGeneration.py b/modules/aichat/serviceGeneration/mainServiceGeneration.py similarity index 98% rename from modules/features/aichat/serviceGeneration/mainServiceGeneration.py rename to modules/aichat/serviceGeneration/mainServiceGeneration.py index 8aadd081..6953ed7c 100644 --- a/modules/features/aichat/serviceGeneration/mainServiceGeneration.py +++ b/modules/aichat/serviceGeneration/mainServiceGeneration.py @@ -6,8 +6,8 @@ import base64 import traceback from typing import Any, Dict, List, Optional, Callable from modules.datamodels.datamodelDocument import RenderedDocument -from modules.features.aichat.datamodelFeatureAiChat import ChatDocument -from modules.features.aichat.serviceGeneration.subDocumentUtility import ( +from modules.aichat.datamodelFeatureAiChat import ChatDocument +from modules.aichat.serviceGeneration.subDocumentUtility import ( getFileExtension, getMimeTypeFromExtension, detectMimeTypeFromContent, @@ -414,7 +414,7 @@ class GenerationService: continue # Check output style classification (code/document/image/etc.) from renderer - from modules.features.aichat.serviceGeneration.renderers.registry import getOutputStyle + from modules.aichat.serviceGeneration.renderers.registry import getOutputStyle outputStyle = getOutputStyle(docFormat) if outputStyle: logger.debug(f"Document {doc.get('id', docIndex)} format '{docFormat}' classified as '{outputStyle}' style") @@ -471,8 +471,8 @@ class GenerationService: Complete document structure with populated elements ready for rendering """ try: - from modules.features.aichat.serviceGeneration.subStructureGenerator import StructureGenerator - from modules.features.aichat.serviceGeneration.subContentGenerator import ContentGenerator + from modules.aichat.serviceGeneration.subStructureGenerator import StructureGenerator + from modules.aichat.serviceGeneration.subContentGenerator import ContentGenerator # Phase 1: Generate structure skeleton if progressCallback: @@ -537,7 +537,7 @@ class GenerationService: aiService=None ) -> str: """Get adaptive extraction prompt.""" - from modules.features.aichat.serviceExtraction.subPromptBuilderExtraction import buildExtractionPrompt + from modules.aichat.serviceExtraction.subPromptBuilderExtraction import buildExtractionPrompt return await buildExtractionPrompt( outputFormat=outputFormat, userPrompt=userPrompt, diff --git a/modules/features/aichat/serviceGeneration/paths/codePath.py b/modules/aichat/serviceGeneration/paths/codePath.py similarity index 99% rename from modules/features/aichat/serviceGeneration/paths/codePath.py rename to modules/aichat/serviceGeneration/paths/codePath.py index 5e151066..4ab6f79e 100644 --- a/modules/features/aichat/serviceGeneration/paths/codePath.py +++ b/modules/aichat/serviceGeneration/paths/codePath.py @@ -920,7 +920,7 @@ CRITICAL: def _getCodeRenderer(self, fileType: str): """Get code renderer for file type.""" - from modules.features.aichat.serviceGeneration.renderers.registry import getRenderer + from modules.aichat.serviceGeneration.renderers.registry import getRenderer # Map file types to renderer formats formatMap = { diff --git a/modules/features/aichat/serviceGeneration/paths/documentPath.py b/modules/aichat/serviceGeneration/paths/documentPath.py similarity index 100% rename from modules/features/aichat/serviceGeneration/paths/documentPath.py rename to modules/aichat/serviceGeneration/paths/documentPath.py diff --git a/modules/features/aichat/serviceGeneration/paths/imagePath.py b/modules/aichat/serviceGeneration/paths/imagePath.py similarity index 100% rename from modules/features/aichat/serviceGeneration/paths/imagePath.py rename to modules/aichat/serviceGeneration/paths/imagePath.py diff --git a/modules/features/aichat/serviceGeneration/renderers/codeRendererBaseTemplate.py b/modules/aichat/serviceGeneration/renderers/codeRendererBaseTemplate.py similarity index 100% rename from modules/features/aichat/serviceGeneration/renderers/codeRendererBaseTemplate.py rename to modules/aichat/serviceGeneration/renderers/codeRendererBaseTemplate.py diff --git a/modules/features/aichat/serviceGeneration/renderers/documentRendererBaseTemplate.py b/modules/aichat/serviceGeneration/renderers/documentRendererBaseTemplate.py similarity index 100% rename from modules/features/aichat/serviceGeneration/renderers/documentRendererBaseTemplate.py rename to modules/aichat/serviceGeneration/renderers/documentRendererBaseTemplate.py diff --git a/modules/features/aichat/serviceGeneration/renderers/registry.py b/modules/aichat/serviceGeneration/renderers/registry.py similarity index 100% rename from modules/features/aichat/serviceGeneration/renderers/registry.py rename to modules/aichat/serviceGeneration/renderers/registry.py diff --git a/modules/features/aichat/serviceGeneration/renderers/rendererCodeCsv.py b/modules/aichat/serviceGeneration/renderers/rendererCodeCsv.py similarity index 100% rename from modules/features/aichat/serviceGeneration/renderers/rendererCodeCsv.py rename to modules/aichat/serviceGeneration/renderers/rendererCodeCsv.py diff --git a/modules/features/aichat/serviceGeneration/renderers/rendererCodeJson.py b/modules/aichat/serviceGeneration/renderers/rendererCodeJson.py similarity index 100% rename from modules/features/aichat/serviceGeneration/renderers/rendererCodeJson.py rename to modules/aichat/serviceGeneration/renderers/rendererCodeJson.py diff --git a/modules/features/aichat/serviceGeneration/renderers/rendererCodeXml.py b/modules/aichat/serviceGeneration/renderers/rendererCodeXml.py similarity index 100% rename from modules/features/aichat/serviceGeneration/renderers/rendererCodeXml.py rename to modules/aichat/serviceGeneration/renderers/rendererCodeXml.py diff --git a/modules/features/aichat/serviceGeneration/renderers/rendererCsv.py b/modules/aichat/serviceGeneration/renderers/rendererCsv.py similarity index 100% rename from modules/features/aichat/serviceGeneration/renderers/rendererCsv.py rename to modules/aichat/serviceGeneration/renderers/rendererCsv.py diff --git a/modules/features/aichat/serviceGeneration/renderers/rendererDocx.py b/modules/aichat/serviceGeneration/renderers/rendererDocx.py similarity index 100% rename from modules/features/aichat/serviceGeneration/renderers/rendererDocx.py rename to modules/aichat/serviceGeneration/renderers/rendererDocx.py diff --git a/modules/features/aichat/serviceGeneration/renderers/rendererHtml.py b/modules/aichat/serviceGeneration/renderers/rendererHtml.py similarity index 100% rename from modules/features/aichat/serviceGeneration/renderers/rendererHtml.py rename to modules/aichat/serviceGeneration/renderers/rendererHtml.py diff --git a/modules/features/aichat/serviceGeneration/renderers/rendererImage.py b/modules/aichat/serviceGeneration/renderers/rendererImage.py similarity index 100% rename from modules/features/aichat/serviceGeneration/renderers/rendererImage.py rename to modules/aichat/serviceGeneration/renderers/rendererImage.py diff --git a/modules/features/aichat/serviceGeneration/renderers/rendererJson.py b/modules/aichat/serviceGeneration/renderers/rendererJson.py similarity index 100% rename from modules/features/aichat/serviceGeneration/renderers/rendererJson.py rename to modules/aichat/serviceGeneration/renderers/rendererJson.py diff --git a/modules/features/aichat/serviceGeneration/renderers/rendererMarkdown.py b/modules/aichat/serviceGeneration/renderers/rendererMarkdown.py similarity index 100% rename from modules/features/aichat/serviceGeneration/renderers/rendererMarkdown.py rename to modules/aichat/serviceGeneration/renderers/rendererMarkdown.py diff --git a/modules/features/aichat/serviceGeneration/renderers/rendererPdf.py b/modules/aichat/serviceGeneration/renderers/rendererPdf.py similarity index 100% rename from modules/features/aichat/serviceGeneration/renderers/rendererPdf.py rename to modules/aichat/serviceGeneration/renderers/rendererPdf.py diff --git a/modules/features/aichat/serviceGeneration/renderers/rendererPptx.py b/modules/aichat/serviceGeneration/renderers/rendererPptx.py similarity index 100% rename from modules/features/aichat/serviceGeneration/renderers/rendererPptx.py rename to modules/aichat/serviceGeneration/renderers/rendererPptx.py diff --git a/modules/features/aichat/serviceGeneration/renderers/rendererText.py b/modules/aichat/serviceGeneration/renderers/rendererText.py similarity index 100% rename from modules/features/aichat/serviceGeneration/renderers/rendererText.py rename to modules/aichat/serviceGeneration/renderers/rendererText.py diff --git a/modules/features/aichat/serviceGeneration/renderers/rendererXlsx.py b/modules/aichat/serviceGeneration/renderers/rendererXlsx.py similarity index 100% rename from modules/features/aichat/serviceGeneration/renderers/rendererXlsx.py rename to modules/aichat/serviceGeneration/renderers/rendererXlsx.py diff --git a/modules/features/aichat/serviceGeneration/subContentGenerator.py b/modules/aichat/serviceGeneration/subContentGenerator.py similarity index 99% rename from modules/features/aichat/serviceGeneration/subContentGenerator.py rename to modules/aichat/serviceGeneration/subContentGenerator.py index 5995077f..e5c9eec1 100644 --- a/modules/features/aichat/serviceGeneration/subContentGenerator.py +++ b/modules/aichat/serviceGeneration/subContentGenerator.py @@ -12,7 +12,7 @@ import base64 import re import traceback from typing import Dict, Any, Optional, List, Callable -from modules.features.aichat.serviceGeneration.subContentIntegrator import ContentIntegrator +from modules.aichat.serviceGeneration.subContentIntegrator import ContentIntegrator from modules.workflows.processing.shared.stateTools import checkWorkflowStopped logger = logging.getLogger(__name__) diff --git a/modules/features/aichat/serviceGeneration/subContentIntegrator.py b/modules/aichat/serviceGeneration/subContentIntegrator.py similarity index 100% rename from modules/features/aichat/serviceGeneration/subContentIntegrator.py rename to modules/aichat/serviceGeneration/subContentIntegrator.py diff --git a/modules/features/aichat/serviceGeneration/subDocumentUtility.py b/modules/aichat/serviceGeneration/subDocumentUtility.py similarity index 100% rename from modules/features/aichat/serviceGeneration/subDocumentUtility.py rename to modules/aichat/serviceGeneration/subDocumentUtility.py diff --git a/modules/features/aichat/serviceGeneration/subJsonSchema.py b/modules/aichat/serviceGeneration/subJsonSchema.py similarity index 100% rename from modules/features/aichat/serviceGeneration/subJsonSchema.py rename to modules/aichat/serviceGeneration/subJsonSchema.py diff --git a/modules/features/aichat/serviceGeneration/subPromptBuilderGeneration.py b/modules/aichat/serviceGeneration/subPromptBuilderGeneration.py similarity index 100% rename from modules/features/aichat/serviceGeneration/subPromptBuilderGeneration.py rename to modules/aichat/serviceGeneration/subPromptBuilderGeneration.py diff --git a/modules/features/aichat/serviceGeneration/subStructureGenerator.py b/modules/aichat/serviceGeneration/subStructureGenerator.py similarity index 100% rename from modules/features/aichat/serviceGeneration/subStructureGenerator.py rename to modules/aichat/serviceGeneration/subStructureGenerator.py diff --git a/modules/features/aichat/serviceWeb/mainServiceWeb.py b/modules/aichat/serviceWeb/mainServiceWeb.py similarity index 100% rename from modules/features/aichat/serviceWeb/mainServiceWeb.py rename to modules/aichat/serviceWeb/mainServiceWeb.py diff --git a/modules/datamodels/datamodelWorkflowActions.py b/modules/datamodels/datamodelWorkflowActions.py index 8bac1fd5..aee7d261 100644 --- a/modules/datamodels/datamodelWorkflowActions.py +++ b/modules/datamodels/datamodelWorkflowActions.py @@ -4,7 +4,7 @@ from typing import Optional, Any, Union, List, Dict, Callable, Awaitable from pydantic import BaseModel, Field -from modules.datamodels.datamodelChat import ActionResult +from modules.aichat.datamodelFeatureAiChat import ActionResult from modules.shared.frontendTypes import FrontendType from modules.shared.attributeUtils import registerModelLabels diff --git a/modules/features/automation/routeFeatureAutomation.py b/modules/features/automation/routeFeatureAutomation.py index 95c93334..f0395a21 100644 --- a/modules/features/automation/routeFeatureAutomation.py +++ b/modules/features/automation/routeFeatureAutomation.py @@ -13,9 +13,9 @@ import logging import json # Import interfaces and models -from modules.features.aichat.interfaceFeatureAiChat import getInterface as getChatInterface +from modules.aichat.interfaceFeatureAiChat import getInterface as getChatInterface from modules.auth import getCurrentUser, limiter -from modules.features.aichat.datamodelFeatureAiChat import AutomationDefinition, ChatWorkflow +from modules.aichat.datamodelFeatureAiChat import AutomationDefinition, ChatWorkflow from modules.datamodels.datamodelPagination import PaginationParams, PaginatedResponse, PaginationMetadata, normalize_pagination_dict from modules.shared.attributeUtils import getModelAttributeDefinitions from modules.workflows.automation import executeAutomation diff --git a/modules/features/chatbot/mainChatbot.py b/modules/features/chatbot/mainChatbot.py index a82e89dc..ad44f5ee 100644 --- a/modules/features/chatbot/mainChatbot.py +++ b/modules/features/chatbot/mainChatbot.py @@ -117,7 +117,7 @@ import asyncio import re from typing import Optional, Dict, Any, List -from modules.features.aichat.datamodelFeatureAiChat import ChatWorkflow, UserInputRequest, WorkflowModeEnum, ChatLog, ChatDocument +from modules.aichat.datamodelFeatureAiChat import ChatWorkflow, UserInputRequest, WorkflowModeEnum, ChatLog, ChatDocument from modules.datamodels.datamodelUam import User from modules.datamodels.datamodelAi import AiCallRequest, AiCallOptions, OperationTypeEnum, ProcessingModeEnum from modules.datamodels.datamodelDocref import DocumentReferenceList, DocumentItemReference @@ -439,7 +439,7 @@ async def _emit_log_and_event( # Emit event directly for streaming (using correct signature) if created_log and event_manager: try: - from modules.features.aichat.datamodelFeatureAiChat import ChatLog + from modules.aichat.datamodelFeatureAiChat import ChatLog # Convert to dict if it's a Pydantic model if hasattr(created_log, "model_dump"): log_dict = created_log.model_dump() diff --git a/modules/features/neutralizer/interfaceFeatureNeutralizer.py b/modules/features/neutralizer/interfaceFeatureNeutralizer.py new file mode 100644 index 00000000..47439d62 --- /dev/null +++ b/modules/features/neutralizer/interfaceFeatureNeutralizer.py @@ -0,0 +1,176 @@ +# Copyright (c) 2025 Patrick Motsch +# All rights reserved. +""" +Database interface for the Neutralizer feature. +Handles CRUD operations for neutralization configuration and attributes. +""" + +import logging +from typing import Dict, List, Any, Optional + +from modules.features.neutralizer.datamodelFeatureNeutralizer import ( + DataNeutraliserConfig, + DataNeutralizerAttributes, +) +from modules.interfaces.interfaceRbac import getRecordsetWithRBAC +from modules.shared.timeUtils import getUtcTimestamp + +logger = logging.getLogger(__name__) + + +class InterfaceFeatureNeutralizer: + """Database interface for Neutralizer feature operations""" + + def __init__(self, db, currentUser, mandateId: str, userId: str): + """ + Initialize the interface with database connection and user context. + + Args: + db: Database connection instance + currentUser: Current user object for RBAC + mandateId: Current mandate ID + userId: Current user ID + """ + self.db = db + self.currentUser = currentUser + self.mandateId = mandateId + self.userId = userId + + def getNeutralizationConfig(self) -> Optional[DataNeutraliserConfig]: + """Get the data neutralization configuration for the current user's mandate""" + try: + # Use RBAC filtering + filteredConfigs = getRecordsetWithRBAC( + self.db, + DataNeutraliserConfig, + self.currentUser, + recordFilter={"mandateId": self.mandateId} + ) + + if not filteredConfigs: + return None + + # Filter out database-specific fields + configDict = filteredConfigs[0] + cleanedConfig = {k: v for k, v in configDict.items() if not k.startswith("_")} + return DataNeutraliserConfig(**cleanedConfig) + + except Exception as e: + logger.error(f"Error getting neutralization config: {str(e)}") + return None + + def createOrUpdateNeutralizationConfig( + self, configData: Dict[str, Any] + ) -> DataNeutraliserConfig: + """Create or update the data neutralization configuration""" + try: + # Check if config already exists + existingConfig = self.getNeutralizationConfig() + + if existingConfig: + # Update existing config + updateData = existingConfig.model_dump() + updateData.update(configData) + updateData["updatedAt"] = getUtcTimestamp() + + updatedConfig = DataNeutraliserConfig(**updateData) + self.db.recordModify( + DataNeutraliserConfig, existingConfig.id, updatedConfig + ) + + return updatedConfig + else: + # Create new config + configData["mandateId"] = self.mandateId + configData["userId"] = self.userId + + newConfig = DataNeutraliserConfig(**configData) + createdRecord = self.db.recordCreate(DataNeutraliserConfig, newConfig) + + return DataNeutraliserConfig(**createdRecord) + + except Exception as e: + logger.error(f"Error creating/updating neutralization config: {str(e)}") + raise ValueError(f"Failed to create/update neutralization config: {str(e)}") + + def getNeutralizationAttributes( + self, fileId: Optional[str] = None + ) -> List[DataNeutralizerAttributes]: + """Get neutralization attributes, optionally filtered by file ID""" + try: + filterDict = {"mandateId": self.mandateId} + if fileId: + filterDict["fileId"] = fileId + + # Use RBAC filtering + filteredAttributes = getRecordsetWithRBAC( + self.db, + DataNeutralizerAttributes, + self.currentUser, + recordFilter=filterDict + ) + + # Filter out database-specific fields + cleanedAttributes = [] + for attr in filteredAttributes: + cleanedAttr = {k: v for k, v in attr.items() if not k.startswith("_")} + cleanedAttributes.append(cleanedAttr) + + return [ + DataNeutralizerAttributes(**attr) + for attr in cleanedAttributes + ] + + except Exception as e: + logger.error(f"Error getting neutralization attributes: {str(e)}") + return [] + + def deleteNeutralizationAttributes(self, fileId: str) -> bool: + """Delete all neutralization attributes for a specific file""" + try: + attributes = self.db.getRecordset( + DataNeutralizerAttributes, + recordFilter={"mandateId": self.mandateId, "fileId": fileId}, + ) + + for attribute in attributes: + self.db.recordDelete(DataNeutralizerAttributes, attribute["id"]) + + logger.info( + f"Deleted {len(attributes)} neutralization attributes for file {fileId}" + ) + return True + + except Exception as e: + logger.error(f"Error deleting neutralization attributes: {str(e)}") + return False + + def getAttributeById(self, attributeId: str) -> Optional[Dict[str, Any]]: + """Get a single neutralization attribute by ID""" + try: + attributes = self.db.getRecordset( + DataNeutralizerAttributes, + recordFilter={"mandateId": self.mandateId, "id": attributeId} + ) + if attributes: + return attributes[0] + return None + except Exception as e: + logger.error(f"Error getting attribute by ID: {str(e)}") + return None + + +def getInterface(db, currentUser, mandateId: str, userId: str) -> InterfaceFeatureNeutralizer: + """ + Factory function to create a Neutralizer interface instance. + + Args: + db: Database connection + currentUser: Current user for RBAC + mandateId: Current mandate ID + userId: Current user ID + + Returns: + InterfaceFeatureNeutralizer instance + """ + return InterfaceFeatureNeutralizer(db, currentUser, mandateId, userId) diff --git a/modules/features/neutralizer/serviceNeutralization/mainServiceNeutralization.py b/modules/features/neutralizer/serviceNeutralization/mainServiceNeutralization.py index fb47c188..f9e65284 100644 --- a/modules/features/neutralizer/serviceNeutralization/mainServiceNeutralization.py +++ b/modules/features/neutralizer/serviceNeutralization/mainServiceNeutralization.py @@ -14,6 +14,7 @@ import json from typing import Dict, List, Any, Optional from modules.features.neutralizer.datamodelFeatureNeutralizer import DataNeutraliserConfig, DataNeutralizerAttributes +from modules.features.neutralizer.interfaceFeatureNeutralizer import InterfaceFeatureNeutralizer # Import all necessary classes and functions for neutralization from .subProcessCommon import CommonUtils, NeutralizationResult, NeutralizationAttribute @@ -35,9 +36,19 @@ class NeutralizationService: NamesToParse: List of names to parse and replace (case-insensitive) """ self.services = serviceCenter - self.interfaceDbApp = serviceCenter.interfaceDbApp self.interfaceDbComponent = serviceCenter.interfaceDbComponent + # Create feature-specific interface for neutralizer DB operations + self.interfaceNeutralizer: InterfaceFeatureNeutralizer = None + if serviceCenter and serviceCenter.interfaceDbApp: + dbApp = serviceCenter.interfaceDbApp + self.interfaceNeutralizer = InterfaceFeatureNeutralizer( + db=dbApp.db, + currentUser=dbApp.currentUser, + mandateId=dbApp.mandateId, + userId=dbApp.userId + ) + # Initialize anonymization processors self.NamesToParse = NamesToParse or [] self.textProcessor = TextProcessor(NamesToParse) @@ -47,15 +58,15 @@ class NeutralizationService: def getConfig(self) -> Optional[DataNeutraliserConfig]: """Get the neutralization configuration for the current user's mandate""" - if not self.interfaceDbApp: + if not self.interfaceNeutralizer: return None - return self.interfaceDbApp.getNeutralizationConfig() + return self.interfaceNeutralizer.getNeutralizationConfig() - def saveConfig(self, config_data: Dict[str, Any]) -> DataNeutraliserConfig: + def saveConfig(self, configData: Dict[str, Any]) -> DataNeutraliserConfig: """Save or update the neutralization configuration""" - if not self.interfaceDbApp: + if not self.interfaceNeutralizer: raise ValueError("User context required for saving configuration") - return self.interfaceDbApp.createOrUpdateNeutralizationConfig(config_data) + return self.interfaceNeutralizer.createOrUpdateNeutralizationConfig(configData) # Public API: process text or file @@ -125,44 +136,37 @@ class NeutralizationService: return result def resolveText(self, text: str) -> str: - if not self.interfaceDbApp: + if not self.interfaceNeutralizer: return text try: - placeholder_pattern = r'\[([a-z]+)\.([a-f0-9-]{36})\]' - matches = re.findall(placeholder_pattern, text) - resolved_text = text - for placeholder_type, uid in matches: - attributes = self.interfaceDbApp.db.getRecordset( - DataNeutralizerAttributes, - recordFilter={ - "mandateId": self.interfaceDbApp.mandateId, - "id": uid - } - ) - if attributes: - attribute = attributes[0] - placeholder = f"[{placeholder_type}.{uid}]" - resolved_text = resolved_text.replace(placeholder, attribute["originalText"]) - return resolved_text + placeholderPattern = r'\[([a-z]+)\.([a-f0-9-]{36})\]' + matches = re.findall(placeholderPattern, text) + resolvedText = text + for placeholderType, uid in matches: + attribute = self.interfaceNeutralizer.getAttributeById(uid) + if attribute: + placeholder = f"[{placeholderType}.{uid}]" + resolvedText = resolvedText.replace(placeholder, attribute["originalText"]) + return resolvedText except Exception: return text def getAttributes(self) -> List[DataNeutralizerAttributes]: """Get all neutralization attributes for the current user's mandate""" - if not self.interfaceDbApp: + if not self.interfaceNeutralizer: return [] try: # Use the interface method which properly converts dicts to objects - return self.interfaceDbApp.getNeutralizationAttributes() + return self.interfaceNeutralizer.getNeutralizationAttributes() except Exception as e: logger.error(f"Error getting neutralization attributes: {str(e)}") return [] def deleteNeutralizationAttributes(self, fileId: str) -> bool: """Delete neutralization attributes for a specific file""" - if not self.interfaceDbApp: + if not self.interfaceNeutralizer: return False - return self.interfaceDbApp.deleteNeutralizationAttributes(fileId) + return self.interfaceNeutralizer.deleteNeutralizationAttributes(fileId) def _reloadNamesFromConfig(self) -> None: """Reload names from config and update processors""" diff --git a/modules/interfaces/interfaceAiObjects.py b/modules/interfaces/interfaceAiObjects.py index e5aa72cc..957221f2 100644 --- a/modules/interfaces/interfaceAiObjects.py +++ b/modules/interfaces/interfaceAiObjects.py @@ -10,8 +10,8 @@ import time logger = logging.getLogger(__name__) -from modules.features.aichat.aicore.aicoreModelRegistry import modelRegistry -from modules.features.aichat.aicore.aicoreModelSelector import modelSelector +from modules.aichat.aicore.aicoreModelRegistry import modelRegistry +from modules.aichat.aicore.aicoreModelSelector import modelSelector from modules.datamodels.datamodelAi import ( AiModel, AiCallOptions, diff --git a/modules/interfaces/interfaceDbApp.py b/modules/interfaces/interfaceDbApp.py index 5b6633cb..14a251c7 100644 --- a/modules/interfaces/interfaceDbApp.py +++ b/modules/interfaces/interfaceDbApp.py @@ -36,10 +36,6 @@ from modules.datamodels.datamodelRbac import ( ) from modules.datamodels.datamodelUam import AccessLevel from modules.datamodels.datamodelSecurity import Token, AuthEvent, TokenStatus -from modules.features.neutralizer.datamodelFeatureNeutralizer import ( - DataNeutraliserConfig, - DataNeutralizerAttributes, -) from modules.datamodels.datamodelPagination import PaginationParams, PaginatedResult from modules.datamodels.datamodelMembership import ( UserMandate, @@ -2040,115 +2036,6 @@ class AppObjects: logger.error(f"Error during logout: {str(e)}") raise - # Neutralization methods - - def getNeutralizationConfig(self) -> Optional[DataNeutraliserConfig]: - """Get the data neutralization configuration for the current user's mandate""" - try: - # Use RBAC filtering - filtered_configs = getRecordsetWithRBAC(self.db, - DataNeutraliserConfig, - self.currentUser, - recordFilter={"mandateId": self.mandateId} - ) - - if not filtered_configs: - return None - - # Filter out database-specific fields - configDict = filtered_configs[0] - cleanedConfig = {k: v for k, v in configDict.items() if not k.startswith("_")} - return DataNeutraliserConfig(**cleanedConfig) - - except Exception as e: - logger.error(f"Error getting neutralization config: {str(e)}") - return None - - def createOrUpdateNeutralizationConfig( - self, config_data: Dict[str, Any] - ) -> DataNeutraliserConfig: - """Create or update the data neutralization configuration""" - try: - # Check if config already exists - existing_config = self.getNeutralizationConfig() - - if existing_config: - # Update existing config - update_data = existing_config.model_dump() - update_data.update(config_data) - update_data["updatedAt"] = getUtcTimestamp() - - updated_config = DataNeutraliserConfig(**update_data) - self.db.recordModify( - DataNeutraliserConfig, existing_config.id, updated_config - ) - - return updated_config - else: - # Create new config - config_data["mandateId"] = self.mandateId - config_data["userId"] = self.userId - - new_config = DataNeutraliserConfig(**config_data) - created_record = self.db.recordCreate(DataNeutraliserConfig, new_config) - - return DataNeutraliserConfig(**created_record) - - except Exception as e: - logger.error(f"Error creating/updating neutralization config: {str(e)}") - raise ValueError(f"Failed to create/update neutralization config: {str(e)}") - - def getNeutralizationAttributes( - self, file_id: Optional[str] = None - ) -> List[DataNeutralizerAttributes]: - """Get neutralization attributes, optionally filtered by file ID""" - try: - filter_dict = {"mandateId": self.mandateId} - if file_id: - filter_dict["fileId"] = file_id - - # Use RBAC filtering - filtered_attributes = getRecordsetWithRBAC(self.db, - DataNeutralizerAttributes, - self.currentUser, - recordFilter=filter_dict - ) - - # Filter out database-specific fields - cleaned_attributes = [] - for attr in filtered_attributes: - cleanedAttr = {k: v for k, v in attr.items() if not k.startswith("_")} - cleaned_attributes.append(cleanedAttr) - - return [ - DataNeutralizerAttributes(**attr) - for attr in cleaned_attributes - ] - - except Exception as e: - logger.error(f"Error getting neutralization attributes: {str(e)}") - return [] - - def deleteNeutralizationAttributes(self, file_id: str) -> bool: - """Delete all neutralization attributes for a specific file""" - try: - attributes = self.db.getRecordset( - DataNeutralizerAttributes, - recordFilter={"mandateId": self.mandateId, "fileId": file_id}, - ) - - for attribute in attributes: - self.db.recordDelete(DataNeutralizerAttributes, attribute["id"]) - - logger.info( - f"Deleted {len(attributes)} neutralization attributes for file {file_id}" - ) - return True - - except Exception as e: - logger.error(f"Error deleting neutralization attributes: {str(e)}") - return False - # RBAC CRUD Methods def createAccessRule(self, accessRule: AccessRule) -> AccessRule: diff --git a/modules/routes/routeAdminAutomationEvents.py b/modules/routes/routeAdminAutomationEvents.py index 9202e448..d1f526c6 100644 --- a/modules/routes/routeAdminAutomationEvents.py +++ b/modules/routes/routeAdminAutomationEvents.py @@ -11,7 +11,7 @@ from fastapi import status import logging # Import interfaces and models from feature containers -import modules.features.aichat.interfaceFeatureAiChat as interfaceDbChat +import modules.aichat.interfaceFeatureAiChat as interfaceDbChat from modules.auth import limiter, getRequestContext, requireSysAdmin, RequestContext from modules.datamodels.datamodelUam import User @@ -76,7 +76,7 @@ async def sync_all_automation_events( This will register/remove events based on active flags. """ try: - from modules.features.aichat.interfaceFeatureAiChat import getInterface as getChatInterface + from modules.aichat.interfaceFeatureAiChat import getInterface as getChatInterface from modules.interfaces.interfaceDbApp import getRootInterface from modules.workflows.automation import syncAutomationEvents diff --git a/modules/routes/routeDataWorkflows.py b/modules/routes/routeDataWorkflows.py index b4013de1..09bfbabc 100644 --- a/modules/routes/routeDataWorkflows.py +++ b/modules/routes/routeDataWorkflows.py @@ -14,12 +14,12 @@ from fastapi import APIRouter, HTTPException, Depends, Body, Path, Query, Respon from modules.auth import limiter, getCurrentUser # Import interfaces from feature containers -import modules.features.aichat.interfaceFeatureAiChat as interfaceDbChat -from modules.features.aichat.interfaceFeatureAiChat import getInterface +import modules.aichat.interfaceFeatureAiChat as interfaceDbChat +from modules.aichat.interfaceFeatureAiChat import getInterface from modules.interfaces.interfaceRbac import getRecordsetWithRBAC # Import models from feature containers -from modules.features.aichat.datamodelFeatureAiChat import ( +from modules.aichat.datamodelFeatureAiChat import ( ChatWorkflow, ChatMessage, ChatLog, diff --git a/modules/security/passwordUtils.py b/modules/security/passwordUtils.py new file mode 100644 index 00000000..6d6ce235 --- /dev/null +++ b/modules/security/passwordUtils.py @@ -0,0 +1,54 @@ +# Copyright (c) 2025 Patrick Motsch +# All rights reserved. +""" +Password utility functions for secure password handling. +Uses Argon2 for password hashing. +""" + +from typing import Optional +from passlib.context import CryptContext + +# Password hashing context using Argon2 +_pwdContext = CryptContext(schemes=["argon2"], deprecated="auto") + + +def hashPassword(password: str) -> str: + """ + Hash a password using Argon2. + + Args: + password: Plain text password to hash + + Returns: + Hashed password string + """ + return _pwdContext.hash(password) + + +def verifyPassword(plainPassword: str, hashedPassword: str) -> bool: + """ + Verify a plain password against a hashed password. + + Args: + plainPassword: Plain text password to verify + hashedPassword: Hashed password to compare against + + Returns: + True if password matches, False otherwise + """ + return _pwdContext.verify(plainPassword, hashedPassword) + + +def getPasswordHash(password: Optional[str]) -> Optional[str]: + """ + Hash a password, returning None if password is None. + + Args: + password: Plain text password or None + + Returns: + Hashed password or None if input was None + """ + if password is None: + return None + return _pwdContext.hash(password) diff --git a/modules/services/__init__.py b/modules/services/__init__.py index b5d124ff..ade50b5f 100644 --- a/modules/services/__init__.py +++ b/modules/services/__init__.py @@ -19,7 +19,7 @@ import logging from modules.datamodels.datamodelUam import User if TYPE_CHECKING: - from modules.features.aichat.datamodelFeatureAiChat import ChatWorkflow + from modules.aichat.datamodelFeatureAiChat import ChatWorkflow logger = logging.getLogger(__name__) diff --git a/modules/services/serviceChat/mainServiceChat.py b/modules/services/serviceChat/mainServiceChat.py index ec4cad6b..ef57803d 100644 --- a/modules/services/serviceChat/mainServiceChat.py +++ b/modules/services/serviceChat/mainServiceChat.py @@ -3,7 +3,7 @@ import logging from typing import Dict, Any, List, Optional from modules.datamodels.datamodelUam import User, UserConnection -from modules.features.aichat.datamodelFeatureAiChat import ChatDocument, ChatMessage, ChatStat, ChatLog +from modules.aichat.datamodelFeatureAiChat import ChatDocument, ChatMessage, ChatStat, ChatLog from modules.datamodels.datamodelAi import AiCallOptions, OperationTypeEnum, PriorityEnum, ProcessingModeEnum from modules.shared.progressLogger import ProgressLogger diff --git a/modules/services/serviceUtils/mainServiceUtils.py b/modules/services/serviceUtils/mainServiceUtils.py index afdad31b..83cb9327 100644 --- a/modules/services/serviceUtils/mainServiceUtils.py +++ b/modules/services/serviceUtils/mainServiceUtils.py @@ -161,7 +161,7 @@ class UtilsService: Mirrors storeDebugMessageAndDocuments() in modules.interfaces.interfaceDbChat. """ try: - from modules.features.aichat.interfaceFeatureAiChat import storeDebugMessageAndDocuments as _storeDebugMessageAndDocuments + from modules.aichat.interfaceFeatureAiChat import storeDebugMessageAndDocuments as _storeDebugMessageAndDocuments _storeDebugMessageAndDocuments(message, currentUser) except Exception: # Silent fail to never break main flow diff --git a/modules/shared/__init__.py b/modules/shared/__init__.py new file mode 100644 index 00000000..64b042b8 --- /dev/null +++ b/modules/shared/__init__.py @@ -0,0 +1,19 @@ +# Copyright (c) 2025 Patrick Motsch +# All rights reserved. +""" +Shared utilities module. +Contains common utilities used across the gateway application. +""" + +from . import jsonUtils +from . import timeUtils +from . import attributeUtils +from . import frontendTypes +from . import configuration +from . import eventManagement +from . import auditLogger +from . import debugLogger +from . import progressLogger +from . import callbackRegistry +from . import jsonContinuation +from . import dbMultiTenantOptimizations diff --git a/modules/workflows/automation/mainWorkflow.py b/modules/workflows/automation/mainWorkflow.py index 43df551c..332f8d29 100644 --- a/modules/workflows/automation/mainWorkflow.py +++ b/modules/workflows/automation/mainWorkflow.py @@ -12,7 +12,7 @@ import logging import json from typing import Dict, Any, Optional -from modules.features.aichat.datamodelFeatureAiChat import ChatWorkflow, UserInputRequest, WorkflowModeEnum, AutomationDefinition +from modules.aichat.datamodelFeatureAiChat import ChatWorkflow, UserInputRequest, WorkflowModeEnum, AutomationDefinition from modules.datamodels.datamodelUam import User from modules.shared.timeUtils import getUtcTimestamp from modules.shared.eventManagement import eventManager diff --git a/modules/workflows/methods/methodAi/actions/convertDocument.py b/modules/workflows/methods/methodAi/actions/convertDocument.py index 03f014d5..d6264bed 100644 --- a/modules/workflows/methods/methodAi/actions/convertDocument.py +++ b/modules/workflows/methods/methodAi/actions/convertDocument.py @@ -3,7 +3,7 @@ import logging from typing import Dict, Any -from modules.features.aichat.datamodelFeatureAiChat import ActionResult +from modules.aichat.datamodelFeatureAiChat import ActionResult logger = logging.getLogger(__name__) diff --git a/modules/workflows/methods/methodAi/actions/generateCode.py b/modules/workflows/methods/methodAi/actions/generateCode.py index fecba4e9..ebdada6a 100644 --- a/modules/workflows/methods/methodAi/actions/generateCode.py +++ b/modules/workflows/methods/methodAi/actions/generateCode.py @@ -4,7 +4,7 @@ import logging import time from typing import Dict, Any, Optional, List -from modules.features.aichat.datamodelFeatureAiChat import ActionResult, ActionDocument +from modules.aichat.datamodelFeatureAiChat import ActionResult, ActionDocument from modules.datamodels.datamodelExtraction import ContentPart from modules.datamodels.datamodelAi import AiCallOptions, OperationTypeEnum, PriorityEnum, ProcessingModeEnum from modules.datamodels.datamodelWorkflow import AiResponse, DocumentData diff --git a/modules/workflows/methods/methodAi/actions/generateDocument.py b/modules/workflows/methods/methodAi/actions/generateDocument.py index dc3231df..4451f0ae 100644 --- a/modules/workflows/methods/methodAi/actions/generateDocument.py +++ b/modules/workflows/methods/methodAi/actions/generateDocument.py @@ -4,7 +4,7 @@ import logging import time from typing import Dict, Any, Optional, List -from modules.features.aichat.datamodelFeatureAiChat import ActionResult, ActionDocument +from modules.aichat.datamodelFeatureAiChat import ActionResult, ActionDocument from modules.datamodels.datamodelExtraction import ContentPart from modules.datamodels.datamodelAi import AiCallOptions, OperationTypeEnum, PriorityEnum, ProcessingModeEnum from modules.datamodels.datamodelWorkflow import AiResponse, DocumentData diff --git a/modules/workflows/methods/methodAi/actions/process.py b/modules/workflows/methods/methodAi/actions/process.py index 06a4817f..298ecbe4 100644 --- a/modules/workflows/methods/methodAi/actions/process.py +++ b/modules/workflows/methods/methodAi/actions/process.py @@ -5,7 +5,7 @@ import logging import time import json from typing import Dict, Any, List, Optional -from modules.features.aichat.datamodelFeatureAiChat import ActionResult, ActionDocument +from modules.aichat.datamodelFeatureAiChat import ActionResult, ActionDocument from modules.datamodels.datamodelAi import AiCallOptions from modules.datamodels.datamodelExtraction import ContentPart diff --git a/modules/workflows/methods/methodAi/actions/summarizeDocument.py b/modules/workflows/methods/methodAi/actions/summarizeDocument.py index 8dd37872..4dc7c4ef 100644 --- a/modules/workflows/methods/methodAi/actions/summarizeDocument.py +++ b/modules/workflows/methods/methodAi/actions/summarizeDocument.py @@ -3,7 +3,7 @@ import logging from typing import Dict, Any -from modules.features.aichat.datamodelFeatureAiChat import ActionResult +from modules.aichat.datamodelFeatureAiChat import ActionResult logger = logging.getLogger(__name__) diff --git a/modules/workflows/methods/methodAi/actions/translateDocument.py b/modules/workflows/methods/methodAi/actions/translateDocument.py index 0e04dde8..07350a54 100644 --- a/modules/workflows/methods/methodAi/actions/translateDocument.py +++ b/modules/workflows/methods/methodAi/actions/translateDocument.py @@ -3,7 +3,7 @@ import logging from typing import Dict, Any -from modules.features.aichat.datamodelFeatureAiChat import ActionResult +from modules.aichat.datamodelFeatureAiChat import ActionResult logger = logging.getLogger(__name__) diff --git a/modules/workflows/methods/methodAi/actions/webResearch.py b/modules/workflows/methods/methodAi/actions/webResearch.py index 8b462e62..753319fe 100644 --- a/modules/workflows/methods/methodAi/actions/webResearch.py +++ b/modules/workflows/methods/methodAi/actions/webResearch.py @@ -5,7 +5,7 @@ import logging import time import re from typing import Dict, Any -from modules.features.aichat.datamodelFeatureAiChat import ActionResult, ActionDocument +from modules.aichat.datamodelFeatureAiChat import ActionResult, ActionDocument logger = logging.getLogger(__name__) diff --git a/modules/workflows/methods/methodChatbot/actions/queryDatabase.py b/modules/workflows/methods/methodChatbot/actions/queryDatabase.py index b0cc5a0e..75bf8771 100644 --- a/modules/workflows/methods/methodChatbot/actions/queryDatabase.py +++ b/modules/workflows/methods/methodChatbot/actions/queryDatabase.py @@ -11,7 +11,7 @@ import json import time from typing import Dict, Any from modules.workflows.methods.methodBase import action -from modules.features.aichat.datamodelFeatureAiChat import ActionResult, ActionDocument +from modules.aichat.datamodelFeatureAiChat import ActionResult, ActionDocument from modules.connectors.connectorPreprocessor import PreprocessorConnector logger = logging.getLogger(__name__) diff --git a/modules/workflows/methods/methodContext/actions/extractContent.py b/modules/workflows/methods/methodContext/actions/extractContent.py index dabd2f06..5fd926a1 100644 --- a/modules/workflows/methods/methodContext/actions/extractContent.py +++ b/modules/workflows/methods/methodContext/actions/extractContent.py @@ -4,7 +4,7 @@ import logging import time from typing import Dict, Any -from modules.features.aichat.datamodelFeatureAiChat import ActionResult, ActionDocument +from modules.aichat.datamodelFeatureAiChat import ActionResult, ActionDocument from modules.datamodels.datamodelDocref import DocumentReferenceList from modules.datamodels.datamodelExtraction import ExtractionOptions, MergeStrategy, ContentExtracted, ContentPart diff --git a/modules/workflows/methods/methodContext/actions/getDocumentIndex.py b/modules/workflows/methods/methodContext/actions/getDocumentIndex.py index c46c9924..6b4dabe9 100644 --- a/modules/workflows/methods/methodContext/actions/getDocumentIndex.py +++ b/modules/workflows/methods/methodContext/actions/getDocumentIndex.py @@ -4,7 +4,7 @@ import logging import json from typing import Dict, Any -from modules.features.aichat.datamodelFeatureAiChat import ActionResult, ActionDocument +from modules.aichat.datamodelFeatureAiChat import ActionResult, ActionDocument logger = logging.getLogger(__name__) diff --git a/modules/workflows/methods/methodContext/actions/neutralizeData.py b/modules/workflows/methods/methodContext/actions/neutralizeData.py index 082497b9..c871fa06 100644 --- a/modules/workflows/methods/methodContext/actions/neutralizeData.py +++ b/modules/workflows/methods/methodContext/actions/neutralizeData.py @@ -4,7 +4,7 @@ import logging import time from typing import Dict, Any -from modules.features.aichat.datamodelFeatureAiChat import ActionResult, ActionDocument +from modules.aichat.datamodelFeatureAiChat import ActionResult, ActionDocument from modules.datamodels.datamodelDocref import DocumentReferenceList from modules.datamodels.datamodelExtraction import ContentExtracted, ContentPart diff --git a/modules/workflows/methods/methodContext/actions/triggerPreprocessingServer.py b/modules/workflows/methods/methodContext/actions/triggerPreprocessingServer.py index c7c94e6c..e299d226 100644 --- a/modules/workflows/methods/methodContext/actions/triggerPreprocessingServer.py +++ b/modules/workflows/methods/methodContext/actions/triggerPreprocessingServer.py @@ -5,7 +5,7 @@ import logging import json import aiohttp from typing import Dict, Any -from modules.features.aichat.datamodelFeatureAiChat import ActionResult, ActionDocument +from modules.aichat.datamodelFeatureAiChat import ActionResult, ActionDocument from modules.shared.configuration import APP_CONFIG logger = logging.getLogger(__name__) diff --git a/modules/workflows/methods/methodJira/actions/connectJira.py b/modules/workflows/methods/methodJira/actions/connectJira.py index c6e2b69a..bd4f666c 100644 --- a/modules/workflows/methods/methodJira/actions/connectJira.py +++ b/modules/workflows/methods/methodJira/actions/connectJira.py @@ -5,7 +5,7 @@ import logging import json import uuid from typing import Dict, Any -from modules.features.aichat.datamodelFeatureAiChat import ActionResult, ActionDocument +from modules.aichat.datamodelFeatureAiChat import ActionResult, ActionDocument from modules.shared.configuration import APP_CONFIG logger = logging.getLogger(__name__) diff --git a/modules/workflows/methods/methodJira/actions/createCsvContent.py b/modules/workflows/methods/methodJira/actions/createCsvContent.py index a33278f3..3b07ca6a 100644 --- a/modules/workflows/methods/methodJira/actions/createCsvContent.py +++ b/modules/workflows/methods/methodJira/actions/createCsvContent.py @@ -9,7 +9,7 @@ import csv as csv_module from io import StringIO from datetime import datetime, UTC from typing import Dict, Any -from modules.features.aichat.datamodelFeatureAiChat import ActionResult, ActionDocument +from modules.aichat.datamodelFeatureAiChat import ActionResult, ActionDocument logger = logging.getLogger(__name__) diff --git a/modules/workflows/methods/methodJira/actions/createExcelContent.py b/modules/workflows/methods/methodJira/actions/createExcelContent.py index a4491efb..b172140b 100644 --- a/modules/workflows/methods/methodJira/actions/createExcelContent.py +++ b/modules/workflows/methods/methodJira/actions/createExcelContent.py @@ -9,7 +9,7 @@ import csv as csv_module from io import BytesIO from datetime import datetime, UTC from typing import Dict, Any -from modules.features.aichat.datamodelFeatureAiChat import ActionResult, ActionDocument +from modules.aichat.datamodelFeatureAiChat import ActionResult, ActionDocument logger = logging.getLogger(__name__) diff --git a/modules/workflows/methods/methodJira/actions/exportTicketsAsJson.py b/modules/workflows/methods/methodJira/actions/exportTicketsAsJson.py index 57179415..fd1570f3 100644 --- a/modules/workflows/methods/methodJira/actions/exportTicketsAsJson.py +++ b/modules/workflows/methods/methodJira/actions/exportTicketsAsJson.py @@ -4,7 +4,7 @@ import logging import json from typing import Dict, Any -from modules.features.aichat.datamodelFeatureAiChat import ActionResult, ActionDocument +from modules.aichat.datamodelFeatureAiChat import ActionResult, ActionDocument logger = logging.getLogger(__name__) diff --git a/modules/workflows/methods/methodJira/actions/importTicketsFromJson.py b/modules/workflows/methods/methodJira/actions/importTicketsFromJson.py index 60645a06..874867b8 100644 --- a/modules/workflows/methods/methodJira/actions/importTicketsFromJson.py +++ b/modules/workflows/methods/methodJira/actions/importTicketsFromJson.py @@ -4,7 +4,7 @@ import logging import json from typing import Dict, Any -from modules.features.aichat.datamodelFeatureAiChat import ActionResult, ActionDocument +from modules.aichat.datamodelFeatureAiChat import ActionResult, ActionDocument logger = logging.getLogger(__name__) diff --git a/modules/workflows/methods/methodJira/actions/mergeTicketData.py b/modules/workflows/methods/methodJira/actions/mergeTicketData.py index 899c49d3..8333499f 100644 --- a/modules/workflows/methods/methodJira/actions/mergeTicketData.py +++ b/modules/workflows/methods/methodJira/actions/mergeTicketData.py @@ -4,7 +4,7 @@ import logging import json from typing import Dict, Any, List -from modules.features.aichat.datamodelFeatureAiChat import ActionResult, ActionDocument +from modules.aichat.datamodelFeatureAiChat import ActionResult, ActionDocument logger = logging.getLogger(__name__) diff --git a/modules/workflows/methods/methodJira/actions/parseCsvContent.py b/modules/workflows/methods/methodJira/actions/parseCsvContent.py index 455592eb..650de4ce 100644 --- a/modules/workflows/methods/methodJira/actions/parseCsvContent.py +++ b/modules/workflows/methods/methodJira/actions/parseCsvContent.py @@ -6,7 +6,7 @@ import json import io import pandas as pd from typing import Dict, Any -from modules.features.aichat.datamodelFeatureAiChat import ActionResult, ActionDocument +from modules.aichat.datamodelFeatureAiChat import ActionResult, ActionDocument logger = logging.getLogger(__name__) diff --git a/modules/workflows/methods/methodJira/actions/parseExcelContent.py b/modules/workflows/methods/methodJira/actions/parseExcelContent.py index b7cf9214..9fb0cc3f 100644 --- a/modules/workflows/methods/methodJira/actions/parseExcelContent.py +++ b/modules/workflows/methods/methodJira/actions/parseExcelContent.py @@ -6,7 +6,7 @@ import json import pandas as pd from io import BytesIO from typing import Dict, Any -from modules.features.aichat.datamodelFeatureAiChat import ActionResult, ActionDocument +from modules.aichat.datamodelFeatureAiChat import ActionResult, ActionDocument logger = logging.getLogger(__name__) diff --git a/modules/workflows/methods/methodOutlook/actions/composeAndDraftEmailWithContext.py b/modules/workflows/methods/methodOutlook/actions/composeAndDraftEmailWithContext.py index 3d8ec9d6..69beed2d 100644 --- a/modules/workflows/methods/methodOutlook/actions/composeAndDraftEmailWithContext.py +++ b/modules/workflows/methods/methodOutlook/actions/composeAndDraftEmailWithContext.py @@ -6,7 +6,7 @@ import json import base64 import requests from typing import Dict, Any -from modules.features.aichat.datamodelFeatureAiChat import ActionResult, ActionDocument +from modules.aichat.datamodelFeatureAiChat import ActionResult, ActionDocument logger = logging.getLogger(__name__) diff --git a/modules/workflows/methods/methodOutlook/actions/readEmails.py b/modules/workflows/methods/methodOutlook/actions/readEmails.py index 1fe4992a..c64abf18 100644 --- a/modules/workflows/methods/methodOutlook/actions/readEmails.py +++ b/modules/workflows/methods/methodOutlook/actions/readEmails.py @@ -6,7 +6,7 @@ import time import json import requests from typing import Dict, Any -from modules.features.aichat.datamodelFeatureAiChat import ActionResult, ActionDocument +from modules.aichat.datamodelFeatureAiChat import ActionResult, ActionDocument logger = logging.getLogger(__name__) diff --git a/modules/workflows/methods/methodOutlook/actions/searchEmails.py b/modules/workflows/methods/methodOutlook/actions/searchEmails.py index 0d7c1b6b..4bb1861d 100644 --- a/modules/workflows/methods/methodOutlook/actions/searchEmails.py +++ b/modules/workflows/methods/methodOutlook/actions/searchEmails.py @@ -5,7 +5,7 @@ import logging import json import requests from typing import Dict, Any -from modules.features.aichat.datamodelFeatureAiChat import ActionResult, ActionDocument +from modules.aichat.datamodelFeatureAiChat import ActionResult, ActionDocument logger = logging.getLogger(__name__) diff --git a/modules/workflows/methods/methodOutlook/actions/sendDraftEmail.py b/modules/workflows/methods/methodOutlook/actions/sendDraftEmail.py index 9f08ddae..7dff3f3f 100644 --- a/modules/workflows/methods/methodOutlook/actions/sendDraftEmail.py +++ b/modules/workflows/methods/methodOutlook/actions/sendDraftEmail.py @@ -6,7 +6,7 @@ import time import json import requests from typing import Dict, Any -from modules.features.aichat.datamodelFeatureAiChat import ActionResult, ActionDocument +from modules.aichat.datamodelFeatureAiChat import ActionResult, ActionDocument logger = logging.getLogger(__name__) diff --git a/modules/workflows/methods/methodSharepoint/actions/analyzeFolderUsage.py b/modules/workflows/methods/methodSharepoint/actions/analyzeFolderUsage.py index 97d42867..e0e2b811 100644 --- a/modules/workflows/methods/methodSharepoint/actions/analyzeFolderUsage.py +++ b/modules/workflows/methods/methodSharepoint/actions/analyzeFolderUsage.py @@ -6,7 +6,7 @@ import time import json from datetime import datetime, timezone, timedelta from typing import Dict, Any -from modules.features.aichat.datamodelFeatureAiChat import ActionResult, ActionDocument +from modules.aichat.datamodelFeatureAiChat import ActionResult, ActionDocument logger = logging.getLogger(__name__) diff --git a/modules/workflows/methods/methodSharepoint/actions/copyFile.py b/modules/workflows/methods/methodSharepoint/actions/copyFile.py index 7855627d..418ba477 100644 --- a/modules/workflows/methods/methodSharepoint/actions/copyFile.py +++ b/modules/workflows/methods/methodSharepoint/actions/copyFile.py @@ -4,7 +4,7 @@ import logging import json from typing import Dict, Any -from modules.features.aichat.datamodelFeatureAiChat import ActionResult, ActionDocument +from modules.aichat.datamodelFeatureAiChat import ActionResult, ActionDocument logger = logging.getLogger(__name__) diff --git a/modules/workflows/methods/methodSharepoint/actions/downloadFileByPath.py b/modules/workflows/methods/methodSharepoint/actions/downloadFileByPath.py index 34aa41e7..9cec8d61 100644 --- a/modules/workflows/methods/methodSharepoint/actions/downloadFileByPath.py +++ b/modules/workflows/methods/methodSharepoint/actions/downloadFileByPath.py @@ -6,7 +6,7 @@ import json import base64 import os from typing import Dict, Any -from modules.features.aichat.datamodelFeatureAiChat import ActionResult, ActionDocument +from modules.aichat.datamodelFeatureAiChat import ActionResult, ActionDocument logger = logging.getLogger(__name__) diff --git a/modules/workflows/methods/methodSharepoint/actions/findDocumentPath.py b/modules/workflows/methods/methodSharepoint/actions/findDocumentPath.py index 88c07269..7942ab21 100644 --- a/modules/workflows/methods/methodSharepoint/actions/findDocumentPath.py +++ b/modules/workflows/methods/methodSharepoint/actions/findDocumentPath.py @@ -6,7 +6,7 @@ import time import json import urllib.parse from typing import Dict, Any -from modules.features.aichat.datamodelFeatureAiChat import ActionResult, ActionDocument +from modules.aichat.datamodelFeatureAiChat import ActionResult, ActionDocument logger = logging.getLogger(__name__) diff --git a/modules/workflows/methods/methodSharepoint/actions/findSiteByUrl.py b/modules/workflows/methods/methodSharepoint/actions/findSiteByUrl.py index 58d0a2e0..063fd3c5 100644 --- a/modules/workflows/methods/methodSharepoint/actions/findSiteByUrl.py +++ b/modules/workflows/methods/methodSharepoint/actions/findSiteByUrl.py @@ -4,7 +4,7 @@ import logging import json from typing import Dict, Any -from modules.features.aichat.datamodelFeatureAiChat import ActionResult, ActionDocument +from modules.aichat.datamodelFeatureAiChat import ActionResult, ActionDocument logger = logging.getLogger(__name__) diff --git a/modules/workflows/methods/methodSharepoint/actions/listDocuments.py b/modules/workflows/methods/methodSharepoint/actions/listDocuments.py index 2c6bde6b..a9b766c1 100644 --- a/modules/workflows/methods/methodSharepoint/actions/listDocuments.py +++ b/modules/workflows/methods/methodSharepoint/actions/listDocuments.py @@ -6,7 +6,7 @@ import time import json import urllib.parse from typing import Dict, Any -from modules.features.aichat.datamodelFeatureAiChat import ActionResult, ActionDocument +from modules.aichat.datamodelFeatureAiChat import ActionResult, ActionDocument logger = logging.getLogger(__name__) diff --git a/modules/workflows/methods/methodSharepoint/actions/readDocuments.py b/modules/workflows/methods/methodSharepoint/actions/readDocuments.py index 7059f1d0..13c31219 100644 --- a/modules/workflows/methods/methodSharepoint/actions/readDocuments.py +++ b/modules/workflows/methods/methodSharepoint/actions/readDocuments.py @@ -6,7 +6,7 @@ import time import json import base64 from typing import Dict, Any -from modules.features.aichat.datamodelFeatureAiChat import ActionResult, ActionDocument +from modules.aichat.datamodelFeatureAiChat import ActionResult, ActionDocument logger = logging.getLogger(__name__) diff --git a/modules/workflows/methods/methodSharepoint/actions/uploadDocument.py b/modules/workflows/methods/methodSharepoint/actions/uploadDocument.py index bdabdcbb..469dde0d 100644 --- a/modules/workflows/methods/methodSharepoint/actions/uploadDocument.py +++ b/modules/workflows/methods/methodSharepoint/actions/uploadDocument.py @@ -6,7 +6,7 @@ import time import json import urllib.parse from typing import Dict, Any -from modules.features.aichat.datamodelFeatureAiChat import ActionResult, ActionDocument +from modules.aichat.datamodelFeatureAiChat import ActionResult, ActionDocument logger = logging.getLogger(__name__) diff --git a/modules/workflows/methods/methodSharepoint/actions/uploadFile.py b/modules/workflows/methods/methodSharepoint/actions/uploadFile.py index 362c7ba7..bd0618d7 100644 --- a/modules/workflows/methods/methodSharepoint/actions/uploadFile.py +++ b/modules/workflows/methods/methodSharepoint/actions/uploadFile.py @@ -5,7 +5,7 @@ import logging import json import base64 from typing import Dict, Any -from modules.features.aichat.datamodelFeatureAiChat import ActionResult, ActionDocument +from modules.aichat.datamodelFeatureAiChat import ActionResult, ActionDocument logger = logging.getLogger(__name__) diff --git a/modules/workflows/processing/core/actionExecutor.py b/modules/workflows/processing/core/actionExecutor.py index b621dbff..2d657596 100644 --- a/modules/workflows/processing/core/actionExecutor.py +++ b/modules/workflows/processing/core/actionExecutor.py @@ -5,8 +5,8 @@ import logging from typing import Dict, Any, List -from modules.features.aichat.datamodelFeatureAiChat import ActionResult, ActionItem, TaskStep -from modules.features.aichat.datamodelFeatureAiChat import ChatWorkflow +from modules.aichat.datamodelFeatureAiChat import ActionResult, ActionItem, TaskStep +from modules.aichat.datamodelFeatureAiChat import ChatWorkflow from modules.workflows.processing.shared.methodDiscovery import methods from modules.workflows.processing.shared.stateTools import checkWorkflowStopped diff --git a/modules/workflows/processing/core/messageCreator.py b/modules/workflows/processing/core/messageCreator.py index 84e0c24f..af9c3f08 100644 --- a/modules/workflows/processing/core/messageCreator.py +++ b/modules/workflows/processing/core/messageCreator.py @@ -5,8 +5,8 @@ import logging from typing import Dict, Any, Optional, List -from modules.features.aichat.datamodelFeatureAiChat import TaskPlan, TaskStep, ActionResult, ReviewResult -from modules.features.aichat.datamodelFeatureAiChat import ChatWorkflow +from modules.aichat.datamodelFeatureAiChat import TaskPlan, TaskStep, ActionResult, ReviewResult +from modules.aichat.datamodelFeatureAiChat import ChatWorkflow from modules.workflows.processing.shared.stateTools import checkWorkflowStopped logger = logging.getLogger(__name__) diff --git a/modules/workflows/processing/core/taskPlanner.py b/modules/workflows/processing/core/taskPlanner.py index af2726b7..62f9a72a 100644 --- a/modules/workflows/processing/core/taskPlanner.py +++ b/modules/workflows/processing/core/taskPlanner.py @@ -6,7 +6,7 @@ import json import logging from typing import Dict, Any -from modules.features.aichat.datamodelFeatureAiChat import TaskStep, TaskContext, TaskPlan +from modules.aichat.datamodelFeatureAiChat import TaskStep, TaskContext, TaskPlan from modules.datamodels.datamodelAi import AiCallOptions, OperationTypeEnum, ProcessingModeEnum, PriorityEnum from modules.workflows.processing.shared.promptGenerationTaskplan import ( generateTaskPlanningPrompt @@ -51,7 +51,7 @@ class TaskPlanner: # Analyze user intent to obtain cleaned user objective for planning # SKIP intent analysis for AUTOMATION mode - it uses predefined JSON plans - from modules.features.aichat.datamodelFeatureAiChat import WorkflowModeEnum + from modules.aichat.datamodelFeatureAiChat import WorkflowModeEnum workflowMode = getattr(workflow, 'workflowMode', None) skipIntentionAnalysis = (workflowMode == WorkflowModeEnum.WORKFLOW_AUTOMATION) diff --git a/modules/workflows/processing/modes/modeAutomation.py b/modules/workflows/processing/modes/modeAutomation.py index 085ff694..084024aa 100644 --- a/modules/workflows/processing/modes/modeAutomation.py +++ b/modules/workflows/processing/modes/modeAutomation.py @@ -7,11 +7,11 @@ import json import logging import uuid from typing import List, Dict, Any, Optional -from modules.features.aichat.datamodelFeatureAiChat import ( +from modules.aichat.datamodelFeatureAiChat import ( TaskStep, TaskContext, TaskResult, ActionItem, TaskStatus, TaskPlan, ActionResult ) -from modules.features.aichat.datamodelFeatureAiChat import ChatWorkflow +from modules.aichat.datamodelFeatureAiChat import ChatWorkflow from modules.workflows.processing.modes.modeBase import BaseMode from modules.workflows.processing.shared.stateTools import checkWorkflowStopped from modules.shared.timeUtils import parseTimestamp diff --git a/modules/workflows/processing/modes/modeBase.py b/modules/workflows/processing/modes/modeBase.py index de6016ec..f4533e7d 100644 --- a/modules/workflows/processing/modes/modeBase.py +++ b/modules/workflows/processing/modes/modeBase.py @@ -6,8 +6,8 @@ from abc import ABC, abstractmethod import logging from typing import List, Dict, Any -from modules.features.aichat.datamodelFeatureAiChat import TaskStep, TaskContext, TaskResult, ActionItem -from modules.features.aichat.datamodelFeatureAiChat import ChatWorkflow +from modules.aichat.datamodelFeatureAiChat import TaskStep, TaskContext, TaskResult, ActionItem +from modules.aichat.datamodelFeatureAiChat import ChatWorkflow from modules.workflows.processing.core.taskPlanner import TaskPlanner from modules.workflows.processing.core.actionExecutor import ActionExecutor from modules.workflows.processing.core.messageCreator import MessageCreator diff --git a/modules/workflows/processing/modes/modeDynamic.py b/modules/workflows/processing/modes/modeDynamic.py index 606a6ce3..834353b7 100644 --- a/modules/workflows/processing/modes/modeDynamic.py +++ b/modules/workflows/processing/modes/modeDynamic.py @@ -9,11 +9,11 @@ import re import time from datetime import datetime, timezone from typing import List, Dict, Any -from modules.features.aichat.datamodelFeatureAiChat import ( +from modules.aichat.datamodelFeatureAiChat import ( TaskStep, TaskContext, TaskResult, ActionItem, TaskStatus, ActionResult, Observation, ObservationPreview, ReviewResult ) -from modules.features.aichat.datamodelFeatureAiChat import ChatWorkflow +from modules.aichat.datamodelFeatureAiChat import ChatWorkflow from modules.workflows.processing.modes.modeBase import BaseMode from modules.workflows.processing.shared.stateTools import checkWorkflowStopped from modules.shared.timeUtils import parseTimestamp @@ -893,7 +893,7 @@ class DynamicMode(BaseMode): async def _refineDecide(self, context: TaskContext, observation: Observation) -> ReviewResult: """Refine: decide continue or stop, with reason""" # Create proper ReviewContext for extractReviewContent - from modules.features.aichat.datamodelFeatureAiChat import ReviewContext + from modules.aichat.datamodelFeatureAiChat import ReviewContext # Convert observation to dict for extractReviewContent (temporary compatibility) observationDict = { 'success': observation.success, @@ -1042,7 +1042,7 @@ class DynamicMode(BaseMode): # Parse response using structured parsing with ReviewResult model from modules.shared.jsonUtils import parseJsonWithModel - from modules.features.aichat.datamodelFeatureAiChat import ReviewResult + from modules.aichat.datamodelFeatureAiChat import ReviewResult if not resp: return ReviewResult( diff --git a/modules/workflows/processing/shared/executionState.py b/modules/workflows/processing/shared/executionState.py index 2094d07a..405aabe1 100644 --- a/modules/workflows/processing/shared/executionState.py +++ b/modules/workflows/processing/shared/executionState.py @@ -5,7 +5,7 @@ import logging from typing import List, Optional -from modules.features.aichat.datamodelFeatureAiChat import TaskStep, ActionResult, Observation +from modules.aichat.datamodelFeatureAiChat import TaskStep, ActionResult, Observation logger = logging.getLogger(__name__) diff --git a/modules/workflows/processing/shared/placeholderFactory.py b/modules/workflows/processing/shared/placeholderFactory.py index 260ef8b8..b70d632c 100644 --- a/modules/workflows/processing/shared/placeholderFactory.py +++ b/modules/workflows/processing/shared/placeholderFactory.py @@ -348,7 +348,7 @@ def extractReviewContent(context: Any) -> str: elif hasattr(context, 'observation') and context.observation: # For observation data, show full content but handle documents specially # Handle both Pydantic Observation model and dict format - from modules.features.aichat.datamodelFeatureAiChat import Observation + from modules.aichat.datamodelFeatureAiChat import Observation if isinstance(context.observation, Observation): # Convert Pydantic model to dict @@ -371,7 +371,7 @@ def extractReviewContent(context: Any) -> str: # For observation data in stepResult, show full content but handle documents specially observation = context.stepResult['observation'] # Handle both Pydantic Observation model and dict format - from modules.features.aichat.datamodelFeatureAiChat import Observation + from modules.aichat.datamodelFeatureAiChat import Observation if isinstance(observation, Observation): # Convert Pydantic model to dict @@ -452,7 +452,7 @@ def extractLatestRefinementFeedback(context: Any) -> str: # First check for ERROR level logs in workflow if hasattr(context, 'workflow') and context.workflow: try: - import modules.features.aichat.interfaceFeatureAiChat as interfaceDbChat + import modules.aichat.interfaceFeatureAiChat as interfaceDbChat from modules.interfaces.interfaceDbApp import getRootInterface rootInterface = getRootInterface() interfaceDbChat = interfaceDbChat.getInterface(rootInterface.currentUser) diff --git a/modules/workflows/processing/shared/promptGenerationActionsDynamic.py b/modules/workflows/processing/shared/promptGenerationActionsDynamic.py index 92432038..e8db412d 100644 --- a/modules/workflows/processing/shared/promptGenerationActionsDynamic.py +++ b/modules/workflows/processing/shared/promptGenerationActionsDynamic.py @@ -7,7 +7,7 @@ Handles prompt templates for dynamic mode action handling. import json from typing import Any, List -from modules.features.aichat.datamodelFeatureAiChat import PromptBundle, PromptPlaceholder +from modules.aichat.datamodelFeatureAiChat import PromptBundle, PromptPlaceholder from modules.workflows.processing.shared.placeholderFactory import ( extractUserPrompt, extractUserLanguage, diff --git a/modules/workflows/processing/shared/promptGenerationTaskplan.py b/modules/workflows/processing/shared/promptGenerationTaskplan.py index d840cc1e..08007833 100644 --- a/modules/workflows/processing/shared/promptGenerationTaskplan.py +++ b/modules/workflows/processing/shared/promptGenerationTaskplan.py @@ -7,7 +7,7 @@ Handles prompt templates and extraction functions for task planning phase. import logging from typing import Dict, Any, List -from modules.features.aichat.datamodelFeatureAiChat import PromptBundle, PromptPlaceholder +from modules.aichat.datamodelFeatureAiChat import PromptBundle, PromptPlaceholder from modules.workflows.processing.shared.placeholderFactory import ( extractUserPrompt, extractAvailableDocumentsSummary, diff --git a/modules/workflows/processing/workflowProcessor.py b/modules/workflows/processing/workflowProcessor.py index b613d5fd..c8f6b09c 100644 --- a/modules/workflows/processing/workflowProcessor.py +++ b/modules/workflows/processing/workflowProcessor.py @@ -7,8 +7,8 @@ import logging import json from typing import Dict, Any, Optional, List, TYPE_CHECKING from modules.datamodels import datamodelChat -from modules.features.aichat.datamodelFeatureAiChat import TaskStep, TaskContext, TaskPlan, ActionResult, ActionDocument, ChatDocument, ChatMessage -from modules.features.aichat.datamodelFeatureAiChat import ChatWorkflow, WorkflowModeEnum +from modules.aichat.datamodelFeatureAiChat import TaskStep, TaskContext, TaskPlan, ActionResult, ActionDocument, ChatDocument, ChatMessage +from modules.aichat.datamodelFeatureAiChat import ChatWorkflow, WorkflowModeEnum from modules.workflows.processing.modes.modeBase import BaseMode from modules.workflows.processing.modes.modeDynamic import DynamicMode from modules.workflows.processing.modes.modeAutomation import AutomationMode @@ -494,7 +494,7 @@ class WorkflowProcessor: # Create ActionResult with response # For fast path, we create a simple text document with the response - from modules.features.aichat.datamodelFeatureAiChat import ActionDocument + from modules.aichat.datamodelFeatureAiChat import ActionDocument responseDoc = ActionDocument( documentName="fast_path_response.txt", @@ -626,7 +626,7 @@ class WorkflowProcessor: ChatMessage with persisted documents """ try: - from modules.features.aichat.datamodelFeatureAiChat import ChatMessage, ChatDocument, ActionDocument + from modules.aichat.datamodelFeatureAiChat import ChatMessage, ChatDocument, ActionDocument from modules.workflows.processing.shared.stateTools import checkWorkflowStopped # Check workflow status diff --git a/modules/workflows/workflowManager.py b/modules/workflows/workflowManager.py index a7d28d39..417bb384 100644 --- a/modules/workflows/workflowManager.py +++ b/modules/workflows/workflowManager.py @@ -6,14 +6,14 @@ import uuid import asyncio import json -from modules.features.aichat.datamodelFeatureAiChat import ( +from modules.aichat.datamodelFeatureAiChat import ( UserInputRequest, ChatMessage, ChatWorkflow, ChatDocument, WorkflowModeEnum ) -from modules.features.aichat.datamodelFeatureAiChat import TaskContext +from modules.aichat.datamodelFeatureAiChat import TaskContext from modules.workflows.processing.workflowProcessor import WorkflowProcessor from modules.workflows.processing.shared.stateTools import WorkflowStoppedException, checkWorkflowStopped @@ -606,7 +606,7 @@ The following is the user's original input message. Analyze intent, normalize th # Collect file info fileInfo = self.services.chat.getFileInfo(fileItem.id) - from modules.features.aichat.datamodelFeatureAiChat import ChatDocument + from modules.aichat.datamodelFeatureAiChat import ChatDocument doc = ChatDocument( fileId=fileItem.id, fileName=fileInfo.get("fileName", fileName) if fileInfo else fileName, @@ -792,7 +792,7 @@ The following is the user's original input message. Analyze intent, normalize th # Collect file info fileInfo = self.services.chat.getFileInfo(fileItem.id) - from modules.features.aichat.datamodelFeatureAiChat import ChatDocument + from modules.aichat.datamodelFeatureAiChat import ChatDocument doc = ChatDocument( fileId=fileItem.id, fileName=fileInfo.get("fileName", fileName) if fileInfo else fileName, @@ -921,7 +921,7 @@ The following is the user's original input message. Analyze intent, normalize th # Persist task result for cross-task/round document references # Convert ChatTaskResult to WorkflowTaskResult for persistence from modules.datamodels.datamodelWorkflow import TaskResult as WorkflowTaskResult - from modules.features.aichat.datamodelFeatureAiChat import ActionResult + from modules.aichat.datamodelFeatureAiChat import ActionResult # Get final ActionResult from task execution (last action result) finalActionResult = None diff --git a/scripts/import_analysis.csv b/scripts/import_analysis.csv index a81312fe..00533906 100644 --- a/scripts/import_analysis.csv +++ b/scripts/import_analysis.csv @@ -27,7 +27,6 @@ gateway.app,modules.routes.routeDataWorkflows,header,Yes gateway.app,modules.routes.routeGdpr,header,Yes gateway.app,modules.routes.routeInvitations,header,Yes gateway.app,modules.routes.routeMessaging,header,Yes -gateway.app,modules.routes.routeOptions,header,Yes gateway.app,modules.routes.routeSecurityAdmin,header,Yes gateway.app,modules.routes.routeSecurityGoogle,header,Yes gateway.app,modules.routes.routeSecurityLocal,header,Yes @@ -42,6 +41,680 @@ gateway.app,os,header,Yes gateway.app,sys,header,Yes gateway.app,unicodedata,header,Yes gateway.app,urllib.parse,header,Yes +gateway.modules.aichat.aicore.aicoreBase,abc,header,Yes +gateway.modules.aichat.aicore.aicoreBase,modules.datamodels.datamodelAi,header,Yes +gateway.modules.aichat.aicore.aicoreBase,time,function getCachedModels,Yes +gateway.modules.aichat.aicore.aicoreBase,typing,header,Yes +gateway.modules.aichat.aicore.aicoreModelRegistry,(relative) .aicoreBase,header,Yes +gateway.modules.aichat.aicore.aicoreModelRegistry,importlib,header,Yes +gateway.modules.aichat.aicore.aicoreModelRegistry,logging,header,Yes +gateway.modules.aichat.aicore.aicoreModelRegistry,modules.connectors.connectorDbPostgre,header,Yes +gateway.modules.aichat.aicore.aicoreModelRegistry,modules.datamodels.datamodelAi,header,Yes +gateway.modules.aichat.aicore.aicoreModelRegistry,modules.datamodels.datamodelUam,header,Yes +gateway.modules.aichat.aicore.aicoreModelRegistry,modules.security.rbac,header,Yes +gateway.modules.aichat.aicore.aicoreModelRegistry,modules.security.rbacHelpers,header,Yes +gateway.modules.aichat.aicore.aicoreModelRegistry,os,header,Yes +gateway.modules.aichat.aicore.aicoreModelRegistry,time,function refreshModels,Yes +gateway.modules.aichat.aicore.aicoreModelRegistry,typing,header,Yes +gateway.modules.aichat.aicore.aicoreModelSelector,logging,header,Yes +gateway.modules.aichat.aicore.aicoreModelSelector,modules.datamodels.datamodelAi,header,Yes +gateway.modules.aichat.aicore.aicoreModelSelector,typing,header,Yes +gateway.modules.aichat.aicore.aicorePluginAnthropic,(relative) .aicoreBase,header,Yes +gateway.modules.aichat.aicore.aicorePluginAnthropic,base64,function callAiImage,Yes +gateway.modules.aichat.aicore.aicorePluginAnthropic,fastapi,header,Yes +gateway.modules.aichat.aicore.aicorePluginAnthropic,httpx,header,Yes +gateway.modules.aichat.aicore.aicorePluginAnthropic,logging,header,Yes +gateway.modules.aichat.aicore.aicorePluginAnthropic,modules.datamodels.datamodelAi,header,Yes +gateway.modules.aichat.aicore.aicorePluginAnthropic,modules.shared.configuration,header,Yes +gateway.modules.aichat.aicore.aicorePluginAnthropic,os,header,Yes +gateway.modules.aichat.aicore.aicorePluginAnthropic,time,function callAiImage,Yes +gateway.modules.aichat.aicore.aicorePluginAnthropic,typing,header,Yes +gateway.modules.aichat.aicore.aicorePluginInternal,(relative) .aicoreBase,header,Yes +gateway.modules.aichat.aicore.aicorePluginInternal,logging,header,Yes +gateway.modules.aichat.aicore.aicorePluginInternal,modules.datamodels.datamodelAi,header,Yes +gateway.modules.aichat.aicore.aicorePluginInternal,typing,header,Yes +gateway.modules.aichat.aicore.aicorePluginOpenai,(relative) .aicoreBase,header,Yes +gateway.modules.aichat.aicore.aicorePluginOpenai,fastapi,header,Yes +gateway.modules.aichat.aicore.aicorePluginOpenai,httpx,header,Yes +gateway.modules.aichat.aicore.aicorePluginOpenai,json,function generateImage,Yes +gateway.modules.aichat.aicore.aicorePluginOpenai,logging,header,Yes +gateway.modules.aichat.aicore.aicorePluginOpenai,modules.datamodels.datamodelAi,header,Yes +gateway.modules.aichat.aicore.aicorePluginOpenai,modules.datamodels.datamodelAi,function generateImage,Yes +gateway.modules.aichat.aicore.aicorePluginOpenai,modules.shared.configuration,header,Yes +gateway.modules.aichat.aicore.aicorePluginOpenai,typing,header,Yes +gateway.modules.aichat.aicore.aicorePluginPerplexity,(relative) .aicoreBase,header,Yes +gateway.modules.aichat.aicore.aicorePluginPerplexity,fastapi,header,Yes +gateway.modules.aichat.aicore.aicorePluginPerplexity,httpx,header,Yes +gateway.modules.aichat.aicore.aicorePluginPerplexity,json,function webSearch,Yes +gateway.modules.aichat.aicore.aicorePluginPerplexity,json,function webCrawl,Yes +gateway.modules.aichat.aicore.aicorePluginPerplexity,json,function webCrawl,Yes +gateway.modules.aichat.aicore.aicorePluginPerplexity,logging,header,Yes +gateway.modules.aichat.aicore.aicorePluginPerplexity,modules.datamodels.datamodelAi,header,Yes +gateway.modules.aichat.aicore.aicorePluginPerplexity,modules.datamodels.datamodelAi,function _testConnection,Yes +gateway.modules.aichat.aicore.aicorePluginPerplexity,modules.datamodels.datamodelTools,header,Yes +gateway.modules.aichat.aicore.aicorePluginPerplexity,modules.shared.configuration,header,Yes +gateway.modules.aichat.aicore.aicorePluginPerplexity,typing,header,Yes +gateway.modules.aichat.aicore.aicorePluginTavily,(relative) .aicoreBase,header,Yes +gateway.modules.aichat.aicore.aicorePluginTavily,asyncio,header,Yes +gateway.modules.aichat.aicore.aicorePluginTavily,dataclasses,header,Yes +gateway.modules.aichat.aicore.aicorePluginTavily,json,function webSearch,Yes +gateway.modules.aichat.aicore.aicorePluginTavily,json,function webSearch,Yes +gateway.modules.aichat.aicore.aicorePluginTavily,json,function webCrawl,Yes +gateway.modules.aichat.aicore.aicorePluginTavily,json,function webCrawl,Yes +gateway.modules.aichat.aicore.aicorePluginTavily,json,function webSearch,Yes +gateway.modules.aichat.aicore.aicorePluginTavily,json,function webCrawl,Yes +gateway.modules.aichat.aicore.aicorePluginTavily,logging,header,Yes +gateway.modules.aichat.aicore.aicorePluginTavily,modules.datamodels.datamodelAi,header,Yes +gateway.modules.aichat.aicore.aicorePluginTavily,modules.datamodels.datamodelTools,header,Yes +gateway.modules.aichat.aicore.aicorePluginTavily,modules.shared.configuration,header,Yes +gateway.modules.aichat.aicore.aicorePluginTavily,re,header,Yes +gateway.modules.aichat.aicore.aicorePluginTavily,re,function _cleanUrl,Yes +gateway.modules.aichat.aicore.aicorePluginTavily,tavily,header,Yes +gateway.modules.aichat.aicore.aicorePluginTavily,typing,header,Yes +gateway.modules.aichat.aicore.aicorePluginTavily,urllib.parse,function _normalizeUrl,Yes +gateway.modules.aichat.datamodelFeatureAiChat,enum,header,Yes +gateway.modules.aichat.datamodelFeatureAiChat,modules.datamodels.datamodelWorkflow,function updateFromSelection,Yes +gateway.modules.aichat.datamodelFeatureAiChat,modules.shared.attributeUtils,header,Yes +gateway.modules.aichat.datamodelFeatureAiChat,modules.shared.timeUtils,header,Yes +gateway.modules.aichat.datamodelFeatureAiChat,pydantic,header,Yes +gateway.modules.aichat.datamodelFeatureAiChat,typing,header,Yes +gateway.modules.aichat.datamodelFeatureAiChat,uuid,header,Yes +gateway.modules.aichat.interfaceFeatureAiChat,(relative) .datamodelFeatureAiChat,header,Yes +gateway.modules.aichat.interfaceFeatureAiChat,asyncio,header,Yes +gateway.modules.aichat.interfaceFeatureAiChat,datetime,function storeDebugMessageAndDocuments,Yes +gateway.modules.aichat.interfaceFeatureAiChat,json,header,Yes +gateway.modules.aichat.interfaceFeatureAiChat,logging,header,Yes +gateway.modules.aichat.interfaceFeatureAiChat,math,header,Yes +gateway.modules.aichat.interfaceFeatureAiChat,modules.connectors.connectorDbPostgre,header,Yes +gateway.modules.aichat.interfaceFeatureAiChat,modules.datamodels.datamodelPagination,header,Yes +gateway.modules.aichat.interfaceFeatureAiChat,modules.datamodels.datamodelRbac,header,Yes +gateway.modules.aichat.interfaceFeatureAiChat,modules.datamodels.datamodelUam,header,Yes +gateway.modules.aichat.interfaceFeatureAiChat,modules.datamodels.datamodelUam,header,Yes +gateway.modules.aichat.interfaceFeatureAiChat,modules.interfaces.interfaceDbApp,function _enrichAutomationsWithUserAndMandate,Yes +gateway.modules.aichat.interfaceFeatureAiChat,modules.interfaces.interfaceDbManagement,function storeDebugMessageAndDocuments,Yes +gateway.modules.aichat.interfaceFeatureAiChat,modules.interfaces.interfaceRbac,header,Yes +gateway.modules.aichat.interfaceFeatureAiChat,modules.security.rbac,header,Yes +gateway.modules.aichat.interfaceFeatureAiChat,modules.security.rootAccess,function setUserContext,Yes +gateway.modules.aichat.interfaceFeatureAiChat,modules.shared.callbackRegistry,function _notifyAutomationChanged,Yes +gateway.modules.aichat.interfaceFeatureAiChat,modules.shared.configuration,header,Yes +gateway.modules.aichat.interfaceFeatureAiChat,modules.shared.debugLogger,function storeDebugMessageAndDocuments,Yes +gateway.modules.aichat.interfaceFeatureAiChat,modules.shared.timeUtils,header,Yes +gateway.modules.aichat.interfaceFeatureAiChat,os,function storeDebugMessageAndDocuments,Yes +gateway.modules.aichat.interfaceFeatureAiChat,typing,header,Yes +gateway.modules.aichat.interfaceFeatureAiChat,uuid,header,Yes +gateway.modules.aichat.mainAiChat,(relative) .aicore.aicoreModelRegistry,function onStart,Yes +gateway.modules.aichat.mainAiChat,logging,header,Yes +gateway.modules.aichat.mainAiChat,typing,header,Yes +gateway.modules.aichat.routeFeatureAiChat,(relative) .,header,Yes +gateway.modules.aichat.routeFeatureAiChat,(relative) .datamodelFeatureAiChat,header,Yes +gateway.modules.aichat.routeFeatureAiChat,fastapi,header,Yes +gateway.modules.aichat.routeFeatureAiChat,logging,header,Yes +gateway.modules.aichat.routeFeatureAiChat,modules.auth,header,Yes +gateway.modules.aichat.routeFeatureAiChat,modules.workflows.automation,header,Yes +gateway.modules.aichat.routeFeatureAiChat,typing,header,Yes +gateway.modules.aichat.serviceAi.mainServiceAi,(relative) .subAiCallLooping,function _initializeSubmodules,Yes +gateway.modules.aichat.serviceAi.mainServiceAi,(relative) .subContentExtraction,function _initializeSubmodules,Yes +gateway.modules.aichat.serviceAi.mainServiceAi,(relative) .subDocumentIntents,function _initializeSubmodules,Yes +gateway.modules.aichat.serviceAi.mainServiceAi,(relative) .subJsonResponseHandling,header,Yes +gateway.modules.aichat.serviceAi.mainServiceAi,(relative) .subResponseParsing,function _initializeSubmodules,Yes +gateway.modules.aichat.serviceAi.mainServiceAi,(relative) .subStructureFilling,function _initializeSubmodules,Yes +gateway.modules.aichat.serviceAi.mainServiceAi,(relative) .subStructureGeneration,function _initializeSubmodules,Yes +gateway.modules.aichat.serviceAi.mainServiceAi,base64,header,Yes +gateway.modules.aichat.serviceAi.mainServiceAi,json,header,Yes +gateway.modules.aichat.serviceAi.mainServiceAi,logging,header,Yes +gateway.modules.aichat.serviceAi.mainServiceAi,modules.aichat.datamodelFeatureAiChat,header,Yes +gateway.modules.aichat.serviceAi.mainServiceAi,modules.aichat.serviceExtraction.mainServiceExtraction,header,Yes +gateway.modules.aichat.serviceAi.mainServiceAi,modules.aichat.serviceGeneration.mainServiceGeneration,function renderResult,Yes +gateway.modules.aichat.serviceAi.mainServiceAi,modules.aichat.serviceGeneration.paths.codePath,function _handleCodeGeneration,Yes +gateway.modules.aichat.serviceAi.mainServiceAi,modules.aichat.serviceGeneration.paths.documentPath,function _handleDocumentGeneration,Yes +gateway.modules.aichat.serviceAi.mainServiceAi,modules.aichat.serviceGeneration.paths.imagePath,function _handleImageGeneration,Yes +gateway.modules.aichat.serviceAi.mainServiceAi,modules.datamodels.datamodelAi,header,Yes +gateway.modules.aichat.serviceAi.mainServiceAi,modules.datamodels.datamodelAi,header,Yes +gateway.modules.aichat.serviceAi.mainServiceAi,modules.datamodels.datamodelDocument,header,Yes +gateway.modules.aichat.serviceAi.mainServiceAi,modules.datamodels.datamodelExtraction,header,Yes +gateway.modules.aichat.serviceAi.mainServiceAi,modules.datamodels.datamodelWorkflow,header,Yes +gateway.modules.aichat.serviceAi.mainServiceAi,modules.interfaces.interfaceAiObjects,header,Yes +gateway.modules.aichat.serviceAi.mainServiceAi,modules.shared.jsonUtils,header,Yes +gateway.modules.aichat.serviceAi.mainServiceAi,re,header,Yes +gateway.modules.aichat.serviceAi.mainServiceAi,time,header,Yes +gateway.modules.aichat.serviceAi.mainServiceAi,time,function _handleDataExtraction,Yes +gateway.modules.aichat.serviceAi.mainServiceAi,typing,header,Yes +gateway.modules.aichat.serviceAi.subAiCallLooping,(relative) .subJsonResponseHandling,header,Yes +gateway.modules.aichat.serviceAi.subAiCallLooping,(relative) .subLoopingUseCases,header,Yes +gateway.modules.aichat.serviceAi.subAiCallLooping,json,header,Yes +gateway.modules.aichat.serviceAi.subAiCallLooping,logging,header,Yes +gateway.modules.aichat.serviceAi.subAiCallLooping,modules.datamodels.datamodelAi,header,Yes +gateway.modules.aichat.serviceAi.subAiCallLooping,modules.datamodels.datamodelExtraction,header,Yes +gateway.modules.aichat.serviceAi.subAiCallLooping,modules.shared.jsonContinuation,header,Yes +gateway.modules.aichat.serviceAi.subAiCallLooping,modules.shared.jsonUtils,header,Yes +gateway.modules.aichat.serviceAi.subAiCallLooping,modules.shared.jsonUtils,header,Yes +gateway.modules.aichat.serviceAi.subAiCallLooping,modules.shared.jsonUtils,header,Yes +gateway.modules.aichat.serviceAi.subAiCallLooping,modules.shared.jsonUtils,header,Yes +gateway.modules.aichat.serviceAi.subAiCallLooping,modules.workflows.processing.shared.stateTools,header,Yes +gateway.modules.aichat.serviceAi.subAiCallLooping,typing,header,Yes +gateway.modules.aichat.serviceAi.subContentExtraction,base64,header,Yes +gateway.modules.aichat.serviceAi.subContentExtraction,json,header,Yes +gateway.modules.aichat.serviceAi.subContentExtraction,logging,header,Yes +gateway.modules.aichat.serviceAi.subContentExtraction,modules.aichat.datamodelFeatureAiChat,header,Yes +gateway.modules.aichat.serviceAi.subContentExtraction,modules.datamodels.datamodelAi,function extractTextFromImage,Yes +gateway.modules.aichat.serviceAi.subContentExtraction,modules.datamodels.datamodelAi,function processTextContentWithAi,Yes +gateway.modules.aichat.serviceAi.subContentExtraction,modules.datamodels.datamodelExtraction,header,Yes +gateway.modules.aichat.serviceAi.subContentExtraction,modules.datamodels.datamodelExtraction,function extractAndPrepareContent,Yes +gateway.modules.aichat.serviceAi.subContentExtraction,modules.workflows.processing.shared.stateTools,header,Yes +gateway.modules.aichat.serviceAi.subContentExtraction,traceback,function extractTextFromImage,Yes +gateway.modules.aichat.serviceAi.subContentExtraction,traceback,function processTextContentWithAi,Yes +gateway.modules.aichat.serviceAi.subContentExtraction,typing,header,Yes +gateway.modules.aichat.serviceAi.subDocumentIntents,json,header,Yes +gateway.modules.aichat.serviceAi.subDocumentIntents,logging,header,Yes +gateway.modules.aichat.serviceAi.subDocumentIntents,modules.aichat.datamodelFeatureAiChat,header,Yes +gateway.modules.aichat.serviceAi.subDocumentIntents,modules.datamodels.datamodelExtraction,header,Yes +gateway.modules.aichat.serviceAi.subDocumentIntents,modules.datamodels.datamodelExtraction,function resolvePreExtractedDocument,Yes +gateway.modules.aichat.serviceAi.subDocumentIntents,modules.workflows.processing.shared.stateTools,header,Yes +gateway.modules.aichat.serviceAi.subDocumentIntents,traceback,function resolvePreExtractedDocument,Yes +gateway.modules.aichat.serviceAi.subDocumentIntents,typing,header,Yes +gateway.modules.aichat.serviceAi.subJsonMerger,datetime,header,Yes +gateway.modules.aichat.serviceAi.subJsonMerger,json,header,Yes +gateway.modules.aichat.serviceAi.subJsonMerger,logging,header,Yes +gateway.modules.aichat.serviceAi.subJsonMerger,modules.shared.jsonUtils,header,Yes +gateway.modules.aichat.serviceAi.subJsonMerger,os,header,Yes +gateway.modules.aichat.serviceAi.subJsonMerger,re,header,Yes +gateway.modules.aichat.serviceAi.subJsonMerger,typing,header,Yes +gateway.modules.aichat.serviceAi.subJsonResponseHandling,(relative) .subJsonMerger,function mergeJsonStringsWithOverlap,Yes +gateway.modules.aichat.serviceAi.subJsonResponseHandling,json,header,Yes +gateway.modules.aichat.serviceAi.subJsonResponseHandling,logging,header,Yes +gateway.modules.aichat.serviceAi.subJsonResponseHandling,modules.datamodels.datamodelAi,header,Yes +gateway.modules.aichat.serviceAi.subJsonResponseHandling,modules.shared.debugLogger,function mergeFragmentIntoSection,Yes +gateway.modules.aichat.serviceAi.subJsonResponseHandling,modules.shared.jsonUtils,header,Yes +gateway.modules.aichat.serviceAi.subJsonResponseHandling,modules.shared.jsonUtils,function mergeJsonStringsWithOverlap,Yes +gateway.modules.aichat.serviceAi.subJsonResponseHandling,modules.shared.jsonUtils,function _normalizeToElementsStructure,Yes +gateway.modules.aichat.serviceAi.subJsonResponseHandling,modules.shared.jsonUtils,function _extractRowsFromFragment,Yes +gateway.modules.aichat.serviceAi.subJsonResponseHandling,modules.shared.jsonUtils,function _extractOverlapAndContinuation,Yes +gateway.modules.aichat.serviceAi.subJsonResponseHandling,modules.shared.jsonUtils,function _mergeWithExplicitOverlap,Yes +gateway.modules.aichat.serviceAi.subJsonResponseHandling,modules.shared.jsonUtils,function _extractValidJsonPrefix,Yes +gateway.modules.aichat.serviceAi.subJsonResponseHandling,modules.shared.jsonUtils,function _smartConcatenate,Yes +gateway.modules.aichat.serviceAi.subJsonResponseHandling,modules.shared.jsonUtils,function _mergeJsonStringsWithOverlapFallback,Yes +gateway.modules.aichat.serviceAi.subJsonResponseHandling,modules.shared.jsonUtils,function _detectAndNormalizeFragment,Yes +gateway.modules.aichat.serviceAi.subJsonResponseHandling,modules.shared.jsonUtils,function _detectAndNormalizeFragment,Yes +gateway.modules.aichat.serviceAi.subJsonResponseHandling,modules.shared.jsonUtils,function _extractValidJsonPrefix,Yes +gateway.modules.aichat.serviceAi.subJsonResponseHandling,modules.shared.jsonUtils,function _mergeJsonStructuresGeneric,Yes +gateway.modules.aichat.serviceAi.subJsonResponseHandling,modules.shared.jsonUtils,function extractKpiValuesFromIncompleteJson,Yes +gateway.modules.aichat.serviceAi.subJsonResponseHandling,re,header,Yes +gateway.modules.aichat.serviceAi.subJsonResponseHandling,re,function _extractRowsFromFragment,Yes +gateway.modules.aichat.serviceAi.subJsonResponseHandling,re,function _detectAndNormalizeFragment,Yes +gateway.modules.aichat.serviceAi.subJsonResponseHandling,traceback,function _mergeJsonStructuresGeneric,Yes +gateway.modules.aichat.serviceAi.subJsonResponseHandling,typing,header,Yes +gateway.modules.aichat.serviceAi.subLoopingUseCases,dataclasses,header,Yes +gateway.modules.aichat.serviceAi.subLoopingUseCases,json,function _handleChapterStructureFinalResult,Yes +gateway.modules.aichat.serviceAi.subLoopingUseCases,json,function _handleCodeStructureFinalResult,Yes +gateway.modules.aichat.serviceAi.subLoopingUseCases,json,function _handleCodeContentFinalResult,Yes +gateway.modules.aichat.serviceAi.subLoopingUseCases,logging,header,Yes +gateway.modules.aichat.serviceAi.subLoopingUseCases,typing,header,Yes +gateway.modules.aichat.serviceAi.subResponseParsing,(relative) .subJsonResponseHandling,header,Yes +gateway.modules.aichat.serviceAi.subResponseParsing,json,header,Yes +gateway.modules.aichat.serviceAi.subResponseParsing,logging,header,Yes +gateway.modules.aichat.serviceAi.subResponseParsing,modules.datamodels.datamodelAi,header,Yes +gateway.modules.aichat.serviceAi.subResponseParsing,modules.shared.jsonUtils,header,Yes +gateway.modules.aichat.serviceAi.subResponseParsing,typing,header,Yes +gateway.modules.aichat.serviceAi.subStructureFilling,asyncio,header,Yes +gateway.modules.aichat.serviceAi.subStructureFilling,base64,function _processAiResponseForSection,Yes +gateway.modules.aichat.serviceAi.subStructureFilling,copy,header,Yes +gateway.modules.aichat.serviceAi.subStructureFilling,json,header,Yes +gateway.modules.aichat.serviceAi.subStructureFilling,logging,header,Yes +gateway.modules.aichat.serviceAi.subStructureFilling,modules.aichat.serviceGeneration.renderers.registry,function _getAcceptedSectionTypesForFormat,Yes +gateway.modules.aichat.serviceAi.subStructureFilling,modules.datamodels.datamodelAi,header,Yes +gateway.modules.aichat.serviceAi.subStructureFilling,modules.datamodels.datamodelExtraction,header,Yes +gateway.modules.aichat.serviceAi.subStructureFilling,modules.datamodels.datamodelJson,function _getAcceptedSectionTypesForFormat,Yes +gateway.modules.aichat.serviceAi.subStructureFilling,modules.datamodels.datamodelJson,function _getAcceptedSectionTypesForFormat,Yes +gateway.modules.aichat.serviceAi.subStructureFilling,modules.shared.jsonContinuation,function buildSectionPromptWithContinuation,Yes +gateway.modules.aichat.serviceAi.subStructureFilling,modules.shared.jsonUtils,function _extractAndMergeMultipleJsonBlocks,Yes +gateway.modules.aichat.serviceAi.subStructureFilling,modules.shared.jsonUtils,function _processAiResponseForSection,Yes +gateway.modules.aichat.serviceAi.subStructureFilling,modules.shared.jsonUtils,function _processSingleSection,Yes +gateway.modules.aichat.serviceAi.subStructureFilling,modules.workflows.processing.shared.stateTools,header,Yes +gateway.modules.aichat.serviceAi.subStructureFilling,typing,header,Yes +gateway.modules.aichat.serviceAi.subStructureGeneration,json,header,Yes +gateway.modules.aichat.serviceAi.subStructureGeneration,logging,header,Yes +gateway.modules.aichat.serviceAi.subStructureGeneration,modules.aichat.serviceGeneration.renderers.registry,function generateStructure,Yes +gateway.modules.aichat.serviceAi.subStructureGeneration,modules.datamodels.datamodelAi,header,Yes +gateway.modules.aichat.serviceAi.subStructureGeneration,modules.datamodels.datamodelExtraction,header,Yes +gateway.modules.aichat.serviceAi.subStructureGeneration,modules.shared,function generateStructure,Yes +gateway.modules.aichat.serviceAi.subStructureGeneration,modules.shared.jsonContinuation,function generateStructure,Yes +gateway.modules.aichat.serviceAi.subStructureGeneration,modules.workflows.processing.shared.stateTools,header,Yes +gateway.modules.aichat.serviceAi.subStructureGeneration,typing,header,Yes +gateway.modules.aichat.serviceExtraction.__init__,(relative) .mainServiceExtraction,header,Yes +gateway.modules.aichat.serviceExtraction.chunking.chunkerImage,(relative) ..subRegistry,header,Yes +gateway.modules.aichat.serviceExtraction.chunking.chunkerImage,PIL,function chunk,Yes +gateway.modules.aichat.serviceExtraction.chunking.chunkerImage,base64,header,Yes +gateway.modules.aichat.serviceExtraction.chunking.chunkerImage,io,header,Yes +gateway.modules.aichat.serviceExtraction.chunking.chunkerImage,modules.datamodels.datamodelExtraction,header,Yes +gateway.modules.aichat.serviceExtraction.chunking.chunkerImage,typing,header,Yes +gateway.modules.aichat.serviceExtraction.chunking.chunkerStructure,(relative) ..subRegistry,header,Yes +gateway.modules.aichat.serviceExtraction.chunking.chunkerStructure,json,header,Yes +gateway.modules.aichat.serviceExtraction.chunking.chunkerStructure,modules.datamodels.datamodelExtraction,header,Yes +gateway.modules.aichat.serviceExtraction.chunking.chunkerStructure,typing,header,Yes +gateway.modules.aichat.serviceExtraction.chunking.chunkerTable,(relative) ..subRegistry,header,Yes +gateway.modules.aichat.serviceExtraction.chunking.chunkerTable,modules.datamodels.datamodelExtraction,header,Yes +gateway.modules.aichat.serviceExtraction.chunking.chunkerTable,typing,header,Yes +gateway.modules.aichat.serviceExtraction.chunking.chunkerText,(relative) ..subRegistry,header,Yes +gateway.modules.aichat.serviceExtraction.chunking.chunkerText,logging,header,Yes +gateway.modules.aichat.serviceExtraction.chunking.chunkerText,modules.datamodels.datamodelExtraction,header,Yes +gateway.modules.aichat.serviceExtraction.chunking.chunkerText,typing,header,Yes +gateway.modules.aichat.serviceExtraction.extractors.extractorBinary,(relative) ..subRegistry,header,Yes +gateway.modules.aichat.serviceExtraction.extractors.extractorBinary,(relative) ..subUtils,header,Yes +gateway.modules.aichat.serviceExtraction.extractors.extractorBinary,base64,header,Yes +gateway.modules.aichat.serviceExtraction.extractors.extractorBinary,modules.datamodels.datamodelExtraction,header,Yes +gateway.modules.aichat.serviceExtraction.extractors.extractorBinary,typing,header,Yes +gateway.modules.aichat.serviceExtraction.extractors.extractorCsv,(relative) ..subRegistry,header,Yes +gateway.modules.aichat.serviceExtraction.extractors.extractorCsv,(relative) ..subUtils,header,Yes +gateway.modules.aichat.serviceExtraction.extractors.extractorCsv,modules.datamodels.datamodelExtraction,header,Yes +gateway.modules.aichat.serviceExtraction.extractors.extractorCsv,typing,header,Yes +gateway.modules.aichat.serviceExtraction.extractors.extractorDocx,(relative) ..subRegistry,header,Yes +gateway.modules.aichat.serviceExtraction.extractors.extractorDocx,(relative) ..subUtils,header,Yes +gateway.modules.aichat.serviceExtraction.extractors.extractorDocx,docx,function _load,Yes +gateway.modules.aichat.serviceExtraction.extractors.extractorDocx,io,header,Yes +gateway.modules.aichat.serviceExtraction.extractors.extractorDocx,modules.datamodels.datamodelExtraction,header,Yes +gateway.modules.aichat.serviceExtraction.extractors.extractorDocx,typing,header,Yes +gateway.modules.aichat.serviceExtraction.extractors.extractorHtml,(relative) ..subRegistry,header,Yes +gateway.modules.aichat.serviceExtraction.extractors.extractorHtml,(relative) ..subUtils,header,Yes +gateway.modules.aichat.serviceExtraction.extractors.extractorHtml,bs4,header,Yes +gateway.modules.aichat.serviceExtraction.extractors.extractorHtml,modules.datamodels.datamodelExtraction,header,Yes +gateway.modules.aichat.serviceExtraction.extractors.extractorHtml,typing,header,Yes +gateway.modules.aichat.serviceExtraction.extractors.extractorImage,(relative) ..subRegistry,header,Yes +gateway.modules.aichat.serviceExtraction.extractors.extractorImage,(relative) ..subUtils,header,Yes +gateway.modules.aichat.serviceExtraction.extractors.extractorImage,PIL,function extract,Yes +gateway.modules.aichat.serviceExtraction.extractors.extractorImage,base64,header,Yes +gateway.modules.aichat.serviceExtraction.extractors.extractorImage,io,function extract,Yes +gateway.modules.aichat.serviceExtraction.extractors.extractorImage,logging,header,Yes +gateway.modules.aichat.serviceExtraction.extractors.extractorImage,modules.datamodels.datamodelExtraction,header,Yes +gateway.modules.aichat.serviceExtraction.extractors.extractorImage,typing,header,Yes +gateway.modules.aichat.serviceExtraction.extractors.extractorJson,(relative) ..subRegistry,header,Yes +gateway.modules.aichat.serviceExtraction.extractors.extractorJson,(relative) ..subUtils,header,Yes +gateway.modules.aichat.serviceExtraction.extractors.extractorJson,json,header,Yes +gateway.modules.aichat.serviceExtraction.extractors.extractorJson,modules.datamodels.datamodelExtraction,header,Yes +gateway.modules.aichat.serviceExtraction.extractors.extractorJson,typing,header,Yes +gateway.modules.aichat.serviceExtraction.extractors.extractorPdf,(relative) ..subRegistry,header,Yes +gateway.modules.aichat.serviceExtraction.extractors.extractorPdf,(relative) ..subUtils,header,Yes +gateway.modules.aichat.serviceExtraction.extractors.extractorPdf,PyPDF2,function _load,Yes +gateway.modules.aichat.serviceExtraction.extractors.extractorPdf,base64,header,Yes +gateway.modules.aichat.serviceExtraction.extractors.extractorPdf,fitz,function _load,Yes +gateway.modules.aichat.serviceExtraction.extractors.extractorPdf,io,header,Yes +gateway.modules.aichat.serviceExtraction.extractors.extractorPdf,modules.datamodels.datamodelExtraction,header,Yes +gateway.modules.aichat.serviceExtraction.extractors.extractorPdf,typing,header,Yes +gateway.modules.aichat.serviceExtraction.extractors.extractorPptx,(relative) ..subRegistry,header,Yes +gateway.modules.aichat.serviceExtraction.extractors.extractorPptx,base64,header,Yes +gateway.modules.aichat.serviceExtraction.extractors.extractorPptx,io,function extract,Yes +gateway.modules.aichat.serviceExtraction.extractors.extractorPptx,logging,header,Yes +gateway.modules.aichat.serviceExtraction.extractors.extractorPptx,modules.datamodels.datamodelExtraction,header,Yes +gateway.modules.aichat.serviceExtraction.extractors.extractorPptx,pptx,function _load,Yes +gateway.modules.aichat.serviceExtraction.extractors.extractorPptx,typing,header,Yes +gateway.modules.aichat.serviceExtraction.extractors.extractorSql,(relative) ..subRegistry,header,Yes +gateway.modules.aichat.serviceExtraction.extractors.extractorSql,(relative) ..subUtils,header,Yes +gateway.modules.aichat.serviceExtraction.extractors.extractorSql,modules.datamodels.datamodelExtraction,header,Yes +gateway.modules.aichat.serviceExtraction.extractors.extractorSql,typing,header,Yes +gateway.modules.aichat.serviceExtraction.extractors.extractorText,(relative) ..subRegistry,header,Yes +gateway.modules.aichat.serviceExtraction.extractors.extractorText,(relative) ..subUtils,header,Yes +gateway.modules.aichat.serviceExtraction.extractors.extractorText,modules.datamodels.datamodelExtraction,header,Yes +gateway.modules.aichat.serviceExtraction.extractors.extractorText,typing,header,Yes +gateway.modules.aichat.serviceExtraction.extractors.extractorXlsx,(relative) ..subRegistry,header,Yes +gateway.modules.aichat.serviceExtraction.extractors.extractorXlsx,(relative) ..subUtils,header,Yes +gateway.modules.aichat.serviceExtraction.extractors.extractorXlsx,datetime,header,Yes +gateway.modules.aichat.serviceExtraction.extractors.extractorXlsx,io,header,Yes +gateway.modules.aichat.serviceExtraction.extractors.extractorXlsx,modules.datamodels.datamodelExtraction,header,Yes +gateway.modules.aichat.serviceExtraction.extractors.extractorXlsx,openpyxl,function _load,Yes +gateway.modules.aichat.serviceExtraction.extractors.extractorXlsx,typing,header,Yes +gateway.modules.aichat.serviceExtraction.extractors.extractorXml,(relative) ..subRegistry,header,Yes +gateway.modules.aichat.serviceExtraction.extractors.extractorXml,(relative) ..subUtils,header,Yes +gateway.modules.aichat.serviceExtraction.extractors.extractorXml,modules.datamodels.datamodelExtraction,header,Yes +gateway.modules.aichat.serviceExtraction.extractors.extractorXml,typing,header,Yes +gateway.modules.aichat.serviceExtraction.extractors.extractorXml,xml.etree.ElementTree,header,Yes +gateway.modules.aichat.serviceExtraction.mainServiceExtraction,(relative) .merging.mergerDefault,function applyMerging,Yes +gateway.modules.aichat.serviceExtraction.mainServiceExtraction,(relative) .merging.mergerTable,function applyMerging,Yes +gateway.modules.aichat.serviceExtraction.mainServiceExtraction,(relative) .merging.mergerText,function applyMerging,Yes +gateway.modules.aichat.serviceExtraction.mainServiceExtraction,(relative) .subMerger,function applyMerging,Yes +gateway.modules.aichat.serviceExtraction.mainServiceExtraction,(relative) .subPipeline,header,Yes +gateway.modules.aichat.serviceExtraction.mainServiceExtraction,(relative) .subRegistry,header,Yes +gateway.modules.aichat.serviceExtraction.mainServiceExtraction,asyncio,header,Yes +gateway.modules.aichat.serviceExtraction.mainServiceExtraction,base64,header,Yes +gateway.modules.aichat.serviceExtraction.mainServiceExtraction,json,header,Yes +gateway.modules.aichat.serviceExtraction.mainServiceExtraction,logging,header,Yes +gateway.modules.aichat.serviceExtraction.mainServiceExtraction,modules.aichat.aicore.aicoreModelRegistry,header,Yes +gateway.modules.aichat.serviceExtraction.mainServiceExtraction,modules.aichat.aicore.aicoreModelSelector,header,Yes +gateway.modules.aichat.serviceExtraction.mainServiceExtraction,modules.aichat.datamodelFeatureAiChat,header,Yes +gateway.modules.aichat.serviceExtraction.mainServiceExtraction,modules.datamodels.datamodelAi,header,Yes +gateway.modules.aichat.serviceExtraction.mainServiceExtraction,modules.datamodels.datamodelAi,function mergePartResults,Yes +gateway.modules.aichat.serviceExtraction.mainServiceExtraction,modules.datamodels.datamodelExtraction,header,Yes +gateway.modules.aichat.serviceExtraction.mainServiceExtraction,modules.interfaces.interfaceDbManagement,function extractContent,Yes +gateway.modules.aichat.serviceExtraction.mainServiceExtraction,modules.shared.debugLogger,function extractContent,Yes +gateway.modules.aichat.serviceExtraction.mainServiceExtraction,modules.shared.jsonUtils,header,Yes +gateway.modules.aichat.serviceExtraction.mainServiceExtraction,time,header,Yes +gateway.modules.aichat.serviceExtraction.mainServiceExtraction,typing,header,Yes +gateway.modules.aichat.serviceExtraction.mainServiceExtraction,uuid,header,Yes +gateway.modules.aichat.serviceExtraction.merging.mergerDefault,modules.datamodels.datamodelExtraction,header,Yes +gateway.modules.aichat.serviceExtraction.merging.mergerDefault,typing,header,Yes +gateway.modules.aichat.serviceExtraction.merging.mergerTable,(relative) ..subUtils,header,Yes +gateway.modules.aichat.serviceExtraction.merging.mergerTable,modules.datamodels.datamodelExtraction,header,Yes +gateway.modules.aichat.serviceExtraction.merging.mergerTable,typing,header,Yes +gateway.modules.aichat.serviceExtraction.merging.mergerText,(relative) ..subUtils,header,Yes +gateway.modules.aichat.serviceExtraction.merging.mergerText,modules.datamodels.datamodelExtraction,header,Yes +gateway.modules.aichat.serviceExtraction.merging.mergerText,typing,header,Yes +gateway.modules.aichat.serviceExtraction.subMerger,(relative) .subUtils,header,Yes +gateway.modules.aichat.serviceExtraction.subMerger,logging,header,Yes +gateway.modules.aichat.serviceExtraction.subMerger,modules.datamodels.datamodelExtraction,header,Yes +gateway.modules.aichat.serviceExtraction.subMerger,typing,header,Yes +gateway.modules.aichat.serviceExtraction.subPipeline,(relative) .mainServiceExtraction,function runExtraction,Yes +gateway.modules.aichat.serviceExtraction.subPipeline,(relative) .subRegistry,header,Yes +gateway.modules.aichat.serviceExtraction.subPipeline,(relative) .subUtils,header,Yes +gateway.modules.aichat.serviceExtraction.subPipeline,logging,header,Yes +gateway.modules.aichat.serviceExtraction.subPipeline,modules.datamodels.datamodelExtraction,header,Yes +gateway.modules.aichat.serviceExtraction.subPipeline,typing,header,Yes +gateway.modules.aichat.serviceExtraction.subPromptBuilderExtraction,json,header,Yes +gateway.modules.aichat.serviceExtraction.subPromptBuilderExtraction,logging,header,Yes +gateway.modules.aichat.serviceExtraction.subPromptBuilderExtraction,modules.aichat.serviceGeneration.renderers.documentRendererBaseTemplate,header,Yes +gateway.modules.aichat.serviceExtraction.subPromptBuilderExtraction,modules.datamodels.datamodelAi,header,Yes +gateway.modules.aichat.serviceExtraction.subPromptBuilderExtraction,modules.shared.debugLogger,function buildExtractionPrompt,Yes +gateway.modules.aichat.serviceExtraction.subPromptBuilderExtraction,typing,header,Yes +gateway.modules.aichat.serviceExtraction.subPromptBuilderExtraction,typing,header,Yes +gateway.modules.aichat.serviceExtraction.subRegistry,(relative) .chunking.chunkerImage,function __init__,Yes +gateway.modules.aichat.serviceExtraction.subRegistry,(relative) .chunking.chunkerStructure,function __init__,Yes +gateway.modules.aichat.serviceExtraction.subRegistry,(relative) .chunking.chunkerTable,function __init__,Yes +gateway.modules.aichat.serviceExtraction.subRegistry,(relative) .chunking.chunkerText,function __init__,Yes +gateway.modules.aichat.serviceExtraction.subRegistry,(relative) .extractors.extractorBinary,function _auto_discover_extractors,Yes +gateway.modules.aichat.serviceExtraction.subRegistry,importlib,function _auto_discover_extractors,Yes +gateway.modules.aichat.serviceExtraction.subRegistry,logging,header,Yes +gateway.modules.aichat.serviceExtraction.subRegistry,modules.datamodels.datamodelExtraction,header,Yes +gateway.modules.aichat.serviceExtraction.subRegistry,os,function _auto_discover_extractors,Yes +gateway.modules.aichat.serviceExtraction.subRegistry,pathlib,function _auto_discover_extractors,Yes +gateway.modules.aichat.serviceExtraction.subRegistry,traceback,function _auto_discover_extractors,Yes +gateway.modules.aichat.serviceExtraction.subRegistry,traceback,function __init__,Yes +gateway.modules.aichat.serviceExtraction.subRegistry,typing,header,Yes +gateway.modules.aichat.serviceExtraction.subUtils,uuid,header,Yes +gateway.modules.aichat.serviceGeneration.mainServiceGeneration,(relative) .renderers.registry,function _getFormatRenderer,Yes +gateway.modules.aichat.serviceGeneration.mainServiceGeneration,base64,header,Yes +gateway.modules.aichat.serviceGeneration.mainServiceGeneration,logging,header,Yes +gateway.modules.aichat.serviceGeneration.mainServiceGeneration,modules.aichat.datamodelFeatureAiChat,header,Yes +gateway.modules.aichat.serviceGeneration.mainServiceGeneration,modules.aichat.serviceExtraction.subPromptBuilderExtraction,function getAdaptiveExtractionPrompt,Yes +gateway.modules.aichat.serviceGeneration.mainServiceGeneration,modules.aichat.serviceGeneration.renderers.registry,function renderReport,Yes +gateway.modules.aichat.serviceGeneration.mainServiceGeneration,modules.aichat.serviceGeneration.subContentGenerator,function generateDocumentWithTwoPhases,Yes +gateway.modules.aichat.serviceGeneration.mainServiceGeneration,modules.aichat.serviceGeneration.subDocumentUtility,header,Yes +gateway.modules.aichat.serviceGeneration.mainServiceGeneration,modules.aichat.serviceGeneration.subStructureGenerator,function generateDocumentWithTwoPhases,Yes +gateway.modules.aichat.serviceGeneration.mainServiceGeneration,modules.datamodels.datamodelDocument,header,Yes +gateway.modules.aichat.serviceGeneration.mainServiceGeneration,traceback,header,Yes +gateway.modules.aichat.serviceGeneration.mainServiceGeneration,typing,header,Yes +gateway.modules.aichat.serviceGeneration.mainServiceGeneration,uuid,header,Yes +gateway.modules.aichat.serviceGeneration.paths.codePath,json,header,Yes +gateway.modules.aichat.serviceGeneration.paths.codePath,logging,header,Yes +gateway.modules.aichat.serviceGeneration.paths.codePath,modules.aichat.serviceGeneration.renderers.registry,function _getCodeRenderer,Yes +gateway.modules.aichat.serviceGeneration.paths.codePath,modules.datamodels.datamodelAi,header,Yes +gateway.modules.aichat.serviceGeneration.paths.codePath,modules.datamodels.datamodelDocument,function generateCode,Yes +gateway.modules.aichat.serviceGeneration.paths.codePath,modules.datamodels.datamodelExtraction,header,Yes +gateway.modules.aichat.serviceGeneration.paths.codePath,modules.datamodels.datamodelWorkflow,header,Yes +gateway.modules.aichat.serviceGeneration.paths.codePath,modules.shared.jsonContinuation,function _generateCodeStructure,Yes +gateway.modules.aichat.serviceGeneration.paths.codePath,modules.shared.jsonContinuation,function _generateSingleFileContent,Yes +gateway.modules.aichat.serviceGeneration.paths.codePath,modules.shared.jsonUtils,header,Yes +gateway.modules.aichat.serviceGeneration.paths.codePath,re,header,Yes +gateway.modules.aichat.serviceGeneration.paths.codePath,time,header,Yes +gateway.modules.aichat.serviceGeneration.paths.codePath,typing,header,Yes +gateway.modules.aichat.serviceGeneration.paths.documentPath,copy,header,Yes +gateway.modules.aichat.serviceGeneration.paths.documentPath,json,header,Yes +gateway.modules.aichat.serviceGeneration.paths.documentPath,logging,header,Yes +gateway.modules.aichat.serviceGeneration.paths.documentPath,modules.datamodels.datamodelAi,header,Yes +gateway.modules.aichat.serviceGeneration.paths.documentPath,modules.datamodels.datamodelDocument,header,Yes +gateway.modules.aichat.serviceGeneration.paths.documentPath,modules.datamodels.datamodelExtraction,header,Yes +gateway.modules.aichat.serviceGeneration.paths.documentPath,modules.datamodels.datamodelWorkflow,header,Yes +gateway.modules.aichat.serviceGeneration.paths.documentPath,modules.workflows.processing.shared.stateTools,header,Yes +gateway.modules.aichat.serviceGeneration.paths.documentPath,time,header,Yes +gateway.modules.aichat.serviceGeneration.paths.documentPath,typing,header,Yes +gateway.modules.aichat.serviceGeneration.paths.imagePath,base64,function generateImages,Yes +gateway.modules.aichat.serviceGeneration.paths.imagePath,json,function generateImages,Yes +gateway.modules.aichat.serviceGeneration.paths.imagePath,logging,header,Yes +gateway.modules.aichat.serviceGeneration.paths.imagePath,modules.datamodels.datamodelAi,header,Yes +gateway.modules.aichat.serviceGeneration.paths.imagePath,modules.datamodels.datamodelWorkflow,header,Yes +gateway.modules.aichat.serviceGeneration.paths.imagePath,time,header,Yes +gateway.modules.aichat.serviceGeneration.paths.imagePath,typing,header,Yes +gateway.modules.aichat.serviceGeneration.renderers.codeRendererBaseTemplate,(relative) .documentRendererBaseTemplate,header,Yes +gateway.modules.aichat.serviceGeneration.renderers.codeRendererBaseTemplate,abc,header,Yes +gateway.modules.aichat.serviceGeneration.renderers.codeRendererBaseTemplate,logging,header,Yes +gateway.modules.aichat.serviceGeneration.renderers.codeRendererBaseTemplate,modules.datamodels.datamodelDocument,header,Yes +gateway.modules.aichat.serviceGeneration.renderers.codeRendererBaseTemplate,typing,header,Yes +gateway.modules.aichat.serviceGeneration.renderers.documentRendererBaseTemplate,PIL,header,Yes +gateway.modules.aichat.serviceGeneration.renderers.documentRendererBaseTemplate,abc,header,Yes +gateway.modules.aichat.serviceGeneration.renderers.documentRendererBaseTemplate,base64,header,Yes +gateway.modules.aichat.serviceGeneration.renderers.documentRendererBaseTemplate,datetime,header,Yes +gateway.modules.aichat.serviceGeneration.renderers.documentRendererBaseTemplate,io,header,Yes +gateway.modules.aichat.serviceGeneration.renderers.documentRendererBaseTemplate,json,header,Yes +gateway.modules.aichat.serviceGeneration.renderers.documentRendererBaseTemplate,logging,header,Yes +gateway.modules.aichat.serviceGeneration.renderers.documentRendererBaseTemplate,modules.datamodels.datamodelAi,header,Yes +gateway.modules.aichat.serviceGeneration.renderers.documentRendererBaseTemplate,modules.datamodels.datamodelDocument,header,Yes +gateway.modules.aichat.serviceGeneration.renderers.documentRendererBaseTemplate,modules.datamodels.datamodelJson,header,Yes +gateway.modules.aichat.serviceGeneration.renderers.documentRendererBaseTemplate,modules.datamodels.datamodelJson,function getAcceptedSectionTypes,Yes +gateway.modules.aichat.serviceGeneration.renderers.documentRendererBaseTemplate,re,header,Yes +gateway.modules.aichat.serviceGeneration.renderers.documentRendererBaseTemplate,re,function _determineFilename,Yes +gateway.modules.aichat.serviceGeneration.renderers.documentRendererBaseTemplate,threading,function _getAiStyles,Yes +gateway.modules.aichat.serviceGeneration.renderers.documentRendererBaseTemplate,typing,header,Yes +gateway.modules.aichat.serviceGeneration.renderers.registry,(relative) .documentRendererBaseTemplate,header,Yes +gateway.modules.aichat.serviceGeneration.renderers.registry,importlib,header,Yes +gateway.modules.aichat.serviceGeneration.renderers.registry,logging,header,Yes +gateway.modules.aichat.serviceGeneration.renderers.registry,os,function discoverRenderers,Yes +gateway.modules.aichat.serviceGeneration.renderers.registry,pathlib,function discoverRenderers,Yes +gateway.modules.aichat.serviceGeneration.renderers.registry,sys,function discoverRenderers,Yes +gateway.modules.aichat.serviceGeneration.renderers.registry,typing,header,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererCodeCsv,(relative) .codeRendererBaseTemplate,header,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererCodeCsv,(relative) .rendererCsv,function render,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererCodeCsv,csv,header,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererCodeCsv,io,header,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererCodeCsv,modules.datamodels.datamodelDocument,header,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererCodeCsv,typing,header,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererCodeJson,(relative) .codeRendererBaseTemplate,header,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererCodeJson,(relative) .rendererJson,function render,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererCodeJson,json,header,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererCodeJson,modules.datamodels.datamodelDocument,header,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererCodeJson,typing,header,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererCodeXml,(relative) .codeRendererBaseTemplate,header,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererCodeXml,modules.datamodels.datamodelDocument,header,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererCodeXml,typing,header,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererCodeXml,xml.dom,header,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererCodeXml,xml.etree.ElementTree,header,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererCsv,(relative) .documentRendererBaseTemplate,header,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererCsv,csv,function _convertRowsToCsv,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererCsv,io,function _convertRowsToCsv,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererCsv,modules.datamodels.datamodelDocument,header,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererCsv,typing,header,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererDocx,(relative) .documentRendererBaseTemplate,header,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererDocx,(relative) .rendererHtml,function render,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererDocx,PIL,function _renderJsonImage,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererDocx,base64,header,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererDocx,csv,header,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererDocx,docx,header,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererDocx,docx.enum.style,function _setupDocumentStyles,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererDocx,docx.enum.style,function _createStyle,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererDocx,docx.enum.table,header,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererDocx,docx.enum.text,header,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererDocx,docx.oxml.ns,function _renderTableFastXml,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererDocx,docx.oxml.shared,function _renderTableFastXml,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererDocx,docx.oxml.shared,function _createTableBordersXml,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererDocx,docx.oxml.shared,function _createTableRowXml,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererDocx,docx.oxml.shared,function _applyHorizontalBordersOnly,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererDocx,docx.oxml.shared,function _setCellBackground,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererDocx,docx.oxml.shared,function _setCellBackgroundFast,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererDocx,docx.shared,header,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererDocx,io,header,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererDocx,lxml,function _renderTableFastXml,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererDocx,modules.datamodels.datamodelDocument,header,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererDocx,modules.datamodels.datamodelJson,function getAcceptedSectionTypes,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererDocx,re,header,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererDocx,time,function _generateDocxFromJson,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererDocx,time,function _renderJsonTable,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererDocx,time,function _renderTableFastXml,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererDocx,typing,header,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererHtml,(relative) .documentRendererBaseTemplate,header,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererHtml,base64,function render,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererHtml,base64,function _replaceImageDataUris,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererHtml,html,function _renderJsonImage,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererHtml,html,function _replaceImageDataUris,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererHtml,modules.datamodels.datamodelDocument,header,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererHtml,modules.datamodels.datamodelJson,function getAcceptedSectionTypes,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererHtml,re,function _replaceImageDataUris,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererHtml,re,function _extractImages,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererHtml,typing,header,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererImage,(relative) .documentRendererBaseTemplate,header,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererImage,base64,header,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererImage,json,function _generateAiImage,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererImage,logging,header,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererImage,modules.datamodels.datamodelAi,function _generateAiImage,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererImage,modules.datamodels.datamodelAi,function _compressPromptWithAi,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererImage,modules.datamodels.datamodelDocument,header,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererImage,typing,header,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererJson,(relative) .documentRendererBaseTemplate,header,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererJson,json,header,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererJson,modules.datamodels.datamodelDocument,header,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererJson,modules.datamodels.datamodelJson,function getAcceptedSectionTypes,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererJson,typing,header,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererMarkdown,(relative) .documentRendererBaseTemplate,header,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererMarkdown,modules.datamodels.datamodelDocument,header,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererMarkdown,modules.datamodels.datamodelJson,function getAcceptedSectionTypes,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererMarkdown,typing,header,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererPdf,(relative) .documentRendererBaseTemplate,header,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererPdf,(relative) .rendererHtml,function render,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererPdf,PIL,function _renderJsonImage,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererPdf,base64,header,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererPdf,base64,function _renderJsonImage,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererPdf,io,header,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererPdf,io,function _renderJsonImage,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererPdf,json,function _getAiStylesWithPdfColors,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererPdf,modules.datamodels.datamodelAi,function _getAiStylesWithPdfColors,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererPdf,modules.datamodels.datamodelDocument,header,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererPdf,modules.datamodels.datamodelJson,function getAcceptedSectionTypes,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererPdf,re,function _getAiStylesWithPdfColors,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererPdf,re,function _renderJsonImage,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererPdf,reportlab.lib,header,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererPdf,reportlab.lib.enums,header,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererPdf,reportlab.lib.pagesizes,header,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererPdf,reportlab.lib.pagesizes,function _renderJsonImage,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererPdf,reportlab.lib.styles,header,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererPdf,reportlab.lib.units,header,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererPdf,reportlab.lib.units,function _renderJsonImage,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererPdf,reportlab.platypus,header,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererPdf,reportlab.platypus,function _renderJsonImage,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererPdf,typing,header,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererPptx,(relative) .documentRendererBaseTemplate,header,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererPptx,PIL,function _addImagesToSlide,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererPptx,PIL,function _addImagesToSlideInFrame,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererPptx,PIL,function _addImagesToSlideInFrame,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererPptx,base64,header,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererPptx,base64,function _addImagesToSlide,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererPptx,base64,function _addImagesToSlideInFrame,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererPptx,datetime,header,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererPptx,io,header,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererPptx,io,function _addImagesToSlide,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererPptx,io,function _addImagesToSlideInFrame,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererPptx,json,header,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererPptx,logging,header,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererPptx,modules.datamodels.datamodelDocument,header,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererPptx,modules.datamodels.datamodelJson,function getAcceptedSectionTypes,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererPptx,pptx,function render,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererPptx,pptx.dml.color,function render,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererPptx,pptx.dml.color,function _addImagesToSlide,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererPptx,pptx.dml.color,function _addTableToSlide,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererPptx,pptx.dml.color,function _addBulletListToSlide,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererPptx,pptx.dml.color,function _addHeadingToSlide,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererPptx,pptx.dml.color,function _addParagraphToSlide,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererPptx,pptx.dml.color,function _addCodeBlockToSlide,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererPptx,pptx.dml.color,function _renderSlideContentWithFrames,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererPptx,pptx.dml.color,function _renderTextSectionsInFrame,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererPptx,pptx.dml.color,function _renderSectionToTextFrame,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererPptx,pptx.enum.text,function render,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererPptx,pptx.enum.text,function _addImagesToSlide,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererPptx,pptx.enum.text,function _addTableToSlide,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererPptx,pptx.enum.text,function _addBulletListToSlide,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererPptx,pptx.enum.text,function _addParagraphToSlide,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererPptx,pptx.enum.text,function _renderSlideContentWithFrames,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererPptx,pptx.enum.text,function _renderTextSectionsInFrame,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererPptx,pptx.enum.text,function _renderSectionToTextFrame,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererPptx,pptx.enum.text,function _addImagesToSlideInFrame,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererPptx,pptx.util,function render,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererPptx,pptx.util,function _addImagesToSlide,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererPptx,pptx.util,function _addTableToSlide,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererPptx,pptx.util,function _addBulletListToSlide,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererPptx,pptx.util,function _addHeadingToSlide,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererPptx,pptx.util,function _addParagraphToSlide,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererPptx,pptx.util,function _addCodeBlockToSlide,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererPptx,pptx.util,function _renderSlideContentWithFrames,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererPptx,pptx.util,function _renderTextSectionsInFrame,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererPptx,pptx.util,function _renderSectionToTextFrame,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererPptx,pptx.util,function _addImagesToSlideInFrame,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererPptx,pptx.util,function render,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererPptx,pptx.util,function render,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererPptx,pptx.util,function _renderSlideContentWithFrames,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererPptx,pptx.util,function _addBulletListToSlide,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererPptx,re,header,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererPptx,re,function render,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererPptx,traceback,function _addImagesToSlide,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererPptx,typing,header,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererText,(relative) .documentRendererBaseTemplate,header,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererText,modules.datamodels.datamodelDocument,header,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererText,modules.datamodels.datamodelJson,function getAcceptedSectionTypes,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererText,typing,header,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererXlsx,(relative) .documentRendererBaseTemplate,header,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererXlsx,(relative) .rendererCsv,function render,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererXlsx,base64,header,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererXlsx,base64,function _addImageToExcel,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererXlsx,datetime,header,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererXlsx,dateutil,header,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererXlsx,io,header,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererXlsx,io,function _addImageToExcel,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererXlsx,json,function _getAiStylesWithExcelColors,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererXlsx,modules.datamodels.datamodelAi,function _getAiStylesWithExcelColors,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererXlsx,modules.datamodels.datamodelDocument,header,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererXlsx,modules.datamodels.datamodelJson,function getAcceptedSectionTypes,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererXlsx,openpyxl,header,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererXlsx,openpyxl.drawing.image,function _addImageToExcel,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererXlsx,openpyxl.styles,header,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererXlsx,openpyxl.utils,header,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererXlsx,openpyxl.worksheet.table,header,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererXlsx,re,header,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererXlsx,re,function _getAiStylesWithExcelColors,Yes +gateway.modules.aichat.serviceGeneration.renderers.rendererXlsx,typing,header,Yes +gateway.modules.aichat.serviceGeneration.subContentGenerator,asyncio,header,Yes +gateway.modules.aichat.serviceGeneration.subContentGenerator,base64,header,Yes +gateway.modules.aichat.serviceGeneration.subContentGenerator,base64,function _generateImageSection,Yes +gateway.modules.aichat.serviceGeneration.subContentGenerator,json,header,Yes +gateway.modules.aichat.serviceGeneration.subContentGenerator,logging,header,Yes +gateway.modules.aichat.serviceGeneration.subContentGenerator,modules.aichat.serviceGeneration.subContentIntegrator,header,Yes +gateway.modules.aichat.serviceGeneration.subContentGenerator,modules.datamodels.datamodelAi,function _generateSimpleSection,Yes +gateway.modules.aichat.serviceGeneration.subContentGenerator,modules.datamodels.datamodelAi,function _generateImageSection,Yes +gateway.modules.aichat.serviceGeneration.subContentGenerator,modules.shared.jsonUtils,function _generateSimpleSection,Yes +gateway.modules.aichat.serviceGeneration.subContentGenerator,modules.workflows.processing.shared.stateTools,header,Yes +gateway.modules.aichat.serviceGeneration.subContentGenerator,re,header,Yes +gateway.modules.aichat.serviceGeneration.subContentGenerator,traceback,header,Yes +gateway.modules.aichat.serviceGeneration.subContentGenerator,typing,header,Yes +gateway.modules.aichat.serviceGeneration.subContentIntegrator,json,function integrateContent,Yes +gateway.modules.aichat.serviceGeneration.subContentIntegrator,logging,header,Yes +gateway.modules.aichat.serviceGeneration.subContentIntegrator,typing,header,Yes +gateway.modules.aichat.serviceGeneration.subDocumentUtility,csv,function convertDocumentDataToString,Yes +gateway.modules.aichat.serviceGeneration.subDocumentUtility,csv,function convertDocumentDataToString,Yes +gateway.modules.aichat.serviceGeneration.subDocumentUtility,io,function convertDocumentDataToString,Yes +gateway.modules.aichat.serviceGeneration.subDocumentUtility,io,function convertDocumentDataToString,Yes +gateway.modules.aichat.serviceGeneration.subDocumentUtility,json,header,Yes +gateway.modules.aichat.serviceGeneration.subDocumentUtility,logging,header,Yes +gateway.modules.aichat.serviceGeneration.subDocumentUtility,os,header,Yes +gateway.modules.aichat.serviceGeneration.subDocumentUtility,typing,header,Yes +gateway.modules.aichat.serviceGeneration.subJsonSchema,typing,header,Yes +gateway.modules.aichat.serviceGeneration.subPromptBuilderGeneration,logging,header,Yes +gateway.modules.aichat.serviceGeneration.subPromptBuilderGeneration,modules.datamodels.datamodelJson,header,Yes +gateway.modules.aichat.serviceGeneration.subPromptBuilderGeneration,typing,header,Yes +gateway.modules.aichat.serviceGeneration.subStructureGenerator,json,header,Yes +gateway.modules.aichat.serviceGeneration.subStructureGenerator,json,function _createStructurePrompt,Yes +gateway.modules.aichat.serviceGeneration.subStructureGenerator,logging,header,Yes +gateway.modules.aichat.serviceGeneration.subStructureGenerator,modules.datamodels.datamodelAi,function generateStructure,Yes +gateway.modules.aichat.serviceGeneration.subStructureGenerator,modules.datamodels.datamodelJson,header,Yes +gateway.modules.aichat.serviceGeneration.subStructureGenerator,typing,header,Yes +gateway.modules.aichat.serviceWeb.mainServiceWeb,asyncio,header,Yes +gateway.modules.aichat.serviceWeb.mainServiceWeb,json,header,Yes +gateway.modules.aichat.serviceWeb.mainServiceWeb,logging,header,Yes +gateway.modules.aichat.serviceWeb.mainServiceWeb,modules.datamodels.datamodelAi,header,Yes +gateway.modules.aichat.serviceWeb.mainServiceWeb,time,header,Yes +gateway.modules.aichat.serviceWeb.mainServiceWeb,time,function _processCrawlResultsWithHierarchy,Yes +gateway.modules.aichat.serviceWeb.mainServiceWeb,typing,header,Yes +gateway.modules.aichat.serviceWeb.mainServiceWeb,urllib.parse,header,Yes gateway.modules.auth.__init__,(relative) .authentication,header,Yes gateway.modules.auth.__init__,(relative) .csrf,header,Yes gateway.modules.auth.__init__,(relative) .jwtService,header,Yes @@ -246,685 +919,11 @@ gateway.modules.datamodels.datamodelWorkflow,modules.shared.attributeUtils,heade gateway.modules.datamodels.datamodelWorkflow,modules.shared.jsonUtils,header,Yes gateway.modules.datamodels.datamodelWorkflow,pydantic,header,Yes gateway.modules.datamodels.datamodelWorkflow,typing,header,Yes -gateway.modules.datamodels.datamodelWorkflowActions,modules.datamodels.datamodelChat,header,No +gateway.modules.datamodels.datamodelWorkflowActions,modules.aichat.datamodelFeatureAiChat,header,Yes gateway.modules.datamodels.datamodelWorkflowActions,modules.shared.attributeUtils,header,Yes gateway.modules.datamodels.datamodelWorkflowActions,modules.shared.frontendTypes,header,Yes gateway.modules.datamodels.datamodelWorkflowActions,pydantic,header,Yes gateway.modules.datamodels.datamodelWorkflowActions,typing,header,Yes -gateway.modules.features.aichat.aicore.aicoreBase,abc,header,Yes -gateway.modules.features.aichat.aicore.aicoreBase,modules.datamodels.datamodelAi,header,Yes -gateway.modules.features.aichat.aicore.aicoreBase,time,function getCachedModels,Yes -gateway.modules.features.aichat.aicore.aicoreBase,typing,header,Yes -gateway.modules.features.aichat.aicore.aicoreModelRegistry,(relative) .aicoreBase,header,Yes -gateway.modules.features.aichat.aicore.aicoreModelRegistry,importlib,header,Yes -gateway.modules.features.aichat.aicore.aicoreModelRegistry,logging,header,Yes -gateway.modules.features.aichat.aicore.aicoreModelRegistry,modules.connectors.connectorDbPostgre,header,Yes -gateway.modules.features.aichat.aicore.aicoreModelRegistry,modules.datamodels.datamodelAi,header,Yes -gateway.modules.features.aichat.aicore.aicoreModelRegistry,modules.datamodels.datamodelUam,header,Yes -gateway.modules.features.aichat.aicore.aicoreModelRegistry,modules.security.rbac,header,Yes -gateway.modules.features.aichat.aicore.aicoreModelRegistry,modules.security.rbacHelpers,header,Yes -gateway.modules.features.aichat.aicore.aicoreModelRegistry,os,header,Yes -gateway.modules.features.aichat.aicore.aicoreModelRegistry,time,function refreshModels,Yes -gateway.modules.features.aichat.aicore.aicoreModelRegistry,typing,header,Yes -gateway.modules.features.aichat.aicore.aicoreModelSelector,logging,header,Yes -gateway.modules.features.aichat.aicore.aicoreModelSelector,modules.datamodels.datamodelAi,header,Yes -gateway.modules.features.aichat.aicore.aicoreModelSelector,typing,header,Yes -gateway.modules.features.aichat.aicore.aicorePluginAnthropic,(relative) .aicoreBase,header,Yes -gateway.modules.features.aichat.aicore.aicorePluginAnthropic,base64,function callAiImage,Yes -gateway.modules.features.aichat.aicore.aicorePluginAnthropic,fastapi,header,Yes -gateway.modules.features.aichat.aicore.aicorePluginAnthropic,httpx,header,Yes -gateway.modules.features.aichat.aicore.aicorePluginAnthropic,logging,header,Yes -gateway.modules.features.aichat.aicore.aicorePluginAnthropic,modules.datamodels.datamodelAi,header,Yes -gateway.modules.features.aichat.aicore.aicorePluginAnthropic,modules.shared.configuration,header,Yes -gateway.modules.features.aichat.aicore.aicorePluginAnthropic,os,header,Yes -gateway.modules.features.aichat.aicore.aicorePluginAnthropic,time,function callAiImage,Yes -gateway.modules.features.aichat.aicore.aicorePluginAnthropic,typing,header,Yes -gateway.modules.features.aichat.aicore.aicorePluginInternal,(relative) .aicoreBase,header,Yes -gateway.modules.features.aichat.aicore.aicorePluginInternal,logging,header,Yes -gateway.modules.features.aichat.aicore.aicorePluginInternal,modules.datamodels.datamodelAi,header,Yes -gateway.modules.features.aichat.aicore.aicorePluginInternal,typing,header,Yes -gateway.modules.features.aichat.aicore.aicorePluginOpenai,(relative) .aicoreBase,header,Yes -gateway.modules.features.aichat.aicore.aicorePluginOpenai,fastapi,header,Yes -gateway.modules.features.aichat.aicore.aicorePluginOpenai,httpx,header,Yes -gateway.modules.features.aichat.aicore.aicorePluginOpenai,json,function generateImage,Yes -gateway.modules.features.aichat.aicore.aicorePluginOpenai,logging,header,Yes -gateway.modules.features.aichat.aicore.aicorePluginOpenai,modules.datamodels.datamodelAi,header,Yes -gateway.modules.features.aichat.aicore.aicorePluginOpenai,modules.datamodels.datamodelAi,function generateImage,Yes -gateway.modules.features.aichat.aicore.aicorePluginOpenai,modules.shared.configuration,header,Yes -gateway.modules.features.aichat.aicore.aicorePluginOpenai,typing,header,Yes -gateway.modules.features.aichat.aicore.aicorePluginPerplexity,(relative) .aicoreBase,header,Yes -gateway.modules.features.aichat.aicore.aicorePluginPerplexity,fastapi,header,Yes -gateway.modules.features.aichat.aicore.aicorePluginPerplexity,httpx,header,Yes -gateway.modules.features.aichat.aicore.aicorePluginPerplexity,json,function webSearch,Yes -gateway.modules.features.aichat.aicore.aicorePluginPerplexity,json,function webCrawl,Yes -gateway.modules.features.aichat.aicore.aicorePluginPerplexity,json,function webCrawl,Yes -gateway.modules.features.aichat.aicore.aicorePluginPerplexity,logging,header,Yes -gateway.modules.features.aichat.aicore.aicorePluginPerplexity,modules.datamodels.datamodelAi,header,Yes -gateway.modules.features.aichat.aicore.aicorePluginPerplexity,modules.datamodels.datamodelAi,function _testConnection,Yes -gateway.modules.features.aichat.aicore.aicorePluginPerplexity,modules.datamodels.datamodelTools,header,Yes -gateway.modules.features.aichat.aicore.aicorePluginPerplexity,modules.shared.configuration,header,Yes -gateway.modules.features.aichat.aicore.aicorePluginPerplexity,typing,header,Yes -gateway.modules.features.aichat.aicore.aicorePluginTavily,(relative) .aicoreBase,header,Yes -gateway.modules.features.aichat.aicore.aicorePluginTavily,asyncio,header,Yes -gateway.modules.features.aichat.aicore.aicorePluginTavily,dataclasses,header,Yes -gateway.modules.features.aichat.aicore.aicorePluginTavily,json,function webSearch,Yes -gateway.modules.features.aichat.aicore.aicorePluginTavily,json,function webSearch,Yes -gateway.modules.features.aichat.aicore.aicorePluginTavily,json,function webCrawl,Yes -gateway.modules.features.aichat.aicore.aicorePluginTavily,json,function webCrawl,Yes -gateway.modules.features.aichat.aicore.aicorePluginTavily,json,function webSearch,Yes -gateway.modules.features.aichat.aicore.aicorePluginTavily,json,function webCrawl,Yes -gateway.modules.features.aichat.aicore.aicorePluginTavily,logging,header,Yes -gateway.modules.features.aichat.aicore.aicorePluginTavily,modules.datamodels.datamodelAi,header,Yes -gateway.modules.features.aichat.aicore.aicorePluginTavily,modules.datamodels.datamodelTools,header,Yes -gateway.modules.features.aichat.aicore.aicorePluginTavily,modules.shared.configuration,header,Yes -gateway.modules.features.aichat.aicore.aicorePluginTavily,re,header,Yes -gateway.modules.features.aichat.aicore.aicorePluginTavily,re,function _cleanUrl,Yes -gateway.modules.features.aichat.aicore.aicorePluginTavily,tavily,header,Yes -gateway.modules.features.aichat.aicore.aicorePluginTavily,typing,header,Yes -gateway.modules.features.aichat.aicore.aicorePluginTavily,urllib.parse,function _normalizeUrl,Yes -gateway.modules.features.aichat.datamodelFeatureAiChat,enum,header,Yes -gateway.modules.features.aichat.datamodelFeatureAiChat,modules.datamodels.datamodelWorkflow,function updateFromSelection,Yes -gateway.modules.features.aichat.datamodelFeatureAiChat,modules.shared.attributeUtils,header,Yes -gateway.modules.features.aichat.datamodelFeatureAiChat,modules.shared.timeUtils,header,Yes -gateway.modules.features.aichat.datamodelFeatureAiChat,pydantic,header,Yes -gateway.modules.features.aichat.datamodelFeatureAiChat,typing,header,Yes -gateway.modules.features.aichat.datamodelFeatureAiChat,uuid,header,Yes -gateway.modules.features.aichat.interfaceFeatureAiChat,(relative) .datamodelFeatureAiChat,header,Yes -gateway.modules.features.aichat.interfaceFeatureAiChat,asyncio,header,Yes -gateway.modules.features.aichat.interfaceFeatureAiChat,datetime,function storeDebugMessageAndDocuments,Yes -gateway.modules.features.aichat.interfaceFeatureAiChat,json,header,Yes -gateway.modules.features.aichat.interfaceFeatureAiChat,logging,header,Yes -gateway.modules.features.aichat.interfaceFeatureAiChat,math,header,Yes -gateway.modules.features.aichat.interfaceFeatureAiChat,modules.connectors.connectorDbPostgre,header,Yes -gateway.modules.features.aichat.interfaceFeatureAiChat,modules.datamodels.datamodelPagination,header,Yes -gateway.modules.features.aichat.interfaceFeatureAiChat,modules.datamodels.datamodelRbac,header,Yes -gateway.modules.features.aichat.interfaceFeatureAiChat,modules.datamodels.datamodelUam,header,Yes -gateway.modules.features.aichat.interfaceFeatureAiChat,modules.datamodels.datamodelUam,header,Yes -gateway.modules.features.aichat.interfaceFeatureAiChat,modules.interfaces.interfaceDbApp,function _enrichAutomationsWithUserAndMandate,Yes -gateway.modules.features.aichat.interfaceFeatureAiChat,modules.interfaces.interfaceDbManagement,function storeDebugMessageAndDocuments,Yes -gateway.modules.features.aichat.interfaceFeatureAiChat,modules.interfaces.interfaceRbac,header,Yes -gateway.modules.features.aichat.interfaceFeatureAiChat,modules.security.rbac,header,Yes -gateway.modules.features.aichat.interfaceFeatureAiChat,modules.security.rootAccess,function setUserContext,Yes -gateway.modules.features.aichat.interfaceFeatureAiChat,modules.shared.callbackRegistry,function _notifyAutomationChanged,Yes -gateway.modules.features.aichat.interfaceFeatureAiChat,modules.shared.configuration,header,Yes -gateway.modules.features.aichat.interfaceFeatureAiChat,modules.shared.debugLogger,function storeDebugMessageAndDocuments,Yes -gateway.modules.features.aichat.interfaceFeatureAiChat,modules.shared.timeUtils,header,Yes -gateway.modules.features.aichat.interfaceFeatureAiChat,os,function storeDebugMessageAndDocuments,Yes -gateway.modules.features.aichat.interfaceFeatureAiChat,typing,header,Yes -gateway.modules.features.aichat.interfaceFeatureAiChat,uuid,header,Yes -gateway.modules.features.aichat.mainAiChat,(relative) .aicore.aicoreModelRegistry,function onStart,Yes -gateway.modules.features.aichat.mainAiChat,logging,header,Yes -gateway.modules.features.aichat.mainAiChat,typing,header,Yes -gateway.modules.features.aichat.routeFeatureAiChat,(relative) .,header,Yes -gateway.modules.features.aichat.routeFeatureAiChat,(relative) .datamodelFeatureAiChat,header,Yes -gateway.modules.features.aichat.routeFeatureAiChat,fastapi,header,Yes -gateway.modules.features.aichat.routeFeatureAiChat,logging,header,Yes -gateway.modules.features.aichat.routeFeatureAiChat,modules.auth,header,Yes -gateway.modules.features.aichat.routeFeatureAiChat,modules.workflows.automation,header,Yes -gateway.modules.features.aichat.routeFeatureAiChat,typing,header,Yes -gateway.modules.features.aichat.serviceAi.mainServiceAi,(relative) .subAiCallLooping,function _initializeSubmodules,Yes -gateway.modules.features.aichat.serviceAi.mainServiceAi,(relative) .subContentExtraction,function _initializeSubmodules,Yes -gateway.modules.features.aichat.serviceAi.mainServiceAi,(relative) .subDocumentIntents,function _initializeSubmodules,Yes -gateway.modules.features.aichat.serviceAi.mainServiceAi,(relative) .subJsonResponseHandling,header,Yes -gateway.modules.features.aichat.serviceAi.mainServiceAi,(relative) .subResponseParsing,function _initializeSubmodules,Yes -gateway.modules.features.aichat.serviceAi.mainServiceAi,(relative) .subStructureFilling,function _initializeSubmodules,Yes -gateway.modules.features.aichat.serviceAi.mainServiceAi,(relative) .subStructureGeneration,function _initializeSubmodules,Yes -gateway.modules.features.aichat.serviceAi.mainServiceAi,base64,header,Yes -gateway.modules.features.aichat.serviceAi.mainServiceAi,json,header,Yes -gateway.modules.features.aichat.serviceAi.mainServiceAi,logging,header,Yes -gateway.modules.features.aichat.serviceAi.mainServiceAi,modules.datamodels.datamodelAi,header,Yes -gateway.modules.features.aichat.serviceAi.mainServiceAi,modules.datamodels.datamodelAi,header,Yes -gateway.modules.features.aichat.serviceAi.mainServiceAi,modules.datamodels.datamodelDocument,header,Yes -gateway.modules.features.aichat.serviceAi.mainServiceAi,modules.datamodels.datamodelExtraction,header,Yes -gateway.modules.features.aichat.serviceAi.mainServiceAi,modules.datamodels.datamodelWorkflow,header,Yes -gateway.modules.features.aichat.serviceAi.mainServiceAi,modules.features.aichat.datamodelFeatureAiChat,header,Yes -gateway.modules.features.aichat.serviceAi.mainServiceAi,modules.features.aichat.serviceExtraction.mainServiceExtraction,header,Yes -gateway.modules.features.aichat.serviceAi.mainServiceAi,modules.features.aichat.serviceGeneration.mainServiceGeneration,function renderResult,Yes -gateway.modules.features.aichat.serviceAi.mainServiceAi,modules.features.aichat.serviceGeneration.paths.codePath,function _handleCodeGeneration,Yes -gateway.modules.features.aichat.serviceAi.mainServiceAi,modules.features.aichat.serviceGeneration.paths.documentPath,function _handleDocumentGeneration,Yes -gateway.modules.features.aichat.serviceAi.mainServiceAi,modules.features.aichat.serviceGeneration.paths.imagePath,function _handleImageGeneration,Yes -gateway.modules.features.aichat.serviceAi.mainServiceAi,modules.interfaces.interfaceAiObjects,header,Yes -gateway.modules.features.aichat.serviceAi.mainServiceAi,modules.shared.jsonUtils,header,Yes -gateway.modules.features.aichat.serviceAi.mainServiceAi,re,header,Yes -gateway.modules.features.aichat.serviceAi.mainServiceAi,time,header,Yes -gateway.modules.features.aichat.serviceAi.mainServiceAi,time,function _handleDataExtraction,Yes -gateway.modules.features.aichat.serviceAi.mainServiceAi,typing,header,Yes -gateway.modules.features.aichat.serviceAi.subAiCallLooping,(relative) .subJsonResponseHandling,header,Yes -gateway.modules.features.aichat.serviceAi.subAiCallLooping,(relative) .subLoopingUseCases,header,Yes -gateway.modules.features.aichat.serviceAi.subAiCallLooping,json,header,Yes -gateway.modules.features.aichat.serviceAi.subAiCallLooping,logging,header,Yes -gateway.modules.features.aichat.serviceAi.subAiCallLooping,modules.datamodels.datamodelAi,header,Yes -gateway.modules.features.aichat.serviceAi.subAiCallLooping,modules.datamodels.datamodelExtraction,header,Yes -gateway.modules.features.aichat.serviceAi.subAiCallLooping,modules.shared.jsonContinuation,header,Yes -gateway.modules.features.aichat.serviceAi.subAiCallLooping,modules.shared.jsonUtils,header,Yes -gateway.modules.features.aichat.serviceAi.subAiCallLooping,modules.shared.jsonUtils,header,Yes -gateway.modules.features.aichat.serviceAi.subAiCallLooping,modules.shared.jsonUtils,header,Yes -gateway.modules.features.aichat.serviceAi.subAiCallLooping,modules.shared.jsonUtils,header,Yes -gateway.modules.features.aichat.serviceAi.subAiCallLooping,modules.workflows.processing.shared.stateTools,header,Yes -gateway.modules.features.aichat.serviceAi.subAiCallLooping,typing,header,Yes -gateway.modules.features.aichat.serviceAi.subContentExtraction,base64,header,Yes -gateway.modules.features.aichat.serviceAi.subContentExtraction,json,header,Yes -gateway.modules.features.aichat.serviceAi.subContentExtraction,logging,header,Yes -gateway.modules.features.aichat.serviceAi.subContentExtraction,modules.datamodels.datamodelAi,function extractTextFromImage,Yes -gateway.modules.features.aichat.serviceAi.subContentExtraction,modules.datamodels.datamodelAi,function processTextContentWithAi,Yes -gateway.modules.features.aichat.serviceAi.subContentExtraction,modules.datamodels.datamodelExtraction,header,Yes -gateway.modules.features.aichat.serviceAi.subContentExtraction,modules.datamodels.datamodelExtraction,function extractAndPrepareContent,Yes -gateway.modules.features.aichat.serviceAi.subContentExtraction,modules.features.aichat.datamodelFeatureAiChat,header,Yes -gateway.modules.features.aichat.serviceAi.subContentExtraction,modules.workflows.processing.shared.stateTools,header,Yes -gateway.modules.features.aichat.serviceAi.subContentExtraction,traceback,function extractTextFromImage,Yes -gateway.modules.features.aichat.serviceAi.subContentExtraction,traceback,function processTextContentWithAi,Yes -gateway.modules.features.aichat.serviceAi.subContentExtraction,typing,header,Yes -gateway.modules.features.aichat.serviceAi.subDocumentIntents,json,header,Yes -gateway.modules.features.aichat.serviceAi.subDocumentIntents,logging,header,Yes -gateway.modules.features.aichat.serviceAi.subDocumentIntents,modules.datamodels.datamodelExtraction,header,Yes -gateway.modules.features.aichat.serviceAi.subDocumentIntents,modules.datamodels.datamodelExtraction,function resolvePreExtractedDocument,Yes -gateway.modules.features.aichat.serviceAi.subDocumentIntents,modules.features.aichat.datamodelFeatureAiChat,header,Yes -gateway.modules.features.aichat.serviceAi.subDocumentIntents,modules.workflows.processing.shared.stateTools,header,Yes -gateway.modules.features.aichat.serviceAi.subDocumentIntents,traceback,function resolvePreExtractedDocument,Yes -gateway.modules.features.aichat.serviceAi.subDocumentIntents,typing,header,Yes -gateway.modules.features.aichat.serviceAi.subJsonMerger,datetime,header,Yes -gateway.modules.features.aichat.serviceAi.subJsonMerger,json,header,Yes -gateway.modules.features.aichat.serviceAi.subJsonMerger,logging,header,Yes -gateway.modules.features.aichat.serviceAi.subJsonMerger,modules.shared.jsonUtils,header,Yes -gateway.modules.features.aichat.serviceAi.subJsonMerger,os,header,Yes -gateway.modules.features.aichat.serviceAi.subJsonMerger,re,header,Yes -gateway.modules.features.aichat.serviceAi.subJsonMerger,typing,header,Yes -gateway.modules.features.aichat.serviceAi.subJsonResponseHandling,(relative) .subJsonMerger,function mergeJsonStringsWithOverlap,Yes -gateway.modules.features.aichat.serviceAi.subJsonResponseHandling,json,header,Yes -gateway.modules.features.aichat.serviceAi.subJsonResponseHandling,logging,header,Yes -gateway.modules.features.aichat.serviceAi.subJsonResponseHandling,modules.datamodels.datamodelAi,header,Yes -gateway.modules.features.aichat.serviceAi.subJsonResponseHandling,modules.shared.debugLogger,function mergeFragmentIntoSection,Yes -gateway.modules.features.aichat.serviceAi.subJsonResponseHandling,modules.shared.jsonUtils,header,Yes -gateway.modules.features.aichat.serviceAi.subJsonResponseHandling,modules.shared.jsonUtils,function mergeJsonStringsWithOverlap,Yes -gateway.modules.features.aichat.serviceAi.subJsonResponseHandling,modules.shared.jsonUtils,function _normalizeToElementsStructure,Yes -gateway.modules.features.aichat.serviceAi.subJsonResponseHandling,modules.shared.jsonUtils,function _extractRowsFromFragment,Yes -gateway.modules.features.aichat.serviceAi.subJsonResponseHandling,modules.shared.jsonUtils,function _extractOverlapAndContinuation,Yes -gateway.modules.features.aichat.serviceAi.subJsonResponseHandling,modules.shared.jsonUtils,function _mergeWithExplicitOverlap,Yes -gateway.modules.features.aichat.serviceAi.subJsonResponseHandling,modules.shared.jsonUtils,function _extractValidJsonPrefix,Yes -gateway.modules.features.aichat.serviceAi.subJsonResponseHandling,modules.shared.jsonUtils,function _smartConcatenate,Yes -gateway.modules.features.aichat.serviceAi.subJsonResponseHandling,modules.shared.jsonUtils,function _mergeJsonStringsWithOverlapFallback,Yes -gateway.modules.features.aichat.serviceAi.subJsonResponseHandling,modules.shared.jsonUtils,function _detectAndNormalizeFragment,Yes -gateway.modules.features.aichat.serviceAi.subJsonResponseHandling,modules.shared.jsonUtils,function _detectAndNormalizeFragment,Yes -gateway.modules.features.aichat.serviceAi.subJsonResponseHandling,modules.shared.jsonUtils,function _extractValidJsonPrefix,Yes -gateway.modules.features.aichat.serviceAi.subJsonResponseHandling,modules.shared.jsonUtils,function _mergeJsonStructuresGeneric,Yes -gateway.modules.features.aichat.serviceAi.subJsonResponseHandling,modules.shared.jsonUtils,function extractKpiValuesFromIncompleteJson,Yes -gateway.modules.features.aichat.serviceAi.subJsonResponseHandling,re,header,Yes -gateway.modules.features.aichat.serviceAi.subJsonResponseHandling,re,function _extractRowsFromFragment,Yes -gateway.modules.features.aichat.serviceAi.subJsonResponseHandling,re,function _detectAndNormalizeFragment,Yes -gateway.modules.features.aichat.serviceAi.subJsonResponseHandling,traceback,function _mergeJsonStructuresGeneric,Yes -gateway.modules.features.aichat.serviceAi.subJsonResponseHandling,typing,header,Yes -gateway.modules.features.aichat.serviceAi.subLoopingUseCases,dataclasses,header,Yes -gateway.modules.features.aichat.serviceAi.subLoopingUseCases,json,function _handleChapterStructureFinalResult,Yes -gateway.modules.features.aichat.serviceAi.subLoopingUseCases,json,function _handleCodeStructureFinalResult,Yes -gateway.modules.features.aichat.serviceAi.subLoopingUseCases,json,function _handleCodeContentFinalResult,Yes -gateway.modules.features.aichat.serviceAi.subLoopingUseCases,logging,header,Yes -gateway.modules.features.aichat.serviceAi.subLoopingUseCases,typing,header,Yes -gateway.modules.features.aichat.serviceAi.subResponseParsing,(relative) .subJsonResponseHandling,header,Yes -gateway.modules.features.aichat.serviceAi.subResponseParsing,json,header,Yes -gateway.modules.features.aichat.serviceAi.subResponseParsing,logging,header,Yes -gateway.modules.features.aichat.serviceAi.subResponseParsing,modules.datamodels.datamodelAi,header,Yes -gateway.modules.features.aichat.serviceAi.subResponseParsing,modules.shared.jsonUtils,header,Yes -gateway.modules.features.aichat.serviceAi.subResponseParsing,typing,header,Yes -gateway.modules.features.aichat.serviceAi.subStructureFilling,asyncio,header,Yes -gateway.modules.features.aichat.serviceAi.subStructureFilling,base64,function _processAiResponseForSection,Yes -gateway.modules.features.aichat.serviceAi.subStructureFilling,copy,header,Yes -gateway.modules.features.aichat.serviceAi.subStructureFilling,json,header,Yes -gateway.modules.features.aichat.serviceAi.subStructureFilling,logging,header,Yes -gateway.modules.features.aichat.serviceAi.subStructureFilling,modules.datamodels.datamodelAi,header,Yes -gateway.modules.features.aichat.serviceAi.subStructureFilling,modules.datamodels.datamodelExtraction,header,Yes -gateway.modules.features.aichat.serviceAi.subStructureFilling,modules.datamodels.datamodelJson,function _getAcceptedSectionTypesForFormat,Yes -gateway.modules.features.aichat.serviceAi.subStructureFilling,modules.datamodels.datamodelJson,function _getAcceptedSectionTypesForFormat,Yes -gateway.modules.features.aichat.serviceAi.subStructureFilling,modules.features.aichat.serviceGeneration.renderers.registry,function _getAcceptedSectionTypesForFormat,Yes -gateway.modules.features.aichat.serviceAi.subStructureFilling,modules.shared.jsonContinuation,function buildSectionPromptWithContinuation,Yes -gateway.modules.features.aichat.serviceAi.subStructureFilling,modules.shared.jsonUtils,function _extractAndMergeMultipleJsonBlocks,Yes -gateway.modules.features.aichat.serviceAi.subStructureFilling,modules.shared.jsonUtils,function _processAiResponseForSection,Yes -gateway.modules.features.aichat.serviceAi.subStructureFilling,modules.shared.jsonUtils,function _processSingleSection,Yes -gateway.modules.features.aichat.serviceAi.subStructureFilling,modules.workflows.processing.shared.stateTools,header,Yes -gateway.modules.features.aichat.serviceAi.subStructureFilling,typing,header,Yes -gateway.modules.features.aichat.serviceAi.subStructureGeneration,json,header,Yes -gateway.modules.features.aichat.serviceAi.subStructureGeneration,logging,header,Yes -gateway.modules.features.aichat.serviceAi.subStructureGeneration,modules.datamodels.datamodelAi,header,Yes -gateway.modules.features.aichat.serviceAi.subStructureGeneration,modules.datamodels.datamodelExtraction,header,Yes -gateway.modules.features.aichat.serviceAi.subStructureGeneration,modules.features.aichat.serviceGeneration.renderers.registry,function generateStructure,Yes -gateway.modules.features.aichat.serviceAi.subStructureGeneration,modules.shared,function generateStructure,No -gateway.modules.features.aichat.serviceAi.subStructureGeneration,modules.shared.jsonContinuation,function generateStructure,Yes -gateway.modules.features.aichat.serviceAi.subStructureGeneration,modules.workflows.processing.shared.stateTools,header,Yes -gateway.modules.features.aichat.serviceAi.subStructureGeneration,typing,header,Yes -gateway.modules.features.aichat.serviceExtraction.__init__,(relative) .mainServiceExtraction,header,Yes -gateway.modules.features.aichat.serviceExtraction.chunking.chunkerImage,(relative) ..subRegistry,header,No -gateway.modules.features.aichat.serviceExtraction.chunking.chunkerImage,PIL,function chunk,Yes -gateway.modules.features.aichat.serviceExtraction.chunking.chunkerImage,base64,header,Yes -gateway.modules.features.aichat.serviceExtraction.chunking.chunkerImage,io,header,Yes -gateway.modules.features.aichat.serviceExtraction.chunking.chunkerImage,modules.datamodels.datamodelExtraction,header,Yes -gateway.modules.features.aichat.serviceExtraction.chunking.chunkerImage,typing,header,Yes -gateway.modules.features.aichat.serviceExtraction.chunking.chunkerStructure,(relative) ..subRegistry,header,No -gateway.modules.features.aichat.serviceExtraction.chunking.chunkerStructure,json,header,Yes -gateway.modules.features.aichat.serviceExtraction.chunking.chunkerStructure,modules.datamodels.datamodelExtraction,header,Yes -gateway.modules.features.aichat.serviceExtraction.chunking.chunkerStructure,typing,header,Yes -gateway.modules.features.aichat.serviceExtraction.chunking.chunkerTable,(relative) ..subRegistry,header,No -gateway.modules.features.aichat.serviceExtraction.chunking.chunkerTable,modules.datamodels.datamodelExtraction,header,Yes -gateway.modules.features.aichat.serviceExtraction.chunking.chunkerTable,typing,header,Yes -gateway.modules.features.aichat.serviceExtraction.chunking.chunkerText,(relative) ..subRegistry,header,No -gateway.modules.features.aichat.serviceExtraction.chunking.chunkerText,logging,header,Yes -gateway.modules.features.aichat.serviceExtraction.chunking.chunkerText,modules.datamodels.datamodelExtraction,header,Yes -gateway.modules.features.aichat.serviceExtraction.chunking.chunkerText,typing,header,Yes -gateway.modules.features.aichat.serviceExtraction.extractors.extractorBinary,(relative) ..subRegistry,header,No -gateway.modules.features.aichat.serviceExtraction.extractors.extractorBinary,(relative) ..subUtils,header,No -gateway.modules.features.aichat.serviceExtraction.extractors.extractorBinary,base64,header,Yes -gateway.modules.features.aichat.serviceExtraction.extractors.extractorBinary,modules.datamodels.datamodelExtraction,header,Yes -gateway.modules.features.aichat.serviceExtraction.extractors.extractorBinary,typing,header,Yes -gateway.modules.features.aichat.serviceExtraction.extractors.extractorCsv,(relative) ..subRegistry,header,No -gateway.modules.features.aichat.serviceExtraction.extractors.extractorCsv,(relative) ..subUtils,header,No -gateway.modules.features.aichat.serviceExtraction.extractors.extractorCsv,modules.datamodels.datamodelExtraction,header,Yes -gateway.modules.features.aichat.serviceExtraction.extractors.extractorCsv,typing,header,Yes -gateway.modules.features.aichat.serviceExtraction.extractors.extractorDocx,(relative) ..subRegistry,header,No -gateway.modules.features.aichat.serviceExtraction.extractors.extractorDocx,(relative) ..subUtils,header,No -gateway.modules.features.aichat.serviceExtraction.extractors.extractorDocx,docx,function _load,Yes -gateway.modules.features.aichat.serviceExtraction.extractors.extractorDocx,io,header,Yes -gateway.modules.features.aichat.serviceExtraction.extractors.extractorDocx,modules.datamodels.datamodelExtraction,header,Yes -gateway.modules.features.aichat.serviceExtraction.extractors.extractorDocx,typing,header,Yes -gateway.modules.features.aichat.serviceExtraction.extractors.extractorHtml,(relative) ..subRegistry,header,No -gateway.modules.features.aichat.serviceExtraction.extractors.extractorHtml,(relative) ..subUtils,header,No -gateway.modules.features.aichat.serviceExtraction.extractors.extractorHtml,bs4,header,Yes -gateway.modules.features.aichat.serviceExtraction.extractors.extractorHtml,modules.datamodels.datamodelExtraction,header,Yes -gateway.modules.features.aichat.serviceExtraction.extractors.extractorHtml,typing,header,Yes -gateway.modules.features.aichat.serviceExtraction.extractors.extractorImage,(relative) ..subRegistry,header,No -gateway.modules.features.aichat.serviceExtraction.extractors.extractorImage,(relative) ..subUtils,header,No -gateway.modules.features.aichat.serviceExtraction.extractors.extractorImage,PIL,function extract,Yes -gateway.modules.features.aichat.serviceExtraction.extractors.extractorImage,base64,header,Yes -gateway.modules.features.aichat.serviceExtraction.extractors.extractorImage,io,function extract,Yes -gateway.modules.features.aichat.serviceExtraction.extractors.extractorImage,logging,header,Yes -gateway.modules.features.aichat.serviceExtraction.extractors.extractorImage,modules.datamodels.datamodelExtraction,header,Yes -gateway.modules.features.aichat.serviceExtraction.extractors.extractorImage,typing,header,Yes -gateway.modules.features.aichat.serviceExtraction.extractors.extractorJson,(relative) ..subRegistry,header,No -gateway.modules.features.aichat.serviceExtraction.extractors.extractorJson,(relative) ..subUtils,header,No -gateway.modules.features.aichat.serviceExtraction.extractors.extractorJson,json,header,Yes -gateway.modules.features.aichat.serviceExtraction.extractors.extractorJson,modules.datamodels.datamodelExtraction,header,Yes -gateway.modules.features.aichat.serviceExtraction.extractors.extractorJson,typing,header,Yes -gateway.modules.features.aichat.serviceExtraction.extractors.extractorPdf,(relative) ..subRegistry,header,No -gateway.modules.features.aichat.serviceExtraction.extractors.extractorPdf,(relative) ..subUtils,header,No -gateway.modules.features.aichat.serviceExtraction.extractors.extractorPdf,PyPDF2,function _load,Yes -gateway.modules.features.aichat.serviceExtraction.extractors.extractorPdf,base64,header,Yes -gateway.modules.features.aichat.serviceExtraction.extractors.extractorPdf,fitz,function _load,Yes -gateway.modules.features.aichat.serviceExtraction.extractors.extractorPdf,io,header,Yes -gateway.modules.features.aichat.serviceExtraction.extractors.extractorPdf,modules.datamodels.datamodelExtraction,header,Yes -gateway.modules.features.aichat.serviceExtraction.extractors.extractorPdf,typing,header,Yes -gateway.modules.features.aichat.serviceExtraction.extractors.extractorPptx,(relative) ..subRegistry,header,No -gateway.modules.features.aichat.serviceExtraction.extractors.extractorPptx,base64,header,Yes -gateway.modules.features.aichat.serviceExtraction.extractors.extractorPptx,io,function extract,Yes -gateway.modules.features.aichat.serviceExtraction.extractors.extractorPptx,logging,header,Yes -gateway.modules.features.aichat.serviceExtraction.extractors.extractorPptx,modules.datamodels.datamodelExtraction,header,Yes -gateway.modules.features.aichat.serviceExtraction.extractors.extractorPptx,pptx,function _load,Yes -gateway.modules.features.aichat.serviceExtraction.extractors.extractorPptx,typing,header,Yes -gateway.modules.features.aichat.serviceExtraction.extractors.extractorSql,(relative) ..subRegistry,header,No -gateway.modules.features.aichat.serviceExtraction.extractors.extractorSql,(relative) ..subUtils,header,No -gateway.modules.features.aichat.serviceExtraction.extractors.extractorSql,modules.datamodels.datamodelExtraction,header,Yes -gateway.modules.features.aichat.serviceExtraction.extractors.extractorSql,typing,header,Yes -gateway.modules.features.aichat.serviceExtraction.extractors.extractorText,(relative) ..subRegistry,header,No -gateway.modules.features.aichat.serviceExtraction.extractors.extractorText,(relative) ..subUtils,header,No -gateway.modules.features.aichat.serviceExtraction.extractors.extractorText,modules.datamodels.datamodelExtraction,header,Yes -gateway.modules.features.aichat.serviceExtraction.extractors.extractorText,typing,header,Yes -gateway.modules.features.aichat.serviceExtraction.extractors.extractorXlsx,(relative) ..subRegistry,header,No -gateway.modules.features.aichat.serviceExtraction.extractors.extractorXlsx,(relative) ..subUtils,header,No -gateway.modules.features.aichat.serviceExtraction.extractors.extractorXlsx,datetime,header,Yes -gateway.modules.features.aichat.serviceExtraction.extractors.extractorXlsx,io,header,Yes -gateway.modules.features.aichat.serviceExtraction.extractors.extractorXlsx,modules.datamodels.datamodelExtraction,header,Yes -gateway.modules.features.aichat.serviceExtraction.extractors.extractorXlsx,openpyxl,function _load,Yes -gateway.modules.features.aichat.serviceExtraction.extractors.extractorXlsx,typing,header,Yes -gateway.modules.features.aichat.serviceExtraction.extractors.extractorXml,(relative) ..subRegistry,header,No -gateway.modules.features.aichat.serviceExtraction.extractors.extractorXml,(relative) ..subUtils,header,No -gateway.modules.features.aichat.serviceExtraction.extractors.extractorXml,modules.datamodels.datamodelExtraction,header,Yes -gateway.modules.features.aichat.serviceExtraction.extractors.extractorXml,typing,header,Yes -gateway.modules.features.aichat.serviceExtraction.extractors.extractorXml,xml.etree.ElementTree,header,Yes -gateway.modules.features.aichat.serviceExtraction.mainServiceExtraction,(relative) .merging.mergerDefault,function applyMerging,Yes -gateway.modules.features.aichat.serviceExtraction.mainServiceExtraction,(relative) .merging.mergerTable,function applyMerging,Yes -gateway.modules.features.aichat.serviceExtraction.mainServiceExtraction,(relative) .merging.mergerText,function applyMerging,Yes -gateway.modules.features.aichat.serviceExtraction.mainServiceExtraction,(relative) .subMerger,function applyMerging,Yes -gateway.modules.features.aichat.serviceExtraction.mainServiceExtraction,(relative) .subPipeline,header,Yes -gateway.modules.features.aichat.serviceExtraction.mainServiceExtraction,(relative) .subRegistry,header,Yes -gateway.modules.features.aichat.serviceExtraction.mainServiceExtraction,asyncio,header,Yes -gateway.modules.features.aichat.serviceExtraction.mainServiceExtraction,base64,header,Yes -gateway.modules.features.aichat.serviceExtraction.mainServiceExtraction,json,header,Yes -gateway.modules.features.aichat.serviceExtraction.mainServiceExtraction,logging,header,Yes -gateway.modules.features.aichat.serviceExtraction.mainServiceExtraction,modules.datamodels.datamodelAi,header,Yes -gateway.modules.features.aichat.serviceExtraction.mainServiceExtraction,modules.datamodels.datamodelAi,function mergePartResults,Yes -gateway.modules.features.aichat.serviceExtraction.mainServiceExtraction,modules.datamodels.datamodelExtraction,header,Yes -gateway.modules.features.aichat.serviceExtraction.mainServiceExtraction,modules.features.aichat.aicore.aicoreModelRegistry,header,Yes -gateway.modules.features.aichat.serviceExtraction.mainServiceExtraction,modules.features.aichat.aicore.aicoreModelSelector,header,Yes -gateway.modules.features.aichat.serviceExtraction.mainServiceExtraction,modules.features.aichat.datamodelFeatureAiChat,header,Yes -gateway.modules.features.aichat.serviceExtraction.mainServiceExtraction,modules.interfaces.interfaceDbManagement,function extractContent,Yes -gateway.modules.features.aichat.serviceExtraction.mainServiceExtraction,modules.shared.debugLogger,function extractContent,Yes -gateway.modules.features.aichat.serviceExtraction.mainServiceExtraction,modules.shared.jsonUtils,header,Yes -gateway.modules.features.aichat.serviceExtraction.mainServiceExtraction,time,header,Yes -gateway.modules.features.aichat.serviceExtraction.mainServiceExtraction,typing,header,Yes -gateway.modules.features.aichat.serviceExtraction.mainServiceExtraction,uuid,header,Yes -gateway.modules.features.aichat.serviceExtraction.merging.mergerDefault,modules.datamodels.datamodelExtraction,header,Yes -gateway.modules.features.aichat.serviceExtraction.merging.mergerDefault,typing,header,Yes -gateway.modules.features.aichat.serviceExtraction.merging.mergerTable,(relative) ..subUtils,header,No -gateway.modules.features.aichat.serviceExtraction.merging.mergerTable,modules.datamodels.datamodelExtraction,header,Yes -gateway.modules.features.aichat.serviceExtraction.merging.mergerTable,typing,header,Yes -gateway.modules.features.aichat.serviceExtraction.merging.mergerText,(relative) ..subUtils,header,No -gateway.modules.features.aichat.serviceExtraction.merging.mergerText,modules.datamodels.datamodelExtraction,header,Yes -gateway.modules.features.aichat.serviceExtraction.merging.mergerText,typing,header,Yes -gateway.modules.features.aichat.serviceExtraction.subMerger,(relative) .subUtils,header,Yes -gateway.modules.features.aichat.serviceExtraction.subMerger,logging,header,Yes -gateway.modules.features.aichat.serviceExtraction.subMerger,modules.datamodels.datamodelExtraction,header,Yes -gateway.modules.features.aichat.serviceExtraction.subMerger,typing,header,Yes -gateway.modules.features.aichat.serviceExtraction.subPipeline,(relative) .mainServiceExtraction,function runExtraction,Yes -gateway.modules.features.aichat.serviceExtraction.subPipeline,(relative) .subRegistry,header,Yes -gateway.modules.features.aichat.serviceExtraction.subPipeline,(relative) .subUtils,header,Yes -gateway.modules.features.aichat.serviceExtraction.subPipeline,logging,header,Yes -gateway.modules.features.aichat.serviceExtraction.subPipeline,modules.datamodels.datamodelExtraction,header,Yes -gateway.modules.features.aichat.serviceExtraction.subPipeline,typing,header,Yes -gateway.modules.features.aichat.serviceExtraction.subPromptBuilderExtraction,json,header,Yes -gateway.modules.features.aichat.serviceExtraction.subPromptBuilderExtraction,logging,header,Yes -gateway.modules.features.aichat.serviceExtraction.subPromptBuilderExtraction,modules.datamodels.datamodelAi,header,Yes -gateway.modules.features.aichat.serviceExtraction.subPromptBuilderExtraction,modules.features.aichat.serviceGeneration.renderers.documentRendererBaseTemplate,header,Yes -gateway.modules.features.aichat.serviceExtraction.subPromptBuilderExtraction,modules.shared.debugLogger,function buildExtractionPrompt,Yes -gateway.modules.features.aichat.serviceExtraction.subPromptBuilderExtraction,typing,header,Yes -gateway.modules.features.aichat.serviceExtraction.subPromptBuilderExtraction,typing,header,Yes -gateway.modules.features.aichat.serviceExtraction.subRegistry,(relative) .chunking.chunkerImage,function __init__,Yes -gateway.modules.features.aichat.serviceExtraction.subRegistry,(relative) .chunking.chunkerStructure,function __init__,Yes -gateway.modules.features.aichat.serviceExtraction.subRegistry,(relative) .chunking.chunkerTable,function __init__,Yes -gateway.modules.features.aichat.serviceExtraction.subRegistry,(relative) .chunking.chunkerText,function __init__,Yes -gateway.modules.features.aichat.serviceExtraction.subRegistry,(relative) .extractors.extractorBinary,function _auto_discover_extractors,Yes -gateway.modules.features.aichat.serviceExtraction.subRegistry,importlib,function _auto_discover_extractors,Yes -gateway.modules.features.aichat.serviceExtraction.subRegistry,logging,header,Yes -gateway.modules.features.aichat.serviceExtraction.subRegistry,modules.datamodels.datamodelExtraction,header,Yes -gateway.modules.features.aichat.serviceExtraction.subRegistry,os,function _auto_discover_extractors,Yes -gateway.modules.features.aichat.serviceExtraction.subRegistry,pathlib,function _auto_discover_extractors,Yes -gateway.modules.features.aichat.serviceExtraction.subRegistry,traceback,function _auto_discover_extractors,Yes -gateway.modules.features.aichat.serviceExtraction.subRegistry,traceback,function __init__,Yes -gateway.modules.features.aichat.serviceExtraction.subRegistry,typing,header,Yes -gateway.modules.features.aichat.serviceExtraction.subUtils,uuid,header,Yes -gateway.modules.features.aichat.serviceGeneration.mainServiceGeneration,(relative) .renderers.registry,function _getFormatRenderer,Yes -gateway.modules.features.aichat.serviceGeneration.mainServiceGeneration,base64,header,Yes -gateway.modules.features.aichat.serviceGeneration.mainServiceGeneration,logging,header,Yes -gateway.modules.features.aichat.serviceGeneration.mainServiceGeneration,modules.datamodels.datamodelDocument,header,Yes -gateway.modules.features.aichat.serviceGeneration.mainServiceGeneration,modules.features.aichat.datamodelFeatureAiChat,header,Yes -gateway.modules.features.aichat.serviceGeneration.mainServiceGeneration,modules.features.aichat.serviceExtraction.subPromptBuilderExtraction,function getAdaptiveExtractionPrompt,Yes -gateway.modules.features.aichat.serviceGeneration.mainServiceGeneration,modules.features.aichat.serviceGeneration.renderers.registry,function renderReport,Yes -gateway.modules.features.aichat.serviceGeneration.mainServiceGeneration,modules.features.aichat.serviceGeneration.subContentGenerator,function generateDocumentWithTwoPhases,Yes -gateway.modules.features.aichat.serviceGeneration.mainServiceGeneration,modules.features.aichat.serviceGeneration.subDocumentUtility,header,Yes -gateway.modules.features.aichat.serviceGeneration.mainServiceGeneration,modules.features.aichat.serviceGeneration.subStructureGenerator,function generateDocumentWithTwoPhases,Yes -gateway.modules.features.aichat.serviceGeneration.mainServiceGeneration,traceback,header,Yes -gateway.modules.features.aichat.serviceGeneration.mainServiceGeneration,typing,header,Yes -gateway.modules.features.aichat.serviceGeneration.mainServiceGeneration,uuid,header,Yes -gateway.modules.features.aichat.serviceGeneration.paths.codePath,json,header,Yes -gateway.modules.features.aichat.serviceGeneration.paths.codePath,logging,header,Yes -gateway.modules.features.aichat.serviceGeneration.paths.codePath,modules.datamodels.datamodelAi,header,Yes -gateway.modules.features.aichat.serviceGeneration.paths.codePath,modules.datamodels.datamodelDocument,function generateCode,Yes -gateway.modules.features.aichat.serviceGeneration.paths.codePath,modules.datamodels.datamodelExtraction,header,Yes -gateway.modules.features.aichat.serviceGeneration.paths.codePath,modules.datamodels.datamodelWorkflow,header,Yes -gateway.modules.features.aichat.serviceGeneration.paths.codePath,modules.features.aichat.serviceGeneration.renderers.registry,function _getCodeRenderer,Yes -gateway.modules.features.aichat.serviceGeneration.paths.codePath,modules.shared.jsonContinuation,function _generateCodeStructure,Yes -gateway.modules.features.aichat.serviceGeneration.paths.codePath,modules.shared.jsonContinuation,function _generateSingleFileContent,Yes -gateway.modules.features.aichat.serviceGeneration.paths.codePath,modules.shared.jsonUtils,header,Yes -gateway.modules.features.aichat.serviceGeneration.paths.codePath,re,header,Yes -gateway.modules.features.aichat.serviceGeneration.paths.codePath,time,header,Yes -gateway.modules.features.aichat.serviceGeneration.paths.codePath,typing,header,Yes -gateway.modules.features.aichat.serviceGeneration.paths.documentPath,copy,header,Yes -gateway.modules.features.aichat.serviceGeneration.paths.documentPath,json,header,Yes -gateway.modules.features.aichat.serviceGeneration.paths.documentPath,logging,header,Yes -gateway.modules.features.aichat.serviceGeneration.paths.documentPath,modules.datamodels.datamodelAi,header,Yes -gateway.modules.features.aichat.serviceGeneration.paths.documentPath,modules.datamodels.datamodelDocument,header,Yes -gateway.modules.features.aichat.serviceGeneration.paths.documentPath,modules.datamodels.datamodelExtraction,header,Yes -gateway.modules.features.aichat.serviceGeneration.paths.documentPath,modules.datamodels.datamodelWorkflow,header,Yes -gateway.modules.features.aichat.serviceGeneration.paths.documentPath,modules.workflows.processing.shared.stateTools,header,Yes -gateway.modules.features.aichat.serviceGeneration.paths.documentPath,time,header,Yes -gateway.modules.features.aichat.serviceGeneration.paths.documentPath,typing,header,Yes -gateway.modules.features.aichat.serviceGeneration.paths.imagePath,base64,function generateImages,Yes -gateway.modules.features.aichat.serviceGeneration.paths.imagePath,json,function generateImages,Yes -gateway.modules.features.aichat.serviceGeneration.paths.imagePath,logging,header,Yes -gateway.modules.features.aichat.serviceGeneration.paths.imagePath,modules.datamodels.datamodelAi,header,Yes -gateway.modules.features.aichat.serviceGeneration.paths.imagePath,modules.datamodels.datamodelWorkflow,header,Yes -gateway.modules.features.aichat.serviceGeneration.paths.imagePath,time,header,Yes -gateway.modules.features.aichat.serviceGeneration.paths.imagePath,typing,header,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.codeRendererBaseTemplate,(relative) .documentRendererBaseTemplate,header,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.codeRendererBaseTemplate,abc,header,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.codeRendererBaseTemplate,logging,header,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.codeRendererBaseTemplate,modules.datamodels.datamodelDocument,header,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.codeRendererBaseTemplate,typing,header,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.documentRendererBaseTemplate,PIL,header,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.documentRendererBaseTemplate,abc,header,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.documentRendererBaseTemplate,base64,header,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.documentRendererBaseTemplate,datetime,header,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.documentRendererBaseTemplate,io,header,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.documentRendererBaseTemplate,json,header,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.documentRendererBaseTemplate,logging,header,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.documentRendererBaseTemplate,modules.datamodels.datamodelAi,header,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.documentRendererBaseTemplate,modules.datamodels.datamodelDocument,header,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.documentRendererBaseTemplate,modules.datamodels.datamodelJson,header,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.documentRendererBaseTemplate,modules.datamodels.datamodelJson,function getAcceptedSectionTypes,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.documentRendererBaseTemplate,re,header,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.documentRendererBaseTemplate,re,function _determineFilename,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.documentRendererBaseTemplate,threading,function _getAiStyles,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.documentRendererBaseTemplate,typing,header,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.registry,(relative) .documentRendererBaseTemplate,header,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.registry,importlib,header,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.registry,logging,header,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.registry,os,function discoverRenderers,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.registry,pathlib,function discoverRenderers,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.registry,sys,function discoverRenderers,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.registry,typing,header,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererCodeCsv,(relative) .codeRendererBaseTemplate,header,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererCodeCsv,(relative) .rendererCsv,function render,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererCodeCsv,csv,header,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererCodeCsv,io,header,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererCodeCsv,modules.datamodels.datamodelDocument,header,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererCodeCsv,typing,header,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererCodeJson,(relative) .codeRendererBaseTemplate,header,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererCodeJson,(relative) .rendererJson,function render,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererCodeJson,json,header,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererCodeJson,modules.datamodels.datamodelDocument,header,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererCodeJson,typing,header,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererCodeXml,(relative) .codeRendererBaseTemplate,header,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererCodeXml,modules.datamodels.datamodelDocument,header,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererCodeXml,typing,header,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererCodeXml,xml.dom,header,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererCodeXml,xml.etree.ElementTree,header,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererCsv,(relative) .documentRendererBaseTemplate,header,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererCsv,csv,function _convertRowsToCsv,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererCsv,io,function _convertRowsToCsv,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererCsv,modules.datamodels.datamodelDocument,header,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererCsv,typing,header,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererDocx,(relative) .documentRendererBaseTemplate,header,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererDocx,(relative) .rendererHtml,function render,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererDocx,PIL,function _renderJsonImage,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererDocx,base64,header,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererDocx,csv,header,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererDocx,docx,header,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererDocx,docx.enum.style,function _setupDocumentStyles,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererDocx,docx.enum.style,function _createStyle,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererDocx,docx.enum.table,header,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererDocx,docx.enum.text,header,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererDocx,docx.oxml.ns,function _renderTableFastXml,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererDocx,docx.oxml.shared,function _renderTableFastXml,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererDocx,docx.oxml.shared,function _createTableBordersXml,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererDocx,docx.oxml.shared,function _createTableRowXml,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererDocx,docx.oxml.shared,function _applyHorizontalBordersOnly,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererDocx,docx.oxml.shared,function _setCellBackground,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererDocx,docx.oxml.shared,function _setCellBackgroundFast,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererDocx,docx.shared,header,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererDocx,io,header,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererDocx,lxml,function _renderTableFastXml,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererDocx,modules.datamodels.datamodelDocument,header,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererDocx,modules.datamodels.datamodelJson,function getAcceptedSectionTypes,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererDocx,re,header,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererDocx,time,function _generateDocxFromJson,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererDocx,time,function _renderJsonTable,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererDocx,time,function _renderTableFastXml,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererDocx,typing,header,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererHtml,(relative) .documentRendererBaseTemplate,header,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererHtml,base64,function render,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererHtml,base64,function _replaceImageDataUris,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererHtml,html,function _renderJsonImage,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererHtml,html,function _replaceImageDataUris,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererHtml,modules.datamodels.datamodelDocument,header,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererHtml,modules.datamodels.datamodelJson,function getAcceptedSectionTypes,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererHtml,re,function _replaceImageDataUris,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererHtml,re,function _extractImages,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererHtml,typing,header,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererImage,(relative) .documentRendererBaseTemplate,header,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererImage,base64,header,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererImage,json,function _generateAiImage,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererImage,logging,header,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererImage,modules.datamodels.datamodelAi,function _generateAiImage,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererImage,modules.datamodels.datamodelAi,function _compressPromptWithAi,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererImage,modules.datamodels.datamodelDocument,header,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererImage,typing,header,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererJson,(relative) .documentRendererBaseTemplate,header,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererJson,json,header,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererJson,modules.datamodels.datamodelDocument,header,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererJson,modules.datamodels.datamodelJson,function getAcceptedSectionTypes,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererJson,typing,header,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererMarkdown,(relative) .documentRendererBaseTemplate,header,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererMarkdown,modules.datamodels.datamodelDocument,header,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererMarkdown,modules.datamodels.datamodelJson,function getAcceptedSectionTypes,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererMarkdown,typing,header,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererPdf,(relative) .documentRendererBaseTemplate,header,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererPdf,(relative) .rendererHtml,function render,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererPdf,PIL,function _renderJsonImage,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererPdf,base64,header,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererPdf,base64,function _renderJsonImage,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererPdf,io,header,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererPdf,io,function _renderJsonImage,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererPdf,json,function _getAiStylesWithPdfColors,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererPdf,modules.datamodels.datamodelAi,function _getAiStylesWithPdfColors,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererPdf,modules.datamodels.datamodelDocument,header,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererPdf,modules.datamodels.datamodelJson,function getAcceptedSectionTypes,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererPdf,re,function _getAiStylesWithPdfColors,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererPdf,re,function _renderJsonImage,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererPdf,reportlab.lib,header,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererPdf,reportlab.lib.enums,header,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererPdf,reportlab.lib.pagesizes,header,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererPdf,reportlab.lib.pagesizes,function _renderJsonImage,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererPdf,reportlab.lib.styles,header,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererPdf,reportlab.lib.units,header,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererPdf,reportlab.lib.units,function _renderJsonImage,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererPdf,reportlab.platypus,header,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererPdf,reportlab.platypus,function _renderJsonImage,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererPdf,typing,header,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererPptx,(relative) .documentRendererBaseTemplate,header,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererPptx,PIL,function _addImagesToSlide,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererPptx,PIL,function _addImagesToSlideInFrame,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererPptx,PIL,function _addImagesToSlideInFrame,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererPptx,base64,header,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererPptx,base64,function _addImagesToSlide,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererPptx,base64,function _addImagesToSlideInFrame,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererPptx,datetime,header,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererPptx,io,header,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererPptx,io,function _addImagesToSlide,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererPptx,io,function _addImagesToSlideInFrame,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererPptx,json,header,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererPptx,logging,header,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererPptx,modules.datamodels.datamodelDocument,header,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererPptx,modules.datamodels.datamodelJson,function getAcceptedSectionTypes,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererPptx,pptx,function render,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererPptx,pptx.dml.color,function render,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererPptx,pptx.dml.color,function _addImagesToSlide,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererPptx,pptx.dml.color,function _addTableToSlide,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererPptx,pptx.dml.color,function _addBulletListToSlide,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererPptx,pptx.dml.color,function _addHeadingToSlide,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererPptx,pptx.dml.color,function _addParagraphToSlide,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererPptx,pptx.dml.color,function _addCodeBlockToSlide,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererPptx,pptx.dml.color,function _renderSlideContentWithFrames,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererPptx,pptx.dml.color,function _renderTextSectionsInFrame,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererPptx,pptx.dml.color,function _renderSectionToTextFrame,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererPptx,pptx.enum.text,function render,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererPptx,pptx.enum.text,function _addImagesToSlide,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererPptx,pptx.enum.text,function _addTableToSlide,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererPptx,pptx.enum.text,function _addBulletListToSlide,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererPptx,pptx.enum.text,function _addParagraphToSlide,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererPptx,pptx.enum.text,function _renderSlideContentWithFrames,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererPptx,pptx.enum.text,function _renderTextSectionsInFrame,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererPptx,pptx.enum.text,function _renderSectionToTextFrame,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererPptx,pptx.enum.text,function _addImagesToSlideInFrame,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererPptx,pptx.util,function render,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererPptx,pptx.util,function _addImagesToSlide,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererPptx,pptx.util,function _addTableToSlide,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererPptx,pptx.util,function _addBulletListToSlide,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererPptx,pptx.util,function _addHeadingToSlide,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererPptx,pptx.util,function _addParagraphToSlide,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererPptx,pptx.util,function _addCodeBlockToSlide,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererPptx,pptx.util,function _renderSlideContentWithFrames,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererPptx,pptx.util,function _renderTextSectionsInFrame,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererPptx,pptx.util,function _renderSectionToTextFrame,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererPptx,pptx.util,function _addImagesToSlideInFrame,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererPptx,pptx.util,function render,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererPptx,pptx.util,function render,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererPptx,pptx.util,function _renderSlideContentWithFrames,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererPptx,pptx.util,function _addBulletListToSlide,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererPptx,re,header,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererPptx,re,function render,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererPptx,traceback,function _addImagesToSlide,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererPptx,typing,header,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererText,(relative) .documentRendererBaseTemplate,header,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererText,modules.datamodels.datamodelDocument,header,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererText,modules.datamodels.datamodelJson,function getAcceptedSectionTypes,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererText,typing,header,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererXlsx,(relative) .documentRendererBaseTemplate,header,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererXlsx,(relative) .rendererCsv,function render,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererXlsx,base64,header,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererXlsx,base64,function _addImageToExcel,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererXlsx,datetime,header,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererXlsx,dateutil,header,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererXlsx,io,header,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererXlsx,io,function _addImageToExcel,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererXlsx,json,function _getAiStylesWithExcelColors,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererXlsx,modules.datamodels.datamodelAi,function _getAiStylesWithExcelColors,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererXlsx,modules.datamodels.datamodelDocument,header,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererXlsx,modules.datamodels.datamodelJson,function getAcceptedSectionTypes,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererXlsx,openpyxl,header,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererXlsx,openpyxl.drawing.image,function _addImageToExcel,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererXlsx,openpyxl.styles,header,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererXlsx,openpyxl.utils,header,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererXlsx,openpyxl.worksheet.table,header,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererXlsx,re,header,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererXlsx,re,function _getAiStylesWithExcelColors,Yes -gateway.modules.features.aichat.serviceGeneration.renderers.rendererXlsx,typing,header,Yes -gateway.modules.features.aichat.serviceGeneration.subContentGenerator,asyncio,header,Yes -gateway.modules.features.aichat.serviceGeneration.subContentGenerator,base64,header,Yes -gateway.modules.features.aichat.serviceGeneration.subContentGenerator,base64,function _generateImageSection,Yes -gateway.modules.features.aichat.serviceGeneration.subContentGenerator,json,header,Yes -gateway.modules.features.aichat.serviceGeneration.subContentGenerator,logging,header,Yes -gateway.modules.features.aichat.serviceGeneration.subContentGenerator,modules.datamodels.datamodelAi,function _generateSimpleSection,Yes -gateway.modules.features.aichat.serviceGeneration.subContentGenerator,modules.datamodels.datamodelAi,function _generateImageSection,Yes -gateway.modules.features.aichat.serviceGeneration.subContentGenerator,modules.features.aichat.serviceGeneration.subContentIntegrator,header,Yes -gateway.modules.features.aichat.serviceGeneration.subContentGenerator,modules.shared.jsonUtils,function _generateSimpleSection,Yes -gateway.modules.features.aichat.serviceGeneration.subContentGenerator,modules.workflows.processing.shared.stateTools,header,Yes -gateway.modules.features.aichat.serviceGeneration.subContentGenerator,re,header,Yes -gateway.modules.features.aichat.serviceGeneration.subContentGenerator,traceback,header,Yes -gateway.modules.features.aichat.serviceGeneration.subContentGenerator,typing,header,Yes -gateway.modules.features.aichat.serviceGeneration.subContentIntegrator,json,function integrateContent,Yes -gateway.modules.features.aichat.serviceGeneration.subContentIntegrator,logging,header,Yes -gateway.modules.features.aichat.serviceGeneration.subContentIntegrator,typing,header,Yes -gateway.modules.features.aichat.serviceGeneration.subDocumentUtility,csv,function convertDocumentDataToString,Yes -gateway.modules.features.aichat.serviceGeneration.subDocumentUtility,csv,function convertDocumentDataToString,Yes -gateway.modules.features.aichat.serviceGeneration.subDocumentUtility,io,function convertDocumentDataToString,Yes -gateway.modules.features.aichat.serviceGeneration.subDocumentUtility,io,function convertDocumentDataToString,Yes -gateway.modules.features.aichat.serviceGeneration.subDocumentUtility,json,header,Yes -gateway.modules.features.aichat.serviceGeneration.subDocumentUtility,logging,header,Yes -gateway.modules.features.aichat.serviceGeneration.subDocumentUtility,os,header,Yes -gateway.modules.features.aichat.serviceGeneration.subDocumentUtility,typing,header,Yes -gateway.modules.features.aichat.serviceGeneration.subJsonSchema,typing,header,Yes -gateway.modules.features.aichat.serviceGeneration.subPromptBuilderGeneration,logging,header,Yes -gateway.modules.features.aichat.serviceGeneration.subPromptBuilderGeneration,modules.datamodels.datamodelJson,header,Yes -gateway.modules.features.aichat.serviceGeneration.subPromptBuilderGeneration,typing,header,Yes -gateway.modules.features.aichat.serviceGeneration.subStructureGenerator,json,header,Yes -gateway.modules.features.aichat.serviceGeneration.subStructureGenerator,json,function _createStructurePrompt,Yes -gateway.modules.features.aichat.serviceGeneration.subStructureGenerator,logging,header,Yes -gateway.modules.features.aichat.serviceGeneration.subStructureGenerator,modules.datamodels.datamodelAi,function generateStructure,Yes -gateway.modules.features.aichat.serviceGeneration.subStructureGenerator,modules.datamodels.datamodelJson,header,Yes -gateway.modules.features.aichat.serviceGeneration.subStructureGenerator,typing,header,Yes -gateway.modules.features.aichat.serviceWeb.mainServiceWeb,asyncio,header,Yes -gateway.modules.features.aichat.serviceWeb.mainServiceWeb,json,header,Yes -gateway.modules.features.aichat.serviceWeb.mainServiceWeb,logging,header,Yes -gateway.modules.features.aichat.serviceWeb.mainServiceWeb,modules.datamodels.datamodelAi,header,Yes -gateway.modules.features.aichat.serviceWeb.mainServiceWeb,time,header,Yes -gateway.modules.features.aichat.serviceWeb.mainServiceWeb,time,function _processCrawlResultsWithHierarchy,Yes -gateway.modules.features.aichat.serviceWeb.mainServiceWeb,typing,header,Yes -gateway.modules.features.aichat.serviceWeb.mainServiceWeb,urllib.parse,header,Yes gateway.modules.features.automation.mainAutomation,logging,header,Yes gateway.modules.features.automation.mainAutomation,typing,header,Yes gateway.modules.features.automation.routeFeatureAutomation,(relative) .subAutomationTemplates,header,Yes @@ -934,10 +933,10 @@ gateway.modules.features.automation.routeFeatureAutomation,fastapi.responses,hea gateway.modules.features.automation.routeFeatureAutomation,fastapi.responses,function get_automations,Yes gateway.modules.features.automation.routeFeatureAutomation,json,header,Yes gateway.modules.features.automation.routeFeatureAutomation,logging,header,Yes +gateway.modules.features.automation.routeFeatureAutomation,modules.aichat.datamodelFeatureAiChat,header,Yes +gateway.modules.features.automation.routeFeatureAutomation,modules.aichat.interfaceFeatureAiChat,header,Yes gateway.modules.features.automation.routeFeatureAutomation,modules.auth,header,Yes gateway.modules.features.automation.routeFeatureAutomation,modules.datamodels.datamodelPagination,header,Yes -gateway.modules.features.automation.routeFeatureAutomation,modules.features.aichat.datamodelFeatureAiChat,header,Yes -gateway.modules.features.automation.routeFeatureAutomation,modules.features.aichat.interfaceFeatureAiChat,header,Yes gateway.modules.features.automation.routeFeatureAutomation,modules.services,function execute_automation,Yes gateway.modules.features.automation.routeFeatureAutomation,modules.shared.attributeUtils,header,Yes gateway.modules.features.automation.routeFeatureAutomation,modules.workflows.automation,header,Yes @@ -993,12 +992,12 @@ gateway.modules.features.chatbot.mainChatbot,asyncio,header,Yes gateway.modules.features.chatbot.mainChatbot,base64,header,Yes gateway.modules.features.chatbot.mainChatbot,json,header,Yes gateway.modules.features.chatbot.mainChatbot,logging,header,Yes +gateway.modules.features.chatbot.mainChatbot,modules.aichat.datamodelFeatureAiChat,header,Yes +gateway.modules.features.chatbot.mainChatbot,modules.aichat.datamodelFeatureAiChat,function _emit_log_and_event,Yes gateway.modules.features.chatbot.mainChatbot,modules.connectors.connectorPreprocessor,header,Yes gateway.modules.features.chatbot.mainChatbot,modules.datamodels.datamodelAi,header,Yes gateway.modules.features.chatbot.mainChatbot,modules.datamodels.datamodelDocref,header,Yes gateway.modules.features.chatbot.mainChatbot,modules.datamodels.datamodelUam,header,Yes -gateway.modules.features.chatbot.mainChatbot,modules.features.aichat.datamodelFeatureAiChat,header,Yes -gateway.modules.features.chatbot.mainChatbot,modules.features.aichat.datamodelFeatureAiChat,function _emit_log_and_event,Yes gateway.modules.features.chatbot.mainChatbot,modules.features.chatbot.chatbotConstants,header,Yes gateway.modules.features.chatbot.mainChatbot,modules.features.chatbot.chatbotConstants,function _processChatbotMessage,Yes gateway.modules.features.chatbot.mainChatbot,modules.features.chatbot.eventManager,header,Yes @@ -1026,9 +1025,6 @@ gateway.modules.features.chatbot.routeFeatureChatbot,modules.interfaces.interfac gateway.modules.features.chatbot.routeFeatureChatbot,modules.shared.timeUtils,header,Yes gateway.modules.features.chatbot.routeFeatureChatbot,modules.workflows.automation,header,Yes gateway.modules.features.chatbot.routeFeatureChatbot,typing,header,Yes -gateway.modules.features.dynamicOptions.mainDynamicOptions,logging,header,Yes -gateway.modules.features.dynamicOptions.mainDynamicOptions,modules.datamodels.datamodelUam,header,Yes -gateway.modules.features.dynamicOptions.mainDynamicOptions,typing,header,Yes gateway.modules.features.featureRegistry,fastapi,header,Yes gateway.modules.features.featureRegistry,glob,header,Yes gateway.modules.features.featureRegistry,importlib,header,Yes @@ -1039,6 +1035,11 @@ gateway.modules.features.neutralizer.datamodelFeatureNeutralizer,modules.shared. gateway.modules.features.neutralizer.datamodelFeatureNeutralizer,pydantic,header,Yes gateway.modules.features.neutralizer.datamodelFeatureNeutralizer,typing,header,Yes gateway.modules.features.neutralizer.datamodelFeatureNeutralizer,uuid,header,Yes +gateway.modules.features.neutralizer.interfaceFeatureNeutralizer,logging,header,Yes +gateway.modules.features.neutralizer.interfaceFeatureNeutralizer,modules.features.neutralizer.datamodelFeatureNeutralizer,header,Yes +gateway.modules.features.neutralizer.interfaceFeatureNeutralizer,modules.interfaces.interfaceRbac,header,Yes +gateway.modules.features.neutralizer.interfaceFeatureNeutralizer,modules.shared.timeUtils,header,Yes +gateway.modules.features.neutralizer.interfaceFeatureNeutralizer,typing,header,Yes gateway.modules.features.neutralizer.mainNeutralizePlayground,(relative) .datamodelFeatureNeutralizer,header,Yes gateway.modules.features.neutralizer.mainNeutralizePlayground,asyncio,header,Yes gateway.modules.features.neutralizer.mainNeutralizePlayground,logging,header,Yes @@ -1064,6 +1065,7 @@ gateway.modules.features.neutralizer.serviceNeutralization.mainServiceNeutraliza gateway.modules.features.neutralizer.serviceNeutralization.mainServiceNeutralization,json,header,Yes gateway.modules.features.neutralizer.serviceNeutralization.mainServiceNeutralization,logging,header,Yes gateway.modules.features.neutralizer.serviceNeutralization.mainServiceNeutralization,modules.features.neutralizer.datamodelFeatureNeutralizer,header,Yes +gateway.modules.features.neutralizer.serviceNeutralization.mainServiceNeutralization,modules.features.neutralizer.interfaceFeatureNeutralizer,header,Yes gateway.modules.features.neutralizer.serviceNeutralization.mainServiceNeutralization,re,header,Yes gateway.modules.features.neutralizer.serviceNeutralization.mainServiceNeutralization,typing,header,Yes gateway.modules.features.neutralizer.serviceNeutralization.subParseString,(relative) .subPatterns,header,Yes @@ -1099,66 +1101,66 @@ gateway.modules.features.neutralizer.serviceNeutralization.subProcessList,xml.et gateway.modules.features.neutralizer.serviceNeutralization.subProcessText,(relative) .subParseString,header,Yes gateway.modules.features.neutralizer.serviceNeutralization.subProcessText,dataclasses,header,Yes gateway.modules.features.neutralizer.serviceNeutralization.subProcessText,typing,header,Yes -gateway.modules.features.realEstate.datamodelFeatureRealEstate,enum,header,Yes -gateway.modules.features.realEstate.datamodelFeatureRealEstate,modules.shared.attributeUtils,header,Yes -gateway.modules.features.realEstate.datamodelFeatureRealEstate,modules.shared.timeUtils,header,Yes -gateway.modules.features.realEstate.datamodelFeatureRealEstate,pydantic,header,Yes -gateway.modules.features.realEstate.datamodelFeatureRealEstate,typing,header,Yes -gateway.modules.features.realEstate.datamodelFeatureRealEstate,uuid,header,Yes -gateway.modules.features.realEstate.interfaceFeatureRealEstate,(relative) .datamodelFeatureRealEstate,header,Yes -gateway.modules.features.realEstate.interfaceFeatureRealEstate,logging,header,Yes -gateway.modules.features.realEstate.interfaceFeatureRealEstate,modules.connectors.connectorDbPostgre,header,Yes -gateway.modules.features.realEstate.interfaceFeatureRealEstate,modules.datamodels.datamodelRbac,header,Yes -gateway.modules.features.realEstate.interfaceFeatureRealEstate,modules.datamodels.datamodelUam,header,Yes -gateway.modules.features.realEstate.interfaceFeatureRealEstate,modules.datamodels.datamodelUam,header,Yes -gateway.modules.features.realEstate.interfaceFeatureRealEstate,modules.interfaces.interfaceRbac,header,Yes -gateway.modules.features.realEstate.interfaceFeatureRealEstate,modules.security.rbac,header,Yes -gateway.modules.features.realEstate.interfaceFeatureRealEstate,modules.security.rootAccess,function setUserContext,Yes -gateway.modules.features.realEstate.interfaceFeatureRealEstate,modules.shared.configuration,header,Yes -gateway.modules.features.realEstate.interfaceFeatureRealEstate,re,function _isUUID,Yes -gateway.modules.features.realEstate.interfaceFeatureRealEstate,time,function executeQuery,Yes -gateway.modules.features.realEstate.interfaceFeatureRealEstate,typing,header,Yes -gateway.modules.features.realEstate.mainRealEstate,(relative) .datamodelFeatureRealEstate,header,Yes -gateway.modules.features.realEstate.mainRealEstate,(relative) .interfaceFeatureRealEstate,header,Yes -gateway.modules.features.realEstate.mainRealEstate,fastapi,header,Yes -gateway.modules.features.realEstate.mainRealEstate,json,header,Yes -gateway.modules.features.realEstate.mainRealEstate,logging,header,Yes -gateway.modules.features.realEstate.mainRealEstate,modules.connectors.connectorSwissTopoMapServer,header,Yes -gateway.modules.features.realEstate.mainRealEstate,modules.datamodels.datamodelUam,header,Yes -gateway.modules.features.realEstate.mainRealEstate,modules.features.realestate.datamodelFeatureRealEstate,function executeIntentBasedOperation,Yes -gateway.modules.features.realEstate.mainRealEstate,modules.features.realestate.datamodelFeatureRealEstate,function executeIntentBasedOperation,Yes -gateway.modules.features.realEstate.mainRealEstate,modules.features.realestate.datamodelFeatureRealEstate,function executeIntentBasedOperation,Yes -gateway.modules.features.realEstate.mainRealEstate,modules.features.realestate.datamodelFeatureRealEstate,function executeIntentBasedOperation,Yes -gateway.modules.features.realEstate.mainRealEstate,modules.features.realestate.datamodelFeatureRealEstate,function executeIntentBasedOperation,Yes -gateway.modules.features.realEstate.mainRealEstate,modules.features.realestate.datamodelFeatureRealEstate,function executeIntentBasedOperation,Yes -gateway.modules.features.realEstate.mainRealEstate,modules.features.realestate.datamodelFeatureRealEstate,function executeIntentBasedOperation,Yes -gateway.modules.features.realEstate.mainRealEstate,modules.features.realestate.datamodelFeatureRealEstate,function executeIntentBasedOperation,Yes -gateway.modules.features.realEstate.mainRealEstate,modules.features.realestate.datamodelFeatureRealEstate,function executeIntentBasedOperation,Yes -gateway.modules.features.realEstate.mainRealEstate,modules.features.realestate.datamodelFeatureRealEstate,function executeIntentBasedOperation,Yes -gateway.modules.features.realEstate.mainRealEstate,modules.features.realestate.datamodelFeatureRealEstate,function executeIntentBasedOperation,Yes -gateway.modules.features.realEstate.mainRealEstate,modules.features.realestate.datamodelFeatureRealEstate,function executeIntentBasedOperation,Yes -gateway.modules.features.realEstate.mainRealEstate,modules.features.realestate.datamodelFeatureRealEstate,function executeIntentBasedOperation,Yes -gateway.modules.features.realEstate.mainRealEstate,modules.features.realestate.datamodelFeatureRealEstate,function executeIntentBasedOperation,Yes -gateway.modules.features.realEstate.mainRealEstate,modules.features.realestate.datamodelFeatureRealEstate,function executeIntentBasedOperation,Yes -gateway.modules.features.realEstate.mainRealEstate,modules.features.realestate.datamodelFeatureRealEstate,function executeIntentBasedOperation,Yes -gateway.modules.features.realEstate.mainRealEstate,modules.features.realestate.datamodelFeatureRealEstate,function executeIntentBasedOperation,Yes -gateway.modules.features.realEstate.mainRealEstate,modules.services,header,Yes -gateway.modules.features.realEstate.mainRealEstate,re,function executeIntentBasedOperation,Yes -gateway.modules.features.realEstate.mainRealEstate,shapely.geometry,header,Yes -gateway.modules.features.realEstate.mainRealEstate,shapely.ops,header,Yes -gateway.modules.features.realEstate.mainRealEstate,typing,header,Yes -gateway.modules.features.realEstate.routeFeatureRealEstate,(relative) .datamodelFeatureRealEstate,header,Yes -gateway.modules.features.realEstate.routeFeatureRealEstate,(relative) .interfaceFeatureRealEstate,header,Yes -gateway.modules.features.realEstate.routeFeatureRealEstate,(relative) .mainRealEstate,header,Yes -gateway.modules.features.realEstate.routeFeatureRealEstate,fastapi,header,Yes -gateway.modules.features.realEstate.routeFeatureRealEstate,json,header,Yes -gateway.modules.features.realEstate.routeFeatureRealEstate,logging,header,Yes -gateway.modules.features.realEstate.routeFeatureRealEstate,modules.auth,header,Yes -gateway.modules.features.realEstate.routeFeatureRealEstate,modules.connectors.connectorSwissTopoMapServer,header,Yes -gateway.modules.features.realEstate.routeFeatureRealEstate,modules.datamodels.datamodelPagination,header,Yes -gateway.modules.features.realEstate.routeFeatureRealEstate,modules.shared.attributeUtils,header,Yes -gateway.modules.features.realEstate.routeFeatureRealEstate,requests,header,Yes -gateway.modules.features.realEstate.routeFeatureRealEstate,typing,header,Yes +gateway.modules.features.realestate.datamodelFeatureRealEstate,enum,header,Yes +gateway.modules.features.realestate.datamodelFeatureRealEstate,modules.shared.attributeUtils,header,Yes +gateway.modules.features.realestate.datamodelFeatureRealEstate,modules.shared.timeUtils,header,Yes +gateway.modules.features.realestate.datamodelFeatureRealEstate,pydantic,header,Yes +gateway.modules.features.realestate.datamodelFeatureRealEstate,typing,header,Yes +gateway.modules.features.realestate.datamodelFeatureRealEstate,uuid,header,Yes +gateway.modules.features.realestate.interfaceFeatureRealEstate,(relative) .datamodelFeatureRealEstate,header,Yes +gateway.modules.features.realestate.interfaceFeatureRealEstate,logging,header,Yes +gateway.modules.features.realestate.interfaceFeatureRealEstate,modules.connectors.connectorDbPostgre,header,Yes +gateway.modules.features.realestate.interfaceFeatureRealEstate,modules.datamodels.datamodelRbac,header,Yes +gateway.modules.features.realestate.interfaceFeatureRealEstate,modules.datamodels.datamodelUam,header,Yes +gateway.modules.features.realestate.interfaceFeatureRealEstate,modules.datamodels.datamodelUam,header,Yes +gateway.modules.features.realestate.interfaceFeatureRealEstate,modules.interfaces.interfaceRbac,header,Yes +gateway.modules.features.realestate.interfaceFeatureRealEstate,modules.security.rbac,header,Yes +gateway.modules.features.realestate.interfaceFeatureRealEstate,modules.security.rootAccess,function setUserContext,Yes +gateway.modules.features.realestate.interfaceFeatureRealEstate,modules.shared.configuration,header,Yes +gateway.modules.features.realestate.interfaceFeatureRealEstate,re,function _isUUID,Yes +gateway.modules.features.realestate.interfaceFeatureRealEstate,time,function executeQuery,Yes +gateway.modules.features.realestate.interfaceFeatureRealEstate,typing,header,Yes +gateway.modules.features.realestate.mainRealEstate,(relative) .datamodelFeatureRealEstate,header,Yes +gateway.modules.features.realestate.mainRealEstate,(relative) .interfaceFeatureRealEstate,header,Yes +gateway.modules.features.realestate.mainRealEstate,fastapi,header,Yes +gateway.modules.features.realestate.mainRealEstate,json,header,Yes +gateway.modules.features.realestate.mainRealEstate,logging,header,Yes +gateway.modules.features.realestate.mainRealEstate,modules.connectors.connectorSwissTopoMapServer,header,Yes +gateway.modules.features.realestate.mainRealEstate,modules.datamodels.datamodelUam,header,Yes +gateway.modules.features.realestate.mainRealEstate,modules.features.realestate.datamodelFeatureRealEstate,function executeIntentBasedOperation,Yes +gateway.modules.features.realestate.mainRealEstate,modules.features.realestate.datamodelFeatureRealEstate,function executeIntentBasedOperation,Yes +gateway.modules.features.realestate.mainRealEstate,modules.features.realestate.datamodelFeatureRealEstate,function executeIntentBasedOperation,Yes +gateway.modules.features.realestate.mainRealEstate,modules.features.realestate.datamodelFeatureRealEstate,function executeIntentBasedOperation,Yes +gateway.modules.features.realestate.mainRealEstate,modules.features.realestate.datamodelFeatureRealEstate,function executeIntentBasedOperation,Yes +gateway.modules.features.realestate.mainRealEstate,modules.features.realestate.datamodelFeatureRealEstate,function executeIntentBasedOperation,Yes +gateway.modules.features.realestate.mainRealEstate,modules.features.realestate.datamodelFeatureRealEstate,function executeIntentBasedOperation,Yes +gateway.modules.features.realestate.mainRealEstate,modules.features.realestate.datamodelFeatureRealEstate,function executeIntentBasedOperation,Yes +gateway.modules.features.realestate.mainRealEstate,modules.features.realestate.datamodelFeatureRealEstate,function executeIntentBasedOperation,Yes +gateway.modules.features.realestate.mainRealEstate,modules.features.realestate.datamodelFeatureRealEstate,function executeIntentBasedOperation,Yes +gateway.modules.features.realestate.mainRealEstate,modules.features.realestate.datamodelFeatureRealEstate,function executeIntentBasedOperation,Yes +gateway.modules.features.realestate.mainRealEstate,modules.features.realestate.datamodelFeatureRealEstate,function executeIntentBasedOperation,Yes +gateway.modules.features.realestate.mainRealEstate,modules.features.realestate.datamodelFeatureRealEstate,function executeIntentBasedOperation,Yes +gateway.modules.features.realestate.mainRealEstate,modules.features.realestate.datamodelFeatureRealEstate,function executeIntentBasedOperation,Yes +gateway.modules.features.realestate.mainRealEstate,modules.features.realestate.datamodelFeatureRealEstate,function executeIntentBasedOperation,Yes +gateway.modules.features.realestate.mainRealEstate,modules.features.realestate.datamodelFeatureRealEstate,function executeIntentBasedOperation,Yes +gateway.modules.features.realestate.mainRealEstate,modules.features.realestate.datamodelFeatureRealEstate,function executeIntentBasedOperation,Yes +gateway.modules.features.realestate.mainRealEstate,modules.services,header,Yes +gateway.modules.features.realestate.mainRealEstate,re,function executeIntentBasedOperation,Yes +gateway.modules.features.realestate.mainRealEstate,shapely.geometry,header,Yes +gateway.modules.features.realestate.mainRealEstate,shapely.ops,header,Yes +gateway.modules.features.realestate.mainRealEstate,typing,header,Yes +gateway.modules.features.realestate.routeFeatureRealEstate,(relative) .datamodelFeatureRealEstate,header,Yes +gateway.modules.features.realestate.routeFeatureRealEstate,(relative) .interfaceFeatureRealEstate,header,Yes +gateway.modules.features.realestate.routeFeatureRealEstate,(relative) .mainRealEstate,header,Yes +gateway.modules.features.realestate.routeFeatureRealEstate,fastapi,header,Yes +gateway.modules.features.realestate.routeFeatureRealEstate,json,header,Yes +gateway.modules.features.realestate.routeFeatureRealEstate,logging,header,Yes +gateway.modules.features.realestate.routeFeatureRealEstate,modules.auth,header,Yes +gateway.modules.features.realestate.routeFeatureRealEstate,modules.connectors.connectorSwissTopoMapServer,header,Yes +gateway.modules.features.realestate.routeFeatureRealEstate,modules.datamodels.datamodelPagination,header,Yes +gateway.modules.features.realestate.routeFeatureRealEstate,modules.shared.attributeUtils,header,Yes +gateway.modules.features.realestate.routeFeatureRealEstate,requests,header,Yes +gateway.modules.features.realestate.routeFeatureRealEstate,typing,header,Yes gateway.modules.features.trustee.datamodelFeatureTrustee,modules.shared.attributeUtils,header,Yes gateway.modules.features.trustee.datamodelFeatureTrustee,pydantic,header,Yes gateway.modules.features.trustee.datamodelFeatureTrustee,typing,header,Yes @@ -1201,10 +1203,10 @@ gateway.modules.interfaces.interfaceAiObjects,asyncio,header,Yes gateway.modules.interfaces.interfaceAiObjects,base64,header,Yes gateway.modules.interfaces.interfaceAiObjects,dataclasses,header,Yes gateway.modules.interfaces.interfaceAiObjects,logging,header,Yes +gateway.modules.interfaces.interfaceAiObjects,modules.aichat.aicore.aicoreModelRegistry,header,Yes +gateway.modules.interfaces.interfaceAiObjects,modules.aichat.aicore.aicoreModelSelector,header,Yes gateway.modules.interfaces.interfaceAiObjects,modules.datamodels.datamodelAi,header,Yes gateway.modules.interfaces.interfaceAiObjects,modules.datamodels.datamodelExtraction,header,Yes -gateway.modules.interfaces.interfaceAiObjects,modules.features.aichat.aicore.aicoreModelRegistry,header,Yes -gateway.modules.interfaces.interfaceAiObjects,modules.features.aichat.aicore.aicoreModelSelector,header,Yes gateway.modules.interfaces.interfaceAiObjects,time,header,Yes gateway.modules.interfaces.interfaceAiObjects,typing,header,Yes gateway.modules.interfaces.interfaceAiObjects,uuid,header,Yes @@ -1229,7 +1231,6 @@ gateway.modules.interfaces.interfaceDbApp,modules.datamodels.datamodelRbac,heade gateway.modules.interfaces.interfaceDbApp,modules.datamodels.datamodelSecurity,header,Yes gateway.modules.interfaces.interfaceDbApp,modules.datamodels.datamodelUam,header,Yes gateway.modules.interfaces.interfaceDbApp,modules.datamodels.datamodelUam,header,Yes -gateway.modules.interfaces.interfaceDbApp,modules.features.neutralizer.datamodelFeatureNeutralizer,header,Yes gateway.modules.interfaces.interfaceDbApp,modules.interfaces.interfaceBootstrap,header,Yes gateway.modules.interfaces.interfaceDbApp,modules.interfaces.interfaceRbac,header,Yes gateway.modules.interfaces.interfaceDbApp,modules.security.rbac,header,Yes @@ -1308,10 +1309,10 @@ gateway.modules.routes.routeAdmin,typing,header,Yes gateway.modules.routes.routeAdminAutomationEvents,fastapi,header,Yes gateway.modules.routes.routeAdminAutomationEvents,fastapi,header,Yes gateway.modules.routes.routeAdminAutomationEvents,logging,header,Yes +gateway.modules.routes.routeAdminAutomationEvents,modules.aichat.interfaceFeatureAiChat,header,Yes +gateway.modules.routes.routeAdminAutomationEvents,modules.aichat.interfaceFeatureAiChat,function sync_all_automation_events,Yes gateway.modules.routes.routeAdminAutomationEvents,modules.auth,header,Yes gateway.modules.routes.routeAdminAutomationEvents,modules.datamodels.datamodelUam,header,Yes -gateway.modules.routes.routeAdminAutomationEvents,modules.features.aichat.interfaceFeatureAiChat,header,Yes -gateway.modules.routes.routeAdminAutomationEvents,modules.features.aichat.interfaceFeatureAiChat,function sync_all_automation_events,Yes gateway.modules.routes.routeAdminAutomationEvents,modules.interfaces.interfaceDbApp,function sync_all_automation_events,Yes gateway.modules.routes.routeAdminAutomationEvents,modules.services,function sync_all_automation_events,Yes gateway.modules.routes.routeAdminAutomationEvents,modules.shared.eventManagement,function get_all_automation_events,Yes @@ -1459,12 +1460,12 @@ gateway.modules.routes.routeDataUsers,typing,header,Yes gateway.modules.routes.routeDataWorkflows,fastapi,header,Yes gateway.modules.routes.routeDataWorkflows,json,header,Yes gateway.modules.routes.routeDataWorkflows,logging,header,Yes +gateway.modules.routes.routeDataWorkflows,modules.aichat.datamodelFeatureAiChat,header,Yes +gateway.modules.routes.routeDataWorkflows,modules.aichat.interfaceFeatureAiChat,header,Yes +gateway.modules.routes.routeDataWorkflows,modules.aichat.interfaceFeatureAiChat,header,Yes gateway.modules.routes.routeDataWorkflows,modules.auth,header,Yes gateway.modules.routes.routeDataWorkflows,modules.datamodels.datamodelPagination,header,Yes gateway.modules.routes.routeDataWorkflows,modules.datamodels.datamodelUam,header,Yes -gateway.modules.routes.routeDataWorkflows,modules.features.aichat.datamodelFeatureAiChat,header,Yes -gateway.modules.routes.routeDataWorkflows,modules.features.aichat.interfaceFeatureAiChat,header,Yes -gateway.modules.routes.routeDataWorkflows,modules.features.aichat.interfaceFeatureAiChat,header,Yes gateway.modules.routes.routeDataWorkflows,modules.interfaces.interfaceRbac,header,Yes gateway.modules.routes.routeDataWorkflows,modules.services,function get_all_actions,Yes gateway.modules.routes.routeDataWorkflows,modules.services,function get_method_actions,Yes @@ -1513,7 +1514,7 @@ gateway.modules.routes.routeInvitations,modules.datamodels.datamodelRbac,functio gateway.modules.routes.routeInvitations,modules.datamodels.datamodelRbac,function createInvitation,Yes gateway.modules.routes.routeInvitations,modules.datamodels.datamodelUam,header,Yes gateway.modules.routes.routeInvitations,modules.interfaces.interfaceDbApp,header,Yes -gateway.modules.routes.routeInvitations,modules.security.passwordUtils,function registerAndAcceptInvitation,No +gateway.modules.routes.routeInvitations,modules.security.passwordUtils,function registerAndAcceptInvitation,Yes gateway.modules.routes.routeInvitations,modules.shared.configuration,function createInvitation,Yes gateway.modules.routes.routeInvitations,modules.shared.configuration,function listInvitations,Yes gateway.modules.routes.routeInvitations,modules.shared.timeUtils,header,Yes @@ -1532,13 +1533,6 @@ gateway.modules.routes.routeMessaging,modules.interfaces.interfaceDbApp,function gateway.modules.routes.routeMessaging,modules.interfaces.interfaceDbManagement,header,Yes gateway.modules.routes.routeMessaging,modules.services,function triggerSubscription,Yes gateway.modules.routes.routeMessaging,typing,header,Yes -gateway.modules.routes.routeOptions,fastapi,header,Yes -gateway.modules.routes.routeOptions,logging,header,Yes -gateway.modules.routes.routeOptions,modules.auth,header,Yes -gateway.modules.routes.routeOptions,modules.datamodels.datamodelUam,header,Yes -gateway.modules.routes.routeOptions,modules.features.dynamicOptions.mainDynamicOptions,header,Yes -gateway.modules.routes.routeOptions,modules.services,header,Yes -gateway.modules.routes.routeOptions,typing,header,Yes gateway.modules.routes.routeSecurityAdmin,fastapi,header,Yes gateway.modules.routes.routeSecurityAdmin,fastapi.responses,header,Yes gateway.modules.routes.routeSecurityAdmin,logging,header,Yes @@ -1633,6 +1627,8 @@ gateway.modules.routes.routeVoiceGoogle,typing,header,Yes gateway.modules.security.__init__,(relative) .rbac,header,Yes gateway.modules.security.__init__,(relative) .rbacHelpers,header,Yes gateway.modules.security.__init__,(relative) .rootAccess,header,Yes +gateway.modules.security.passwordUtils,passlib.context,header,Yes +gateway.modules.security.passwordUtils,typing,header,Yes gateway.modules.security.rbac,logging,header,Yes gateway.modules.security.rbac,modules.connectors.connectorDbPostgre,header,Yes gateway.modules.security.rbac,modules.datamodels.datamodelMembership,header,Yes @@ -1661,18 +1657,18 @@ gateway.modules.services.__init__,(relative) .serviceUtils.mainServiceUtils,func gateway.modules.services.__init__,glob,header,Yes gateway.modules.services.__init__,importlib,header,Yes gateway.modules.services.__init__,logging,header,Yes +gateway.modules.services.__init__,modules.aichat.datamodelFeatureAiChat,header,Yes gateway.modules.services.__init__,modules.datamodels.datamodelUam,header,Yes -gateway.modules.services.__init__,modules.features.aichat.datamodelFeatureAiChat,header,Yes gateway.modules.services.__init__,modules.interfaces.interfaceDbApp,function __init__,Yes gateway.modules.services.__init__,modules.interfaces.interfaceDbManagement,function __init__,Yes gateway.modules.services.__init__,os,header,Yes gateway.modules.services.__init__,typing,header,Yes gateway.modules.services.serviceChat.mainServiceChat,json,function calculateObjectSize,Yes gateway.modules.services.serviceChat.mainServiceChat,logging,header,Yes +gateway.modules.services.serviceChat.mainServiceChat,modules.aichat.datamodelFeatureAiChat,header,Yes gateway.modules.services.serviceChat.mainServiceChat,modules.datamodels.datamodelAi,header,Yes gateway.modules.services.serviceChat.mainServiceChat,modules.datamodels.datamodelDocref,function getChatDocumentsFromDocumentList,Yes gateway.modules.services.serviceChat.mainServiceChat,modules.datamodels.datamodelUam,header,Yes -gateway.modules.services.serviceChat.mainServiceChat,modules.features.aichat.datamodelFeatureAiChat,header,Yes gateway.modules.services.serviceChat.mainServiceChat,modules.shared.progressLogger,header,Yes gateway.modules.services.serviceChat.mainServiceChat,sys,function calculateObjectSize,Yes gateway.modules.services.serviceChat.mainServiceChat,typing,header,Yes @@ -1705,8 +1701,8 @@ gateway.modules.services.serviceTicket.mainServiceTicket,modules.interfaces.inte gateway.modules.services.serviceTicket.mainServiceTicket,typing,header,Yes gateway.modules.services.serviceUtils.mainServiceUtils,json,function writeDebugArtifact,Yes gateway.modules.services.serviceUtils.mainServiceUtils,logging,header,Yes -gateway.modules.services.serviceUtils.mainServiceUtils,modules.features.aichat.interfaceFeatureAiChat,function storeDebugMessageAndDocuments,Yes -gateway.modules.services.serviceUtils.mainServiceUtils,modules.shared,header,No +gateway.modules.services.serviceUtils.mainServiceUtils,modules.aichat.interfaceFeatureAiChat,function storeDebugMessageAndDocuments,Yes +gateway.modules.services.serviceUtils.mainServiceUtils,modules.shared,header,Yes gateway.modules.services.serviceUtils.mainServiceUtils,modules.shared.configuration,header,Yes gateway.modules.services.serviceUtils.mainServiceUtils,modules.shared.debugLogger,function writeDebugFile,Yes gateway.modules.services.serviceUtils.mainServiceUtils,modules.shared.debugLogger,function debugLogToFile,Yes @@ -1715,6 +1711,18 @@ gateway.modules.services.serviceUtils.mainServiceUtils,modules.shared.eventManag gateway.modules.services.serviceUtils.mainServiceUtils,modules.shared.timeUtils,header,Yes gateway.modules.services.serviceUtils.mainServiceUtils,re,function sanitizePromptContent,Yes gateway.modules.services.serviceUtils.mainServiceUtils,typing,header,Yes +gateway.modules.shared.__init__,(relative) .,header,Yes +gateway.modules.shared.__init__,(relative) .,header,Yes +gateway.modules.shared.__init__,(relative) .,header,Yes +gateway.modules.shared.__init__,(relative) .,header,Yes +gateway.modules.shared.__init__,(relative) .,header,Yes +gateway.modules.shared.__init__,(relative) .,header,Yes +gateway.modules.shared.__init__,(relative) .,header,Yes +gateway.modules.shared.__init__,(relative) .,header,Yes +gateway.modules.shared.__init__,(relative) .,header,Yes +gateway.modules.shared.__init__,(relative) .,header,Yes +gateway.modules.shared.__init__,(relative) .,header,Yes +gateway.modules.shared.__init__,(relative) .,header,Yes gateway.modules.shared.attributeUtils,importlib,header,Yes gateway.modules.shared.attributeUtils,inspect,header,Yes gateway.modules.shared.attributeUtils,logging,header,Yes @@ -1762,9 +1770,6 @@ gateway.modules.shared.eventManagement,apscheduler.triggers.interval,header,Yes gateway.modules.shared.eventManagement,logging,header,Yes gateway.modules.shared.eventManagement,typing,header,Yes gateway.modules.shared.eventManagement,zoneinfo,header,Yes -gateway.modules.shared.frontendOptionsTypes,typing,header,Yes -gateway.modules.shared.frontendOptionsTypes,typing,header,Yes -gateway.modules.shared.frontendOptionsTypes,typing_extensions,header,Yes gateway.modules.shared.frontendTypes,enum,header,Yes gateway.modules.shared.frontendTypes,typing,header,Yes gateway.modules.shared.jsonContinuation,dataclasses,header,Yes @@ -1792,8 +1797,8 @@ gateway.modules.workflows.automation.__init__,(relative) .mainWorkflow,header,Ye gateway.modules.workflows.automation.mainWorkflow,(relative) .subAutomationUtils,header,Yes gateway.modules.workflows.automation.mainWorkflow,json,header,Yes gateway.modules.workflows.automation.mainWorkflow,logging,header,Yes +gateway.modules.workflows.automation.mainWorkflow,modules.aichat.datamodelFeatureAiChat,header,Yes gateway.modules.workflows.automation.mainWorkflow,modules.datamodels.datamodelUam,header,Yes -gateway.modules.workflows.automation.mainWorkflow,modules.features.aichat.datamodelFeatureAiChat,header,Yes gateway.modules.workflows.automation.mainWorkflow,modules.services,header,Yes gateway.modules.workflows.automation.mainWorkflow,modules.shared.eventManagement,header,Yes gateway.modules.workflows.automation.mainWorkflow,modules.shared.timeUtils,header,Yes @@ -1816,28 +1821,29 @@ gateway.modules.workflows.methods.methodAi.actions.__init__,(relative) .summariz gateway.modules.workflows.methods.methodAi.actions.__init__,(relative) .translateDocument,header,Yes gateway.modules.workflows.methods.methodAi.actions.__init__,(relative) .webResearch,header,Yes gateway.modules.workflows.methods.methodAi.actions.convertDocument,logging,header,Yes -gateway.modules.workflows.methods.methodAi.actions.convertDocument,modules.features.aichat.datamodelFeatureAiChat,header,Yes +gateway.modules.workflows.methods.methodAi.actions.convertDocument,modules.aichat.datamodelFeatureAiChat,header,Yes gateway.modules.workflows.methods.methodAi.actions.convertDocument,typing,header,Yes gateway.modules.workflows.methods.methodAi.actions.generateCode,logging,header,Yes +gateway.modules.workflows.methods.methodAi.actions.generateCode,modules.aichat.datamodelFeatureAiChat,header,Yes gateway.modules.workflows.methods.methodAi.actions.generateCode,modules.datamodels.datamodelAi,header,Yes gateway.modules.workflows.methods.methodAi.actions.generateCode,modules.datamodels.datamodelDocref,function generateCode,Yes gateway.modules.workflows.methods.methodAi.actions.generateCode,modules.datamodels.datamodelExtraction,header,Yes gateway.modules.workflows.methods.methodAi.actions.generateCode,modules.datamodels.datamodelWorkflow,header,Yes -gateway.modules.workflows.methods.methodAi.actions.generateCode,modules.features.aichat.datamodelFeatureAiChat,header,Yes gateway.modules.workflows.methods.methodAi.actions.generateCode,re,function generateCode,Yes gateway.modules.workflows.methods.methodAi.actions.generateCode,time,header,Yes gateway.modules.workflows.methods.methodAi.actions.generateCode,typing,header,Yes gateway.modules.workflows.methods.methodAi.actions.generateDocument,logging,header,Yes +gateway.modules.workflows.methods.methodAi.actions.generateDocument,modules.aichat.datamodelFeatureAiChat,header,Yes gateway.modules.workflows.methods.methodAi.actions.generateDocument,modules.datamodels.datamodelAi,header,Yes gateway.modules.workflows.methods.methodAi.actions.generateDocument,modules.datamodels.datamodelDocref,function generateDocument,Yes gateway.modules.workflows.methods.methodAi.actions.generateDocument,modules.datamodels.datamodelExtraction,header,Yes gateway.modules.workflows.methods.methodAi.actions.generateDocument,modules.datamodels.datamodelWorkflow,header,Yes -gateway.modules.workflows.methods.methodAi.actions.generateDocument,modules.features.aichat.datamodelFeatureAiChat,header,Yes gateway.modules.workflows.methods.methodAi.actions.generateDocument,re,function generateDocument,Yes gateway.modules.workflows.methods.methodAi.actions.generateDocument,time,header,Yes gateway.modules.workflows.methods.methodAi.actions.generateDocument,typing,header,Yes gateway.modules.workflows.methods.methodAi.actions.process,json,header,Yes gateway.modules.workflows.methods.methodAi.actions.process,logging,header,Yes +gateway.modules.workflows.methods.methodAi.actions.process,modules.aichat.datamodelFeatureAiChat,header,Yes gateway.modules.workflows.methods.methodAi.actions.process,modules.datamodels.datamodelAi,header,Yes gateway.modules.workflows.methods.methodAi.actions.process,modules.datamodels.datamodelAi,function process,Yes gateway.modules.workflows.methods.methodAi.actions.process,modules.datamodels.datamodelAi,function process,Yes @@ -1845,17 +1851,16 @@ gateway.modules.workflows.methods.methodAi.actions.process,modules.datamodels.da gateway.modules.workflows.methods.methodAi.actions.process,modules.datamodels.datamodelDocref,function process,Yes gateway.modules.workflows.methods.methodAi.actions.process,modules.datamodels.datamodelExtraction,header,Yes gateway.modules.workflows.methods.methodAi.actions.process,modules.datamodels.datamodelWorkflow,function process,Yes -gateway.modules.workflows.methods.methodAi.actions.process,modules.features.aichat.datamodelFeatureAiChat,header,Yes gateway.modules.workflows.methods.methodAi.actions.process,time,header,Yes gateway.modules.workflows.methods.methodAi.actions.process,typing,header,Yes gateway.modules.workflows.methods.methodAi.actions.summarizeDocument,logging,header,Yes -gateway.modules.workflows.methods.methodAi.actions.summarizeDocument,modules.features.aichat.datamodelFeatureAiChat,header,Yes +gateway.modules.workflows.methods.methodAi.actions.summarizeDocument,modules.aichat.datamodelFeatureAiChat,header,Yes gateway.modules.workflows.methods.methodAi.actions.summarizeDocument,typing,header,Yes gateway.modules.workflows.methods.methodAi.actions.translateDocument,logging,header,Yes -gateway.modules.workflows.methods.methodAi.actions.translateDocument,modules.features.aichat.datamodelFeatureAiChat,header,Yes +gateway.modules.workflows.methods.methodAi.actions.translateDocument,modules.aichat.datamodelFeatureAiChat,header,Yes gateway.modules.workflows.methods.methodAi.actions.translateDocument,typing,header,Yes gateway.modules.workflows.methods.methodAi.actions.webResearch,logging,header,Yes -gateway.modules.workflows.methods.methodAi.actions.webResearch,modules.features.aichat.datamodelFeatureAiChat,header,Yes +gateway.modules.workflows.methods.methodAi.actions.webResearch,modules.aichat.datamodelFeatureAiChat,header,Yes gateway.modules.workflows.methods.methodAi.actions.webResearch,re,header,Yes gateway.modules.workflows.methods.methodAi.actions.webResearch,time,header,Yes gateway.modules.workflows.methods.methodAi.actions.webResearch,typing,header,Yes @@ -1886,9 +1891,9 @@ gateway.modules.workflows.methods.methodBase,typing,header,Yes gateway.modules.workflows.methods.methodChatbot.__init__,(relative) .methodChatbot,header,Yes gateway.modules.workflows.methods.methodChatbot.actions.queryDatabase,json,header,Yes gateway.modules.workflows.methods.methodChatbot.actions.queryDatabase,logging,header,Yes +gateway.modules.workflows.methods.methodChatbot.actions.queryDatabase,modules.aichat.datamodelFeatureAiChat,header,Yes gateway.modules.workflows.methods.methodChatbot.actions.queryDatabase,modules.connectors.connectorPreprocessor,header,Yes gateway.modules.workflows.methods.methodChatbot.actions.queryDatabase,modules.datamodels.datamodelDocref,function queryDatabase,Yes -gateway.modules.workflows.methods.methodChatbot.actions.queryDatabase,modules.features.aichat.datamodelFeatureAiChat,header,Yes gateway.modules.workflows.methods.methodChatbot.actions.queryDatabase,modules.workflows.methods.methodBase,header,Yes gateway.modules.workflows.methods.methodChatbot.actions.queryDatabase,time,header,Yes gateway.modules.workflows.methods.methodChatbot.actions.queryDatabase,typing,header,Yes @@ -1903,25 +1908,25 @@ gateway.modules.workflows.methods.methodContext.actions.__init__,(relative) .get gateway.modules.workflows.methods.methodContext.actions.__init__,(relative) .neutralizeData,header,Yes gateway.modules.workflows.methods.methodContext.actions.__init__,(relative) .triggerPreprocessingServer,header,Yes gateway.modules.workflows.methods.methodContext.actions.extractContent,logging,header,Yes +gateway.modules.workflows.methods.methodContext.actions.extractContent,modules.aichat.datamodelFeatureAiChat,header,Yes gateway.modules.workflows.methods.methodContext.actions.extractContent,modules.datamodels.datamodelDocref,header,Yes gateway.modules.workflows.methods.methodContext.actions.extractContent,modules.datamodels.datamodelExtraction,header,Yes -gateway.modules.workflows.methods.methodContext.actions.extractContent,modules.features.aichat.datamodelFeatureAiChat,header,Yes gateway.modules.workflows.methods.methodContext.actions.extractContent,time,header,Yes gateway.modules.workflows.methods.methodContext.actions.extractContent,typing,header,Yes gateway.modules.workflows.methods.methodContext.actions.getDocumentIndex,json,header,Yes gateway.modules.workflows.methods.methodContext.actions.getDocumentIndex,logging,header,Yes -gateway.modules.workflows.methods.methodContext.actions.getDocumentIndex,modules.features.aichat.datamodelFeatureAiChat,header,Yes +gateway.modules.workflows.methods.methodContext.actions.getDocumentIndex,modules.aichat.datamodelFeatureAiChat,header,Yes gateway.modules.workflows.methods.methodContext.actions.getDocumentIndex,typing,header,Yes gateway.modules.workflows.methods.methodContext.actions.neutralizeData,logging,header,Yes +gateway.modules.workflows.methods.methodContext.actions.neutralizeData,modules.aichat.datamodelFeatureAiChat,header,Yes gateway.modules.workflows.methods.methodContext.actions.neutralizeData,modules.datamodels.datamodelDocref,header,Yes gateway.modules.workflows.methods.methodContext.actions.neutralizeData,modules.datamodels.datamodelExtraction,header,Yes -gateway.modules.workflows.methods.methodContext.actions.neutralizeData,modules.features.aichat.datamodelFeatureAiChat,header,Yes gateway.modules.workflows.methods.methodContext.actions.neutralizeData,time,header,Yes gateway.modules.workflows.methods.methodContext.actions.neutralizeData,typing,header,Yes gateway.modules.workflows.methods.methodContext.actions.triggerPreprocessingServer,aiohttp,header,Yes gateway.modules.workflows.methods.methodContext.actions.triggerPreprocessingServer,json,header,Yes gateway.modules.workflows.methods.methodContext.actions.triggerPreprocessingServer,logging,header,Yes -gateway.modules.workflows.methods.methodContext.actions.triggerPreprocessingServer,modules.features.aichat.datamodelFeatureAiChat,header,Yes +gateway.modules.workflows.methods.methodContext.actions.triggerPreprocessingServer,modules.aichat.datamodelFeatureAiChat,header,Yes gateway.modules.workflows.methods.methodContext.actions.triggerPreprocessingServer,modules.shared.configuration,header,Yes gateway.modules.workflows.methods.methodContext.actions.triggerPreprocessingServer,typing,header,Yes gateway.modules.workflows.methods.methodContext.helpers.documentIndex,datetime,header,Yes @@ -1950,7 +1955,7 @@ gateway.modules.workflows.methods.methodJira.actions.__init__,(relative) .parseC gateway.modules.workflows.methods.methodJira.actions.__init__,(relative) .parseExcelContent,header,Yes gateway.modules.workflows.methods.methodJira.actions.connectJira,json,header,Yes gateway.modules.workflows.methods.methodJira.actions.connectJira,logging,header,Yes -gateway.modules.workflows.methods.methodJira.actions.connectJira,modules.features.aichat.datamodelFeatureAiChat,header,Yes +gateway.modules.workflows.methods.methodJira.actions.connectJira,modules.aichat.datamodelFeatureAiChat,header,Yes gateway.modules.workflows.methods.methodJira.actions.connectJira,modules.shared.configuration,header,Yes gateway.modules.workflows.methods.methodJira.actions.connectJira,typing,header,Yes gateway.modules.workflows.methods.methodJira.actions.connectJira,uuid,header,Yes @@ -1960,7 +1965,7 @@ gateway.modules.workflows.methods.methodJira.actions.createCsvContent,datetime,h gateway.modules.workflows.methods.methodJira.actions.createCsvContent,io,header,Yes gateway.modules.workflows.methods.methodJira.actions.createCsvContent,json,header,Yes gateway.modules.workflows.methods.methodJira.actions.createCsvContent,logging,header,Yes -gateway.modules.workflows.methods.methodJira.actions.createCsvContent,modules.features.aichat.datamodelFeatureAiChat,header,Yes +gateway.modules.workflows.methods.methodJira.actions.createCsvContent,modules.aichat.datamodelFeatureAiChat,header,Yes gateway.modules.workflows.methods.methodJira.actions.createCsvContent,pandas,header,Yes gateway.modules.workflows.methods.methodJira.actions.createCsvContent,typing,header,Yes gateway.modules.workflows.methods.methodJira.actions.createExcelContent,base64,header,Yes @@ -1969,31 +1974,31 @@ gateway.modules.workflows.methods.methodJira.actions.createExcelContent,datetime gateway.modules.workflows.methods.methodJira.actions.createExcelContent,io,header,Yes gateway.modules.workflows.methods.methodJira.actions.createExcelContent,json,header,Yes gateway.modules.workflows.methods.methodJira.actions.createExcelContent,logging,header,Yes -gateway.modules.workflows.methods.methodJira.actions.createExcelContent,modules.features.aichat.datamodelFeatureAiChat,header,Yes +gateway.modules.workflows.methods.methodJira.actions.createExcelContent,modules.aichat.datamodelFeatureAiChat,header,Yes gateway.modules.workflows.methods.methodJira.actions.createExcelContent,pandas,header,Yes gateway.modules.workflows.methods.methodJira.actions.createExcelContent,typing,header,Yes gateway.modules.workflows.methods.methodJira.actions.exportTicketsAsJson,json,header,Yes gateway.modules.workflows.methods.methodJira.actions.exportTicketsAsJson,logging,header,Yes -gateway.modules.workflows.methods.methodJira.actions.exportTicketsAsJson,modules.features.aichat.datamodelFeatureAiChat,header,Yes +gateway.modules.workflows.methods.methodJira.actions.exportTicketsAsJson,modules.aichat.datamodelFeatureAiChat,header,Yes gateway.modules.workflows.methods.methodJira.actions.exportTicketsAsJson,typing,header,Yes gateway.modules.workflows.methods.methodJira.actions.importTicketsFromJson,json,header,Yes gateway.modules.workflows.methods.methodJira.actions.importTicketsFromJson,logging,header,Yes -gateway.modules.workflows.methods.methodJira.actions.importTicketsFromJson,modules.features.aichat.datamodelFeatureAiChat,header,Yes +gateway.modules.workflows.methods.methodJira.actions.importTicketsFromJson,modules.aichat.datamodelFeatureAiChat,header,Yes gateway.modules.workflows.methods.methodJira.actions.importTicketsFromJson,typing,header,Yes gateway.modules.workflows.methods.methodJira.actions.mergeTicketData,json,header,Yes gateway.modules.workflows.methods.methodJira.actions.mergeTicketData,logging,header,Yes -gateway.modules.workflows.methods.methodJira.actions.mergeTicketData,modules.features.aichat.datamodelFeatureAiChat,header,Yes +gateway.modules.workflows.methods.methodJira.actions.mergeTicketData,modules.aichat.datamodelFeatureAiChat,header,Yes gateway.modules.workflows.methods.methodJira.actions.mergeTicketData,typing,header,Yes gateway.modules.workflows.methods.methodJira.actions.parseCsvContent,io,header,Yes gateway.modules.workflows.methods.methodJira.actions.parseCsvContent,json,header,Yes gateway.modules.workflows.methods.methodJira.actions.parseCsvContent,logging,header,Yes -gateway.modules.workflows.methods.methodJira.actions.parseCsvContent,modules.features.aichat.datamodelFeatureAiChat,header,Yes +gateway.modules.workflows.methods.methodJira.actions.parseCsvContent,modules.aichat.datamodelFeatureAiChat,header,Yes gateway.modules.workflows.methods.methodJira.actions.parseCsvContent,pandas,header,Yes gateway.modules.workflows.methods.methodJira.actions.parseCsvContent,typing,header,Yes gateway.modules.workflows.methods.methodJira.actions.parseExcelContent,io,header,Yes gateway.modules.workflows.methods.methodJira.actions.parseExcelContent,json,header,Yes gateway.modules.workflows.methods.methodJira.actions.parseExcelContent,logging,header,Yes -gateway.modules.workflows.methods.methodJira.actions.parseExcelContent,modules.features.aichat.datamodelFeatureAiChat,header,Yes +gateway.modules.workflows.methods.methodJira.actions.parseExcelContent,modules.aichat.datamodelFeatureAiChat,header,Yes gateway.modules.workflows.methods.methodJira.actions.parseExcelContent,pandas,header,Yes gateway.modules.workflows.methods.methodJira.actions.parseExcelContent,typing,header,Yes gateway.modules.workflows.methods.methodJira.helpers.adfConverter,logging,header,Yes @@ -2025,30 +2030,30 @@ gateway.modules.workflows.methods.methodOutlook.actions.__init__,(relative) .sen gateway.modules.workflows.methods.methodOutlook.actions.composeAndDraftEmailWithContext,base64,header,Yes gateway.modules.workflows.methods.methodOutlook.actions.composeAndDraftEmailWithContext,json,header,Yes gateway.modules.workflows.methods.methodOutlook.actions.composeAndDraftEmailWithContext,logging,header,Yes +gateway.modules.workflows.methods.methodOutlook.actions.composeAndDraftEmailWithContext,modules.aichat.datamodelFeatureAiChat,header,Yes gateway.modules.workflows.methods.methodOutlook.actions.composeAndDraftEmailWithContext,modules.datamodels.datamodelDocref,function composeAndDraftEmailWithContext,Yes gateway.modules.workflows.methods.methodOutlook.actions.composeAndDraftEmailWithContext,modules.datamodels.datamodelDocref,function composeAndDraftEmailWithContext,Yes gateway.modules.workflows.methods.methodOutlook.actions.composeAndDraftEmailWithContext,modules.datamodels.datamodelDocref,function composeAndDraftEmailWithContext,Yes gateway.modules.workflows.methods.methodOutlook.actions.composeAndDraftEmailWithContext,modules.datamodels.datamodelDocref,function composeAndDraftEmailWithContext,Yes gateway.modules.workflows.methods.methodOutlook.actions.composeAndDraftEmailWithContext,modules.datamodels.datamodelDocref,function composeAndDraftEmailWithContext,Yes gateway.modules.workflows.methods.methodOutlook.actions.composeAndDraftEmailWithContext,modules.datamodels.datamodelDocref,function composeAndDraftEmailWithContext,Yes -gateway.modules.workflows.methods.methodOutlook.actions.composeAndDraftEmailWithContext,modules.features.aichat.datamodelFeatureAiChat,header,Yes gateway.modules.workflows.methods.methodOutlook.actions.composeAndDraftEmailWithContext,requests,header,Yes gateway.modules.workflows.methods.methodOutlook.actions.composeAndDraftEmailWithContext,typing,header,Yes gateway.modules.workflows.methods.methodOutlook.actions.readEmails,json,header,Yes gateway.modules.workflows.methods.methodOutlook.actions.readEmails,logging,header,Yes -gateway.modules.workflows.methods.methodOutlook.actions.readEmails,modules.features.aichat.datamodelFeatureAiChat,header,Yes +gateway.modules.workflows.methods.methodOutlook.actions.readEmails,modules.aichat.datamodelFeatureAiChat,header,Yes gateway.modules.workflows.methods.methodOutlook.actions.readEmails,requests,header,Yes gateway.modules.workflows.methods.methodOutlook.actions.readEmails,time,header,Yes gateway.modules.workflows.methods.methodOutlook.actions.readEmails,typing,header,Yes gateway.modules.workflows.methods.methodOutlook.actions.searchEmails,json,header,Yes gateway.modules.workflows.methods.methodOutlook.actions.searchEmails,logging,header,Yes -gateway.modules.workflows.methods.methodOutlook.actions.searchEmails,modules.features.aichat.datamodelFeatureAiChat,header,Yes +gateway.modules.workflows.methods.methodOutlook.actions.searchEmails,modules.aichat.datamodelFeatureAiChat,header,Yes gateway.modules.workflows.methods.methodOutlook.actions.searchEmails,requests,header,Yes gateway.modules.workflows.methods.methodOutlook.actions.searchEmails,typing,header,Yes gateway.modules.workflows.methods.methodOutlook.actions.sendDraftEmail,json,header,Yes gateway.modules.workflows.methods.methodOutlook.actions.sendDraftEmail,logging,header,Yes +gateway.modules.workflows.methods.methodOutlook.actions.sendDraftEmail,modules.aichat.datamodelFeatureAiChat,header,Yes gateway.modules.workflows.methods.methodOutlook.actions.sendDraftEmail,modules.datamodels.datamodelDocref,function sendDraftEmail,Yes -gateway.modules.workflows.methods.methodOutlook.actions.sendDraftEmail,modules.features.aichat.datamodelFeatureAiChat,header,Yes gateway.modules.workflows.methods.methodOutlook.actions.sendDraftEmail,requests,header,Yes gateway.modules.workflows.methods.methodOutlook.actions.sendDraftEmail,time,header,Yes gateway.modules.workflows.methods.methodOutlook.actions.sendDraftEmail,typing,header,Yes @@ -2086,55 +2091,55 @@ gateway.modules.workflows.methods.methodSharepoint.actions.__init__,(relative) . gateway.modules.workflows.methods.methodSharepoint.actions.analyzeFolderUsage,datetime,header,Yes gateway.modules.workflows.methods.methodSharepoint.actions.analyzeFolderUsage,json,header,Yes gateway.modules.workflows.methods.methodSharepoint.actions.analyzeFolderUsage,logging,header,Yes -gateway.modules.workflows.methods.methodSharepoint.actions.analyzeFolderUsage,modules.features.aichat.datamodelFeatureAiChat,header,Yes +gateway.modules.workflows.methods.methodSharepoint.actions.analyzeFolderUsage,modules.aichat.datamodelFeatureAiChat,header,Yes gateway.modules.workflows.methods.methodSharepoint.actions.analyzeFolderUsage,time,header,Yes gateway.modules.workflows.methods.methodSharepoint.actions.analyzeFolderUsage,typing,header,Yes gateway.modules.workflows.methods.methodSharepoint.actions.copyFile,json,header,Yes gateway.modules.workflows.methods.methodSharepoint.actions.copyFile,logging,header,Yes +gateway.modules.workflows.methods.methodSharepoint.actions.copyFile,modules.aichat.datamodelFeatureAiChat,header,Yes gateway.modules.workflows.methods.methodSharepoint.actions.copyFile,modules.datamodels.datamodelDocref,function copyFile,Yes -gateway.modules.workflows.methods.methodSharepoint.actions.copyFile,modules.features.aichat.datamodelFeatureAiChat,header,Yes gateway.modules.workflows.methods.methodSharepoint.actions.copyFile,typing,header,Yes gateway.modules.workflows.methods.methodSharepoint.actions.downloadFileByPath,base64,header,Yes gateway.modules.workflows.methods.methodSharepoint.actions.downloadFileByPath,json,header,Yes gateway.modules.workflows.methods.methodSharepoint.actions.downloadFileByPath,logging,header,Yes +gateway.modules.workflows.methods.methodSharepoint.actions.downloadFileByPath,modules.aichat.datamodelFeatureAiChat,header,Yes gateway.modules.workflows.methods.methodSharepoint.actions.downloadFileByPath,modules.datamodels.datamodelDocref,function downloadFileByPath,Yes -gateway.modules.workflows.methods.methodSharepoint.actions.downloadFileByPath,modules.features.aichat.datamodelFeatureAiChat,header,Yes gateway.modules.workflows.methods.methodSharepoint.actions.downloadFileByPath,os,header,Yes gateway.modules.workflows.methods.methodSharepoint.actions.downloadFileByPath,typing,header,Yes gateway.modules.workflows.methods.methodSharepoint.actions.findDocumentPath,json,header,Yes gateway.modules.workflows.methods.methodSharepoint.actions.findDocumentPath,logging,header,Yes -gateway.modules.workflows.methods.methodSharepoint.actions.findDocumentPath,modules.features.aichat.datamodelFeatureAiChat,header,Yes +gateway.modules.workflows.methods.methodSharepoint.actions.findDocumentPath,modules.aichat.datamodelFeatureAiChat,header,Yes gateway.modules.workflows.methods.methodSharepoint.actions.findDocumentPath,time,header,Yes gateway.modules.workflows.methods.methodSharepoint.actions.findDocumentPath,typing,header,Yes gateway.modules.workflows.methods.methodSharepoint.actions.findDocumentPath,urllib.parse,header,Yes gateway.modules.workflows.methods.methodSharepoint.actions.findSiteByUrl,json,header,Yes gateway.modules.workflows.methods.methodSharepoint.actions.findSiteByUrl,logging,header,Yes -gateway.modules.workflows.methods.methodSharepoint.actions.findSiteByUrl,modules.features.aichat.datamodelFeatureAiChat,header,Yes +gateway.modules.workflows.methods.methodSharepoint.actions.findSiteByUrl,modules.aichat.datamodelFeatureAiChat,header,Yes gateway.modules.workflows.methods.methodSharepoint.actions.findSiteByUrl,typing,header,Yes gateway.modules.workflows.methods.methodSharepoint.actions.listDocuments,json,header,Yes gateway.modules.workflows.methods.methodSharepoint.actions.listDocuments,logging,header,Yes -gateway.modules.workflows.methods.methodSharepoint.actions.listDocuments,modules.features.aichat.datamodelFeatureAiChat,header,Yes +gateway.modules.workflows.methods.methodSharepoint.actions.listDocuments,modules.aichat.datamodelFeatureAiChat,header,Yes gateway.modules.workflows.methods.methodSharepoint.actions.listDocuments,time,header,Yes gateway.modules.workflows.methods.methodSharepoint.actions.listDocuments,typing,header,Yes gateway.modules.workflows.methods.methodSharepoint.actions.listDocuments,urllib.parse,header,Yes gateway.modules.workflows.methods.methodSharepoint.actions.readDocuments,base64,header,Yes gateway.modules.workflows.methods.methodSharepoint.actions.readDocuments,json,header,Yes gateway.modules.workflows.methods.methodSharepoint.actions.readDocuments,logging,header,Yes -gateway.modules.workflows.methods.methodSharepoint.actions.readDocuments,modules.features.aichat.datamodelFeatureAiChat,header,Yes +gateway.modules.workflows.methods.methodSharepoint.actions.readDocuments,modules.aichat.datamodelFeatureAiChat,header,Yes gateway.modules.workflows.methods.methodSharepoint.actions.readDocuments,time,header,Yes gateway.modules.workflows.methods.methodSharepoint.actions.readDocuments,typing,header,Yes gateway.modules.workflows.methods.methodSharepoint.actions.uploadDocument,json,header,Yes gateway.modules.workflows.methods.methodSharepoint.actions.uploadDocument,logging,header,Yes -gateway.modules.workflows.methods.methodSharepoint.actions.uploadDocument,modules.features.aichat.datamodelFeatureAiChat,header,Yes +gateway.modules.workflows.methods.methodSharepoint.actions.uploadDocument,modules.aichat.datamodelFeatureAiChat,header,Yes gateway.modules.workflows.methods.methodSharepoint.actions.uploadDocument,time,header,Yes gateway.modules.workflows.methods.methodSharepoint.actions.uploadDocument,typing,header,Yes gateway.modules.workflows.methods.methodSharepoint.actions.uploadDocument,urllib.parse,header,Yes gateway.modules.workflows.methods.methodSharepoint.actions.uploadFile,base64,header,Yes gateway.modules.workflows.methods.methodSharepoint.actions.uploadFile,json,header,Yes gateway.modules.workflows.methods.methodSharepoint.actions.uploadFile,logging,header,Yes +gateway.modules.workflows.methods.methodSharepoint.actions.uploadFile,modules.aichat.datamodelFeatureAiChat,header,Yes gateway.modules.workflows.methods.methodSharepoint.actions.uploadFile,modules.datamodels.datamodelDocref,function uploadFile,Yes gateway.modules.workflows.methods.methodSharepoint.actions.uploadFile,modules.datamodels.datamodelDocref,function uploadFile,Yes -gateway.modules.workflows.methods.methodSharepoint.actions.uploadFile,modules.features.aichat.datamodelFeatureAiChat,header,Yes gateway.modules.workflows.methods.methodSharepoint.actions.uploadFile,typing,header,Yes gateway.modules.workflows.methods.methodSharepoint.helpers.apiClient,aiohttp,header,Yes gateway.modules.workflows.methods.methodSharepoint.helpers.apiClient,asyncio,header,Yes @@ -2193,23 +2198,23 @@ gateway.modules.workflows.processing.adaptive.progressTracker,datetime,header,Ye gateway.modules.workflows.processing.adaptive.progressTracker,logging,header,Yes gateway.modules.workflows.processing.adaptive.progressTracker,typing,header,Yes gateway.modules.workflows.processing.core.actionExecutor,logging,header,Yes -gateway.modules.workflows.processing.core.actionExecutor,modules.features.aichat.datamodelFeatureAiChat,header,Yes -gateway.modules.workflows.processing.core.actionExecutor,modules.features.aichat.datamodelFeatureAiChat,header,Yes +gateway.modules.workflows.processing.core.actionExecutor,modules.aichat.datamodelFeatureAiChat,header,Yes +gateway.modules.workflows.processing.core.actionExecutor,modules.aichat.datamodelFeatureAiChat,header,Yes gateway.modules.workflows.processing.core.actionExecutor,modules.workflows.processing.core.messageCreator,function _createActionCompletionMessage,Yes gateway.modules.workflows.processing.core.actionExecutor,modules.workflows.processing.shared.methodDiscovery,header,Yes gateway.modules.workflows.processing.core.actionExecutor,modules.workflows.processing.shared.stateTools,header,Yes gateway.modules.workflows.processing.core.actionExecutor,time,function executeSingleAction,Yes gateway.modules.workflows.processing.core.actionExecutor,typing,header,Yes gateway.modules.workflows.processing.core.messageCreator,logging,header,Yes -gateway.modules.workflows.processing.core.messageCreator,modules.features.aichat.datamodelFeatureAiChat,header,Yes -gateway.modules.workflows.processing.core.messageCreator,modules.features.aichat.datamodelFeatureAiChat,header,Yes +gateway.modules.workflows.processing.core.messageCreator,modules.aichat.datamodelFeatureAiChat,header,Yes +gateway.modules.workflows.processing.core.messageCreator,modules.aichat.datamodelFeatureAiChat,header,Yes gateway.modules.workflows.processing.core.messageCreator,modules.workflows.processing.shared.stateTools,header,Yes gateway.modules.workflows.processing.core.messageCreator,typing,header,Yes gateway.modules.workflows.processing.core.taskPlanner,json,header,Yes gateway.modules.workflows.processing.core.taskPlanner,logging,header,Yes +gateway.modules.workflows.processing.core.taskPlanner,modules.aichat.datamodelFeatureAiChat,header,Yes +gateway.modules.workflows.processing.core.taskPlanner,modules.aichat.datamodelFeatureAiChat,function generateTaskPlan,Yes gateway.modules.workflows.processing.core.taskPlanner,modules.datamodels.datamodelAi,header,Yes -gateway.modules.workflows.processing.core.taskPlanner,modules.features.aichat.datamodelFeatureAiChat,header,Yes -gateway.modules.workflows.processing.core.taskPlanner,modules.features.aichat.datamodelFeatureAiChat,function generateTaskPlan,Yes gateway.modules.workflows.processing.core.taskPlanner,modules.workflows.processing.shared.promptGenerationTaskplan,header,Yes gateway.modules.workflows.processing.core.taskPlanner,modules.workflows.processing.shared.stateTools,header,Yes gateway.modules.workflows.processing.core.taskPlanner,typing,header,Yes @@ -2218,8 +2223,8 @@ gateway.modules.workflows.processing.core.validator,typing,header,Yes gateway.modules.workflows.processing.modes.modeAutomation,datetime,function _createActionItem,Yes gateway.modules.workflows.processing.modes.modeAutomation,json,header,Yes gateway.modules.workflows.processing.modes.modeAutomation,logging,header,Yes -gateway.modules.workflows.processing.modes.modeAutomation,modules.features.aichat.datamodelFeatureAiChat,header,Yes -gateway.modules.workflows.processing.modes.modeAutomation,modules.features.aichat.datamodelFeatureAiChat,header,Yes +gateway.modules.workflows.processing.modes.modeAutomation,modules.aichat.datamodelFeatureAiChat,header,Yes +gateway.modules.workflows.processing.modes.modeAutomation,modules.aichat.datamodelFeatureAiChat,header,Yes gateway.modules.workflows.processing.modes.modeAutomation,modules.shared.timeUtils,header,Yes gateway.modules.workflows.processing.modes.modeAutomation,modules.workflows.processing.modes.modeBase,header,Yes gateway.modules.workflows.processing.modes.modeAutomation,modules.workflows.processing.shared.stateTools,header,Yes @@ -2228,8 +2233,8 @@ gateway.modules.workflows.processing.modes.modeAutomation,uuid,header,Yes gateway.modules.workflows.processing.modes.modeAutomation,uuid,function _createActionItem,Yes gateway.modules.workflows.processing.modes.modeBase,abc,header,Yes gateway.modules.workflows.processing.modes.modeBase,logging,header,Yes -gateway.modules.workflows.processing.modes.modeBase,modules.features.aichat.datamodelFeatureAiChat,header,Yes -gateway.modules.workflows.processing.modes.modeBase,modules.features.aichat.datamodelFeatureAiChat,header,Yes +gateway.modules.workflows.processing.modes.modeBase,modules.aichat.datamodelFeatureAiChat,header,Yes +gateway.modules.workflows.processing.modes.modeBase,modules.aichat.datamodelFeatureAiChat,header,Yes gateway.modules.workflows.processing.modes.modeBase,modules.workflows.processing.core.actionExecutor,header,Yes gateway.modules.workflows.processing.modes.modeBase,modules.workflows.processing.core.messageCreator,header,Yes gateway.modules.workflows.processing.modes.modeBase,modules.workflows.processing.core.taskPlanner,header,Yes @@ -2238,6 +2243,10 @@ gateway.modules.workflows.processing.modes.modeBase,typing,header,Yes gateway.modules.workflows.processing.modes.modeDynamic,datetime,header,Yes gateway.modules.workflows.processing.modes.modeDynamic,json,header,Yes gateway.modules.workflows.processing.modes.modeDynamic,logging,header,Yes +gateway.modules.workflows.processing.modes.modeDynamic,modules.aichat.datamodelFeatureAiChat,header,Yes +gateway.modules.workflows.processing.modes.modeDynamic,modules.aichat.datamodelFeatureAiChat,header,Yes +gateway.modules.workflows.processing.modes.modeDynamic,modules.aichat.datamodelFeatureAiChat,function _refineDecide,Yes +gateway.modules.workflows.processing.modes.modeDynamic,modules.aichat.datamodelFeatureAiChat,function _refineDecide,Yes gateway.modules.workflows.processing.modes.modeDynamic,modules.datamodels.datamodelAi,function _planSelect,Yes gateway.modules.workflows.processing.modes.modeDynamic,modules.datamodels.datamodelAi,function _actExecute,Yes gateway.modules.workflows.processing.modes.modeDynamic,modules.datamodels.datamodelAi,function _refineDecide,Yes @@ -2246,10 +2255,6 @@ gateway.modules.workflows.processing.modes.modeDynamic,modules.datamodels.datamo gateway.modules.workflows.processing.modes.modeDynamic,modules.datamodels.datamodelDocref,function _planSelect,Yes gateway.modules.workflows.processing.modes.modeDynamic,modules.datamodels.datamodelWorkflow,function _planSelect,Yes gateway.modules.workflows.processing.modes.modeDynamic,modules.datamodels.datamodelWorkflow,function _actExecute,Yes -gateway.modules.workflows.processing.modes.modeDynamic,modules.features.aichat.datamodelFeatureAiChat,header,Yes -gateway.modules.workflows.processing.modes.modeDynamic,modules.features.aichat.datamodelFeatureAiChat,header,Yes -gateway.modules.workflows.processing.modes.modeDynamic,modules.features.aichat.datamodelFeatureAiChat,function _refineDecide,Yes -gateway.modules.workflows.processing.modes.modeDynamic,modules.features.aichat.datamodelFeatureAiChat,function _refineDecide,Yes gateway.modules.workflows.processing.modes.modeDynamic,modules.shared.jsonUtils,function _planSelect,Yes gateway.modules.workflows.processing.modes.modeDynamic,modules.shared.jsonUtils,function _actExecute,Yes gateway.modules.workflows.processing.modes.modeDynamic,modules.shared.jsonUtils,function _refineDecide,Yes @@ -2269,7 +2274,7 @@ gateway.modules.workflows.processing.modes.modeDynamic,typing,header,Yes gateway.modules.workflows.processing.modes.modeDynamic,uuid,function _createActionItem,Yes gateway.modules.workflows.processing.modes.modeDynamic,uuid,function _createActionItem,Yes gateway.modules.workflows.processing.shared.executionState,logging,header,Yes -gateway.modules.workflows.processing.shared.executionState,modules.features.aichat.datamodelFeatureAiChat,header,Yes +gateway.modules.workflows.processing.shared.executionState,modules.aichat.datamodelFeatureAiChat,header,Yes gateway.modules.workflows.processing.shared.executionState,typing,header,Yes gateway.modules.workflows.processing.shared.methodDiscovery,importlib,header,Yes gateway.modules.workflows.processing.shared.methodDiscovery,inspect,header,Yes @@ -2279,35 +2284,35 @@ gateway.modules.workflows.processing.shared.methodDiscovery,pkgutil,header,Yes gateway.modules.workflows.processing.shared.methodDiscovery,typing,header,Yes gateway.modules.workflows.processing.shared.placeholderFactory,json,header,Yes gateway.modules.workflows.processing.shared.placeholderFactory,logging,header,Yes -gateway.modules.workflows.processing.shared.placeholderFactory,modules.features.aichat.datamodelFeatureAiChat,function extractReviewContent,Yes -gateway.modules.workflows.processing.shared.placeholderFactory,modules.features.aichat.datamodelFeatureAiChat,function extractReviewContent,Yes -gateway.modules.workflows.processing.shared.placeholderFactory,modules.features.aichat.interfaceFeatureAiChat,function extractLatestRefinementFeedback,Yes +gateway.modules.workflows.processing.shared.placeholderFactory,modules.aichat.datamodelFeatureAiChat,function extractReviewContent,Yes +gateway.modules.workflows.processing.shared.placeholderFactory,modules.aichat.datamodelFeatureAiChat,function extractReviewContent,Yes +gateway.modules.workflows.processing.shared.placeholderFactory,modules.aichat.interfaceFeatureAiChat,function extractLatestRefinementFeedback,Yes gateway.modules.workflows.processing.shared.placeholderFactory,modules.interfaces.interfaceDbApp,function extractLatestRefinementFeedback,Yes gateway.modules.workflows.processing.shared.placeholderFactory,modules.workflows.processing.shared.methodDiscovery,header,Yes gateway.modules.workflows.processing.shared.placeholderFactory,typing,header,Yes gateway.modules.workflows.processing.shared.promptGenerationActionsDynamic,json,header,Yes -gateway.modules.workflows.processing.shared.promptGenerationActionsDynamic,modules.features.aichat.datamodelFeatureAiChat,header,Yes +gateway.modules.workflows.processing.shared.promptGenerationActionsDynamic,modules.aichat.datamodelFeatureAiChat,header,Yes gateway.modules.workflows.processing.shared.promptGenerationActionsDynamic,modules.workflows.processing.shared.methodDiscovery,header,Yes gateway.modules.workflows.processing.shared.promptGenerationActionsDynamic,modules.workflows.processing.shared.placeholderFactory,header,Yes gateway.modules.workflows.processing.shared.promptGenerationActionsDynamic,typing,header,Yes gateway.modules.workflows.processing.shared.promptGenerationTaskplan,logging,header,Yes -gateway.modules.workflows.processing.shared.promptGenerationTaskplan,modules.features.aichat.datamodelFeatureAiChat,header,Yes +gateway.modules.workflows.processing.shared.promptGenerationTaskplan,modules.aichat.datamodelFeatureAiChat,header,Yes gateway.modules.workflows.processing.shared.promptGenerationTaskplan,modules.workflows.processing.shared.placeholderFactory,header,Yes gateway.modules.workflows.processing.shared.promptGenerationTaskplan,typing,header,Yes gateway.modules.workflows.processing.shared.stateTools,logging,header,Yes gateway.modules.workflows.processing.shared.stateTools,typing,header,Yes gateway.modules.workflows.processing.workflowProcessor,json,header,Yes gateway.modules.workflows.processing.workflowProcessor,logging,header,Yes +gateway.modules.workflows.processing.workflowProcessor,modules.aichat.datamodelFeatureAiChat,header,Yes +gateway.modules.workflows.processing.workflowProcessor,modules.aichat.datamodelFeatureAiChat,header,Yes +gateway.modules.workflows.processing.workflowProcessor,modules.aichat.datamodelFeatureAiChat,function fastPathExecute,Yes +gateway.modules.workflows.processing.workflowProcessor,modules.aichat.datamodelFeatureAiChat,function persistTaskResult,Yes gateway.modules.workflows.processing.workflowProcessor,modules.datamodels,header,Yes gateway.modules.workflows.processing.workflowProcessor,modules.datamodels.datamodelAi,header,Yes gateway.modules.workflows.processing.workflowProcessor,modules.datamodels.datamodelAi,function fastPathExecute,Yes gateway.modules.workflows.processing.workflowProcessor,modules.datamodels.datamodelWorkflow,header,Yes gateway.modules.workflows.processing.workflowProcessor,modules.datamodels.datamodelWorkflow,function initialUnderstanding,Yes gateway.modules.workflows.processing.workflowProcessor,modules.datamodels.datamodelWorkflow,function initialUnderstanding,Yes -gateway.modules.workflows.processing.workflowProcessor,modules.features.aichat.datamodelFeatureAiChat,header,Yes -gateway.modules.workflows.processing.workflowProcessor,modules.features.aichat.datamodelFeatureAiChat,header,Yes -gateway.modules.workflows.processing.workflowProcessor,modules.features.aichat.datamodelFeatureAiChat,function fastPathExecute,Yes -gateway.modules.workflows.processing.workflowProcessor,modules.features.aichat.datamodelFeatureAiChat,function persistTaskResult,Yes gateway.modules.workflows.processing.workflowProcessor,modules.shared.jsonUtils,header,Yes gateway.modules.workflows.processing.workflowProcessor,modules.shared.jsonUtils,function initialUnderstanding,Yes gateway.modules.workflows.processing.workflowProcessor,modules.workflows.processing.modes.modeAutomation,header,Yes @@ -2322,12 +2327,12 @@ gateway.modules.workflows.processing.workflowProcessor,typing,header,Yes gateway.modules.workflows.workflowManager,asyncio,header,Yes gateway.modules.workflows.workflowManager,json,header,Yes gateway.modules.workflows.workflowManager,logging,header,Yes +gateway.modules.workflows.workflowManager,modules.aichat.datamodelFeatureAiChat,header,Yes +gateway.modules.workflows.workflowManager,modules.aichat.datamodelFeatureAiChat,header,Yes +gateway.modules.workflows.workflowManager,modules.aichat.datamodelFeatureAiChat,function _executeTasks,Yes +gateway.modules.workflows.workflowManager,modules.aichat.datamodelFeatureAiChat,function _sendFirstMessage,Yes +gateway.modules.workflows.workflowManager,modules.aichat.datamodelFeatureAiChat,function _sendFirstMessage,Yes gateway.modules.workflows.workflowManager,modules.datamodels.datamodelWorkflow,function _executeTasks,Yes -gateway.modules.workflows.workflowManager,modules.features.aichat.datamodelFeatureAiChat,header,Yes -gateway.modules.workflows.workflowManager,modules.features.aichat.datamodelFeatureAiChat,header,Yes -gateway.modules.workflows.workflowManager,modules.features.aichat.datamodelFeatureAiChat,function _executeTasks,Yes -gateway.modules.workflows.workflowManager,modules.features.aichat.datamodelFeatureAiChat,function _sendFirstMessage,Yes -gateway.modules.workflows.workflowManager,modules.features.aichat.datamodelFeatureAiChat,function _sendFirstMessage,Yes gateway.modules.workflows.workflowManager,modules.workflows.processing.shared.methodDiscovery,function workflowStart,Yes gateway.modules.workflows.workflowManager,modules.workflows.processing.shared.methodDiscovery,function workflowStart,Yes gateway.modules.workflows.workflowManager,modules.workflows.processing.shared.placeholderFactory,function _checkIfHistoryAvailable,Yes @@ -2413,11 +2418,11 @@ gateway.tests.conftest,pathlib,header,Yes gateway.tests.conftest,sys,header,Yes gateway.tests.functional.test01_ai_model_selection,asyncio,header,Yes gateway.tests.functional.test01_ai_model_selection,base64,header,Yes +gateway.tests.functional.test01_ai_model_selection,modules.aichat.aicore.aicoreModelRegistry,header,Yes +gateway.tests.functional.test01_ai_model_selection,modules.aichat.aicore.aicoreModelSelector,header,Yes +gateway.tests.functional.test01_ai_model_selection,modules.aichat.serviceAi.mainServiceAi,function initialize,Yes gateway.tests.functional.test01_ai_model_selection,modules.datamodels.datamodelAi,header,Yes gateway.tests.functional.test01_ai_model_selection,modules.datamodels.datamodelUam,header,Yes -gateway.tests.functional.test01_ai_model_selection,modules.features.aichat.aicore.aicoreModelRegistry,header,Yes -gateway.tests.functional.test01_ai_model_selection,modules.features.aichat.aicore.aicoreModelSelector,header,Yes -gateway.tests.functional.test01_ai_model_selection,modules.features.aichat.serviceAi.mainServiceAi,function initialize,Yes gateway.tests.functional.test01_ai_model_selection,modules.interfaces.interfaceAiObjects,function initialize,Yes gateway.tests.functional.test01_ai_model_selection,modules.services,header,Yes gateway.tests.functional.test01_ai_model_selection,os,header,Yes @@ -2433,20 +2438,20 @@ gateway.tests.functional.test02_ai_models,json,header,Yes gateway.tests.functional.test02_ai_models,json,function testModelOperation,Yes gateway.tests.functional.test02_ai_models,json,function testModelOperation,Yes gateway.tests.functional.test02_ai_models,logging,function initialize,Yes +gateway.tests.functional.test02_ai_models,modules.aichat.aicore.aicoreModelRegistry,function initialize,Yes +gateway.tests.functional.test02_ai_models,modules.aichat.aicore.aicoreModelRegistry,function testModel,Yes +gateway.tests.functional.test02_ai_models,modules.aichat.aicore.aicoreModelRegistry,function getAllAvailableModels,Yes +gateway.tests.functional.test02_ai_models,modules.aichat.aicore.aicorePluginPerplexity,function initialize,Yes +gateway.tests.functional.test02_ai_models,modules.aichat.aicore.aicorePluginTavily,function initialize,Yes +gateway.tests.functional.test02_ai_models,modules.aichat.datamodelFeatureAiChat,function initialize,Yes +gateway.tests.functional.test02_ai_models,modules.aichat.serviceAi.mainServiceAi,function initialize,Yes +gateway.tests.functional.test02_ai_models,modules.aichat.serviceExtraction.mainServiceExtraction,function initialize,Yes gateway.tests.functional.test02_ai_models,modules.datamodels.datamodelAi,header,Yes gateway.tests.functional.test02_ai_models,modules.datamodels.datamodelAi,function _getTestPromptForOperation,Yes gateway.tests.functional.test02_ai_models,modules.datamodels.datamodelAi,function getAllAvailableModels,Yes gateway.tests.functional.test02_ai_models,modules.datamodels.datamodelAi,function testModelOperation,Yes gateway.tests.functional.test02_ai_models,modules.datamodels.datamodelAi,function testModelOperation,Yes gateway.tests.functional.test02_ai_models,modules.datamodels.datamodelUam,header,Yes -gateway.tests.functional.test02_ai_models,modules.features.aichat.aicore.aicoreModelRegistry,function initialize,Yes -gateway.tests.functional.test02_ai_models,modules.features.aichat.aicore.aicoreModelRegistry,function testModel,Yes -gateway.tests.functional.test02_ai_models,modules.features.aichat.aicore.aicoreModelRegistry,function getAllAvailableModels,Yes -gateway.tests.functional.test02_ai_models,modules.features.aichat.aicore.aicorePluginPerplexity,function initialize,Yes -gateway.tests.functional.test02_ai_models,modules.features.aichat.aicore.aicorePluginTavily,function initialize,Yes -gateway.tests.functional.test02_ai_models,modules.features.aichat.datamodelFeatureAiChat,function initialize,Yes -gateway.tests.functional.test02_ai_models,modules.features.aichat.serviceAi.mainServiceAi,function initialize,Yes -gateway.tests.functional.test02_ai_models,modules.features.aichat.serviceExtraction.mainServiceExtraction,function initialize,Yes gateway.tests.functional.test02_ai_models,modules.services,header,Yes gateway.tests.functional.test02_ai_models,modules.shared.configuration,function _testTavilyDirect,Yes gateway.tests.functional.test02_ai_models,os,header,Yes @@ -2459,14 +2464,14 @@ gateway.tests.functional.test03_ai_operations,datetime,header,Yes gateway.tests.functional.test03_ai_operations,json,function printSummary,Yes gateway.tests.functional.test03_ai_operations,json,function testOperation,Yes gateway.tests.functional.test03_ai_operations,logging,function initialize,Yes +gateway.tests.functional.test03_ai_operations,modules.aichat.datamodelFeatureAiChat,header,Yes +gateway.tests.functional.test03_ai_operations,modules.aichat.datamodelFeatureAiChat,function _prepareTestImageDocument,Yes +gateway.tests.functional.test03_ai_operations,modules.aichat.datamodelFeatureAiChat,function _prepareTestImageDocument,Yes +gateway.tests.functional.test03_ai_operations,modules.aichat.interfaceFeatureAiChat,function initialize,Yes +gateway.tests.functional.test03_ai_operations,modules.aichat.interfaceFeatureAiChat,function _prepareTestImageDocument,Yes +gateway.tests.functional.test03_ai_operations,modules.aichat.interfaceFeatureAiChat,function testOperation,Yes gateway.tests.functional.test03_ai_operations,modules.datamodels.datamodelAi,header,Yes gateway.tests.functional.test03_ai_operations,modules.datamodels.datamodelUam,header,Yes -gateway.tests.functional.test03_ai_operations,modules.features.aichat.datamodelFeatureAiChat,header,Yes -gateway.tests.functional.test03_ai_operations,modules.features.aichat.datamodelFeatureAiChat,function _prepareTestImageDocument,Yes -gateway.tests.functional.test03_ai_operations,modules.features.aichat.datamodelFeatureAiChat,function _prepareTestImageDocument,Yes -gateway.tests.functional.test03_ai_operations,modules.features.aichat.interfaceFeatureAiChat,function initialize,Yes -gateway.tests.functional.test03_ai_operations,modules.features.aichat.interfaceFeatureAiChat,function _prepareTestImageDocument,Yes -gateway.tests.functional.test03_ai_operations,modules.features.aichat.interfaceFeatureAiChat,function testOperation,Yes gateway.tests.functional.test03_ai_operations,modules.interfaces.interfaceDbApp,function __init__,Yes gateway.tests.functional.test03_ai_operations,modules.services,function initialize,Yes gateway.tests.functional.test03_ai_operations,modules.workflows.methods.methodAi,function initialize,Yes @@ -2483,11 +2488,11 @@ gateway.tests.functional.test04_ai_behavior,asyncio,header,Yes gateway.tests.functional.test04_ai_behavior,glob,function _getLatestDebugResponse,Yes gateway.tests.functional.test04_ai_behavior,json,header,Yes gateway.tests.functional.test04_ai_behavior,logging,function initialize,Yes +gateway.tests.functional.test04_ai_behavior,modules.aichat.datamodelFeatureAiChat,function initialize,Yes +gateway.tests.functional.test04_ai_behavior,modules.aichat.interfaceFeatureAiChat,function initialize,Yes gateway.tests.functional.test04_ai_behavior,modules.datamodels.datamodelAi,header,Yes gateway.tests.functional.test04_ai_behavior,modules.datamodels.datamodelUam,header,Yes gateway.tests.functional.test04_ai_behavior,modules.datamodels.datamodelWorkflow,header,Yes -gateway.tests.functional.test04_ai_behavior,modules.features.aichat.datamodelFeatureAiChat,function initialize,Yes -gateway.tests.functional.test04_ai_behavior,modules.features.aichat.interfaceFeatureAiChat,function initialize,Yes gateway.tests.functional.test04_ai_behavior,modules.interfaces.interfaceDbApp,function __init__,Yes gateway.tests.functional.test04_ai_behavior,modules.services,header,Yes gateway.tests.functional.test04_ai_behavior,os,header,Yes @@ -2499,9 +2504,9 @@ gateway.tests.functional.test04_ai_behavior,uuid,function initialize,Yes gateway.tests.functional.test05_workflow_with_documents,asyncio,header,Yes gateway.tests.functional.test05_workflow_with_documents,json,header,Yes gateway.tests.functional.test05_workflow_with_documents,logging,function initialize,Yes +gateway.tests.functional.test05_workflow_with_documents,modules.aichat.datamodelFeatureAiChat,header,Yes +gateway.tests.functional.test05_workflow_with_documents,modules.aichat.interfaceFeatureAiChat,header,Yes gateway.tests.functional.test05_workflow_with_documents,modules.datamodels.datamodelUam,header,Yes -gateway.tests.functional.test05_workflow_with_documents,modules.features.aichat.datamodelFeatureAiChat,header,Yes -gateway.tests.functional.test05_workflow_with_documents,modules.features.aichat.interfaceFeatureAiChat,header,Yes gateway.tests.functional.test05_workflow_with_documents,modules.interfaces.interfaceDbApp,function __init__,Yes gateway.tests.functional.test05_workflow_with_documents,modules.services,header,Yes gateway.tests.functional.test05_workflow_with_documents,modules.workflows.automation,header,Yes @@ -2513,9 +2518,9 @@ gateway.tests.functional.test05_workflow_with_documents,typing,header,Yes gateway.tests.functional.test06_workflow_prompt_variations,asyncio,header,Yes gateway.tests.functional.test06_workflow_prompt_variations,json,header,Yes gateway.tests.functional.test06_workflow_prompt_variations,logging,function initialize,Yes +gateway.tests.functional.test06_workflow_prompt_variations,modules.aichat.datamodelFeatureAiChat,header,Yes +gateway.tests.functional.test06_workflow_prompt_variations,modules.aichat.interfaceFeatureAiChat,header,Yes gateway.tests.functional.test06_workflow_prompt_variations,modules.datamodels.datamodelUam,header,Yes -gateway.tests.functional.test06_workflow_prompt_variations,modules.features.aichat.datamodelFeatureAiChat,header,Yes -gateway.tests.functional.test06_workflow_prompt_variations,modules.features.aichat.interfaceFeatureAiChat,header,Yes gateway.tests.functional.test06_workflow_prompt_variations,modules.interfaces.interfaceDbApp,function __init__,Yes gateway.tests.functional.test06_workflow_prompt_variations,modules.services,header,Yes gateway.tests.functional.test06_workflow_prompt_variations,modules.workflows.automation,header,Yes @@ -2528,13 +2533,13 @@ gateway.tests.functional.test06_workflow_prompt_variations,traceback,function te gateway.tests.functional.test06_workflow_prompt_variations,traceback,function runAllTests,Yes gateway.tests.functional.test06_workflow_prompt_variations,typing,header,Yes gateway.tests.functional.test07_json_merge,json,header,Yes -gateway.tests.functional.test07_json_merge,modules.features.aichat.serviceAi.subJsonResponseHandling,header,Yes +gateway.tests.functional.test07_json_merge,modules.aichat.serviceAi.subJsonResponseHandling,header,Yes gateway.tests.functional.test07_json_merge,modules.shared.jsonUtils,header,Yes gateway.tests.functional.test07_json_merge,os,header,Yes gateway.tests.functional.test07_json_merge,sys,header,Yes gateway.tests.functional.test07_json_merge,traceback,header,Yes gateway.tests.functional.test08_json_finalization,json,header,Yes -gateway.tests.functional.test08_json_finalization,modules.features.aichat.serviceAi.subJsonResponseHandling,header,Yes +gateway.tests.functional.test08_json_finalization,modules.aichat.serviceAi.subJsonResponseHandling,header,Yes gateway.tests.functional.test08_json_finalization,modules.shared.jsonUtils,header,Yes gateway.tests.functional.test08_json_finalization,os,header,Yes gateway.tests.functional.test08_json_finalization,sys,header,Yes @@ -2544,9 +2549,9 @@ gateway.tests.functional.test09_document_generation_formats,asyncio,header,Yes gateway.tests.functional.test09_document_generation_formats,base64,header,Yes gateway.tests.functional.test09_document_generation_formats,json,header,Yes gateway.tests.functional.test09_document_generation_formats,logging,function initialize,Yes +gateway.tests.functional.test09_document_generation_formats,modules.aichat.datamodelFeatureAiChat,header,Yes +gateway.tests.functional.test09_document_generation_formats,modules.aichat.interfaceFeatureAiChat,header,Yes gateway.tests.functional.test09_document_generation_formats,modules.datamodels.datamodelUam,header,Yes -gateway.tests.functional.test09_document_generation_formats,modules.features.aichat.datamodelFeatureAiChat,header,Yes -gateway.tests.functional.test09_document_generation_formats,modules.features.aichat.interfaceFeatureAiChat,header,Yes gateway.tests.functional.test09_document_generation_formats,modules.interfaces.interfaceDbApp,function __init__,Yes gateway.tests.functional.test09_document_generation_formats,modules.services,header,Yes gateway.tests.functional.test09_document_generation_formats,modules.shared.configuration,function initialize,Yes @@ -2563,9 +2568,9 @@ gateway.tests.functional.test10_document_generation_formats,asyncio,header,Yes gateway.tests.functional.test10_document_generation_formats,base64,header,Yes gateway.tests.functional.test10_document_generation_formats,json,header,Yes gateway.tests.functional.test10_document_generation_formats,logging,function initialize,Yes +gateway.tests.functional.test10_document_generation_formats,modules.aichat.datamodelFeatureAiChat,header,Yes +gateway.tests.functional.test10_document_generation_formats,modules.aichat.interfaceFeatureAiChat,header,Yes gateway.tests.functional.test10_document_generation_formats,modules.datamodels.datamodelUam,header,Yes -gateway.tests.functional.test10_document_generation_formats,modules.features.aichat.datamodelFeatureAiChat,header,Yes -gateway.tests.functional.test10_document_generation_formats,modules.features.aichat.interfaceFeatureAiChat,header,Yes gateway.tests.functional.test10_document_generation_formats,modules.interfaces.interfaceDbApp,function __init__,Yes gateway.tests.functional.test10_document_generation_formats,modules.services,header,Yes gateway.tests.functional.test10_document_generation_formats,modules.shared.configuration,function initialize,Yes @@ -2582,9 +2587,9 @@ gateway.tests.functional.test11_code_generation_formats,csv,header,Yes gateway.tests.functional.test11_code_generation_formats,io,header,Yes gateway.tests.functional.test11_code_generation_formats,json,header,Yes gateway.tests.functional.test11_code_generation_formats,logging,function initialize,Yes +gateway.tests.functional.test11_code_generation_formats,modules.aichat.datamodelFeatureAiChat,header,Yes +gateway.tests.functional.test11_code_generation_formats,modules.aichat.interfaceFeatureAiChat,header,Yes gateway.tests.functional.test11_code_generation_formats,modules.datamodels.datamodelUam,header,Yes -gateway.tests.functional.test11_code_generation_formats,modules.features.aichat.datamodelFeatureAiChat,header,Yes -gateway.tests.functional.test11_code_generation_formats,modules.features.aichat.interfaceFeatureAiChat,header,Yes gateway.tests.functional.test11_code_generation_formats,modules.interfaces.interfaceDbApp,function __init__,Yes gateway.tests.functional.test11_code_generation_formats,modules.services,header,Yes gateway.tests.functional.test11_code_generation_formats,modules.shared.configuration,function initialize,Yes @@ -2598,7 +2603,7 @@ gateway.tests.functional.test11_code_generation_formats,typing,header,Yes gateway.tests.functional.test11_code_generation_formats,xml.etree.ElementTree,header,Yes gateway.tests.functional.test12_json_split_merge,asyncio,header,Yes gateway.tests.functional.test12_json_split_merge,json,header,Yes -gateway.tests.functional.test12_json_split_merge,modules.features.aichat.serviceAi.subJsonMerger,header,Yes +gateway.tests.functional.test12_json_split_merge,modules.aichat.serviceAi.subJsonMerger,header,Yes gateway.tests.functional.test12_json_split_merge,modules.shared.jsonContinuation,header,Yes gateway.tests.functional.test12_json_split_merge,modules.shared.jsonUtils,function _loadTableJsonExample,Yes gateway.tests.functional.test12_json_split_merge,modules.shared.jsonUtils,function testJsonSplitMerge,Yes @@ -2627,40 +2632,34 @@ gateway.tests.functional.test14_json_continuation_context,traceback,function tes gateway.tests.functional.test14_json_continuation_context,traceback,function runTest,Yes gateway.tests.functional.test14_json_continuation_context,typing,header,Yes gateway.tests.functional.test_kpi_full,json,header,Yes +gateway.tests.functional.test_kpi_full,modules.aichat.serviceAi.subJsonResponseHandling,header,Yes gateway.tests.functional.test_kpi_full,modules.datamodels.datamodelAi,header,Yes -gateway.tests.functional.test_kpi_full,modules.features.aichat.serviceAi.subJsonResponseHandling,header,Yes gateway.tests.functional.test_kpi_full,modules.shared.jsonUtils,header,Yes gateway.tests.functional.test_kpi_full,os,header,Yes gateway.tests.functional.test_kpi_full,pytest,header,Yes gateway.tests.functional.test_kpi_full,sys,header,Yes gateway.tests.functional.test_kpi_incomplete,json,header,Yes +gateway.tests.functional.test_kpi_incomplete,modules.aichat.serviceAi.subJsonResponseHandling,header,Yes gateway.tests.functional.test_kpi_incomplete,modules.datamodels.datamodelAi,header,Yes -gateway.tests.functional.test_kpi_incomplete,modules.features.aichat.serviceAi.subJsonResponseHandling,header,Yes gateway.tests.functional.test_kpi_incomplete,modules.shared.jsonUtils,header,Yes gateway.tests.functional.test_kpi_incomplete,os,header,Yes gateway.tests.functional.test_kpi_incomplete,pytest,header,Yes gateway.tests.functional.test_kpi_incomplete,sys,header,Yes gateway.tests.functional.test_kpi_incomplete,traceback,header,Yes gateway.tests.functional.test_kpi_path,json,header,Yes -gateway.tests.functional.test_kpi_path,modules.features.aichat.serviceAi.subJsonResponseHandling,header,Yes +gateway.tests.functional.test_kpi_path,modules.aichat.serviceAi.subJsonResponseHandling,header,Yes gateway.tests.functional.test_kpi_path,os,header,Yes gateway.tests.functional.test_kpi_path,sys,header,Yes gateway.tests.functional.test_kpi_path,traceback,header,Yes -gateway.tests.integration.options.test_options_api,app,function app,Yes -gateway.tests.integration.options.test_options_api,fastapi.testclient,header,Yes -gateway.tests.integration.options.test_options_api,modules.datamodels.datamodelUam,header,Yes -gateway.tests.integration.options.test_options_api,modules.interfaces.interfaceDbApp,header,Yes -gateway.tests.integration.options.test_options_api,pytest,header,Yes -gateway.tests.integration.options.test_options_api,secrets,header,Yes gateway.tests.integration.rbac.test_rbac_database,modules.connectors.connectorDbPostgre,header,Yes gateway.tests.integration.rbac.test_rbac_database,modules.datamodels.datamodelUam,header,Yes gateway.tests.integration.rbac.test_rbac_database,modules.datamodels.datamodelUam,function testBuildRbacWhereClauseUserConnectionTable,Yes gateway.tests.integration.rbac.test_rbac_database,modules.shared.configuration,header,Yes gateway.tests.integration.rbac.test_rbac_database,pytest,header,Yes +gateway.tests.integration.workflows.test_workflow_execution,modules.aichat.datamodelFeatureAiChat,header,Yes gateway.tests.integration.workflows.test_workflow_execution,modules.datamodels.datamodelDocref,header,Yes gateway.tests.integration.workflows.test_workflow_execution,modules.datamodels.datamodelWorkflow,header,Yes gateway.tests.integration.workflows.test_workflow_execution,modules.datamodels.datamodelWorkflow,function test_extractContentParameters_structure,Yes -gateway.tests.integration.workflows.test_workflow_execution,modules.features.aichat.datamodelFeatureAiChat,header,Yes gateway.tests.integration.workflows.test_workflow_execution,modules.shared.jsonUtils,function test_parseJsonWithModel_with_code_fences,Yes gateway.tests.integration.workflows.test_workflow_execution,modules.shared.jsonUtils,function test_parseJsonWithModel_with_extra_text,Yes gateway.tests.integration.workflows.test_workflow_execution,pytest,header,Yes @@ -2675,12 +2674,6 @@ gateway.tests.unit.datamodels.test_workflow_models,modules.datamodels.datamodelE gateway.tests.unit.datamodels.test_workflow_models,modules.datamodels.datamodelWorkflow,header,Yes gateway.tests.unit.datamodels.test_workflow_models,pytest,header,Yes gateway.tests.unit.datamodels.test_workflow_models,typing,header,Yes -gateway.tests.unit.options.test_frontend_options_types,modules.shared.frontendOptionsTypes,header,Yes -gateway.tests.unit.options.test_frontend_options_types,pytest,header,Yes -gateway.tests.unit.options.test_main_options,modules.datamodels.datamodelUam,header,Yes -gateway.tests.unit.options.test_main_options,modules.features.dynamicOptions.mainDynamicOptions,header,Yes -gateway.tests.unit.options.test_main_options,pytest,header,Yes -gateway.tests.unit.options.test_main_options,unittest.mock,header,Yes gateway.tests.unit.rbac.test_rbac_bootstrap,modules.datamodels.datamodelRbac,header,Yes gateway.tests.unit.rbac.test_rbac_bootstrap,modules.datamodels.datamodelUam,header,Yes gateway.tests.unit.rbac.test_rbac_bootstrap,modules.datamodels.datamodelUam,header,Yes @@ -2694,8 +2687,8 @@ gateway.tests.unit.rbac.test_rbac_permissions,modules.security.rbac,header,Yes gateway.tests.unit.rbac.test_rbac_permissions,pytest,header,Yes gateway.tests.unit.rbac.test_rbac_permissions,unittest.mock,header,Yes gateway.tests.unit.services.test_json_extraction_merging,json,header,Yes +gateway.tests.unit.services.test_json_extraction_merging,modules.aichat.serviceExtraction.mainServiceExtraction,header,Yes gateway.tests.unit.services.test_json_extraction_merging,modules.datamodels.datamodelExtraction,header,Yes -gateway.tests.unit.services.test_json_extraction_merging,modules.features.aichat.serviceExtraction.mainServiceExtraction,header,Yes gateway.tests.unit.services.test_json_extraction_merging,os,header,Yes gateway.tests.unit.services.test_json_extraction_merging,sys,header,Yes gateway.tests.unit.services.test_json_extraction_merging,traceback,function main,Yes @@ -2703,13 +2696,13 @@ gateway.tests.unit.utils.test_json_utils,json,header,Yes gateway.tests.unit.utils.test_json_utils,modules.datamodels.datamodelWorkflow,header,Yes gateway.tests.unit.utils.test_json_utils,modules.shared.jsonUtils,header,Yes gateway.tests.unit.utils.test_json_utils,pytest,header,Yes +gateway.tests.unit.workflows.test_state_management,modules.aichat.datamodelFeatureAiChat,header,Yes gateway.tests.unit.workflows.test_state_management,modules.datamodels.datamodelWorkflow,header,Yes -gateway.tests.unit.workflows.test_state_management,modules.features.aichat.datamodelFeatureAiChat,header,Yes gateway.tests.unit.workflows.test_state_management,pytest,header,Yes gateway.tests.unit.workflows.test_state_management,uuid,header,Yes +gateway.tests.validation.test_architecture_validation,modules.aichat.datamodelFeatureAiChat,header,Yes gateway.tests.validation.test_architecture_validation,modules.datamodels.datamodelDocref,header,Yes gateway.tests.validation.test_architecture_validation,modules.datamodels.datamodelWorkflow,header,Yes -gateway.tests.validation.test_architecture_validation,modules.features.aichat.datamodelFeatureAiChat,header,Yes gateway.tests.validation.test_architecture_validation,modules.shared.jsonUtils,header,Yes gateway.tests.validation.test_architecture_validation,os,header,Yes gateway.tests.validation.test_architecture_validation,pytest,header,Yes diff --git a/scripts/script_analyze_imports.py b/scripts/script_analyze_imports.py index b6bf9632..c63a556e 100644 --- a/scripts/script_analyze_imports.py +++ b/scripts/script_analyze_imports.py @@ -63,22 +63,42 @@ def checkModuleExists(moduleName: str, currentFile: Path) -> bool: if moduleName.startswith("."): # Relative import - check relative to current file's directory currentDir = currentFile.parent - relativePath = moduleName.lstrip(".") + + # Count the number of dots to determine how many levels up + dotCount = 0 + for char in moduleName: + if char == ".": + dotCount += 1 + else: + break + + # Get the module path after the dots + relativePath = moduleName[dotCount:] + + if not relativePath and dotCount == 1: + return True # "from . import x" - current package + + # Navigate up directories based on dot count + # . = current package (dotCount=1, go to parent dir which is the package) + # .. = parent package (dotCount=2, go up 2 levels) + # etc. + baseDir = currentDir + for _ in range(dotCount - 1): # -1 because currentDir is already at file level + baseDir = baseDir.parent if not relativePath: - return True # "from . import x" - current package + # Pure relative import like "from .. import x" + return baseDir.is_dir() # Convert module path to file path parts = relativePath.split(".") - checkPath = currentDir + checkPath = baseDir for part in parts: checkPath = checkPath / part # Check if it's a package or module if checkPath.is_dir() and (checkPath / "__init__.py").exists(): return True - if (checkPath.parent / f"{checkPath.name}.py").exists(): - return True if checkPath.with_suffix(".py").exists(): return True diff --git a/tests/functional/test01_ai_model_selection.py b/tests/functional/test01_ai_model_selection.py index 0cf36f47..1d4f2d49 100644 --- a/tests/functional/test01_ai_model_selection.py +++ b/tests/functional/test01_ai_model_selection.py @@ -29,8 +29,8 @@ from modules.datamodels.datamodelAi import ( ProcessingModeEnum, ) from modules.datamodels.datamodelUam import User -from modules.features.aichat.aicore.aicoreModelRegistry import modelRegistry -from modules.features.aichat.aicore.aicoreModelSelector import modelSelector +from modules.aichat.aicore.aicoreModelRegistry import modelRegistry +from modules.aichat.aicore.aicoreModelSelector import modelSelector class ModelSelectionTester: @@ -46,7 +46,7 @@ class ModelSelectionTester: self.services = getServices(testUser, None) async def initialize(self) -> None: - from modules.features.aichat.serviceAi.mainServiceAi import AiService + from modules.aichat.serviceAi.mainServiceAi import AiService from modules.interfaces.interfaceAiObjects import AiObjects self.services.ai = await AiService.create(self.services) diff --git a/tests/functional/test02_ai_models.py b/tests/functional/test02_ai_models.py index 00953f3e..2f348595 100644 --- a/tests/functional/test02_ai_models.py +++ b/tests/functional/test02_ai_models.py @@ -68,24 +68,24 @@ class AIModelsTester: logging.getLogger().setLevel(logging.DEBUG) # Initialize the model registry with all connectors - from modules.features.aichat.aicore.aicoreModelRegistry import modelRegistry - from modules.features.aichat.aicore.aicorePluginTavily import AiTavily - from modules.features.aichat.aicore.aicorePluginPerplexity import AiPerplexity + from modules.aichat.aicore.aicoreModelRegistry import modelRegistry + from modules.aichat.aicore.aicorePluginTavily import AiTavily + from modules.aichat.aicore.aicorePluginPerplexity import AiPerplexity # Note: We don't need to register web connectors for IMAGE_ANALYSE testing # modelRegistry.registerConnector(AiTavily()) # modelRegistry.registerConnector(AiPerplexity()) # The AI service needs to be recreated with proper initialization - from modules.features.aichat.serviceAi.mainServiceAi import AiService + from modules.aichat.serviceAi.mainServiceAi import AiService self.services.ai = await AiService.create(self.services) # Also initialize extraction service for image processing - from modules.features.aichat.serviceExtraction.mainServiceExtraction import ExtractionService + from modules.aichat.serviceExtraction.mainServiceExtraction import ExtractionService self.services.extraction = ExtractionService(self.services) # Create a minimal workflow context - from modules.features.aichat.datamodelFeatureAiChat import ChatWorkflow, WorkflowModeEnum + from modules.aichat.datamodelFeatureAiChat import ChatWorkflow, WorkflowModeEnum import uuid self.services.currentWorkflow = ChatWorkflow( @@ -311,7 +311,7 @@ class AIModelsTester: print(f"{'='*60}") # Get model from registry - from modules.features.aichat.aicore.aicoreModelRegistry import modelRegistry + from modules.aichat.aicore.aicoreModelRegistry import modelRegistry model = modelRegistry.getModel(modelName) if not model: @@ -693,7 +693,7 @@ Width: {crawlWidth} def getAllAvailableModels(self) -> List[Dict[str, Any]]: """Get all available models with their supported operation types.""" - from modules.features.aichat.aicore.aicoreModelRegistry import modelRegistry + from modules.aichat.aicore.aicoreModelRegistry import modelRegistry from modules.datamodels.datamodelAi import OperationTypeEnum # Get all models from registry diff --git a/tests/functional/test03_ai_operations.py b/tests/functional/test03_ai_operations.py index 5875c2bb..de891238 100644 --- a/tests/functional/test03_ai_operations.py +++ b/tests/functional/test03_ai_operations.py @@ -18,7 +18,7 @@ if _gateway_path not in sys.path: sys.path.insert(0, _gateway_path) from modules.datamodels.datamodelAi import OperationTypeEnum -from modules.features.aichat.datamodelFeatureAiChat import ChatWorkflow, ChatDocument, WorkflowModeEnum +from modules.aichat.datamodelFeatureAiChat import ChatWorkflow, ChatDocument, WorkflowModeEnum from modules.datamodels.datamodelUam import User @@ -94,7 +94,7 @@ class MethodAiOperationsTester: logging.getLogger().setLevel(logging.DEBUG) # Import and initialize services - use the same approach as routeChatPlayground - import modules.features.aichat.interfaceFeatureAiChat as interfaceFeatureAiChat + import modules.aichat.interfaceFeatureAiChat as interfaceFeatureAiChat interfaceDbChat = interfaceDbChat.getInterface(self.testUser) # Import and initialize services @@ -174,7 +174,7 @@ class MethodAiOperationsTester: imageData = f.read() # Create a ChatDocument - from modules.features.aichat.datamodelFeatureAiChat import ChatDocument + from modules.aichat.datamodelFeatureAiChat import ChatDocument import uuid testImageDoc = ChatDocument( @@ -186,7 +186,7 @@ class MethodAiOperationsTester: ) # Create a message with this document - from modules.features.aichat.datamodelFeatureAiChat import ChatMessage + from modules.aichat.datamodelFeatureAiChat import ChatMessage import time testMessage = ChatMessage( @@ -201,7 +201,7 @@ class MethodAiOperationsTester: # Save message to database if self.services.workflow: - import modules.features.aichat.interfaceFeatureAiChat as interfaceFeatureAiChat + import modules.aichat.interfaceFeatureAiChat as interfaceFeatureAiChat interfaceDbChat = interfaceDbChat.getInterface(self.testUser) messageDict = testMessage.model_dump() interfaceDbChat.createMessage(messageDict) @@ -283,7 +283,7 @@ class MethodAiOperationsTester: maxSteps=5 ) # Save workflow to database - import modules.features.aichat.interfaceFeatureAiChat as interfaceFeatureAiChat + import modules.aichat.interfaceFeatureAiChat as interfaceFeatureAiChat interfaceDbChat = interfaceDbChat.getInterface(self.testUser) workflowDict = testWorkflow.model_dump() interfaceDbChat.createWorkflow(workflowDict) diff --git a/tests/functional/test04_ai_behavior.py b/tests/functional/test04_ai_behavior.py index 6b28439a..4cf21e10 100644 --- a/tests/functional/test04_ai_behavior.py +++ b/tests/functional/test04_ai_behavior.py @@ -42,10 +42,10 @@ class AIBehaviorTester: logging.getLogger().setLevel(logging.DEBUG) # Create and save workflow in database using the interface - from modules.features.aichat.datamodelFeatureAiChat import ChatWorkflow, WorkflowModeEnum + from modules.aichat.datamodelFeatureAiChat import ChatWorkflow, WorkflowModeEnum import uuid import time - import modules.features.aichat.interfaceFeatureAiChat as interfaceFeatureAiChat + import modules.aichat.interfaceFeatureAiChat as interfaceFeatureAiChat currentTimestamp = time.time() diff --git a/tests/functional/test05_workflow_with_documents.py b/tests/functional/test05_workflow_with_documents.py index 7e6347c2..501204ad 100644 --- a/tests/functional/test05_workflow_with_documents.py +++ b/tests/functional/test05_workflow_with_documents.py @@ -20,10 +20,10 @@ if _gateway_path not in sys.path: # Import the service initialization from modules.services import getInterface as getServices -from modules.features.aichat.datamodelFeatureAiChat import UserInputRequest, WorkflowModeEnum +from modules.aichat.datamodelFeatureAiChat import UserInputRequest, WorkflowModeEnum from modules.datamodels.datamodelUam import User from modules.workflows.automation import chatStart -import modules.features.aichat.interfaceFeatureAiChat as interfaceFeatureAiChat +import modules.aichat.interfaceFeatureAiChat as interfaceFeatureAiChat class WorkflowWithDocumentsTester: diff --git a/tests/functional/test06_workflow_prompt_variations.py b/tests/functional/test06_workflow_prompt_variations.py index ada63dea..e2138a6b 100644 --- a/tests/functional/test06_workflow_prompt_variations.py +++ b/tests/functional/test06_workflow_prompt_variations.py @@ -22,10 +22,10 @@ if _gateway_path not in sys.path: # Import the service initialization from modules.services import getInterface as getServices -from modules.features.aichat.datamodelFeatureAiChat import UserInputRequest, WorkflowModeEnum +from modules.aichat.datamodelFeatureAiChat import UserInputRequest, WorkflowModeEnum from modules.datamodels.datamodelUam import User from modules.workflows.automation import chatStart -import modules.features.aichat.interfaceFeatureAiChat as interfaceFeatureAiChat +import modules.aichat.interfaceFeatureAiChat as interfaceFeatureAiChat class WorkflowPromptVariationsTester: diff --git a/tests/functional/test07_json_merge.py b/tests/functional/test07_json_merge.py index dec51a95..897c6a4f 100644 --- a/tests/functional/test07_json_merge.py +++ b/tests/functional/test07_json_merge.py @@ -11,7 +11,7 @@ if _gateway_path not in sys.path: sys.path.insert(0, _gateway_path) # Import after path setup -from modules.features.aichat.serviceAi.subJsonResponseHandling import JsonResponseHandler # type: ignore +from modules.aichat.serviceAi.subJsonResponseHandling import JsonResponseHandler # type: ignore from modules.shared.jsonUtils import extractSectionsFromDocument # type: ignore diff --git a/tests/functional/test08_json_finalization.py b/tests/functional/test08_json_finalization.py index a6ff570e..f6345150 100644 --- a/tests/functional/test08_json_finalization.py +++ b/tests/functional/test08_json_finalization.py @@ -32,7 +32,7 @@ if _gateway_path not in sys.path: sys.path.insert(0, _gateway_path) # Import after path setup -from modules.features.aichat.serviceAi.subJsonResponseHandling import JsonResponseHandler # type: ignore +from modules.aichat.serviceAi.subJsonResponseHandling import JsonResponseHandler # type: ignore from modules.shared.jsonUtils import extractSectionsFromDocument, extractJsonString, repairBrokenJson # type: ignore diff --git a/tests/functional/test09_document_generation_formats.py b/tests/functional/test09_document_generation_formats.py index 9a42c04f..5ecf5a1f 100644 --- a/tests/functional/test09_document_generation_formats.py +++ b/tests/functional/test09_document_generation_formats.py @@ -21,10 +21,10 @@ if _gateway_path not in sys.path: # Import the service initialization from modules.services import getInterface as getServices -from modules.features.aichat.datamodelFeatureAiChat import UserInputRequest, WorkflowModeEnum +from modules.aichat.datamodelFeatureAiChat import UserInputRequest, WorkflowModeEnum from modules.datamodels.datamodelUam import User from modules.workflows.automation import chatStart -import modules.features.aichat.interfaceFeatureAiChat as interfaceFeatureAiChat +import modules.aichat.interfaceFeatureAiChat as interfaceFeatureAiChat class DocumentGenerationFormatsTester: diff --git a/tests/functional/test10_document_generation_formats.py b/tests/functional/test10_document_generation_formats.py index 1ef6b678..fb1ec6c7 100644 --- a/tests/functional/test10_document_generation_formats.py +++ b/tests/functional/test10_document_generation_formats.py @@ -21,10 +21,10 @@ if _gateway_path not in sys.path: # Import the service initialization from modules.services import getInterface as getServices -from modules.features.aichat.datamodelFeatureAiChat import UserInputRequest, WorkflowModeEnum +from modules.aichat.datamodelFeatureAiChat import UserInputRequest, WorkflowModeEnum from modules.datamodels.datamodelUam import User from modules.workflows.automation import chatStart -import modules.features.aichat.interfaceFeatureAiChat as interfaceFeatureAiChat +import modules.aichat.interfaceFeatureAiChat as interfaceFeatureAiChat class DocumentGenerationFormatsTester10: diff --git a/tests/functional/test11_code_generation_formats.py b/tests/functional/test11_code_generation_formats.py index f443ff61..0c58f8ce 100644 --- a/tests/functional/test11_code_generation_formats.py +++ b/tests/functional/test11_code_generation_formats.py @@ -23,10 +23,10 @@ if _gateway_path not in sys.path: # Import the service initialization from modules.services import getInterface as getServices -from modules.features.aichat.datamodelFeatureAiChat import UserInputRequest, WorkflowModeEnum +from modules.aichat.datamodelFeatureAiChat import UserInputRequest, WorkflowModeEnum from modules.datamodels.datamodelUam import User from modules.workflows.automation import chatStart -import modules.features.aichat.interfaceFeatureAiChat as interfaceFeatureAiChat +import modules.aichat.interfaceFeatureAiChat as interfaceFeatureAiChat class CodeGenerationFormatsTester11: diff --git a/tests/functional/test12_json_split_merge.py b/tests/functional/test12_json_split_merge.py index 2632ed2e..ec882824 100644 --- a/tests/functional/test12_json_split_merge.py +++ b/tests/functional/test12_json_split_merge.py @@ -20,7 +20,7 @@ if _gateway_path not in sys.path: sys.path.insert(0, _gateway_path) # Import JSON merger from workflow tools -from modules.features.aichat.serviceAi.subJsonMerger import ModularJsonMerger, JsonMergeLogger +from modules.aichat.serviceAi.subJsonMerger import ModularJsonMerger, JsonMergeLogger from modules.shared.jsonContinuation import getContexts diff --git a/tests/functional/test_kpi_full.py b/tests/functional/test_kpi_full.py index 4457b3e3..c25f48bc 100644 --- a/tests/functional/test_kpi_full.py +++ b/tests/functional/test_kpi_full.py @@ -11,7 +11,7 @@ _gateway_path = os.path.abspath(os.path.join(os.path.dirname(__file__), "..", ". if _gateway_path not in sys.path: sys.path.insert(0, _gateway_path) -from modules.features.aichat.serviceAi.subJsonResponseHandling import JsonResponseHandler +from modules.aichat.serviceAi.subJsonResponseHandling import JsonResponseHandler from modules.datamodels.datamodelAi import JsonAccumulationState # Load actual JSON response diff --git a/tests/functional/test_kpi_incomplete.py b/tests/functional/test_kpi_incomplete.py index 90cdcdcb..d7170f48 100644 --- a/tests/functional/test_kpi_incomplete.py +++ b/tests/functional/test_kpi_incomplete.py @@ -11,7 +11,7 @@ _gateway_path = os.path.abspath(os.path.join(os.path.dirname(__file__), "..", ". if _gateway_path not in sys.path: sys.path.insert(0, _gateway_path) -from modules.features.aichat.serviceAi.subJsonResponseHandling import JsonResponseHandler +from modules.aichat.serviceAi.subJsonResponseHandling import JsonResponseHandler from modules.datamodels.datamodelAi import JsonAccumulationState from modules.shared.jsonUtils import extractJsonString, repairBrokenJson diff --git a/tests/functional/test_kpi_path.py b/tests/functional/test_kpi_path.py index 66e7293b..824b145c 100644 --- a/tests/functional/test_kpi_path.py +++ b/tests/functional/test_kpi_path.py @@ -10,7 +10,7 @@ _gateway_path = os.path.abspath(os.path.join(os.path.dirname(__file__), "..", ". if _gateway_path not in sys.path: sys.path.insert(0, _gateway_path) -from modules.features.aichat.serviceAi.subJsonResponseHandling import JsonResponseHandler +from modules.aichat.serviceAi.subJsonResponseHandling import JsonResponseHandler # Test JSON matching the actual response test_json = { diff --git a/tests/integration/workflows/test_workflow_execution.py b/tests/integration/workflows/test_workflow_execution.py index 26552008..50fafe83 100644 --- a/tests/integration/workflows/test_workflow_execution.py +++ b/tests/integration/workflows/test_workflow_execution.py @@ -10,7 +10,7 @@ import pytest import uuid from unittest.mock import Mock, AsyncMock, patch -from modules.features.aichat.datamodelFeatureAiChat import ChatWorkflow, TaskContext, TaskStep +from modules.aichat.datamodelFeatureAiChat import ChatWorkflow, TaskContext, TaskStep from modules.datamodels.datamodelWorkflow import ActionDefinition from modules.datamodels.datamodelDocref import DocumentReferenceList, DocumentListReference, DocumentItemReference diff --git a/tests/unit/services/test_json_extraction_merging.py b/tests/unit/services/test_json_extraction_merging.py index 644b7140..100e3f67 100644 --- a/tests/unit/services/test_json_extraction_merging.py +++ b/tests/unit/services/test_json_extraction_merging.py @@ -14,7 +14,7 @@ import os sys.path.insert(0, os.path.join(os.path.dirname(__file__), '../../..')) from modules.datamodels.datamodelExtraction import ContentPart -from modules.features.aichat.serviceExtraction.mainServiceExtraction import ExtractionService +from modules.aichat.serviceExtraction.mainServiceExtraction import ExtractionService def test_detects_json_with_code_fences(): diff --git a/tests/unit/workflows/test_state_management.py b/tests/unit/workflows/test_state_management.py index d649826e..afa873a8 100644 --- a/tests/unit/workflows/test_state_management.py +++ b/tests/unit/workflows/test_state_management.py @@ -9,7 +9,7 @@ Tests state increment methods, helper methods, and updateFromSelection. import pytest import uuid -from modules.features.aichat.datamodelFeatureAiChat import ChatWorkflow, TaskContext, TaskStep +from modules.aichat.datamodelFeatureAiChat import ChatWorkflow, TaskContext, TaskStep from modules.datamodels.datamodelWorkflow import ActionDefinition diff --git a/tests/validation/test_architecture_validation.py b/tests/validation/test_architecture_validation.py index dfc46be1..1bde895f 100644 --- a/tests/validation/test_architecture_validation.py +++ b/tests/validation/test_architecture_validation.py @@ -15,7 +15,7 @@ sys.path.append(os.path.dirname(os.path.dirname(os.path.dirname(__file__)))) from modules.datamodels.datamodelWorkflow import ActionDefinition, AiResponse from modules.datamodels.datamodelDocref import DocumentReferenceList, DocumentListReference -from modules.features.aichat.datamodelFeatureAiChat import ChatWorkflow +from modules.aichat.datamodelFeatureAiChat import ChatWorkflow from modules.shared.jsonUtils import parseJsonWithModel