From bb9630d6c4f676d74e36459c23edf7ebb444cd32 Mon Sep 17 00:00:00 2001
From: ValueOn AG
Date: Thu, 22 Jan 2026 21:11:25 +0100
Subject: [PATCH] fixed imports
---
.../aichat/aicore/aicoreBase.py | 0
.../aichat/aicore/aicoreModelRegistry.py | 0
.../aichat/aicore/aicoreModelSelector.py | 0
.../aichat/aicore/aicorePluginAnthropic.py | 0
.../aichat/aicore/aicorePluginInternal.py | 0
.../aichat/aicore/aicorePluginOpenai.py | 0
.../aichat/aicore/aicorePluginPerplexity.py | 0
.../aichat/aicore/aicorePluginTavily.py | 0
.../aichat/datamodelFeatureAiChat.py | 0
.../aichat/interfaceFeatureAiChat.py | 0
modules/{features => }/aichat/mainAiChat.py | 0
.../aichat/routeFeatureAiChat.py | 0
.../aichat/serviceAi/mainServiceAi.py | 12 +-
.../aichat/serviceAi/merge_1.txt | 0
.../aichat/serviceAi/subAiCallLooping-flow.md | 0
.../aichat/serviceAi/subAiCallLooping.py | 0
.../aichat/serviceAi/subContentExtraction.py | 2 +-
.../aichat/serviceAi/subDocumentIntents.py | 2 +-
.../aichat/serviceAi/subJsonMerger.py | 0
.../serviceAi/subJsonResponseHandling.py | 0
.../aichat/serviceAi/subLoopingUseCases.py | 0
.../aichat/serviceAi/subResponseParsing.py | 0
.../aichat/serviceAi/subStructureFilling.py | 2 +-
.../serviceAi/subStructureGeneration.py | 2 +-
.../aichat/serviceExtraction/__init__.py | 0
.../serviceExtraction/chunking/__init__.py | 0
.../chunking/chunkerImage.py | 0
.../chunking/chunkerStructure.py | 0
.../chunking/chunkerTable.py | 0
.../serviceExtraction/chunking/chunkerText.py | 0
.../serviceExtraction/extractors/__init__.py | 0
.../extractors/extractorBinary.py | 0
.../extractors/extractorCsv.py | 0
.../extractors/extractorDocx.py | 0
.../extractors/extractorHtml.py | 0
.../extractors/extractorImage.py | 0
.../extractors/extractorJson.py | 0
.../extractors/extractorPdf.py | 0
.../extractors/extractorPptx.py | 0
.../extractors/extractorSql.py | 0
.../extractors/extractorText.py | 0
.../extractors/extractorXlsx.py | 0
.../extractors/extractorXml.py | 0
.../mainServiceExtraction.py | 6 +-
.../serviceExtraction/merging/__init__.py | 0
.../merging/mergerDefault.py | 0
.../serviceExtraction/merging/mergerTable.py | 0
.../serviceExtraction/merging/mergerText.py | 0
.../aichat/serviceExtraction/subMerger.py | 0
.../aichat/serviceExtraction/subPipeline.py | 0
.../subPromptBuilderExtraction.py | 2 +-
.../aichat/serviceExtraction/subRegistry.py | 2 +-
.../aichat/serviceExtraction/subUtils.py | 0
.../mainServiceGeneration.py | 12 +-
.../serviceGeneration/paths/codePath.py | 2 +-
.../serviceGeneration/paths/documentPath.py | 0
.../serviceGeneration/paths/imagePath.py | 0
.../renderers/codeRendererBaseTemplate.py | 0
.../renderers/documentRendererBaseTemplate.py | 0
.../serviceGeneration/renderers/registry.py | 0
.../renderers/rendererCodeCsv.py | 0
.../renderers/rendererCodeJson.py | 0
.../renderers/rendererCodeXml.py | 0
.../renderers/rendererCsv.py | 0
.../renderers/rendererDocx.py | 0
.../renderers/rendererHtml.py | 0
.../renderers/rendererImage.py | 0
.../renderers/rendererJson.py | 0
.../renderers/rendererMarkdown.py | 0
.../renderers/rendererPdf.py | 0
.../renderers/rendererPptx.py | 0
.../renderers/rendererText.py | 0
.../renderers/rendererXlsx.py | 0
.../serviceGeneration/subContentGenerator.py | 2 +-
.../serviceGeneration/subContentIntegrator.py | 0
.../serviceGeneration/subDocumentUtility.py | 0
.../aichat/serviceGeneration/subJsonSchema.py | 0
.../subPromptBuilderGeneration.py | 0
.../subStructureGenerator.py | 0
.../aichat/serviceWeb/mainServiceWeb.py | 0
.../datamodels/datamodelWorkflowActions.py | 2 +-
.../automation/routeFeatureAutomation.py | 4 +-
modules/features/chatbot/mainChatbot.py | 4 +-
.../interfaceFeatureNeutralizer.py | 176 ++
.../mainServiceNeutralization.py | 58 +-
modules/interfaces/interfaceAiObjects.py | 4 +-
modules/interfaces/interfaceDbApp.py | 113 --
modules/routes/routeAdminAutomationEvents.py | 4 +-
modules/routes/routeDataWorkflows.py | 6 +-
modules/security/passwordUtils.py | 54 +
modules/services/__init__.py | 2 +-
.../services/serviceChat/mainServiceChat.py | 2 +-
.../services/serviceUtils/mainServiceUtils.py | 2 +-
modules/shared/__init__.py | 19 +
modules/workflows/automation/mainWorkflow.py | 2 +-
.../methodAi/actions/convertDocument.py | 2 +-
.../methods/methodAi/actions/generateCode.py | 2 +-
.../methodAi/actions/generateDocument.py | 2 +-
.../methods/methodAi/actions/process.py | 2 +-
.../methodAi/actions/summarizeDocument.py | 2 +-
.../methodAi/actions/translateDocument.py | 2 +-
.../methods/methodAi/actions/webResearch.py | 2 +-
.../methodChatbot/actions/queryDatabase.py | 2 +-
.../methodContext/actions/extractContent.py | 2 +-
.../methodContext/actions/getDocumentIndex.py | 2 +-
.../methodContext/actions/neutralizeData.py | 2 +-
.../actions/triggerPreprocessingServer.py | 2 +-
.../methods/methodJira/actions/connectJira.py | 2 +-
.../methodJira/actions/createCsvContent.py | 2 +-
.../methodJira/actions/createExcelContent.py | 2 +-
.../methodJira/actions/exportTicketsAsJson.py | 2 +-
.../actions/importTicketsFromJson.py | 2 +-
.../methodJira/actions/mergeTicketData.py | 2 +-
.../methodJira/actions/parseCsvContent.py | 2 +-
.../methodJira/actions/parseExcelContent.py | 2 +-
.../composeAndDraftEmailWithContext.py | 2 +-
.../methodOutlook/actions/readEmails.py | 2 +-
.../methodOutlook/actions/searchEmails.py | 2 +-
.../methodOutlook/actions/sendDraftEmail.py | 2 +-
.../actions/analyzeFolderUsage.py | 2 +-
.../methodSharepoint/actions/copyFile.py | 2 +-
.../actions/downloadFileByPath.py | 2 +-
.../actions/findDocumentPath.py | 2 +-
.../methodSharepoint/actions/findSiteByUrl.py | 2 +-
.../methodSharepoint/actions/listDocuments.py | 2 +-
.../methodSharepoint/actions/readDocuments.py | 2 +-
.../actions/uploadDocument.py | 2 +-
.../methodSharepoint/actions/uploadFile.py | 2 +-
.../processing/core/actionExecutor.py | 4 +-
.../processing/core/messageCreator.py | 4 +-
.../workflows/processing/core/taskPlanner.py | 4 +-
.../processing/modes/modeAutomation.py | 4 +-
.../workflows/processing/modes/modeBase.py | 4 +-
.../workflows/processing/modes/modeDynamic.py | 8 +-
.../processing/shared/executionState.py | 2 +-
.../processing/shared/placeholderFactory.py | 6 +-
.../shared/promptGenerationActionsDynamic.py | 2 +-
.../shared/promptGenerationTaskplan.py | 2 +-
.../workflows/processing/workflowProcessor.py | 8 +-
modules/workflows/workflowManager.py | 10 +-
scripts/import_analysis.csv | 1753 ++++++++---------
scripts/script_analyze_imports.py | 30 +-
tests/functional/test01_ai_model_selection.py | 6 +-
tests/functional/test02_ai_models.py | 16 +-
tests/functional/test03_ai_operations.py | 12 +-
tests/functional/test04_ai_behavior.py | 4 +-
.../test05_workflow_with_documents.py | 4 +-
.../test06_workflow_prompt_variations.py | 4 +-
tests/functional/test07_json_merge.py | 2 +-
tests/functional/test08_json_finalization.py | 2 +-
.../test09_document_generation_formats.py | 4 +-
.../test10_document_generation_formats.py | 4 +-
.../test11_code_generation_formats.py | 4 +-
tests/functional/test12_json_split_merge.py | 2 +-
tests/functional/test_kpi_full.py | 2 +-
tests/functional/test_kpi_incomplete.py | 2 +-
tests/functional/test_kpi_path.py | 2 +-
.../workflows/test_workflow_execution.py | 2 +-
.../services/test_json_extraction_merging.py | 2 +-
tests/unit/workflows/test_state_management.py | 2 +-
.../test_architecture_validation.py | 2 +-
161 files changed, 1318 insertions(+), 1165 deletions(-)
rename modules/{features => }/aichat/aicore/aicoreBase.py (100%)
rename modules/{features => }/aichat/aicore/aicoreModelRegistry.py (100%)
rename modules/{features => }/aichat/aicore/aicoreModelSelector.py (100%)
rename modules/{features => }/aichat/aicore/aicorePluginAnthropic.py (100%)
rename modules/{features => }/aichat/aicore/aicorePluginInternal.py (100%)
rename modules/{features => }/aichat/aicore/aicorePluginOpenai.py (100%)
rename modules/{features => }/aichat/aicore/aicorePluginPerplexity.py (100%)
rename modules/{features => }/aichat/aicore/aicorePluginTavily.py (100%)
rename modules/{features => }/aichat/datamodelFeatureAiChat.py (100%)
rename modules/{features => }/aichat/interfaceFeatureAiChat.py (100%)
rename modules/{features => }/aichat/mainAiChat.py (100%)
rename modules/{features => }/aichat/routeFeatureAiChat.py (100%)
rename modules/{features => }/aichat/serviceAi/mainServiceAi.py (98%)
rename modules/{features => }/aichat/serviceAi/merge_1.txt (100%)
rename modules/{features => }/aichat/serviceAi/subAiCallLooping-flow.md (100%)
rename modules/{features => }/aichat/serviceAi/subAiCallLooping.py (100%)
rename modules/{features => }/aichat/serviceAi/subContentExtraction.py (99%)
rename modules/{features => }/aichat/serviceAi/subDocumentIntents.py (99%)
rename modules/{features => }/aichat/serviceAi/subJsonMerger.py (100%)
rename modules/{features => }/aichat/serviceAi/subJsonResponseHandling.py (100%)
rename modules/{features => }/aichat/serviceAi/subLoopingUseCases.py (100%)
rename modules/{features => }/aichat/serviceAi/subResponseParsing.py (100%)
rename modules/{features => }/aichat/serviceAi/subStructureFilling.py (99%)
rename modules/{features => }/aichat/serviceAi/subStructureGeneration.py (99%)
rename modules/{features => }/aichat/serviceExtraction/__init__.py (100%)
rename modules/{features => }/aichat/serviceExtraction/chunking/__init__.py (100%)
rename modules/{features => }/aichat/serviceExtraction/chunking/chunkerImage.py (100%)
rename modules/{features => }/aichat/serviceExtraction/chunking/chunkerStructure.py (100%)
rename modules/{features => }/aichat/serviceExtraction/chunking/chunkerTable.py (100%)
rename modules/{features => }/aichat/serviceExtraction/chunking/chunkerText.py (100%)
rename modules/{features => }/aichat/serviceExtraction/extractors/__init__.py (100%)
rename modules/{features => }/aichat/serviceExtraction/extractors/extractorBinary.py (100%)
rename modules/{features => }/aichat/serviceExtraction/extractors/extractorCsv.py (100%)
rename modules/{features => }/aichat/serviceExtraction/extractors/extractorDocx.py (100%)
rename modules/{features => }/aichat/serviceExtraction/extractors/extractorHtml.py (100%)
rename modules/{features => }/aichat/serviceExtraction/extractors/extractorImage.py (100%)
rename modules/{features => }/aichat/serviceExtraction/extractors/extractorJson.py (100%)
rename modules/{features => }/aichat/serviceExtraction/extractors/extractorPdf.py (100%)
rename modules/{features => }/aichat/serviceExtraction/extractors/extractorPptx.py (100%)
rename modules/{features => }/aichat/serviceExtraction/extractors/extractorSql.py (100%)
rename modules/{features => }/aichat/serviceExtraction/extractors/extractorText.py (100%)
rename modules/{features => }/aichat/serviceExtraction/extractors/extractorXlsx.py (100%)
rename modules/{features => }/aichat/serviceExtraction/extractors/extractorXml.py (100%)
rename modules/{features => }/aichat/serviceExtraction/mainServiceExtraction.py (99%)
rename modules/{features => }/aichat/serviceExtraction/merging/__init__.py (100%)
rename modules/{features => }/aichat/serviceExtraction/merging/mergerDefault.py (100%)
rename modules/{features => }/aichat/serviceExtraction/merging/mergerTable.py (100%)
rename modules/{features => }/aichat/serviceExtraction/merging/mergerText.py (100%)
rename modules/{features => }/aichat/serviceExtraction/subMerger.py (100%)
rename modules/{features => }/aichat/serviceExtraction/subPipeline.py (100%)
rename modules/{features => }/aichat/serviceExtraction/subPromptBuilderExtraction.py (98%)
rename modules/{features => }/aichat/serviceExtraction/subRegistry.py (99%)
rename modules/{features => }/aichat/serviceExtraction/subUtils.py (100%)
rename modules/{features => }/aichat/serviceGeneration/mainServiceGeneration.py (98%)
rename modules/{features => }/aichat/serviceGeneration/paths/codePath.py (99%)
rename modules/{features => }/aichat/serviceGeneration/paths/documentPath.py (100%)
rename modules/{features => }/aichat/serviceGeneration/paths/imagePath.py (100%)
rename modules/{features => }/aichat/serviceGeneration/renderers/codeRendererBaseTemplate.py (100%)
rename modules/{features => }/aichat/serviceGeneration/renderers/documentRendererBaseTemplate.py (100%)
rename modules/{features => }/aichat/serviceGeneration/renderers/registry.py (100%)
rename modules/{features => }/aichat/serviceGeneration/renderers/rendererCodeCsv.py (100%)
rename modules/{features => }/aichat/serviceGeneration/renderers/rendererCodeJson.py (100%)
rename modules/{features => }/aichat/serviceGeneration/renderers/rendererCodeXml.py (100%)
rename modules/{features => }/aichat/serviceGeneration/renderers/rendererCsv.py (100%)
rename modules/{features => }/aichat/serviceGeneration/renderers/rendererDocx.py (100%)
rename modules/{features => }/aichat/serviceGeneration/renderers/rendererHtml.py (100%)
rename modules/{features => }/aichat/serviceGeneration/renderers/rendererImage.py (100%)
rename modules/{features => }/aichat/serviceGeneration/renderers/rendererJson.py (100%)
rename modules/{features => }/aichat/serviceGeneration/renderers/rendererMarkdown.py (100%)
rename modules/{features => }/aichat/serviceGeneration/renderers/rendererPdf.py (100%)
rename modules/{features => }/aichat/serviceGeneration/renderers/rendererPptx.py (100%)
rename modules/{features => }/aichat/serviceGeneration/renderers/rendererText.py (100%)
rename modules/{features => }/aichat/serviceGeneration/renderers/rendererXlsx.py (100%)
rename modules/{features => }/aichat/serviceGeneration/subContentGenerator.py (99%)
rename modules/{features => }/aichat/serviceGeneration/subContentIntegrator.py (100%)
rename modules/{features => }/aichat/serviceGeneration/subDocumentUtility.py (100%)
rename modules/{features => }/aichat/serviceGeneration/subJsonSchema.py (100%)
rename modules/{features => }/aichat/serviceGeneration/subPromptBuilderGeneration.py (100%)
rename modules/{features => }/aichat/serviceGeneration/subStructureGenerator.py (100%)
rename modules/{features => }/aichat/serviceWeb/mainServiceWeb.py (100%)
create mode 100644 modules/features/neutralizer/interfaceFeatureNeutralizer.py
create mode 100644 modules/security/passwordUtils.py
create mode 100644 modules/shared/__init__.py
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