unique_toolkit 1.71.3__tar.gz → 1.72.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 (300) hide show
  1. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/PKG-INFO +1 -1
  2. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/pyproject.toml +1 -1
  3. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/content/functions.py +43 -4
  4. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/services/knowledge_base.py +182 -45
  5. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/README.md +0 -0
  6. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/__init__.py +0 -0
  7. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/_common/__init__.py +0 -0
  8. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/_common/_base_service.py +0 -0
  9. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/_common/_time_utils.py +0 -0
  10. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/_common/api_calling/human_verification_manager.py +0 -0
  11. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/_common/base_model_type_attribute.py +0 -0
  12. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/_common/chunk_relevancy_sorter/config.py +0 -0
  13. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/_common/chunk_relevancy_sorter/exception.py +0 -0
  14. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/_common/chunk_relevancy_sorter/schemas.py +0 -0
  15. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/_common/chunk_relevancy_sorter/service.py +0 -0
  16. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/_common/chunk_relevancy_sorter/tests/test_service.py +0 -0
  17. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/_common/config_checker/README.md +0 -0
  18. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/_common/config_checker/__init__.py +0 -0
  19. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/_common/config_checker/__main__.py +0 -0
  20. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/_common/config_checker/cli.py +0 -0
  21. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/_common/config_checker/differ.py +0 -0
  22. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/_common/config_checker/exporter.py +0 -0
  23. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/_common/config_checker/models.py +0 -0
  24. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/_common/config_checker/registry.py +0 -0
  25. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/_common/config_checker/validator.py +0 -0
  26. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/_common/default_language_model.py +0 -0
  27. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/_common/docx_generator/__init__.py +0 -0
  28. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/_common/docx_generator/config.py +0 -0
  29. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/_common/docx_generator/pandoc_converter.py +0 -0
  30. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/_common/docx_generator/schemas.py +0 -0
  31. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/_common/docx_generator/service.py +0 -0
  32. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/_common/docx_generator/template/Doc Template.docx +0 -0
  33. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/_common/endpoint_builder.py +0 -0
  34. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/_common/endpoint_requestor.py +0 -0
  35. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/_common/event_bus.py +0 -0
  36. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/_common/exception.py +0 -0
  37. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/_common/execution.py +0 -0
  38. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/_common/experimental/endpoint_builder.py +0 -0
  39. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/_common/experimental/endpoint_requestor.py +0 -0
  40. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/_common/experimental/write_up_agent/README.md +0 -0
  41. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/_common/experimental/write_up_agent/__init__.py +0 -0
  42. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/_common/experimental/write_up_agent/agent.py +0 -0
  43. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/_common/experimental/write_up_agent/config.py +0 -0
  44. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/_common/experimental/write_up_agent/examples/data.csv +0 -0
  45. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/_common/experimental/write_up_agent/examples/example_usage.py +0 -0
  46. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/_common/experimental/write_up_agent/schemas.py +0 -0
  47. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/_common/experimental/write_up_agent/services/__init__.py +0 -0
  48. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/__init__.py +0 -0
  49. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/exceptions.py +0 -0
  50. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/service.py +0 -0
  51. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/utils.py +0 -0
  52. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/__init__.py +0 -0
  53. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/config.py +0 -0
  54. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/exceptions.py +0 -0
  55. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/prompts/config.py +0 -0
  56. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/prompts/system_prompt.j2 +0 -0
  57. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/prompts/user_prompt.j2 +0 -0
  58. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/service.py +0 -0
  59. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/__init__.py +0 -0
  60. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/default_template.j2 +0 -0
  61. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/exceptions.py +0 -0
  62. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/service.py +0 -0
  63. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/utils.py +0 -0
  64. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/_common/experimental/write_up_agent/utils.py +0 -0
  65. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/_common/feature_flags/schema.py +0 -0
  66. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/_common/pydantic/rjsf_tags.py +0 -0
  67. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/_common/pydantic_helpers.py +0 -0
  68. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/_common/referencing.py +0 -0
  69. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/_common/string_utilities.py +0 -0
  70. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/_common/tests/test_referencing.py +0 -0
  71. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/_common/tests/test_string_utilities.py +0 -0
  72. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/_common/token/__init__.py +0 -0
  73. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/_common/token/image_token_counting.py +0 -0
  74. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/_common/token/token_counting.py +0 -0
  75. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/_common/token/tokenizers/deepseek/tokenizer.json +0 -0
  76. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/_common/token/tokenizers/qwen/tokenizer.json +0 -0
  77. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/_common/utils/__init__.py +0 -0
  78. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/_common/utils/files.py +0 -0
  79. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/_common/utils/image/encode.py +0 -0
  80. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/_common/utils/jinja/helpers.py +0 -0
  81. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/_common/utils/jinja/render.py +0 -0
  82. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/_common/utils/jinja/schema.py +0 -0
  83. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/_common/utils/jinja/utils.py +0 -0
  84. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/_common/utils/structured_output/__init__.py +0 -0
  85. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/_common/utils/structured_output/schema.py +0 -0
  86. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/_common/utils/write_configuration.py +0 -0
  87. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/_common/validate_required_values.py +0 -0
  88. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/_common/validators.py +0 -0
  89. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/__init__.py +0 -0
  90. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/debug_info_manager/debug_info_manager.py +0 -0
  91. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/debug_info_manager/test/test_debug_info_manager.py +0 -0
  92. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/evaluation/config.py +0 -0
  93. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/evaluation/context_relevancy/prompts/__init__.py +0 -0
  94. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/evaluation/context_relevancy/prompts/system_prompt.j2 +0 -0
  95. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/evaluation/context_relevancy/prompts/user_prompt.j2 +0 -0
  96. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/evaluation/context_relevancy/schema.py +0 -0
  97. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/evaluation/context_relevancy/service.py +0 -0
  98. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/evaluation/evaluation_manager.py +0 -0
  99. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/evaluation/exception.py +0 -0
  100. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/evaluation/hallucination/constants.py +0 -0
  101. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/evaluation/hallucination/hallucination_evaluation.py +0 -0
  102. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/evaluation/hallucination/prompts/__init__.py +0 -0
  103. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/evaluation/hallucination/prompts/system_prompt.j2 +0 -0
  104. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/evaluation/hallucination/prompts/user_prompt.j2 +0 -0
  105. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/evaluation/hallucination/service.py +0 -0
  106. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/evaluation/hallucination/utils.py +0 -0
  107. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/evaluation/output_parser.py +0 -0
  108. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/evaluation/schemas.py +0 -0
  109. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/evaluation/tests/fixtures.py +0 -0
  110. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/evaluation/tests/test_config.py +0 -0
  111. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/evaluation/tests/test_context_relevancy_service.py +0 -0
  112. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/evaluation/tests/test_hallucination_constants.py +0 -0
  113. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/evaluation/tests/test_hallucination_utils.py +0 -0
  114. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/evaluation/tests/test_output_parser.py +0 -0
  115. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/evaluation/tests/test_prompt_loaders.py +0 -0
  116. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/evaluation/utils.py +0 -0
  117. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/feature_flags/__init__.py +0 -0
  118. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/feature_flags/feature_flags.py +0 -0
  119. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/history_manager/history_construction_with_contents.py +0 -0
  120. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/history_manager/history_manager.py +0 -0
  121. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/history_manager/loop_token_reducer.py +0 -0
  122. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/history_manager/utils.py +0 -0
  123. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/loop_runner/__init__.py +0 -0
  124. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/loop_runner/_iteration_handler_utils.py +0 -0
  125. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/loop_runner/_responses_iteration_handler_utils.py +0 -0
  126. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/loop_runner/_responses_stream_handler_utils.py +0 -0
  127. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/loop_runner/_stream_handler_utils.py +0 -0
  128. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/loop_runner/base.py +0 -0
  129. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/loop_runner/middleware/__init__.py +0 -0
  130. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/loop_runner/middleware/planning/__init__.py +0 -0
  131. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/loop_runner/middleware/planning/planning.py +0 -0
  132. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/loop_runner/middleware/planning/schema.py +0 -0
  133. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/loop_runner/runners/__init__.py +0 -0
  134. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/loop_runner/runners/basic.py +0 -0
  135. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/loop_runner/runners/mistral/__init__.py +0 -0
  136. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/loop_runner/runners/mistral/mistral_runner.py +0 -0
  137. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/loop_runner/runners/qwen/__init__.py +0 -0
  138. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/loop_runner/runners/qwen/helpers.py +0 -0
  139. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/loop_runner/runners/qwen/qwen_runner.py +0 -0
  140. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/message_log_manager/__init__.py +0 -0
  141. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/message_log_manager/service.py +0 -0
  142. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/postprocessor/postprocessor_manager.py +0 -0
  143. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/reference_manager/reference_manager.py +0 -0
  144. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/responses_api/__init__.py +0 -0
  145. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/responses_api/postprocessors/code_display.py +0 -0
  146. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/responses_api/postprocessors/generated_files.py +0 -0
  147. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/responses_api/stream_handler.py +0 -0
  148. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/short_term_memory_manager/persistent_short_term_memory_manager.py +0 -0
  149. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/thinking_manager/thinking_manager.py +0 -0
  150. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/tools/__init__.py +0 -0
  151. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/tools/a2a/__init__.py +0 -0
  152. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/tools/a2a/config.py +0 -0
  153. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/tools/a2a/evaluation/__init__.py +0 -0
  154. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/tools/a2a/evaluation/_utils.py +0 -0
  155. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/tools/a2a/evaluation/config.py +0 -0
  156. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/tools/a2a/evaluation/evaluator.py +0 -0
  157. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/tools/a2a/evaluation/summarization_user_message.j2 +0 -0
  158. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/tools/a2a/manager.py +0 -0
  159. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/tools/a2a/postprocessing/__init__.py +0 -0
  160. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/tools/a2a/postprocessing/_display_utils.py +0 -0
  161. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/tools/a2a/postprocessing/_ref_utils.py +0 -0
  162. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/tools/a2a/postprocessing/config.py +0 -0
  163. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/tools/a2a/postprocessing/display.py +0 -0
  164. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/tools/a2a/postprocessing/references.py +0 -0
  165. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_display.py +0 -0
  166. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_display_utils.py +0 -0
  167. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_ref_utils.py +0 -0
  168. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/tools/a2a/prompts.py +0 -0
  169. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/tools/a2a/response_watcher/__init__.py +0 -0
  170. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/tools/a2a/response_watcher/service.py +0 -0
  171. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/tools/a2a/tool/__init__.py +0 -0
  172. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/tools/a2a/tool/_memory.py +0 -0
  173. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/tools/a2a/tool/_schema.py +0 -0
  174. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/tools/a2a/tool/config.py +0 -0
  175. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/tools/a2a/tool/service.py +0 -0
  176. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/tools/a2a/tool/test/test_service_utils.py +0 -0
  177. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/tools/agent_chunks_hanlder.py +0 -0
  178. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/tools/config.py +0 -0
  179. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/tools/experimental/__init__.py +0 -0
  180. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/tools/experimental/open_file_tool/__init__.py +0 -0
  181. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/tools/experimental/open_file_tool/config.py +0 -0
  182. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/tools/experimental/open_file_tool/runtime.py +0 -0
  183. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/tools/experimental/open_file_tool/tool.py +0 -0
  184. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/tools/factory.py +0 -0
  185. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/tools/mcp/__init__.py +0 -0
  186. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/tools/mcp/manager.py +0 -0
  187. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/tools/mcp/models.py +0 -0
  188. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/tools/mcp/tool_wrapper.py +0 -0
  189. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/tools/openai_builtin/__init__.py +0 -0
  190. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/tools/openai_builtin/base.py +0 -0
  191. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/__init__.py +0 -0
  192. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/config.py +0 -0
  193. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/postprocessors/__init__.py +0 -0
  194. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/postprocessors/code_display.py +0 -0
  195. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/postprocessors/generated_files.py +0 -0
  196. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/schemas.py +0 -0
  197. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/service.py +0 -0
  198. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/tools/openai_builtin/manager.py +0 -0
  199. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/tools/schemas.py +0 -0
  200. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/tools/test/test_mcp_manager.py +0 -0
  201. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/tools/test/test_tool_progress_reporter.py +0 -0
  202. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/tools/tool.py +0 -0
  203. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/tools/tool_manager.py +0 -0
  204. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/tools/tool_progress_reporter.py +0 -0
  205. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/tools/utils/__init__.py +0 -0
  206. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/tools/utils/source_handling/__init__.py +0 -0
  207. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/tools/utils/source_handling/schema.py +0 -0
  208. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/tools/utils/source_handling/source_formatting.py +0 -0
  209. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic/tools/utils/source_handling/tests/test_source_formatting.py +0 -0
  210. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic_table/__init__.py +0 -0
  211. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic_table/schemas.py +0 -0
  212. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/agentic_table/service.py +0 -0
  213. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/app/__init__.py +0 -0
  214. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/app/chat_event_filter_options_settings.py +0 -0
  215. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/app/dev_util.py +0 -0
  216. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/app/fast_api_factory.py +0 -0
  217. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/app/feature_flags.py +0 -0
  218. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/app/find_env_file.py +0 -0
  219. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/app/init_logging.py +0 -0
  220. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/app/init_sdk.py +0 -0
  221. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/app/performance/async_tasks.py +0 -0
  222. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/app/performance/async_wrapper.py +0 -0
  223. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/app/schemas.py +0 -0
  224. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/app/unique_settings.py +0 -0
  225. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/app/verification.py +0 -0
  226. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/app/webhook.py +0 -0
  227. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/chat/__init__.py +0 -0
  228. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/chat/cancellation.py +0 -0
  229. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/chat/constants.py +0 -0
  230. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/chat/deprecated/service.py +0 -0
  231. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/chat/functions.py +0 -0
  232. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/chat/rendering.py +0 -0
  233. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/chat/responses_api.py +0 -0
  234. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/chat/schemas.py +0 -0
  235. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/chat/service.py +0 -0
  236. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/chat/state.py +0 -0
  237. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/chat/utils.py +0 -0
  238. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/content/__init__.py +0 -0
  239. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/content/constants.py +0 -0
  240. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/content/schemas.py +0 -0
  241. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/content/service.py +0 -0
  242. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/content/smart_rules.py +0 -0
  243. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/content/utils.py +0 -0
  244. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/data_extraction/README.md +0 -0
  245. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/data_extraction/__init__.py +0 -0
  246. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/data_extraction/augmented/__init__.py +0 -0
  247. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/data_extraction/augmented/service.py +0 -0
  248. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/data_extraction/base.py +0 -0
  249. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/data_extraction/basic/__init__.py +0 -0
  250. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/data_extraction/basic/config.py +0 -0
  251. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/data_extraction/basic/prompt.py +0 -0
  252. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/data_extraction/basic/service.py +0 -0
  253. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/elicitation/__init__.py +0 -0
  254. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/elicitation/constants.py +0 -0
  255. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/elicitation/exceptions.py +0 -0
  256. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/elicitation/functions.py +0 -0
  257. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/elicitation/schemas.py +0 -0
  258. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/elicitation/service.py +0 -0
  259. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/embedding/__init__.py +0 -0
  260. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/embedding/constants.py +0 -0
  261. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/embedding/functions.py +0 -0
  262. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/embedding/schemas.py +0 -0
  263. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/embedding/service.py +0 -0
  264. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/embedding/utils.py +0 -0
  265. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/framework_utilities/__init__.py +0 -0
  266. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/framework_utilities/langchain/__init__.py +0 -0
  267. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/framework_utilities/langchain/client.py +0 -0
  268. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/framework_utilities/langchain/history.py +0 -0
  269. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/framework_utilities/openai/__init__.py +0 -0
  270. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/framework_utilities/openai/client.py +0 -0
  271. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/framework_utilities/openai/message_builder.py +0 -0
  272. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/framework_utilities/utils.py +0 -0
  273. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/language_model/__init__.py +0 -0
  274. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/language_model/_responses_api_utils.py +0 -0
  275. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/language_model/builder.py +0 -0
  276. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/language_model/constants.py +0 -0
  277. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/language_model/default_language_model.py +0 -0
  278. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/language_model/functions.py +0 -0
  279. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/language_model/infos.py +0 -0
  280. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/language_model/prompt.py +0 -0
  281. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/language_model/reference.py +0 -0
  282. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/language_model/schemas.py +0 -0
  283. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/language_model/service.py +0 -0
  284. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/language_model/stream_transform.py +0 -0
  285. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/language_model/utils.py +0 -0
  286. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/monitoring/__init__.py +0 -0
  287. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/monitoring/middleware.py +0 -0
  288. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/monitoring/registry.py +0 -0
  289. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/protocols/support.py +0 -0
  290. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/services/__init__.py +0 -0
  291. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/services/chat_service.py +0 -0
  292. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/services/factory.py +0 -0
  293. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/short_term_memory/__init__.py +0 -0
  294. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/short_term_memory/constants.py +0 -0
  295. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/short_term_memory/functions.py +0 -0
  296. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/short_term_memory/schemas.py +0 -0
  297. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/short_term_memory/service.py +0 -0
  298. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/smart_rules/__init__.py +0 -0
  299. {unique_toolkit-1.71.3 → unique_toolkit-1.72.0}/unique_toolkit/smart_rules/compile.py +0 -0
  300. {unique_toolkit-1.71.3 → unique_toolkit-1.72.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.71.3
3
+ Version: 1.72.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>
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "unique_toolkit"
3
- version = "1.71.3"
3
+ version = "1.72.0"
4
4
  description = ""
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.12"
@@ -876,17 +876,17 @@ def get_content_info(
876
876
  skip: int | None = None,
877
877
  take: int | None = None,
878
878
  file_path: str | None = None,
879
- ):
879
+ ) -> PaginatedContentInfos:
880
880
  """Gets the info of a content."""
881
881
 
882
882
  get_info_params = unique_sdk.Content.ContentInfoParams(
883
883
  metadataFilter=metadata_filter or None, # Dict cannot be empty
884
884
  )
885
- if skip:
885
+ if skip is not None:
886
886
  get_info_params["skip"] = skip
887
- if take:
887
+ if take is not None:
888
888
  get_info_params["take"] = take
889
- if file_path:
889
+ if file_path is not None:
890
890
  get_info_params["filePath"] = file_path
891
891
 
892
892
  content_info = unique_sdk.Content.get_infos(
@@ -897,6 +897,35 @@ def get_content_info(
897
897
  )
898
898
 
899
899
 
900
+ async def get_content_info_async(
901
+ user_id: str,
902
+ company_id: str,
903
+ *,
904
+ metadata_filter: dict[str, Any] | None = None,
905
+ skip: int | None = None,
906
+ take: int | None = None,
907
+ file_path: str | None = None,
908
+ ) -> PaginatedContentInfos:
909
+ """Gets the info of a content."""
910
+
911
+ get_info_params = unique_sdk.Content.ContentInfoParams(
912
+ metadataFilter=metadata_filter or None, # Dict cannot be empty
913
+ )
914
+ if skip is not None:
915
+ get_info_params["skip"] = skip
916
+ if take is not None:
917
+ get_info_params["take"] = take
918
+ if file_path is not None:
919
+ get_info_params["filePath"] = file_path
920
+
921
+ content_info = unique_sdk.Content.get_infos_async(
922
+ user_id=user_id, company_id=company_id, **get_info_params
923
+ )
924
+ return PaginatedContentInfos.model_validate(
925
+ await content_info, by_alias=True, by_name=True
926
+ )
927
+
928
+
900
929
  def get_folder_info(user_id: str, company_id: str, *, scope_id: str) -> FolderInfo:
901
930
  info = unique_sdk.Folder.get_info(
902
931
  user_id=user_id, company_id=company_id, scopeId=scope_id
@@ -905,6 +934,16 @@ def get_folder_info(user_id: str, company_id: str, *, scope_id: str) -> FolderIn
905
934
  return FolderInfo.model_validate(info, by_alias=True, by_name=True)
906
935
 
907
936
 
937
+ async def get_folder_info_async(
938
+ user_id: str, company_id: str, *, scope_id: str
939
+ ) -> FolderInfo:
940
+ info = unique_sdk.Folder.get_info_async(
941
+ user_id=user_id, company_id=company_id, scopeId=scope_id
942
+ )
943
+
944
+ return FolderInfo.model_validate(await info, by_alias=True, by_name=True)
945
+
946
+
908
947
  def update_content(
909
948
  user_id: str,
910
949
  company_id: str,
@@ -23,7 +23,9 @@ from unique_toolkit.content.functions import (
23
23
  download_content_to_bytes_async,
24
24
  download_content_to_file_by_id,
25
25
  get_content_info,
26
+ get_content_info_async,
26
27
  get_folder_info,
28
+ get_folder_info_async,
27
29
  search_content_chunks,
28
30
  search_content_chunks_async,
29
31
  search_contents,
@@ -685,6 +687,80 @@ class KnowledgeBaseService:
685
687
  file_path=file_path,
686
688
  )
687
689
 
690
+ async def get_paginated_content_infos_async(
691
+ self,
692
+ *,
693
+ metadata_filter: dict[str, Any] | None = None,
694
+ skip: int | None = None,
695
+ take: int | None = None,
696
+ file_path: str | None = None,
697
+ ) -> PaginatedContentInfos:
698
+ return await get_content_info_async(
699
+ user_id=self._user_id,
700
+ company_id=self._company_id,
701
+ metadata_filter=metadata_filter,
702
+ skip=skip,
703
+ take=take,
704
+ file_path=file_path,
705
+ )
706
+
707
+ async def get_content_infos_async(
708
+ self,
709
+ *,
710
+ metadata_filter: dict[str, Any] | None = None,
711
+ step_size: int = 100,
712
+ max_concurrent_requests: int = 10,
713
+ ) -> list[ContentInfo]:
714
+ """
715
+ Fetches all content infos from the knowledge base using parallel pagination.
716
+ The API limits responses to 100 items per request, so this method fetches
717
+ the total count first, then retrieves all pages concurrently (bounded by
718
+ ``max_concurrent_requests`` to avoid rate limiting or connection exhaustion).
719
+
720
+ Args:
721
+ metadata_filter (dict[str, Any] | None): The metadata filter to use. Defaults to None.
722
+ step_size (int): Number of items per page. Defaults to 100.
723
+ max_concurrent_requests (int): Maximum number of concurrent API calls.
724
+ Defaults to 10.
725
+
726
+ Returns:
727
+ list[ContentInfo]: All content infos visible to the user.
728
+ """
729
+
730
+ info_for_count_of_total_content = await self.get_paginated_content_infos_async(
731
+ metadata_filter=metadata_filter,
732
+ take=1,
733
+ )
734
+
735
+ total_count = info_for_count_of_total_content.total_count
736
+
737
+ semaphore = asyncio.Semaphore(max_concurrent_requests)
738
+
739
+ async def _fetch_page(skip: int) -> PaginatedContentInfos:
740
+ async with semaphore:
741
+ return await self.get_paginated_content_infos_async(
742
+ metadata_filter=metadata_filter,
743
+ skip=skip,
744
+ take=step_size,
745
+ )
746
+
747
+ results: list[PaginatedContentInfos | BaseException] = await asyncio.gather(
748
+ *[_fetch_page(i) for i in range(0, total_count, step_size)],
749
+ return_exceptions=True,
750
+ )
751
+
752
+ # Log any exceptions that occurred during parallel fetching
753
+ for result in results:
754
+ if isinstance(result, BaseException):
755
+ _LOGGER.error("Error fetching paginated content infos", exc_info=result)
756
+
757
+ return [
758
+ content_info
759
+ for result in results
760
+ if not isinstance(result, BaseException)
761
+ for content_info in result.content_infos
762
+ ]
763
+
688
764
  def get_file_names_in_folder(self, *, scope_id: str) -> list[str]:
689
765
  """
690
766
  Get the list of file names in a knowledge base folder
@@ -717,71 +793,132 @@ class KnowledgeBaseService:
717
793
  scope_id=scope_id,
718
794
  )
719
795
 
720
- def _resolve_visible_file_tree(self, content_infos: list[ContentInfo]) -> list[str]:
721
- # collect all scope ids
722
- folder_id_paths: set[str] = set()
723
- known_folder_paths: set[str] = set()
724
- for content_info in content_infos:
725
- if (
726
- content_info.metadata
727
- and content_info.metadata.get(r"{FullPath}") is not None
728
- ):
729
- known_folder_paths.add(str(content_info.metadata.get(r"{FullPath}")))
730
- continue
796
+ async def get_folder_info_async(
797
+ self,
798
+ *,
799
+ scope_id: str,
800
+ ) -> FolderInfo:
801
+ return await get_folder_info_async(
802
+ user_id=self._user_id,
803
+ company_id=self._company_id,
804
+ scope_id=scope_id,
805
+ )
731
806
 
807
+ # File Tree Resolution
808
+ # ------------------------------------------------------------------------------------------------
809
+
810
+ @staticmethod
811
+ def extract_scope_ids(content_infos: list[ContentInfo]) -> set[str]:
812
+ """Extracts all unique scope IDs from the ``folderIdPath`` metadata field.
813
+
814
+ Args:
815
+ content_infos: The content infos to extract scope IDs from.
816
+
817
+ Returns:
818
+ set[str]: All unique scope IDs found across content infos.
819
+ """
820
+ scope_ids: set[str] = set()
821
+ for content_info in content_infos:
732
822
  if (
733
823
  content_info.metadata
734
- and content_info.metadata.get("folderIdPath") is not None
824
+ and (folder_id_path := content_info.metadata.get("folderIdPath"))
825
+ is not None
826
+ and isinstance(folder_id_path, str)
735
827
  ):
736
- folder_id_paths.add(str(content_info.metadata.get("folderIdPath")))
828
+ scope_ids.update(
829
+ sid
830
+ for sid in folder_id_path.replace("uniquepathid://", "").split("/")
831
+ if sid
832
+ )
833
+ return scope_ids
737
834
 
738
- scope_ids: set[str] = set()
739
- for fp in folder_id_paths:
740
- scope_ids_list = set(fp.replace("uniquepathid://", "").split("/"))
741
- scope_ids.update(scope_ids_list)
835
+ async def _translate_scope_id_async(self, scope_id: str) -> str | None:
836
+ """Resolve a single scope ID to its folder name.
742
837
 
743
- scope_id_to_folder_name: dict[str, str] = {}
744
- for scope_id in scope_ids:
745
- folder_info = self.get_folder_info(
746
- scope_id=scope_id,
838
+ Returns the folder name, or ``None`` if the lookup fails.
839
+ """
840
+ try:
841
+ folder_info = await self.get_folder_info_async(scope_id=scope_id)
842
+ return folder_info.name
843
+ except Exception as e:
844
+ _LOGGER.warning(
845
+ f"Could not resolve folder for scope_id {scope_id}", exc_info=e
747
846
  )
748
- scope_id_to_folder_name[scope_id] = folder_info.name
847
+ return None
749
848
 
750
- folder_paths: set[str] = set()
751
- for folder_id_path in folder_id_paths:
752
- scope_ids_list = folder_id_path.replace("uniquepathid://", "").split("/")
849
+ async def _translate_scope_ids_async(
850
+ self,
851
+ scope_ids: set[str],
852
+ *,
853
+ max_concurrent_requests: int = 25,
854
+ ) -> dict[str, str]:
855
+ """Translate a set of scope IDs to folder names concurrently.
753
856
 
754
- if all(scope_id in scope_id_to_folder_name for scope_id in scope_ids_list):
755
- folder_path = [
756
- scope_id_to_folder_name[scope_id] for scope_id in scope_ids_list
757
- ]
758
- folder_paths.add("/".join(folder_path))
857
+ Scope IDs that cannot be resolved are silently omitted from the result.
759
858
 
760
- return [
761
- p if p.startswith("/") else f"/{p}"
762
- for p in folder_paths.union(known_folder_paths)
763
- ]
859
+ Args:
860
+ scope_ids: The scope IDs to translate.
861
+ max_concurrent_requests: Maximum number of concurrent API calls.
862
+ Defaults to 25.
764
863
 
765
- def resolve_visible_file_tree(
766
- self, *, metadata_filter: dict[str, Any] | None = None
767
- ) -> list[str]:
864
+ Returns:
865
+ dict[str, str]: Mapping from scope ID to folder name.
768
866
  """
769
- Resolves the visible file tree for the knowledge base for the current user.
867
+ scope_id_list = list(scope_ids)
868
+ semaphore = asyncio.Semaphore(max_concurrent_requests)
770
869
 
771
- Args:
772
- metadata_filter (dict[str, Any] | None): The metadata filter to use. Defaults to None.
870
+ async def _resolve(sid: str) -> str | None:
871
+ async with semaphore:
872
+ return await self._translate_scope_id_async(sid)
773
873
 
774
- Returns:
775
- list[str]: The visible file tree.
874
+ results = await asyncio.gather(*[_resolve(sid) for sid in scope_id_list])
875
+ return {
876
+ sid: name for sid, name in zip(scope_id_list, results) if name is not None
877
+ }
776
878
 
879
+ async def resolve_visible_file_paths_async(
880
+ self,
881
+ *,
882
+ metadata_filter: dict[str, Any] | None = None,
883
+ ) -> list[tuple[ContentInfo, list[str]]]:
884
+ """Resolves file paths visible to the current user asynchronously.
777
885
 
886
+ Returns each content item paired with its resolved file path segments.
778
887
 
888
+ Args:
889
+ metadata_filter: Optional metadata filter to narrow the content scope.
890
+
891
+ Returns:
892
+ list[tuple[ContentInfo, list[str]]]: Each tuple is
893
+ ``(content_info, [folder1, folder2, ..., filename])``.
779
894
  """
780
- info = self.get_paginated_content_infos(
781
- metadata_filter=metadata_filter,
895
+ content_infos = await self.get_content_infos_async(
896
+ metadata_filter=metadata_filter
782
897
  )
783
898
 
784
- return self._resolve_visible_file_tree(content_infos=info.content_infos)
899
+ scope_ids = self.extract_scope_ids(content_infos)
900
+ scope_id_to_folder_name = await self._translate_scope_ids_async(scope_ids)
901
+
902
+ resolved: list[tuple[ContentInfo, list[str]]] = []
903
+ for content_info in content_infos:
904
+ if (
905
+ content_info.metadata
906
+ and (folder_id_path := content_info.metadata.get("folderIdPath"))
907
+ is not None
908
+ and isinstance(folder_id_path, str)
909
+ ):
910
+ file_path = [
911
+ scope_id_to_folder_name.get(sid, sid)
912
+ for sid in folder_id_path.replace("uniquepathid://", "").split("/")
913
+ if sid
914
+ ]
915
+ else:
916
+ file_path = ["_no_folder_path"]
917
+
918
+ file_path.append(content_info.key)
919
+ resolved.append((content_info, file_path))
920
+
921
+ return resolved
785
922
 
786
923
  def _pop_forbidden_metadata_keys(self, metadata: dict[str, Any]) -> dict[str, Any]:
787
924
  forbidden_keys = [