iatoolkit 2.35.0__tar.gz → 2.36.0__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.35.0/src/iatoolkit.egg-info → iatoolkit-2.36.0}/PKG-INFO +1 -1
  2. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/__init__.py +1 -1
  3. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/locales/en.yaml +2 -0
  4. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/locales/es.yaml +2 -0
  5. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/services/http_tool_service.py +82 -0
  6. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/services/tool_service.py +63 -38
  7. {iatoolkit-2.35.0 → iatoolkit-2.36.0/src/iatoolkit.egg-info}/PKG-INFO +1 -1
  8. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/LICENSE +0 -0
  9. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/LICENSE_COMMUNITY.md +0 -0
  10. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/pyproject.toml +0 -0
  11. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/readme.md +0 -0
  12. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/requirements.txt +0 -0
  13. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/setup.cfg +0 -0
  14. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/base_company.py +0 -0
  15. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/cli_commands.py +0 -0
  16. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/common/__init__.py +0 -0
  17. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/common/exceptions.py +0 -0
  18. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/common/interfaces/__init__.py +0 -0
  19. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/common/interfaces/asset_storage.py +0 -0
  20. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/common/interfaces/database_provider.py +0 -0
  21. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/common/interfaces/memory_compilation_trigger.py +0 -0
  22. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/common/interfaces/memory_lint_trigger.py +0 -0
  23. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/common/interfaces/secret_provider.py +0 -0
  24. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/common/interfaces/signup_policy_resolver.py +0 -0
  25. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/common/interfaces/web_search_provider.py +0 -0
  26. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/common/model_registry.py +0 -0
  27. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/common/routes.py +0 -0
  28. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/common/secret_resolver.py +0 -0
  29. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/common/session_manager.py +0 -0
  30. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/common/util.py +0 -0
  31. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/company_registry.py +0 -0
  32. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/config/__init__.py +0 -0
  33. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/config/llm_capabilities.yaml +0 -0
  34. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/config/system_prompts/channel_business_identity.prompt +0 -0
  35. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/config/system_prompts/channel_conversation_continuity.prompt +0 -0
  36. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/config/system_prompts/channel_response_style.prompt +0 -0
  37. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/config/system_prompts/chat_state_rules.prompt +0 -0
  38. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/config/system_prompts/chat_user_profile.prompt +0 -0
  39. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/config/system_prompts/core_identity.prompt +0 -0
  40. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/config/system_prompts/email_output.prompt +0 -0
  41. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/config/system_prompts/file_download_output.prompt +0 -0
  42. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/config/system_prompts/format_styles.prompt +0 -0
  43. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/config/system_prompts/html_structures.prompt +0 -0
  44. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/config/system_prompts/links_documents.prompt +0 -0
  45. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/config/system_prompts/memory_usage.prompt +0 -0
  46. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/config/system_prompts/multimodal_basics.prompt +0 -0
  47. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/config/system_prompts/output_basics.prompt +0 -0
  48. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/config/system_prompts/presentation_formatting.prompt +0 -0
  49. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/config/system_prompts/query_main.prompt +0 -0
  50. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/config/system_prompts/sql_aggregation_scope.prompt +0 -0
  51. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/config/system_prompts/sql_casting.prompt +0 -0
  52. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/config/system_prompts/sql_core.prompt +0 -0
  53. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/config/system_prompts/sql_jsonb.prompt +0 -0
  54. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/config/system_prompts/sql_mysql_casting.prompt +0 -0
  55. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/config/system_prompts/sql_mysql_json.prompt +0 -0
  56. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/config/system_prompts/sql_redshift_basics.prompt +0 -0
  57. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/config/system_prompts/sql_redshift_types.prompt +0 -0
  58. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/config/system_prompts/sql_rules.prompt +0 -0
  59. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/config/system_prompts/tool_html_passthrough.prompt +0 -0
  60. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/config/system_prompts_pack.yaml +0 -0
  61. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/config/system_tools_pack.yaml +0 -0
  62. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/core.py +0 -0
  63. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/infra/__init__.py +0 -0
  64. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/infra/brevo_mail_app.py +0 -0
  65. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/infra/call_service.py +0 -0
  66. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/infra/connectors/__init__.py +0 -0
  67. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/infra/connectors/file_connector.py +0 -0
  68. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/infra/connectors/file_connector_factory.py +0 -0
  69. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/infra/connectors/google_cloud_storage_connector.py +0 -0
  70. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/infra/connectors/google_drive_connector.py +0 -0
  71. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/infra/connectors/local_file_connector.py +0 -0
  72. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/infra/connectors/s3_connector.py +0 -0
  73. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/infra/google_auth_client.py +0 -0
  74. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/infra/google_chat_app.py +0 -0
  75. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/infra/inference_embeddings_client.py +0 -0
  76. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/infra/inference_handler.py +0 -0
  77. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/infra/jina_embeddings_client.py +0 -0
  78. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/infra/llm_gateway_resolver.py +0 -0
  79. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/infra/llm_providers/__init__.py +0 -0
  80. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/infra/llm_providers/anthropic_adapter.py +0 -0
  81. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/infra/llm_providers/deepseek_adapter.py +0 -0
  82. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/infra/llm_providers/gemini_adapter.py +0 -0
  83. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/infra/llm_providers/openai_adapter.py +0 -0
  84. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/infra/llm_providers/openai_compatible_chat_adapter.py +0 -0
  85. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/infra/llm_providers/openrouter_adapter.py +0 -0
  86. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/infra/llm_proxy.py +0 -0
  87. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/infra/llm_response.py +0 -0
  88. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/infra/redis_session_manager.py +0 -0
  89. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/repositories/__init__.py +0 -0
  90. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/repositories/api_key_repo.py +0 -0
  91. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/repositories/database_manager.py +0 -0
  92. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/repositories/document_repo.py +0 -0
  93. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/repositories/env_secret_provider.py +0 -0
  94. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/repositories/filesystem_asset_repository.py +0 -0
  95. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/repositories/knowledge_wiki_repo.py +0 -0
  96. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/repositories/llm_query_repo.py +0 -0
  97. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/repositories/mcp_token_repo.py +0 -0
  98. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/repositories/memory_repo.py +0 -0
  99. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/repositories/models.py +0 -0
  100. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/repositories/profile_repo.py +0 -0
  101. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/repositories/prompt_resource_repo.py +0 -0
  102. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/repositories/sql_dataset_repo.py +0 -0
  103. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/repositories/sql_source_repo.py +0 -0
  104. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/repositories/vs_repo.py +0 -0
  105. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/runtime_logging.py +0 -0
  106. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/services/__init__.py +0 -0
  107. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/services/api_key_service.py +0 -0
  108. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/services/attachment_policy_service.py +0 -0
  109. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/services/auth_service.py +0 -0
  110. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/services/benchmark_service.py +0 -0
  111. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/services/branding_service.py +0 -0
  112. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/services/company_context_service.py +0 -0
  113. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/services/configuration_service.py +0 -0
  114. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/services/context_builder_service.py +0 -0
  115. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/services/dispatcher_service.py +0 -0
  116. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/services/embedding_service.py +0 -0
  117. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/services/excel_service.py +0 -0
  118. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/services/file_processor_service.py +0 -0
  119. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/services/history_manager_service.py +0 -0
  120. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/services/i18n_service.py +0 -0
  121. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/services/inference_service.py +0 -0
  122. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/services/jwt_service.py +0 -0
  123. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/services/knowledge_base_service.py +0 -0
  124. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/services/language_service.py +0 -0
  125. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/services/license_service.py +0 -0
  126. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/services/llm_client_service.py +0 -0
  127. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/services/mail_service.py +0 -0
  128. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/services/markdown_wiki_service.py +0 -0
  129. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/services/mcp_token_service.py +0 -0
  130. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/services/memory_compiler_service.py +0 -0
  131. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/services/memory_lint_service.py +0 -0
  132. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/services/memory_lookup_policy_service.py +0 -0
  133. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/services/memory_service.py +0 -0
  134. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/services/memory_wiki_service.py +0 -0
  135. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/services/noop_memory_compilation_trigger.py +0 -0
  136. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/services/noop_memory_lint_trigger.py +0 -0
  137. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/services/parsers/__init__.py +0 -0
  138. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/services/parsers/contracts.py +0 -0
  139. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/services/parsers/image_normalizer.py +0 -0
  140. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/services/parsers/parsing_service.py +0 -0
  141. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/services/parsers/pdf_ocr_detection.py +0 -0
  142. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/services/parsers/provider_factory.py +0 -0
  143. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/services/parsers/provider_resolver.py +0 -0
  144. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/services/parsers/providers/__init__.py +0 -0
  145. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/services/parsers/providers/basic_provider.py +0 -0
  146. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/services/parsers/providers/docling_provider.py +0 -0
  147. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/services/parsers/validator.py +0 -0
  148. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/services/pdf_service.py +0 -0
  149. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/services/profile_service.py +0 -0
  150. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/services/prompt_resource_service.py +0 -0
  151. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/services/prompt_service.py +0 -0
  152. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/services/query_service.py +0 -0
  153. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/services/signup_policy_resolver.py +0 -0
  154. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/services/sql_dataset_service.py +0 -0
  155. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/services/sql_service.py +0 -0
  156. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/services/sql_source_service.py +0 -0
  157. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/services/storage_service.py +0 -0
  158. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/services/structured_output_service.py +0 -0
  159. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/services/system_prompt_catalog.py +0 -0
  160. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/services/system_tools.py +0 -0
  161. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/services/telemetry_service.py +0 -0
  162. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/services/tenant_wiki_service.py +0 -0
  163. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/services/tool_output_contract.py +0 -0
  164. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/services/user_feedback_service.py +0 -0
  165. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/services/user_session_context_service.py +0 -0
  166. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/services/visual_kb_service.py +0 -0
  167. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/services/visual_tool_service.py +0 -0
  168. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/services/warmup_service.py +0 -0
  169. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/services/web_search/__init__.py +0 -0
  170. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/services/web_search/provider_factory.py +0 -0
  171. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/services/web_search/providers/__init__.py +0 -0
  172. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/services/web_search/providers/brave_provider.py +0 -0
  173. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/services/web_search_service.py +0 -0
  174. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/static/images/fernando.jpeg +0 -0
  175. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/static/images/iatoolkit_core.png +0 -0
  176. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/static/images/iatoolkit_logo.png +0 -0
  177. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/static/js/chat_feedback_button.js +0 -0
  178. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/static/js/chat_filepond.js +0 -0
  179. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/static/js/chat_help_content.js +0 -0
  180. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/static/js/chat_history_button.js +0 -0
  181. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/static/js/chat_logout_button.js +0 -0
  182. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/static/js/chat_main.js +0 -0
  183. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/static/js/chat_memory_button.js +0 -0
  184. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/static/js/chat_model_selector.js +0 -0
  185. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/static/js/chat_onboarding_button.js +0 -0
  186. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/static/js/chat_prompt_manager.js +0 -0
  187. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/static/js/chat_reload_button.js +0 -0
  188. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/static/styles/chat_iatoolkit.css +0 -0
  189. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/static/styles/chat_modal.css +0 -0
  190. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/static/styles/chat_public.css +0 -0
  191. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/static/styles/documents.css +0 -0
  192. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/static/styles/landing_page.css +0 -0
  193. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/static/styles/llm_output.css +0 -0
  194. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/static/styles/onboarding.css +0 -0
  195. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/templates/_company_header.html +0 -0
  196. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/templates/_login_widget.html +0 -0
  197. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/templates/account.html +0 -0
  198. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/templates/base.html +0 -0
  199. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/templates/change_password.html +0 -0
  200. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/templates/chat.html +0 -0
  201. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/templates/chat_memory_modal.html +0 -0
  202. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/templates/chat_modals.html +0 -0
  203. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/templates/error.html +0 -0
  204. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/templates/forgot_password.html +0 -0
  205. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/templates/home_hosted_default.html +0 -0
  206. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/templates/memory/wiki_schema.md +0 -0
  207. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/templates/onboarding_shell.html +0 -0
  208. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/templates/pdf/base.html +0 -0
  209. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/templates/pdf/letter.html +0 -0
  210. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/templates/pdf/report.html +0 -0
  211. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/templates/pdf/simple.html +0 -0
  212. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/templates/signup.html +0 -0
  213. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/views/__init__.py +0 -0
  214. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/views/account_view.py +0 -0
  215. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/views/api_key_api_view.py +0 -0
  216. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/views/base_login_view.py +0 -0
  217. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/views/categories_api_view.py +0 -0
  218. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/views/change_password_view.py +0 -0
  219. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/views/chat_context_preview_api_view.py +0 -0
  220. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/views/chat_view.py +0 -0
  221. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/views/configuration_api_view.py +0 -0
  222. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/views/connectors_api_view.py +0 -0
  223. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/views/embedding_api_view.py +0 -0
  224. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/views/forgot_password_view.py +0 -0
  225. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/views/help_content_api_view.py +0 -0
  226. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/views/history_api_view.py +0 -0
  227. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/views/home_view.py +0 -0
  228. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/views/init_context_api_view.py +0 -0
  229. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/views/llmquery_api_view.py +0 -0
  230. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/views/load_document_api_view.py +0 -0
  231. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/views/login_view.py +0 -0
  232. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/views/logout_api_view.py +0 -0
  233. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/views/memory_api_view.py +0 -0
  234. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/views/profile_api_view.py +0 -0
  235. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/views/prompt_api_view.py +0 -0
  236. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/views/prompt_context_preview_api_view.py +0 -0
  237. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/views/prompt_resource_api_view.py +0 -0
  238. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/views/rag_api_view.py +0 -0
  239. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/views/root_redirect_view.py +0 -0
  240. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/views/signup_view.py +0 -0
  241. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/views/static_page_view.py +0 -0
  242. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/views/tool_api_view.py +0 -0
  243. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/views/user_feedback_api_view.py +0 -0
  244. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/views/users_api_view.py +0 -0
  245. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit/views/verify_user_view.py +0 -0
  246. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit.egg-info/SOURCES.txt +0 -0
  247. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit.egg-info/dependency_links.txt +0 -0
  248. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/src/iatoolkit.egg-info/requires.txt +0 -0
  249. {iatoolkit-2.35.0 → iatoolkit-2.36.0}/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.35.0
3
+ Version: 2.36.0
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.35.0"
6
+ __version__ = "2.36.0"
7
7
 
8
8
  # Expose main classes and functions at the top level of the package
9
9
 
@@ -91,6 +91,8 @@ ui:
91
91
  telemetry_not_recorded: "Not recorded"
92
92
  telemetry_disabled: "Disabled"
93
93
  telemetry_unknown_provider: "unknown provider"
94
+ attached_files: "Attached Files"
95
+ open_attachment: "Open {filename}"
94
96
 
95
97
  communications:
96
98
  title: "Communications"
@@ -92,6 +92,8 @@ ui:
92
92
  telemetry_not_recorded: "No registrada"
93
93
  telemetry_disabled: "Deshabilitada"
94
94
  telemetry_unknown_provider: "provider desconocido"
95
+ attached_files: "Archivos adjuntos"
96
+ open_attachment: "Abrir {filename}"
95
97
 
96
98
  communications:
97
99
  title: "Communications"
@@ -7,6 +7,7 @@ import base64
7
7
  import ipaddress
8
8
  import json
9
9
  import socket
10
+ from typing import Callable
10
11
  from urllib.parse import urlparse
11
12
  from injector import inject
12
13
  from iatoolkit.common.exceptions import IAToolkitException
@@ -27,6 +28,25 @@ class HttpToolService:
27
28
  self.secret_provider = secret_provider
28
29
  self.config_service = config_service
29
30
 
31
+ # Registry of alternate transports for execution_config.transport
32
+ # values other than the built-in "direct". Populated by plugins
33
+ # (e.g. Enterprise's bridge integration) via register_transport() —
34
+ # this module has no knowledge of what a "bridge" is.
35
+ self._transports: dict[str, Callable] = {}
36
+
37
+ def register_transport(self, name: str, handler: Callable):
38
+ """
39
+ Registers a handler for execution_config.transport == name (other
40
+ than "direct", which is built in). handler is called as:
41
+
42
+ handler(company_short_name=..., tool_name=..., execution_config=...,
43
+ bridge_id=..., target=..., method=..., path=...,
44
+ query_params=..., headers=..., body=..., timeout_ms=...)
45
+
46
+ and must return (response_data, status_code).
47
+ """
48
+ self._transports[name] = handler
49
+
30
50
  def execute(self,
31
51
  company_short_name: str,
32
52
  tool_name: str,
@@ -38,6 +58,18 @@ class HttpToolService:
38
58
  f"Invalid execution_config for HTTP tool '{tool_name}'"
39
59
  )
40
60
 
61
+ transport = str(execution_config.get("transport") or "direct").lower()
62
+ if transport != "direct":
63
+ return self._execute_via_transport(
64
+ transport, company_short_name, tool_name, execution_config, input_data)
65
+
66
+ return self._execute_direct(company_short_name, tool_name, execution_config, input_data)
67
+
68
+ def _execute_direct(self,
69
+ company_short_name: str,
70
+ tool_name: str,
71
+ execution_config: dict,
72
+ input_data: dict) -> dict:
41
73
  request_cfg = execution_config.get("request") or {}
42
74
  method = str(request_cfg.get("method", "")).upper()
43
75
  url = str(request_cfg.get("url", ""))
@@ -72,6 +104,56 @@ class HttpToolService:
72
104
  status_code=status_code,
73
105
  )
74
106
 
107
+ def _execute_via_transport(self,
108
+ transport: str,
109
+ company_short_name: str,
110
+ tool_name: str,
111
+ execution_config: dict,
112
+ input_data: dict) -> dict:
113
+ handler = self._transports.get(transport)
114
+ if not handler:
115
+ raise IAToolkitException(
116
+ IAToolkitException.ErrorType.INVALID_PARAMETER,
117
+ f"HTTP tool '{tool_name}' uses transport '{transport}', which is not registered"
118
+ )
119
+
120
+ request_cfg = execution_config.get("request") or {}
121
+ method = str(request_cfg.get("method", "")).upper()
122
+ target = str(request_cfg.get("target", ""))
123
+ bridge_id = str(execution_config.get("bridge_id", ""))
124
+
125
+ if not method or not target:
126
+ raise IAToolkitException(
127
+ IAToolkitException.ErrorType.INVALID_PARAMETER,
128
+ f"Invalid request config for HTTP tool '{tool_name}'"
129
+ )
130
+
131
+ params = self._build_query_params(request_cfg, input_data)
132
+ path = self._render_path_params(request_cfg.get("path") or "", request_cfg, input_data)
133
+ json_payload = self._build_json_payload(request_cfg, input_data)
134
+ timeout_ms = request_cfg.get("timeout_ms") or 30000
135
+
136
+ response_data, status_code = handler(
137
+ company_short_name=company_short_name,
138
+ tool_name=tool_name,
139
+ execution_config=execution_config,
140
+ bridge_id=bridge_id,
141
+ target=target,
142
+ method=method,
143
+ path=path,
144
+ query_params=params,
145
+ headers=request_cfg.get("headers") or {},
146
+ body=json_payload,
147
+ timeout_ms=timeout_ms,
148
+ )
149
+
150
+ return self._build_response(
151
+ tool_name=tool_name,
152
+ execution_config=execution_config,
153
+ response_data=response_data,
154
+ status_code=status_code,
155
+ )
156
+
75
157
  def _call(self,
76
158
  method: str,
77
159
  url: str,
@@ -36,6 +36,7 @@ class ToolService:
36
36
  HTTP_ALLOWED_AUTH_TYPES = {"none", "bearer", "api_key_header", "api_key_query", "basic"}
37
37
  HTTP_ALLOWED_RESPONSE_MODES = {"json", "text", "raw"}
38
38
  HTTP_ALLOWED_MODEL_OUTPUT_MODES = {"raw", "extract", "map"}
39
+ HTTP_ALLOWED_TRANSPORTS = {"direct", "bridge"}
39
40
 
40
41
  TOOL_EVENT_CREATED = "created"
41
42
  TOOL_EVENT_UPDATED = "updated"
@@ -457,6 +458,18 @@ class ToolService:
457
458
  "execution_config.version must be 1"
458
459
  )
459
460
 
461
+ transport = str(execution_config.get("transport", "direct")).lower()
462
+ if transport not in self.HTTP_ALLOWED_TRANSPORTS:
463
+ raise IAToolkitException(
464
+ IAToolkitException.ErrorType.INVALID_PARAMETER,
465
+ f"execution_config.transport must be one of {sorted(self.HTTP_ALLOWED_TRANSPORTS)}"
466
+ )
467
+ if transport == "bridge" and not str(execution_config.get("bridge_id") or "").strip():
468
+ raise IAToolkitException(
469
+ IAToolkitException.ErrorType.INVALID_PARAMETER,
470
+ "execution_config.bridge_id is required when transport is 'bridge'"
471
+ )
472
+
460
473
  request_cfg = execution_config.get("request")
461
474
  if not isinstance(request_cfg, dict):
462
475
  raise IAToolkitException(
@@ -471,58 +484,70 @@ class ToolService:
471
484
  f"execution_config.request.method must be one of {sorted(self.HTTP_ALLOWED_METHODS)}"
472
485
  )
473
486
 
474
- url = request_cfg.get("url")
475
- if not isinstance(url, str) or not url.strip():
476
- raise IAToolkitException(
477
- IAToolkitException.ErrorType.INVALID_PARAMETER,
478
- "execution_config.request.url is required and must be a non-empty string"
479
- )
480
-
481
- security_cfg = execution_config.get("security")
482
- allow_private_network = False
483
- if security_cfg is not None:
484
- if not isinstance(security_cfg, dict):
487
+ # For transport='bridge', the hosted side never names a host/URL — it names a
488
+ # `target` that the bridge itself resolves against its own allowlist. There is
489
+ # no URL here to apply the direct-transport SSRF/scheme checks against.
490
+ if transport == "bridge":
491
+ target = request_cfg.get("target")
492
+ if not isinstance(target, str) or not target.strip():
485
493
  raise IAToolkitException(
486
494
  IAToolkitException.ErrorType.INVALID_PARAMETER,
487
- "execution_config.security must be a JSON object"
495
+ "execution_config.request.target is required and must be a non-empty string "
496
+ "when transport is 'bridge'"
497
+ )
498
+ else:
499
+ url = request_cfg.get("url")
500
+ if not isinstance(url, str) or not url.strip():
501
+ raise IAToolkitException(
502
+ IAToolkitException.ErrorType.INVALID_PARAMETER,
503
+ "execution_config.request.url is required and must be a non-empty string"
488
504
  )
489
505
 
490
- allowed_hosts = security_cfg.get("allowed_hosts")
491
- if allowed_hosts is not None:
492
- if not isinstance(allowed_hosts, list):
506
+ security_cfg = execution_config.get("security")
507
+ allow_private_network = False
508
+ if security_cfg is not None:
509
+ if not isinstance(security_cfg, dict):
493
510
  raise IAToolkitException(
494
511
  IAToolkitException.ErrorType.INVALID_PARAMETER,
495
- "execution_config.security.allowed_hosts must be a list"
512
+ "execution_config.security must be a JSON object"
496
513
  )
497
- for host in allowed_hosts:
498
- if not isinstance(host, str) or not host.strip():
514
+
515
+ allowed_hosts = security_cfg.get("allowed_hosts")
516
+ if allowed_hosts is not None:
517
+ if not isinstance(allowed_hosts, list):
499
518
  raise IAToolkitException(
500
519
  IAToolkitException.ErrorType.INVALID_PARAMETER,
501
- "execution_config.security.allowed_hosts must contain non-empty strings"
520
+ "execution_config.security.allowed_hosts must be a list"
502
521
  )
522
+ for host in allowed_hosts:
523
+ if not isinstance(host, str) or not host.strip():
524
+ raise IAToolkitException(
525
+ IAToolkitException.ErrorType.INVALID_PARAMETER,
526
+ "execution_config.security.allowed_hosts must contain non-empty strings"
527
+ )
503
528
 
504
- allow_private_network_value = security_cfg.get("allow_private_network", False)
505
- if not isinstance(allow_private_network_value, bool):
529
+ allow_private_network_value = security_cfg.get("allow_private_network", False)
530
+ if not isinstance(allow_private_network_value, bool):
531
+ raise IAToolkitException(
532
+ IAToolkitException.ErrorType.INVALID_PARAMETER,
533
+ "execution_config.security.allow_private_network must be a boolean"
534
+ )
535
+ allow_private_network = allow_private_network_value
536
+
537
+ parsed = urlparse(url)
538
+ scheme = parsed.scheme.lower()
539
+ allowed_schemes = {"https", "http"} if allow_private_network else {"https"}
540
+ if scheme not in allowed_schemes or not parsed.netloc:
541
+ message = "execution_config.request.url must be an absolute HTTPS URL"
542
+ if allow_private_network:
543
+ message = (
544
+ "execution_config.request.url must be an absolute HTTP or HTTPS URL "
545
+ "when allow_private_network=true"
546
+ )
506
547
  raise IAToolkitException(
507
548
  IAToolkitException.ErrorType.INVALID_PARAMETER,
508
- "execution_config.security.allow_private_network must be a boolean"
509
- )
510
- allow_private_network = allow_private_network_value
511
-
512
- parsed = urlparse(url)
513
- scheme = parsed.scheme.lower()
514
- allowed_schemes = {"https", "http"} if allow_private_network else {"https"}
515
- if scheme not in allowed_schemes or not parsed.netloc:
516
- message = "execution_config.request.url must be an absolute HTTPS URL"
517
- if allow_private_network:
518
- message = (
519
- "execution_config.request.url must be an absolute HTTP or HTTPS URL "
520
- "when allow_private_network=true"
549
+ message
521
550
  )
522
- raise IAToolkitException(
523
- IAToolkitException.ErrorType.INVALID_PARAMETER,
524
- message
525
- )
526
551
 
527
552
  timeout_ms = request_cfg.get("timeout_ms")
528
553
  if timeout_ms is not None:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: iatoolkit
3
- Version: 2.35.0
3
+ Version: 2.36.0
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