unique_toolkit 1.63.0__tar.gz → 1.63.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 (289) hide show
  1. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/PKG-INFO +1 -1
  2. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/pyproject.toml +1 -1
  3. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/config.py +11 -0
  4. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/postprocessors/generated_files.py +26 -19
  5. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/service.py +10 -5
  6. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/app/unique_settings.py +4 -1
  7. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/README.md +0 -0
  8. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/__init__.py +0 -0
  9. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/_common/__init__.py +0 -0
  10. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/_common/_base_service.py +0 -0
  11. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/_common/_time_utils.py +0 -0
  12. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/_common/api_calling/human_verification_manager.py +0 -0
  13. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/_common/base_model_type_attribute.py +0 -0
  14. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/_common/chunk_relevancy_sorter/config.py +0 -0
  15. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/_common/chunk_relevancy_sorter/exception.py +0 -0
  16. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/_common/chunk_relevancy_sorter/schemas.py +0 -0
  17. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/_common/chunk_relevancy_sorter/service.py +0 -0
  18. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/_common/chunk_relevancy_sorter/tests/test_service.py +0 -0
  19. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/_common/config_checker/README.md +0 -0
  20. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/_common/config_checker/__init__.py +0 -0
  21. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/_common/config_checker/__main__.py +0 -0
  22. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/_common/config_checker/cli.py +0 -0
  23. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/_common/config_checker/differ.py +0 -0
  24. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/_common/config_checker/exporter.py +0 -0
  25. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/_common/config_checker/models.py +0 -0
  26. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/_common/config_checker/registry.py +0 -0
  27. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/_common/config_checker/validator.py +0 -0
  28. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/_common/default_language_model.py +0 -0
  29. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/_common/docx_generator/__init__.py +0 -0
  30. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/_common/docx_generator/config.py +0 -0
  31. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/_common/docx_generator/pandoc_converter.py +0 -0
  32. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/_common/docx_generator/schemas.py +0 -0
  33. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/_common/docx_generator/service.py +0 -0
  34. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/_common/docx_generator/template/Doc Template.docx +0 -0
  35. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/_common/endpoint_builder.py +0 -0
  36. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/_common/endpoint_requestor.py +0 -0
  37. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/_common/event_bus.py +0 -0
  38. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/_common/exception.py +0 -0
  39. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/_common/execution.py +0 -0
  40. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/_common/experimental/endpoint_builder.py +0 -0
  41. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/_common/experimental/endpoint_requestor.py +0 -0
  42. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/_common/experimental/write_up_agent/README.md +0 -0
  43. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/_common/experimental/write_up_agent/__init__.py +0 -0
  44. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/_common/experimental/write_up_agent/agent.py +0 -0
  45. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/_common/experimental/write_up_agent/config.py +0 -0
  46. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/_common/experimental/write_up_agent/examples/data.csv +0 -0
  47. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/_common/experimental/write_up_agent/examples/example_usage.py +0 -0
  48. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/_common/experimental/write_up_agent/schemas.py +0 -0
  49. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/_common/experimental/write_up_agent/services/__init__.py +0 -0
  50. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/__init__.py +0 -0
  51. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/exceptions.py +0 -0
  52. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/service.py +0 -0
  53. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/utils.py +0 -0
  54. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/__init__.py +0 -0
  55. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/config.py +0 -0
  56. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/exceptions.py +0 -0
  57. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/prompts/config.py +0 -0
  58. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/prompts/system_prompt.j2 +0 -0
  59. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/prompts/user_prompt.j2 +0 -0
  60. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/service.py +0 -0
  61. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/__init__.py +0 -0
  62. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/default_template.j2 +0 -0
  63. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/exceptions.py +0 -0
  64. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/service.py +0 -0
  65. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/utils.py +0 -0
  66. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/_common/experimental/write_up_agent/utils.py +0 -0
  67. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/_common/feature_flags/schema.py +0 -0
  68. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/_common/pydantic/rjsf_tags.py +0 -0
  69. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/_common/pydantic_helpers.py +0 -0
  70. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/_common/referencing.py +0 -0
  71. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/_common/string_utilities.py +0 -0
  72. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/_common/tests/test_referencing.py +0 -0
  73. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/_common/tests/test_string_utilities.py +0 -0
  74. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/_common/token/__init__.py +0 -0
  75. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/_common/token/image_token_counting.py +0 -0
  76. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/_common/token/token_counting.py +0 -0
  77. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/_common/token/tokenizers/deepseek/tokenizer.json +0 -0
  78. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/_common/token/tokenizers/qwen/tokenizer.json +0 -0
  79. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/_common/utils/__init__.py +0 -0
  80. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/_common/utils/files.py +0 -0
  81. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/_common/utils/image/encode.py +0 -0
  82. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/_common/utils/jinja/helpers.py +0 -0
  83. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/_common/utils/jinja/render.py +0 -0
  84. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/_common/utils/jinja/schema.py +0 -0
  85. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/_common/utils/jinja/utils.py +0 -0
  86. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/_common/utils/structured_output/__init__.py +0 -0
  87. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/_common/utils/structured_output/schema.py +0 -0
  88. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/_common/utils/write_configuration.py +0 -0
  89. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/_common/validate_required_values.py +0 -0
  90. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/_common/validators.py +0 -0
  91. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic/__init__.py +0 -0
  92. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic/debug_info_manager/debug_info_manager.py +0 -0
  93. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic/debug_info_manager/test/test_debug_info_manager.py +0 -0
  94. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic/evaluation/config.py +0 -0
  95. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic/evaluation/context_relevancy/prompts/__init__.py +0 -0
  96. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic/evaluation/context_relevancy/prompts/system_prompt.j2 +0 -0
  97. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic/evaluation/context_relevancy/prompts/user_prompt.j2 +0 -0
  98. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic/evaluation/context_relevancy/schema.py +0 -0
  99. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic/evaluation/context_relevancy/service.py +0 -0
  100. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic/evaluation/evaluation_manager.py +0 -0
  101. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic/evaluation/exception.py +0 -0
  102. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic/evaluation/hallucination/constants.py +0 -0
  103. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic/evaluation/hallucination/hallucination_evaluation.py +0 -0
  104. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic/evaluation/hallucination/prompts/__init__.py +0 -0
  105. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic/evaluation/hallucination/prompts/system_prompt.j2 +0 -0
  106. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic/evaluation/hallucination/prompts/user_prompt.j2 +0 -0
  107. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic/evaluation/hallucination/service.py +0 -0
  108. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic/evaluation/hallucination/utils.py +0 -0
  109. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic/evaluation/output_parser.py +0 -0
  110. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic/evaluation/schemas.py +0 -0
  111. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic/evaluation/tests/fixtures.py +0 -0
  112. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic/evaluation/tests/test_config.py +0 -0
  113. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic/evaluation/tests/test_context_relevancy_service.py +0 -0
  114. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic/evaluation/tests/test_hallucination_constants.py +0 -0
  115. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic/evaluation/tests/test_hallucination_utils.py +0 -0
  116. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic/evaluation/tests/test_output_parser.py +0 -0
  117. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic/evaluation/tests/test_prompt_loaders.py +0 -0
  118. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic/evaluation/utils.py +0 -0
  119. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic/feature_flags/__init__.py +0 -0
  120. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic/feature_flags/feature_flags.py +0 -0
  121. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic/history_manager/history_construction_with_contents.py +0 -0
  122. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic/history_manager/history_manager.py +0 -0
  123. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic/history_manager/loop_token_reducer.py +0 -0
  124. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic/history_manager/utils.py +0 -0
  125. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic/loop_runner/__init__.py +0 -0
  126. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic/loop_runner/_iteration_handler_utils.py +0 -0
  127. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic/loop_runner/_responses_iteration_handler_utils.py +0 -0
  128. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic/loop_runner/_responses_stream_handler_utils.py +0 -0
  129. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic/loop_runner/_stream_handler_utils.py +0 -0
  130. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic/loop_runner/base.py +0 -0
  131. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic/loop_runner/middleware/__init__.py +0 -0
  132. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic/loop_runner/middleware/planning/__init__.py +0 -0
  133. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic/loop_runner/middleware/planning/planning.py +0 -0
  134. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic/loop_runner/middleware/planning/schema.py +0 -0
  135. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic/loop_runner/runners/__init__.py +0 -0
  136. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic/loop_runner/runners/basic.py +0 -0
  137. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic/loop_runner/runners/mistral/__init__.py +0 -0
  138. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic/loop_runner/runners/mistral/mistral_runner.py +0 -0
  139. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic/loop_runner/runners/qwen/__init__.py +0 -0
  140. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic/loop_runner/runners/qwen/helpers.py +0 -0
  141. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic/loop_runner/runners/qwen/qwen_runner.py +0 -0
  142. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic/message_log_manager/__init__.py +0 -0
  143. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic/message_log_manager/service.py +0 -0
  144. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic/postprocessor/postprocessor_manager.py +0 -0
  145. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic/reference_manager/reference_manager.py +0 -0
  146. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic/responses_api/__init__.py +0 -0
  147. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic/responses_api/postprocessors/code_display.py +0 -0
  148. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic/responses_api/postprocessors/generated_files.py +0 -0
  149. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic/responses_api/stream_handler.py +0 -0
  150. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic/short_term_memory_manager/persistent_short_term_memory_manager.py +0 -0
  151. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic/thinking_manager/thinking_manager.py +0 -0
  152. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic/tools/__init__.py +0 -0
  153. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic/tools/a2a/__init__.py +0 -0
  154. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic/tools/a2a/config.py +0 -0
  155. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic/tools/a2a/evaluation/__init__.py +0 -0
  156. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic/tools/a2a/evaluation/_utils.py +0 -0
  157. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic/tools/a2a/evaluation/config.py +0 -0
  158. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic/tools/a2a/evaluation/evaluator.py +0 -0
  159. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic/tools/a2a/evaluation/summarization_user_message.j2 +0 -0
  160. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic/tools/a2a/manager.py +0 -0
  161. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic/tools/a2a/postprocessing/__init__.py +0 -0
  162. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic/tools/a2a/postprocessing/_display_utils.py +0 -0
  163. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic/tools/a2a/postprocessing/_ref_utils.py +0 -0
  164. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic/tools/a2a/postprocessing/config.py +0 -0
  165. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic/tools/a2a/postprocessing/display.py +0 -0
  166. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic/tools/a2a/postprocessing/references.py +0 -0
  167. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_display.py +0 -0
  168. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_display_utils.py +0 -0
  169. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_ref_utils.py +0 -0
  170. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic/tools/a2a/prompts.py +0 -0
  171. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic/tools/a2a/response_watcher/__init__.py +0 -0
  172. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic/tools/a2a/response_watcher/service.py +0 -0
  173. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic/tools/a2a/tool/__init__.py +0 -0
  174. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic/tools/a2a/tool/_memory.py +0 -0
  175. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic/tools/a2a/tool/_schema.py +0 -0
  176. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic/tools/a2a/tool/config.py +0 -0
  177. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic/tools/a2a/tool/service.py +0 -0
  178. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic/tools/a2a/tool/test/test_service_utils.py +0 -0
  179. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic/tools/agent_chunks_hanlder.py +0 -0
  180. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic/tools/config.py +0 -0
  181. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic/tools/factory.py +0 -0
  182. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic/tools/mcp/__init__.py +0 -0
  183. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic/tools/mcp/manager.py +0 -0
  184. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic/tools/mcp/models.py +0 -0
  185. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic/tools/mcp/tool_wrapper.py +0 -0
  186. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic/tools/openai_builtin/__init__.py +0 -0
  187. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic/tools/openai_builtin/base.py +0 -0
  188. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/__init__.py +0 -0
  189. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/postprocessors/__init__.py +0 -0
  190. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/postprocessors/code_display.py +0 -0
  191. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/schemas.py +0 -0
  192. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic/tools/openai_builtin/manager.py +0 -0
  193. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic/tools/schemas.py +0 -0
  194. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic/tools/test/test_mcp_manager.py +0 -0
  195. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic/tools/test/test_tool_progress_reporter.py +0 -0
  196. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic/tools/tool.py +0 -0
  197. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic/tools/tool_manager.py +0 -0
  198. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic/tools/tool_progress_reporter.py +0 -0
  199. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic/tools/utils/__init__.py +0 -0
  200. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic/tools/utils/source_handling/__init__.py +0 -0
  201. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic/tools/utils/source_handling/schema.py +0 -0
  202. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic/tools/utils/source_handling/source_formatting.py +0 -0
  203. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic/tools/utils/source_handling/tests/test_source_formatting.py +0 -0
  204. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic_table/__init__.py +0 -0
  205. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic_table/schemas.py +0 -0
  206. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/agentic_table/service.py +0 -0
  207. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/app/__init__.py +0 -0
  208. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/app/dev_util.py +0 -0
  209. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/app/fast_api_factory.py +0 -0
  210. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/app/init_logging.py +0 -0
  211. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/app/init_sdk.py +0 -0
  212. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/app/performance/async_tasks.py +0 -0
  213. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/app/performance/async_wrapper.py +0 -0
  214. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/app/schemas.py +0 -0
  215. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/app/verification.py +0 -0
  216. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/app/webhook.py +0 -0
  217. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/chat/__init__.py +0 -0
  218. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/chat/cancellation.py +0 -0
  219. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/chat/constants.py +0 -0
  220. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/chat/deprecated/service.py +0 -0
  221. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/chat/functions.py +0 -0
  222. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/chat/rendering.py +0 -0
  223. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/chat/responses_api.py +0 -0
  224. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/chat/schemas.py +0 -0
  225. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/chat/service.py +0 -0
  226. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/chat/state.py +0 -0
  227. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/chat/utils.py +0 -0
  228. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/content/__init__.py +0 -0
  229. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/content/constants.py +0 -0
  230. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/content/functions.py +0 -0
  231. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/content/schemas.py +0 -0
  232. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/content/service.py +0 -0
  233. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/content/smart_rules.py +0 -0
  234. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/content/utils.py +0 -0
  235. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/data_extraction/README.md +0 -0
  236. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/data_extraction/__init__.py +0 -0
  237. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/data_extraction/augmented/__init__.py +0 -0
  238. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/data_extraction/augmented/service.py +0 -0
  239. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/data_extraction/base.py +0 -0
  240. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/data_extraction/basic/__init__.py +0 -0
  241. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/data_extraction/basic/config.py +0 -0
  242. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/data_extraction/basic/prompt.py +0 -0
  243. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/data_extraction/basic/service.py +0 -0
  244. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/elicitation/__init__.py +0 -0
  245. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/elicitation/constants.py +0 -0
  246. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/elicitation/exceptions.py +0 -0
  247. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/elicitation/functions.py +0 -0
  248. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/elicitation/schemas.py +0 -0
  249. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/elicitation/service.py +0 -0
  250. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/embedding/__init__.py +0 -0
  251. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/embedding/constants.py +0 -0
  252. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/embedding/functions.py +0 -0
  253. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/embedding/schemas.py +0 -0
  254. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/embedding/service.py +0 -0
  255. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/embedding/utils.py +0 -0
  256. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/framework_utilities/__init__.py +0 -0
  257. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/framework_utilities/langchain/__init__.py +0 -0
  258. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/framework_utilities/langchain/client.py +0 -0
  259. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/framework_utilities/langchain/history.py +0 -0
  260. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/framework_utilities/openai/__init__.py +0 -0
  261. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/framework_utilities/openai/client.py +0 -0
  262. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/framework_utilities/openai/message_builder.py +0 -0
  263. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/framework_utilities/utils.py +0 -0
  264. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/language_model/__init__.py +0 -0
  265. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/language_model/_responses_api_utils.py +0 -0
  266. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/language_model/builder.py +0 -0
  267. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/language_model/constants.py +0 -0
  268. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/language_model/default_language_model.py +0 -0
  269. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/language_model/functions.py +0 -0
  270. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/language_model/infos.py +0 -0
  271. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/language_model/prompt.py +0 -0
  272. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/language_model/reference.py +0 -0
  273. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/language_model/schemas.py +0 -0
  274. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/language_model/service.py +0 -0
  275. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/language_model/stream_transform.py +0 -0
  276. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/language_model/utils.py +0 -0
  277. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/protocols/support.py +0 -0
  278. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/services/__init__.py +0 -0
  279. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/services/chat_service.py +0 -0
  280. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/services/factory.py +0 -0
  281. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/services/knowledge_base.py +0 -0
  282. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/short_term_memory/__init__.py +0 -0
  283. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/short_term_memory/constants.py +0 -0
  284. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/short_term_memory/functions.py +0 -0
  285. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/short_term_memory/schemas.py +0 -0
  286. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/short_term_memory/service.py +0 -0
  287. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/smart_rules/__init__.py +0 -0
  288. {unique_toolkit-1.63.0 → unique_toolkit-1.63.2}/unique_toolkit/smart_rules/compile.py +0 -0
  289. {unique_toolkit-1.63.0 → unique_toolkit-1.63.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.63.0
3
+ Version: 1.63.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.63.0"
3
+ version = "1.63.2"
4
4
  description = ""
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.12"
@@ -87,6 +87,17 @@ IMPORTANT: ALWAYS place a blank line before AND after each file reference link s
87
87
  - Only the following file types are allowed to be uploaded to the platform, anything else will FAIL: PDF, DOCX, XLSX, PPTX, CSV, HTML, MD, TXT, PNG, JPG, JPEG.
88
88
  - You MUST always use this syntax, otherwise the files will not be displayed in the chat.
89
89
 
90
+ HTML files — CRITICAL rules:
91
+ - NEVER write raw HTML markup directly in your text response. HTML content MUST only ever appear as a saved `.html` file in `/mnt/data/`.
92
+ - Whenever you create HTML (dashboards, charts, tables, reports, interactive widgets), you MUST save it as a `.html` file and reference it using the sandbox link format above.
93
+ - HTML files MUST follow these best practices so they render correctly in the UI:
94
+ - Use a valid HTML5 document structure: `<!DOCTYPE html>`, `<html>`, `<head>` (with `<meta charset="UTF-8">` and `<meta name="viewport" content="width=device-width, initial-scale=1.0">`), and `<body>`.
95
+ - Make the layout self-contained: inline all CSS in a `<style>` block and all JavaScript in a `<script>` block. Do NOT rely on external CDN links that may be blocked.
96
+ - Use relative or fluid sizing (%, vw/vh, flexbox, CSS grid) rather than fixed pixel widths so the content fits any iframe size.
97
+ - Apply clean, readable typography: prefer system fonts (`-apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif`) and sufficient contrast (WCAG AA minimum).
98
+ - Use semantic HTML elements (`<table>` for tabular data, `<button>` for actions, `<h1>`–`<h6>` for headings, `alt` attributes on `<img>` tags). Avoid using `<div>` for everything.
99
+ - Do NOT use `window.parent`, `window.top`, or any attempt to access the parent frame.
100
+
90
101
 
91
102
  # Displaying Dataframes/Tables:
92
103
  - Whenever asked to display a dataframe/table, it is CRITICAL to represent it faithfully as a markdown table in your response.
@@ -169,6 +169,9 @@ class DisplayCodeInterpreterFilesPostProcessor(
169
169
 
170
170
  is_image = (guess_type(filename)[0] or "").startswith("image/")
171
171
  is_html = (guess_type(filename)[0] or "") == "text/html"
172
+ fence_ff_on = feature_flags.enable_code_execution_fence_un_17972.is_enabled(
173
+ self._company_id
174
+ )
172
175
 
173
176
  # Images
174
177
  if is_image:
@@ -181,9 +184,13 @@ class DisplayCodeInterpreterFilesPostProcessor(
181
184
  )
182
185
  changed |= replaced
183
186
 
184
- # HTML (behind feature flag)
185
- elif is_html and feature_flags.enable_html_rendering_un_15131.is_enabled(
186
- self._company_id
187
+ # HTML rendered as legacy HtmlRendering block — only when fence FF is off
188
+ elif (
189
+ is_html
190
+ and not fence_ff_on
191
+ and feature_flags.enable_html_rendering_un_15131.is_enabled(
192
+ self._company_id
193
+ )
187
194
  ):
188
195
  loop_response.message.text, replaced = _replace_container_html_citation(
189
196
  text=loop_response.message.text,
@@ -192,13 +199,8 @@ class DisplayCodeInterpreterFilesPostProcessor(
192
199
  )
193
200
  changed |= replaced
194
201
 
195
- # Files (including HTML when feature flag is disabled)
202
+ # Files and HTML (fence FF on: HTML → htmlWithSource; others → fileWithSource)
196
203
  else:
197
- fence_ff_on = (
198
- feature_flags.enable_code_execution_fence_un_17972.is_enabled(
199
- self._company_id
200
- )
201
- )
202
204
  loop_response.message.text, replaced = _replace_container_file_citation(
203
205
  text=loop_response.message.text,
204
206
  filename=filename,
@@ -210,11 +212,19 @@ class DisplayCodeInterpreterFilesPostProcessor(
210
212
 
211
213
  is_html_rendered = (
212
214
  is_html
215
+ and not fence_ff_on
213
216
  and feature_flags.enable_html_rendering_un_15131.is_enabled(
214
217
  self._company_id
215
218
  )
216
219
  )
217
- if replaced and not is_image and not is_html_rendered:
220
+ # htmlWithSource fences carry contentId directly — no separate reference needed
221
+ is_html_fenced = is_html and fence_ff_on
222
+ if (
223
+ replaced
224
+ and not is_image
225
+ and not is_html_rendered
226
+ and not is_html_fenced
227
+ ):
218
228
  loop_response.message.references.append(
219
229
  ContentReference(
220
230
  sequence_number=ref_number,
@@ -382,6 +392,8 @@ def _build_file_fence(file: CodeInterpreterFile, code: str, fence_id: int) -> st
382
392
  outer = "````"
383
393
  if file.type == "image":
384
394
  tag = f"imgWithSource(id='{fence_id}', contentId='{file.content_id}', title=\"{title}\", code=\"{escaped}\")"
395
+ elif file.type == "html":
396
+ tag = f"htmlWithSource(id='{fence_id}', contentId='{file.content_id}', title=\"{title}\", code=\"{escaped}\")"
385
397
  else:
386
398
  ftype = _file_frontend_type(file.filename)
387
399
  tag = f'fileWithSource(id=\'{fence_id}\', contentId=\'{file.content_id}\', title="{title}", type="{ftype}", code="{escaped}")'
@@ -394,23 +406,18 @@ def _inline_ref_pattern(file: CodeInterpreterFile) -> re.Pattern[str]:
394
406
  After apply_postprocessing_to_response replaces sandbox paths, each file type
395
407
  has a distinct inline form in the text:
396
408
  image → ![image](unique://content/{content_id})
409
+ html → [{filename}](unique://content/{content_id})
397
410
  document → [{filename}](unique://content/{content_id})
398
- html → ```HtmlRendering\\n100%\\n500px\\n\\nunique://content/{content_id}\\n\\n```
399
411
  """
400
412
  cid = re.escape(file.content_id)
401
413
  fname = re.escape(file.filename)
402
414
  if file.type == "image":
403
415
  return re.compile(rf"!\[image\]\(unique://content/{cid}\)")
404
- if file.type == "html":
405
- return re.compile(
406
- rf"```HtmlRendering\n100%\n500px\n\nunique://content/{cid}\n\n```",
407
- re.DOTALL,
408
- )
409
416
  return re.compile(rf"\[{fname}\]\(unique://content/{cid}\)")
410
417
 
411
418
 
412
419
  _FENCE_BLOCK_START = re.compile(
413
- r"^[^\n`]+?(````(?:imgWithSource|fileWithSource)\()",
420
+ r"^[^\n`]+?(````(?:imgWithSource|fileWithSource|htmlWithSource)\()",
414
421
  re.MULTILINE,
415
422
  )
416
423
 
@@ -420,9 +427,9 @@ _FENCE_BLOCK_START = re.compile(
420
427
  # - cross-line: 1 or 2 newlines optionally surrounded by horizontal whitespace
421
428
  # (list-item linebreak, or blank-line paragraph gap)
422
429
  _CONSECUTIVE_FENCES_RE = re.compile(
423
- r"(````(?:imgWithSource|fileWithSource)\([^\n]*\)````)"
430
+ r"(````(?:imgWithSource|fileWithSource|htmlWithSource)\([^\n]*\)````)"
424
431
  r"(?:[^\n`]*|[ \t]*\n{1,2}[ \t]*)"
425
- r"(?=````(?:imgWithSource|fileWithSource)\()"
432
+ r"(?=````(?:imgWithSource|fileWithSource|htmlWithSource)\()"
426
433
  )
427
434
 
428
435
 
@@ -251,14 +251,19 @@ class OpenAICodeInterpreterTool(OpenAIBuiltInTool[CodeInterpreter]):
251
251
  fence_ff_on = feature_flags.enable_code_execution_fence_un_17972.is_enabled(
252
252
  self._company_id
253
253
  )
254
- operator_customised = (
255
- self._config.tool_description_for_system_prompt
256
- != DEFAULT_TOOL_DESCRIPTION_FOR_SYSTEM_PROMPT
257
- )
254
+ # A prompt is considered operator-customised only when it differs from every
255
+ # known default variant. Comparing against both defaults ensures spaces whose
256
+ # stored value was written by an earlier deployment (which may have used the
257
+ # non-fence default) are still treated as uncustomised once the fence FF is on.
258
+ stored = self._config.tool_description_for_system_prompt
259
+ operator_customised = stored not in {
260
+ DEFAULT_TOOL_DESCRIPTION_FOR_SYSTEM_PROMPT,
261
+ DEFAULT_TOOL_DESCRIPTION_FOR_SYSTEM_PROMPT_FENCE,
262
+ }
258
263
  if fence_ff_on and not operator_customised:
259
264
  system_prompt = DEFAULT_TOOL_DESCRIPTION_FOR_SYSTEM_PROMPT_FENCE
260
265
  else:
261
- system_prompt = self._config.tool_description_for_system_prompt
266
+ system_prompt = stored
262
267
 
263
268
  return ToolPrompts(
264
269
  name="python", # https://platform.openai.com/docs/guides/tools-code-interpreter
@@ -334,7 +334,10 @@ class UniqueApi(BaseSettings):
334
334
  base_path = "/public/chat-gen2"
335
335
 
336
336
  if parsed.hostname and (
337
- "localhost" in parsed.hostname or "svc.cluster.local" in parsed.hostname
337
+ "localhost" in parsed.hostname
338
+ or "svc.cluster.local" in parsed.hostname
339
+ or ".svc." in parsed.hostname
340
+ or parsed.hostname.endswith(".svc")
338
341
  ):
339
342
  base_path = "/public"
340
343