iatoolkit 2.2.2__tar.gz → 2.2.4__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.2.2/src/iatoolkit.egg-info → iatoolkit-2.2.4}/PKG-INFO +1 -1
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/__init__.py +1 -1
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/config/llm_capabilities.yaml +2 -2
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/infra/llm_proxy.py +178 -10
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/locales/en.yaml +19 -3
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/locales/es.yaml +19 -3
- {iatoolkit-2.2.2 → iatoolkit-2.2.4/src/iatoolkit.egg-info}/PKG-INFO +1 -1
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/LICENSE +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/LICENSE_COMMUNITY.md +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/pyproject.toml +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/readme.md +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/requirements.txt +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/setup.cfg +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/base_company.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/cli_commands.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/common/__init__.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/common/exceptions.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/common/interfaces/__init__.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/common/interfaces/asset_storage.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/common/interfaces/database_provider.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/common/interfaces/memory_compilation_trigger.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/common/interfaces/memory_lint_trigger.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/common/interfaces/secret_provider.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/common/interfaces/signup_policy_resolver.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/common/interfaces/web_search_provider.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/common/model_registry.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/common/routes.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/common/secret_resolver.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/common/session_manager.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/common/util.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/company_registry.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/config/__init__.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/config/system_prompts_pack.yaml +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/config/system_tools_pack.yaml +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/core.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/infra/__init__.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/infra/brevo_mail_app.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/infra/call_service.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/infra/connectors/__init__.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/infra/connectors/file_connector.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/infra/connectors/file_connector_factory.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/infra/connectors/google_cloud_storage_connector.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/infra/connectors/google_drive_connector.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/infra/connectors/local_file_connector.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/infra/connectors/s3_connector.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/infra/google_auth_client.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/infra/google_chat_app.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/infra/inference_embeddings_client.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/infra/inference_handler.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/infra/jina_embeddings_client.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/infra/llm_providers/__init__.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/infra/llm_providers/anthropic_adapter.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/infra/llm_providers/deepseek_adapter.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/infra/llm_providers/gemini_adapter.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/infra/llm_providers/openai_adapter.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/infra/llm_providers/openai_compatible_chat_adapter.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/infra/llm_response.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/infra/redis_session_manager.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/repositories/__init__.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/repositories/api_key_repo.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/repositories/database_manager.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/repositories/document_repo.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/repositories/env_secret_provider.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/repositories/filesystem_asset_repository.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/repositories/llm_query_repo.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/repositories/memory_repo.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/repositories/models.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/repositories/profile_repo.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/repositories/sql_dataset_repo.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/repositories/sql_source_repo.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/repositories/vs_repo.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/services/__init__.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/services/api_key_service.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/services/attachment_policy_service.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/services/auth_service.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/services/benchmark_service.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/services/branding_service.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/services/company_context_service.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/services/configuration_service.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/services/context_builder_service.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/services/dispatcher_service.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/services/embedding_service.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/services/excel_service.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/services/file_processor_service.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/services/history_manager_service.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/services/http_tool_service.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/services/i18n_service.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/services/inference_service.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/services/jwt_service.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/services/knowledge_base_service.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/services/language_service.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/services/license_service.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/services/llm_client_service.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/services/mail_service.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/services/memory_compiler_service.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/services/memory_lint_service.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/services/memory_lookup_policy_service.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/services/memory_service.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/services/memory_wiki_service.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/services/noop_memory_compilation_trigger.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/services/noop_memory_lint_trigger.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/services/parsers/__init__.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/services/parsers/contracts.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/services/parsers/image_normalizer.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/services/parsers/parsing_service.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/services/parsers/pdf_ocr_detection.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/services/parsers/provider_factory.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/services/parsers/provider_resolver.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/services/parsers/providers/__init__.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/services/parsers/providers/basic_provider.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/services/parsers/providers/docling_provider.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/services/parsers/validator.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/services/pdf_service.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/services/profile_service.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/services/prompt_service.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/services/query_service.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/services/signup_policy_resolver.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/services/sql_dataset_service.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/services/sql_service.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/services/sql_source_service.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/services/storage_service.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/services/structured_output_service.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/services/system_prompt_catalog.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/services/system_tools.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/services/tool_service.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/services/user_feedback_service.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/services/user_session_context_service.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/services/visual_kb_service.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/services/visual_tool_service.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/services/warmup_service.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/services/web_search/__init__.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/services/web_search/provider_factory.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/services/web_search/providers/__init__.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/services/web_search/providers/brave_provider.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/services/web_search_service.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/static/images/fernando.jpeg +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/static/images/iatoolkit_core.png +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/static/images/iatoolkit_logo.png +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/static/js/chat_feedback_button.js +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/static/js/chat_filepond.js +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/static/js/chat_help_content.js +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/static/js/chat_history_button.js +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/static/js/chat_logout_button.js +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/static/js/chat_main.js +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/static/js/chat_memory_button.js +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/static/js/chat_model_selector.js +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/static/js/chat_onboarding_button.js +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/static/js/chat_prompt_manager.js +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/static/js/chat_reload_button.js +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/static/styles/chat_iatoolkit.css +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/static/styles/chat_modal.css +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/static/styles/chat_public.css +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/static/styles/documents.css +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/static/styles/landing_page.css +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/static/styles/llm_output.css +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/static/styles/onboarding.css +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/system_prompts/__init__.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/system_prompts/format_styles.prompt +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/system_prompts/query_main.prompt +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/system_prompts/sql_rules.prompt +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/templates/_company_header.html +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/templates/_login_widget.html +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/templates/base.html +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/templates/change_password.html +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/templates/chat.html +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/templates/chat_memory_modal.html +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/templates/chat_modals.html +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/templates/error.html +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/templates/forgot_password.html +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/templates/home_hosted_default.html +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/templates/memory/wiki_schema.md +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/templates/onboarding_shell.html +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/templates/pdf/base.html +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/templates/pdf/letter.html +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/templates/pdf/report.html +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/templates/pdf/simple.html +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/templates/signup.html +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/views/__init__.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/views/api_key_api_view.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/views/base_login_view.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/views/categories_api_view.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/views/change_password_view.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/views/chat_view.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/views/configuration_api_view.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/views/connectors_api_view.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/views/embedding_api_view.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/views/forgot_password_view.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/views/help_content_api_view.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/views/history_api_view.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/views/home_view.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/views/init_context_api_view.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/views/llmquery_api_view.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/views/load_document_api_view.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/views/login_view.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/views/logout_api_view.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/views/memory_api_view.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/views/profile_api_view.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/views/prompt_api_view.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/views/rag_api_view.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/views/root_redirect_view.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/views/signup_view.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/views/static_page_view.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/views/tool_api_view.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/views/user_feedback_api_view.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/views/users_api_view.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/views/verify_user_view.py +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit.egg-info/SOURCES.txt +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit.egg-info/dependency_links.txt +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit.egg-info/requires.txt +0 -0
- {iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit.egg-info/top_level.txt +0 -0
|
@@ -16,7 +16,7 @@ from iatoolkit.common.model_registry import ModelRegistry
|
|
|
16
16
|
from iatoolkit.common.interfaces.secret_provider import SecretProvider
|
|
17
17
|
from iatoolkit.common.secret_resolver import resolve_secret
|
|
18
18
|
|
|
19
|
-
from openai import OpenAI # For OpenAI and xAI (OpenAI-compatible)
|
|
19
|
+
from openai import OpenAI, Timeout # For OpenAI and xAI (OpenAI-compatible)
|
|
20
20
|
|
|
21
21
|
from typing import Dict, List, Any, Tuple
|
|
22
22
|
import threading
|
|
@@ -29,7 +29,7 @@ class LLMProxy:
|
|
|
29
29
|
"""
|
|
30
30
|
|
|
31
31
|
# Class-level cache for low-level clients (per provider + API key)
|
|
32
|
-
_clients_cache: Dict[Tuple[
|
|
32
|
+
_clients_cache: Dict[Tuple[Any, ...], Any] = {}
|
|
33
33
|
_clients_cache_lock = threading.Lock()
|
|
34
34
|
|
|
35
35
|
# Provider identifiers
|
|
@@ -39,6 +39,9 @@ class LLMProxy:
|
|
|
39
39
|
PROVIDER_XAI = "xai"
|
|
40
40
|
PROVIDER_ANTHROPIC = "anthropic"
|
|
41
41
|
PROVIDER_OPENAI_COMPATIBLE = "openai_compatible"
|
|
42
|
+
DEFAULT_CONNECT_TIMEOUT_SECONDS = 10.0
|
|
43
|
+
DEFAULT_READ_TIMEOUT_SECONDS = 300.0
|
|
44
|
+
DEFAULT_MAX_RETRIES = 0
|
|
42
45
|
|
|
43
46
|
@inject
|
|
44
47
|
def __init__(
|
|
@@ -58,7 +61,7 @@ class LLMProxy:
|
|
|
58
61
|
self.secret_provider = secret_provider
|
|
59
62
|
|
|
60
63
|
# adapter cache by (provider, api_key, base_url)
|
|
61
|
-
self.adapters: Dict[Tuple[
|
|
64
|
+
self.adapters: Dict[Tuple[Any, ...], Any] = {}
|
|
62
65
|
|
|
63
66
|
# -------------------------------------------------------------------------
|
|
64
67
|
# Public API
|
|
@@ -142,14 +145,31 @@ class LLMProxy:
|
|
|
142
145
|
client_config = self._get_client_config(company_short_name, provider)
|
|
143
146
|
api_key = client_config["api_key"]
|
|
144
147
|
base_url = client_config.get("base_url") or ""
|
|
145
|
-
|
|
148
|
+
connect_timeout_seconds = client_config["connect_timeout_seconds"]
|
|
149
|
+
read_timeout_seconds = client_config["read_timeout_seconds"]
|
|
150
|
+
max_retries = client_config["max_retries"]
|
|
151
|
+
adapter_cache_key = (
|
|
152
|
+
provider,
|
|
153
|
+
api_key or "",
|
|
154
|
+
base_url,
|
|
155
|
+
connect_timeout_seconds,
|
|
156
|
+
read_timeout_seconds,
|
|
157
|
+
max_retries,
|
|
158
|
+
)
|
|
146
159
|
|
|
147
160
|
# If already created for this provider+key, just return it
|
|
148
161
|
if adapter_cache_key in self.adapters and self.adapters[adapter_cache_key] is not None:
|
|
149
162
|
return self.adapters[adapter_cache_key]
|
|
150
163
|
|
|
151
164
|
# Otherwise, create low-level client from configuration
|
|
152
|
-
client = self._get_or_create_client(
|
|
165
|
+
client = self._get_or_create_client(
|
|
166
|
+
provider,
|
|
167
|
+
api_key,
|
|
168
|
+
base_url=base_url,
|
|
169
|
+
connect_timeout_seconds=connect_timeout_seconds,
|
|
170
|
+
read_timeout_seconds=read_timeout_seconds,
|
|
171
|
+
max_retries=max_retries,
|
|
172
|
+
)
|
|
153
173
|
|
|
154
174
|
# Wrap client with the correct adapter
|
|
155
175
|
if provider == self.PROVIDER_OPENAI:
|
|
@@ -194,35 +214,90 @@ class LLMProxy:
|
|
|
194
214
|
# Client cache
|
|
195
215
|
# -------------------------------------------------------------------------
|
|
196
216
|
|
|
197
|
-
def _get_or_create_client(
|
|
217
|
+
def _get_or_create_client(
|
|
218
|
+
self,
|
|
219
|
+
provider: str,
|
|
220
|
+
api_key: str,
|
|
221
|
+
base_url: str = "",
|
|
222
|
+
*,
|
|
223
|
+
connect_timeout_seconds: float | None = None,
|
|
224
|
+
read_timeout_seconds: float | None = None,
|
|
225
|
+
max_retries: int | None = None,
|
|
226
|
+
) -> Any:
|
|
198
227
|
"""
|
|
199
228
|
Return a low-level client for the given provider and API key.
|
|
200
229
|
Uses a class-level cache to avoid recreating clients.
|
|
201
230
|
"""
|
|
202
|
-
|
|
231
|
+
connect_timeout_seconds = self._normalize_positive_float(
|
|
232
|
+
connect_timeout_seconds,
|
|
233
|
+
self.DEFAULT_CONNECT_TIMEOUT_SECONDS,
|
|
234
|
+
)
|
|
235
|
+
read_timeout_seconds = self._normalize_positive_float(
|
|
236
|
+
read_timeout_seconds,
|
|
237
|
+
self.DEFAULT_READ_TIMEOUT_SECONDS,
|
|
238
|
+
)
|
|
239
|
+
max_retries = self._normalize_non_negative_int(
|
|
240
|
+
max_retries,
|
|
241
|
+
self.DEFAULT_MAX_RETRIES,
|
|
242
|
+
)
|
|
243
|
+
cache_key = (
|
|
244
|
+
provider,
|
|
245
|
+
api_key or "",
|
|
246
|
+
base_url or "",
|
|
247
|
+
connect_timeout_seconds,
|
|
248
|
+
read_timeout_seconds,
|
|
249
|
+
max_retries,
|
|
250
|
+
)
|
|
203
251
|
|
|
204
252
|
with self._clients_cache_lock:
|
|
205
253
|
if cache_key in self._clients_cache:
|
|
206
254
|
return self._clients_cache[cache_key]
|
|
207
255
|
|
|
208
|
-
client = self._create_client_for_provider(
|
|
256
|
+
client = self._create_client_for_provider(
|
|
257
|
+
provider,
|
|
258
|
+
api_key,
|
|
259
|
+
base_url=base_url,
|
|
260
|
+
connect_timeout_seconds=connect_timeout_seconds,
|
|
261
|
+
read_timeout_seconds=read_timeout_seconds,
|
|
262
|
+
max_retries=max_retries,
|
|
263
|
+
)
|
|
209
264
|
self._clients_cache[cache_key] = client
|
|
210
265
|
return client
|
|
211
266
|
|
|
212
|
-
def _create_client_for_provider(
|
|
267
|
+
def _create_client_for_provider(
|
|
268
|
+
self,
|
|
269
|
+
provider: str,
|
|
270
|
+
api_key: str,
|
|
271
|
+
base_url: str = "",
|
|
272
|
+
*,
|
|
273
|
+
connect_timeout_seconds: float | None = None,
|
|
274
|
+
read_timeout_seconds: float | None = None,
|
|
275
|
+
max_retries: int | None = None,
|
|
276
|
+
) -> Any:
|
|
213
277
|
"""
|
|
214
278
|
Actually create the low-level client for a provider.
|
|
215
279
|
This is the only place where provider-specific client construction lives.
|
|
216
280
|
"""
|
|
281
|
+
timeout = self._build_openai_timeout(
|
|
282
|
+
connect_timeout_seconds=connect_timeout_seconds,
|
|
283
|
+
read_timeout_seconds=read_timeout_seconds,
|
|
284
|
+
)
|
|
285
|
+
max_retries = self._normalize_non_negative_int(
|
|
286
|
+
max_retries,
|
|
287
|
+
self.DEFAULT_MAX_RETRIES,
|
|
288
|
+
)
|
|
289
|
+
|
|
217
290
|
if provider == self.PROVIDER_OPENAI:
|
|
218
291
|
# Standard OpenAI client for GPT models
|
|
219
|
-
return OpenAI(api_key=api_key)
|
|
292
|
+
return OpenAI(api_key=api_key, timeout=timeout, max_retries=max_retries)
|
|
220
293
|
|
|
221
294
|
if provider == self.PROVIDER_XAI:
|
|
222
295
|
# xAI Grok is OpenAI-compatible; we can use the OpenAI client with a different base_url.
|
|
223
296
|
return OpenAI(
|
|
224
297
|
api_key=api_key,
|
|
225
298
|
base_url="https://api.x.ai/v1",
|
|
299
|
+
timeout=timeout,
|
|
300
|
+
max_retries=max_retries,
|
|
226
301
|
)
|
|
227
302
|
|
|
228
303
|
if provider == self.PROVIDER_DEEPSEEK:
|
|
@@ -233,6 +308,8 @@ class LLMProxy:
|
|
|
233
308
|
return OpenAI(
|
|
234
309
|
api_key=api_key,
|
|
235
310
|
base_url="https://api.deepseek.com",
|
|
311
|
+
timeout=timeout,
|
|
312
|
+
max_retries=max_retries,
|
|
236
313
|
)
|
|
237
314
|
|
|
238
315
|
if provider == self.PROVIDER_OPENAI_COMPATIBLE:
|
|
@@ -244,6 +321,8 @@ class LLMProxy:
|
|
|
244
321
|
return OpenAI(
|
|
245
322
|
api_key=api_key,
|
|
246
323
|
base_url=base_url,
|
|
324
|
+
timeout=timeout,
|
|
325
|
+
max_retries=max_retries,
|
|
247
326
|
)
|
|
248
327
|
|
|
249
328
|
if provider == self.PROVIDER_GEMINI:
|
|
@@ -270,11 +349,100 @@ class LLMProxy:
|
|
|
270
349
|
)
|
|
271
350
|
|
|
272
351
|
def _get_client_config(self, company_short_name: str, provider: str) -> dict:
|
|
352
|
+
provider_config = self.configuration_service.get_llm_provider_config(company_short_name, provider) or {}
|
|
273
353
|
return {
|
|
274
354
|
"api_key": self._get_api_key_from_config(company_short_name, provider),
|
|
275
355
|
"base_url": self._get_base_url_from_config(company_short_name, provider),
|
|
356
|
+
"connect_timeout_seconds": self._resolve_provider_float(
|
|
357
|
+
provider_config,
|
|
358
|
+
("connect_timeout_seconds",),
|
|
359
|
+
self.DEFAULT_CONNECT_TIMEOUT_SECONDS,
|
|
360
|
+
minimum=0.1,
|
|
361
|
+
),
|
|
362
|
+
"read_timeout_seconds": self._resolve_provider_float(
|
|
363
|
+
provider_config,
|
|
364
|
+
("read_timeout_seconds", "request_timeout_seconds", "timeout_seconds"),
|
|
365
|
+
self.DEFAULT_READ_TIMEOUT_SECONDS,
|
|
366
|
+
minimum=0.1,
|
|
367
|
+
),
|
|
368
|
+
"max_retries": self._resolve_provider_int(
|
|
369
|
+
provider_config,
|
|
370
|
+
("max_retries",),
|
|
371
|
+
self.DEFAULT_MAX_RETRIES,
|
|
372
|
+
minimum=0,
|
|
373
|
+
),
|
|
276
374
|
}
|
|
277
375
|
|
|
376
|
+
@classmethod
|
|
377
|
+
def _build_openai_timeout(
|
|
378
|
+
cls,
|
|
379
|
+
*,
|
|
380
|
+
connect_timeout_seconds: float | None,
|
|
381
|
+
read_timeout_seconds: float | None,
|
|
382
|
+
) -> Timeout:
|
|
383
|
+
connect_timeout_seconds = cls._normalize_positive_float(
|
|
384
|
+
connect_timeout_seconds,
|
|
385
|
+
cls.DEFAULT_CONNECT_TIMEOUT_SECONDS,
|
|
386
|
+
)
|
|
387
|
+
read_timeout_seconds = cls._normalize_positive_float(
|
|
388
|
+
read_timeout_seconds,
|
|
389
|
+
cls.DEFAULT_READ_TIMEOUT_SECONDS,
|
|
390
|
+
)
|
|
391
|
+
return Timeout(
|
|
392
|
+
connect=connect_timeout_seconds,
|
|
393
|
+
read=read_timeout_seconds,
|
|
394
|
+
write=read_timeout_seconds,
|
|
395
|
+
pool=read_timeout_seconds,
|
|
396
|
+
)
|
|
397
|
+
|
|
398
|
+
@classmethod
|
|
399
|
+
def _resolve_provider_float(
|
|
400
|
+
cls,
|
|
401
|
+
provider_config: Dict[str, Any],
|
|
402
|
+
keys: tuple[str, ...],
|
|
403
|
+
default: float,
|
|
404
|
+
*,
|
|
405
|
+
minimum: float,
|
|
406
|
+
) -> float:
|
|
407
|
+
for key in keys:
|
|
408
|
+
if key in provider_config:
|
|
409
|
+
return cls._normalize_positive_float(provider_config.get(key), default, minimum=minimum)
|
|
410
|
+
return cls._normalize_positive_float(default, default, minimum=minimum)
|
|
411
|
+
|
|
412
|
+
@classmethod
|
|
413
|
+
def _resolve_provider_int(
|
|
414
|
+
cls,
|
|
415
|
+
provider_config: Dict[str, Any],
|
|
416
|
+
keys: tuple[str, ...],
|
|
417
|
+
default: int,
|
|
418
|
+
*,
|
|
419
|
+
minimum: int,
|
|
420
|
+
) -> int:
|
|
421
|
+
for key in keys:
|
|
422
|
+
if key in provider_config:
|
|
423
|
+
return cls._normalize_non_negative_int(provider_config.get(key), default, minimum=minimum)
|
|
424
|
+
return cls._normalize_non_negative_int(default, default, minimum=minimum)
|
|
425
|
+
|
|
426
|
+
@staticmethod
|
|
427
|
+
def _normalize_positive_float(value, default: float, *, minimum: float = 0.1) -> float:
|
|
428
|
+
try:
|
|
429
|
+
parsed = float(value)
|
|
430
|
+
if parsed >= minimum:
|
|
431
|
+
return parsed
|
|
432
|
+
except (TypeError, ValueError):
|
|
433
|
+
pass
|
|
434
|
+
return float(default)
|
|
435
|
+
|
|
436
|
+
@staticmethod
|
|
437
|
+
def _normalize_non_negative_int(value, default: int, *, minimum: int = 0) -> int:
|
|
438
|
+
try:
|
|
439
|
+
parsed = int(value)
|
|
440
|
+
if parsed >= minimum:
|
|
441
|
+
return parsed
|
|
442
|
+
except (TypeError, ValueError):
|
|
443
|
+
pass
|
|
444
|
+
return int(default)
|
|
445
|
+
|
|
278
446
|
# -------------------------------------------------------------------------
|
|
279
447
|
# Configuration helpers
|
|
280
448
|
# -------------------------------------------------------------------------
|
|
@@ -45,6 +45,11 @@ ui:
|
|
|
45
45
|
tool_router_top_n: "Top N"
|
|
46
46
|
tool_router_min_confidence: "Min confidence"
|
|
47
47
|
tool_router_rebuild_profiles: "Rebuild Profiles"
|
|
48
|
+
task_reconciliation_eyebrow: "Task Reconciliation"
|
|
49
|
+
task_reconciliation_total: "Reconciled"
|
|
50
|
+
task_reconciliation_requeued: "Requeued"
|
|
51
|
+
task_reconciliation_normalized: "Normalized"
|
|
52
|
+
task_reconciliation_failed: "Recovered As Failed"
|
|
48
53
|
|
|
49
54
|
inspector:
|
|
50
55
|
title: "Interaction Inspector"
|
|
@@ -386,6 +391,8 @@ ui:
|
|
|
386
391
|
sources: "Sources"
|
|
387
392
|
profiles: "Processing Profiles"
|
|
388
393
|
runs: "Runs"
|
|
394
|
+
active_tasks: "Active Tasks"
|
|
395
|
+
current_task: "Current Task"
|
|
389
396
|
sources_title: "Pipeline Sources"
|
|
390
397
|
sources_description: "Connect folders or buckets and choose how each source should be processed."
|
|
391
398
|
profiles_title: "Processing Profiles"
|
|
@@ -667,6 +674,12 @@ ui:
|
|
|
667
674
|
definition_caption: "Pipeline"
|
|
668
675
|
definition_delete_ok: "Pipeline definition deleted"
|
|
669
676
|
definition_delete_failed: "Could not delete pipeline definition"
|
|
677
|
+
reset_state: "Reset pipeline state"
|
|
678
|
+
reset_state_title: "Reset pipeline state?"
|
|
679
|
+
reset_state_message: "This permanently deletes prior run inputs and artifacts for this pipeline, clears remembered processing state, and makes the next execution start from scratch."
|
|
680
|
+
reset_state_confirm: "Reset state"
|
|
681
|
+
reset_state_ok: "Pipeline state reset. The next run will start from scratch."
|
|
682
|
+
reset_state_failed: "Could not reset pipeline state"
|
|
670
683
|
execution_mode_taskless: "Taskless"
|
|
671
684
|
execution_mode_task_driven: "Task-driven"
|
|
672
685
|
import_yaml_file: "YAML file"
|
|
@@ -723,7 +736,10 @@ ui:
|
|
|
723
736
|
daily_cost: "Daily Cost"
|
|
724
737
|
usage_detail: "Usage Detail"
|
|
725
738
|
usage_by_user: "Usage by User Identifier"
|
|
726
|
-
usage_by_prompt: "Usage by
|
|
739
|
+
usage_by_prompt: "Usage by Agent"
|
|
740
|
+
usage_by_prompt_empty: "No agent usage data"
|
|
741
|
+
usage_by_prompt_meta_empty: "0 agents"
|
|
742
|
+
usage_by_prompt_meta_summary: "{count} agents · {tokens} tokens"
|
|
727
743
|
invoices: "Invoices"
|
|
728
744
|
daily_closures: "Daily Closures"
|
|
729
745
|
invoice_detail_title: "Invoice Detail"
|
|
@@ -733,7 +749,7 @@ ui:
|
|
|
733
749
|
col_date: "Date"
|
|
734
750
|
col_model: "Model"
|
|
735
751
|
col_user_identifier: "User Identifier"
|
|
736
|
-
col_prompt_name: "
|
|
752
|
+
col_prompt_name: "Agent Name"
|
|
737
753
|
col_queries: "Queries"
|
|
738
754
|
col_prompt: "Prompt"
|
|
739
755
|
col_completion: "Completion"
|
|
@@ -756,7 +772,7 @@ ui:
|
|
|
756
772
|
tab_summary: "Summary"
|
|
757
773
|
tab_usage: "Usage"
|
|
758
774
|
tab_usage_by_user: "Usage by User"
|
|
759
|
-
tab_usage_by_prompt: "Usage by
|
|
775
|
+
tab_usage_by_prompt: "Usage by Agent"
|
|
760
776
|
tab_runs: "Billing Runs"
|
|
761
777
|
tab_invoices: "Invoices"
|
|
762
778
|
tab_billing: "Billing"
|
|
@@ -46,6 +46,11 @@ ui:
|
|
|
46
46
|
tool_router_top_n: "Top N"
|
|
47
47
|
tool_router_min_confidence: "Confianza mínima"
|
|
48
48
|
tool_router_rebuild_profiles: "Reconstruir perfiles"
|
|
49
|
+
task_reconciliation_eyebrow: "Conciliación de Tareas"
|
|
50
|
+
task_reconciliation_total: "Conciliadas"
|
|
51
|
+
task_reconciliation_requeued: "Reencoladas"
|
|
52
|
+
task_reconciliation_normalized: "Normalizadas"
|
|
53
|
+
task_reconciliation_failed: "Recuperadas como fallidas"
|
|
49
54
|
|
|
50
55
|
inspector:
|
|
51
56
|
title: "Inspector de Interacción"
|
|
@@ -387,6 +392,8 @@ ui:
|
|
|
387
392
|
sources: "Fuentes"
|
|
388
393
|
profiles: "Perfiles de procesamiento"
|
|
389
394
|
runs: "Ejecuciones"
|
|
395
|
+
active_tasks: "Tareas activas"
|
|
396
|
+
current_task: "Tarea actual"
|
|
390
397
|
sources_title: "Fuentes del pipeline"
|
|
391
398
|
sources_description: "Conecta carpetas o buckets y define cómo se procesa cada fuente."
|
|
392
399
|
profiles_title: "Perfiles de procesamiento"
|
|
@@ -668,6 +675,12 @@ ui:
|
|
|
668
675
|
definition_caption: "Pipeline"
|
|
669
676
|
definition_delete_ok: "Definición de pipeline eliminada"
|
|
670
677
|
definition_delete_failed: "No se pudo eliminar la definición de pipeline"
|
|
678
|
+
reset_state: "Resetear estado del pipeline"
|
|
679
|
+
reset_state_title: "¿Resetear estado del pipeline?"
|
|
680
|
+
reset_state_message: "Esto elimina de forma permanente los inputs y artifacts de ejecuciones previas de este pipeline, limpia el estado recordado de procesamiento y hace que la próxima ejecución arranque desde cero."
|
|
681
|
+
reset_state_confirm: "Resetear estado"
|
|
682
|
+
reset_state_ok: "Se reseteó el estado del pipeline. La próxima ejecución arrancará desde cero."
|
|
683
|
+
reset_state_failed: "No se pudo resetear el estado del pipeline"
|
|
671
684
|
execution_mode_taskless: "Taskless"
|
|
672
685
|
execution_mode_task_driven: "Con tasks"
|
|
673
686
|
import_yaml_file: "Archivo YAML"
|
|
@@ -724,7 +737,10 @@ ui:
|
|
|
724
737
|
daily_cost: "Costo Diario"
|
|
725
738
|
usage_detail: "Detalle de Uso"
|
|
726
739
|
usage_by_user: "Uso por Usuario"
|
|
727
|
-
usage_by_prompt: "Uso por
|
|
740
|
+
usage_by_prompt: "Uso por Agente"
|
|
741
|
+
usage_by_prompt_empty: "No hay datos de uso por agente"
|
|
742
|
+
usage_by_prompt_meta_empty: "0 agentes"
|
|
743
|
+
usage_by_prompt_meta_summary: "{count} agentes · {tokens} tokens"
|
|
728
744
|
invoices: "Facturas"
|
|
729
745
|
daily_closures: "Cierres Diarios"
|
|
730
746
|
invoice_detail_title: "Detalle de Factura"
|
|
@@ -734,7 +750,7 @@ ui:
|
|
|
734
750
|
col_date: "Fecha"
|
|
735
751
|
col_model: "Modelo"
|
|
736
752
|
col_user_identifier: "Usuario"
|
|
737
|
-
col_prompt_name: "Nombre del
|
|
753
|
+
col_prompt_name: "Nombre del Agente"
|
|
738
754
|
col_queries: "Consultas"
|
|
739
755
|
col_prompt: "Prompt"
|
|
740
756
|
col_completion: "Respuesta"
|
|
@@ -757,7 +773,7 @@ ui:
|
|
|
757
773
|
tab_summary: "Resumen"
|
|
758
774
|
tab_usage: "Uso"
|
|
759
775
|
tab_usage_by_user: "Uso por Usuario"
|
|
760
|
-
tab_usage_by_prompt: "Uso por
|
|
776
|
+
tab_usage_by_prompt: "Uso por Agente"
|
|
761
777
|
tab_runs: "Operaciones"
|
|
762
778
|
tab_invoices: "Facturas"
|
|
763
779
|
tab_billing: "Facturación"
|
|
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.2.2 → iatoolkit-2.2.4}/src/iatoolkit/common/interfaces/memory_compilation_trigger.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/common/interfaces/signup_policy_resolver.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
|
{iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/infra/connectors/file_connector_factory.py
RENAMED
|
File without changes
|
{iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/infra/connectors/google_cloud_storage_connector.py
RENAMED
|
File without changes
|
{iatoolkit-2.2.2 → iatoolkit-2.2.4}/src/iatoolkit/infra/connectors/google_drive_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
|
|
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.2.2 → iatoolkit-2.2.4}/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
|