iatoolkit 2.33.7__tar.gz → 2.33.9__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 (249) hide show
  1. {iatoolkit-2.33.7/src/iatoolkit.egg-info → iatoolkit-2.33.9}/PKG-INFO +1 -1
  2. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/__init__.py +1 -1
  3. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/common/exceptions.py +17 -0
  4. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/config/llm_capabilities.yaml +0 -9
  5. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/locales/en.yaml +12 -0
  6. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/locales/es.yaml +12 -0
  7. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/repositories/database_manager.py +3 -0
  8. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/runtime_logging.py +60 -0
  9. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/services/llm_client_service.py +11 -2
  10. {iatoolkit-2.33.7 → iatoolkit-2.33.9/src/iatoolkit.egg-info}/PKG-INFO +1 -1
  11. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/LICENSE +0 -0
  12. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/LICENSE_COMMUNITY.md +0 -0
  13. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/pyproject.toml +0 -0
  14. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/readme.md +0 -0
  15. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/requirements.txt +0 -0
  16. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/setup.cfg +0 -0
  17. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/base_company.py +0 -0
  18. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/cli_commands.py +0 -0
  19. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/common/__init__.py +0 -0
  20. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/common/interfaces/__init__.py +0 -0
  21. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/common/interfaces/asset_storage.py +0 -0
  22. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/common/interfaces/database_provider.py +0 -0
  23. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/common/interfaces/memory_compilation_trigger.py +0 -0
  24. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/common/interfaces/memory_lint_trigger.py +0 -0
  25. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/common/interfaces/secret_provider.py +0 -0
  26. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/common/interfaces/signup_policy_resolver.py +0 -0
  27. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/common/interfaces/web_search_provider.py +0 -0
  28. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/common/model_registry.py +0 -0
  29. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/common/routes.py +0 -0
  30. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/common/secret_resolver.py +0 -0
  31. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/common/session_manager.py +0 -0
  32. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/common/util.py +0 -0
  33. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/company_registry.py +0 -0
  34. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/config/__init__.py +0 -0
  35. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/config/system_prompts/channel_business_identity.prompt +0 -0
  36. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/config/system_prompts/channel_conversation_continuity.prompt +0 -0
  37. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/config/system_prompts/channel_response_style.prompt +0 -0
  38. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/config/system_prompts/chat_state_rules.prompt +0 -0
  39. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/config/system_prompts/chat_user_profile.prompt +0 -0
  40. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/config/system_prompts/core_identity.prompt +0 -0
  41. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/config/system_prompts/email_output.prompt +0 -0
  42. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/config/system_prompts/file_download_output.prompt +0 -0
  43. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/config/system_prompts/format_styles.prompt +0 -0
  44. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/config/system_prompts/html_structures.prompt +0 -0
  45. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/config/system_prompts/links_documents.prompt +0 -0
  46. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/config/system_prompts/memory_usage.prompt +0 -0
  47. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/config/system_prompts/multimodal_basics.prompt +0 -0
  48. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/config/system_prompts/output_basics.prompt +0 -0
  49. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/config/system_prompts/presentation_formatting.prompt +0 -0
  50. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/config/system_prompts/query_main.prompt +0 -0
  51. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/config/system_prompts/sql_aggregation_scope.prompt +0 -0
  52. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/config/system_prompts/sql_casting.prompt +0 -0
  53. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/config/system_prompts/sql_core.prompt +0 -0
  54. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/config/system_prompts/sql_jsonb.prompt +0 -0
  55. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/config/system_prompts/sql_mysql_casting.prompt +0 -0
  56. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/config/system_prompts/sql_mysql_json.prompt +0 -0
  57. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/config/system_prompts/sql_redshift_basics.prompt +0 -0
  58. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/config/system_prompts/sql_redshift_types.prompt +0 -0
  59. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/config/system_prompts/sql_rules.prompt +0 -0
  60. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/config/system_prompts/tool_html_passthrough.prompt +0 -0
  61. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/config/system_prompts_pack.yaml +0 -0
  62. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/config/system_tools_pack.yaml +0 -0
  63. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/core.py +0 -0
  64. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/infra/__init__.py +0 -0
  65. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/infra/brevo_mail_app.py +0 -0
  66. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/infra/call_service.py +0 -0
  67. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/infra/connectors/__init__.py +0 -0
  68. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/infra/connectors/file_connector.py +0 -0
  69. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/infra/connectors/file_connector_factory.py +0 -0
  70. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/infra/connectors/google_cloud_storage_connector.py +0 -0
  71. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/infra/connectors/google_drive_connector.py +0 -0
  72. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/infra/connectors/local_file_connector.py +0 -0
  73. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/infra/connectors/s3_connector.py +0 -0
  74. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/infra/google_auth_client.py +0 -0
  75. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/infra/google_chat_app.py +0 -0
  76. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/infra/inference_embeddings_client.py +0 -0
  77. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/infra/inference_handler.py +0 -0
  78. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/infra/jina_embeddings_client.py +0 -0
  79. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/infra/llm_gateway_resolver.py +0 -0
  80. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/infra/llm_providers/__init__.py +0 -0
  81. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/infra/llm_providers/anthropic_adapter.py +0 -0
  82. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/infra/llm_providers/deepseek_adapter.py +0 -0
  83. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/infra/llm_providers/gemini_adapter.py +0 -0
  84. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/infra/llm_providers/openai_adapter.py +0 -0
  85. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/infra/llm_providers/openai_compatible_chat_adapter.py +0 -0
  86. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/infra/llm_providers/openrouter_adapter.py +0 -0
  87. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/infra/llm_proxy.py +0 -0
  88. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/infra/llm_response.py +0 -0
  89. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/infra/redis_session_manager.py +0 -0
  90. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/repositories/__init__.py +0 -0
  91. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/repositories/api_key_repo.py +0 -0
  92. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/repositories/document_repo.py +0 -0
  93. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/repositories/env_secret_provider.py +0 -0
  94. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/repositories/filesystem_asset_repository.py +0 -0
  95. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/repositories/knowledge_wiki_repo.py +0 -0
  96. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/repositories/llm_query_repo.py +0 -0
  97. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/repositories/mcp_token_repo.py +0 -0
  98. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/repositories/memory_repo.py +0 -0
  99. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/repositories/models.py +0 -0
  100. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/repositories/profile_repo.py +0 -0
  101. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/repositories/prompt_resource_repo.py +0 -0
  102. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/repositories/sql_dataset_repo.py +0 -0
  103. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/repositories/sql_source_repo.py +0 -0
  104. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/repositories/vs_repo.py +0 -0
  105. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/services/__init__.py +0 -0
  106. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/services/api_key_service.py +0 -0
  107. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/services/attachment_policy_service.py +0 -0
  108. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/services/auth_service.py +0 -0
  109. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/services/benchmark_service.py +0 -0
  110. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/services/branding_service.py +0 -0
  111. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/services/company_context_service.py +0 -0
  112. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/services/configuration_service.py +0 -0
  113. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/services/context_builder_service.py +0 -0
  114. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/services/dispatcher_service.py +0 -0
  115. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/services/embedding_service.py +0 -0
  116. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/services/excel_service.py +0 -0
  117. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/services/file_processor_service.py +0 -0
  118. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/services/history_manager_service.py +0 -0
  119. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/services/http_tool_service.py +0 -0
  120. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/services/i18n_service.py +0 -0
  121. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/services/inference_service.py +0 -0
  122. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/services/jwt_service.py +0 -0
  123. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/services/knowledge_base_service.py +0 -0
  124. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/services/language_service.py +0 -0
  125. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/services/license_service.py +0 -0
  126. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/services/mail_service.py +0 -0
  127. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/services/markdown_wiki_service.py +0 -0
  128. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/services/mcp_token_service.py +0 -0
  129. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/services/memory_compiler_service.py +0 -0
  130. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/services/memory_lint_service.py +0 -0
  131. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/services/memory_lookup_policy_service.py +0 -0
  132. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/services/memory_service.py +0 -0
  133. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/services/memory_wiki_service.py +0 -0
  134. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/services/noop_memory_compilation_trigger.py +0 -0
  135. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/services/noop_memory_lint_trigger.py +0 -0
  136. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/services/parsers/__init__.py +0 -0
  137. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/services/parsers/contracts.py +0 -0
  138. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/services/parsers/image_normalizer.py +0 -0
  139. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/services/parsers/parsing_service.py +0 -0
  140. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/services/parsers/pdf_ocr_detection.py +0 -0
  141. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/services/parsers/provider_factory.py +0 -0
  142. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/services/parsers/provider_resolver.py +0 -0
  143. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/services/parsers/providers/__init__.py +0 -0
  144. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/services/parsers/providers/basic_provider.py +0 -0
  145. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/services/parsers/providers/docling_provider.py +0 -0
  146. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/services/parsers/validator.py +0 -0
  147. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/services/pdf_service.py +0 -0
  148. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/services/profile_service.py +0 -0
  149. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/services/prompt_resource_service.py +0 -0
  150. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/services/prompt_service.py +0 -0
  151. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/services/query_service.py +0 -0
  152. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/services/signup_policy_resolver.py +0 -0
  153. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/services/sql_dataset_service.py +0 -0
  154. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/services/sql_service.py +0 -0
  155. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/services/sql_source_service.py +0 -0
  156. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/services/storage_service.py +0 -0
  157. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/services/structured_output_service.py +0 -0
  158. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/services/system_prompt_catalog.py +0 -0
  159. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/services/system_tools.py +0 -0
  160. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/services/telemetry_service.py +0 -0
  161. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/services/tenant_wiki_service.py +0 -0
  162. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/services/tool_output_contract.py +0 -0
  163. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/services/tool_service.py +0 -0
  164. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/services/user_feedback_service.py +0 -0
  165. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/services/user_session_context_service.py +0 -0
  166. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/services/visual_kb_service.py +0 -0
  167. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/services/visual_tool_service.py +0 -0
  168. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/services/warmup_service.py +0 -0
  169. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/services/web_search/__init__.py +0 -0
  170. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/services/web_search/provider_factory.py +0 -0
  171. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/services/web_search/providers/__init__.py +0 -0
  172. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/services/web_search/providers/brave_provider.py +0 -0
  173. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/services/web_search_service.py +0 -0
  174. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/static/images/fernando.jpeg +0 -0
  175. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/static/images/iatoolkit_core.png +0 -0
  176. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/static/images/iatoolkit_logo.png +0 -0
  177. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/static/js/chat_feedback_button.js +0 -0
  178. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/static/js/chat_filepond.js +0 -0
  179. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/static/js/chat_help_content.js +0 -0
  180. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/static/js/chat_history_button.js +0 -0
  181. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/static/js/chat_logout_button.js +0 -0
  182. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/static/js/chat_main.js +0 -0
  183. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/static/js/chat_memory_button.js +0 -0
  184. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/static/js/chat_model_selector.js +0 -0
  185. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/static/js/chat_onboarding_button.js +0 -0
  186. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/static/js/chat_prompt_manager.js +0 -0
  187. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/static/js/chat_reload_button.js +0 -0
  188. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/static/styles/chat_iatoolkit.css +0 -0
  189. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/static/styles/chat_modal.css +0 -0
  190. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/static/styles/chat_public.css +0 -0
  191. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/static/styles/documents.css +0 -0
  192. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/static/styles/landing_page.css +0 -0
  193. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/static/styles/llm_output.css +0 -0
  194. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/static/styles/onboarding.css +0 -0
  195. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/templates/_company_header.html +0 -0
  196. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/templates/_login_widget.html +0 -0
  197. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/templates/account.html +0 -0
  198. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/templates/base.html +0 -0
  199. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/templates/change_password.html +0 -0
  200. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/templates/chat.html +0 -0
  201. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/templates/chat_memory_modal.html +0 -0
  202. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/templates/chat_modals.html +0 -0
  203. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/templates/error.html +0 -0
  204. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/templates/forgot_password.html +0 -0
  205. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/templates/home_hosted_default.html +0 -0
  206. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/templates/memory/wiki_schema.md +0 -0
  207. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/templates/onboarding_shell.html +0 -0
  208. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/templates/pdf/base.html +0 -0
  209. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/templates/pdf/letter.html +0 -0
  210. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/templates/pdf/report.html +0 -0
  211. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/templates/pdf/simple.html +0 -0
  212. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/templates/signup.html +0 -0
  213. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/views/__init__.py +0 -0
  214. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/views/account_view.py +0 -0
  215. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/views/api_key_api_view.py +0 -0
  216. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/views/base_login_view.py +0 -0
  217. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/views/categories_api_view.py +0 -0
  218. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/views/change_password_view.py +0 -0
  219. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/views/chat_context_preview_api_view.py +0 -0
  220. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/views/chat_view.py +0 -0
  221. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/views/configuration_api_view.py +0 -0
  222. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/views/connectors_api_view.py +0 -0
  223. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/views/embedding_api_view.py +0 -0
  224. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/views/forgot_password_view.py +0 -0
  225. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/views/help_content_api_view.py +0 -0
  226. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/views/history_api_view.py +0 -0
  227. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/views/home_view.py +0 -0
  228. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/views/init_context_api_view.py +0 -0
  229. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/views/llmquery_api_view.py +0 -0
  230. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/views/load_document_api_view.py +0 -0
  231. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/views/login_view.py +0 -0
  232. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/views/logout_api_view.py +0 -0
  233. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/views/memory_api_view.py +0 -0
  234. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/views/profile_api_view.py +0 -0
  235. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/views/prompt_api_view.py +0 -0
  236. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/views/prompt_context_preview_api_view.py +0 -0
  237. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/views/prompt_resource_api_view.py +0 -0
  238. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/views/rag_api_view.py +0 -0
  239. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/views/root_redirect_view.py +0 -0
  240. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/views/signup_view.py +0 -0
  241. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/views/static_page_view.py +0 -0
  242. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/views/tool_api_view.py +0 -0
  243. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/views/user_feedback_api_view.py +0 -0
  244. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/views/users_api_view.py +0 -0
  245. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit/views/verify_user_view.py +0 -0
  246. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit.egg-info/SOURCES.txt +0 -0
  247. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit.egg-info/dependency_links.txt +0 -0
  248. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/src/iatoolkit.egg-info/requires.txt +0 -0
  249. {iatoolkit-2.33.7 → iatoolkit-2.33.9}/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.33.7
3
+ Version: 2.33.9
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.33.7"
6
+ __version__ = "2.33.9"
7
7
 
8
8
  # Expose main classes and functions at the top level of the package
9
9
 
@@ -49,3 +49,20 @@ class IAToolkitException(Exception):
49
49
  self.error_type = error_type
50
50
  self.message = message
51
51
  super().__init__(self.message)
52
+
53
+
54
+ def is_worker_timeout_signal(exc: BaseException) -> bool:
55
+ """
56
+ True if `exc` is a job-timeout signal injected by the task worker (e.g. RQ's
57
+ JobTimeoutException, raised via SIGALRM mid-call) rather than an ordinary
58
+ application error. Checked by class name/module instead of importing rq,
59
+ since core iatoolkit has no dependency on the task-queue package.
60
+
61
+ Any `except Exception: log-and-continue` fallback along the task execution
62
+ path (tool calls, schema introspection, tokenization, etc.) must re-raise
63
+ this instead of swallowing it - the worker's timeout only fires once
64
+ (one-shot signal), so absorbing it here lets the task keep running for the
65
+ rest of its execution with no timeout protection at all, instead of
66
+ properly failing/retrying.
67
+ """
68
+ return type(exc).__module__ == "rq.timeouts" and type(exc).__name__ == "JobTimeoutException"
@@ -5,9 +5,6 @@ openai:
5
5
  - application/pdf
6
6
  - text/plain
7
7
  - text/csv
8
- - application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
9
- - application/vnd.openxmlformats-officedocument.wordprocessingml.document
10
- - application/vnd.openxmlformats-officedocument.presentationml.presentation
11
8
  - application/json
12
9
  - application/xml
13
10
  - text/xml
@@ -23,9 +20,6 @@ gemini:
23
20
  - application/pdf
24
21
  - text/plain
25
22
  - text/csv
26
- - application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
27
- - application/vnd.openxmlformats-officedocument.wordprocessingml.document
28
- - application/vnd.openxmlformats-officedocument.presentationml.presentation
29
23
  - application/json
30
24
  - application/xml
31
25
  - text/xml
@@ -65,9 +59,6 @@ openrouter:
65
59
  - application/pdf
66
60
  - text/plain
67
61
  - text/csv
68
- - application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
69
- - application/vnd.openxmlformats-officedocument.wordprocessingml.document
70
- - application/vnd.openxmlformats-officedocument.presentationml.presentation
71
62
  - application/json
72
63
  - application/xml
73
64
  - text/xml
@@ -12,6 +12,8 @@ ui:
12
12
  refresh: "Refresh"
13
13
  time: "Time"
14
14
  delete: "Delete"
15
+ loading: "Loading..."
16
+ read_only: "Read-only"
15
17
 
16
18
  dates:
17
19
  last_7_days: "Last 7 Days"
@@ -1119,6 +1121,8 @@ ui:
1119
1121
  no_result_available: "No result available for this run yet."
1120
1122
  no_result_rows: "No rows available to preview."
1121
1123
  result_modal_unavailable: "Result viewer is not available in this screen."
1124
+ failed_items_title: "Failed items"
1125
+ failed_items_subtitle: "Item failures for this pipeline run."
1122
1126
  no_artifacts: "No consolidated exports yet."
1123
1127
  artifact_preview: "Preview"
1124
1128
  artifact_rows: "Rows"
@@ -1471,6 +1475,7 @@ ui:
1471
1475
  sql_context_scope_empty: "Select a database to define which tables belong to the SQL context."
1472
1476
  sql_context_scope_loading: "Load the database schema to choose the tables that should appear in context."
1473
1477
  sql_context_scope_all_tables: "Include all tables"
1478
+ sql_context_scope_save: "Save"
1474
1479
  sql_sources_save_source: "Save Source"
1475
1480
  sql_sources_delete_title: "Delete SQL Source"
1476
1481
  sql_sources_delete_message: "Are you sure you want to delete this SQL source?"
@@ -1679,6 +1684,8 @@ ui:
1679
1684
  run_btn: "Run"
1680
1685
  playground_delivery_mode_label: "Run Async"
1681
1686
  playground_delivery_mode_help: "Queue this playground run instead of waiting for a synchronous response."
1687
+ playground_run_mode_hint_sync: "This playground run will execute immediately and keep the request open until a result is returned."
1688
+ playground_run_mode_hint_async: "This playground run will be queued and the playground will keep polling until the result is ready."
1682
1689
  copy_html_btn: "Copy HTML"
1683
1690
  copy_json_btn: "Copy JSON"
1684
1691
  download_json_btn: "Download JSON"
@@ -2012,6 +2019,7 @@ ui:
2012
2019
  select_section: "Select a section from the left panel"
2013
2020
  no_section_selected: "No section selected"
2014
2021
  view_yaml: "View YAML"
2022
+ activate: "Activate configuration"
2015
2023
  files: "Configuration files"
2016
2024
  overview_title: "Company Overview"
2017
2025
  overview_desc_short: "Core business, model, and branding settings"
@@ -2059,6 +2067,7 @@ ui:
2059
2067
  bundle_import: "Import"
2060
2068
  bundle_export_modal_title: "Export Configuration Bundle"
2061
2069
  bundle_export_select_components: "Select components to include:"
2070
+ bundle_component_agents: "Agents"
2062
2071
  bundle_component_prompts_with_categories: "Prompts (includes categories)"
2063
2072
  bundle_component_collections: "Collections"
2064
2073
  bundle_component_tools_native: "Native Tools"
@@ -2066,6 +2075,9 @@ ui:
2066
2075
  bundle_import_modal_title: "Import Configuration Bundle"
2067
2076
  bundle_zip_label: "Bundle ZIP"
2068
2077
  bundle_import_select_components: "Select components to import:"
2078
+ chat_context_preview_title: "Current user chat context"
2079
+ chat_context_preview_subtitle: "Logical view of the active conversational context for this user."
2080
+ chat_context_preview_block_label: "Sent Context"
2069
2081
 
2070
2082
  rag:
2071
2083
  ingestion: "Ingestion"
@@ -12,6 +12,8 @@ ui:
12
12
  period: "Período"
13
13
  refresh: "Actualizar"
14
14
  delete: "Borrar"
15
+ loading: "Cargando..."
16
+ read_only: "Solo lectura"
15
17
 
16
18
 
17
19
  dates:
@@ -1120,6 +1122,8 @@ ui:
1120
1122
  no_result_available: "Todavía no hay un resultado disponible para esta ejecución."
1121
1123
  no_result_rows: "No hay filas disponibles para previsualizar."
1122
1124
  result_modal_unavailable: "El visor de resultados no está disponible en esta pantalla."
1125
+ failed_items_title: "Items fallidos"
1126
+ failed_items_subtitle: "Fallas de items para esta ejecución de pipeline."
1123
1127
  no_artifacts: "Todavía no hay exportaciones consolidadas."
1124
1128
  artifact_preview: "Vista previa"
1125
1129
  artifact_rows: "Filas"
@@ -1473,6 +1477,7 @@ ui:
1473
1477
  sql_context_scope_empty: "Selecciona una base para definir qué tablas pertenecen al contexto SQL."
1474
1478
  sql_context_scope_loading: "Carga el esquema de la base para elegir las tablas que deben aparecer en el contexto."
1475
1479
  sql_context_scope_all_tables: "Incluir todas las tablas"
1480
+ sql_context_scope_save: "Guardar"
1476
1481
  sql_sources_save_source: "Guardar fuente"
1477
1482
  sql_sources_delete_title: "Eliminar fuente SQL"
1478
1483
  sql_sources_delete_message: "¿Seguro que quieres eliminar esta fuente SQL?"
@@ -1682,6 +1687,8 @@ ui:
1682
1687
  run_btn: "Ejecutar"
1683
1688
  playground_delivery_mode_label: "Ejecutar Async"
1684
1689
  playground_delivery_mode_help: "Encola esta ejecución del playground en lugar de esperar una respuesta sincrónica."
1690
+ playground_run_mode_hint_sync: "Esta ejecución del playground se ejecutará de inmediato y mantendrá la solicitud abierta hasta que se devuelva un resultado."
1691
+ playground_run_mode_hint_async: "Esta ejecución del playground se encolará y el playground seguirá consultando hasta que el resultado esté listo."
1685
1692
  copy_html_btn: "Copiar HTML"
1686
1693
  copy_json_btn: "Copiar JSON"
1687
1694
  download_json_btn: "Descargar JSON"
@@ -2016,6 +2023,7 @@ ui:
2016
2023
  select_section: "Seleccione una sección del panel izquierdo"
2017
2024
  no_section_selected: "No hay sección seleccionada."
2018
2025
  view_yaml: "Ver YAML"
2026
+ activate: "Activar configuración"
2019
2027
  files: "Archivos de Configuración"
2020
2028
  overview_title: "Resumen de la empresa"
2021
2029
  overview_desc_short: "Configuración principal de negocio, modelo y branding"
@@ -2063,6 +2071,7 @@ ui:
2063
2071
  bundle_import: "Importar"
2064
2072
  bundle_export_modal_title: "Exportar paquete de configuración"
2065
2073
  bundle_export_select_components: "Selecciona los componentes a incluir:"
2074
+ bundle_component_agents: "Agentes"
2066
2075
  bundle_component_prompts_with_categories: "Prompts (incluye categorías)"
2067
2076
  bundle_component_collections: "Colecciones"
2068
2077
  bundle_component_tools_native: "Tools nativas"
@@ -2070,6 +2079,9 @@ ui:
2070
2079
  bundle_import_modal_title: "Importar paquete de configuración"
2071
2080
  bundle_zip_label: "ZIP del paquete"
2072
2081
  bundle_import_select_components: "Selecciona los componentes a importar:"
2082
+ chat_context_preview_title: "Contexto de chat del usuario actual"
2083
+ chat_context_preview_subtitle: "Vista lógica del contexto conversacional activo para este usuario."
2084
+ chat_context_preview_block_label: "Contexto Enviado"
2073
2085
 
2074
2086
  rag:
2075
2087
  ingestion: "Ingesta"
@@ -12,6 +12,7 @@ from iatoolkit.repositories.models import Base, ORM_SCHEMA
12
12
  from injector import inject
13
13
  from pgvector.psycopg2 import register_vector
14
14
  from iatoolkit.common.interfaces.database_provider import DatabaseProvider
15
+ from iatoolkit.common.exceptions import is_worker_timeout_signal
15
16
  import logging
16
17
 
17
18
 
@@ -355,6 +356,8 @@ class DatabaseManager(DatabaseProvider):
355
356
  "pk": col['name'] in pks
356
357
  })
357
358
  except Exception as e:
359
+ if is_worker_timeout_signal(e):
360
+ raise
358
361
  logging.warning(f"Could not inspect columns for table {table}: {e}")
359
362
 
360
363
  structure[table] = {
@@ -41,6 +41,60 @@ except ImportError:
41
41
  QuietLivenessGunicornLogger = None
42
42
 
43
43
 
44
+ _QUIET_RQ_MESSAGE_SUBSTRINGS = (
45
+ "cleaning registries for queue",
46
+ "Job OK",
47
+ )
48
+
49
+
50
+ class _QuietRQMaintenanceFilter(logging.Filter):
51
+ """
52
+ RQ logs its own per-job success ('Job OK') and per-queue maintenance
53
+ ('cleaning registries for queue: ...') lines at INFO unconditionally -
54
+ with several queues x several workers this floods production logs with
55
+ nothing actionable. Suppressed unless LOG_LEVEL=DEBUG (or
56
+ IATOOLKIT_LOG_RQ_MAINTENANCE=true) is explicitly requested. Genuine
57
+ failures (AbandonedJobError, job exceptions) go through RQ's own
58
+ WARNING/ERROR calls and are untouched by this filter.
59
+ """
60
+
61
+ def filter(self, record: logging.LogRecord) -> bool:
62
+ if record.levelno != logging.INFO:
63
+ return True
64
+ if _runtime_log_level() <= logging.DEBUG:
65
+ return True
66
+ if _parse_bool_env("IATOOLKIT_LOG_RQ_MAINTENANCE", default=False):
67
+ return True
68
+ message = record.getMessage()
69
+ return not any(substring in message for substring in _QUIET_RQ_MESSAGE_SUBSTRINGS)
70
+
71
+
72
+ _RQ_LOGGER_NAMES_WITH_OWN_HANDLERS = ("rq.worker", "rq.job")
73
+
74
+
75
+ def _dedupe_rq_loghandlers() -> None:
76
+ """
77
+ RQ's own Worker.bootstrap() calls setup_loghandlers(), which attaches a
78
+ StreamHandler directly to 'rq.worker'/'rq.job' UNLESS it detects an
79
+ existing handler anywhere in the logger hierarchy at that exact moment.
80
+ During a worker's boot sequence, our own root stdout handler may not be
81
+ in place yet the first time that runs (logging gets configured more than
82
+ once - at worker.py's top, then again inside enterprise.create() - and
83
+ the exact ordering isn't guaranteed) - RQ's own handler then sticks
84
+ around even after our root handler shows up, and every RQ log record
85
+ (e.g. the per-job start/"Successfully completed" lines) gets printed
86
+ twice: once by RQ's handler, once via propagation to root. These two
87
+ loggers propagate to root, which already carries our canonical handler,
88
+ so it's always safe to drop their own direct handlers here.
89
+ """
90
+ for logger_name in _RQ_LOGGER_NAMES_WITH_OWN_HANDLERS:
91
+ rq_logger = logging.getLogger(logger_name)
92
+ if not rq_logger.propagate:
93
+ continue
94
+ for handler in list(rq_logger.handlers):
95
+ rq_logger.removeHandler(handler)
96
+
97
+
44
98
  def configure_runtime_logging() -> None:
45
99
  formatter = logging.Formatter(LOG_FORMAT, datefmt=LOG_DATE_FORMAT)
46
100
  log_level = _runtime_log_level()
@@ -61,6 +115,12 @@ def configure_runtime_logging() -> None:
61
115
 
62
116
  logging.getLogger("httpx").setLevel(logging.WARNING)
63
117
 
118
+ _dedupe_rq_loghandlers()
119
+
120
+ rq_worker_logger = logging.getLogger("rq.worker")
121
+ if not any(isinstance(f, _QuietRQMaintenanceFilter) for f in rq_worker_logger.filters):
122
+ rq_worker_logger.addFilter(_QuietRQMaintenanceFilter())
123
+
64
124
 
65
125
  def install_flask_request_logging(app) -> None:
66
126
  from flask import g, request
@@ -17,7 +17,7 @@ import logging
17
17
  import json
18
18
  import yaml
19
19
  from html import unescape
20
- from iatoolkit.common.exceptions import IAToolkitException
20
+ from iatoolkit.common.exceptions import IAToolkitException, is_worker_timeout_signal
21
21
  import threading
22
22
  import re
23
23
  import tiktoken
@@ -1291,7 +1291,14 @@ class llmClient:
1291
1291
  try:
1292
1292
  # Preferred encoder for GPT-4o family.
1293
1293
  self.encoding = tiktoken.encoding_for_model("gpt-4o")
1294
- except Exception as model_error:
1294
+ except KeyError as model_error:
1295
+ # tiktoken raises KeyError when it can't map the model name to a
1296
+ # tokeniser (e.g. a newer model it doesn't recognize yet) - that's
1297
+ # the only failure this fallback is meant to handle. A broader
1298
+ # `except Exception` here would also swallow unrelated signals like
1299
+ # RQ's injected JobTimeoutException if a job timeout happens to fire
1300
+ # mid-call, silently absorbing the timeout instead of letting the
1301
+ # task fail/retry.
1295
1302
  logging.warning(f"tiktoken encoding_for_model failed, fallback to cl100k_base: {model_error}")
1296
1303
  # Local fallback for startup/offline compatibility.
1297
1304
  self.encoding = tiktoken.get_encoding("cl100k_base")
@@ -1299,6 +1306,8 @@ class llmClient:
1299
1306
  tokens = self.encoding.encode(content)
1300
1307
  return len(tokens)
1301
1308
  except Exception as e:
1309
+ if is_worker_timeout_signal(e):
1310
+ raise
1302
1311
  # Safe approximation to keep request flow alive.
1303
1312
  logging.warning(f"Token counting fallback in use: {e}")
1304
1313
  return max(1, len(content) // 4)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: iatoolkit
3
- Version: 2.33.7
3
+ Version: 2.33.9
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
File without changes