unique_toolkit 1.8.1__py3-none-any.whl → 1.23.0__py3-none-any.whl

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.

Potentially problematic release.


This version of unique_toolkit might be problematic. Click here for more details.

Files changed (105) hide show
  1. unique_toolkit/__init__.py +20 -0
  2. unique_toolkit/_common/api_calling/human_verification_manager.py +121 -28
  3. unique_toolkit/_common/chunk_relevancy_sorter/config.py +3 -3
  4. unique_toolkit/_common/chunk_relevancy_sorter/tests/test_service.py +2 -5
  5. unique_toolkit/_common/default_language_model.py +9 -3
  6. unique_toolkit/_common/docx_generator/__init__.py +7 -0
  7. unique_toolkit/_common/docx_generator/config.py +12 -0
  8. unique_toolkit/_common/docx_generator/schemas.py +80 -0
  9. unique_toolkit/_common/docx_generator/service.py +252 -0
  10. unique_toolkit/_common/docx_generator/template/Doc Template.docx +0 -0
  11. unique_toolkit/_common/endpoint_builder.py +138 -117
  12. unique_toolkit/_common/endpoint_requestor.py +240 -14
  13. unique_toolkit/_common/exception.py +20 -0
  14. unique_toolkit/_common/feature_flags/schema.py +1 -5
  15. unique_toolkit/_common/referencing.py +53 -0
  16. unique_toolkit/_common/string_utilities.py +52 -1
  17. unique_toolkit/_common/tests/test_referencing.py +521 -0
  18. unique_toolkit/_common/tests/test_string_utilities.py +506 -0
  19. unique_toolkit/_common/utils/files.py +43 -0
  20. unique_toolkit/agentic/debug_info_manager/debug_info_manager.py +16 -6
  21. unique_toolkit/agentic/debug_info_manager/test/test_debug_info_manager.py +278 -0
  22. unique_toolkit/agentic/evaluation/config.py +3 -2
  23. unique_toolkit/agentic/evaluation/context_relevancy/service.py +2 -2
  24. unique_toolkit/agentic/evaluation/evaluation_manager.py +9 -5
  25. unique_toolkit/agentic/evaluation/hallucination/constants.py +1 -1
  26. unique_toolkit/agentic/evaluation/hallucination/hallucination_evaluation.py +26 -3
  27. unique_toolkit/agentic/history_manager/history_manager.py +14 -11
  28. unique_toolkit/agentic/history_manager/loop_token_reducer.py +3 -4
  29. unique_toolkit/agentic/history_manager/utils.py +10 -87
  30. unique_toolkit/agentic/postprocessor/postprocessor_manager.py +107 -16
  31. unique_toolkit/agentic/reference_manager/reference_manager.py +1 -1
  32. unique_toolkit/agentic/responses_api/__init__.py +19 -0
  33. unique_toolkit/agentic/responses_api/postprocessors/code_display.py +63 -0
  34. unique_toolkit/agentic/responses_api/postprocessors/generated_files.py +145 -0
  35. unique_toolkit/agentic/responses_api/stream_handler.py +15 -0
  36. unique_toolkit/agentic/tools/a2a/__init__.py +18 -2
  37. unique_toolkit/agentic/tools/a2a/evaluation/__init__.py +2 -0
  38. unique_toolkit/agentic/tools/a2a/evaluation/_utils.py +3 -3
  39. unique_toolkit/agentic/tools/a2a/evaluation/config.py +1 -1
  40. unique_toolkit/agentic/tools/a2a/evaluation/evaluator.py +143 -91
  41. unique_toolkit/agentic/tools/a2a/manager.py +7 -1
  42. unique_toolkit/agentic/tools/a2a/postprocessing/__init__.py +11 -3
  43. unique_toolkit/agentic/tools/a2a/postprocessing/_display_utils.py +185 -0
  44. unique_toolkit/agentic/tools/a2a/postprocessing/_ref_utils.py +73 -0
  45. unique_toolkit/agentic/tools/a2a/postprocessing/config.py +21 -0
  46. unique_toolkit/agentic/tools/a2a/postprocessing/display.py +180 -0
  47. unique_toolkit/agentic/tools/a2a/postprocessing/references.py +101 -0
  48. unique_toolkit/agentic/tools/a2a/postprocessing/test/test_display_utils.py +1335 -0
  49. unique_toolkit/agentic/tools/a2a/postprocessing/test/test_ref_utils.py +603 -0
  50. unique_toolkit/agentic/tools/a2a/prompts.py +46 -0
  51. unique_toolkit/agentic/tools/a2a/response_watcher/__init__.py +6 -0
  52. unique_toolkit/agentic/tools/a2a/response_watcher/service.py +91 -0
  53. unique_toolkit/agentic/tools/a2a/tool/config.py +15 -5
  54. unique_toolkit/agentic/tools/a2a/tool/service.py +69 -36
  55. unique_toolkit/agentic/tools/config.py +16 -2
  56. unique_toolkit/agentic/tools/factory.py +4 -0
  57. unique_toolkit/agentic/tools/mcp/tool_wrapper.py +7 -35
  58. unique_toolkit/agentic/tools/openai_builtin/__init__.py +11 -0
  59. unique_toolkit/agentic/tools/openai_builtin/base.py +30 -0
  60. unique_toolkit/agentic/tools/openai_builtin/code_interpreter/__init__.py +8 -0
  61. unique_toolkit/agentic/tools/openai_builtin/code_interpreter/config.py +57 -0
  62. unique_toolkit/agentic/tools/openai_builtin/code_interpreter/service.py +230 -0
  63. unique_toolkit/agentic/tools/openai_builtin/manager.py +62 -0
  64. unique_toolkit/agentic/tools/test/test_mcp_manager.py +95 -7
  65. unique_toolkit/agentic/tools/test/test_tool_progress_reporter.py +240 -0
  66. unique_toolkit/agentic/tools/tool.py +0 -11
  67. unique_toolkit/agentic/tools/tool_manager.py +337 -122
  68. unique_toolkit/agentic/tools/tool_progress_reporter.py +81 -15
  69. unique_toolkit/agentic/tools/utils/__init__.py +18 -0
  70. unique_toolkit/agentic/tools/utils/execution/execution.py +8 -4
  71. unique_toolkit/agentic/tools/utils/source_handling/schema.py +1 -1
  72. unique_toolkit/chat/__init__.py +8 -1
  73. unique_toolkit/chat/deprecated/service.py +232 -0
  74. unique_toolkit/chat/functions.py +54 -40
  75. unique_toolkit/chat/rendering.py +34 -0
  76. unique_toolkit/chat/responses_api.py +461 -0
  77. unique_toolkit/chat/schemas.py +1 -1
  78. unique_toolkit/chat/service.py +96 -1569
  79. unique_toolkit/content/functions.py +116 -1
  80. unique_toolkit/content/schemas.py +59 -0
  81. unique_toolkit/content/service.py +5 -37
  82. unique_toolkit/content/smart_rules.py +301 -0
  83. unique_toolkit/framework_utilities/langchain/client.py +27 -3
  84. unique_toolkit/framework_utilities/openai/client.py +12 -1
  85. unique_toolkit/framework_utilities/openai/message_builder.py +85 -1
  86. unique_toolkit/language_model/default_language_model.py +3 -0
  87. unique_toolkit/language_model/functions.py +25 -9
  88. unique_toolkit/language_model/infos.py +72 -4
  89. unique_toolkit/language_model/schemas.py +246 -40
  90. unique_toolkit/protocols/support.py +91 -9
  91. unique_toolkit/services/__init__.py +7 -0
  92. unique_toolkit/services/chat_service.py +1630 -0
  93. unique_toolkit/services/knowledge_base.py +861 -0
  94. unique_toolkit/smart_rules/compile.py +56 -301
  95. unique_toolkit/test_utilities/events.py +197 -0
  96. {unique_toolkit-1.8.1.dist-info → unique_toolkit-1.23.0.dist-info}/METADATA +173 -3
  97. {unique_toolkit-1.8.1.dist-info → unique_toolkit-1.23.0.dist-info}/RECORD +99 -67
  98. unique_toolkit/agentic/tools/a2a/postprocessing/_display.py +0 -122
  99. unique_toolkit/agentic/tools/a2a/postprocessing/_utils.py +0 -19
  100. unique_toolkit/agentic/tools/a2a/postprocessing/postprocessor.py +0 -230
  101. unique_toolkit/agentic/tools/a2a/postprocessing/test/test_consolidate_references.py +0 -665
  102. unique_toolkit/agentic/tools/a2a/postprocessing/test/test_display.py +0 -391
  103. unique_toolkit/agentic/tools/a2a/postprocessing/test/test_postprocessor_reference_functions.py +0 -256
  104. {unique_toolkit-1.8.1.dist-info → unique_toolkit-1.23.0.dist-info}/LICENSE +0 -0
  105. {unique_toolkit-1.8.1.dist-info → unique_toolkit-1.23.0.dist-info}/WHEEL +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: unique_toolkit
3
- Version: 1.8.1
3
+ Version: 1.23.0
4
4
  Summary:
5
5
  License: Proprietary
6
6
  Author: Cedric Klinkert
@@ -9,7 +9,9 @@ Requires-Python: >=3.12,<4.0
9
9
  Classifier: License :: Other/Proprietary License
10
10
  Classifier: Programming Language :: Python :: 3
11
11
  Classifier: Programming Language :: Python :: 3.12
12
+ Requires-Dist: docxtpl (>=0.20.1,<0.21.0)
12
13
  Requires-Dist: jambo (>=0.1.2,<0.2.0)
14
+ Requires-Dist: markdown-it-py (>=4.0.0,<5.0.0)
13
15
  Requires-Dist: mkdocs-mermaid2-plugin (>=1.2.2,<2.0.0)
14
16
  Requires-Dist: mkdocs-multirepo-plugin (>=0.8.3,<0.9.0)
15
17
  Requires-Dist: numpy (>=1.26.4,<2.0.0)
@@ -24,7 +26,7 @@ Requires-Dist: regex (>=2024.5.15,<2025.0.0)
24
26
  Requires-Dist: sseclient (>=0.0.27,<0.0.28)
25
27
  Requires-Dist: tiktoken (>=0.7.0,<0.8.0)
26
28
  Requires-Dist: typing-extensions (>=4.9.0,<5.0.0)
27
- Requires-Dist: unique-sdk (>=0.10.0,<0.11.0)
29
+ Requires-Dist: unique-sdk (>=0.10.28,<0.11.0)
28
30
  Description-Content-Type: text/markdown
29
31
 
30
32
  # Unique Toolkit
@@ -88,7 +90,7 @@ The `unique_toolkit.embedding` module encompasses all embedding related function
88
90
  The `unique_toolkit.language_model` module encompasses all language model related functionality and information on the different language models deployed through the
89
91
  Unique platform.
90
92
 
91
- - `infos.py` comprises the information on all language models deployed through the Unique platform. We recommend to use the LanguageModel class, initialized with the LanguageModelName, e.g., LanguageModel(LanguageModelName.AZURE_GPT_35_TURBO_0125) to get the information on the specific language model like the name, version, token limits or retirement date.
93
+ - `infos.py` comprises the information on all language models deployed through the Unique platform. We recommend to use the LanguageModel class, initialized with the LanguageModelName, e.g., LanguageModel(LanguageModelName.AZURE_GPT_4o_2024_1120) to get the information on the specific language model like the name, version, token limits or retirement date.
92
94
  - `functions.py` comprises the functions to complete and stream complete to chat.
93
95
  - `service.py` comprises the LanguageModelService and provides an interface to interact with the language models, e.g., complete.
94
96
  - `schemas.py` comprises all relevant schemas, e.g., LanguageModelResponse, used in the LanguageModelService.
@@ -118,6 +120,173 @@ All notable changes to this project will be documented in this file.
118
120
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
119
121
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
120
122
 
123
+ ## [1.23.0] - 2025-11-04
124
+ - Refactor sub agent tools implementation for clarity and testability.
125
+
126
+ ## [1.22.2] - 2025-11-03
127
+ - Updated `unique_ai_how-it-works.md` and `plan_processing.md` to document how new assistant messages are generated when the orchestrator produces output text and triggers tool calls within the same loop iteration.
128
+
129
+ ## [1.22.1] - 2025-11-03
130
+ - Add missing package required markdown-it-py
131
+
132
+ ## [1.22.0] - 2025-10-31
133
+ - Add `DocxGeneratorService` for generating Word documents from markdown with template support
134
+ - Fix documentation for `update_message_execution`, `update_message_execution_async`, `update_assistant_message_execution`, and `update_assistant_message_execution_async` functions to correctly reflect that the `status` parameter is now optional
135
+
136
+ ## [1.21.2] - 2025-10-30
137
+ - Fixing that system format info is only appended to system prompt if tool is called
138
+
139
+ ## [1.21.1] - 2025-10-30
140
+ - Improve Spaces 2.0 display of tool progress reporter configuration.
141
+
142
+ ## [1.21.0] - 2025-10-30
143
+ - Add option to customize the display of tool progress statuses.
144
+
145
+ ## [1.20.1] - 2025-10-30
146
+ - Fix typing issues in `LanguageModelFunction`.
147
+
148
+ ## [1.20.0] - 2025-10-30
149
+ - Fix bug where async tasks executed with `SafeTaskExecutor` did not log exceptions.
150
+ - Add option to customize sub agent response display title.
151
+ - Add option to display sub agent responses after the main agent response.
152
+ - Add option to specify postprocessors to run before or after the others in the `PostprocessorManager`.
153
+
154
+ ## [1.19.3] - 2025-10-29
155
+ - More documentation on advanced rendering
156
+
157
+ ## [1.19.2] - 2025-10-29
158
+ - Removing unused tool specific `get_tool_call_result_for_loop_history` function
159
+ - Removing unused experimental config `full_sources_serialize_dump` in `history_manager`
160
+
161
+ ## [1.19.1] - 2025-10-29
162
+ - Make api operations more flexible
163
+ - Make verification button text adaptable
164
+
165
+ ## [1.19.0] - 2025-10-28
166
+ - Enable additional headers on openai and langchain client
167
+
168
+
169
+ ## [1.18.1] - 2025-10-28
170
+ - Fix bug where sub agent references were not properly displayed in the main agent response when the sub agent response was hidden.
171
+
172
+ ## [1.18.0] - 2025-10-27
173
+ - Temporary fix to rendering of sub agent responses.
174
+ - Add config option `stop_condition` to `SubAgentToolConfig`
175
+ - Add config option `tool_choices` to `SubAgentToolConfig`
176
+ - Make sub agent evaluation use the name of the sub agent name if only one assessment is valid
177
+
178
+ ## [1.17.3] - 2025-10-27
179
+ - Update Hallucination check citation regex parsing pattern
180
+
181
+ ## [1.17.2] - 2025-10-23
182
+ - Adding model `AZURE_GPT_5_PRO_2025_1006` and `litellm:openai-gpt-5-pro` to `language_model/info.py`
183
+
184
+ ## [1.17.1] - 2025-10-23
185
+ - Fix hallucination check input with all cited reference chunks.
186
+
187
+ ## [1.17.0] - 2025-10-22
188
+ - Add more options to display sub agent answers in the chat.
189
+
190
+ ## [1.16.5] - 2025-10-16
191
+ - Adding litellm models `litellm:anthropic-claude-haiku-4-5`
192
+
193
+ ## [1.16.4] - 2025-10-18
194
+ - Fix bug with MCP tool parameters schema
195
+
196
+ ## [1.16.3] - 2025-10-18
197
+ - Add logging of MCP tool schema and constructed parameters
198
+
199
+ ## [1.16.2] - 2025-10-16
200
+ - Reduce operation dependency on path instead of full url
201
+
202
+ ## [1.16.1] - 2025-10-16
203
+ - Update debug info for better tool call tracking
204
+
205
+ ## [1.16.0] - 2025-10-16
206
+ - Add responses api support.
207
+ - Add utilities for code execution.
208
+
209
+ ## [1.15.0] - 2025-10-15
210
+ - Enable to distinguish between environment and modifiable payload parameters in human verification
211
+
212
+ ## [1.14.11] - 2025-10-13
213
+ - Introduce testing guidelines for AI
214
+ - Add AI tests to `tool_config` and `tool_factory.py`
215
+
216
+ ## [1.14.10] - 2025-10-13
217
+ - Fix token counter if images in history
218
+
219
+ ## [1.14.9] - 2025-10-13
220
+ - Fix removal of metadata
221
+
222
+ ## [1.14.8] - 2025-10-13
223
+ - Use default tool icon on validation error
224
+
225
+ ## [1.14.7] - 2025-10-13
226
+ - Update of token_limit parameters for Claude models
227
+
228
+ ## [1.14.6] - 2025-10-10
229
+ - Fix circular import appearing in orchestrator
230
+
231
+ ## [1.14.5] - 2025-10-09
232
+ - Move `DEFAULT_GPT_4o` constant from `_common/default_language_model.py` to `language_model/constants.py` and deprecate old import path
233
+
234
+ ## [1.14.4] - 2025-10-09
235
+ - Small fixes when deleting content
236
+ - Fixes in documentation
237
+
238
+ ## [1.14.3] - 2025-10-08
239
+ - Reorganizes documentation
240
+ - All service interface towards a single folder
241
+ - Add main imports to __init__
242
+
243
+ ## [1.14.2] - 2025-10-08
244
+ - Add utilities for testing and fix external import issue
245
+
246
+ ## [1.14.1] - 2025-10-08
247
+ - Add utilities for testing
248
+
249
+ ## [1.14.0] - 2025-10-07
250
+ - Manipulate Metadata with knowledge base service
251
+
252
+ ## [1.13.0] - 2025-10-07
253
+ - Delete contents with knowledge base service
254
+
255
+ ## [1.12.1] - 2025-10-07
256
+ - Fix bug where failed evaluations did not show an error to the user.
257
+
258
+ ## [1.12.0] - 2026-10-07
259
+ - Add the `OpenAIUserMessageBuilder` for complex user messages with images
260
+ - More examples with documents/images on the chat
261
+
262
+ ## [1.11.4] - 2026-10-07
263
+ - Make newer `MessageExecution` and `MessageLog` method keyword only
264
+
265
+ ## [1.11.3] - 2026-10-07
266
+ - Move smart rules to content
267
+ - Add to documentation
268
+
269
+ ## [1.11.2] - 2025-10-07
270
+ - Fix for empty metadata filter at info retrieval
271
+
272
+ ## [1.11.1] - 2025-10-07
273
+ - Fix bug where hallucination check was taking all of the chunks as input instead of only the referenced ones.
274
+
275
+ ## [1.11.0] - 2025-10-07
276
+ - Add sub-agent response referencing.
277
+
278
+ ## [1.10.0] - 2025-10-07
279
+ - Introduce future proof knowledgebase service decoupled from chat
280
+ - Extend chat service to download contents in the chat
281
+ - Update documentation
282
+
283
+ ## [1.9.1] - 2025-10-06
284
+ - Switch default model used in evaluation service from `GPT-3.5-turbo (0125)` to `GPT-4o (1120)`
285
+
286
+
287
+ ## [1.9.0] - 2026-10-04
288
+ - Define the RequestContext and add aihttp/httpx requestors
289
+
121
290
  ## [1.8.1] - 2026-10-03
122
291
  - Fix bug where sub agent evaluation config variable `include_evaluation` did not include aliases for previous names.
123
292
 
@@ -835,3 +1004,4 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
835
1004
 
836
1005
  ## [0.0.2] - 2024-07-10
837
1006
  - Initial release of `unique_toolkit`.
1007
+
@@ -1,39 +1,49 @@
1
- unique_toolkit/__init__.py,sha256=nbOYPIKERt-ITsgifrnJhatn1YNR38Ntumw-dCn_tsA,714
1
+ unique_toolkit/__init__.py,sha256=qrQ0kgAZnmGR6-UpWOpAL4yd-2ic5Jjwh6s8et-7ZTc,1372
2
2
  unique_toolkit/_common/_base_service.py,sha256=S8H0rAebx7GsOldA7xInLp3aQJt9yEPDQdsGSFRJsGg,276
3
3
  unique_toolkit/_common/_time_utils.py,sha256=ztmTovTvr-3w71Ns2VwXC65OKUUh-sQlzbHdKTQWm-w,135
4
- unique_toolkit/_common/api_calling/human_verification_manager.py,sha256=UMOkY1cNhJ6JmtiBl3a4mQ3J21uOyKoCbVu7nR3A5eY,7799
4
+ unique_toolkit/_common/api_calling/human_verification_manager.py,sha256=cM_sS0BqnKhbgXMw90QGi140JPbTP5P6MsyR92SnLt8,12169
5
5
  unique_toolkit/_common/base_model_type_attribute.py,sha256=7rzVqjXa0deYEixeo_pJSJcQ7nKXpWK_UGpOiEH3yZY,10382
6
- unique_toolkit/_common/chunk_relevancy_sorter/config.py,sha256=kDSEcXeIWGvzK4IXT3pBofTXeUnq3a9qRWaPllweR-s,1817
6
+ unique_toolkit/_common/chunk_relevancy_sorter/config.py,sha256=tHETuMIC4CA_TPwU0oaHbckaKhvMFMYdO_d4lNRKnRc,1806
7
7
  unique_toolkit/_common/chunk_relevancy_sorter/exception.py,sha256=1mY4zjbvnXsd5oIxwiVsma09bS2XRnHrxW8KJBGtgCM,126
8
8
  unique_toolkit/_common/chunk_relevancy_sorter/schemas.py,sha256=YAyvXzVk8h5q6FEsXyvPi16VIONst9HLFeMi1guGPzs,1342
9
9
  unique_toolkit/_common/chunk_relevancy_sorter/service.py,sha256=ZX1pxcy53zh3Ha0_pN6yYIbMX1acRxcvqKTPTKpGKwA,13938
10
- unique_toolkit/_common/chunk_relevancy_sorter/tests/test_service.py,sha256=UhDllC40Y1OUQvkU6pe3nu6NR7v0d25yldE6FyozuZI,8926
11
- unique_toolkit/_common/default_language_model.py,sha256=tmHSqg6e8G7RmKqmdE_tmLxkSN0x-aGoyUdy6Pl2oAE,334
12
- unique_toolkit/_common/endpoint_builder.py,sha256=WzJrJ7azUQhvQRd-vsFFoyj6omJpHiVYrh1UFxNQvVg,8242
13
- unique_toolkit/_common/endpoint_requestor.py,sha256=JbbfJGLxgxLz8a3Yx1FdJvdHGbCYO8MSBd7cLg_Mtp0,5927
14
- unique_toolkit/_common/exception.py,sha256=hwh60UUawHDyPFNs-Wom-Gc6Yb09gPelftAuW1tXE6o,779
15
- unique_toolkit/_common/feature_flags/schema.py,sha256=F1NdVJFNU8PKlS7bYzrIPeDu2LxRqHSM9pyw622a1Kk,547
10
+ unique_toolkit/_common/chunk_relevancy_sorter/tests/test_service.py,sha256=giD9b5W8A0xP18dZCcrLUruoGi38BeBvPnO1phY7Sp0,8892
11
+ unique_toolkit/_common/default_language_model.py,sha256=XCZu6n270QkxEeTpj5NZJda6Ok_IR-GcS8w30DU21aI,343
12
+ unique_toolkit/_common/docx_generator/__init__.py,sha256=dqzO4NvzdXClq42vVRqqOvzKwmzqAB8CaufAo_QEv1s,226
13
+ unique_toolkit/_common/docx_generator/config.py,sha256=uJOa0GXvi3InuLkRDbLSD0RxMRelU2bPI73g4XcHIVc,354
14
+ unique_toolkit/_common/docx_generator/schemas.py,sha256=4U4SCCjBQ-R8XBkSSO3QigYqONp26r7Fcwy8P885do8,2420
15
+ unique_toolkit/_common/docx_generator/service.py,sha256=gj-bCU4pzVOD_7RFXtt_zKYVzVvwRCjZJAg2IQAE184,9323
16
+ unique_toolkit/_common/docx_generator/template/Doc Template.docx,sha256=USnCg8h6d-N0751riNjqYr6ALLffU-EoJ8WY57K55r0,34757
17
+ unique_toolkit/_common/endpoint_builder.py,sha256=Ge83hyipUbh4fhxzA5XVeg3cj6T4JU4dL8Ue9MWElcw,9100
18
+ unique_toolkit/_common/endpoint_requestor.py,sha256=pY2SlRaHmHftNpPybmzxRsn4OBZCj_7niCMehL8I5O0,13744
19
+ unique_toolkit/_common/exception.py,sha256=ho0uBcPeZXU2w15IrSBhO5w7KUgxp1HcKAQrf2uin-w,1243
20
+ unique_toolkit/_common/feature_flags/schema.py,sha256=X32VqH4VMK7bhEfSd8Wbddl8FVs7Gh7ucuIEbmqc4Kw,268
16
21
  unique_toolkit/_common/pydantic/rjsf_tags.py,sha256=T3AZIF8wny3fFov66s258nEl1GqfKevFouTtG6k9PqU,31219
17
22
  unique_toolkit/_common/pydantic_helpers.py,sha256=1zzg6PlzSkHqPTdX-KoBaDHmBeeG7S5PprBsyMSCEuU,4806
18
- unique_toolkit/_common/string_utilities.py,sha256=pbsjpnz1mwGeugebHzubzmmDtlm18B8e7xJdSvLnor0,2496
23
+ unique_toolkit/_common/referencing.py,sha256=kEWkzMaz6DMCpkxsQD7AY4YWl15KendqbK_WkASfhaw,1499
24
+ unique_toolkit/_common/string_utilities.py,sha256=hiNyGCNISm2HuEGWYgu01dB2YJGN_NfHI345X7rRu80,4347
25
+ unique_toolkit/_common/tests/test_referencing.py,sha256=WYKGkO3OXPYyTL8f6fVE9pqKuFowUHja5CUCTpWzRJQ,16206
26
+ unique_toolkit/_common/tests/test_string_utilities.py,sha256=J2HYZ1fniOfJWI149wlooVrT7ot4qe5bhehGh9B7FN8,15641
19
27
  unique_toolkit/_common/token/image_token_counting.py,sha256=VpFfZyY0GIH27q_Wy4YNjk2algqvbCtJyzuuROoFQPw,2189
20
28
  unique_toolkit/_common/token/token_counting.py,sha256=gM4B_aUqKqEPvmStFNcvCWNMNNNNKbVaywBDxlbgIps,7121
21
29
  unique_toolkit/_common/utils/__init__.py,sha256=qHrEy-3zkbFPdGFriRscPbGKuQfOuPi3O7tE5Zw5VHY,37
30
+ unique_toolkit/_common/utils/files.py,sha256=97PkhXDUMXFEhje5HzWMMlLvZj49A6jOifqFRIrzu5M,1102
22
31
  unique_toolkit/_common/utils/structured_output/__init__.py,sha256=nm_orZrlCXL0FPLUg0Jv6Ty1flXPkCgZ9caAWaS8rz8,38
23
32
  unique_toolkit/_common/utils/structured_output/schema.py,sha256=Tp7kDYcmKtnUhcuRkH86TSYhylRff0ZZJYb2dLkISts,131
24
33
  unique_toolkit/_common/utils/write_configuration.py,sha256=fzvr4C-XBL3OSM3Od9TbqIxeeDS9_d9CLEyTq6DDknY,1409
25
34
  unique_toolkit/_common/validate_required_values.py,sha256=Y_M1ub9gIKP9qZ45F6Zq3ZHtuIqhmOjl8Z2Vd3avg8w,588
26
35
  unique_toolkit/_common/validators.py,sha256=LFZmAalNa886EXm1VYamFvfBuUZjYKwDdT_HOYU0BtE,2934
27
36
  unique_toolkit/agentic/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
28
- unique_toolkit/agentic/debug_info_manager/debug_info_manager.py,sha256=8u3_oxcln7y2zOsfiGh5YOm1zYAlV5QxZ5YAsbEJG0c,584
29
- unique_toolkit/agentic/evaluation/config.py,sha256=ywHIrJs5SFdKr1WXfrofWuFfzb0iPQw8iZDpq5oEug4,953
37
+ unique_toolkit/agentic/debug_info_manager/debug_info_manager.py,sha256=30ZZaw0vffjZjiu9AYdO1Sm8G9FN6XR2ehdOEUCKqh0,891
38
+ unique_toolkit/agentic/debug_info_manager/test/test_debug_info_manager.py,sha256=_fIS6_DHA8A3AB64-LPgHgUGa1w0CFUWwtgV-ZbhkzA,10535
39
+ unique_toolkit/agentic/evaluation/config.py,sha256=zcW7m63Yt5G39hN2If8slBl6Eu3jTRoRPjYaUMn54Uk,987
30
40
  unique_toolkit/agentic/evaluation/context_relevancy/prompts.py,sha256=EdHFUOB581yVxcOL8482KUv_LzaRjuiem71EF8udYMc,1331
31
41
  unique_toolkit/agentic/evaluation/context_relevancy/schema.py,sha256=lZd0TPzH43ifgWWGg3WO6b1AQX8aK2R9y51yH0d1DHM,2919
32
- unique_toolkit/agentic/evaluation/context_relevancy/service.py,sha256=gCxo4R4YoLLXq6HBwboVnqzuksBnuip-O_ZIfU1sOvg,9666
33
- unique_toolkit/agentic/evaluation/evaluation_manager.py,sha256=lh4CPYKesS7HIGVe6n-K4NMF1UI9BptNHG87W2RBpdE,7929
42
+ unique_toolkit/agentic/evaluation/context_relevancy/service.py,sha256=2NM1_PCP6fXsRm0r-MGrUg5Z3WO00FBCqmiU8f5Kagg,9661
43
+ unique_toolkit/agentic/evaluation/evaluation_manager.py,sha256=IPx4BVUgkjFOP1BGLi0BlB6UujpXlZ0KGuSXDRemQhY,8143
34
44
  unique_toolkit/agentic/evaluation/exception.py,sha256=7lcVbCyoN4Md1chNJDFxpUYyWbVrcr9dcc3TxWykJTc,115
35
- unique_toolkit/agentic/evaluation/hallucination/constants.py,sha256=0HyvI5zu7JmjHLe9lKJSeAWMvfQfpmR6MLHJ4HPX1hc,2063
36
- unique_toolkit/agentic/evaluation/hallucination/hallucination_evaluation.py,sha256=Tjixm1_SDJt8LfgIadZkom36AN0ln7zRpY1pS9IGU_I,3123
45
+ unique_toolkit/agentic/evaluation/hallucination/constants.py,sha256=SoGmoYti2J33tSmmOC1BSF6Pkh8DQvbQAU9xIZFQZRs,2070
46
+ unique_toolkit/agentic/evaluation/hallucination/hallucination_evaluation.py,sha256=6ZLbQWW5vmI0btoSjgUhQT7pADNc_-dUDFlexD31drU,4057
37
47
  unique_toolkit/agentic/evaluation/hallucination/prompts.py,sha256=O3Hi_rOzZlujvnO2wn2jhoPmrYLjzVtRWwxn5Q81m9Y,3405
38
48
  unique_toolkit/agentic/evaluation/hallucination/service.py,sha256=Ut-f768HY4E9zEhfMoKYnGTFRZVkxWGiSTGOpgfZWYM,2447
39
49
  unique_toolkit/agentic/evaluation/hallucination/utils.py,sha256=QLsYvgAyQ5XnKEzn7ko7bXfzePD4De99TWnMKglMpds,8178
@@ -42,53 +52,66 @@ unique_toolkit/agentic/evaluation/schemas.py,sha256=m9JMCUmeqP8KhsJOVEzsz6dRXUe1
42
52
  unique_toolkit/agentic/evaluation/tests/test_context_relevancy_service.py,sha256=4tDxHTApbaTMxN1sNS8WCqj2BweRk6YqZ5_zHP45jto,7977
43
53
  unique_toolkit/agentic/evaluation/tests/test_output_parser.py,sha256=RN_HcBbU6qy_e_PoYyUFcjWnp3ymJ6-gLj6TgEOupAI,3107
44
54
  unique_toolkit/agentic/history_manager/history_construction_with_contents.py,sha256=c8Zy3erSbHGT8AdICRRlSK91T_FN6tNpTznvUzpLbWk,9023
45
- unique_toolkit/agentic/history_manager/history_manager.py,sha256=1MSFEQtw7jYrcFVEgnTIe6LrGo36WVlutzqTwcFJq5w,9449
46
- unique_toolkit/agentic/history_manager/loop_token_reducer.py,sha256=3QSDXZ9M12-cDhYr7-UgDYGEMySkXENt1OkfD0CruQ8,18538
47
- unique_toolkit/agentic/history_manager/utils.py,sha256=NDSSz0Jp3oVJU3iKlVScmM1AOe-6hTiVjLr16DUPsV0,5656
48
- unique_toolkit/agentic/postprocessor/postprocessor_manager.py,sha256=GDzJhaoOUwxZ37IINkQ7au4CHmAOFS5miP2lqv8ZwZA,4277
49
- unique_toolkit/agentic/reference_manager/reference_manager.py,sha256=1GeoFX1-RLdTcns1358GJADDSAcTAM2J0jJJpln08qo,4005
55
+ unique_toolkit/agentic/history_manager/history_manager.py,sha256=3O-AdvmfUpai8is85rKOVkRw2aTZA33UtRX2ZW0Ri9U,9543
56
+ unique_toolkit/agentic/history_manager/loop_token_reducer.py,sha256=4XUX2-yVBnaYthV8p0zj2scVBUdK_3IhxBgoNlrytyQ,18498
57
+ unique_toolkit/agentic/history_manager/utils.py,sha256=VIn_UmcR3jHtpux0qp5lQQzczgAm8XYSeQiPo87jC3A,3143
58
+ unique_toolkit/agentic/postprocessor/postprocessor_manager.py,sha256=s6HFhA61TE05aAay15NFTWI1JvdSlxmGpEVfpBbGFyM,7684
59
+ unique_toolkit/agentic/reference_manager/reference_manager.py,sha256=x51CT0D8HHu2LzgXdHGy0leOYpjnsxVbPZ2nc28G9mA,4005
60
+ unique_toolkit/agentic/responses_api/__init__.py,sha256=9WTO-ef7fGE9Y1QtZJFm8Q_jkwK8Srtl-HWvpAD2Wxs,668
61
+ unique_toolkit/agentic/responses_api/postprocessors/code_display.py,sha256=qbrxXL_AQ3ufBOW2TuNgml7d8u6qY_WGriS5jyZlJlE,1902
62
+ unique_toolkit/agentic/responses_api/postprocessors/generated_files.py,sha256=WYOBZQz33xx2NZTI19_5DY6sH9XQ6N1t7BCZNXQT5NI,4983
63
+ unique_toolkit/agentic/responses_api/stream_handler.py,sha256=Y1IM0uiPBdlab5UuOTCsHTaVX-fd9MxfS3xkwhdFie4,647
50
64
  unique_toolkit/agentic/short_term_memory_manager/persistent_short_term_memory_manager.py,sha256=uF3HSoZF0hBfuNhIE9N8KRtuwDfpoeXUFVrv_cyZ3Sw,5839
51
65
  unique_toolkit/agentic/thinking_manager/thinking_manager.py,sha256=41QWFsdRrbWlQHBfYCFv726UDom4WbcvaRfjCmoUOQI,4183
52
66
  unique_toolkit/agentic/tools/__init__.py,sha256=-ToY9-Xiz0K7qCUydH1h1yG6n4h1hQS8sBuSVPNEq2Y,43
53
- unique_toolkit/agentic/tools/a2a/__init__.py,sha256=QG1fq2mXq8VViG9cV6KbSd9sS0Xqptz8Ji7rS3mhXVA,677
67
+ unique_toolkit/agentic/tools/a2a/__init__.py,sha256=41DntFL-YKOQFBxObfrhlKmMj2BD0Zx611U1qSSyL9E,1329
54
68
  unique_toolkit/agentic/tools/a2a/config.py,sha256=6diTTSiS2prY294LfYozB-db2wmJ6jv1hAr2leRY-xk,768
55
- unique_toolkit/agentic/tools/a2a/evaluation/__init__.py,sha256=_cR8uBwLbG7lyXoRskTpItzacgs4n23e2LeqClrytuc,354
56
- unique_toolkit/agentic/tools/a2a/evaluation/_utils.py,sha256=GtcPAMWkwGwJ--hBxn35ow9jN0VKYx8h2qMUXR8DCho,1877
57
- unique_toolkit/agentic/tools/a2a/evaluation/config.py,sha256=faYYABL3Z-u7930MduTb5VO-W7VKYblQ5mS6mqjMJQA,2348
58
- unique_toolkit/agentic/tools/a2a/evaluation/evaluator.py,sha256=K4GkVOQwAUofjMF1-ofIGV3XPY1vOnOA8aw6CducRc0,7248
69
+ unique_toolkit/agentic/tools/a2a/evaluation/__init__.py,sha256=Efso468EQ4UANv140qcrRPCdX98-OQJfnrLqhgJ9pfE,412
70
+ unique_toolkit/agentic/tools/a2a/evaluation/_utils.py,sha256=FO5_us6mC4t_X4OVtNei1Ife4SjMjCiFOsPhUHUsY-s,1878
71
+ unique_toolkit/agentic/tools/a2a/evaluation/config.py,sha256=Ra5rzJArS3r8C7RTmzKB8cLEYh4w-u3pe_XLgul3GOA,2355
72
+ unique_toolkit/agentic/tools/a2a/evaluation/evaluator.py,sha256=AJvXu0UJKHe72nRmFZQjmBqxglSNDpYk_Tup3jJ8irg,9388
59
73
  unique_toolkit/agentic/tools/a2a/evaluation/summarization_user_message.j2,sha256=acP1YqD_sCy6DT0V2EIfhQTmaUKeqpeWNJ7RGgceo8I,271
60
- unique_toolkit/agentic/tools/a2a/manager.py,sha256=FkO9jY7o8Td0t-HBkkatmxwhJGSJXmYkFYKFhPdbpMo,1674
61
- unique_toolkit/agentic/tools/a2a/postprocessing/__init__.py,sha256=R90CSecxJrKH7TbwiMYPyTwsXUUmouL8fbEUlL4ee9Q,362
62
- unique_toolkit/agentic/tools/a2a/postprocessing/_display.py,sha256=_cuQyhZYp10QDRTPjPs8FpAc0DP6q_ko0nrfGbbVeUo,3473
63
- unique_toolkit/agentic/tools/a2a/postprocessing/_utils.py,sha256=JsWwylR2Ao_L0wk1UlhqeN2fTxPnrbhoi1klYHVBnLk,750
64
- unique_toolkit/agentic/tools/a2a/postprocessing/config.py,sha256=pu3sCfcBmXD96WCHSUQvmYR9V9F3IH-e0YJg9--AgxM,732
65
- unique_toolkit/agentic/tools/a2a/postprocessing/postprocessor.py,sha256=EM5AmJJep3Qqa_sM5XKLxUx4J0XxNx6qR0yGhAs0ARM,8286
66
- unique_toolkit/agentic/tools/a2a/postprocessing/test/test_consolidate_references.py,sha256=0l0OEf2FqYhJvQsvpePJSb2Y8ABSUa3bR-y_zj5G4Vs,26400
67
- unique_toolkit/agentic/tools/a2a/postprocessing/test/test_display.py,sha256=fly_C4_ykAL8WSAW4w0CGt2EB3eTwIPupKLTPg4lH8M,14240
68
- unique_toolkit/agentic/tools/a2a/postprocessing/test/test_postprocessor_reference_functions.py,sha256=GxSkkY-Xgd61Bk8sIRfEtkT9hqL1VgPLWrq-6XoB0rA,11360
74
+ unique_toolkit/agentic/tools/a2a/manager.py,sha256=pk06UUXKQdIUY-PyykYiItubBjmIydOaqWvBBDwhMN4,1939
75
+ unique_toolkit/agentic/tools/a2a/postprocessing/__init__.py,sha256=aVtUBPN7kDrqA6Bze34AbqQpcBBqpvfyJG-xF65w7R0,659
76
+ unique_toolkit/agentic/tools/a2a/postprocessing/_display_utils.py,sha256=iIuddL5qJlPiPHLcMXVXzZfBtYsZTzMfaSk1et5LWUY,5461
77
+ unique_toolkit/agentic/tools/a2a/postprocessing/_ref_utils.py,sha256=E3KybH9SX5oOkh14sSaIaLnht4DhKVrHAiUkoACNBsg,2430
78
+ unique_toolkit/agentic/tools/a2a/postprocessing/config.py,sha256=XhOeGu2qi_amz4VY2qF1ZGYQ1frYeVmVtAWYaKskgfY,1582
79
+ unique_toolkit/agentic/tools/a2a/postprocessing/display.py,sha256=BzQUuK1wetma3GhU4YLfKG8DhhUK4a3skoK424jQyJ8,6135
80
+ unique_toolkit/agentic/tools/a2a/postprocessing/references.py,sha256=DGiv8WXMjIwumI7tlpWRgV8wSxnE282ryxEf03fgck8,3465
81
+ unique_toolkit/agentic/tools/a2a/postprocessing/test/test_display_utils.py,sha256=5fIwvSQI6J_YIHyQgME5WfxgfJOg_ad6JHcsV43jOgY,39642
82
+ unique_toolkit/agentic/tools/a2a/postprocessing/test/test_ref_utils.py,sha256=u-eNrHjsRFcu4TmzkD5XfFrxvaIToB42YGyXZ-RpsR0,17830
83
+ unique_toolkit/agentic/tools/a2a/prompts.py,sha256=0ILHL_RAcT04gFm2d470j4Gho7PoJXdCJy-bkZgf_wk,2401
84
+ unique_toolkit/agentic/tools/a2a/response_watcher/__init__.py,sha256=fS8Lq49DZo5spMcP8QGTMWwSg80rYSr2pTfYDbssGYs,184
85
+ unique_toolkit/agentic/tools/a2a/response_watcher/service.py,sha256=Tlzd7Tvk0X8a9Jyi4qHWuAx0PffAnt6BGBbQ4QWAZus,2485
69
86
  unique_toolkit/agentic/tools/a2a/tool/__init__.py,sha256=JIJKZBTLTA39OWhxoUd6uairxmqINur1Ex6iXDk9ef8,197
70
87
  unique_toolkit/agentic/tools/a2a/tool/_memory.py,sha256=w8bxjokrqHQZgApd55b5rHXF-DpgJwaKTg4CvLBLamc,1034
71
88
  unique_toolkit/agentic/tools/a2a/tool/_schema.py,sha256=wMwyunViTnxaURvenkATEvyfXn5LvLaP0HxbYqdZGls,158
72
- unique_toolkit/agentic/tools/a2a/tool/config.py,sha256=O026WwKXxUvxR3L1_k7jI8lBScdy7zdeWCg61Ln91Ms,2504
73
- unique_toolkit/agentic/tools/a2a/tool/service.py,sha256=_lFzRKJI_-A0RoXvvtNBDli71ZUdUsGZvMFlK7j2GgA,9428
89
+ unique_toolkit/agentic/tools/a2a/tool/config.py,sha256=NcrS0hzIeYvjv1oMobAAPlZrbTPPWhcPhi0jUHLFBTI,2903
90
+ unique_toolkit/agentic/tools/a2a/tool/service.py,sha256=wAaFXKa9GtK1tereNPKDFxoBGXGW24kxpQqUevpE-OU,10543
74
91
  unique_toolkit/agentic/tools/agent_chunks_hanlder.py,sha256=x32Dp1Z8cVW5i-XzXbaMwX2KHPcNGmqEU-FB4AV9ZGo,1909
75
- unique_toolkit/agentic/tools/config.py,sha256=FryDAaTICBcJbkBE7RgTmTA3Yc_4A3ekdVuiixgZ0VI,4945
76
- unique_toolkit/agentic/tools/factory.py,sha256=Wt0IGSbLg8ZTq5PU9p_JTW0LtNATWLpc3336irJKXlM,1277
92
+ unique_toolkit/agentic/tools/config.py,sha256=QD83iy2xAJFyoPggYyLWq-MaSGSq00yS9iI31My1NBc,5387
93
+ unique_toolkit/agentic/tools/factory.py,sha256=A1Aliwx037UAk9ADiDsg0zjCWWnvzV_PxwJNoPTvW6c,1434
77
94
  unique_toolkit/agentic/tools/mcp/__init__.py,sha256=RLF_p-LDRC7GhiB3fdCi4u3bh6V9PY_w26fg61BLyco,122
78
95
  unique_toolkit/agentic/tools/mcp/manager.py,sha256=DPYwwDe6RSZyuPaxn-je49fP_qOOs0ZV46EM6GZcV4c,2748
79
96
  unique_toolkit/agentic/tools/mcp/models.py,sha256=OyCCb7Vwv1ftzC_OCpFkf3TX9Aeb74ZZagG-qK5peIU,722
80
- unique_toolkit/agentic/tools/mcp/tool_wrapper.py,sha256=5UdtqFtZ0aqjae2eL3zVacDMfr1hu5KiQkaoI7VkhqA,9972
97
+ unique_toolkit/agentic/tools/mcp/tool_wrapper.py,sha256=MyR72E-N_vmGmlvAuSQtAQGbHo4AUUVdve-F0hcHgMU,8767
98
+ unique_toolkit/agentic/tools/openai_builtin/__init__.py,sha256=NdVjkTa3LbW-JHhzPRjinTmgOCtEv090Zr9jGZXmgqs,345
99
+ unique_toolkit/agentic/tools/openai_builtin/base.py,sha256=2Lw47XworwwkIQBQW5S1T6HS2mWqx13lx50moAMekRk,808
100
+ unique_toolkit/agentic/tools/openai_builtin/code_interpreter/__init__.py,sha256=w2vONpnC6hKRPoJGwzDuRtNBsQd_o-gMUqArgIl_5KY,305
101
+ unique_toolkit/agentic/tools/openai_builtin/code_interpreter/config.py,sha256=r-YIPBJ2V7YybBBb_sOvhxBaOrg1zcIgTe6UwfIwR2I,2575
102
+ unique_toolkit/agentic/tools/openai_builtin/code_interpreter/service.py,sha256=RKVExS1l3rJDVcu3mxKYA7SNV_Hphx2przhhiC-5PSo,7467
103
+ unique_toolkit/agentic/tools/openai_builtin/manager.py,sha256=kU4wGit9AnDbkijB7LJEHcGXG8UeTBhiZh4a7lxTGA8,2246
81
104
  unique_toolkit/agentic/tools/schemas.py,sha256=0ZR8xCdGj1sEdPE0lfTIG2uSR5zqWoprUa3Seqez4C8,4837
82
- unique_toolkit/agentic/tools/test/test_mcp_manager.py,sha256=PVRvkK3M21rzONpy5VE_i3vEbAGIz1haW_VPVwiPDI0,15724
83
- unique_toolkit/agentic/tools/test/test_tool_progress_reporter.py,sha256=dod5QPqgGUInVAGXAbsAKNTEypIi6pUEWhDbJr9YfUU,6307
84
- unique_toolkit/agentic/tools/tool.py,sha256=m56VLxiHuKU2_J5foZp00xhm5lTxWEW7zRLGbIE9ssU,6744
85
- unique_toolkit/agentic/tools/tool_manager.py,sha256=I7REeKGn_XbgQGelNPyzUMHnUlK_BgWf0LaLNZzAePA,11012
86
- unique_toolkit/agentic/tools/tool_progress_reporter.py,sha256=ixud9VoHey1vlU1t86cW0-WTvyTwMxNSWBon8I11SUk,7955
87
- unique_toolkit/agentic/tools/utils/__init__.py,sha256=iD1YYzf9LcJFv95Z8BqCAFSewNBabybZRZyvPKGfvro,27
105
+ unique_toolkit/agentic/tools/test/test_mcp_manager.py,sha256=VpB4k4Dh0lQWakilJMQSzO8sBXapuEC26cub_lorl-M,19221
106
+ unique_toolkit/agentic/tools/test/test_tool_progress_reporter.py,sha256=XHNezB8itj9KzpQgD0cwRtp2AgRUfUkQsHc3bTyPj6c,15801
107
+ unique_toolkit/agentic/tools/tool.py,sha256=mFuxc3h4sghClDO8OVL2-6kifiHQ-U7JMYGUyXqTYLE,6338
108
+ unique_toolkit/agentic/tools/tool_manager.py,sha256=pq3F_C59z47lcyvWxz-5qPBmTOuHAWDNjRrWiqbOPsk,18174
109
+ unique_toolkit/agentic/tools/tool_progress_reporter.py,sha256=GaR0oqDUJZvBB9WCUVYYh0Zvs6U-LMygJCCrqPlitgA,10296
110
+ unique_toolkit/agentic/tools/utils/__init__.py,sha256=s75sjY5nrJchjLGs3MwSIqhDW08fFXIaX7eRQjFIA4s,346
88
111
  unique_toolkit/agentic/tools/utils/execution/__init__.py,sha256=OHiKpqBnfhBiEQagKVWJsZlHv8smPp5OI4dFIexzibw,37
89
- unique_toolkit/agentic/tools/utils/execution/execution.py,sha256=vjG2Y6awsGNtlvyQAGCTthQ5thWHYnn-vzZXaYLb3QE,7922
112
+ unique_toolkit/agentic/tools/utils/execution/execution.py,sha256=ocPGGfUwa851207HNTLYiBJ1pNzJp4VhMZ49OPP33gU,8022
90
113
  unique_toolkit/agentic/tools/utils/source_handling/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
91
- unique_toolkit/agentic/tools/utils/source_handling/schema.py,sha256=l4B6kA6grbL-MI8K-d8QTzj3SkI4xchVs-Rl6UBVokw,878
114
+ unique_toolkit/agentic/tools/utils/source_handling/schema.py,sha256=iHBKuks6tUy8tvian4Pd0B6_-8__SehVVNcxIUAUjEA,882
92
115
  unique_toolkit/agentic/tools/utils/source_handling/source_formatting.py,sha256=uZ0QXqrPWgId3ZA67dvjHQ6xrW491LK1xxx_sVJmFHg,9160
93
116
  unique_toolkit/agentic/tools/utils/source_handling/tests/test_source_formatting.py,sha256=EA8iVvb3L91OFk2XMbGcFuhe2etqm3Sx9QCYDGiOSOM,6995
94
117
  unique_toolkit/app/__init__.py,sha256=ETxYDpEizg_PKmi4JPX_P76ySq-us-xypfAIdKQ1QZU,1284
@@ -100,18 +123,22 @@ unique_toolkit/app/performance/async_wrapper.py,sha256=yVVcRDkcdyfjsxro-N29SBvi-
100
123
  unique_toolkit/app/schemas.py,sha256=wbfYGl5PjMBG25IEPzeygObBJIxP5CfXpBWS-4NWZJs,9830
101
124
  unique_toolkit/app/unique_settings.py,sha256=849pbASOu8QbHu9QfCJhYTisjKRet34J-fRs0gNKZ0Q,12369
102
125
  unique_toolkit/app/verification.py,sha256=GxFFwcJMy25fCA_Xe89wKW7bgqOu8PAs5y8QpHF0GSc,3861
103
- unique_toolkit/chat/__init__.py,sha256=LRs2G-JTVuci4lbtHTkVUiNcZcSR6uqqfnAyo7af6nY,619
126
+ unique_toolkit/chat/__init__.py,sha256=uP7P6YPeOjEOvpX3bhcU6ND_m0QLr4wMklcrnAKK0q4,804
104
127
  unique_toolkit/chat/constants.py,sha256=05kq6zjqUVB2d6_P7s-90nbljpB3ryxwCI-CAz0r2O4,83
105
- unique_toolkit/chat/functions.py,sha256=qxBjxIFoko5vyQNJDYpIkMtBhEGGcSlWn6fkAY-dFVE,45213
106
- unique_toolkit/chat/schemas.py,sha256=u3WPdMkOlmwPGHUueQC-nk8k-QkM7ZSUcU0f-32g6Uc,6718
107
- unique_toolkit/chat/service.py,sha256=YT01Ol3czvopnvT1CxZUOYDxU85mxBaMt7C_lEcciDM,58162
128
+ unique_toolkit/chat/deprecated/service.py,sha256=CYwzXi7OB0RjHd73CO2jq8SlpdBmDYLatzPFkb5sA0k,6529
129
+ unique_toolkit/chat/functions.py,sha256=VjFz8fbI7sNxRywBlc-qakwbHaRfXY0tcIRR0m5fSEA,45908
130
+ unique_toolkit/chat/rendering.py,sha256=c8YiV9oADRrJQ5A_QBJ4_UFc0NZ-2vVaa7tupoMusso,880
131
+ unique_toolkit/chat/responses_api.py,sha256=MCI1MR_4wlo9xY1ifH2daNz4JvjX18uPdryQlemaeLw,14488
132
+ unique_toolkit/chat/schemas.py,sha256=-C8wRzIJUIeUC9mLdOUO96g1OHgLRSAmwctIuyb5mWI,6756
133
+ unique_toolkit/chat/service.py,sha256=6D00OL4QrGafbOhTaC5zNXaNgg7gS5W_2ePVa4LhqpE,4439
108
134
  unique_toolkit/chat/state.py,sha256=Cjgwv_2vhDFbV69xxsn7SefhaoIAEqLx3ferdVFCnOg,1445
109
135
  unique_toolkit/chat/utils.py,sha256=ihm-wQykBWhB4liR3LnwPVPt_qGW6ETq21Mw4HY0THE,854
110
136
  unique_toolkit/content/__init__.py,sha256=EdJg_A_7loEtCQf4cah3QARQreJx6pdz89Rm96YbMVg,940
111
137
  unique_toolkit/content/constants.py,sha256=1iy4Y67xobl5VTnJB6SxSyuoBWbdLl9244xfVMUZi5o,60
112
- unique_toolkit/content/functions.py,sha256=1zhxaJEYTvvd4qzkrbEFcrjdJxhHkfUY3dEpNfNC_hk,19052
113
- unique_toolkit/content/schemas.py,sha256=WB3InkKIvfWbyg9CsKFLn8Zf4zrE-YqGpCc3a0zOk7k,4774
114
- unique_toolkit/content/service.py,sha256=ZUXJwfNdHsAw_F7cfRMDVgHpSKxiwG6Cn8p7c4hV8TM,24053
138
+ unique_toolkit/content/functions.py,sha256=TWwXGHZ8AeBC7UbRVjKXjHC7PmlghPtPNQvw7fOj1tY,22403
139
+ unique_toolkit/content/schemas.py,sha256=ufYPNXLi0rTE6oZg8lSWfGv76FZyv1M2N24U7mnljPE,6270
140
+ unique_toolkit/content/service.py,sha256=i7wN_wYjF8NBZHBcpcA5XRlMRGntuw3mlVoudAoGQRk,23293
141
+ unique_toolkit/content/smart_rules.py,sha256=z2gHToPrdyj3HqO8Uu-JE5G2ClvJPuhR2XERmmkgoug,9668
115
142
  unique_toolkit/content/utils.py,sha256=qNVmHTuETaPNGqheg7TbgPr1_1jbNHDc09N5RrmUIyo,7901
116
143
  unique_toolkit/embedding/__init__.py,sha256=uUyzjonPvuDCYsvXCIt7ErQXopLggpzX-MEQd3_e2kE,250
117
144
  unique_toolkit/embedding/constants.py,sha256=Lj8-Lcy1FvuC31PM9Exq7vaFuxQV4pEI1huUMFX-J2M,52
@@ -120,31 +147,36 @@ unique_toolkit/embedding/schemas.py,sha256=1GvKCaSk4jixzVQ2PKq8yDqwGEVY_hWclYtoA
120
147
  unique_toolkit/embedding/service.py,sha256=XViQCbjG9yznIFhWjgBkla_4s7zM2lO12Cqob1FU63k,5283
121
148
  unique_toolkit/embedding/utils.py,sha256=v86lo__bCJbxZBQ3OcLu5SuwT6NbFfWlcq8iyk6BuzQ,279
122
149
  unique_toolkit/framework_utilities/__init__.py,sha256=fvAn9y4MRL1JgoO14ufQtLVRPRHn4jP07XRqt-TItCA,68
123
- unique_toolkit/framework_utilities/langchain/client.py,sha256=9LDRS2l9XGxL0HoFLh0ZrFUXrlt8o_J-o-1rU8j-uMQ,1432
150
+ unique_toolkit/framework_utilities/langchain/client.py,sha256=NxOLnzVMJds2JFMm5ZqTVTz1WMntrmWsLPU4-kwlzqE,2065
124
151
  unique_toolkit/framework_utilities/langchain/history.py,sha256=R9RuCeSFNaUO3OZ0G_LmIC4gmOCIANcl91MfyWLnZ1c,650
125
152
  unique_toolkit/framework_utilities/openai/__init__.py,sha256=CrHYoC7lv2pBscitLerAFweqy5jh1R671LA_jZQ4lWo,232
126
- unique_toolkit/framework_utilities/openai/client.py,sha256=ct1cqPcIK1wPl11G9sJV39ZnLJwKr2kDUDSra0FjvtM,2007
127
- unique_toolkit/framework_utilities/openai/message_builder.py,sha256=VU6mJm_upLcarJQKFft_t1RlLRncWDxDuLC5LIJ5lQQ,4339
153
+ unique_toolkit/framework_utilities/openai/client.py,sha256=XtueQu_4tiar7lvu0yOOgU5QSE_cIXGiiHStesW4iXs,2317
154
+ unique_toolkit/framework_utilities/openai/message_builder.py,sha256=RT1pZjxH42TFZlAxQ5zlqdKPvHKVTjc5t3JDUy58I7Q,6887
128
155
  unique_toolkit/framework_utilities/utils.py,sha256=JK7g2yMfEx3eMprug26769xqNpS5WJcizf8n2zWMBng,789
129
156
  unique_toolkit/language_model/__init__.py,sha256=lRQyLlbwHbNFf4-0foBU13UGb09lwEeodbVsfsSgaCk,1971
130
157
  unique_toolkit/language_model/builder.py,sha256=4OKfwJfj3TrgO1ezc_ewIue6W7BCQ2ZYQXUckWVPPTA,3369
131
158
  unique_toolkit/language_model/constants.py,sha256=B-topqW0r83dkC_25DeQfnPk3n53qzIHUCBS7YJ0-1U,119
132
- unique_toolkit/language_model/functions.py,sha256=PNCmbYovhgMSkY89p7-3DunG6jIekaZPvhh3iplG1Vg,16720
133
- unique_toolkit/language_model/infos.py,sha256=jc53AfqUyhgDRSK-nIK2S8d1RsedTNyyE_QQgGG_RFk,59256
159
+ unique_toolkit/language_model/default_language_model.py,sha256=-_DBsJhLCsFdaU4ynAkyW0jYIl2lhrPybZm1K-GgVJs,125
160
+ unique_toolkit/language_model/functions.py,sha256=LGX3rR-XjkB-R520jp4w_Azgqf7BsIAo7E_VWoqA5xY,17260
161
+ unique_toolkit/language_model/infos.py,sha256=oGbI9kA1jW9SdUUsWuSISD9O5Zm09PIzDIWXDyAnhzA,62649
134
162
  unique_toolkit/language_model/prompt.py,sha256=JSawaLjQg3VR-E2fK8engFyJnNdk21zaO8pPIodzN4Q,3991
135
163
  unique_toolkit/language_model/reference.py,sha256=nkX2VFz-IrUz8yqyc3G5jUMNwrNpxITBrMEKkbqqYoI,8583
136
- unique_toolkit/language_model/schemas.py,sha256=w23zH2OAYkTsS-wAqelUdhO9TCgis0TbFa8PszmhZYY,16501
164
+ unique_toolkit/language_model/schemas.py,sha256=rXEc6lUd5T-32yKFsIM7WYzDdtObweHduR2dKjGCLko,23796
137
165
  unique_toolkit/language_model/service.py,sha256=JkYGtCug8POQskTv_aoYkzTMOaPCWRM94y73o3bUttQ,12019
138
166
  unique_toolkit/language_model/utils.py,sha256=bPQ4l6_YO71w-zaIPanUUmtbXC1_hCvLK0tAFc3VCRc,1902
139
- unique_toolkit/protocols/support.py,sha256=V15WEIFKVMyF1QCnR8vIi4GrJy4dfTCB6d6JlqPZ58o,2341
167
+ unique_toolkit/protocols/support.py,sha256=ZEnbQL5w2-T_1AeM8OHycZJ3qbdfVI1nXe0nL9esQEw,5544
168
+ unique_toolkit/services/__init__.py,sha256=90-IT5FjMcnlqxjp5kme9Fqgp_on46rggctIqHMdqsw,195
169
+ unique_toolkit/services/chat_service.py,sha256=Xx1mH9EzT2F7j3uyg5XIJNiZxaEeWMl0hhCksdtr0Ys,60110
170
+ unique_toolkit/services/knowledge_base.py,sha256=N6_PocSG6EW5hm6cKf7D8auc63dAWhcJat643OFPZJM,27668
140
171
  unique_toolkit/short_term_memory/__init__.py,sha256=2mI3AUrffgH7Yt-xS57EGqnHf7jnn6xquoKEhJqk3Wg,185
141
172
  unique_toolkit/short_term_memory/constants.py,sha256=698CL6-wjup2MvU19RxSmQk3gX7aqW_OOpZB7sbz_Xg,34
142
173
  unique_toolkit/short_term_memory/functions.py,sha256=3WiK-xatY5nh4Dr5zlDUye1k3E6kr41RiscwtTplw5k,4484
143
174
  unique_toolkit/short_term_memory/schemas.py,sha256=OhfcXyF6ACdwIXW45sKzjtZX_gkcJs8FEZXcgQTNenw,1406
144
175
  unique_toolkit/short_term_memory/service.py,sha256=5PeVBu1ZCAfyDb2HLVvlmqSbyzBBuE9sI2o9Aajqjxg,8884
145
176
  unique_toolkit/smart_rules/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
146
- unique_toolkit/smart_rules/compile.py,sha256=cxWjb2dxEI2HGsakKdVCkSNi7VK9mr08w5sDcFCQyWI,9553
147
- unique_toolkit-1.8.1.dist-info/LICENSE,sha256=GlN8wHNdh53xwOPg44URnwag6TEolCjoq3YD_KrWgss,193
148
- unique_toolkit-1.8.1.dist-info/METADATA,sha256=a-HKRebSMmdRJJIcrobwi1hcz9USNnUe8pPeVao9oTo,35013
149
- unique_toolkit-1.8.1.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
150
- unique_toolkit-1.8.1.dist-info/RECORD,,
177
+ unique_toolkit/smart_rules/compile.py,sha256=Ozhh70qCn2yOzRWr9d8WmJeTo7AQurwd3tStgBMPFLA,1246
178
+ unique_toolkit/test_utilities/events.py,sha256=_mwV2bs5iLjxS1ynDCjaIq-gjjKhXYCK-iy3dRfvO3g,6410
179
+ unique_toolkit-1.23.0.dist-info/LICENSE,sha256=GlN8wHNdh53xwOPg44URnwag6TEolCjoq3YD_KrWgss,193
180
+ unique_toolkit-1.23.0.dist-info/METADATA,sha256=K4yF9ceBMZxZAh4qy_CXTrM5fW-ophzEeh2TZvNWTYE,40730
181
+ unique_toolkit-1.23.0.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
182
+ unique_toolkit-1.23.0.dist-info/RECORD,,
@@ -1,122 +0,0 @@
1
- import re
2
- from abc import ABC, abstractmethod
3
- from typing import Literal, override
4
-
5
- from unique_toolkit.agentic.tools.a2a.postprocessing.config import (
6
- SubAgentResponseDisplayMode,
7
- )
8
-
9
-
10
- class _ResponseDisplayHandler(ABC):
11
- @abstractmethod
12
- def build_response_display(
13
- self, display_name: str, assistant_id: str, answer: str
14
- ) -> str:
15
- raise NotImplementedError()
16
-
17
- @abstractmethod
18
- def remove_response_display(self, assistant_id: str, text: str) -> str:
19
- raise NotImplementedError()
20
-
21
-
22
- class _DetailsResponseDisplayHandler(_ResponseDisplayHandler):
23
- def __init__(self, mode: Literal["open", "closed"]) -> None:
24
- self._mode = mode
25
-
26
- DETAILS_CLOSED_TEMPLATE = (
27
- "<details><summary>{display_name}</summary>\n"
28
- "\n"
29
- '<div style="display: none;">{assistant_id}</div>\n'
30
- "\n"
31
- "{answer}\n"
32
- "</details>\n"
33
- "<br>\n"
34
- "\n"
35
- )
36
-
37
- DETAILS_OPEN_TEMPLATE = (
38
- "<details open><summary>{display_name}</summary>\n"
39
- "\n"
40
- '<div style="display: none;">{assistant_id}</div>\n'
41
- "\n"
42
- "{answer}\n"
43
- "\n"
44
- "</details>\n"
45
- "<br>\n"
46
- "\n"
47
- )
48
-
49
- def _get_detect_re(self, assistant_id: str) -> str:
50
- if self._mode == "open":
51
- return (
52
- r"(?s)<details open>\s*"
53
- r"<summary>(.*?)</summary>\s*"
54
- rf"<div style=\"display: none;\">{re.escape(assistant_id)}</div>\s*"
55
- r"(.*?)\s*"
56
- r"</details>\s*"
57
- r"<br>\s*"
58
- )
59
- else:
60
- return (
61
- r"(?s)<details>\s*"
62
- r"<summary>(.*?)</summary>\s*"
63
- rf"<div style=\"display: none;\">{re.escape(assistant_id)}</div>\s*"
64
- r"(.*?)\s*"
65
- r"</details>\s*"
66
- r"<br>\s*"
67
- )
68
-
69
- def _get_template(self) -> str:
70
- if self._mode == "open":
71
- return self.DETAILS_OPEN_TEMPLATE
72
- else:
73
- return self.DETAILS_CLOSED_TEMPLATE
74
-
75
- @override
76
- def build_response_display(
77
- self, display_name: str, assistant_id: str, answer: str
78
- ) -> str:
79
- return self._get_template().format(
80
- assistant_id=assistant_id, display_name=display_name, answer=answer
81
- )
82
-
83
- @override
84
- def remove_response_display(self, assistant_id: str, text: str) -> str:
85
- return re.sub(self._get_detect_re(assistant_id=assistant_id), "", text)
86
-
87
-
88
- _DISPLAY_HANDLERS = {
89
- SubAgentResponseDisplayMode.DETAILS_OPEN: _DetailsResponseDisplayHandler(
90
- mode="open"
91
- ),
92
- SubAgentResponseDisplayMode.DETAILS_CLOSED: _DetailsResponseDisplayHandler(
93
- mode="closed"
94
- ),
95
- }
96
-
97
-
98
- def _build_sub_agent_answer_display(
99
- display_name: str,
100
- display_mode: SubAgentResponseDisplayMode,
101
- answer: str,
102
- assistant_id: str,
103
- ) -> str:
104
- if display_mode not in _DISPLAY_HANDLERS:
105
- return ""
106
-
107
- display_f = _DISPLAY_HANDLERS[display_mode]
108
-
109
- return display_f.build_response_display(
110
- display_name=display_name, answer=answer, assistant_id=assistant_id
111
- )
112
-
113
-
114
- def _remove_sub_agent_answer_from_text(
115
- display_mode: SubAgentResponseDisplayMode, text: str, assistant_id: str
116
- ) -> str:
117
- if display_mode not in _DISPLAY_HANDLERS:
118
- return text
119
-
120
- display_f = _DISPLAY_HANDLERS[display_mode]
121
-
122
- return display_f.remove_response_display(assistant_id=assistant_id, text=text)
@@ -1,19 +0,0 @@
1
- def _replace_references_in_text_non_overlapping(
2
- text: str, ref_map: dict[int, int]
3
- ) -> str:
4
- for orig, repl in ref_map.items():
5
- text = text.replace(f"<sup>{orig}</sup>", f"<sup>{repl}</sup>")
6
- return text
7
-
8
-
9
- def _replace_references_in_text(text: str, ref_map: dict[int, int]) -> str:
10
- # 2 phase replacement, since the map keys and values can overlap
11
- max_ref = max(max(ref_map.keys(), default=0), max(ref_map.values(), default=0)) + 1
12
- unique_refs = range(max_ref, max_ref + len(ref_map))
13
-
14
- text = _replace_references_in_text_non_overlapping(
15
- text, dict(zip(ref_map.keys(), unique_refs))
16
- )
17
- return _replace_references_in_text_non_overlapping(
18
- text, dict(zip(unique_refs, ref_map.values()))
19
- )