iatoolkit 2.77.10__tar.gz → 2.77.12__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 (288) hide show
  1. {iatoolkit-2.77.10/src/iatoolkit.egg-info → iatoolkit-2.77.12}/PKG-INFO +1 -1
  2. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/__init__.py +1 -1
  3. iatoolkit-2.77.12/src/iatoolkit/infra/llm_providers/attachment_mime.py +42 -0
  4. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/infra/llm_providers/openai_adapter.py +21 -6
  5. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/infra/llm_providers/openai_compatible_chat_adapter.py +20 -3
  6. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/locales/en.yaml +1 -1
  7. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/locales/es.yaml +1 -1
  8. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/static/js/chat_model_selector.js +1 -1
  9. {iatoolkit-2.77.10 → iatoolkit-2.77.12/src/iatoolkit.egg-info}/PKG-INFO +1 -1
  10. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit.egg-info/SOURCES.txt +1 -0
  11. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/LICENSE +0 -0
  12. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/LICENSE_COMMUNITY.md +0 -0
  13. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/pyproject.toml +0 -0
  14. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/readme.md +0 -0
  15. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/setup.cfg +0 -0
  16. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/base_company.py +0 -0
  17. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/cli_commands.py +0 -0
  18. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/common/__init__.py +0 -0
  19. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/common/access.py +0 -0
  20. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/common/bridge_validation.py +0 -0
  21. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/common/company_paths.py +0 -0
  22. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/common/decision_types.py +0 -0
  23. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/common/exceptions.py +0 -0
  24. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/common/interfaces/__init__.py +0 -0
  25. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/common/interfaces/asset_storage.py +0 -0
  26. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/common/interfaces/database_provider.py +0 -0
  27. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/common/interfaces/history_compaction_trigger.py +0 -0
  28. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/common/interfaces/memory_compilation_trigger.py +0 -0
  29. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/common/interfaces/secret_provider.py +0 -0
  30. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/common/interfaces/signup_policy_resolver.py +0 -0
  31. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/common/interfaces/web_search_provider.py +0 -0
  32. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/common/memory_tools.py +0 -0
  33. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/common/model_registry.py +0 -0
  34. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/common/routes.py +0 -0
  35. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/common/search_terms.py +0 -0
  36. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/common/secret_resolver.py +0 -0
  37. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/common/session_manager.py +0 -0
  38. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/common/text_splitter.py +0 -0
  39. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/common/url_safety.py +0 -0
  40. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/common/util.py +0 -0
  41. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/company_registry.py +0 -0
  42. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/config/__init__.py +0 -0
  43. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/config/llm_capabilities.yaml +0 -0
  44. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/config/system_agents/history_compaction.prompt +0 -0
  45. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/config/system_agents/memory_compiler.prompt +0 -0
  46. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/config/system_agents/memory_correction.prompt +0 -0
  47. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/config/system_agents/memory_document_ingest.prompt +0 -0
  48. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/config/system_agents/memory_image_ingest.prompt +0 -0
  49. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/config/system_agents/memory_meeting_ingest.prompt +0 -0
  50. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/config/system_agents/memory_question_review.prompt +0 -0
  51. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/config/system_agents_pack.yaml +0 -0
  52. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/config/system_prompts/channel_business_identity.prompt +0 -0
  53. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/config/system_prompts/channel_conversation_continuity.prompt +0 -0
  54. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/config/system_prompts/channel_response_style.prompt +0 -0
  55. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/config/system_prompts/chat_state_rules.prompt +0 -0
  56. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/config/system_prompts/chat_user_profile.prompt +0 -0
  57. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/config/system_prompts/core_identity.prompt +0 -0
  58. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/config/system_prompts/email_output.prompt +0 -0
  59. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/config/system_prompts/file_download_output.prompt +0 -0
  60. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/config/system_prompts/format_styles.prompt +0 -0
  61. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/config/system_prompts/html_structures.prompt +0 -0
  62. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/config/system_prompts/links_documents.prompt +0 -0
  63. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/config/system_prompts/memory_usage.prompt +0 -0
  64. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/config/system_prompts/multimodal_basics.prompt +0 -0
  65. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/config/system_prompts/output_basics.prompt +0 -0
  66. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/config/system_prompts/presentation_formatting.prompt +0 -0
  67. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/config/system_prompts/query_main.prompt +0 -0
  68. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/config/system_prompts/sql_aggregation_scope.prompt +0 -0
  69. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/config/system_prompts/sql_casting.prompt +0 -0
  70. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/config/system_prompts/sql_core.prompt +0 -0
  71. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/config/system_prompts/sql_jsonb.prompt +0 -0
  72. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/config/system_prompts/sql_mysql_casting.prompt +0 -0
  73. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/config/system_prompts/sql_mysql_json.prompt +0 -0
  74. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/config/system_prompts/sql_redshift_basics.prompt +0 -0
  75. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/config/system_prompts/sql_redshift_types.prompt +0 -0
  76. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/config/system_prompts/tool_html_passthrough.prompt +0 -0
  77. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/config/system_prompts_pack.yaml +0 -0
  78. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/config/system_tools_pack.yaml +0 -0
  79. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/core.py +0 -0
  80. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/infra/__init__.py +0 -0
  81. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/infra/brevo_mail_app.py +0 -0
  82. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/infra/call_service.py +0 -0
  83. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/infra/connectors/__init__.py +0 -0
  84. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/infra/connectors/file_connector.py +0 -0
  85. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/infra/connectors/file_connector_factory.py +0 -0
  86. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/infra/connectors/google_cloud_storage_connector.py +0 -0
  87. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/infra/connectors/google_drive_connector.py +0 -0
  88. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/infra/connectors/local_file_connector.py +0 -0
  89. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/infra/connectors/s3_connector.py +0 -0
  90. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/infra/google_auth_client.py +0 -0
  91. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/infra/google_chat_app.py +0 -0
  92. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/infra/inference_embeddings_client.py +0 -0
  93. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/infra/inference_handler.py +0 -0
  94. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/infra/jina_embeddings_client.py +0 -0
  95. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/infra/llm_gateway_resolver.py +0 -0
  96. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/infra/llm_providers/__init__.py +0 -0
  97. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/infra/llm_providers/anthropic_adapter.py +0 -0
  98. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/infra/llm_providers/deepseek_adapter.py +0 -0
  99. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/infra/llm_providers/gemini_adapter.py +0 -0
  100. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/infra/llm_providers/openrouter_adapter.py +0 -0
  101. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/infra/llm_proxy.py +0 -0
  102. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/infra/llm_response.py +0 -0
  103. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/infra/openrouter_decision_client.py +0 -0
  104. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/infra/redis_session_manager.py +0 -0
  105. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/repositories/__init__.py +0 -0
  106. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/repositories/advisory_lock.py +0 -0
  107. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/repositories/api_key_repo.py +0 -0
  108. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/repositories/bridge_repo.py +0 -0
  109. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/repositories/database_manager.py +0 -0
  110. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/repositories/document_repo.py +0 -0
  111. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/repositories/env_secret_provider.py +0 -0
  112. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/repositories/filesystem_asset_repository.py +0 -0
  113. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/repositories/knowledge_wiki_repo.py +0 -0
  114. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/repositories/llm_query_repo.py +0 -0
  115. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/repositories/mcp_token_repo.py +0 -0
  116. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/repositories/memory_question_repo.py +0 -0
  117. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/repositories/memory_repo.py +0 -0
  118. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/repositories/memory_usage_repo.py +0 -0
  119. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/repositories/models.py +0 -0
  120. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/repositories/profile_repo.py +0 -0
  121. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/repositories/prompt_resource_repo.py +0 -0
  122. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/repositories/sql_dataset_repo.py +0 -0
  123. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/repositories/sql_source_repo.py +0 -0
  124. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/repositories/vs_repo.py +0 -0
  125. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/runtime_logging.py +0 -0
  126. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/services/__init__.py +0 -0
  127. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/services/api_key_service.py +0 -0
  128. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/services/attachment_policy_service.py +0 -0
  129. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/services/auth_service.py +0 -0
  130. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/services/branding_service.py +0 -0
  131. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/services/company_context_service.py +0 -0
  132. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/services/configuration_service.py +0 -0
  133. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/services/context_builder_service.py +0 -0
  134. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/services/decision_attachments.py +0 -0
  135. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/services/decision_service.py +0 -0
  136. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/services/dispatcher_service.py +0 -0
  137. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/services/embedding_service.py +0 -0
  138. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/services/excel_service.py +0 -0
  139. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/services/file_processor_service.py +0 -0
  140. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/services/history_compaction_service.py +0 -0
  141. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/services/history_manager_service.py +0 -0
  142. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/services/http_tool_service.py +0 -0
  143. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/services/i18n_service.py +0 -0
  144. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/services/inference_service.py +0 -0
  145. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/services/jwt_service.py +0 -0
  146. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/services/knowledge_base_service.py +0 -0
  147. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/services/language_service.py +0 -0
  148. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/services/license_service.py +0 -0
  149. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/services/llm_client_service.py +0 -0
  150. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/services/mail_service.py +0 -0
  151. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/services/markdown_wiki_service.py +0 -0
  152. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/services/mcp_token_service.py +0 -0
  153. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/services/memory_compiler_service.py +0 -0
  154. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/services/memory_lookup_policy_service.py +0 -0
  155. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/services/memory_question_service.py +0 -0
  156. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/services/memory_service.py +0 -0
  157. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/services/memory_sources.py +0 -0
  158. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/services/memory_usage_service.py +0 -0
  159. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/services/memory_wiki_service.py +0 -0
  160. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/services/noop_history_compaction_trigger.py +0 -0
  161. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/services/noop_memory_compilation_trigger.py +0 -0
  162. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/services/operator_identity_service.py +0 -0
  163. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/services/parsers/__init__.py +0 -0
  164. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/services/parsers/contracts.py +0 -0
  165. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/services/parsers/image_normalizer.py +0 -0
  166. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/services/parsers/parsing_service.py +0 -0
  167. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/services/parsers/pdf_ocr_detection.py +0 -0
  168. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/services/parsers/provider_factory.py +0 -0
  169. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/services/parsers/provider_resolver.py +0 -0
  170. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/services/parsers/providers/__init__.py +0 -0
  171. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/services/parsers/providers/basic_provider.py +0 -0
  172. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/services/parsers/providers/docling_provider.py +0 -0
  173. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/services/parsers/validator.py +0 -0
  174. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/services/pdf_service.py +0 -0
  175. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/services/profile_service.py +0 -0
  176. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/services/prompt_resource_service.py +0 -0
  177. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/services/prompt_service.py +0 -0
  178. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/services/query_service.py +0 -0
  179. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/services/resource_access_scope.py +0 -0
  180. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/services/signup_guard_service.py +0 -0
  181. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/services/signup_policy_resolver.py +0 -0
  182. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/services/sql_catalog_service.py +0 -0
  183. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/services/sql_dataset_service.py +0 -0
  184. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/services/sql_service.py +0 -0
  185. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/services/sql_source_service.py +0 -0
  186. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/services/storage_service.py +0 -0
  187. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/services/structured_output_service.py +0 -0
  188. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/services/system_agent_catalog.py +0 -0
  189. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/services/system_agent_runner.py +0 -0
  190. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/services/system_prompt_catalog.py +0 -0
  191. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/services/system_tools.py +0 -0
  192. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/services/telemetry_service.py +0 -0
  193. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/services/tenant_wiki_service.py +0 -0
  194. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/services/tool_output_contract.py +0 -0
  195. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/services/tool_service.py +0 -0
  196. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/services/user_feedback_service.py +0 -0
  197. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/services/user_session_context_service.py +0 -0
  198. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/services/visual_kb_service.py +0 -0
  199. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/services/visual_tool_service.py +0 -0
  200. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/services/warmup_service.py +0 -0
  201. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/services/web_search/__init__.py +0 -0
  202. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/services/web_search/provider_factory.py +0 -0
  203. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/services/web_search/providers/__init__.py +0 -0
  204. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/services/web_search/providers/brave_provider.py +0 -0
  205. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/services/web_search_service.py +0 -0
  206. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/services/wiki_page_index_service.py +0 -0
  207. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/static/images/favicon.ico +0 -0
  208. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/static/images/favicon.png +0 -0
  209. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/static/images/fernando.jpeg +0 -0
  210. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/static/images/iatoolkit_core.png +0 -0
  211. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/static/images/iatoolkit_logo.png +0 -0
  212. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/static/js/chat_feedback_button.js +0 -0
  213. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/static/js/chat_filepond.js +0 -0
  214. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/static/js/chat_header_navigation.js +0 -0
  215. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/static/js/chat_help_content.js +0 -0
  216. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/static/js/chat_history_button.js +0 -0
  217. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/static/js/chat_logout_button.js +0 -0
  218. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/static/js/chat_main.js +0 -0
  219. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/static/js/chat_memory_button.js +0 -0
  220. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/static/js/chat_onboarding_button.js +0 -0
  221. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/static/js/chat_prompt_manager.js +0 -0
  222. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/static/styles/account.css +0 -0
  223. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/static/styles/chat_iatoolkit.css +0 -0
  224. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/static/styles/chat_modal.css +0 -0
  225. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/static/styles/chat_public.css +0 -0
  226. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/static/styles/documents.css +0 -0
  227. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/static/styles/landing_page.css +0 -0
  228. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/static/styles/llm_output.css +0 -0
  229. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/static/styles/onboarding.css +0 -0
  230. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/static/styles/wiki_page.css +0 -0
  231. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/templates/_chat_header.html +0 -0
  232. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/templates/_company_header.html +0 -0
  233. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/templates/_login_widget.html +0 -0
  234. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/templates/account.html +0 -0
  235. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/templates/base.html +0 -0
  236. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/templates/change_password.html +0 -0
  237. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/templates/chat.html +0 -0
  238. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/templates/chat_memory_modal.html +0 -0
  239. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/templates/chat_modals.html +0 -0
  240. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/templates/error.html +0 -0
  241. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/templates/forgot_password.html +0 -0
  242. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/templates/home_hosted_default.html +0 -0
  243. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/templates/invitation_invalid.html +0 -0
  244. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/templates/login_global.html +0 -0
  245. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/templates/memory/wiki_schema.md +0 -0
  246. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/templates/pdf/base.html +0 -0
  247. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/templates/pdf/letter.html +0 -0
  248. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/templates/pdf/report.html +0 -0
  249. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/templates/pdf/simple.html +0 -0
  250. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/templates/signup.html +0 -0
  251. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/templates/wiki_page.html +0 -0
  252. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/views/__init__.py +0 -0
  253. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/views/account_view.py +0 -0
  254. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/views/api_key_api_view.py +0 -0
  255. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/views/base_login_view.py +0 -0
  256. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/views/categories_api_view.py +0 -0
  257. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/views/change_password_view.py +0 -0
  258. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/views/chat_context_preview_api_view.py +0 -0
  259. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/views/chat_view.py +0 -0
  260. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/views/configuration_api_view.py +0 -0
  261. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/views/connectors_api_view.py +0 -0
  262. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/views/embedding_api_view.py +0 -0
  263. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/views/forgot_password_view.py +0 -0
  264. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/views/help_content_api_view.py +0 -0
  265. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/views/history_api_view.py +0 -0
  266. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/views/home_view.py +0 -0
  267. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/views/init_context_api_view.py +0 -0
  268. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/views/llmquery_api_view.py +0 -0
  269. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/views/load_document_api_view.py +0 -0
  270. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/views/login_view.py +0 -0
  271. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/views/logout_api_view.py +0 -0
  272. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/views/memory_api_view.py +0 -0
  273. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/views/profile_api_view.py +0 -0
  274. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/views/prompt_api_view.py +0 -0
  275. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/views/prompt_context_preview_api_view.py +0 -0
  276. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/views/prompt_resource_api_view.py +0 -0
  277. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/views/rag_api_view.py +0 -0
  278. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/views/root_redirect_view.py +0 -0
  279. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/views/signup_view.py +0 -0
  280. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/views/static_page_view.py +0 -0
  281. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/views/tool_api_view.py +0 -0
  282. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/views/user_feedback_api_view.py +0 -0
  283. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/views/users_api_view.py +0 -0
  284. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/views/verify_user_view.py +0 -0
  285. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit/views/wiki_page_view.py +0 -0
  286. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit.egg-info/dependency_links.txt +0 -0
  287. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/src/iatoolkit.egg-info/requires.txt +0 -0
  288. {iatoolkit-2.77.10 → iatoolkit-2.77.12}/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.77.10
3
+ Version: 2.77.12
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.77.10"
6
+ __version__ = "2.77.12"
7
7
 
8
8
  # Expose main classes and functions at the top level of the package
9
9
 
@@ -0,0 +1,42 @@
1
+ # Copyright (c) 2024 Fernando Libedinsky
2
+ # Product: IAToolkit
3
+ #
4
+ # IAToolkit is open source software.
5
+
6
+ """MIME helpers shared by the OpenAI-style adapters.
7
+
8
+ Native attachments can come from the user or from a tool result
9
+ (`__native_attachments__`). OpenAI rejects images sent as files, so the adapters
10
+ use these helpers to send image attachments as image parts instead.
11
+ """
12
+
13
+ import mimetypes
14
+ from typing import Any, Dict
15
+
16
+ #: Image formats OpenAI accepts as image input (Responses and Chat Completions).
17
+ INLINE_IMAGE_MIME_TYPES = frozenset({
18
+ "image/png",
19
+ "image/jpeg",
20
+ "image/jpg",
21
+ "image/webp",
22
+ "image/gif",
23
+ })
24
+
25
+
26
+ def resolve_attachment_mime(attachment: Dict[str, Any], default: str = "application/octet-stream") -> str:
27
+ filename = str(attachment.get("name") or attachment.get("filename") or "").strip()
28
+ mime_type = str(
29
+ attachment.get("mime_type")
30
+ or attachment.get("type")
31
+ or mimetypes.guess_type(filename)[0]
32
+ or default
33
+ ).strip().lower()
34
+ return mime_type.split(";", 1)[0].strip()
35
+
36
+
37
+ def is_image_mime(mime_type: str) -> bool:
38
+ return str(mime_type or "").strip().lower().startswith("image/")
39
+
40
+
41
+ def is_inline_image_mime(mime_type: str) -> bool:
42
+ return str(mime_type or "").strip().lower() in INLINE_IMAGE_MIME_TYPES
@@ -7,6 +7,11 @@ import logging
7
7
  from typing import Any, Dict, List, Optional
8
8
  from iatoolkit.infra.llm_response import LLMResponse, ToolCall, Usage
9
9
  from iatoolkit.common.exceptions import IAToolkitException
10
+ from iatoolkit.infra.llm_providers.attachment_mime import (
11
+ is_image_mime,
12
+ is_inline_image_mime,
13
+ resolve_attachment_mime,
14
+ )
10
15
  import mimetypes
11
16
  import re
12
17
  import base64
@@ -331,16 +336,26 @@ class OpenAIAdapter:
331
336
  # Agregar archivos nativos (Responses API)
332
337
  for attachment in attachments:
333
338
  filename = attachment.get("name") or attachment.get("filename") or "attachment"
334
- mime_type = str(
335
- attachment.get("mime_type")
336
- or attachment.get("type")
337
- or mimetypes.guess_type(filename)[0]
338
- or "application/octet-stream"
339
- ).strip().lower()
339
+ mime_type = resolve_attachment_mime(attachment)
340
340
  base64_data = str(attachment.get("base64") or attachment.get("content") or "").strip()
341
341
  if not base64_data:
342
342
  continue
343
343
 
344
+ # OpenAI rejects images as input_file: send them as input_image.
345
+ if is_image_mime(mime_type):
346
+ if not is_inline_image_mime(mime_type):
347
+ logging.warning(
348
+ "Skipping image attachment '%s': %s is not supported by OpenAI image input.",
349
+ filename,
350
+ mime_type,
351
+ )
352
+ continue
353
+ content_parts.append({
354
+ "type": "input_image",
355
+ "image_url": self._to_data_url(base64_data, mime_type),
356
+ })
357
+ continue
358
+
344
359
  file_data = self._to_data_url(base64_data, mime_type)
345
360
  content_parts.append({
346
361
  "type": "input_file",
@@ -14,6 +14,11 @@ from typing import Any, Dict, List, Optional
14
14
  import openai
15
15
 
16
16
  from iatoolkit.common.exceptions import IAToolkitException
17
+ from iatoolkit.infra.llm_providers.attachment_mime import (
18
+ is_image_mime,
19
+ is_inline_image_mime,
20
+ resolve_attachment_mime,
21
+ )
17
22
  from iatoolkit.infra.llm_response import LLMResponse, ToolCall, Usage
18
23
 
19
24
 
@@ -482,9 +487,21 @@ class OpenAICompatibleChatAdapter:
482
487
  content_parts.append(image_part)
483
488
 
484
489
  for attachment in attachments:
485
- file_part = self._build_file_part(attachment)
486
- if file_part is not None:
487
- content_parts.append(file_part)
490
+ # Images are rejected as file parts: send them as image parts.
491
+ mime_type = resolve_attachment_mime(attachment) if isinstance(attachment, dict) else ""
492
+ if is_image_mime(mime_type):
493
+ if not is_inline_image_mime(mime_type):
494
+ logging.warning(
495
+ "Skipping image attachment '%s': %s is not supported as image input.",
496
+ attachment.get("name") or attachment.get("filename") or "attachment",
497
+ mime_type,
498
+ )
499
+ continue
500
+ part = self._build_image_part({**attachment, "mime_type": mime_type})
501
+ else:
502
+ part = self._build_file_part(attachment)
503
+ if part is not None:
504
+ content_parts.append(part)
488
505
 
489
506
  target_message["content"] = content_parts
490
507
  updated_messages = list(messages)
@@ -2662,7 +2662,7 @@ ui:
2662
2662
  short_name: "Short name"
2663
2663
  runtime_mode: "Runtime mode"
2664
2664
  default_reasoning: "Default reasoning"
2665
- default_reasoning_auto: "Automatic"
2665
+ default_reasoning_auto: "Provider default"
2666
2666
  reasoning_card_helper: "Applies when the selected model and provider support this reasoning level. Prompts can still override it."
2667
2667
  reasoning_unavailable: "Not available for this model"
2668
2668
  reasoning_unavailable_help: "This model/provider does not support a company-level reasoning default."
@@ -2680,7 +2680,7 @@ ui:
2680
2680
  short_name: "Nombre corto"
2681
2681
  runtime_mode: "Modo runtime"
2682
2682
  default_reasoning: "Razonamiento por defecto"
2683
- default_reasoning_auto: "Automático"
2683
+ default_reasoning_auto: "Por defecto del proveedor"
2684
2684
  reasoning_card_helper: "Se aplica cuando el modelo y el provider seleccionados soportan este nivel de razonamiento. Los prompts igual pueden sobreescribirlo."
2685
2685
  reasoning_unavailable: "No disponible para este modelo"
2686
2686
  reasoning_unavailable_help: "Este modelo o provider no soporta un valor por defecto de razonamiento a nivel company."
@@ -265,7 +265,7 @@ window.currentLlmReasoningEffort = window.currentLlmReasoningEffort || null;
265
265
  medium: t('ui.prompts.thinking_level_medium', 'Medium'),
266
266
  high: t('ui.prompts.thinking_level_high', 'High'),
267
267
  xhigh: t('ui.prompts.thinking_level_xhigh', 'XHigh'),
268
- auto: t('ui.config.default_reasoning_auto', 'Automatic'),
268
+ auto: t('ui.config.default_reasoning_auto', 'Provider default'),
269
269
  };
270
270
 
271
271
  if (effort === 'minimal') return { icon: 'bi-dot', label: labels.minimal };
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: iatoolkit
3
- Version: 2.77.10
3
+ Version: 2.77.12
4
4
  Summary: IAToolkit
5
5
  Author: Fernando Libedinsky
6
6
  License-Expression: MIT
@@ -95,6 +95,7 @@ src/iatoolkit/infra/connectors/local_file_connector.py
95
95
  src/iatoolkit/infra/connectors/s3_connector.py
96
96
  src/iatoolkit/infra/llm_providers/__init__.py
97
97
  src/iatoolkit/infra/llm_providers/anthropic_adapter.py
98
+ src/iatoolkit/infra/llm_providers/attachment_mime.py
98
99
  src/iatoolkit/infra/llm_providers/deepseek_adapter.py
99
100
  src/iatoolkit/infra/llm_providers/gemini_adapter.py
100
101
  src/iatoolkit/infra/llm_providers/openai_adapter.py
File without changes
File without changes
File without changes
File without changes