unique_toolkit 1.16.2__tar.gz → 1.16.4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/CHANGELOG.md +7 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/PKG-INFO +8 -1
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/pyproject.toml +1 -1
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/agentic/tools/mcp/tool_wrapper.py +7 -28
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/agentic/tools/test/test_mcp_manager.py +88 -2
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/language_model/schemas.py +17 -5
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/LICENSE +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/README.md +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/__init__.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/_common/_base_service.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/_common/_time_utils.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/_common/api_calling/human_verification_manager.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/_common/base_model_type_attribute.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/_common/chunk_relevancy_sorter/config.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/_common/chunk_relevancy_sorter/exception.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/_common/chunk_relevancy_sorter/schemas.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/_common/chunk_relevancy_sorter/service.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/_common/chunk_relevancy_sorter/tests/test_service.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/_common/default_language_model.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/_common/endpoint_builder.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/_common/endpoint_requestor.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/_common/exception.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/_common/feature_flags/schema.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/_common/pydantic/rjsf_tags.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/_common/pydantic_helpers.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/_common/string_utilities.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/_common/token/image_token_counting.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/_common/token/token_counting.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/_common/utils/__init__.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/_common/utils/files.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/_common/utils/structured_output/__init__.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/_common/utils/structured_output/schema.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/_common/utils/write_configuration.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/_common/validate_required_values.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/_common/validators.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/agentic/__init__.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/agentic/debug_info_manager/debug_info_manager.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/agentic/debug_info_manager/test/test_debug_info_manager.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/agentic/evaluation/config.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/agentic/evaluation/context_relevancy/prompts.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/agentic/evaluation/context_relevancy/schema.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/agentic/evaluation/context_relevancy/service.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/agentic/evaluation/evaluation_manager.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/agentic/evaluation/exception.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/agentic/evaluation/hallucination/constants.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/agentic/evaluation/hallucination/hallucination_evaluation.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/agentic/evaluation/hallucination/prompts.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/agentic/evaluation/hallucination/service.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/agentic/evaluation/hallucination/utils.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/agentic/evaluation/output_parser.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/agentic/evaluation/schemas.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/agentic/evaluation/tests/test_context_relevancy_service.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/agentic/evaluation/tests/test_output_parser.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/agentic/history_manager/history_construction_with_contents.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/agentic/history_manager/history_manager.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/agentic/history_manager/loop_token_reducer.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/agentic/history_manager/utils.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/agentic/postprocessor/postprocessor_manager.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/agentic/reference_manager/reference_manager.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/agentic/responses_api/__init__.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/agentic/responses_api/postprocessors/code_display.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/agentic/responses_api/postprocessors/generated_files.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/agentic/responses_api/stream_handler.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/agentic/short_term_memory_manager/persistent_short_term_memory_manager.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/agentic/thinking_manager/thinking_manager.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/agentic/tools/__init__.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/agentic/tools/a2a/__init__.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/agentic/tools/a2a/config.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/agentic/tools/a2a/evaluation/__init__.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/agentic/tools/a2a/evaluation/_utils.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/agentic/tools/a2a/evaluation/config.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/agentic/tools/a2a/evaluation/evaluator.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/agentic/tools/a2a/evaluation/summarization_user_message.j2 +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/agentic/tools/a2a/manager.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/agentic/tools/a2a/postprocessing/__init__.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/agentic/tools/a2a/postprocessing/_display.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/agentic/tools/a2a/postprocessing/_utils.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/agentic/tools/a2a/postprocessing/config.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/agentic/tools/a2a/postprocessing/postprocessor.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_consolidate_references.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_display.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_postprocessor_reference_functions.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/agentic/tools/a2a/prompts.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/agentic/tools/a2a/tool/__init__.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/agentic/tools/a2a/tool/_memory.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/agentic/tools/a2a/tool/_schema.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/agentic/tools/a2a/tool/config.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/agentic/tools/a2a/tool/service.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/agentic/tools/agent_chunks_hanlder.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/agentic/tools/config.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/agentic/tools/factory.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/agentic/tools/mcp/__init__.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/agentic/tools/mcp/manager.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/agentic/tools/mcp/models.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/agentic/tools/openai_builtin/__init__.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/agentic/tools/openai_builtin/base.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/__init__.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/config.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/service.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/agentic/tools/openai_builtin/manager.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/agentic/tools/schemas.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/agentic/tools/test/test_tool_progress_reporter.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/agentic/tools/tool.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/agentic/tools/tool_manager.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/agentic/tools/tool_progress_reporter.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/agentic/tools/utils/__init__.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/agentic/tools/utils/execution/__init__.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/agentic/tools/utils/execution/execution.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/agentic/tools/utils/source_handling/__init__.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/agentic/tools/utils/source_handling/schema.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/agentic/tools/utils/source_handling/source_formatting.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/agentic/tools/utils/source_handling/tests/test_source_formatting.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/app/__init__.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/app/dev_util.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/app/init_logging.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/app/init_sdk.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/app/performance/async_tasks.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/app/performance/async_wrapper.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/app/schemas.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/app/unique_settings.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/app/verification.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/chat/__init__.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/chat/constants.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/chat/deprecated/service.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/chat/functions.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/chat/responses_api.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/chat/schemas.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/chat/service.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/chat/state.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/chat/utils.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/content/__init__.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/content/constants.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/content/functions.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/content/schemas.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/content/service.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/content/smart_rules.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/content/utils.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/embedding/__init__.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/embedding/constants.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/embedding/functions.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/embedding/schemas.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/embedding/service.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/embedding/utils.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/framework_utilities/__init__.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/framework_utilities/langchain/client.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/framework_utilities/langchain/history.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/framework_utilities/openai/__init__.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/framework_utilities/openai/client.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/framework_utilities/openai/message_builder.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/framework_utilities/utils.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/language_model/__init__.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/language_model/builder.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/language_model/constants.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/language_model/default_language_model.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/language_model/functions.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/language_model/infos.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/language_model/prompt.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/language_model/reference.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/language_model/service.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/language_model/utils.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/protocols/support.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/services/__init__.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/services/chat_service.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/services/knowledge_base.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/short_term_memory/__init__.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/short_term_memory/constants.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/short_term_memory/functions.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/short_term_memory/schemas.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/short_term_memory/service.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/smart_rules/__init__.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/smart_rules/compile.py +0 -0
- {unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/test_utilities/events.py +0 -0
@@ -4,6 +4,13 @@ All notable changes to this project will be documented in this file.
|
|
4
4
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
7
|
+
|
8
|
+
## [1.16.4] - 2025-10-18
|
9
|
+
- Fix bug with MCP tool parameters schema
|
10
|
+
|
11
|
+
## [1.16.3] - 2025-10-18
|
12
|
+
- Add logging of MCP tool schema and constructed parameters
|
13
|
+
|
7
14
|
## [1.16.2] - 2025-10-16
|
8
15
|
- Reduce operation dependency on path instead of full url
|
9
16
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: unique_toolkit
|
3
|
-
Version: 1.16.
|
3
|
+
Version: 1.16.4
|
4
4
|
Summary:
|
5
5
|
License: Proprietary
|
6
6
|
Author: Cedric Klinkert
|
@@ -117,6 +117,13 @@ All notable changes to this project will be documented in this file.
|
|
117
117
|
|
118
118
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
119
119
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
120
|
+
|
121
|
+
## [1.16.4] - 2025-10-18
|
122
|
+
- Fix bug with MCP tool parameters schema
|
123
|
+
|
124
|
+
## [1.16.3] - 2025-10-18
|
125
|
+
- Add logging of MCP tool schema and constructed parameters
|
126
|
+
|
120
127
|
## [1.16.2] - 2025-10-16
|
121
128
|
- Reduce operation dependency on path instead of full url
|
122
129
|
|
{unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/agentic/tools/mcp/tool_wrapper.py
RENAMED
@@ -1,8 +1,8 @@
|
|
1
1
|
import json
|
2
|
+
import logging
|
2
3
|
from typing import Any, Dict
|
3
4
|
|
4
5
|
import unique_sdk
|
5
|
-
from pydantic import BaseModel, Field, create_model
|
6
6
|
|
7
7
|
from unique_toolkit.agentic.evaluation.schemas import EvaluationMetricName
|
8
8
|
from unique_toolkit.agentic.tools.mcp.models import MCPToolConfig
|
@@ -19,6 +19,8 @@ from unique_toolkit.language_model.schemas import (
|
|
19
19
|
LanguageModelToolDescription,
|
20
20
|
)
|
21
21
|
|
22
|
+
logger = logging.getLogger(__name__)
|
23
|
+
|
22
24
|
|
23
25
|
class MCPToolWrapper(Tool[MCPToolConfig]):
|
24
26
|
"""Wrapper class for MCP tools that implements the Tool interface"""
|
@@ -39,39 +41,16 @@ class MCPToolWrapper(Tool[MCPToolConfig]):
|
|
39
41
|
def tool_description(self) -> LanguageModelToolDescription:
|
40
42
|
"""Convert MCP tool schema to LanguageModelToolDescription"""
|
41
43
|
# Create a Pydantic model from the MCP tool's input schema
|
42
|
-
|
44
|
+
logger.info(
|
45
|
+
"MCP tool %s schema %s", self._mcp_tool.name, self._mcp_tool.input_schema
|
46
|
+
)
|
43
47
|
|
44
48
|
return LanguageModelToolDescription(
|
45
49
|
name=self.name,
|
46
50
|
description=self._mcp_tool.description or "",
|
47
|
-
parameters=
|
51
|
+
parameters=self._mcp_tool.input_schema,
|
48
52
|
)
|
49
53
|
|
50
|
-
def _create_parameters_model(self) -> type[BaseModel]:
|
51
|
-
"""Create a Pydantic model from MCP tool's input schema"""
|
52
|
-
properties = self._mcp_tool.input_schema.get("properties", {})
|
53
|
-
required_fields = self._mcp_tool.input_schema.get("required", [])
|
54
|
-
|
55
|
-
# Convert JSON schema properties to Pydantic fields
|
56
|
-
fields = {}
|
57
|
-
for prop_name, prop_schema in properties.items():
|
58
|
-
field_type = self._json_schema_to_python_type(prop_schema)
|
59
|
-
field_description = prop_schema.get("description", "")
|
60
|
-
|
61
|
-
if prop_name in required_fields:
|
62
|
-
fields[prop_name] = (
|
63
|
-
field_type,
|
64
|
-
Field(description=field_description),
|
65
|
-
)
|
66
|
-
else:
|
67
|
-
fields[prop_name] = (
|
68
|
-
field_type,
|
69
|
-
Field(default=None, description=field_description),
|
70
|
-
)
|
71
|
-
|
72
|
-
# Create dynamic model
|
73
|
-
return create_model(f"{self.name}Parameters", **fields)
|
74
|
-
|
75
54
|
def _json_schema_to_python_type(self, schema: Dict[str, Any]) -> type:
|
76
55
|
"""Convert JSON schema type to Python type"""
|
77
56
|
json_type = schema.get("type", "string")
|
@@ -13,6 +13,8 @@ from unique_toolkit.agentic.tools.config import (
|
|
13
13
|
)
|
14
14
|
from unique_toolkit.agentic.tools.factory import ToolFactory
|
15
15
|
from unique_toolkit.agentic.tools.mcp.manager import MCPManager
|
16
|
+
from unique_toolkit.agentic.tools.mcp.models import MCPToolConfig
|
17
|
+
from unique_toolkit.agentic.tools.mcp.tool_wrapper import MCPToolWrapper
|
16
18
|
from unique_toolkit.agentic.tools.schemas import BaseToolConfig
|
17
19
|
from unique_toolkit.agentic.tools.tool import Tool
|
18
20
|
from unique_toolkit.agentic.tools.tool_manager import ToolManager, ToolManagerConfig
|
@@ -114,11 +116,22 @@ class TestMCPManager:
|
|
114
116
|
name="mcp_test_tool",
|
115
117
|
description="Test MCP tool",
|
116
118
|
input_schema={
|
119
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
117
120
|
"type": "object",
|
118
121
|
"properties": {
|
119
|
-
"
|
122
|
+
"folder": {
|
123
|
+
"description": "Mail folder to read mails from",
|
124
|
+
"default": "inbox",
|
125
|
+
"type": "string",
|
126
|
+
},
|
127
|
+
"limit": {
|
128
|
+
"description": "Number of emails to retrieve",
|
129
|
+
"default": 10,
|
130
|
+
"type": "number",
|
131
|
+
"minimum": 1,
|
132
|
+
"maximum": 50,
|
133
|
+
},
|
120
134
|
},
|
121
|
-
"required": ["query"],
|
122
135
|
},
|
123
136
|
output_schema=None,
|
124
137
|
annotations=None,
|
@@ -446,3 +459,76 @@ class TestMCPManager:
|
|
446
459
|
assert "internal_search" not in tool_names
|
447
460
|
assert "mcp_test_tool" in tool_names
|
448
461
|
assert len(tools) == 1
|
462
|
+
|
463
|
+
def test_mcp_tool_wrapper_generates_correct_parameters(
|
464
|
+
self, mcp_tools, mcp_servers, tool_progress_reporter
|
465
|
+
):
|
466
|
+
"""Test that MCPToolWrapper correctly generates parameters field from MCP tool input schema"""
|
467
|
+
# Get the first MCP tool and server from fixtures
|
468
|
+
mcp_tool = mcp_tools[0]
|
469
|
+
mcp_server = mcp_servers[0]
|
470
|
+
|
471
|
+
# Create MCPToolConfig
|
472
|
+
config = MCPToolConfig(
|
473
|
+
server_id="test_server_id",
|
474
|
+
server_name="test_server",
|
475
|
+
mcp_source_id="test_server_id",
|
476
|
+
)
|
477
|
+
|
478
|
+
# Initialize the MCPToolWrapper
|
479
|
+
tool_wrapper = MCPToolWrapper(
|
480
|
+
mcp_server=mcp_server,
|
481
|
+
mcp_tool=mcp_tool,
|
482
|
+
config=config,
|
483
|
+
event=self.event,
|
484
|
+
tool_progress_reporter=tool_progress_reporter,
|
485
|
+
)
|
486
|
+
|
487
|
+
# Call tool_description to get the LanguageModelToolDescription
|
488
|
+
tool_description = tool_wrapper.tool_description()
|
489
|
+
|
490
|
+
# Verify the basic properties
|
491
|
+
assert tool_description.name == "mcp_test_tool"
|
492
|
+
assert tool_description.description == "Test MCP tool"
|
493
|
+
|
494
|
+
# Verify that parameters field is correctly set to the input_schema
|
495
|
+
expected_parameters = {
|
496
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
497
|
+
"type": "object",
|
498
|
+
"properties": {
|
499
|
+
"folder": {
|
500
|
+
"description": "Mail folder to read mails from",
|
501
|
+
"default": "inbox",
|
502
|
+
"type": "string",
|
503
|
+
},
|
504
|
+
"limit": {
|
505
|
+
"description": "Number of emails to retrieve",
|
506
|
+
"default": 10,
|
507
|
+
"type": "number",
|
508
|
+
"minimum": 1,
|
509
|
+
"maximum": 50,
|
510
|
+
},
|
511
|
+
},
|
512
|
+
}
|
513
|
+
|
514
|
+
assert tool_description.parameters == expected_parameters
|
515
|
+
|
516
|
+
# Verify specific parameter properties
|
517
|
+
parameters = tool_description.parameters
|
518
|
+
assert isinstance(parameters, dict)
|
519
|
+
assert parameters["type"] == "object"
|
520
|
+
assert "properties" in parameters
|
521
|
+
|
522
|
+
# Check folder parameter
|
523
|
+
folder_prop = parameters["properties"]["folder"]
|
524
|
+
assert folder_prop["type"] == "string"
|
525
|
+
assert folder_prop["description"] == "Mail folder to read mails from"
|
526
|
+
assert folder_prop["default"] == "inbox"
|
527
|
+
|
528
|
+
# Check limit parameter
|
529
|
+
limit_prop = parameters["properties"]["limit"]
|
530
|
+
assert limit_prop["type"] == "number"
|
531
|
+
assert limit_prop["description"] == "Number of emails to retrieve"
|
532
|
+
assert limit_prop["default"] == 10
|
533
|
+
assert limit_prop["minimum"] == 1
|
534
|
+
assert limit_prop["maximum"] == 50
|
@@ -663,9 +663,10 @@ class LanguageModelToolDescription(BaseModel):
|
|
663
663
|
...,
|
664
664
|
description="Description of what the tool is doing the tool",
|
665
665
|
)
|
666
|
-
parameters: type[BaseModel] = Field(
|
666
|
+
parameters: type[BaseModel] | dict[str, Any] = Field(
|
667
667
|
...,
|
668
668
|
description="Pydantic model for the tool parameters",
|
669
|
+
union_mode="left_to_right",
|
669
670
|
)
|
670
671
|
|
671
672
|
# TODO: This should be default `True` but if this is the case the parameter_model needs to include additional properties
|
@@ -675,8 +676,10 @@ class LanguageModelToolDescription(BaseModel):
|
|
675
676
|
)
|
676
677
|
|
677
678
|
@field_serializer("parameters")
|
678
|
-
def serialize_parameters(
|
679
|
-
|
679
|
+
def serialize_parameters(
|
680
|
+
self, parameters: type[BaseModel] | dict[str, Any]
|
681
|
+
) -> dict[str, Any]:
|
682
|
+
return _parameters_as_json_schema(parameters)
|
680
683
|
|
681
684
|
@overload
|
682
685
|
def to_openai(
|
@@ -694,7 +697,7 @@ class LanguageModelToolDescription(BaseModel):
|
|
694
697
|
function=FunctionDefinition(
|
695
698
|
name=self.name,
|
696
699
|
description=self.description,
|
697
|
-
parameters=self.parameters
|
700
|
+
parameters=_parameters_as_json_schema(self.parameters),
|
698
701
|
strict=self.strict,
|
699
702
|
),
|
700
703
|
type="function",
|
@@ -703,7 +706,16 @@ class LanguageModelToolDescription(BaseModel):
|
|
703
706
|
return FunctionToolParam(
|
704
707
|
type="function",
|
705
708
|
name=self.name,
|
706
|
-
parameters=self.parameters
|
709
|
+
parameters=_parameters_as_json_schema(self.parameters),
|
707
710
|
strict=self.strict,
|
708
711
|
description=self.description,
|
709
712
|
)
|
713
|
+
|
714
|
+
|
715
|
+
def _parameters_as_json_schema(
|
716
|
+
parameters: type[BaseModel] | dict[str, Any],
|
717
|
+
) -> dict[str, Any]:
|
718
|
+
if isinstance(parameters, dict):
|
719
|
+
return parameters
|
720
|
+
|
721
|
+
return parameters.model_json_schema()
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/_common/base_model_type_attribute.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/_common/default_language_model.py
RENAMED
File without changes
|
File without changes
|
{unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/_common/endpoint_requestor.py
RENAMED
File without changes
|
File without changes
|
{unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/_common/feature_flags/schema.py
RENAMED
File without changes
|
{unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/_common/pydantic/rjsf_tags.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/_common/token/image_token_counting.py
RENAMED
File without changes
|
{unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/_common/token/token_counting.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/_common/utils/write_configuration.py
RENAMED
File without changes
|
{unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/_common/validate_required_values.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
|
{unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/agentic/evaluation/exception.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/agentic/evaluation/output_parser.py
RENAMED
File without changes
|
{unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/agentic/evaluation/schemas.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/agentic/history_manager/utils.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/agentic/responses_api/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/agentic/tools/a2a/__init__.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
|
{unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/agentic/tools/a2a/tool/__init__.py
RENAMED
File without changes
|
{unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/agentic/tools/a2a/tool/_memory.py
RENAMED
File without changes
|
{unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/agentic/tools/a2a/tool/_schema.py
RENAMED
File without changes
|
{unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/agentic/tools/a2a/tool/config.py
RENAMED
File without changes
|
{unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/agentic/tools/a2a/tool/service.py
RENAMED
File without changes
|
{unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/agentic/tools/agent_chunks_hanlder.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/agentic/tools/mcp/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/agentic/tools/openai_builtin/base.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
|
{unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/agentic/tools/tool_manager.py
RENAMED
File without changes
|
File without changes
|
{unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/agentic/tools/utils/__init__.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
|
{unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/app/performance/async_tasks.py
RENAMED
File without changes
|
{unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/app/performance/async_wrapper.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
|
{unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/framework_utilities/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/framework_utilities/openai/client.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
|
{unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/short_term_memory/__init__.py
RENAMED
File without changes
|
{unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/short_term_memory/constants.py
RENAMED
File without changes
|
{unique_toolkit-1.16.2 → unique_toolkit-1.16.4}/unique_toolkit/short_term_memory/functions.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|