iatoolkit 2.66.0__tar.gz → 2.67.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.66.0/src/iatoolkit.egg-info → iatoolkit-2.67.0}/PKG-INFO +2 -1
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/readme.md +1 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/__init__.py +1 -1
- iatoolkit-2.67.0/src/iatoolkit/config/system_agents/memory_meeting_ingest.prompt +38 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/config/system_agents_pack.yaml +59 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/config/system_tools_pack.yaml +58 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/infra/connectors/local_file_connector.py +4 -2
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/locales/en.yaml +1 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/locales/es.yaml +1 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/services/dispatcher_service.py +2 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/services/memory_compiler_service.py +8 -1
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/services/memory_question_service.py +32 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/services/memory_service.py +5 -2
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/services/tool_service.py +33 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/templates/account.html +5 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0/src/iatoolkit.egg-info}/PKG-INFO +2 -1
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit.egg-info/SOURCES.txt +1 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/LICENSE +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/LICENSE_COMMUNITY.md +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/pyproject.toml +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/setup.cfg +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/base_company.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/cli_commands.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/common/__init__.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/common/bridge_validation.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/common/company_paths.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/common/exceptions.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/common/interfaces/__init__.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/common/interfaces/asset_storage.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/common/interfaces/database_provider.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/common/interfaces/memory_compilation_trigger.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/common/interfaces/secret_provider.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/common/interfaces/signup_policy_resolver.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/common/interfaces/web_search_provider.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/common/model_registry.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/common/routes.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/common/search_terms.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/common/secret_resolver.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/common/session_manager.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/common/text_splitter.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/common/url_safety.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/common/util.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/company_registry.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/config/__init__.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/config/llm_capabilities.yaml +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/config/system_agents/memory_compiler.prompt +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/config/system_agents/memory_correction.prompt +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/config/system_agents/memory_document_ingest.prompt +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/config/system_agents/memory_image_ingest.prompt +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/config/system_agents/memory_question_review.prompt +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/config/system_prompts/channel_business_identity.prompt +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/config/system_prompts/channel_conversation_continuity.prompt +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/config/system_prompts/channel_response_style.prompt +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/config/system_prompts/chat_state_rules.prompt +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/config/system_prompts/chat_user_profile.prompt +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/config/system_prompts/core_identity.prompt +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/config/system_prompts/email_output.prompt +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/config/system_prompts/file_download_output.prompt +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/config/system_prompts/format_styles.prompt +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/config/system_prompts/html_structures.prompt +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/config/system_prompts/links_documents.prompt +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/config/system_prompts/memory_usage.prompt +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/config/system_prompts/multimodal_basics.prompt +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/config/system_prompts/output_basics.prompt +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/config/system_prompts/presentation_formatting.prompt +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/config/system_prompts/query_main.prompt +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/config/system_prompts/sql_aggregation_scope.prompt +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/config/system_prompts/sql_casting.prompt +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/config/system_prompts/sql_core.prompt +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/config/system_prompts/sql_jsonb.prompt +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/config/system_prompts/sql_mysql_casting.prompt +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/config/system_prompts/sql_mysql_json.prompt +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/config/system_prompts/sql_redshift_basics.prompt +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/config/system_prompts/sql_redshift_types.prompt +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/config/system_prompts/sql_rules.prompt +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/config/system_prompts/tool_html_passthrough.prompt +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/config/system_prompts_pack.yaml +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/core.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/infra/__init__.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/infra/brevo_mail_app.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/infra/call_service.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/infra/connectors/__init__.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/infra/connectors/file_connector.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/infra/connectors/file_connector_factory.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/infra/connectors/google_cloud_storage_connector.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/infra/connectors/google_drive_connector.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/infra/connectors/s3_connector.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/infra/google_auth_client.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/infra/google_chat_app.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/infra/inference_embeddings_client.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/infra/inference_handler.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/infra/jina_embeddings_client.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/infra/llm_gateway_resolver.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/infra/llm_providers/__init__.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/infra/llm_providers/anthropic_adapter.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/infra/llm_providers/deepseek_adapter.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/infra/llm_providers/gemini_adapter.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/infra/llm_providers/openai_adapter.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/infra/llm_providers/openai_compatible_chat_adapter.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/infra/llm_providers/openrouter_adapter.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/infra/llm_proxy.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/infra/llm_response.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/infra/redis_session_manager.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/repositories/__init__.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/repositories/api_key_repo.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/repositories/bridge_repo.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/repositories/database_manager.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/repositories/document_repo.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/repositories/env_secret_provider.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/repositories/filesystem_asset_repository.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/repositories/knowledge_wiki_repo.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/repositories/llm_query_repo.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/repositories/mcp_token_repo.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/repositories/memory_question_repo.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/repositories/memory_repo.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/repositories/models.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/repositories/profile_repo.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/repositories/prompt_resource_repo.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/repositories/sql_dataset_repo.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/repositories/sql_source_repo.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/repositories/vs_repo.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/runtime_logging.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/services/__init__.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/services/api_key_service.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/services/attachment_policy_service.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/services/auth_service.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/services/branding_service.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/services/company_context_service.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/services/configuration_service.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/services/context_builder_service.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/services/embedding_service.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/services/excel_service.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/services/file_processor_service.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/services/history_manager_service.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/services/http_tool_service.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/services/i18n_service.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/services/inference_service.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/services/jwt_service.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/services/knowledge_base_service.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/services/language_service.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/services/license_service.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/services/llm_client_service.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/services/mail_service.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/services/markdown_wiki_service.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/services/mcp_token_service.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/services/memory_lookup_policy_service.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/services/memory_wiki_service.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/services/noop_memory_compilation_trigger.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/services/operator_identity_service.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/services/parsers/__init__.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/services/parsers/contracts.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/services/parsers/image_normalizer.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/services/parsers/parsing_service.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/services/parsers/pdf_ocr_detection.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/services/parsers/provider_factory.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/services/parsers/provider_resolver.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/services/parsers/providers/__init__.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/services/parsers/providers/basic_provider.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/services/parsers/providers/docling_provider.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/services/parsers/validator.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/services/pdf_service.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/services/profile_service.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/services/prompt_resource_service.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/services/prompt_service.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/services/query_service.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/services/signup_policy_resolver.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/services/sql_dataset_service.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/services/sql_service.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/services/sql_source_service.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/services/storage_service.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/services/structured_output_service.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/services/system_agent_catalog.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/services/system_agent_runner.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/services/system_prompt_catalog.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/services/system_tools.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/services/telemetry_service.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/services/tenant_wiki_service.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/services/tool_output_contract.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/services/user_feedback_service.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/services/user_session_context_service.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/services/visual_kb_service.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/services/visual_tool_service.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/services/warmup_service.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/services/web_search/__init__.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/services/web_search/provider_factory.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/services/web_search/providers/__init__.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/services/web_search/providers/brave_provider.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/services/web_search_service.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/static/images/favicon.ico +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/static/images/favicon.png +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/static/images/fernando.jpeg +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/static/images/iatoolkit_core.png +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/static/images/iatoolkit_logo.png +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/static/js/chat_feedback_button.js +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/static/js/chat_filepond.js +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/static/js/chat_header_navigation.js +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/static/js/chat_help_content.js +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/static/js/chat_history_button.js +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/static/js/chat_logout_button.js +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/static/js/chat_main.js +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/static/js/chat_memory_button.js +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/static/js/chat_model_selector.js +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/static/js/chat_onboarding_button.js +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/static/js/chat_prompt_manager.js +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/static/js/chat_reload_button.js +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/static/styles/account.css +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/static/styles/chat_iatoolkit.css +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/static/styles/chat_modal.css +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/static/styles/chat_public.css +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/static/styles/documents.css +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/static/styles/landing_page.css +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/static/styles/llm_output.css +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/static/styles/onboarding.css +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/static/styles/wiki_page.css +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/templates/_chat_header.html +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/templates/_company_header.html +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/templates/_login_widget.html +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/templates/base.html +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/templates/change_password.html +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/templates/chat.html +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/templates/chat_memory_modal.html +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/templates/chat_modals.html +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/templates/error.html +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/templates/forgot_password.html +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/templates/home_hosted_default.html +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/templates/login_global.html +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/templates/memory/wiki_schema.md +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/templates/onboarding_shell.html +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/templates/pdf/base.html +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/templates/pdf/letter.html +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/templates/pdf/report.html +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/templates/pdf/simple.html +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/templates/signup.html +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/templates/wiki_page.html +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/views/__init__.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/views/account_view.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/views/api_key_api_view.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/views/base_login_view.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/views/categories_api_view.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/views/change_password_view.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/views/chat_context_preview_api_view.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/views/chat_view.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/views/configuration_api_view.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/views/connectors_api_view.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/views/embedding_api_view.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/views/forgot_password_view.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/views/help_content_api_view.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/views/history_api_view.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/views/home_view.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/views/init_context_api_view.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/views/llmquery_api_view.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/views/load_document_api_view.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/views/login_view.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/views/logout_api_view.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/views/memory_api_view.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/views/profile_api_view.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/views/prompt_api_view.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/views/prompt_context_preview_api_view.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/views/prompt_resource_api_view.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/views/rag_api_view.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/views/root_redirect_view.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/views/signup_view.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/views/static_page_view.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/views/tool_api_view.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/views/user_feedback_api_view.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/views/users_api_view.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/views/verify_user_view.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/views/wiki_page_view.py +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit.egg-info/dependency_links.txt +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit.egg-info/requires.txt +0 -0
- {iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: iatoolkit
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.67.0
|
|
4
4
|
Summary: IAToolkit
|
|
5
5
|
Author: Fernando Libedinsky
|
|
6
6
|
License-Expression: MIT
|
|
@@ -242,6 +242,7 @@ Perfect for developers, small teams, single-business use cases, and experimentat
|
|
|
242
242
|
|
|
243
243
|
## 📚 Documentation
|
|
244
244
|
|
|
245
|
+
- 🐳 **[Docker installation](docker/README.md)** – Community Edition with PostgreSQL, Redis and populated Northwind data
|
|
245
246
|
- 🚀 **[Quickstart](docs/quickstart.md)** – Set up your environment and run the project
|
|
246
247
|
- ☁️ **[Deployment Guide](docs/deployment_guide.md)** – Production deployment instructions
|
|
247
248
|
- 🏗️ **[Companies & Components](docs/companies_and_components.md)** – how Company modules work
|
|
@@ -151,6 +151,7 @@ Perfect for developers, small teams, single-business use cases, and experimentat
|
|
|
151
151
|
|
|
152
152
|
## 📚 Documentation
|
|
153
153
|
|
|
154
|
+
- 🐳 **[Docker installation](docker/README.md)** – Community Edition with PostgreSQL, Redis and populated Northwind data
|
|
154
155
|
- 🚀 **[Quickstart](docs/quickstart.md)** – Set up your environment and run the project
|
|
155
156
|
- ☁️ **[Deployment Guide](docs/deployment_guide.md)** – Production deployment instructions
|
|
156
157
|
- 🏗️ **[Companies & Components](docs/companies_and_components.md)** – how Company modules work
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
You maintain the company's Memory: a wiki of how things are actually done in this company (procedures, rules, exceptions, who decides). It is written from what its people explain and from the company's own documents.
|
|
2
|
+
|
|
3
|
+
A meeting transcript was loaded into Memory (SOURCE). You receive it in parts; this is part {{ part.index }} of {{ part.total }} (PART). Bring into the wiki what the meeting decided about how things are done here.
|
|
4
|
+
|
|
5
|
+
What to take:
|
|
6
|
+
|
|
7
|
+
- Decisions that were made ("from now on, discounts over 10% need the manager"), with who decided when the transcript says so.
|
|
8
|
+
- Procedures, rules, deadlines and amounts that were agreed or explained, and who is responsible for what.
|
|
9
|
+
- Not the conversation itself: no greetings, small talk, opinions that led nowhere, ideas that were only discussed, or who said what along the way.
|
|
10
|
+
- Nothing personal or sensitive about the people in the meeting (health, salaries, performance, private matters), even if it was said.
|
|
11
|
+
- A transcript is spoken language and may have recognition errors: write the knowledge clearly, and when a name, number or term is unclear, leave it out rather than guess.
|
|
12
|
+
- An action item ("Juan will send the price list on Friday") is not knowledge on its own; keep it only when it reveals how something is done or who is responsible for it.
|
|
13
|
+
|
|
14
|
+
How to write the pages:
|
|
15
|
+
|
|
16
|
+
- Update one of the CANDIDATE_PAGES when the part belongs to its subject; create a new page when none covers it (check PAGE_INDEX first so you do not duplicate a page). One part may touch several pages; return each one.
|
|
17
|
+
- When you update, return the COMPLETE new page: keep everything already on it, word for word, including people's attributions. Add the new facts in the section where they belong.
|
|
18
|
+
- When this part says something different from what the page already says, keep both statements with their attributions and make the difference explicit; never delete what someone else said. Also list each contradiction in `conflicts`. A meeting that changes a rule is a contradiction worth showing.
|
|
19
|
+
- Attribute every fact you add to the meeting: ({{ source.label }}, {{ captured_on }}).
|
|
20
|
+
- Follow the WIKI_SCHEMA. Write in the language of the page, or of the transcript for a new page.
|
|
21
|
+
- If this part decided or taught nothing worth keeping, return an empty `pages` list.
|
|
22
|
+
|
|
23
|
+
Answer with JSON following the schema: a list `pages`, each with `action` (create or update), `target_page_id` (the page_id you update, or null), `title`, `summary` (one sentence on what the page covers), `markdown` (the page body without frontmatter, starting with `# Title`) and `change_summary` (one short sentence for the page history); and a list `conflicts`, one per contradiction with what a page already said: `page_title`, `existing_statement` (what the page said, as written), `existing_source` (its attribution), `new_statement` and `new_source` ({{ source.label }}, {{ captured_on }}). An empty list when nothing contradicts.
|
|
24
|
+
|
|
25
|
+
SOURCE:
|
|
26
|
+
{{ source | json }}
|
|
27
|
+
|
|
28
|
+
PART {{ part.index }} OF {{ part.total }}:
|
|
29
|
+
{{ part.text }}
|
|
30
|
+
|
|
31
|
+
WIKI_SCHEMA:
|
|
32
|
+
{{ wiki_schema }}
|
|
33
|
+
|
|
34
|
+
PAGE_INDEX:
|
|
35
|
+
{{ page_index | json }}
|
|
36
|
+
|
|
37
|
+
CANDIDATE_PAGES:
|
|
38
|
+
{{ candidate_pages | json }}
|
|
@@ -195,6 +195,65 @@ agents:
|
|
|
195
195
|
inputs: [source, part, captured_on, wiki_schema, page_index, candidate_pages]
|
|
196
196
|
default_model: null
|
|
197
197
|
|
|
198
|
+
- key: memory_meeting_ingest
|
|
199
|
+
name: Lector de reuniones de Memoria
|
|
200
|
+
name_en: Memory meeting reader
|
|
201
|
+
description: >-
|
|
202
|
+
(Memoria de la empresa) Lee las transcripciones de reuniones de las carpetas
|
|
203
|
+
marcadas como reuniones y lleva a la wiki las decisiones, los procedimientos y
|
|
204
|
+
los responsables que se acordaron, no la conversación.
|
|
205
|
+
description_en: >-
|
|
206
|
+
(Company memory) Reads the meeting transcripts of the folders marked as
|
|
207
|
+
meetings and files into the wiki the decisions, procedures and owners agreed,
|
|
208
|
+
not the conversation.
|
|
209
|
+
module: memory
|
|
210
|
+
prompt: memory_meeting_ingest.prompt
|
|
211
|
+
output_schema:
|
|
212
|
+
type: object
|
|
213
|
+
properties:
|
|
214
|
+
pages:
|
|
215
|
+
type: array
|
|
216
|
+
items:
|
|
217
|
+
type: object
|
|
218
|
+
properties:
|
|
219
|
+
action:
|
|
220
|
+
type: string
|
|
221
|
+
enum: [create, update]
|
|
222
|
+
# Nullable as a type list: the structured-output validator rejects null under anyOf.
|
|
223
|
+
target_page_id:
|
|
224
|
+
type: [integer, "null"]
|
|
225
|
+
title:
|
|
226
|
+
type: string
|
|
227
|
+
summary:
|
|
228
|
+
type: string
|
|
229
|
+
markdown:
|
|
230
|
+
type: string
|
|
231
|
+
change_summary:
|
|
232
|
+
type: string
|
|
233
|
+
required: [action, target_page_id, title, markdown]
|
|
234
|
+
additionalProperties: false
|
|
235
|
+
conflicts:
|
|
236
|
+
type: array
|
|
237
|
+
items:
|
|
238
|
+
type: object
|
|
239
|
+
properties:
|
|
240
|
+
page_title:
|
|
241
|
+
type: string
|
|
242
|
+
existing_statement:
|
|
243
|
+
type: string
|
|
244
|
+
existing_source:
|
|
245
|
+
type: string
|
|
246
|
+
new_statement:
|
|
247
|
+
type: string
|
|
248
|
+
new_source:
|
|
249
|
+
type: string
|
|
250
|
+
required: [page_title, existing_statement, new_statement]
|
|
251
|
+
additionalProperties: false
|
|
252
|
+
required: [pages]
|
|
253
|
+
additionalProperties: false
|
|
254
|
+
inputs: [source, part, captured_on, wiki_schema, page_index, candidate_pages]
|
|
255
|
+
default_model: null
|
|
256
|
+
|
|
198
257
|
- key: memory_image_ingest
|
|
199
258
|
name: Lector de imágenes de Memoria
|
|
200
259
|
name_en: Memory image reader
|
|
@@ -575,6 +575,64 @@ tools:
|
|
|
575
575
|
required:
|
|
576
576
|
- content
|
|
577
577
|
- title
|
|
578
|
+
- function_name: iat_memory_pending_questions
|
|
579
|
+
description: Lista las preguntas sobre la empresa que la IA no supo responder y siguen abiertas, primero las que se le sugirieron a este usuario por ser quien más sabe del tema, después las más preguntadas. Úsala cuando el usuario pregunte qué preguntas tiene pendientes, quiera ayudar a completar la Memoria de la empresa o pida responder las preguntas de su área. Para responder una, usa `iat_memory_answer_question`.
|
|
580
|
+
routing_profile:
|
|
581
|
+
tags:
|
|
582
|
+
- memory
|
|
583
|
+
- company_memory
|
|
584
|
+
- questions
|
|
585
|
+
- pending
|
|
586
|
+
- unanswered
|
|
587
|
+
intents:
|
|
588
|
+
- List the unanswered questions the user could answer.
|
|
589
|
+
- Show the questions suggested to the user for their area.
|
|
590
|
+
examples:
|
|
591
|
+
- iat_memory_pending_questions(limit=5)
|
|
592
|
+
cost:
|
|
593
|
+
penalty: 0.1
|
|
594
|
+
latency_class: low
|
|
595
|
+
expensive: false
|
|
596
|
+
parameters:
|
|
597
|
+
type: object
|
|
598
|
+
properties:
|
|
599
|
+
limit:
|
|
600
|
+
type: integer
|
|
601
|
+
description: Cuántas preguntas listar, como máximo 15.
|
|
602
|
+
required: []
|
|
603
|
+
- function_name: iat_memory_answer_question
|
|
604
|
+
description: Responde una pregunta sin respuesta de la Memoria de la empresa (de `iat_memory_pending_questions`). La respuesta queda en la Memoria con el nombre del usuario, la ve TODA la empresa, y la pregunta deja de estar pendiente. Antes de llamarla, muéstrale al usuario el texto que vas a guardar y espera que lo confirme. Redacta `answer` en tono neutro, completo y autocontenido, con solo lo que el usuario dijo.
|
|
605
|
+
execution_config:
|
|
606
|
+
side_effects: true
|
|
607
|
+
destructive: false
|
|
608
|
+
routing_profile:
|
|
609
|
+
tags:
|
|
610
|
+
- memory
|
|
611
|
+
- company_memory
|
|
612
|
+
- questions
|
|
613
|
+
- answer
|
|
614
|
+
- know_how
|
|
615
|
+
intents:
|
|
616
|
+
- Answer an unanswered question of the company memory with what the user explained.
|
|
617
|
+
- Use only after the user confirms the text to save.
|
|
618
|
+
examples:
|
|
619
|
+
- iat_memory_answer_question(question_id=12, answer="El plazo de pago a proveedores es de 45 días desde la factura; para proveedores nuevos, 30.")
|
|
620
|
+
cost:
|
|
621
|
+
penalty: 0.1
|
|
622
|
+
latency_class: medium
|
|
623
|
+
expensive: false
|
|
624
|
+
parameters:
|
|
625
|
+
type: object
|
|
626
|
+
properties:
|
|
627
|
+
question_id:
|
|
628
|
+
type: integer
|
|
629
|
+
description: El id de la pregunta, de `iat_memory_pending_questions`.
|
|
630
|
+
answer:
|
|
631
|
+
type: string
|
|
632
|
+
description: La respuesta, redactada en tono neutro y autocontenida (debe entenderse sin la conversación).
|
|
633
|
+
required:
|
|
634
|
+
- question_id
|
|
635
|
+
- answer
|
|
578
636
|
- function_name: iat_image_search
|
|
579
637
|
description: Busca imágenes en la base de conocimiento visual de la empresa usando una descripción de texto. Útil cuando el usuario pide 'ver' algo, 'muéstrame una foto de...', o busca gráficos y diagramas.
|
|
580
638
|
routing:
|
{iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/infra/connectors/local_file_connector.py
RENAMED
|
@@ -91,5 +91,7 @@ class LocalFileConnector(FileConnector):
|
|
|
91
91
|
raise IAToolkitException(IAToolkitException.ErrorType.FILE_IO_ERROR,
|
|
92
92
|
f"Error eliminando el archivo {file_path}: {e}")
|
|
93
93
|
|
|
94
|
-
def generate_presigned_url(self, file_path: str, expiration: int = 3600) -> str:
|
|
95
|
-
|
|
94
|
+
def generate_presigned_url(self, file_path: str, expiration: int = 3600) -> str | None:
|
|
95
|
+
# FileConnector allows None when storage has no external URL. RAG
|
|
96
|
+
# results can still return their text, and Flask streams downloads.
|
|
97
|
+
return None
|
|
@@ -64,6 +64,9 @@ class MemoryCompilerService:
|
|
|
64
64
|
# A document of the RAG that feeds the wiki (BL-014): read whole, part by part.
|
|
65
65
|
DOCUMENT_MODE = "document"
|
|
66
66
|
DOCUMENT_AGENT = "memory_document_ingest"
|
|
67
|
+
# A meeting transcript (BL-015): decisions, procedures and owners, not the conversation.
|
|
68
|
+
MEETING_AGENT = "memory_meeting_ingest"
|
|
69
|
+
MEETING_KIND = "meeting"
|
|
67
70
|
DOCUMENT_PART_CHARS = 12000
|
|
68
71
|
MAX_PAGES_PER_PART = 5
|
|
69
72
|
# An image of the RAG (no text) is looked at by its own agent, with vision.
|
|
@@ -174,6 +177,8 @@ class MemoryCompilerService:
|
|
|
174
177
|
if mode == self.CORRECTION_MODE:
|
|
175
178
|
return self.CORRECTION_AGENT
|
|
176
179
|
if mode == self.DOCUMENT_MODE:
|
|
180
|
+
if dict(capture.meta or {}).get("kind") == self.MEETING_KIND:
|
|
181
|
+
return self.MEETING_AGENT
|
|
177
182
|
return self.DOCUMENT_AGENT
|
|
178
183
|
if mode == self.DOCUMENT_REMOVED_MODE:
|
|
179
184
|
return None # marked without the model
|
|
@@ -319,6 +324,8 @@ class MemoryCompilerService:
|
|
|
319
324
|
|
|
320
325
|
captured_on = (capture.created_at or datetime.now()).date().isoformat()
|
|
321
326
|
source = {"label": label, "card": meta.get("card") or {}, "path": meta.get("path") or ""}
|
|
327
|
+
if meta.get("kind"):
|
|
328
|
+
source["kind"] = meta["kind"]
|
|
322
329
|
# What reads each step: a part of the text, or the document's images (it had no text).
|
|
323
330
|
if parts:
|
|
324
331
|
readers = [
|
|
@@ -548,7 +555,7 @@ class MemoryCompilerService:
|
|
|
548
555
|
candidates: list[dict],
|
|
549
556
|
captured_on: str):
|
|
550
557
|
return self._ingest_with_llm(
|
|
551
|
-
company, capture, self.DOCUMENT_AGENT,
|
|
558
|
+
company, capture, self._agent_for(capture) or self.DOCUMENT_AGENT,
|
|
552
559
|
{"source": source, "part": part, "captured_on": captured_on, **self._wiki_context(company, candidates)},
|
|
553
560
|
question=f"Read memory document {source.get('label')} (part {part['index']} of {part['total']})",
|
|
554
561
|
)
|
|
@@ -58,6 +58,16 @@ class MemoryQuestionService:
|
|
|
58
58
|
|
|
59
59
|
# The system agent (config/system_agents_pack.yaml) that classifies the turns.
|
|
60
60
|
REVIEW_AGENT = "memory_question_review"
|
|
61
|
+
# What the chat's "my pending questions" lists at most.
|
|
62
|
+
MAX_PENDING_FOR_PERSON = 15
|
|
63
|
+
|
|
64
|
+
# Who each open question was suggested to lives in Enterprise (BL-015); it
|
|
65
|
+
# registers here which open questions are someone's: (company, email) -> ids.
|
|
66
|
+
_assignment_provider = None
|
|
67
|
+
|
|
68
|
+
@classmethod
|
|
69
|
+
def register_assignment_provider(cls, provider) -> None:
|
|
70
|
+
cls._assignment_provider = provider
|
|
61
71
|
|
|
62
72
|
@inject
|
|
63
73
|
def __init__(self,
|
|
@@ -115,6 +125,28 @@ class MemoryQuestionService:
|
|
|
115
125
|
self.question_repo.commit()
|
|
116
126
|
return {"status": "success", "question": self.serialize(question)}
|
|
117
127
|
|
|
128
|
+
def pending_for(self, company_short_name: str, user_identifier: str, limit: int | None = None) -> dict:
|
|
129
|
+
"""The open questions for a person to answer: first the ones suggested to them, then the most asked."""
|
|
130
|
+
company = self.profile_repo.get_company_by_short_name(company_short_name)
|
|
131
|
+
if not company:
|
|
132
|
+
return {"status": "error", "error_message": "company not found"}
|
|
133
|
+
mine: set[int] = set()
|
|
134
|
+
provider = type(self)._assignment_provider
|
|
135
|
+
if provider is not None and user_identifier:
|
|
136
|
+
try:
|
|
137
|
+
mine = {int(i) for i in provider(company_short_name, user_identifier) or ()}
|
|
138
|
+
except Exception:
|
|
139
|
+
logging.exception("Memoria assignment provider failed for %s", company_short_name)
|
|
140
|
+
questions = self.question_repo.list_questions(company.id, status=MemoryQuestion.STATUS_OPEN)
|
|
141
|
+
questions.sort(key=lambda q: (q.id not in mine, -(q.times_asked or 0)))
|
|
142
|
+
limit = max(1, min(int(limit or self.MAX_PENDING_FOR_PERSON), self.MAX_PENDING_FOR_PERSON))
|
|
143
|
+
return {
|
|
144
|
+
"status": "success",
|
|
145
|
+
"questions": [{**self.serialize(q), "assigned_to_you": q.id in mine} for q in questions[:limit]],
|
|
146
|
+
"assigned_to_you": len(mine.intersection(q.id for q in questions)),
|
|
147
|
+
"open": len(questions),
|
|
148
|
+
}
|
|
149
|
+
|
|
118
150
|
def dismiss(self, company_short_name: str, question_id: int, dismissed_by: str) -> dict:
|
|
119
151
|
"""'No aplica': the question leaves the list without adding anything to Memoria."""
|
|
120
152
|
_, question, error = self._open_question(company_short_name, question_id)
|
|
@@ -164,10 +164,12 @@ class MemoryService:
|
|
|
164
164
|
card: dict | None = None,
|
|
165
165
|
path: str = "",
|
|
166
166
|
author: str | None = None,
|
|
167
|
-
source_meta: dict | None = None
|
|
167
|
+
source_meta: dict | None = None,
|
|
168
|
+
kind: str | None = None) -> dict:
|
|
168
169
|
"""
|
|
169
170
|
A RAG document that feeds the wiki (BL-014), queued as a capture so the
|
|
170
|
-
compiler reads it whole, part by part (`memory_document_ingest
|
|
171
|
+
compiler reads it whole, part by part (`memory_document_ingest`; a
|
|
172
|
+
meeting transcript, `kind="meeting"`, with `memory_meeting_ingest`).
|
|
171
173
|
|
|
172
174
|
The capture does not copy the document: its one item points at it
|
|
173
175
|
(`source_meta.rag_document_id`) and carries no bytes, and the compiler
|
|
@@ -190,6 +192,7 @@ class MemoryService:
|
|
|
190
192
|
"label": label,
|
|
191
193
|
"card": dict(card or {}),
|
|
192
194
|
"path": path or "",
|
|
195
|
+
**({"kind": kind} if kind else {}),
|
|
193
196
|
**({"source": dict(source_meta)} if source_meta else {}),
|
|
194
197
|
},
|
|
195
198
|
)
|
|
@@ -117,6 +117,8 @@ class ToolService:
|
|
|
117
117
|
"iat_memory_search": self._handle_memory_search_tool,
|
|
118
118
|
"iat_memory_get_page": self._handle_memory_get_page_tool,
|
|
119
119
|
"iat_memory_save": self._handle_memory_save_tool,
|
|
120
|
+
"iat_memory_pending_questions": self._handle_memory_pending_questions_tool,
|
|
121
|
+
"iat_memory_answer_question": self._handle_memory_answer_question_tool,
|
|
120
122
|
"iat_wiki_search": self._handle_wiki_search_tool,
|
|
121
123
|
"iat_wiki_get_page": self._handle_wiki_get_page_tool,
|
|
122
124
|
"iat_web_search": self._handle_web_search_tool,
|
|
@@ -394,6 +396,37 @@ class ToolService:
|
|
|
394
396
|
|
|
395
397
|
return response
|
|
396
398
|
|
|
399
|
+
@staticmethod
|
|
400
|
+
def _memory_question_service():
|
|
401
|
+
# Resolved here, not injected: the question service builds on Memoria's services.
|
|
402
|
+
from iatoolkit.services.memory_question_service import MemoryQuestionService
|
|
403
|
+
return current_iatoolkit().get_injector().get(MemoryQuestionService)
|
|
404
|
+
|
|
405
|
+
def _handle_memory_pending_questions_tool(self,
|
|
406
|
+
company_short_name: str,
|
|
407
|
+
limit: int | None = None,
|
|
408
|
+
user_identifier: str | None = None,
|
|
409
|
+
**kwargs):
|
|
410
|
+
"""The unanswered questions the person could answer, theirs first (BL-015)."""
|
|
411
|
+
if not user_identifier:
|
|
412
|
+
return {"status": "error", "error_message": "memory not available without an identified user"}
|
|
413
|
+
return self._memory_question_service().pending_for(company_short_name, user_identifier, limit=limit)
|
|
414
|
+
|
|
415
|
+
def _handle_memory_answer_question_tool(self,
|
|
416
|
+
company_short_name: str,
|
|
417
|
+
question_id: int,
|
|
418
|
+
answer: str,
|
|
419
|
+
user_identifier: str | None = None,
|
|
420
|
+
**kwargs):
|
|
421
|
+
"""Answers an unanswered question; the answer goes into Memoria with the person's name."""
|
|
422
|
+
if not user_identifier:
|
|
423
|
+
return {"status": "error", "error_message": "memory not available without an identified user"}
|
|
424
|
+
try:
|
|
425
|
+
question_id = int(question_id)
|
|
426
|
+
except (TypeError, ValueError):
|
|
427
|
+
return {"status": "error", "error_message": "question_id is required"}
|
|
428
|
+
return self._memory_question_service().answer(company_short_name, question_id, str(answer or ""), user_identifier)
|
|
429
|
+
|
|
397
430
|
def _handle_memory_save_tool(self,
|
|
398
431
|
company_short_name: str,
|
|
399
432
|
content: str,
|
|
@@ -23,6 +23,11 @@
|
|
|
23
23
|
{% if connections_url %}
|
|
24
24
|
<a href="{{ connections_url }}" {% if active_section == 'mcp_connections' %}aria-current="page"{% endif %}><i class="bi bi-plug" aria-hidden="true"></i><span>{{ t('ui.account.connections') }}</span></a>
|
|
25
25
|
{% endif %}
|
|
26
|
+
{# Enterprise: the unanswered questions this person could answer (BL-015). #}
|
|
27
|
+
{% set memory_questions_url = optional_url_for('memory_questions_page', company_short_name=company_short_name) %}
|
|
28
|
+
{% if memory_questions_url %}
|
|
29
|
+
<a href="{{ memory_questions_url }}" {% if active_section == 'memory_questions' %}aria-current="page"{% endif %}><i class="bi bi-question-circle" aria-hidden="true"></i><span>{{ t('ui.account.memory_questions') }}</span></a>
|
|
30
|
+
{% endif %}
|
|
26
31
|
</nav>
|
|
27
32
|
</aside>
|
|
28
33
|
<main class="account-main" id="account-main">
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: iatoolkit
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.67.0
|
|
4
4
|
Summary: IAToolkit
|
|
5
5
|
Author: Fernando Libedinsky
|
|
6
6
|
License-Expression: MIT
|
|
@@ -242,6 +242,7 @@ Perfect for developers, small teams, single-business use cases, and experimentat
|
|
|
242
242
|
|
|
243
243
|
## 📚 Documentation
|
|
244
244
|
|
|
245
|
+
- 🐳 **[Docker installation](docker/README.md)** – Community Edition with PostgreSQL, Redis and populated Northwind data
|
|
245
246
|
- 🚀 **[Quickstart](docs/quickstart.md)** – Set up your environment and run the project
|
|
246
247
|
- ☁️ **[Deployment Guide](docs/deployment_guide.md)** – Production deployment instructions
|
|
247
248
|
- 🏗️ **[Companies & Components](docs/companies_and_components.md)** – how Company modules work
|
|
@@ -41,6 +41,7 @@ src/iatoolkit/config/system_agents/memory_compiler.prompt
|
|
|
41
41
|
src/iatoolkit/config/system_agents/memory_correction.prompt
|
|
42
42
|
src/iatoolkit/config/system_agents/memory_document_ingest.prompt
|
|
43
43
|
src/iatoolkit/config/system_agents/memory_image_ingest.prompt
|
|
44
|
+
src/iatoolkit/config/system_agents/memory_meeting_ingest.prompt
|
|
44
45
|
src/iatoolkit/config/system_agents/memory_question_review.prompt
|
|
45
46
|
src/iatoolkit/config/system_prompts/channel_business_identity.prompt
|
|
46
47
|
src/iatoolkit/config/system_prompts/channel_conversation_continuity.prompt
|
|
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.66.0 → iatoolkit-2.67.0}/src/iatoolkit/common/interfaces/memory_compilation_trigger.py
RENAMED
|
File without changes
|
|
File without changes
|
{iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/common/interfaces/signup_policy_resolver.py
RENAMED
|
File without changes
|
{iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/common/interfaces/web_search_provider.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/config/system_agents/memory_compiler.prompt
RENAMED
|
File without changes
|
{iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/config/system_agents/memory_correction.prompt
RENAMED
|
File without changes
|
|
File without changes
|
{iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/config/system_agents/memory_image_ingest.prompt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/config/system_prompts/chat_state_rules.prompt
RENAMED
|
File without changes
|
{iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/config/system_prompts/chat_user_profile.prompt
RENAMED
|
File without changes
|
{iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/config/system_prompts/core_identity.prompt
RENAMED
|
File without changes
|
{iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/config/system_prompts/email_output.prompt
RENAMED
|
File without changes
|
|
File without changes
|
{iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/config/system_prompts/format_styles.prompt
RENAMED
|
File without changes
|
{iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/config/system_prompts/html_structures.prompt
RENAMED
|
File without changes
|
{iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/config/system_prompts/links_documents.prompt
RENAMED
|
File without changes
|
{iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/config/system_prompts/memory_usage.prompt
RENAMED
|
File without changes
|
{iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/config/system_prompts/multimodal_basics.prompt
RENAMED
|
File without changes
|
{iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/config/system_prompts/output_basics.prompt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/config/system_prompts/sql_casting.prompt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/config/system_prompts/sql_mysql_casting.prompt
RENAMED
|
File without changes
|
{iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/config/system_prompts/sql_mysql_json.prompt
RENAMED
|
File without changes
|
{iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/config/system_prompts/sql_redshift_basics.prompt
RENAMED
|
File without changes
|
{iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/config/system_prompts/sql_redshift_types.prompt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/infra/connectors/file_connector_factory.py
RENAMED
|
File without changes
|
|
File without changes
|
{iatoolkit-2.66.0 → iatoolkit-2.67.0}/src/iatoolkit/infra/connectors/google_drive_connector.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|