iatoolkit 0.62.0__py3-none-any.whl → 0.63.1__py3-none-any.whl

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/iatoolkit.py CHANGED
@@ -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.62.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
- background-color: var(--brand-primary-color);
41
- color: var(--brand-text-on-primary);
42
- box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
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
- background-color: var(--website-primary-color); /* Color primario del website */
23
- border-bottom: 1px solid transparent; /* Borde ya no necesario con fondo sólido */
24
- position: sticky;
25
- top: 0;
26
- z-index: 1020;
27
- padding: 0.75rem 0;
28
- width: 100%;
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: 3.5rem;
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;
@@ -1,21 +1,16 @@
1
- <div class="custom-company-header" style="{{ branding.header_style }}">
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>
2
9
 
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
10
 
16
11
  {# Texto "Powered by" con enlace a iatoolkit.com #}
17
12
  <span class="powered-by">
18
- Powered by <a href="https://www.iatoolkit.com" target="_blank" rel="noopener noreferrer" class="iatoolkit-link">IAToolkit</a>
13
+ Powered by <a href="{{ url_for('index') }}" rel="noopener noreferrer" class="iatoolkit-link">IAToolkit</a>
19
14
  </span>
20
15
 
21
16
  </div>
@@ -1,6 +1,6 @@
1
1
  {% extends "base.html" %}
2
2
 
3
- {% block title %}IAToolkit - Asistente Inteligente Personalizable{% endblock %}
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
- <div class="container">
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">IA que entiende tu negocio desde el primer día.</h1>
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> Conecta tus bases de datos, APIs y documentos.</li>
28
- <li><i class="bi bi-chat-dots"></i> Construye un asistente que entiende el lenguaje de tu empresa.</li>
29
- <li><i class="bi bi-rocket-takeoff"></i> Despliega donde quieras, con tu marca y tus reglas.</li>
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
- Explora una versión de demostración completamente funcional para ver el asistente en acción.
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 a la Demo
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 inteligencia artificial.
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
- message="Ha ocurrido un error inesperado."), 500
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
- message="Ha ocurrido un error inesperado."), 500
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", company=company, company_short_name=company_short_name,
64
- message=f"Error processing login path: {str(e)}"), 500
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
 
@@ -88,5 +88,5 @@ class SignupView(MethodView):
88
88
  return render_template("error.html",
89
89
  company=company,
90
90
  company_short_name=company_short_name,
91
- message="Ha ocurrido un error inesperado."), 500
91
+ message=f"Ha ocurrido un error inesperado: {str(e)}"), 500
92
92
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: iatoolkit
3
- Version: 0.62.0
3
+ Version: 0.63.1
4
4
  Summary: IAToolkit
5
5
  Author: Fernando Libedinsky
6
6
  License-Expression: MIT
@@ -2,7 +2,7 @@ iatoolkit/__init__.py,sha256=4PWjMJjktixtrxF6BY405qyA50Sv967kEP2x-oil6qk,1120
2
2
  iatoolkit/base_company.py,sha256=vU4ki-wB3PWIn3_Bvehfh0TfBH_XNC614tRBKNmEd84,4718
3
3
  iatoolkit/cli_commands.py,sha256=G5L9xQXZ0lVFXQWBaE_KEZHyfuiT6PL1nTQRoSdnBzc,2302
4
4
  iatoolkit/company_registry.py,sha256=tduqt3oV8iDX_IB1eA7KIgvIxE4edTcy-3qZIXh3Lzw,2549
5
- iatoolkit/iatoolkit.py,sha256=8fZFUCxun-DTYALYx_p21TJ5YlULXDW0l_73VFKumYw,17616
5
+ iatoolkit/iatoolkit.py,sha256=SlfdIHr6c3o9HSw7ndXHTq82pPyq4edjq4rjRKGr95w,17616
6
6
  iatoolkit/common/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
7
7
  iatoolkit/common/exceptions.py,sha256=EXx40n5htp7UiOM6P1xfJ9U6NMcADqm62dlFaKz7ICU,1154
8
8
  iatoolkit/common/routes.py,sha256=XwhbXupwnYqZ2F4Ec28o9W0LmUUHzpc0QDLQttl4Dwc,5843
@@ -36,7 +36,7 @@ iatoolkit/repositories/vs_repo.py,sha256=UkpmQQiocgM5IwRBmmWhw3HHzHP6zK1nN3J3TcQ
36
36
  iatoolkit/services/__init__.py,sha256=5JqK9sZ6jBuK83zDQokUhxQ0wuJJJ9DXB8pYCLkX7X4,102
37
37
  iatoolkit/services/auth_service.py,sha256=so6031zc9BTrLYskSrOpi1Cplu23_biPnTb-UgcDG4s,7495
38
38
  iatoolkit/services/benchmark_service.py,sha256=CdbFYyS3FHFhNzWQEa9ZNjUlmON10DT1nKNbZQ1EUi8,5880
39
- iatoolkit/services/branding_service.py,sha256=gXj9Lj6EIFNIHT6wAHia5lr4_2a2sD-ExMbewno5YD8,7505
39
+ iatoolkit/services/branding_service.py,sha256=XAvUmvIxtzImziFFTz8MELc69wTWrGvowqhE2qzlZwY,7445
40
40
  iatoolkit/services/dispatcher_service.py,sha256=Qdn2x4cozpgpKg2448sUxkhO6tuplzb8xPWUxdTTFBE,12772
41
41
  iatoolkit/services/document_service.py,sha256=nMXrNtbHQuc9pSaten0LvKY0kT8_WngBDmZJUP3jNPw,5936
42
42
  iatoolkit/services/excel_service.py,sha256=JdAcg7_vPz3J16cf2chC6j7WYVpiT55tDX9667tfMUc,3764
@@ -63,16 +63,16 @@ iatoolkit/static/js/chat_main.js,sha256=6c90EIGd1Elh6Qi0mgo3TTfEF_xM-Un52T5_8_ly
63
63
  iatoolkit/static/js/chat_onboarding_button.js,sha256=vjvEloJ9PA9D7jOGca0QjS3J_7bU97R71L7kSyY3wOI,3153
64
64
  iatoolkit/static/js/chat_prompt_manager.js,sha256=QYki28CpyM2Chn82dnOP2eH6FObxH8eChGFyUxukv1M,3319
65
65
  iatoolkit/static/js/chat_reload_button.js,sha256=f8f_qRnZTNr_DwbcmafTHIuBLmiCoypYAKGQc472AOs,2393
66
- iatoolkit/static/styles/chat_iatoolkit.css,sha256=-ZVVtaxOzwjDH07Mr30VxpCpIFanfvrJEY7Yku8dndk,15599
66
+ iatoolkit/static/styles/chat_iatoolkit.css,sha256=MZz4K_KICsLEcMsw1coMZqViz_hEfH4yxpoJsQgbP3s,16067
67
67
  iatoolkit/static/styles/chat_info.css,sha256=17DbgoNYE21VYWfb5L9-QLCpD2R1idK4imKRLwXtJLY,1058
68
68
  iatoolkit/static/styles/chat_modal.css,sha256=up0NhGwbfu6L-Pj8SBT3_Iq_32HxOQbpLeHtj8ym938,4439
69
- iatoolkit/static/styles/landing_page.css,sha256=fgVQsl9UQRLBYJpma-ni1R5ZBd-3UeR6yl0nwDkB2dY,4200
69
+ iatoolkit/static/styles/landing_page.css,sha256=GbENUWg_42j12TYOowSKLvmifaPoo1lvWv632C83PUE,4351
70
70
  iatoolkit/static/styles/llm_output.css,sha256=AlxgRSOleeCk2dLAqFWVaQ-jwZiJjcpC5rHuUv3T6VU,2312
71
71
  iatoolkit/static/styles/onboarding.css,sha256=Bo0hd8ngVy404_a-gtNFi-hzljhIAnpE-1oQJGnj0F0,3655
72
72
  iatoolkit/system_prompts/format_styles.prompt,sha256=MSMe1qvR3cF_0IbFshn8R0z6Wx6VCHQq1p37rpu5wwk,3576
73
73
  iatoolkit/system_prompts/query_main.prompt,sha256=D2Wjf0uunQIQsQiJVrY-BTQz6PemM5En6ftmw_c5t4E,2808
74
74
  iatoolkit/system_prompts/sql_rules.prompt,sha256=y4nURVnb9AyFwt-lrbMNBHHtZlhk6kC9grYoOhRnrJo,59174
75
- iatoolkit/templates/_company_header.html,sha256=J1Y-7Z2BmwYGkI5Ys7KgdrkAq0ak77xI8j87UJLDlCw,779
75
+ iatoolkit/templates/_company_header.html,sha256=0apMHjLryk1y24OdXC_wLbu0vcwVYOOCAYnkJd0fR68,600
76
76
  iatoolkit/templates/about.html,sha256=ciC08grUVz5qLzdzDDqDX31xirg5PrJIRYabWpV9oA8,294
77
77
  iatoolkit/templates/base.html,sha256=y6YnYM1w2YXOuU0HcC9oE-o7UjFEBgusJqDxHEWazHI,2361
78
78
  iatoolkit/templates/change_password.html,sha256=rKPeG6ZKuuQLv7cTdlb5TyzmHbEn4MwF3wjzQUNwf-0,3533
@@ -81,32 +81,32 @@ iatoolkit/templates/chat_modals.html,sha256=NwwgPoOmVbjy4aO2eHsy1TUMXRiOfTOC5Jx_
81
81
  iatoolkit/templates/error.html,sha256=vkKP-D67II-PzTKF0uklWaf4ms1FRxO2k9_2j5OSNOc,1943
82
82
  iatoolkit/templates/forgot_password.html,sha256=iJ4qgC8NMpalmO2g6sxUrPznSAy6aN0bi10EB1WldGE,2165
83
83
  iatoolkit/templates/header.html,sha256=179agI7rnYwP_rvJNXIiVde5E8Ec5649_XKq6eew2Hk,1263
84
- iatoolkit/templates/index.html,sha256=4TUvp8ABp6isY42YZ4wmnIa4n1hyV1v83iBGeTJ98Rc,7800
84
+ iatoolkit/templates/index.html,sha256=DZZ9WK0jQ9bCbCDkukNt_jWYII7ISxQtNxn4vHQNwz8,7808
85
85
  iatoolkit/templates/login_simulation.html,sha256=1svwCBPrJ3Gy6bD9WMuz25NBSdFgZt4j8_sC7HE6MFU,1270
86
86
  iatoolkit/templates/onboarding_shell.html,sha256=exSGckoPeE-ID9ym3B4TLh5hULpR7N1X6LeuSNmiUL0,4666
87
87
  iatoolkit/templates/signup.html,sha256=ZX1Ufj-W5efOqiBG_7SIxUZcKonffsdRaWdEQYTFuqs,4262
88
88
  iatoolkit/templates/test.html,sha256=rwNtxC83tbCl5COZFXYvmRBxxmgFJtPNuVBd_nq9KWY,133
89
89
  iatoolkit/views/__init__.py,sha256=5JqK9sZ6jBuK83zDQokUhxQ0wuJJJ9DXB8pYCLkX7X4,102
90
90
  iatoolkit/views/base_login_view.py,sha256=qoMMrAezCJvzjcfNzIbd2vwHhksALIQfNK8f_9E8m0o,3241
91
- iatoolkit/views/change_password_view.py,sha256=_ukf0Zrknvm_FQSXDLckqTBUGIkz7p_n4p09Nl5f2dI,4502
91
+ iatoolkit/views/change_password_view.py,sha256=GezQ1pBPLN5x5lcWV90UqzQN5A1FWIF6b3p1r-yxCHg,4571
92
92
  iatoolkit/views/external_login_view.py,sha256=d4gUQbxFsThGbbAUdtFn7AMgPJjeb7_8KFFoH3vspVA,2853
93
93
  iatoolkit/views/file_store_api_view.py,sha256=UvtZWOG-rLQMLfs8igOIYoQ-tkkEg5baMjqCJdKxaRQ,2300
94
- iatoolkit/views/forgot_password_view.py,sha256=kqr5GJXYB1IrSHVjqBzPK55RsZqDbiob6C-MKvIOdl0,3158
94
+ iatoolkit/views/forgot_password_view.py,sha256=aoPPDmWtiNuGXuwYF3vQT3dVO46mPydP_HVYpCmZGsM,3219
95
95
  iatoolkit/views/history_api_view.py,sha256=0YChbss0ae05KHzni2p3d4bGS2_yKAbjALk1OBeQk50,1867
96
- iatoolkit/views/home_view.py,sha256=o2KYG7ZEoCkwip-BaWjzWbAIG-Q1uADvMeGxupqwiss,2794
96
+ iatoolkit/views/home_view.py,sha256=ABlWNDwGRcZOh_CHKOzGLgG42TIpz926uEpOx6ftHqY,2804
97
97
  iatoolkit/views/index_view.py,sha256=OsykSlXLB-TpFAPkDlsMna6bi3Ie5PXL303Hsg3WwUM,329
98
98
  iatoolkit/views/init_context_api_view.py,sha256=YTjpT4xdtm1knUhelDj-VbV4EK6o_qGAgwwDhFmIOlg,2716
99
99
  iatoolkit/views/llmquery_api_view.py,sha256=v_KxR6w-TrCVR2fMFHZCz3_v4o42CXb1Yvd-R1hSJHg,1662
100
100
  iatoolkit/views/login_simulation_view.py,sha256=0Qt-puRnltI2HZxlfdyJmOf26-hQp3xjknGV_jkwV7E,3484
101
- iatoolkit/views/login_view.py,sha256=ESJLKHGUKQw71STHK2AoxugQUJmxnPYlI13n7ZawLLg,5663
101
+ iatoolkit/views/login_view.py,sha256=XNe--QLmIV1ORN8G2iWpR6OlZI5aTwWx7iDi28Z2_FY,5719
102
102
  iatoolkit/views/logout_api_view.py,sha256=wpiWLNkgypOOy7L75_tCJLv1gvcITgmd_hK2ipb9024,1505
103
103
  iatoolkit/views/prompt_api_view.py,sha256=S_4-qAD5knh8Esae1AczEYGdXy_AuU7LMOmnUPej4jQ,1294
104
- iatoolkit/views/signup_view.py,sha256=f0556sRZsGIBZVYSZ7vXbUbPRI2HQ2qHPRS4Y3vyPOI,3921
104
+ iatoolkit/views/signup_view.py,sha256=ai0cT0IxvnK9hSTX-OGOmVr2egZEBStAB2JUhLj14Dg,3931
105
105
  iatoolkit/views/tasks_api_view.py,sha256=wGnuwuuL83ByQ1Yre6ytRVztA0OGQjGrwMjB1_G830U,2630
106
106
  iatoolkit/views/tasks_review_api_view.py,sha256=wsCpzqyRyUdCXWAhyGlBe3eNZZ6A1DQG7TblN_GZNfM,1894
107
107
  iatoolkit/views/user_feedback_api_view.py,sha256=-Ngex8SPf0mPvPNqwE_GUcRErLpOL49yJ43o5Y4Qhqo,1992
108
108
  iatoolkit/views/verify_user_view.py,sha256=QQ5au33eckPoMoVdQcLRq16sGO1vzjXEufUXDbelq04,2742
109
- iatoolkit-0.62.0.dist-info/METADATA,sha256=7GkH7onAQrs8HAU3q053usxEPLvDGurJ5OLq8Zc-mCA,9301
110
- iatoolkit-0.62.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
111
- iatoolkit-0.62.0.dist-info/top_level.txt,sha256=V_w4QvDx0b1RXiy8zTCrD1Bp7AZkFe3_O0-9fMiwogg,10
112
- iatoolkit-0.62.0.dist-info/RECORD,,
109
+ iatoolkit-0.63.1.dist-info/METADATA,sha256=PaG4KRqYWCT8WjOuULGV6tmJ6qhdXKxXXBJBCq0X6XI,9301
110
+ iatoolkit-0.63.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
111
+ iatoolkit-0.63.1.dist-info/top_level.txt,sha256=V_w4QvDx0b1RXiy8zTCrD1Bp7AZkFe3_O0-9fMiwogg,10
112
+ iatoolkit-0.63.1.dist-info/RECORD,,