unique_toolkit 1.80.2__tar.gz → 1.81.0__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 (327) hide show
  1. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/PKG-INFO +2 -2
  2. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/pyproject.toml +2 -2
  3. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/config.py +5 -1
  4. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic_table/__init__.py +6 -0
  5. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic_table/schemas.py +8 -6
  6. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic_table/service.py +114 -51
  7. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/README.md +0 -0
  8. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/__init__.py +0 -0
  9. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/_common/__init__.py +0 -0
  10. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/_common/_base_service.py +0 -0
  11. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/_common/_time_utils.py +0 -0
  12. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/_common/api_calling/human_verification_manager.py +0 -0
  13. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/_common/base_model_type_attribute.py +0 -0
  14. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/_common/chunk_relevancy_sorter/config.py +0 -0
  15. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/_common/chunk_relevancy_sorter/exception.py +0 -0
  16. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/_common/chunk_relevancy_sorter/schemas.py +0 -0
  17. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/_common/chunk_relevancy_sorter/service.py +0 -0
  18. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/_common/chunk_relevancy_sorter/tests/test_service.py +0 -0
  19. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/_common/config_checker/README.md +0 -0
  20. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/_common/config_checker/__init__.py +0 -0
  21. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/_common/config_checker/__main__.py +0 -0
  22. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/_common/config_checker/cli.py +0 -0
  23. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/_common/config_checker/differ.py +0 -0
  24. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/_common/config_checker/exporter.py +0 -0
  25. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/_common/config_checker/models.py +0 -0
  26. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/_common/config_checker/registry.py +0 -0
  27. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/_common/config_checker/validator.py +0 -0
  28. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/_common/default_language_model.py +0 -0
  29. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/_common/docx_generator/__init__.py +0 -0
  30. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/_common/docx_generator/config.py +0 -0
  31. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/_common/docx_generator/pandoc_converter.py +0 -0
  32. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/_common/docx_generator/schemas.py +0 -0
  33. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/_common/docx_generator/service.py +0 -0
  34. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/_common/docx_generator/template/Doc Template.docx +0 -0
  35. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/_common/endpoint_builder.py +0 -0
  36. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/_common/endpoint_requestor.py +0 -0
  37. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/_common/event_bus.py +0 -0
  38. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/_common/exception.py +0 -0
  39. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/_common/execution.py +0 -0
  40. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/_common/experimental/endpoint_builder.py +0 -0
  41. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/_common/experimental/endpoint_requestor.py +0 -0
  42. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/_common/experimental/write_up_agent/README.md +0 -0
  43. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/_common/experimental/write_up_agent/__init__.py +0 -0
  44. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/_common/experimental/write_up_agent/agent.py +0 -0
  45. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/_common/experimental/write_up_agent/config.py +0 -0
  46. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/_common/experimental/write_up_agent/examples/data.csv +0 -0
  47. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/_common/experimental/write_up_agent/examples/example_usage.py +0 -0
  48. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/_common/experimental/write_up_agent/schemas.py +0 -0
  49. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/_common/experimental/write_up_agent/services/__init__.py +0 -0
  50. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/__init__.py +0 -0
  51. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/exceptions.py +0 -0
  52. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/service.py +0 -0
  53. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/utils.py +0 -0
  54. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/__init__.py +0 -0
  55. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/config.py +0 -0
  56. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/exceptions.py +0 -0
  57. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/prompts/config.py +0 -0
  58. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/prompts/system_prompt.j2 +0 -0
  59. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/prompts/user_prompt.j2 +0 -0
  60. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/service.py +0 -0
  61. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/__init__.py +0 -0
  62. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/default_template.j2 +0 -0
  63. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/exceptions.py +0 -0
  64. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/service.py +0 -0
  65. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/utils.py +0 -0
  66. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/_common/experimental/write_up_agent/utils.py +0 -0
  67. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/_common/feature_flags/schema.py +0 -0
  68. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/_common/pydantic/rjsf_tags.py +0 -0
  69. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/_common/pydantic_helpers.py +0 -0
  70. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/_common/referencing.py +0 -0
  71. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/_common/string_utilities.py +0 -0
  72. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/_common/tests/test_referencing.py +0 -0
  73. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/_common/tests/test_string_utilities.py +0 -0
  74. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/_common/token/__init__.py +0 -0
  75. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/_common/token/image_token_counting.py +0 -0
  76. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/_common/token/token_counting.py +0 -0
  77. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/_common/token/tokenizers/deepseek/tokenizer.json +0 -0
  78. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/_common/token/tokenizers/qwen/tokenizer.json +0 -0
  79. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/_common/utils/__init__.py +0 -0
  80. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/_common/utils/files.py +0 -0
  81. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/_common/utils/image/encode.py +0 -0
  82. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/_common/utils/jinja/helpers.py +0 -0
  83. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/_common/utils/jinja/render.py +0 -0
  84. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/_common/utils/jinja/schema.py +0 -0
  85. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/_common/utils/jinja/utils.py +0 -0
  86. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/_common/utils/structured_output/__init__.py +0 -0
  87. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/_common/utils/structured_output/schema.py +0 -0
  88. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/_common/utils/write_configuration.py +0 -0
  89. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/_common/validate_required_values.py +0 -0
  90. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/_common/validators.py +0 -0
  91. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/__init__.py +0 -0
  92. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/debug_info_manager/debug_info_manager.py +0 -0
  93. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/debug_info_manager/test/test_debug_info_manager.py +0 -0
  94. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/evaluation/config.py +0 -0
  95. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/evaluation/context_relevancy/prompts/__init__.py +0 -0
  96. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/evaluation/context_relevancy/prompts/system_prompt.j2 +0 -0
  97. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/evaluation/context_relevancy/prompts/user_prompt.j2 +0 -0
  98. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/evaluation/context_relevancy/schema.py +0 -0
  99. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/evaluation/context_relevancy/service.py +0 -0
  100. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/evaluation/evaluation_manager.py +0 -0
  101. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/evaluation/exception.py +0 -0
  102. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/evaluation/hallucination/constants.py +0 -0
  103. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/evaluation/hallucination/hallucination_evaluation.py +0 -0
  104. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/evaluation/hallucination/prompts/__init__.py +0 -0
  105. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/evaluation/hallucination/prompts/system_prompt.j2 +0 -0
  106. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/evaluation/hallucination/prompts/user_prompt.j2 +0 -0
  107. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/evaluation/hallucination/service.py +0 -0
  108. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/evaluation/hallucination/utils.py +0 -0
  109. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/evaluation/output_parser.py +0 -0
  110. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/evaluation/schemas.py +0 -0
  111. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/evaluation/tests/fixtures.py +0 -0
  112. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/evaluation/tests/test_config.py +0 -0
  113. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/evaluation/tests/test_context_relevancy_service.py +0 -0
  114. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/evaluation/tests/test_hallucination_constants.py +0 -0
  115. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/evaluation/tests/test_hallucination_utils.py +0 -0
  116. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/evaluation/tests/test_output_parser.py +0 -0
  117. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/evaluation/tests/test_prompt_loaders.py +0 -0
  118. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/evaluation/utils.py +0 -0
  119. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/feature_flags/__init__.py +0 -0
  120. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/feature_flags/feature_flags.py +0 -0
  121. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/history_manager/history_construction_with_contents.py +0 -0
  122. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/history_manager/history_manager.py +0 -0
  123. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/history_manager/loop_token_reducer.py +0 -0
  124. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/history_manager/utils.py +0 -0
  125. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/loop_runner/__init__.py +0 -0
  126. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/loop_runner/_iteration_handler_utils.py +0 -0
  127. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/loop_runner/_responses_iteration_handler_utils.py +0 -0
  128. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/loop_runner/_responses_stream_handler_utils.py +0 -0
  129. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/loop_runner/_stream_handler_utils.py +0 -0
  130. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/loop_runner/base.py +0 -0
  131. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/loop_runner/middleware/__init__.py +0 -0
  132. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/loop_runner/middleware/planning/__init__.py +0 -0
  133. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/loop_runner/middleware/planning/planning.py +0 -0
  134. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/loop_runner/middleware/planning/schema.py +0 -0
  135. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/loop_runner/runners/__init__.py +0 -0
  136. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/loop_runner/runners/basic.py +0 -0
  137. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/loop_runner/runners/mistral/__init__.py +0 -0
  138. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/loop_runner/runners/mistral/mistral_runner.py +0 -0
  139. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/loop_runner/runners/qwen/__init__.py +0 -0
  140. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/loop_runner/runners/qwen/helpers.py +0 -0
  141. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/loop_runner/runners/qwen/qwen_runner.py +0 -0
  142. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/message_log_manager/__init__.py +0 -0
  143. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/message_log_manager/service.py +0 -0
  144. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/postprocessor/postprocessor_manager.py +0 -0
  145. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/reference_manager/reference_manager.py +0 -0
  146. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/responses_api/__init__.py +0 -0
  147. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/responses_api/postprocessors/code_display.py +0 -0
  148. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/responses_api/postprocessors/generated_files.py +0 -0
  149. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/responses_api/stream_handler.py +0 -0
  150. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/short_term_memory_manager/persistent_short_term_memory_manager.py +0 -0
  151. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/thinking_manager/thinking_manager.py +0 -0
  152. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/tools/__init__.py +0 -0
  153. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/tools/a2a/__init__.py +0 -0
  154. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/tools/a2a/config.py +0 -0
  155. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/tools/a2a/evaluation/__init__.py +0 -0
  156. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/tools/a2a/evaluation/_utils.py +0 -0
  157. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/tools/a2a/evaluation/config.py +0 -0
  158. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/tools/a2a/evaluation/evaluator.py +0 -0
  159. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/tools/a2a/evaluation/summarization_user_message.j2 +0 -0
  160. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/tools/a2a/manager.py +0 -0
  161. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/tools/a2a/postprocessing/__init__.py +0 -0
  162. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/tools/a2a/postprocessing/_display_utils.py +0 -0
  163. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/tools/a2a/postprocessing/_ref_utils.py +0 -0
  164. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/tools/a2a/postprocessing/config.py +0 -0
  165. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/tools/a2a/postprocessing/display.py +0 -0
  166. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/tools/a2a/postprocessing/references.py +0 -0
  167. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_display.py +0 -0
  168. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_display_utils.py +0 -0
  169. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_ref_utils.py +0 -0
  170. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/tools/a2a/prompts.py +0 -0
  171. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/tools/a2a/response_watcher/__init__.py +0 -0
  172. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/tools/a2a/response_watcher/service.py +0 -0
  173. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/tools/a2a/tool/__init__.py +0 -0
  174. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/tools/a2a/tool/_memory.py +0 -0
  175. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/tools/a2a/tool/_schema.py +0 -0
  176. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/tools/a2a/tool/config.py +0 -0
  177. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/tools/a2a/tool/service.py +0 -0
  178. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/tools/a2a/tool/test/test_service_utils.py +0 -0
  179. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/tools/agent_chunks_hanlder.py +0 -0
  180. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/tools/config.py +0 -0
  181. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/tools/experimental/__init__.py +0 -0
  182. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/tools/experimental/open_file_tool/__init__.py +0 -0
  183. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/tools/experimental/open_file_tool/config.py +0 -0
  184. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/tools/experimental/open_file_tool/runtime.py +0 -0
  185. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/tools/experimental/open_file_tool/tool.py +0 -0
  186. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/tools/experimental/todo/__init__.py +0 -0
  187. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/tools/experimental/todo/config.py +0 -0
  188. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/tools/experimental/todo/prompts/__init__.py +0 -0
  189. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/tools/experimental/todo/prompts/execution_reminder.j2 +0 -0
  190. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/tools/experimental/todo/prompts/system_prompt.j2 +0 -0
  191. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/tools/experimental/todo/prompts/tool_description.j2 +0 -0
  192. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/tools/experimental/todo/prompts/verification_nudge.j2 +0 -0
  193. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/tools/experimental/todo/schemas.py +0 -0
  194. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/tools/experimental/todo/service.py +0 -0
  195. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/tools/factory.py +0 -0
  196. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/tools/mcp/__init__.py +0 -0
  197. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/tools/mcp/manager.py +0 -0
  198. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/tools/mcp/models.py +0 -0
  199. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/tools/mcp/tool_wrapper.py +0 -0
  200. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/tools/openai_builtin/__init__.py +0 -0
  201. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/tools/openai_builtin/base.py +0 -0
  202. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/__init__.py +0 -0
  203. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/postprocessors/__init__.py +0 -0
  204. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/postprocessors/code_display.py +0 -0
  205. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/postprocessors/generated_files.py +0 -0
  206. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/schemas.py +0 -0
  207. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/service.py +0 -0
  208. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/tools/openai_builtin/manager.py +0 -0
  209. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/tools/schemas.py +0 -0
  210. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/tools/test/test_mcp_manager.py +0 -0
  211. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/tools/test/test_tool_progress_reporter.py +0 -0
  212. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/tools/tool.py +0 -0
  213. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/tools/tool_manager.py +0 -0
  214. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/tools/tool_progress_reporter.py +0 -0
  215. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/tools/utils/__init__.py +0 -0
  216. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/tools/utils/source_handling/__init__.py +0 -0
  217. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/tools/utils/source_handling/schema.py +0 -0
  218. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/tools/utils/source_handling/source_formatting.py +0 -0
  219. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/agentic/tools/utils/source_handling/tests/test_source_formatting.py +0 -0
  220. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/app/__init__.py +0 -0
  221. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/app/chat_event_filter_options_settings.py +0 -0
  222. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/app/dev_util.py +0 -0
  223. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/app/fast_api_factory.py +0 -0
  224. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/app/feature_flags.py +0 -0
  225. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/app/find_env_file.py +0 -0
  226. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/app/init_logging.py +0 -0
  227. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/app/init_sdk.py +0 -0
  228. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/app/performance/async_tasks.py +0 -0
  229. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/app/performance/async_wrapper.py +0 -0
  230. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/app/schemas.py +0 -0
  231. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/app/unique_settings.py +0 -0
  232. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/app/verification.py +0 -0
  233. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/app/webhook.py +0 -0
  234. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/chat/__init__.py +0 -0
  235. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/chat/cancellation.py +0 -0
  236. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/chat/constants.py +0 -0
  237. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/chat/deprecated/service.py +0 -0
  238. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/chat/functions.py +0 -0
  239. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/chat/rendering.py +0 -0
  240. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/chat/responses_api.py +0 -0
  241. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/chat/schemas.py +0 -0
  242. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/chat/service.py +0 -0
  243. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/chat/state.py +0 -0
  244. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/chat/utils.py +0 -0
  245. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/content/__init__.py +0 -0
  246. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/content/constants.py +0 -0
  247. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/content/functions.py +0 -0
  248. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/content/schemas.py +0 -0
  249. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/content/service.py +0 -0
  250. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/content/smart_rules.py +0 -0
  251. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/content/utils.py +0 -0
  252. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/data_extraction/README.md +0 -0
  253. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/data_extraction/__init__.py +0 -0
  254. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/data_extraction/augmented/__init__.py +0 -0
  255. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/data_extraction/augmented/service.py +0 -0
  256. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/data_extraction/base.py +0 -0
  257. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/data_extraction/basic/__init__.py +0 -0
  258. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/data_extraction/basic/config.py +0 -0
  259. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/data_extraction/basic/prompt.py +0 -0
  260. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/data_extraction/basic/service.py +0 -0
  261. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/elicitation/__init__.py +0 -0
  262. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/elicitation/constants.py +0 -0
  263. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/elicitation/exceptions.py +0 -0
  264. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/elicitation/functions.py +0 -0
  265. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/elicitation/schemas.py +0 -0
  266. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/elicitation/service.py +0 -0
  267. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/embedding/__init__.py +0 -0
  268. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/embedding/constants.py +0 -0
  269. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/embedding/functions.py +0 -0
  270. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/embedding/schemas.py +0 -0
  271. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/embedding/service.py +0 -0
  272. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/embedding/utils.py +0 -0
  273. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/experimental/__init__.py +0 -0
  274. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/experimental/content_folder/__init__.py +0 -0
  275. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/experimental/content_folder/functions.py +0 -0
  276. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/experimental/content_folder/schemas.py +0 -0
  277. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/experimental/content_folder/service.py +0 -0
  278. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/experimental/content_tree/__init__.py +0 -0
  279. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/experimental/content_tree/functions.py +0 -0
  280. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/experimental/content_tree/schemas.py +0 -0
  281. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/experimental/content_tree/service.py +0 -0
  282. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/experimental/identity/__init__.py +0 -0
  283. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/experimental/identity/functions.py +0 -0
  284. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/experimental/identity/schemas.py +0 -0
  285. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/experimental/identity/service.py +0 -0
  286. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/experimental/scheduled_task/__init__.py +0 -0
  287. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/experimental/scheduled_task/cron.py +0 -0
  288. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/experimental/scheduled_task/functions.py +0 -0
  289. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/experimental/scheduled_task/schemas.py +0 -0
  290. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/experimental/scheduled_task/service.py +0 -0
  291. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/framework_utilities/__init__.py +0 -0
  292. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/framework_utilities/langchain/__init__.py +0 -0
  293. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/framework_utilities/langchain/client.py +0 -0
  294. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/framework_utilities/langchain/history.py +0 -0
  295. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/framework_utilities/openai/__init__.py +0 -0
  296. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/framework_utilities/openai/client.py +0 -0
  297. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/framework_utilities/openai/message_builder.py +0 -0
  298. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/framework_utilities/utils.py +0 -0
  299. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/language_model/__init__.py +0 -0
  300. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/language_model/_responses_api_utils.py +0 -0
  301. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/language_model/builder.py +0 -0
  302. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/language_model/constants.py +0 -0
  303. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/language_model/default_language_model.py +0 -0
  304. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/language_model/functions.py +0 -0
  305. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/language_model/infos.py +0 -0
  306. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/language_model/prompt.py +0 -0
  307. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/language_model/reference.py +0 -0
  308. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/language_model/schemas.py +0 -0
  309. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/language_model/service.py +0 -0
  310. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/language_model/stream_transform.py +0 -0
  311. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/language_model/utils.py +0 -0
  312. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/monitoring/__init__.py +0 -0
  313. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/monitoring/middleware.py +0 -0
  314. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/monitoring/registry.py +0 -0
  315. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/protocols/support.py +0 -0
  316. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/services/__init__.py +0 -0
  317. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/services/chat_service.py +0 -0
  318. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/services/factory.py +0 -0
  319. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/services/knowledge_base.py +0 -0
  320. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/short_term_memory/__init__.py +0 -0
  321. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/short_term_memory/constants.py +0 -0
  322. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/short_term_memory/functions.py +0 -0
  323. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/short_term_memory/schemas.py +0 -0
  324. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/short_term_memory/service.py +0 -0
  325. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/smart_rules/__init__.py +0 -0
  326. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/unique_toolkit/smart_rules/compile.py +0 -0
  327. {unique_toolkit-1.80.2 → unique_toolkit-1.81.0}/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.80.2
3
+ Version: 1.81.0
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>
@@ -16,7 +16,7 @@ Requires-Dist: sseclient>=0.0.27,<0.0.28
16
16
  Requires-Dist: openai>=1.105.0,<3
17
17
  Requires-Dist: platformdirs>=4.0.0,<5
18
18
  Requires-Dist: pillow>=12.1.1
19
- Requires-Dist: unique-sdk>=0.11.6,<0.12
19
+ Requires-Dist: unique-sdk>=0.11.12,<0.12
20
20
  Requires-Dist: jambo>=0.1.2,<0.2
21
21
  Requires-Dist: jinja2>=3.1.6,<4
22
22
  Requires-Dist: docxtpl>=0.20.1,<0.21
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "unique_toolkit"
3
- version = "1.80.2"
3
+ version = "1.81.0"
4
4
  description = ""
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.12"
@@ -28,7 +28,7 @@ dependencies = [
28
28
  "openai>=1.105.0,<3",
29
29
  "platformdirs>=4.0.0,<5",
30
30
  "pillow>=12.1.1",
31
- "unique-sdk>=0.11.6,<0.12",
31
+ "unique-sdk>=0.11.12,<0.12",
32
32
  "jambo>=0.1.2,<0.2",
33
33
  "jinja2>=3.1.6,<4",
34
34
  "docxtpl>=0.20.1,<0.21",
@@ -49,6 +49,8 @@ Handling User Queries:
49
49
  - Whenever the user query requires using the python tool, you must always think first about the steps required.
50
50
  - CRITICAL: If any step generates a plot or visualization, that code block MUST include `plt.savefig('/mnt/data/<filename>.png', bbox_inches='tight')` and `plt.close()` as the final lines. Code that only calls `plt.show()` without saving will NOT display the image to the user.
51
51
  - CRITICAL: NEVER reference a `sandbox:/mnt/data/<filename>` link unless you have already executed code in this response that saved that exact file. Referencing a file that was not created by executed code will result in a broken link.
52
+ - CRITICAL: For Excel files (`.xls`, `.xlsx`) and CSV files uploaded to the chat, ALWAYS use this tool to read and process them (e.g. `pandas.read_excel`, `pandas.read_csv`, `openpyxl`). Do NOT rely on the chat's text content or prior ingestion for spreadsheet data — the raw file contents are only accessible via code execution from `/mnt/data/<filename>`.
53
+ - For calculation, retrieval, or exploratory-analysis answers, return the result concisely in the chat as markdown (key numbers inline, short tables where useful). Do NOT produce a separate artifact file (HTML, PDF, etc.) unless the user explicitly asked for a downloadable output or the request clearly calls for a dashboard/report.
52
54
  - Use the tool multiple times:
53
55
  - You MUST NOT guess anything about the structure of the data / files uploaded. Rather, you MUST perform some data exploration first.
54
56
  - 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.
@@ -118,6 +120,8 @@ Handling User Queries:
118
120
  - CRITICAL: If any step generates a plot or visualization, that code block MUST include `plt.savefig('/mnt/data/<filename>.png', bbox_inches='tight')` and `plt.close()` as the final lines. Code that only calls `plt.show()` without saving will NOT display the image to the user.
119
121
  - CRITICAL: NEVER reference a `sandbox:/mnt/data/<filename>` link unless you have already executed code in this response that saved that exact file. Referencing a file that was not created by executed code will result in a broken link.
120
122
  - CRITICAL: The sandbox has NO internet access. NEVER use `requests`, `httpx`, `urllib`, or any other HTTP library to fetch data from the web — these calls will always fail. If the user's query requires live web data (e.g. market prices, news, APIs), you MUST retrieve it using the web search tool first and then pass the result into the code interpreter.
123
+ - CRITICAL: For Excel files (`.xls`, `.xlsx`) and CSV files uploaded to the chat, ALWAYS use this tool to read and process them (e.g. `pandas.read_excel`, `pandas.read_csv`, `openpyxl`). Do NOT rely on the chat's text content or prior ingestion for spreadsheet data — the raw file contents are only accessible via code execution from `/mnt/data/<filename>`.
124
+ - For calculation, retrieval, or exploratory-analysis answers, return the result concisely in the chat as markdown (key numbers inline, short tables where useful). Do NOT produce a separate artifact file (HTML, PDF, etc.) unless the user explicitly asked for a downloadable output or the request clearly calls for a dashboard/report.
121
125
  - Use the tool multiple times:
122
126
  - You MUST NOT guess anything about the structure of the data / files uploaded. Rather, you MUST perform some data exploration first.
123
127
  - 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.
@@ -129,7 +133,7 @@ Handling User Queries:
129
133
 
130
134
 
131
135
  DEFAULT_TOOL_DESCRIPTION_FOR_USER_PROMPT = ""
132
- DEFAULT_TOOL_DESCRIPTION = "Use this tool to run python code, e.g to generate plots, process excel files, perform calculations, etc."
136
+ DEFAULT_TOOL_DESCRIPTION = "Use this tool to run Python code: generate plots, process Excel/CSV files, perform calculations, create dashboards and data visualizations. ALWAYS use this tool when the user uploads a file (especially Excel/CSV) or asks for any chart, plot, graph, dashboard, analysis, visualization, or equation. Do not answer plotting or graphing requests with text or ASCII art — always produce a real image via the tool."
133
137
 
134
138
 
135
139
  @register_config()
@@ -2,6 +2,9 @@ from unique_sdk.api_resources._agentic_table import (
2
2
  ActivityStatus,
3
3
  CellRendererTypes,
4
4
  FilterTypes,
5
+ MagicTableActivityResponse,
6
+ MagicTableArtifactType,
7
+ MagicTableMetadataEntry,
5
8
  RowVerificationStatus,
6
9
  )
7
10
 
@@ -40,7 +43,10 @@ __all__ = [
40
43
  "CellRendererTypes",
41
44
  "FilterTypes",
42
45
  "LogEntry",
46
+ "MagicTableActivityResponse",
47
+ "MagicTableArtifactType",
43
48
  "MagicTableAction",
49
+ "MagicTableMetadataEntry",
44
50
  "MagicTableAddMetadataPayload",
45
51
  "MagicTableBasePayload",
46
52
  "MagicTableCell",
@@ -10,6 +10,7 @@ from pydantic import (
10
10
  from unique_sdk import (
11
11
  AgenticTableSheetState,
12
12
  AgreementStatus,
13
+ MagicTableArtifactType,
13
14
  SelectionMethod,
14
15
  )
15
16
  from unique_sdk import LogDetail as SDKLogDetail
@@ -150,15 +151,13 @@ class MagicTableUpdateCellPayload(
150
151
  data: str
151
152
 
152
153
 
153
- class ArtifactType(StrEnum):
154
- QUESTIONS = "QUESTIONS"
155
- FULL_REPORT = "FULL_REPORT"
156
- AGENTIC_REPORT = "AGENTIC_REPORT"
154
+ # Same wire values as ``MagicTableArtifactType`` / public ``POST .../artifact`` (unique-sdk 0.11.12+).
155
+ ArtifactType = MagicTableArtifactType
157
156
 
158
157
 
159
158
  class ArtifactData(BaseModel):
160
159
  model_config = get_configuration_dict()
161
- artifact_type: ArtifactType
160
+ artifact_type: MagicTableArtifactType
162
161
 
163
162
 
164
163
  class MagicTableGenerateArtifactPayload(
@@ -344,7 +343,10 @@ class MagicTableSheet(BaseModel):
344
343
  description="The total number of rows in the sheet",
345
344
  alias="magicTableRowCount",
346
345
  )
347
- chat_id: str
346
+ chat_id: str | None = Field(
347
+ default=None,
348
+ description="Chat that owns the sheet when returned by the API (may be omitted).",
349
+ )
348
350
  created_by: str
349
351
  company_id: str
350
352
  created_at: str
@@ -1,4 +1,5 @@
1
1
  import logging
2
+ from typing import Any, cast
2
3
 
3
4
  from typing_extensions import deprecated
4
5
  from unique_sdk import (
@@ -7,6 +8,7 @@ from unique_sdk import (
7
8
  AgreementStatus,
8
9
  CellRendererTypes,
9
10
  FilterTypes,
11
+ MagicTableArtifactType,
10
12
  RowVerificationStatus,
11
13
  SelectionMethod,
12
14
  )
@@ -14,7 +16,6 @@ from unique_sdk import AgenticTableCell as SDKAgenticTableCell
14
16
  from unique_sdk.api_resources._agentic_table import ActivityStatus
15
17
 
16
18
  from .schemas import (
17
- ArtifactType,
18
19
  LogEntry,
19
20
  MagicTableAction,
20
21
  MagicTableCell,
@@ -23,6 +24,25 @@ from .schemas import (
23
24
  )
24
25
 
25
26
 
27
+ def _sheet_batch_cells_include_row_metadata_from_api(
28
+ cells: list[SDKAgenticTableCell],
29
+ ) -> bool:
30
+ """True when `get_sheet_data` already returned per-cell ``rowMetadata`` (UN-19884+).
31
+
32
+ Used to skip N+1 ``get_cell`` hydration. If the batch is empty, there is nothing
33
+ to hydrate, so we treat that as satisfied.
34
+
35
+ When the gateway does not yet populate ``rowMetadata`` on sheet payloads, the
36
+ first cell typically omits the key entirely — then callers fall back to
37
+ ``get_cell`` per distinct row (legacy compat; removable after deprecation).
38
+ """
39
+ if not cells:
40
+ return True
41
+ first = cells[0]
42
+ rm = first.get("rowMetadata")
43
+ return "rowMetadata" in first and isinstance(rm, list)
44
+
45
+
26
46
  class LockedAgenticTableError(Exception):
27
47
  pass
28
48
 
@@ -106,7 +126,7 @@ class AgenticTableService:
106
126
  tableId=self.table_id,
107
127
  rowOrder=row,
108
128
  columnOrder=column,
109
- includeRowMetadata=include_row_metadata, # type: ignore[arg-type]
129
+ includeRowMetadata=include_row_metadata,
110
130
  )
111
131
  return MagicTableCell.model_validate(cell_data)
112
132
 
@@ -198,27 +218,32 @@ class AgenticTableService:
198
218
 
199
219
  async def set_artifact(
200
220
  self,
201
- artifact_type: ArtifactType,
221
+ artifact_type: MagicTableArtifactType,
202
222
  content_id: str,
203
- mime_type: str,
204
- name: str,
223
+ mime_type: str | None = None,
224
+ name: str | None = None,
205
225
  ):
206
226
  """Upload/set report files to the Agentic Table.
207
227
 
208
228
  Args:
209
- artifact_type (ArtifactType): The type of artifact to set.
210
- content_id (str): The content ID of the artifact.
211
- mime_type (str): The MIME type of the artifact.
212
- name (str): The name of the artifact.
229
+ artifact_type: The type of artifact to set (``MagicTableArtifactType`` / public API).
230
+ content_id: The content ID of the artifact.
231
+ mime_type: The MIME type of the artifact (optional on the wire; include when known).
232
+ name: The display name of the artifact (optional on the wire; include when known).
213
233
  """
234
+ extras: dict[str, str] = {}
235
+ if mime_type is not None:
236
+ extras["mimeType"] = mime_type
237
+ if name is not None:
238
+ extras["name"] = name
239
+ # ``Unpack[SetArtifact]`` + dynamic keys: basedpyright cannot tie ``extras`` to optional fields.
214
240
  await AgenticTable.set_artifact(
215
241
  user_id=self._user_id,
216
242
  company_id=self._company_id,
217
243
  tableId=self.table_id,
218
- artifactType=artifact_type.value, # pyright: ignore[reportArgumentType]
244
+ artifactType=artifact_type,
219
245
  contentId=content_id,
220
- mimeType=mime_type,
221
- name=name,
246
+ **cast(Any, extras),
222
247
  )
223
248
 
224
249
  @deprecated("Use set_column_style instead.")
@@ -282,7 +307,12 @@ class AgenticTableService:
282
307
  includeCells=False,
283
308
  includeLogHistory=False,
284
309
  )
285
- return sheet_info["magicTableRowCount"]
310
+ row_count = sheet_info.get("magicTableRowCount")
311
+ if row_count is None:
312
+ raise RuntimeError(
313
+ "Expected magicTableRowCount in sheet response when includeRowCount=True"
314
+ )
315
+ return row_count
286
316
 
287
317
  async def get_sheet(
288
318
  self,
@@ -316,7 +346,11 @@ class AgenticTableService:
316
346
  includeLogHistory=False,
317
347
  includeCellMetaData=False,
318
348
  )
319
- total_rows = sheet_info["magicTableRowCount"]
349
+ total_rows = sheet_info.get("magicTableRowCount")
350
+ if total_rows is None:
351
+ raise RuntimeError(
352
+ "Expected magicTableRowCount in sheet response when includeRowCount=True"
353
+ )
320
354
  if end_row is None or end_row > total_rows:
321
355
  end_row = total_rows
322
356
  if start_row > end_row:
@@ -328,50 +362,69 @@ class AgenticTableService:
328
362
  cells = []
329
363
  for row in range(start_row, end_row, batch_size):
330
364
  end_row_batch = min(row + batch_size, end_row)
331
- sheet_partial = await AgenticTable.get_sheet_data(
332
- user_id=self._user_id,
333
- company_id=self._company_id,
334
- tableId=self.table_id,
335
- includeCells=True,
336
- includeLogHistory=include_log_history,
337
- includeRowCount=False,
338
- includeCellMetaData=include_cell_meta_data, # renderer, selection, agreement status
339
- startRow=row,
340
- endRow=end_row_batch - 1,
341
- )
365
+ if include_row_metadata:
366
+ sheet_partial = await AgenticTable.get_sheet_data(
367
+ user_id=self._user_id,
368
+ company_id=self._company_id,
369
+ tableId=self.table_id,
370
+ includeCells=True,
371
+ includeLogHistory=include_log_history,
372
+ includeRowCount=False,
373
+ includeCellMetaData=include_cell_meta_data, # renderer, selection, agreement status
374
+ startRow=row,
375
+ endRow=end_row_batch - 1,
376
+ includeRowMetadata=True,
377
+ )
378
+ else:
379
+ sheet_partial = await AgenticTable.get_sheet_data(
380
+ user_id=self._user_id,
381
+ company_id=self._company_id,
382
+ tableId=self.table_id,
383
+ includeCells=True,
384
+ includeLogHistory=include_log_history,
385
+ includeRowCount=False,
386
+ includeCellMetaData=include_cell_meta_data, # renderer, selection, agreement status
387
+ startRow=row,
388
+ endRow=end_row_batch - 1,
389
+ )
342
390
  if "magicTableCells" in sheet_partial:
343
- if include_row_metadata:
344
- # If include_row_metadata is true, we need to get the row metadata for each cell.
345
- row_metadata_map = {}
346
- # TODO: @thea-unique This routine is not efficient and would be nice if we had this data passed on in get_sheet_data.
347
- for cell in sheet_partial["magicTableCells"]:
391
+ batch_cells = sheet_partial["magicTableCells"]
392
+ if (
393
+ include_row_metadata
394
+ and not _sheet_batch_cells_include_row_metadata_from_api(
395
+ batch_cells
396
+ )
397
+ ):
398
+ # Legacy: gateways before UN-19884 omit rowMetadata on sheet cells; hydrate
399
+ # via get_cell until all environments expose rowMetadata on GET sheet. This
400
+ # branch can be removed after an agreed deprecation window.
401
+ self.logger.debug(
402
+ "Magic table sheet cells lack rowMetadata; hydrating row metadata via get_cell."
403
+ )
404
+ row_metadata_map: dict[int, list[RowMetadataEntry]] = {}
405
+ for cell in batch_cells:
348
406
  row_order = cell.get("rowOrder") # type: ignore[assignment]
349
407
  if row_order is not None and row_order not in row_metadata_map: # pyright: ignore[reportUnnecessaryComparison]
350
408
  column_order = cell.get("columnOrder") # type: ignore[assignment]
351
- self.logger.info(
352
- f"Getting row metadata for cell {row_order}, {column_order}"
353
- )
354
409
  cell_with_row_metadata = await self.get_cell(
355
410
  row_order,
356
411
  column_order,
357
412
  )
358
413
  if cell_with_row_metadata.row_metadata:
359
- print(cell_with_row_metadata.row_metadata)
360
414
  row_metadata_map[cell_with_row_metadata.row_order] = (
361
415
  cell_with_row_metadata.row_metadata
362
416
  )
363
417
  cell["rowMetadata"] = ( # pyright: ignore[reportGeneralTypeIssues]
364
418
  cell_with_row_metadata.row_metadata
365
419
  )
366
- # Assign row_metadata to all cells
367
- for cell in sheet_partial["magicTableCells"]:
420
+ for cell in batch_cells:
368
421
  row_order = cell.get("rowOrder") # type: ignore[assignment]
369
422
  if row_order is not None and row_order in row_metadata_map: # pyright: ignore[reportUnnecessaryComparison]
370
423
  cell["rowMetadata"] = row_metadata_map[ # pyright: ignore[reportGeneralTypeIssues]
371
424
  row_order
372
425
  ]
373
426
 
374
- cells.extend(sheet_partial["magicTableCells"])
427
+ cells.extend(batch_cells)
375
428
 
376
429
  sheet_info["magicTableCells"] = cells
377
430
  return MagicTableSheet.model_validate(sheet_info)
@@ -387,12 +440,10 @@ class AgenticTableService:
387
440
  user_id=self._user_id,
388
441
  company_id=self._company_id,
389
442
  tableId=self.table_id,
390
- includeSheetMetadata=True, # pyright: ignore[reportCallIssue]
443
+ includeSheetMetadata=True,
391
444
  )
392
- return [
393
- RowMetadataEntry.model_validate(metadata)
394
- for metadata in sheet_info["magicTableSheetMetadata"]
395
- ]
445
+ raw_metadata = sheet_info.get("magicTableSheetMetadata") or []
446
+ return [RowMetadataEntry.model_validate(metadata) for metadata in raw_metadata]
396
447
 
397
448
  async def set_cell_metadata(
398
449
  self,
@@ -436,17 +487,29 @@ class AgenticTableService:
436
487
  self,
437
488
  row_orders: list[int],
438
489
  status: RowVerificationStatus,
490
+ locked: bool | None = None,
439
491
  ):
440
492
  """Update the verification status of multiple rows at once.
441
493
 
442
494
  Args:
443
- row_orders (list[int]): The row indexes to update.
444
- status (RowVerificationStatus): The verification status to set.
495
+ row_orders: The row indexes to update.
496
+ status: The verification status to set (``NEEDS_REVIEW``, etc.; matches public API).
497
+ locked: When set, forwarded as ``locked`` on ``POST .../rows/bulk-update-status``.
445
498
  """
446
- await AgenticTable.bulk_update_status(
447
- user_id=self._user_id,
448
- company_id=self._company_id,
449
- tableId=self.table_id,
450
- rowOrders=row_orders,
451
- status=status,
452
- )
499
+ if locked is None:
500
+ await AgenticTable.bulk_update_status(
501
+ user_id=self._user_id,
502
+ company_id=self._company_id,
503
+ tableId=self.table_id,
504
+ rowOrders=row_orders,
505
+ status=status,
506
+ )
507
+ else:
508
+ await AgenticTable.bulk_update_status(
509
+ user_id=self._user_id,
510
+ company_id=self._company_id,
511
+ tableId=self.table_id,
512
+ rowOrders=row_orders,
513
+ status=status,
514
+ locked=locked,
515
+ )