unique_toolkit 1.68.4__tar.gz → 1.68.6__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 (294) hide show
  1. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/PKG-INFO +1 -1
  2. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/pyproject.toml +1 -1
  3. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/feature_flags/feature_flags.py +5 -0
  4. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/postprocessors/generated_files.py +16 -17
  5. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/app/__init__.py +3 -0
  6. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/app/schemas.py +25 -3
  7. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/test_utilities/events.py +5 -0
  8. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/README.md +0 -0
  9. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/__init__.py +0 -0
  10. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/_common/__init__.py +0 -0
  11. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/_common/_base_service.py +0 -0
  12. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/_common/_time_utils.py +0 -0
  13. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/_common/api_calling/human_verification_manager.py +0 -0
  14. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/_common/base_model_type_attribute.py +0 -0
  15. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/_common/chunk_relevancy_sorter/config.py +0 -0
  16. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/_common/chunk_relevancy_sorter/exception.py +0 -0
  17. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/_common/chunk_relevancy_sorter/schemas.py +0 -0
  18. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/_common/chunk_relevancy_sorter/service.py +0 -0
  19. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/_common/chunk_relevancy_sorter/tests/test_service.py +0 -0
  20. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/_common/config_checker/README.md +0 -0
  21. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/_common/config_checker/__init__.py +0 -0
  22. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/_common/config_checker/__main__.py +0 -0
  23. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/_common/config_checker/cli.py +0 -0
  24. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/_common/config_checker/differ.py +0 -0
  25. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/_common/config_checker/exporter.py +0 -0
  26. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/_common/config_checker/models.py +0 -0
  27. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/_common/config_checker/registry.py +0 -0
  28. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/_common/config_checker/validator.py +0 -0
  29. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/_common/default_language_model.py +0 -0
  30. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/_common/docx_generator/__init__.py +0 -0
  31. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/_common/docx_generator/config.py +0 -0
  32. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/_common/docx_generator/pandoc_converter.py +0 -0
  33. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/_common/docx_generator/schemas.py +0 -0
  34. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/_common/docx_generator/service.py +0 -0
  35. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/_common/docx_generator/template/Doc Template.docx +0 -0
  36. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/_common/endpoint_builder.py +0 -0
  37. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/_common/endpoint_requestor.py +0 -0
  38. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/_common/event_bus.py +0 -0
  39. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/_common/exception.py +0 -0
  40. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/_common/execution.py +0 -0
  41. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/_common/experimental/endpoint_builder.py +0 -0
  42. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/_common/experimental/endpoint_requestor.py +0 -0
  43. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/_common/experimental/write_up_agent/README.md +0 -0
  44. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/_common/experimental/write_up_agent/__init__.py +0 -0
  45. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/_common/experimental/write_up_agent/agent.py +0 -0
  46. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/_common/experimental/write_up_agent/config.py +0 -0
  47. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/_common/experimental/write_up_agent/examples/data.csv +0 -0
  48. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/_common/experimental/write_up_agent/examples/example_usage.py +0 -0
  49. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/_common/experimental/write_up_agent/schemas.py +0 -0
  50. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/_common/experimental/write_up_agent/services/__init__.py +0 -0
  51. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/__init__.py +0 -0
  52. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/exceptions.py +0 -0
  53. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/service.py +0 -0
  54. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/utils.py +0 -0
  55. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/__init__.py +0 -0
  56. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/config.py +0 -0
  57. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/exceptions.py +0 -0
  58. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/prompts/config.py +0 -0
  59. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/prompts/system_prompt.j2 +0 -0
  60. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/prompts/user_prompt.j2 +0 -0
  61. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/service.py +0 -0
  62. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/__init__.py +0 -0
  63. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/default_template.j2 +0 -0
  64. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/exceptions.py +0 -0
  65. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/service.py +0 -0
  66. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/utils.py +0 -0
  67. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/_common/experimental/write_up_agent/utils.py +0 -0
  68. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/_common/feature_flags/schema.py +0 -0
  69. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/_common/pydantic/rjsf_tags.py +0 -0
  70. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/_common/pydantic_helpers.py +0 -0
  71. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/_common/referencing.py +0 -0
  72. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/_common/string_utilities.py +0 -0
  73. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/_common/tests/test_referencing.py +0 -0
  74. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/_common/tests/test_string_utilities.py +0 -0
  75. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/_common/token/__init__.py +0 -0
  76. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/_common/token/image_token_counting.py +0 -0
  77. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/_common/token/token_counting.py +0 -0
  78. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/_common/token/tokenizers/deepseek/tokenizer.json +0 -0
  79. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/_common/token/tokenizers/qwen/tokenizer.json +0 -0
  80. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/_common/utils/__init__.py +0 -0
  81. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/_common/utils/files.py +0 -0
  82. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/_common/utils/image/encode.py +0 -0
  83. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/_common/utils/jinja/helpers.py +0 -0
  84. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/_common/utils/jinja/render.py +0 -0
  85. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/_common/utils/jinja/schema.py +0 -0
  86. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/_common/utils/jinja/utils.py +0 -0
  87. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/_common/utils/structured_output/__init__.py +0 -0
  88. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/_common/utils/structured_output/schema.py +0 -0
  89. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/_common/utils/write_configuration.py +0 -0
  90. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/_common/validate_required_values.py +0 -0
  91. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/_common/validators.py +0 -0
  92. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/__init__.py +0 -0
  93. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/debug_info_manager/debug_info_manager.py +0 -0
  94. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/debug_info_manager/test/test_debug_info_manager.py +0 -0
  95. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/evaluation/config.py +0 -0
  96. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/evaluation/context_relevancy/prompts/__init__.py +0 -0
  97. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/evaluation/context_relevancy/prompts/system_prompt.j2 +0 -0
  98. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/evaluation/context_relevancy/prompts/user_prompt.j2 +0 -0
  99. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/evaluation/context_relevancy/schema.py +0 -0
  100. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/evaluation/context_relevancy/service.py +0 -0
  101. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/evaluation/evaluation_manager.py +0 -0
  102. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/evaluation/exception.py +0 -0
  103. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/evaluation/hallucination/constants.py +0 -0
  104. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/evaluation/hallucination/hallucination_evaluation.py +0 -0
  105. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/evaluation/hallucination/prompts/__init__.py +0 -0
  106. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/evaluation/hallucination/prompts/system_prompt.j2 +0 -0
  107. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/evaluation/hallucination/prompts/user_prompt.j2 +0 -0
  108. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/evaluation/hallucination/service.py +0 -0
  109. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/evaluation/hallucination/utils.py +0 -0
  110. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/evaluation/output_parser.py +0 -0
  111. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/evaluation/schemas.py +0 -0
  112. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/evaluation/tests/fixtures.py +0 -0
  113. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/evaluation/tests/test_config.py +0 -0
  114. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/evaluation/tests/test_context_relevancy_service.py +0 -0
  115. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/evaluation/tests/test_hallucination_constants.py +0 -0
  116. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/evaluation/tests/test_hallucination_utils.py +0 -0
  117. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/evaluation/tests/test_output_parser.py +0 -0
  118. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/evaluation/tests/test_prompt_loaders.py +0 -0
  119. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/evaluation/utils.py +0 -0
  120. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/feature_flags/__init__.py +0 -0
  121. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/history_manager/history_construction_with_contents.py +0 -0
  122. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/history_manager/history_manager.py +0 -0
  123. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/history_manager/loop_token_reducer.py +0 -0
  124. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/history_manager/utils.py +0 -0
  125. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/loop_runner/__init__.py +0 -0
  126. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/loop_runner/_iteration_handler_utils.py +0 -0
  127. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/loop_runner/_responses_iteration_handler_utils.py +0 -0
  128. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/loop_runner/_responses_stream_handler_utils.py +0 -0
  129. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/loop_runner/_stream_handler_utils.py +0 -0
  130. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/loop_runner/base.py +0 -0
  131. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/loop_runner/middleware/__init__.py +0 -0
  132. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/loop_runner/middleware/planning/__init__.py +0 -0
  133. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/loop_runner/middleware/planning/planning.py +0 -0
  134. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/loop_runner/middleware/planning/schema.py +0 -0
  135. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/loop_runner/runners/__init__.py +0 -0
  136. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/loop_runner/runners/basic.py +0 -0
  137. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/loop_runner/runners/mistral/__init__.py +0 -0
  138. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/loop_runner/runners/mistral/mistral_runner.py +0 -0
  139. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/loop_runner/runners/qwen/__init__.py +0 -0
  140. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/loop_runner/runners/qwen/helpers.py +0 -0
  141. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/loop_runner/runners/qwen/qwen_runner.py +0 -0
  142. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/message_log_manager/__init__.py +0 -0
  143. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/message_log_manager/service.py +0 -0
  144. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/postprocessor/postprocessor_manager.py +0 -0
  145. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/reference_manager/reference_manager.py +0 -0
  146. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/responses_api/__init__.py +0 -0
  147. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/responses_api/postprocessors/code_display.py +0 -0
  148. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/responses_api/postprocessors/generated_files.py +0 -0
  149. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/responses_api/stream_handler.py +0 -0
  150. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/short_term_memory_manager/persistent_short_term_memory_manager.py +0 -0
  151. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/thinking_manager/thinking_manager.py +0 -0
  152. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/tools/__init__.py +0 -0
  153. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/tools/a2a/__init__.py +0 -0
  154. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/tools/a2a/config.py +0 -0
  155. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/tools/a2a/evaluation/__init__.py +0 -0
  156. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/tools/a2a/evaluation/_utils.py +0 -0
  157. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/tools/a2a/evaluation/config.py +0 -0
  158. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/tools/a2a/evaluation/evaluator.py +0 -0
  159. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/tools/a2a/evaluation/summarization_user_message.j2 +0 -0
  160. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/tools/a2a/manager.py +0 -0
  161. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/tools/a2a/postprocessing/__init__.py +0 -0
  162. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/tools/a2a/postprocessing/_display_utils.py +0 -0
  163. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/tools/a2a/postprocessing/_ref_utils.py +0 -0
  164. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/tools/a2a/postprocessing/config.py +0 -0
  165. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/tools/a2a/postprocessing/display.py +0 -0
  166. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/tools/a2a/postprocessing/references.py +0 -0
  167. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_display.py +0 -0
  168. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_display_utils.py +0 -0
  169. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_ref_utils.py +0 -0
  170. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/tools/a2a/prompts.py +0 -0
  171. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/tools/a2a/response_watcher/__init__.py +0 -0
  172. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/tools/a2a/response_watcher/service.py +0 -0
  173. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/tools/a2a/tool/__init__.py +0 -0
  174. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/tools/a2a/tool/_memory.py +0 -0
  175. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/tools/a2a/tool/_schema.py +0 -0
  176. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/tools/a2a/tool/config.py +0 -0
  177. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/tools/a2a/tool/service.py +0 -0
  178. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/tools/a2a/tool/test/test_service_utils.py +0 -0
  179. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/tools/agent_chunks_hanlder.py +0 -0
  180. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/tools/config.py +0 -0
  181. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/tools/experimental/__init__.py +0 -0
  182. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/tools/experimental/open_file_tool/__init__.py +0 -0
  183. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/tools/experimental/open_file_tool/config.py +0 -0
  184. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/tools/experimental/open_file_tool/runtime.py +0 -0
  185. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/tools/experimental/open_file_tool/tool.py +0 -0
  186. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/tools/factory.py +0 -0
  187. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/tools/mcp/__init__.py +0 -0
  188. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/tools/mcp/manager.py +0 -0
  189. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/tools/mcp/models.py +0 -0
  190. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/tools/mcp/tool_wrapper.py +0 -0
  191. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/tools/openai_builtin/__init__.py +0 -0
  192. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/tools/openai_builtin/base.py +0 -0
  193. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/__init__.py +0 -0
  194. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/config.py +0 -0
  195. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/postprocessors/__init__.py +0 -0
  196. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/postprocessors/code_display.py +0 -0
  197. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/schemas.py +0 -0
  198. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/service.py +0 -0
  199. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/tools/openai_builtin/manager.py +0 -0
  200. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/tools/schemas.py +0 -0
  201. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/tools/test/test_mcp_manager.py +0 -0
  202. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/tools/test/test_tool_progress_reporter.py +0 -0
  203. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/tools/tool.py +0 -0
  204. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/tools/tool_manager.py +0 -0
  205. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/tools/tool_progress_reporter.py +0 -0
  206. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/tools/utils/__init__.py +0 -0
  207. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/tools/utils/source_handling/__init__.py +0 -0
  208. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/tools/utils/source_handling/schema.py +0 -0
  209. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/tools/utils/source_handling/source_formatting.py +0 -0
  210. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic/tools/utils/source_handling/tests/test_source_formatting.py +0 -0
  211. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic_table/__init__.py +0 -0
  212. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic_table/schemas.py +0 -0
  213. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/agentic_table/service.py +0 -0
  214. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/app/dev_util.py +0 -0
  215. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/app/fast_api_factory.py +0 -0
  216. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/app/init_logging.py +0 -0
  217. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/app/init_sdk.py +0 -0
  218. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/app/performance/async_tasks.py +0 -0
  219. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/app/performance/async_wrapper.py +0 -0
  220. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/app/unique_settings.py +0 -0
  221. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/app/verification.py +0 -0
  222. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/app/webhook.py +0 -0
  223. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/chat/__init__.py +0 -0
  224. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/chat/cancellation.py +0 -0
  225. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/chat/constants.py +0 -0
  226. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/chat/deprecated/service.py +0 -0
  227. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/chat/functions.py +0 -0
  228. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/chat/rendering.py +0 -0
  229. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/chat/responses_api.py +0 -0
  230. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/chat/schemas.py +0 -0
  231. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/chat/service.py +0 -0
  232. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/chat/state.py +0 -0
  233. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/chat/utils.py +0 -0
  234. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/content/__init__.py +0 -0
  235. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/content/constants.py +0 -0
  236. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/content/functions.py +0 -0
  237. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/content/schemas.py +0 -0
  238. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/content/service.py +0 -0
  239. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/content/smart_rules.py +0 -0
  240. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/content/utils.py +0 -0
  241. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/data_extraction/README.md +0 -0
  242. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/data_extraction/__init__.py +0 -0
  243. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/data_extraction/augmented/__init__.py +0 -0
  244. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/data_extraction/augmented/service.py +0 -0
  245. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/data_extraction/base.py +0 -0
  246. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/data_extraction/basic/__init__.py +0 -0
  247. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/data_extraction/basic/config.py +0 -0
  248. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/data_extraction/basic/prompt.py +0 -0
  249. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/data_extraction/basic/service.py +0 -0
  250. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/elicitation/__init__.py +0 -0
  251. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/elicitation/constants.py +0 -0
  252. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/elicitation/exceptions.py +0 -0
  253. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/elicitation/functions.py +0 -0
  254. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/elicitation/schemas.py +0 -0
  255. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/elicitation/service.py +0 -0
  256. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/embedding/__init__.py +0 -0
  257. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/embedding/constants.py +0 -0
  258. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/embedding/functions.py +0 -0
  259. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/embedding/schemas.py +0 -0
  260. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/embedding/service.py +0 -0
  261. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/embedding/utils.py +0 -0
  262. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/framework_utilities/__init__.py +0 -0
  263. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/framework_utilities/langchain/__init__.py +0 -0
  264. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/framework_utilities/langchain/client.py +0 -0
  265. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/framework_utilities/langchain/history.py +0 -0
  266. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/framework_utilities/openai/__init__.py +0 -0
  267. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/framework_utilities/openai/client.py +0 -0
  268. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/framework_utilities/openai/message_builder.py +0 -0
  269. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/framework_utilities/utils.py +0 -0
  270. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/language_model/__init__.py +0 -0
  271. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/language_model/_responses_api_utils.py +0 -0
  272. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/language_model/builder.py +0 -0
  273. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/language_model/constants.py +0 -0
  274. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/language_model/default_language_model.py +0 -0
  275. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/language_model/functions.py +0 -0
  276. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/language_model/infos.py +0 -0
  277. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/language_model/prompt.py +0 -0
  278. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/language_model/reference.py +0 -0
  279. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/language_model/schemas.py +0 -0
  280. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/language_model/service.py +0 -0
  281. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/language_model/stream_transform.py +0 -0
  282. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/language_model/utils.py +0 -0
  283. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/protocols/support.py +0 -0
  284. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/services/__init__.py +0 -0
  285. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/services/chat_service.py +0 -0
  286. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/services/factory.py +0 -0
  287. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/services/knowledge_base.py +0 -0
  288. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/short_term_memory/__init__.py +0 -0
  289. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/short_term_memory/constants.py +0 -0
  290. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/short_term_memory/functions.py +0 -0
  291. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/short_term_memory/schemas.py +0 -0
  292. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/short_term_memory/service.py +0 -0
  293. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/smart_rules/__init__.py +0 -0
  294. {unique_toolkit-1.68.4 → unique_toolkit-1.68.6}/unique_toolkit/smart_rules/compile.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: unique-toolkit
3
- Version: 1.68.4
3
+ Version: 1.68.6
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.68.4"
3
+ version = "1.68.6"
4
4
  description = ""
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.12"
@@ -87,6 +87,11 @@ class FeatureFlags(BaseSettings):
87
87
  description="Enable argument screening agent for web search tool calls (UN-18741). Can be 'true' or comma-separated company IDs.",
88
88
  )
89
89
 
90
+ enable_selected_uploaded_files_un_18470: FeatureFlag = Field(
91
+ default=FeatureFlag(False),
92
+ description="Use selected_uploaded_files from event payload instead of querying uploaded files from the backend. Can be 'true' or comma-separated company IDs.",
93
+ )
94
+
90
95
  model_config = SettingsConfigDict(
91
96
  extra="ignore",
92
97
  env_prefix="FEATURE_FLAG_",
@@ -211,11 +211,11 @@ class DisplayCodeInterpreterFilesPostProcessor(
211
211
  )
212
212
  changed |= replaced
213
213
 
214
- # HTML rendered as HtmlRendering block — when fence FF is on, or when
215
- # the legacy HTML-rendering FF is on (fence FF off path).
216
- elif is_html and (
217
- fence_ff_on
218
- or feature_flags.enable_html_rendering_un_15131.is_enabled(
214
+ # HTML rendered as legacy HtmlRendering block — only when fence FF is off
215
+ elif (
216
+ is_html
217
+ and not fence_ff_on
218
+ and feature_flags.enable_html_rendering_un_15131.is_enabled(
219
219
  self._company_id
220
220
  )
221
221
  ):
@@ -226,7 +226,7 @@ class DisplayCodeInterpreterFilesPostProcessor(
226
226
  )
227
227
  changed |= replaced
228
228
 
229
- # Non-HTML files
229
+ # Files and HTML (fence FF on: HTML → htmlWithSource; others → fileWithSource)
230
230
  else:
231
231
  loop_response.message.text, replaced = _replace_container_file_citation(
232
232
  text=loop_response.message.text,
@@ -237,7 +237,7 @@ class DisplayCodeInterpreterFilesPostProcessor(
237
237
  )
238
238
  changed |= replaced
239
239
 
240
- # HtmlRendering blocks carry contentId directly — no separate reference needed
240
+ # htmlWithSource / HtmlRendering blocks carry contentId directly — no separate reference needed
241
241
  is_html_rendered = is_html and (
242
242
  fence_ff_on
243
243
  or feature_flags.enable_html_rendering_un_15131.is_enabled(
@@ -434,7 +434,9 @@ def _collect_stdout(call: ResponseCodeInterpreterToolCall) -> str:
434
434
 
435
435
  def _get_next_fence_id(text: str) -> int:
436
436
  """Return the next available fence id by scanning existing fences in the text."""
437
- existing = re.findall(r"````(?:imgWithSource|fileWithSource)\(id='(\d+)'", text)
437
+ existing = re.findall(
438
+ r"````(?:imgWithSource|fileWithSource|htmlWithSource)\(id='(\d+)'", text
439
+ )
438
440
  if not existing:
439
441
  return 1
440
442
  return max(int(fid) for fid in existing) + 1
@@ -522,11 +524,9 @@ def _build_file_fence(file: CodeInterpreterFile, code: str, fence_id: int) -> st
522
524
  content_id, a title derived from the filename, the type, and the
523
525
  escaped source code.
524
526
 
525
- HTML files are handled separately via HtmlRendering blocks and never
526
- reach this function.
527
-
528
527
  Format (4 backticks so inner code backticks never close the fence):
529
528
  ````imgWithSource(id='{n}', contentId='{id}', title="{title}", code="{escaped_code}")````
529
+ ````htmlWithSource(id='{n}', contentId='{id}', title="{title}", code="{escaped_code}")````
530
530
  ````fileWithSource(id='{n}', contentId='{id}', title="{title}", type="{type}", code="{escaped_code}")````
531
531
  """
532
532
  title = _file_title(file.filename)
@@ -534,6 +534,8 @@ def _build_file_fence(file: CodeInterpreterFile, code: str, fence_id: int) -> st
534
534
  outer = "````"
535
535
  if file.type == "image":
536
536
  tag = f"imgWithSource(id='{fence_id}', contentId='{file.content_id}', title=\"{title}\", code=\"{escaped}\")"
537
+ elif file.type == "html":
538
+ tag = f"htmlWithSource(id='{fence_id}', contentId='{file.content_id}', title=\"{title}\", code=\"{escaped}\")"
537
539
  else:
538
540
  ftype = _file_frontend_type(file.filename)
539
541
  tag = f'fileWithSource(id=\'{fence_id}\', contentId=\'{file.content_id}\', title="{title}", type="{ftype}", code="{escaped}")'
@@ -557,7 +559,7 @@ def _inline_ref_pattern(file: CodeInterpreterFile) -> re.Pattern[str]:
557
559
 
558
560
 
559
561
  _FENCE_BLOCK_START = re.compile(
560
- r"^[^\n`]+?(````(?:imgWithSource|fileWithSource)\()",
562
+ r"^[^\n`]+?(````(?:imgWithSource|fileWithSource|htmlWithSource)\()",
561
563
  re.MULTILINE,
562
564
  )
563
565
 
@@ -567,9 +569,9 @@ _FENCE_BLOCK_START = re.compile(
567
569
  # - cross-line: 1 or 2 newlines optionally surrounded by horizontal whitespace
568
570
  # (list-item linebreak, or blank-line paragraph gap)
569
571
  _CONSECUTIVE_FENCES_RE = re.compile(
570
- r"(````(?:imgWithSource|fileWithSource)\([^\n]*\)````)"
572
+ r"(````(?:imgWithSource|fileWithSource|htmlWithSource)\([^\n]*\)````)"
571
573
  r"(?:[^\n`]*|[ \t]*\n{1,2}[ \t]*)"
572
- r"(?=````(?:imgWithSource|fileWithSource)\()"
574
+ r"(?=````(?:imgWithSource|fileWithSource|htmlWithSource)\()"
573
575
  )
574
576
 
575
577
 
@@ -819,9 +821,6 @@ def _warn_unmatched_code_blocks(
819
821
  for filename, content_id in content_map.items():
820
822
  if content_id is None:
821
823
  continue
822
- # HTML files are rendered via HtmlRendering blocks, not fence injection
823
- if _get_file_type(filename) == "html":
824
- continue
825
824
  if filename not in fenced_filenames:
826
825
  logger.warning(
827
826
  "File '%s' (content_id=%s) could not be matched to any code block "
@@ -44,6 +44,9 @@ from .schemas import (
44
44
  from .schemas import (
45
45
  McpTool as McpTool,
46
46
  )
47
+ from .schemas import (
48
+ UploadedFileInfo as UploadedFileInfo,
49
+ )
47
50
  from .verification import (
48
51
  verify_signature_and_construct_event as verify_signature_and_construct_event,
49
52
  )
@@ -1,3 +1,5 @@
1
+ from __future__ import annotations
2
+
1
3
  import json
2
4
  from enum import StrEnum
3
5
  from logging import getLogger
@@ -46,7 +48,7 @@ class BaseEvent(BaseModel, Generic[FilterOptionsT]):
46
48
  company_id: str
47
49
 
48
50
  @classmethod
49
- def from_json_file(cls, file_path: Path) -> "BaseEvent":
51
+ def from_json_file(cls, file_path: Path) -> BaseEvent:
50
52
  if not file_path.exists():
51
53
  raise FileNotFoundError(f"File not found: {file_path}")
52
54
  with file_path.open("r", encoding="utf-8") as f:
@@ -162,12 +164,32 @@ class EventAssistantMessage(ChatEventAssistantMessage):
162
164
  pass
163
165
 
164
166
 
167
+ class UploadedFileInfo(BaseModel):
168
+ """Describes a file attached to the chat"""
169
+
170
+ model_config = model_config
171
+
172
+ id: str
173
+ title: str = ""
174
+ mime_type: str = ""
175
+
176
+
165
177
  class ChatEventAdditionalParameters(BaseModel):
166
178
  model_config = model_config
167
179
 
168
180
  translate_to_language: Optional[str] = None
169
181
  content_id_to_translate: Optional[str] = None
170
182
  user_space_instructions: str
183
+ uploaded_files: list[UploadedFileInfo] = Field(default_factory=list)
184
+ selected_uploaded_files: list[UploadedFileInfo] = Field(default_factory=list)
185
+
186
+ @property
187
+ def uploaded_file_ids(self) -> list[str]:
188
+ return [f.id for f in self.uploaded_files]
189
+
190
+ @property
191
+ def selected_uploaded_file_ids(self) -> list[str]:
192
+ return [f.id for f in self.selected_uploaded_files]
171
193
 
172
194
 
173
195
  @deprecated(
@@ -263,7 +285,7 @@ class ChatEvent(BaseEvent):
263
285
  version: Optional[str] = None
264
286
 
265
287
  @classmethod
266
- def from_json_file(cls, file_path: Path) -> "ChatEvent":
288
+ def from_json_file(cls, file_path: Path) -> ChatEvent:
267
289
  if not file_path.exists():
268
290
  raise FileNotFoundError(f"File not found: {file_path}")
269
291
  with file_path.open("r", encoding="utf-8") as f:
@@ -326,7 +348,7 @@ class Event(ChatEvent):
326
348
  # payload: EventPayload
327
349
 
328
350
  @classmethod
329
- def from_json_file(cls, file_path: Path) -> "Event":
351
+ def from_json_file(cls, file_path: Path) -> Event:
330
352
  if not file_path.exists():
331
353
  raise FileNotFoundError(f"File not found: {file_path}")
332
354
  with file_path.open("r", encoding="utf-8") as f:
@@ -11,6 +11,7 @@ from unique_toolkit.app.schemas import (
11
11
  ChatEventPayload,
12
12
  ChatEventUserMessage,
13
13
  EventName,
14
+ UploadedFileInfo,
14
15
  )
15
16
  from unique_toolkit.app.unique_settings import UniqueSettings
16
17
 
@@ -92,11 +93,15 @@ class TestEventFactory:
92
93
  translate_to_language: str | None = None,
93
94
  content_id_to_translate: str | None = None,
94
95
  user_space_instructions: str = "",
96
+ uploaded_files: list[UploadedFileInfo] = [],
97
+ selected_uploaded_files: list[UploadedFileInfo] = [],
95
98
  ) -> ChatEventAdditionalParameters:
96
99
  return ChatEventAdditionalParameters(
97
100
  translate_to_language=translate_to_language,
98
101
  content_id_to_translate=content_id_to_translate,
99
102
  user_space_instructions=user_space_instructions,
103
+ uploaded_files=uploaded_files,
104
+ selected_uploaded_files=selected_uploaded_files,
100
105
  )
101
106
 
102
107
  def get_base_event(