unique_toolkit 1.11.1__tar.gz → 1.11.3__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.11.1 → unique_toolkit-1.11.3}/CHANGELOG.md +7 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/PKG-INFO +8 -1
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/pyproject.toml +1 -1
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/content/functions.py +20 -7
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/content/schemas.py +16 -3
- unique_toolkit-1.11.1/unique_toolkit/smart_rules/compile.py → unique_toolkit-1.11.3/unique_toolkit/content/smart_rules.py +29 -29
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/knowledge_base.py +81 -2
- unique_toolkit-1.11.3/unique_toolkit/smart_rules/compile.py +56 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/LICENSE +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/README.md +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/__init__.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/_common/_base_service.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/_common/_time_utils.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/_common/api_calling/human_verification_manager.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/_common/base_model_type_attribute.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/_common/chunk_relevancy_sorter/config.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/_common/chunk_relevancy_sorter/exception.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/_common/chunk_relevancy_sorter/schemas.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/_common/chunk_relevancy_sorter/service.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/_common/chunk_relevancy_sorter/tests/test_service.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/_common/default_language_model.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/_common/endpoint_builder.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/_common/endpoint_requestor.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/_common/exception.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/_common/feature_flags/schema.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/_common/pydantic/rjsf_tags.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/_common/pydantic_helpers.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/_common/string_utilities.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/_common/token/image_token_counting.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/_common/token/token_counting.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/_common/utils/__init__.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/_common/utils/files.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/_common/utils/structured_output/__init__.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/_common/utils/structured_output/schema.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/_common/utils/write_configuration.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/_common/validate_required_values.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/_common/validators.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/agentic/__init__.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/agentic/debug_info_manager/debug_info_manager.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/agentic/evaluation/config.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/agentic/evaluation/context_relevancy/prompts.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/agentic/evaluation/context_relevancy/schema.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/agentic/evaluation/context_relevancy/service.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/agentic/evaluation/evaluation_manager.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/agentic/evaluation/exception.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/agentic/evaluation/hallucination/constants.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/agentic/evaluation/hallucination/hallucination_evaluation.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/agentic/evaluation/hallucination/prompts.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/agentic/evaluation/hallucination/service.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/agentic/evaluation/hallucination/utils.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/agentic/evaluation/output_parser.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/agentic/evaluation/schemas.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/agentic/evaluation/tests/test_context_relevancy_service.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/agentic/evaluation/tests/test_output_parser.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/agentic/history_manager/history_construction_with_contents.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/agentic/history_manager/history_manager.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/agentic/history_manager/loop_token_reducer.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/agentic/history_manager/utils.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/agentic/postprocessor/postprocessor_manager.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/agentic/reference_manager/reference_manager.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/agentic/short_term_memory_manager/persistent_short_term_memory_manager.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/agentic/thinking_manager/thinking_manager.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/agentic/tools/__init__.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/agentic/tools/a2a/__init__.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/agentic/tools/a2a/config.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/agentic/tools/a2a/evaluation/__init__.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/agentic/tools/a2a/evaluation/_utils.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/agentic/tools/a2a/evaluation/config.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/agentic/tools/a2a/evaluation/evaluator.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/agentic/tools/a2a/evaluation/summarization_user_message.j2 +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/agentic/tools/a2a/manager.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/agentic/tools/a2a/postprocessing/__init__.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/agentic/tools/a2a/postprocessing/_display.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/agentic/tools/a2a/postprocessing/_utils.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/agentic/tools/a2a/postprocessing/config.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/agentic/tools/a2a/postprocessing/postprocessor.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_consolidate_references.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_display.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_postprocessor_reference_functions.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/agentic/tools/a2a/prompts.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/agentic/tools/a2a/tool/__init__.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/agentic/tools/a2a/tool/_memory.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/agentic/tools/a2a/tool/_schema.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/agentic/tools/a2a/tool/config.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/agentic/tools/a2a/tool/service.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/agentic/tools/agent_chunks_hanlder.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/agentic/tools/config.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/agentic/tools/factory.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/agentic/tools/mcp/__init__.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/agentic/tools/mcp/manager.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/agentic/tools/mcp/models.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/agentic/tools/mcp/tool_wrapper.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/agentic/tools/schemas.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/agentic/tools/test/test_mcp_manager.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/agentic/tools/test/test_tool_progress_reporter.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/agentic/tools/tool.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/agentic/tools/tool_manager.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/agentic/tools/tool_progress_reporter.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/agentic/tools/utils/__init__.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/agentic/tools/utils/execution/__init__.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/agentic/tools/utils/execution/execution.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/agentic/tools/utils/source_handling/__init__.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/agentic/tools/utils/source_handling/schema.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/agentic/tools/utils/source_handling/source_formatting.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/agentic/tools/utils/source_handling/tests/test_source_formatting.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/app/__init__.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/app/dev_util.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/app/init_logging.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/app/init_sdk.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/app/performance/async_tasks.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/app/performance/async_wrapper.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/app/schemas.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/app/unique_settings.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/app/verification.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/chat/__init__.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/chat/constants.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/chat/deprecated/service.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/chat/functions.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/chat/schemas.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/chat/service.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/chat/state.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/chat/utils.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/content/__init__.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/content/constants.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/content/service.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/content/utils.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/embedding/__init__.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/embedding/constants.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/embedding/functions.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/embedding/schemas.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/embedding/service.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/embedding/utils.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/framework_utilities/__init__.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/framework_utilities/langchain/client.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/framework_utilities/langchain/history.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/framework_utilities/openai/__init__.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/framework_utilities/openai/client.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/framework_utilities/openai/message_builder.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/framework_utilities/utils.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/language_model/__init__.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/language_model/builder.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/language_model/constants.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/language_model/functions.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/language_model/infos.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/language_model/prompt.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/language_model/reference.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/language_model/schemas.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/language_model/service.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/language_model/utils.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/protocols/support.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/short_term_memory/__init__.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/short_term_memory/constants.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/short_term_memory/functions.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/short_term_memory/schemas.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/short_term_memory/service.py +0 -0
- {unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/smart_rules/__init__.py +0 -0
@@ -4,6 +4,12 @@ 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
|
+
## [1.11.3] - 2026-10-06
|
8
|
+
- Move smart rules to content
|
9
|
+
- Add to documentation
|
10
|
+
|
11
|
+
## [1.11.2] - 2025-10-07
|
12
|
+
- Fix for empty metadata filter at info retrieval
|
7
13
|
|
8
14
|
## [1.11.1] - 2025-10-07
|
9
15
|
- Fix bug where hallucination check was taking all of the chunks as input instead of only the referenced ones.
|
@@ -19,6 +25,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
19
25
|
## [1.9.1] - 2025-10-06
|
20
26
|
- Switch default model used in evaluation service from `GPT-3.5-turbo (0125)` to `GPT-4o (1120)`
|
21
27
|
|
28
|
+
|
22
29
|
## [1.9.0] - 2026-10-04
|
23
30
|
- Define the RequestContext and add aihttp/httpx requestors
|
24
31
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: unique_toolkit
|
3
|
-
Version: 1.11.
|
3
|
+
Version: 1.11.3
|
4
4
|
Summary:
|
5
5
|
License: Proprietary
|
6
6
|
Author: Cedric Klinkert
|
@@ -117,6 +117,12 @@ 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
|
+
## [1.11.3] - 2026-10-06
|
121
|
+
- Move smart rules to content
|
122
|
+
- Add to documentation
|
123
|
+
|
124
|
+
## [1.11.2] - 2025-10-07
|
125
|
+
- Fix for empty metadata filter at info retrieval
|
120
126
|
|
121
127
|
## [1.11.1] - 2025-10-07
|
122
128
|
- Fix bug where hallucination check was taking all of the chunks as input instead of only the referenced ones.
|
@@ -132,6 +138,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
132
138
|
## [1.9.1] - 2025-10-06
|
133
139
|
- Switch default model used in evaluation service from `GPT-3.5-turbo (0125)` to `GPT-4o (1120)`
|
134
140
|
|
141
|
+
|
135
142
|
## [1.9.0] - 2026-10-04
|
136
143
|
- Define the RequestContext and add aihttp/httpx requestors
|
137
144
|
|
@@ -16,7 +16,8 @@ from unique_toolkit.content.schemas import (
|
|
16
16
|
ContentInfo,
|
17
17
|
ContentRerankerConfig,
|
18
18
|
ContentSearchType,
|
19
|
-
|
19
|
+
FolderInfo,
|
20
|
+
PaginatedContentInfos,
|
20
21
|
)
|
21
22
|
from unique_toolkit.content.utils import map_contents, map_to_content_chunks
|
22
23
|
|
@@ -590,21 +591,33 @@ def get_content_info(
|
|
590
591
|
file_path: str | None = None,
|
591
592
|
):
|
592
593
|
"""Gets the info of a content."""
|
594
|
+
|
593
595
|
get_info_params = unique_sdk.Content.ContentInfoParams(
|
594
|
-
metadataFilter=metadata_filter,
|
595
|
-
skip=skip,
|
596
|
-
take=take,
|
597
|
-
filePath=file_path,
|
596
|
+
metadataFilter=metadata_filter or None, # Dict cannot be empty
|
598
597
|
)
|
598
|
+
if skip:
|
599
|
+
get_info_params["skip"] = skip
|
600
|
+
if take:
|
601
|
+
get_info_params["take"] = take
|
602
|
+
if file_path:
|
603
|
+
get_info_params["filePath"] = file_path
|
599
604
|
|
600
|
-
content_info = unique_sdk.Content.
|
605
|
+
content_info = unique_sdk.Content.get_infos(
|
601
606
|
user_id=user_id, company_id=company_id, **get_info_params
|
602
607
|
)
|
603
|
-
return
|
608
|
+
return PaginatedContentInfos.model_validate(
|
604
609
|
content_info, by_alias=True, by_name=True
|
605
610
|
)
|
606
611
|
|
607
612
|
|
613
|
+
def get_folder_info(user_id: str, company_id: str, scope_id: str) -> FolderInfo:
|
614
|
+
info = unique_sdk.Folder.get_info(
|
615
|
+
user_id=user_id, company_id=company_id, scopeId=scope_id
|
616
|
+
)
|
617
|
+
|
618
|
+
return FolderInfo.model_validate(info, by_alias=True, by_name=True)
|
619
|
+
|
620
|
+
|
608
621
|
def update_content(
|
609
622
|
user_id: str,
|
610
623
|
company_id: str,
|
@@ -154,12 +154,13 @@ class ContentRerankerConfig(BaseModel):
|
|
154
154
|
class ContentInfo(BaseModel):
|
155
155
|
model_config = model_config
|
156
156
|
id: str
|
157
|
+
object: str
|
157
158
|
key: str
|
158
159
|
url: str | None = None
|
159
160
|
title: str | None = None
|
160
161
|
metadata: dict[str, Any] | None = None
|
161
|
-
mime_type: str
|
162
162
|
byte_size: int
|
163
|
+
mime_type: str
|
163
164
|
owner_id: str
|
164
165
|
created_at: datetime
|
165
166
|
updated_at: datetime
|
@@ -168,7 +169,19 @@ class ContentInfo(BaseModel):
|
|
168
169
|
expired_at: datetime | None = None
|
169
170
|
|
170
171
|
|
171
|
-
class
|
172
|
+
class PaginatedContentInfos(BaseModel):
|
172
173
|
model_config = model_config
|
173
|
-
|
174
|
+
object: str
|
175
|
+
content_infos: list[ContentInfo]
|
174
176
|
total_count: int
|
177
|
+
|
178
|
+
|
179
|
+
class FolderInfo(BaseModel):
|
180
|
+
model_config = model_config
|
181
|
+
id: str
|
182
|
+
name: str
|
183
|
+
ingestion_config: dict[str, Any]
|
184
|
+
createdAt: str | None
|
185
|
+
updatedAt: str | None
|
186
|
+
parentId: str | None
|
187
|
+
externalId: str | None
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import re
|
2
2
|
from datetime import datetime, timedelta, timezone
|
3
3
|
from enum import Enum
|
4
|
-
from typing import Any, Dict, List, Self, Union
|
4
|
+
from typing import Any, Dict, List, Mapping, Self, Union
|
5
5
|
|
6
6
|
from pydantic import AliasChoices, BaseModel, Field
|
7
7
|
from pydantic.config import ConfigDict
|
@@ -30,8 +30,8 @@ class BaseStatement(BaseModel):
|
|
30
30
|
|
31
31
|
def with_variables(
|
32
32
|
self,
|
33
|
-
user_metadata:
|
34
|
-
tool_parameters:
|
33
|
+
user_metadata: Mapping[str, Union[str, int, bool]],
|
34
|
+
tool_parameters: Mapping[str, Union[str, int, bool]],
|
35
35
|
) -> Self:
|
36
36
|
return self._fill_in_variables(user_metadata, tool_parameters)
|
37
37
|
|
@@ -49,8 +49,8 @@ class BaseStatement(BaseModel):
|
|
49
49
|
|
50
50
|
def _fill_in_variables(
|
51
51
|
self,
|
52
|
-
user_metadata:
|
53
|
-
tool_parameters:
|
52
|
+
user_metadata: Mapping[str, Union[str, int, bool]],
|
53
|
+
tool_parameters: Mapping[str, Union[str, int, bool]],
|
54
54
|
) -> Self:
|
55
55
|
return self.model_copy()
|
56
56
|
|
@@ -62,8 +62,8 @@ class Statement(BaseStatement):
|
|
62
62
|
|
63
63
|
def _fill_in_variables(
|
64
64
|
self,
|
65
|
-
user_metadata:
|
66
|
-
tool_parameters:
|
65
|
+
user_metadata: Mapping[str, Union[str, int, bool]],
|
66
|
+
tool_parameters: Mapping[str, Union[str, int, bool]],
|
67
67
|
) -> Self:
|
68
68
|
new_stmt = self.model_copy()
|
69
69
|
new_stmt.value = eval_operator(self, user_metadata, tool_parameters)
|
@@ -72,13 +72,13 @@ class Statement(BaseStatement):
|
|
72
72
|
|
73
73
|
class AndStatement(BaseStatement):
|
74
74
|
and_list: List[Union["Statement", "AndStatement", "OrStatement"]] = Field(
|
75
|
-
|
75
|
+
validation_alias=AliasChoices("and", "and_list"), serialization_alias="and"
|
76
76
|
)
|
77
77
|
|
78
78
|
def _fill_in_variables(
|
79
79
|
self,
|
80
|
-
user_metadata:
|
81
|
-
tool_parameters:
|
80
|
+
user_metadata: Mapping[str, Union[str, int, bool]],
|
81
|
+
tool_parameters: Mapping[str, Union[str, int, bool]],
|
82
82
|
) -> Self:
|
83
83
|
new_stmt = self.model_copy()
|
84
84
|
new_stmt.and_list = [
|
@@ -90,13 +90,13 @@ class AndStatement(BaseStatement):
|
|
90
90
|
|
91
91
|
class OrStatement(BaseStatement):
|
92
92
|
or_list: List[Union["Statement", "AndStatement", "OrStatement"]] = Field(
|
93
|
-
|
93
|
+
validation_alias=AliasChoices("or", "or_list"), serialization_alias="or"
|
94
94
|
)
|
95
95
|
|
96
96
|
def _fill_in_variables(
|
97
97
|
self,
|
98
|
-
user_metadata:
|
99
|
-
tool_parameters:
|
98
|
+
user_metadata: Mapping[str, Union[str, int, bool]],
|
99
|
+
tool_parameters: Mapping[str, Union[str, int, bool]],
|
100
100
|
) -> Self:
|
101
101
|
new_stmt = self.model_copy()
|
102
102
|
new_stmt.or_list = [
|
@@ -121,8 +121,8 @@ def is_array_of_strings(value: Any) -> bool:
|
|
121
121
|
|
122
122
|
def eval_operator(
|
123
123
|
query: Statement,
|
124
|
-
user_metadata:
|
125
|
-
tool_parameters:
|
124
|
+
user_metadata: Mapping[str, Union[str, int, bool]],
|
125
|
+
tool_parameters: Mapping[str, Union[str, int, bool]],
|
126
126
|
) -> Any:
|
127
127
|
if query.operator in [
|
128
128
|
Operator.EQUALS,
|
@@ -149,8 +149,8 @@ def eval_operator(
|
|
149
149
|
|
150
150
|
def eval_nested_operator(
|
151
151
|
value: Any,
|
152
|
-
user_metadata:
|
153
|
-
tool_parameters:
|
152
|
+
user_metadata: Mapping[str, Union[str, int, bool]],
|
153
|
+
tool_parameters: Mapping[str, Union[str, int, bool]],
|
154
154
|
) -> Union[AndStatement, OrStatement]:
|
155
155
|
if not isinstance(value, (AndStatement, OrStatement)):
|
156
156
|
raise ValueError("Nested operator must be an AndStatement or OrStatement")
|
@@ -159,16 +159,16 @@ def eval_nested_operator(
|
|
159
159
|
|
160
160
|
def binary_operator(
|
161
161
|
value: Any,
|
162
|
-
user_metadata:
|
163
|
-
tool_parameters:
|
162
|
+
user_metadata: Mapping[str, Union[str, int, bool]],
|
163
|
+
tool_parameters: Mapping[str, Union[str, int, bool]],
|
164
164
|
) -> Any:
|
165
165
|
return replace_variables(value, user_metadata, tool_parameters)
|
166
166
|
|
167
167
|
|
168
168
|
def array_operator(
|
169
169
|
value: Any,
|
170
|
-
user_metadata:
|
171
|
-
tool_parameters:
|
170
|
+
user_metadata: Mapping[str, Union[str, int, bool]],
|
171
|
+
tool_parameters: Mapping[str, Union[str, int, bool]],
|
172
172
|
) -> Any:
|
173
173
|
if is_array_of_strings(value):
|
174
174
|
return [
|
@@ -179,16 +179,16 @@ def array_operator(
|
|
179
179
|
|
180
180
|
def null_operator(
|
181
181
|
value: Any,
|
182
|
-
user_metadata:
|
183
|
-
tool_parameters:
|
182
|
+
user_metadata: Mapping[str, Union[str, int, bool]],
|
183
|
+
tool_parameters: Mapping[str, Union[str, int, bool]],
|
184
184
|
) -> Any:
|
185
185
|
return value # do nothing for now. No variables to replace
|
186
186
|
|
187
187
|
|
188
188
|
def empty_operator(
|
189
189
|
operator: Operator,
|
190
|
-
user_metadata:
|
191
|
-
tool_parameters:
|
190
|
+
user_metadata: Mapping[str, Union[str, int, bool]],
|
191
|
+
tool_parameters: Mapping[str, Union[str, int, bool]],
|
192
192
|
) -> Any:
|
193
193
|
"""Handle IS_EMPTY and IS_NOT_EMPTY operators."""
|
194
194
|
if operator == Operator.IS_EMPTY:
|
@@ -225,8 +225,8 @@ def calculate_later_date(input_str: str) -> str:
|
|
225
225
|
|
226
226
|
def replace_variables(
|
227
227
|
value: Any,
|
228
|
-
user_metadata:
|
229
|
-
tool_parameters:
|
228
|
+
user_metadata: Mapping[str, Union[str, int, bool]],
|
229
|
+
tool_parameters: Mapping[str, Union[str, int, bool]],
|
230
230
|
) -> Any:
|
231
231
|
if isinstance(value, str):
|
232
232
|
if "||" in value:
|
@@ -274,8 +274,8 @@ def replace_user_metadata_patterns(
|
|
274
274
|
|
275
275
|
def get_fallback_values(
|
276
276
|
value: str,
|
277
|
-
user_metadata:
|
278
|
-
tool_parameters:
|
277
|
+
user_metadata: Mapping[str, Union[str, int, bool]],
|
278
|
+
tool_parameters: Mapping[str, Union[str, int, bool]],
|
279
279
|
) -> Any:
|
280
280
|
values = value.split("||")
|
281
281
|
for val in values:
|
@@ -14,6 +14,7 @@ from unique_toolkit.content.functions import (
|
|
14
14
|
download_content_to_bytes,
|
15
15
|
download_content_to_file_by_id,
|
16
16
|
get_content_info,
|
17
|
+
get_folder_info,
|
17
18
|
search_content_chunks,
|
18
19
|
search_content_chunks_async,
|
19
20
|
search_contents,
|
@@ -28,7 +29,8 @@ from unique_toolkit.content.schemas import (
|
|
28
29
|
ContentInfo,
|
29
30
|
ContentRerankerConfig,
|
30
31
|
ContentSearchType,
|
31
|
-
|
32
|
+
FolderInfo,
|
33
|
+
PaginatedContentInfos,
|
32
34
|
)
|
33
35
|
|
34
36
|
_LOGGER = logging.getLogger(f"toolkit.knowledge_base.{__name__}")
|
@@ -483,7 +485,7 @@ class KnowledgeBaseService:
|
|
483
485
|
skip: int | None = None,
|
484
486
|
take: int | None = None,
|
485
487
|
file_path: str | None = None,
|
486
|
-
) ->
|
488
|
+
) -> PaginatedContentInfos:
|
487
489
|
return get_content_info(
|
488
490
|
user_id=self._user_id,
|
489
491
|
company_id=self._company_id,
|
@@ -493,6 +495,17 @@ class KnowledgeBaseService:
|
|
493
495
|
file_path=file_path,
|
494
496
|
)
|
495
497
|
|
498
|
+
def get_folder_info(
|
499
|
+
self,
|
500
|
+
*,
|
501
|
+
scope_id: str,
|
502
|
+
) -> FolderInfo:
|
503
|
+
return get_folder_info(
|
504
|
+
user_id=self._user_id,
|
505
|
+
company_id=self._company_id,
|
506
|
+
scope_id=scope_id,
|
507
|
+
)
|
508
|
+
|
496
509
|
def replace_content_metadata(
|
497
510
|
self,
|
498
511
|
*,
|
@@ -506,6 +519,72 @@ class KnowledgeBaseService:
|
|
506
519
|
metadata=metadata,
|
507
520
|
)
|
508
521
|
|
522
|
+
def _resolve_visible_file_tree(self, content_infos: list[ContentInfo]) -> list[str]:
|
523
|
+
# collect all scope ids
|
524
|
+
folder_id_paths: set[str] = set()
|
525
|
+
known_folder_paths: set[str] = set()
|
526
|
+
for content_info in content_infos:
|
527
|
+
if (
|
528
|
+
content_info.metadata
|
529
|
+
and content_info.metadata.get(r"{FullPath}") is not None
|
530
|
+
):
|
531
|
+
known_folder_paths.add(str(content_info.metadata.get(r"{FullPath}")))
|
532
|
+
continue
|
533
|
+
|
534
|
+
if (
|
535
|
+
content_info.metadata
|
536
|
+
and content_info.metadata.get("folderIdPath") is not None
|
537
|
+
):
|
538
|
+
folder_id_paths.add(str(content_info.metadata.get("folderIdPath")))
|
539
|
+
|
540
|
+
scope_ids: set[str] = set()
|
541
|
+
for fp in folder_id_paths:
|
542
|
+
scope_ids_list = set(fp.replace("uniquepathid://", "").split("/"))
|
543
|
+
scope_ids.update(scope_ids_list)
|
544
|
+
|
545
|
+
scope_id_to_folder_name: dict[str, str] = {}
|
546
|
+
for scope_id in scope_ids:
|
547
|
+
folder_info = self.get_folder_info(
|
548
|
+
scope_id=scope_id,
|
549
|
+
)
|
550
|
+
scope_id_to_folder_name[scope_id] = folder_info.name
|
551
|
+
|
552
|
+
folder_paths: set[str] = set()
|
553
|
+
for folder_id_path in folder_id_paths:
|
554
|
+
scope_ids_list = folder_id_path.replace("uniquepathid://", "").split("/")
|
555
|
+
|
556
|
+
if all(scope_id in scope_id_to_folder_name for scope_id in scope_ids_list):
|
557
|
+
folder_path = [
|
558
|
+
scope_id_to_folder_name[scope_id] for scope_id in scope_ids_list
|
559
|
+
]
|
560
|
+
folder_paths.add("/".join(folder_path))
|
561
|
+
|
562
|
+
return [
|
563
|
+
p if p.startswith("/") else f"/{p}"
|
564
|
+
for p in folder_paths.union(known_folder_paths)
|
565
|
+
]
|
566
|
+
|
567
|
+
def resolve_visible_file_tree(
|
568
|
+
self, *, metadata_filter: dict[str, Any] | None = None
|
569
|
+
) -> list[str]:
|
570
|
+
"""
|
571
|
+
Resolves the visible file tree for the knowledge base for the current user.
|
572
|
+
|
573
|
+
Args:
|
574
|
+
metadata_filter (dict[str, Any] | None): The metadata filter to use. Defaults to None.
|
575
|
+
|
576
|
+
Returns:
|
577
|
+
list[str]: The visible file tree.
|
578
|
+
|
579
|
+
|
580
|
+
|
581
|
+
"""
|
582
|
+
info = self.get_paginated_content_infos(
|
583
|
+
metadata_filter=metadata_filter,
|
584
|
+
)
|
585
|
+
|
586
|
+
return self._resolve_visible_file_tree(content_infos=info.content_infos)
|
587
|
+
|
509
588
|
|
510
589
|
if __name__ == "__main__":
|
511
590
|
kb_service = KnowledgeBaseService.from_settings()
|
@@ -0,0 +1,56 @@
|
|
1
|
+
import warnings
|
2
|
+
|
3
|
+
from unique_toolkit.content.smart_rules import (
|
4
|
+
AndStatement,
|
5
|
+
BaseStatement,
|
6
|
+
Operator,
|
7
|
+
OrStatement,
|
8
|
+
Statement,
|
9
|
+
UniqueQL,
|
10
|
+
array_operator,
|
11
|
+
binary_operator,
|
12
|
+
calculate_current_date,
|
13
|
+
calculate_earlier_date,
|
14
|
+
calculate_later_date,
|
15
|
+
empty_operator,
|
16
|
+
eval_nested_operator,
|
17
|
+
eval_operator,
|
18
|
+
get_fallback_values,
|
19
|
+
is_array_of_strings,
|
20
|
+
null_operator,
|
21
|
+
parse_uniqueql,
|
22
|
+
replace_tool_parameters_patterns,
|
23
|
+
replace_user_metadata_patterns,
|
24
|
+
replace_variables,
|
25
|
+
)
|
26
|
+
|
27
|
+
warnings.warn(
|
28
|
+
"unique_toolkit.smart_rules.compile is deprecated. "
|
29
|
+
"Please use unique_toolkit.content.smart_rules instead.",
|
30
|
+
DeprecationWarning,
|
31
|
+
stacklevel=2,
|
32
|
+
)
|
33
|
+
|
34
|
+
__all__ = [
|
35
|
+
"AndStatement",
|
36
|
+
"BaseStatement",
|
37
|
+
"Operator",
|
38
|
+
"OrStatement",
|
39
|
+
"Statement",
|
40
|
+
"UniqueQL",
|
41
|
+
"array_operator",
|
42
|
+
"binary_operator",
|
43
|
+
"calculate_current_date",
|
44
|
+
"calculate_earlier_date",
|
45
|
+
"calculate_later_date",
|
46
|
+
"empty_operator",
|
47
|
+
"eval_nested_operator",
|
48
|
+
"eval_operator",
|
49
|
+
"get_fallback_values",
|
50
|
+
"is_array_of_strings",
|
51
|
+
"null_operator",
|
52
|
+
"parse_uniqueql",
|
53
|
+
"replace_tool_parameters_patterns",
|
54
|
+
"replace_user_metadata_patterns",
|
55
|
+
"replace_variables",
|
56
|
+
]
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/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.11.1 → unique_toolkit-1.11.3}/unique_toolkit/_common/default_language_model.py
RENAMED
File without changes
|
File without changes
|
{unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/_common/endpoint_requestor.py
RENAMED
File without changes
|
File without changes
|
{unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/_common/feature_flags/schema.py
RENAMED
File without changes
|
{unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/_common/pydantic/rjsf_tags.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/_common/token/image_token_counting.py
RENAMED
File without changes
|
{unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/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.11.1 → unique_toolkit-1.11.3}/unique_toolkit/_common/utils/write_configuration.py
RENAMED
File without changes
|
{unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/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
|
{unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/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.11.1 → unique_toolkit-1.11.3}/unique_toolkit/agentic/evaluation/output_parser.py
RENAMED
File without changes
|
{unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/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.11.1 → unique_toolkit-1.11.3}/unique_toolkit/agentic/history_manager/utils.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/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.11.1 → unique_toolkit-1.11.3}/unique_toolkit/agentic/tools/a2a/tool/__init__.py
RENAMED
File without changes
|
{unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/agentic/tools/a2a/tool/_memory.py
RENAMED
File without changes
|
{unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/agentic/tools/a2a/tool/_schema.py
RENAMED
File without changes
|
{unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/agentic/tools/a2a/tool/config.py
RENAMED
File without changes
|
{unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/agentic/tools/a2a/tool/service.py
RENAMED
File without changes
|
{unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/agentic/tools/agent_chunks_hanlder.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/agentic/tools/mcp/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/agentic/tools/mcp/tool_wrapper.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/agentic/tools/tool_manager.py
RENAMED
File without changes
|
File without changes
|
{unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/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.11.1 → unique_toolkit-1.11.3}/unique_toolkit/app/performance/async_tasks.py
RENAMED
File without changes
|
{unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/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
|
{unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/framework_utilities/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/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
|
{unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/short_term_memory/__init__.py
RENAMED
File without changes
|
{unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/short_term_memory/constants.py
RENAMED
File without changes
|
{unique_toolkit-1.11.1 → unique_toolkit-1.11.3}/unique_toolkit/short_term_memory/functions.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|