iatoolkit 0.62.0__tar.gz → 0.63.1__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.
Potentially problematic release.
This version of iatoolkit might be problematic. Click here for more details.
- {iatoolkit-0.62.0 → iatoolkit-0.63.1}/PKG-INFO +1 -1
- {iatoolkit-0.62.0 → iatoolkit-0.63.1}/pyproject.toml +1 -1
- {iatoolkit-0.62.0 → iatoolkit-0.63.1}/src/iatoolkit/iatoolkit.py +1 -1
- {iatoolkit-0.62.0 → iatoolkit-0.63.1}/src/iatoolkit/services/branding_service.py +3 -5
- {iatoolkit-0.62.0 → iatoolkit-0.63.1}/src/iatoolkit/static/styles/chat_iatoolkit.css +16 -9
- {iatoolkit-0.62.0 → iatoolkit-0.63.1}/src/iatoolkit/static/styles/landing_page.css +16 -9
- iatoolkit-0.63.1/src/iatoolkit/templates/_company_header.html +16 -0
- {iatoolkit-0.62.0 → iatoolkit-0.63.1}/src/iatoolkit/templates/index.html +10 -13
- {iatoolkit-0.62.0 → iatoolkit-0.63.1}/src/iatoolkit/views/change_password_view.py +2 -1
- {iatoolkit-0.62.0 → iatoolkit-0.63.1}/src/iatoolkit/views/forgot_password_view.py +3 -2
- {iatoolkit-0.62.0 → iatoolkit-0.63.1}/src/iatoolkit/views/home_view.py +1 -1
- {iatoolkit-0.62.0 → iatoolkit-0.63.1}/src/iatoolkit/views/login_view.py +6 -3
- {iatoolkit-0.62.0 → iatoolkit-0.63.1}/src/iatoolkit/views/signup_view.py +1 -1
- {iatoolkit-0.62.0 → iatoolkit-0.63.1}/src/iatoolkit.egg-info/PKG-INFO +1 -1
- iatoolkit-0.62.0/src/iatoolkit/templates/_company_header.html +0 -21
- {iatoolkit-0.62.0 → iatoolkit-0.63.1}/readme.md +0 -0
- {iatoolkit-0.62.0 → iatoolkit-0.63.1}/requirements.txt +0 -0
- {iatoolkit-0.62.0 → iatoolkit-0.63.1}/setup.cfg +0 -0
- {iatoolkit-0.62.0 → iatoolkit-0.63.1}/src/iatoolkit/__init__.py +0 -0
- {iatoolkit-0.62.0 → iatoolkit-0.63.1}/src/iatoolkit/base_company.py +0 -0
- {iatoolkit-0.62.0 → iatoolkit-0.63.1}/src/iatoolkit/cli_commands.py +0 -0
- {iatoolkit-0.62.0 → iatoolkit-0.63.1}/src/iatoolkit/common/__init__.py +0 -0
- {iatoolkit-0.62.0 → iatoolkit-0.63.1}/src/iatoolkit/common/exceptions.py +0 -0
- {iatoolkit-0.62.0 → iatoolkit-0.63.1}/src/iatoolkit/common/routes.py +0 -0
- {iatoolkit-0.62.0 → iatoolkit-0.63.1}/src/iatoolkit/common/session_manager.py +0 -0
- {iatoolkit-0.62.0 → iatoolkit-0.63.1}/src/iatoolkit/common/util.py +0 -0
- {iatoolkit-0.62.0 → iatoolkit-0.63.1}/src/iatoolkit/company_registry.py +0 -0
- {iatoolkit-0.62.0 → iatoolkit-0.63.1}/src/iatoolkit/infra/__init__.py +0 -0
- {iatoolkit-0.62.0 → iatoolkit-0.63.1}/src/iatoolkit/infra/call_service.py +0 -0
- {iatoolkit-0.62.0 → iatoolkit-0.63.1}/src/iatoolkit/infra/connectors/__init__.py +0 -0
- {iatoolkit-0.62.0 → iatoolkit-0.63.1}/src/iatoolkit/infra/connectors/file_connector.py +0 -0
- {iatoolkit-0.62.0 → iatoolkit-0.63.1}/src/iatoolkit/infra/connectors/file_connector_factory.py +0 -0
- {iatoolkit-0.62.0 → iatoolkit-0.63.1}/src/iatoolkit/infra/connectors/google_cloud_storage_connector.py +0 -0
- {iatoolkit-0.62.0 → iatoolkit-0.63.1}/src/iatoolkit/infra/connectors/google_drive_connector.py +0 -0
- {iatoolkit-0.62.0 → iatoolkit-0.63.1}/src/iatoolkit/infra/connectors/local_file_connector.py +0 -0
- {iatoolkit-0.62.0 → iatoolkit-0.63.1}/src/iatoolkit/infra/connectors/s3_connector.py +0 -0
- {iatoolkit-0.62.0 → iatoolkit-0.63.1}/src/iatoolkit/infra/gemini_adapter.py +0 -0
- {iatoolkit-0.62.0 → iatoolkit-0.63.1}/src/iatoolkit/infra/google_chat_app.py +0 -0
- {iatoolkit-0.62.0 → iatoolkit-0.63.1}/src/iatoolkit/infra/llm_client.py +0 -0
- {iatoolkit-0.62.0 → iatoolkit-0.63.1}/src/iatoolkit/infra/llm_proxy.py +0 -0
- {iatoolkit-0.62.0 → iatoolkit-0.63.1}/src/iatoolkit/infra/llm_response.py +0 -0
- {iatoolkit-0.62.0 → iatoolkit-0.63.1}/src/iatoolkit/infra/mail_app.py +0 -0
- {iatoolkit-0.62.0 → iatoolkit-0.63.1}/src/iatoolkit/infra/openai_adapter.py +0 -0
- {iatoolkit-0.62.0 → iatoolkit-0.63.1}/src/iatoolkit/infra/redis_session_manager.py +0 -0
- {iatoolkit-0.62.0 → iatoolkit-0.63.1}/src/iatoolkit/repositories/__init__.py +0 -0
- {iatoolkit-0.62.0 → iatoolkit-0.63.1}/src/iatoolkit/repositories/database_manager.py +0 -0
- {iatoolkit-0.62.0 → iatoolkit-0.63.1}/src/iatoolkit/repositories/document_repo.py +0 -0
- {iatoolkit-0.62.0 → iatoolkit-0.63.1}/src/iatoolkit/repositories/llm_query_repo.py +0 -0
- {iatoolkit-0.62.0 → iatoolkit-0.63.1}/src/iatoolkit/repositories/models.py +0 -0
- {iatoolkit-0.62.0 → iatoolkit-0.63.1}/src/iatoolkit/repositories/profile_repo.py +0 -0
- {iatoolkit-0.62.0 → iatoolkit-0.63.1}/src/iatoolkit/repositories/tasks_repo.py +0 -0
- {iatoolkit-0.62.0 → iatoolkit-0.63.1}/src/iatoolkit/repositories/vs_repo.py +0 -0
- {iatoolkit-0.62.0 → iatoolkit-0.63.1}/src/iatoolkit/services/__init__.py +0 -0
- {iatoolkit-0.62.0 → iatoolkit-0.63.1}/src/iatoolkit/services/auth_service.py +0 -0
- {iatoolkit-0.62.0 → iatoolkit-0.63.1}/src/iatoolkit/services/benchmark_service.py +0 -0
- {iatoolkit-0.62.0 → iatoolkit-0.63.1}/src/iatoolkit/services/dispatcher_service.py +0 -0
- {iatoolkit-0.62.0 → iatoolkit-0.63.1}/src/iatoolkit/services/document_service.py +0 -0
- {iatoolkit-0.62.0 → iatoolkit-0.63.1}/src/iatoolkit/services/excel_service.py +0 -0
- {iatoolkit-0.62.0 → iatoolkit-0.63.1}/src/iatoolkit/services/file_processor_service.py +0 -0
- {iatoolkit-0.62.0 → iatoolkit-0.63.1}/src/iatoolkit/services/history_service.py +0 -0
- {iatoolkit-0.62.0 → iatoolkit-0.63.1}/src/iatoolkit/services/jwt_service.py +0 -0
- {iatoolkit-0.62.0 → iatoolkit-0.63.1}/src/iatoolkit/services/load_documents_service.py +0 -0
- {iatoolkit-0.62.0 → iatoolkit-0.63.1}/src/iatoolkit/services/mail_service.py +0 -0
- {iatoolkit-0.62.0 → iatoolkit-0.63.1}/src/iatoolkit/services/onboarding_service.py +0 -0
- {iatoolkit-0.62.0 → iatoolkit-0.63.1}/src/iatoolkit/services/profile_service.py +0 -0
- {iatoolkit-0.62.0 → iatoolkit-0.63.1}/src/iatoolkit/services/prompt_manager_service.py +0 -0
- {iatoolkit-0.62.0 → iatoolkit-0.63.1}/src/iatoolkit/services/query_service.py +0 -0
- {iatoolkit-0.62.0 → iatoolkit-0.63.1}/src/iatoolkit/services/search_service.py +0 -0
- {iatoolkit-0.62.0 → iatoolkit-0.63.1}/src/iatoolkit/services/sql_service.py +0 -0
- {iatoolkit-0.62.0 → iatoolkit-0.63.1}/src/iatoolkit/services/tasks_service.py +0 -0
- {iatoolkit-0.62.0 → iatoolkit-0.63.1}/src/iatoolkit/services/user_feedback_service.py +0 -0
- {iatoolkit-0.62.0 → iatoolkit-0.63.1}/src/iatoolkit/services/user_session_context_service.py +0 -0
- {iatoolkit-0.62.0 → iatoolkit-0.63.1}/src/iatoolkit/static/images/fernando.jpeg +0 -0
- {iatoolkit-0.62.0 → iatoolkit-0.63.1}/src/iatoolkit/static/js/chat_feedback_button.js +0 -0
- {iatoolkit-0.62.0 → iatoolkit-0.63.1}/src/iatoolkit/static/js/chat_filepond.js +0 -0
- {iatoolkit-0.62.0 → iatoolkit-0.63.1}/src/iatoolkit/static/js/chat_history_button.js +0 -0
- {iatoolkit-0.62.0 → iatoolkit-0.63.1}/src/iatoolkit/static/js/chat_logout_button.js +0 -0
- {iatoolkit-0.62.0 → iatoolkit-0.63.1}/src/iatoolkit/static/js/chat_main.js +0 -0
- {iatoolkit-0.62.0 → iatoolkit-0.63.1}/src/iatoolkit/static/js/chat_onboarding_button.js +0 -0
- {iatoolkit-0.62.0 → iatoolkit-0.63.1}/src/iatoolkit/static/js/chat_prompt_manager.js +0 -0
- {iatoolkit-0.62.0 → iatoolkit-0.63.1}/src/iatoolkit/static/js/chat_reload_button.js +0 -0
- {iatoolkit-0.62.0 → iatoolkit-0.63.1}/src/iatoolkit/static/styles/chat_info.css +0 -0
- {iatoolkit-0.62.0 → iatoolkit-0.63.1}/src/iatoolkit/static/styles/chat_modal.css +0 -0
- {iatoolkit-0.62.0 → iatoolkit-0.63.1}/src/iatoolkit/static/styles/llm_output.css +0 -0
- {iatoolkit-0.62.0 → iatoolkit-0.63.1}/src/iatoolkit/static/styles/onboarding.css +0 -0
- {iatoolkit-0.62.0 → iatoolkit-0.63.1}/src/iatoolkit/system_prompts/format_styles.prompt +0 -0
- {iatoolkit-0.62.0 → iatoolkit-0.63.1}/src/iatoolkit/system_prompts/query_main.prompt +0 -0
- {iatoolkit-0.62.0 → iatoolkit-0.63.1}/src/iatoolkit/system_prompts/sql_rules.prompt +0 -0
- {iatoolkit-0.62.0 → iatoolkit-0.63.1}/src/iatoolkit/templates/about.html +0 -0
- {iatoolkit-0.62.0 → iatoolkit-0.63.1}/src/iatoolkit/templates/base.html +0 -0
- {iatoolkit-0.62.0 → iatoolkit-0.63.1}/src/iatoolkit/templates/change_password.html +0 -0
- {iatoolkit-0.62.0 → iatoolkit-0.63.1}/src/iatoolkit/templates/chat.html +0 -0
- {iatoolkit-0.62.0 → iatoolkit-0.63.1}/src/iatoolkit/templates/chat_modals.html +0 -0
- {iatoolkit-0.62.0 → iatoolkit-0.63.1}/src/iatoolkit/templates/error.html +0 -0
- {iatoolkit-0.62.0 → iatoolkit-0.63.1}/src/iatoolkit/templates/forgot_password.html +0 -0
- {iatoolkit-0.62.0 → iatoolkit-0.63.1}/src/iatoolkit/templates/header.html +0 -0
- {iatoolkit-0.62.0 → iatoolkit-0.63.1}/src/iatoolkit/templates/login_simulation.html +0 -0
- {iatoolkit-0.62.0 → iatoolkit-0.63.1}/src/iatoolkit/templates/onboarding_shell.html +0 -0
- {iatoolkit-0.62.0 → iatoolkit-0.63.1}/src/iatoolkit/templates/signup.html +0 -0
- {iatoolkit-0.62.0 → iatoolkit-0.63.1}/src/iatoolkit/templates/test.html +0 -0
- {iatoolkit-0.62.0 → iatoolkit-0.63.1}/src/iatoolkit/views/__init__.py +0 -0
- {iatoolkit-0.62.0 → iatoolkit-0.63.1}/src/iatoolkit/views/base_login_view.py +0 -0
- {iatoolkit-0.62.0 → iatoolkit-0.63.1}/src/iatoolkit/views/external_login_view.py +0 -0
- {iatoolkit-0.62.0 → iatoolkit-0.63.1}/src/iatoolkit/views/file_store_api_view.py +0 -0
- {iatoolkit-0.62.0 → iatoolkit-0.63.1}/src/iatoolkit/views/history_api_view.py +0 -0
- {iatoolkit-0.62.0 → iatoolkit-0.63.1}/src/iatoolkit/views/index_view.py +0 -0
- {iatoolkit-0.62.0 → iatoolkit-0.63.1}/src/iatoolkit/views/init_context_api_view.py +0 -0
- {iatoolkit-0.62.0 → iatoolkit-0.63.1}/src/iatoolkit/views/llmquery_api_view.py +0 -0
- {iatoolkit-0.62.0 → iatoolkit-0.63.1}/src/iatoolkit/views/login_simulation_view.py +0 -0
- {iatoolkit-0.62.0 → iatoolkit-0.63.1}/src/iatoolkit/views/logout_api_view.py +0 -0
- {iatoolkit-0.62.0 → iatoolkit-0.63.1}/src/iatoolkit/views/prompt_api_view.py +0 -0
- {iatoolkit-0.62.0 → iatoolkit-0.63.1}/src/iatoolkit/views/tasks_api_view.py +0 -0
- {iatoolkit-0.62.0 → iatoolkit-0.63.1}/src/iatoolkit/views/tasks_review_api_view.py +0 -0
- {iatoolkit-0.62.0 → iatoolkit-0.63.1}/src/iatoolkit/views/user_feedback_api_view.py +0 -0
- {iatoolkit-0.62.0 → iatoolkit-0.63.1}/src/iatoolkit/views/verify_user_view.py +0 -0
- {iatoolkit-0.62.0 → iatoolkit-0.63.1}/src/iatoolkit.egg-info/SOURCES.txt +0 -0
- {iatoolkit-0.62.0 → iatoolkit-0.63.1}/src/iatoolkit.egg-info/dependency_links.txt +0 -0
- {iatoolkit-0.62.0 → iatoolkit-0.63.1}/src/iatoolkit.egg-info/requires.txt +0 -0
- {iatoolkit-0.62.0 → iatoolkit-0.63.1}/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.
|
|
22
|
+
IATOOLKIT_VERSION = "0.63.1"
|
|
23
23
|
|
|
24
24
|
# global variable for the unique instance of IAToolkit
|
|
25
25
|
_iatoolkit_instance: Optional['IAToolkit'] = None
|
|
@@ -80,10 +80,6 @@ class BrandingService:
|
|
|
80
80
|
secondary_rgb = hex_to_rgb(final_branding_values['brand_secondary_color'])
|
|
81
81
|
|
|
82
82
|
# --- CONSTRUCCIÓN DE ESTILOS Y VARIABLES CSS ---
|
|
83
|
-
header_style = (
|
|
84
|
-
f"background-color: {final_branding_values['header_background_color']}; "
|
|
85
|
-
f"color: {final_branding_values['header_text_color']};"
|
|
86
|
-
)
|
|
87
83
|
primary_text_style = (
|
|
88
84
|
f"font-weight: {final_branding_values['primary_font_weight']}; "
|
|
89
85
|
f"font-size: {final_branding_values['primary_font_size']};"
|
|
@@ -103,6 +99,9 @@ class BrandingService:
|
|
|
103
99
|
:root {{
|
|
104
100
|
--brand-primary-color: {final_branding_values['brand_primary_color']};
|
|
105
101
|
--brand-secondary-color: {final_branding_values['brand_secondary_color']};
|
|
102
|
+
--brand-header-bg: {final_branding_values['header_background_color']};
|
|
103
|
+
--brand-header-text: {final_branding_values['header_text_color']};
|
|
104
|
+
|
|
106
105
|
--brand-primary-color-rgb: {', '.join(map(str, primary_rgb))};
|
|
107
106
|
--brand-secondary-color-rgb: {', '.join(map(str, secondary_rgb))};
|
|
108
107
|
--brand-text-on-primary: {final_branding_values['brand_text_on_primary']};
|
|
@@ -133,7 +132,6 @@ class BrandingService:
|
|
|
133
132
|
|
|
134
133
|
return {
|
|
135
134
|
"name": company.name if company else "IAToolkit",
|
|
136
|
-
"header_style": header_style,
|
|
137
135
|
"primary_text_style": primary_text_style,
|
|
138
136
|
"secondary_text_style": secondary_text_style,
|
|
139
137
|
"tertiary_text_style": tertiary_text_style,
|
|
@@ -28,18 +28,15 @@
|
|
|
28
28
|
|
|
29
29
|
/* --- Encabezado de Empresa Personalizado (Actualizado) --- */
|
|
30
30
|
.custom-company-header {
|
|
31
|
-
/* Estructura y Posicionamiento */
|
|
32
|
-
display: flex;
|
|
33
|
-
align-items: center;
|
|
34
|
-
justify-content: space-between; /* Para separar el nombre y el "Powered by" */
|
|
35
31
|
height: 78px;
|
|
36
|
-
padding: 0 1.5rem;
|
|
37
|
-
width: 100%;
|
|
38
32
|
margin-bottom: 20px;
|
|
33
|
+
padding: 0 1.5rem; /* Padding interno para que el texto no toque los bordes */
|
|
34
|
+
border-radius: 0.375rem; /* Bordes redondeados para que coincida con los formularios */
|
|
39
35
|
|
|
40
|
-
|
|
41
|
-
color: var(--brand-
|
|
42
|
-
|
|
36
|
+
/* Los estilos de color y sombra se mantienen */
|
|
37
|
+
background-color: var(--brand-header-bg);
|
|
38
|
+
color: var(--brand-header-text);
|
|
39
|
+
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08); /* Sombra ligeramente más suave */
|
|
43
40
|
}
|
|
44
41
|
|
|
45
42
|
/* Estilo específico para el nombre de la marca (Letra más grande) */
|
|
@@ -64,6 +61,14 @@
|
|
|
64
61
|
color: inherit;
|
|
65
62
|
}
|
|
66
63
|
|
|
64
|
+
/* --- Estilo para el enlace de IAToolkit --- */
|
|
65
|
+
.custom-company-header .iatoolkit-link {
|
|
66
|
+
color: inherit; /* Hereda el color del texto padre */
|
|
67
|
+
text-decoration: none; /* ¡Elimina el subrayado! */
|
|
68
|
+
font-weight: 600; /* Un poco más de peso para diferenciarlo */
|
|
69
|
+
transition: opacity 0.2s ease-in-out;
|
|
70
|
+
}
|
|
71
|
+
|
|
67
72
|
.branded-form-container {
|
|
68
73
|
background-color: #ffffff;
|
|
69
74
|
border: 1px solid #dee2e6;
|
|
@@ -114,6 +119,8 @@
|
|
|
114
119
|
/* Estilo para la sección del encabezado */
|
|
115
120
|
.company-section {
|
|
116
121
|
border-radius: 0.375rem; /* Mismo radio que .chat-block para consistencia */
|
|
122
|
+
background-color: var(--brand-header-bg);
|
|
123
|
+
color: var(--brand-header-text);
|
|
117
124
|
}
|
|
118
125
|
|
|
119
126
|
/* Spinner */
|
|
@@ -19,13 +19,15 @@ body {
|
|
|
19
19
|
|
|
20
20
|
/* --- Encabezado Propio (sin usar .navbar) --- */
|
|
21
21
|
.website-header {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
22
|
+
margin-top: 1rem;
|
|
23
|
+
padding: 1rem 1.5rem; /* Padding vertical y horizontal */
|
|
24
|
+
border-radius: 0.5rem;
|
|
25
|
+
display: flex;
|
|
26
|
+
align-items: center;
|
|
27
|
+
|
|
28
|
+
/* Estilos de color (se mantienen) */
|
|
29
|
+
background-color: var(--website-primary-color);
|
|
30
|
+
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
|
|
29
31
|
}
|
|
30
32
|
|
|
31
33
|
.website-brand {
|
|
@@ -36,10 +38,11 @@ body {
|
|
|
36
38
|
|
|
37
39
|
/* --- Sección Principal (Hero) --- */
|
|
38
40
|
.hero-section {
|
|
39
|
-
padding: 5rem 0
|
|
41
|
+
padding: 2rem 0 1rem; /* Ajustado: 5rem arriba, 0 a los lados, 2.5rem abajo */
|
|
40
42
|
}
|
|
43
|
+
|
|
41
44
|
.hero-title {
|
|
42
|
-
font-size:
|
|
45
|
+
font-size: 3rem;
|
|
43
46
|
font-weight: 800;
|
|
44
47
|
line-height: 1.2;
|
|
45
48
|
margin-bottom: 1.5rem;
|
|
@@ -79,6 +82,10 @@ body {
|
|
|
79
82
|
border-color: var(--website-primary-color-dark);
|
|
80
83
|
}
|
|
81
84
|
|
|
85
|
+
.bg-light h3 {
|
|
86
|
+
color: var(--website-primary-color);
|
|
87
|
+
}
|
|
88
|
+
|
|
82
89
|
/* --- Sección de Características (Features) --- */
|
|
83
90
|
.features-section {
|
|
84
91
|
padding: 5rem 0;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{# El div principal ahora es un contenedor y tiene los estilos y clases de alineación #}
|
|
2
|
+
<div class="custom-company-header container d-flex justify-content-between align-items-center">
|
|
3
|
+
|
|
4
|
+
<a href="{{ url_for('home', company_short_name=company_short_name) }}"
|
|
5
|
+
class="brand-name"
|
|
6
|
+
style="{{ branding.primary_text_style }}">
|
|
7
|
+
{{ branding.name }} IA
|
|
8
|
+
</a>
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
{# Texto "Powered by" con enlace a iatoolkit.com #}
|
|
12
|
+
<span class="powered-by">
|
|
13
|
+
Powered by <a href="{{ url_for('index') }}" rel="noopener noreferrer" class="iatoolkit-link">IAToolkit</a>
|
|
14
|
+
</span>
|
|
15
|
+
|
|
16
|
+
</div>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{% extends "base.html" %}
|
|
2
2
|
|
|
3
|
-
{% block title %}IAToolkit
|
|
3
|
+
{% block title %}IAToolkit{% endblock %}
|
|
4
4
|
|
|
5
5
|
{% block styles %}
|
|
6
6
|
{# Enlazamos la hoja de estilos del website y los iconos de Bootstrap #}
|
|
@@ -11,10 +11,8 @@
|
|
|
11
11
|
|
|
12
12
|
{% block content %}
|
|
13
13
|
<!-- 1. Encabezado con una clase 100% propia y única -->
|
|
14
|
-
<header class="website-header">
|
|
15
|
-
<
|
|
16
|
-
<span class="website-brand">IAToolkit</span>
|
|
17
|
-
</div>
|
|
14
|
+
<header class="website-header container">
|
|
15
|
+
<span class="website-brand">IAToolkit</span>
|
|
18
16
|
</header>
|
|
19
17
|
|
|
20
18
|
<!-- 2. Sección Principal (Hero) -->
|
|
@@ -22,24 +20,23 @@
|
|
|
22
20
|
<div class="container">
|
|
23
21
|
<div class="row align-items-center g-5 py-5">
|
|
24
22
|
<div class="col-lg-7">
|
|
25
|
-
<h1 class="hero-title gradient-text">
|
|
23
|
+
<h1 class="hero-title gradient-text">Framework de IA Open Source</h1>
|
|
26
24
|
<ul class="hero-bullets mt-4">
|
|
27
|
-
<li><i class="bi bi-hdd-stack"></i>
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
</ul>
|
|
25
|
+
<li><i class="bi bi-hdd-stack"></i>Integra tus bases de datos SQL y documentos para dar contexto real a tus asistentes.</li>
|
|
26
|
+
<li><i class="bi bi-code-slash"></i>Crea un repositorio de prompts validados por tu equipo para estandarizar y acelerar las tareas de IA.</li>
|
|
27
|
+
<li><i class="bi bi-shield-lock"></i> Monta la plataforma en tu propia infraestructura con control total sobre el LLM, garantizando la privacidad de los datos.</li> </ul>
|
|
31
28
|
</div>
|
|
32
29
|
<div class="col-lg-5">
|
|
33
30
|
<div class="border rounded-3 p-4 p-md-5 shadow-sm bg-light">
|
|
34
31
|
<h3 class="fw-bold text-center mb-3">Prueba la Plataforma</h3>
|
|
35
32
|
<p class="text-muted text-center mb-4">
|
|
36
|
-
|
|
33
|
+
Encontraras una demo de IAToolkit con una empresa ficticia que te permitira probar la plataforma.
|
|
37
34
|
</p>
|
|
38
35
|
<div class="d-grid">
|
|
39
36
|
{# Este botón usa la clase .btn-primary, que es estilizada por .hero-section .btn-primary en el CSS #}
|
|
40
37
|
<a href="{{ url_for('home', company_short_name='sample_company') }}"
|
|
41
38
|
class="btn btn-primary btn-lg fw-bold">
|
|
42
|
-
Acceder
|
|
39
|
+
Acceder
|
|
43
40
|
</a>
|
|
44
41
|
</div>
|
|
45
42
|
</div>
|
|
@@ -126,7 +123,7 @@
|
|
|
126
123
|
<p class="author-bio mb-0">
|
|
127
124
|
Soy <strong>Fernando Libedinsky</strong>, ingeniero de software y creador de <strong>IAToolkit</strong>.
|
|
128
125
|
<br>Tras una extensa trayectoria en el desarrollo de software, sigo movido por la misma curiosidad que me llevó a programar por primera vez: aprender, explorar y construir cosas nuevas.
|
|
129
|
-
<br>IAToolkit es la continuación de ese impulso, una plataforma creada para conectar rapidamente empresas con la
|
|
126
|
+
<br>IAToolkit es la continuación de ese impulso, una plataforma creada para conectar rapidamente empresas con la IA.
|
|
130
127
|
</p>
|
|
131
128
|
</div>
|
|
132
129
|
</div>
|
|
@@ -97,4 +97,5 @@ class ChangePasswordView(MethodView):
|
|
|
97
97
|
return render_template("error.html",
|
|
98
98
|
company=company,
|
|
99
99
|
company_short_name=company_short_name,
|
|
100
|
-
|
|
100
|
+
branding=branding_data,
|
|
101
|
+
message=f"Ha ocurrido un error inesperado: {str(e)}"), 500
|
|
@@ -36,6 +36,7 @@ class ForgotPasswordView(MethodView):
|
|
|
36
36
|
company = self.profile_service.get_company_by_short_name(company_short_name)
|
|
37
37
|
if not company:
|
|
38
38
|
return render_template('error.html', message="Empresa no encontrada"), 404
|
|
39
|
+
branding_data = self.branding_service.get_company_branding(company)
|
|
39
40
|
|
|
40
41
|
try:
|
|
41
42
|
email = request.form.get('email')
|
|
@@ -48,7 +49,6 @@ class ForgotPasswordView(MethodView):
|
|
|
48
49
|
|
|
49
50
|
response = self.profile_service.forgot_password(email=email, reset_url=reset_url)
|
|
50
51
|
if "error" in response:
|
|
51
|
-
branding_data = self.branding_service.get_company_branding(company)
|
|
52
52
|
return render_template(
|
|
53
53
|
'forgot_password.html',
|
|
54
54
|
company=company,
|
|
@@ -66,5 +66,6 @@ class ForgotPasswordView(MethodView):
|
|
|
66
66
|
return render_template("error.html",
|
|
67
67
|
company=company,
|
|
68
68
|
company_short_name=company_short_name,
|
|
69
|
-
|
|
69
|
+
branding=branding_data,
|
|
70
|
+
message=f"Ha ocurrido un error inesperado: {str(e)}"), 500
|
|
70
71
|
|
|
@@ -65,5 +65,5 @@ class HomeView(MethodView):
|
|
|
65
65
|
company=company,
|
|
66
66
|
company_short_name=company_short_name,
|
|
67
67
|
branding=branding_data,
|
|
68
|
-
message="Ocurrió un error al procesar la plantilla personalizada de la página de inicio
|
|
68
|
+
message=f"Ocurrió un error al procesar la plantilla personalizada de la página de inicio: {str(e)}"
|
|
69
69
|
), 500
|
|
@@ -60,8 +60,10 @@ class LoginView(BaseLoginView):
|
|
|
60
60
|
try:
|
|
61
61
|
return self._handle_login_path(company, user_identifier, target_url)
|
|
62
62
|
except Exception as e:
|
|
63
|
-
return render_template("error.html",
|
|
64
|
-
|
|
63
|
+
return render_template("error.html",
|
|
64
|
+
company=company,
|
|
65
|
+
company_short_name=company_short_name,
|
|
66
|
+
message=f"Error processing login path: {str(e)}"), 500
|
|
65
67
|
|
|
66
68
|
|
|
67
69
|
class FinalizeContextView(MethodView):
|
|
@@ -107,6 +109,7 @@ class FinalizeContextView(MethodView):
|
|
|
107
109
|
company = self.profile_service.get_company_by_short_name(company_short_name)
|
|
108
110
|
if not company:
|
|
109
111
|
return render_template('error.html', message="Empresa no encontrada"), 404
|
|
112
|
+
branding_data = self.branding_service.get_company_branding(company)
|
|
110
113
|
|
|
111
114
|
try:
|
|
112
115
|
# 2. Finalize the context rebuild (the heavy task).
|
|
@@ -117,7 +120,6 @@ class FinalizeContextView(MethodView):
|
|
|
117
120
|
|
|
118
121
|
# 3. render the chat page.
|
|
119
122
|
prompts = self.prompt_service.get_user_prompts(company_short_name)
|
|
120
|
-
branding_data = self.branding_service.get_company_branding(company)
|
|
121
123
|
onboarding_cards = self.onboarding_service.get_onboarding_cards(company)
|
|
122
124
|
|
|
123
125
|
return render_template(
|
|
@@ -134,5 +136,6 @@ class FinalizeContextView(MethodView):
|
|
|
134
136
|
return render_template("error.html",
|
|
135
137
|
company=company,
|
|
136
138
|
company_short_name=company_short_name,
|
|
139
|
+
branding=branding_data,
|
|
137
140
|
message=f"An unexpected error occurred during context loading: {str(e)}"), 500
|
|
138
141
|
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
<div class="custom-company-header" style="{{ branding.header_style }}">
|
|
2
|
-
|
|
3
|
-
{# Enlace condicional para el nombre de la marca a la izquierda #}
|
|
4
|
-
{% if company_short_name %}
|
|
5
|
-
<a href="{{ url_for('home', company_short_name=company_short_name) }}"
|
|
6
|
-
class="brand-name"
|
|
7
|
-
style="{{ branding.primary_text_style }}">
|
|
8
|
-
{{ branding.name }}
|
|
9
|
-
</a>
|
|
10
|
-
{% else %}
|
|
11
|
-
<span class="brand-name" style="{{ branding.primary_text_style }}">
|
|
12
|
-
{{ branding.name }}
|
|
13
|
-
</span>
|
|
14
|
-
{% endif %}
|
|
15
|
-
|
|
16
|
-
{# Texto "Powered by" con enlace a iatoolkit.com #}
|
|
17
|
-
<span class="powered-by">
|
|
18
|
-
Powered by <a href="https://www.iatoolkit.com" target="_blank" rel="noopener noreferrer" class="iatoolkit-link">IAToolkit</a>
|
|
19
|
-
</span>
|
|
20
|
-
|
|
21
|
-
</div>
|
|
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.62.0 → iatoolkit-0.63.1}/src/iatoolkit/infra/connectors/file_connector_factory.py
RENAMED
|
File without changes
|
|
File without changes
|
{iatoolkit-0.62.0 → iatoolkit-0.63.1}/src/iatoolkit/infra/connectors/google_drive_connector.py
RENAMED
|
File without changes
|
{iatoolkit-0.62.0 → iatoolkit-0.63.1}/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
|
{iatoolkit-0.62.0 → iatoolkit-0.63.1}/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
|