unique_toolkit 2026.42.0__tar.gz → 2026.42.0.dev0__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 (432) hide show
  1. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/PKG-INFO +2 -2
  2. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/pyproject.toml +2 -2
  3. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/history_manager/history_construction_with_contents.py +20 -45
  4. unique_toolkit-2026.42.0.dev0/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/builder/_container.py +50 -0
  5. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/builder/_files.py +2 -29
  6. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/tool/config.py +3 -10
  7. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic_table/service.py +1 -142
  8. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/app/schemas.py +0 -11
  9. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/content/schemas.py +0 -29
  10. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/content/service.py +0 -8
  11. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/language_model/infos.py +17 -267
  12. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/language_model/schemas.py +4 -5
  13. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/language_model/settings.py +0 -1
  14. unique_toolkit-2026.42.0/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/builder/_container.py +0 -121
  15. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/README.md +0 -0
  16. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/__init__.py +0 -0
  17. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/_common/__init__.py +0 -0
  18. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/_common/_base_service.py +0 -0
  19. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/_common/_time_utils.py +0 -0
  20. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/_common/api_calling/human_verification_manager.py +0 -0
  21. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/_common/base_model_type_attribute.py +0 -0
  22. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/_common/chunk_relevancy_sorter/config.py +0 -0
  23. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/_common/chunk_relevancy_sorter/exception.py +0 -0
  24. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/_common/chunk_relevancy_sorter/schemas.py +0 -0
  25. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/_common/chunk_relevancy_sorter/service.py +0 -0
  26. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/_common/chunk_relevancy_sorter/tests/test_service.py +0 -0
  27. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/_common/config_checker/README.md +0 -0
  28. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/_common/config_checker/__init__.py +0 -0
  29. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/_common/config_checker/__main__.py +0 -0
  30. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/_common/config_checker/cli.py +0 -0
  31. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/_common/config_checker/differ.py +0 -0
  32. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/_common/config_checker/exporter.py +0 -0
  33. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/_common/config_checker/models.py +0 -0
  34. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/_common/config_checker/registry.py +0 -0
  35. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/_common/config_checker/validator.py +0 -0
  36. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/_common/default_language_model.py +0 -0
  37. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/_common/docx_generator/__init__.py +0 -0
  38. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/_common/docx_generator/config.py +0 -0
  39. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/_common/docx_generator/pandoc_converter.py +0 -0
  40. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/_common/docx_generator/schemas.py +0 -0
  41. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/_common/docx_generator/service.py +0 -0
  42. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/_common/docx_generator/template/Doc Template.docx +0 -0
  43. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/_common/endpoint_builder.py +0 -0
  44. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/_common/endpoint_requestor.py +0 -0
  45. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/_common/event_bus.py +0 -0
  46. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/_common/exception.py +0 -0
  47. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/_common/execution.py +0 -0
  48. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/_common/experimental/endpoint_builder.py +0 -0
  49. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/_common/experimental/endpoint_requestor.py +0 -0
  50. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/_common/experimental/write_up_agent/README.md +0 -0
  51. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/_common/experimental/write_up_agent/__init__.py +0 -0
  52. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/_common/experimental/write_up_agent/agent.py +0 -0
  53. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/_common/experimental/write_up_agent/config.py +0 -0
  54. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/_common/experimental/write_up_agent/examples/data.csv +0 -0
  55. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/_common/experimental/write_up_agent/examples/example_usage.py +0 -0
  56. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/_common/experimental/write_up_agent/schemas.py +0 -0
  57. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/_common/experimental/write_up_agent/services/__init__.py +0 -0
  58. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/__init__.py +0 -0
  59. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/exceptions.py +0 -0
  60. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/service.py +0 -0
  61. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/utils.py +0 -0
  62. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/__init__.py +0 -0
  63. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/config.py +0 -0
  64. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/exceptions.py +0 -0
  65. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/prompts/config.py +0 -0
  66. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/prompts/system_prompt.j2 +0 -0
  67. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/prompts/user_prompt.j2 +0 -0
  68. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/service.py +0 -0
  69. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/__init__.py +0 -0
  70. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/default_template.j2 +0 -0
  71. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/exceptions.py +0 -0
  72. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/service.py +0 -0
  73. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/utils.py +0 -0
  74. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/_common/experimental/write_up_agent/utils.py +0 -0
  75. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/_common/feature_flags/schema.py +0 -0
  76. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/_common/metadata_filter_scope.py +0 -0
  77. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/_common/pydantic/rjsf_tags.py +0 -0
  78. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/_common/pydantic_helpers.py +0 -0
  79. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/_common/referencing.py +0 -0
  80. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/_common/string_utilities.py +0 -0
  81. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/_common/tests/test_referencing.py +0 -0
  82. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/_common/tests/test_string_utilities.py +0 -0
  83. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/_common/token/__init__.py +0 -0
  84. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/_common/token/image_token_counting.py +0 -0
  85. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/_common/token/token_counting.py +0 -0
  86. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/_common/token/tokenizers/deepseek/tokenizer.json +0 -0
  87. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/_common/token/tokenizers/qwen/tokenizer.json +0 -0
  88. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/_common/utils/__init__.py +0 -0
  89. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/_common/utils/files.py +0 -0
  90. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/_common/utils/image/encode.py +0 -0
  91. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/_common/utils/jinja/helpers.py +0 -0
  92. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/_common/utils/jinja/render.py +0 -0
  93. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/_common/utils/jinja/schema.py +0 -0
  94. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/_common/utils/jinja/utils.py +0 -0
  95. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/_common/utils/structured_output/__init__.py +0 -0
  96. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/_common/utils/structured_output/schema.py +0 -0
  97. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/_common/utils/write_configuration.py +0 -0
  98. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/_common/validate_required_values.py +0 -0
  99. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/_common/validators.py +0 -0
  100. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/__init__.py +0 -0
  101. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/debug_info_manager/debug_info_manager.py +0 -0
  102. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/debug_info_manager/test/test_debug_info_manager.py +0 -0
  103. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/evaluation/config.py +0 -0
  104. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/evaluation/context_relevancy/prompts/__init__.py +0 -0
  105. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/evaluation/context_relevancy/prompts/system_prompt.j2 +0 -0
  106. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/evaluation/context_relevancy/prompts/user_prompt.j2 +0 -0
  107. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/evaluation/context_relevancy/schema.py +0 -0
  108. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/evaluation/context_relevancy/service.py +0 -0
  109. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/evaluation/evaluation_manager.py +0 -0
  110. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/evaluation/exception.py +0 -0
  111. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/evaluation/hallucination/constants.py +0 -0
  112. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/evaluation/hallucination/hallucination_evaluation.py +0 -0
  113. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/evaluation/hallucination/prompts/__init__.py +0 -0
  114. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/evaluation/hallucination/prompts/system_prompt.j2 +0 -0
  115. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/evaluation/hallucination/prompts/user_prompt.j2 +0 -0
  116. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/evaluation/hallucination/service.py +0 -0
  117. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/evaluation/hallucination/utils.py +0 -0
  118. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/evaluation/output_parser.py +0 -0
  119. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/evaluation/schemas.py +0 -0
  120. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/evaluation/tests/fixtures.py +0 -0
  121. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/evaluation/tests/test_config.py +0 -0
  122. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/evaluation/tests/test_context_relevancy_service.py +0 -0
  123. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/evaluation/tests/test_hallucination_constants.py +0 -0
  124. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/evaluation/tests/test_hallucination_external_context.py +0 -0
  125. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/evaluation/tests/test_hallucination_utils.py +0 -0
  126. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/evaluation/tests/test_output_parser.py +0 -0
  127. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/evaluation/tests/test_prompt_loaders.py +0 -0
  128. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/evaluation/utils.py +0 -0
  129. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/feature_flags/__init__.py +0 -0
  130. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/feature_flags/feature_flags.py +0 -0
  131. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/history_manager/history_manager.py +0 -0
  132. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/history_manager/loop_token_reducer.py +0 -0
  133. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/history_manager/settings.py +0 -0
  134. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/history_manager/utils.py +0 -0
  135. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/loop_runner/__init__.py +0 -0
  136. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/loop_runner/_iteration_handler_utils.py +0 -0
  137. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/loop_runner/_responses_iteration_handler_utils.py +0 -0
  138. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/loop_runner/_responses_stream_handler_utils.py +0 -0
  139. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/loop_runner/_stream_handler_utils.py +0 -0
  140. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/loop_runner/base.py +0 -0
  141. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/loop_runner/middleware/__init__.py +0 -0
  142. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/loop_runner/middleware/planning/__init__.py +0 -0
  143. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/loop_runner/middleware/planning/planning.py +0 -0
  144. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/loop_runner/middleware/planning/schema.py +0 -0
  145. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/loop_runner/runners/__init__.py +0 -0
  146. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/loop_runner/runners/basic.py +0 -0
  147. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/loop_runner/runners/mistral/__init__.py +0 -0
  148. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/loop_runner/runners/mistral/mistral_runner.py +0 -0
  149. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/loop_runner/runners/prompt_forced_tool/__init__.py +0 -0
  150. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/loop_runner/runners/prompt_forced_tool/helpers.py +0 -0
  151. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/loop_runner/runners/prompt_forced_tool/runner.py +0 -0
  152. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/loop_runner/runners/qwen/__init__.py +0 -0
  153. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/loop_runner/runners/qwen/helpers.py +0 -0
  154. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/loop_runner/runners/qwen/qwen_runner.py +0 -0
  155. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/message_log_manager/__init__.py +0 -0
  156. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/message_log_manager/service.py +0 -0
  157. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/message_log_order.py +0 -0
  158. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/postprocessor/postprocessor_manager.py +0 -0
  159. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/reference_manager/reference_manager.py +0 -0
  160. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/reference_manager/tests/test_external_context.py +0 -0
  161. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/responses_api/__init__.py +0 -0
  162. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/responses_api/postprocessors/code_display.py +0 -0
  163. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/responses_api/postprocessors/generated_files.py +0 -0
  164. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/responses_api/stream_handler.py +0 -0
  165. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/short_term_memory_manager/persistent_short_term_memory_manager.py +0 -0
  166. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/thinking_manager/thinking_manager.py +0 -0
  167. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/tools/__init__.py +0 -0
  168. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/tools/a2a/__init__.py +0 -0
  169. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/tools/a2a/config.py +0 -0
  170. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/tools/a2a/evaluation/__init__.py +0 -0
  171. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/tools/a2a/evaluation/_utils.py +0 -0
  172. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/tools/a2a/evaluation/config.py +0 -0
  173. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/tools/a2a/evaluation/evaluator.py +0 -0
  174. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/tools/a2a/evaluation/summarization_user_message.j2 +0 -0
  175. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/tools/a2a/manager.py +0 -0
  176. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/tools/a2a/postprocessing/__init__.py +0 -0
  177. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/tools/a2a/postprocessing/_display_utils.py +0 -0
  178. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/tools/a2a/postprocessing/_ref_utils.py +0 -0
  179. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/tools/a2a/postprocessing/config.py +0 -0
  180. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/tools/a2a/postprocessing/display.py +0 -0
  181. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/tools/a2a/postprocessing/references.py +0 -0
  182. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_display.py +0 -0
  183. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_display_utils.py +0 -0
  184. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_ref_utils.py +0 -0
  185. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_references.py +0 -0
  186. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/tools/a2a/prompts.py +0 -0
  187. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/tools/a2a/response_watcher/__init__.py +0 -0
  188. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/tools/a2a/response_watcher/service.py +0 -0
  189. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/tools/a2a/tool/__init__.py +0 -0
  190. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/tools/a2a/tool/_memory.py +0 -0
  191. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/tools/a2a/tool/_schema.py +0 -0
  192. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/tools/a2a/tool/config.py +0 -0
  193. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/tools/a2a/tool/service.py +0 -0
  194. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/tools/a2a/tool/test/test_service_utils.py +0 -0
  195. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/tools/agent_chunks_hanlder.py +0 -0
  196. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/tools/config.py +0 -0
  197. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/tools/experimental/__init__.py +0 -0
  198. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/tools/experimental/ask_user_tool/__init__.py +0 -0
  199. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/tools/experimental/ask_user_tool/config.py +0 -0
  200. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/tools/experimental/ask_user_tool/tool.py +0 -0
  201. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/tools/experimental/open_file_tool/__init__.py +0 -0
  202. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/tools/experimental/open_file_tool/config.py +0 -0
  203. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/tools/experimental/open_file_tool/runtime.py +0 -0
  204. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/tools/experimental/open_file_tool/tool.py +0 -0
  205. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/tools/experimental/retrieve_search_scope_tool/__init__.py +0 -0
  206. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/tools/experimental/retrieve_search_scope_tool/config.py +0 -0
  207. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/tools/experimental/retrieve_search_scope_tool/tool.py +0 -0
  208. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/tools/experimental/todo/__init__.py +0 -0
  209. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/tools/experimental/todo/config.py +0 -0
  210. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/tools/experimental/todo/prompts/__init__.py +0 -0
  211. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/tools/experimental/todo/prompts/execution_reminder.j2 +0 -0
  212. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/tools/experimental/todo/prompts/system_prompt.j2 +0 -0
  213. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/tools/experimental/todo/prompts/tool_description.j2 +0 -0
  214. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/tools/experimental/todo/prompts/verification_nudge.j2 +0 -0
  215. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/tools/experimental/todo/schemas.py +0 -0
  216. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/tools/experimental/todo/service.py +0 -0
  217. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/tools/factory.py +0 -0
  218. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/tools/mcp/__init__.py +0 -0
  219. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/tools/mcp/manager.py +0 -0
  220. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/tools/mcp/models.py +0 -0
  221. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/tools/mcp/tool_wrapper.py +0 -0
  222. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/tools/names.py +0 -0
  223. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/tools/openai_builtin/__init__.py +0 -0
  224. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/tools/openai_builtin/base.py +0 -0
  225. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/__init__.py +0 -0
  226. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/activator/__init__.py +0 -0
  227. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/activator/config.py +0 -0
  228. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/activator/service.py +0 -0
  229. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/builder/__init__.py +0 -0
  230. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/builder/_memory.py +0 -0
  231. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/builder/builder.py +0 -0
  232. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/config.py +0 -0
  233. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/postprocessors/__init__.py +0 -0
  234. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/postprocessors/artifacts.py +0 -0
  235. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/postprocessors/code_display.py +0 -0
  236. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/postprocessors/generated_files.py +0 -0
  237. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/postprocessors/office_preview.py +0 -0
  238. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/schemas.py +0 -0
  239. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/tool/__init__.py +0 -0
  240. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/tool/service.py +0 -0
  241. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/tools/openai_builtin/manager.py +0 -0
  242. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/tools/run_context.py +0 -0
  243. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/tools/schemas.py +0 -0
  244. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/tools/test/test_mcp_manager.py +0 -0
  245. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/tools/test/test_tool_progress_reporter.py +0 -0
  246. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/tools/tool.py +0 -0
  247. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/tools/tool_manager.py +0 -0
  248. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/tools/tool_progress_reporter.py +0 -0
  249. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/tools/utils/__init__.py +0 -0
  250. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/tools/utils/source_handling/__init__.py +0 -0
  251. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/tools/utils/source_handling/schema.py +0 -0
  252. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/tools/utils/source_handling/source_formatting.py +0 -0
  253. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic/tools/utils/source_handling/tests/test_source_formatting.py +0 -0
  254. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic_table/__init__.py +0 -0
  255. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic_table/schemas.py +0 -0
  256. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/agentic_table/synthetic_chat_event.py +0 -0
  257. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/app/__init__.py +0 -0
  258. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/app/chat_event_filter_options_settings.py +0 -0
  259. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/app/dev_util.py +0 -0
  260. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/app/fast_api_factory.py +0 -0
  261. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/app/feature_flags.py +0 -0
  262. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/app/find_env_file.py +0 -0
  263. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/app/init_logging.py +0 -0
  264. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/app/init_sdk.py +0 -0
  265. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/app/performance/async_tasks.py +0 -0
  266. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/app/performance/async_wrapper.py +0 -0
  267. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/app/unique_settings.py +0 -0
  268. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/app/verification.py +0 -0
  269. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/app/webhook.py +0 -0
  270. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/chat/__init__.py +0 -0
  271. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/chat/cancellation.py +0 -0
  272. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/chat/constants.py +0 -0
  273. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/chat/deprecated/__init__.py +0 -0
  274. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/chat/deprecated/service.py +0 -0
  275. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/chat/functions.py +0 -0
  276. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/chat/rendering.py +0 -0
  277. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/chat/responses_api.py +0 -0
  278. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/chat/schemas.py +0 -0
  279. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/chat/service.py +0 -0
  280. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/chat/state.py +0 -0
  281. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/chat/utils.py +0 -0
  282. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/content/__init__.py +0 -0
  283. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/content/constants.py +0 -0
  284. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/content/functions.py +0 -0
  285. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/content/smart_rules.py +0 -0
  286. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/content/utils.py +0 -0
  287. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/data_extraction/README.md +0 -0
  288. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/data_extraction/__init__.py +0 -0
  289. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/data_extraction/augmented/__init__.py +0 -0
  290. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/data_extraction/augmented/service.py +0 -0
  291. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/data_extraction/base.py +0 -0
  292. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/data_extraction/basic/__init__.py +0 -0
  293. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/data_extraction/basic/config.py +0 -0
  294. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/data_extraction/basic/prompt.py +0 -0
  295. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/data_extraction/basic/service.py +0 -0
  296. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/elicitation/__init__.py +0 -0
  297. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/elicitation/constants.py +0 -0
  298. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/elicitation/exceptions.py +0 -0
  299. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/elicitation/functions.py +0 -0
  300. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/elicitation/schemas.py +0 -0
  301. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/elicitation/service.py +0 -0
  302. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/embedding/__init__.py +0 -0
  303. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/embedding/constants.py +0 -0
  304. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/embedding/functions.py +0 -0
  305. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/embedding/schemas.py +0 -0
  306. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/embedding/service.py +0 -0
  307. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/embedding/utils.py +0 -0
  308. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/experimental/README.md +0 -0
  309. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/experimental/__init__.py +0 -0
  310. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/experimental/_internal/__init__.py +0 -0
  311. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/experimental/_internal/streaming/__init__.py +0 -0
  312. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/experimental/_internal/streaming/common.py +0 -0
  313. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/experimental/_internal/streaming/pattern_replacer.py +0 -0
  314. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/experimental/components/__init__.py +0 -0
  315. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/experimental/components/_base.py +0 -0
  316. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/experimental/components/content_tree/__init__.py +0 -0
  317. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/experimental/components/content_tree/functions.py +0 -0
  318. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/experimental/components/content_tree/schemas.py +0 -0
  319. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/experimental/components/content_tree/service.py +0 -0
  320. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/experimental/components/internal_search/__init__.py +0 -0
  321. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/experimental/components/internal_search/base/__init__.py +0 -0
  322. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/experimental/components/internal_search/base/config.py +0 -0
  323. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/experimental/components/internal_search/base/schemas.py +0 -0
  324. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/experimental/components/internal_search/base/service.py +0 -0
  325. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/experimental/components/internal_search/base/utils.py +0 -0
  326. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/experimental/components/internal_search/chat/__init__.py +0 -0
  327. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/experimental/components/internal_search/chat/config.py +0 -0
  328. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/experimental/components/internal_search/chat/schemas.py +0 -0
  329. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/experimental/components/internal_search/chat/service.py +0 -0
  330. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/experimental/components/internal_search/knowledge_base/__init__.py +0 -0
  331. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/experimental/components/internal_search/knowledge_base/config.py +0 -0
  332. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/experimental/components/internal_search/knowledge_base/schemas.py +0 -0
  333. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/experimental/components/internal_search/knowledge_base/service.py +0 -0
  334. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/experimental/components/internal_search/post_processing/__init__.py +0 -0
  335. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/experimental/components/internal_search/post_processing/config.py +0 -0
  336. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/experimental/components/internal_search/post_processing/service.py +0 -0
  337. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/experimental/content_tree/__init__.py +0 -0
  338. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/experimental/identity/__init__.py +0 -0
  339. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/experimental/integrations/__init__.py +0 -0
  340. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/experimental/integrations/openai/__init__.py +0 -0
  341. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/experimental/integrations/openai/streaming/__init__.py +0 -0
  342. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/__init__.py +0 -0
  343. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/_async_bridge.py +0 -0
  344. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/_model_params.py +0 -0
  345. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/chat_completions/__init__.py +0 -0
  346. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/chat_completions/complete_with_references.py +0 -0
  347. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/chat_completions/stream_event_router.py +0 -0
  348. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/chat_completions/text_event_handler.py +0 -0
  349. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/chat_completions/tool_call_event_handler.py +0 -0
  350. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/events.py +0 -0
  351. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/protocols/__init__.py +0 -0
  352. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/protocols/chat_completions.py +0 -0
  353. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/protocols/responses.py +0 -0
  354. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/responses/__init__.py +0 -0
  355. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/responses/code_interpreter_event_handler.py +0 -0
  356. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/responses/complete_with_references.py +0 -0
  357. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/responses/completed_event_handler.py +0 -0
  358. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/responses/stream_event_router.py +0 -0
  359. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/responses/text_delta_event_handler.py +0 -0
  360. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/responses/tool_call_event_handler.py +0 -0
  361. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/subscribers/__init__.py +0 -0
  362. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/subscribers/message_persister.py +0 -0
  363. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/subscribers/progress_log_persister.py +0 -0
  364. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/experimental/resources/__init__.py +0 -0
  365. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/experimental/resources/content_folder/__init__.py +0 -0
  366. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/experimental/resources/content_folder/functions.py +0 -0
  367. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/experimental/resources/content_folder/schemas.py +0 -0
  368. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/experimental/resources/content_folder/service.py +0 -0
  369. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/experimental/resources/facades/__init__.py +0 -0
  370. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/experimental/resources/facades/identity/__init__.py +0 -0
  371. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/experimental/resources/facades/identity/service.py +0 -0
  372. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/experimental/resources/feature_flags/README.md +0 -0
  373. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/experimental/resources/feature_flags/__init__.py +0 -0
  374. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/experimental/resources/feature_flags/_graphql_client.py +0 -0
  375. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/experimental/resources/feature_flags/_ttl_cache.py +0 -0
  376. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/experimental/resources/feature_flags/client.py +0 -0
  377. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/experimental/resources/feature_flags/schemas.py +0 -0
  378. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/experimental/resources/feature_flags/settings.py +0 -0
  379. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/experimental/resources/group/__init__.py +0 -0
  380. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/experimental/resources/group/functions.py +0 -0
  381. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/experimental/resources/group/schemas.py +0 -0
  382. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/experimental/resources/group/service.py +0 -0
  383. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/experimental/resources/scheduled_task/__init__.py +0 -0
  384. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/experimental/resources/scheduled_task/cron.py +0 -0
  385. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/experimental/resources/scheduled_task/functions.py +0 -0
  386. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/experimental/resources/scheduled_task/schemas.py +0 -0
  387. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/experimental/resources/scheduled_task/service.py +0 -0
  388. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/experimental/resources/user/__init__.py +0 -0
  389. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/experimental/resources/user/functions.py +0 -0
  390. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/experimental/resources/user/schemas.py +0 -0
  391. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/experimental/resources/user/service.py +0 -0
  392. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/experimental/testing/__init__.py +0 -0
  393. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/framework_utilities/__init__.py +0 -0
  394. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/framework_utilities/langchain/__init__.py +0 -0
  395. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/framework_utilities/langchain/client.py +0 -0
  396. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/framework_utilities/langchain/history.py +0 -0
  397. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/framework_utilities/openai/__init__.py +0 -0
  398. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/framework_utilities/openai/client.py +0 -0
  399. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/framework_utilities/openai/message_builder.py +0 -0
  400. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/framework_utilities/utils.py +0 -0
  401. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/language_model/__init__.py +0 -0
  402. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/language_model/_responses_api_utils.py +0 -0
  403. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/language_model/builder.py +0 -0
  404. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/language_model/constants.py +0 -0
  405. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/language_model/default_language_model.py +0 -0
  406. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/language_model/functions.py +0 -0
  407. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/language_model/invocation_stats.py +0 -0
  408. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/language_model/model_costs.py +0 -0
  409. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/language_model/prompt.py +0 -0
  410. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/language_model/reference.py +0 -0
  411. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/language_model/service.py +0 -0
  412. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/language_model/stream_transform.py +0 -0
  413. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/language_model/utils.py +0 -0
  414. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/monitoring/__init__.py +0 -0
  415. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/monitoring/gunicorn.py +0 -0
  416. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/monitoring/memory.py +0 -0
  417. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/monitoring/middleware.py +0 -0
  418. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/monitoring/registry.py +0 -0
  419. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/monitoring/tracing.py +0 -0
  420. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/protocols/support.py +0 -0
  421. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/services/__init__.py +0 -0
  422. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/services/chat_service.py +0 -0
  423. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/services/factory.py +0 -0
  424. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/services/knowledge_base.py +0 -0
  425. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/short_term_memory/__init__.py +0 -0
  426. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/short_term_memory/constants.py +0 -0
  427. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/short_term_memory/functions.py +0 -0
  428. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/short_term_memory/schemas.py +0 -0
  429. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/short_term_memory/service.py +0 -0
  430. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/smart_rules/__init__.py +0 -0
  431. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/unique_toolkit/smart_rules/compile.py +0 -0
  432. {unique_toolkit-2026.42.0 → unique_toolkit-2026.42.0.dev0}/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: 2026.42.0
3
+ Version: 2026.42.0.dev0
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>=2026.42.0
19
+ Requires-Dist: unique-sdk>=2026.42.0.dev0,<2026.42.0rc0
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 = "2026.42.0"
3
+ version = "2026.42.0.dev0"
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>=2026.42.0",
31
+ "unique-sdk>=2026.42.0.dev0,<2026.42.0rc0",
32
32
  "jambo>=0.1.2,<0.2",
33
33
  "jinja2>=3.1.6,<4",
34
34
  "docxtpl>=0.20.1,<0.21",
@@ -3,7 +3,6 @@ from __future__ import annotations
3
3
  import base64
4
4
  import logging
5
5
  import mimetypes
6
- from dataclasses import dataclass
7
6
  from datetime import datetime
8
7
  from enum import StrEnum
9
8
  from itertools import groupby
@@ -105,15 +104,12 @@ def get_chat_history_with_contents(
105
104
  else:
106
105
  chat_history.append(last_user_message)
107
106
 
108
- # Failed uploads are included on purpose so the model is told about every
109
- # file the user attached, including those that could not be ingested.
110
107
  chat_contents = content_service.search_contents(
111
108
  where={
112
109
  "ownerId": {
113
110
  "equals": chat_id,
114
111
  },
115
112
  },
116
- include_failed_content=True,
117
113
  )
118
114
 
119
115
  return ChatHistoryWithContent.from_chat_history_and_contents(
@@ -143,15 +139,12 @@ async def get_chat_history_with_contents_async(
143
139
  else:
144
140
  chat_history.append(last_user_message)
145
141
 
146
- # Failed uploads are included on purpose so the model is told about every
147
- # file the user attached, including those that could not be ingested.
148
142
  chat_contents = await content_service.search_contents_async(
149
143
  where={
150
144
  "ownerId": {
151
145
  "equals": chat_id,
152
146
  },
153
147
  },
154
- include_failed_content=True,
155
148
  )
156
149
 
157
150
  return ChatHistoryWithContent.from_chat_history_and_contents(
@@ -230,38 +223,6 @@ def _serialize_file_contents(
230
223
  return (text + "\n\n" + "\n".join(serialized_files)).strip()
231
224
 
232
225
 
233
- @dataclass(frozen=True)
234
- class _SplitContents:
235
- """Uploads of one chat message, grouped by how they reach the model.
236
-
237
- ``serializable`` holds documents *and* images in upload order so the
238
- ``FileContentSerializer`` can describe every upload as text, while
239
- ``images`` only holds the images that will be attached as base64.
240
- """
241
-
242
- serializable: list[Content]
243
- images: list[Content]
244
-
245
-
246
- def _split_contents(
247
- contents: list[Content],
248
- selected_content_ids: set[str] | None,
249
- ) -> _SplitContents:
250
- serializable: list[Content] = []
251
- images: list[Content] = []
252
- for content in contents:
253
- if selected_content_ids is not None and content.id not in selected_content_ids:
254
- continue
255
- is_image = FileUtils.is_image_content(content.key)
256
- if is_image or FileUtils.is_file_content(content.key):
257
- serializable.append(content)
258
- # Failed or expired uploads cannot be downloaded; they are still listed
259
- # via the serializer but never attached as an image.
260
- if is_image and not content.has_ingestion_failed() and not content.is_expired():
261
- images.append(content)
262
- return _SplitContents(serializable=serializable, images=images)
263
-
264
-
265
226
  def _append_element_to_builder(
266
227
  builder: MessagesBuilder,
267
228
  c: ChatMessageWithContents,
@@ -273,11 +234,18 @@ def _append_element_to_builder(
273
234
  selected_content_ids: set[str] | None = None,
274
235
  ) -> None:
275
236
  if len(c.contents) > 0:
276
- split = _split_contents(c.contents, selected_content_ids)
277
- image_contents = split.images
237
+ file_contents = [co for co in c.contents if FileUtils.is_file_content(co.key)]
238
+ image_contents = [co for co in c.contents if FileUtils.is_image_content(co.key)]
239
+ if selected_content_ids is not None:
240
+ file_contents = [
241
+ co for co in file_contents if co.id in selected_content_ids
242
+ ]
243
+ image_contents = [
244
+ co for co in image_contents if co.id in selected_content_ids
245
+ ]
278
246
  content = _serialize_file_contents(
279
247
  text,
280
- split.serializable,
248
+ file_contents,
281
249
  file_content_serializer,
282
250
  )
283
251
  if include_images and image_contents:
@@ -314,11 +282,18 @@ async def _append_element_to_builder_async(
314
282
  selected_content_ids: set[str] | None = None,
315
283
  ) -> None:
316
284
  if len(c.contents) > 0:
317
- split = _split_contents(c.contents, selected_content_ids)
318
- image_contents = split.images
285
+ file_contents = [co for co in c.contents if FileUtils.is_file_content(co.key)]
286
+ image_contents = [co for co in c.contents if FileUtils.is_image_content(co.key)]
287
+ if selected_content_ids is not None:
288
+ file_contents = [
289
+ co for co in file_contents if co.id in selected_content_ids
290
+ ]
291
+ image_contents = [
292
+ co for co in image_contents if co.id in selected_content_ids
293
+ ]
319
294
  content = _serialize_file_contents(
320
295
  text,
321
- split.serializable,
296
+ file_contents,
322
297
  file_content_serializer,
323
298
  )
324
299
  if include_images and image_contents:
@@ -0,0 +1,50 @@
1
+ import logging
2
+
3
+ from openai import AsyncOpenAI
4
+
5
+ from unique_toolkit.agentic.tools.openai_builtin.code_interpreter.builder._memory import (
6
+ CodeExecutionShortTermMemorySchema,
7
+ )
8
+
9
+ logger = logging.getLogger(__name__)
10
+
11
+
12
+ async def check_container_exists(
13
+ client: AsyncOpenAI,
14
+ memory: CodeExecutionShortTermMemorySchema,
15
+ ) -> bool:
16
+ try:
17
+ container = await client.containers.retrieve(memory.container_id)
18
+ # The error here is sometimes InternalServerError, and sometimes a NotFoundError. We catch everything and re-create on exception
19
+ except Exception:
20
+ logger.exception("Container %s not found", memory.container_id)
21
+ return False
22
+
23
+ if container.status not in ["active", "running"]:
24
+ logger.info(
25
+ "Container %s has status `%s`, recreating a new one",
26
+ memory.container_id,
27
+ container.status,
28
+ )
29
+ return False
30
+
31
+ logger.info("Container %s found in short term memory", memory.container_id)
32
+ return True
33
+
34
+
35
+ async def create_container(
36
+ client: AsyncOpenAI,
37
+ chat_id: str,
38
+ user_id: str,
39
+ company_id: str,
40
+ expires_after_minutes: int,
41
+ ) -> str:
42
+ container = await client.containers.create(
43
+ name=f"code_execution_{company_id}_{user_id}_{chat_id}",
44
+ expires_after={
45
+ "anchor": "last_active_at",
46
+ "minutes": expires_after_minutes,
47
+ },
48
+ )
49
+ logger.info("Created new container %s", container.id)
50
+ return container.id
@@ -1,9 +1,7 @@
1
1
  import asyncio
2
2
  import logging
3
- import time
4
3
  from dataclasses import dataclass
5
4
 
6
- import httpx
7
5
  from openai import APIStatusError, AsyncOpenAI
8
6
  from tenacity import (
9
7
  AsyncRetrying,
@@ -28,11 +26,6 @@ logger = logging.getLogger(__name__)
28
26
  UPLOAD_MAX_RETRIES = 2
29
27
  UPLOAD_RETRY_BASE_DELAY = 0.5
30
28
 
31
- # Read timeout must stay above node-chat's own upload retry window (~95s) so we
32
- # never abandon a request the proxy is still retrying, which would double-upload.
33
- UPLOAD_CONNECT_TIMEOUT_SECONDS = 5.0
34
- UPLOAD_READ_TIMEOUT_SECONDS = 120.0
35
-
36
29
  # The `/public/openai-proxy/containers/*/files` route enforces a request-body
37
30
  # size cap (see UN-23109); Azure OpenAI/node-chat surfaces this as an
38
31
  # `APIStatusError` with this status code. Anything else is treated as a
@@ -88,24 +81,6 @@ def build_upload_retry() -> AsyncRetrying:
88
81
  )
89
82
 
90
83
 
91
- def build_upload_client(client: AsyncOpenAI) -> AsyncOpenAI:
92
- """Return a client variant tuned for container-file uploads.
93
-
94
- SDK-level retries are disabled (``max_retries=0``) so that
95
- ``build_upload_retry`` is the single retry owner with full visibility in
96
- logs, and the read timeout is capped so a hung upstream costs
97
- ``UPLOAD_READ_TIMEOUT_SECONDS`` instead of the SDK's 600s default.
98
- """
99
- return client.with_options(
100
- max_retries=0,
101
- timeout=httpx.Timeout(
102
- UPLOAD_CONNECT_TIMEOUT_SECONDS,
103
- read=UPLOAD_READ_TIMEOUT_SECONDS,
104
- write=UPLOAD_READ_TIMEOUT_SECONDS,
105
- ),
106
- )
107
-
108
-
109
84
  def check_file_already_uploaded(
110
85
  content_id: str,
111
86
  memory: CodeExecutionShortTermMemorySchema,
@@ -142,18 +117,16 @@ async def upload_file_to_container(
142
117
  container_id,
143
118
  )
144
119
 
145
- upload_started = time.monotonic()
146
120
  openai_file = await build_upload_retry()(
147
- build_upload_client(client).containers.files.create,
121
+ client.containers.files.create,
148
122
  container_id=container_id,
149
123
  file=(filename, file_content),
150
124
  )
151
125
  logger.info(
152
- "File %s successfully uploaded as OpenAI file %s in container %s in %.1fs",
126
+ "File %s successfully uploaded as OpenAI file %s in container %s",
153
127
  content_id,
154
128
  openai_file.id,
155
129
  container_id,
156
- time.monotonic() - upload_started,
157
130
  )
158
131
 
159
132
  return openai_file.path
@@ -115,7 +115,7 @@ Instructions:
115
115
  Uploaded and generated files:
116
116
  - All files uploaded to the chat are available at the path `/mnt/data/<filename>`.
117
117
  - All files generated through code MUST be saved in the `/mnt/data` folder.
118
- - CRITICAL: When generating any plot, chart or other data visualization as a PNG, use **matplotlib** and call `plt.savefig('/mnt/data/<filename>.png', bbox_inches='tight')` and `plt.close()` to save the file. Never rely on `plt.show()` alone — a file that is not saved to `/mnt/data/` cannot be displayed.
118
+ - CRITICAL: When generating any plot or visualization as a PNG, use **matplotlib** and call `plt.savefig('/mnt/data/<filename>.png', bbox_inches='tight')` and `plt.close()` to save the file. Never rely on `plt.show()` alone — a file that is not saved to `/mnt/data/` cannot be displayed.
119
119
 
120
120
  CRUCIAL Instructions for displaying images and files in the chat:
121
121
  - Once files are generated in the `/mnt/data` folder you MUST reference them in the chat using markdown syntax in order to display them in the chat.
@@ -134,17 +134,10 @@ IMPORTANT: ALWAYS place a blank line before AND after each file reference link s
134
134
  - You MUST always use this syntax, otherwise the files will not be displayed in the chat.
135
135
 
136
136
  Visualization library choice — CRITICAL:
137
- - For static charts and plots (PNG): ALWAYS use **matplotlib**. NEVER use plotly to produce a PNG — `fig.write_image()` requires the `kaleido` package which is NOT installed in this environment and will always raise an error.
138
- - For static page, poster, card or mockup images made of text blocks and boxes (not data charts): use **PIL** (`ImageDraw`) or **matplotlib** and follow "Page and layout images" below.
137
+ - For static image outputs (PNG): ALWAYS use **matplotlib**. NEVER use plotly to produce a PNG — `fig.write_image()` requires the `kaleido` package which is NOT installed in this environment and will always raise an error.
139
138
  - For interactive visualizations (HTML): ALWAYS use **plotly**. Save with `fig.write_html(path, full_html=True, include_plotlyjs="cdn", default_height="600px")`. Do NOT use matplotlib for HTML artifacts.
140
139
  - If a user explicitly asks for a plotly chart as an image, produce an equivalent **matplotlib** PNG and briefly explain that static plotly export is not supported here.
141
140
 
142
- Page and layout images — CRITICAL (text MUST NOT overlap or overflow):
143
- - Applies to images built from text blocks, boxes and cards (pages, posters, slides, mockups), not data charts.
144
- - NEVER hardcode positions or sizes by eye. Place elements top to bottom with a running `y` cursor and advance it by each element's MEASURED height plus padding. Size boxes and cards from their measured content.
145
- - Measure text before placing it (PIL: `draw.textbbox((0, 0), text, font=font)`; matplotlib: `text.get_window_extent(fig.canvas.get_renderer())`) and wrap it to its container's width with `textwrap.wrap`. In a row of cards, give each card `(available_width - gaps) / n` width.
146
- - Before saving, assert in code that no two text bounding boxes intersect and that each lies inside its container.
147
-
148
141
  HTML files — CRITICAL rules:
149
142
  - NEVER write raw HTML markup directly in your text response. HTML content MUST only ever appear as a saved `.html` file in `/mnt/data/`.
150
143
  - Whenever you create HTML (dashboards, charts, tables, reports, interactive widgets), you MUST save it as a `.html` file and reference it using the sandbox link format above.
@@ -169,7 +162,7 @@ HTML files — CRITICAL rules:
169
162
 
170
163
  Handling User Queries:
171
164
  - Whenever the user query requires using the python tool, you must always think first about the steps required.
172
- - CRITICAL: If any step generates a plot, chart or other data visualization as a PNG, use **matplotlib** — 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.
165
+ - CRITICAL: If any step generates a plot or visualization as a PNG, use **matplotlib** — 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.
173
166
  - 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.
174
167
  - Self-check before writing any sandbox link: look back at the code blocks you executed in this response. Is there a block that explicitly saves this exact filename to `/mnt/data/`? If not, execute the code first — then reference the file.
175
168
  - 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.
@@ -1,7 +1,6 @@
1
1
  import asyncio
2
2
  import logging
3
3
  import time
4
- from collections.abc import Collection
5
4
  from datetime import datetime
6
5
  from typing import Any, NamedTuple, cast
7
6
 
@@ -253,11 +252,7 @@ class AgenticTableService:
253
252
  return MagicTableCell.model_validate(cell_data)
254
253
 
255
254
  async def set_multiple_cells(
256
- self,
257
- cells: list[MagicTableCell],
258
- batch_size: int = 4000,
259
- *,
260
- overwrite_library_rows: bool | None = None,
255
+ self, cells: list[MagicTableCell], batch_size: int = 4000
261
256
  ):
262
257
  """
263
258
  Sets the values of multiple cells in the Agentic Table.
@@ -265,14 +260,6 @@ class AgenticTableService:
265
260
  Args:
266
261
  cells (list[MagicTableCell]): The cells to set sorted by row and column.
267
262
  batch_size (int): Number of cells to set in a single request.
268
- overwrite_library_rows (bool | None): When set, forwarded as
269
- ``overwriteLibraryRows``. ``True`` lets updates to existing cells on
270
- library-sheet rows go through instead of being dropped; the server
271
- only honors it on library sheets, for rows where the caller can read
272
- every sheet named in the row's ``sourceSheetId`` metadata. Locked rows still
273
- need unlocking first (``update_row_verification_status`` with
274
- ``locked=False``). ``None`` omits the field; servers that predate
275
- it reject it with a 400.
276
263
  """
277
264
  for i in range(0, len(cells), batch_size):
278
265
  batch = cells[i : i + batch_size]
@@ -288,7 +275,6 @@ class AgenticTableService:
288
275
  )
289
276
  for cell in batch
290
277
  ],
291
- overwriteLibraryRows=overwrite_library_rows,
292
278
  )
293
279
 
294
280
  async def set_activity(
@@ -889,133 +875,6 @@ class AgenticTableService:
889
875
  if not result.get("status"):
890
876
  raise Exception(result.get("message") or "Failed to create row metadata")
891
877
 
892
- async def update_row_metadata(
893
- self,
894
- metadata_id: str,
895
- entry: RowMetadataEntryInput,
896
- ) -> None:
897
- """Update a single row metadata entry, addressed by its id.
898
-
899
- Args:
900
- metadata_id (str): The ``id`` of the row metadata entry to update.
901
- entry (RowMetadataEntryInput): The new key, value and filter flag.
902
-
903
- Raises:
904
- Exception: If the API reports a non-success status.
905
- """
906
- result = await AgenticTable.update_row_metadata(
907
- user_id=self._user_id,
908
- company_id=self._company_id,
909
- tableId=self.table_id,
910
- metadataId=metadata_id,
911
- key=entry.key,
912
- value=entry.value,
913
- exactFilter=entry.exact_filter,
914
- )
915
- if not result.get("status"):
916
- raise Exception(result.get("message") or "Failed to update row metadata")
917
-
918
- async def delete_row_metadata(self, metadata_id: str) -> None:
919
- """Delete a single row metadata entry, addressed by its id.
920
-
921
- Raises:
922
- Exception: If the API reports a non-success status.
923
- """
924
- result = await AgenticTable.delete_row_metadata(
925
- user_id=self._user_id,
926
- company_id=self._company_id,
927
- tableId=self.table_id,
928
- metadataId=metadata_id,
929
- )
930
- if not result.get("status"):
931
- raise Exception(result.get("message") or "Failed to delete row metadata")
932
-
933
- async def set_row_metadata_by_key(
934
- self,
935
- row: int,
936
- entries: list[RowMetadataEntryInput],
937
- row_id: str | None = None,
938
- existing: list[RowMetadataEntry] | None = None,
939
- managed_keys: Collection[str] | None = None,
940
- ) -> None:
941
- """Merge row metadata by key, and optionally remove keys the caller owns.
942
-
943
- For each entry: a key the row lacks is created; a key the row holds with
944
- a different value or filter flag is updated in place; a key that already
945
- matches is left alone. If the row holds the key more than once, one entry
946
- is kept and the others are deleted, so the key ends up with exactly the
947
- given value.
948
-
949
- Keys not in ``entries`` are only removed when listed in ``managed_keys``.
950
- This is not a full replace: rows also carry metadata the caller does not
951
- own (e.g. the ``sourceSheetId`` stamp that library overwrites are checked
952
- against), which must survive.
953
-
954
- Args:
955
- row (int): The row index (row order).
956
- entries (list[RowMetadataEntryInput]): Key/value entries to set. Keys
957
- must be unique.
958
- row_id (str | None): The backend row id, used when creating keys.
959
- existing (list[RowMetadataEntry] | None): The row's current metadata,
960
- when the caller already read it (e.g. ``get_sheet`` with
961
- ``include_row_metadata=True``). When ``None``, the row's metadata
962
- and id are read with ``get_cell``.
963
- managed_keys (Collection[str] | None): Keys the caller owns. Every
964
- entry key must be in it. Any of these keys missing from
965
- ``entries`` is deleted from the row, duplicates included. ``None``
966
- deletes nothing beyond duplicates of keys in ``entries``.
967
-
968
- Raises:
969
- ValueError: If ``entries`` repeats a key, an entry key is not in
970
- ``managed_keys``, or a key must be created and the row id cannot
971
- be resolved.
972
- Exception: If the API reports a non-success status.
973
- """
974
- keys = [entry.key for entry in entries]
975
- if len(set(keys)) != len(keys):
976
- raise ValueError(f"Duplicate row metadata keys in {keys}")
977
- if managed_keys is not None:
978
- unmanaged = sorted(set(keys) - set(managed_keys))
979
- if unmanaged:
980
- raise ValueError(f"Row metadata keys {unmanaged} not in managed_keys")
981
- if not entries and not managed_keys:
982
- return
983
- if existing is None:
984
- cell = await self.get_cell(row, 0, include_row_metadata=True)
985
- existing = cell.row_metadata
986
- row_id = row_id or cell.row_id
987
-
988
- existing_by_key: dict[str, list[RowMetadataEntry]] = {}
989
- for current in existing:
990
- existing_by_key.setdefault(current.key, []).append(current)
991
-
992
- to_create: list[RowMetadataEntryInput] = []
993
- for entry in entries:
994
- matches = existing_by_key.get(entry.key)
995
- if not matches:
996
- to_create.append(entry)
997
- continue
998
- keep = next(
999
- (
1000
- m
1001
- for m in matches
1002
- if m.value == entry.value and m.exact_filter == entry.exact_filter
1003
- ),
1004
- None,
1005
- )
1006
- if keep is None:
1007
- keep = matches[0]
1008
- await self.update_row_metadata(keep.id, entry)
1009
- for duplicate in matches:
1010
- if duplicate.id != keep.id:
1011
- await self.delete_row_metadata(duplicate.id)
1012
-
1013
- for key in set(managed_keys or ()) - set(keys):
1014
- for stale in existing_by_key.get(key, []):
1015
- await self.delete_row_metadata(stale.id)
1016
-
1017
- await self.create_row_metadata(row, to_create, row_id=row_id)
1018
-
1019
878
  async def delete_sheet_metadata(self, metadata_id: str) -> None:
1020
879
  """Delete a sheet metadata entry by its id.
1021
880
 
@@ -334,13 +334,6 @@ class ChatEventPayload(BaseEventPayload):
334
334
  default_factory=lambda: LanguageModelInfo.from_name(DEFAULT_LANGUAGE_MODEL),
335
335
  description="The model choice the user has chosen to be used.",
336
336
  )
337
- thinking_level: str = Field(
338
- default="",
339
- description=(
340
- "Thinking or reasoning level chosen for this turn. "
341
- "Empty when the client did not send one."
342
- ),
343
- )
344
337
  tool_choices: list[str] = Field(
345
338
  default_factory=list,
346
339
  description="A list containing the tool names the user has chosen to be activated.",
@@ -394,10 +387,6 @@ class ChatEventPayload(BaseEventPayload):
394
387
  def has_model_choice_override(self) -> bool:
395
388
  return "model_choice" in self.model_fields_set
396
389
 
397
- @property
398
- def has_thinking_level_override(self) -> bool:
399
- return "thinking_level" in self.model_fields_set and bool(self.thinking_level)
400
-
401
390
 
402
391
  @deprecated("""Use `ChatEventPayload` instead.
403
392
  This class will be removed in the next major version.""")
@@ -200,35 +200,6 @@ class Content(BaseModel):
200
200
  timezone.utc
201
201
  )
202
202
 
203
- def has_ingestion_failed(self) -> bool:
204
- """Whether the platform reported a failed ingestion for this content.
205
-
206
- All failure states of the platform's ``IngestionState`` enum share the
207
- ``FAILED`` prefix (e.g. ``FAILED_PARSING``, ``FAILED_MALWARE_FOUND``).
208
- """
209
- return self.ingestion_state is not None and self.ingestion_state.startswith(
210
- "FAILED"
211
- )
212
-
213
- def is_ingestion_in_progress(self) -> bool:
214
- """Whether the content is still being ingested and is not yet searchable."""
215
- return self.ingestion_state in _INGESTION_IN_PROGRESS_STATES
216
-
217
-
218
- _INGESTION_IN_PROGRESS_STATES: frozenset[str] = frozenset(
219
- {
220
- "QUEUED",
221
- "MALWARE_SCANNING",
222
- "METADATA_VALIDATION",
223
- "EXTRACTING_METADATA",
224
- "INGESTION_READING",
225
- "INGESTION_CHUNKING",
226
- "INGESTION_EMBEDDING",
227
- "RE_INGESTING",
228
- "RETRYING",
229
- }
230
- )
231
-
232
203
 
233
204
  class ContentReference(BaseModel):
234
205
  model_config = model_config
@@ -480,7 +480,6 @@ class ContentService:
480
480
  self,
481
481
  where: dict[str, Any],
482
482
  chat_id: str | None = None,
483
- include_failed_content: bool = False,
484
483
  ) -> list[Content]:
485
484
  """
486
485
  Performs a search in the knowledge base by filter (and not a smilarity search)
@@ -488,8 +487,6 @@ class ContentService:
488
487
 
489
488
  Args:
490
489
  where (dict): The search criteria.
491
- chat_id (str | None): Chat to scope the search to; defaults to the service's chat.
492
- include_failed_content (bool): Also return content whose ingestion failed.
493
490
 
494
491
  Returns:
495
492
  list[Content]: The search results.
@@ -501,22 +498,18 @@ class ContentService:
501
498
  company_id=self._company_id,
502
499
  chat_id=chat_id,
503
500
  where=where,
504
- include_failed_content=include_failed_content,
505
501
  )
506
502
 
507
503
  async def search_contents_async(
508
504
  self,
509
505
  where: dict[str, Any],
510
506
  chat_id: str | None = None,
511
- include_failed_content: bool = False,
512
507
  ) -> list[Content]:
513
508
  """
514
509
  Performs an asynchronous search for content files in the knowledge base by filter.
515
510
 
516
511
  Args:
517
512
  where (dict): The search criteria.
518
- chat_id (str | None): Chat to scope the search to; defaults to the service's chat.
519
- include_failed_content (bool): Also return content whose ingestion failed.
520
513
 
521
514
  Returns:
522
515
  list[Content]: The search results.
@@ -528,7 +521,6 @@ class ContentService:
528
521
  company_id=self._company_id,
529
522
  chat_id=chat_id,
530
523
  where=where,
531
- include_failed_content=include_failed_content,
532
524
  )
533
525
 
534
526
  def search_content_on_chat(self, chat_id: str) -> list[Content]: