unique_toolkit 2026.30.0__tar.gz → 2026.30.0.dev0__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 (427) hide show
  1. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/PKG-INFO +2 -3
  2. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/pyproject.toml +2 -3
  3. unique_toolkit-2026.30.0.dev0/unique_toolkit/agentic/debug_info_manager/debug_info_manager.py +92 -0
  4. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/evaluation/context_relevancy/service.py +11 -81
  5. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/evaluation/evaluation_manager.py +0 -17
  6. unique_toolkit-2026.30.0.dev0/unique_toolkit/agentic/evaluation/exception.py +5 -0
  7. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/evaluation/hallucination/utils.py +4 -36
  8. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/evaluation/schemas.py +0 -2
  9. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/evaluation/tests/test_context_relevancy_service.py +0 -71
  10. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/history_manager/history_construction_with_contents.py +47 -33
  11. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/history_manager/history_manager.py +1 -5
  12. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/history_manager/loop_token_reducer.py +29 -102
  13. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/loop_runner/__init__.py +0 -2
  14. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/loop_runner/_iteration_handler_utils.py +0 -2
  15. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/loop_runner/_responses_iteration_handler_utils.py +1 -5
  16. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/loop_runner/base.py +1 -15
  17. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/loop_runner/middleware/planning/planning.py +0 -32
  18. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/postprocessor/postprocessor_manager.py +5 -37
  19. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/tools/a2a/evaluation/evaluator.py +6 -41
  20. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/tools/config.py +0 -36
  21. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/tools/mcp/tool_wrapper.py +7 -8
  22. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/tools/openai_builtin/base.py +10 -0
  23. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/__init__.py +3 -13
  24. {unique_toolkit-2026.30.0/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/tool → unique_toolkit-2026.30.0.dev0/unique_toolkit/agentic/tools/openai_builtin/code_interpreter}/config.py +41 -14
  25. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/postprocessors/__init__.py +0 -2
  26. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/postprocessors/generated_files.py +2 -79
  27. unique_toolkit-2026.30.0.dev0/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/service.py +449 -0
  28. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/tools/openai_builtin/manager.py +29 -43
  29. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/tools/schemas.py +0 -5
  30. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/tools/tool_manager.py +8 -71
  31. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic_table/__init__.py +1 -19
  32. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic_table/schemas.py +0 -51
  33. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic_table/service.py +0 -312
  34. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/app/__init__.py +0 -3
  35. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/app/init_logging.py +1 -3
  36. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/app/schemas.py +0 -43
  37. unique_toolkit-2026.30.0.dev0/unique_toolkit/chat/__init__.py +20 -0
  38. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/chat/cancellation.py +0 -10
  39. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/chat/functions.py +0 -12
  40. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/content/smart_rules.py +1 -8
  41. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/experimental/components/content_tree/service.py +14 -51
  42. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/chat_completions/complete_with_references.py +0 -16
  43. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/chat_completions/text_event_handler.py +5 -1
  44. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/responses/code_interpreter_event_handler.py +31 -55
  45. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/responses/completed_event_handler.py +5 -1
  46. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/subscribers/message_persister.py +7 -13
  47. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/language_model/__init__.py +0 -4
  48. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/language_model/functions.py +0 -8
  49. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/language_model/infos.py +1 -113
  50. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/language_model/schemas.py +2 -151
  51. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/language_model/settings.py +0 -1
  52. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/services/chat_service.py +4 -24
  53. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/services/knowledge_base.py +8 -8
  54. unique_toolkit-2026.30.0/unique_toolkit/agentic/debug_info_manager/debug_info_manager.py +0 -245
  55. unique_toolkit-2026.30.0/unique_toolkit/agentic/evaluation/exception.py +0 -23
  56. unique_toolkit-2026.30.0/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/activator/__init__.py +0 -11
  57. unique_toolkit-2026.30.0/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/activator/config.py +0 -23
  58. unique_toolkit-2026.30.0/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/activator/service.py +0 -110
  59. unique_toolkit-2026.30.0/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/builder/__init__.py +0 -5
  60. unique_toolkit-2026.30.0/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/builder/_container.py +0 -50
  61. unique_toolkit-2026.30.0/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/builder/_files.py +0 -202
  62. unique_toolkit-2026.30.0/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/builder/_memory.py +0 -35
  63. unique_toolkit-2026.30.0/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/builder/builder.py +0 -182
  64. unique_toolkit-2026.30.0/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/config.py +0 -67
  65. unique_toolkit-2026.30.0/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/tool/__init__.py +0 -11
  66. unique_toolkit-2026.30.0/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/tool/service.py +0 -111
  67. unique_toolkit-2026.30.0/unique_toolkit/chat/__init__.py +0 -37
  68. unique_toolkit-2026.30.0/unique_toolkit/language_model/invocation_stats.py +0 -70
  69. unique_toolkit-2026.30.0/unique_toolkit/smart_rules/__init__.py +0 -0
  70. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/README.md +0 -0
  71. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/__init__.py +0 -0
  72. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/_common/__init__.py +0 -0
  73. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/_common/_base_service.py +0 -0
  74. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/_common/_time_utils.py +0 -0
  75. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/_common/api_calling/human_verification_manager.py +0 -0
  76. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/_common/base_model_type_attribute.py +0 -0
  77. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/_common/chunk_relevancy_sorter/config.py +0 -0
  78. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/_common/chunk_relevancy_sorter/exception.py +0 -0
  79. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/_common/chunk_relevancy_sorter/schemas.py +0 -0
  80. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/_common/chunk_relevancy_sorter/service.py +0 -0
  81. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/_common/chunk_relevancy_sorter/tests/test_service.py +0 -0
  82. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/_common/config_checker/README.md +0 -0
  83. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/_common/config_checker/__init__.py +0 -0
  84. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/_common/config_checker/__main__.py +0 -0
  85. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/_common/config_checker/cli.py +0 -0
  86. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/_common/config_checker/differ.py +0 -0
  87. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/_common/config_checker/exporter.py +0 -0
  88. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/_common/config_checker/models.py +0 -0
  89. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/_common/config_checker/registry.py +0 -0
  90. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/_common/config_checker/validator.py +0 -0
  91. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/_common/default_language_model.py +0 -0
  92. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/_common/docx_generator/__init__.py +0 -0
  93. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/_common/docx_generator/config.py +0 -0
  94. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/_common/docx_generator/pandoc_converter.py +0 -0
  95. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/_common/docx_generator/schemas.py +0 -0
  96. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/_common/docx_generator/service.py +0 -0
  97. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/_common/docx_generator/template/Doc Template.docx +0 -0
  98. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/_common/endpoint_builder.py +0 -0
  99. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/_common/endpoint_requestor.py +0 -0
  100. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/_common/event_bus.py +0 -0
  101. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/_common/exception.py +0 -0
  102. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/_common/execution.py +0 -0
  103. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/_common/experimental/endpoint_builder.py +0 -0
  104. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/_common/experimental/endpoint_requestor.py +0 -0
  105. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/_common/experimental/write_up_agent/README.md +0 -0
  106. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/_common/experimental/write_up_agent/__init__.py +0 -0
  107. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/_common/experimental/write_up_agent/agent.py +0 -0
  108. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/_common/experimental/write_up_agent/config.py +0 -0
  109. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/_common/experimental/write_up_agent/examples/data.csv +0 -0
  110. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/_common/experimental/write_up_agent/examples/example_usage.py +0 -0
  111. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/_common/experimental/write_up_agent/schemas.py +0 -0
  112. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/_common/experimental/write_up_agent/services/__init__.py +0 -0
  113. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/__init__.py +0 -0
  114. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/exceptions.py +0 -0
  115. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/service.py +0 -0
  116. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/utils.py +0 -0
  117. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/__init__.py +0 -0
  118. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/config.py +0 -0
  119. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/exceptions.py +0 -0
  120. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/prompts/config.py +0 -0
  121. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/prompts/system_prompt.j2 +0 -0
  122. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/prompts/user_prompt.j2 +0 -0
  123. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/service.py +0 -0
  124. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/__init__.py +0 -0
  125. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/default_template.j2 +0 -0
  126. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/exceptions.py +0 -0
  127. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/service.py +0 -0
  128. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/utils.py +0 -0
  129. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/_common/experimental/write_up_agent/utils.py +0 -0
  130. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/_common/feature_flags/schema.py +0 -0
  131. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/_common/metadata_filter_scope.py +0 -0
  132. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/_common/pydantic/rjsf_tags.py +0 -0
  133. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/_common/pydantic_helpers.py +0 -0
  134. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/_common/referencing.py +0 -0
  135. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/_common/string_utilities.py +0 -0
  136. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/_common/tests/test_referencing.py +0 -0
  137. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/_common/tests/test_string_utilities.py +0 -0
  138. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/_common/token/__init__.py +0 -0
  139. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/_common/token/image_token_counting.py +0 -0
  140. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/_common/token/token_counting.py +0 -0
  141. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/_common/token/tokenizers/deepseek/tokenizer.json +0 -0
  142. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/_common/token/tokenizers/qwen/tokenizer.json +0 -0
  143. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/_common/utils/__init__.py +0 -0
  144. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/_common/utils/files.py +0 -0
  145. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/_common/utils/image/encode.py +0 -0
  146. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/_common/utils/jinja/helpers.py +0 -0
  147. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/_common/utils/jinja/render.py +0 -0
  148. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/_common/utils/jinja/schema.py +0 -0
  149. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/_common/utils/jinja/utils.py +0 -0
  150. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/_common/utils/structured_output/__init__.py +0 -0
  151. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/_common/utils/structured_output/schema.py +0 -0
  152. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/_common/utils/write_configuration.py +0 -0
  153. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/_common/validate_required_values.py +0 -0
  154. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/_common/validators.py +0 -0
  155. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/__init__.py +0 -0
  156. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/debug_info_manager/test/test_debug_info_manager.py +0 -0
  157. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/evaluation/config.py +0 -0
  158. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/evaluation/context_relevancy/prompts/__init__.py +0 -0
  159. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/evaluation/context_relevancy/prompts/system_prompt.j2 +0 -0
  160. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/evaluation/context_relevancy/prompts/user_prompt.j2 +0 -0
  161. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/evaluation/context_relevancy/schema.py +0 -0
  162. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/evaluation/hallucination/constants.py +0 -0
  163. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/evaluation/hallucination/hallucination_evaluation.py +0 -0
  164. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/evaluation/hallucination/prompts/__init__.py +0 -0
  165. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/evaluation/hallucination/prompts/system_prompt.j2 +0 -0
  166. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/evaluation/hallucination/prompts/user_prompt.j2 +0 -0
  167. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/evaluation/hallucination/service.py +0 -0
  168. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/evaluation/output_parser.py +0 -0
  169. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/evaluation/tests/fixtures.py +0 -0
  170. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/evaluation/tests/test_config.py +0 -0
  171. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/evaluation/tests/test_hallucination_constants.py +0 -0
  172. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/evaluation/tests/test_hallucination_external_context.py +0 -0
  173. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/evaluation/tests/test_hallucination_utils.py +0 -0
  174. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/evaluation/tests/test_output_parser.py +0 -0
  175. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/evaluation/tests/test_prompt_loaders.py +0 -0
  176. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/evaluation/utils.py +0 -0
  177. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/feature_flags/__init__.py +0 -0
  178. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/feature_flags/feature_flags.py +0 -0
  179. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/history_manager/settings.py +0 -0
  180. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/history_manager/utils.py +0 -0
  181. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/loop_runner/_responses_stream_handler_utils.py +0 -0
  182. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/loop_runner/_stream_handler_utils.py +0 -0
  183. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/loop_runner/middleware/__init__.py +0 -0
  184. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/loop_runner/middleware/planning/__init__.py +0 -0
  185. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/loop_runner/middleware/planning/schema.py +0 -0
  186. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/loop_runner/runners/__init__.py +0 -0
  187. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/loop_runner/runners/basic.py +0 -0
  188. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/loop_runner/runners/mistral/__init__.py +0 -0
  189. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/loop_runner/runners/mistral/mistral_runner.py +0 -0
  190. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/loop_runner/runners/qwen/__init__.py +0 -0
  191. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/loop_runner/runners/qwen/helpers.py +0 -0
  192. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/loop_runner/runners/qwen/qwen_runner.py +0 -0
  193. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/message_log_manager/__init__.py +0 -0
  194. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/message_log_manager/service.py +0 -0
  195. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/message_log_order.py +0 -0
  196. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/reference_manager/reference_manager.py +0 -0
  197. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/reference_manager/tests/test_external_context.py +0 -0
  198. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/responses_api/__init__.py +0 -0
  199. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/responses_api/postprocessors/code_display.py +0 -0
  200. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/responses_api/postprocessors/generated_files.py +0 -0
  201. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/responses_api/stream_handler.py +0 -0
  202. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/short_term_memory_manager/persistent_short_term_memory_manager.py +0 -0
  203. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/thinking_manager/thinking_manager.py +0 -0
  204. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/tools/__init__.py +0 -0
  205. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/tools/a2a/__init__.py +0 -0
  206. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/tools/a2a/config.py +0 -0
  207. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/tools/a2a/evaluation/__init__.py +0 -0
  208. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/tools/a2a/evaluation/_utils.py +0 -0
  209. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/tools/a2a/evaluation/config.py +0 -0
  210. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/tools/a2a/evaluation/summarization_user_message.j2 +0 -0
  211. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/tools/a2a/manager.py +0 -0
  212. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/tools/a2a/postprocessing/__init__.py +0 -0
  213. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/tools/a2a/postprocessing/_display_utils.py +0 -0
  214. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/tools/a2a/postprocessing/_ref_utils.py +0 -0
  215. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/tools/a2a/postprocessing/config.py +0 -0
  216. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/tools/a2a/postprocessing/display.py +0 -0
  217. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/tools/a2a/postprocessing/references.py +0 -0
  218. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_display.py +0 -0
  219. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_display_utils.py +0 -0
  220. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_ref_utils.py +0 -0
  221. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_references.py +0 -0
  222. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/tools/a2a/prompts.py +0 -0
  223. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/tools/a2a/response_watcher/__init__.py +0 -0
  224. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/tools/a2a/response_watcher/service.py +0 -0
  225. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/tools/a2a/tool/__init__.py +0 -0
  226. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/tools/a2a/tool/_memory.py +0 -0
  227. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/tools/a2a/tool/_schema.py +0 -0
  228. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/tools/a2a/tool/config.py +0 -0
  229. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/tools/a2a/tool/service.py +0 -0
  230. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/tools/a2a/tool/test/test_service_utils.py +0 -0
  231. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/tools/agent_chunks_hanlder.py +0 -0
  232. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/tools/experimental/__init__.py +0 -0
  233. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/tools/experimental/ask_user_tool/__init__.py +0 -0
  234. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/tools/experimental/ask_user_tool/config.py +0 -0
  235. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/tools/experimental/ask_user_tool/tool.py +0 -0
  236. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/tools/experimental/open_file_tool/__init__.py +0 -0
  237. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/tools/experimental/open_file_tool/config.py +0 -0
  238. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/tools/experimental/open_file_tool/runtime.py +0 -0
  239. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/tools/experimental/open_file_tool/tool.py +0 -0
  240. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/tools/experimental/retrieve_search_scope_tool/__init__.py +0 -0
  241. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/tools/experimental/retrieve_search_scope_tool/config.py +0 -0
  242. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/tools/experimental/retrieve_search_scope_tool/tool.py +0 -0
  243. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/tools/experimental/todo/__init__.py +0 -0
  244. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/tools/experimental/todo/config.py +0 -0
  245. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/tools/experimental/todo/prompts/__init__.py +0 -0
  246. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/tools/experimental/todo/prompts/execution_reminder.j2 +0 -0
  247. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/tools/experimental/todo/prompts/system_prompt.j2 +0 -0
  248. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/tools/experimental/todo/prompts/tool_description.j2 +0 -0
  249. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/tools/experimental/todo/prompts/verification_nudge.j2 +0 -0
  250. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/tools/experimental/todo/schemas.py +0 -0
  251. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/tools/experimental/todo/service.py +0 -0
  252. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/tools/factory.py +0 -0
  253. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/tools/mcp/__init__.py +0 -0
  254. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/tools/mcp/manager.py +0 -0
  255. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/tools/mcp/models.py +0 -0
  256. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/tools/names.py +0 -0
  257. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/tools/openai_builtin/__init__.py +0 -0
  258. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/postprocessors/artifacts.py +0 -0
  259. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/postprocessors/code_display.py +0 -0
  260. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/schemas.py +0 -0
  261. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/tools/run_context.py +0 -0
  262. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/tools/test/test_mcp_manager.py +0 -0
  263. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/tools/test/test_tool_progress_reporter.py +0 -0
  264. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/tools/tool.py +0 -0
  265. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/tools/tool_progress_reporter.py +0 -0
  266. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/tools/utils/__init__.py +0 -0
  267. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/tools/utils/source_handling/__init__.py +0 -0
  268. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/tools/utils/source_handling/schema.py +0 -0
  269. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/tools/utils/source_handling/source_formatting.py +0 -0
  270. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic/tools/utils/source_handling/tests/test_source_formatting.py +0 -0
  271. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/agentic_table/synthetic_chat_event.py +0 -0
  272. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/app/chat_event_filter_options_settings.py +0 -0
  273. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/app/dev_util.py +0 -0
  274. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/app/fast_api_factory.py +0 -0
  275. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/app/feature_flags.py +0 -0
  276. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/app/find_env_file.py +0 -0
  277. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/app/init_sdk.py +0 -0
  278. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/app/performance/async_tasks.py +0 -0
  279. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/app/performance/async_wrapper.py +0 -0
  280. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/app/unique_settings.py +0 -0
  281. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/app/verification.py +0 -0
  282. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/app/webhook.py +0 -0
  283. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/chat/constants.py +0 -0
  284. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/chat/deprecated/service.py +0 -0
  285. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/chat/rendering.py +0 -0
  286. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/chat/responses_api.py +0 -0
  287. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/chat/schemas.py +0 -0
  288. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/chat/service.py +0 -0
  289. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/chat/state.py +0 -0
  290. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/chat/utils.py +0 -0
  291. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/content/__init__.py +0 -0
  292. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/content/constants.py +0 -0
  293. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/content/functions.py +0 -0
  294. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/content/schemas.py +0 -0
  295. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/content/service.py +0 -0
  296. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/content/utils.py +0 -0
  297. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/data_extraction/README.md +0 -0
  298. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/data_extraction/__init__.py +0 -0
  299. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/data_extraction/augmented/__init__.py +0 -0
  300. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/data_extraction/augmented/service.py +0 -0
  301. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/data_extraction/base.py +0 -0
  302. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/data_extraction/basic/__init__.py +0 -0
  303. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/data_extraction/basic/config.py +0 -0
  304. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/data_extraction/basic/prompt.py +0 -0
  305. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/data_extraction/basic/service.py +0 -0
  306. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/elicitation/__init__.py +0 -0
  307. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/elicitation/constants.py +0 -0
  308. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/elicitation/exceptions.py +0 -0
  309. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/elicitation/functions.py +0 -0
  310. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/elicitation/schemas.py +0 -0
  311. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/elicitation/service.py +0 -0
  312. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/embedding/__init__.py +0 -0
  313. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/embedding/constants.py +0 -0
  314. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/embedding/functions.py +0 -0
  315. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/embedding/schemas.py +0 -0
  316. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/embedding/service.py +0 -0
  317. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/embedding/utils.py +0 -0
  318. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/experimental/README.md +0 -0
  319. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/experimental/__init__.py +0 -0
  320. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/experimental/_internal/__init__.py +0 -0
  321. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/experimental/_internal/streaming/__init__.py +0 -0
  322. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/experimental/_internal/streaming/common.py +0 -0
  323. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/experimental/_internal/streaming/pattern_replacer.py +0 -0
  324. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/experimental/components/__init__.py +0 -0
  325. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/experimental/components/_base.py +0 -0
  326. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/experimental/components/content_tree/__init__.py +0 -0
  327. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/experimental/components/content_tree/functions.py +0 -0
  328. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/experimental/components/content_tree/schemas.py +0 -0
  329. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/experimental/components/internal_search/__init__.py +0 -0
  330. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/experimental/components/internal_search/base/__init__.py +0 -0
  331. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/experimental/components/internal_search/base/config.py +0 -0
  332. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/experimental/components/internal_search/base/schemas.py +0 -0
  333. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/experimental/components/internal_search/base/service.py +0 -0
  334. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/experimental/components/internal_search/base/utils.py +0 -0
  335. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/experimental/components/internal_search/chat/__init__.py +0 -0
  336. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/experimental/components/internal_search/chat/config.py +0 -0
  337. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/experimental/components/internal_search/chat/schemas.py +0 -0
  338. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/experimental/components/internal_search/chat/service.py +0 -0
  339. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/experimental/components/internal_search/knowledge_base/__init__.py +0 -0
  340. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/experimental/components/internal_search/knowledge_base/config.py +0 -0
  341. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/experimental/components/internal_search/knowledge_base/schemas.py +0 -0
  342. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/experimental/components/internal_search/knowledge_base/service.py +0 -0
  343. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/experimental/components/internal_search/post_processing/__init__.py +0 -0
  344. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/experimental/components/internal_search/post_processing/config.py +0 -0
  345. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/experimental/components/internal_search/post_processing/service.py +0 -0
  346. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/experimental/content_tree/__init__.py +0 -0
  347. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/experimental/identity/__init__.py +0 -0
  348. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/experimental/integrations/__init__.py +0 -0
  349. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/experimental/integrations/openai/__init__.py +0 -0
  350. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/experimental/integrations/openai/streaming/__init__.py +0 -0
  351. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/__init__.py +0 -0
  352. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/_async_bridge.py +0 -0
  353. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/chat_completions/__init__.py +0 -0
  354. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/chat_completions/stream_event_router.py +0 -0
  355. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/chat_completions/tool_call_event_handler.py +0 -0
  356. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/events.py +0 -0
  357. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/protocols/__init__.py +0 -0
  358. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/protocols/chat_completions.py +0 -0
  359. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/protocols/responses.py +0 -0
  360. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/responses/__init__.py +0 -0
  361. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/responses/complete_with_references.py +0 -0
  362. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/responses/stream_event_router.py +0 -0
  363. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/responses/text_delta_event_handler.py +0 -0
  364. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/responses/tool_call_event_handler.py +0 -0
  365. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/subscribers/__init__.py +0 -0
  366. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/subscribers/progress_log_persister.py +0 -0
  367. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/experimental/resources/__init__.py +0 -0
  368. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/experimental/resources/content_folder/__init__.py +0 -0
  369. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/experimental/resources/content_folder/functions.py +0 -0
  370. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/experimental/resources/content_folder/schemas.py +0 -0
  371. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/experimental/resources/content_folder/service.py +0 -0
  372. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/experimental/resources/facades/__init__.py +0 -0
  373. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/experimental/resources/facades/identity/__init__.py +0 -0
  374. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/experimental/resources/facades/identity/service.py +0 -0
  375. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/experimental/resources/feature_flags/README.md +0 -0
  376. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/experimental/resources/feature_flags/__init__.py +0 -0
  377. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/experimental/resources/feature_flags/_graphql_client.py +0 -0
  378. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/experimental/resources/feature_flags/_ttl_cache.py +0 -0
  379. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/experimental/resources/feature_flags/client.py +0 -0
  380. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/experimental/resources/feature_flags/schemas.py +0 -0
  381. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/experimental/resources/feature_flags/settings.py +0 -0
  382. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/experimental/resources/group/__init__.py +0 -0
  383. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/experimental/resources/group/functions.py +0 -0
  384. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/experimental/resources/group/schemas.py +0 -0
  385. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/experimental/resources/group/service.py +0 -0
  386. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/experimental/resources/scheduled_task/__init__.py +0 -0
  387. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/experimental/resources/scheduled_task/cron.py +0 -0
  388. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/experimental/resources/scheduled_task/functions.py +0 -0
  389. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/experimental/resources/scheduled_task/schemas.py +0 -0
  390. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/experimental/resources/scheduled_task/service.py +0 -0
  391. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/experimental/resources/user/__init__.py +0 -0
  392. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/experimental/resources/user/functions.py +0 -0
  393. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/experimental/resources/user/schemas.py +0 -0
  394. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/experimental/resources/user/service.py +0 -0
  395. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/experimental/testing/__init__.py +0 -0
  396. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/framework_utilities/__init__.py +0 -0
  397. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/framework_utilities/langchain/__init__.py +0 -0
  398. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/framework_utilities/langchain/client.py +0 -0
  399. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/framework_utilities/langchain/history.py +0 -0
  400. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/framework_utilities/openai/__init__.py +0 -0
  401. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/framework_utilities/openai/client.py +0 -0
  402. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/framework_utilities/openai/message_builder.py +0 -0
  403. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/framework_utilities/utils.py +0 -0
  404. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/language_model/_responses_api_utils.py +0 -0
  405. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/language_model/builder.py +0 -0
  406. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/language_model/constants.py +0 -0
  407. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/language_model/default_language_model.py +0 -0
  408. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/language_model/prompt.py +0 -0
  409. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/language_model/reference.py +0 -0
  410. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/language_model/service.py +0 -0
  411. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/language_model/stream_transform.py +0 -0
  412. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/language_model/utils.py +0 -0
  413. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/monitoring/__init__.py +0 -0
  414. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/monitoring/gunicorn.py +0 -0
  415. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/monitoring/middleware.py +0 -0
  416. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/monitoring/registry.py +0 -0
  417. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/protocols/support.py +0 -0
  418. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/services/__init__.py +0 -0
  419. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/services/factory.py +0 -0
  420. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/short_term_memory/__init__.py +0 -0
  421. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/short_term_memory/constants.py +0 -0
  422. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/short_term_memory/functions.py +0 -0
  423. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/short_term_memory/schemas.py +0 -0
  424. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/short_term_memory/service.py +0 -0
  425. {unique_toolkit-2026.30.0/unique_toolkit/chat/deprecated → unique_toolkit-2026.30.0.dev0/unique_toolkit/smart_rules}/__init__.py +0 -0
  426. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/smart_rules/compile.py +0 -0
  427. {unique_toolkit-2026.30.0 → unique_toolkit-2026.30.0.dev0}/unique_toolkit/test_utilities/events.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: unique-toolkit
3
- Version: 2026.30.0
3
+ Version: 2026.30.0.dev0
4
4
  Summary:
5
5
  Author: Cedric Klinkert, Martin Fadler, Sadique Sheik, Fabian Schläpfer, Pascal Hauri, Ejiroghene Oki-Peter, Rami Azouz, Ricardo Visini, Sanzio Monti
6
6
  Author-email: Cedric Klinkert <cedric.klinkert@unique.ch>, Martin Fadler <martin.fadler@unique.ch>, Sadique Sheik <sadique@unique.ch>, Fabian Schläpfer <fabian@unique.ch>, Pascal Hauri <pascal@unique.ch>, Ejiroghene Oki-Peter <oki-peter.ejiroghene@unique.ai>, Rami Azouz <rami.ext@unique.ch>, Ricardo Visini <ricardo.visini@unique.ch>, Sanzio Monti <sanzio.monti@unique.ai>
@@ -16,7 +16,7 @@ Requires-Dist: sseclient>=0.0.27,<0.0.28
16
16
  Requires-Dist: openai>=1.105.0,<3
17
17
  Requires-Dist: platformdirs>=4.0.0,<5
18
18
  Requires-Dist: pillow>=12.1.1
19
- Requires-Dist: unique-sdk>=2026.30.0
19
+ Requires-Dist: unique-sdk>=2026.30.0.dev0,<2026.30.0rc0
20
20
  Requires-Dist: jambo>=0.1.2,<0.2
21
21
  Requires-Dist: jinja2>=3.1.6,<4
22
22
  Requires-Dist: docxtpl>=0.20.1,<0.21
@@ -32,7 +32,6 @@ Requires-Dist: pypandoc>=1.16.2,<2
32
32
  Requires-Dist: tenacity>=9.1.4
33
33
  Requires-Dist: pydantic-core>=2.41.5
34
34
  Requires-Dist: cachetools>=5.0,<6
35
- Requires-Dist: rapidfuzz>=3.0,<4
36
35
  Requires-Dist: fastapi>=0.121.0,<0.122 ; extra == 'fastapi'
37
36
  Requires-Dist: starlette>=0.49.1 ; extra == 'fastapi'
38
37
  Requires-Dist: uvicorn>=0.37.0,<0.38 ; extra == 'fastapi'
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "unique_toolkit"
3
- version = "2026.30.0"
3
+ version = "2026.30.0.dev0"
4
4
  description = ""
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.12"
@@ -28,7 +28,7 @@ dependencies = [
28
28
  "openai>=1.105.0,<3",
29
29
  "platformdirs>=4.0.0,<5",
30
30
  "pillow>=12.1.1",
31
- "unique-sdk>=2026.30.0",
31
+ "unique-sdk>=2026.30.0.dev0,<2026.30.0rc0",
32
32
  "jambo>=0.1.2,<0.2",
33
33
  "jinja2>=3.1.6,<4",
34
34
  "docxtpl>=0.20.1,<0.21",
@@ -44,7 +44,6 @@ dependencies = [
44
44
  "tenacity>=9.1.4",
45
45
  "pydantic-core>=2.41.5",
46
46
  "cachetools>=5.0,<6",
47
- "rapidfuzz>=3.0,<4",
48
47
  ]
49
48
 
50
49
  [project.optional-dependencies]
@@ -0,0 +1,92 @@
1
+ from typing import Any
2
+
3
+ from unique_toolkit.agentic.tools.openai_builtin import OpenAICodeInterpreterTool
4
+ from unique_toolkit.agentic.tools.openai_builtin.base import OpenAIBuiltInToolName
5
+ from unique_toolkit.agentic.tools.schemas import ToolCallResponse
6
+ from unique_toolkit.agentic.tools.tool_manager import ToolManager
7
+ from unique_toolkit.language_model.schemas import (
8
+ LanguageModelStreamResponse,
9
+ ResponsesLanguageModelStreamResponse,
10
+ )
11
+
12
+
13
+ class DebugInfoManager:
14
+ def __init__(self):
15
+ self.debug_info = {"tools": []}
16
+
17
+ def extract_tool_debug_info(
18
+ self,
19
+ tool_call_responses: list[ToolCallResponse],
20
+ loop_iteration_index: int | None = None,
21
+ ) -> None:
22
+ for tool_call_response in tool_call_responses:
23
+ debug_info = (
24
+ tool_call_response.debug_info.copy()
25
+ if tool_call_response.debug_info
26
+ else {}
27
+ )
28
+ tool_info: dict[str, Any] = {
29
+ "name": tool_call_response.name,
30
+ "info": debug_info,
31
+ }
32
+ if debug_info.get("mcp_server"):
33
+ tool_info["mcp_server"] = debug_info["mcp_server"]
34
+ if loop_iteration_index is not None:
35
+ tool_info["info"]["loop_iteration"] = loop_iteration_index
36
+ self.debug_info["tools"].append(tool_info)
37
+
38
+ def extract_builtin_tool_debug_info(
39
+ self,
40
+ stream_response: LanguageModelStreamResponse,
41
+ tool_manager: ToolManager,
42
+ loop_iteration_index: int | None = None,
43
+ ) -> None:
44
+ self.debug_info["tools"].extend(
45
+ _extract_tool_calls_from_stream_response(
46
+ stream_response, tool_manager, loop_iteration_index
47
+ )
48
+ )
49
+
50
+ def add(self, key: str, value: Any) -> None:
51
+ self.debug_info = self.debug_info | {key: value}
52
+
53
+ def get(self) -> dict[str, Any]:
54
+ return self.debug_info
55
+
56
+
57
+ def _extract_tool_calls_from_stream_response(
58
+ stream_response: LanguageModelStreamResponse,
59
+ tool_manager: ToolManager,
60
+ loop_iteration_index: int | None = None,
61
+ ) -> list[dict[str, Any]]:
62
+ if not isinstance(stream_response, ResponsesLanguageModelStreamResponse):
63
+ return []
64
+
65
+ seen = set()
66
+ tool_infos = []
67
+
68
+ for code_interpreter_call in stream_response.code_interpreter_calls:
69
+ if code_interpreter_call.id in seen:
70
+ continue
71
+
72
+ seen.add(code_interpreter_call.id)
73
+ tool_name = OpenAIBuiltInToolName.CODE_INTERPRETER
74
+
75
+ is_exclusive = tool_name in tool_manager.get_exclusive_tools()
76
+ is_forced = tool_name in tool_manager.get_tool_choices()
77
+
78
+ debug_info = OpenAICodeInterpreterTool.get_debug_info(code_interpreter_call)
79
+
80
+ if loop_iteration_index is not None:
81
+ debug_info["loop_iteration"] = loop_iteration_index
82
+ debug_info["is_exclusive"] = is_exclusive
83
+ debug_info["is_forced"] = is_forced
84
+
85
+ tool_infos.append(
86
+ {
87
+ "name": tool_name,
88
+ "info": debug_info,
89
+ }
90
+ )
91
+
92
+ return tool_infos
@@ -32,9 +32,6 @@ from unique_toolkit.language_model.infos import (
32
32
  LanguageModelInfo,
33
33
  ModelCapabilities,
34
34
  )
35
- from unique_toolkit.language_model.invocation_stats import (
36
- LanguageModelInvocationStats,
37
- )
38
35
  from unique_toolkit.language_model.schemas import (
39
36
  LanguageModelMessages,
40
37
  LanguageModelSystemMessage,
@@ -148,10 +145,6 @@ class ContextRelevancyEvaluator:
148
145
  # Handle regular output
149
146
  return await self._handle_regular_output(input, config)
150
147
 
151
- except EvaluatorException:
152
- # Already carries whatever invocation_stats were captured before
153
- # the failure -- don't re-wrap it and lose them.
154
- raise
155
148
  except Exception as e:
156
149
  error_message = (
157
150
  "Unknown error occurred during context relevancy metric analysis"
@@ -179,49 +172,21 @@ class ContextRelevancyEvaluator:
179
172
  other_options=config.additional_llm_options,
180
173
  )
181
174
 
182
- # Captured as soon as the (billable) LLM call returns, so a validation
183
- # failure below can still report it instead of losing it.
184
- invocation_stats = (
185
- [
186
- LanguageModelInvocationStats.from_usage(
187
- config.language_model.name,
188
- result.usage,
189
- source="context_relevancy",
190
- )
191
- ]
192
- if result.usage is not None
193
- else []
194
- )
195
-
196
175
  try:
197
176
  result_content = EvaluationSchemaStructuredOutput.model_validate(
198
177
  result.choices[0].message.parsed
199
178
  )
200
- evaluation_result = parse_eval_metric_result_structured_output(
201
- result_content, EvaluationMetricName.CONTEXT_RELEVANCY
202
- )
203
179
  except ValidationError as e:
204
180
  error_message = "Error occurred during structured output validation of the context relevancy evaluation."
205
181
  raise EvaluatorException(
206
182
  error_message=error_message,
207
183
  user_message=error_message,
208
184
  exception=e,
209
- invocation_stats=invocation_stats,
210
- )
211
- except Exception as e:
212
- # Catches anything else reading the response (e.g. an empty
213
- # `choices` list) -- must still carry invocation_stats, not just
214
- # the validation-specific failure above.
215
- error_message = "Error occurred while reading the structured output response for context relevancy evaluation."
216
- raise EvaluatorException(
217
- error_message=f"{error_message}: {e}",
218
- user_message=error_message,
219
- exception=e,
220
- invocation_stats=invocation_stats,
221
185
  )
222
186
 
223
- evaluation_result.invocation_stats = invocation_stats
224
- return evaluation_result
187
+ return parse_eval_metric_result_structured_output(
188
+ result_content, EvaluationMetricName.CONTEXT_RELEVANCY
189
+ )
225
190
 
226
191
  async def _handle_regular_output(
227
192
  self,
@@ -236,52 +201,17 @@ class ContextRelevancyEvaluator:
236
201
  other_options=config.additional_llm_options,
237
202
  )
238
203
 
239
- # Captured as soon as the (billable) LLM call returns, so a failure
240
- # below can still report it instead of losing it.
241
- invocation_stats = (
242
- [
243
- LanguageModelInvocationStats.from_usage(
244
- config.language_model.name,
245
- result.usage,
246
- source="context_relevancy",
247
- )
248
- ]
249
- if result.usage is not None
250
- else []
251
- )
252
-
253
- try:
254
- result_content = result.choices[0].message.content
255
- if not result_content or not isinstance(result_content, str):
256
- error_message = "Context relevancy evaluation did not return a result."
257
- raise EvaluatorException(
258
- error_message=error_message,
259
- user_message=error_message,
260
- invocation_stats=invocation_stats,
261
- )
262
- evaluation_result = parse_eval_metric_result(
263
- result_content, EvaluationMetricName.CONTEXT_RELEVANCY
264
- )
265
- except EvaluatorException as e:
266
- # Covers both the raise above and parse_eval_metric_result's own
267
- # EvaluatorException (which has no invocation_stats, since it has
268
- # no usage context) -- attach ours if it didn't already carry
269
- # stats, instead of letting it propagate stats-less.
270
- if not e.invocation_stats:
271
- e.invocation_stats = invocation_stats
272
- raise
273
- except Exception as e:
274
- # Catches anything else reading the response (e.g. an empty
275
- # `choices` list).
276
- error_message = "Error occurred while reading the context relevancy evaluation response."
204
+ result_content = result.choices[0].message.content
205
+ if not result_content or not isinstance(result_content, str):
206
+ error_message = "Context relevancy evaluation did not return a result."
277
207
  raise EvaluatorException(
278
- error_message=f"{error_message}: {e}",
208
+ error_message=error_message,
279
209
  user_message=error_message,
280
- exception=e,
281
- invocation_stats=invocation_stats,
282
210
  )
283
- evaluation_result.invocation_stats = invocation_stats
284
- return evaluation_result
211
+
212
+ return parse_eval_metric_result(
213
+ result_content, EvaluationMetricName.CONTEXT_RELEVANCY
214
+ )
285
215
 
286
216
  def _compose_msgs(
287
217
  self,
@@ -7,7 +7,6 @@ from unique_toolkit._common.execution import (
7
7
  Result,
8
8
  SafeTaskExecutor,
9
9
  )
10
- from unique_toolkit.agentic.evaluation.exception import EvaluatorException
11
10
  from unique_toolkit.agentic.evaluation.schemas import (
12
11
  EvaluationAssessmentMessage,
13
12
  EvaluationMetricName,
@@ -18,9 +17,6 @@ from unique_toolkit.chat.schemas import (
18
17
  ChatMessageAssessmentType,
19
18
  )
20
19
  from unique_toolkit.chat.service import ChatService
21
- from unique_toolkit.language_model.invocation_stats import (
22
- LanguageModelInvocationStats,
23
- )
24
20
  from unique_toolkit.language_model.schemas import (
25
21
  LanguageModelStreamResponse,
26
22
  )
@@ -92,7 +88,6 @@ class EvaluationManager:
92
88
  self._evaluations: dict[EvaluationMetricName, Evaluation] = {}
93
89
  self._evaluation_passed: bool = True
94
90
  self._execution_times: dict[str, float] = {}
95
- self._invocation_stats: list[LanguageModelInvocationStats] = []
96
91
 
97
92
  def add_evaluation(self, evaluation: Evaluation):
98
93
  self._evaluations[evaluation.get_name()] = evaluation
@@ -107,7 +102,6 @@ class EvaluationManager:
107
102
  assistant_message_id: str,
108
103
  ) -> list[EvaluationMetricResult]:
109
104
  self._execution_times = {}
110
- self._invocation_stats = []
111
105
 
112
106
  task_executor = SafeTaskExecutor(
113
107
  logger=self._logger,
@@ -131,7 +125,6 @@ class EvaluationManager:
131
125
  )
132
126
  if not unpacked_evaluation_result.is_positive:
133
127
  self._evaluation_passed = False
134
- self._invocation_stats.extend(unpacked_evaluation_result.invocation_stats)
135
128
  evaluation_results_unpacked.append(unpacked_evaluation_result)
136
129
 
137
130
  for evaluation_name, evaluation_result in zip(
@@ -148,10 +141,6 @@ class EvaluationManager:
148
141
  def get_execution_times(self) -> dict[str, float]:
149
142
  return self._execution_times.copy()
150
143
 
151
- def get_invocation_stats(self) -> list[LanguageModelInvocationStats]:
152
- """Per-LLM-call stats from every evaluation that made its own LLM call."""
153
- return list(self._invocation_stats)
154
-
155
144
  async def execute_evaluation_call(
156
145
  self,
157
146
  evaluation_name: EvaluationMetricName,
@@ -189,18 +178,12 @@ class EvaluationManager:
189
178
  evaluation_name: EvaluationMetricName,
190
179
  ) -> EvaluationMetricResult:
191
180
  if not result.success:
192
- invocation_stats = (
193
- result.exception.invocation_stats
194
- if isinstance(result.exception, EvaluatorException)
195
- else []
196
- )
197
181
  return EvaluationMetricResult(
198
182
  name=evaluation_name,
199
183
  is_positive=True,
200
184
  value="RED",
201
185
  reason=str(result.exception),
202
186
  error=Exception("Evaluation result is not successful"),
203
- invocation_stats=invocation_stats,
204
187
  )
205
188
  return result.unpack()
206
189
 
@@ -0,0 +1,5 @@
1
+ from unique_toolkit._common.exception import CommonException
2
+
3
+
4
+ class EvaluatorException(CommonException):
5
+ pass
@@ -18,9 +18,6 @@ from unique_toolkit.content import ContentReference
18
18
  from unique_toolkit.content.schemas import ContentChunk
19
19
  from unique_toolkit.language_model.builder import MessagesBuilder
20
20
  from unique_toolkit.language_model.infos import ModelCapabilities
21
- from unique_toolkit.language_model.invocation_stats import (
22
- LanguageModelInvocationStats,
23
- )
24
21
  from unique_toolkit.language_model.schemas import (
25
22
  LanguageModelMessages,
26
23
  LanguageModelStreamResponse,
@@ -76,58 +73,29 @@ async def check_hallucination(
76
73
 
77
74
  try:
78
75
  msgs = _get_msgs(input, config)
76
+
79
77
  result = await LanguageModelService.complete_async_util(
80
78
  company_id=company_id, user_id=user_id, messages=msgs, model_name=model_name
81
79
  )
82
- except Exception as e:
83
- error_message = "Error occurred during hallucination metric analysis"
84
- raise EvaluatorException(
85
- error_message=f"{error_message}: {e}",
86
- user_message=error_message,
87
- exception=e,
88
- )
89
-
90
- # Captured as soon as the (billable) LLM call returns, so a failure below
91
- # (empty content, parsing) can still report it instead of losing it.
92
- invocation_stats = (
93
- [
94
- LanguageModelInvocationStats.from_usage(
95
- model_name, result.usage, source="hallucination"
96
- )
97
- ]
98
- if result.usage is not None
99
- else []
100
- )
101
-
102
- try:
103
80
  result_content = result.choices[0].message.content
104
81
  if not result_content or not isinstance(result_content, str):
105
82
  error_message = "Hallucination evaluation did not return a text result."
106
83
  raise EvaluatorException(
107
84
  error_message=error_message,
108
85
  user_message=error_message,
109
- invocation_stats=invocation_stats,
110
86
  )
111
- eval_result = parse_eval_metric_result(
87
+ result = parse_eval_metric_result(
112
88
  result_content,
113
89
  EvaluationMetricName.HALLUCINATION,
114
90
  )
115
- eval_result.invocation_stats = invocation_stats
116
- return eval_result
117
- except EvaluatorException as e:
118
- # parse_eval_metric_result raises its own EvaluatorException (with no
119
- # invocation_stats, since it has no usage context) -- attach ours if
120
- # it didn't already carry stats, instead of re-raising it stats-less.
121
- if not e.invocation_stats:
122
- e.invocation_stats = invocation_stats
123
- raise
91
+
92
+ return result
124
93
  except Exception as e:
125
94
  error_message = "Error occurred during hallucination metric analysis"
126
95
  raise EvaluatorException(
127
96
  error_message=f"{error_message}: {e}",
128
97
  user_message=error_message,
129
98
  exception=e,
130
- invocation_stats=invocation_stats,
131
99
  )
132
100
 
133
101
 
@@ -10,7 +10,6 @@ from unique_toolkit.chat.schemas import (
10
10
  ChatMessageAssessmentStatus,
11
11
  ChatMessageAssessmentType,
12
12
  )
13
- from unique_toolkit.language_model.invocation_stats import LanguageModelInvocationStats
14
13
 
15
14
 
16
15
  class EvaluationMetricName(StrEnum):
@@ -103,7 +102,6 @@ class EvaluationMetricResult(BaseModel):
103
102
  user_info: Optional[str] = None
104
103
  error: Exception | None = None
105
104
  fact_list: list[str] = Field(default_factory=list[str])
106
- invocation_stats: list[LanguageModelInvocationStats] = Field(default_factory=list)
107
105
 
108
106
 
109
107
  class EvaluationAssessmentMessage(BaseModel):
@@ -16,7 +16,6 @@ from unique_toolkit.agentic.evaluation.schemas import (
16
16
  from unique_toolkit.language_model.schemas import (
17
17
  LanguageModelAssistantMessage,
18
18
  LanguageModelCompletionChoice,
19
- LanguageModelTokenUsage,
20
19
  )
21
20
  from unique_toolkit.language_model.service import LanguageModelResponse
22
21
 
@@ -272,73 +271,3 @@ async def test_analyze__raises_evaluator_exception__with_unknown_error(
272
271
  assert "Unknown error occurred during context relevancy metric analysis" in str(
273
272
  exc_info.value
274
273
  )
275
-
276
-
277
- @pytest.mark.ai
278
- @pytest.mark.asyncio
279
- async def test_analyze__preserves_invocation_stats__on_regular_output_read_error(
280
- context_relevancy_evaluator: MagicMock,
281
- sample_evaluation_input: EvaluationMetricInput,
282
- basic_evaluation_config: EvaluationMetricConfig,
283
- ) -> None:
284
- """
285
- Purpose: A billed LLM call that returns no choices must still surface its
286
- usage, instead of losing it to the generic error path.
287
- Why this matters: `result.choices[0]` access is not otherwise guarded; an
288
- empty `choices` list must not silently drop invocation_stats.
289
- """
290
- mock_result: LanguageModelResponse = LanguageModelResponse(
291
- choices=[],
292
- usage=LanguageModelTokenUsage(
293
- completion_tokens=1, prompt_tokens=2, total_tokens=3
294
- ),
295
- )
296
-
297
- with patch.object(
298
- context_relevancy_evaluator.language_model_service,
299
- "complete_async",
300
- return_value=mock_result,
301
- ):
302
- with pytest.raises(EvaluatorException) as exc_info:
303
- await context_relevancy_evaluator.analyze(
304
- sample_evaluation_input, basic_evaluation_config
305
- )
306
-
307
- assert len(exc_info.value.invocation_stats) == 1
308
- assert exc_info.value.invocation_stats[0].token_usage.total_tokens == 3
309
-
310
-
311
- @pytest.mark.ai
312
- @pytest.mark.asyncio
313
- async def test_analyze__preserves_invocation_stats__on_structured_output_read_error(
314
- context_relevancy_evaluator: MagicMock,
315
- sample_evaluation_input: EvaluationMetricInput,
316
- structured_evaluation_config: EvaluationMetricConfig,
317
- ) -> None:
318
- """
319
- Purpose: Same as the regular-output case, for the structured-output path.
320
- """
321
- mock_result: LanguageModelResponse = LanguageModelResponse(
322
- choices=[],
323
- usage=LanguageModelTokenUsage(
324
- completion_tokens=1, prompt_tokens=2, total_tokens=3
325
- ),
326
- )
327
- structured_output_schema: type[EvaluationSchemaStructuredOutput] = (
328
- EvaluationSchemaStructuredOutput
329
- )
330
-
331
- with patch.object(
332
- context_relevancy_evaluator.language_model_service,
333
- "complete_async",
334
- return_value=mock_result,
335
- ):
336
- with pytest.raises(EvaluatorException) as exc_info:
337
- await context_relevancy_evaluator.analyze(
338
- sample_evaluation_input,
339
- structured_evaluation_config,
340
- structured_output_schema,
341
- )
342
-
343
- assert len(exc_info.value.invocation_stats) == 1
344
- assert exc_info.value.invocation_stats[0].token_usage.total_tokens == 3