unique-toolkit 2026.34.0.dev6__tar.gz → 2026.34.0.dev7__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 (425) hide show
  1. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/PKG-INFO +1 -1
  2. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/pyproject.toml +1 -1
  3. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/feature_flags/__init__.py +2 -1
  4. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/feature_flags/feature_flags.py +36 -1
  5. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/history_manager/loop_token_reducer.py +16 -3
  6. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/history_manager/utils.py +6 -4
  7. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/tools/a2a/tool/service.py +5 -6
  8. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/tools/mcp/tool_wrapper.py +11 -16
  9. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/postprocessors/code_display.py +11 -7
  10. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/postprocessors/generated_files.py +28 -23
  11. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/experimental/resources/feature_flags/__init__.py +10 -3
  12. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/experimental/resources/feature_flags/client.py +14 -14
  13. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/services/chat_service.py +5 -3
  14. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/README.md +0 -0
  15. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/__init__.py +0 -0
  16. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/_common/__init__.py +0 -0
  17. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/_common/_base_service.py +0 -0
  18. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/_common/_time_utils.py +0 -0
  19. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/_common/api_calling/human_verification_manager.py +0 -0
  20. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/_common/base_model_type_attribute.py +0 -0
  21. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/_common/chunk_relevancy_sorter/config.py +0 -0
  22. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/_common/chunk_relevancy_sorter/exception.py +0 -0
  23. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/_common/chunk_relevancy_sorter/schemas.py +0 -0
  24. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/_common/chunk_relevancy_sorter/service.py +0 -0
  25. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/_common/chunk_relevancy_sorter/tests/test_service.py +0 -0
  26. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/_common/config_checker/README.md +0 -0
  27. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/_common/config_checker/__init__.py +0 -0
  28. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/_common/config_checker/__main__.py +0 -0
  29. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/_common/config_checker/cli.py +0 -0
  30. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/_common/config_checker/differ.py +0 -0
  31. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/_common/config_checker/exporter.py +0 -0
  32. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/_common/config_checker/models.py +0 -0
  33. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/_common/config_checker/registry.py +0 -0
  34. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/_common/config_checker/validator.py +0 -0
  35. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/_common/default_language_model.py +0 -0
  36. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/_common/docx_generator/__init__.py +0 -0
  37. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/_common/docx_generator/config.py +0 -0
  38. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/_common/docx_generator/pandoc_converter.py +0 -0
  39. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/_common/docx_generator/schemas.py +0 -0
  40. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/_common/docx_generator/service.py +0 -0
  41. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/_common/docx_generator/template/Doc Template.docx +0 -0
  42. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/_common/endpoint_builder.py +0 -0
  43. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/_common/endpoint_requestor.py +0 -0
  44. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/_common/event_bus.py +0 -0
  45. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/_common/exception.py +0 -0
  46. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/_common/execution.py +0 -0
  47. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/_common/experimental/endpoint_builder.py +0 -0
  48. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/_common/experimental/endpoint_requestor.py +0 -0
  49. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/_common/experimental/write_up_agent/README.md +0 -0
  50. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/_common/experimental/write_up_agent/__init__.py +0 -0
  51. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/_common/experimental/write_up_agent/agent.py +0 -0
  52. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/_common/experimental/write_up_agent/config.py +0 -0
  53. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/_common/experimental/write_up_agent/examples/data.csv +0 -0
  54. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/_common/experimental/write_up_agent/examples/example_usage.py +0 -0
  55. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/_common/experimental/write_up_agent/schemas.py +0 -0
  56. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/_common/experimental/write_up_agent/services/__init__.py +0 -0
  57. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/__init__.py +0 -0
  58. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/exceptions.py +0 -0
  59. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/service.py +0 -0
  60. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/utils.py +0 -0
  61. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/__init__.py +0 -0
  62. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/config.py +0 -0
  63. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/exceptions.py +0 -0
  64. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/prompts/config.py +0 -0
  65. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/prompts/system_prompt.j2 +0 -0
  66. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/prompts/user_prompt.j2 +0 -0
  67. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/service.py +0 -0
  68. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/__init__.py +0 -0
  69. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/default_template.j2 +0 -0
  70. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/exceptions.py +0 -0
  71. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/service.py +0 -0
  72. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/utils.py +0 -0
  73. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/_common/experimental/write_up_agent/utils.py +0 -0
  74. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/_common/feature_flags/schema.py +0 -0
  75. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/_common/metadata_filter_scope.py +0 -0
  76. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/_common/pydantic/rjsf_tags.py +0 -0
  77. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/_common/pydantic_helpers.py +0 -0
  78. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/_common/referencing.py +0 -0
  79. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/_common/string_utilities.py +0 -0
  80. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/_common/tests/test_referencing.py +0 -0
  81. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/_common/tests/test_string_utilities.py +0 -0
  82. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/_common/token/__init__.py +0 -0
  83. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/_common/token/image_token_counting.py +0 -0
  84. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/_common/token/token_counting.py +0 -0
  85. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/_common/token/tokenizers/deepseek/tokenizer.json +0 -0
  86. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/_common/token/tokenizers/qwen/tokenizer.json +0 -0
  87. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/_common/utils/__init__.py +0 -0
  88. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/_common/utils/files.py +0 -0
  89. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/_common/utils/image/encode.py +0 -0
  90. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/_common/utils/jinja/helpers.py +0 -0
  91. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/_common/utils/jinja/render.py +0 -0
  92. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/_common/utils/jinja/schema.py +0 -0
  93. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/_common/utils/jinja/utils.py +0 -0
  94. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/_common/utils/structured_output/__init__.py +0 -0
  95. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/_common/utils/structured_output/schema.py +0 -0
  96. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/_common/utils/write_configuration.py +0 -0
  97. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/_common/validate_required_values.py +0 -0
  98. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/_common/validators.py +0 -0
  99. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/__init__.py +0 -0
  100. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/debug_info_manager/debug_info_manager.py +0 -0
  101. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/debug_info_manager/test/test_debug_info_manager.py +0 -0
  102. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/evaluation/config.py +0 -0
  103. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/evaluation/context_relevancy/prompts/__init__.py +0 -0
  104. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/evaluation/context_relevancy/prompts/system_prompt.j2 +0 -0
  105. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/evaluation/context_relevancy/prompts/user_prompt.j2 +0 -0
  106. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/evaluation/context_relevancy/schema.py +0 -0
  107. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/evaluation/context_relevancy/service.py +0 -0
  108. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/evaluation/evaluation_manager.py +0 -0
  109. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/evaluation/exception.py +0 -0
  110. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/evaluation/hallucination/constants.py +0 -0
  111. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/evaluation/hallucination/hallucination_evaluation.py +0 -0
  112. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/evaluation/hallucination/prompts/__init__.py +0 -0
  113. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/evaluation/hallucination/prompts/system_prompt.j2 +0 -0
  114. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/evaluation/hallucination/prompts/user_prompt.j2 +0 -0
  115. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/evaluation/hallucination/service.py +0 -0
  116. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/evaluation/hallucination/utils.py +0 -0
  117. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/evaluation/output_parser.py +0 -0
  118. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/evaluation/schemas.py +0 -0
  119. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/evaluation/tests/fixtures.py +0 -0
  120. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/evaluation/tests/test_config.py +0 -0
  121. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/evaluation/tests/test_context_relevancy_service.py +0 -0
  122. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/evaluation/tests/test_hallucination_constants.py +0 -0
  123. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/evaluation/tests/test_hallucination_external_context.py +0 -0
  124. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/evaluation/tests/test_hallucination_utils.py +0 -0
  125. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/evaluation/tests/test_output_parser.py +0 -0
  126. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/evaluation/tests/test_prompt_loaders.py +0 -0
  127. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/evaluation/utils.py +0 -0
  128. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/history_manager/history_construction_with_contents.py +0 -0
  129. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/history_manager/history_manager.py +0 -0
  130. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/history_manager/settings.py +0 -0
  131. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/loop_runner/__init__.py +0 -0
  132. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/loop_runner/_iteration_handler_utils.py +0 -0
  133. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/loop_runner/_responses_iteration_handler_utils.py +0 -0
  134. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/loop_runner/_responses_stream_handler_utils.py +0 -0
  135. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/loop_runner/_stream_handler_utils.py +0 -0
  136. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/loop_runner/base.py +0 -0
  137. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/loop_runner/middleware/__init__.py +0 -0
  138. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/loop_runner/middleware/planning/__init__.py +0 -0
  139. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/loop_runner/middleware/planning/planning.py +0 -0
  140. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/loop_runner/middleware/planning/schema.py +0 -0
  141. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/loop_runner/runners/__init__.py +0 -0
  142. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/loop_runner/runners/basic.py +0 -0
  143. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/loop_runner/runners/mistral/__init__.py +0 -0
  144. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/loop_runner/runners/mistral/mistral_runner.py +0 -0
  145. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/loop_runner/runners/qwen/__init__.py +0 -0
  146. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/loop_runner/runners/qwen/helpers.py +0 -0
  147. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/loop_runner/runners/qwen/qwen_runner.py +0 -0
  148. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/message_log_manager/__init__.py +0 -0
  149. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/message_log_manager/service.py +0 -0
  150. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/message_log_order.py +0 -0
  151. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/postprocessor/postprocessor_manager.py +0 -0
  152. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/reference_manager/reference_manager.py +0 -0
  153. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/reference_manager/tests/test_external_context.py +0 -0
  154. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/responses_api/__init__.py +0 -0
  155. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/responses_api/postprocessors/code_display.py +0 -0
  156. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/responses_api/postprocessors/generated_files.py +0 -0
  157. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/responses_api/stream_handler.py +0 -0
  158. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/short_term_memory_manager/persistent_short_term_memory_manager.py +0 -0
  159. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/thinking_manager/thinking_manager.py +0 -0
  160. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/tools/__init__.py +0 -0
  161. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/tools/a2a/__init__.py +0 -0
  162. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/tools/a2a/config.py +0 -0
  163. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/tools/a2a/evaluation/__init__.py +0 -0
  164. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/tools/a2a/evaluation/_utils.py +0 -0
  165. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/tools/a2a/evaluation/config.py +0 -0
  166. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/tools/a2a/evaluation/evaluator.py +0 -0
  167. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/tools/a2a/evaluation/summarization_user_message.j2 +0 -0
  168. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/tools/a2a/manager.py +0 -0
  169. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/tools/a2a/postprocessing/__init__.py +0 -0
  170. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/tools/a2a/postprocessing/_display_utils.py +0 -0
  171. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/tools/a2a/postprocessing/_ref_utils.py +0 -0
  172. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/tools/a2a/postprocessing/config.py +0 -0
  173. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/tools/a2a/postprocessing/display.py +0 -0
  174. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/tools/a2a/postprocessing/references.py +0 -0
  175. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_display.py +0 -0
  176. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_display_utils.py +0 -0
  177. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_ref_utils.py +0 -0
  178. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_references.py +0 -0
  179. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/tools/a2a/prompts.py +0 -0
  180. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/tools/a2a/response_watcher/__init__.py +0 -0
  181. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/tools/a2a/response_watcher/service.py +0 -0
  182. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/tools/a2a/tool/__init__.py +0 -0
  183. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/tools/a2a/tool/_memory.py +0 -0
  184. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/tools/a2a/tool/_schema.py +0 -0
  185. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/tools/a2a/tool/config.py +0 -0
  186. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/tools/a2a/tool/test/test_service_utils.py +0 -0
  187. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/tools/agent_chunks_hanlder.py +0 -0
  188. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/tools/config.py +0 -0
  189. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/tools/experimental/__init__.py +0 -0
  190. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/tools/experimental/ask_user_tool/__init__.py +0 -0
  191. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/tools/experimental/ask_user_tool/config.py +0 -0
  192. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/tools/experimental/ask_user_tool/tool.py +0 -0
  193. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/tools/experimental/open_file_tool/__init__.py +0 -0
  194. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/tools/experimental/open_file_tool/config.py +0 -0
  195. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/tools/experimental/open_file_tool/runtime.py +0 -0
  196. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/tools/experimental/open_file_tool/tool.py +0 -0
  197. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/tools/experimental/retrieve_search_scope_tool/__init__.py +0 -0
  198. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/tools/experimental/retrieve_search_scope_tool/config.py +0 -0
  199. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/tools/experimental/retrieve_search_scope_tool/tool.py +0 -0
  200. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/tools/experimental/todo/__init__.py +0 -0
  201. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/tools/experimental/todo/config.py +0 -0
  202. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/tools/experimental/todo/prompts/__init__.py +0 -0
  203. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/tools/experimental/todo/prompts/execution_reminder.j2 +0 -0
  204. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/tools/experimental/todo/prompts/system_prompt.j2 +0 -0
  205. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/tools/experimental/todo/prompts/tool_description.j2 +0 -0
  206. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/tools/experimental/todo/prompts/verification_nudge.j2 +0 -0
  207. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/tools/experimental/todo/schemas.py +0 -0
  208. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/tools/experimental/todo/service.py +0 -0
  209. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/tools/factory.py +0 -0
  210. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/tools/mcp/__init__.py +0 -0
  211. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/tools/mcp/manager.py +0 -0
  212. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/tools/mcp/models.py +0 -0
  213. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/tools/names.py +0 -0
  214. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/tools/openai_builtin/__init__.py +0 -0
  215. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/tools/openai_builtin/base.py +0 -0
  216. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/__init__.py +0 -0
  217. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/activator/__init__.py +0 -0
  218. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/activator/config.py +0 -0
  219. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/activator/service.py +0 -0
  220. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/builder/__init__.py +0 -0
  221. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/builder/_container.py +0 -0
  222. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/builder/_files.py +0 -0
  223. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/builder/_memory.py +0 -0
  224. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/builder/builder.py +0 -0
  225. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/config.py +0 -0
  226. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/postprocessors/__init__.py +0 -0
  227. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/postprocessors/artifacts.py +0 -0
  228. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/schemas.py +0 -0
  229. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/tool/__init__.py +0 -0
  230. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/tool/config.py +0 -0
  231. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/tool/service.py +0 -0
  232. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/tools/openai_builtin/manager.py +0 -0
  233. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/tools/run_context.py +0 -0
  234. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/tools/schemas.py +0 -0
  235. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/tools/test/test_mcp_manager.py +0 -0
  236. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/tools/test/test_tool_progress_reporter.py +0 -0
  237. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/tools/tool.py +0 -0
  238. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/tools/tool_manager.py +0 -0
  239. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/tools/tool_progress_reporter.py +0 -0
  240. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/tools/utils/__init__.py +0 -0
  241. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/tools/utils/source_handling/__init__.py +0 -0
  242. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/tools/utils/source_handling/schema.py +0 -0
  243. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/tools/utils/source_handling/source_formatting.py +0 -0
  244. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic/tools/utils/source_handling/tests/test_source_formatting.py +0 -0
  245. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic_table/__init__.py +0 -0
  246. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic_table/schemas.py +0 -0
  247. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic_table/service.py +0 -0
  248. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/agentic_table/synthetic_chat_event.py +0 -0
  249. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/app/__init__.py +0 -0
  250. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/app/chat_event_filter_options_settings.py +0 -0
  251. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/app/dev_util.py +0 -0
  252. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/app/fast_api_factory.py +0 -0
  253. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/app/feature_flags.py +0 -0
  254. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/app/find_env_file.py +0 -0
  255. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/app/init_logging.py +0 -0
  256. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/app/init_sdk.py +0 -0
  257. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/app/performance/async_tasks.py +0 -0
  258. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/app/performance/async_wrapper.py +0 -0
  259. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/app/schemas.py +0 -0
  260. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/app/unique_settings.py +0 -0
  261. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/app/verification.py +0 -0
  262. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/app/webhook.py +0 -0
  263. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/chat/__init__.py +0 -0
  264. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/chat/cancellation.py +0 -0
  265. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/chat/constants.py +0 -0
  266. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/chat/deprecated/__init__.py +0 -0
  267. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/chat/deprecated/service.py +0 -0
  268. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/chat/functions.py +0 -0
  269. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/chat/rendering.py +0 -0
  270. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/chat/responses_api.py +0 -0
  271. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/chat/schemas.py +0 -0
  272. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/chat/service.py +0 -0
  273. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/chat/state.py +0 -0
  274. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/chat/utils.py +0 -0
  275. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/content/__init__.py +0 -0
  276. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/content/constants.py +0 -0
  277. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/content/functions.py +0 -0
  278. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/content/schemas.py +0 -0
  279. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/content/service.py +0 -0
  280. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/content/smart_rules.py +0 -0
  281. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/content/utils.py +0 -0
  282. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/data_extraction/README.md +0 -0
  283. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/data_extraction/__init__.py +0 -0
  284. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/data_extraction/augmented/__init__.py +0 -0
  285. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/data_extraction/augmented/service.py +0 -0
  286. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/data_extraction/base.py +0 -0
  287. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/data_extraction/basic/__init__.py +0 -0
  288. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/data_extraction/basic/config.py +0 -0
  289. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/data_extraction/basic/prompt.py +0 -0
  290. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/data_extraction/basic/service.py +0 -0
  291. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/elicitation/__init__.py +0 -0
  292. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/elicitation/constants.py +0 -0
  293. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/elicitation/exceptions.py +0 -0
  294. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/elicitation/functions.py +0 -0
  295. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/elicitation/schemas.py +0 -0
  296. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/elicitation/service.py +0 -0
  297. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/embedding/__init__.py +0 -0
  298. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/embedding/constants.py +0 -0
  299. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/embedding/functions.py +0 -0
  300. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/embedding/schemas.py +0 -0
  301. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/embedding/service.py +0 -0
  302. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/embedding/utils.py +0 -0
  303. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/experimental/README.md +0 -0
  304. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/experimental/__init__.py +0 -0
  305. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/experimental/_internal/__init__.py +0 -0
  306. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/experimental/_internal/streaming/__init__.py +0 -0
  307. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/experimental/_internal/streaming/common.py +0 -0
  308. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/experimental/_internal/streaming/pattern_replacer.py +0 -0
  309. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/experimental/components/__init__.py +0 -0
  310. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/experimental/components/_base.py +0 -0
  311. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/experimental/components/content_tree/__init__.py +0 -0
  312. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/experimental/components/content_tree/functions.py +0 -0
  313. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/experimental/components/content_tree/schemas.py +0 -0
  314. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/experimental/components/content_tree/service.py +0 -0
  315. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/experimental/components/internal_search/__init__.py +0 -0
  316. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/experimental/components/internal_search/base/__init__.py +0 -0
  317. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/experimental/components/internal_search/base/config.py +0 -0
  318. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/experimental/components/internal_search/base/schemas.py +0 -0
  319. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/experimental/components/internal_search/base/service.py +0 -0
  320. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/experimental/components/internal_search/base/utils.py +0 -0
  321. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/experimental/components/internal_search/chat/__init__.py +0 -0
  322. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/experimental/components/internal_search/chat/config.py +0 -0
  323. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/experimental/components/internal_search/chat/schemas.py +0 -0
  324. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/experimental/components/internal_search/chat/service.py +0 -0
  325. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/experimental/components/internal_search/knowledge_base/__init__.py +0 -0
  326. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/experimental/components/internal_search/knowledge_base/config.py +0 -0
  327. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/experimental/components/internal_search/knowledge_base/schemas.py +0 -0
  328. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/experimental/components/internal_search/knowledge_base/service.py +0 -0
  329. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/experimental/components/internal_search/post_processing/__init__.py +0 -0
  330. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/experimental/components/internal_search/post_processing/config.py +0 -0
  331. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/experimental/components/internal_search/post_processing/service.py +0 -0
  332. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/experimental/content_tree/__init__.py +0 -0
  333. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/experimental/identity/__init__.py +0 -0
  334. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/experimental/integrations/__init__.py +0 -0
  335. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/experimental/integrations/openai/__init__.py +0 -0
  336. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/experimental/integrations/openai/streaming/__init__.py +0 -0
  337. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/__init__.py +0 -0
  338. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/_async_bridge.py +0 -0
  339. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/chat_completions/__init__.py +0 -0
  340. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/chat_completions/complete_with_references.py +0 -0
  341. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/chat_completions/stream_event_router.py +0 -0
  342. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/chat_completions/text_event_handler.py +0 -0
  343. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/chat_completions/tool_call_event_handler.py +0 -0
  344. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/events.py +0 -0
  345. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/protocols/__init__.py +0 -0
  346. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/protocols/chat_completions.py +0 -0
  347. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/protocols/responses.py +0 -0
  348. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/responses/__init__.py +0 -0
  349. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/responses/code_interpreter_event_handler.py +0 -0
  350. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/responses/complete_with_references.py +0 -0
  351. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/responses/completed_event_handler.py +0 -0
  352. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/responses/stream_event_router.py +0 -0
  353. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/responses/text_delta_event_handler.py +0 -0
  354. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/responses/tool_call_event_handler.py +0 -0
  355. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/subscribers/__init__.py +0 -0
  356. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/subscribers/message_persister.py +0 -0
  357. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/subscribers/progress_log_persister.py +0 -0
  358. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/experimental/resources/__init__.py +0 -0
  359. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/experimental/resources/content_folder/__init__.py +0 -0
  360. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/experimental/resources/content_folder/functions.py +0 -0
  361. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/experimental/resources/content_folder/schemas.py +0 -0
  362. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/experimental/resources/content_folder/service.py +0 -0
  363. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/experimental/resources/facades/__init__.py +0 -0
  364. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/experimental/resources/facades/identity/__init__.py +0 -0
  365. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/experimental/resources/facades/identity/service.py +0 -0
  366. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/experimental/resources/feature_flags/README.md +0 -0
  367. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/experimental/resources/feature_flags/_graphql_client.py +0 -0
  368. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/experimental/resources/feature_flags/_ttl_cache.py +0 -0
  369. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/experimental/resources/feature_flags/schemas.py +0 -0
  370. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/experimental/resources/feature_flags/settings.py +0 -0
  371. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/experimental/resources/group/__init__.py +0 -0
  372. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/experimental/resources/group/functions.py +0 -0
  373. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/experimental/resources/group/schemas.py +0 -0
  374. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/experimental/resources/group/service.py +0 -0
  375. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/experimental/resources/scheduled_task/__init__.py +0 -0
  376. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/experimental/resources/scheduled_task/cron.py +0 -0
  377. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/experimental/resources/scheduled_task/functions.py +0 -0
  378. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/experimental/resources/scheduled_task/schemas.py +0 -0
  379. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/experimental/resources/scheduled_task/service.py +0 -0
  380. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/experimental/resources/user/__init__.py +0 -0
  381. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/experimental/resources/user/functions.py +0 -0
  382. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/experimental/resources/user/schemas.py +0 -0
  383. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/experimental/resources/user/service.py +0 -0
  384. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/experimental/testing/__init__.py +0 -0
  385. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/framework_utilities/__init__.py +0 -0
  386. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/framework_utilities/langchain/__init__.py +0 -0
  387. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/framework_utilities/langchain/client.py +0 -0
  388. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/framework_utilities/langchain/history.py +0 -0
  389. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/framework_utilities/openai/__init__.py +0 -0
  390. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/framework_utilities/openai/client.py +0 -0
  391. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/framework_utilities/openai/message_builder.py +0 -0
  392. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/framework_utilities/utils.py +0 -0
  393. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/language_model/__init__.py +0 -0
  394. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/language_model/_responses_api_utils.py +0 -0
  395. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/language_model/builder.py +0 -0
  396. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/language_model/constants.py +0 -0
  397. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/language_model/default_language_model.py +0 -0
  398. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/language_model/functions.py +0 -0
  399. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/language_model/infos.py +0 -0
  400. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/language_model/invocation_stats.py +0 -0
  401. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/language_model/model_costs.py +0 -0
  402. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/language_model/prompt.py +0 -0
  403. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/language_model/reference.py +0 -0
  404. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/language_model/schemas.py +0 -0
  405. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/language_model/service.py +0 -0
  406. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/language_model/settings.py +0 -0
  407. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/language_model/stream_transform.py +0 -0
  408. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/language_model/utils.py +0 -0
  409. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/monitoring/__init__.py +0 -0
  410. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/monitoring/gunicorn.py +0 -0
  411. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/monitoring/middleware.py +0 -0
  412. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/monitoring/registry.py +0 -0
  413. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/monitoring/tracing.py +0 -0
  414. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/protocols/support.py +0 -0
  415. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/services/__init__.py +0 -0
  416. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/services/factory.py +0 -0
  417. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/services/knowledge_base.py +0 -0
  418. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/short_term_memory/__init__.py +0 -0
  419. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/short_term_memory/constants.py +0 -0
  420. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/short_term_memory/functions.py +0 -0
  421. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/short_term_memory/schemas.py +0 -0
  422. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/short_term_memory/service.py +0 -0
  423. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/smart_rules/__init__.py +0 -0
  424. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/unique_toolkit/smart_rules/compile.py +0 -0
  425. {unique_toolkit-2026.34.0.dev6 → unique_toolkit-2026.34.0.dev7}/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.34.0.dev6
3
+ Version: 2026.34.0.dev7
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>
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "unique_toolkit"
3
- version = "2026.34.0.dev6"
3
+ version = "2026.34.0.dev7"
4
4
  description = ""
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.12"
@@ -1,6 +1,7 @@
1
1
  from unique_toolkit.agentic.feature_flags.feature_flags import (
2
+ FeatureFlagNames,
2
3
  FeatureFlags,
3
4
  feature_flags,
4
5
  )
5
6
 
6
- __all__ = ["FeatureFlags", "feature_flags"]
7
+ __all__ = ["FeatureFlagNames", "FeatureFlags", "feature_flags"]
@@ -1,11 +1,41 @@
1
+ from enum import StrEnum
1
2
  from typing import Any
2
3
 
3
4
  from pydantic import Field, field_validator
4
5
  from pydantic_settings import BaseSettings, SettingsConfigDict
6
+ from typing_extensions import deprecated
5
7
 
6
8
  from unique_toolkit._common.config_checker import register_config
7
9
 
8
10
 
11
+ class FeatureFlagNames(StrEnum):
12
+ """Flag name constants used by unique_toolkit's own agentic features.
13
+
14
+ Values match both the env-var fallback names (``FeatureFlags`` below) and
15
+ the configuration-backend registry keys used by
16
+ ``unique_toolkit.experimental.resources.feature_flags.FeatureFlagClient``.
17
+ """
18
+
19
+ enable_selected_uploaded_files_un_18215 = (
20
+ "FEATURE_FLAG_ENABLE_SELECTED_UPLOADED_FILES_UN_18215"
21
+ )
22
+ enable_mcp_metadata_fallback_un_19145 = (
23
+ "FEATURE_FLAG_ENABLE_MCP_METADATA_FALLBACK_UN_19145"
24
+ )
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
+ enable_html_with_fence_un_17927 = "FEATURE_FLAG_ENABLE_HTML_WITH_FENCE_UN_17927"
30
+ enable_web_search_argument_screening_un_18741 = (
31
+ "FEATURE_FLAG_ENABLE_WEB_SEARCH_ARGUMENT_SCREENING_UN_18741"
32
+ )
33
+ enable_new_answers_ui_un_14411 = "FEATURE_FLAG_ENABLE_NEW_ANSWERS_UI_UN_14411"
34
+
35
+
36
+ @deprecated(
37
+ "Use unique_toolkit.experimental.resources.feature_flags.is_flag_enabled instead"
38
+ )
9
39
  class FeatureFlag:
10
40
  """A feature flag that can be enabled globally or for specific company IDs.
11
41
 
@@ -45,6 +75,9 @@ class FeatureFlag:
45
75
  return f"FeatureFlag({self.value})"
46
76
 
47
77
 
78
+ @deprecated(
79
+ "Use unique_toolkit.experimental.resources.feature_flags.is_flag_enabled instead"
80
+ )
48
81
  @register_config()
49
82
  class FeatureFlags(BaseSettings):
50
83
  """Feature flags loaded from environment variables.
@@ -145,5 +178,7 @@ class FeatureFlags(BaseSettings):
145
178
  return FeatureFlag(False)
146
179
 
147
180
 
148
- # Initialize once at module load - import this where needed
181
+ # Deprecated, unused elsewhere in this toolkit — kept only for external
182
+ # backward compatibility. Use unique_toolkit.experimental.resources.feature_flags
183
+ # .is_flag_enabled instead.
149
184
  feature_flags = FeatureFlags()
@@ -109,7 +109,19 @@ class LoopTokenReducer:
109
109
  self._max_db_source_number: int = -1
110
110
  self._db_source_map: dict[int, ContentChunk] = {}
111
111
  self._enable_tool_call_persistence = enable_tool_call_persistence
112
- self._selected_content_ids = get_selected_uploaded_content_ids(event)
112
+ self._event = event
113
+ # Lazily resolved on first async use since the flag check is async;
114
+ # `_resolved` distinguishes "not yet checked" from a resolved `None` (flag off).
115
+ self._selected_content_ids: set[str] | None = None
116
+ self._selected_content_ids_resolved = False
117
+
118
+ async def _get_selected_content_ids(self) -> set[str] | None:
119
+ if not self._selected_content_ids_resolved:
120
+ self._selected_content_ids = await get_selected_uploaded_content_ids(
121
+ self._event
122
+ )
123
+ self._selected_content_ids_resolved = True
124
+ return self._selected_content_ids
113
125
 
114
126
  @property
115
127
  def max_db_source_number(self) -> int:
@@ -354,6 +366,7 @@ class LoopTokenReducer:
354
366
  Returns:
355
367
  list[LanguageModelMessage]: The history
356
368
  """
369
+ selected_content_ids = await self._get_selected_content_ids()
357
370
  if self._enable_tool_call_persistence:
358
371
  (
359
372
  full_history,
@@ -365,7 +378,7 @@ class LoopTokenReducer:
365
378
  chat_service=self._chat_service,
366
379
  content_service=self._content_service,
367
380
  file_content_serializer=self._file_content_serializer,
368
- selected_content_ids=self._selected_content_ids,
381
+ selected_content_ids=selected_content_ids,
369
382
  )
370
383
  self._max_db_source_number = max_src
371
384
  self._db_source_map = src_map
@@ -376,7 +389,7 @@ class LoopTokenReducer:
376
389
  chat_service=self._chat_service,
377
390
  content_service=self._content_service,
378
391
  file_content_serializer=self._file_content_serializer,
379
- selected_content_ids=self._selected_content_ids,
392
+ selected_content_ids=selected_content_ids,
380
393
  )
381
394
 
382
395
  if remove_from_text is not None:
@@ -3,10 +3,11 @@ import logging
3
3
  from copy import deepcopy
4
4
  from typing import Any
5
5
 
6
- from unique_toolkit.agentic.feature_flags import feature_flags
6
+ from unique_toolkit.agentic.feature_flags import FeatureFlagNames
7
7
  from unique_toolkit.agentic.tools.schemas import Source
8
8
  from unique_toolkit.app.schemas import ChatEvent
9
9
  from unique_toolkit.content.schemas import ContentChunk
10
+ from unique_toolkit.experimental.resources.feature_flags import is_flag_enabled
10
11
  from unique_toolkit.language_model.schemas import (
11
12
  LanguageModelAssistantMessage,
12
13
  LanguageModelMessage,
@@ -16,15 +17,16 @@ from unique_toolkit.language_model.schemas import (
16
17
  logger = logging.getLogger(__name__)
17
18
 
18
19
 
19
- def get_selected_uploaded_content_ids(event: ChatEvent) -> set[str] | None:
20
+ async def get_selected_uploaded_content_ids(event: ChatEvent) -> set[str] | None:
20
21
  """Derive the set of content IDs the user explicitly selected.
21
22
 
22
23
  Returns ``None`` when the feature flag is disabled (meaning *all*
23
24
  uploaded images should be included), or a ``set[str]`` of IDs when
24
25
  only a subset should be attached.
25
26
  """
26
- if not feature_flags.enable_selected_uploaded_files_un_18215.is_enabled(
27
- event.company_id
27
+ if not await is_flag_enabled(
28
+ FeatureFlagNames.enable_selected_uploaded_files_un_18215,
29
+ company_id=event.company_id,
28
30
  ):
29
31
  return None
30
32
 
@@ -22,7 +22,7 @@ from unique_toolkit._common.referencing import (
22
22
  )
23
23
  from unique_toolkit._common.utils.jinja.render import render_template
24
24
  from unique_toolkit.agentic.evaluation.schemas import EvaluationMetricName
25
- from unique_toolkit.agentic.feature_flags import feature_flags
25
+ from unique_toolkit.agentic.feature_flags import FeatureFlagNames
26
26
  from unique_toolkit.agentic.tools.a2a.response_watcher import SubAgentResponseWatcher
27
27
  from unique_toolkit.agentic.tools.a2a.tool._memory import (
28
28
  get_sub_agent_short_term_memory_manager,
@@ -53,6 +53,7 @@ from unique_toolkit.chat.schemas import (
53
53
  )
54
54
  from unique_toolkit.chat.service import ChatService
55
55
  from unique_toolkit.content import ContentChunk, ContentReference
56
+ from unique_toolkit.experimental.resources.feature_flags import is_flag_enabled
56
57
  from unique_toolkit.language_model import (
57
58
  LanguageModelFunction,
58
59
  LanguageModelService,
@@ -431,11 +432,9 @@ class SubAgentTool(Tool[SubAgentToolConfig]):
431
432
  message: str,
432
433
  state: ProgressState,
433
434
  ) -> None:
434
- if (
435
- self._tool_progress_reporter is not None
436
- and not feature_flags.enable_new_answers_ui_un_14411.is_enabled(
437
- self._company_id
438
- )
435
+ if self._tool_progress_reporter is not None and not await is_flag_enabled(
436
+ FeatureFlagNames.enable_new_answers_ui_un_14411,
437
+ company_id=self._company_id or "",
439
438
  ):
440
439
  await self._tool_progress_reporter.notify_from_tool_call(
441
440
  tool_call=tool_call,
@@ -9,7 +9,7 @@ from typing import Any, Dict
9
9
  import unique_sdk
10
10
 
11
11
  from unique_toolkit.agentic.evaluation.schemas import EvaluationMetricName
12
- from unique_toolkit.agentic.feature_flags import feature_flags
12
+ from unique_toolkit.agentic.feature_flags import FeatureFlagNames
13
13
  from unique_toolkit.agentic.tools.mcp.models import MCPToolConfig
14
14
  from unique_toolkit.agentic.tools.schemas import ToolCallResponse
15
15
  from unique_toolkit.agentic.tools.tool import Tool
@@ -21,6 +21,7 @@ from unique_toolkit.app.schemas import ChatEvent, McpServer, McpTool
21
21
  from unique_toolkit.chat.schemas import MessageLog, MessageLogStatus
22
22
  from unique_toolkit.chat.service import ChatService
23
23
  from unique_toolkit.content.functions import upload_content_from_bytes
24
+ from unique_toolkit.experimental.resources.feature_flags import is_flag_enabled
24
25
  from unique_toolkit.language_model import LanguageModelService
25
26
  from unique_toolkit.language_model.schemas import (
26
27
  LanguageModelFunction,
@@ -133,11 +134,9 @@ class MCPToolWrapper(Tool[MCPToolConfig]):
133
134
  )
134
135
 
135
136
  # Notify progress if reporter is available
136
- if (
137
- self._tool_progress_reporter
138
- and not feature_flags.enable_new_answers_ui_un_14411.is_enabled(
139
- self._event.company_id
140
- )
137
+ if self._tool_progress_reporter and not await is_flag_enabled(
138
+ FeatureFlagNames.enable_new_answers_ui_un_14411,
139
+ company_id=self._event.company_id,
141
140
  ):
142
141
  await self._tool_progress_reporter.notify_from_tool_call(
143
142
  tool_call=tool_call,
@@ -172,11 +171,9 @@ class MCPToolWrapper(Tool[MCPToolConfig]):
172
171
  )
173
172
 
174
173
  # Notify completion
175
- if (
176
- self._tool_progress_reporter
177
- and not feature_flags.enable_new_answers_ui_un_14411.is_enabled(
178
- self._event.company_id
179
- )
174
+ if self._tool_progress_reporter and not await is_flag_enabled(
175
+ FeatureFlagNames.enable_new_answers_ui_un_14411,
176
+ company_id=self._event.company_id,
180
177
  ):
181
178
  await self._tool_progress_reporter.notify_from_tool_call(
182
179
  tool_call=tool_call,
@@ -198,11 +195,9 @@ class MCPToolWrapper(Tool[MCPToolConfig]):
198
195
  self.logger.error(f"Error executing MCP tool {self.name}: {e}")
199
196
 
200
197
  # Notify failure
201
- if (
202
- self._tool_progress_reporter
203
- and not feature_flags.enable_new_answers_ui_un_14411.is_enabled(
204
- self._event.company_id
205
- )
198
+ if self._tool_progress_reporter and not await is_flag_enabled(
199
+ FeatureFlagNames.enable_new_answers_ui_un_14411,
200
+ company_id=self._event.company_id,
206
201
  ):
207
202
  await self._tool_progress_reporter.notify_from_tool_call(
208
203
  tool_call=tool_call,
@@ -6,11 +6,15 @@ 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.feature_flags import feature_flags
9
+ from unique_toolkit.agentic.feature_flags import FeatureFlagNames
10
10
  from unique_toolkit.agentic.postprocessor.postprocessor_manager import (
11
11
  ResponsesApiPostprocessor,
12
12
  )
13
13
  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
+ )
14
18
  from unique_toolkit.language_model.schemas import ResponsesLanguageModelStreamResponse
15
19
 
16
20
  _TEMPLATE = """
@@ -56,15 +60,15 @@ class ShowExecutedCodePostprocessor(ResponsesApiPostprocessor):
56
60
  super().__init__(self.__class__.__name__)
57
61
  self._config = config
58
62
  self._company_id = company_id
59
- self._is_enabled = (
60
- self._config.enable
61
- and not feature_flags.enable_code_execution_fence_un_17972.is_enabled(
62
- company_id
63
- )
64
- )
63
+ # Resolved in run() (before apply_postprocessing_to_response) since flag evaluation is async.
64
+ self._is_enabled = False
65
65
 
66
66
  @override
67
67
  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
+ )
68
72
  if self._is_enabled:
69
73
  await asyncio.sleep(self._config.sleep_time_before_display)
70
74
 
@@ -21,7 +21,7 @@ from tenacity import (
21
21
 
22
22
  from unique_toolkit import ChatService
23
23
  from unique_toolkit._common.execution import failsafe_async
24
- from unique_toolkit.agentic.feature_flags.feature_flags import feature_flags
24
+ from unique_toolkit.agentic.feature_flags import FeatureFlagNames
25
25
  from unique_toolkit.agentic.postprocessor.postprocessor_manager import (
26
26
  ResponsesApiPostprocessor,
27
27
  )
@@ -39,6 +39,10 @@ from unique_toolkit.agentic.tools.openai_builtin.code_interpreter.schemas import
39
39
  )
40
40
  from unique_toolkit.content.schemas import ContentReference
41
41
  from unique_toolkit.content.service import ContentService
42
+ from unique_toolkit.experimental.resources.feature_flags import (
43
+ COMPANY_ID_PLACEHOLDER,
44
+ is_flag_enabled,
45
+ )
42
46
  from unique_toolkit.language_model.schemas import ResponsesLanguageModelStreamResponse
43
47
  from unique_toolkit.services.knowledge_base import KnowledgeBaseService
44
48
  from unique_toolkit.short_term_memory.service import ShortTermMemoryService
@@ -389,6 +393,10 @@ class DisplayCodeInterpreterFilesPostProcessor(
389
393
  # Cleared at the start of each run(); holds this-turn download sizes.
390
394
  self._file_size_map: dict[str, int] = {}
391
395
 
396
+ # Resolved in run() (before apply_postprocessing_to_response) since flag evaluation is async.
397
+ self._fence_ff_on = False
398
+ self._html_fence_ff_on = False
399
+
392
400
  def _build_retry(self) -> AsyncRetrying:
393
401
  """Build a tenacity retry policy from the current config.
394
402
 
@@ -409,6 +417,17 @@ class DisplayCodeInterpreterFilesPostProcessor(
409
417
  run_t0 = time.monotonic()
410
418
  self._log.info("run() started — fetching and uploading code interpreter files")
411
419
 
420
+ self._fence_ff_on = await is_flag_enabled(
421
+ FeatureFlagNames.enable_code_execution_fence_un_17972,
422
+ company_id=self._company_id or COMPANY_ID_PLACEHOLDER,
423
+ )
424
+ # htmlWithSource requires BOTH the fence FF and the HTML-fence FF on; default
425
+ # (FF off) keeps HtmlRendering, so existing deployments are unaffected.
426
+ self._html_fence_ff_on = await is_flag_enabled(
427
+ FeatureFlagNames.enable_html_with_fence_un_17927,
428
+ company_id=self._company_id or COMPANY_ID_PLACEHOLDER,
429
+ )
430
+
412
431
  container_files = loop_response.container_files
413
432
  self._log.info(
414
433
  "run() found %d container file annotation(s): %s",
@@ -554,9 +573,7 @@ class DisplayCodeInterpreterFilesPostProcessor(
554
573
  self._log.info(
555
574
  "apply_postprocessing started — %d file(s) in content_map, fence_ff=%s",
556
575
  len(self._content_map),
557
- feature_flags.enable_code_execution_fence_un_17972.is_enabled(
558
- self._company_id
559
- ),
576
+ self._fence_ff_on,
560
577
  )
561
578
 
562
579
  if loop_response.message.references is None:
@@ -566,18 +583,6 @@ class DisplayCodeInterpreterFilesPostProcessor(
566
583
 
567
584
  ref_number = _get_next_ref_number(loop_response.message.references)
568
585
  changed = False
569
- fence_ff_on = feature_flags.enable_code_execution_fence_un_17972.is_enabled(
570
- self._company_id
571
- )
572
- # HTML uses htmlWithSource only when BOTH the code-execution fence FF AND the
573
- # dedicated HTML-fence FF are on. Default (FF off) keeps HtmlRendering so
574
- # existing deployments are unaffected.
575
- html_fence_ff_on = (
576
- fence_ff_on
577
- and feature_flags.enable_html_with_fence_un_17927.is_enabled(
578
- self._company_id
579
- )
580
- )
581
586
 
582
587
  replaced_files: list[str] = []
583
588
  missed_files: list[str] = []
@@ -611,7 +616,7 @@ class DisplayCodeInterpreterFilesPostProcessor(
611
616
 
612
617
  # HTML rendered as HtmlRendering block unless the dedicated html-fence FF
613
618
  # is on (enable_html_with_fence_un_17927). Default keeps HtmlRendering.
614
- elif is_html and not html_fence_ff_on:
619
+ elif is_html and not self._html_fence_ff_on:
615
620
  loop_response.message.text, replaced = _replace_container_html_citation(
616
621
  text=loop_response.message.text or "",
617
622
  filename=filename,
@@ -619,7 +624,7 @@ class DisplayCodeInterpreterFilesPostProcessor(
619
624
  )
620
625
  changed |= replaced
621
626
 
622
- # Non-HTML files, or HTML when html_fence_ff_on → inline content link for
627
+ # Non-HTML files, or HTML when self._html_fence_ff_on → inline content link for
623
628
  # subsequent fence injection (htmlWithSource / imgWithSource / fileWithSource)
624
629
  else:
625
630
  loop_response.message.text, replaced = _replace_container_file_citation(
@@ -627,7 +632,7 @@ class DisplayCodeInterpreterFilesPostProcessor(
627
632
  filename=filename,
628
633
  content_id=content_id,
629
634
  ref_number=ref_number,
630
- use_content_link=fence_ff_on,
635
+ use_content_link=self._fence_ff_on,
631
636
  )
632
637
  changed |= replaced
633
638
 
@@ -644,7 +649,7 @@ class DisplayCodeInterpreterFilesPostProcessor(
644
649
 
645
650
  # HtmlRendering and htmlWithSource both embed contentId directly — no ContentReference needed
646
651
  is_html_rendered = is_html
647
- if replaced and not (is_image or is_html_rendered or fence_ff_on):
652
+ if replaced and not (is_image or is_html_rendered or self._fence_ff_on):
648
653
  loop_response.message.references.append(
649
654
  ContentReference(
650
655
  sequence_number=ref_number,
@@ -663,9 +668,9 @@ class DisplayCodeInterpreterFilesPostProcessor(
663
668
  error_files,
664
669
  )
665
670
 
666
- if fence_ff_on:
671
+ if self._fence_ff_on:
667
672
  code_blocks = _build_code_blocks(
668
- loop_response, self._content_map, include_html=html_fence_ff_on
673
+ loop_response, self._content_map, include_html=self._html_fence_ff_on
669
674
  )
670
675
  self._log.info(
671
676
  "Fence injection — %d code block(s), files: %s",
@@ -673,7 +678,7 @@ class DisplayCodeInterpreterFilesPostProcessor(
673
678
  [f.filename for b in code_blocks for f in b.files],
674
679
  )
675
680
  _warn_unmatched_code_blocks(
676
- self._content_map, code_blocks, include_html=html_fence_ff_on
681
+ self._content_map, code_blocks, include_html=self._html_fence_ff_on
677
682
  )
678
683
  text_before = loop_response.message.text
679
684
  loop_response.message.text = _inject_code_execution_fences(
@@ -12,10 +12,15 @@ Required env vars::
12
12
 
13
13
  Quick start — explicit IDs::
14
14
 
15
- from unique_toolkit.experimental.resources.feature_flags import FeatureFlagClient
15
+ from unique_toolkit.experimental.resources.feature_flags import FeatureFlagClient, is_flag_enabled
16
16
 
17
- client = FeatureFlagClient.from_settings() # singleton; call at startup or first request
18
- enabled = await client.is_enabled("FEATURE_FLAG_ENABLE_X", company_id=company_id)
17
+ # Requires CONFIGURATION_BACKEND_URL / FEATURE_FLAG_SERVICE_ID to be set;
18
+ # falls back to the env-var value (or stale cache) on transport errors.
19
+ enabled = await is_flag_enabled("FEATURE_FLAG_ENABLE_X", company_id=company_id)
20
+
21
+ # Or manage the singleton directly:
22
+ client = FeatureFlagClient.from_settings() # raises if URL/service_id absent
23
+ client = get_feature_flag_client() # same — thin passthrough to from_settings()
19
24
 
20
25
  Per-request binding (when you have UniqueSettings / AuthContext)::
21
26
 
@@ -32,6 +37,7 @@ See README.md for the full evaluation-order diagram and adoption steps.
32
37
  """
33
38
 
34
39
  from .client import (
40
+ COMPANY_ID_PLACEHOLDER,
35
41
  BoundFeatureFlagClient,
36
42
  FeatureFlagClient,
37
43
  get_feature_flag_client,
@@ -41,6 +47,7 @@ from .schemas import FlagEvaluation
41
47
  from .settings import FeatureFlagSettings
42
48
 
43
49
  __all__ = [
50
+ "COMPANY_ID_PLACEHOLDER",
44
51
  "BoundFeatureFlagClient",
45
52
  "FeatureFlagClient",
46
53
  "FlagEvaluation",
@@ -177,21 +177,15 @@ class FeatureFlagClient:
177
177
 
178
178
  @staticmethod
179
179
  def _env_fallback(flag: str, company_id: str | None = None) -> bool:
180
- """Read *flag* from env vars using the same semantics as ``FeatureFlag``.
181
-
182
- Supports both plain booleans (``"true"`` / ``"false"``) and
183
- comma-separated company-ID allowlists (``"company1,company2"``),
184
- consistent with ``unique_toolkit.agentic.feature_flags.FeatureFlags``.
185
- """
186
- raw = os.getenv(flag, "false").strip()
187
- raw_lower = raw.lower()
180
+ """Read *flag* from env vars: plain booleans or comma-separated company-ID allowlists."""
181
+ raw = os.getenv(flag, "false")
182
+ raw_lower = raw.strip().lower()
188
183
  if raw_lower in ("true", "1", "yes"):
189
184
  return True
190
185
  if raw_lower in ("false", "0", "no", ""):
191
186
  return False
192
- # Comma-separated company-ID allowlist
193
- allowed = {part.strip() for part in raw.split(",") if part.strip()}
194
- return company_id in allowed if company_id else False
187
+ allowlist = [c.strip() for c in raw.split(",") if c.strip()]
188
+ return company_id in allowlist if company_id else False
195
189
 
196
190
 
197
191
  class BoundFeatureFlagClient:
@@ -215,12 +209,18 @@ class BoundFeatureFlagClient:
215
209
  return (await self.evaluate(flag)).value
216
210
 
217
211
 
212
+ # For is_flag_enabled() callers with no real company_id. Not a real company:
213
+ # bool-configured flags still resolve correctly; allowlist-configured ones safely read as off.
214
+ COMPANY_ID_PLACEHOLDER = "company_id_placeholder"
215
+
216
+
218
217
  def get_feature_flag_client() -> FeatureFlagClient:
219
218
  """Return the process-level :class:`FeatureFlagClient` singleton.
220
219
 
221
- Built lazily via :meth:`FeatureFlagClient.from_settings` which reads
222
- ``CONFIGURATION_BACKEND_URL`` and ``FEATURE_FLAG_SERVICE_ID`` from env.
223
- Falls back to env-var defaults on missing config or transport errors.
220
+ Built lazily via :meth:`FeatureFlagClient.from_settings`, which reads
221
+ ``CONFIGURATION_BACKEND_URL`` and ``FEATURE_FLAG_SERVICE_ID`` from env and
222
+ raises :class:`ValueError` if either is missing. Evaluations fall back to
223
+ env-var defaults (or a stale cached value) only on *transport* errors.
224
224
  """
225
225
  return FeatureFlagClient.from_settings()
226
226
 
@@ -22,7 +22,7 @@ from unique_toolkit._common.metadata_filter_scope import (
22
22
  merge_scope_clause_into_metadata_filter,
23
23
  )
24
24
  from unique_toolkit._common.utils.files import is_file_content, is_image_content
25
- from unique_toolkit.agentic.feature_flags import feature_flags
25
+ from unique_toolkit.agentic.feature_flags import FeatureFlagNames
26
26
  from unique_toolkit.agentic.message_log_order import next_message_log_order
27
27
  from unique_toolkit.app.unique_settings import UniqueContext, UniqueSettings
28
28
  from unique_toolkit.chat.cancellation import CancellationWatcher
@@ -100,6 +100,7 @@ from unique_toolkit.content.schemas import (
100
100
  ContentSearchType,
101
101
  )
102
102
  from unique_toolkit.elicitation.service import ElicitationService
103
+ from unique_toolkit.experimental.resources.feature_flags import is_flag_enabled
103
104
  from unique_toolkit.language_model.constants import (
104
105
  DEFAULT_COMPLETE_TEMPERATURE,
105
106
  DEFAULT_COMPLETE_TIMEOUT,
@@ -1805,8 +1806,9 @@ class ChatService(ChatServiceDeprecated):
1805
1806
 
1806
1807
  if not rate_limit_retry_config.log_message_on_retry:
1807
1808
  return
1808
- if not feature_flags.enable_new_answers_ui_un_14411.is_enabled(
1809
- self._company_id
1809
+ if not await is_flag_enabled(
1810
+ FeatureFlagNames.enable_new_answers_ui_un_14411,
1811
+ company_id=self._company_id,
1810
1812
  ):
1811
1813
  return
1812
1814