unique_toolkit 1.43.4__tar.gz → 1.43.7__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 (249) hide show
  1. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/CHANGELOG.md +10 -11
  2. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/PKG-INFO +17 -17
  3. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/pyproject.toml +16 -9
  4. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/agentic/evaluation/config.py +6 -14
  5. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/agentic/evaluation/hallucination/constants.py +3 -2
  6. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/chat/functions.py +24 -0
  7. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/chat/schemas.py +4 -0
  8. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/services/chat_service.py +42 -0
  9. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/LICENSE +0 -0
  10. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/README.md +0 -0
  11. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/__init__.py +0 -0
  12. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/_common/_base_service.py +0 -0
  13. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/_common/_time_utils.py +0 -0
  14. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/_common/api_calling/human_verification_manager.py +0 -0
  15. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/_common/base_model_type_attribute.py +0 -0
  16. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/_common/chunk_relevancy_sorter/config.py +0 -0
  17. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/_common/chunk_relevancy_sorter/exception.py +0 -0
  18. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/_common/chunk_relevancy_sorter/schemas.py +0 -0
  19. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/_common/chunk_relevancy_sorter/service.py +0 -0
  20. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/_common/chunk_relevancy_sorter/tests/test_service.py +0 -0
  21. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/_common/default_language_model.py +0 -0
  22. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/_common/docx_generator/__init__.py +0 -0
  23. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/_common/docx_generator/config.py +0 -0
  24. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/_common/docx_generator/schemas.py +0 -0
  25. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/_common/docx_generator/service.py +0 -0
  26. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/_common/docx_generator/template/Doc Template.docx +0 -0
  27. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/_common/endpoint_builder.py +0 -0
  28. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/_common/endpoint_requestor.py +0 -0
  29. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/_common/exception.py +0 -0
  30. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/_common/execution.py +0 -0
  31. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/_common/experimental/endpoint_builder.py +0 -0
  32. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/_common/experimental/endpoint_requestor.py +0 -0
  33. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/_common/experimental/write_up_agent/README.md +0 -0
  34. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/_common/experimental/write_up_agent/__init__.py +0 -0
  35. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/_common/experimental/write_up_agent/agent.py +0 -0
  36. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/_common/experimental/write_up_agent/config.py +0 -0
  37. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/_common/experimental/write_up_agent/examples/data.csv +0 -0
  38. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/_common/experimental/write_up_agent/examples/example_usage.py +0 -0
  39. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/_common/experimental/write_up_agent/schemas.py +0 -0
  40. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/_common/experimental/write_up_agent/services/__init__.py +0 -0
  41. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/__init__.py +0 -0
  42. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/exceptions.py +0 -0
  43. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/service.py +0 -0
  44. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/utils.py +0 -0
  45. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/__init__.py +0 -0
  46. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/config.py +0 -0
  47. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/exceptions.py +0 -0
  48. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/prompts/config.py +0 -0
  49. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/prompts/system_prompt.j2 +0 -0
  50. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/prompts/user_prompt.j2 +0 -0
  51. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/service.py +0 -0
  52. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/__init__.py +0 -0
  53. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/default_template.j2 +0 -0
  54. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/exceptions.py +0 -0
  55. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/service.py +0 -0
  56. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/utils.py +0 -0
  57. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/_common/experimental/write_up_agent/utils.py +0 -0
  58. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/_common/feature_flags/schema.py +0 -0
  59. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/_common/pydantic/rjsf_tags.py +0 -0
  60. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/_common/pydantic_helpers.py +0 -0
  61. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/_common/referencing.py +0 -0
  62. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/_common/string_utilities.py +0 -0
  63. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/_common/tests/test_referencing.py +0 -0
  64. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/_common/tests/test_string_utilities.py +0 -0
  65. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/_common/token/image_token_counting.py +0 -0
  66. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/_common/token/token_counting.py +0 -0
  67. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/_common/utils/__init__.py +0 -0
  68. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/_common/utils/files.py +0 -0
  69. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/_common/utils/image/encode.py +0 -0
  70. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/_common/utils/jinja/helpers.py +0 -0
  71. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/_common/utils/jinja/render.py +0 -0
  72. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/_common/utils/jinja/schema.py +0 -0
  73. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/_common/utils/jinja/utils.py +0 -0
  74. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/_common/utils/structured_output/__init__.py +0 -0
  75. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/_common/utils/structured_output/schema.py +0 -0
  76. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/_common/utils/write_configuration.py +0 -0
  77. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/_common/validate_required_values.py +0 -0
  78. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/_common/validators.py +0 -0
  79. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/agentic/__init__.py +0 -0
  80. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/agentic/debug_info_manager/debug_info_manager.py +0 -0
  81. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/agentic/debug_info_manager/test/test_debug_info_manager.py +0 -0
  82. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/agentic/evaluation/context_relevancy/prompts.py +0 -0
  83. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/agentic/evaluation/context_relevancy/schema.py +0 -0
  84. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/agentic/evaluation/context_relevancy/service.py +0 -0
  85. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/agentic/evaluation/evaluation_manager.py +0 -0
  86. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/agentic/evaluation/exception.py +0 -0
  87. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/agentic/evaluation/hallucination/hallucination_evaluation.py +0 -0
  88. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/agentic/evaluation/hallucination/prompts.py +0 -0
  89. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/agentic/evaluation/hallucination/service.py +0 -0
  90. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/agentic/evaluation/hallucination/utils.py +0 -0
  91. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/agentic/evaluation/output_parser.py +0 -0
  92. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/agentic/evaluation/schemas.py +0 -0
  93. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/agentic/evaluation/tests/test_context_relevancy_service.py +0 -0
  94. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/agentic/evaluation/tests/test_output_parser.py +0 -0
  95. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/agentic/feature_flags/__init__.py +0 -0
  96. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/agentic/feature_flags/feature_flags.py +0 -0
  97. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/agentic/history_manager/history_construction_with_contents.py +0 -0
  98. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/agentic/history_manager/history_manager.py +0 -0
  99. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/agentic/history_manager/loop_token_reducer.py +0 -0
  100. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/agentic/history_manager/utils.py +0 -0
  101. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/agentic/loop_runner/__init__.py +0 -0
  102. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/agentic/loop_runner/_iteration_handler_utils.py +0 -0
  103. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/agentic/loop_runner/_stream_handler_utils.py +0 -0
  104. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/agentic/loop_runner/base.py +0 -0
  105. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/agentic/loop_runner/middleware/__init__.py +0 -0
  106. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/agentic/loop_runner/middleware/planning/__init__.py +0 -0
  107. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/agentic/loop_runner/middleware/planning/planning.py +0 -0
  108. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/agentic/loop_runner/middleware/planning/schema.py +0 -0
  109. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/agentic/loop_runner/runners/__init__.py +0 -0
  110. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/agentic/loop_runner/runners/basic.py +0 -0
  111. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/agentic/loop_runner/runners/qwen/__init__.py +0 -0
  112. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/agentic/loop_runner/runners/qwen/helpers.py +0 -0
  113. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/agentic/loop_runner/runners/qwen/qwen_runner.py +0 -0
  114. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/agentic/message_log_manager/__init__.py +0 -0
  115. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/agentic/message_log_manager/service.py +0 -0
  116. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/agentic/postprocessor/postprocessor_manager.py +0 -0
  117. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/agentic/reference_manager/reference_manager.py +0 -0
  118. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/agentic/responses_api/__init__.py +0 -0
  119. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/agentic/responses_api/postprocessors/code_display.py +0 -0
  120. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/agentic/responses_api/postprocessors/generated_files.py +0 -0
  121. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/agentic/responses_api/stream_handler.py +0 -0
  122. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/agentic/short_term_memory_manager/persistent_short_term_memory_manager.py +0 -0
  123. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/agentic/thinking_manager/thinking_manager.py +0 -0
  124. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/agentic/tools/__init__.py +0 -0
  125. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/agentic/tools/a2a/__init__.py +0 -0
  126. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/agentic/tools/a2a/config.py +0 -0
  127. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/agentic/tools/a2a/evaluation/__init__.py +0 -0
  128. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/agentic/tools/a2a/evaluation/_utils.py +0 -0
  129. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/agentic/tools/a2a/evaluation/config.py +0 -0
  130. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/agentic/tools/a2a/evaluation/evaluator.py +0 -0
  131. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/agentic/tools/a2a/evaluation/summarization_user_message.j2 +0 -0
  132. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/agentic/tools/a2a/manager.py +0 -0
  133. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/agentic/tools/a2a/postprocessing/__init__.py +0 -0
  134. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/agentic/tools/a2a/postprocessing/_display_utils.py +0 -0
  135. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/agentic/tools/a2a/postprocessing/_ref_utils.py +0 -0
  136. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/agentic/tools/a2a/postprocessing/config.py +0 -0
  137. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/agentic/tools/a2a/postprocessing/display.py +0 -0
  138. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/agentic/tools/a2a/postprocessing/references.py +0 -0
  139. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_display.py +0 -0
  140. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_display_utils.py +0 -0
  141. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_ref_utils.py +0 -0
  142. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/agentic/tools/a2a/prompts.py +0 -0
  143. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/agentic/tools/a2a/response_watcher/__init__.py +0 -0
  144. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/agentic/tools/a2a/response_watcher/service.py +0 -0
  145. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/agentic/tools/a2a/tool/__init__.py +0 -0
  146. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/agentic/tools/a2a/tool/_memory.py +0 -0
  147. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/agentic/tools/a2a/tool/_schema.py +0 -0
  148. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/agentic/tools/a2a/tool/config.py +0 -0
  149. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/agentic/tools/a2a/tool/service.py +0 -0
  150. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/agentic/tools/a2a/tool/test/test_service_utils.py +0 -0
  151. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/agentic/tools/agent_chunks_hanlder.py +0 -0
  152. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/agentic/tools/config.py +0 -0
  153. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/agentic/tools/factory.py +0 -0
  154. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/agentic/tools/mcp/__init__.py +0 -0
  155. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/agentic/tools/mcp/manager.py +0 -0
  156. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/agentic/tools/mcp/models.py +0 -0
  157. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/agentic/tools/mcp/tool_wrapper.py +0 -0
  158. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/agentic/tools/openai_builtin/__init__.py +0 -0
  159. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/agentic/tools/openai_builtin/base.py +0 -0
  160. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/__init__.py +0 -0
  161. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/config.py +0 -0
  162. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/service.py +0 -0
  163. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/agentic/tools/openai_builtin/manager.py +0 -0
  164. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/agentic/tools/schemas.py +0 -0
  165. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/agentic/tools/test/test_mcp_manager.py +0 -0
  166. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/agentic/tools/test/test_tool_progress_reporter.py +0 -0
  167. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/agentic/tools/tool.py +0 -0
  168. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/agentic/tools/tool_manager.py +0 -0
  169. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/agentic/tools/tool_progress_reporter.py +0 -0
  170. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/agentic/tools/utils/__init__.py +0 -0
  171. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/agentic/tools/utils/source_handling/__init__.py +0 -0
  172. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/agentic/tools/utils/source_handling/schema.py +0 -0
  173. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/agentic/tools/utils/source_handling/source_formatting.py +0 -0
  174. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/agentic/tools/utils/source_handling/tests/test_source_formatting.py +0 -0
  175. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/agentic_table/__init__.py +0 -0
  176. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/agentic_table/schemas.py +0 -0
  177. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/agentic_table/service.py +0 -0
  178. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/app/__init__.py +0 -0
  179. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/app/dev_util.py +0 -0
  180. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/app/fast_api_factory.py +0 -0
  181. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/app/init_logging.py +0 -0
  182. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/app/init_sdk.py +0 -0
  183. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/app/performance/async_tasks.py +0 -0
  184. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/app/performance/async_wrapper.py +0 -0
  185. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/app/schemas.py +0 -0
  186. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/app/unique_settings.py +0 -0
  187. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/app/verification.py +0 -0
  188. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/app/webhook.py +0 -0
  189. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/chat/__init__.py +0 -0
  190. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/chat/constants.py +0 -0
  191. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/chat/deprecated/service.py +0 -0
  192. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/chat/rendering.py +0 -0
  193. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/chat/responses_api.py +0 -0
  194. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/chat/service.py +0 -0
  195. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/chat/state.py +0 -0
  196. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/chat/utils.py +0 -0
  197. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/content/__init__.py +0 -0
  198. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/content/constants.py +0 -0
  199. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/content/functions.py +0 -0
  200. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/content/schemas.py +0 -0
  201. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/content/service.py +0 -0
  202. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/content/smart_rules.py +0 -0
  203. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/content/utils.py +0 -0
  204. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/data_extraction/README.md +0 -0
  205. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/data_extraction/__init__.py +0 -0
  206. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/data_extraction/augmented/__init__.py +0 -0
  207. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/data_extraction/augmented/service.py +0 -0
  208. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/data_extraction/base.py +0 -0
  209. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/data_extraction/basic/__init__.py +0 -0
  210. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/data_extraction/basic/config.py +0 -0
  211. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/data_extraction/basic/prompt.py +0 -0
  212. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/data_extraction/basic/service.py +0 -0
  213. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/embedding/__init__.py +0 -0
  214. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/embedding/constants.py +0 -0
  215. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/embedding/functions.py +0 -0
  216. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/embedding/schemas.py +0 -0
  217. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/embedding/service.py +0 -0
  218. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/embedding/utils.py +0 -0
  219. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/framework_utilities/__init__.py +0 -0
  220. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/framework_utilities/langchain/__init__.py +0 -0
  221. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/framework_utilities/langchain/client.py +0 -0
  222. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/framework_utilities/langchain/history.py +0 -0
  223. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/framework_utilities/openai/__init__.py +0 -0
  224. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/framework_utilities/openai/client.py +0 -0
  225. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/framework_utilities/openai/message_builder.py +0 -0
  226. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/framework_utilities/utils.py +0 -0
  227. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/language_model/__init__.py +0 -0
  228. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/language_model/_responses_api_utils.py +0 -0
  229. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/language_model/builder.py +0 -0
  230. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/language_model/constants.py +0 -0
  231. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/language_model/default_language_model.py +0 -0
  232. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/language_model/functions.py +0 -0
  233. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/language_model/infos.py +0 -0
  234. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/language_model/prompt.py +0 -0
  235. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/language_model/reference.py +0 -0
  236. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/language_model/schemas.py +0 -0
  237. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/language_model/service.py +0 -0
  238. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/language_model/utils.py +0 -0
  239. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/protocols/support.py +0 -0
  240. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/services/__init__.py +0 -0
  241. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/services/knowledge_base.py +0 -0
  242. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/short_term_memory/__init__.py +0 -0
  243. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/short_term_memory/constants.py +0 -0
  244. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/short_term_memory/functions.py +0 -0
  245. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/short_term_memory/schemas.py +0 -0
  246. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/short_term_memory/service.py +0 -0
  247. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/smart_rules/__init__.py +0 -0
  248. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/smart_rules/compile.py +0 -0
  249. {unique_toolkit-1.43.4 → unique_toolkit-1.43.7}/unique_toolkit/test_utilities/events.py +0 -0
@@ -5,6 +5,16 @@ 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
+ ## [1.43.7] - 2026-01-15
9
+ - Cleanup hallucination config that is displayed in space config
10
+
11
+ ## [1.43.6] - 2026-01-13
12
+ - Update message execution pipeline functions and service
13
+
14
+ ## [1.43.5] - 2026-01-13
15
+ - Add deptry to dev dependencies for CI dependency checks
16
+ - Fix missing base_settings fixture parameter in FastAPI test
17
+
8
18
  ## [1.43.4] - 2026-01-14
9
19
  - chore(deps-dev): bump aiohttp from 3.13.2 to 3.13.3
10
20
 
@@ -57,8 +67,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
57
67
 
58
68
  ## [1.40.0] - 2025-12-22
59
69
  - Add option to use retrieve referenced chunks from their order
60
-
61
- ## [1.40.0] - 2025-12-22
62
70
  - Add `hide_in_chat` parameter to `upload_to_chat_from_bytes` and `upload_to_chat_from_bytes_async`
63
71
  - Hide code interpreter files in chat
64
72
  - Code Interpreter files are now uploaded to chat by default
@@ -188,8 +196,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
188
196
 
189
197
  ## [1.28.1] - 2025-11-19
190
198
  - Remove `chat_service` from DocXGeneratorService
191
-
192
- ## [1.28.1] - 2025-11-19
193
199
  - Set review standards in pyright for toolkit
194
200
  - Refactor type check pipeline
195
201
 
@@ -626,9 +632,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
626
632
  ## [0.8.26] - 2025-08-27
627
633
  - Optimized MCP manager
628
634
 
629
- ## [0.8.26] - 2025-08-27
630
- - Optimized MCP manager
631
-
632
635
  ## [0.8.25] - 2025-08-27
633
636
  - Load environment variables automatically from plattform dirs or environment
634
637
  - General Endpoint definition utility
@@ -650,8 +653,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
650
653
 
651
654
  ## [0.8.20] - 2025-08-24
652
655
  - Fixed forced-tool-calls
653
-
654
- ## [0.8.20] - 2025-08-05
655
656
  - Bump SDK version to support the latest features.
656
657
 
657
658
  ## [0.8.19] - 2025-08-24
@@ -886,8 +887,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
886
887
 
887
888
  ## [0.6.3] - 2025-02-27
888
889
  - Simplified imports for services. `from unique_toolkit.language_model import LanguageModelService` -> `from unique_toolkit import LanguageModelService` to reduce number of import lines.
889
-
890
- ## [0.6.3] - 2025-02-26
891
890
  - Add `builder` method to `LanguageModelMessages` class
892
891
 
893
892
  ## [0.6.2] - 2025-02-25
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: unique_toolkit
3
- Version: 1.43.4
3
+ Version: 1.43.7
4
4
  Summary:
5
5
  License: Proprietary
6
6
  Author: Cedric Klinkert
@@ -9,26 +9,27 @@ 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: docxcompose (>=1.4.0,<2.0.0)
12
+ Requires-Dist: aiohttp (>=3.12.0,<4.0.0)
13
13
  Requires-Dist: docxtpl (>=0.20.1,<0.21.0)
14
+ Requires-Dist: httpx (>=0.28.0,<0.29.0)
14
15
  Requires-Dist: jambo (>=0.1.2,<0.2.0)
15
16
  Requires-Dist: jinja2 (>=3.1.6,<4.0.0)
16
17
  Requires-Dist: markdown-it-py (>=4.0.0,<5.0.0)
17
- Requires-Dist: mkdocs-mermaid2-plugin (>=1.2.2,<2.0.0)
18
- Requires-Dist: mkdocs-multirepo-plugin (>=0.8.3,<0.9.0)
19
18
  Requires-Dist: numpy (>=2.1.0,<3.0.0)
20
19
  Requires-Dist: openai (>=1.99.9,<2.0.0)
20
+ Requires-Dist: pandas (>=2.3.0,<3.0.0)
21
21
  Requires-Dist: pillow (>=10.4.0,<11.0.0)
22
22
  Requires-Dist: platformdirs (>=4.0.0,<5.0.0)
23
23
  Requires-Dist: pydantic (>=2.8.2,<3.0.0)
24
24
  Requires-Dist: pydantic-settings (>=2.10.1,<3.0.0)
25
25
  Requires-Dist: pyhumps (>=3.8.0,<4.0.0)
26
- Requires-Dist: python-dotenv (>=1.0.1,<2.0.0)
26
+ Requires-Dist: python-docx (>=1.1.0,<2.0.0)
27
27
  Requires-Dist: regex (>=2024.5.15,<2025.0.0)
28
+ Requires-Dist: requests (>=2.32.0,<3.0.0)
28
29
  Requires-Dist: sseclient (>=0.0.27,<0.0.28)
29
30
  Requires-Dist: tiktoken (>=0.12.0,<0.13.0)
30
31
  Requires-Dist: typing-extensions (>=4.9.0,<5.0.0)
31
- Requires-Dist: unique-sdk (>=0.10.65,<0.11.0)
32
+ Requires-Dist: unique-sdk (>=0.10.67,<0.11.0)
32
33
  Description-Content-Type: text/markdown
33
34
 
34
35
  # Unique Toolkit
@@ -124,6 +125,16 @@ All notable changes to this project will be documented in this file.
124
125
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
125
126
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
126
127
 
128
+ ## [1.43.7] - 2026-01-15
129
+ - Cleanup hallucination config that is displayed in space config
130
+
131
+ ## [1.43.6] - 2026-01-13
132
+ - Update message execution pipeline functions and service
133
+
134
+ ## [1.43.5] - 2026-01-13
135
+ - Add deptry to dev dependencies for CI dependency checks
136
+ - Fix missing base_settings fixture parameter in FastAPI test
137
+
127
138
  ## [1.43.4] - 2026-01-14
128
139
  - chore(deps-dev): bump aiohttp from 3.13.2 to 3.13.3
129
140
 
@@ -176,8 +187,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
176
187
 
177
188
  ## [1.40.0] - 2025-12-22
178
189
  - Add option to use retrieve referenced chunks from their order
179
-
180
- ## [1.40.0] - 2025-12-22
181
190
  - Add `hide_in_chat` parameter to `upload_to_chat_from_bytes` and `upload_to_chat_from_bytes_async`
182
191
  - Hide code interpreter files in chat
183
192
  - Code Interpreter files are now uploaded to chat by default
@@ -307,8 +316,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
307
316
 
308
317
  ## [1.28.1] - 2025-11-19
309
318
  - Remove `chat_service` from DocXGeneratorService
310
-
311
- ## [1.28.1] - 2025-11-19
312
319
  - Set review standards in pyright for toolkit
313
320
  - Refactor type check pipeline
314
321
 
@@ -745,9 +752,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
745
752
  ## [0.8.26] - 2025-08-27
746
753
  - Optimized MCP manager
747
754
 
748
- ## [0.8.26] - 2025-08-27
749
- - Optimized MCP manager
750
-
751
755
  ## [0.8.25] - 2025-08-27
752
756
  - Load environment variables automatically from plattform dirs or environment
753
757
  - General Endpoint definition utility
@@ -769,8 +773,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
769
773
 
770
774
  ## [0.8.20] - 2025-08-24
771
775
  - Fixed forced-tool-calls
772
-
773
- ## [0.8.20] - 2025-08-05
774
776
  - Bump SDK version to support the latest features.
775
777
 
776
778
  ## [0.8.19] - 2025-08-24
@@ -1005,8 +1007,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1005
1007
 
1006
1008
  ## [0.6.3] - 2025-02-27
1007
1009
  - Simplified imports for services. `from unique_toolkit.language_model import LanguageModelService` -> `from unique_toolkit import LanguageModelService` to reduce number of import lines.
1008
-
1009
- ## [0.6.3] - 2025-02-26
1010
1010
  - Add `builder` method to `LanguageModelMessages` class
1011
1011
 
1012
1012
  ## [0.6.2] - 2025-02-25
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "unique_toolkit"
3
- version = "1.43.4"
3
+ version = "1.43.7"
4
4
  description = ""
5
5
  authors = [
6
6
  "Cedric Klinkert <cedric.klinkert@unique.ch>",
@@ -21,7 +21,6 @@ typing-extensions = "^4.9.0"
21
21
  pydantic = "^2.8.2"
22
22
  pyhumps = "^3.8.0"
23
23
  numpy = "^2.1.0"
24
- python-dotenv = "^1.0.1"
25
24
  regex = "^2024.5.15"
26
25
  tiktoken = "^0.12.0"
27
26
  pydantic-settings = "^2.10.1"
@@ -29,14 +28,16 @@ sseclient = "^0.0.27"
29
28
  openai = "^1.99.9"
30
29
  platformdirs = "^4.0.0"
31
30
  pillow = "^10.4.0"
32
- unique-sdk = "^0.10.65"
31
+ unique-sdk = "^0.10.67"
33
32
  jambo = "^0.1.2"
34
33
  jinja2 = "^3.1.6"
35
- mkdocs-multirepo-plugin = "^0.8.3"
36
- mkdocs-mermaid2-plugin = "^1.2.2"
37
34
  docxtpl = "^0.20.1"
38
35
  markdown-it-py = "^4.0.0"
39
- docxcompose = "^1.4.0"
36
+ python-docx = "^1.1.0"
37
+ requests = "^2.32.0"
38
+ httpx = "^0.28.0"
39
+ aiohttp = "^3.12.0"
40
+ pandas = "^2.3.0"
40
41
 
41
42
  [tool.poetry.group.langchain]
42
43
  optional = true
@@ -45,6 +46,7 @@ optional = true
45
46
  openai = "^1.97.0"
46
47
  langchain = "^0.3.27"
47
48
  langchain-openai = "^0.3.28"
49
+ langchain-core = "^0.3.0"
48
50
 
49
51
  [tool.poetry.group.fastapi]
50
52
  optional = true
@@ -63,10 +65,8 @@ pytest-cov = "^4.1.0"
63
65
  pre-commit = "^3.7.1"
64
66
  pytest-asyncio = "^0.23.8"
65
67
  pytest-mock = "^3.14.0"
66
- platformdirs = "^4.0.0"
67
- pillow = "^10.4.0"
68
68
  ipykernel = "^6.29.5"
69
- jinja2 = "^3.1.6"
69
+ deptry = "^0.24.0"
70
70
  # unique-sdk = { path = "../unique_sdk" }
71
71
  mkdocs = "^1.6.1"
72
72
  mkdocs-material = "^9.6.11"
@@ -84,6 +84,13 @@ pandas = "^2.3.3"
84
84
  requires = ["poetry-core"]
85
85
  build-backend = "poetry.core.masonry.api"
86
86
 
87
+ [tool.deptry]
88
+ known_first_party = ["unique_toolkit"]
89
+ extend_exclude = ["docs", "tests", "unique_toolkit/.*/test", "unique_toolkit/.*/tests"]
90
+
91
+ [tool.deptry.per_rule_ignores]
92
+ DEP004 = ["langchain_openai", "langchain_core"]
93
+
87
94
  [tool.ruff]
88
95
  target-version = "py311"
89
96
  exclude = [".venv", "docs"]
@@ -1,9 +1,10 @@
1
1
  from typing import Any
2
2
 
3
- from humps import camelize
4
- from pydantic import BaseModel, ConfigDict, Field
3
+ from pydantic import Field
4
+ from pydantic.json_schema import SkipJsonSchema
5
5
 
6
6
  from unique_toolkit._common.validators import LMI
7
+ from unique_toolkit.agentic.tools.schemas import BaseToolConfig
7
8
  from unique_toolkit.language_model.default_language_model import DEFAULT_GPT_4o
8
9
  from unique_toolkit.language_model.infos import LanguageModelInfo
9
10
 
@@ -11,19 +12,10 @@ from .schemas import (
11
12
  EvaluationMetricName,
12
13
  )
13
14
 
14
- model_config = ConfigDict(
15
- alias_generator=camelize,
16
- populate_by_name=True,
17
- arbitrary_types_allowed=True,
18
- validate_default=True,
19
- )
20
-
21
-
22
- class EvaluationMetricConfig(BaseModel):
23
- model_config = model_config
24
15
 
25
- enabled: bool = False
26
- name: EvaluationMetricName
16
+ class EvaluationMetricConfig(BaseToolConfig):
17
+ enabled: SkipJsonSchema[bool] = False
18
+ name: SkipJsonSchema[EvaluationMetricName]
27
19
  language_model: LMI = LanguageModelInfo.from_name(
28
20
  DEFAULT_GPT_4o,
29
21
  )
@@ -1,6 +1,7 @@
1
1
  from typing import Any
2
2
 
3
3
  from pydantic import Field
4
+ from pydantic.json_schema import SkipJsonSchema
4
5
 
5
6
  from unique_toolkit._common.validators import LMI
6
7
  from unique_toolkit.agentic.evaluation.config import EvaluationMetricConfig
@@ -24,8 +25,8 @@ USER_MSG_DEFAULT_KEY = "userPromptDefault"
24
25
 
25
26
 
26
27
  class HallucinationConfig(EvaluationMetricConfig):
27
- enabled: bool = False
28
- name: EvaluationMetricName = EvaluationMetricName.HALLUCINATION
28
+ enabled: SkipJsonSchema[bool] = False
29
+ name: SkipJsonSchema[EvaluationMetricName] = EvaluationMetricName.HALLUCINATION
29
30
  language_model: LMI = LanguageModelInfo.from_name(
30
31
  DEFAULT_GPT_4o,
31
32
  )
@@ -1153,6 +1153,9 @@ def create_message_execution(
1153
1153
  type: MessageExecutionType = MessageExecutionType.DEEP_RESEARCH,
1154
1154
  seconds_remaining: int | None = None,
1155
1155
  percentage_completed: int | None = None,
1156
+ is_queueable: bool = True,
1157
+ execution_options: dict | None = None,
1158
+ progress_title: str | None = None,
1156
1159
  ) -> MessageExecution:
1157
1160
  """Creates a message execution synchronously.
1158
1161
 
@@ -1164,6 +1167,9 @@ def create_message_execution(
1164
1167
  type (MessageExecutionType): The type of execution. Defaults to DEEP_RESEARCH.
1165
1168
  seconds_remaining (int | None): Estimated seconds remaining for completion.
1166
1169
  percentage_completed (int | None): Percentage of completion (0-100).
1170
+ is_queueable (bool): Whether the execution is queueable. Defaults to True. If true, then the progress will be updated in the background by the execution pipeline. Set to False if you want to update the progress manually.
1171
+ execution_options (dict | None): Additional execution options. Defaults to None.
1172
+ progress_title (str | None): The title of the progress bar. If not provided, the title of the last message log is taken.
1167
1173
 
1168
1174
  Returns:
1169
1175
  MessageExecution: The created message execution.
@@ -1181,6 +1187,9 @@ def create_message_execution(
1181
1187
  type=type.value,
1182
1188
  secondsRemaining=seconds_remaining,
1183
1189
  percentageCompleted=percentage_completed,
1190
+ isQueueable=is_queueable,
1191
+ executionOptions=execution_options,
1192
+ progressTitle=progress_title,
1184
1193
  )
1185
1194
  return MessageExecution(**message_execution)
1186
1195
  except Exception as e:
@@ -1196,6 +1205,9 @@ async def create_message_execution_async(
1196
1205
  type: MessageExecutionType = MessageExecutionType.DEEP_RESEARCH,
1197
1206
  seconds_remaining: int | None = None,
1198
1207
  percentage_completed: int | None = None,
1208
+ is_queueable: bool = True,
1209
+ execution_options: dict | None = None,
1210
+ progress_title: str | None = None,
1199
1211
  ) -> MessageExecution:
1200
1212
  """Creates a message execution asynchronously.
1201
1213
 
@@ -1207,6 +1219,9 @@ async def create_message_execution_async(
1207
1219
  type (MessageExecutionType): The type of execution. Defaults to DEEP_RESEARCH.
1208
1220
  seconds_remaining (int | None): Estimated seconds remaining for completion.
1209
1221
  percentage_completed (int | None): Percentage of completion (0-100).
1222
+ is_queueable (bool): Whether the execution is queueable. Defaults to True. If true, then the progress will be updated in the background by the execution pipeline. Set to False if you want to update the progress manually.
1223
+ execution_options (dict | None): Additional execution options. Defaults to None.
1224
+ progress_title (str | None): The title of the progress bar. If not provided, the title of the last message log is taken.
1210
1225
 
1211
1226
  Returns:
1212
1227
  MessageExecution: The created message execution.
@@ -1224,6 +1239,9 @@ async def create_message_execution_async(
1224
1239
  type=type.value,
1225
1240
  secondsRemaining=seconds_remaining,
1226
1241
  percentageCompleted=percentage_completed,
1242
+ isQueueable=is_queueable,
1243
+ executionOptions=execution_options,
1244
+ progressTitle=progress_title,
1227
1245
  )
1228
1246
  return MessageExecution(**message_execution)
1229
1247
  except Exception as e:
@@ -1300,6 +1318,7 @@ def update_message_execution(
1300
1318
  status: MessageExecutionUpdateStatus | None = None,
1301
1319
  seconds_remaining: int | None = None,
1302
1320
  percentage_completed: int | None = None,
1321
+ progress_title: str | None = None,
1303
1322
  ) -> MessageExecution:
1304
1323
  """Updates a message execution synchronously.
1305
1324
 
@@ -1310,6 +1329,7 @@ def update_message_execution(
1310
1329
  status (MessageExecutionUpdateStatus | None): The updated status (COMPLETED or FAILED). Defaults to None.
1311
1330
  seconds_remaining (int | None): Updated estimated seconds remaining.
1312
1331
  percentage_completed (int | None): Updated percentage of completion (0-100).
1332
+ progress_title (str | None): The title of the progress bar. If not provided, the title of the last message log is taken.
1313
1333
 
1314
1334
  Returns:
1315
1335
  MessageExecution: The updated message execution.
@@ -1327,6 +1347,7 @@ def update_message_execution(
1327
1347
  status=status_value,
1328
1348
  secondsRemaining=seconds_remaining,
1329
1349
  percentageCompleted=percentage_completed,
1350
+ progressTitle=progress_title,
1330
1351
  )
1331
1352
  return MessageExecution(**message_execution)
1332
1353
  except Exception as e:
@@ -1341,6 +1362,7 @@ async def update_message_execution_async(
1341
1362
  status: MessageExecutionUpdateStatus | None = None,
1342
1363
  seconds_remaining: int | None = None,
1343
1364
  percentage_completed: int | None = None,
1365
+ progress_title: str | None = None,
1344
1366
  ) -> MessageExecution:
1345
1367
  """Updates a message execution asynchronously.
1346
1368
 
@@ -1351,6 +1373,7 @@ async def update_message_execution_async(
1351
1373
  status (MessageExecutionUpdateStatus | None): The updated status (COMPLETED or FAILED). Defaults to None.
1352
1374
  seconds_remaining (int | None): Updated estimated seconds remaining.
1353
1375
  percentage_completed (int | None): Updated percentage of completion (0-100).
1376
+ progress_title (str | None): The title of the progress bar. If not provided, the title of the last message log is taken.
1354
1377
 
1355
1378
  Returns:
1356
1379
  MessageExecution: The updated message execution.
@@ -1368,6 +1391,7 @@ async def update_message_execution_async(
1368
1391
  status=status_value,
1369
1392
  secondsRemaining=seconds_remaining,
1370
1393
  percentageCompleted=percentage_completed,
1394
+ progressTitle=progress_title,
1371
1395
  )
1372
1396
  return MessageExecution(**message_execution)
1373
1397
  except Exception as e:
@@ -230,5 +230,9 @@ class MessageExecution(BaseModel):
230
230
  type: MessageExecutionType = MessageExecutionType.DEEP_RESEARCH
231
231
  seconds_remaining: int | None = None
232
232
  percentage_completed: int | None = None
233
+ is_queueable: bool | None = None
234
+ execution_options: dict | None = None
235
+ progress_title: str | None = None
236
+ position_in_queue: int | None = None
233
237
  created_at: datetime | None = None
234
238
  updated_at: datetime | None = None
@@ -987,6 +987,9 @@ class ChatService(ChatServiceDeprecated):
987
987
  type: MessageExecutionType = MessageExecutionType.DEEP_RESEARCH,
988
988
  seconds_remaining: int | None = None,
989
989
  percentage_completed: int | None = None,
990
+ is_queueable: bool = True,
991
+ execution_options: dict | None = None,
992
+ progress_title: str | None = None,
990
993
  ) -> MessageExecution:
991
994
  """Creates a message execution for tracking long-running operations synchronously.
992
995
 
@@ -995,6 +998,9 @@ class ChatService(ChatServiceDeprecated):
995
998
  type (MessageExecutionType): The type of execution. Defaults to DEEP_RESEARCH.
996
999
  seconds_remaining (int | None): Estimated seconds remaining for completion
997
1000
  percentage_completed (int | None): Percentage of completion (0-100)
1001
+ is_queueable (bool): Whether the execution is queueable. Defaults to True. If true, then the progress will be updated in the background by the execution pipeline. Set to False if you want to update the progress manually.
1002
+ execution_options (dict | None): Additional execution options. Defaults to None.
1003
+ progress_title (str | None): The title of the progress bar. If not provided, the title of the last message log is taken.
998
1004
 
999
1005
  Returns:
1000
1006
  MessageExecution: The created message execution
@@ -1011,6 +1017,9 @@ class ChatService(ChatServiceDeprecated):
1011
1017
  type=type,
1012
1018
  seconds_remaining=seconds_remaining,
1013
1019
  percentage_completed=percentage_completed,
1020
+ is_queueable=is_queueable,
1021
+ execution_options=execution_options,
1022
+ progress_title=progress_title,
1014
1023
  )
1015
1024
 
1016
1025
  async def create_message_execution_async(
@@ -1020,6 +1029,9 @@ class ChatService(ChatServiceDeprecated):
1020
1029
  type: MessageExecutionType = MessageExecutionType.DEEP_RESEARCH,
1021
1030
  seconds_remaining: int | None = None,
1022
1031
  percentage_completed: int | None = None,
1032
+ is_queueable: bool = True,
1033
+ execution_options: dict | None = None,
1034
+ progress_title: str | None = None,
1023
1035
  ) -> MessageExecution:
1024
1036
  """Creates a message execution for tracking long-running operations asynchronously.
1025
1037
 
@@ -1028,6 +1040,9 @@ class ChatService(ChatServiceDeprecated):
1028
1040
  type (MessageExecutionType): The type of execution. Defaults to DEEP_RESEARCH.
1029
1041
  seconds_remaining (int | None): Estimated seconds remaining for completion
1030
1042
  percentage_completed (int | None): Percentage of completion (0-100)
1043
+ is_queueable (bool): Whether the execution is queueable. Defaults to True. If true, then the progress will be updated in the background by the execution pipeline. Set to False if you want to update the progress manually.
1044
+ execution_options (dict | None): Additional execution options. Defaults to None.
1045
+ progress_title (str | None): The title of the progress bar. If not provided, the title of the last message log is taken.
1031
1046
 
1032
1047
  Returns:
1033
1048
  MessageExecution: The created message execution
@@ -1044,6 +1059,9 @@ class ChatService(ChatServiceDeprecated):
1044
1059
  type=type,
1045
1060
  seconds_remaining=seconds_remaining,
1046
1061
  percentage_completed=percentage_completed,
1062
+ is_queueable=is_queueable,
1063
+ execution_options=execution_options,
1064
+ progress_title=progress_title,
1047
1065
  )
1048
1066
 
1049
1067
  def get_message_execution(
@@ -1099,6 +1117,7 @@ class ChatService(ChatServiceDeprecated):
1099
1117
  status: MessageExecutionUpdateStatus | None = None,
1100
1118
  seconds_remaining: int | None = None,
1101
1119
  percentage_completed: int | None = None,
1120
+ progress_title: str | None = None,
1102
1121
  ) -> MessageExecution:
1103
1122
  """Updates a message execution synchronously.
1104
1123
 
@@ -1107,6 +1126,7 @@ class ChatService(ChatServiceDeprecated):
1107
1126
  status (MessageExecutionUpdateStatus | None): The updated status (COMPLETED or FAILED). Defaults to None
1108
1127
  seconds_remaining (int | None): Updated estimated seconds remaining
1109
1128
  percentage_completed (int | None): Updated percentage of completion (0-100)
1129
+ progress_title (str | None): The title of the progress bar. If not provided, the title of the last message log is taken.
1110
1130
 
1111
1131
  Returns:
1112
1132
  MessageExecution: The updated message execution
@@ -1122,6 +1142,7 @@ class ChatService(ChatServiceDeprecated):
1122
1142
  status=status,
1123
1143
  seconds_remaining=seconds_remaining,
1124
1144
  percentage_completed=percentage_completed,
1145
+ progress_title=progress_title,
1125
1146
  )
1126
1147
 
1127
1148
  async def update_message_execution_async(
@@ -1131,6 +1152,7 @@ class ChatService(ChatServiceDeprecated):
1131
1152
  status: MessageExecutionUpdateStatus | None = None,
1132
1153
  seconds_remaining: int | None = None,
1133
1154
  percentage_completed: int | None = None,
1155
+ progress_title: str | None = None,
1134
1156
  ) -> MessageExecution:
1135
1157
  """Updates a message execution asynchronously.
1136
1158
 
@@ -1139,6 +1161,7 @@ class ChatService(ChatServiceDeprecated):
1139
1161
  status (MessageExecutionUpdateStatus | None): The updated status (COMPLETED or FAILED). Defaults to None
1140
1162
  seconds_remaining (int | None): Updated estimated seconds remaining
1141
1163
  percentage_completed (int | None): Updated percentage of completion (0-100)
1164
+ progress_title (str | None): The title of the progress bar. If not provided, the title of the last message log is taken.
1142
1165
 
1143
1166
  Returns:
1144
1167
  MessageExecution: The updated message execution
@@ -1154,6 +1177,7 @@ class ChatService(ChatServiceDeprecated):
1154
1177
  status=status,
1155
1178
  seconds_remaining=seconds_remaining,
1156
1179
  percentage_completed=percentage_completed,
1180
+ progress_title=progress_title,
1157
1181
  )
1158
1182
 
1159
1183
  def create_assistant_message_execution(
@@ -1162,6 +1186,9 @@ class ChatService(ChatServiceDeprecated):
1162
1186
  type: MessageExecutionType = MessageExecutionType.DEEP_RESEARCH,
1163
1187
  seconds_remaining: int | None = None,
1164
1188
  percentage_completed: int | None = None,
1189
+ is_queueable: bool = True,
1190
+ execution_options: dict | None = None,
1191
+ progress_title: str | None = None,
1165
1192
  ) -> MessageExecution:
1166
1193
  """Creates a message execution for the current assistant message synchronously.
1167
1194
 
@@ -1171,6 +1198,9 @@ class ChatService(ChatServiceDeprecated):
1171
1198
  type (MessageExecutionType): The type of execution. Defaults to DEEP_RESEARCH.
1172
1199
  seconds_remaining (int | None): Estimated seconds remaining for completion
1173
1200
  percentage_completed (int | None): Percentage of completion (0-100)
1201
+ is_queueable (bool): Whether the execution is queueable. Defaults to True. If true, then the progress will be updated in the background by the execution pipeline. Set to False if you want to update the progress manually.
1202
+ execution_options (dict | None): Additional execution options. Defaults to None.
1203
+ progress_title (str | None): The title of the progress bar. If not provided, the title of the last message log is taken.
1174
1204
 
1175
1205
  Returns:
1176
1206
  MessageExecution: The created message execution
@@ -1184,6 +1214,9 @@ class ChatService(ChatServiceDeprecated):
1184
1214
  type=type,
1185
1215
  seconds_remaining=seconds_remaining,
1186
1216
  percentage_completed=percentage_completed,
1217
+ is_queueable=is_queueable,
1218
+ execution_options=execution_options,
1219
+ progress_title=progress_title,
1187
1220
  )
1188
1221
 
1189
1222
  async def create_assistant_message_execution_async(
@@ -1192,6 +1225,9 @@ class ChatService(ChatServiceDeprecated):
1192
1225
  type: MessageExecutionType = MessageExecutionType.DEEP_RESEARCH,
1193
1226
  seconds_remaining: int | None = None,
1194
1227
  percentage_completed: int | None = None,
1228
+ is_queueable: bool = True,
1229
+ execution_options: dict | None = None,
1230
+ progress_title: str | None = None,
1195
1231
  ) -> MessageExecution:
1196
1232
  """Creates a message execution for the current assistant message asynchronously.
1197
1233
 
@@ -1201,6 +1237,9 @@ class ChatService(ChatServiceDeprecated):
1201
1237
  type (MessageExecutionType): The type of execution. Defaults to DEEP_RESEARCH.
1202
1238
  seconds_remaining (int | None): Estimated seconds remaining for completion
1203
1239
  percentage_completed (int | None): Percentage of completion (0-100)
1240
+ is_queueable (bool): Whether the execution is queueable. Defaults to True. If true, then the progress will be updated in the background by the execution pipeline. Set to False if you want to update the progress manually.
1241
+ execution_options (dict | None): Additional execution options. Defaults to None.
1242
+ progress_title (str | None): The title of the progress bar. If not provided, the title of the last message log is taken.
1204
1243
 
1205
1244
  Returns:
1206
1245
  MessageExecution: The created message execution
@@ -1214,6 +1253,9 @@ class ChatService(ChatServiceDeprecated):
1214
1253
  type=type,
1215
1254
  seconds_remaining=seconds_remaining,
1216
1255
  percentage_completed=percentage_completed,
1256
+ is_queueable=is_queueable,
1257
+ execution_options=execution_options,
1258
+ progress_title=progress_title,
1217
1259
  )
1218
1260
 
1219
1261
  def get_assistant_message_execution(self) -> MessageExecution:
File without changes