unique_toolkit 0.8.54__tar.gz → 0.8.56__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.
Files changed (129) hide show
  1. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/CHANGELOG.md +6 -0
  2. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/PKG-INFO +9 -1
  3. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/pyproject.toml +3 -1
  4. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/history_manager/history_manager.py +2 -2
  5. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/history_manager/utils.py +3 -3
  6. unique_toolkit-0.8.56/unique_toolkit/tools/__init__.py +1 -0
  7. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/tools/tool_manager.py +1 -1
  8. unique_toolkit-0.8.56/unique_toolkit/tools/utils/__init__.py +1 -0
  9. unique_toolkit-0.8.56/unique_toolkit/tools/utils/execution/__init__.py +1 -0
  10. unique_toolkit-0.8.56/unique_toolkit/tools/utils/source_handling/__init__.py +0 -0
  11. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/LICENSE +0 -0
  12. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/README.md +0 -0
  13. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/__init__.py +0 -0
  14. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/_common/_base_service.py +0 -0
  15. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/_common/_time_utils.py +0 -0
  16. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/_common/base_model_type_attribute.py +0 -0
  17. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/_common/chunk_relevancy_sorter/config.py +0 -0
  18. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/_common/chunk_relevancy_sorter/exception.py +0 -0
  19. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/_common/chunk_relevancy_sorter/schemas.py +0 -0
  20. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/_common/chunk_relevancy_sorter/service.py +0 -0
  21. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/_common/chunk_relevancy_sorter/tests/test_service.py +0 -0
  22. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/_common/default_language_model.py +0 -0
  23. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/_common/endpoint_builder.py +0 -0
  24. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/_common/endpoint_requestor.py +0 -0
  25. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/_common/exception.py +0 -0
  26. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/_common/feature_flags/schema.py +0 -0
  27. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/_common/pydantic_helpers.py +0 -0
  28. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/_common/token/image_token_counting.py +0 -0
  29. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/_common/token/token_counting.py +0 -0
  30. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/_common/utils/structured_output/schema.py +0 -0
  31. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/_common/validate_required_values.py +0 -0
  32. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/_common/validators.py +0 -0
  33. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/app/__init__.py +0 -0
  34. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/app/dev_util.py +0 -0
  35. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/app/init_logging.py +0 -0
  36. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/app/init_sdk.py +0 -0
  37. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/app/performance/async_tasks.py +0 -0
  38. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/app/performance/async_wrapper.py +0 -0
  39. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/app/schemas.py +0 -0
  40. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/app/unique_settings.py +0 -0
  41. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/app/verification.py +0 -0
  42. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/chat/__init__.py +0 -0
  43. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/chat/constants.py +0 -0
  44. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/chat/functions.py +0 -0
  45. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/chat/schemas.py +0 -0
  46. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/chat/service.py +0 -0
  47. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/chat/state.py +0 -0
  48. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/chat/utils.py +0 -0
  49. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/content/__init__.py +0 -0
  50. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/content/constants.py +0 -0
  51. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/content/functions.py +0 -0
  52. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/content/schemas.py +0 -0
  53. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/content/service.py +0 -0
  54. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/content/utils.py +0 -0
  55. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/debug_info_manager/debug_info_manager.py +0 -0
  56. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/embedding/__init__.py +0 -0
  57. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/embedding/constants.py +0 -0
  58. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/embedding/functions.py +0 -0
  59. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/embedding/schemas.py +0 -0
  60. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/embedding/service.py +0 -0
  61. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/embedding/utils.py +0 -0
  62. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/evals/config.py +0 -0
  63. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/evals/context_relevancy/prompts.py +0 -0
  64. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/evals/context_relevancy/schema.py +0 -0
  65. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/evals/context_relevancy/service.py +0 -0
  66. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/evals/evaluation_manager.py +0 -0
  67. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/evals/exception.py +0 -0
  68. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/evals/hallucination/constants.py +0 -0
  69. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/evals/hallucination/hallucination_evaluation.py +0 -0
  70. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/evals/hallucination/prompts.py +0 -0
  71. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/evals/hallucination/service.py +0 -0
  72. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/evals/hallucination/utils.py +0 -0
  73. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/evals/output_parser.py +0 -0
  74. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/evals/schemas.py +0 -0
  75. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/evals/tests/test_context_relevancy_service.py +0 -0
  76. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/evals/tests/test_output_parser.py +0 -0
  77. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/framework_utilities/__init__.py +0 -0
  78. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/framework_utilities/langchain/client.py +0 -0
  79. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/framework_utilities/langchain/history.py +0 -0
  80. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/framework_utilities/openai/__init__.py +0 -0
  81. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/framework_utilities/openai/client.py +0 -0
  82. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/framework_utilities/openai/message_builder.py +0 -0
  83. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/framework_utilities/utils.py +0 -0
  84. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/history_manager/history_construction_with_contents.py +0 -0
  85. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/history_manager/loop_token_reducer.py +0 -0
  86. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/language_model/__init__.py +0 -0
  87. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/language_model/builder.py +0 -0
  88. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/language_model/constants.py +0 -0
  89. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/language_model/functions.py +0 -0
  90. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/language_model/infos.py +0 -0
  91. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/language_model/prompt.py +0 -0
  92. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/language_model/reference.py +0 -0
  93. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/language_model/schemas.py +0 -0
  94. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/language_model/service.py +0 -0
  95. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/language_model/utils.py +0 -0
  96. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/postprocessor/postprocessor_manager.py +0 -0
  97. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/protocols/support.py +0 -0
  98. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/reference_manager/reference_manager.py +0 -0
  99. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/short_term_memory/__init__.py +0 -0
  100. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/short_term_memory/constants.py +0 -0
  101. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/short_term_memory/functions.py +0 -0
  102. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/short_term_memory/persistent_short_term_memory_manager.py +0 -0
  103. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/short_term_memory/schemas.py +0 -0
  104. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/short_term_memory/service.py +0 -0
  105. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/smart_rules/__init__.py +0 -0
  106. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/smart_rules/compile.py +0 -0
  107. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/thinking_manager/thinking_manager.py +0 -0
  108. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/tools/a2a/__init__.py +0 -0
  109. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/tools/a2a/config.py +0 -0
  110. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/tools/a2a/manager.py +0 -0
  111. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/tools/a2a/memory.py +0 -0
  112. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/tools/a2a/schema.py +0 -0
  113. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/tools/a2a/service.py +0 -0
  114. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/tools/agent_chunks_hanlder.py +0 -0
  115. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/tools/config.py +0 -0
  116. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/tools/factory.py +0 -0
  117. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/tools/mcp/__init__.py +0 -0
  118. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/tools/mcp/manager.py +0 -0
  119. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/tools/mcp/models.py +0 -0
  120. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/tools/mcp/tool_wrapper.py +0 -0
  121. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/tools/schemas.py +0 -0
  122. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/tools/test/test_mcp_manager.py +0 -0
  123. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/tools/test/test_tool_progress_reporter.py +0 -0
  124. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/tools/tool.py +0 -0
  125. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/tools/tool_progress_reporter.py +0 -0
  126. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/tools/utils/execution/execution.py +0 -0
  127. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/tools/utils/source_handling/schema.py +0 -0
  128. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/tools/utils/source_handling/source_formatting.py +0 -0
  129. {unique_toolkit-0.8.54 → unique_toolkit-0.8.56}/unique_toolkit/tools/utils/source_handling/tests/test_source_formatting.py +0 -0
@@ -5,6 +5,12 @@ All notable changes to this project will be documented in this file.
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
7
 
8
+ ## [0.8.56] - 2025-09-12
9
+ - Fixed token counter in utils
10
+
11
+ ## [0.8.55] - 2025-09-10
12
+ - Update documentation with agentic managers
13
+
8
14
  ## [0.8.54] - 2025-09-10
9
15
  - HistoryManager: compute source numbering offset from prior serialized tool messages using `load_sources_from_string`
10
16
  - LoopTokenReducer: serialize reduced tool messages as JSON arrays to keep offsets parsable
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: unique_toolkit
3
- Version: 0.8.54
3
+ Version: 0.8.56
4
4
  Summary:
5
5
  License: Proprietary
6
6
  Author: Cedric Klinkert
@@ -11,6 +11,8 @@ Classifier: Programming Language :: Python :: 3
11
11
  Classifier: Programming Language :: Python :: 3.11
12
12
  Classifier: Programming Language :: Python :: 3.12
13
13
  Requires-Dist: jambo (>=0.1.2,<0.2.0)
14
+ Requires-Dist: mkdocs-mermaid2-plugin (>=1.2.2,<2.0.0)
15
+ Requires-Dist: mkdocs-multirepo-plugin (>=0.8.3,<0.9.0)
14
16
  Requires-Dist: numpy (>=1.26.4,<2.0.0)
15
17
  Requires-Dist: openai (>=1.99.9,<2.0.0)
16
18
  Requires-Dist: pillow (>=10.4.0,<11.0.0)
@@ -117,6 +119,12 @@ All notable changes to this project will be documented in this file.
117
119
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
118
120
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
119
121
 
122
+ ## [0.8.56] - 2025-09-12
123
+ - Fixed token counter in utils
124
+
125
+ ## [0.8.55] - 2025-09-10
126
+ - Update documentation with agentic managers
127
+
120
128
  ## [0.8.54] - 2025-09-10
121
129
  - HistoryManager: compute source numbering offset from prior serialized tool messages using `load_sources_from_string`
122
130
  - LoopTokenReducer: serialize reduced tool messages as JSON arrays to keep offsets parsable
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "unique_toolkit"
3
- version = "0.8.54"
3
+ version = "0.8.56"
4
4
  description = ""
5
5
  authors = [
6
6
  "Cedric Klinkert <cedric.klinkert@unique.ch>",
@@ -29,6 +29,8 @@ platformdirs = "^4.0.0"
29
29
  pillow = "^10.4.0"
30
30
  unique-sdk = "^0.10.0"
31
31
  jambo = "^0.1.2"
32
+ mkdocs-multirepo-plugin = "^0.8.3"
33
+ mkdocs-mermaid2-plugin = "^1.2.2"
32
34
 
33
35
  [tool.poetry.group.langchain]
34
36
  optional = true
@@ -170,7 +170,7 @@ class HistoryManager:
170
170
  ) # it can be that the tool response does not have content chunks
171
171
 
172
172
  # Transform content chunks into sources to be appended to tool result
173
- sources = transform_chunks_to_string(
173
+ stringified_sources, sources = transform_chunks_to_string(
174
174
  content_chunks,
175
175
  self._source_enumerator,
176
176
  None, # Use None for SourceFormatConfig
@@ -183,7 +183,7 @@ class HistoryManager:
183
183
 
184
184
  # Append the result to the history
185
185
  return LanguageModelToolMessage(
186
- content=sources,
186
+ content=stringified_sources,
187
187
  tool_call_id=tool_response.id, # type: ignore
188
188
  name=tool_response.name,
189
189
  )
@@ -64,7 +64,7 @@ def transform_chunks_to_string(
64
64
  max_source_number: int,
65
65
  cfg: SourceFormatConfig | None,
66
66
  full_sources_serialize_dump: bool = False,
67
- ) -> str:
67
+ ) -> tuple[str, list[Source]]:
68
68
  """Transform content chunks into a string of sources.
69
69
 
70
70
  Args:
@@ -76,7 +76,7 @@ def transform_chunks_to_string(
76
76
  str: String for the tool call response
77
77
  """
78
78
  if not content_chunks:
79
- return "No relevant sources found."
79
+ return "No relevant sources found.", []
80
80
  if full_sources_serialize_dump:
81
81
  sources = [
82
82
  Source(
@@ -114,7 +114,7 @@ def transform_chunks_to_string(
114
114
  }
115
115
  for i, chunk in enumerate(content_chunks)
116
116
  ]
117
- return json.dumps(sources)
117
+ return json.dumps(sources), sources
118
118
 
119
119
 
120
120
  def load_sources_from_string(
@@ -0,0 +1 @@
1
+ """Tools module for the Unique Toolkit."""
@@ -122,7 +122,7 @@ class ToolManager:
122
122
  continue
123
123
  if t.name in self._disabled_tools:
124
124
  continue
125
- if len(tool_choices) > 0 and t.name not in tool_choices:
125
+ if len(self._tool_choices) > 0 and t.name not in self._tool_choices:
126
126
  continue
127
127
 
128
128
  self._tools.append(t)
@@ -0,0 +1 @@
1
+ """Utilities for tools."""
@@ -0,0 +1 @@
1
+ """Execution utilities for tools."""
File without changes