iatoolkit 2.76.6__tar.gz → 2.76.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.
Files changed (282) hide show
  1. {iatoolkit-2.76.6/src/iatoolkit.egg-info → iatoolkit-2.76.8}/PKG-INFO +1 -1
  2. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/__init__.py +1 -1
  3. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/services/company_context_service.py +4 -3
  4. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/services/sql_service.py +54 -4
  5. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/services/sql_source_service.py +11 -3
  6. {iatoolkit-2.76.6 → iatoolkit-2.76.8/src/iatoolkit.egg-info}/PKG-INFO +1 -1
  7. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/LICENSE +0 -0
  8. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/LICENSE_COMMUNITY.md +0 -0
  9. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/pyproject.toml +0 -0
  10. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/readme.md +0 -0
  11. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/setup.cfg +0 -0
  12. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/base_company.py +0 -0
  13. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/cli_commands.py +0 -0
  14. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/common/__init__.py +0 -0
  15. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/common/access.py +0 -0
  16. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/common/bridge_validation.py +0 -0
  17. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/common/company_paths.py +0 -0
  18. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/common/exceptions.py +0 -0
  19. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/common/interfaces/__init__.py +0 -0
  20. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/common/interfaces/asset_storage.py +0 -0
  21. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/common/interfaces/database_provider.py +0 -0
  22. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/common/interfaces/history_compaction_trigger.py +0 -0
  23. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/common/interfaces/memory_compilation_trigger.py +0 -0
  24. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/common/interfaces/secret_provider.py +0 -0
  25. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/common/interfaces/signup_policy_resolver.py +0 -0
  26. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/common/interfaces/web_search_provider.py +0 -0
  27. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/common/memory_tools.py +0 -0
  28. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/common/model_registry.py +0 -0
  29. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/common/routes.py +0 -0
  30. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/common/search_terms.py +0 -0
  31. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/common/secret_resolver.py +0 -0
  32. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/common/session_manager.py +0 -0
  33. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/common/text_splitter.py +0 -0
  34. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/common/url_safety.py +0 -0
  35. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/common/util.py +0 -0
  36. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/company_registry.py +0 -0
  37. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/config/__init__.py +0 -0
  38. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/config/llm_capabilities.yaml +0 -0
  39. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/config/system_agents/history_compaction.prompt +0 -0
  40. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/config/system_agents/memory_compiler.prompt +0 -0
  41. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/config/system_agents/memory_correction.prompt +0 -0
  42. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/config/system_agents/memory_document_ingest.prompt +0 -0
  43. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/config/system_agents/memory_image_ingest.prompt +0 -0
  44. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/config/system_agents/memory_meeting_ingest.prompt +0 -0
  45. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/config/system_agents/memory_question_review.prompt +0 -0
  46. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/config/system_agents_pack.yaml +0 -0
  47. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/config/system_prompts/channel_business_identity.prompt +0 -0
  48. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/config/system_prompts/channel_conversation_continuity.prompt +0 -0
  49. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/config/system_prompts/channel_response_style.prompt +0 -0
  50. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/config/system_prompts/chat_state_rules.prompt +0 -0
  51. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/config/system_prompts/chat_user_profile.prompt +0 -0
  52. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/config/system_prompts/core_identity.prompt +0 -0
  53. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/config/system_prompts/email_output.prompt +0 -0
  54. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/config/system_prompts/file_download_output.prompt +0 -0
  55. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/config/system_prompts/format_styles.prompt +0 -0
  56. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/config/system_prompts/html_structures.prompt +0 -0
  57. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/config/system_prompts/links_documents.prompt +0 -0
  58. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/config/system_prompts/memory_usage.prompt +0 -0
  59. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/config/system_prompts/multimodal_basics.prompt +0 -0
  60. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/config/system_prompts/output_basics.prompt +0 -0
  61. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/config/system_prompts/presentation_formatting.prompt +0 -0
  62. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/config/system_prompts/query_main.prompt +0 -0
  63. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/config/system_prompts/sql_aggregation_scope.prompt +0 -0
  64. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/config/system_prompts/sql_casting.prompt +0 -0
  65. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/config/system_prompts/sql_core.prompt +0 -0
  66. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/config/system_prompts/sql_jsonb.prompt +0 -0
  67. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/config/system_prompts/sql_mysql_casting.prompt +0 -0
  68. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/config/system_prompts/sql_mysql_json.prompt +0 -0
  69. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/config/system_prompts/sql_redshift_basics.prompt +0 -0
  70. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/config/system_prompts/sql_redshift_types.prompt +0 -0
  71. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/config/system_prompts/tool_html_passthrough.prompt +0 -0
  72. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/config/system_prompts_pack.yaml +0 -0
  73. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/config/system_tools_pack.yaml +0 -0
  74. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/core.py +0 -0
  75. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/infra/__init__.py +0 -0
  76. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/infra/brevo_mail_app.py +0 -0
  77. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/infra/call_service.py +0 -0
  78. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/infra/connectors/__init__.py +0 -0
  79. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/infra/connectors/file_connector.py +0 -0
  80. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/infra/connectors/file_connector_factory.py +0 -0
  81. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/infra/connectors/google_cloud_storage_connector.py +0 -0
  82. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/infra/connectors/google_drive_connector.py +0 -0
  83. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/infra/connectors/local_file_connector.py +0 -0
  84. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/infra/connectors/s3_connector.py +0 -0
  85. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/infra/google_auth_client.py +0 -0
  86. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/infra/google_chat_app.py +0 -0
  87. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/infra/inference_embeddings_client.py +0 -0
  88. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/infra/inference_handler.py +0 -0
  89. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/infra/jina_embeddings_client.py +0 -0
  90. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/infra/llm_gateway_resolver.py +0 -0
  91. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/infra/llm_providers/__init__.py +0 -0
  92. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/infra/llm_providers/anthropic_adapter.py +0 -0
  93. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/infra/llm_providers/deepseek_adapter.py +0 -0
  94. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/infra/llm_providers/gemini_adapter.py +0 -0
  95. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/infra/llm_providers/openai_adapter.py +0 -0
  96. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/infra/llm_providers/openai_compatible_chat_adapter.py +0 -0
  97. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/infra/llm_providers/openrouter_adapter.py +0 -0
  98. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/infra/llm_proxy.py +0 -0
  99. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/infra/llm_response.py +0 -0
  100. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/infra/redis_session_manager.py +0 -0
  101. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/locales/en.yaml +0 -0
  102. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/locales/es.yaml +0 -0
  103. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/repositories/__init__.py +0 -0
  104. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/repositories/advisory_lock.py +0 -0
  105. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/repositories/api_key_repo.py +0 -0
  106. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/repositories/bridge_repo.py +0 -0
  107. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/repositories/database_manager.py +0 -0
  108. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/repositories/document_repo.py +0 -0
  109. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/repositories/env_secret_provider.py +0 -0
  110. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/repositories/filesystem_asset_repository.py +0 -0
  111. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/repositories/knowledge_wiki_repo.py +0 -0
  112. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/repositories/llm_query_repo.py +0 -0
  113. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/repositories/mcp_token_repo.py +0 -0
  114. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/repositories/memory_question_repo.py +0 -0
  115. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/repositories/memory_repo.py +0 -0
  116. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/repositories/memory_usage_repo.py +0 -0
  117. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/repositories/models.py +0 -0
  118. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/repositories/profile_repo.py +0 -0
  119. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/repositories/prompt_resource_repo.py +0 -0
  120. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/repositories/sql_dataset_repo.py +0 -0
  121. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/repositories/sql_source_repo.py +0 -0
  122. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/repositories/vs_repo.py +0 -0
  123. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/runtime_logging.py +0 -0
  124. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/services/__init__.py +0 -0
  125. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/services/api_key_service.py +0 -0
  126. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/services/attachment_policy_service.py +0 -0
  127. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/services/auth_service.py +0 -0
  128. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/services/branding_service.py +0 -0
  129. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/services/configuration_service.py +0 -0
  130. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/services/context_builder_service.py +0 -0
  131. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/services/dispatcher_service.py +0 -0
  132. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/services/embedding_service.py +0 -0
  133. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/services/excel_service.py +0 -0
  134. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/services/file_processor_service.py +0 -0
  135. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/services/history_compaction_service.py +0 -0
  136. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/services/history_manager_service.py +0 -0
  137. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/services/http_tool_service.py +0 -0
  138. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/services/i18n_service.py +0 -0
  139. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/services/inference_service.py +0 -0
  140. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/services/jwt_service.py +0 -0
  141. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/services/knowledge_base_service.py +0 -0
  142. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/services/language_service.py +0 -0
  143. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/services/license_service.py +0 -0
  144. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/services/llm_client_service.py +0 -0
  145. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/services/mail_service.py +0 -0
  146. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/services/markdown_wiki_service.py +0 -0
  147. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/services/mcp_token_service.py +0 -0
  148. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/services/memory_compiler_service.py +0 -0
  149. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/services/memory_lookup_policy_service.py +0 -0
  150. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/services/memory_question_service.py +0 -0
  151. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/services/memory_service.py +0 -0
  152. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/services/memory_sources.py +0 -0
  153. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/services/memory_usage_service.py +0 -0
  154. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/services/memory_wiki_service.py +0 -0
  155. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/services/noop_history_compaction_trigger.py +0 -0
  156. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/services/noop_memory_compilation_trigger.py +0 -0
  157. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/services/operator_identity_service.py +0 -0
  158. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/services/parsers/__init__.py +0 -0
  159. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/services/parsers/contracts.py +0 -0
  160. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/services/parsers/image_normalizer.py +0 -0
  161. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/services/parsers/parsing_service.py +0 -0
  162. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/services/parsers/pdf_ocr_detection.py +0 -0
  163. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/services/parsers/provider_factory.py +0 -0
  164. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/services/parsers/provider_resolver.py +0 -0
  165. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/services/parsers/providers/__init__.py +0 -0
  166. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/services/parsers/providers/basic_provider.py +0 -0
  167. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/services/parsers/providers/docling_provider.py +0 -0
  168. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/services/parsers/validator.py +0 -0
  169. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/services/pdf_service.py +0 -0
  170. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/services/profile_service.py +0 -0
  171. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/services/prompt_resource_service.py +0 -0
  172. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/services/prompt_service.py +0 -0
  173. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/services/query_service.py +0 -0
  174. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/services/resource_access_scope.py +0 -0
  175. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/services/signup_guard_service.py +0 -0
  176. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/services/signup_policy_resolver.py +0 -0
  177. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/services/sql_catalog_service.py +0 -0
  178. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/services/sql_dataset_service.py +0 -0
  179. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/services/storage_service.py +0 -0
  180. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/services/structured_output_service.py +0 -0
  181. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/services/system_agent_catalog.py +0 -0
  182. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/services/system_agent_runner.py +0 -0
  183. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/services/system_prompt_catalog.py +0 -0
  184. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/services/system_tools.py +0 -0
  185. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/services/telemetry_service.py +0 -0
  186. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/services/tenant_wiki_service.py +0 -0
  187. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/services/tool_output_contract.py +0 -0
  188. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/services/tool_service.py +0 -0
  189. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/services/user_feedback_service.py +0 -0
  190. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/services/user_session_context_service.py +0 -0
  191. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/services/visual_kb_service.py +0 -0
  192. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/services/visual_tool_service.py +0 -0
  193. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/services/warmup_service.py +0 -0
  194. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/services/web_search/__init__.py +0 -0
  195. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/services/web_search/provider_factory.py +0 -0
  196. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/services/web_search/providers/__init__.py +0 -0
  197. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/services/web_search/providers/brave_provider.py +0 -0
  198. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/services/web_search_service.py +0 -0
  199. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/services/wiki_page_index_service.py +0 -0
  200. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/static/images/favicon.ico +0 -0
  201. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/static/images/favicon.png +0 -0
  202. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/static/images/fernando.jpeg +0 -0
  203. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/static/images/iatoolkit_core.png +0 -0
  204. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/static/images/iatoolkit_logo.png +0 -0
  205. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/static/js/chat_feedback_button.js +0 -0
  206. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/static/js/chat_filepond.js +0 -0
  207. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/static/js/chat_header_navigation.js +0 -0
  208. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/static/js/chat_help_content.js +0 -0
  209. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/static/js/chat_history_button.js +0 -0
  210. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/static/js/chat_logout_button.js +0 -0
  211. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/static/js/chat_main.js +0 -0
  212. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/static/js/chat_memory_button.js +0 -0
  213. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/static/js/chat_model_selector.js +0 -0
  214. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/static/js/chat_onboarding_button.js +0 -0
  215. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/static/js/chat_prompt_manager.js +0 -0
  216. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/static/styles/account.css +0 -0
  217. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/static/styles/chat_iatoolkit.css +0 -0
  218. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/static/styles/chat_modal.css +0 -0
  219. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/static/styles/chat_public.css +0 -0
  220. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/static/styles/documents.css +0 -0
  221. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/static/styles/landing_page.css +0 -0
  222. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/static/styles/llm_output.css +0 -0
  223. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/static/styles/onboarding.css +0 -0
  224. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/static/styles/wiki_page.css +0 -0
  225. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/templates/_chat_header.html +0 -0
  226. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/templates/_company_header.html +0 -0
  227. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/templates/_login_widget.html +0 -0
  228. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/templates/account.html +0 -0
  229. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/templates/base.html +0 -0
  230. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/templates/change_password.html +0 -0
  231. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/templates/chat.html +0 -0
  232. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/templates/chat_memory_modal.html +0 -0
  233. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/templates/chat_modals.html +0 -0
  234. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/templates/error.html +0 -0
  235. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/templates/forgot_password.html +0 -0
  236. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/templates/home_hosted_default.html +0 -0
  237. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/templates/login_global.html +0 -0
  238. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/templates/memory/wiki_schema.md +0 -0
  239. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/templates/pdf/base.html +0 -0
  240. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/templates/pdf/letter.html +0 -0
  241. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/templates/pdf/report.html +0 -0
  242. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/templates/pdf/simple.html +0 -0
  243. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/templates/signup.html +0 -0
  244. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/templates/wiki_page.html +0 -0
  245. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/views/__init__.py +0 -0
  246. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/views/account_view.py +0 -0
  247. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/views/api_key_api_view.py +0 -0
  248. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/views/base_login_view.py +0 -0
  249. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/views/categories_api_view.py +0 -0
  250. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/views/change_password_view.py +0 -0
  251. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/views/chat_context_preview_api_view.py +0 -0
  252. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/views/chat_view.py +0 -0
  253. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/views/configuration_api_view.py +0 -0
  254. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/views/connectors_api_view.py +0 -0
  255. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/views/embedding_api_view.py +0 -0
  256. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/views/forgot_password_view.py +0 -0
  257. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/views/help_content_api_view.py +0 -0
  258. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/views/history_api_view.py +0 -0
  259. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/views/home_view.py +0 -0
  260. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/views/init_context_api_view.py +0 -0
  261. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/views/llmquery_api_view.py +0 -0
  262. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/views/load_document_api_view.py +0 -0
  263. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/views/login_view.py +0 -0
  264. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/views/logout_api_view.py +0 -0
  265. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/views/memory_api_view.py +0 -0
  266. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/views/profile_api_view.py +0 -0
  267. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/views/prompt_api_view.py +0 -0
  268. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/views/prompt_context_preview_api_view.py +0 -0
  269. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/views/prompt_resource_api_view.py +0 -0
  270. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/views/rag_api_view.py +0 -0
  271. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/views/root_redirect_view.py +0 -0
  272. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/views/signup_view.py +0 -0
  273. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/views/static_page_view.py +0 -0
  274. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/views/tool_api_view.py +0 -0
  275. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/views/user_feedback_api_view.py +0 -0
  276. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/views/users_api_view.py +0 -0
  277. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/views/verify_user_view.py +0 -0
  278. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit/views/wiki_page_view.py +0 -0
  279. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit.egg-info/SOURCES.txt +0 -0
  280. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit.egg-info/dependency_links.txt +0 -0
  281. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit.egg-info/requires.txt +0 -0
  282. {iatoolkit-2.76.6 → iatoolkit-2.76.8}/src/iatoolkit.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: iatoolkit
3
- Version: 2.76.6
3
+ Version: 2.76.8
4
4
  Summary: IAToolkit
5
5
  Author: Fernando Libedinsky
6
6
  License-Expression: MIT
@@ -3,7 +3,7 @@
3
3
  #
4
4
  # IAToolkit is open source software.
5
5
 
6
- __version__ = "2.76.6"
6
+ __version__ = "2.76.8"
7
7
 
8
8
  # Expose main classes and functions at the top level of the package
9
9
 
@@ -446,14 +446,15 @@ class CompanyContextService:
446
446
 
447
447
  return None
448
448
 
449
- def get_enriched_database_schema(self, company_short_name: str, db_name: str) -> dict:
449
+ def get_enriched_database_schema(self, company_short_name: str, db_name: str, *, fresh: bool = False) -> dict:
450
450
  """
451
451
  Retrieves the physical database structure and enriches it with metadata
452
- found in the AssetRepository (YAML files).
452
+ found in the AssetRepository (YAML files). The structure is cached for a
453
+ few minutes (SqlService); `fresh` reads it from the database.
453
454
  """
454
455
  try:
455
456
  # 1. Physical Structure (Real Source)
456
- structure = self.sql_service.get_database_structure(company_short_name, db_name)
457
+ structure = self.sql_service.get_database_structure(company_short_name, db_name, fresh=fresh)
457
458
 
458
459
  # 2. YAML files
459
460
  available_files = self.asset_repo.list_files(company_short_name, AssetType.SCHEMA)
@@ -22,6 +22,13 @@ class SqlService:
22
22
  It maintains a cache of named DatabaseManager instances to avoid reconnecting.
23
23
  """
24
24
  MAX_QUERY_ROWS = 2000
25
+ #: How long a database's introspected structure is reused (BL-017). Reading
26
+ #: it is one query per table per source: `list_sql_sources` went from ~1s to
27
+ #: 6-13s in production when it began reading every source's tables on each
28
+ #: call. Shared through Redis by every process; a source saved or deleted,
29
+ #: or an explicit introspection from the admin, refreshes it at once.
30
+ STRUCTURE_CACHE_SECONDS = 900
31
+ STRUCTURE_CACHE_PREFIX = "sql_structure"
25
32
  _ALLOWED_QUERY_PREFIXES = ("SELECT", "WITH")
26
33
  _BLOCKED_SQL_PATTERN = re.compile(
27
34
  r"\b(?:INSERT|UPDATE|DELETE|DROP|ALTER|CREATE|TRUNCATE|MERGE|CALL|COPY|GRANT|REVOKE|"
@@ -104,6 +111,41 @@ class SqlService:
104
111
  logging.error(f"Failed to register DB '{db_name}': {e}")
105
112
  # We don't raise here to allow other DBs to load if one fails
106
113
 
114
+ @classmethod
115
+ def _structure_cache_key(cls, company_short_name: str, db_name: str) -> str:
116
+ return f"{cls.STRUCTURE_CACHE_PREFIX}:{company_short_name}:{db_name}"
117
+
118
+ @staticmethod
119
+ def _read_structure_cache(key: str) -> dict:
120
+ try:
121
+ from iatoolkit.infra.redis_session_manager import RedisSessionManager
122
+ cached = RedisSessionManager.get_json(key, {})
123
+ return cached if isinstance(cached, dict) else {}
124
+ except Exception as e:
125
+ # Without the cache the structure is read from the database, as before.
126
+ logging.debug(f"SQL structure cache unavailable for '{key}': {e}")
127
+ return {}
128
+
129
+ @classmethod
130
+ def _write_structure_cache(cls, key: str, structure: dict):
131
+ if not isinstance(structure, dict) or not structure:
132
+ return
133
+ try:
134
+ from iatoolkit.infra.redis_session_manager import RedisSessionManager
135
+ RedisSessionManager.set_json(key, structure, ex=cls.STRUCTURE_CACHE_SECONDS)
136
+ except Exception as e:
137
+ logging.debug(f"Could not cache the SQL structure '{key}': {e}")
138
+
139
+ def invalidate_structure_cache(self, company_short_name: str, db_names: list[str] | None = None):
140
+ """Forgets the cached structures of these sources (default: every registered one)."""
141
+ names = set(db_names or []) | set(self.get_db_names(company_short_name) if db_names is None else [])
142
+ try:
143
+ from iatoolkit.infra.redis_session_manager import RedisSessionManager
144
+ for db_name in names:
145
+ RedisSessionManager.remove(self._structure_cache_key(company_short_name, db_name))
146
+ except Exception as e:
147
+ logging.warning(f"Could not invalidate the SQL structure cache of '{company_short_name}': {e}")
148
+
107
149
  def clear_company_connections(self, company_short_name: str):
108
150
  keys_to_clear = [key for key in self._db_connections if key[0] == company_short_name]
109
151
  for key in keys_to_clear:
@@ -335,14 +377,22 @@ class SqlService:
335
377
  IAToolkitException.ErrorType.DATABASE_ERROR, str(e)
336
378
  )
337
379
 
338
- def get_database_structure(self, company_short_name: str, db_name: str) -> dict:
380
+ def get_database_structure(self, company_short_name: str, db_name: str, *, fresh: bool = False) -> dict:
339
381
  """
340
- Introspects the specified database and returns its structure (Tables & Columns).
341
- Used for the Schema Editor 2.0
382
+ The database's structure (tables & columns), introspected at most every
383
+ STRUCTURE_CACHE_SECONDS. `fresh` reads it from the database and refreshes
384
+ the cache (the admin's introspection, a schema import).
342
385
  """
386
+ key = self._structure_cache_key(company_short_name, db_name)
387
+ if not fresh:
388
+ cached = self._read_structure_cache(key)
389
+ if cached:
390
+ return cached
343
391
  try:
344
392
  provider = self.get_database_provider(company_short_name, db_name)
345
- return provider.get_database_structure()
393
+ structure = provider.get_database_structure()
394
+ self._write_structure_cache(key, structure)
395
+ return structure
346
396
  except IAToolkitException:
347
397
  raise
348
398
  except Exception as e:
@@ -171,7 +171,7 @@ class SqlSourceService:
171
171
  source.included_tables = []
172
172
 
173
173
  persisted = self.sql_source_repo.create_or_update(source)
174
- self.refresh_runtime(company_short_name)
174
+ self._refresh_after_change(company_short_name, [persisted.database])
175
175
  return persisted.to_dict()
176
176
 
177
177
  def update_source(self, company_short_name: str, source_id: int, payload: dict) -> dict:
@@ -237,7 +237,7 @@ class SqlSourceService:
237
237
  )
238
238
 
239
239
  persisted = self.sql_source_repo.create_or_update(source)
240
- self.refresh_runtime(company_short_name)
240
+ self._refresh_after_change(company_short_name, [persisted.database])
241
241
  return persisted.to_dict()
242
242
 
243
243
  def delete_source(self, company_short_name: str, source_id: int) -> None:
@@ -247,7 +247,7 @@ class SqlSourceService:
247
247
  raise IAToolkitException(IAToolkitException.ErrorType.NOT_FOUND, "SQL source not found")
248
248
 
249
249
  self.sql_source_repo.delete(source)
250
- self.refresh_runtime(company_short_name)
250
+ self._refresh_after_change(company_short_name, [source.database])
251
251
 
252
252
  def sync_from_yaml(self, company_short_name: str, sql_sources: list[dict] | None) -> dict:
253
253
  company = self._get_company(company_short_name)
@@ -400,6 +400,14 @@ class SqlSourceService:
400
400
  self.sql_service.register_database(company_short_name, normalized_db_name, db_config)
401
401
  return normalized_db_name in self.sql_service.get_db_names(company_short_name)
402
402
 
403
+ def _refresh_after_change(self, company_short_name: str, db_names: list[str]):
404
+ """A source saved or deleted: its cached structure (and every registered one,
405
+ a rename included) is read again on next use, then the runtime is rebuilt."""
406
+ registered = self.sql_service.get_db_names(company_short_name)
407
+ names = list(registered) + [self._normalize_database(name) for name in db_names if name]
408
+ self.sql_service.invalidate_structure_cache(company_short_name, names)
409
+ self.refresh_runtime(company_short_name)
410
+
403
411
  def refresh_runtime(self, company_short_name: str) -> dict:
404
412
  company = self._get_company(company_short_name)
405
413
  self.sql_service.clear_company_connections(company_short_name)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: iatoolkit
3
- Version: 2.76.6
3
+ Version: 2.76.8
4
4
  Summary: IAToolkit
5
5
  Author: Fernando Libedinsky
6
6
  License-Expression: MIT
File without changes
File without changes
File without changes
File without changes