iatoolkit 2.18.5__tar.gz → 2.18.7__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.18.5/src/iatoolkit.egg-info → iatoolkit-2.18.7}/PKG-INFO +1 -1
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/__init__.py +1 -1
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/locales/en.yaml +8 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/locales/es.yaml +8 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/services/company_context_service.py +84 -10
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/services/context_builder_service.py +18 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/services/query_service.py +45 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7/src/iatoolkit.egg-info}/PKG-INFO +1 -1
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/LICENSE +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/LICENSE_COMMUNITY.md +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/pyproject.toml +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/readme.md +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/requirements.txt +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/setup.cfg +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/base_company.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/cli_commands.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/common/__init__.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/common/exceptions.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/common/interfaces/__init__.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/common/interfaces/asset_storage.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/common/interfaces/database_provider.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/common/interfaces/memory_compilation_trigger.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/common/interfaces/memory_lint_trigger.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/common/interfaces/secret_provider.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/common/interfaces/signup_policy_resolver.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/common/interfaces/web_search_provider.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/common/model_registry.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/common/routes.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/common/secret_resolver.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/common/session_manager.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/common/util.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/company_registry.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/config/__init__.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/config/llm_capabilities.yaml +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/config/system_prompts/channel_business_identity.prompt +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/config/system_prompts/channel_conversation_continuity.prompt +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/config/system_prompts/channel_response_style.prompt +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/config/system_prompts/chat_state_rules.prompt +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/config/system_prompts/chat_user_profile.prompt +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/config/system_prompts/core_identity.prompt +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/config/system_prompts/email_output.prompt +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/config/system_prompts/file_download_output.prompt +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/config/system_prompts/format_styles.prompt +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/config/system_prompts/html_structures.prompt +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/config/system_prompts/links_documents.prompt +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/config/system_prompts/memory_usage.prompt +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/config/system_prompts/multimodal_basics.prompt +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/config/system_prompts/output_basics.prompt +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/config/system_prompts/presentation_formatting.prompt +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/config/system_prompts/query_main.prompt +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/config/system_prompts/sql_aggregation_scope.prompt +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/config/system_prompts/sql_casting.prompt +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/config/system_prompts/sql_core.prompt +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/config/system_prompts/sql_jsonb.prompt +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/config/system_prompts/sql_mysql_casting.prompt +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/config/system_prompts/sql_mysql_json.prompt +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/config/system_prompts/sql_redshift_basics.prompt +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/config/system_prompts/sql_redshift_types.prompt +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/config/system_prompts/sql_rules.prompt +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/config/system_prompts/tool_html_passthrough.prompt +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/config/system_prompts_pack.yaml +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/config/system_tools_pack.yaml +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/core.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/infra/__init__.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/infra/brevo_mail_app.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/infra/call_service.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/infra/connectors/__init__.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/infra/connectors/file_connector.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/infra/connectors/file_connector_factory.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/infra/connectors/google_cloud_storage_connector.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/infra/connectors/google_drive_connector.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/infra/connectors/local_file_connector.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/infra/connectors/s3_connector.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/infra/google_auth_client.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/infra/google_chat_app.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/infra/inference_embeddings_client.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/infra/inference_handler.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/infra/jina_embeddings_client.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/infra/llm_gateway_resolver.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/infra/llm_providers/__init__.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/infra/llm_providers/anthropic_adapter.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/infra/llm_providers/deepseek_adapter.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/infra/llm_providers/gemini_adapter.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/infra/llm_providers/openai_adapter.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/infra/llm_providers/openai_compatible_chat_adapter.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/infra/llm_providers/openrouter_adapter.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/infra/llm_proxy.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/infra/llm_response.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/infra/redis_session_manager.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/repositories/__init__.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/repositories/api_key_repo.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/repositories/database_manager.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/repositories/document_repo.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/repositories/env_secret_provider.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/repositories/filesystem_asset_repository.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/repositories/llm_query_repo.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/repositories/mcp_token_repo.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/repositories/memory_repo.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/repositories/models.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/repositories/profile_repo.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/repositories/prompt_resource_repo.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/repositories/sql_dataset_repo.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/repositories/sql_source_repo.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/repositories/vs_repo.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/runtime_logging.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/services/__init__.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/services/api_key_service.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/services/attachment_policy_service.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/services/auth_service.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/services/benchmark_service.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/services/branding_service.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/services/configuration_service.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/services/dispatcher_service.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/services/embedding_service.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/services/excel_service.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/services/file_processor_service.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/services/history_manager_service.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/services/http_tool_service.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/services/i18n_service.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/services/inference_service.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/services/jwt_service.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/services/knowledge_base_service.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/services/language_service.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/services/license_service.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/services/llm_client_service.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/services/mail_service.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/services/mcp_token_service.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/services/memory_compiler_service.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/services/memory_lint_service.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/services/memory_lookup_policy_service.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/services/memory_service.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/services/memory_wiki_service.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/services/noop_memory_compilation_trigger.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/services/noop_memory_lint_trigger.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/services/parsers/__init__.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/services/parsers/contracts.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/services/parsers/image_normalizer.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/services/parsers/parsing_service.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/services/parsers/pdf_ocr_detection.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/services/parsers/provider_factory.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/services/parsers/provider_resolver.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/services/parsers/providers/__init__.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/services/parsers/providers/basic_provider.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/services/parsers/providers/docling_provider.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/services/parsers/validator.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/services/pdf_service.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/services/profile_service.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/services/prompt_resource_service.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/services/prompt_service.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/services/signup_policy_resolver.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/services/sql_dataset_service.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/services/sql_service.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/services/sql_source_service.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/services/storage_service.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/services/structured_output_service.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/services/system_prompt_catalog.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/services/system_tools.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/services/telemetry_service.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/services/tool_service.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/services/user_feedback_service.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/services/user_session_context_service.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/services/visual_kb_service.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/services/visual_tool_service.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/services/warmup_service.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/services/web_search/__init__.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/services/web_search/provider_factory.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/services/web_search/providers/__init__.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/services/web_search/providers/brave_provider.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/services/web_search_service.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/static/images/fernando.jpeg +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/static/images/iatoolkit_core.png +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/static/images/iatoolkit_logo.png +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/static/js/chat_feedback_button.js +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/static/js/chat_filepond.js +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/static/js/chat_help_content.js +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/static/js/chat_history_button.js +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/static/js/chat_logout_button.js +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/static/js/chat_main.js +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/static/js/chat_memory_button.js +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/static/js/chat_model_selector.js +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/static/js/chat_onboarding_button.js +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/static/js/chat_prompt_manager.js +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/static/js/chat_reload_button.js +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/static/styles/chat_iatoolkit.css +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/static/styles/chat_modal.css +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/static/styles/chat_public.css +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/static/styles/documents.css +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/static/styles/landing_page.css +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/static/styles/llm_output.css +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/static/styles/onboarding.css +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/templates/_company_header.html +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/templates/_login_widget.html +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/templates/account.html +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/templates/base.html +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/templates/change_password.html +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/templates/chat.html +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/templates/chat_memory_modal.html +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/templates/chat_modals.html +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/templates/error.html +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/templates/forgot_password.html +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/templates/home_hosted_default.html +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/templates/memory/wiki_schema.md +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/templates/onboarding_shell.html +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/templates/pdf/base.html +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/templates/pdf/letter.html +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/templates/pdf/report.html +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/templates/pdf/simple.html +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/templates/signup.html +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/views/__init__.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/views/account_view.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/views/api_key_api_view.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/views/base_login_view.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/views/categories_api_view.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/views/change_password_view.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/views/chat_context_preview_api_view.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/views/chat_view.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/views/configuration_api_view.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/views/connectors_api_view.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/views/embedding_api_view.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/views/forgot_password_view.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/views/help_content_api_view.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/views/history_api_view.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/views/home_view.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/views/init_context_api_view.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/views/llmquery_api_view.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/views/load_document_api_view.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/views/login_view.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/views/logout_api_view.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/views/memory_api_view.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/views/profile_api_view.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/views/prompt_api_view.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/views/prompt_context_preview_api_view.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/views/prompt_resource_api_view.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/views/rag_api_view.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/views/root_redirect_view.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/views/signup_view.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/views/static_page_view.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/views/tool_api_view.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/views/user_feedback_api_view.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/views/users_api_view.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/views/verify_user_view.py +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit.egg-info/SOURCES.txt +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit.egg-info/dependency_links.txt +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit.egg-info/requires.txt +0 -0
- {iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit.egg-info/top_level.txt +0 -0
|
@@ -1741,6 +1741,14 @@ ui:
|
|
|
1741
1741
|
custom_resources_toggle: "Use manual visibility"
|
|
1742
1742
|
custom_resources_help: "If this is disabled, MCP resources are enabled automatically based on the published catalog."
|
|
1743
1743
|
context_resources_help: "MCP resources are client-readable context or discovery; SQL sources and collections are managed under Data sources."
|
|
1744
|
+
company_context_title: "Company context"
|
|
1745
|
+
company_context_help: "Control which markdown files are concatenated to build get_company_context."
|
|
1746
|
+
company_context_preview_title: "Company context preview"
|
|
1747
|
+
custom_company_context_toggle: "Use manual selection"
|
|
1748
|
+
company_context_auto_help: "Automatic mode includes every context markdown file available for this tenant."
|
|
1749
|
+
company_context_custom_help: "Select the markdown files that should be concatenated into get_company_context."
|
|
1750
|
+
company_context_empty: "No context markdown files are available."
|
|
1751
|
+
company_context_empty_preview: "No company context was generated."
|
|
1744
1752
|
validation_title: "Validation"
|
|
1745
1753
|
validation_help: "Review publication gaps before exposing this tenant through MCP."
|
|
1746
1754
|
access_oauth_title: "OAuth first, tokens as an advanced option"
|
|
@@ -1745,6 +1745,14 @@ ui:
|
|
|
1745
1745
|
custom_resources_toggle: "Usar visibilidad manual"
|
|
1746
1746
|
custom_resources_help: "Si no activas esta opción, las resources MCP se habilitan automáticamente según el catálogo publicado."
|
|
1747
1747
|
context_resources_help: "Los resources MCP son contexto o discovery legible por el cliente; las fuentes SQL y colecciones se administran en Fuentes de datos."
|
|
1748
|
+
company_context_title: "Contexto empresa"
|
|
1749
|
+
company_context_help: "Controla qué archivos markdown se concatenan para construir get_company_context."
|
|
1750
|
+
company_context_preview_title: "Vista previa del contexto empresa"
|
|
1751
|
+
custom_company_context_toggle: "Usar selección manual"
|
|
1752
|
+
company_context_auto_help: "El modo automático incluye todos los archivos markdown de contexto disponibles para este tenant."
|
|
1753
|
+
company_context_custom_help: "Selecciona los archivos markdown que se concatenarán en get_company_context."
|
|
1754
|
+
company_context_empty: "No hay archivos markdown de contexto disponibles."
|
|
1755
|
+
company_context_empty_preview: "No se generó contexto empresa."
|
|
1748
1756
|
validation_title: "Validación"
|
|
1749
1757
|
validation_help: "Revisa brechas de publicación antes de exponer este tenant por MCP."
|
|
1750
1758
|
access_oauth_title: "OAuth primero, tokens como opción avanzada"
|
|
@@ -30,8 +30,11 @@ class CompanyContextService:
|
|
|
30
30
|
self.sql_source_service = sql_source_service
|
|
31
31
|
self.asset_repo = asset_repo
|
|
32
32
|
|
|
33
|
-
def get_company_context(self, company_short_name: str) -> str:
|
|
34
|
-
blocks = self.get_company_context_blocks(
|
|
33
|
+
def get_company_context(self, company_short_name: str, *, selected_context_files: List[str] | None = None) -> str:
|
|
34
|
+
blocks = self.get_company_context_blocks(
|
|
35
|
+
company_short_name,
|
|
36
|
+
selected_context_files=selected_context_files,
|
|
37
|
+
)
|
|
35
38
|
return "\n\n---\n\n".join(
|
|
36
39
|
section
|
|
37
40
|
for section in (
|
|
@@ -42,7 +45,13 @@ class CompanyContextService:
|
|
|
42
45
|
if section
|
|
43
46
|
)
|
|
44
47
|
|
|
45
|
-
def get_company_context_blocks(
|
|
48
|
+
def get_company_context_blocks(
|
|
49
|
+
self,
|
|
50
|
+
company_short_name: str,
|
|
51
|
+
*,
|
|
52
|
+
include_sql_context: bool = True,
|
|
53
|
+
selected_context_files: List[str] | None = None,
|
|
54
|
+
) -> dict[str, str]:
|
|
46
55
|
"""
|
|
47
56
|
Builds the full context by aggregating three sources:
|
|
48
57
|
1. Static context files (Markdown).
|
|
@@ -57,7 +66,10 @@ class CompanyContextService:
|
|
|
57
66
|
|
|
58
67
|
# 1. Context from Markdown (context/*.md) files
|
|
59
68
|
try:
|
|
60
|
-
md_context = self._get_static_file_context(
|
|
69
|
+
md_context = self._get_static_file_context(
|
|
70
|
+
company_short_name,
|
|
71
|
+
selected_filenames=selected_context_files,
|
|
72
|
+
).strip()
|
|
61
73
|
except Exception as e:
|
|
62
74
|
logging.warning(f"Could not load Markdown context for '{company_short_name}': {e}")
|
|
63
75
|
|
|
@@ -89,6 +101,38 @@ class CompanyContextService:
|
|
|
89
101
|
"yaml_context": yaml_context,
|
|
90
102
|
}
|
|
91
103
|
|
|
104
|
+
def list_context_files(self, company_short_name: str) -> list[dict]:
|
|
105
|
+
files = []
|
|
106
|
+
for filename in self._list_context_markdown_filenames(company_short_name):
|
|
107
|
+
title = ""
|
|
108
|
+
preview = ""
|
|
109
|
+
try:
|
|
110
|
+
content = self.asset_repo.read_text(company_short_name, AssetType.CONTEXT, filename)
|
|
111
|
+
except Exception as e:
|
|
112
|
+
logging.warning(f"Error reading context file {filename}: {e}")
|
|
113
|
+
content = ""
|
|
114
|
+
|
|
115
|
+
for raw_line in str(content or "").splitlines():
|
|
116
|
+
line = raw_line.strip()
|
|
117
|
+
if not line:
|
|
118
|
+
continue
|
|
119
|
+
if not title and line.startswith("#"):
|
|
120
|
+
title = line.lstrip("#").strip()
|
|
121
|
+
continue
|
|
122
|
+
if not preview:
|
|
123
|
+
preview = line
|
|
124
|
+
if title and preview:
|
|
125
|
+
break
|
|
126
|
+
|
|
127
|
+
files.append(
|
|
128
|
+
{
|
|
129
|
+
"filename": filename,
|
|
130
|
+
"title": title or filename,
|
|
131
|
+
"preview": preview,
|
|
132
|
+
}
|
|
133
|
+
)
|
|
134
|
+
return files
|
|
135
|
+
|
|
92
136
|
def get_sql_context(self, company_short_name: str, allowed_databases: List[str] | None = None) -> str:
|
|
93
137
|
try:
|
|
94
138
|
sql_context, _ = self._get_sql_enriched_context(
|
|
@@ -370,16 +414,15 @@ class CompanyContextService:
|
|
|
370
414
|
return "\n".join(output)
|
|
371
415
|
|
|
372
416
|
|
|
373
|
-
def _get_static_file_context(self, company_short_name: str) -> str:
|
|
417
|
+
def _get_static_file_context(self, company_short_name: str, *, selected_filenames: List[str] | None = None) -> str:
|
|
374
418
|
# Get context from .md files using the repository
|
|
375
419
|
static_context = ''
|
|
376
420
|
|
|
377
421
|
try:
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
for filename in md_files:
|
|
422
|
+
for filename in self._resolve_context_filenames(
|
|
423
|
+
company_short_name,
|
|
424
|
+
selected_filenames=selected_filenames,
|
|
425
|
+
):
|
|
383
426
|
try:
|
|
384
427
|
# 2. Read content
|
|
385
428
|
content = self.asset_repo.read_text(company_short_name, AssetType.CONTEXT, filename)
|
|
@@ -393,6 +436,37 @@ class CompanyContextService:
|
|
|
393
436
|
|
|
394
437
|
return static_context
|
|
395
438
|
|
|
439
|
+
def _list_context_markdown_filenames(self, company_short_name: str) -> list[str]:
|
|
440
|
+
try:
|
|
441
|
+
md_files = self.asset_repo.list_files(company_short_name, AssetType.CONTEXT, extension='.md')
|
|
442
|
+
except Exception as e:
|
|
443
|
+
logging.warning(f"Error listing context files for {company_short_name}: {e}")
|
|
444
|
+
return []
|
|
445
|
+
normalized_files = []
|
|
446
|
+
for filename in md_files or []:
|
|
447
|
+
value = str(filename or "").strip()
|
|
448
|
+
if value and value not in normalized_files:
|
|
449
|
+
normalized_files.append(value)
|
|
450
|
+
return sorted(normalized_files)
|
|
451
|
+
|
|
452
|
+
def _resolve_context_filenames(
|
|
453
|
+
self,
|
|
454
|
+
company_short_name: str,
|
|
455
|
+
*,
|
|
456
|
+
selected_filenames: List[str] | None = None,
|
|
457
|
+
) -> list[str]:
|
|
458
|
+
available_files = self._list_context_markdown_filenames(company_short_name)
|
|
459
|
+
if selected_filenames is None:
|
|
460
|
+
return available_files
|
|
461
|
+
|
|
462
|
+
allowed_files = set(available_files)
|
|
463
|
+
ordered_selection = []
|
|
464
|
+
for filename in selected_filenames or []:
|
|
465
|
+
value = str(filename or "").strip()
|
|
466
|
+
if value and value in allowed_files and value not in ordered_selection:
|
|
467
|
+
ordered_selection.append(value)
|
|
468
|
+
return ordered_selection
|
|
469
|
+
|
|
396
470
|
@staticmethod
|
|
397
471
|
def _normalize_identifier(value: str) -> str:
|
|
398
472
|
if value is None:
|
|
@@ -89,7 +89,18 @@ class ContextBuilderService:
|
|
|
89
89
|
if not company or not prompt_name:
|
|
90
90
|
return {}
|
|
91
91
|
|
|
92
|
+
logging.debug(
|
|
93
|
+
"prompt_output_contract start company=%s prompt=%s",
|
|
94
|
+
getattr(company, "short_name", "-"),
|
|
95
|
+
prompt_name,
|
|
96
|
+
)
|
|
92
97
|
prompt_obj = self.prompt_service.get_prompt_definition(company, prompt_name)
|
|
98
|
+
logging.debug(
|
|
99
|
+
"prompt_output_contract prompt_definition company=%s prompt=%s found=%s",
|
|
100
|
+
getattr(company, "short_name", "-"),
|
|
101
|
+
prompt_name,
|
|
102
|
+
bool(prompt_obj),
|
|
103
|
+
)
|
|
93
104
|
if not prompt_obj:
|
|
94
105
|
return {}
|
|
95
106
|
|
|
@@ -141,6 +152,13 @@ class ContextBuilderService:
|
|
|
141
152
|
"metadata_json": dict(getattr(binding, "metadata_json", None) or {}),
|
|
142
153
|
})
|
|
143
154
|
|
|
155
|
+
logging.debug(
|
|
156
|
+
"prompt_output_contract resolved company=%s prompt=%s resource_bindings=%s",
|
|
157
|
+
getattr(company, "short_name", "-"),
|
|
158
|
+
prompt_name,
|
|
159
|
+
len(resource_bindings),
|
|
160
|
+
)
|
|
161
|
+
|
|
144
162
|
return {
|
|
145
163
|
"prompt_name": prompt_obj.name,
|
|
146
164
|
"agent_role": agent_role,
|
|
@@ -44,6 +44,7 @@ class QueryService:
|
|
|
44
44
|
"previous_response_not_found",
|
|
45
45
|
"previous response with id",
|
|
46
46
|
)
|
|
47
|
+
_STAGE_LOG_THRESHOLD_MS = 250
|
|
47
48
|
|
|
48
49
|
@inject
|
|
49
50
|
def __init__(self,
|
|
@@ -1341,7 +1342,37 @@ class QueryService:
|
|
|
1341
1342
|
files: list = []
|
|
1342
1343
|
) -> dict:
|
|
1343
1344
|
try:
|
|
1345
|
+
stage_started_at = time.time()
|
|
1346
|
+
request_source = None
|
|
1347
|
+
|
|
1348
|
+
logging.debug(
|
|
1349
|
+
"llm_query entered company=%s prompt=%s task_id=%s",
|
|
1350
|
+
company_short_name,
|
|
1351
|
+
prompt_name or "-",
|
|
1352
|
+
task_id if task_id is not None else "-",
|
|
1353
|
+
)
|
|
1354
|
+
|
|
1355
|
+
def log_stage(stage_name: str):
|
|
1356
|
+
elapsed_ms = int(round((time.time() - stage_started_at) * 1000))
|
|
1357
|
+
if elapsed_ms < self._STAGE_LOG_THRESHOLD_MS:
|
|
1358
|
+
return
|
|
1359
|
+
logging.debug(
|
|
1360
|
+
"llm_query stage company=%s prompt=%s stage=%s elapsed_ms=%s task_id=%s source=%s",
|
|
1361
|
+
company_short_name,
|
|
1362
|
+
prompt_name or "-",
|
|
1363
|
+
stage_name,
|
|
1364
|
+
elapsed_ms,
|
|
1365
|
+
task_id if task_id is not None else "-",
|
|
1366
|
+
request_source or "-",
|
|
1367
|
+
)
|
|
1368
|
+
|
|
1344
1369
|
company = self.profile_repo.get_company_by_short_name(short_name=company_short_name)
|
|
1370
|
+
logging.debug(
|
|
1371
|
+
"llm_query company_resolved company=%s prompt=%s found=%s",
|
|
1372
|
+
company_short_name,
|
|
1373
|
+
prompt_name or "-",
|
|
1374
|
+
bool(company),
|
|
1375
|
+
)
|
|
1345
1376
|
if not company:
|
|
1346
1377
|
return {"error": True,
|
|
1347
1378
|
"error_message": self.i18n_service.t('errors.company_not_found',
|
|
@@ -1353,6 +1384,7 @@ class QueryService:
|
|
|
1353
1384
|
|
|
1354
1385
|
# output contract
|
|
1355
1386
|
prompt_output_contract = self._resolve_prompt_output_contract(company, prompt_name)
|
|
1387
|
+
log_stage("prompt_output_contract")
|
|
1356
1388
|
is_agent_session_execution = self._is_agent_session_execution(
|
|
1357
1389
|
prompt_name=prompt_name,
|
|
1358
1390
|
client_data=client_data,
|
|
@@ -1364,6 +1396,7 @@ class QueryService:
|
|
|
1364
1396
|
effective_model,
|
|
1365
1397
|
prompt_output_contract,
|
|
1366
1398
|
)
|
|
1399
|
+
log_stage("output_contract_and_model")
|
|
1367
1400
|
|
|
1368
1401
|
# attachment policy
|
|
1369
1402
|
provider = self._get_provider(company_short_name, effective_model)
|
|
@@ -1395,6 +1428,7 @@ class QueryService:
|
|
|
1395
1428
|
files=files or [],
|
|
1396
1429
|
policy=effective_attachment_policy,
|
|
1397
1430
|
)
|
|
1431
|
+
log_stage("attachment_plan")
|
|
1398
1432
|
|
|
1399
1433
|
logging.debug(
|
|
1400
1434
|
"Attachment plan task=%s prompt='%s' provider=%s policy=%s total_files=%s files_for_context=%s native_attachments=%s native_names=%s context_names=%s",
|
|
@@ -1431,6 +1465,7 @@ class QueryService:
|
|
|
1431
1465
|
prompt_name=None if is_agent_session_execution else prompt_name,
|
|
1432
1466
|
question=question
|
|
1433
1467
|
)
|
|
1468
|
+
log_stage("build_user_turn_prompt")
|
|
1434
1469
|
|
|
1435
1470
|
if prompt_output_contract.get("schema") and (
|
|
1436
1471
|
not output_schema or provider in ("gemini", "deepseek", "openai_compatible")
|
|
@@ -1444,12 +1479,14 @@ class QueryService:
|
|
|
1444
1479
|
|
|
1445
1480
|
# get the tools availables for this company
|
|
1446
1481
|
tools = self.tool_service.get_tools_for_llm(company)
|
|
1482
|
+
log_stage("load_tools")
|
|
1447
1483
|
tools, tool_router_metrics = self._apply_prompt_tool_policy(
|
|
1448
1484
|
company_short_name=company_short_name,
|
|
1449
1485
|
prompt_output_contract=prompt_output_contract,
|
|
1450
1486
|
tools=tools,
|
|
1451
1487
|
include_forced_tools=not is_agent_execution,
|
|
1452
1488
|
)
|
|
1489
|
+
log_stage("apply_prompt_tool_policy")
|
|
1453
1490
|
if tool_router_metrics is None:
|
|
1454
1491
|
tools, tool_router_metrics = self._select_tools_for_llm_with_metrics(
|
|
1455
1492
|
company_short_name=company_short_name,
|
|
@@ -1458,12 +1495,14 @@ class QueryService:
|
|
|
1458
1495
|
question=effective_question,
|
|
1459
1496
|
tools=tools,
|
|
1460
1497
|
)
|
|
1498
|
+
log_stage("tool_router")
|
|
1461
1499
|
else:
|
|
1462
1500
|
user_turn_prompt = self._append_effective_tools_instruction(
|
|
1463
1501
|
user_turn_prompt,
|
|
1464
1502
|
tools,
|
|
1465
1503
|
explicit_only=True,
|
|
1466
1504
|
)
|
|
1505
|
+
log_stage("append_effective_tools_instruction")
|
|
1467
1506
|
|
|
1468
1507
|
# --- History Management (Strategy Pattern) ---
|
|
1469
1508
|
if is_agent_execution:
|
|
@@ -1485,12 +1524,14 @@ class QueryService:
|
|
|
1485
1524
|
)
|
|
1486
1525
|
if error_response:
|
|
1487
1526
|
return error_response
|
|
1527
|
+
log_stage("ensure_valid_history")
|
|
1488
1528
|
|
|
1489
1529
|
memory_lookup_decision = self.memory_lookup_policy_service.resolve(
|
|
1490
1530
|
question=effective_question,
|
|
1491
1531
|
tools=tools,
|
|
1492
1532
|
tool_router_metrics=tool_router_metrics,
|
|
1493
1533
|
)
|
|
1534
|
+
log_stage("memory_lookup_policy")
|
|
1494
1535
|
tool_choice_override = memory_lookup_decision.tool_choice_override
|
|
1495
1536
|
user_turn_prompt = self._append_memory_search_instruction(
|
|
1496
1537
|
user_turn_prompt,
|
|
@@ -1528,6 +1569,7 @@ class QueryService:
|
|
|
1528
1569
|
selected_system_prompt_keys = self._normalize_selected_system_prompt_keys(
|
|
1529
1570
|
selected_system_prompt_keys
|
|
1530
1571
|
)
|
|
1572
|
+
log_stage("build_agent_system_context")
|
|
1531
1573
|
else:
|
|
1532
1574
|
selected_system_prompt_keys = []
|
|
1533
1575
|
try:
|
|
@@ -1564,6 +1606,7 @@ class QueryService:
|
|
|
1564
1606
|
e,
|
|
1565
1607
|
)
|
|
1566
1608
|
selected_system_prompt_keys = []
|
|
1609
|
+
log_stage("resolve_system_prompt_keys")
|
|
1567
1610
|
|
|
1568
1611
|
if selected_system_prompt_keys:
|
|
1569
1612
|
tool_router_metrics = dict(tool_router_metrics or {})
|
|
@@ -1637,6 +1680,7 @@ class QueryService:
|
|
|
1637
1680
|
execution_metadata=execution_metadata,
|
|
1638
1681
|
request_metadata=request_metadata,
|
|
1639
1682
|
)
|
|
1683
|
+
log_stage("prepare_invoke")
|
|
1640
1684
|
|
|
1641
1685
|
response, history_handle = self._invoke_with_history_recovery(
|
|
1642
1686
|
company=company,
|
|
@@ -1660,6 +1704,7 @@ class QueryService:
|
|
|
1660
1704
|
history_handle=history_handle,
|
|
1661
1705
|
ignore_history=ignore_history,
|
|
1662
1706
|
)
|
|
1707
|
+
log_stage("invoke_with_history_recovery")
|
|
1663
1708
|
|
|
1664
1709
|
if not response.get('valid_response'):
|
|
1665
1710
|
response['error'] = True
|
|
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.18.5 → iatoolkit-2.18.7}/src/iatoolkit/common/interfaces/memory_compilation_trigger.py
RENAMED
|
File without changes
|
{iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/common/interfaces/memory_lint_trigger.py
RENAMED
|
File without changes
|
|
File without changes
|
{iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/common/interfaces/signup_policy_resolver.py
RENAMED
|
File without changes
|
{iatoolkit-2.18.5 → iatoolkit-2.18.7}/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
|
{iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/config/system_prompts/chat_state_rules.prompt
RENAMED
|
File without changes
|
{iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/config/system_prompts/chat_user_profile.prompt
RENAMED
|
File without changes
|
{iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/config/system_prompts/core_identity.prompt
RENAMED
|
File without changes
|
{iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/config/system_prompts/email_output.prompt
RENAMED
|
File without changes
|
|
File without changes
|
{iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/config/system_prompts/format_styles.prompt
RENAMED
|
File without changes
|
{iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/config/system_prompts/html_structures.prompt
RENAMED
|
File without changes
|
{iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/config/system_prompts/links_documents.prompt
RENAMED
|
File without changes
|
{iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/config/system_prompts/memory_usage.prompt
RENAMED
|
File without changes
|
{iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/config/system_prompts/multimodal_basics.prompt
RENAMED
|
File without changes
|
{iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/config/system_prompts/output_basics.prompt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/config/system_prompts/sql_casting.prompt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/config/system_prompts/sql_mysql_casting.prompt
RENAMED
|
File without changes
|
{iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/config/system_prompts/sql_mysql_json.prompt
RENAMED
|
File without changes
|
{iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/config/system_prompts/sql_redshift_basics.prompt
RENAMED
|
File without changes
|
{iatoolkit-2.18.5 → iatoolkit-2.18.7}/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.18.5 → iatoolkit-2.18.7}/src/iatoolkit/infra/connectors/file_connector_factory.py
RENAMED
|
File without changes
|
|
File without changes
|
{iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/infra/connectors/google_drive_connector.py
RENAMED
|
File without changes
|
{iatoolkit-2.18.5 → iatoolkit-2.18.7}/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.18.5 → iatoolkit-2.18.7}/src/iatoolkit/infra/llm_providers/anthropic_adapter.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{iatoolkit-2.18.5 → iatoolkit-2.18.7}/src/iatoolkit/infra/llm_providers/openrouter_adapter.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{iatoolkit-2.18.5 → iatoolkit-2.18.7}/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
|