unique-toolkit 2026.28.0.dev9__tar.gz → 2026.28.0.dev11__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 (411) hide show
  1. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/PKG-INFO +2 -2
  2. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/pyproject.toml +2 -2
  3. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/tools/a2a/manager.py +23 -9
  4. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/tools/config.py +77 -21
  5. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/tools/tool_manager.py +25 -12
  6. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/chat/functions.py +28 -1
  7. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/chat/schemas.py +9 -1
  8. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/services/chat_service.py +18 -0
  9. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/README.md +0 -0
  10. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/__init__.py +0 -0
  11. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/_common/__init__.py +0 -0
  12. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/_common/_base_service.py +0 -0
  13. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/_common/_time_utils.py +0 -0
  14. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/_common/api_calling/human_verification_manager.py +0 -0
  15. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/_common/base_model_type_attribute.py +0 -0
  16. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/_common/chunk_relevancy_sorter/config.py +0 -0
  17. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/_common/chunk_relevancy_sorter/exception.py +0 -0
  18. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/_common/chunk_relevancy_sorter/schemas.py +0 -0
  19. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/_common/chunk_relevancy_sorter/service.py +0 -0
  20. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/_common/chunk_relevancy_sorter/tests/test_service.py +0 -0
  21. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/_common/config_checker/README.md +0 -0
  22. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/_common/config_checker/__init__.py +0 -0
  23. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/_common/config_checker/__main__.py +0 -0
  24. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/_common/config_checker/cli.py +0 -0
  25. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/_common/config_checker/differ.py +0 -0
  26. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/_common/config_checker/exporter.py +0 -0
  27. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/_common/config_checker/models.py +0 -0
  28. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/_common/config_checker/registry.py +0 -0
  29. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/_common/config_checker/validator.py +0 -0
  30. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/_common/default_language_model.py +0 -0
  31. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/_common/docx_generator/__init__.py +0 -0
  32. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/_common/docx_generator/config.py +0 -0
  33. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/_common/docx_generator/pandoc_converter.py +0 -0
  34. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/_common/docx_generator/schemas.py +0 -0
  35. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/_common/docx_generator/service.py +0 -0
  36. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/_common/docx_generator/template/Doc Template.docx +0 -0
  37. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/_common/endpoint_builder.py +0 -0
  38. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/_common/endpoint_requestor.py +0 -0
  39. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/_common/event_bus.py +0 -0
  40. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/_common/exception.py +0 -0
  41. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/_common/execution.py +0 -0
  42. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/_common/experimental/endpoint_builder.py +0 -0
  43. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/_common/experimental/endpoint_requestor.py +0 -0
  44. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/_common/experimental/write_up_agent/README.md +0 -0
  45. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/_common/experimental/write_up_agent/__init__.py +0 -0
  46. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/_common/experimental/write_up_agent/agent.py +0 -0
  47. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/_common/experimental/write_up_agent/config.py +0 -0
  48. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/_common/experimental/write_up_agent/examples/data.csv +0 -0
  49. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/_common/experimental/write_up_agent/examples/example_usage.py +0 -0
  50. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/_common/experimental/write_up_agent/schemas.py +0 -0
  51. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/_common/experimental/write_up_agent/services/__init__.py +0 -0
  52. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/__init__.py +0 -0
  53. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/exceptions.py +0 -0
  54. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/service.py +0 -0
  55. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/utils.py +0 -0
  56. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/__init__.py +0 -0
  57. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/config.py +0 -0
  58. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/exceptions.py +0 -0
  59. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/prompts/config.py +0 -0
  60. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/prompts/system_prompt.j2 +0 -0
  61. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/prompts/user_prompt.j2 +0 -0
  62. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/service.py +0 -0
  63. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/__init__.py +0 -0
  64. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/default_template.j2 +0 -0
  65. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/exceptions.py +0 -0
  66. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/service.py +0 -0
  67. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/utils.py +0 -0
  68. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/_common/experimental/write_up_agent/utils.py +0 -0
  69. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/_common/feature_flags/schema.py +0 -0
  70. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/_common/metadata_filter_scope.py +0 -0
  71. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/_common/pydantic/rjsf_tags.py +0 -0
  72. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/_common/pydantic_helpers.py +0 -0
  73. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/_common/referencing.py +0 -0
  74. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/_common/string_utilities.py +0 -0
  75. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/_common/tests/test_referencing.py +0 -0
  76. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/_common/tests/test_string_utilities.py +0 -0
  77. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/_common/token/__init__.py +0 -0
  78. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/_common/token/image_token_counting.py +0 -0
  79. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/_common/token/token_counting.py +0 -0
  80. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/_common/token/tokenizers/deepseek/tokenizer.json +0 -0
  81. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/_common/token/tokenizers/qwen/tokenizer.json +0 -0
  82. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/_common/utils/__init__.py +0 -0
  83. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/_common/utils/files.py +0 -0
  84. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/_common/utils/image/encode.py +0 -0
  85. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/_common/utils/jinja/helpers.py +0 -0
  86. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/_common/utils/jinja/render.py +0 -0
  87. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/_common/utils/jinja/schema.py +0 -0
  88. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/_common/utils/jinja/utils.py +0 -0
  89. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/_common/utils/structured_output/__init__.py +0 -0
  90. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/_common/utils/structured_output/schema.py +0 -0
  91. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/_common/utils/write_configuration.py +0 -0
  92. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/_common/validate_required_values.py +0 -0
  93. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/_common/validators.py +0 -0
  94. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/__init__.py +0 -0
  95. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/debug_info_manager/debug_info_manager.py +0 -0
  96. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/debug_info_manager/test/test_debug_info_manager.py +0 -0
  97. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/evaluation/config.py +0 -0
  98. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/evaluation/context_relevancy/prompts/__init__.py +0 -0
  99. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/evaluation/context_relevancy/prompts/system_prompt.j2 +0 -0
  100. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/evaluation/context_relevancy/prompts/user_prompt.j2 +0 -0
  101. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/evaluation/context_relevancy/schema.py +0 -0
  102. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/evaluation/context_relevancy/service.py +0 -0
  103. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/evaluation/evaluation_manager.py +0 -0
  104. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/evaluation/exception.py +0 -0
  105. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/evaluation/hallucination/constants.py +0 -0
  106. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/evaluation/hallucination/hallucination_evaluation.py +0 -0
  107. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/evaluation/hallucination/prompts/__init__.py +0 -0
  108. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/evaluation/hallucination/prompts/system_prompt.j2 +0 -0
  109. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/evaluation/hallucination/prompts/user_prompt.j2 +0 -0
  110. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/evaluation/hallucination/service.py +0 -0
  111. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/evaluation/hallucination/utils.py +0 -0
  112. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/evaluation/output_parser.py +0 -0
  113. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/evaluation/schemas.py +0 -0
  114. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/evaluation/tests/fixtures.py +0 -0
  115. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/evaluation/tests/test_config.py +0 -0
  116. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/evaluation/tests/test_context_relevancy_service.py +0 -0
  117. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/evaluation/tests/test_hallucination_constants.py +0 -0
  118. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/evaluation/tests/test_hallucination_external_context.py +0 -0
  119. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/evaluation/tests/test_hallucination_utils.py +0 -0
  120. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/evaluation/tests/test_output_parser.py +0 -0
  121. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/evaluation/tests/test_prompt_loaders.py +0 -0
  122. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/evaluation/utils.py +0 -0
  123. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/feature_flags/__init__.py +0 -0
  124. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/feature_flags/feature_flags.py +0 -0
  125. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/history_manager/history_construction_with_contents.py +0 -0
  126. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/history_manager/history_manager.py +0 -0
  127. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/history_manager/loop_token_reducer.py +0 -0
  128. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/history_manager/settings.py +0 -0
  129. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/history_manager/utils.py +0 -0
  130. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/loop_runner/__init__.py +0 -0
  131. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/loop_runner/_iteration_handler_utils.py +0 -0
  132. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/loop_runner/_responses_iteration_handler_utils.py +0 -0
  133. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/loop_runner/_responses_stream_handler_utils.py +0 -0
  134. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/loop_runner/_stream_handler_utils.py +0 -0
  135. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/loop_runner/base.py +0 -0
  136. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/loop_runner/middleware/__init__.py +0 -0
  137. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/loop_runner/middleware/planning/__init__.py +0 -0
  138. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/loop_runner/middleware/planning/planning.py +0 -0
  139. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/loop_runner/middleware/planning/schema.py +0 -0
  140. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/loop_runner/runners/__init__.py +0 -0
  141. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/loop_runner/runners/basic.py +0 -0
  142. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/loop_runner/runners/mistral/__init__.py +0 -0
  143. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/loop_runner/runners/mistral/mistral_runner.py +0 -0
  144. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/loop_runner/runners/qwen/__init__.py +0 -0
  145. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/loop_runner/runners/qwen/helpers.py +0 -0
  146. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/loop_runner/runners/qwen/qwen_runner.py +0 -0
  147. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/message_log_manager/__init__.py +0 -0
  148. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/message_log_manager/service.py +0 -0
  149. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/message_log_order.py +0 -0
  150. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/postprocessor/postprocessor_manager.py +0 -0
  151. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/reference_manager/reference_manager.py +0 -0
  152. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/reference_manager/tests/test_external_context.py +0 -0
  153. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/responses_api/__init__.py +0 -0
  154. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/responses_api/postprocessors/code_display.py +0 -0
  155. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/responses_api/postprocessors/generated_files.py +0 -0
  156. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/responses_api/stream_handler.py +0 -0
  157. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/short_term_memory_manager/persistent_short_term_memory_manager.py +0 -0
  158. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/thinking_manager/thinking_manager.py +0 -0
  159. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/tools/__init__.py +0 -0
  160. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/tools/a2a/__init__.py +0 -0
  161. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/tools/a2a/config.py +0 -0
  162. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/tools/a2a/evaluation/__init__.py +0 -0
  163. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/tools/a2a/evaluation/_utils.py +0 -0
  164. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/tools/a2a/evaluation/config.py +0 -0
  165. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/tools/a2a/evaluation/evaluator.py +0 -0
  166. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/tools/a2a/evaluation/summarization_user_message.j2 +0 -0
  167. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/tools/a2a/postprocessing/__init__.py +0 -0
  168. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/tools/a2a/postprocessing/_display_utils.py +0 -0
  169. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/tools/a2a/postprocessing/_ref_utils.py +0 -0
  170. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/tools/a2a/postprocessing/config.py +0 -0
  171. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/tools/a2a/postprocessing/display.py +0 -0
  172. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/tools/a2a/postprocessing/references.py +0 -0
  173. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_display.py +0 -0
  174. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_display_utils.py +0 -0
  175. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_ref_utils.py +0 -0
  176. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_references.py +0 -0
  177. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/tools/a2a/prompts.py +0 -0
  178. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/tools/a2a/response_watcher/__init__.py +0 -0
  179. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/tools/a2a/response_watcher/service.py +0 -0
  180. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/tools/a2a/tool/__init__.py +0 -0
  181. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/tools/a2a/tool/_memory.py +0 -0
  182. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/tools/a2a/tool/_schema.py +0 -0
  183. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/tools/a2a/tool/config.py +0 -0
  184. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/tools/a2a/tool/service.py +0 -0
  185. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/tools/a2a/tool/test/test_service_utils.py +0 -0
  186. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/tools/agent_chunks_hanlder.py +0 -0
  187. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/tools/experimental/__init__.py +0 -0
  188. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/tools/experimental/ask_user_tool/__init__.py +0 -0
  189. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/tools/experimental/ask_user_tool/config.py +0 -0
  190. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/tools/experimental/ask_user_tool/tool.py +0 -0
  191. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/tools/experimental/open_file_tool/__init__.py +0 -0
  192. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/tools/experimental/open_file_tool/config.py +0 -0
  193. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/tools/experimental/open_file_tool/runtime.py +0 -0
  194. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/tools/experimental/open_file_tool/tool.py +0 -0
  195. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/tools/experimental/retrieve_search_scope_tool/__init__.py +0 -0
  196. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/tools/experimental/retrieve_search_scope_tool/config.py +0 -0
  197. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/tools/experimental/retrieve_search_scope_tool/tool.py +0 -0
  198. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/tools/experimental/todo/__init__.py +0 -0
  199. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/tools/experimental/todo/config.py +0 -0
  200. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/tools/experimental/todo/prompts/__init__.py +0 -0
  201. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/tools/experimental/todo/prompts/execution_reminder.j2 +0 -0
  202. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/tools/experimental/todo/prompts/system_prompt.j2 +0 -0
  203. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/tools/experimental/todo/prompts/tool_description.j2 +0 -0
  204. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/tools/experimental/todo/prompts/verification_nudge.j2 +0 -0
  205. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/tools/experimental/todo/schemas.py +0 -0
  206. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/tools/experimental/todo/service.py +0 -0
  207. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/tools/factory.py +0 -0
  208. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/tools/mcp/__init__.py +0 -0
  209. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/tools/mcp/manager.py +0 -0
  210. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/tools/mcp/models.py +0 -0
  211. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/tools/mcp/tool_wrapper.py +0 -0
  212. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/tools/names.py +0 -0
  213. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/tools/openai_builtin/__init__.py +0 -0
  214. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/tools/openai_builtin/base.py +0 -0
  215. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/__init__.py +0 -0
  216. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/config.py +0 -0
  217. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/postprocessors/__init__.py +0 -0
  218. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/postprocessors/artifacts.py +0 -0
  219. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/postprocessors/code_display.py +0 -0
  220. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/postprocessors/generated_files.py +0 -0
  221. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/schemas.py +0 -0
  222. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/service.py +0 -0
  223. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/tools/openai_builtin/manager.py +0 -0
  224. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/tools/run_context.py +0 -0
  225. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/tools/schemas.py +0 -0
  226. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/tools/test/test_mcp_manager.py +0 -0
  227. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/tools/test/test_tool_progress_reporter.py +0 -0
  228. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/tools/tool.py +0 -0
  229. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/tools/tool_progress_reporter.py +0 -0
  230. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/tools/utils/__init__.py +0 -0
  231. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/tools/utils/source_handling/__init__.py +0 -0
  232. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/tools/utils/source_handling/schema.py +0 -0
  233. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/tools/utils/source_handling/source_formatting.py +0 -0
  234. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic/tools/utils/source_handling/tests/test_source_formatting.py +0 -0
  235. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic_table/__init__.py +0 -0
  236. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic_table/schemas.py +0 -0
  237. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic_table/service.py +0 -0
  238. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/agentic_table/synthetic_chat_event.py +0 -0
  239. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/app/__init__.py +0 -0
  240. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/app/chat_event_filter_options_settings.py +0 -0
  241. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/app/dev_util.py +0 -0
  242. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/app/fast_api_factory.py +0 -0
  243. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/app/feature_flags.py +0 -0
  244. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/app/find_env_file.py +0 -0
  245. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/app/init_logging.py +0 -0
  246. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/app/init_sdk.py +0 -0
  247. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/app/performance/async_tasks.py +0 -0
  248. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/app/performance/async_wrapper.py +0 -0
  249. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/app/schemas.py +0 -0
  250. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/app/unique_settings.py +0 -0
  251. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/app/verification.py +0 -0
  252. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/app/webhook.py +0 -0
  253. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/chat/__init__.py +0 -0
  254. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/chat/cancellation.py +0 -0
  255. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/chat/constants.py +0 -0
  256. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/chat/deprecated/service.py +0 -0
  257. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/chat/rendering.py +0 -0
  258. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/chat/responses_api.py +0 -0
  259. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/chat/service.py +0 -0
  260. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/chat/state.py +0 -0
  261. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/chat/utils.py +0 -0
  262. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/content/__init__.py +0 -0
  263. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/content/constants.py +0 -0
  264. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/content/functions.py +0 -0
  265. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/content/schemas.py +0 -0
  266. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/content/service.py +0 -0
  267. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/content/smart_rules.py +0 -0
  268. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/content/utils.py +0 -0
  269. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/data_extraction/README.md +0 -0
  270. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/data_extraction/__init__.py +0 -0
  271. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/data_extraction/augmented/__init__.py +0 -0
  272. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/data_extraction/augmented/service.py +0 -0
  273. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/data_extraction/base.py +0 -0
  274. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/data_extraction/basic/__init__.py +0 -0
  275. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/data_extraction/basic/config.py +0 -0
  276. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/data_extraction/basic/prompt.py +0 -0
  277. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/data_extraction/basic/service.py +0 -0
  278. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/elicitation/__init__.py +0 -0
  279. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/elicitation/constants.py +0 -0
  280. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/elicitation/exceptions.py +0 -0
  281. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/elicitation/functions.py +0 -0
  282. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/elicitation/schemas.py +0 -0
  283. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/elicitation/service.py +0 -0
  284. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/embedding/__init__.py +0 -0
  285. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/embedding/constants.py +0 -0
  286. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/embedding/functions.py +0 -0
  287. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/embedding/schemas.py +0 -0
  288. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/embedding/service.py +0 -0
  289. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/embedding/utils.py +0 -0
  290. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/experimental/README.md +0 -0
  291. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/experimental/__init__.py +0 -0
  292. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/experimental/_internal/__init__.py +0 -0
  293. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/experimental/_internal/streaming/__init__.py +0 -0
  294. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/experimental/_internal/streaming/common.py +0 -0
  295. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/experimental/_internal/streaming/pattern_replacer.py +0 -0
  296. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/experimental/components/__init__.py +0 -0
  297. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/experimental/components/_base.py +0 -0
  298. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/experimental/components/content_tree/__init__.py +0 -0
  299. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/experimental/components/content_tree/functions.py +0 -0
  300. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/experimental/components/content_tree/schemas.py +0 -0
  301. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/experimental/components/content_tree/service.py +0 -0
  302. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/experimental/components/internal_search/__init__.py +0 -0
  303. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/experimental/components/internal_search/base/__init__.py +0 -0
  304. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/experimental/components/internal_search/base/config.py +0 -0
  305. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/experimental/components/internal_search/base/schemas.py +0 -0
  306. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/experimental/components/internal_search/base/service.py +0 -0
  307. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/experimental/components/internal_search/base/utils.py +0 -0
  308. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/experimental/components/internal_search/chat/__init__.py +0 -0
  309. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/experimental/components/internal_search/chat/config.py +0 -0
  310. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/experimental/components/internal_search/chat/schemas.py +0 -0
  311. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/experimental/components/internal_search/chat/service.py +0 -0
  312. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/experimental/components/internal_search/knowledge_base/__init__.py +0 -0
  313. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/experimental/components/internal_search/knowledge_base/config.py +0 -0
  314. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/experimental/components/internal_search/knowledge_base/schemas.py +0 -0
  315. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/experimental/components/internal_search/knowledge_base/service.py +0 -0
  316. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/experimental/components/internal_search/post_processing/__init__.py +0 -0
  317. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/experimental/components/internal_search/post_processing/config.py +0 -0
  318. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/experimental/components/internal_search/post_processing/service.py +0 -0
  319. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/experimental/content_tree/__init__.py +0 -0
  320. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/experimental/identity/__init__.py +0 -0
  321. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/experimental/integrations/__init__.py +0 -0
  322. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/experimental/integrations/openai/__init__.py +0 -0
  323. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/experimental/integrations/openai/streaming/__init__.py +0 -0
  324. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/__init__.py +0 -0
  325. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/_async_bridge.py +0 -0
  326. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/chat_completions/__init__.py +0 -0
  327. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/chat_completions/complete_with_references.py +0 -0
  328. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/chat_completions/stream_event_router.py +0 -0
  329. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/chat_completions/text_event_handler.py +0 -0
  330. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/chat_completions/tool_call_event_handler.py +0 -0
  331. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/events.py +0 -0
  332. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/protocols/__init__.py +0 -0
  333. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/protocols/chat_completions.py +0 -0
  334. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/protocols/responses.py +0 -0
  335. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/responses/__init__.py +0 -0
  336. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/responses/code_interpreter_event_handler.py +0 -0
  337. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/responses/complete_with_references.py +0 -0
  338. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/responses/completed_event_handler.py +0 -0
  339. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/responses/stream_event_router.py +0 -0
  340. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/responses/text_delta_event_handler.py +0 -0
  341. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/responses/tool_call_event_handler.py +0 -0
  342. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/subscribers/__init__.py +0 -0
  343. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/subscribers/message_persister.py +0 -0
  344. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/subscribers/progress_log_persister.py +0 -0
  345. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/experimental/resources/__init__.py +0 -0
  346. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/experimental/resources/content_folder/__init__.py +0 -0
  347. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/experimental/resources/content_folder/functions.py +0 -0
  348. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/experimental/resources/content_folder/schemas.py +0 -0
  349. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/experimental/resources/content_folder/service.py +0 -0
  350. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/experimental/resources/facades/__init__.py +0 -0
  351. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/experimental/resources/facades/identity/__init__.py +0 -0
  352. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/experimental/resources/facades/identity/service.py +0 -0
  353. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/experimental/resources/feature_flags/README.md +0 -0
  354. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/experimental/resources/feature_flags/__init__.py +0 -0
  355. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/experimental/resources/feature_flags/_graphql_client.py +0 -0
  356. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/experimental/resources/feature_flags/_ttl_cache.py +0 -0
  357. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/experimental/resources/feature_flags/client.py +0 -0
  358. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/experimental/resources/feature_flags/schemas.py +0 -0
  359. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/experimental/resources/feature_flags/settings.py +0 -0
  360. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/experimental/resources/group/__init__.py +0 -0
  361. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/experimental/resources/group/functions.py +0 -0
  362. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/experimental/resources/group/schemas.py +0 -0
  363. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/experimental/resources/group/service.py +0 -0
  364. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/experimental/resources/scheduled_task/__init__.py +0 -0
  365. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/experimental/resources/scheduled_task/cron.py +0 -0
  366. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/experimental/resources/scheduled_task/functions.py +0 -0
  367. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/experimental/resources/scheduled_task/schemas.py +0 -0
  368. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/experimental/resources/scheduled_task/service.py +0 -0
  369. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/experimental/resources/user/__init__.py +0 -0
  370. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/experimental/resources/user/functions.py +0 -0
  371. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/experimental/resources/user/schemas.py +0 -0
  372. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/experimental/resources/user/service.py +0 -0
  373. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/experimental/testing/__init__.py +0 -0
  374. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/framework_utilities/__init__.py +0 -0
  375. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/framework_utilities/langchain/__init__.py +0 -0
  376. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/framework_utilities/langchain/client.py +0 -0
  377. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/framework_utilities/langchain/history.py +0 -0
  378. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/framework_utilities/openai/__init__.py +0 -0
  379. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/framework_utilities/openai/client.py +0 -0
  380. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/framework_utilities/openai/message_builder.py +0 -0
  381. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/framework_utilities/utils.py +0 -0
  382. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/language_model/__init__.py +0 -0
  383. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/language_model/_responses_api_utils.py +0 -0
  384. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/language_model/builder.py +0 -0
  385. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/language_model/constants.py +0 -0
  386. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/language_model/default_language_model.py +0 -0
  387. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/language_model/functions.py +0 -0
  388. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/language_model/infos.py +0 -0
  389. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/language_model/prompt.py +0 -0
  390. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/language_model/reference.py +0 -0
  391. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/language_model/schemas.py +0 -0
  392. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/language_model/service.py +0 -0
  393. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/language_model/settings.py +0 -0
  394. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/language_model/stream_transform.py +0 -0
  395. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/language_model/utils.py +0 -0
  396. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/monitoring/__init__.py +0 -0
  397. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/monitoring/gunicorn.py +0 -0
  398. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/monitoring/middleware.py +0 -0
  399. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/monitoring/registry.py +0 -0
  400. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/protocols/support.py +0 -0
  401. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/services/__init__.py +0 -0
  402. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/services/factory.py +0 -0
  403. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/services/knowledge_base.py +0 -0
  404. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/short_term_memory/__init__.py +0 -0
  405. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/short_term_memory/constants.py +0 -0
  406. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/short_term_memory/functions.py +0 -0
  407. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/short_term_memory/schemas.py +0 -0
  408. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/short_term_memory/service.py +0 -0
  409. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/smart_rules/__init__.py +0 -0
  410. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/unique_toolkit/smart_rules/compile.py +0 -0
  411. {unique_toolkit-2026.28.0.dev9 → unique_toolkit-2026.28.0.dev11}/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.28.0.dev9
3
+ Version: 2026.28.0.dev11
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.28.0.dev11,<2026.28.0rc0
19
+ Requires-Dist: unique-sdk>=2026.28.0.dev12,<2026.28.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
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "unique_toolkit"
3
- version = "2026.28.0.dev9"
3
+ version = "2026.28.0.dev11"
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.28.0.dev11,<2026.28.0rc0",
31
+ "unique-sdk>=2026.28.0.dev12,<2026.28.0rc0",
32
32
  "jambo>=0.1.2,<0.2",
33
33
  "jinja2>=3.1.6,<4",
34
34
  "docxtpl>=0.20.1,<0.21",
@@ -29,6 +29,13 @@ class A2AManager:
29
29
  if not tool_config.is_sub_agent:
30
30
  continue
31
31
 
32
+ if not tool_config.is_enabled:
33
+ self._logger.info(
34
+ "Skipping disabled sub-agent '%s'",
35
+ tool_config.name,
36
+ )
37
+ continue
38
+
32
39
  if not isinstance(tool_config.configuration, SubAgentToolConfig):
33
40
  self._logger.error(
34
41
  "tool_config.configuration must be of type SubAgentToolConfig"
@@ -37,16 +44,23 @@ class A2AManager:
37
44
 
38
45
  sub_agent_tool_config = tool_config.configuration
39
46
 
40
- sub_agents.append(
41
- SubAgentTool(
42
- configuration=sub_agent_tool_config,
43
- event=event,
44
- tool_progress_reporter=self._tool_progress_reporter,
45
- name=tool_config.name,
46
- display_name=tool_config.display_name,
47
- response_watcher=self._response_watcher,
47
+ try:
48
+ sub_agents.append(
49
+ SubAgentTool(
50
+ configuration=sub_agent_tool_config,
51
+ event=event,
52
+ tool_progress_reporter=self._tool_progress_reporter,
53
+ name=tool_config.name,
54
+ display_name=tool_config.display_name,
55
+ response_watcher=self._response_watcher,
56
+ )
57
+ )
58
+ except Exception:
59
+ self._logger.warning(
60
+ "Skipping sub-agent '%s' due to initialization failure.",
61
+ tool_config.name,
62
+ exc_info=True,
48
63
  )
49
- )
50
64
 
51
65
  filtered_tool_config = [
52
66
  tool_config for tool_config in tool_configs if not tool_config.is_sub_agent
@@ -1,3 +1,4 @@
1
+ import logging
1
2
  from enum import StrEnum
2
3
  from typing import Annotated, Any, Generic
3
4
 
@@ -14,9 +15,36 @@ from typing_extensions import TypeVar
14
15
  from unique_toolkit._common.pydantic_helpers import get_configuration_dict
15
16
  from unique_toolkit.agentic.tools.schemas import BaseToolConfig
16
17
 
18
+ logger = logging.getLogger(__name__)
19
+
17
20
  T = TypeVar("T", bound=BaseToolConfig, default=BaseToolConfig)
18
21
 
19
22
 
23
+ def _ensure_base_tool_config(value: dict[str, Any]) -> None:
24
+ """Make configuration parseable; disabled/demoted tools are never built at runtime."""
25
+ configuration = value.get("configuration")
26
+ if not isinstance(configuration, BaseToolConfig):
27
+ value["configuration"] = BaseToolConfig()
28
+
29
+
30
+ def _non_empty_str(value: dict[str, Any], snake_key: str, camel_key: str) -> str:
31
+ raw = value.get(snake_key, value.get(camel_key, ""))
32
+ if raw is None:
33
+ return ""
34
+ return str(raw)
35
+
36
+
37
+ def _is_mcp_tool_payload(value: dict[str, Any]) -> bool:
38
+ if _non_empty_str(value, "mcp_source_id", "mcpSourceId"):
39
+ return True
40
+
41
+ configuration = value.get("configuration", {})
42
+ if isinstance(configuration, dict):
43
+ if _non_empty_str(configuration, "mcp_source_id", "mcpSourceId"):
44
+ return True
45
+ return False
46
+
47
+
20
48
  class ToolIcon(StrEnum):
21
49
  ANALYTICS = "IconAnalytics"
22
50
  BOOK = "IconBook"
@@ -76,11 +104,26 @@ class ToolBuildConfig(BaseModel, Generic[T]):
76
104
  value: Any,
77
105
  info: ValidationInfo,
78
106
  ) -> Any:
79
- """Check the given values for."""
107
+ """Validate and resolve tool configuration based on tool type and name.
108
+
109
+ Disabled tools skip validation entirely.
110
+ Enabled tools that fail validation are demoted to disabled.
111
+ """
80
112
  if not isinstance(value, dict):
81
113
  return value
82
114
 
83
- is_mcp_tool = value.get("mcp_source_id", "") != ""
115
+ if "isEnabled" in value:
116
+ is_enabled = bool(value["isEnabled"])
117
+ elif "is_enabled" in value:
118
+ is_enabled = bool(value["is_enabled"])
119
+ else:
120
+ is_enabled = True
121
+
122
+ if not is_enabled:
123
+ _ensure_base_tool_config(value)
124
+ return value
125
+
126
+ is_mcp_tool = _is_mcp_tool_payload(value)
84
127
  mcp_configuration = value.get("configuration", {})
85
128
 
86
129
  # Import at runtime to avoid circular imports
@@ -102,26 +145,39 @@ class ToolBuildConfig(BaseModel, Generic[T]):
102
145
 
103
146
  configuration = value.get("configuration", {})
104
147
 
105
- if is_sub_agent_tool:
106
- from unique_toolkit.agentic.tools.a2a import ExtendedSubAgentToolConfig
107
-
108
- config = ExtendedSubAgentToolConfig.model_validate(configuration)
109
- elif isinstance(configuration, dict):
110
- # Local import to avoid circular import at module import time
111
- from unique_toolkit.agentic.tools.factory import ToolFactory
112
-
113
- config = ToolFactory.build_tool_config(
114
- value["name"],
115
- **configuration,
148
+ try:
149
+ if is_sub_agent_tool:
150
+ from unique_toolkit.agentic.tools.a2a import ExtendedSubAgentToolConfig
151
+
152
+ config = ExtendedSubAgentToolConfig.model_validate(configuration)
153
+ elif isinstance(configuration, dict):
154
+ # Local import to avoid circular import at module import time
155
+ from unique_toolkit.agentic.tools.factory import ToolFactory
156
+
157
+ config = ToolFactory.build_tool_config(
158
+ value["name"],
159
+ **configuration,
160
+ )
161
+ else:
162
+ # Check that the type of config matches the tool name
163
+ from unique_toolkit.agentic.tools.factory import ToolFactory
164
+
165
+ assert isinstance(
166
+ configuration,
167
+ ToolFactory.tool_config_map[value["name"]], # pyright: ignore[reportArgumentType]
168
+ )
169
+ config = configuration
170
+ except Exception:
171
+ tool_name = value.get("name", "<unknown>")
172
+ logger.warning(
173
+ "Tool '%s' has invalid configuration and will be disabled.",
174
+ tool_name,
175
+ exc_info=True,
116
176
  )
117
- else:
118
- # Check that the type of config matches the tool name
119
- from unique_toolkit.agentic.tools.factory import ToolFactory
177
+ value["is_enabled"] = False
178
+ value["isEnabled"] = False
179
+ _ensure_base_tool_config(value)
180
+ return value
120
181
 
121
- assert isinstance(
122
- configuration,
123
- ToolFactory.tool_config_map[value["name"]], # pyright: ignore[reportArgumentType]
124
- )
125
- config = configuration
126
182
  value["configuration"] = config
127
183
  return value
@@ -147,7 +147,9 @@ class _ToolManager(Generic[_ApiMode]):
147
147
  self._tool_choices = run_context.tool_choices
148
148
  self._disabled_tools = run_context.disabled_tools
149
149
  self._exclusive_tools = [
150
- tool.name for tool in self._config.tools if tool.is_exclusive
150
+ tool.name
151
+ for tool in self._config.tools
152
+ if tool.is_exclusive and tool.is_enabled
151
153
  ]
152
154
  # this needs to be a set of strings to avoid duplicates
153
155
  self._tool_evaluation_check_list: set[EvaluationMetricName] = set()
@@ -199,28 +201,39 @@ class _ToolManager(Generic[_ApiMode]):
199
201
 
200
202
  registered_tool_names.update(t.name for t in self._mcp_tools)
201
203
 
202
- # Build internal tools from configurations
204
+ # Build internal tools from configurations, skipping disabled and failing tools
203
205
  self._internal_tools.clear()
206
+ safe_executor = SafeTaskExecutor(logger=self._logger, log_exceptions=False)
204
207
  for t in tool_configs:
205
208
  if t.name in registered_tool_names:
206
209
  continue
207
210
  if t.name in OpenAIBuiltInToolName:
208
211
  continue
209
- if tool_init_event is not None:
210
- built_tool = ToolFactory.build_tool_with_settings(
211
- t.name,
212
- t,
213
- t.configuration,
214
- tool_init_event,
215
- tool_progress_reporter=self._tool_progress_reporter,
216
- )
217
- else:
212
+ if not t.is_enabled:
213
+ self._logger.info("Skipping disabled tool '%s'", t.name)
214
+ continue
215
+ if tool_init_event is None:
218
216
  self._logger.info(
219
217
  "Skipping internal tool '%s' (requires chat event for initialization)",
220
218
  t.name,
221
219
  )
222
220
  continue
223
- self._internal_tools.append(built_tool)
221
+ result = safe_executor.execute(
222
+ ToolFactory.build_tool_with_settings,
223
+ t.name,
224
+ t,
225
+ t.configuration,
226
+ tool_init_event,
227
+ tool_progress_reporter=self._tool_progress_reporter,
228
+ )
229
+ if result.success:
230
+ self._internal_tools.append(result.unpack())
231
+ else:
232
+ self._logger.warning(
233
+ "Skipping tool '%s' due to initialization failure.",
234
+ t.name,
235
+ exc_info=result.exception,
236
+ )
224
237
 
225
238
  # Combine all types of tools
226
239
  self.available_tools = (
@@ -267,6 +267,9 @@ def create_message(
267
267
  references: list[ContentReference] | None = None,
268
268
  debug_info: dict[str, Any] | None = None,
269
269
  set_completed_at: bool | None = False,
270
+ segment_kind: str | None = None,
271
+ response_turn_id: str | None = None,
272
+ segment_index: int | None = None,
270
273
  ) -> ChatMessage:
271
274
  """Creates a message in the chat session synchronously.
272
275
 
@@ -281,6 +284,9 @@ def create_message(
281
284
  references (list[ContentReference], optional): list of ContentReference objects. Defaults to None.
282
285
  debug_info (dict[str, Any]], optional): Debug information. Defaults to None.
283
286
  set_completed_at (Optional[bool]): Whether to set the completedAt field with the current date time. Defaults to False.
287
+ segment_kind (str, optional): The segment kind (e.g. "PROCESS", "PREFACE", "ELICITATION", "ANSWER"). Defaults to None.
288
+ response_turn_id (str, optional): The response turn ID grouping segments of the same assistant turn. Defaults to None.
289
+ segment_index (int, optional): The segment index within the turn. Defaults to None (derived by node-chat).
284
290
 
285
291
  Returns:
286
292
  ChatMessage: The created message.
@@ -304,6 +310,9 @@ def create_message(
304
310
  references=references,
305
311
  debug_info=debug_info,
306
312
  set_completed_at=set_completed_at,
313
+ segment_kind=segment_kind,
314
+ response_turn_id=response_turn_id,
315
+ segment_index=segment_index,
307
316
  )
308
317
 
309
318
  message = unique_sdk.Message.create(**params)
@@ -324,8 +333,11 @@ async def create_message_async(
324
333
  references: list[ContentReference] | None = None,
325
334
  debug_info: dict[str, Any] | None = None,
326
335
  set_completed_at: bool | None = False,
336
+ segment_kind: str | None = None,
337
+ response_turn_id: str | None = None,
338
+ segment_index: int | None = None,
327
339
  ):
328
- """Creates a message in the chat session synchronously.
340
+ """Creates a message in the chat session asynchronously.
329
341
 
330
342
  Args:
331
343
  user_id (str): The user ID.
@@ -338,6 +350,9 @@ async def create_message_async(
338
350
  references (list[ContentReference], optional): list of ContentReference objects. Defaults to None.
339
351
  debug_info (dict[str, Any]], optional): Debug information. Defaults to None.
340
352
  set_completed_at (Optional[bool]): Whether to set the completedAt field with the current date time. Defaults to False.
353
+ segment_kind (str, optional): The segment kind (e.g. "PROCESS", "PREFACE", "ELICITATION", "ANSWER"). Defaults to None.
354
+ response_turn_id (str, optional): The response turn ID grouping segments of the same assistant turn. Defaults to None.
355
+ segment_index (int, optional): The segment index within the turn. Defaults to None (derived by node-chat).
341
356
 
342
357
  Returns:
343
358
  ChatMessage: The created message.
@@ -361,6 +376,9 @@ async def create_message_async(
361
376
  references=references,
362
377
  debug_info=debug_info,
363
378
  set_completed_at=set_completed_at,
379
+ segment_kind=segment_kind,
380
+ response_turn_id=response_turn_id,
381
+ segment_index=segment_index,
364
382
  )
365
383
 
366
384
  message = await unique_sdk.Message.create_async(**params)
@@ -381,6 +399,9 @@ def _construct_message_create_params(
381
399
  references: list[ContentReference] | None = None,
382
400
  debug_info: dict[str, Any] | None = None,
383
401
  set_completed_at: bool | None = False,
402
+ segment_kind: str | None = None,
403
+ response_turn_id: str | None = None,
404
+ segment_index: int | None = None,
384
405
  ) -> dict[str, Any]:
385
406
  if original_content is None:
386
407
  original_content = content
@@ -399,6 +420,12 @@ def _construct_message_create_params(
399
420
  "debugInfo": debug_info or {},
400
421
  "completedAt": _time_utils.get_datetime_now() if set_completed_at else None,
401
422
  }
423
+ if segment_kind is not None:
424
+ params["segmentKind"] = segment_kind
425
+ if response_turn_id is not None:
426
+ params["responseTurnId"] = response_turn_id
427
+ if segment_index is not None:
428
+ params["segmentIndex"] = segment_index
402
429
  return params
403
430
 
404
431
 
@@ -146,6 +146,9 @@ class ChatMessage(BaseModel):
146
146
  updated_at: datetime | None = None
147
147
  references: list[ContentReference] | None = []
148
148
  assessment: list[ChatMessageAssessment] | None = None
149
+ segment_kind: str | None = None
150
+ response_turn_id: str | None = None
151
+ segment_index: int | None = None
149
152
 
150
153
  # TODO make sdk return role consistently in lowercase
151
154
  # Currently needed as sdk returns role in uppercase
@@ -213,8 +216,9 @@ class MessageLogUncitedReferences(BaseModel):
213
216
 
214
217
  class MessageLogEvent(BaseModel):
215
218
  model_config = model_config
216
- type: Literal["WebSearch", "InternalSearch"]
219
+ type: Literal["WebSearch", "InternalSearch", "Elicitation", "Thinking", "ToolCall"]
217
220
  text: str
221
+ step_type: str | None = None
218
222
 
219
223
 
220
224
  class MessageLogDetails(BaseModel):
@@ -223,6 +227,10 @@ class MessageLogDetails(BaseModel):
223
227
  status: str | None = Field(
224
228
  default=None, description="Overarching status of the current message log"
225
229
  )
230
+ debug: dict[str, Any] | None = Field(
231
+ default=None,
232
+ description="Raw tool tracing: tool name, input args (stdin), truncated output (stdout) for debugging",
233
+ )
226
234
 
227
235
 
228
236
  class MessageLog(BaseModel):
@@ -471,6 +471,9 @@ class ChatService(ChatServiceDeprecated):
471
471
  references: list[ContentReference] | None = None,
472
472
  debug_info: dict[str, Any] | None = None,
473
473
  set_completed_at: bool | None = False,
474
+ segment_kind: str | None = None,
475
+ response_turn_id: str | None = None,
476
+ segment_index: int | None = None,
474
477
  ) -> ChatMessage:
475
478
  """Creates a message in the chat session synchronously.
476
479
 
@@ -480,6 +483,9 @@ class ChatService(ChatServiceDeprecated):
480
483
  references (list[ContentReference]): list of ContentReference objects. Defaults to None.
481
484
  debug_info (dict[str, Any]]): Debug information. Defaults to None.
482
485
  set_completed_at (Optional[bool]): Whether to set the completedAt field with the current date time. Defaults to False.
486
+ segment_kind (str, optional): The segment kind (e.g. "PROCESS", "PREFACE", "ELICITATION", "ANSWER"). Defaults to None.
487
+ response_turn_id (str, optional): The response turn ID grouping segments of the same assistant turn. Defaults to None.
488
+ segment_index (int, optional): The segment index within the turn. Defaults to None (derived by node-chat).
483
489
 
484
490
  Returns:
485
491
  ChatMessage: The created message.
@@ -499,6 +505,9 @@ class ChatService(ChatServiceDeprecated):
499
505
  references=references,
500
506
  debug_info=debug_info,
501
507
  set_completed_at=set_completed_at,
508
+ segment_kind=segment_kind,
509
+ response_turn_id=response_turn_id,
510
+ segment_index=segment_index,
502
511
  )
503
512
  # Update the assistant message id
504
513
  self._assistant_message_id = chat_message.id or "unknown"
@@ -511,6 +520,9 @@ class ChatService(ChatServiceDeprecated):
511
520
  references: list[ContentReference] | None = None,
512
521
  debug_info: dict[str, Any] | None = None,
513
522
  set_completed_at: bool | None = False,
523
+ segment_kind: str | None = None,
524
+ response_turn_id: str | None = None,
525
+ segment_index: int | None = None,
514
526
  ) -> ChatMessage:
515
527
  """Creates a message in the chat session asynchronously.
516
528
 
@@ -520,6 +532,9 @@ class ChatService(ChatServiceDeprecated):
520
532
  references (list[ContentReference]): list of references. Defaults to None.
521
533
  debug_info (dict[str, Any]]): Debug information. Defaults to None.
522
534
  set_completed_at (Optional[bool]): Whether to set the completedAt field with the current date time. Defaults to False.
535
+ segment_kind (str, optional): The segment kind (e.g. "PROCESS", "PREFACE", "ELICITATION", "ANSWER"). Defaults to None.
536
+ response_turn_id (str, optional): The response turn ID grouping segments of the same assistant turn. Defaults to None.
537
+ segment_index (int, optional): The segment index within the turn. Defaults to None (derived by node-chat).
523
538
 
524
539
  Returns:
525
540
  ChatMessage: The created message.
@@ -539,6 +554,9 @@ class ChatService(ChatServiceDeprecated):
539
554
  references=references,
540
555
  debug_info=debug_info,
541
556
  set_completed_at=set_completed_at,
557
+ segment_kind=segment_kind,
558
+ response_turn_id=response_turn_id,
559
+ segment_index=segment_index,
542
560
  )
543
561
  # Update the assistant message id
544
562
  self._assistant_message_id = chat_message.id or "unknown"