iatoolkit 2.56.0__tar.gz → 2.57.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.56.0/src/iatoolkit.egg-info → iatoolkit-2.57.0}/PKG-INFO +1 -1
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/__init__.py +1 -1
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/common/routes.py +13 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/infra/llm_providers/gemini_adapter.py +23 -12
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/repositories/llm_query_repo.py +8 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/repositories/models.py +10 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/services/history_manager_service.py +2 -1
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/services/llm_client_service.py +356 -137
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/services/query_service.py +11 -0
- iatoolkit-2.57.0/src/iatoolkit/static/images/favicon.ico +0 -0
- iatoolkit-2.57.0/src/iatoolkit/static/images/favicon.png +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/templates/base.html +1 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0/src/iatoolkit.egg-info}/PKG-INFO +1 -1
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit.egg-info/SOURCES.txt +2 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/LICENSE +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/LICENSE_COMMUNITY.md +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/pyproject.toml +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/readme.md +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/setup.cfg +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/base_company.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/cli_commands.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/common/__init__.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/common/bridge_validation.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/common/exceptions.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/common/interfaces/__init__.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/common/interfaces/asset_storage.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/common/interfaces/database_provider.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/common/interfaces/memory_compilation_trigger.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/common/interfaces/memory_lint_trigger.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/common/interfaces/secret_provider.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/common/interfaces/signup_policy_resolver.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/common/interfaces/web_search_provider.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/common/model_registry.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/common/secret_resolver.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/common/session_manager.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/common/text_splitter.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/common/url_safety.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/common/util.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/company_registry.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/config/__init__.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/config/llm_capabilities.yaml +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/config/system_prompts/channel_business_identity.prompt +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/config/system_prompts/channel_conversation_continuity.prompt +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/config/system_prompts/channel_response_style.prompt +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/config/system_prompts/chat_state_rules.prompt +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/config/system_prompts/chat_user_profile.prompt +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/config/system_prompts/core_identity.prompt +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/config/system_prompts/email_output.prompt +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/config/system_prompts/file_download_output.prompt +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/config/system_prompts/format_styles.prompt +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/config/system_prompts/html_structures.prompt +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/config/system_prompts/links_documents.prompt +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/config/system_prompts/memory_usage.prompt +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/config/system_prompts/multimodal_basics.prompt +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/config/system_prompts/output_basics.prompt +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/config/system_prompts/presentation_formatting.prompt +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/config/system_prompts/query_main.prompt +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/config/system_prompts/sql_aggregation_scope.prompt +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/config/system_prompts/sql_casting.prompt +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/config/system_prompts/sql_core.prompt +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/config/system_prompts/sql_jsonb.prompt +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/config/system_prompts/sql_mysql_casting.prompt +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/config/system_prompts/sql_mysql_json.prompt +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/config/system_prompts/sql_redshift_basics.prompt +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/config/system_prompts/sql_redshift_types.prompt +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/config/system_prompts/sql_rules.prompt +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/config/system_prompts/tool_html_passthrough.prompt +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/config/system_prompts_pack.yaml +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/config/system_tools_pack.yaml +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/core.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/infra/__init__.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/infra/brevo_mail_app.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/infra/call_service.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/infra/connectors/__init__.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/infra/connectors/file_connector.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/infra/connectors/file_connector_factory.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/infra/connectors/google_cloud_storage_connector.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/infra/connectors/google_drive_connector.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/infra/connectors/local_file_connector.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/infra/connectors/s3_connector.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/infra/google_auth_client.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/infra/google_chat_app.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/infra/inference_embeddings_client.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/infra/inference_handler.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/infra/jina_embeddings_client.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/infra/llm_gateway_resolver.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/infra/llm_providers/__init__.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/infra/llm_providers/anthropic_adapter.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/infra/llm_providers/deepseek_adapter.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/infra/llm_providers/openai_adapter.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/infra/llm_providers/openai_compatible_chat_adapter.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/infra/llm_providers/openrouter_adapter.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/infra/llm_proxy.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/infra/llm_response.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/infra/redis_session_manager.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/locales/en.yaml +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/locales/es.yaml +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/repositories/__init__.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/repositories/api_key_repo.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/repositories/bridge_repo.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/repositories/database_manager.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/repositories/document_repo.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/repositories/env_secret_provider.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/repositories/filesystem_asset_repository.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/repositories/knowledge_wiki_repo.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/repositories/mcp_token_repo.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/repositories/memory_repo.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/repositories/profile_repo.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/repositories/prompt_resource_repo.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/repositories/sql_dataset_repo.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/repositories/sql_source_repo.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/repositories/vs_repo.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/runtime_logging.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/services/__init__.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/services/api_key_service.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/services/attachment_policy_service.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/services/auth_service.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/services/branding_service.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/services/company_context_service.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/services/configuration_service.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/services/context_builder_service.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/services/dispatcher_service.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/services/embedding_service.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/services/excel_service.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/services/file_processor_service.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/services/http_tool_service.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/services/i18n_service.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/services/inference_service.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/services/jwt_service.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/services/knowledge_base_service.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/services/language_service.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/services/license_service.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/services/mail_service.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/services/markdown_wiki_service.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/services/mcp_token_service.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/services/memory_compiler_service.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/services/memory_lint_service.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/services/memory_lookup_policy_service.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/services/memory_service.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/services/memory_wiki_service.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/services/noop_memory_compilation_trigger.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/services/noop_memory_lint_trigger.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/services/operator_identity_service.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/services/parsers/__init__.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/services/parsers/contracts.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/services/parsers/image_normalizer.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/services/parsers/parsing_service.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/services/parsers/pdf_ocr_detection.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/services/parsers/provider_factory.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/services/parsers/provider_resolver.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/services/parsers/providers/__init__.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/services/parsers/providers/basic_provider.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/services/parsers/providers/docling_provider.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/services/parsers/validator.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/services/pdf_service.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/services/profile_service.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/services/prompt_resource_service.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/services/prompt_service.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/services/signup_policy_resolver.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/services/sql_dataset_service.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/services/sql_service.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/services/sql_source_service.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/services/storage_service.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/services/structured_output_service.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/services/system_prompt_catalog.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/services/system_tools.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/services/telemetry_service.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/services/tenant_wiki_service.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/services/tool_output_contract.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/services/tool_service.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/services/user_feedback_service.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/services/user_session_context_service.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/services/visual_kb_service.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/services/visual_tool_service.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/services/warmup_service.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/services/web_search/__init__.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/services/web_search/provider_factory.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/services/web_search/providers/__init__.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/services/web_search/providers/brave_provider.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/services/web_search_service.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/static/images/fernando.jpeg +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/static/images/iatoolkit_core.png +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/static/images/iatoolkit_logo.png +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/static/js/chat_feedback_button.js +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/static/js/chat_filepond.js +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/static/js/chat_header_navigation.js +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/static/js/chat_help_content.js +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/static/js/chat_history_button.js +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/static/js/chat_logout_button.js +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/static/js/chat_main.js +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/static/js/chat_memory_button.js +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/static/js/chat_model_selector.js +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/static/js/chat_onboarding_button.js +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/static/js/chat_prompt_manager.js +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/static/js/chat_reload_button.js +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/static/styles/account.css +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/static/styles/chat_iatoolkit.css +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/static/styles/chat_modal.css +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/static/styles/chat_public.css +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/static/styles/documents.css +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/static/styles/landing_page.css +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/static/styles/llm_output.css +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/static/styles/onboarding.css +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/templates/_chat_header.html +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/templates/_company_header.html +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/templates/_login_widget.html +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/templates/account.html +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/templates/change_password.html +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/templates/chat.html +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/templates/chat_memory_modal.html +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/templates/chat_modals.html +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/templates/error.html +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/templates/forgot_password.html +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/templates/home_hosted_default.html +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/templates/login_global.html +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/templates/memory/wiki_schema.md +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/templates/onboarding_shell.html +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/templates/pdf/base.html +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/templates/pdf/letter.html +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/templates/pdf/report.html +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/templates/pdf/simple.html +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/templates/signup.html +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/views/__init__.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/views/account_view.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/views/api_key_api_view.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/views/base_login_view.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/views/categories_api_view.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/views/change_password_view.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/views/chat_context_preview_api_view.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/views/chat_view.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/views/configuration_api_view.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/views/connectors_api_view.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/views/embedding_api_view.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/views/forgot_password_view.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/views/help_content_api_view.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/views/history_api_view.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/views/home_view.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/views/init_context_api_view.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/views/llmquery_api_view.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/views/load_document_api_view.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/views/login_view.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/views/logout_api_view.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/views/memory_api_view.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/views/profile_api_view.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/views/prompt_api_view.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/views/prompt_context_preview_api_view.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/views/prompt_resource_api_view.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/views/rag_api_view.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/views/root_redirect_view.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/views/signup_view.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/views/static_page_view.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/views/tool_api_view.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/views/user_feedback_api_view.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/views/users_api_view.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit/views/verify_user_view.py +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit.egg-info/dependency_links.txt +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit.egg-info/requires.txt +0 -0
- {iatoolkit-2.56.0 → iatoolkit-2.57.0}/src/iatoolkit.egg-info/top_level.txt +0 -0
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
|
|
6
6
|
from io import BytesIO
|
|
7
7
|
import mimetypes
|
|
8
|
+
import os
|
|
8
9
|
from flask import render_template, redirect, url_for, current_app, abort, send_file
|
|
9
10
|
from flask import jsonify
|
|
10
11
|
from iatoolkit.common.exceptions import IAToolkitException
|
|
@@ -59,6 +60,18 @@ def register_views(app):
|
|
|
59
60
|
# must stay reachable even if the company registry or DB is degraded.
|
|
60
61
|
app.add_url_rule('/', endpoint='liveness', view_func=lambda: ("ok", 200))
|
|
61
62
|
|
|
63
|
+
# Browsers and MCP clients (Claude shows it as the connector icon) ask the
|
|
64
|
+
# host for /favicon.ico regardless of the page.
|
|
65
|
+
app.add_url_rule(
|
|
66
|
+
'/favicon.ico',
|
|
67
|
+
endpoint='favicon',
|
|
68
|
+
view_func=lambda: send_file(
|
|
69
|
+
os.path.join(os.path.dirname(os.path.dirname(os.path.abspath(__file__))), 'static', 'images', 'favicon.ico'),
|
|
70
|
+
mimetype='image/vnd.microsoft.icon',
|
|
71
|
+
max_age=86400,
|
|
72
|
+
),
|
|
73
|
+
)
|
|
74
|
+
|
|
62
75
|
# assign root '/' to our new redirect logic
|
|
63
76
|
app.add_url_rule('/home', view_func=RootRedirectView.as_view('root_redirect'))
|
|
64
77
|
|
|
@@ -700,23 +700,34 @@ class GeminiAdapter:
|
|
|
700
700
|
return {}
|
|
701
701
|
|
|
702
702
|
def _extract_usage_metadata(self, gemini_response) -> Usage:
|
|
703
|
-
"""Extraer información de uso de tokens de manera segura
|
|
703
|
+
"""Extraer información de uso de tokens de manera segura.
|
|
704
|
+
|
|
705
|
+
Gemini reports the tokens it bills in four counters. `candidates_token_count`
|
|
706
|
+
excludes the model's reasoning (`thoughts_token_count`), which Google bills as
|
|
707
|
+
output, and `prompt_token_count` excludes the results of its built-in tools
|
|
708
|
+
(`tool_use_prompt_token_count`), billed as input. Reading only the first two
|
|
709
|
+
priced every thinking model's reasoning at zero.
|
|
710
|
+
"""
|
|
704
711
|
input_tokens = 0
|
|
705
712
|
output_tokens = 0
|
|
706
713
|
total_tokens = 0
|
|
707
714
|
|
|
715
|
+
def _count(metadata, name: str) -> int:
|
|
716
|
+
value = getattr(metadata, name, None)
|
|
717
|
+
return value if isinstance(value, int) and value > 0 else 0
|
|
718
|
+
|
|
708
719
|
try:
|
|
709
|
-
|
|
710
|
-
if
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
+
usage_metadata = getattr(gemini_response, 'usage_metadata', None)
|
|
721
|
+
if usage_metadata:
|
|
722
|
+
input_tokens = (
|
|
723
|
+
_count(usage_metadata, 'prompt_token_count')
|
|
724
|
+
+ _count(usage_metadata, 'tool_use_prompt_token_count')
|
|
725
|
+
)
|
|
726
|
+
output_tokens = (
|
|
727
|
+
_count(usage_metadata, 'candidates_token_count')
|
|
728
|
+
+ _count(usage_metadata, 'thoughts_token_count')
|
|
729
|
+
)
|
|
730
|
+
total_tokens = _count(usage_metadata, 'total_token_count')
|
|
720
731
|
|
|
721
732
|
except Exception as e:
|
|
722
733
|
logging.warning(f"No se pudo extraer usage_metadata de Gemini: {e}")
|
|
@@ -14,6 +14,7 @@ from iatoolkit.repositories.models import (
|
|
|
14
14
|
from injector import inject
|
|
15
15
|
from iatoolkit.repositories.database_manager import DatabaseManager
|
|
16
16
|
from sqlalchemy import or_, and_
|
|
17
|
+
from iatoolkit.repositories.models import CONTEXT_INIT_REQUEST_SOURCE
|
|
17
18
|
from typing import List
|
|
18
19
|
|
|
19
20
|
|
|
@@ -34,10 +35,17 @@ class LLMQueryRepo:
|
|
|
34
35
|
self.session.commit()
|
|
35
36
|
return query
|
|
36
37
|
|
|
38
|
+
@staticmethod
|
|
39
|
+
def not_context_init():
|
|
40
|
+
"""Filter for rows that are a conversation turn, not a context initialization."""
|
|
41
|
+
request_source = LLMQuery.stats["request_source"].as_string()
|
|
42
|
+
return or_(request_source.is_(None), request_source != CONTEXT_INIT_REQUEST_SOURCE)
|
|
43
|
+
|
|
37
44
|
# get user query history
|
|
38
45
|
def get_history(self, company: Company, user_identifier: str, limit: int = 100) -> list[LLMQuery]:
|
|
39
46
|
return self.session.query(LLMQuery).filter(
|
|
40
47
|
LLMQuery.user_identifier == user_identifier,
|
|
48
|
+
self.not_context_init(),
|
|
41
49
|
).filter_by(company_id=company.id).order_by(LLMQuery.created_at.desc()).limit(limit).all()
|
|
42
50
|
|
|
43
51
|
|
|
@@ -593,6 +593,12 @@ class MemoryPageSource(Base):
|
|
|
593
593
|
return {column.key: getattr(self, column.key) for column in class_mapper(self.__class__).columns}
|
|
594
594
|
|
|
595
595
|
|
|
596
|
+
#: request_source of the iat_queries row that records a context initialization:
|
|
597
|
+
#: the company context sent once to start a server-side conversation. Its tokens
|
|
598
|
+
#: are billed, but it is not a question, so conversation readers skip it.
|
|
599
|
+
CONTEXT_INIT_REQUEST_SOURCE = "context_init"
|
|
600
|
+
|
|
601
|
+
|
|
596
602
|
class LLMQuery(Base):
|
|
597
603
|
"""Logs a query made to the LLM, including input, output, and metadata."""
|
|
598
604
|
__tablename__ = 'iat_queries'
|
|
@@ -622,6 +628,10 @@ class LLMQuery(Base):
|
|
|
622
628
|
|
|
623
629
|
__table_args__ = (
|
|
624
630
|
Index('ix_iat_queries_company_prompt_created', 'company_id', 'prompt_name', 'created_at'),
|
|
631
|
+
# Executions that did not run as a task (synchronous agent calls). They are a
|
|
632
|
+
# tiny fraction of the table, which the Agents monitor would otherwise scan whole.
|
|
633
|
+
Index('ix_iat_queries_company_created_untasked', company_id, created_at.desc(),
|
|
634
|
+
postgresql_where=task_id.is_(None)),
|
|
625
635
|
)
|
|
626
636
|
|
|
627
637
|
company = relationship("Company", back_populates="llm_queries")
|
|
@@ -60,7 +60,8 @@ class HistoryManagerService:
|
|
|
60
60
|
response_id = self.llm_client.set_company_context(
|
|
61
61
|
company=company,
|
|
62
62
|
company_base_context=prepared_context,
|
|
63
|
-
model=model
|
|
63
|
+
model=model,
|
|
64
|
+
user_identifier=user_identifier,
|
|
64
65
|
)
|
|
65
66
|
self.session_context.save_last_response_id(company_short_name, user_identifier, response_id, model=model)
|
|
66
67
|
self.session_context.save_initial_response_id(company_short_name, user_identifier, response_id, model=model)
|