iatoolkit 2.50.2__tar.gz → 2.51.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.
- {iatoolkit-2.50.2/src/iatoolkit.egg-info → iatoolkit-2.51.0}/PKG-INFO +2 -2
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/pyproject.toml +86 -3
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/__init__.py +1 -1
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/locales/en.yaml +11 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/locales/es.yaml +11 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/repositories/database_manager.py +27 -2
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/repositories/models.py +3 -3
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/services/configuration_service.py +51 -22
- {iatoolkit-2.50.2 → iatoolkit-2.51.0/src/iatoolkit.egg-info}/PKG-INFO +2 -2
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit.egg-info/SOURCES.txt +0 -1
- iatoolkit-2.50.2/requirements.txt +0 -81
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/LICENSE +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/LICENSE_COMMUNITY.md +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/readme.md +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/setup.cfg +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/base_company.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/cli_commands.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/common/__init__.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/common/bridge_validation.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/common/exceptions.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/common/interfaces/__init__.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/common/interfaces/asset_storage.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/common/interfaces/database_provider.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/common/interfaces/memory_compilation_trigger.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/common/interfaces/memory_lint_trigger.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/common/interfaces/secret_provider.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/common/interfaces/signup_policy_resolver.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/common/interfaces/web_search_provider.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/common/model_registry.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/common/routes.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/common/secret_resolver.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/common/session_manager.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/common/url_safety.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/common/util.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/company_registry.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/config/__init__.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/config/llm_capabilities.yaml +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/config/system_prompts/channel_business_identity.prompt +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/config/system_prompts/channel_conversation_continuity.prompt +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/config/system_prompts/channel_response_style.prompt +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/config/system_prompts/chat_state_rules.prompt +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/config/system_prompts/chat_user_profile.prompt +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/config/system_prompts/core_identity.prompt +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/config/system_prompts/email_output.prompt +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/config/system_prompts/file_download_output.prompt +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/config/system_prompts/format_styles.prompt +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/config/system_prompts/html_structures.prompt +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/config/system_prompts/links_documents.prompt +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/config/system_prompts/memory_usage.prompt +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/config/system_prompts/multimodal_basics.prompt +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/config/system_prompts/output_basics.prompt +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/config/system_prompts/presentation_formatting.prompt +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/config/system_prompts/query_main.prompt +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/config/system_prompts/sql_aggregation_scope.prompt +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/config/system_prompts/sql_casting.prompt +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/config/system_prompts/sql_core.prompt +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/config/system_prompts/sql_jsonb.prompt +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/config/system_prompts/sql_mysql_casting.prompt +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/config/system_prompts/sql_mysql_json.prompt +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/config/system_prompts/sql_redshift_basics.prompt +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/config/system_prompts/sql_redshift_types.prompt +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/config/system_prompts/sql_rules.prompt +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/config/system_prompts/tool_html_passthrough.prompt +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/config/system_prompts_pack.yaml +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/config/system_tools_pack.yaml +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/core.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/infra/__init__.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/infra/brevo_mail_app.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/infra/call_service.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/infra/connectors/__init__.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/infra/connectors/file_connector.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/infra/connectors/file_connector_factory.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/infra/connectors/google_cloud_storage_connector.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/infra/connectors/google_drive_connector.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/infra/connectors/local_file_connector.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/infra/connectors/s3_connector.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/infra/google_auth_client.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/infra/google_chat_app.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/infra/inference_embeddings_client.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/infra/inference_handler.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/infra/jina_embeddings_client.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/infra/llm_gateway_resolver.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/infra/llm_providers/__init__.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/infra/llm_providers/anthropic_adapter.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/infra/llm_providers/deepseek_adapter.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/infra/llm_providers/gemini_adapter.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/infra/llm_providers/openai_adapter.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/infra/llm_providers/openai_compatible_chat_adapter.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/infra/llm_providers/openrouter_adapter.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/infra/llm_proxy.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/infra/llm_response.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/infra/redis_session_manager.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/repositories/__init__.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/repositories/api_key_repo.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/repositories/bridge_repo.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/repositories/document_repo.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/repositories/env_secret_provider.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/repositories/filesystem_asset_repository.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/repositories/knowledge_wiki_repo.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/repositories/llm_query_repo.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/repositories/mcp_token_repo.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/repositories/memory_repo.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/repositories/profile_repo.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/repositories/prompt_resource_repo.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/repositories/sql_dataset_repo.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/repositories/sql_source_repo.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/repositories/vs_repo.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/runtime_logging.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/services/__init__.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/services/api_key_service.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/services/attachment_policy_service.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/services/auth_service.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/services/benchmark_service.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/services/branding_service.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/services/company_context_service.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/services/context_builder_service.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/services/dispatcher_service.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/services/embedding_service.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/services/excel_service.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/services/file_processor_service.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/services/history_manager_service.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/services/http_tool_service.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/services/i18n_service.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/services/inference_service.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/services/jwt_service.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/services/knowledge_base_service.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/services/language_service.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/services/license_service.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/services/llm_client_service.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/services/mail_service.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/services/markdown_wiki_service.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/services/mcp_token_service.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/services/memory_compiler_service.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/services/memory_lint_service.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/services/memory_lookup_policy_service.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/services/memory_service.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/services/memory_wiki_service.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/services/noop_memory_compilation_trigger.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/services/noop_memory_lint_trigger.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/services/operator_identity_service.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/services/parsers/__init__.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/services/parsers/contracts.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/services/parsers/image_normalizer.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/services/parsers/parsing_service.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/services/parsers/pdf_ocr_detection.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/services/parsers/provider_factory.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/services/parsers/provider_resolver.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/services/parsers/providers/__init__.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/services/parsers/providers/basic_provider.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/services/parsers/providers/docling_provider.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/services/parsers/validator.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/services/pdf_service.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/services/profile_service.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/services/prompt_resource_service.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/services/prompt_service.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/services/query_service.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/services/signup_policy_resolver.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/services/sql_dataset_service.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/services/sql_service.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/services/sql_source_service.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/services/storage_service.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/services/structured_output_service.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/services/system_prompt_catalog.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/services/system_tools.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/services/telemetry_service.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/services/tenant_wiki_service.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/services/tool_output_contract.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/services/tool_service.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/services/user_feedback_service.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/services/user_session_context_service.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/services/visual_kb_service.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/services/visual_tool_service.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/services/warmup_service.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/services/web_search/__init__.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/services/web_search/provider_factory.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/services/web_search/providers/__init__.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/services/web_search/providers/brave_provider.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/services/web_search_service.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/static/images/fernando.jpeg +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/static/images/iatoolkit_core.png +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/static/images/iatoolkit_logo.png +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/static/js/chat_feedback_button.js +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/static/js/chat_filepond.js +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/static/js/chat_help_content.js +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/static/js/chat_history_button.js +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/static/js/chat_logout_button.js +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/static/js/chat_main.js +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/static/js/chat_memory_button.js +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/static/js/chat_model_selector.js +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/static/js/chat_onboarding_button.js +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/static/js/chat_prompt_manager.js +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/static/js/chat_reload_button.js +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/static/styles/chat_iatoolkit.css +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/static/styles/chat_modal.css +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/static/styles/chat_public.css +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/static/styles/documents.css +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/static/styles/landing_page.css +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/static/styles/llm_output.css +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/static/styles/onboarding.css +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/templates/_company_header.html +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/templates/_login_widget.html +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/templates/account.html +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/templates/base.html +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/templates/change_password.html +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/templates/chat.html +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/templates/chat_memory_modal.html +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/templates/chat_modals.html +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/templates/error.html +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/templates/forgot_password.html +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/templates/home_hosted_default.html +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/templates/memory/wiki_schema.md +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/templates/onboarding_shell.html +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/templates/pdf/base.html +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/templates/pdf/letter.html +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/templates/pdf/report.html +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/templates/pdf/simple.html +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/templates/signup.html +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/views/__init__.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/views/account_view.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/views/api_key_api_view.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/views/base_login_view.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/views/categories_api_view.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/views/change_password_view.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/views/chat_context_preview_api_view.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/views/chat_view.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/views/configuration_api_view.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/views/connectors_api_view.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/views/embedding_api_view.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/views/forgot_password_view.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/views/help_content_api_view.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/views/history_api_view.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/views/home_view.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/views/init_context_api_view.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/views/llmquery_api_view.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/views/load_document_api_view.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/views/login_view.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/views/logout_api_view.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/views/memory_api_view.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/views/profile_api_view.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/views/prompt_api_view.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/views/prompt_context_preview_api_view.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/views/prompt_resource_api_view.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/views/rag_api_view.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/views/root_redirect_view.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/views/signup_view.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/views/static_page_view.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/views/tool_api_view.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/views/user_feedback_api_view.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/views/users_api_view.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/views/verify_user_view.py +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit.egg-info/dependency_links.txt +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit.egg-info/requires.txt +0 -0
- {iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit.egg-info/top_level.txt +0 -0
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: iatoolkit
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.51.0
|
|
4
4
|
Summary: IAToolkit
|
|
5
5
|
Author: Fernando Libedinsky
|
|
6
6
|
License-Expression: MIT
|
|
7
|
-
Requires-Python: >=3.
|
|
7
|
+
Requires-Python: >=3.13
|
|
8
8
|
Description-Content-Type: text/markdown
|
|
9
9
|
License-File: LICENSE
|
|
10
10
|
License-File: LICENSE_COMMUNITY.md
|
|
@@ -4,8 +4,8 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "iatoolkit"
|
|
7
|
-
dynamic = ["version"
|
|
8
|
-
requires-python = ">=3.
|
|
7
|
+
dynamic = ["version"]
|
|
8
|
+
requires-python = ">=3.13"
|
|
9
9
|
description = "IAToolkit"
|
|
10
10
|
readme = "readme.md"
|
|
11
11
|
license = "MIT"
|
|
@@ -17,6 +17,90 @@ authors = [{ name = "Fernando Libedinsky" }]
|
|
|
17
17
|
# the whole suite: nothing declared them, so nothing could install them on
|
|
18
18
|
# purpose. Declared here, `pip install iatoolkit[ocr]` is a decision instead of
|
|
19
19
|
# a memory.
|
|
20
|
+
dependencies = [
|
|
21
|
+
"bcrypt==4.2.1",
|
|
22
|
+
"anthropic>=0.83.0",
|
|
23
|
+
"boto3==1.43.10",
|
|
24
|
+
"botocore==1.43.10",
|
|
25
|
+
"braintrust>=0.17.0",
|
|
26
|
+
"build==1.2.2.post1",
|
|
27
|
+
"click==8.1.8",
|
|
28
|
+
"cryptography==44.0.3",
|
|
29
|
+
"Flask==3.1.0",
|
|
30
|
+
"Flask-Bcrypt==1.0.1",
|
|
31
|
+
"flask-cors==6.0.0",
|
|
32
|
+
"Flask-Injector==0.15.0",
|
|
33
|
+
"Flask-Session==0.8.0",
|
|
34
|
+
"flatbuffers==24.3.25",
|
|
35
|
+
"gevent==25.9.1",
|
|
36
|
+
"google-ai-generativelanguage==0.6.15",
|
|
37
|
+
"google-api-core==2.24.1",
|
|
38
|
+
"google-api-python-client==2.161.0",
|
|
39
|
+
"google-auth>=2.46.0",
|
|
40
|
+
"google-auth-httplib2==0.2.0",
|
|
41
|
+
"google-auth-oauthlib==1.2.1",
|
|
42
|
+
"google-cloud-core==2.4.1",
|
|
43
|
+
"google-cloud-storage==3.0.0",
|
|
44
|
+
# 1.6.0 publishes no cp313 wheel. This was the only pin in the whole
|
|
45
|
+
# dependency set that Python 3.13 required moving.
|
|
46
|
+
"google-crc32c==1.8.0",
|
|
47
|
+
"google-genai==1.57.0",
|
|
48
|
+
"google-resumable-media==2.7.2",
|
|
49
|
+
"googleapis-common-protos==1.66.0",
|
|
50
|
+
"gunicorn==23.0.0",
|
|
51
|
+
"h11==0.14.0",
|
|
52
|
+
"httpcore==1.0.7",
|
|
53
|
+
"httplib2==0.22.0",
|
|
54
|
+
"httptools==0.6.4",
|
|
55
|
+
"httpx>=0.28.1,<1.0.0",
|
|
56
|
+
"httpx-sse==0.4.0",
|
|
57
|
+
"huggingface-hub>=0.16.4",
|
|
58
|
+
"humanfriendly==10.0",
|
|
59
|
+
"idna==3.10",
|
|
60
|
+
"injector==0.22.0",
|
|
61
|
+
"Jinja2==3.1.5",
|
|
62
|
+
"langchain==0.3.19",
|
|
63
|
+
"langchain-core==0.3.35",
|
|
64
|
+
"langchain-text-splitters==0.3.6",
|
|
65
|
+
"markdown2==2.5.3",
|
|
66
|
+
"nh3==0.3.7",
|
|
67
|
+
"openai==2.8.1",
|
|
68
|
+
"openpyxl==3.1.5",
|
|
69
|
+
"pandas==2.3.1",
|
|
70
|
+
"pgvector==0.3.6",
|
|
71
|
+
"pillow==11.0.0",
|
|
72
|
+
"psutil==7.0.0",
|
|
73
|
+
"psycogreen==1.0.2",
|
|
74
|
+
"psycopg2-binary==2.9.10",
|
|
75
|
+
"PyMySQL==1.1.1",
|
|
76
|
+
"PyJWT==2.10.1",
|
|
77
|
+
"PyMuPDF==1.25.0",
|
|
78
|
+
"python-dotenv==1.0.1",
|
|
79
|
+
"pytest==8.3.4",
|
|
80
|
+
"pytest-cov==5.0.0",
|
|
81
|
+
"pytest-mock==3.14.0",
|
|
82
|
+
"python-dateutil==2.9.0.post0",
|
|
83
|
+
"python-docx==1.1.2",
|
|
84
|
+
"pytz==2025.2",
|
|
85
|
+
"PyYAML==6.0.2",
|
|
86
|
+
"redis==5.2.1",
|
|
87
|
+
"regex==2024.11.6",
|
|
88
|
+
"requests==2.32.3",
|
|
89
|
+
"requests-oauthlib==2.0.0",
|
|
90
|
+
"requests-toolbelt==1.0.0",
|
|
91
|
+
"s3transfer==0.17.0",
|
|
92
|
+
"sib-api-v3-sdk==7.6.0",
|
|
93
|
+
"SQLAlchemy==2.0.49",
|
|
94
|
+
"sqlalchemy-redshift==1.0.0",
|
|
95
|
+
"redshift_connector==2.1.14",
|
|
96
|
+
"tiktoken==0.8.0",
|
|
97
|
+
"tokenizers>=0.22.0",
|
|
98
|
+
"websocket-client==1.8.0",
|
|
99
|
+
"websockets==14.1",
|
|
100
|
+
"Werkzeug==3.1.3",
|
|
101
|
+
"pyjwt[crypto]>=2.8.0",
|
|
102
|
+
]
|
|
103
|
+
|
|
20
104
|
[project.optional-dependencies]
|
|
21
105
|
# Parsing a document with the Docling pipeline rather than the basic provider.
|
|
22
106
|
docling = [
|
|
@@ -58,7 +142,6 @@ exclude = ["tests*", "*/tests*"]
|
|
|
58
142
|
|
|
59
143
|
[tool.setuptools.dynamic]
|
|
60
144
|
version = { attr = "iatoolkit.__version__" }
|
|
61
|
-
dependencies = { file = ["requirements.txt"] }
|
|
62
145
|
|
|
63
146
|
[tool.setuptools.package-data]
|
|
64
147
|
iatoolkit = ["templates/**/*", "static/**/*", "locales/*.yaml", "config/*.yaml", "config/system_prompts/*.prompt"]
|
|
@@ -1065,6 +1065,17 @@ ui:
|
|
|
1065
1065
|
scheduled_for: "Scheduled for"
|
|
1066
1066
|
duration: "Duration"
|
|
1067
1067
|
detail: "Detail"
|
|
1068
|
+
view_detail: "View detail"
|
|
1069
|
+
run_detail_title: "Run detail"
|
|
1070
|
+
run_id: "Run ID"
|
|
1071
|
+
attempt_label: "Attempt"
|
|
1072
|
+
trigger: "Trigger"
|
|
1073
|
+
output: "Output"
|
|
1074
|
+
error: "Error"
|
|
1075
|
+
no_output: "No output recorded."
|
|
1076
|
+
copy_output: "Copy"
|
|
1077
|
+
output_copied: "Output copied."
|
|
1078
|
+
copy_failed: "Could not copy output."
|
|
1068
1079
|
identity: "Identity"
|
|
1069
1080
|
target: "Target"
|
|
1070
1081
|
target_type: "What to run"
|
|
@@ -1080,6 +1080,17 @@ ui:
|
|
|
1080
1080
|
scheduled_for: "Programada para"
|
|
1081
1081
|
duration: "Duración"
|
|
1082
1082
|
detail: "Detalle"
|
|
1083
|
+
view_detail: "Ver detalle"
|
|
1084
|
+
run_detail_title: "Detalle de ejecución"
|
|
1085
|
+
run_id: "ID de ejecución"
|
|
1086
|
+
attempt_label: "Intento"
|
|
1087
|
+
trigger: "Disparador"
|
|
1088
|
+
output: "Salida"
|
|
1089
|
+
error: "Error"
|
|
1090
|
+
no_output: "No hay salida registrada."
|
|
1091
|
+
copy_output: "Copiar"
|
|
1092
|
+
output_copied: "Salida copiada."
|
|
1093
|
+
copy_failed: "No se pudo copiar la salida."
|
|
1083
1094
|
identity: "Identidad"
|
|
1084
1095
|
target: "Destino"
|
|
1085
1096
|
target_type: "Qué ejecutar"
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
# IAToolkit is open source software.
|
|
5
5
|
|
|
6
6
|
# database_manager.py
|
|
7
|
+
import os
|
|
7
8
|
from sqlalchemy import create_engine, event, inspect, text
|
|
8
9
|
from sqlalchemy.dialects import registry
|
|
9
10
|
from sqlalchemy.orm import sessionmaker, scoped_session
|
|
@@ -21,6 +22,15 @@ class DatabaseManager(DatabaseProvider):
|
|
|
21
22
|
)
|
|
22
23
|
_DEFAULT_CONNECT_TIMEOUT = 60
|
|
23
24
|
MAX_RESULT_ROWS = 2000
|
|
25
|
+
#: Connections each pool may hold. Every process opens one pool per database it
|
|
26
|
+
#: touches, so the ceiling a deployment must respect is
|
|
27
|
+
#: processes x databases x (pool_size + max_overflow), against the server's
|
|
28
|
+
#: max_connections. A worker fleet of 16 processes over two databases on a 103-slot
|
|
29
|
+
#: instance exhausted it with the previous 10/20, and the papers pipeline lost two of
|
|
30
|
+
#: every three ingestions to "FATAL: remaining connection slots are reserved".
|
|
31
|
+
#: Override per service with IAT_DB_POOL_SIZE / IAT_DB_MAX_OVERFLOW.
|
|
32
|
+
DEFAULT_POOL_SIZE = 3
|
|
33
|
+
DEFAULT_MAX_OVERFLOW = 5
|
|
24
34
|
|
|
25
35
|
@inject
|
|
26
36
|
def __init__(self,
|
|
@@ -51,8 +61,8 @@ class DatabaseManager(DatabaseProvider):
|
|
|
51
61
|
raw_engine = create_engine(
|
|
52
62
|
self.engine_url,
|
|
53
63
|
echo=False,
|
|
54
|
-
pool_size=
|
|
55
|
-
max_overflow=
|
|
64
|
+
pool_size=self._resolve_pool_setting("IAT_DB_POOL_SIZE", self.DEFAULT_POOL_SIZE),
|
|
65
|
+
max_overflow=self._resolve_pool_setting("IAT_DB_MAX_OVERFLOW", self.DEFAULT_MAX_OVERFLOW),
|
|
56
66
|
pool_timeout=30,
|
|
57
67
|
pool_recycle=1800,
|
|
58
68
|
pool_pre_ping=True,
|
|
@@ -89,6 +99,21 @@ class DatabaseManager(DatabaseProvider):
|
|
|
89
99
|
def _is_mysql(self) -> bool:
|
|
90
100
|
return self.backend == 'mysql'
|
|
91
101
|
|
|
102
|
+
@staticmethod
|
|
103
|
+
def _resolve_pool_setting(env_name: str, default: int) -> int:
|
|
104
|
+
raw_value = str(os.getenv(env_name, "") or "").strip()
|
|
105
|
+
if not raw_value:
|
|
106
|
+
return default
|
|
107
|
+
try:
|
|
108
|
+
value = int(raw_value)
|
|
109
|
+
except (TypeError, ValueError):
|
|
110
|
+
logging.warning("%s=%r is not an integer; using %s", env_name, raw_value, default)
|
|
111
|
+
return default
|
|
112
|
+
if value < 0:
|
|
113
|
+
logging.warning("%s=%s is negative; using %s", env_name, value, default)
|
|
114
|
+
return default
|
|
115
|
+
return value
|
|
116
|
+
|
|
92
117
|
@classmethod
|
|
93
118
|
def _normalize_timeout(cls, timeout: int | str | None) -> int:
|
|
94
119
|
if timeout is None:
|
|
@@ -451,7 +451,7 @@ class DocumentImage(Base):
|
|
|
451
451
|
__tablename__ = 'iat_document_images'
|
|
452
452
|
|
|
453
453
|
id = Column(Integer, primary_key=True, autoincrement=True)
|
|
454
|
-
document_id = Column(Integer, ForeignKey(f'{ORM_SCHEMA}.iat_documents.id', ondelete='CASCADE'), nullable=False)
|
|
454
|
+
document_id = Column(Integer, ForeignKey(f'{ORM_SCHEMA}.iat_documents.id', ondelete='CASCADE'), nullable=False, index=True)
|
|
455
455
|
|
|
456
456
|
page = Column(Integer, nullable=True)
|
|
457
457
|
image_index = Column(Integer, nullable=True)
|
|
@@ -612,7 +612,7 @@ class VSDoc(Base):
|
|
|
612
612
|
company_id = Column(Integer, ForeignKey(f'{ORM_SCHEMA}.iat_companies.id',
|
|
613
613
|
ondelete='CASCADE'), nullable=False)
|
|
614
614
|
document_id = Column(Integer, ForeignKey(f'{ORM_SCHEMA}.iat_documents.id',
|
|
615
|
-
ondelete='CASCADE'), nullable=False)
|
|
615
|
+
ondelete='CASCADE'), nullable=False, index=True)
|
|
616
616
|
text = Column(Text, nullable=False)
|
|
617
617
|
meta = Column(JSON_NATIVE, nullable=True)
|
|
618
618
|
|
|
@@ -632,7 +632,7 @@ class VSImage(Base):
|
|
|
632
632
|
company_id = Column(Integer, ForeignKey(f'{ORM_SCHEMA}.iat_companies.id',
|
|
633
633
|
ondelete='CASCADE'), nullable=False)
|
|
634
634
|
document_image_id = Column(Integer, ForeignKey(f'{ORM_SCHEMA}.iat_document_images.id',
|
|
635
|
-
ondelete='CASCADE'), nullable=False)
|
|
635
|
+
ondelete='CASCADE'), nullable=False, index=True)
|
|
636
636
|
|
|
637
637
|
# Vector dimension depends on the multimodal model (e.g., CLIP uses 512 or 768)
|
|
638
638
|
embedding = Column(Vector, nullable=False)
|
|
@@ -13,6 +13,7 @@ from iatoolkit.services.structured_output_service import StructuredOutputService
|
|
|
13
13
|
from injector import inject
|
|
14
14
|
import logging
|
|
15
15
|
import os
|
|
16
|
+
import re
|
|
16
17
|
from urllib.parse import urlparse
|
|
17
18
|
|
|
18
19
|
|
|
@@ -1472,30 +1473,23 @@ class ConfigurationService:
|
|
|
1472
1473
|
"""
|
|
1473
1474
|
main_config_filename = "company.yaml"
|
|
1474
1475
|
|
|
1476
|
+
# Requests carry the tenant in the URL, so anything on the internet can ask this
|
|
1477
|
+
# service to load a configuration for a name of its choosing. A scanner walking a
|
|
1478
|
+
# wordlist of leaked-secret filenames (.env.json, .env.backup1, ...) reached here
|
|
1479
|
+
# through the language before_request hook: every probe logged a warning about a
|
|
1480
|
+
# missing company.yaml and left an entry in _loaded_configs keyed by its own input.
|
|
1481
|
+
if not self._is_well_formed_company_short_name(company_short_name):
|
|
1482
|
+
logging.debug("Ignoring configuration request for malformed tenant name: %r", company_short_name)
|
|
1483
|
+
return self._minimal_configuration(company_short_name)
|
|
1484
|
+
|
|
1475
1485
|
# verify existence of the main configuration file
|
|
1476
1486
|
if not self.asset_repo.exists(company_short_name, AssetType.CONFIG, main_config_filename):
|
|
1477
|
-
logging.warning(
|
|
1478
|
-
|
|
1479
|
-
|
|
1480
|
-
|
|
1481
|
-
|
|
1482
|
-
|
|
1483
|
-
return {
|
|
1484
|
-
'id': company_short_name,
|
|
1485
|
-
'name': company_short_name,
|
|
1486
|
-
'llm': {'model': 'gpt-5', 'provider_api_keys': {'openai': ''}},
|
|
1487
|
-
'data_sources': {'sql': []},
|
|
1488
|
-
'tools': [],
|
|
1489
|
-
'prompts': {'prompt_categories': [], 'prompt_list': []},
|
|
1490
|
-
'branding': {},
|
|
1491
|
-
'onboarding_cards': [],
|
|
1492
|
-
'help_content': {
|
|
1493
|
-
'example_questions': [],
|
|
1494
|
-
'data_sources': [],
|
|
1495
|
-
'best_practices': [],
|
|
1496
|
-
'capabilities': {'can_do': [], 'cannot_do': []},
|
|
1497
|
-
},
|
|
1498
|
-
}
|
|
1487
|
+
logging.warning(
|
|
1488
|
+
"Main configuration file not found for company '%s': %s",
|
|
1489
|
+
company_short_name,
|
|
1490
|
+
main_config_filename,
|
|
1491
|
+
)
|
|
1492
|
+
return self._minimal_configuration(company_short_name)
|
|
1499
1493
|
|
|
1500
1494
|
# read text and parse
|
|
1501
1495
|
yaml_content = self.asset_repo.read_text(company_short_name, AssetType.CONFIG, main_config_filename)
|
|
@@ -1514,6 +1508,41 @@ class ConfigurationService:
|
|
|
1514
1508
|
|
|
1515
1509
|
return config
|
|
1516
1510
|
|
|
1511
|
+
#: A tenant short name as the platform issues them. Anything else is not a tenant that
|
|
1512
|
+
#: could exist, so it is rejected before it reaches the asset repository or the cache.
|
|
1513
|
+
COMPANY_SHORT_NAME_RE = re.compile(r"^[a-z0-9][a-z0-9_-]{0,62}$")
|
|
1514
|
+
|
|
1515
|
+
@classmethod
|
|
1516
|
+
def _is_well_formed_company_short_name(cls, company_short_name) -> bool:
|
|
1517
|
+
# Normalized the way the platform itself normalizes a tenant before looking it up,
|
|
1518
|
+
# so a caller passing a name with padding or casing is not treated as hostile.
|
|
1519
|
+
normalized = str(company_short_name or "").strip().lower()
|
|
1520
|
+
return bool(cls.COMPANY_SHORT_NAME_RE.match(normalized))
|
|
1521
|
+
|
|
1522
|
+
@staticmethod
|
|
1523
|
+
def _minimal_configuration(company_short_name: str) -> dict:
|
|
1524
|
+
"""The smallest configuration that still lets IAToolkit boot.
|
|
1525
|
+
|
|
1526
|
+
Solves a chicken/egg problem when migrating configuration from the filesystem to
|
|
1527
|
+
the database in an enterprise installation - see the create_assets CLI command.
|
|
1528
|
+
"""
|
|
1529
|
+
return {
|
|
1530
|
+
'id': company_short_name,
|
|
1531
|
+
'name': company_short_name,
|
|
1532
|
+
'llm': {'model': 'gpt-5', 'provider_api_keys': {'openai': ''}},
|
|
1533
|
+
'data_sources': {'sql': []},
|
|
1534
|
+
'tools': [],
|
|
1535
|
+
'prompts': {'prompt_categories': [], 'prompt_list': []},
|
|
1536
|
+
'branding': {},
|
|
1537
|
+
'onboarding_cards': [],
|
|
1538
|
+
'help_content': {
|
|
1539
|
+
'example_questions': [],
|
|
1540
|
+
'data_sources': [],
|
|
1541
|
+
'best_practices': [],
|
|
1542
|
+
'capabilities': {'can_do': [], 'cannot_do': []},
|
|
1543
|
+
},
|
|
1544
|
+
}
|
|
1545
|
+
|
|
1517
1546
|
def _get_prompt_config(self, config):
|
|
1518
1547
|
prompts_config = config.get('prompts', {})
|
|
1519
1548
|
if isinstance(prompts_config, dict):
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: iatoolkit
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.51.0
|
|
4
4
|
Summary: IAToolkit
|
|
5
5
|
Author: Fernando Libedinsky
|
|
6
6
|
License-Expression: MIT
|
|
7
|
-
Requires-Python: >=3.
|
|
7
|
+
Requires-Python: >=3.13
|
|
8
8
|
Description-Content-Type: text/markdown
|
|
9
9
|
License-File: LICENSE
|
|
10
10
|
License-File: LICENSE_COMMUNITY.md
|
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
bcrypt==4.2.1
|
|
2
|
-
anthropic>=0.83.0
|
|
3
|
-
boto3==1.43.10
|
|
4
|
-
botocore==1.43.10
|
|
5
|
-
braintrust>=0.17.0
|
|
6
|
-
build==1.2.2.post1
|
|
7
|
-
click==8.1.8
|
|
8
|
-
cryptography==44.0.3
|
|
9
|
-
Flask==3.1.0
|
|
10
|
-
Flask-Bcrypt==1.0.1
|
|
11
|
-
flask-cors==6.0.0
|
|
12
|
-
Flask-Injector==0.15.0
|
|
13
|
-
Flask-Session==0.8.0
|
|
14
|
-
flatbuffers==24.3.25
|
|
15
|
-
gevent==25.9.1
|
|
16
|
-
google-ai-generativelanguage==0.6.15
|
|
17
|
-
google-api-core==2.24.1
|
|
18
|
-
google-api-python-client==2.161.0
|
|
19
|
-
google-auth>=2.46.0
|
|
20
|
-
google-auth-httplib2==0.2.0
|
|
21
|
-
google-auth-oauthlib==1.2.1
|
|
22
|
-
google-cloud-core==2.4.1
|
|
23
|
-
google-cloud-storage==3.0.0
|
|
24
|
-
# 1.6.0 publishes no cp313 wheel. This was the only pin in the whole
|
|
25
|
-
# dependency set that Python 3.13 required moving.
|
|
26
|
-
google-crc32c==1.8.0
|
|
27
|
-
google-genai==1.57.0
|
|
28
|
-
google-resumable-media==2.7.2
|
|
29
|
-
googleapis-common-protos==1.66.0
|
|
30
|
-
gunicorn==23.0.0
|
|
31
|
-
h11==0.14.0
|
|
32
|
-
httpcore==1.0.7
|
|
33
|
-
httplib2==0.22.0
|
|
34
|
-
httptools==0.6.4
|
|
35
|
-
httpx>=0.28.1,<1.0.0
|
|
36
|
-
httpx-sse==0.4.0
|
|
37
|
-
huggingface-hub>=0.16.4
|
|
38
|
-
humanfriendly==10.0
|
|
39
|
-
idna==3.10
|
|
40
|
-
injector==0.22.0
|
|
41
|
-
Jinja2==3.1.5
|
|
42
|
-
langchain==0.3.19
|
|
43
|
-
langchain-core==0.3.35
|
|
44
|
-
langchain-text-splitters==0.3.6
|
|
45
|
-
markdown2==2.5.3
|
|
46
|
-
nh3==0.3.7
|
|
47
|
-
openai==2.8.1
|
|
48
|
-
openpyxl==3.1.5
|
|
49
|
-
pandas==2.3.1
|
|
50
|
-
pgvector==0.3.6
|
|
51
|
-
pillow==11.0.0
|
|
52
|
-
psutil==7.0.0
|
|
53
|
-
psycogreen==1.0.2
|
|
54
|
-
psycopg2-binary==2.9.10
|
|
55
|
-
PyMySQL==1.1.1
|
|
56
|
-
PyJWT==2.10.1
|
|
57
|
-
PyMuPDF==1.25.0
|
|
58
|
-
python-dotenv==1.0.1
|
|
59
|
-
pytest==8.3.4
|
|
60
|
-
pytest-cov==5.0.0
|
|
61
|
-
pytest-mock==3.14.0
|
|
62
|
-
python-dateutil==2.9.0.post0
|
|
63
|
-
python-docx==1.1.2
|
|
64
|
-
pytz==2025.2
|
|
65
|
-
PyYAML==6.0.2
|
|
66
|
-
redis==5.2.1
|
|
67
|
-
regex==2024.11.6
|
|
68
|
-
requests==2.32.3
|
|
69
|
-
requests-oauthlib==2.0.0
|
|
70
|
-
requests-toolbelt==1.0.0
|
|
71
|
-
s3transfer==0.17.0
|
|
72
|
-
sib-api-v3-sdk==7.6.0
|
|
73
|
-
SQLAlchemy==2.0.49
|
|
74
|
-
sqlalchemy-redshift==1.0.0
|
|
75
|
-
redshift_connector==2.1.14
|
|
76
|
-
tiktoken==0.8.0
|
|
77
|
-
tokenizers>=0.22.0
|
|
78
|
-
websocket-client==1.8.0
|
|
79
|
-
websockets==14.1
|
|
80
|
-
Werkzeug==3.1.3
|
|
81
|
-
pyjwt[crypto]>=2.8.0
|
|
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.50.2 → iatoolkit-2.51.0}/src/iatoolkit/common/interfaces/memory_compilation_trigger.py
RENAMED
|
File without changes
|
{iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/common/interfaces/memory_lint_trigger.py
RENAMED
|
File without changes
|
|
File without changes
|
{iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/common/interfaces/signup_policy_resolver.py
RENAMED
|
File without changes
|
{iatoolkit-2.50.2 → iatoolkit-2.51.0}/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.50.2 → iatoolkit-2.51.0}/src/iatoolkit/config/system_prompts/chat_state_rules.prompt
RENAMED
|
File without changes
|
{iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/config/system_prompts/chat_user_profile.prompt
RENAMED
|
File without changes
|
{iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/config/system_prompts/core_identity.prompt
RENAMED
|
File without changes
|
{iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/config/system_prompts/email_output.prompt
RENAMED
|
File without changes
|
|
File without changes
|
{iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/config/system_prompts/format_styles.prompt
RENAMED
|
File without changes
|
{iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/config/system_prompts/html_structures.prompt
RENAMED
|
File without changes
|
{iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/config/system_prompts/links_documents.prompt
RENAMED
|
File without changes
|
{iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/config/system_prompts/memory_usage.prompt
RENAMED
|
File without changes
|
{iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/config/system_prompts/multimodal_basics.prompt
RENAMED
|
File without changes
|
{iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/config/system_prompts/output_basics.prompt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/config/system_prompts/sql_casting.prompt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/config/system_prompts/sql_mysql_casting.prompt
RENAMED
|
File without changes
|
{iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/config/system_prompts/sql_mysql_json.prompt
RENAMED
|
File without changes
|
{iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/config/system_prompts/sql_redshift_basics.prompt
RENAMED
|
File without changes
|
{iatoolkit-2.50.2 → iatoolkit-2.51.0}/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
|
|
File without changes
|
|
File without changes
|
{iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/infra/connectors/file_connector_factory.py
RENAMED
|
File without changes
|
|
File without changes
|
{iatoolkit-2.50.2 → iatoolkit-2.51.0}/src/iatoolkit/infra/connectors/google_drive_connector.py
RENAMED
|
File without changes
|
{iatoolkit-2.50.2 → iatoolkit-2.51.0}/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.50.2 → iatoolkit-2.51.0}/src/iatoolkit/infra/llm_providers/anthropic_adapter.py
RENAMED
|
File without changes
|