unique_toolkit 1.77.0__tar.gz → 1.77.2__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 (309) hide show
  1. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/PKG-INFO +1 -1
  2. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/pyproject.toml +1 -1
  3. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/history_manager/history_construction_with_contents.py +24 -0
  4. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/history_manager/loop_token_reducer.py +7 -1
  5. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/history_manager/utils.py +23 -0
  6. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/tools/experimental/open_file_tool/runtime.py +7 -0
  7. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/postprocessors/code_display.py +1 -0
  8. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/postprocessors/generated_files.py +1 -113
  9. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/README.md +0 -0
  10. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/__init__.py +0 -0
  11. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/_common/__init__.py +0 -0
  12. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/_common/_base_service.py +0 -0
  13. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/_common/_time_utils.py +0 -0
  14. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/_common/api_calling/human_verification_manager.py +0 -0
  15. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/_common/base_model_type_attribute.py +0 -0
  16. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/_common/chunk_relevancy_sorter/config.py +0 -0
  17. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/_common/chunk_relevancy_sorter/exception.py +0 -0
  18. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/_common/chunk_relevancy_sorter/schemas.py +0 -0
  19. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/_common/chunk_relevancy_sorter/service.py +0 -0
  20. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/_common/chunk_relevancy_sorter/tests/test_service.py +0 -0
  21. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/_common/config_checker/README.md +0 -0
  22. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/_common/config_checker/__init__.py +0 -0
  23. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/_common/config_checker/__main__.py +0 -0
  24. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/_common/config_checker/cli.py +0 -0
  25. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/_common/config_checker/differ.py +0 -0
  26. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/_common/config_checker/exporter.py +0 -0
  27. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/_common/config_checker/models.py +0 -0
  28. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/_common/config_checker/registry.py +0 -0
  29. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/_common/config_checker/validator.py +0 -0
  30. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/_common/default_language_model.py +0 -0
  31. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/_common/docx_generator/__init__.py +0 -0
  32. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/_common/docx_generator/config.py +0 -0
  33. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/_common/docx_generator/pandoc_converter.py +0 -0
  34. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/_common/docx_generator/schemas.py +0 -0
  35. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/_common/docx_generator/service.py +0 -0
  36. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/_common/docx_generator/template/Doc Template.docx +0 -0
  37. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/_common/endpoint_builder.py +0 -0
  38. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/_common/endpoint_requestor.py +0 -0
  39. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/_common/event_bus.py +0 -0
  40. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/_common/exception.py +0 -0
  41. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/_common/execution.py +0 -0
  42. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/_common/experimental/endpoint_builder.py +0 -0
  43. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/_common/experimental/endpoint_requestor.py +0 -0
  44. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/_common/experimental/write_up_agent/README.md +0 -0
  45. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/_common/experimental/write_up_agent/__init__.py +0 -0
  46. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/_common/experimental/write_up_agent/agent.py +0 -0
  47. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/_common/experimental/write_up_agent/config.py +0 -0
  48. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/_common/experimental/write_up_agent/examples/data.csv +0 -0
  49. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/_common/experimental/write_up_agent/examples/example_usage.py +0 -0
  50. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/_common/experimental/write_up_agent/schemas.py +0 -0
  51. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/_common/experimental/write_up_agent/services/__init__.py +0 -0
  52. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/__init__.py +0 -0
  53. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/exceptions.py +0 -0
  54. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/service.py +0 -0
  55. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/utils.py +0 -0
  56. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/__init__.py +0 -0
  57. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/config.py +0 -0
  58. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/exceptions.py +0 -0
  59. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/prompts/config.py +0 -0
  60. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/prompts/system_prompt.j2 +0 -0
  61. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/prompts/user_prompt.j2 +0 -0
  62. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/service.py +0 -0
  63. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/__init__.py +0 -0
  64. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/default_template.j2 +0 -0
  65. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/exceptions.py +0 -0
  66. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/service.py +0 -0
  67. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/utils.py +0 -0
  68. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/_common/experimental/write_up_agent/utils.py +0 -0
  69. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/_common/feature_flags/schema.py +0 -0
  70. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/_common/pydantic/rjsf_tags.py +0 -0
  71. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/_common/pydantic_helpers.py +0 -0
  72. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/_common/referencing.py +0 -0
  73. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/_common/string_utilities.py +0 -0
  74. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/_common/tests/test_referencing.py +0 -0
  75. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/_common/tests/test_string_utilities.py +0 -0
  76. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/_common/token/__init__.py +0 -0
  77. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/_common/token/image_token_counting.py +0 -0
  78. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/_common/token/token_counting.py +0 -0
  79. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/_common/token/tokenizers/deepseek/tokenizer.json +0 -0
  80. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/_common/token/tokenizers/qwen/tokenizer.json +0 -0
  81. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/_common/utils/__init__.py +0 -0
  82. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/_common/utils/files.py +0 -0
  83. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/_common/utils/image/encode.py +0 -0
  84. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/_common/utils/jinja/helpers.py +0 -0
  85. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/_common/utils/jinja/render.py +0 -0
  86. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/_common/utils/jinja/schema.py +0 -0
  87. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/_common/utils/jinja/utils.py +0 -0
  88. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/_common/utils/structured_output/__init__.py +0 -0
  89. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/_common/utils/structured_output/schema.py +0 -0
  90. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/_common/utils/write_configuration.py +0 -0
  91. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/_common/validate_required_values.py +0 -0
  92. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/_common/validators.py +0 -0
  93. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/__init__.py +0 -0
  94. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/debug_info_manager/debug_info_manager.py +0 -0
  95. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/debug_info_manager/test/test_debug_info_manager.py +0 -0
  96. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/evaluation/config.py +0 -0
  97. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/evaluation/context_relevancy/prompts/__init__.py +0 -0
  98. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/evaluation/context_relevancy/prompts/system_prompt.j2 +0 -0
  99. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/evaluation/context_relevancy/prompts/user_prompt.j2 +0 -0
  100. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/evaluation/context_relevancy/schema.py +0 -0
  101. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/evaluation/context_relevancy/service.py +0 -0
  102. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/evaluation/evaluation_manager.py +0 -0
  103. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/evaluation/exception.py +0 -0
  104. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/evaluation/hallucination/constants.py +0 -0
  105. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/evaluation/hallucination/hallucination_evaluation.py +0 -0
  106. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/evaluation/hallucination/prompts/__init__.py +0 -0
  107. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/evaluation/hallucination/prompts/system_prompt.j2 +0 -0
  108. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/evaluation/hallucination/prompts/user_prompt.j2 +0 -0
  109. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/evaluation/hallucination/service.py +0 -0
  110. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/evaluation/hallucination/utils.py +0 -0
  111. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/evaluation/output_parser.py +0 -0
  112. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/evaluation/schemas.py +0 -0
  113. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/evaluation/tests/fixtures.py +0 -0
  114. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/evaluation/tests/test_config.py +0 -0
  115. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/evaluation/tests/test_context_relevancy_service.py +0 -0
  116. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/evaluation/tests/test_hallucination_constants.py +0 -0
  117. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/evaluation/tests/test_hallucination_utils.py +0 -0
  118. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/evaluation/tests/test_output_parser.py +0 -0
  119. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/evaluation/tests/test_prompt_loaders.py +0 -0
  120. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/evaluation/utils.py +0 -0
  121. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/feature_flags/__init__.py +0 -0
  122. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/feature_flags/feature_flags.py +0 -0
  123. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/history_manager/history_manager.py +0 -0
  124. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/loop_runner/__init__.py +0 -0
  125. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/loop_runner/_iteration_handler_utils.py +0 -0
  126. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/loop_runner/_responses_iteration_handler_utils.py +0 -0
  127. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/loop_runner/_responses_stream_handler_utils.py +0 -0
  128. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/loop_runner/_stream_handler_utils.py +0 -0
  129. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/loop_runner/base.py +0 -0
  130. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/loop_runner/middleware/__init__.py +0 -0
  131. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/loop_runner/middleware/planning/__init__.py +0 -0
  132. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/loop_runner/middleware/planning/planning.py +0 -0
  133. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/loop_runner/middleware/planning/schema.py +0 -0
  134. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/loop_runner/runners/__init__.py +0 -0
  135. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/loop_runner/runners/basic.py +0 -0
  136. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/loop_runner/runners/mistral/__init__.py +0 -0
  137. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/loop_runner/runners/mistral/mistral_runner.py +0 -0
  138. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/loop_runner/runners/qwen/__init__.py +0 -0
  139. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/loop_runner/runners/qwen/helpers.py +0 -0
  140. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/loop_runner/runners/qwen/qwen_runner.py +0 -0
  141. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/message_log_manager/__init__.py +0 -0
  142. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/message_log_manager/service.py +0 -0
  143. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/postprocessor/postprocessor_manager.py +0 -0
  144. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/reference_manager/reference_manager.py +0 -0
  145. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/responses_api/__init__.py +0 -0
  146. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/responses_api/postprocessors/code_display.py +0 -0
  147. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/responses_api/postprocessors/generated_files.py +0 -0
  148. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/responses_api/stream_handler.py +0 -0
  149. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/short_term_memory_manager/persistent_short_term_memory_manager.py +0 -0
  150. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/thinking_manager/thinking_manager.py +0 -0
  151. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/tools/__init__.py +0 -0
  152. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/tools/a2a/__init__.py +0 -0
  153. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/tools/a2a/config.py +0 -0
  154. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/tools/a2a/evaluation/__init__.py +0 -0
  155. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/tools/a2a/evaluation/_utils.py +0 -0
  156. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/tools/a2a/evaluation/config.py +0 -0
  157. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/tools/a2a/evaluation/evaluator.py +0 -0
  158. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/tools/a2a/evaluation/summarization_user_message.j2 +0 -0
  159. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/tools/a2a/manager.py +0 -0
  160. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/tools/a2a/postprocessing/__init__.py +0 -0
  161. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/tools/a2a/postprocessing/_display_utils.py +0 -0
  162. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/tools/a2a/postprocessing/_ref_utils.py +0 -0
  163. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/tools/a2a/postprocessing/config.py +0 -0
  164. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/tools/a2a/postprocessing/display.py +0 -0
  165. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/tools/a2a/postprocessing/references.py +0 -0
  166. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_display.py +0 -0
  167. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_display_utils.py +0 -0
  168. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_ref_utils.py +0 -0
  169. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/tools/a2a/prompts.py +0 -0
  170. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/tools/a2a/response_watcher/__init__.py +0 -0
  171. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/tools/a2a/response_watcher/service.py +0 -0
  172. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/tools/a2a/tool/__init__.py +0 -0
  173. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/tools/a2a/tool/_memory.py +0 -0
  174. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/tools/a2a/tool/_schema.py +0 -0
  175. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/tools/a2a/tool/config.py +0 -0
  176. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/tools/a2a/tool/service.py +0 -0
  177. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/tools/a2a/tool/test/test_service_utils.py +0 -0
  178. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/tools/agent_chunks_hanlder.py +0 -0
  179. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/tools/config.py +0 -0
  180. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/tools/experimental/__init__.py +0 -0
  181. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/tools/experimental/open_file_tool/__init__.py +0 -0
  182. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/tools/experimental/open_file_tool/config.py +0 -0
  183. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/tools/experimental/open_file_tool/tool.py +0 -0
  184. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/tools/experimental/todo/__init__.py +0 -0
  185. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/tools/experimental/todo/config.py +0 -0
  186. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/tools/experimental/todo/prompts/__init__.py +0 -0
  187. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/tools/experimental/todo/prompts/execution_reminder.j2 +0 -0
  188. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/tools/experimental/todo/prompts/system_prompt.j2 +0 -0
  189. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/tools/experimental/todo/prompts/tool_description.j2 +0 -0
  190. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/tools/experimental/todo/prompts/verification_nudge.j2 +0 -0
  191. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/tools/experimental/todo/schemas.py +0 -0
  192. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/tools/experimental/todo/service.py +0 -0
  193. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/tools/factory.py +0 -0
  194. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/tools/mcp/__init__.py +0 -0
  195. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/tools/mcp/manager.py +0 -0
  196. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/tools/mcp/models.py +0 -0
  197. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/tools/mcp/tool_wrapper.py +0 -0
  198. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/tools/openai_builtin/__init__.py +0 -0
  199. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/tools/openai_builtin/base.py +0 -0
  200. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/__init__.py +0 -0
  201. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/config.py +0 -0
  202. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/postprocessors/__init__.py +0 -0
  203. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/schemas.py +0 -0
  204. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/service.py +0 -0
  205. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/tools/openai_builtin/manager.py +0 -0
  206. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/tools/schemas.py +0 -0
  207. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/tools/test/test_mcp_manager.py +0 -0
  208. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/tools/test/test_tool_progress_reporter.py +0 -0
  209. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/tools/tool.py +0 -0
  210. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/tools/tool_manager.py +0 -0
  211. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/tools/tool_progress_reporter.py +0 -0
  212. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/tools/utils/__init__.py +0 -0
  213. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/tools/utils/source_handling/__init__.py +0 -0
  214. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/tools/utils/source_handling/schema.py +0 -0
  215. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/tools/utils/source_handling/source_formatting.py +0 -0
  216. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic/tools/utils/source_handling/tests/test_source_formatting.py +0 -0
  217. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic_table/__init__.py +0 -0
  218. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic_table/schemas.py +0 -0
  219. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/agentic_table/service.py +0 -0
  220. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/app/__init__.py +0 -0
  221. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/app/chat_event_filter_options_settings.py +0 -0
  222. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/app/dev_util.py +0 -0
  223. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/app/fast_api_factory.py +0 -0
  224. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/app/feature_flags.py +0 -0
  225. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/app/find_env_file.py +0 -0
  226. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/app/init_logging.py +0 -0
  227. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/app/init_sdk.py +0 -0
  228. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/app/performance/async_tasks.py +0 -0
  229. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/app/performance/async_wrapper.py +0 -0
  230. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/app/schemas.py +0 -0
  231. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/app/unique_settings.py +0 -0
  232. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/app/verification.py +0 -0
  233. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/app/webhook.py +0 -0
  234. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/chat/__init__.py +0 -0
  235. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/chat/cancellation.py +0 -0
  236. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/chat/constants.py +0 -0
  237. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/chat/deprecated/service.py +0 -0
  238. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/chat/functions.py +0 -0
  239. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/chat/rendering.py +0 -0
  240. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/chat/responses_api.py +0 -0
  241. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/chat/schemas.py +0 -0
  242. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/chat/service.py +0 -0
  243. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/chat/state.py +0 -0
  244. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/chat/utils.py +0 -0
  245. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/content/__init__.py +0 -0
  246. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/content/constants.py +0 -0
  247. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/content/functions.py +0 -0
  248. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/content/schemas.py +0 -0
  249. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/content/service.py +0 -0
  250. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/content/smart_rules.py +0 -0
  251. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/content/utils.py +0 -0
  252. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/data_extraction/README.md +0 -0
  253. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/data_extraction/__init__.py +0 -0
  254. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/data_extraction/augmented/__init__.py +0 -0
  255. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/data_extraction/augmented/service.py +0 -0
  256. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/data_extraction/base.py +0 -0
  257. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/data_extraction/basic/__init__.py +0 -0
  258. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/data_extraction/basic/config.py +0 -0
  259. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/data_extraction/basic/prompt.py +0 -0
  260. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/data_extraction/basic/service.py +0 -0
  261. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/elicitation/__init__.py +0 -0
  262. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/elicitation/constants.py +0 -0
  263. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/elicitation/exceptions.py +0 -0
  264. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/elicitation/functions.py +0 -0
  265. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/elicitation/schemas.py +0 -0
  266. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/elicitation/service.py +0 -0
  267. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/embedding/__init__.py +0 -0
  268. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/embedding/constants.py +0 -0
  269. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/embedding/functions.py +0 -0
  270. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/embedding/schemas.py +0 -0
  271. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/embedding/service.py +0 -0
  272. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/embedding/utils.py +0 -0
  273. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/framework_utilities/__init__.py +0 -0
  274. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/framework_utilities/langchain/__init__.py +0 -0
  275. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/framework_utilities/langchain/client.py +0 -0
  276. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/framework_utilities/langchain/history.py +0 -0
  277. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/framework_utilities/openai/__init__.py +0 -0
  278. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/framework_utilities/openai/client.py +0 -0
  279. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/framework_utilities/openai/message_builder.py +0 -0
  280. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/framework_utilities/utils.py +0 -0
  281. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/language_model/__init__.py +0 -0
  282. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/language_model/_responses_api_utils.py +0 -0
  283. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/language_model/builder.py +0 -0
  284. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/language_model/constants.py +0 -0
  285. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/language_model/default_language_model.py +0 -0
  286. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/language_model/functions.py +0 -0
  287. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/language_model/infos.py +0 -0
  288. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/language_model/prompt.py +0 -0
  289. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/language_model/reference.py +0 -0
  290. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/language_model/schemas.py +0 -0
  291. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/language_model/service.py +0 -0
  292. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/language_model/stream_transform.py +0 -0
  293. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/language_model/utils.py +0 -0
  294. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/monitoring/__init__.py +0 -0
  295. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/monitoring/middleware.py +0 -0
  296. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/monitoring/registry.py +0 -0
  297. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/protocols/support.py +0 -0
  298. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/services/__init__.py +0 -0
  299. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/services/chat_service.py +0 -0
  300. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/services/factory.py +0 -0
  301. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/services/knowledge_base.py +0 -0
  302. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/short_term_memory/__init__.py +0 -0
  303. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/short_term_memory/constants.py +0 -0
  304. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/short_term_memory/functions.py +0 -0
  305. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/short_term_memory/schemas.py +0 -0
  306. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/short_term_memory/service.py +0 -0
  307. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/smart_rules/__init__.py +0 -0
  308. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/unique_toolkit/smart_rules/compile.py +0 -0
  309. {unique_toolkit-1.77.0 → unique_toolkit-1.77.2}/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: 1.77.0
3
+ Version: 1.77.2
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 = "1.77.0"
3
+ version = "1.77.2"
4
4
  description = ""
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.12"
@@ -237,10 +237,18 @@ def _append_element_to_builder(
237
237
  file_content_serialization_type: FileContentSerialization,
238
238
  content_service: ContentService,
239
239
  chat_id: str,
240
+ selected_content_ids: set[str] | None = None,
240
241
  ) -> None:
241
242
  if len(c.contents) > 0:
242
243
  file_contents = [co for co in c.contents if FileUtils.is_file_content(co.key)]
243
244
  image_contents = [co for co in c.contents if FileUtils.is_image_content(co.key)]
245
+ if selected_content_ids is not None:
246
+ file_contents = [
247
+ co for co in file_contents if co.id in selected_content_ids
248
+ ]
249
+ image_contents = [
250
+ co for co in image_contents if co.id in selected_content_ids
251
+ ]
244
252
  content = (
245
253
  text
246
254
  + "\n\n"
@@ -280,10 +288,18 @@ async def _append_element_to_builder_async(
280
288
  file_content_serialization_type: FileContentSerialization,
281
289
  content_service: ContentService,
282
290
  chat_id: str,
291
+ selected_content_ids: set[str] | None = None,
283
292
  ) -> None:
284
293
  if len(c.contents) > 0:
285
294
  file_contents = [co for co in c.contents if FileUtils.is_file_content(co.key)]
286
295
  image_contents = [co for co in c.contents if FileUtils.is_image_content(co.key)]
296
+ if selected_content_ids is not None:
297
+ file_contents = [
298
+ co for co in file_contents if co.id in selected_content_ids
299
+ ]
300
+ image_contents = [
301
+ co for co in image_contents if co.id in selected_content_ids
302
+ ]
287
303
  content = (
288
304
  text
289
305
  + "\n\n"
@@ -321,6 +337,7 @@ def get_full_history_with_contents(
321
337
  content_service: ContentService,
322
338
  include_images: ImageContentInclusion = ImageContentInclusion.ALL,
323
339
  file_content_serialization_type: FileContentSerialization = FileContentSerialization.FILE_NAME,
340
+ selected_content_ids: set[str] | None = None,
324
341
  ) -> LanguageModelMessages:
325
342
  grouped_elements = get_chat_history_with_contents(
326
343
  user_message=user_message,
@@ -347,6 +364,7 @@ def get_full_history_with_contents(
347
364
  file_content_serialization_type=file_content_serialization_type,
348
365
  content_service=content_service,
349
366
  chat_id=chat_id,
367
+ selected_content_ids=selected_content_ids,
350
368
  )
351
369
  return builder.build()
352
370
 
@@ -359,6 +377,7 @@ async def get_full_history_with_contents_async(
359
377
  content_service: ContentService,
360
378
  include_images: ImageContentInclusion = ImageContentInclusion.ALL,
361
379
  file_content_serialization_type: FileContentSerialization = FileContentSerialization.FILE_NAME,
380
+ selected_content_ids: set[str] | None = None,
362
381
  ) -> LanguageModelMessages:
363
382
  grouped_elements = await get_chat_history_with_contents_async(
364
383
  user_message=user_message,
@@ -384,6 +403,7 @@ async def get_full_history_with_contents_async(
384
403
  file_content_serialization_type=file_content_serialization_type,
385
404
  content_service=content_service,
386
405
  chat_id=chat_id,
406
+ selected_content_ids=selected_content_ids,
387
407
  )
388
408
  return builder.build()
389
409
 
@@ -396,6 +416,7 @@ def get_full_history_with_contents_and_tool_calls(
396
416
  content_service: ContentService,
397
417
  include_images: ImageContentInclusion = ImageContentInclusion.ALL,
398
418
  file_content_serialization_type: FileContentSerialization = FileContentSerialization.FILE_NAME,
419
+ selected_content_ids: set[str] | None = None,
399
420
  ) -> tuple[LanguageModelMessages, int, dict[int, "ContentChunk"]]:
400
421
  """Build the full LLM message history, including persisted tool call rounds.
401
422
 
@@ -526,6 +547,7 @@ def get_full_history_with_contents_and_tool_calls(
526
547
  file_content_serialization_type=file_content_serialization_type,
527
548
  content_service=content_service,
528
549
  chat_id=chat_id,
550
+ selected_content_ids=selected_content_ids,
529
551
  )
530
552
  return builder.build(), max_source_number, source_map
531
553
 
@@ -538,6 +560,7 @@ async def get_full_history_with_contents_and_tool_calls_async(
538
560
  content_service: ContentService,
539
561
  include_images: ImageContentInclusion = ImageContentInclusion.ALL,
540
562
  file_content_serialization_type: FileContentSerialization = FileContentSerialization.FILE_NAME,
563
+ selected_content_ids: set[str] | None = None,
541
564
  ) -> tuple[LanguageModelMessages, int, dict[int, "ContentChunk"]]:
542
565
  """Async version of get_full_history_with_contents_and_tool_calls."""
543
566
  from unique_toolkit.agentic.history_manager.utils import (
@@ -642,6 +665,7 @@ async def get_full_history_with_contents_and_tool_calls_async(
642
665
  file_content_serialization_type=file_content_serialization_type,
643
666
  content_service=content_service,
644
667
  chat_id=chat_id,
668
+ selected_content_ids=selected_content_ids,
645
669
  )
646
670
  return builder.build(), max_source_number, source_map
647
671
 
@@ -13,7 +13,10 @@ from unique_toolkit.agentic.history_manager.history_construction_with_contents i
13
13
  get_full_history_with_contents_and_tool_calls_async,
14
14
  get_full_history_with_contents_async,
15
15
  )
16
- from unique_toolkit.agentic.history_manager.utils import serialize_tool_content_json
16
+ from unique_toolkit.agentic.history_manager.utils import (
17
+ get_selected_uploaded_content_ids,
18
+ serialize_tool_content_json,
19
+ )
17
20
  from unique_toolkit.agentic.reference_manager.reference_manager import ReferenceManager
18
21
  from unique_toolkit.app.schemas import ChatEvent
19
22
  from unique_toolkit.app.unique_settings import UniqueSettings
@@ -76,6 +79,7 @@ class LoopTokenReducer:
76
79
  self._max_db_source_number: int = -1
77
80
  self._db_source_map: dict[int, ContentChunk] = {}
78
81
  self._enable_tool_call_persistence = enable_tool_call_persistence
82
+ self._selected_content_ids = get_selected_uploaded_content_ids(event)
79
83
 
80
84
  @property
81
85
  def max_db_source_number(self) -> int:
@@ -322,6 +326,7 @@ class LoopTokenReducer:
322
326
  chat_service=self._chat_service,
323
327
  content_service=self._content_service,
324
328
  file_content_serialization_type=file_content_serialization_type,
329
+ selected_content_ids=self._selected_content_ids,
325
330
  )
326
331
  self._max_db_source_number = max_src
327
332
  self._db_source_map = src_map
@@ -332,6 +337,7 @@ class LoopTokenReducer:
332
337
  chat_service=self._chat_service,
333
338
  content_service=self._content_service,
334
339
  file_content_serialization_type=file_content_serialization_type,
340
+ selected_content_ids=self._selected_content_ids,
335
341
  )
336
342
 
337
343
  if remove_from_text is not None:
@@ -3,7 +3,9 @@ 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
7
  from unique_toolkit.agentic.tools.schemas import Source
8
+ from unique_toolkit.app.schemas import ChatEvent
7
9
  from unique_toolkit.content.schemas import ContentChunk
8
10
  from unique_toolkit.language_model.schemas import (
9
11
  LanguageModelAssistantMessage,
@@ -14,6 +16,27 @@ from unique_toolkit.language_model.schemas import (
14
16
  logger = logging.getLogger(__name__)
15
17
 
16
18
 
19
+ def get_selected_uploaded_content_ids(event: ChatEvent) -> set[str] | None:
20
+ """Derive the set of content IDs the user explicitly selected.
21
+
22
+ Returns ``None`` when the feature flag is disabled (meaning *all*
23
+ uploaded images should be included), or a ``set[str]`` of IDs when
24
+ only a subset should be attached.
25
+ """
26
+ if not feature_flags.enable_selected_uploaded_files_un_18215.is_enabled(
27
+ event.company_id
28
+ ):
29
+ return None
30
+
31
+ if not (
32
+ hasattr(event.payload, "additional_parameters")
33
+ and event.payload.additional_parameters
34
+ ):
35
+ return None
36
+
37
+ return set(event.payload.additional_parameters.selected_uploaded_file_ids)
38
+
39
+
17
40
  def serialize_tool_content_json(value: Any) -> str:
18
41
  """Serialize tool-role JSON text while preserving readable Unicode."""
19
42
  return json.dumps(value, ensure_ascii=False)
@@ -34,6 +34,7 @@ class OpenFileToolRuntimeConfig:
34
34
  send_files_in_payload: bool = False
35
35
  send_uploaded_files_in_payload: bool = False
36
36
  use_responses_api: bool = False
37
+ selected_content_ids: frozenset[str] | None = None
37
38
 
38
39
 
39
40
  class OpenFileToolRuntime:
@@ -256,6 +257,12 @@ class OpenFileToolRuntime:
256
257
  if (document.expired_at is None or document.expired_at > now)
257
258
  and document.key.lower().endswith(".pdf")
258
259
  ]
260
+ if self._config.selected_content_ids is not None:
261
+ uploaded_documents = [
262
+ doc
263
+ for doc in uploaded_documents
264
+ if doc.id in self._config.selected_content_ids
265
+ ]
259
266
  self._cached_uploaded_documents = sorted(
260
267
  uploaded_documents,
261
268
  key=lambda document: (
@@ -55,6 +55,7 @@ class ShowExecutedCodePostprocessor(ResponsesApiPostprocessor):
55
55
  ):
56
56
  super().__init__(self.__class__.__name__)
57
57
  self._config = config
58
+ self._company_id = company_id
58
59
  self._is_enabled = (
59
60
  self._config.enable
60
61
  and not feature_flags.enable_code_execution_fence_un_17972.is_enabled(
@@ -358,7 +358,6 @@ class DisplayCodeInterpreterFilesPostProcessor(
358
358
  logger, {"chat_id": chat_id or "n/a"}
359
359
  )
360
360
 
361
- self._orphan_code_blocks: list[CodeInterpreterBlock] = []
362
361
  self._short_term_memory_manager = None
363
362
  if chat_id is not None and user_id is not None and company_id is not None:
364
363
  self._short_term_memory_manager = _init_short_term_memory_manager(
@@ -465,34 +464,11 @@ class DisplayCodeInterpreterFilesPostProcessor(
465
464
  )
466
465
  save_ms = (time.monotonic() - phase_t0) * 1000
467
466
 
468
- phase_t0 = time.monotonic()
469
- try:
470
- if feature_flags.enable_code_execution_fence_un_17972.is_enabled(
471
- self._company_id
472
- ):
473
- self._orphan_code_blocks = await self._upload_orphan_code_as_txt(
474
- loop_response
475
- )
476
- if self._orphan_code_blocks:
477
- self._log.info(
478
- "run() produced %d orphan code block(s)",
479
- len(self._orphan_code_blocks),
480
- )
481
- else:
482
- self._orphan_code_blocks = []
483
- except Exception:
484
- self._log.exception(
485
- "run() failed to process orphan code blocks; "
486
- "file replacement will still proceed."
487
- )
488
- self._orphan_code_blocks = []
489
- orphan_ms = (time.monotonic() - phase_t0) * 1000
490
-
491
467
  total_ms = (time.monotonic() - run_t0) * 1000
492
468
  self._log.info(
493
469
  "run() finished — content_map has %d entries (%d ok, %d failed). "
494
470
  "Timing: total=%.0fms, load_stm=%.0fms, download_upload=%.0fms, "
495
- "save_stm=%.0fms, orphan=%.0fms",
471
+ "save_stm=%.0fms",
496
472
  len(self._content_map),
497
473
  len(succeeded),
498
474
  len(failed),
@@ -500,7 +476,6 @@ class DisplayCodeInterpreterFilesPostProcessor(
500
476
  load_ms,
501
477
  download_upload_ms,
502
478
  save_ms,
503
- orphan_ms,
504
479
  )
505
480
 
506
481
  @override
@@ -624,25 +599,6 @@ class DisplayCodeInterpreterFilesPostProcessor(
624
599
  if fences_changed:
625
600
  self._log.info("Fence injection modified the message text")
626
601
 
627
- if self._orphan_code_blocks:
628
- for block in self._orphan_code_blocks:
629
- for file in block.files:
630
- loop_response.message.references.append(
631
- ContentReference(
632
- sequence_number=ref_number,
633
- source_id=file.content_id,
634
- source="node-ingestion-chunks",
635
- url=f"unique://content/{file.content_id}",
636
- name=file.filename,
637
- )
638
- )
639
- ref_number += 1
640
- changed = True
641
- self._log.info(
642
- "Added %d orphan code block(s) to message references",
643
- len(self._orphan_code_blocks),
644
- )
645
-
646
602
  _warn_missing_content_ids(loop_response.message.text or "", self._content_map)
647
603
  loop_response.message.text, dangling_replaced = _replace_dangling_sandbox_links(
648
604
  loop_response.message.text
@@ -963,74 +919,6 @@ class DisplayCodeInterpreterFilesPostProcessor(
963
919
  (time.monotonic() - t0) * 1000,
964
920
  )
965
921
 
966
- async def _upload_orphan_code_as_txt(
967
- self, loop_response: ResponsesLanguageModelStreamResponse
968
- ) -> list[CodeInterpreterBlock]:
969
- """Upload source **code** from calls that produced no container files as .txt artifacts.
970
-
971
- When code interpreter runs but generates no files or images, the response
972
- text has no sandbox links for fence injection to hook onto. This method
973
- converts those "orphan" calls into downloadable .txt files (the executed
974
- code, not stdout) so the postprocessor can attach a reference for download.
975
-
976
- Called only when the fence feature flag is enabled. Skipped entirely if
977
- any container files were produced (normal fencing handles those).
978
- """
979
- if loop_response.container_files:
980
- return []
981
-
982
- calls = loop_response.code_interpreter_calls
983
- if not calls:
984
- return []
985
-
986
- assert self._chat_service is not None # Checked in __init__
987
-
988
- use_numeric_suffix = len(calls) > 1
989
- orphan_blocks: list[CodeInterpreterBlock] = []
990
-
991
- for i, call in enumerate(calls):
992
- if not call.code:
993
- continue
994
-
995
- # Always persist the executed source as the downloadable .txt (not stdout),
996
- # so the attachment matches what ran in the sandbox.
997
- txt_content = call.code
998
- filename = f"code_{i + 1}.txt" if use_numeric_suffix else "code.txt"
999
-
1000
- try:
1001
- content = await self._build_retry()(
1002
- self._chat_service.upload_to_chat_from_bytes_async,
1003
- content=txt_content.encode("utf-8"),
1004
- content_name=filename,
1005
- mime_type="text/plain",
1006
- skip_ingestion=True,
1007
- hide_in_chat=True,
1008
- )
1009
- except Exception:
1010
- self._log.exception(
1011
- "Failed to upload orphan code block as txt for call %d ('%s'); "
1012
- "falling back to legacy code block display.",
1013
- i,
1014
- filename,
1015
- )
1016
- continue
1017
-
1018
- orphan_file = CodeInterpreterFile(
1019
- filename=filename,
1020
- content_id=content.id,
1021
- type="document",
1022
- )
1023
- orphan_blocks.append(
1024
- CodeInterpreterBlock(code=call.code, files=[orphan_file])
1025
- )
1026
- self._log.info(
1027
- "Uploaded orphan code block as '%s' (content_id=%s)",
1028
- filename,
1029
- content.id,
1030
- )
1031
-
1032
- return orphan_blocks
1033
-
1034
922
 
1035
923
  def _get_file_type(filename: str) -> CodeInterpreterFileType:
1036
924
  mime = guess_type(filename)[0] or ""