iatoolkit 2.11.0__tar.gz → 2.11.2__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.11.0/src/iatoolkit.egg-info → iatoolkit-2.11.2}/PKG-INFO +1 -1
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/__init__.py +1 -1
- iatoolkit-2.11.2/src/iatoolkit/config/system_prompts/sql_mysql_casting.prompt +10 -0
- iatoolkit-2.11.2/src/iatoolkit/config/system_prompts/sql_mysql_json.prompt +9 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/locales/en.yaml +13 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/locales/es.yaml +13 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/repositories/models.py +2 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/services/company_context_service.py +59 -3
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/services/sql_source_service.py +36 -1
- {iatoolkit-2.11.0 → iatoolkit-2.11.2/src/iatoolkit.egg-info}/PKG-INFO +1 -1
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit.egg-info/SOURCES.txt +2 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/LICENSE +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/LICENSE_COMMUNITY.md +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/pyproject.toml +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/readme.md +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/requirements.txt +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/setup.cfg +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/base_company.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/cli_commands.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/common/__init__.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/common/exceptions.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/common/interfaces/__init__.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/common/interfaces/asset_storage.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/common/interfaces/database_provider.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/common/interfaces/memory_compilation_trigger.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/common/interfaces/memory_lint_trigger.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/common/interfaces/secret_provider.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/common/interfaces/signup_policy_resolver.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/common/interfaces/web_search_provider.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/common/model_registry.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/common/routes.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/common/secret_resolver.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/common/session_manager.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/common/util.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/company_registry.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/config/__init__.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/config/llm_capabilities.yaml +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/config/system_prompts/chat_state_rules.prompt +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/config/system_prompts/chat_user_profile.prompt +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/config/system_prompts/core_identity.prompt +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/config/system_prompts/email_output.prompt +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/config/system_prompts/file_download_output.prompt +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/config/system_prompts/format_styles.prompt +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/config/system_prompts/html_structures.prompt +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/config/system_prompts/links_documents.prompt +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/config/system_prompts/memory_usage.prompt +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/config/system_prompts/multimodal_basics.prompt +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/config/system_prompts/output_basics.prompt +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/config/system_prompts/presentation_formatting.prompt +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/config/system_prompts/query_main.prompt +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/config/system_prompts/sql_aggregation_scope.prompt +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/config/system_prompts/sql_casting.prompt +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/config/system_prompts/sql_core.prompt +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/config/system_prompts/sql_jsonb.prompt +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/config/system_prompts/sql_rules.prompt +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/config/system_prompts/tool_html_passthrough.prompt +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/config/system_prompts_pack.yaml +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/config/system_tools_pack.yaml +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/core.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/infra/__init__.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/infra/brevo_mail_app.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/infra/call_service.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/infra/connectors/__init__.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/infra/connectors/file_connector.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/infra/connectors/file_connector_factory.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/infra/connectors/google_cloud_storage_connector.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/infra/connectors/google_drive_connector.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/infra/connectors/local_file_connector.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/infra/connectors/s3_connector.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/infra/google_auth_client.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/infra/google_chat_app.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/infra/inference_embeddings_client.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/infra/inference_handler.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/infra/jina_embeddings_client.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/infra/llm_providers/__init__.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/infra/llm_providers/anthropic_adapter.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/infra/llm_providers/deepseek_adapter.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/infra/llm_providers/gemini_adapter.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/infra/llm_providers/openai_adapter.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/infra/llm_providers/openai_compatible_chat_adapter.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/infra/llm_providers/openrouter_adapter.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/infra/llm_proxy.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/infra/llm_response.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/infra/redis_session_manager.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/repositories/__init__.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/repositories/api_key_repo.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/repositories/database_manager.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/repositories/document_repo.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/repositories/env_secret_provider.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/repositories/filesystem_asset_repository.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/repositories/llm_query_repo.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/repositories/mcp_personal_access_token_repo.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/repositories/memory_repo.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/repositories/profile_repo.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/repositories/prompt_resource_repo.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/repositories/sql_dataset_repo.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/repositories/sql_source_repo.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/repositories/vs_repo.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/services/__init__.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/services/api_key_service.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/services/attachment_policy_service.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/services/auth_service.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/services/benchmark_service.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/services/branding_service.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/services/configuration_service.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/services/context_builder_service.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/services/dispatcher_service.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/services/embedding_service.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/services/excel_service.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/services/file_processor_service.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/services/history_manager_service.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/services/http_tool_service.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/services/i18n_service.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/services/inference_service.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/services/jwt_service.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/services/knowledge_base_service.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/services/language_service.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/services/license_service.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/services/llm_client_service.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/services/mail_service.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/services/mcp_personal_access_token_service.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/services/memory_compiler_service.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/services/memory_lint_service.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/services/memory_lookup_policy_service.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/services/memory_service.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/services/memory_wiki_service.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/services/noop_memory_compilation_trigger.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/services/noop_memory_lint_trigger.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/services/parsers/__init__.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/services/parsers/contracts.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/services/parsers/image_normalizer.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/services/parsers/parsing_service.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/services/parsers/pdf_ocr_detection.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/services/parsers/provider_factory.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/services/parsers/provider_resolver.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/services/parsers/providers/__init__.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/services/parsers/providers/basic_provider.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/services/parsers/providers/docling_provider.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/services/parsers/validator.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/services/pdf_service.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/services/profile_service.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/services/prompt_resource_service.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/services/prompt_service.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/services/query_service.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/services/signup_policy_resolver.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/services/sql_dataset_service.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/services/sql_service.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/services/storage_service.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/services/structured_output_service.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/services/system_prompt_catalog.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/services/system_tools.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/services/telemetry_service.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/services/tool_service.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/services/user_feedback_service.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/services/user_session_context_service.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/services/visual_kb_service.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/services/visual_tool_service.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/services/warmup_service.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/services/web_search/__init__.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/services/web_search/provider_factory.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/services/web_search/providers/__init__.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/services/web_search/providers/brave_provider.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/services/web_search_service.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/static/images/fernando.jpeg +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/static/images/iatoolkit_core.png +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/static/images/iatoolkit_logo.png +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/static/js/chat_feedback_button.js +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/static/js/chat_filepond.js +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/static/js/chat_help_content.js +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/static/js/chat_history_button.js +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/static/js/chat_logout_button.js +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/static/js/chat_main.js +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/static/js/chat_memory_button.js +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/static/js/chat_model_selector.js +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/static/js/chat_onboarding_button.js +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/static/js/chat_prompt_manager.js +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/static/js/chat_reload_button.js +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/static/styles/chat_iatoolkit.css +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/static/styles/chat_modal.css +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/static/styles/chat_public.css +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/static/styles/documents.css +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/static/styles/landing_page.css +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/static/styles/llm_output.css +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/static/styles/onboarding.css +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/system_prompts/__init__.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/templates/_company_header.html +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/templates/_login_widget.html +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/templates/account.html +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/templates/base.html +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/templates/change_password.html +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/templates/chat.html +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/templates/chat_memory_modal.html +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/templates/chat_modals.html +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/templates/error.html +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/templates/forgot_password.html +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/templates/home_hosted_default.html +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/templates/memory/wiki_schema.md +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/templates/onboarding_shell.html +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/templates/pdf/base.html +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/templates/pdf/letter.html +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/templates/pdf/report.html +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/templates/pdf/simple.html +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/templates/signup.html +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/views/__init__.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/views/account_view.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/views/api_key_api_view.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/views/base_login_view.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/views/categories_api_view.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/views/change_password_view.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/views/chat_context_preview_api_view.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/views/chat_view.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/views/configuration_api_view.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/views/connectors_api_view.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/views/embedding_api_view.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/views/forgot_password_view.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/views/help_content_api_view.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/views/history_api_view.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/views/home_view.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/views/init_context_api_view.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/views/llmquery_api_view.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/views/load_document_api_view.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/views/login_view.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/views/logout_api_view.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/views/memory_api_view.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/views/profile_api_view.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/views/prompt_api_view.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/views/prompt_context_preview_api_view.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/views/prompt_resource_api_view.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/views/rag_api_view.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/views/root_redirect_view.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/views/signup_view.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/views/static_page_view.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/views/tool_api_view.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/views/user_feedback_api_view.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/views/users_api_view.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/views/verify_user_view.py +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit.egg-info/dependency_links.txt +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit.egg-info/requires.txt +0 -0
- {iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit.egg-info/top_level.txt +0 -0
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
### SQL MySQL: casting y tipos
|
|
2
|
+
|
|
3
|
+
- Usa `CAST(... AS SIGNED)` para enteros cuando corresponda.
|
|
4
|
+
- Usa `CAST(... AS DECIMAL(18, 4))` para montos o numeros con decimales.
|
|
5
|
+
- No uses casts de PostgreSQL como `::NUMERIC`, `::INTEGER`, `::DATE` o `::BOOLEAN`.
|
|
6
|
+
- Si un valor JSON puede venir vacio, primero conviertelo a texto con `JSON_UNQUOTE(...)`
|
|
7
|
+
y luego usa `NULLIF(..., '')` antes del `CAST(...)`.
|
|
8
|
+
- Para fechas en texto usa `STR_TO_DATE(texto, '%d-%m-%Y')` o el formato que
|
|
9
|
+
corresponda a los datos reales.
|
|
10
|
+
- No uses `TO_DATE(...)`, `date_trunc(...)` ni operadores exclusivos de PostgreSQL.
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
### SQL MySQL: JSON
|
|
2
|
+
|
|
3
|
+
- Si un campo JSON contiene claves anidadas, usa `JSON_EXTRACT(json_col, '$.campo')`.
|
|
4
|
+
- Si necesitas comparar o proyectar texto desde JSON, usa
|
|
5
|
+
`JSON_UNQUOTE(JSON_EXTRACT(json_col, '$.campo'))`.
|
|
6
|
+
- No uses operadores de PostgreSQL como `->`, `->>`, `jsonb_each`,
|
|
7
|
+
`jsonb_array_elements` ni tipos `jsonb`.
|
|
8
|
+
- Si necesitas contar o expandir arrays JSON, usa funciones compatibles con MySQL 8
|
|
9
|
+
y evita sintaxis especifica de PostgreSQL.
|
|
@@ -941,6 +941,10 @@ ui:
|
|
|
941
941
|
sql_sources_form_bridge_id: "Bridge ID"
|
|
942
942
|
sql_sources_form_description: "Description"
|
|
943
943
|
sql_sources_form_active: "Active"
|
|
944
|
+
sql_context_scope_title: "SQL Context"
|
|
945
|
+
sql_context_scope_empty: "Select a database to define which tables belong to the SQL context."
|
|
946
|
+
sql_context_scope_loading: "Load the database schema to choose the tables that should appear in context."
|
|
947
|
+
sql_context_scope_all_tables: "Include all tables"
|
|
944
948
|
sql_sources_save_source: "Save Source"
|
|
945
949
|
sql_sources_delete_title: "Delete SQL Source"
|
|
946
950
|
sql_sources_delete_message: "Are you sure you want to delete this SQL source?"
|
|
@@ -1752,6 +1756,15 @@ js_messages:
|
|
|
1752
1756
|
sql_sources_deleting: "Deleting..."
|
|
1753
1757
|
sql_sources_delete_failed: "Error deleting SQL source"
|
|
1754
1758
|
sql_sources_deleted_ok: "SQL source deleted."
|
|
1759
|
+
sql_context_scope_save: "Save"
|
|
1760
|
+
sql_context_scope_saving: "Saving..."
|
|
1761
|
+
sql_context_scope_saved_ok: "SQL context scope updated."
|
|
1762
|
+
sql_context_scope_save_failed: "Error saving SQL context scope."
|
|
1763
|
+
sql_context_scope_empty: "Select a database to define which tables belong to the SQL context."
|
|
1764
|
+
sql_context_scope_loading: "Load the database schema to choose the tables that should appear in context."
|
|
1765
|
+
sql_context_scope_all_tables_hint: "All detected tables will be included in the SQL context."
|
|
1766
|
+
sql_context_scope_selected_tables_hint: "{selected} of {total} tables selected for context."
|
|
1767
|
+
sql_context_scope_table_toggle: "Include table in SQL context"
|
|
1755
1768
|
prompts_polling_attempt: "Polling attempt {attempt}"
|
|
1756
1769
|
prompts_polling_started: "Polling started"
|
|
1757
1770
|
prompts_task_queued_waiting: "Task #{id} queued. Waiting for execution result..."
|
|
@@ -943,6 +943,10 @@ ui:
|
|
|
943
943
|
sql_sources_form_bridge_id: "Bridge ID"
|
|
944
944
|
sql_sources_form_description: "Descripción"
|
|
945
945
|
sql_sources_form_active: "Activa"
|
|
946
|
+
sql_context_scope_title: "Contexto SQL"
|
|
947
|
+
sql_context_scope_empty: "Selecciona una base para definir qué tablas pertenecen al contexto SQL."
|
|
948
|
+
sql_context_scope_loading: "Carga el esquema de la base para elegir las tablas que deben aparecer en el contexto."
|
|
949
|
+
sql_context_scope_all_tables: "Incluir todas las tablas"
|
|
946
950
|
sql_sources_save_source: "Guardar fuente"
|
|
947
951
|
sql_sources_delete_title: "Eliminar fuente SQL"
|
|
948
952
|
sql_sources_delete_message: "¿Seguro que quieres eliminar esta fuente SQL?"
|
|
@@ -1754,6 +1758,15 @@ js_messages:
|
|
|
1754
1758
|
sql_sources_deleting: "Eliminando..."
|
|
1755
1759
|
sql_sources_delete_failed: "Error al eliminar la fuente SQL"
|
|
1756
1760
|
sql_sources_deleted_ok: "Fuente SQL eliminada."
|
|
1761
|
+
sql_context_scope_save: "Guardar"
|
|
1762
|
+
sql_context_scope_saving: "Guardando..."
|
|
1763
|
+
sql_context_scope_saved_ok: "Scope de contexto SQL actualizado."
|
|
1764
|
+
sql_context_scope_save_failed: "Error al guardar el scope del contexto SQL."
|
|
1765
|
+
sql_context_scope_empty: "Selecciona una base para definir qué tablas pertenecen al contexto SQL."
|
|
1766
|
+
sql_context_scope_loading: "Carga el esquema de la base para elegir las tablas que deben aparecer en el contexto."
|
|
1767
|
+
sql_context_scope_all_tables_hint: "Todas las tablas detectadas se incluirán en el contexto SQL."
|
|
1768
|
+
sql_context_scope_selected_tables_hint: "{selected} de {total} tablas seleccionadas para contexto."
|
|
1769
|
+
sql_context_scope_table_toggle: "Incluir tabla en el contexto SQL"
|
|
1757
1770
|
prompts_polling_attempt: "Intento de consulta {attempt}"
|
|
1758
1771
|
prompts_polling_started: "Consulta iniciada"
|
|
1759
1772
|
prompts_task_queued_waiting: "Tarea #{id} en cola. Esperando resultado de ejecución..."
|
|
@@ -641,6 +641,8 @@ class SqlSource(Base):
|
|
|
641
641
|
schema = Column(String, nullable=False, default="public")
|
|
642
642
|
description = Column(Text, nullable=True)
|
|
643
643
|
bridge_id = Column(String, nullable=True)
|
|
644
|
+
include_all_tables = Column(Boolean, nullable=False, default=True)
|
|
645
|
+
included_tables = Column(JSON_NATIVE, nullable=False, default=list)
|
|
644
646
|
|
|
645
647
|
source = Column(String(16), nullable=False, default=SOURCE_YAML)
|
|
646
648
|
is_active = Column(Boolean, nullable=False, default=True)
|
|
@@ -53,6 +53,7 @@ class CompanyContextService:
|
|
|
53
53
|
sql_context = ""
|
|
54
54
|
yaml_context = ""
|
|
55
55
|
db_tables = []
|
|
56
|
+
sql_source_table_scopes = {}
|
|
56
57
|
|
|
57
58
|
# 1. Context from Markdown (context/*.md) files
|
|
58
59
|
try:
|
|
@@ -65,12 +66,17 @@ class CompanyContextService:
|
|
|
65
66
|
try:
|
|
66
67
|
sql_context, db_tables = self._get_sql_enriched_context(company_short_name)
|
|
67
68
|
sql_context = sql_context.strip()
|
|
69
|
+
sql_source_table_scopes = self._get_sql_source_table_scopes(company_short_name)
|
|
68
70
|
except Exception as e:
|
|
69
71
|
logging.warning(f"Could not generate SQL context for '{company_short_name}': {e}")
|
|
70
72
|
|
|
71
73
|
# 4. Context from residual yaml (schema/*.yaml) files
|
|
72
74
|
try:
|
|
73
|
-
yaml_schema_context = self._get_yaml_schema_context(
|
|
75
|
+
yaml_schema_context = self._get_yaml_schema_context(
|
|
76
|
+
company_short_name,
|
|
77
|
+
db_tables,
|
|
78
|
+
sql_source_table_scopes=sql_source_table_scopes,
|
|
79
|
+
).strip()
|
|
74
80
|
if yaml_schema_context:
|
|
75
81
|
yaml_context = f"## Esquemas adicionales\n\n{yaml_schema_context}"
|
|
76
82
|
except Exception as e:
|
|
@@ -93,6 +99,34 @@ class CompanyContextService:
|
|
|
93
99
|
logging.warning(f"Could not generate SQL context for '{company_short_name}': {e}")
|
|
94
100
|
return ""
|
|
95
101
|
|
|
102
|
+
def _get_sql_source_table_scopes(self, company_short_name: str) -> dict[str, set[str] | None]:
|
|
103
|
+
scopes: dict[str, set[str] | None] = {}
|
|
104
|
+
sql_sources = self.sql_source_service.list_sources(company_short_name, include_inactive=False)
|
|
105
|
+
|
|
106
|
+
for source in sql_sources:
|
|
107
|
+
db_name = str(source.get("database") or "").strip()
|
|
108
|
+
if not db_name:
|
|
109
|
+
continue
|
|
110
|
+
scopes[db_name] = self._resolve_allowed_tables_for_source(source)
|
|
111
|
+
return scopes
|
|
112
|
+
|
|
113
|
+
def _resolve_allowed_tables_for_source(self, source: dict) -> set[str] | None:
|
|
114
|
+
if bool(source.get("include_all_tables", True)):
|
|
115
|
+
return None
|
|
116
|
+
|
|
117
|
+
normalized_tables: set[str] = set()
|
|
118
|
+
for table_name in source.get("included_tables") or []:
|
|
119
|
+
normalized_tables.update(self._table_name_candidates(str(table_name or "")))
|
|
120
|
+
return normalized_tables
|
|
121
|
+
|
|
122
|
+
@classmethod
|
|
123
|
+
def _table_is_allowed(cls, table_name: str, allowed_tables: set[str] | None) -> bool:
|
|
124
|
+
if allowed_tables is None:
|
|
125
|
+
return True
|
|
126
|
+
if not allowed_tables:
|
|
127
|
+
return False
|
|
128
|
+
return bool(cls._table_name_candidates(table_name) & allowed_tables)
|
|
129
|
+
|
|
96
130
|
def _get_sql_enriched_context(self, company_short_name: str, allowed_databases: List[str] | None = None):
|
|
97
131
|
"""
|
|
98
132
|
Generates the SQL context for the LLM using the enriched schema logic.
|
|
@@ -121,12 +155,23 @@ class CompanyContextService:
|
|
|
121
155
|
if allowed_database_set and db_name not in allowed_database_set:
|
|
122
156
|
continue
|
|
123
157
|
|
|
158
|
+
allowed_tables = self._resolve_allowed_tables_for_source(source)
|
|
159
|
+
|
|
124
160
|
try:
|
|
125
161
|
# 1. Get the Enriched Schema (Physical + YAML)
|
|
126
162
|
enriched_structure = self.get_enriched_database_schema(company_short_name, db_name)
|
|
127
163
|
if not enriched_structure:
|
|
128
164
|
continue
|
|
129
165
|
|
|
166
|
+
if allowed_tables is not None:
|
|
167
|
+
enriched_structure = {
|
|
168
|
+
table_name: table_data
|
|
169
|
+
for table_name, table_data in enriched_structure.items()
|
|
170
|
+
if self._table_is_allowed(table_name, allowed_tables)
|
|
171
|
+
}
|
|
172
|
+
if not enriched_structure:
|
|
173
|
+
continue
|
|
174
|
+
|
|
130
175
|
# 2. Build Header for this Database
|
|
131
176
|
dialect = self.sql_service.get_database_dialect(company_short_name, db_name)
|
|
132
177
|
dialect_suffix = f" [dialect={dialect}]" if dialect else ""
|
|
@@ -196,9 +241,15 @@ class CompanyContextService:
|
|
|
196
241
|
return header + "\n\n---\n\n".join(context_output), db_tables
|
|
197
242
|
|
|
198
243
|
|
|
199
|
-
def _get_yaml_schema_context(
|
|
244
|
+
def _get_yaml_schema_context(
|
|
245
|
+
self,
|
|
246
|
+
company_short_name: str,
|
|
247
|
+
db_tables: List[Dict],
|
|
248
|
+
sql_source_table_scopes: dict[str, set[str] | None] | None = None,
|
|
249
|
+
) -> str:
|
|
200
250
|
# Get context from .yaml schema files using the repository
|
|
201
251
|
yaml_schema_context = ''
|
|
252
|
+
sql_source_table_scopes = sql_source_table_scopes or {}
|
|
202
253
|
|
|
203
254
|
try:
|
|
204
255
|
# 1. List yaml files in the schema "folder"
|
|
@@ -211,12 +262,17 @@ class CompanyContextService:
|
|
|
211
262
|
table_name = f.split('.')[0]
|
|
212
263
|
|
|
213
264
|
exists = any(
|
|
214
|
-
item["db_name"] == dbname
|
|
265
|
+
item["db_name"] == dbname
|
|
266
|
+
and bool(self._table_name_candidates(item["table_name"]) & self._table_name_candidates(table_name))
|
|
215
267
|
for item in db_tables
|
|
216
268
|
)
|
|
217
269
|
if exists:
|
|
218
270
|
continue
|
|
219
271
|
|
|
272
|
+
allowed_tables = sql_source_table_scopes.get(dbname)
|
|
273
|
+
if dbname in sql_source_table_scopes and not self._table_is_allowed(table_name, allowed_tables):
|
|
274
|
+
continue
|
|
275
|
+
|
|
220
276
|
try:
|
|
221
277
|
# 2. Read content
|
|
222
278
|
content = self.asset_repo.read_text(company_short_name, AssetType.SCHEMA, filename)
|
|
@@ -70,6 +70,26 @@ class SqlSourceService:
|
|
|
70
70
|
normalized = str(value or "").strip()
|
|
71
71
|
return normalized or None
|
|
72
72
|
|
|
73
|
+
@staticmethod
|
|
74
|
+
def _normalize_included_tables(value) -> list[str]:
|
|
75
|
+
if value in (None, ""):
|
|
76
|
+
return []
|
|
77
|
+
if not isinstance(value, list):
|
|
78
|
+
raise IAToolkitException(
|
|
79
|
+
IAToolkitException.ErrorType.INVALID_PARAMETER,
|
|
80
|
+
"included_tables must be a list",
|
|
81
|
+
)
|
|
82
|
+
|
|
83
|
+
normalized: list[str] = []
|
|
84
|
+
seen: set[str] = set()
|
|
85
|
+
for item in value:
|
|
86
|
+
table_name = str(item or "").strip()
|
|
87
|
+
if not table_name or table_name in seen:
|
|
88
|
+
continue
|
|
89
|
+
seen.add(table_name)
|
|
90
|
+
normalized.append(table_name)
|
|
91
|
+
return normalized
|
|
92
|
+
|
|
73
93
|
def _validate_source_fields(
|
|
74
94
|
self,
|
|
75
95
|
*,
|
|
@@ -133,9 +153,13 @@ class SqlSourceService:
|
|
|
133
153
|
schema=self._normalize_schema(payload.get("schema")),
|
|
134
154
|
description=self._normalize_optional_text(payload.get("description")),
|
|
135
155
|
bridge_id=bridge_id,
|
|
156
|
+
include_all_tables=bool(payload.get("include_all_tables", True)),
|
|
157
|
+
included_tables=self._normalize_included_tables(payload.get("included_tables")),
|
|
136
158
|
source=self._normalize_source(payload.get("source") or SqlSource.SOURCE_USER),
|
|
137
159
|
is_active=bool(payload.get("is_active", True)),
|
|
138
160
|
)
|
|
161
|
+
if source.include_all_tables:
|
|
162
|
+
source.included_tables = []
|
|
139
163
|
|
|
140
164
|
persisted = self.sql_source_repo.create_or_update(source)
|
|
141
165
|
self.refresh_runtime(company_short_name)
|
|
@@ -181,11 +205,19 @@ class SqlSourceService:
|
|
|
181
205
|
if "bridge_id" in payload:
|
|
182
206
|
source.bridge_id = self._normalize_optional_text(payload.get("bridge_id"))
|
|
183
207
|
|
|
208
|
+
if "include_all_tables" in payload:
|
|
209
|
+
source.include_all_tables = bool(payload.get("include_all_tables"))
|
|
210
|
+
|
|
211
|
+
if "included_tables" in payload:
|
|
212
|
+
source.included_tables = self._normalize_included_tables(payload.get("included_tables"))
|
|
213
|
+
|
|
184
214
|
if "is_active" in payload:
|
|
185
215
|
source.is_active = bool(payload.get("is_active"))
|
|
186
216
|
|
|
187
217
|
# Once edited via API, ownership moves to USER.
|
|
188
218
|
source.source = SqlSource.SOURCE_USER
|
|
219
|
+
if bool(getattr(source, "include_all_tables", True)):
|
|
220
|
+
source.included_tables = []
|
|
189
221
|
|
|
190
222
|
self._validate_source_fields(
|
|
191
223
|
database=self._normalize_database(source.database),
|
|
@@ -270,8 +302,12 @@ class SqlSourceService:
|
|
|
270
302
|
target.schema = self._normalize_schema(raw.get("schema"))
|
|
271
303
|
target.description = self._normalize_optional_text(raw.get("description"))
|
|
272
304
|
target.bridge_id = bridge_id
|
|
305
|
+
target.include_all_tables = bool(raw.get("include_all_tables", True))
|
|
306
|
+
target.included_tables = self._normalize_included_tables(raw.get("included_tables"))
|
|
273
307
|
target.source = SqlSource.SOURCE_YAML
|
|
274
308
|
target.is_active = bool(raw.get("is_active", True))
|
|
309
|
+
if target.include_all_tables:
|
|
310
|
+
target.included_tables = []
|
|
275
311
|
|
|
276
312
|
persisted = self.sql_source_repo.create_or_update(target)
|
|
277
313
|
by_database[database] = persisted
|
|
@@ -341,4 +377,3 @@ class SqlSourceService:
|
|
|
341
377
|
registered += 1
|
|
342
378
|
|
|
343
379
|
return {"registered": registered, "skipped": skipped}
|
|
344
|
-
|
|
@@ -49,6 +49,8 @@ src/iatoolkit/config/system_prompts/sql_aggregation_scope.prompt
|
|
|
49
49
|
src/iatoolkit/config/system_prompts/sql_casting.prompt
|
|
50
50
|
src/iatoolkit/config/system_prompts/sql_core.prompt
|
|
51
51
|
src/iatoolkit/config/system_prompts/sql_jsonb.prompt
|
|
52
|
+
src/iatoolkit/config/system_prompts/sql_mysql_casting.prompt
|
|
53
|
+
src/iatoolkit/config/system_prompts/sql_mysql_json.prompt
|
|
52
54
|
src/iatoolkit/config/system_prompts/sql_rules.prompt
|
|
53
55
|
src/iatoolkit/config/system_prompts/tool_html_passthrough.prompt
|
|
54
56
|
src/iatoolkit/infra/__init__.py
|
|
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.11.0 → iatoolkit-2.11.2}/src/iatoolkit/common/interfaces/memory_compilation_trigger.py
RENAMED
|
File without changes
|
{iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/common/interfaces/memory_lint_trigger.py
RENAMED
|
File without changes
|
|
File without changes
|
{iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/common/interfaces/signup_policy_resolver.py
RENAMED
|
File without changes
|
{iatoolkit-2.11.0 → iatoolkit-2.11.2}/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
|
{iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/config/system_prompts/chat_state_rules.prompt
RENAMED
|
File without changes
|
{iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/config/system_prompts/chat_user_profile.prompt
RENAMED
|
File without changes
|
{iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/config/system_prompts/core_identity.prompt
RENAMED
|
File without changes
|
{iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/config/system_prompts/email_output.prompt
RENAMED
|
File without changes
|
|
File without changes
|
{iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/config/system_prompts/format_styles.prompt
RENAMED
|
File without changes
|
{iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/config/system_prompts/html_structures.prompt
RENAMED
|
File without changes
|
{iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/config/system_prompts/links_documents.prompt
RENAMED
|
File without changes
|
{iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/config/system_prompts/memory_usage.prompt
RENAMED
|
File without changes
|
{iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/config/system_prompts/multimodal_basics.prompt
RENAMED
|
File without changes
|
{iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/config/system_prompts/output_basics.prompt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/config/system_prompts/sql_casting.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
|
|
File without changes
|
|
File without changes
|
{iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/infra/connectors/file_connector_factory.py
RENAMED
|
File without changes
|
|
File without changes
|
{iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/infra/connectors/google_drive_connector.py
RENAMED
|
File without changes
|
{iatoolkit-2.11.0 → iatoolkit-2.11.2}/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
|
{iatoolkit-2.11.0 → iatoolkit-2.11.2}/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.11.0 → iatoolkit-2.11.2}/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.11.0 → iatoolkit-2.11.2}/src/iatoolkit/repositories/filesystem_asset_repository.py
RENAMED
|
File without changes
|
|
File without changes
|
{iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/repositories/mcp_personal_access_token_repo.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{iatoolkit-2.11.0 → iatoolkit-2.11.2}/src/iatoolkit/services/mcp_personal_access_token_service.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|