iatoolkit 0.66.4__tar.gz → 0.66.8__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/PKG-INFO +1 -1
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/pyproject.toml +1 -1
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/iatoolkit.py +1 -1
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/repositories/database_manager.py +2 -2
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/services/i18n_service.py +2 -2
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/services/language_service.py +22 -20
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/services/profile_service.py +2 -2
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/static/styles/chat_iatoolkit.css +37 -47
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/templates/chat.html +11 -4
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit.egg-info/PKG-INFO +1 -1
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/readme.md +0 -0
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/requirements.txt +0 -0
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/setup.cfg +0 -0
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/__init__.py +0 -0
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/base_company.py +0 -0
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/cli_commands.py +0 -0
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/common/__init__.py +0 -0
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/common/exceptions.py +0 -0
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/common/routes.py +0 -0
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/common/session_manager.py +0 -0
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/common/util.py +0 -0
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/company_registry.py +0 -0
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/infra/__init__.py +0 -0
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/infra/call_service.py +0 -0
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/infra/connectors/__init__.py +0 -0
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/infra/connectors/file_connector.py +0 -0
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/infra/connectors/file_connector_factory.py +0 -0
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/infra/connectors/google_cloud_storage_connector.py +0 -0
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/infra/connectors/google_drive_connector.py +0 -0
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/infra/connectors/local_file_connector.py +0 -0
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/infra/connectors/s3_connector.py +0 -0
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/infra/gemini_adapter.py +0 -0
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/infra/google_chat_app.py +0 -0
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/infra/llm_client.py +0 -0
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/infra/llm_proxy.py +0 -0
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/infra/llm_response.py +0 -0
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/infra/mail_app.py +0 -0
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/infra/openai_adapter.py +0 -0
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/infra/redis_session_manager.py +0 -0
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/locales/en.yaml +0 -0
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/locales/es.yaml +0 -0
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/repositories/__init__.py +0 -0
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/repositories/document_repo.py +0 -0
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/repositories/llm_query_repo.py +0 -0
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/repositories/models.py +0 -0
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/repositories/profile_repo.py +0 -0
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/repositories/tasks_repo.py +0 -0
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/repositories/vs_repo.py +0 -0
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/services/__init__.py +0 -0
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/services/auth_service.py +0 -0
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/services/benchmark_service.py +0 -0
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/services/branding_service.py +0 -0
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/services/dispatcher_service.py +0 -0
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/services/document_service.py +0 -0
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/services/excel_service.py +0 -0
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/services/file_processor_service.py +0 -0
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/services/help_content_service.py +0 -0
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/services/history_service.py +0 -0
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/services/jwt_service.py +0 -0
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/services/load_documents_service.py +0 -0
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/services/mail_service.py +0 -0
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/services/onboarding_service.py +0 -0
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/services/prompt_manager_service.py +0 -0
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/services/query_service.py +0 -0
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/services/search_service.py +0 -0
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/services/sql_service.py +0 -0
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/services/tasks_service.py +0 -0
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/services/user_feedback_service.py +0 -0
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/services/user_session_context_service.py +0 -0
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/static/images/fernando.jpeg +0 -0
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/static/js/chat_feedback_button.js +0 -0
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/static/js/chat_filepond.js +0 -0
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/static/js/chat_help_content.js +0 -0
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/static/js/chat_history_button.js +0 -0
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/static/js/chat_logout_button.js +0 -0
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/static/js/chat_main.js +0 -0
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/static/js/chat_onboarding_button.js +0 -0
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/static/js/chat_prompt_manager.js +0 -0
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/static/js/chat_reload_button.js +0 -0
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/static/styles/chat_modal.css +0 -0
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/static/styles/chat_public.css +0 -0
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/static/styles/landing_page.css +0 -0
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/static/styles/llm_output.css +0 -0
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/static/styles/onboarding.css +0 -0
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/system_prompts/format_styles.prompt +0 -0
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/system_prompts/query_main.prompt +0 -0
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/system_prompts/sql_rules.prompt +0 -0
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/templates/_company_header.html +0 -0
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/templates/_login_widget.html +0 -0
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/templates/about.html +0 -0
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/templates/base.html +0 -0
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/templates/change_password.html +0 -0
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/templates/chat_modals.html +0 -0
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/templates/error.html +0 -0
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/templates/forgot_password.html +0 -0
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/templates/index.html +0 -0
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/templates/login_simulation.html +0 -0
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/templates/onboarding_shell.html +0 -0
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/templates/signup.html +0 -0
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/views/__init__.py +0 -0
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/views/base_login_view.py +0 -0
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/views/change_password_view.py +0 -0
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/views/external_login_view.py +0 -0
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/views/file_store_api_view.py +0 -0
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/views/forgot_password_view.py +0 -0
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/views/help_content_api_view.py +0 -0
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/views/history_api_view.py +0 -0
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/views/home_view.py +0 -0
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/views/index_view.py +0 -0
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/views/init_context_api_view.py +0 -0
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/views/llmquery_api_view.py +0 -0
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/views/login_simulation_view.py +0 -0
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/views/login_view.py +0 -0
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/views/logout_api_view.py +0 -0
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/views/profile_api_view.py +0 -0
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/views/prompt_api_view.py +0 -0
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/views/signup_view.py +0 -0
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/views/tasks_api_view.py +0 -0
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/views/tasks_review_api_view.py +0 -0
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/views/user_feedback_api_view.py +0 -0
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/views/verify_user_view.py +0 -0
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit.egg-info/SOURCES.txt +0 -0
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit.egg-info/dependency_links.txt +0 -0
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit.egg-info/requires.txt +0 -0
- {iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit.egg-info/top_level.txt +0 -0
|
@@ -19,7 +19,7 @@ from werkzeug.middleware.proxy_fix import ProxyFix
|
|
|
19
19
|
from injector import Binder, Injector, singleton
|
|
20
20
|
from importlib.metadata import version as _pkg_version, PackageNotFoundError
|
|
21
21
|
|
|
22
|
-
IATOOLKIT_VERSION = "0.66.
|
|
22
|
+
IATOOLKIT_VERSION = "0.66.8"
|
|
23
23
|
|
|
24
24
|
# global variable for the unique instance of IAToolkit
|
|
25
25
|
_iatoolkit_instance: Optional['IAToolkit'] = None
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
# iatoolkit/services/i18n_service.py
|
|
2
2
|
import os
|
|
3
3
|
import logging
|
|
4
|
-
from injector import inject
|
|
4
|
+
from injector import inject, singleton
|
|
5
5
|
from iatoolkit.common.util import Utility
|
|
6
6
|
from iatoolkit.services.language_service import LanguageService
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
@singleton
|
|
9
9
|
class I18nService:
|
|
10
10
|
"""
|
|
11
11
|
Servicio centralizado para manejar la internacionalización (i18n).
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
# iatoolkit/services/language_service.py
|
|
2
2
|
|
|
3
3
|
import logging
|
|
4
|
-
from injector import inject
|
|
4
|
+
from injector import inject, singleton
|
|
5
5
|
from flask import g, request
|
|
6
6
|
from iatoolkit.repositories.profile_repo import ProfileRepo
|
|
7
7
|
from iatoolkit.common.session_manager import SessionManager
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
@singleton
|
|
10
10
|
class LanguageService:
|
|
11
11
|
"""
|
|
12
12
|
Determines the correct language for the current request
|
|
@@ -14,6 +14,8 @@ class LanguageService:
|
|
|
14
14
|
and caches it in the Flask 'g' object for the request's lifecycle.
|
|
15
15
|
"""
|
|
16
16
|
|
|
17
|
+
FALLBACK_LANGUAGE = 'es'
|
|
18
|
+
|
|
17
19
|
@inject
|
|
18
20
|
def __init__(self, profile_repo: ProfileRepo):
|
|
19
21
|
self.profile_repo = profile_repo
|
|
@@ -49,29 +51,29 @@ class LanguageService:
|
|
|
49
51
|
if 'lang' in g:
|
|
50
52
|
return g.lang
|
|
51
53
|
|
|
52
|
-
from iatoolkit.services.i18n_service import I18nService
|
|
53
|
-
lang = I18nService.FALLBACK_LANGUAGE
|
|
54
|
-
|
|
55
54
|
try:
|
|
55
|
+
# Priority 1: User's preferred language
|
|
56
|
+
user_identifier = SessionManager.get('user_identifier')
|
|
57
|
+
if user_identifier:
|
|
58
|
+
user = self.profile_repo.get_user_by_email(user_identifier)
|
|
59
|
+
if user and user.preferred_language:
|
|
60
|
+
logging.debug(f"Language determined by user preference: {user.preferred_language}")
|
|
61
|
+
g.lang = user.preferred_language
|
|
62
|
+
return g.lang
|
|
63
|
+
|
|
64
|
+
# Priority 2: Company's default language
|
|
56
65
|
company_short_name = self._get_company_short_name()
|
|
57
66
|
if company_short_name:
|
|
58
|
-
# Prioridad 1: Preferencia del Usuario
|
|
59
|
-
user_identifier = SessionManager.get('user_identifier')
|
|
60
|
-
if user_identifier:
|
|
61
|
-
# Usamos el repositorio para obtener el objeto User
|
|
62
|
-
user = self.profile_repo.get_user_by_email(
|
|
63
|
-
user_identifier) # Asumiendo que el email es el identificador
|
|
64
|
-
if user and user.preferred_language:
|
|
65
|
-
g.lang = user.preferred_language
|
|
66
|
-
return g.lang
|
|
67
|
-
|
|
68
|
-
# Prioridad 2: Idioma por defecto de la Compañía (si no se encontró preferencia de usuario)
|
|
69
67
|
company = self.profile_repo.get_company_by_short_name(company_short_name)
|
|
70
68
|
if company and company.default_language:
|
|
71
|
-
|
|
69
|
+
logging.debug(f"Language determined by company default: {company.default_language}")
|
|
70
|
+
g.lang = company.default_language
|
|
71
|
+
return g.lang
|
|
72
72
|
except Exception as e:
|
|
73
|
-
logging.
|
|
73
|
+
logging.info(f"Could not determine language, falling back to default. Reason: {e}")
|
|
74
74
|
pass
|
|
75
75
|
|
|
76
|
-
|
|
77
|
-
|
|
76
|
+
# Priority 3: System-wide fallback
|
|
77
|
+
logging.info(f"Language determined by system fallback: {self.FALLBACK_LANGUAGE}")
|
|
78
|
+
g.lang = self.FALLBACK_LANGUAGE
|
|
79
|
+
return g.lang
|
|
@@ -151,7 +151,7 @@ class ProfileService:
|
|
|
151
151
|
except Exception as e:
|
|
152
152
|
# Log the error and return a generic failure message.
|
|
153
153
|
logging.error(f"Failed to update language for {user_identifier}: {e}")
|
|
154
|
-
return {'success': False, 'error_message': self.i18n_service.t('errors.general.unexpected_error')}
|
|
154
|
+
return {'success': False, 'error_message': self.i18n_service.t('errors.general.unexpected_error', error=str(e))}
|
|
155
155
|
|
|
156
156
|
|
|
157
157
|
def get_profile_by_identifier(self, company_short_name: str, user_identifier: str) -> dict:
|
|
@@ -230,7 +230,7 @@ class ProfileService:
|
|
|
230
230
|
|
|
231
231
|
return {"message": self.i18n_service.t('flash_messages.signup_success')}
|
|
232
232
|
except Exception as e:
|
|
233
|
-
return {"error": self.i18n_service.t('errors.general.unexpected_error')}
|
|
233
|
+
return {"error": self.i18n_service.t('errors.general.unexpected_error', error=str(e))}
|
|
234
234
|
|
|
235
235
|
def update_user(self, email: str, **kwargs) -> User:
|
|
236
236
|
return self.profile_repo.update_user(email, **kwargs)
|
|
@@ -23,12 +23,6 @@ li {
|
|
|
23
23
|
padding-left: 0.25rem; /* Pequeño espacio extra entre la viñeta y el texto */
|
|
24
24
|
}
|
|
25
25
|
|
|
26
|
-
/* Estilo para la viñeta (el punto) de cada elemento de la lista */
|
|
27
|
-
li::marker {
|
|
28
|
-
color: var(--brand-primary-color); /* La viñeta usa el color principal de la marca */
|
|
29
|
-
font-size: 1.1em; /* Ligeramente más grande para que sea más visible */
|
|
30
|
-
}
|
|
31
|
-
|
|
32
26
|
.text-muted {
|
|
33
27
|
color: #64748b;
|
|
34
28
|
}
|
|
@@ -65,21 +59,6 @@ li::marker {
|
|
|
65
59
|
padding-bottom: 0.2rem;
|
|
66
60
|
}
|
|
67
61
|
|
|
68
|
-
/* Esta parte para el prompt-assistant sigue siendo correcta */
|
|
69
|
-
main.chat-layout-container.prompt-assistant-open {
|
|
70
|
-
height: auto;
|
|
71
|
-
overflow: visible;
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
/* CSS para el chat principal */
|
|
76
|
-
/* esta clase defines los atributos de cada bloque */
|
|
77
|
-
.chat-block {
|
|
78
|
-
padding: 1rem;
|
|
79
|
-
border: 1px solid #dee2e6;
|
|
80
|
-
border-radius: 0.375rem; /* Borde redondeado estándar de Bootstrap */
|
|
81
|
-
box-shadow: 0 2px 8px rgba(0,0,0,0.06); /* Sombra suave y unificada */
|
|
82
|
-
}
|
|
83
62
|
|
|
84
63
|
/* sección del encabezado en el chat principal */
|
|
85
64
|
.company-section {
|
|
@@ -97,6 +76,15 @@ main.chat-layout-container.prompt-assistant-open {
|
|
|
97
76
|
background-color: #fff; /* Fondo blanco para el contenedor del chat */
|
|
98
77
|
}
|
|
99
78
|
|
|
79
|
+
/* CSS para el chat principal */
|
|
80
|
+
/* esta clase defines los atributos de cada bloque */
|
|
81
|
+
.chat-block {
|
|
82
|
+
padding: 1rem;
|
|
83
|
+
border: 1px solid #dee2e6;
|
|
84
|
+
border-radius: 0.375rem; /* Borde redondeado estándar de Bootstrap */
|
|
85
|
+
box-shadow: 0 2px 8px rgba(0,0,0,0.06); /* Sombra suave y unificada */
|
|
86
|
+
}
|
|
87
|
+
|
|
100
88
|
/* El textarea "invisible" en el centro */
|
|
101
89
|
.chat-textarea {
|
|
102
90
|
flex-grow: 1;
|
|
@@ -108,12 +96,6 @@ main.chat-layout-container.prompt-assistant-open {
|
|
|
108
96
|
min-height: 38px;
|
|
109
97
|
}
|
|
110
98
|
|
|
111
|
-
|
|
112
|
-
/* La caja principal que envuelve toda el área de entrada */
|
|
113
|
-
.input-area {
|
|
114
|
-
background-color: var(--brand-prompt-assistant-bg, #f8f9fa);
|
|
115
|
-
}
|
|
116
|
-
|
|
117
99
|
/* La barra "cápsula" que envuelve el texto y los iconos */
|
|
118
100
|
.chat-input-bar {
|
|
119
101
|
background-color: #ffffff;
|
|
@@ -128,6 +110,11 @@ main.chat-layout-container.prompt-assistant-open {
|
|
|
128
110
|
border-color: #86b7fe;
|
|
129
111
|
box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);
|
|
130
112
|
}
|
|
113
|
+
/* La caja principal que envuelve toda el área de entrada */
|
|
114
|
+
.input-area {
|
|
115
|
+
background-color: var(--brand-prompt-assistant-bg, #f8f9fa);
|
|
116
|
+
}
|
|
117
|
+
|
|
131
118
|
|
|
132
119
|
#question {
|
|
133
120
|
width: 100%;
|
|
@@ -144,12 +131,6 @@ main.chat-layout-container.prompt-assistant-open {
|
|
|
144
131
|
box-shadow: 0 0 0 0.2rem rgba(0,123,255,.25);
|
|
145
132
|
}
|
|
146
133
|
|
|
147
|
-
.answer-section, .error-section {
|
|
148
|
-
max-width: 100%;
|
|
149
|
-
word-wrap: break-word;
|
|
150
|
-
margin-bottom: 10px;
|
|
151
|
-
}
|
|
152
|
-
|
|
153
134
|
/* Estilo del mensaje ingresado por el usuario */
|
|
154
135
|
#chat-container .message {
|
|
155
136
|
max-width: 75%;
|
|
@@ -169,6 +150,13 @@ main.chat-layout-container.prompt-assistant-open {
|
|
|
169
150
|
background-color: #f7f7f8;
|
|
170
151
|
}
|
|
171
152
|
|
|
153
|
+
.answer-section, .error-section {
|
|
154
|
+
max-width: 100%;
|
|
155
|
+
word-wrap: break-word;
|
|
156
|
+
margin-bottom: 10px;
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
|
|
172
160
|
.answer-section {
|
|
173
161
|
align-self: flex-start;
|
|
174
162
|
max-width: 75%;
|
|
@@ -315,7 +303,7 @@ main.chat-layout-container.prompt-assistant-open {
|
|
|
315
303
|
color: #343a40;
|
|
316
304
|
}
|
|
317
305
|
|
|
318
|
-
/*
|
|
306
|
+
/* Anulación específica para el botón de ENVIAR usando su ID (Máxima Prioridad) */
|
|
319
307
|
#send-button i {
|
|
320
308
|
font-size: 1.7rem; /* Ligeramente más grande */
|
|
321
309
|
}
|
|
@@ -395,30 +383,30 @@ main.chat-layout-container.prompt-assistant-open {
|
|
|
395
383
|
border-bottom: none;
|
|
396
384
|
}
|
|
397
385
|
|
|
386
|
+
/* estilos para el selector de prompts */
|
|
398
387
|
.prompt-select-button {
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
border: 1px solid var(--brand-primary-color); /* Borde fino con el color primario */
|
|
403
|
-
|
|
404
|
-
/* Estilos de botón estándar */
|
|
405
|
-
border-radius: 0.25rem;
|
|
388
|
+
color: #202123;
|
|
389
|
+
border: 2px solid var(--brand-primary-color);
|
|
390
|
+
border-radius: 0.25rem; /* Estilos de botón estándar */
|
|
406
391
|
padding: 0.5rem 1rem;
|
|
407
392
|
cursor: pointer;
|
|
408
393
|
text-align: center;
|
|
409
|
-
font-weight: 500;
|
|
394
|
+
font-weight: 500;
|
|
410
395
|
|
|
411
396
|
/* Transición suave para el cambio en hover */
|
|
412
397
|
transition: background-color 0.2s ease-in-out, color 0.2s ease-in-out;
|
|
413
398
|
}
|
|
414
399
|
|
|
415
400
|
.prompt-select-button:hover {
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
color: var(--brand-primary-color);
|
|
419
|
-
}
|
|
401
|
+
background-color: var(--brand-primary-color);
|
|
402
|
+
color: var(--brand-text-on-primary);
|
|
420
403
|
|
|
404
|
+
/* Marca el borde con un glow limpio */
|
|
405
|
+
border-color: var(--brand-primary-color);
|
|
406
|
+
box-shadow: 0 0 0 3px rgba( var(--brand-primary-rgb), 0.25 );
|
|
407
|
+
}
|
|
421
408
|
|
|
409
|
+
/* estilo de la x que limpia el prompt seleccionado */
|
|
422
410
|
#clear-selection-button {
|
|
423
411
|
position: absolute;
|
|
424
412
|
top: 50%;
|
|
@@ -431,7 +419,9 @@ main.chat-layout-container.prompt-assistant-open {
|
|
|
431
419
|
}
|
|
432
420
|
|
|
433
421
|
#clear-selection-button:hover {
|
|
434
|
-
color: #
|
|
422
|
+
color: #ffffff;
|
|
423
|
+
background-color: #6c757d;
|
|
424
|
+
border-radius: 0.25rem;
|
|
435
425
|
}
|
|
436
426
|
|
|
437
427
|
#send-button i {
|
|
@@ -90,8 +90,8 @@
|
|
|
90
90
|
</div>
|
|
91
91
|
|
|
92
92
|
<div id="chat-container"
|
|
93
|
-
class="chat-block mt-2 flex-grow-1"
|
|
94
|
-
|
|
93
|
+
class="chat-block mt-2 flex-grow-1" style="overflow-y: auto;">
|
|
94
|
+
|
|
95
95
|
<!-- Mensaje de bienvenida -->
|
|
96
96
|
<div class="answer-section">
|
|
97
97
|
{{ t('ui.chat.welcome_message') }}
|
|
@@ -113,7 +113,10 @@
|
|
|
113
113
|
<div class="{{ prompt_col_class }}">
|
|
114
114
|
<div class="position-relative h-100">
|
|
115
115
|
<div class="input-group dropup h-100">
|
|
116
|
-
<button type="button" id="prompt-select-button"
|
|
116
|
+
<button type="button" id="prompt-select-button"
|
|
117
|
+
class="btn prompt-select-button border dropdown-toggle w-100 text-start"
|
|
118
|
+
data-bs-toggle="dropdown"
|
|
119
|
+
aria-expanded="false">
|
|
117
120
|
{{ t('ui.chat.prompts_available') }} ....
|
|
118
121
|
</button>
|
|
119
122
|
<ul class="dropdown-menu dropdown-menu-soft w-100">
|
|
@@ -137,7 +140,11 @@
|
|
|
137
140
|
{% endif %}
|
|
138
141
|
</ul>
|
|
139
142
|
</div>
|
|
140
|
-
<button type="button"
|
|
143
|
+
<button type="button"
|
|
144
|
+
id="clear-selection-button"
|
|
145
|
+
class="btn clear-specific-data-button position-absolute end-0 me-1" style="display: none;">
|
|
146
|
+
<i class="bi bi-x-circle-fill"></i>
|
|
147
|
+
</button>
|
|
141
148
|
</div>
|
|
142
149
|
<input type="hidden" id="prompt-select-value" name="prompt_select_value">
|
|
143
150
|
<input type="hidden" id="prompt-select-description" name="prompt-select-description">
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/infra/connectors/file_connector_factory.py
RENAMED
|
File without changes
|
|
File without changes
|
{iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/infra/connectors/google_drive_connector.py
RENAMED
|
File without changes
|
{iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/infra/connectors/local_file_connector.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{iatoolkit-0.66.4 → iatoolkit-0.66.8}/src/iatoolkit/services/user_session_context_service.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|