unique-toolkit 2026.18.0.dev0__tar.gz → 2026.18.0.dev2__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 (327) hide show
  1. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/PKG-INFO +11 -11
  2. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/README.md +9 -9
  3. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/pyproject.toml +2 -2
  4. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/loop_runner/middleware/planning/planning.py +91 -28
  5. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/app/unique_settings.py +1 -1
  6. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/__init__.py +0 -0
  7. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/_common/__init__.py +0 -0
  8. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/_common/_base_service.py +0 -0
  9. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/_common/_time_utils.py +0 -0
  10. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/_common/api_calling/human_verification_manager.py +0 -0
  11. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/_common/base_model_type_attribute.py +0 -0
  12. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/_common/chunk_relevancy_sorter/config.py +0 -0
  13. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/_common/chunk_relevancy_sorter/exception.py +0 -0
  14. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/_common/chunk_relevancy_sorter/schemas.py +0 -0
  15. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/_common/chunk_relevancy_sorter/service.py +0 -0
  16. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/_common/chunk_relevancy_sorter/tests/test_service.py +0 -0
  17. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/_common/config_checker/README.md +0 -0
  18. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/_common/config_checker/__init__.py +0 -0
  19. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/_common/config_checker/__main__.py +0 -0
  20. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/_common/config_checker/cli.py +0 -0
  21. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/_common/config_checker/differ.py +0 -0
  22. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/_common/config_checker/exporter.py +0 -0
  23. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/_common/config_checker/models.py +0 -0
  24. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/_common/config_checker/registry.py +0 -0
  25. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/_common/config_checker/validator.py +0 -0
  26. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/_common/default_language_model.py +0 -0
  27. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/_common/docx_generator/__init__.py +0 -0
  28. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/_common/docx_generator/config.py +0 -0
  29. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/_common/docx_generator/pandoc_converter.py +0 -0
  30. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/_common/docx_generator/schemas.py +0 -0
  31. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/_common/docx_generator/service.py +0 -0
  32. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/_common/docx_generator/template/Doc Template.docx +0 -0
  33. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/_common/endpoint_builder.py +0 -0
  34. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/_common/endpoint_requestor.py +0 -0
  35. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/_common/event_bus.py +0 -0
  36. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/_common/exception.py +0 -0
  37. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/_common/execution.py +0 -0
  38. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/_common/experimental/endpoint_builder.py +0 -0
  39. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/_common/experimental/endpoint_requestor.py +0 -0
  40. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/_common/experimental/write_up_agent/README.md +0 -0
  41. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/_common/experimental/write_up_agent/__init__.py +0 -0
  42. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/_common/experimental/write_up_agent/agent.py +0 -0
  43. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/_common/experimental/write_up_agent/config.py +0 -0
  44. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/_common/experimental/write_up_agent/examples/data.csv +0 -0
  45. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/_common/experimental/write_up_agent/examples/example_usage.py +0 -0
  46. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/_common/experimental/write_up_agent/schemas.py +0 -0
  47. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/_common/experimental/write_up_agent/services/__init__.py +0 -0
  48. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/__init__.py +0 -0
  49. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/exceptions.py +0 -0
  50. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/service.py +0 -0
  51. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/utils.py +0 -0
  52. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/__init__.py +0 -0
  53. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/config.py +0 -0
  54. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/exceptions.py +0 -0
  55. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/prompts/config.py +0 -0
  56. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/prompts/system_prompt.j2 +0 -0
  57. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/prompts/user_prompt.j2 +0 -0
  58. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/service.py +0 -0
  59. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/__init__.py +0 -0
  60. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/default_template.j2 +0 -0
  61. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/exceptions.py +0 -0
  62. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/service.py +0 -0
  63. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/utils.py +0 -0
  64. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/_common/experimental/write_up_agent/utils.py +0 -0
  65. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/_common/feature_flags/schema.py +0 -0
  66. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/_common/pydantic/rjsf_tags.py +0 -0
  67. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/_common/pydantic_helpers.py +0 -0
  68. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/_common/referencing.py +0 -0
  69. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/_common/string_utilities.py +0 -0
  70. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/_common/tests/test_referencing.py +0 -0
  71. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/_common/tests/test_string_utilities.py +0 -0
  72. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/_common/token/__init__.py +0 -0
  73. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/_common/token/image_token_counting.py +0 -0
  74. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/_common/token/token_counting.py +0 -0
  75. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/_common/token/tokenizers/deepseek/tokenizer.json +0 -0
  76. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/_common/token/tokenizers/qwen/tokenizer.json +0 -0
  77. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/_common/utils/__init__.py +0 -0
  78. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/_common/utils/files.py +0 -0
  79. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/_common/utils/image/encode.py +0 -0
  80. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/_common/utils/jinja/helpers.py +0 -0
  81. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/_common/utils/jinja/render.py +0 -0
  82. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/_common/utils/jinja/schema.py +0 -0
  83. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/_common/utils/jinja/utils.py +0 -0
  84. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/_common/utils/structured_output/__init__.py +0 -0
  85. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/_common/utils/structured_output/schema.py +0 -0
  86. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/_common/utils/write_configuration.py +0 -0
  87. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/_common/validate_required_values.py +0 -0
  88. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/_common/validators.py +0 -0
  89. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/__init__.py +0 -0
  90. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/debug_info_manager/debug_info_manager.py +0 -0
  91. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/debug_info_manager/test/test_debug_info_manager.py +0 -0
  92. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/evaluation/config.py +0 -0
  93. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/evaluation/context_relevancy/prompts/__init__.py +0 -0
  94. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/evaluation/context_relevancy/prompts/system_prompt.j2 +0 -0
  95. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/evaluation/context_relevancy/prompts/user_prompt.j2 +0 -0
  96. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/evaluation/context_relevancy/schema.py +0 -0
  97. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/evaluation/context_relevancy/service.py +0 -0
  98. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/evaluation/evaluation_manager.py +0 -0
  99. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/evaluation/exception.py +0 -0
  100. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/evaluation/hallucination/constants.py +0 -0
  101. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/evaluation/hallucination/hallucination_evaluation.py +0 -0
  102. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/evaluation/hallucination/prompts/__init__.py +0 -0
  103. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/evaluation/hallucination/prompts/system_prompt.j2 +0 -0
  104. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/evaluation/hallucination/prompts/user_prompt.j2 +0 -0
  105. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/evaluation/hallucination/service.py +0 -0
  106. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/evaluation/hallucination/utils.py +0 -0
  107. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/evaluation/output_parser.py +0 -0
  108. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/evaluation/schemas.py +0 -0
  109. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/evaluation/tests/fixtures.py +0 -0
  110. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/evaluation/tests/test_config.py +0 -0
  111. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/evaluation/tests/test_context_relevancy_service.py +0 -0
  112. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/evaluation/tests/test_hallucination_constants.py +0 -0
  113. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/evaluation/tests/test_hallucination_utils.py +0 -0
  114. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/evaluation/tests/test_output_parser.py +0 -0
  115. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/evaluation/tests/test_prompt_loaders.py +0 -0
  116. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/evaluation/utils.py +0 -0
  117. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/feature_flags/__init__.py +0 -0
  118. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/feature_flags/feature_flags.py +0 -0
  119. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/history_manager/history_construction_with_contents.py +0 -0
  120. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/history_manager/history_manager.py +0 -0
  121. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/history_manager/loop_token_reducer.py +0 -0
  122. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/history_manager/utils.py +0 -0
  123. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/loop_runner/__init__.py +0 -0
  124. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/loop_runner/_iteration_handler_utils.py +0 -0
  125. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/loop_runner/_responses_iteration_handler_utils.py +0 -0
  126. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/loop_runner/_responses_stream_handler_utils.py +0 -0
  127. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/loop_runner/_stream_handler_utils.py +0 -0
  128. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/loop_runner/base.py +0 -0
  129. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/loop_runner/middleware/__init__.py +0 -0
  130. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/loop_runner/middleware/planning/__init__.py +0 -0
  131. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/loop_runner/middleware/planning/schema.py +0 -0
  132. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/loop_runner/runners/__init__.py +0 -0
  133. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/loop_runner/runners/basic.py +0 -0
  134. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/loop_runner/runners/mistral/__init__.py +0 -0
  135. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/loop_runner/runners/mistral/mistral_runner.py +0 -0
  136. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/loop_runner/runners/qwen/__init__.py +0 -0
  137. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/loop_runner/runners/qwen/helpers.py +0 -0
  138. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/loop_runner/runners/qwen/qwen_runner.py +0 -0
  139. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/message_log_manager/__init__.py +0 -0
  140. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/message_log_manager/service.py +0 -0
  141. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/postprocessor/postprocessor_manager.py +0 -0
  142. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/reference_manager/reference_manager.py +0 -0
  143. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/responses_api/__init__.py +0 -0
  144. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/responses_api/postprocessors/code_display.py +0 -0
  145. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/responses_api/postprocessors/generated_files.py +0 -0
  146. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/responses_api/stream_handler.py +0 -0
  147. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/short_term_memory_manager/persistent_short_term_memory_manager.py +0 -0
  148. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/thinking_manager/thinking_manager.py +0 -0
  149. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/tools/__init__.py +0 -0
  150. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/tools/a2a/__init__.py +0 -0
  151. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/tools/a2a/config.py +0 -0
  152. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/tools/a2a/evaluation/__init__.py +0 -0
  153. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/tools/a2a/evaluation/_utils.py +0 -0
  154. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/tools/a2a/evaluation/config.py +0 -0
  155. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/tools/a2a/evaluation/evaluator.py +0 -0
  156. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/tools/a2a/evaluation/summarization_user_message.j2 +0 -0
  157. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/tools/a2a/manager.py +0 -0
  158. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/tools/a2a/postprocessing/__init__.py +0 -0
  159. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/tools/a2a/postprocessing/_display_utils.py +0 -0
  160. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/tools/a2a/postprocessing/_ref_utils.py +0 -0
  161. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/tools/a2a/postprocessing/config.py +0 -0
  162. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/tools/a2a/postprocessing/display.py +0 -0
  163. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/tools/a2a/postprocessing/references.py +0 -0
  164. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_display.py +0 -0
  165. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_display_utils.py +0 -0
  166. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_ref_utils.py +0 -0
  167. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/tools/a2a/prompts.py +0 -0
  168. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/tools/a2a/response_watcher/__init__.py +0 -0
  169. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/tools/a2a/response_watcher/service.py +0 -0
  170. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/tools/a2a/tool/__init__.py +0 -0
  171. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/tools/a2a/tool/_memory.py +0 -0
  172. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/tools/a2a/tool/_schema.py +0 -0
  173. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/tools/a2a/tool/config.py +0 -0
  174. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/tools/a2a/tool/service.py +0 -0
  175. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/tools/a2a/tool/test/test_service_utils.py +0 -0
  176. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/tools/agent_chunks_hanlder.py +0 -0
  177. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/tools/config.py +0 -0
  178. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/tools/experimental/__init__.py +0 -0
  179. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/tools/experimental/open_file_tool/__init__.py +0 -0
  180. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/tools/experimental/open_file_tool/config.py +0 -0
  181. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/tools/experimental/open_file_tool/runtime.py +0 -0
  182. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/tools/experimental/open_file_tool/tool.py +0 -0
  183. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/tools/experimental/todo/__init__.py +0 -0
  184. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/tools/experimental/todo/config.py +0 -0
  185. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/tools/experimental/todo/prompts/__init__.py +0 -0
  186. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/tools/experimental/todo/prompts/execution_reminder.j2 +0 -0
  187. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/tools/experimental/todo/prompts/system_prompt.j2 +0 -0
  188. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/tools/experimental/todo/prompts/tool_description.j2 +0 -0
  189. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/tools/experimental/todo/prompts/verification_nudge.j2 +0 -0
  190. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/tools/experimental/todo/schemas.py +0 -0
  191. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/tools/experimental/todo/service.py +0 -0
  192. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/tools/factory.py +0 -0
  193. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/tools/mcp/__init__.py +0 -0
  194. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/tools/mcp/manager.py +0 -0
  195. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/tools/mcp/models.py +0 -0
  196. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/tools/mcp/tool_wrapper.py +0 -0
  197. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/tools/openai_builtin/__init__.py +0 -0
  198. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/tools/openai_builtin/base.py +0 -0
  199. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/__init__.py +0 -0
  200. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/config.py +0 -0
  201. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/postprocessors/__init__.py +0 -0
  202. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/postprocessors/code_display.py +0 -0
  203. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/postprocessors/generated_files.py +0 -0
  204. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/schemas.py +0 -0
  205. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/service.py +0 -0
  206. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/tools/openai_builtin/manager.py +0 -0
  207. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/tools/schemas.py +0 -0
  208. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/tools/test/test_mcp_manager.py +0 -0
  209. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/tools/test/test_tool_progress_reporter.py +0 -0
  210. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/tools/tool.py +0 -0
  211. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/tools/tool_manager.py +0 -0
  212. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/tools/tool_progress_reporter.py +0 -0
  213. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/tools/utils/__init__.py +0 -0
  214. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/tools/utils/source_handling/__init__.py +0 -0
  215. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/tools/utils/source_handling/schema.py +0 -0
  216. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/tools/utils/source_handling/source_formatting.py +0 -0
  217. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic/tools/utils/source_handling/tests/test_source_formatting.py +0 -0
  218. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic_table/__init__.py +0 -0
  219. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic_table/schemas.py +0 -0
  220. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/agentic_table/service.py +0 -0
  221. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/app/__init__.py +0 -0
  222. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/app/chat_event_filter_options_settings.py +0 -0
  223. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/app/dev_util.py +0 -0
  224. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/app/fast_api_factory.py +0 -0
  225. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/app/feature_flags.py +0 -0
  226. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/app/find_env_file.py +0 -0
  227. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/app/init_logging.py +0 -0
  228. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/app/init_sdk.py +0 -0
  229. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/app/performance/async_tasks.py +0 -0
  230. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/app/performance/async_wrapper.py +0 -0
  231. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/app/schemas.py +0 -0
  232. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/app/verification.py +0 -0
  233. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/app/webhook.py +0 -0
  234. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/chat/__init__.py +0 -0
  235. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/chat/cancellation.py +0 -0
  236. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/chat/constants.py +0 -0
  237. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/chat/deprecated/service.py +0 -0
  238. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/chat/functions.py +0 -0
  239. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/chat/rendering.py +0 -0
  240. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/chat/responses_api.py +0 -0
  241. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/chat/schemas.py +0 -0
  242. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/chat/service.py +0 -0
  243. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/chat/state.py +0 -0
  244. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/chat/utils.py +0 -0
  245. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/content/__init__.py +0 -0
  246. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/content/constants.py +0 -0
  247. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/content/functions.py +0 -0
  248. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/content/schemas.py +0 -0
  249. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/content/service.py +0 -0
  250. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/content/smart_rules.py +0 -0
  251. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/content/utils.py +0 -0
  252. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/data_extraction/README.md +0 -0
  253. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/data_extraction/__init__.py +0 -0
  254. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/data_extraction/augmented/__init__.py +0 -0
  255. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/data_extraction/augmented/service.py +0 -0
  256. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/data_extraction/base.py +0 -0
  257. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/data_extraction/basic/__init__.py +0 -0
  258. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/data_extraction/basic/config.py +0 -0
  259. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/data_extraction/basic/prompt.py +0 -0
  260. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/data_extraction/basic/service.py +0 -0
  261. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/elicitation/__init__.py +0 -0
  262. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/elicitation/constants.py +0 -0
  263. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/elicitation/exceptions.py +0 -0
  264. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/elicitation/functions.py +0 -0
  265. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/elicitation/schemas.py +0 -0
  266. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/elicitation/service.py +0 -0
  267. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/embedding/__init__.py +0 -0
  268. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/embedding/constants.py +0 -0
  269. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/embedding/functions.py +0 -0
  270. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/embedding/schemas.py +0 -0
  271. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/embedding/service.py +0 -0
  272. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/embedding/utils.py +0 -0
  273. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/experimental/__init__.py +0 -0
  274. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/experimental/content_folder/__init__.py +0 -0
  275. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/experimental/content_folder/functions.py +0 -0
  276. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/experimental/content_folder/schemas.py +0 -0
  277. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/experimental/content_folder/service.py +0 -0
  278. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/experimental/content_tree/__init__.py +0 -0
  279. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/experimental/content_tree/functions.py +0 -0
  280. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/experimental/content_tree/schemas.py +0 -0
  281. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/experimental/content_tree/service.py +0 -0
  282. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/experimental/identity/__init__.py +0 -0
  283. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/experimental/identity/functions.py +0 -0
  284. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/experimental/identity/schemas.py +0 -0
  285. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/experimental/identity/service.py +0 -0
  286. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/experimental/scheduled_task/__init__.py +0 -0
  287. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/experimental/scheduled_task/cron.py +0 -0
  288. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/experimental/scheduled_task/functions.py +0 -0
  289. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/experimental/scheduled_task/schemas.py +0 -0
  290. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/experimental/scheduled_task/service.py +0 -0
  291. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/framework_utilities/__init__.py +0 -0
  292. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/framework_utilities/langchain/__init__.py +0 -0
  293. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/framework_utilities/langchain/client.py +0 -0
  294. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/framework_utilities/langchain/history.py +0 -0
  295. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/framework_utilities/openai/__init__.py +0 -0
  296. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/framework_utilities/openai/client.py +0 -0
  297. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/framework_utilities/openai/message_builder.py +0 -0
  298. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/framework_utilities/utils.py +0 -0
  299. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/language_model/__init__.py +0 -0
  300. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/language_model/_responses_api_utils.py +0 -0
  301. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/language_model/builder.py +0 -0
  302. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/language_model/constants.py +0 -0
  303. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/language_model/default_language_model.py +0 -0
  304. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/language_model/functions.py +0 -0
  305. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/language_model/infos.py +0 -0
  306. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/language_model/prompt.py +0 -0
  307. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/language_model/reference.py +0 -0
  308. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/language_model/schemas.py +0 -0
  309. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/language_model/service.py +0 -0
  310. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/language_model/stream_transform.py +0 -0
  311. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/language_model/utils.py +0 -0
  312. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/monitoring/__init__.py +0 -0
  313. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/monitoring/middleware.py +0 -0
  314. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/monitoring/registry.py +0 -0
  315. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/protocols/support.py +0 -0
  316. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/services/__init__.py +0 -0
  317. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/services/chat_service.py +0 -0
  318. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/services/factory.py +0 -0
  319. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/services/knowledge_base.py +0 -0
  320. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/short_term_memory/__init__.py +0 -0
  321. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/short_term_memory/constants.py +0 -0
  322. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/short_term_memory/functions.py +0 -0
  323. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/short_term_memory/schemas.py +0 -0
  324. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/short_term_memory/service.py +0 -0
  325. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/smart_rules/__init__.py +0 -0
  326. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/unique_toolkit/smart_rules/compile.py +0 -0
  327. {unique_toolkit-2026.18.0.dev0 → unique_toolkit-2026.18.0.dev2}/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.18.0.dev0
3
+ Version: 2026.18.0.dev2
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.18.0.dev0
19
+ Requires-Dist: unique-sdk>=2026.18.0.dev0
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
@@ -47,7 +47,7 @@ Description-Content-Type: text/markdown
47
47
 
48
48
  # Unique Toolkit
49
49
 
50
- This package provides highlevel abstractions and methods on top of `unique_sdk` to ease application development for the Unique Platform.
50
+ This package provides high-level abstractions and methods on top of `unique_sdk` to ease application development for the Unique Platform.
51
51
 
52
52
  The Toolkit is structured along the following domains:
53
53
  - `unique_toolkit.chat`
@@ -56,25 +56,25 @@ The Toolkit is structured along the following domains:
56
56
  - `unique_toolkit.language_model`
57
57
  - `unique_toolkit.short_term_memory`
58
58
 
59
- Each domain comprises a set of schemas (in `schemas.py`) are used in functions (in `functions.py`) which encapsulates the basic functionalities to interact with the plattform.
59
+ Each domain comprises a set of schemas (in `schemas.py`) that are used in functions (in `functions.py`) which encapsulate the basic functionalities to interact with the platform.
60
60
  The above domains represent the internal structure of the Unique platform.
61
61
 
62
- For the `developers` we expose interfaces via `services` classes that correspond directly to an frontend or an entity the `user` interacts with.
62
+ For the `developers` we expose interfaces via `services` classes that correspond directly to a frontend or an entity the `user` interacts with.
63
63
 
64
64
  The following services are currently available:
65
65
 
66
- | Service | Responsability |
66
+ | Service | Responsibility |
67
67
  |--|--|
68
- | ChatService | All interactions with the chat interface |
68
+ | ChatService | All interactions with the chat interface |
69
69
  | KnowledgeBaseService | All interaction with the knowledgebase |
70
70
 
71
- The services can be directly import as
71
+ The services can be directly imported as
72
72
 
73
- ```
73
+ ```python
74
74
  from unique_toolkit import ChatService, KnowledgeBaseService
75
+ ```
75
76
 
76
-
77
- In addition, the `unique_toolkit.app` module provides functions to initialize apps and dev utilities to interact with the Unique platform.
77
+ In addition, the `unique_toolkit.app` module provides functions to initialize apps and dev utilities to interact with the Unique platform.
78
78
 
79
79
  ## Changelog
80
80
 
@@ -1,6 +1,6 @@
1
1
  # Unique Toolkit
2
2
 
3
- This package provides highlevel abstractions and methods on top of `unique_sdk` to ease application development for the Unique Platform.
3
+ This package provides high-level abstractions and methods on top of `unique_sdk` to ease application development for the Unique Platform.
4
4
 
5
5
  The Toolkit is structured along the following domains:
6
6
  - `unique_toolkit.chat`
@@ -9,25 +9,25 @@ The Toolkit is structured along the following domains:
9
9
  - `unique_toolkit.language_model`
10
10
  - `unique_toolkit.short_term_memory`
11
11
 
12
- Each domain comprises a set of schemas (in `schemas.py`) are used in functions (in `functions.py`) which encapsulates the basic functionalities to interact with the plattform.
12
+ Each domain comprises a set of schemas (in `schemas.py`) that are used in functions (in `functions.py`) which encapsulate the basic functionalities to interact with the platform.
13
13
  The above domains represent the internal structure of the Unique platform.
14
14
 
15
- For the `developers` we expose interfaces via `services` classes that correspond directly to an frontend or an entity the `user` interacts with.
15
+ For the `developers` we expose interfaces via `services` classes that correspond directly to a frontend or an entity the `user` interacts with.
16
16
 
17
17
  The following services are currently available:
18
18
 
19
- | Service | Responsability |
19
+ | Service | Responsibility |
20
20
  |--|--|
21
- | ChatService | All interactions with the chat interface |
21
+ | ChatService | All interactions with the chat interface |
22
22
  | KnowledgeBaseService | All interaction with the knowledgebase |
23
23
 
24
- The services can be directly import as
24
+ The services can be directly imported as
25
25
 
26
- ```
26
+ ```python
27
27
  from unique_toolkit import ChatService, KnowledgeBaseService
28
+ ```
28
29
 
29
-
30
- In addition, the `unique_toolkit.app` module provides functions to initialize apps and dev utilities to interact with the Unique platform.
30
+ In addition, the `unique_toolkit.app` module provides functions to initialize apps and dev utilities to interact with the Unique platform.
31
31
 
32
32
  ## Changelog
33
33
 
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "unique_toolkit"
3
- version = "2026.18.0.dev0"
3
+ version = "2026.18.0.dev2"
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.18.0.dev0",
31
+ "unique-sdk>=2026.18.0.dev0",
32
32
  "jambo>=0.1.2,<0.2",
33
33
  "jinja2>=3.1.6,<4",
34
34
  "docxtpl>=0.20.1,<0.21",
@@ -1,18 +1,18 @@
1
1
  import json
2
2
  import logging
3
- from typing import Unpack
3
+ from typing import Any, Unpack
4
4
 
5
5
  from openai import AsyncOpenAI
6
6
  from openai.types.responses import (
7
7
  Response,
8
- ResponseFormatTextJSONSchemaConfigParam,
8
+ ResponseFunctionToolCall,
9
9
  ResponseInputItemParam,
10
- ResponseOutputMessage,
11
- ResponseTextConfigParam,
10
+ ToolParam,
12
11
  )
12
+ from openai.types.responses.function_tool_param import FunctionToolParam
13
13
  from pydantic import BaseModel, Field
14
14
 
15
- from unique_toolkit import LanguageModelService
15
+ from unique_toolkit import LanguageModelService, LanguageModelToolDescription
16
16
  from unique_toolkit._common.execution import failsafe_async
17
17
  from unique_toolkit._common.pydantic_helpers import get_configuration_dict
18
18
  from unique_toolkit.agentic.history_manager.history_manager import HistoryManager
@@ -40,11 +40,36 @@ from unique_toolkit.language_model.schemas import (
40
40
  _LOGGER = logging.getLogger(__name__)
41
41
 
42
42
 
43
- def _get_first_output_text(response: Response) -> str | None:
43
+ _PLAN_TOOL_NAME = "plan"
44
+ _PLAN_TOOL_DESCRIPTION = (
45
+ "Record the plan for the next step. Call this tool exactly once."
46
+ )
47
+
48
+ # Kwargs from _ResponsesLoopIterationRunnerKwargs that make sense to forward to
49
+ # the planning `responses.create` call. We deliberately exclude anything that
50
+ # conflicts with the forced-tool-call setup (`tools`, `tool_choices`, `text`,
51
+ # `parallel_tool_calls`) and anything that is a loop-runner control knob rather
52
+ # than a model option.
53
+ _FORWARDABLE_RESPONSES_OPTIONS: frozenset[str] = frozenset(
54
+ {
55
+ "temperature",
56
+ "top_p",
57
+ "reasoning",
58
+ "max_output_tokens",
59
+ "metadata",
60
+ "include",
61
+ "instructions",
62
+ }
63
+ )
64
+
65
+
66
+ def _get_first_tool_call_arguments(response: Response) -> str | None:
44
67
  """
45
- The Responses API can return multiple output items when doing structured output
46
- (https://community.openai.com/t/multiple-outputs-from-responses-api/1291026),
47
- We should tell the model not to do this in the schema, as well as extract only the first one
68
+ Extract the arguments of the first ``function_call`` output item.
69
+
70
+ Using a forced tool call (``tool_choice={"type": "function", ...}``) avoids
71
+ the duplicate-output issue the Responses API exhibits with
72
+ ``text.format=json_schema`` structured output.
48
73
  """
49
74
  if len(response.output) > 1:
50
75
  _LOGGER.warning(
@@ -53,10 +78,8 @@ def _get_first_output_text(response: Response) -> str | None:
53
78
  )
54
79
 
55
80
  for item in response.output:
56
- if isinstance(item, ResponseOutputMessage):
57
- for content in item.content:
58
- if content.type == "output_text" and content.text:
59
- return content.text
81
+ if isinstance(item, ResponseFunctionToolCall) and item.arguments:
82
+ return item.arguments
60
83
  return None
61
84
 
62
85
 
@@ -144,32 +167,70 @@ class ResponsesPlanningMiddleware(ResponsesLoopIterationRunner):
144
167
  self._history_manager = history_manager
145
168
  self._openai_client = openai_client
146
169
 
170
+ def _build_forwarded_options(
171
+ self, kwargs: _ResponsesLoopIterationRunnerKwargs
172
+ ) -> dict[str, Any]:
173
+ ignored = set(self._config.ignored_options)
174
+ forwarded: dict[str, Any] = {
175
+ k: v
176
+ for k, v in kwargs.items()
177
+ if k in _FORWARDABLE_RESPONSES_OPTIONS and k not in ignored
178
+ }
179
+
180
+ other_options = kwargs.get("other_options") or {}
181
+ forwarded.update({k: v for k, v in other_options.items() if k not in ignored})
182
+ return forwarded
183
+
184
+ def _build_tools(
185
+ self, kwargs: _ResponsesLoopIterationRunnerKwargs
186
+ ) -> list[FunctionToolParam | ToolParam]:
187
+ """
188
+ Build the tool list sent to the planning call: the forced ``plan`` tool
189
+ plus the loop runner's regular tools (converted to Responses API shape).
190
+
191
+ Passing the regular tools gives the model the information it needs to
192
+ reason about *which* tool to call next, even though ``tool_choice``
193
+ pins the actual call to ``plan``.
194
+ """
195
+ planning_schema = get_planning_schema(self._config.planning_schema_config)
196
+ plan_tool = FunctionToolParam(
197
+ type="function",
198
+ name=_PLAN_TOOL_NAME,
199
+ description=_PLAN_TOOL_DESCRIPTION,
200
+ parameters=planning_schema,
201
+ strict=False,
202
+ )
203
+
204
+ extra_tools: list[FunctionToolParam | ToolParam] = []
205
+ for tool in kwargs.get("tools") or []:
206
+ if isinstance(tool, LanguageModelToolDescription):
207
+ converted = tool.to_openai(mode="responses")
208
+ else:
209
+ converted = tool
210
+ if converted.get("name") == _PLAN_TOOL_NAME:
211
+ continue
212
+ extra_tools.append(converted)
213
+
214
+ return [plan_tool, *extra_tools]
215
+
147
216
  @failsafe_async(failure_return_value=None, logger=_LOGGER)
148
217
  async def _run_plan_step(
149
218
  self,
150
219
  openai_messages: str | list[ResponseInputItemParam],
151
220
  model_name: str,
221
+ tools: list[FunctionToolParam | ToolParam],
222
+ forwarded_options: dict[str, Any],
152
223
  ) -> str | None:
153
- planning_schema = get_planning_schema(self._config.planning_schema_config)
154
-
155
224
  response = await self._openai_client.responses.create(
156
225
  model=model_name,
157
226
  input=openai_messages,
158
- text=ResponseTextConfigParam(
159
- {
160
- "format": ResponseFormatTextJSONSchemaConfigParam(
161
- {
162
- "type": "json_schema",
163
- "name": planning_schema.get("title", "Plan"),
164
- "schema": planning_schema,
165
- "strict": False,
166
- }
167
- )
168
- }
169
- ),
227
+ tools=tools,
228
+ tool_choice={"type": "function", "name": _PLAN_TOOL_NAME},
229
+ parallel_tool_calls=False,
230
+ **forwarded_options,
170
231
  )
171
232
 
172
- output_text = _get_first_output_text(response)
233
+ output_text = _get_first_tool_call_arguments(response)
173
234
  if not output_text:
174
235
  _LOGGER.info("Empty planning response")
175
236
  return None
@@ -184,6 +245,8 @@ class ResponsesPlanningMiddleware(ResponsesLoopIterationRunner):
184
245
  output_text = await self._run_plan_step(
185
246
  openai_messages=openai_messages,
186
247
  model_name=kwargs["model"].name,
248
+ tools=self._build_tools(kwargs),
249
+ forwarded_options=self._build_forwarded_options(kwargs),
187
250
  )
188
251
 
189
252
  if output_text is None:
@@ -406,7 +406,7 @@ class UniqueChatEventFilterOptions(BaseSettings):
406
406
  class UniqueEnvironment:
407
407
  """
408
408
  Contains all settings that come exclusively from the environment.
409
- This means if a setting can be intialized from either request or the environment, this class will not contain it.
409
+ This means if a setting can be initialized from either request or the environment, this class will not contain it.
410
410
  """
411
411
 
412
412
  def __init__(self, app: UniqueApp, api: UniqueApi) -> None: