unique_toolkit 1.33.3__tar.gz → 1.34.1__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 (206) hide show
  1. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/CHANGELOG.md +6 -0
  2. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/PKG-INFO +7 -1
  3. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/pyproject.toml +1 -1
  4. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/agentic/responses_api/postprocessors/generated_files.py +30 -9
  5. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/config.py +21 -7
  6. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/services/chat_service.py +25 -0
  7. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/LICENSE +0 -0
  8. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/README.md +0 -0
  9. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/__init__.py +0 -0
  10. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/_common/_base_service.py +0 -0
  11. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/_common/_time_utils.py +0 -0
  12. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/_common/api_calling/human_verification_manager.py +0 -0
  13. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/_common/base_model_type_attribute.py +0 -0
  14. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/_common/chunk_relevancy_sorter/config.py +0 -0
  15. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/_common/chunk_relevancy_sorter/exception.py +0 -0
  16. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/_common/chunk_relevancy_sorter/schemas.py +0 -0
  17. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/_common/chunk_relevancy_sorter/service.py +0 -0
  18. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/_common/chunk_relevancy_sorter/tests/test_service.py +0 -0
  19. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/_common/default_language_model.py +0 -0
  20. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/_common/docx_generator/__init__.py +0 -0
  21. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/_common/docx_generator/config.py +0 -0
  22. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/_common/docx_generator/schemas.py +0 -0
  23. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/_common/docx_generator/service.py +0 -0
  24. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/_common/docx_generator/template/Doc Template.docx +0 -0
  25. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/_common/endpoint_builder.py +0 -0
  26. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/_common/endpoint_requestor.py +0 -0
  27. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/_common/exception.py +0 -0
  28. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/_common/experimental/endpoint_builder.py +0 -0
  29. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/_common/experimental/endpoint_requestor.py +0 -0
  30. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/_common/feature_flags/schema.py +0 -0
  31. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/_common/pydantic/rjsf_tags.py +0 -0
  32. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/_common/pydantic_helpers.py +0 -0
  33. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/_common/referencing.py +0 -0
  34. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/_common/string_utilities.py +0 -0
  35. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/_common/tests/test_referencing.py +0 -0
  36. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/_common/tests/test_string_utilities.py +0 -0
  37. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/_common/token/image_token_counting.py +0 -0
  38. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/_common/token/token_counting.py +0 -0
  39. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/_common/utils/__init__.py +0 -0
  40. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/_common/utils/files.py +0 -0
  41. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/_common/utils/image/encode.py +0 -0
  42. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/_common/utils/jinja/helpers.py +0 -0
  43. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/_common/utils/jinja/render.py +0 -0
  44. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/_common/utils/jinja/schema.py +0 -0
  45. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/_common/utils/jinja/utils.py +0 -0
  46. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/_common/utils/structured_output/__init__.py +0 -0
  47. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/_common/utils/structured_output/schema.py +0 -0
  48. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/_common/utils/write_configuration.py +0 -0
  49. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/_common/validate_required_values.py +0 -0
  50. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/_common/validators.py +0 -0
  51. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/agentic/__init__.py +0 -0
  52. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/agentic/debug_info_manager/debug_info_manager.py +0 -0
  53. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/agentic/debug_info_manager/test/test_debug_info_manager.py +0 -0
  54. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/agentic/evaluation/config.py +0 -0
  55. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/agentic/evaluation/context_relevancy/prompts.py +0 -0
  56. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/agentic/evaluation/context_relevancy/schema.py +0 -0
  57. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/agentic/evaluation/context_relevancy/service.py +0 -0
  58. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/agentic/evaluation/evaluation_manager.py +0 -0
  59. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/agentic/evaluation/exception.py +0 -0
  60. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/agentic/evaluation/hallucination/constants.py +0 -0
  61. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/agentic/evaluation/hallucination/hallucination_evaluation.py +0 -0
  62. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/agentic/evaluation/hallucination/prompts.py +0 -0
  63. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/agentic/evaluation/hallucination/service.py +0 -0
  64. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/agentic/evaluation/hallucination/utils.py +0 -0
  65. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/agentic/evaluation/output_parser.py +0 -0
  66. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/agentic/evaluation/schemas.py +0 -0
  67. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/agentic/evaluation/tests/test_context_relevancy_service.py +0 -0
  68. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/agentic/evaluation/tests/test_output_parser.py +0 -0
  69. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/agentic/history_manager/history_construction_with_contents.py +0 -0
  70. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/agentic/history_manager/history_manager.py +0 -0
  71. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/agentic/history_manager/loop_token_reducer.py +0 -0
  72. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/agentic/history_manager/utils.py +0 -0
  73. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/agentic/message_log_manager/__init__.py +0 -0
  74. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/agentic/message_log_manager/service.py +0 -0
  75. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/agentic/postprocessor/postprocessor_manager.py +0 -0
  76. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/agentic/reference_manager/reference_manager.py +0 -0
  77. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/agentic/responses_api/__init__.py +0 -0
  78. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/agentic/responses_api/postprocessors/code_display.py +0 -0
  79. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/agentic/responses_api/stream_handler.py +0 -0
  80. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/agentic/short_term_memory_manager/persistent_short_term_memory_manager.py +0 -0
  81. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/agentic/thinking_manager/thinking_manager.py +0 -0
  82. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/agentic/tools/__init__.py +0 -0
  83. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/agentic/tools/a2a/__init__.py +0 -0
  84. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/agentic/tools/a2a/config.py +0 -0
  85. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/agentic/tools/a2a/evaluation/__init__.py +0 -0
  86. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/agentic/tools/a2a/evaluation/_utils.py +0 -0
  87. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/agentic/tools/a2a/evaluation/config.py +0 -0
  88. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/agentic/tools/a2a/evaluation/evaluator.py +0 -0
  89. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/agentic/tools/a2a/evaluation/summarization_user_message.j2 +0 -0
  90. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/agentic/tools/a2a/manager.py +0 -0
  91. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/agentic/tools/a2a/postprocessing/__init__.py +0 -0
  92. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/agentic/tools/a2a/postprocessing/_display_utils.py +0 -0
  93. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/agentic/tools/a2a/postprocessing/_ref_utils.py +0 -0
  94. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/agentic/tools/a2a/postprocessing/config.py +0 -0
  95. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/agentic/tools/a2a/postprocessing/display.py +0 -0
  96. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/agentic/tools/a2a/postprocessing/references.py +0 -0
  97. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_display.py +0 -0
  98. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_display_utils.py +0 -0
  99. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_ref_utils.py +0 -0
  100. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/agentic/tools/a2a/prompts.py +0 -0
  101. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/agentic/tools/a2a/response_watcher/__init__.py +0 -0
  102. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/agentic/tools/a2a/response_watcher/service.py +0 -0
  103. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/agentic/tools/a2a/tool/__init__.py +0 -0
  104. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/agentic/tools/a2a/tool/_memory.py +0 -0
  105. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/agentic/tools/a2a/tool/_schema.py +0 -0
  106. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/agentic/tools/a2a/tool/config.py +0 -0
  107. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/agentic/tools/a2a/tool/service.py +0 -0
  108. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/agentic/tools/agent_chunks_hanlder.py +0 -0
  109. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/agentic/tools/config.py +0 -0
  110. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/agentic/tools/factory.py +0 -0
  111. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/agentic/tools/mcp/__init__.py +0 -0
  112. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/agentic/tools/mcp/manager.py +0 -0
  113. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/agentic/tools/mcp/models.py +0 -0
  114. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/agentic/tools/mcp/tool_wrapper.py +0 -0
  115. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/agentic/tools/openai_builtin/__init__.py +0 -0
  116. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/agentic/tools/openai_builtin/base.py +0 -0
  117. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/__init__.py +0 -0
  118. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/service.py +0 -0
  119. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/agentic/tools/openai_builtin/manager.py +0 -0
  120. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/agentic/tools/schemas.py +0 -0
  121. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/agentic/tools/test/test_mcp_manager.py +0 -0
  122. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/agentic/tools/test/test_tool_progress_reporter.py +0 -0
  123. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/agentic/tools/tool.py +0 -0
  124. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/agentic/tools/tool_manager.py +0 -0
  125. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/agentic/tools/tool_progress_reporter.py +0 -0
  126. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/agentic/tools/utils/__init__.py +0 -0
  127. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/agentic/tools/utils/execution/__init__.py +0 -0
  128. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/agentic/tools/utils/execution/execution.py +0 -0
  129. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/agentic/tools/utils/source_handling/__init__.py +0 -0
  130. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/agentic/tools/utils/source_handling/schema.py +0 -0
  131. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/agentic/tools/utils/source_handling/source_formatting.py +0 -0
  132. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/agentic/tools/utils/source_handling/tests/test_source_formatting.py +0 -0
  133. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/app/__init__.py +0 -0
  134. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/app/dev_util.py +0 -0
  135. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/app/fast_api_factory.py +0 -0
  136. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/app/init_logging.py +0 -0
  137. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/app/init_sdk.py +0 -0
  138. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/app/performance/async_tasks.py +0 -0
  139. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/app/performance/async_wrapper.py +0 -0
  140. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/app/schemas.py +0 -0
  141. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/app/unique_settings.py +0 -0
  142. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/app/verification.py +0 -0
  143. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/app/webhook.py +0 -0
  144. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/chat/__init__.py +0 -0
  145. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/chat/constants.py +0 -0
  146. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/chat/deprecated/service.py +0 -0
  147. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/chat/functions.py +0 -0
  148. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/chat/rendering.py +0 -0
  149. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/chat/responses_api.py +0 -0
  150. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/chat/schemas.py +0 -0
  151. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/chat/service.py +0 -0
  152. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/chat/state.py +0 -0
  153. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/chat/utils.py +0 -0
  154. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/content/__init__.py +0 -0
  155. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/content/constants.py +0 -0
  156. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/content/functions.py +0 -0
  157. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/content/schemas.py +0 -0
  158. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/content/service.py +0 -0
  159. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/content/smart_rules.py +0 -0
  160. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/content/utils.py +0 -0
  161. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/data_extraction/README.md +0 -0
  162. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/data_extraction/__init__.py +0 -0
  163. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/data_extraction/augmented/__init__.py +0 -0
  164. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/data_extraction/augmented/service.py +0 -0
  165. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/data_extraction/base.py +0 -0
  166. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/data_extraction/basic/__init__.py +0 -0
  167. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/data_extraction/basic/config.py +0 -0
  168. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/data_extraction/basic/prompt.py +0 -0
  169. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/data_extraction/basic/service.py +0 -0
  170. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/embedding/__init__.py +0 -0
  171. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/embedding/constants.py +0 -0
  172. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/embedding/functions.py +0 -0
  173. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/embedding/schemas.py +0 -0
  174. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/embedding/service.py +0 -0
  175. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/embedding/utils.py +0 -0
  176. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/framework_utilities/__init__.py +0 -0
  177. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/framework_utilities/langchain/__init__.py +0 -0
  178. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/framework_utilities/langchain/client.py +0 -0
  179. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/framework_utilities/langchain/history.py +0 -0
  180. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/framework_utilities/openai/__init__.py +0 -0
  181. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/framework_utilities/openai/client.py +0 -0
  182. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/framework_utilities/openai/message_builder.py +0 -0
  183. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/framework_utilities/utils.py +0 -0
  184. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/language_model/__init__.py +0 -0
  185. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/language_model/_responses_api_utils.py +0 -0
  186. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/language_model/builder.py +0 -0
  187. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/language_model/constants.py +0 -0
  188. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/language_model/default_language_model.py +0 -0
  189. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/language_model/functions.py +0 -0
  190. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/language_model/infos.py +0 -0
  191. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/language_model/prompt.py +0 -0
  192. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/language_model/reference.py +0 -0
  193. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/language_model/schemas.py +0 -0
  194. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/language_model/service.py +0 -0
  195. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/language_model/utils.py +0 -0
  196. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/protocols/support.py +0 -0
  197. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/services/__init__.py +0 -0
  198. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/services/knowledge_base.py +0 -0
  199. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/short_term_memory/__init__.py +0 -0
  200. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/short_term_memory/constants.py +0 -0
  201. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/short_term_memory/functions.py +0 -0
  202. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/short_term_memory/schemas.py +0 -0
  203. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/short_term_memory/service.py +0 -0
  204. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/smart_rules/__init__.py +0 -0
  205. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/smart_rules/compile.py +0 -0
  206. {unique_toolkit-1.33.3 → unique_toolkit-1.34.1}/unique_toolkit/test_utilities/events.py +0 -0
@@ -5,6 +5,12 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [1.34.1] - 2025-12-02
9
+ - Update code interpreter tool instructions.
10
+
11
+ ## [1.34.0] - 2025-12-02
12
+ - Add option to upload code interpreter generated files to the chat.
13
+
8
14
  ## [1.33.3] - 2025-12-02
9
15
  - Fix serialization of ToolBuildConfig `configuration` field.
10
16
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: unique_toolkit
3
- Version: 1.33.3
3
+ Version: 1.34.1
4
4
  Summary:
5
5
  License: Proprietary
6
6
  Author: Cedric Klinkert
@@ -121,6 +121,12 @@ All notable changes to this project will be documented in this file.
121
121
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
122
122
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
123
123
 
124
+ ## [1.34.1] - 2025-12-02
125
+ - Update code interpreter tool instructions.
126
+
127
+ ## [1.34.0] - 2025-12-02
128
+ - Add option to upload code interpreter generated files to the chat.
129
+
124
130
  ## [1.33.3] - 2025-12-02
125
131
  - Fix serialization of ToolBuildConfig `configuration` field.
126
132
 
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "unique_toolkit"
3
- version = "1.33.3"
3
+ version = "1.34.1"
4
4
  description = ""
5
5
  authors = [
6
6
  "Cedric Klinkert <cedric.klinkert@unique.ch>",
@@ -8,6 +8,7 @@ from openai import AsyncOpenAI
8
8
  from openai.types.responses.response_output_text import AnnotationContainerFileCitation
9
9
  from pydantic import BaseModel, Field, RootModel
10
10
 
11
+ from unique_toolkit import ChatService
11
12
  from unique_toolkit.agentic.postprocessor.postprocessor_manager import (
12
13
  ResponsesApiPostprocessor,
13
14
  )
@@ -27,9 +28,13 @@ logger = logging.getLogger(__name__)
27
28
 
28
29
  class DisplayCodeInterpreterFilesPostProcessorConfig(BaseModel):
29
30
  model_config = get_configuration_dict()
31
+ upload_to_chat: bool = Field(
32
+ default=False,
33
+ description="Whether to upload the generated files to the chat.",
34
+ )
30
35
  upload_scope_id: str = Field(
31
36
  default="<SCOPE_ID_PLACEHOLDER>",
32
- description="The scope ID where the generated files will be uploaded.",
37
+ description="The scope ID where the generated files will be uploaded. Ignored if `uploadToChat` is set.",
33
38
  )
34
39
 
35
40
  file_download_failed_message: str = Field(
@@ -75,6 +80,7 @@ class DisplayCodeInterpreterFilesPostProcessor(
75
80
  client: AsyncOpenAI,
76
81
  content_service: ContentService | KnowledgeBaseService,
77
82
  config: DisplayCodeInterpreterFilesPostProcessorConfig,
83
+ chat_service: ChatService | None = None,
78
84
  # Short term memory arguments, we prefer to explicitely pass the required auth variables
79
85
  # as it is crucial that we use chat-level short term memory not to leak user files to other chats.
80
86
  # Technically, short term memory can be scoped company-level, we would like to ensure this case is avoided.
@@ -83,9 +89,14 @@ class DisplayCodeInterpreterFilesPostProcessor(
83
89
  chat_id: str | None = None,
84
90
  ) -> None:
85
91
  super().__init__(self.__class__.__name__)
92
+
86
93
  self._content_service = content_service
87
- self._config = config
94
+ self._chat_service = chat_service
88
95
  self._client = client
96
+ self._config = config
97
+
98
+ if self._config.upload_to_chat and self._chat_service is None:
99
+ raise ValueError("ChatService is required if uploadToChat is True")
89
100
 
90
101
  self._short_term_memory_manager = None
91
102
  if chat_id is not None and user_id is not None and company_id is not None:
@@ -199,13 +210,23 @@ class DisplayCodeInterpreterFilesPostProcessor(
199
210
  "Uploading file content for %s to knowledge base",
200
211
  container_file.filename,
201
212
  )
202
- content = await self._content_service.upload_content_from_bytes_async(
203
- content=file_content.content,
204
- content_name=container_file.filename,
205
- skip_ingestion=True,
206
- mime_type=guess_type(container_file.filename)[0] or "text/plain",
207
- scope_id=self._config.upload_scope_id,
208
- )
213
+
214
+ if self._config.upload_to_chat:
215
+ assert self._chat_service is not None # Checked in __init__
216
+ content = await self._chat_service.upload_to_chat_from_bytes_async(
217
+ content=file_content.content,
218
+ content_name=container_file.filename,
219
+ mime_type=guess_type(container_file.filename)[0] or "text/plain",
220
+ skip_ingestion=True,
221
+ )
222
+ else:
223
+ content = await self._content_service.upload_content_from_bytes_async(
224
+ content=file_content.content,
225
+ content_name=container_file.filename,
226
+ mime_type=guess_type(container_file.filename)[0] or "text/plain",
227
+ scope_id=self._config.upload_scope_id,
228
+ skip_ingestion=True,
229
+ )
209
230
 
210
231
  return _ContentInfo(filename=container_file.filename, content_id=content.id)
211
232
 
@@ -11,27 +11,41 @@ DEFAULT_TOOL_DESCRIPTION = "Use this tool to run python code, e.g to generate pl
11
11
 
12
12
  DEFAULT_TOOL_DESCRIPTION_FOR_SYSTEM_PROMPT = """
13
13
  Use this tool to run python code, e.g to generate plots, process excel files, perform calculations, etc.
14
+
14
15
  Instructions:
15
- - All files uploaded to the chat are available in the code interpreter under the path `/mnt/data/<filename>
16
- - All files generated through code should be saved in the `/mnt/data` folder
17
16
 
18
- CRUCIAL Instructions for displaying images and files in the chat:
19
- Once files are generated in the `/mnt/data` folder you MUST reference them in the chat using markdown syntax in order to display them in the chat.
17
+ Uploaded and generated files:
18
+ - All files uploaded to the chat are available at the path `/mnt/data/<filename>`.
19
+ - All files generated through code MUST be saved in the `/mnt/data` folder.
20
20
 
21
+ CRUCIAL Instructions for displaying images and files in the chat:
22
+ - Once files are generated in the `/mnt/data` folder you MUST reference them in the chat using markdown syntax in order to display them in the chat.
21
23
  WHENEVER you reference a generated file, you MUST use the following format:
22
24
  ```
23
- **Descriptive Title of Graph/Chart/File** (<- linebreak is important) (You must choose a good user friendly title, Other markdown syntax such as `#` can be used too)
25
+ **Descriptive Title of Graph/Chart/File** (linebreak is important. You must choose a good user friendly title, Other markdown syntax such as `#` can be used too)
24
26
  [*Generating your {Graph/Chart/File}…*](sandbox:/mnt/data/<filename>)
25
27
  ```
26
28
  IMPORTANT: Do NOT append a leading `!` even when displaying an image.
27
29
  Always use a line break between the title and the markdown!
28
-
29
30
  - Files with image file extensions are displayed directly in the chat, while other file extensions are shown as download links.
30
31
  - Not using syntax above will FAIL to show images to the user.
31
32
  - YOU MUST use the syntax above to display images, otherwise the image will not be displayed in the chat.
32
33
  - 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.
34
+ - You MUST always use this syntax, otherwise the files will not be displayed in the chat.
35
+
36
+
37
+ # Displaying Dataframes/Tables:
38
+ - Whenever asked to display a dataframe/table, it is CRITICAL to represent it faithfully as a markdown table in your response.
33
39
 
34
- You MUST always use this syntax, otherwise the files will not be displayed in the chat.
40
+ Handling User Queries:
41
+ - Whenever the user query requires using the python tool, you must always think first about the steps required.
42
+ - Use the tool multiple times:
43
+ - You MUST NOT guess anything about the structure of the data / files uploaded. Rather, you MUST perform some data exploration first.
44
+ - Example: User uploads an excel files and asks a question about it. First Read the data, explore the columns, columns types, etc. Then use the tool to answer the user's query.
45
+ In this case, you can simply call the tool multiple times.
46
+ - REMEMBER that you can always read the content of text, csv files if needed. In this case, you MUST always limit the amount of data displayed.
47
+ - If a tool step fails, you must recover as much as possible.
48
+ - After exhausting all possible solutions without success, inform the user of what was tried and request clarification/help.
35
49
  """.strip()
36
50
 
37
51
  DEFAULT_TOOL_FORMAT_INFORMATION_FOR_SYSTEM_PROMPT = ""
@@ -70,6 +70,7 @@ from unique_toolkit.content.functions import (
70
70
  download_content_to_bytes,
71
71
  search_contents,
72
72
  upload_content_from_bytes,
73
+ upload_content_from_bytes_async,
73
74
  )
74
75
  from unique_toolkit.content.schemas import (
75
76
  Content,
@@ -1607,6 +1608,30 @@ class ChatService(ChatServiceDeprecated):
1607
1608
  metadata=metadata,
1608
1609
  )
1609
1610
 
1611
+ async def upload_to_chat_from_bytes_async(
1612
+ self,
1613
+ *,
1614
+ content: bytes,
1615
+ content_name: str,
1616
+ mime_type: str,
1617
+ scope_id: str | None = None,
1618
+ skip_ingestion: bool = False,
1619
+ ingestion_config: unique_sdk.Content.IngestionConfig | None = None,
1620
+ metadata: dict[str, Any] | None = None,
1621
+ ) -> Content:
1622
+ return await upload_content_from_bytes_async(
1623
+ user_id=self._user_id,
1624
+ company_id=self._company_id,
1625
+ content=content,
1626
+ content_name=content_name,
1627
+ mime_type=mime_type,
1628
+ scope_id=scope_id,
1629
+ chat_id=self._chat_id,
1630
+ skip_ingestion=skip_ingestion,
1631
+ ingestion_config=ingestion_config,
1632
+ metadata=metadata,
1633
+ )
1634
+
1610
1635
  def download_chat_content_to_bytes(self, *, content_id: str) -> bytes:
1611
1636
  return download_content_to_bytes(
1612
1637
  user_id=self._user_id,
File without changes