unique-toolkit 2026.40.0.dev2__tar.gz → 2026.40.0.dev4__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 (428) hide show
  1. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/PKG-INFO +2 -2
  2. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/pyproject.toml +2 -2
  3. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/feature_flags/feature_flags.py +8 -5
  4. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/postprocessors/code_display.py +10 -13
  5. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/postprocessors/generated_files.py +22 -22
  6. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/tool/config.py +3 -3
  7. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/chat/functions.py +40 -0
  8. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/chat/schemas.py +6 -0
  9. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/services/chat_service.py +31 -0
  10. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/README.md +0 -0
  11. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/__init__.py +0 -0
  12. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/_common/__init__.py +0 -0
  13. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/_common/_base_service.py +0 -0
  14. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/_common/_time_utils.py +0 -0
  15. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/_common/api_calling/human_verification_manager.py +0 -0
  16. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/_common/base_model_type_attribute.py +0 -0
  17. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/_common/chunk_relevancy_sorter/config.py +0 -0
  18. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/_common/chunk_relevancy_sorter/exception.py +0 -0
  19. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/_common/chunk_relevancy_sorter/schemas.py +0 -0
  20. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/_common/chunk_relevancy_sorter/service.py +0 -0
  21. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/_common/chunk_relevancy_sorter/tests/test_service.py +0 -0
  22. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/_common/config_checker/README.md +0 -0
  23. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/_common/config_checker/__init__.py +0 -0
  24. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/_common/config_checker/__main__.py +0 -0
  25. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/_common/config_checker/cli.py +0 -0
  26. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/_common/config_checker/differ.py +0 -0
  27. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/_common/config_checker/exporter.py +0 -0
  28. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/_common/config_checker/models.py +0 -0
  29. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/_common/config_checker/registry.py +0 -0
  30. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/_common/config_checker/validator.py +0 -0
  31. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/_common/default_language_model.py +0 -0
  32. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/_common/docx_generator/__init__.py +0 -0
  33. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/_common/docx_generator/config.py +0 -0
  34. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/_common/docx_generator/pandoc_converter.py +0 -0
  35. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/_common/docx_generator/schemas.py +0 -0
  36. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/_common/docx_generator/service.py +0 -0
  37. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/_common/docx_generator/template/Doc Template.docx +0 -0
  38. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/_common/endpoint_builder.py +0 -0
  39. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/_common/endpoint_requestor.py +0 -0
  40. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/_common/event_bus.py +0 -0
  41. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/_common/exception.py +0 -0
  42. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/_common/execution.py +0 -0
  43. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/_common/experimental/endpoint_builder.py +0 -0
  44. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/_common/experimental/endpoint_requestor.py +0 -0
  45. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/_common/experimental/write_up_agent/README.md +0 -0
  46. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/_common/experimental/write_up_agent/__init__.py +0 -0
  47. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/_common/experimental/write_up_agent/agent.py +0 -0
  48. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/_common/experimental/write_up_agent/config.py +0 -0
  49. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/_common/experimental/write_up_agent/examples/data.csv +0 -0
  50. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/_common/experimental/write_up_agent/examples/example_usage.py +0 -0
  51. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/_common/experimental/write_up_agent/schemas.py +0 -0
  52. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/_common/experimental/write_up_agent/services/__init__.py +0 -0
  53. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/__init__.py +0 -0
  54. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/exceptions.py +0 -0
  55. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/service.py +0 -0
  56. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/utils.py +0 -0
  57. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/__init__.py +0 -0
  58. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/config.py +0 -0
  59. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/exceptions.py +0 -0
  60. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/prompts/config.py +0 -0
  61. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/prompts/system_prompt.j2 +0 -0
  62. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/prompts/user_prompt.j2 +0 -0
  63. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/service.py +0 -0
  64. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/__init__.py +0 -0
  65. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/default_template.j2 +0 -0
  66. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/exceptions.py +0 -0
  67. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/service.py +0 -0
  68. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/utils.py +0 -0
  69. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/_common/experimental/write_up_agent/utils.py +0 -0
  70. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/_common/feature_flags/schema.py +0 -0
  71. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/_common/metadata_filter_scope.py +0 -0
  72. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/_common/pydantic/rjsf_tags.py +0 -0
  73. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/_common/pydantic_helpers.py +0 -0
  74. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/_common/referencing.py +0 -0
  75. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/_common/string_utilities.py +0 -0
  76. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/_common/tests/test_referencing.py +0 -0
  77. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/_common/tests/test_string_utilities.py +0 -0
  78. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/_common/token/__init__.py +0 -0
  79. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/_common/token/image_token_counting.py +0 -0
  80. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/_common/token/token_counting.py +0 -0
  81. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/_common/token/tokenizers/deepseek/tokenizer.json +0 -0
  82. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/_common/token/tokenizers/qwen/tokenizer.json +0 -0
  83. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/_common/utils/__init__.py +0 -0
  84. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/_common/utils/files.py +0 -0
  85. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/_common/utils/image/encode.py +0 -0
  86. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/_common/utils/jinja/helpers.py +0 -0
  87. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/_common/utils/jinja/render.py +0 -0
  88. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/_common/utils/jinja/schema.py +0 -0
  89. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/_common/utils/jinja/utils.py +0 -0
  90. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/_common/utils/structured_output/__init__.py +0 -0
  91. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/_common/utils/structured_output/schema.py +0 -0
  92. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/_common/utils/write_configuration.py +0 -0
  93. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/_common/validate_required_values.py +0 -0
  94. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/_common/validators.py +0 -0
  95. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/__init__.py +0 -0
  96. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/debug_info_manager/debug_info_manager.py +0 -0
  97. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/debug_info_manager/test/test_debug_info_manager.py +0 -0
  98. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/evaluation/config.py +0 -0
  99. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/evaluation/context_relevancy/prompts/__init__.py +0 -0
  100. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/evaluation/context_relevancy/prompts/system_prompt.j2 +0 -0
  101. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/evaluation/context_relevancy/prompts/user_prompt.j2 +0 -0
  102. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/evaluation/context_relevancy/schema.py +0 -0
  103. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/evaluation/context_relevancy/service.py +0 -0
  104. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/evaluation/evaluation_manager.py +0 -0
  105. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/evaluation/exception.py +0 -0
  106. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/evaluation/hallucination/constants.py +0 -0
  107. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/evaluation/hallucination/hallucination_evaluation.py +0 -0
  108. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/evaluation/hallucination/prompts/__init__.py +0 -0
  109. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/evaluation/hallucination/prompts/system_prompt.j2 +0 -0
  110. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/evaluation/hallucination/prompts/user_prompt.j2 +0 -0
  111. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/evaluation/hallucination/service.py +0 -0
  112. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/evaluation/hallucination/utils.py +0 -0
  113. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/evaluation/output_parser.py +0 -0
  114. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/evaluation/schemas.py +0 -0
  115. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/evaluation/tests/fixtures.py +0 -0
  116. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/evaluation/tests/test_config.py +0 -0
  117. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/evaluation/tests/test_context_relevancy_service.py +0 -0
  118. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/evaluation/tests/test_hallucination_constants.py +0 -0
  119. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/evaluation/tests/test_hallucination_external_context.py +0 -0
  120. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/evaluation/tests/test_hallucination_utils.py +0 -0
  121. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/evaluation/tests/test_output_parser.py +0 -0
  122. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/evaluation/tests/test_prompt_loaders.py +0 -0
  123. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/evaluation/utils.py +0 -0
  124. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/feature_flags/__init__.py +0 -0
  125. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/history_manager/history_construction_with_contents.py +0 -0
  126. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/history_manager/history_manager.py +0 -0
  127. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/history_manager/loop_token_reducer.py +0 -0
  128. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/history_manager/settings.py +0 -0
  129. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/history_manager/utils.py +0 -0
  130. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/loop_runner/__init__.py +0 -0
  131. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/loop_runner/_iteration_handler_utils.py +0 -0
  132. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/loop_runner/_responses_iteration_handler_utils.py +0 -0
  133. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/loop_runner/_responses_stream_handler_utils.py +0 -0
  134. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/loop_runner/_stream_handler_utils.py +0 -0
  135. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/loop_runner/base.py +0 -0
  136. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/loop_runner/middleware/__init__.py +0 -0
  137. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/loop_runner/middleware/planning/__init__.py +0 -0
  138. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/loop_runner/middleware/planning/planning.py +0 -0
  139. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/loop_runner/middleware/planning/schema.py +0 -0
  140. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/loop_runner/runners/__init__.py +0 -0
  141. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/loop_runner/runners/basic.py +0 -0
  142. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/loop_runner/runners/mistral/__init__.py +0 -0
  143. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/loop_runner/runners/mistral/mistral_runner.py +0 -0
  144. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/loop_runner/runners/qwen/__init__.py +0 -0
  145. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/loop_runner/runners/qwen/helpers.py +0 -0
  146. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/loop_runner/runners/qwen/qwen_runner.py +0 -0
  147. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/message_log_manager/__init__.py +0 -0
  148. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/message_log_manager/service.py +0 -0
  149. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/message_log_order.py +0 -0
  150. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/postprocessor/postprocessor_manager.py +0 -0
  151. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/reference_manager/reference_manager.py +0 -0
  152. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/reference_manager/tests/test_external_context.py +0 -0
  153. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/responses_api/__init__.py +0 -0
  154. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/responses_api/postprocessors/code_display.py +0 -0
  155. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/responses_api/postprocessors/generated_files.py +0 -0
  156. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/responses_api/stream_handler.py +0 -0
  157. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/short_term_memory_manager/persistent_short_term_memory_manager.py +0 -0
  158. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/thinking_manager/thinking_manager.py +0 -0
  159. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/tools/__init__.py +0 -0
  160. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/tools/a2a/__init__.py +0 -0
  161. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/tools/a2a/config.py +0 -0
  162. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/tools/a2a/evaluation/__init__.py +0 -0
  163. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/tools/a2a/evaluation/_utils.py +0 -0
  164. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/tools/a2a/evaluation/config.py +0 -0
  165. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/tools/a2a/evaluation/evaluator.py +0 -0
  166. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/tools/a2a/evaluation/summarization_user_message.j2 +0 -0
  167. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/tools/a2a/manager.py +0 -0
  168. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/tools/a2a/postprocessing/__init__.py +0 -0
  169. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/tools/a2a/postprocessing/_display_utils.py +0 -0
  170. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/tools/a2a/postprocessing/_ref_utils.py +0 -0
  171. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/tools/a2a/postprocessing/config.py +0 -0
  172. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/tools/a2a/postprocessing/display.py +0 -0
  173. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/tools/a2a/postprocessing/references.py +0 -0
  174. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_display.py +0 -0
  175. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_display_utils.py +0 -0
  176. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_ref_utils.py +0 -0
  177. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_references.py +0 -0
  178. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/tools/a2a/prompts.py +0 -0
  179. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/tools/a2a/response_watcher/__init__.py +0 -0
  180. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/tools/a2a/response_watcher/service.py +0 -0
  181. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/tools/a2a/tool/__init__.py +0 -0
  182. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/tools/a2a/tool/_memory.py +0 -0
  183. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/tools/a2a/tool/_schema.py +0 -0
  184. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/tools/a2a/tool/config.py +0 -0
  185. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/tools/a2a/tool/service.py +0 -0
  186. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/tools/a2a/tool/test/test_service_utils.py +0 -0
  187. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/tools/agent_chunks_hanlder.py +0 -0
  188. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/tools/config.py +0 -0
  189. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/tools/experimental/__init__.py +0 -0
  190. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/tools/experimental/ask_user_tool/__init__.py +0 -0
  191. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/tools/experimental/ask_user_tool/config.py +0 -0
  192. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/tools/experimental/ask_user_tool/tool.py +0 -0
  193. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/tools/experimental/open_file_tool/__init__.py +0 -0
  194. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/tools/experimental/open_file_tool/config.py +0 -0
  195. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/tools/experimental/open_file_tool/runtime.py +0 -0
  196. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/tools/experimental/open_file_tool/tool.py +0 -0
  197. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/tools/experimental/retrieve_search_scope_tool/__init__.py +0 -0
  198. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/tools/experimental/retrieve_search_scope_tool/config.py +0 -0
  199. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/tools/experimental/retrieve_search_scope_tool/tool.py +0 -0
  200. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/tools/experimental/todo/__init__.py +0 -0
  201. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/tools/experimental/todo/config.py +0 -0
  202. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/tools/experimental/todo/prompts/__init__.py +0 -0
  203. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/tools/experimental/todo/prompts/execution_reminder.j2 +0 -0
  204. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/tools/experimental/todo/prompts/system_prompt.j2 +0 -0
  205. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/tools/experimental/todo/prompts/tool_description.j2 +0 -0
  206. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/tools/experimental/todo/prompts/verification_nudge.j2 +0 -0
  207. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/tools/experimental/todo/schemas.py +0 -0
  208. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/tools/experimental/todo/service.py +0 -0
  209. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/tools/factory.py +0 -0
  210. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/tools/mcp/__init__.py +0 -0
  211. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/tools/mcp/manager.py +0 -0
  212. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/tools/mcp/models.py +0 -0
  213. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/tools/mcp/tool_wrapper.py +0 -0
  214. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/tools/names.py +0 -0
  215. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/tools/openai_builtin/__init__.py +0 -0
  216. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/tools/openai_builtin/base.py +0 -0
  217. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/__init__.py +0 -0
  218. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/activator/__init__.py +0 -0
  219. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/activator/config.py +0 -0
  220. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/activator/service.py +0 -0
  221. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/builder/__init__.py +0 -0
  222. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/builder/_container.py +0 -0
  223. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/builder/_files.py +0 -0
  224. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/builder/_memory.py +0 -0
  225. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/builder/builder.py +0 -0
  226. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/config.py +0 -0
  227. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/postprocessors/__init__.py +0 -0
  228. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/postprocessors/artifacts.py +0 -0
  229. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/postprocessors/office_preview.py +0 -0
  230. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/schemas.py +0 -0
  231. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/tool/__init__.py +0 -0
  232. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/tool/service.py +0 -0
  233. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/tools/openai_builtin/manager.py +0 -0
  234. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/tools/run_context.py +0 -0
  235. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/tools/schemas.py +0 -0
  236. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/tools/test/test_mcp_manager.py +0 -0
  237. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/tools/test/test_tool_progress_reporter.py +0 -0
  238. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/tools/tool.py +0 -0
  239. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/tools/tool_manager.py +0 -0
  240. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/tools/tool_progress_reporter.py +0 -0
  241. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/tools/utils/__init__.py +0 -0
  242. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/tools/utils/source_handling/__init__.py +0 -0
  243. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/tools/utils/source_handling/schema.py +0 -0
  244. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/tools/utils/source_handling/source_formatting.py +0 -0
  245. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic/tools/utils/source_handling/tests/test_source_formatting.py +0 -0
  246. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic_table/__init__.py +0 -0
  247. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic_table/schemas.py +0 -0
  248. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic_table/service.py +0 -0
  249. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/agentic_table/synthetic_chat_event.py +0 -0
  250. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/app/__init__.py +0 -0
  251. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/app/chat_event_filter_options_settings.py +0 -0
  252. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/app/dev_util.py +0 -0
  253. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/app/fast_api_factory.py +0 -0
  254. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/app/feature_flags.py +0 -0
  255. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/app/find_env_file.py +0 -0
  256. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/app/init_logging.py +0 -0
  257. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/app/init_sdk.py +0 -0
  258. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/app/performance/async_tasks.py +0 -0
  259. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/app/performance/async_wrapper.py +0 -0
  260. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/app/schemas.py +0 -0
  261. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/app/unique_settings.py +0 -0
  262. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/app/verification.py +0 -0
  263. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/app/webhook.py +0 -0
  264. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/chat/__init__.py +0 -0
  265. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/chat/cancellation.py +0 -0
  266. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/chat/constants.py +0 -0
  267. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/chat/deprecated/__init__.py +0 -0
  268. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/chat/deprecated/service.py +0 -0
  269. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/chat/rendering.py +0 -0
  270. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/chat/responses_api.py +0 -0
  271. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/chat/service.py +0 -0
  272. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/chat/state.py +0 -0
  273. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/chat/utils.py +0 -0
  274. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/content/__init__.py +0 -0
  275. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/content/constants.py +0 -0
  276. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/content/functions.py +0 -0
  277. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/content/schemas.py +0 -0
  278. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/content/service.py +0 -0
  279. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/content/smart_rules.py +0 -0
  280. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/content/utils.py +0 -0
  281. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/data_extraction/README.md +0 -0
  282. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/data_extraction/__init__.py +0 -0
  283. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/data_extraction/augmented/__init__.py +0 -0
  284. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/data_extraction/augmented/service.py +0 -0
  285. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/data_extraction/base.py +0 -0
  286. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/data_extraction/basic/__init__.py +0 -0
  287. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/data_extraction/basic/config.py +0 -0
  288. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/data_extraction/basic/prompt.py +0 -0
  289. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/data_extraction/basic/service.py +0 -0
  290. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/elicitation/__init__.py +0 -0
  291. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/elicitation/constants.py +0 -0
  292. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/elicitation/exceptions.py +0 -0
  293. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/elicitation/functions.py +0 -0
  294. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/elicitation/schemas.py +0 -0
  295. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/elicitation/service.py +0 -0
  296. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/embedding/__init__.py +0 -0
  297. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/embedding/constants.py +0 -0
  298. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/embedding/functions.py +0 -0
  299. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/embedding/schemas.py +0 -0
  300. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/embedding/service.py +0 -0
  301. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/embedding/utils.py +0 -0
  302. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/experimental/README.md +0 -0
  303. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/experimental/__init__.py +0 -0
  304. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/experimental/_internal/__init__.py +0 -0
  305. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/experimental/_internal/streaming/__init__.py +0 -0
  306. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/experimental/_internal/streaming/common.py +0 -0
  307. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/experimental/_internal/streaming/pattern_replacer.py +0 -0
  308. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/experimental/components/__init__.py +0 -0
  309. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/experimental/components/_base.py +0 -0
  310. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/experimental/components/content_tree/__init__.py +0 -0
  311. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/experimental/components/content_tree/functions.py +0 -0
  312. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/experimental/components/content_tree/schemas.py +0 -0
  313. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/experimental/components/content_tree/service.py +0 -0
  314. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/experimental/components/internal_search/__init__.py +0 -0
  315. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/experimental/components/internal_search/base/__init__.py +0 -0
  316. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/experimental/components/internal_search/base/config.py +0 -0
  317. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/experimental/components/internal_search/base/schemas.py +0 -0
  318. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/experimental/components/internal_search/base/service.py +0 -0
  319. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/experimental/components/internal_search/base/utils.py +0 -0
  320. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/experimental/components/internal_search/chat/__init__.py +0 -0
  321. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/experimental/components/internal_search/chat/config.py +0 -0
  322. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/experimental/components/internal_search/chat/schemas.py +0 -0
  323. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/experimental/components/internal_search/chat/service.py +0 -0
  324. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/experimental/components/internal_search/knowledge_base/__init__.py +0 -0
  325. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/experimental/components/internal_search/knowledge_base/config.py +0 -0
  326. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/experimental/components/internal_search/knowledge_base/schemas.py +0 -0
  327. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/experimental/components/internal_search/knowledge_base/service.py +0 -0
  328. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/experimental/components/internal_search/post_processing/__init__.py +0 -0
  329. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/experimental/components/internal_search/post_processing/config.py +0 -0
  330. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/experimental/components/internal_search/post_processing/service.py +0 -0
  331. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/experimental/content_tree/__init__.py +0 -0
  332. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/experimental/identity/__init__.py +0 -0
  333. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/experimental/integrations/__init__.py +0 -0
  334. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/experimental/integrations/openai/__init__.py +0 -0
  335. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/experimental/integrations/openai/streaming/__init__.py +0 -0
  336. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/__init__.py +0 -0
  337. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/_async_bridge.py +0 -0
  338. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/_model_params.py +0 -0
  339. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/chat_completions/__init__.py +0 -0
  340. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/chat_completions/complete_with_references.py +0 -0
  341. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/chat_completions/stream_event_router.py +0 -0
  342. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/chat_completions/text_event_handler.py +0 -0
  343. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/chat_completions/tool_call_event_handler.py +0 -0
  344. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/events.py +0 -0
  345. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/protocols/__init__.py +0 -0
  346. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/protocols/chat_completions.py +0 -0
  347. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/protocols/responses.py +0 -0
  348. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/responses/__init__.py +0 -0
  349. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/responses/code_interpreter_event_handler.py +0 -0
  350. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/responses/complete_with_references.py +0 -0
  351. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/responses/completed_event_handler.py +0 -0
  352. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/responses/stream_event_router.py +0 -0
  353. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/responses/text_delta_event_handler.py +0 -0
  354. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/responses/tool_call_event_handler.py +0 -0
  355. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/subscribers/__init__.py +0 -0
  356. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/subscribers/message_persister.py +0 -0
  357. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/subscribers/progress_log_persister.py +0 -0
  358. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/experimental/resources/__init__.py +0 -0
  359. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/experimental/resources/content_folder/__init__.py +0 -0
  360. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/experimental/resources/content_folder/functions.py +0 -0
  361. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/experimental/resources/content_folder/schemas.py +0 -0
  362. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/experimental/resources/content_folder/service.py +0 -0
  363. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/experimental/resources/facades/__init__.py +0 -0
  364. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/experimental/resources/facades/identity/__init__.py +0 -0
  365. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/experimental/resources/facades/identity/service.py +0 -0
  366. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/experimental/resources/feature_flags/README.md +0 -0
  367. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/experimental/resources/feature_flags/__init__.py +0 -0
  368. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/experimental/resources/feature_flags/_graphql_client.py +0 -0
  369. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/experimental/resources/feature_flags/_ttl_cache.py +0 -0
  370. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/experimental/resources/feature_flags/client.py +0 -0
  371. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/experimental/resources/feature_flags/schemas.py +0 -0
  372. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/experimental/resources/feature_flags/settings.py +0 -0
  373. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/experimental/resources/group/__init__.py +0 -0
  374. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/experimental/resources/group/functions.py +0 -0
  375. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/experimental/resources/group/schemas.py +0 -0
  376. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/experimental/resources/group/service.py +0 -0
  377. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/experimental/resources/scheduled_task/__init__.py +0 -0
  378. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/experimental/resources/scheduled_task/cron.py +0 -0
  379. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/experimental/resources/scheduled_task/functions.py +0 -0
  380. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/experimental/resources/scheduled_task/schemas.py +0 -0
  381. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/experimental/resources/scheduled_task/service.py +0 -0
  382. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/experimental/resources/user/__init__.py +0 -0
  383. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/experimental/resources/user/functions.py +0 -0
  384. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/experimental/resources/user/schemas.py +0 -0
  385. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/experimental/resources/user/service.py +0 -0
  386. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/experimental/testing/__init__.py +0 -0
  387. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/framework_utilities/__init__.py +0 -0
  388. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/framework_utilities/langchain/__init__.py +0 -0
  389. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/framework_utilities/langchain/client.py +0 -0
  390. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/framework_utilities/langchain/history.py +0 -0
  391. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/framework_utilities/openai/__init__.py +0 -0
  392. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/framework_utilities/openai/client.py +0 -0
  393. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/framework_utilities/openai/message_builder.py +0 -0
  394. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/framework_utilities/utils.py +0 -0
  395. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/language_model/__init__.py +0 -0
  396. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/language_model/_responses_api_utils.py +0 -0
  397. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/language_model/builder.py +0 -0
  398. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/language_model/constants.py +0 -0
  399. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/language_model/default_language_model.py +0 -0
  400. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/language_model/functions.py +0 -0
  401. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/language_model/infos.py +0 -0
  402. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/language_model/invocation_stats.py +0 -0
  403. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/language_model/model_costs.py +0 -0
  404. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/language_model/prompt.py +0 -0
  405. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/language_model/reference.py +0 -0
  406. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/language_model/schemas.py +0 -0
  407. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/language_model/service.py +0 -0
  408. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/language_model/settings.py +0 -0
  409. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/language_model/stream_transform.py +0 -0
  410. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/language_model/utils.py +0 -0
  411. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/monitoring/__init__.py +0 -0
  412. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/monitoring/gunicorn.py +0 -0
  413. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/monitoring/memory.py +0 -0
  414. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/monitoring/middleware.py +0 -0
  415. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/monitoring/registry.py +0 -0
  416. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/monitoring/tracing.py +0 -0
  417. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/protocols/support.py +0 -0
  418. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/services/__init__.py +0 -0
  419. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/services/factory.py +0 -0
  420. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/services/knowledge_base.py +0 -0
  421. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/short_term_memory/__init__.py +0 -0
  422. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/short_term_memory/constants.py +0 -0
  423. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/short_term_memory/functions.py +0 -0
  424. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/short_term_memory/schemas.py +0 -0
  425. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/short_term_memory/service.py +0 -0
  426. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/smart_rules/__init__.py +0 -0
  427. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/unique_toolkit/smart_rules/compile.py +0 -0
  428. {unique_toolkit-2026.40.0.dev2 → unique_toolkit-2026.40.0.dev4}/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.40.0.dev2
3
+ Version: 2026.40.0.dev4
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.40.0.dev0,<2026.40.0rc0
19
+ Requires-Dist: unique-sdk>=2026.40.0.dev3,<2026.40.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.40.0.dev2"
3
+ version = "2026.40.0.dev4"
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.40.0.dev0,<2026.40.0rc0",
31
+ "unique-sdk>=2026.40.0.dev3,<2026.40.0rc0",
32
32
  "jambo>=0.1.2,<0.2",
33
33
  "jinja2>=3.1.6,<4",
34
34
  "docxtpl>=0.20.1,<0.21",
@@ -23,9 +23,6 @@ class FeatureFlagNames(StrEnum):
23
23
  "FEATURE_FLAG_ENABLE_MCP_METADATA_FALLBACK_UN_19145"
24
24
  )
25
25
  enable_html_rendering_un_15131 = "FEATURE_FLAG_ENABLE_HTML_RENDERING_UN_15131"
26
- enable_code_execution_fence_un_17972 = (
27
- "FEATURE_FLAG_ENABLE_CODE_EXECUTION_FENCE_UN_17972"
28
- )
29
26
  enable_html_with_fence_un_17927 = "FEATURE_FLAG_ENABLE_HTML_WITH_FENCE_UN_17927"
30
27
  enable_web_search_argument_screening_un_18741 = (
31
28
  "FEATURE_FLAG_ENABLE_WEB_SEARCH_ARGUMENT_SCREENING_UN_18741"
@@ -110,12 +107,18 @@ class FeatureFlags(BaseSettings):
110
107
 
111
108
  enable_code_execution_fence_un_17972: FeatureFlag = Field(
112
109
  default=FeatureFlag(False),
113
- description="Emit codeExecution fences in message.text for code interpreter outputs (UN-17972). When disabled, inline file refs are kept as-is. Can be 'true' or comma-separated company IDs.",
110
+ description=(
111
+ "Retired: replaced by the `enable_code_execution_fence` config field "
112
+ "on ShowExecutedCodePostprocessorConfig (default true). "
113
+ "No code reads this field anymore. Kept only so removing it doesn't "
114
+ "trip the config-checker's breaking-change gate on this settings "
115
+ "model; delete once that checker allows field removal."
116
+ ),
114
117
  )
115
118
 
116
119
  enable_html_with_fence_un_17927: FeatureFlag = Field(
117
120
  default=FeatureFlag(False),
118
- description="Render HTML code interpreter files as htmlWithSource fences instead of HtmlRendering blocks (UN-17927). Requires enable_code_execution_fence_un_17972 to also be enabled. Can be 'true' or comma-separated company IDs.",
121
+ description="Render HTML code interpreter files as htmlWithSource fences instead of HtmlRendering blocks (UN-17927). Requires the `enable_code_execution_fence` config field (ShowExecutedCodePostprocessorConfig) to also be enabled. Can be 'true' or comma-separated company IDs.",
119
122
  )
120
123
 
121
124
  enable_web_search_argument_screening_un_18741: FeatureFlag = Field(
@@ -6,15 +6,10 @@ from typing import override
6
6
  from pydantic import BaseModel, Field
7
7
  from pydantic.json_schema import SkipJsonSchema
8
8
 
9
- from unique_toolkit.agentic.feature_flags import FeatureFlagNames
10
9
  from unique_toolkit.agentic.postprocessor.postprocessor_manager import (
11
10
  ResponsesApiPostprocessor,
12
11
  )
13
12
  from unique_toolkit.agentic.tools.config import get_configuration_dict
14
- from unique_toolkit.experimental.resources.feature_flags import (
15
- COMPANY_ID_PLACEHOLDER,
16
- is_flag_enabled,
17
- )
18
13
  from unique_toolkit.language_model.schemas import ResponsesLanguageModelStreamResponse
19
14
 
20
15
  _TEMPLATE = """
@@ -39,6 +34,13 @@ class ShowExecutedCodePostprocessorConfig(BaseModel):
39
34
  default=True,
40
35
  description="Show the executed source code to the user",
41
36
  )
37
+ enable_code_execution_fence: bool = Field(
38
+ default=True,
39
+ description=(
40
+ "Show generated files as interactive cards with a built-in code view "
41
+ "and hide the legacy collapsible code block below."
42
+ ),
43
+ )
42
44
  remove_from_history: SkipJsonSchema[bool] = (
43
45
  Field( # At the moment, it's not possible to keep executed code in the history
44
46
  default=True,
@@ -55,20 +57,15 @@ class ShowExecutedCodePostprocessor(ResponsesApiPostprocessor):
55
57
  def __init__(
56
58
  self,
57
59
  config: ShowExecutedCodePostprocessorConfig,
58
- company_id: str | None = None,
59
60
  ):
60
61
  super().__init__(self.__class__.__name__)
61
62
  self._config = config
62
- self._company_id = company_id
63
- # Resolved in run() (before apply_postprocessing_to_response) since flag evaluation is async.
64
- self._is_enabled = False
63
+ # When fences are enabled, the fence itself shows the executed code,
64
+ # so this legacy <details> display must stay off.
65
+ self._is_enabled = config.enable and not config.enable_code_execution_fence
65
66
 
66
67
  @override
67
68
  async def run(self, loop_response: ResponsesLanguageModelStreamResponse) -> None:
68
- self._is_enabled = self._config.enable and not await is_flag_enabled(
69
- FeatureFlagNames.enable_code_execution_fence_un_17972,
70
- company_id=self._company_id or COMPANY_ID_PLACEHOLDER,
71
- )
72
69
  if self._is_enabled:
73
70
  await asyncio.sleep(self._config.sleep_time_before_display)
74
71
 
@@ -376,6 +376,7 @@ class DisplayCodeInterpreterFilesPostProcessor(
376
376
  company_id: str | None = None,
377
377
  user_id: str | None = None,
378
378
  chat_id: str | None = None,
379
+ code_execution_fence_enabled: bool = True,
379
380
  ) -> None:
380
381
  super().__init__(self.__class__.__name__)
381
382
 
@@ -404,8 +405,11 @@ class DisplayCodeInterpreterFilesPostProcessor(
404
405
  self._file_size_map: dict[str, int] = {}
405
406
  self._container_files: list[CodeInterpreterContainerFile] = []
406
407
 
408
+ # Fence rendering is a plain config switch now (was FF UN-17972). The
409
+ # value lives on ShowExecutedCodePostprocessorConfig ("Code display" on
410
+ # the config page) and is passed in by the orchestrator.
411
+ self._fence_enabled = code_execution_fence_enabled
407
412
  # Resolved in run() (before apply_postprocessing_to_response) since flag evaluation is async.
408
- self._fence_ff_on = False
409
413
  self._html_fence_ff_on = False
410
414
 
411
415
  def _build_retry(self) -> AsyncRetrying:
@@ -511,12 +515,8 @@ class DisplayCodeInterpreterFilesPostProcessor(
511
515
  run_t0 = time.monotonic()
512
516
  self._log.info("run() started — fetching and uploading code interpreter files")
513
517
 
514
- self._fence_ff_on = await is_flag_enabled(
515
- FeatureFlagNames.enable_code_execution_fence_un_17972,
516
- company_id=self._company_id or COMPANY_ID_PLACEHOLDER,
517
- )
518
- # htmlWithSource requires BOTH the fence FF and the HTML-fence FF on; default
519
- # (FF off) keeps HtmlRendering, so existing deployments are unaffected.
518
+ # htmlWithSource requires BOTH the fence config and the HTML-fence FF on;
519
+ # default (FF off) keeps HtmlRendering, so existing deployments are unaffected.
520
520
  self._html_fence_ff_on = await is_flag_enabled(
521
521
  FeatureFlagNames.enable_html_with_fence_un_17927,
522
522
  company_id=self._company_id or COMPANY_ID_PLACEHOLDER,
@@ -668,9 +668,9 @@ class DisplayCodeInterpreterFilesPostProcessor(
668
668
  ) -> bool:
669
669
  apply_t0 = time.monotonic()
670
670
  self._log.info(
671
- "apply_postprocessing started — %d file(s) in content_map, fence_ff=%s",
671
+ "apply_postprocessing started — %d file(s) in content_map, fence_enabled=%s",
672
672
  len(self._content_map),
673
- self._fence_ff_on,
673
+ self._fence_enabled,
674
674
  )
675
675
 
676
676
  if loop_response.message.references is None:
@@ -711,9 +711,9 @@ class DisplayCodeInterpreterFilesPostProcessor(
711
711
  )
712
712
  changed |= replaced
713
713
 
714
- # HTML rendered as HtmlRendering block unless the dedicated html-fence FF
715
- # is on (enable_html_with_fence_un_17927). Default keeps HtmlRendering.
716
- elif is_html and not self._html_fence_ff_on:
714
+ # HTML uses HtmlRendering unless BOTH the fence config and the
715
+ # html-fence FF are on (htmlWithSource needs both).
716
+ elif is_html and not (self._html_fence_ff_on and self._fence_enabled):
717
717
  loop_response.message.text, replaced = _replace_container_html_citation(
718
718
  text=loop_response.message.text or "",
719
719
  filename=filename,
@@ -721,15 +721,15 @@ class DisplayCodeInterpreterFilesPostProcessor(
721
721
  )
722
722
  changed |= replaced
723
723
 
724
- # Non-HTML files, or HTML when self._html_fence_ff_on → inline content link for
725
- # subsequent fence injection (htmlWithSource / imgWithSource / fileWithSource)
724
+ # Non-HTML files, or HTML when both fence switches are on → inline
725
+ # content link for subsequent fence injection
726
726
  else:
727
727
  loop_response.message.text, replaced = _replace_container_file_citation(
728
728
  text=loop_response.message.text or "",
729
729
  filename=filename,
730
730
  content_id=content_id,
731
731
  ref_number=ref_number,
732
- use_content_link=self._fence_ff_on,
732
+ use_content_link=self._fence_enabled,
733
733
  )
734
734
  changed |= replaced
735
735
 
@@ -746,7 +746,7 @@ class DisplayCodeInterpreterFilesPostProcessor(
746
746
 
747
747
  # HtmlRendering and htmlWithSource both embed contentId directly — no ContentReference needed
748
748
  is_html_rendered = is_html
749
- if replaced and not (is_image or is_html_rendered or self._fence_ff_on):
749
+ if replaced and not (is_image or is_html_rendered or self._fence_enabled):
750
750
  loop_response.message.references.append(
751
751
  ContentReference(
752
752
  sequence_number=ref_number,
@@ -765,7 +765,7 @@ class DisplayCodeInterpreterFilesPostProcessor(
765
765
  error_files,
766
766
  )
767
767
 
768
- if self._fence_ff_on:
768
+ if self._fence_enabled:
769
769
  code_blocks = _build_code_blocks(
770
770
  loop_response,
771
771
  self._content_map,
@@ -1503,7 +1503,7 @@ def _warn_unmatched_code_blocks(
1503
1503
  ) -> None:
1504
1504
  """Warn for files that were uploaded but could not be matched to any code block.
1505
1505
 
1506
- When the fence feature flag is on, every uploaded file should map to a code block
1506
+ When fence rendering is enabled, every uploaded file should map to a code block
1507
1507
  via its /mnt/data/<filename> path so it can receive a fence. If a file is not
1508
1508
  matched (e.g. the LLM used a variable for the output path rather than a literal
1509
1509
  string) it falls back to a plain unique://content/ link with no code context.
@@ -1634,10 +1634,10 @@ def _replace_container_file_citation(
1634
1634
  ) -> tuple[str, bool]:
1635
1635
  """Replace a sandbox file link with either an inline content link or a superscript ref.
1636
1636
 
1637
- When the fence feature flag is on (use_content_link=True), the sandbox link is
1638
- replaced with [filename](unique://content/{id}) so the subsequent fence injection
1639
- step can locate and wrap it. When the flag is off (use_content_link=False), the
1640
- original pre-fence behaviour is restored: the link is replaced with <sup>N</sup>
1637
+ When fence rendering is enabled in the config (use_content_link=True), the sandbox
1638
+ link is replaced with [filename](unique://content/{id}) so the subsequent fence
1639
+ injection step can locate and wrap it. When it is disabled (use_content_link=False),
1640
+ the original pre-fence behaviour is restored: the link is replaced with <sup>N</sup>
1641
1641
  and the file remains accessible via the references panel.
1642
1642
  """
1643
1643
  file_markdown = _sandbox_link_pattern(filename)
@@ -96,9 +96,9 @@ DEFAULT_TOOL_DESCRIPTION_FOR_SYSTEM_PROMPT = (
96
96
  _TOOL_DESCRIPTION_FOR_SYSTEM_PROMPT_BASE + _TOOL_DESCRIPTION_FILES_SUFFIX
97
97
  ).strip()
98
98
 
99
- # Used when the code-execution fence feature flag (UN-17972) is enabled.
100
- # The frontend derives the artifact title from the filename itself, so the
101
- # LLM no longer needs to produce a markdown heading before the sandbox link.
99
+ # Default system prompt. The frontend derives the artifact title from the
100
+ # filename itself, so the LLM does not need to produce a markdown heading
101
+ # before the sandbox link.
102
102
  #
103
103
  # UN-19711 / Horizon follow-up: The HTML rules in the fence prompt reduce iframe height
104
104
  # collapse when chat auto-measures the embedded document. Remaining gaps belong in the
@@ -188,6 +188,46 @@ async def modify_message_async(
188
188
  raise e
189
189
 
190
190
 
191
+ async def mark_turn_system_interrupted_async(
192
+ user_id: str,
193
+ company_id: str,
194
+ chat_id: str,
195
+ user_message_id: str,
196
+ ) -> ChatMessage:
197
+ """Marks the turn anchored on *user_message_id* as system-interrupted.
198
+
199
+ Persists ``turnInterruptionReason = SYSTEM_INTERRUPTED`` on the originating
200
+ USER message via a dedicated service-authenticated node-chat endpoint. The
201
+ server guarantees idempotency and never overwrites ``userAbortedAt`` (a
202
+ user-initiated stop wins if both race).
203
+
204
+ Args:
205
+ user_id (str): The user ID.
206
+ company_id (str): The company ID.
207
+ chat_id (str): The chat ID.
208
+ user_message_id (str): The originating USER message of the turn.
209
+
210
+ Returns:
211
+ ChatMessage: The USER message after the update (unchanged if the call
212
+ was a no-op due to idempotency or a racing user stop).
213
+
214
+ Raises:
215
+ Exception: If the request fails.
216
+
217
+ """
218
+ try:
219
+ message = await unique_sdk.Message.mark_turn_system_interrupted_async(
220
+ user_id=user_id,
221
+ company_id=company_id,
222
+ id=user_message_id,
223
+ chatId=chat_id,
224
+ )
225
+ return ChatMessage(**message)
226
+ except Exception as e:
227
+ _LOGGER.error(f"Failed to mark turn as system-interrupted: {e}")
228
+ raise e
229
+
230
+
191
231
  def map_references(references: list[ContentReference]) -> list[dict[str, Any]]:
192
232
  return [
193
233
  {
@@ -192,6 +192,12 @@ class MessageLogStatus(StrEnum):
192
192
  RUNNING = "RUNNING"
193
193
  COMPLETED = "COMPLETED"
194
194
  FAILED = "FAILED"
195
+ CANCELLED = "CANCELLED"
196
+ """The user pressed Stop while this thinking/tool step was in flight.
197
+
198
+ Use ``FAILED`` for system-side interruption (timeout, truncation, terminal
199
+ backend failure), not for user-initiated cancellation.
200
+ """
195
201
 
196
202
 
197
203
  class MessageExecutionStatus(StrEnum):
@@ -49,6 +49,7 @@ from unique_toolkit.chat.functions import (
49
49
  get_message_tools,
50
50
  get_message_tools_async,
51
51
  get_selection_from_history,
52
+ mark_turn_system_interrupted_async,
52
53
  modify_message,
53
54
  modify_message_assessment,
54
55
  modify_message_assessment_async,
@@ -383,6 +384,36 @@ class ChatService(ChatServiceDeprecated):
383
384
  set_completed_at=set_completed_at or False,
384
385
  )
385
386
 
387
+ async def mark_turn_system_interrupted_async(self) -> ChatMessage:
388
+ """Marks the current turn as system-interrupted.
389
+
390
+ Persists ``turnInterruptionReason = SYSTEM_INTERRUPTED`` on the current
391
+ chat context's originating USER message via a dedicated
392
+ service-authenticated node-chat endpoint.
393
+
394
+ Call this only for system-side unexpected endings: timeout, truncation,
395
+ terminal backend failure, and equivalents. Do not call it for
396
+ user-initiated cancellation or normal completion.
397
+
398
+ The operation is idempotent and never overwrites ``userAbortedAt``: if
399
+ the user pressed Stop and the system interruption race, the user stop
400
+ wins and this call is a server-side no-op.
401
+
402
+ Returns:
403
+ ChatMessage: The USER message anchoring the turn.
404
+
405
+ Raises:
406
+ Exception: If the request fails. Callers invoking this from
407
+ failure-handling paths should treat it as best-effort.
408
+
409
+ """
410
+ return await mark_turn_system_interrupted_async(
411
+ user_id=self._user_id,
412
+ company_id=self._company_id,
413
+ chat_id=self._chat_id,
414
+ user_message_id=self._user_message_id,
415
+ )
416
+
386
417
  def modify_assistant_message(
387
418
  self,
388
419
  content: str | None = None,