iatoolkit 2.77.11__tar.gz → 2.77.13__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.11/src/iatoolkit.egg-info → iatoolkit-2.77.13}/PKG-INFO +1 -1
  2. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/__init__.py +1 -1
  3. iatoolkit-2.77.13/src/iatoolkit/infra/llm_providers/attachment_mime.py +42 -0
  4. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/infra/llm_providers/openai_adapter.py +21 -6
  5. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/infra/llm_providers/openai_compatible_chat_adapter.py +20 -3
  6. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/locales/en.yaml +4 -1
  7. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/locales/es.yaml +4 -1
  8. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/services/prompt_service.py +31 -0
  9. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/static/js/chat_model_selector.js +1 -1
  10. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/views/prompt_api_view.py +1 -0
  11. {iatoolkit-2.77.11 → iatoolkit-2.77.13/src/iatoolkit.egg-info}/PKG-INFO +1 -1
  12. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit.egg-info/SOURCES.txt +1 -0
  13. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/LICENSE +0 -0
  14. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/LICENSE_COMMUNITY.md +0 -0
  15. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/pyproject.toml +0 -0
  16. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/readme.md +0 -0
  17. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/setup.cfg +0 -0
  18. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/base_company.py +0 -0
  19. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/cli_commands.py +0 -0
  20. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/common/__init__.py +0 -0
  21. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/common/access.py +0 -0
  22. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/common/bridge_validation.py +0 -0
  23. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/common/company_paths.py +0 -0
  24. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/common/decision_types.py +0 -0
  25. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/common/exceptions.py +0 -0
  26. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/common/interfaces/__init__.py +0 -0
  27. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/common/interfaces/asset_storage.py +0 -0
  28. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/common/interfaces/database_provider.py +0 -0
  29. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/common/interfaces/history_compaction_trigger.py +0 -0
  30. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/common/interfaces/memory_compilation_trigger.py +0 -0
  31. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/common/interfaces/secret_provider.py +0 -0
  32. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/common/interfaces/signup_policy_resolver.py +0 -0
  33. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/common/interfaces/web_search_provider.py +0 -0
  34. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/common/memory_tools.py +0 -0
  35. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/common/model_registry.py +0 -0
  36. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/common/routes.py +0 -0
  37. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/common/search_terms.py +0 -0
  38. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/common/secret_resolver.py +0 -0
  39. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/common/session_manager.py +0 -0
  40. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/common/text_splitter.py +0 -0
  41. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/common/url_safety.py +0 -0
  42. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/common/util.py +0 -0
  43. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/company_registry.py +0 -0
  44. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/config/__init__.py +0 -0
  45. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/config/llm_capabilities.yaml +0 -0
  46. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/config/system_agents/history_compaction.prompt +0 -0
  47. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/config/system_agents/memory_compiler.prompt +0 -0
  48. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/config/system_agents/memory_correction.prompt +0 -0
  49. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/config/system_agents/memory_document_ingest.prompt +0 -0
  50. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/config/system_agents/memory_image_ingest.prompt +0 -0
  51. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/config/system_agents/memory_meeting_ingest.prompt +0 -0
  52. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/config/system_agents/memory_question_review.prompt +0 -0
  53. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/config/system_agents_pack.yaml +0 -0
  54. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/config/system_prompts/channel_business_identity.prompt +0 -0
  55. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/config/system_prompts/channel_conversation_continuity.prompt +0 -0
  56. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/config/system_prompts/channel_response_style.prompt +0 -0
  57. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/config/system_prompts/chat_state_rules.prompt +0 -0
  58. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/config/system_prompts/chat_user_profile.prompt +0 -0
  59. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/config/system_prompts/core_identity.prompt +0 -0
  60. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/config/system_prompts/email_output.prompt +0 -0
  61. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/config/system_prompts/file_download_output.prompt +0 -0
  62. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/config/system_prompts/format_styles.prompt +0 -0
  63. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/config/system_prompts/html_structures.prompt +0 -0
  64. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/config/system_prompts/links_documents.prompt +0 -0
  65. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/config/system_prompts/memory_usage.prompt +0 -0
  66. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/config/system_prompts/multimodal_basics.prompt +0 -0
  67. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/config/system_prompts/output_basics.prompt +0 -0
  68. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/config/system_prompts/presentation_formatting.prompt +0 -0
  69. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/config/system_prompts/query_main.prompt +0 -0
  70. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/config/system_prompts/sql_aggregation_scope.prompt +0 -0
  71. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/config/system_prompts/sql_casting.prompt +0 -0
  72. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/config/system_prompts/sql_core.prompt +0 -0
  73. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/config/system_prompts/sql_jsonb.prompt +0 -0
  74. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/config/system_prompts/sql_mysql_casting.prompt +0 -0
  75. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/config/system_prompts/sql_mysql_json.prompt +0 -0
  76. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/config/system_prompts/sql_redshift_basics.prompt +0 -0
  77. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/config/system_prompts/sql_redshift_types.prompt +0 -0
  78. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/config/system_prompts/tool_html_passthrough.prompt +0 -0
  79. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/config/system_prompts_pack.yaml +0 -0
  80. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/config/system_tools_pack.yaml +0 -0
  81. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/core.py +0 -0
  82. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/infra/__init__.py +0 -0
  83. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/infra/brevo_mail_app.py +0 -0
  84. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/infra/call_service.py +0 -0
  85. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/infra/connectors/__init__.py +0 -0
  86. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/infra/connectors/file_connector.py +0 -0
  87. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/infra/connectors/file_connector_factory.py +0 -0
  88. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/infra/connectors/google_cloud_storage_connector.py +0 -0
  89. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/infra/connectors/google_drive_connector.py +0 -0
  90. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/infra/connectors/local_file_connector.py +0 -0
  91. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/infra/connectors/s3_connector.py +0 -0
  92. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/infra/google_auth_client.py +0 -0
  93. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/infra/google_chat_app.py +0 -0
  94. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/infra/inference_embeddings_client.py +0 -0
  95. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/infra/inference_handler.py +0 -0
  96. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/infra/jina_embeddings_client.py +0 -0
  97. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/infra/llm_gateway_resolver.py +0 -0
  98. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/infra/llm_providers/__init__.py +0 -0
  99. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/infra/llm_providers/anthropic_adapter.py +0 -0
  100. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/infra/llm_providers/deepseek_adapter.py +0 -0
  101. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/infra/llm_providers/gemini_adapter.py +0 -0
  102. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/infra/llm_providers/openrouter_adapter.py +0 -0
  103. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/infra/llm_proxy.py +0 -0
  104. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/infra/llm_response.py +0 -0
  105. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/infra/openrouter_decision_client.py +0 -0
  106. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/infra/redis_session_manager.py +0 -0
  107. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/repositories/__init__.py +0 -0
  108. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/repositories/advisory_lock.py +0 -0
  109. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/repositories/api_key_repo.py +0 -0
  110. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/repositories/bridge_repo.py +0 -0
  111. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/repositories/database_manager.py +0 -0
  112. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/repositories/document_repo.py +0 -0
  113. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/repositories/env_secret_provider.py +0 -0
  114. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/repositories/filesystem_asset_repository.py +0 -0
  115. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/repositories/knowledge_wiki_repo.py +0 -0
  116. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/repositories/llm_query_repo.py +0 -0
  117. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/repositories/mcp_token_repo.py +0 -0
  118. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/repositories/memory_question_repo.py +0 -0
  119. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/repositories/memory_repo.py +0 -0
  120. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/repositories/memory_usage_repo.py +0 -0
  121. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/repositories/models.py +0 -0
  122. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/repositories/profile_repo.py +0 -0
  123. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/repositories/prompt_resource_repo.py +0 -0
  124. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/repositories/sql_dataset_repo.py +0 -0
  125. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/repositories/sql_source_repo.py +0 -0
  126. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/repositories/vs_repo.py +0 -0
  127. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/runtime_logging.py +0 -0
  128. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/services/__init__.py +0 -0
  129. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/services/api_key_service.py +0 -0
  130. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/services/attachment_policy_service.py +0 -0
  131. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/services/auth_service.py +0 -0
  132. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/services/branding_service.py +0 -0
  133. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/services/company_context_service.py +0 -0
  134. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/services/configuration_service.py +0 -0
  135. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/services/context_builder_service.py +0 -0
  136. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/services/decision_attachments.py +0 -0
  137. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/services/decision_service.py +0 -0
  138. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/services/dispatcher_service.py +0 -0
  139. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/services/embedding_service.py +0 -0
  140. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/services/excel_service.py +0 -0
  141. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/services/file_processor_service.py +0 -0
  142. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/services/history_compaction_service.py +0 -0
  143. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/services/history_manager_service.py +0 -0
  144. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/services/http_tool_service.py +0 -0
  145. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/services/i18n_service.py +0 -0
  146. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/services/inference_service.py +0 -0
  147. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/services/jwt_service.py +0 -0
  148. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/services/knowledge_base_service.py +0 -0
  149. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/services/language_service.py +0 -0
  150. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/services/license_service.py +0 -0
  151. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/services/llm_client_service.py +0 -0
  152. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/services/mail_service.py +0 -0
  153. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/services/markdown_wiki_service.py +0 -0
  154. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/services/mcp_token_service.py +0 -0
  155. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/services/memory_compiler_service.py +0 -0
  156. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/services/memory_lookup_policy_service.py +0 -0
  157. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/services/memory_question_service.py +0 -0
  158. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/services/memory_service.py +0 -0
  159. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/services/memory_sources.py +0 -0
  160. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/services/memory_usage_service.py +0 -0
  161. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/services/memory_wiki_service.py +0 -0
  162. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/services/noop_history_compaction_trigger.py +0 -0
  163. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/services/noop_memory_compilation_trigger.py +0 -0
  164. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/services/operator_identity_service.py +0 -0
  165. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/services/parsers/__init__.py +0 -0
  166. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/services/parsers/contracts.py +0 -0
  167. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/services/parsers/image_normalizer.py +0 -0
  168. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/services/parsers/parsing_service.py +0 -0
  169. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/services/parsers/pdf_ocr_detection.py +0 -0
  170. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/services/parsers/provider_factory.py +0 -0
  171. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/services/parsers/provider_resolver.py +0 -0
  172. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/services/parsers/providers/__init__.py +0 -0
  173. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/services/parsers/providers/basic_provider.py +0 -0
  174. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/services/parsers/providers/docling_provider.py +0 -0
  175. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/services/parsers/validator.py +0 -0
  176. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/services/pdf_service.py +0 -0
  177. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/services/profile_service.py +0 -0
  178. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/services/prompt_resource_service.py +0 -0
  179. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/services/query_service.py +0 -0
  180. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/services/resource_access_scope.py +0 -0
  181. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/services/signup_guard_service.py +0 -0
  182. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/services/signup_policy_resolver.py +0 -0
  183. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/services/sql_catalog_service.py +0 -0
  184. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/services/sql_dataset_service.py +0 -0
  185. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/services/sql_service.py +0 -0
  186. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/services/sql_source_service.py +0 -0
  187. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/services/storage_service.py +0 -0
  188. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/services/structured_output_service.py +0 -0
  189. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/services/system_agent_catalog.py +0 -0
  190. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/services/system_agent_runner.py +0 -0
  191. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/services/system_prompt_catalog.py +0 -0
  192. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/services/system_tools.py +0 -0
  193. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/services/telemetry_service.py +0 -0
  194. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/services/tenant_wiki_service.py +0 -0
  195. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/services/tool_output_contract.py +0 -0
  196. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/services/tool_service.py +0 -0
  197. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/services/user_feedback_service.py +0 -0
  198. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/services/user_session_context_service.py +0 -0
  199. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/services/visual_kb_service.py +0 -0
  200. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/services/visual_tool_service.py +0 -0
  201. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/services/warmup_service.py +0 -0
  202. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/services/web_search/__init__.py +0 -0
  203. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/services/web_search/provider_factory.py +0 -0
  204. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/services/web_search/providers/__init__.py +0 -0
  205. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/services/web_search/providers/brave_provider.py +0 -0
  206. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/services/web_search_service.py +0 -0
  207. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/services/wiki_page_index_service.py +0 -0
  208. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/static/images/favicon.ico +0 -0
  209. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/static/images/favicon.png +0 -0
  210. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/static/images/fernando.jpeg +0 -0
  211. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/static/images/iatoolkit_core.png +0 -0
  212. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/static/images/iatoolkit_logo.png +0 -0
  213. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/static/js/chat_feedback_button.js +0 -0
  214. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/static/js/chat_filepond.js +0 -0
  215. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/static/js/chat_header_navigation.js +0 -0
  216. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/static/js/chat_help_content.js +0 -0
  217. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/static/js/chat_history_button.js +0 -0
  218. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/static/js/chat_logout_button.js +0 -0
  219. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/static/js/chat_main.js +0 -0
  220. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/static/js/chat_memory_button.js +0 -0
  221. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/static/js/chat_onboarding_button.js +0 -0
  222. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/static/js/chat_prompt_manager.js +0 -0
  223. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/static/styles/account.css +0 -0
  224. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/static/styles/chat_iatoolkit.css +0 -0
  225. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/static/styles/chat_modal.css +0 -0
  226. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/static/styles/chat_public.css +0 -0
  227. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/static/styles/documents.css +0 -0
  228. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/static/styles/landing_page.css +0 -0
  229. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/static/styles/llm_output.css +0 -0
  230. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/static/styles/onboarding.css +0 -0
  231. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/static/styles/wiki_page.css +0 -0
  232. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/templates/_chat_header.html +0 -0
  233. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/templates/_company_header.html +0 -0
  234. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/templates/_login_widget.html +0 -0
  235. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/templates/account.html +0 -0
  236. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/templates/base.html +0 -0
  237. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/templates/change_password.html +0 -0
  238. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/templates/chat.html +0 -0
  239. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/templates/chat_memory_modal.html +0 -0
  240. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/templates/chat_modals.html +0 -0
  241. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/templates/error.html +0 -0
  242. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/templates/forgot_password.html +0 -0
  243. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/templates/home_hosted_default.html +0 -0
  244. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/templates/invitation_invalid.html +0 -0
  245. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/templates/login_global.html +0 -0
  246. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/templates/memory/wiki_schema.md +0 -0
  247. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/templates/pdf/base.html +0 -0
  248. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/templates/pdf/letter.html +0 -0
  249. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/templates/pdf/report.html +0 -0
  250. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/templates/pdf/simple.html +0 -0
  251. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/templates/signup.html +0 -0
  252. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/templates/wiki_page.html +0 -0
  253. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/views/__init__.py +0 -0
  254. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/views/account_view.py +0 -0
  255. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/views/api_key_api_view.py +0 -0
  256. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/views/base_login_view.py +0 -0
  257. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/views/categories_api_view.py +0 -0
  258. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/views/change_password_view.py +0 -0
  259. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/views/chat_context_preview_api_view.py +0 -0
  260. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/views/chat_view.py +0 -0
  261. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/views/configuration_api_view.py +0 -0
  262. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/views/connectors_api_view.py +0 -0
  263. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/views/embedding_api_view.py +0 -0
  264. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/views/forgot_password_view.py +0 -0
  265. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/views/help_content_api_view.py +0 -0
  266. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/views/history_api_view.py +0 -0
  267. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/views/home_view.py +0 -0
  268. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/views/init_context_api_view.py +0 -0
  269. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/views/llmquery_api_view.py +0 -0
  270. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/views/load_document_api_view.py +0 -0
  271. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/views/login_view.py +0 -0
  272. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/views/logout_api_view.py +0 -0
  273. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/views/memory_api_view.py +0 -0
  274. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/views/profile_api_view.py +0 -0
  275. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/views/prompt_context_preview_api_view.py +0 -0
  276. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/views/prompt_resource_api_view.py +0 -0
  277. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/views/rag_api_view.py +0 -0
  278. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/views/root_redirect_view.py +0 -0
  279. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/views/signup_view.py +0 -0
  280. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/views/static_page_view.py +0 -0
  281. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/views/tool_api_view.py +0 -0
  282. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/views/user_feedback_api_view.py +0 -0
  283. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/views/users_api_view.py +0 -0
  284. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/views/verify_user_view.py +0 -0
  285. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit/views/wiki_page_view.py +0 -0
  286. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit.egg-info/dependency_links.txt +0 -0
  287. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/src/iatoolkit.egg-info/requires.txt +0 -0
  288. {iatoolkit-2.77.11 → iatoolkit-2.77.13}/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.11
3
+ Version: 2.77.13
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.11"
6
+ __version__ = "2.77.13"
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)
@@ -2069,6 +2069,9 @@ ui:
2069
2069
  queue_tier_default: "Default"
2070
2070
  queue_tier_low: "Low priority"
2071
2071
  queue_tier_help: "Low priority agents run only after the normal agents queue is empty."
2072
+ timeout_seconds_label: "Execution timeout (seconds)"
2073
+ timeout_seconds_placeholder: "Default"
2074
+ timeout_seconds_help: "Maximum time this agent can run as a task (30 to 3600 s). Leave empty to use the deployment default."
2072
2075
  runtime_provider_label: "Provider"
2073
2076
  runtime_provider_query_service: "Default (uses LLM query)"
2074
2077
  runtime_provider_openai_agents: "OpenAI Agents"
@@ -2662,7 +2665,7 @@ ui:
2662
2665
  short_name: "Short name"
2663
2666
  runtime_mode: "Runtime mode"
2664
2667
  default_reasoning: "Default reasoning"
2665
- default_reasoning_auto: "Automatic"
2668
+ default_reasoning_auto: "Provider default"
2666
2669
  reasoning_card_helper: "Applies when the selected model and provider support this reasoning level. Prompts can still override it."
2667
2670
  reasoning_unavailable: "Not available for this model"
2668
2671
  reasoning_unavailable_help: "This model/provider does not support a company-level reasoning default."
@@ -2086,6 +2086,9 @@ ui:
2086
2086
  queue_tier_default: "Por defecto"
2087
2087
  queue_tier_low: "Baja prioridad"
2088
2088
  queue_tier_help: "Los agentes de baja prioridad solo se ejecutan cuando la cola normal de agentes está vacía."
2089
+ timeout_seconds_label: "Timeout de ejecución (segundos)"
2090
+ timeout_seconds_placeholder: "Por defecto"
2091
+ timeout_seconds_help: "Tiempo máximo que puede correr este agente como tarea (30 a 3600 s). Vacío usa el valor por defecto del deploy."
2089
2092
  runtime_provider_label: "Provider"
2090
2093
  runtime_provider_query_service: "Default (usa LLM query)"
2091
2094
  runtime_provider_openai_agents: "OpenAI Agents"
@@ -2680,7 +2683,7 @@ ui:
2680
2683
  short_name: "Nombre corto"
2681
2684
  runtime_mode: "Modo runtime"
2682
2685
  default_reasoning: "Razonamiento por defecto"
2683
- default_reasoning_auto: "Automático"
2686
+ default_reasoning_auto: "Por defecto del proveedor"
2684
2687
  reasoning_card_helper: "Se aplica cuando el modelo y el provider seleccionados soportan este nivel de razonamiento. Los prompts igual pueden sobreescribirlo."
2685
2688
  reasoning_unavailable: "No disponible para este modelo"
2686
2689
  reasoning_unavailable_help: "Este modelo o provider no soporta un valor por defecto de razonamiento a nivel company."
@@ -55,6 +55,9 @@ class PromptService:
55
55
  TOOL_POLICY_MODE_EXPLICIT = "explicit"
56
56
  QUEUE_TIER_DEFAULT = "default"
57
57
  QUEUE_TIER_LOW = "low"
58
+ # Bounds for a per-agent execution timeout (runtime_policy.timeout_seconds).
59
+ EXECUTION_TIMEOUT_MIN_SECONDS = 30
60
+ EXECUTION_TIMEOUT_MAX_SECONDS = 3600
58
61
  RUNTIME_PROVIDER_QUERY_SERVICE = PromptRuntimeProvider.QUERY_SERVICE.value
59
62
  RUNTIME_PROVIDER_OPENAI_AGENTS = PromptRuntimeProvider.OPENAI_AGENTS.value
60
63
  EXECUTION_MODE_CONVERSATIONAL = "conversational"
@@ -267,11 +270,32 @@ class PromptService:
267
270
  def normalize_runtime_config(cls, runtime_config: dict | None) -> dict:
268
271
  return dict(runtime_config or {}) if isinstance(runtime_config, dict) else {}
269
272
 
273
+ @classmethod
274
+ def normalize_execution_timeout_value(cls, timeout_seconds) -> int | None:
275
+ """A per-agent execution timeout in seconds, or None to inherit the default.
276
+
277
+ Empty or invalid values inherit; numbers are clamped to the allowed range.
278
+ """
279
+ if timeout_seconds is None or isinstance(timeout_seconds, bool):
280
+ return None
281
+ if isinstance(timeout_seconds, str):
282
+ timeout_seconds = timeout_seconds.strip()
283
+ if not timeout_seconds:
284
+ return None
285
+ try:
286
+ value = int(float(timeout_seconds))
287
+ except (TypeError, ValueError):
288
+ return None
289
+ if value <= 0:
290
+ return None
291
+ return max(cls.EXECUTION_TIMEOUT_MIN_SECONDS, min(value, cls.EXECUTION_TIMEOUT_MAX_SECONDS))
292
+
270
293
  @classmethod
271
294
  def normalize_runtime_policy(cls, runtime_policy: dict | None) -> dict:
272
295
  policy = runtime_policy if isinstance(runtime_policy, dict) else {}
273
296
  role = cls.normalize_agent_role_value(policy.get("role"))
274
297
  queue_tier = cls.normalize_queue_tier_value(policy.get("queue_tier"))
298
+ timeout_seconds = cls.normalize_execution_timeout_value(policy.get("timeout_seconds"))
275
299
  runtime_provider = cls.normalize_runtime_provider_value(policy.get("runtime_provider"))
276
300
  runtime_config = cls.normalize_runtime_config(policy.get("runtime_config"))
277
301
  raw_context = policy.get("context")
@@ -283,11 +307,16 @@ class PromptService:
283
307
  "version": 1,
284
308
  "role": role,
285
309
  "queue_tier": queue_tier,
310
+ "timeout_seconds": timeout_seconds,
286
311
  "context": context,
287
312
  "runtime_provider": runtime_provider,
288
313
  "runtime_config": runtime_config,
289
314
  }
290
315
 
316
+ @classmethod
317
+ def get_runtime_policy_timeout_seconds(cls, runtime_policy: dict | None) -> int | None:
318
+ return cls.normalize_runtime_policy(runtime_policy).get("timeout_seconds")
319
+
291
320
  @classmethod
292
321
  def get_runtime_policy_role(cls, runtime_policy: dict | None) -> str:
293
322
  return cls.normalize_runtime_policy(runtime_policy).get("role", cls.AGENT_ROLE_WORKSPACE_CHAT)
@@ -814,6 +843,7 @@ class PromptService:
814
843
  'attachment_fallback': p.attachment_fallback,
815
844
  'llm_model': getattr(p, 'llm_model', None),
816
845
  'queue_tier': runtime_policy["queue_tier"],
846
+ 'timeout_seconds': runtime_policy["timeout_seconds"],
817
847
  'llm_request_options': dict(getattr(p, 'llm_request_options', None) or {}),
818
848
  'tool_policy': dict(getattr(p, 'tool_policy', None) or {}),
819
849
  'context_policy': runtime_policy["context"],
@@ -943,6 +973,7 @@ class PromptService:
943
973
  runtime_policy = self.normalize_runtime_policy({
944
974
  "role": role_value,
945
975
  "queue_tier": queue_tier_value,
976
+ "timeout_seconds": data.get("timeout_seconds", existing_runtime_policy["timeout_seconds"]),
946
977
  "context": context_value,
947
978
  "runtime_provider": data.get(
948
979
  "runtime_provider",
@@ -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 };
@@ -57,6 +57,7 @@ class PromptApiView(MethodView):
57
57
  meta["agent_role"] = agent_role
58
58
  meta["execution_mode"] = PromptService.execution_mode_for_agent_role(agent_role)
59
59
  meta["queue_tier"] = runtime_policy["queue_tier"]
60
+ meta["timeout_seconds"] = runtime_policy["timeout_seconds"]
60
61
  meta["context_policy"] = runtime_policy["context"]
61
62
  meta["runtime_provider"] = runtime_policy["runtime_provider"]
62
63
  meta["runtime_config"] = runtime_policy["runtime_config"]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: iatoolkit
3
- Version: 2.77.11
3
+ Version: 2.77.13
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