iatoolkit 2.52.0__tar.gz → 2.53.1__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.
- {iatoolkit-2.52.0/src/iatoolkit.egg-info → iatoolkit-2.53.1}/PKG-INFO +1 -1
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/__init__.py +1 -1
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/common/routes.py +7 -1
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/config/system_tools_pack.yaml +3 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/core.py +7 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/infra/llm_proxy.py +21 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/locales/en.yaml +7 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/locales/es.yaml +7 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/repositories/database_manager.py +31 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/repositories/models.py +11 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/services/configuration_service.py +6 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/services/dispatcher_service.py +39 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/services/system_tools.py +9 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/services/tool_service.py +5 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1/src/iatoolkit.egg-info}/PKG-INFO +1 -1
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/LICENSE +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/LICENSE_COMMUNITY.md +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/pyproject.toml +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/readme.md +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/setup.cfg +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/base_company.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/cli_commands.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/common/__init__.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/common/bridge_validation.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/common/exceptions.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/common/interfaces/__init__.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/common/interfaces/asset_storage.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/common/interfaces/database_provider.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/common/interfaces/memory_compilation_trigger.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/common/interfaces/memory_lint_trigger.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/common/interfaces/secret_provider.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/common/interfaces/signup_policy_resolver.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/common/interfaces/web_search_provider.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/common/model_registry.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/common/secret_resolver.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/common/session_manager.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/common/text_splitter.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/common/url_safety.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/common/util.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/company_registry.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/config/__init__.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/config/llm_capabilities.yaml +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/config/system_prompts/channel_business_identity.prompt +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/config/system_prompts/channel_conversation_continuity.prompt +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/config/system_prompts/channel_response_style.prompt +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/config/system_prompts/chat_state_rules.prompt +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/config/system_prompts/chat_user_profile.prompt +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/config/system_prompts/core_identity.prompt +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/config/system_prompts/email_output.prompt +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/config/system_prompts/file_download_output.prompt +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/config/system_prompts/format_styles.prompt +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/config/system_prompts/html_structures.prompt +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/config/system_prompts/links_documents.prompt +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/config/system_prompts/memory_usage.prompt +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/config/system_prompts/multimodal_basics.prompt +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/config/system_prompts/output_basics.prompt +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/config/system_prompts/presentation_formatting.prompt +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/config/system_prompts/query_main.prompt +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/config/system_prompts/sql_aggregation_scope.prompt +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/config/system_prompts/sql_casting.prompt +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/config/system_prompts/sql_core.prompt +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/config/system_prompts/sql_jsonb.prompt +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/config/system_prompts/sql_mysql_casting.prompt +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/config/system_prompts/sql_mysql_json.prompt +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/config/system_prompts/sql_redshift_basics.prompt +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/config/system_prompts/sql_redshift_types.prompt +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/config/system_prompts/sql_rules.prompt +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/config/system_prompts/tool_html_passthrough.prompt +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/config/system_prompts_pack.yaml +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/infra/__init__.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/infra/brevo_mail_app.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/infra/call_service.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/infra/connectors/__init__.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/infra/connectors/file_connector.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/infra/connectors/file_connector_factory.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/infra/connectors/google_cloud_storage_connector.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/infra/connectors/google_drive_connector.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/infra/connectors/local_file_connector.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/infra/connectors/s3_connector.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/infra/google_auth_client.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/infra/google_chat_app.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/infra/inference_embeddings_client.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/infra/inference_handler.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/infra/jina_embeddings_client.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/infra/llm_gateway_resolver.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/infra/llm_providers/__init__.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/infra/llm_providers/anthropic_adapter.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/infra/llm_providers/deepseek_adapter.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/infra/llm_providers/gemini_adapter.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/infra/llm_providers/openai_adapter.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/infra/llm_providers/openai_compatible_chat_adapter.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/infra/llm_providers/openrouter_adapter.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/infra/llm_response.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/infra/redis_session_manager.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/repositories/__init__.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/repositories/api_key_repo.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/repositories/bridge_repo.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/repositories/document_repo.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/repositories/env_secret_provider.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/repositories/filesystem_asset_repository.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/repositories/knowledge_wiki_repo.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/repositories/llm_query_repo.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/repositories/mcp_token_repo.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/repositories/memory_repo.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/repositories/profile_repo.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/repositories/prompt_resource_repo.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/repositories/sql_dataset_repo.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/repositories/sql_source_repo.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/repositories/vs_repo.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/runtime_logging.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/services/__init__.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/services/api_key_service.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/services/attachment_policy_service.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/services/auth_service.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/services/branding_service.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/services/company_context_service.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/services/context_builder_service.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/services/embedding_service.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/services/excel_service.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/services/file_processor_service.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/services/history_manager_service.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/services/http_tool_service.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/services/i18n_service.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/services/inference_service.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/services/jwt_service.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/services/knowledge_base_service.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/services/language_service.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/services/license_service.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/services/llm_client_service.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/services/mail_service.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/services/markdown_wiki_service.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/services/mcp_token_service.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/services/memory_compiler_service.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/services/memory_lint_service.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/services/memory_lookup_policy_service.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/services/memory_service.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/services/memory_wiki_service.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/services/noop_memory_compilation_trigger.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/services/noop_memory_lint_trigger.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/services/operator_identity_service.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/services/parsers/__init__.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/services/parsers/contracts.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/services/parsers/image_normalizer.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/services/parsers/parsing_service.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/services/parsers/pdf_ocr_detection.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/services/parsers/provider_factory.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/services/parsers/provider_resolver.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/services/parsers/providers/__init__.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/services/parsers/providers/basic_provider.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/services/parsers/providers/docling_provider.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/services/parsers/validator.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/services/pdf_service.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/services/profile_service.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/services/prompt_resource_service.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/services/prompt_service.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/services/query_service.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/services/signup_policy_resolver.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/services/sql_dataset_service.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/services/sql_service.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/services/sql_source_service.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/services/storage_service.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/services/structured_output_service.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/services/system_prompt_catalog.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/services/telemetry_service.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/services/tenant_wiki_service.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/services/tool_output_contract.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/services/user_feedback_service.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/services/user_session_context_service.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/services/visual_kb_service.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/services/visual_tool_service.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/services/warmup_service.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/services/web_search/__init__.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/services/web_search/provider_factory.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/services/web_search/providers/__init__.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/services/web_search/providers/brave_provider.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/services/web_search_service.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/static/images/fernando.jpeg +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/static/images/iatoolkit_core.png +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/static/images/iatoolkit_logo.png +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/static/js/chat_feedback_button.js +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/static/js/chat_filepond.js +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/static/js/chat_help_content.js +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/static/js/chat_history_button.js +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/static/js/chat_logout_button.js +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/static/js/chat_main.js +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/static/js/chat_memory_button.js +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/static/js/chat_model_selector.js +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/static/js/chat_onboarding_button.js +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/static/js/chat_prompt_manager.js +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/static/js/chat_reload_button.js +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/static/styles/chat_iatoolkit.css +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/static/styles/chat_modal.css +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/static/styles/chat_public.css +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/static/styles/documents.css +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/static/styles/landing_page.css +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/static/styles/llm_output.css +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/static/styles/onboarding.css +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/templates/_company_header.html +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/templates/_login_widget.html +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/templates/account.html +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/templates/base.html +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/templates/change_password.html +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/templates/chat.html +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/templates/chat_memory_modal.html +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/templates/chat_modals.html +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/templates/error.html +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/templates/forgot_password.html +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/templates/home_hosted_default.html +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/templates/memory/wiki_schema.md +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/templates/onboarding_shell.html +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/templates/pdf/base.html +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/templates/pdf/letter.html +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/templates/pdf/report.html +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/templates/pdf/simple.html +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/templates/signup.html +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/views/__init__.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/views/account_view.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/views/api_key_api_view.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/views/base_login_view.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/views/categories_api_view.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/views/change_password_view.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/views/chat_context_preview_api_view.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/views/chat_view.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/views/configuration_api_view.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/views/connectors_api_view.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/views/embedding_api_view.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/views/forgot_password_view.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/views/help_content_api_view.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/views/history_api_view.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/views/home_view.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/views/init_context_api_view.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/views/llmquery_api_view.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/views/load_document_api_view.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/views/login_view.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/views/logout_api_view.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/views/memory_api_view.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/views/profile_api_view.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/views/prompt_api_view.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/views/prompt_context_preview_api_view.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/views/prompt_resource_api_view.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/views/rag_api_view.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/views/root_redirect_view.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/views/signup_view.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/views/static_page_view.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/views/tool_api_view.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/views/user_feedback_api_view.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/views/users_api_view.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/views/verify_user_view.py +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit.egg-info/SOURCES.txt +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit.egg-info/dependency_links.txt +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit.egg-info/requires.txt +0 -0
- {iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit.egg-info/top_level.txt +0 -0
|
@@ -299,7 +299,13 @@ def register_views(app):
|
|
|
299
299
|
return redirect(signed_url)
|
|
300
300
|
|
|
301
301
|
# Fallback path: stream bytes from storage through Flask.
|
|
302
|
-
|
|
302
|
+
try:
|
|
303
|
+
file_bytes = storage_service.get_document_content(company_short_name, storage_key)
|
|
304
|
+
except IAToolkitException as e:
|
|
305
|
+
if e.error_type != IAToolkitException.ErrorType.FILE_IO_ERROR:
|
|
306
|
+
raise
|
|
307
|
+
# Generated downloads are deleted after the tenant's retention.
|
|
308
|
+
abort(404, "This file has expired or is no longer available.")
|
|
303
309
|
guessed_mime, _ = mimetypes.guess_type(output_filename)
|
|
304
310
|
return send_file(
|
|
305
311
|
BytesIO(file_bytes),
|
|
@@ -128,6 +128,9 @@ tools:
|
|
|
128
128
|
- orientation
|
|
129
129
|
- function_name: iat_send_email
|
|
130
130
|
description: iatoolkit mail system. envia mails cuando un usuario lo solicita.
|
|
131
|
+
# Sends a real email: simulated, never sent, when an evaluation replays an agent.
|
|
132
|
+
execution_config:
|
|
133
|
+
side_effects: true
|
|
131
134
|
routing_profile:
|
|
132
135
|
tags:
|
|
133
136
|
- email
|
|
@@ -175,6 +175,13 @@ class IAToolkit:
|
|
|
175
175
|
logging.info("🔥 Startup warm-up completed for endpoints=%s", woken_endpoints)
|
|
176
176
|
except Exception:
|
|
177
177
|
logging.exception("⚠️ Startup warm-up failed.")
|
|
178
|
+
finally:
|
|
179
|
+
# The scoped session is per thread: whatever this thread read
|
|
180
|
+
# (the endpoint's credentials, from the secrets table) keeps its
|
|
181
|
+
# connection "idle in transaction" until the thread's own session
|
|
182
|
+
# is removed - and nothing else ever removes it.
|
|
183
|
+
if self.db_manager is not None:
|
|
184
|
+
self.db_manager.remove_session()
|
|
178
185
|
|
|
179
186
|
thread = threading.Thread(target=_run_warmup, name="iatoolkit-startup-warmup", daemon=True)
|
|
180
187
|
thread.start()
|
|
@@ -89,6 +89,23 @@ class LLMProxy:
|
|
|
89
89
|
self._telemetry_service = NoopTelemetryService()
|
|
90
90
|
return self._telemetry_service
|
|
91
91
|
|
|
92
|
+
@staticmethod
|
|
93
|
+
def _release_database_transaction() -> None:
|
|
94
|
+
"""
|
|
95
|
+
Hands the request's database connection back to the pool before the
|
|
96
|
+
provider call. Resolved lazily, like telemetry: the proxy is also built
|
|
97
|
+
outside a running toolkit (tests, scripts), where there is nothing to
|
|
98
|
+
release.
|
|
99
|
+
"""
|
|
100
|
+
try:
|
|
101
|
+
from iatoolkit import current_iatoolkit
|
|
102
|
+
from iatoolkit.repositories.database_manager import DatabaseManager
|
|
103
|
+
|
|
104
|
+
db_manager = current_iatoolkit().get_injector().get(DatabaseManager)
|
|
105
|
+
except Exception:
|
|
106
|
+
return
|
|
107
|
+
db_manager.release_idle_transaction()
|
|
108
|
+
|
|
92
109
|
# -------------------------------------------------------------------------
|
|
93
110
|
# Public API
|
|
94
111
|
# -------------------------------------------------------------------------
|
|
@@ -146,6 +163,10 @@ class LLMProxy:
|
|
|
146
163
|
if telemetry_execution is not None:
|
|
147
164
|
request_kwargs["telemetry_execution"] = telemetry_execution
|
|
148
165
|
|
|
166
|
+
# Everything the call needs from the database is resolved by now; the
|
|
167
|
+
# model can take minutes, and the connection should not wait with it.
|
|
168
|
+
self._release_database_transaction()
|
|
169
|
+
|
|
149
170
|
# Delegate to the adapter (OpenAI, Gemini, DeepSeek, xAI, Anthropic, etc.)
|
|
150
171
|
return adapter.create_response(
|
|
151
172
|
model=self._wire_model(model, model_config),
|
|
@@ -1247,6 +1247,13 @@ ui:
|
|
|
1247
1247
|
run_duration_seconds: "Duration (s)"
|
|
1248
1248
|
run_duration_minutes: "Duration (min)"
|
|
1249
1249
|
duration_minutes_suffix: "mins."
|
|
1250
|
+
timing_duration: "Duration"
|
|
1251
|
+
timing_rate: "Rate"
|
|
1252
|
+
timing_eta: "ETA"
|
|
1253
|
+
timing_eta_after_discovery: "ETA after discovery"
|
|
1254
|
+
timing_eta_pending: "ETA pending"
|
|
1255
|
+
timing_processed_rate_suffix: "processed"
|
|
1256
|
+
timing_submitted_rate_suffix: "submitted"
|
|
1250
1257
|
run_finished: "Finished"
|
|
1251
1258
|
run_actions: "Actions"
|
|
1252
1259
|
run_discovered: "Discovered"
|
|
@@ -1262,6 +1262,13 @@ ui:
|
|
|
1262
1262
|
run_duration_seconds: "Duración (s)"
|
|
1263
1263
|
run_duration_minutes: "Duración (min)"
|
|
1264
1264
|
duration_minutes_suffix: "mins."
|
|
1265
|
+
timing_duration: "Duración"
|
|
1266
|
+
timing_rate: "Ritmo"
|
|
1267
|
+
timing_eta: "ETA"
|
|
1268
|
+
timing_eta_after_discovery: "ETA después de discovery"
|
|
1269
|
+
timing_eta_pending: "ETA pendiente"
|
|
1270
|
+
timing_processed_rate_suffix: "procesados"
|
|
1271
|
+
timing_submitted_rate_suffix: "enviados"
|
|
1265
1272
|
run_finished: "Fin"
|
|
1266
1273
|
run_actions: "Acciones"
|
|
1267
1274
|
run_discovered: "Descubiertos"
|
|
@@ -324,6 +324,37 @@ class DatabaseManager(DatabaseProvider):
|
|
|
324
324
|
def remove_session(self):
|
|
325
325
|
self.scoped_session.remove()
|
|
326
326
|
|
|
327
|
+
def release_idle_transaction(self) -> bool:
|
|
328
|
+
"""
|
|
329
|
+
Ends the current session's transaction and returns its connection to the
|
|
330
|
+
pool, before a call that waits on something other than the database.
|
|
331
|
+
|
|
332
|
+
Any read opens a transaction that lasts until the next commit, so a
|
|
333
|
+
session that read config or secrets and then waited minutes on an LLM
|
|
334
|
+
held its connection "idle in transaction" the whole time. A web process
|
|
335
|
+
serves many requests from one small pool, and a few such waits were
|
|
336
|
+
enough to time out every other request.
|
|
337
|
+
|
|
338
|
+
Commits rather than rolls back: a rollback expires every loaded object
|
|
339
|
+
and would discard writes already flushed. The session factory keeps
|
|
340
|
+
objects on commit, so callers go on using what they loaded. Leaves the
|
|
341
|
+
session alone when it has pending changes - committing them here would
|
|
342
|
+
be the caller's decision, not ours.
|
|
343
|
+
"""
|
|
344
|
+
try:
|
|
345
|
+
if not self.scoped_session.registry.has():
|
|
346
|
+
return False
|
|
347
|
+
session = self.scoped_session.registry()
|
|
348
|
+
if not session.in_transaction():
|
|
349
|
+
return False
|
|
350
|
+
if session.new or session.dirty or session.deleted:
|
|
351
|
+
return False
|
|
352
|
+
session.commit()
|
|
353
|
+
return True
|
|
354
|
+
except Exception as e:
|
|
355
|
+
logging.debug("Could not release the idle database transaction: %s", e)
|
|
356
|
+
return False
|
|
357
|
+
|
|
327
358
|
# -- execution methods ----
|
|
328
359
|
|
|
329
360
|
def execute_query(self, query: str, commit: bool = False, params: dict | None = None) -> list[dict] | dict:
|
|
@@ -385,6 +385,17 @@ class Tool(Base):
|
|
|
385
385
|
|
|
386
386
|
company = relationship('Company', back_populates='tools')
|
|
387
387
|
|
|
388
|
+
@property
|
|
389
|
+
def has_side_effects(self) -> bool:
|
|
390
|
+
"""Whether calling this tool changes something outside the conversation.
|
|
391
|
+
|
|
392
|
+
Declared explicitly with `execution_config.side_effects: true`; tools
|
|
393
|
+
are read-only unless they say otherwise. Model evaluations replay real
|
|
394
|
+
executions and simulate these tools instead of running them.
|
|
395
|
+
"""
|
|
396
|
+
config = self.execution_config if isinstance(self.execution_config, dict) else {}
|
|
397
|
+
return config.get("side_effects") is True
|
|
398
|
+
|
|
388
399
|
def to_dict(self):
|
|
389
400
|
return {column.key: getattr(self, column.key) for column in class_mapper(self.__class__).columns}
|
|
390
401
|
|
|
@@ -790,6 +790,12 @@ class ConfigurationService:
|
|
|
790
790
|
add_error(f"tools[{i}]", "Missing required key: 'description'")
|
|
791
791
|
if not isinstance(tool.get("params"), dict):
|
|
792
792
|
add_error(f"tools[{i}]", "'params' key must be a dictionary.")
|
|
793
|
+
execution_config = tool.get("execution_config")
|
|
794
|
+
if execution_config is not None:
|
|
795
|
+
if not isinstance(execution_config, dict):
|
|
796
|
+
add_error(f"tools[{i}].execution_config", "Must be a dictionary.")
|
|
797
|
+
elif "side_effects" in execution_config and not isinstance(execution_config["side_effects"], bool):
|
|
798
|
+
add_error(f"tools[{i}].execution_config.side_effects", "Must be true or false.")
|
|
793
799
|
|
|
794
800
|
# 6. Prompts
|
|
795
801
|
prompt_list, categories_config = self._get_prompt_config(config)
|
|
@@ -14,6 +14,11 @@ from time import perf_counter
|
|
|
14
14
|
from uuid import uuid4
|
|
15
15
|
|
|
16
16
|
|
|
17
|
+
#: request_source of the executions a model evaluation replays. Tools that
|
|
18
|
+
#: declare side effects are simulated for them instead of being run.
|
|
19
|
+
EVALUATION_REQUEST_SOURCE = "evaluation"
|
|
20
|
+
|
|
21
|
+
|
|
17
22
|
class Dispatcher:
|
|
18
23
|
# System tools whose answer depends on who is asking, so the dispatcher
|
|
19
24
|
# injects the identity server-side. The wiki tools are here because a page's
|
|
@@ -157,6 +162,22 @@ class Dispatcher:
|
|
|
157
162
|
arguments=dict(kwargs),
|
|
158
163
|
)
|
|
159
164
|
started_at = perf_counter()
|
|
165
|
+
if self._is_simulated_call(tool_def, _iat_runtime_source):
|
|
166
|
+
result = self._simulated_result(function_name)
|
|
167
|
+
self._notify_tool_execution_hook(
|
|
168
|
+
"after_dispatch",
|
|
169
|
+
execution_id=execution_id,
|
|
170
|
+
company_short_name=company_short_name,
|
|
171
|
+
function_name=function_name,
|
|
172
|
+
user_identifier=user_identifier,
|
|
173
|
+
runtime_source=_iat_runtime_source,
|
|
174
|
+
tool_def=tool_def,
|
|
175
|
+
arguments=dict(kwargs),
|
|
176
|
+
status="simulated",
|
|
177
|
+
duration_ms=int(round((perf_counter() - started_at) * 1000)),
|
|
178
|
+
result=result,
|
|
179
|
+
)
|
|
180
|
+
return result
|
|
160
181
|
try:
|
|
161
182
|
result = self._dispatch_resolved_tool(
|
|
162
183
|
company_short_name=company_short_name,
|
|
@@ -195,6 +216,24 @@ class Dispatcher:
|
|
|
195
216
|
)
|
|
196
217
|
raise
|
|
197
218
|
|
|
219
|
+
@staticmethod
|
|
220
|
+
def _is_simulated_call(tool_def, runtime_source: str | None) -> bool:
|
|
221
|
+
if str(runtime_source or "").strip().lower() != EVALUATION_REQUEST_SOURCE:
|
|
222
|
+
return False
|
|
223
|
+
return bool(getattr(tool_def, "has_side_effects", False))
|
|
224
|
+
|
|
225
|
+
@staticmethod
|
|
226
|
+
def _simulated_result(function_name: str) -> dict:
|
|
227
|
+
# Returned to the model in place of the real call, so the agent can keep
|
|
228
|
+
# going: the evaluation measures its reasoning, not this action's outcome.
|
|
229
|
+
return {
|
|
230
|
+
"status": "simulated",
|
|
231
|
+
"message": (
|
|
232
|
+
f"Action '{function_name}' was not executed: this is a model evaluation "
|
|
233
|
+
"and the tool has side effects. Continue as if it had succeeded."
|
|
234
|
+
),
|
|
235
|
+
}
|
|
236
|
+
|
|
198
237
|
def _dispatch_resolved_tool(
|
|
199
238
|
self,
|
|
200
239
|
*,
|
|
@@ -56,6 +56,13 @@ def _validate_system_tool_entry(entry: dict, index: int) -> dict:
|
|
|
56
56
|
routing_profile = entry.get("routing_profile")
|
|
57
57
|
normalized_routing_profile = _validate_routing_profile(routing_profile, index)
|
|
58
58
|
|
|
59
|
+
execution_config = entry.get("execution_config")
|
|
60
|
+
if execution_config is not None:
|
|
61
|
+
if not isinstance(execution_config, dict):
|
|
62
|
+
raise ValueError(f"tools[{index}].execution_config must be an object")
|
|
63
|
+
if "side_effects" in execution_config and not isinstance(execution_config["side_effects"], bool):
|
|
64
|
+
raise ValueError(f"tools[{index}].execution_config.side_effects must be a boolean")
|
|
65
|
+
|
|
59
66
|
normalized = {
|
|
60
67
|
"function_name": function_name,
|
|
61
68
|
"description": description,
|
|
@@ -67,6 +74,8 @@ def _validate_system_tool_entry(entry: dict, index: int) -> dict:
|
|
|
67
74
|
normalized["routing"] = normalized_routing
|
|
68
75
|
if normalized_routing_profile is not None:
|
|
69
76
|
normalized["routing_profile"] = normalized_routing_profile
|
|
77
|
+
if execution_config is not None:
|
|
78
|
+
normalized["execution_config"] = copy.deepcopy(execution_config)
|
|
70
79
|
return normalized
|
|
71
80
|
|
|
72
81
|
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
# IAToolkit is open source software.
|
|
5
5
|
|
|
6
6
|
from injector import inject
|
|
7
|
+
import copy
|
|
7
8
|
import os
|
|
8
9
|
import json
|
|
9
10
|
import logging
|
|
@@ -930,6 +931,7 @@ class ToolService:
|
|
|
930
931
|
name=function['function_name'],
|
|
931
932
|
description=function['description'],
|
|
932
933
|
parameters=function['parameters'],
|
|
934
|
+
execution_config=copy.deepcopy(function.get("execution_config")),
|
|
933
935
|
output_contract=clone_output_contract(function.get("output_contract")),
|
|
934
936
|
tool_type=Tool.TYPE_SYSTEM,
|
|
935
937
|
source=Tool.SOURCE_SYSTEM,
|
|
@@ -972,6 +974,7 @@ class ToolService:
|
|
|
972
974
|
and tool.description == definition.get("description")
|
|
973
975
|
and (tool.parameters or {}) == (definition.get("parameters") or {})
|
|
974
976
|
and (tool.output_contract or {}) == (definition.get("output_contract") or {})
|
|
977
|
+
and (tool.execution_config or {}) == (definition.get("execution_config") or {})
|
|
975
978
|
)
|
|
976
979
|
|
|
977
980
|
def _system_tools_catalog_has_drift(
|
|
@@ -1032,6 +1035,7 @@ class ToolService:
|
|
|
1032
1035
|
name=function_name,
|
|
1033
1036
|
description=function.get("description"),
|
|
1034
1037
|
parameters=function.get("parameters") or {},
|
|
1038
|
+
execution_config=copy.deepcopy(function.get("execution_config")),
|
|
1035
1039
|
output_contract=clone_output_contract(function.get("output_contract")),
|
|
1036
1040
|
tool_type=Tool.TYPE_SYSTEM,
|
|
1037
1041
|
source=Tool.SOURCE_SYSTEM,
|
|
@@ -1128,6 +1132,7 @@ class ToolService:
|
|
|
1128
1132
|
name=name,
|
|
1129
1133
|
description=tool_data['description'],
|
|
1130
1134
|
parameters=tool_data['params'],
|
|
1135
|
+
execution_config=copy.deepcopy(tool_data.get('execution_config')),
|
|
1131
1136
|
output_contract=clone_output_contract(tool_data.get('output_contract')),
|
|
1132
1137
|
|
|
1133
1138
|
tool_type=Tool.TYPE_NATIVE,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/common/interfaces/memory_compilation_trigger.py
RENAMED
|
File without changes
|
{iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/common/interfaces/memory_lint_trigger.py
RENAMED
|
File without changes
|
|
File without changes
|
{iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/common/interfaces/signup_policy_resolver.py
RENAMED
|
File without changes
|
{iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/common/interfaces/web_search_provider.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/config/system_prompts/chat_state_rules.prompt
RENAMED
|
File without changes
|
{iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/config/system_prompts/chat_user_profile.prompt
RENAMED
|
File without changes
|
{iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/config/system_prompts/core_identity.prompt
RENAMED
|
File without changes
|
{iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/config/system_prompts/email_output.prompt
RENAMED
|
File without changes
|
|
File without changes
|
{iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/config/system_prompts/format_styles.prompt
RENAMED
|
File without changes
|
{iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/config/system_prompts/html_structures.prompt
RENAMED
|
File without changes
|
{iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/config/system_prompts/links_documents.prompt
RENAMED
|
File without changes
|
{iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/config/system_prompts/memory_usage.prompt
RENAMED
|
File without changes
|
{iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/config/system_prompts/multimodal_basics.prompt
RENAMED
|
File without changes
|
{iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/config/system_prompts/output_basics.prompt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/config/system_prompts/sql_casting.prompt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/config/system_prompts/sql_mysql_casting.prompt
RENAMED
|
File without changes
|
{iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/config/system_prompts/sql_mysql_json.prompt
RENAMED
|
File without changes
|
{iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/config/system_prompts/sql_redshift_basics.prompt
RENAMED
|
File without changes
|
{iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/config/system_prompts/sql_redshift_types.prompt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/infra/connectors/file_connector_factory.py
RENAMED
|
File without changes
|
|
File without changes
|
{iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/infra/connectors/google_drive_connector.py
RENAMED
|
File without changes
|
{iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/infra/connectors/local_file_connector.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/infra/llm_providers/anthropic_adapter.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/infra/llm_providers/openrouter_adapter.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{iatoolkit-2.52.0 → iatoolkit-2.53.1}/src/iatoolkit/repositories/filesystem_asset_repository.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|