unique_toolkit 2026.20.0__tar.gz → 2026.20.0.dev1__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 (397) hide show
  1. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/PKG-INFO +3 -3
  2. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/pyproject.toml +3 -123
  3. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/_common/chunk_relevancy_sorter/schemas.py +1 -1
  4. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/_common/chunk_relevancy_sorter/service.py +1 -9
  5. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/_common/config_checker/validator.py +8 -8
  6. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/_common/event_bus.py +4 -25
  7. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/_common/pydantic/rjsf_tags.py +0 -1
  8. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/_common/pydantic_helpers.py +1 -6
  9. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/history_manager/history_manager.py +5 -1
  10. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/loop_runner/_responses_stream_handler_utils.py +11 -2
  11. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/loop_runner/base.py +11 -3
  12. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/loop_runner/middleware/planning/planning.py +3 -49
  13. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/message_log_manager/service.py +7 -2
  14. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/tools/a2a/evaluation/_utils.py +1 -1
  15. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/tools/a2a/postprocessing/references.py +1 -1
  16. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/tools/a2a/tool/service.py +2 -2
  17. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/tools/experimental/__init__.py +0 -8
  18. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/tools/experimental/todo/config.py +0 -12
  19. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/config.py +2 -14
  20. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/service.py +94 -180
  21. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/tools/tool_manager.py +0 -28
  22. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/app/schemas.py +0 -21
  23. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/chat/responses_api.py +24 -7
  24. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/content/functions.py +5 -32
  25. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/content/schemas.py +1 -22
  26. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/content/service.py +0 -16
  27. {unique_toolkit-2026.20.0/unique_toolkit/experimental/resources → unique_toolkit-2026.20.0.dev1/unique_toolkit/experimental}/content_folder/__init__.py +3 -13
  28. {unique_toolkit-2026.20.0/unique_toolkit/experimental/resources → unique_toolkit-2026.20.0.dev1/unique_toolkit/experimental}/content_folder/functions.py +1 -1
  29. {unique_toolkit-2026.20.0/unique_toolkit/experimental/resources → unique_toolkit-2026.20.0.dev1/unique_toolkit/experimental}/content_folder/schemas.py +2 -2
  30. {unique_toolkit-2026.20.0/unique_toolkit/experimental/resources → unique_toolkit-2026.20.0.dev1/unique_toolkit/experimental}/content_folder/service.py +4 -4
  31. {unique_toolkit-2026.20.0/unique_toolkit/experimental/components → unique_toolkit-2026.20.0.dev1/unique_toolkit/experimental}/content_tree/__init__.py +7 -7
  32. {unique_toolkit-2026.20.0/unique_toolkit/experimental/components → unique_toolkit-2026.20.0.dev1/unique_toolkit/experimental}/content_tree/functions.py +3 -3
  33. {unique_toolkit-2026.20.0/unique_toolkit/experimental/components → unique_toolkit-2026.20.0.dev1/unique_toolkit/experimental}/content_tree/schemas.py +2 -2
  34. {unique_toolkit-2026.20.0/unique_toolkit/experimental/components → unique_toolkit-2026.20.0.dev1/unique_toolkit/experimental}/content_tree/service.py +4 -4
  35. unique_toolkit-2026.20.0.dev1/unique_toolkit/experimental/identity/__init__.py +48 -0
  36. unique_toolkit-2026.20.0.dev1/unique_toolkit/experimental/identity/functions.py +579 -0
  37. {unique_toolkit-2026.20.0/unique_toolkit/experimental/resources/user → unique_toolkit-2026.20.0.dev1/unique_toolkit/experimental/identity}/schemas.py +93 -13
  38. unique_toolkit-2026.20.0.dev1/unique_toolkit/experimental/identity/service.py +715 -0
  39. unique_toolkit-2026.20.0.dev1/unique_toolkit/experimental/scheduled_task/__init__.py +71 -0
  40. {unique_toolkit-2026.20.0/unique_toolkit/experimental/resources → unique_toolkit-2026.20.0.dev1/unique_toolkit/experimental}/scheduled_task/cron.py +1 -1
  41. {unique_toolkit-2026.20.0/unique_toolkit/experimental/resources → unique_toolkit-2026.20.0.dev1/unique_toolkit/experimental}/scheduled_task/functions.py +1 -1
  42. {unique_toolkit-2026.20.0/unique_toolkit/experimental/resources → unique_toolkit-2026.20.0.dev1/unique_toolkit/experimental}/scheduled_task/schemas.py +3 -3
  43. {unique_toolkit-2026.20.0/unique_toolkit/experimental/resources → unique_toolkit-2026.20.0.dev1/unique_toolkit/experimental}/scheduled_task/service.py +3 -3
  44. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/language_model/infos.py +3 -151
  45. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/language_model/reference.py +55 -11
  46. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/language_model/schemas.py +1 -12
  47. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/protocols/support.py +19 -5
  48. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/services/chat_service.py +52 -208
  49. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/services/factory.py +5 -21
  50. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/services/knowledge_base.py +38 -41
  51. unique_toolkit-2026.20.0/unique_toolkit/_common/metadata_filter_scope.py +0 -47
  52. unique_toolkit-2026.20.0/unique_toolkit/agentic/message_log_order.py +0 -26
  53. unique_toolkit-2026.20.0/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_references.py +0 -93
  54. unique_toolkit-2026.20.0/unique_toolkit/agentic/tools/experimental/retrieve_search_scope_tool/__init__.py +0 -13
  55. unique_toolkit-2026.20.0/unique_toolkit/agentic/tools/experimental/retrieve_search_scope_tool/config.py +0 -118
  56. unique_toolkit-2026.20.0/unique_toolkit/agentic/tools/experimental/retrieve_search_scope_tool/tool.py +0 -191
  57. unique_toolkit-2026.20.0/unique_toolkit/agentic/tools/names.py +0 -10
  58. unique_toolkit-2026.20.0/unique_toolkit/experimental/README.md +0 -258
  59. unique_toolkit-2026.20.0/unique_toolkit/experimental/_internal/__init__.py +0 -21
  60. unique_toolkit-2026.20.0/unique_toolkit/experimental/_internal/streaming/__init__.py +0 -35
  61. unique_toolkit-2026.20.0/unique_toolkit/experimental/_internal/streaming/common.py +0 -208
  62. unique_toolkit-2026.20.0/unique_toolkit/experimental/_internal/streaming/pattern_replacer.py +0 -222
  63. unique_toolkit-2026.20.0/unique_toolkit/experimental/components/__init__.py +0 -30
  64. unique_toolkit-2026.20.0/unique_toolkit/experimental/components/_base.py +0 -147
  65. unique_toolkit-2026.20.0/unique_toolkit/experimental/components/internal_search/__init__.py +0 -97
  66. unique_toolkit-2026.20.0/unique_toolkit/experimental/components/internal_search/base/__init__.py +0 -37
  67. unique_toolkit-2026.20.0/unique_toolkit/experimental/components/internal_search/base/config.py +0 -72
  68. unique_toolkit-2026.20.0/unique_toolkit/experimental/components/internal_search/base/schemas.py +0 -56
  69. unique_toolkit-2026.20.0/unique_toolkit/experimental/components/internal_search/base/service.py +0 -189
  70. unique_toolkit-2026.20.0/unique_toolkit/experimental/components/internal_search/base/utils.py +0 -183
  71. unique_toolkit-2026.20.0/unique_toolkit/experimental/components/internal_search/chat/__init__.py +0 -9
  72. unique_toolkit-2026.20.0/unique_toolkit/experimental/components/internal_search/chat/config.py +0 -27
  73. unique_toolkit-2026.20.0/unique_toolkit/experimental/components/internal_search/chat/schemas.py +0 -15
  74. unique_toolkit-2026.20.0/unique_toolkit/experimental/components/internal_search/chat/service.py +0 -61
  75. unique_toolkit-2026.20.0/unique_toolkit/experimental/components/internal_search/knowledge_base/__init__.py +0 -15
  76. unique_toolkit-2026.20.0/unique_toolkit/experimental/components/internal_search/knowledge_base/config.py +0 -61
  77. unique_toolkit-2026.20.0/unique_toolkit/experimental/components/internal_search/knowledge_base/schemas.py +0 -41
  78. unique_toolkit-2026.20.0/unique_toolkit/experimental/components/internal_search/knowledge_base/service.py +0 -119
  79. unique_toolkit-2026.20.0/unique_toolkit/experimental/components/internal_search/post_processing/__init__.py +0 -52
  80. unique_toolkit-2026.20.0/unique_toolkit/experimental/components/internal_search/post_processing/config.py +0 -61
  81. unique_toolkit-2026.20.0/unique_toolkit/experimental/components/internal_search/post_processing/service.py +0 -199
  82. unique_toolkit-2026.20.0/unique_toolkit/experimental/content_tree/__init__.py +0 -35
  83. unique_toolkit-2026.20.0/unique_toolkit/experimental/identity/__init__.py +0 -38
  84. unique_toolkit-2026.20.0/unique_toolkit/experimental/integrations/__init__.py +0 -12
  85. unique_toolkit-2026.20.0/unique_toolkit/experimental/integrations/openai/__init__.py +0 -1
  86. unique_toolkit-2026.20.0/unique_toolkit/experimental/integrations/openai/streaming/__init__.py +0 -1
  87. unique_toolkit-2026.20.0/unique_toolkit/experimental/integrations/openai/streaming/event_routing/__init__.py +0 -93
  88. unique_toolkit-2026.20.0/unique_toolkit/experimental/integrations/openai/streaming/event_routing/_async_bridge.py +0 -46
  89. unique_toolkit-2026.20.0/unique_toolkit/experimental/integrations/openai/streaming/event_routing/chat_completions/__init__.py +0 -15
  90. unique_toolkit-2026.20.0/unique_toolkit/experimental/integrations/openai/streaming/event_routing/chat_completions/complete_with_references.py +0 -484
  91. unique_toolkit-2026.20.0/unique_toolkit/experimental/integrations/openai/streaming/event_routing/chat_completions/stream_event_router.py +0 -163
  92. unique_toolkit-2026.20.0/unique_toolkit/experimental/integrations/openai/streaming/event_routing/chat_completions/text_event_handler.py +0 -140
  93. unique_toolkit-2026.20.0/unique_toolkit/experimental/integrations/openai/streaming/event_routing/chat_completions/tool_call_event_handler.py +0 -87
  94. unique_toolkit-2026.20.0/unique_toolkit/experimental/integrations/openai/streaming/event_routing/events.py +0 -174
  95. unique_toolkit-2026.20.0/unique_toolkit/experimental/integrations/openai/streaming/event_routing/protocols/__init__.py +0 -34
  96. unique_toolkit-2026.20.0/unique_toolkit/experimental/integrations/openai/streaming/event_routing/protocols/chat_completions.py +0 -43
  97. unique_toolkit-2026.20.0/unique_toolkit/experimental/integrations/openai/streaming/event_routing/protocols/responses.py +0 -97
  98. unique_toolkit-2026.20.0/unique_toolkit/experimental/integrations/openai/streaming/event_routing/responses/__init__.py +0 -23
  99. unique_toolkit-2026.20.0/unique_toolkit/experimental/integrations/openai/streaming/event_routing/responses/code_interpreter_event_handler.py +0 -111
  100. unique_toolkit-2026.20.0/unique_toolkit/experimental/integrations/openai/streaming/event_routing/responses/complete_with_references.py +0 -621
  101. unique_toolkit-2026.20.0/unique_toolkit/experimental/integrations/openai/streaming/event_routing/responses/completed_event_handler.py +0 -49
  102. unique_toolkit-2026.20.0/unique_toolkit/experimental/integrations/openai/streaming/event_routing/responses/stream_event_router.py +0 -215
  103. unique_toolkit-2026.20.0/unique_toolkit/experimental/integrations/openai/streaming/event_routing/responses/text_delta_event_handler.py +0 -97
  104. unique_toolkit-2026.20.0/unique_toolkit/experimental/integrations/openai/streaming/event_routing/responses/tool_call_event_handler.py +0 -103
  105. unique_toolkit-2026.20.0/unique_toolkit/experimental/integrations/openai/streaming/event_routing/subscribers/__init__.py +0 -8
  106. unique_toolkit-2026.20.0/unique_toolkit/experimental/integrations/openai/streaming/event_routing/subscribers/message_persister.py +0 -178
  107. unique_toolkit-2026.20.0/unique_toolkit/experimental/integrations/openai/streaming/event_routing/subscribers/progress_log_persister.py +0 -90
  108. unique_toolkit-2026.20.0/unique_toolkit/experimental/resources/__init__.py +0 -63
  109. unique_toolkit-2026.20.0/unique_toolkit/experimental/resources/facades/__init__.py +0 -29
  110. unique_toolkit-2026.20.0/unique_toolkit/experimental/resources/facades/identity/__init__.py +0 -51
  111. unique_toolkit-2026.20.0/unique_toolkit/experimental/resources/facades/identity/service.py +0 -113
  112. unique_toolkit-2026.20.0/unique_toolkit/experimental/resources/group/__init__.py +0 -70
  113. unique_toolkit-2026.20.0/unique_toolkit/experimental/resources/group/functions.py +0 -298
  114. unique_toolkit-2026.20.0/unique_toolkit/experimental/resources/group/schemas.py +0 -97
  115. unique_toolkit-2026.20.0/unique_toolkit/experimental/resources/group/service.py +0 -255
  116. unique_toolkit-2026.20.0/unique_toolkit/experimental/resources/scheduled_task/__init__.py +0 -55
  117. unique_toolkit-2026.20.0/unique_toolkit/experimental/resources/user/__init__.py +0 -60
  118. unique_toolkit-2026.20.0/unique_toolkit/experimental/resources/user/functions.py +0 -285
  119. unique_toolkit-2026.20.0/unique_toolkit/experimental/resources/user/service.py +0 -363
  120. unique_toolkit-2026.20.0/unique_toolkit/experimental/testing/__init__.py +0 -10
  121. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/README.md +0 -0
  122. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/__init__.py +0 -0
  123. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/_common/__init__.py +0 -0
  124. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/_common/_base_service.py +0 -0
  125. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/_common/_time_utils.py +0 -0
  126. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/_common/api_calling/human_verification_manager.py +0 -0
  127. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/_common/base_model_type_attribute.py +0 -0
  128. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/_common/chunk_relevancy_sorter/config.py +0 -0
  129. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/_common/chunk_relevancy_sorter/exception.py +0 -0
  130. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/_common/chunk_relevancy_sorter/tests/test_service.py +0 -0
  131. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/_common/config_checker/README.md +0 -0
  132. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/_common/config_checker/__init__.py +0 -0
  133. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/_common/config_checker/__main__.py +0 -0
  134. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/_common/config_checker/cli.py +0 -0
  135. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/_common/config_checker/differ.py +0 -0
  136. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/_common/config_checker/exporter.py +0 -0
  137. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/_common/config_checker/models.py +0 -0
  138. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/_common/config_checker/registry.py +0 -0
  139. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/_common/default_language_model.py +0 -0
  140. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/_common/docx_generator/__init__.py +0 -0
  141. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/_common/docx_generator/config.py +0 -0
  142. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/_common/docx_generator/pandoc_converter.py +0 -0
  143. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/_common/docx_generator/schemas.py +0 -0
  144. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/_common/docx_generator/service.py +0 -0
  145. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/_common/docx_generator/template/Doc Template.docx +0 -0
  146. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/_common/endpoint_builder.py +0 -0
  147. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/_common/endpoint_requestor.py +0 -0
  148. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/_common/exception.py +0 -0
  149. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/_common/execution.py +0 -0
  150. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/_common/experimental/endpoint_builder.py +0 -0
  151. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/_common/experimental/endpoint_requestor.py +0 -0
  152. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/_common/experimental/write_up_agent/README.md +0 -0
  153. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/_common/experimental/write_up_agent/__init__.py +0 -0
  154. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/_common/experimental/write_up_agent/agent.py +0 -0
  155. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/_common/experimental/write_up_agent/config.py +0 -0
  156. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/_common/experimental/write_up_agent/examples/data.csv +0 -0
  157. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/_common/experimental/write_up_agent/examples/example_usage.py +0 -0
  158. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/_common/experimental/write_up_agent/schemas.py +0 -0
  159. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/_common/experimental/write_up_agent/services/__init__.py +0 -0
  160. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/__init__.py +0 -0
  161. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/exceptions.py +0 -0
  162. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/service.py +0 -0
  163. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/utils.py +0 -0
  164. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/__init__.py +0 -0
  165. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/config.py +0 -0
  166. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/exceptions.py +0 -0
  167. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/prompts/config.py +0 -0
  168. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/prompts/system_prompt.j2 +0 -0
  169. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/prompts/user_prompt.j2 +0 -0
  170. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/service.py +0 -0
  171. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/__init__.py +0 -0
  172. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/default_template.j2 +0 -0
  173. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/exceptions.py +0 -0
  174. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/service.py +0 -0
  175. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/utils.py +0 -0
  176. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/_common/experimental/write_up_agent/utils.py +0 -0
  177. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/_common/feature_flags/schema.py +0 -0
  178. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/_common/referencing.py +0 -0
  179. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/_common/string_utilities.py +0 -0
  180. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/_common/tests/test_referencing.py +0 -0
  181. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/_common/tests/test_string_utilities.py +0 -0
  182. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/_common/token/__init__.py +0 -0
  183. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/_common/token/image_token_counting.py +0 -0
  184. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/_common/token/token_counting.py +0 -0
  185. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/_common/token/tokenizers/deepseek/tokenizer.json +0 -0
  186. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/_common/token/tokenizers/qwen/tokenizer.json +0 -0
  187. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/_common/utils/__init__.py +0 -0
  188. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/_common/utils/files.py +0 -0
  189. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/_common/utils/image/encode.py +0 -0
  190. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/_common/utils/jinja/helpers.py +0 -0
  191. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/_common/utils/jinja/render.py +0 -0
  192. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/_common/utils/jinja/schema.py +0 -0
  193. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/_common/utils/jinja/utils.py +0 -0
  194. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/_common/utils/structured_output/__init__.py +0 -0
  195. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/_common/utils/structured_output/schema.py +0 -0
  196. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/_common/utils/write_configuration.py +0 -0
  197. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/_common/validate_required_values.py +0 -0
  198. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/_common/validators.py +0 -0
  199. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/__init__.py +0 -0
  200. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/debug_info_manager/debug_info_manager.py +0 -0
  201. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/debug_info_manager/test/test_debug_info_manager.py +0 -0
  202. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/evaluation/config.py +0 -0
  203. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/evaluation/context_relevancy/prompts/__init__.py +0 -0
  204. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/evaluation/context_relevancy/prompts/system_prompt.j2 +0 -0
  205. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/evaluation/context_relevancy/prompts/user_prompt.j2 +0 -0
  206. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/evaluation/context_relevancy/schema.py +0 -0
  207. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/evaluation/context_relevancy/service.py +0 -0
  208. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/evaluation/evaluation_manager.py +0 -0
  209. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/evaluation/exception.py +0 -0
  210. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/evaluation/hallucination/constants.py +0 -0
  211. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/evaluation/hallucination/hallucination_evaluation.py +0 -0
  212. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/evaluation/hallucination/prompts/__init__.py +0 -0
  213. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/evaluation/hallucination/prompts/system_prompt.j2 +0 -0
  214. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/evaluation/hallucination/prompts/user_prompt.j2 +0 -0
  215. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/evaluation/hallucination/service.py +0 -0
  216. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/evaluation/hallucination/utils.py +0 -0
  217. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/evaluation/output_parser.py +0 -0
  218. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/evaluation/schemas.py +0 -0
  219. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/evaluation/tests/fixtures.py +0 -0
  220. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/evaluation/tests/test_config.py +0 -0
  221. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/evaluation/tests/test_context_relevancy_service.py +0 -0
  222. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/evaluation/tests/test_hallucination_constants.py +0 -0
  223. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/evaluation/tests/test_hallucination_utils.py +0 -0
  224. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/evaluation/tests/test_output_parser.py +0 -0
  225. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/evaluation/tests/test_prompt_loaders.py +0 -0
  226. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/evaluation/utils.py +0 -0
  227. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/feature_flags/__init__.py +0 -0
  228. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/feature_flags/feature_flags.py +0 -0
  229. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/history_manager/history_construction_with_contents.py +0 -0
  230. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/history_manager/loop_token_reducer.py +0 -0
  231. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/history_manager/utils.py +0 -0
  232. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/loop_runner/__init__.py +0 -0
  233. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/loop_runner/_iteration_handler_utils.py +0 -0
  234. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/loop_runner/_responses_iteration_handler_utils.py +0 -0
  235. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/loop_runner/_stream_handler_utils.py +0 -0
  236. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/loop_runner/middleware/__init__.py +0 -0
  237. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/loop_runner/middleware/planning/__init__.py +0 -0
  238. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/loop_runner/middleware/planning/schema.py +0 -0
  239. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/loop_runner/runners/__init__.py +0 -0
  240. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/loop_runner/runners/basic.py +0 -0
  241. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/loop_runner/runners/mistral/__init__.py +0 -0
  242. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/loop_runner/runners/mistral/mistral_runner.py +0 -0
  243. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/loop_runner/runners/qwen/__init__.py +0 -0
  244. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/loop_runner/runners/qwen/helpers.py +0 -0
  245. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/loop_runner/runners/qwen/qwen_runner.py +0 -0
  246. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/message_log_manager/__init__.py +0 -0
  247. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/postprocessor/postprocessor_manager.py +0 -0
  248. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/reference_manager/reference_manager.py +0 -0
  249. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/responses_api/__init__.py +0 -0
  250. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/responses_api/postprocessors/code_display.py +0 -0
  251. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/responses_api/postprocessors/generated_files.py +0 -0
  252. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/responses_api/stream_handler.py +0 -0
  253. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/short_term_memory_manager/persistent_short_term_memory_manager.py +0 -0
  254. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/thinking_manager/thinking_manager.py +0 -0
  255. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/tools/__init__.py +0 -0
  256. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/tools/a2a/__init__.py +0 -0
  257. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/tools/a2a/config.py +0 -0
  258. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/tools/a2a/evaluation/__init__.py +0 -0
  259. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/tools/a2a/evaluation/config.py +0 -0
  260. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/tools/a2a/evaluation/evaluator.py +0 -0
  261. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/tools/a2a/evaluation/summarization_user_message.j2 +0 -0
  262. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/tools/a2a/manager.py +0 -0
  263. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/tools/a2a/postprocessing/__init__.py +0 -0
  264. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/tools/a2a/postprocessing/_display_utils.py +0 -0
  265. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/tools/a2a/postprocessing/_ref_utils.py +0 -0
  266. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/tools/a2a/postprocessing/config.py +0 -0
  267. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/tools/a2a/postprocessing/display.py +0 -0
  268. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_display.py +0 -0
  269. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_display_utils.py +0 -0
  270. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_ref_utils.py +0 -0
  271. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/tools/a2a/prompts.py +0 -0
  272. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/tools/a2a/response_watcher/__init__.py +0 -0
  273. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/tools/a2a/response_watcher/service.py +0 -0
  274. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/tools/a2a/tool/__init__.py +0 -0
  275. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/tools/a2a/tool/_memory.py +0 -0
  276. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/tools/a2a/tool/_schema.py +0 -0
  277. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/tools/a2a/tool/config.py +0 -0
  278. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/tools/a2a/tool/test/test_service_utils.py +0 -0
  279. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/tools/agent_chunks_hanlder.py +0 -0
  280. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/tools/config.py +0 -0
  281. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/tools/experimental/open_file_tool/__init__.py +0 -0
  282. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/tools/experimental/open_file_tool/config.py +0 -0
  283. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/tools/experimental/open_file_tool/runtime.py +0 -0
  284. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/tools/experimental/open_file_tool/tool.py +0 -0
  285. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/tools/experimental/todo/__init__.py +0 -0
  286. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/tools/experimental/todo/prompts/__init__.py +0 -0
  287. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/tools/experimental/todo/prompts/execution_reminder.j2 +0 -0
  288. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/tools/experimental/todo/prompts/system_prompt.j2 +0 -0
  289. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/tools/experimental/todo/prompts/tool_description.j2 +0 -0
  290. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/tools/experimental/todo/prompts/verification_nudge.j2 +0 -0
  291. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/tools/experimental/todo/schemas.py +0 -0
  292. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/tools/experimental/todo/service.py +0 -0
  293. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/tools/factory.py +0 -0
  294. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/tools/mcp/__init__.py +0 -0
  295. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/tools/mcp/manager.py +0 -0
  296. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/tools/mcp/models.py +0 -0
  297. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/tools/mcp/tool_wrapper.py +0 -0
  298. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/tools/openai_builtin/__init__.py +0 -0
  299. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/tools/openai_builtin/base.py +0 -0
  300. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/__init__.py +0 -0
  301. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/postprocessors/__init__.py +0 -0
  302. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/postprocessors/code_display.py +0 -0
  303. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/postprocessors/generated_files.py +0 -0
  304. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/schemas.py +0 -0
  305. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/tools/openai_builtin/manager.py +0 -0
  306. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/tools/schemas.py +0 -0
  307. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/tools/test/test_mcp_manager.py +0 -0
  308. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/tools/test/test_tool_progress_reporter.py +0 -0
  309. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/tools/tool.py +0 -0
  310. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/tools/tool_progress_reporter.py +0 -0
  311. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/tools/utils/__init__.py +0 -0
  312. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/tools/utils/source_handling/__init__.py +0 -0
  313. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/tools/utils/source_handling/schema.py +0 -0
  314. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/tools/utils/source_handling/source_formatting.py +0 -0
  315. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic/tools/utils/source_handling/tests/test_source_formatting.py +0 -0
  316. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic_table/__init__.py +0 -0
  317. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic_table/schemas.py +0 -0
  318. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/agentic_table/service.py +0 -0
  319. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/app/__init__.py +0 -0
  320. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/app/chat_event_filter_options_settings.py +0 -0
  321. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/app/dev_util.py +0 -0
  322. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/app/fast_api_factory.py +0 -0
  323. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/app/feature_flags.py +0 -0
  324. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/app/find_env_file.py +0 -0
  325. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/app/init_logging.py +0 -0
  326. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/app/init_sdk.py +0 -0
  327. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/app/performance/async_tasks.py +0 -0
  328. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/app/performance/async_wrapper.py +0 -0
  329. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/app/unique_settings.py +0 -0
  330. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/app/verification.py +0 -0
  331. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/app/webhook.py +0 -0
  332. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/chat/__init__.py +0 -0
  333. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/chat/cancellation.py +0 -0
  334. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/chat/constants.py +0 -0
  335. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/chat/deprecated/service.py +0 -0
  336. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/chat/functions.py +0 -0
  337. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/chat/rendering.py +0 -0
  338. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/chat/schemas.py +0 -0
  339. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/chat/service.py +0 -0
  340. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/chat/state.py +0 -0
  341. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/chat/utils.py +0 -0
  342. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/content/__init__.py +0 -0
  343. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/content/constants.py +0 -0
  344. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/content/smart_rules.py +0 -0
  345. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/content/utils.py +0 -0
  346. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/data_extraction/README.md +0 -0
  347. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/data_extraction/__init__.py +0 -0
  348. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/data_extraction/augmented/__init__.py +0 -0
  349. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/data_extraction/augmented/service.py +0 -0
  350. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/data_extraction/base.py +0 -0
  351. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/data_extraction/basic/__init__.py +0 -0
  352. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/data_extraction/basic/config.py +0 -0
  353. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/data_extraction/basic/prompt.py +0 -0
  354. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/data_extraction/basic/service.py +0 -0
  355. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/elicitation/__init__.py +0 -0
  356. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/elicitation/constants.py +0 -0
  357. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/elicitation/exceptions.py +0 -0
  358. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/elicitation/functions.py +0 -0
  359. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/elicitation/schemas.py +0 -0
  360. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/elicitation/service.py +0 -0
  361. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/embedding/__init__.py +0 -0
  362. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/embedding/constants.py +0 -0
  363. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/embedding/functions.py +0 -0
  364. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/embedding/schemas.py +0 -0
  365. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/embedding/service.py +0 -0
  366. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/embedding/utils.py +0 -0
  367. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/experimental/__init__.py +0 -0
  368. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/framework_utilities/__init__.py +0 -0
  369. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/framework_utilities/langchain/__init__.py +0 -0
  370. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/framework_utilities/langchain/client.py +0 -0
  371. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/framework_utilities/langchain/history.py +0 -0
  372. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/framework_utilities/openai/__init__.py +0 -0
  373. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/framework_utilities/openai/client.py +0 -0
  374. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/framework_utilities/openai/message_builder.py +0 -0
  375. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/framework_utilities/utils.py +0 -0
  376. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/language_model/__init__.py +0 -0
  377. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/language_model/_responses_api_utils.py +0 -0
  378. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/language_model/builder.py +0 -0
  379. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/language_model/constants.py +0 -0
  380. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/language_model/default_language_model.py +0 -0
  381. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/language_model/functions.py +0 -0
  382. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/language_model/prompt.py +0 -0
  383. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/language_model/service.py +0 -0
  384. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/language_model/stream_transform.py +0 -0
  385. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/language_model/utils.py +0 -0
  386. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/monitoring/__init__.py +0 -0
  387. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/monitoring/middleware.py +0 -0
  388. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/monitoring/registry.py +0 -0
  389. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/services/__init__.py +0 -0
  390. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/short_term_memory/__init__.py +0 -0
  391. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/short_term_memory/constants.py +0 -0
  392. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/short_term_memory/functions.py +0 -0
  393. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/short_term_memory/schemas.py +0 -0
  394. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/short_term_memory/service.py +0 -0
  395. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/smart_rules/__init__.py +0 -0
  396. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/unique_toolkit/smart_rules/compile.py +0 -0
  397. {unique_toolkit-2026.20.0 → unique_toolkit-2026.20.0.dev1}/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.20.0
3
+ Version: 2026.20.0.dev1
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>
@@ -10,13 +10,13 @@ Requires-Dist: pydantic>=2.11.0,<3
10
10
  Requires-Dist: pyhumps>=3.8.0,<4
11
11
  Requires-Dist: numpy>=2.4.2,<3
12
12
  Requires-Dist: tiktoken>=0.12.0,<0.13
13
- Requires-Dist: tokenizers>=0.21.0,<0.23
13
+ Requires-Dist: tokenizers>=0.21.0,<0.22
14
14
  Requires-Dist: pydantic-settings>=2.10.1,<3
15
15
  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.20.0
19
+ Requires-Dist: unique-sdk>=2026.20.0.dev1
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.20.0"
3
+ version = "2026.20.0.dev1"
4
4
  description = ""
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.12"
@@ -22,13 +22,13 @@ dependencies = [
22
22
  "pyhumps>=3.8.0,<4",
23
23
  "numpy>=2.4.2,<3",
24
24
  "tiktoken>=0.12.0,<0.13",
25
- "tokenizers>=0.21.0,<0.23",
25
+ "tokenizers>=0.21.0,<0.22",
26
26
  "pydantic-settings>=2.10.1,<3",
27
27
  "sseclient>=0.0.27,<0.0.28",
28
28
  "openai>=1.105.0,<3",
29
29
  "platformdirs>=4.0.0,<5",
30
30
  "pillow>=12.1.1",
31
- "unique-sdk>=2026.20.0",
31
+ "unique-sdk>=2026.20.0.dev1",
32
32
  "jambo>=0.1.2,<0.2",
33
33
  "jinja2>=3.1.6,<4",
34
34
  "docxtpl>=0.20.1,<0.21",
@@ -91,7 +91,6 @@ format = "ruff format ."
91
91
  test = "pytest"
92
92
  typecheck = "basedpyright"
93
93
  depcheck = "deptry ."
94
- check-imports = "lint-imports"
95
94
  coverage = "pytest --cov=unique_toolkit --cov-report=term-missing"
96
95
  ci-typecheck = { shell = "bash $(git rev-parse --show-toplevel)/.github/scripts/dev.sh typecheck" }
97
96
  ci-coverage = { shell = "bash $(git rev-parse --show-toplevel)/.github/scripts/dev.sh coverage" }
@@ -119,125 +118,6 @@ extend_exclude = ["docs", "tests", "unique_toolkit/.*/test", "unique_toolkit/.*/
119
118
  DEP002 = ["langchain", "fastapi", "starlette", "uvicorn"]
120
119
  DEP004 = ["langchain_openai", "langchain_core"]
121
120
 
122
- # -----------------------------------------------------------------------------
123
- # import-linter — enforces the layered architecture documented in
124
- # unique_toolkit/experimental/README.md. Contracts are scoped to the
125
- # experimental/ subpackage; the rest of the toolkit keeps its existing
126
- # (un-layered) shape until modules graduate into the new layout.
127
- #
128
- # Run: uv run poe check-imports (or: uv run lint-imports)
129
- #
130
- # Rules encoded below:
131
- # 1. integrations → resources → _internal (layers)
132
- # 2. components → resources → _internal (layers; peer of integrations)
133
- # 3. components never import integrations (keeps orchestration framework-agnostic)
134
- # 4. primitive resources are mutually independent
135
- # 5. primitives never import facades (dependency direction inside resources/)
136
- # 6. facades compose primitives only — never unique_sdk / components / integrations
137
- # 7. components never call unique_sdk directly (go through a resource)
138
- # 8. each integrations/<framework>/ stands alone — enabled when real modules land
139
- #
140
- # Imports under ``if TYPE_CHECKING:`` are excluded from the graph (see
141
- # ``exclude_type_checking_imports``) so type-only imports (e.g. ``unique_sdk``)
142
- # do not violate layer/forbidden contracts. Runtime imports are still enforced.
143
- #
144
- # Preference rules from the README that are NOT machine-enforced (import-linter
145
- # is pass/fail, not tiered): integrations prefer facades over primitives;
146
- # integrations importing components is "discouraged but allowed".
147
- # -----------------------------------------------------------------------------
148
- [tool.importlinter]
149
- root_packages = ["unique_toolkit"]
150
- include_external_packages = true
151
- exclude_type_checking_imports = true
152
-
153
- [[tool.importlinter.contracts]]
154
- name = "experimental: integrations stack (integrations → resources → _internal)"
155
- type = "layers"
156
- layers = [
157
- "unique_toolkit.experimental.integrations",
158
- "unique_toolkit.experimental.resources",
159
- "unique_toolkit.experimental._internal",
160
- ]
161
-
162
- [[tool.importlinter.contracts]]
163
- name = "experimental: components stack (components → resources → _internal)"
164
- type = "layers"
165
- layers = [
166
- "unique_toolkit.experimental.components",
167
- "unique_toolkit.experimental.resources",
168
- "unique_toolkit.experimental._internal",
169
- ]
170
-
171
- [[tool.importlinter.contracts]]
172
- name = "experimental: components never import integrations"
173
- type = "forbidden"
174
- source_modules = ["unique_toolkit.experimental.components"]
175
- forbidden_modules = ["unique_toolkit.experimental.integrations"]
176
-
177
- [[tool.importlinter.contracts]]
178
- name = "experimental: primitive resources are independent"
179
- type = "independence"
180
- modules = [
181
- "unique_toolkit.experimental.resources.user",
182
- "unique_toolkit.experimental.resources.group",
183
- "unique_toolkit.experimental.resources.content_folder",
184
- "unique_toolkit.experimental.resources.scheduled_task",
185
- ]
186
-
187
- [[tool.importlinter.contracts]]
188
- name = "experimental: primitives never import facades"
189
- type = "forbidden"
190
- source_modules = [
191
- "unique_toolkit.experimental.resources.user",
192
- "unique_toolkit.experimental.resources.group",
193
- "unique_toolkit.experimental.resources.content_folder",
194
- "unique_toolkit.experimental.resources.scheduled_task",
195
- ]
196
- forbidden_modules = ["unique_toolkit.experimental.resources.facades"]
197
-
198
- [[tool.importlinter.contracts]]
199
- name = "experimental: facades never import other facades"
200
- type = "independence"
201
- modules = ["unique_toolkit.experimental.resources.facades.*"]
202
-
203
- [[tool.importlinter.contracts]]
204
- name = "experimental: facades compose primitives only"
205
- type = "forbidden"
206
- source_modules = ["unique_toolkit.experimental.resources.facades"]
207
- forbidden_modules = [
208
- "unique_sdk",
209
- "unique_toolkit.experimental.components",
210
- "unique_toolkit.experimental.integrations",
211
- ]
212
- # Facades legitimately reach `unique_sdk` transitively through primitive
213
- # resources (that's the whole point). This flag restricts the check to
214
- # *direct* `import unique_sdk` statements inside facade modules.
215
- allow_indirect_imports = true
216
-
217
- [[tool.importlinter.contracts]]
218
- name = "experimental: components never call unique_sdk directly"
219
- type = "forbidden"
220
- source_modules = ["unique_toolkit.experimental.components"]
221
- forbidden_modules = ["unique_sdk"]
222
- # Components are allowed to reach `unique_sdk` indirectly through a
223
- # resource or an existing toolkit service; the rule only bans a *direct*
224
- # `import unique_sdk` inside a component module.
225
- allow_indirect_imports = true
226
-
227
- # Uncomment and populate once concrete integrations exist under
228
- # unique_toolkit/experimental/integrations/<framework>/.
229
- # [[tool.importlinter.contracts]]
230
- # name = "experimental: integrations are mutually independent"
231
- # type = "independence"
232
- # modules = [
233
- # "unique_toolkit.experimental.integrations.openai",
234
- # "unique_toolkit.experimental.integrations.langchain",
235
- # ]
236
-
237
-
238
-
239
-
240
-
241
121
  [tool.ruff]
242
122
  target-version = "py312"
243
123
  exclude = [".venv", "docs"]
@@ -11,7 +11,7 @@ class ChunkRelevancy(BaseModel):
11
11
  relevancy: EvaluationMetricResult | None = None
12
12
 
13
13
  def get_document_name(self):
14
- title = self.chunk.key or self.chunk.title or "Unknown"
14
+ title = self.chunk.key or self.chunk.title or "Unkown"
15
15
  return title.split(":")[0]
16
16
 
17
17
  def get_page_number(self):
@@ -3,7 +3,7 @@ import time
3
3
  from collections import Counter
4
4
  from typing import Any, overload
5
5
 
6
- from typing_extensions import Self, deprecated
6
+ from typing_extensions import deprecated
7
7
 
8
8
  from unique_toolkit._common.chunk_relevancy_sorter.config import (
9
9
  ChunkRelevancySortConfig,
@@ -39,7 +39,6 @@ from unique_toolkit.agentic.evaluation.schemas import (
39
39
  )
40
40
  from unique_toolkit.app.performance.async_tasks import run_async_tasks_parallel
41
41
  from unique_toolkit.app.schemas import BaseEvent, ChatEvent
42
- from unique_toolkit.app.unique_settings import UniqueSettings
43
42
  from unique_toolkit.content.schemas import ContentChunk
44
43
  from unique_toolkit.language_model.infos import LanguageModelInfo
45
44
 
@@ -85,13 +84,6 @@ class ChunkRelevancySorter:
85
84
  def from_event(cls, event: ChatEvent | BaseEvent[Any]):
86
85
  return cls(company_id=event.company_id, user_id=event.user_id)
87
86
 
88
- @classmethod
89
- def from_settings(cls, settings: UniqueSettings) -> Self:
90
- return cls(
91
- company_id=settings.authcontext.get_confidential_company_id(),
92
- user_id=settings.authcontext.get_confidential_user_id(),
93
- )
94
-
95
87
  async def run(
96
88
  self,
97
89
  input_text: str,
@@ -288,20 +288,20 @@ class ConfigValidator:
288
288
  # Get the old value from original JSON
289
289
  old_value = None
290
290
  try:
291
- node: Any = original_json
291
+ current = original_json
292
292
  for key in loc:
293
- if isinstance(node, dict) and isinstance(key, str):
294
- node = node.get(key)
295
- elif isinstance(node, list) and isinstance(key, int):
293
+ if isinstance(current, dict) and isinstance(key, str):
294
+ current = current.get(key)
295
+ elif isinstance(current, list) and isinstance(key, int):
296
296
  try:
297
- node = node[key]
297
+ current = current[key]
298
298
  except (IndexError, TypeError):
299
- node = None
299
+ current = None
300
300
  break
301
301
  else:
302
- node = None
302
+ current = None
303
303
  break
304
- old_value = node
304
+ old_value = current
305
305
  except Exception:
306
306
  pass
307
307
 
@@ -96,28 +96,7 @@ class TypedEventBus(Generic[T]):
96
96
  async def publish_and_wait_async(
97
97
  self, event: T, *, return_exceptions: bool = False
98
98
  ) -> None:
99
- """Invoke every handler and await completion.
100
-
101
- When ``return_exceptions=True`` failures from one subscriber do not
102
- cancel the others, and each swallowed exception is logged. Use this
103
- at hot-path publish sites (e.g. ``text_delta``) where a single flaky
104
- analytics subscriber should not abort the stream.
105
- """
106
- handlers = list(self._handlers)
107
- coros = [self._invoke(h, event) for h in handlers]
108
- if not coros:
109
- return
110
- if return_exceptions:
111
- results = await asyncio.gather(*coros, return_exceptions=True)
112
- for handler, result in zip(handlers, results):
113
- if isinstance(result, BaseException) and not isinstance(
114
- result, asyncio.CancelledError
115
- ):
116
- logger.error(
117
- "Subscriber %r raised during publish; swallowing: %r",
118
- handler,
119
- result,
120
- exc_info=result,
121
- )
122
- else:
123
- await asyncio.gather(*coros)
99
+ """Invoke every handler and await completion."""
100
+ coros = [self._invoke(h, event) for h in list(self._handlers)]
101
+ if coros:
102
+ await asyncio.gather(*coros, return_exceptions=return_exceptions)
@@ -35,7 +35,6 @@ class CustomWidgetName(StrEnum):
35
35
  SELECTION_POLICY = "selectionPolicy"
36
36
  TOOL_ICON_SELECT = "toolIconSelect"
37
37
  TOGGLE_SWITCH = "toggleSwitch"
38
- SKILLS_PICKER = "skillsPickerWidget"
39
38
  # Add new entries here when adding custom widgets in TypeScript
40
39
 
41
40
 
@@ -1,6 +1,6 @@
1
1
  import logging
2
2
  import warnings
3
- from typing import Annotated, Any, TypeVar, Unpack
3
+ from typing import Any, TypeVar, Unpack
4
4
 
5
5
  import humps
6
6
  from pydantic import BaseModel, BeforeValidator, ConfigDict, Field, create_model
@@ -33,11 +33,6 @@ BeforeValidator to replace an incoming None with the field's declared default.
33
33
  """
34
34
  NoneToDefault = BeforeValidator(_none_to_default)
35
35
 
36
- DeactivatedNone = Annotated[
37
- None,
38
- Field(title="Deactivated", description="None"),
39
- ]
40
-
41
36
 
42
37
  def get_configuration_dict(**kwargs: Unpack[ConfigDict]) -> ConfigDict:
43
38
  base: dict[str, object] = {
@@ -8,7 +8,6 @@ from pydantic import BaseModel, Field
8
8
  from unique_toolkit._common.feature_flags.schema import (
9
9
  FeatureExtendedSourceSerialization,
10
10
  )
11
- from unique_toolkit._common.pydantic_helpers import DeactivatedNone
12
11
  from unique_toolkit._common.validators import LMI
13
12
  from unique_toolkit.agentic.history_manager.loop_token_reducer import LoopTokenReducer
14
13
  from unique_toolkit.agentic.history_manager.utils import (
@@ -31,6 +30,11 @@ from unique_toolkit.language_model.schemas import (
31
30
  LanguageModelToolMessage,
32
31
  )
33
32
 
33
+ DeactivatedNone = Annotated[
34
+ None,
35
+ Field(title="Deactivated", description="None"),
36
+ ]
37
+
34
38
 
35
39
  class UploadedContentConfig(BaseModel):
36
40
  model_config = get_configuration_dict()
@@ -2,6 +2,8 @@ from typing import Any, Required, Sequence
2
2
 
3
3
  from openai.types.responses import (
4
4
  ResponseIncludable,
5
+ ResponseInputItemParam,
6
+ ResponseOutputItem,
5
7
  ResponseTextConfigParam,
6
8
  ToolParam,
7
9
  response_create_params,
@@ -11,15 +13,22 @@ from typing_extensions import TypedDict
11
13
 
12
14
  from unique_toolkit import LanguageModelToolDescription
13
15
  from unique_toolkit.agentic.loop_runner.base import _ResponsesLoopIterationRunnerKwargs
16
+ from unique_toolkit.chat.service import LanguageModelMessages
14
17
  from unique_toolkit.content import ContentChunk
15
18
  from unique_toolkit.language_model.schemas import (
19
+ LanguageModelMessageOptions,
16
20
  ResponsesLanguageModelStreamResponse,
17
- ResponsesMessageInput,
18
21
  )
19
22
 
20
23
 
21
24
  class _ResponsesStreamingHandlerKwargs(TypedDict, total=False):
22
- messages: Required[ResponsesMessageInput]
25
+ messages: Required[
26
+ str
27
+ | LanguageModelMessages
28
+ | Sequence[
29
+ ResponseInputItemParam | LanguageModelMessageOptions | ResponseOutputItem
30
+ ]
31
+ ]
23
32
  model_name: Required[str]
24
33
  tools: Sequence[LanguageModelToolDescription | ToolParam]
25
34
  content_chunks: list[ContentChunk]
@@ -1,8 +1,10 @@
1
- from typing import Any, Protocol, Required, Unpack
1
+ from typing import Any, Protocol, Required, Sequence, Unpack
2
2
 
3
3
  from openai.types.chat import ChatCompletionNamedToolChoiceParam
4
4
  from openai.types.responses import (
5
5
  ResponseIncludable,
6
+ ResponseInputItemParam,
7
+ ResponseOutputItem,
6
8
  ResponseTextConfigParam,
7
9
  ToolParam,
8
10
  response_create_params,
@@ -16,8 +18,8 @@ from unique_toolkit.chat.service import LanguageModelMessages
16
18
  from unique_toolkit.content import ContentChunk
17
19
  from unique_toolkit.language_model.infos import LanguageModelInfo
18
20
  from unique_toolkit.language_model.schemas import (
21
+ LanguageModelMessageOptions,
19
22
  ResponsesLanguageModelStreamResponse,
20
- ResponsesMessageInput,
21
23
  )
22
24
  from unique_toolkit.protocols.support import (
23
25
  ResponsesSupportCompleteWithReferences,
@@ -53,7 +55,13 @@ class LoopIterationRunner(Protocol):
53
55
  class _ResponsesLoopIterationRunnerKwargs(TypedDict, total=False):
54
56
  iteration_index: Required[int]
55
57
  streaming_handler: Required[ResponsesSupportCompleteWithReferences]
56
- messages: Required[ResponsesMessageInput]
58
+ messages: Required[
59
+ str
60
+ | LanguageModelMessages
61
+ | Sequence[
62
+ ResponseInputItemParam | LanguageModelMessageOptions | ResponseOutputItem
63
+ ]
64
+ ]
57
65
  model: Required[LanguageModelInfo]
58
66
  tools: list[LanguageModelToolDescription | ToolParam]
59
67
  content_chunks: list[ContentChunk]
@@ -1,14 +1,12 @@
1
1
  import json
2
2
  import logging
3
- from collections.abc import Sequence
4
- from typing import Any, TypeGuard, Unpack
3
+ from typing import Any, Unpack
5
4
 
6
5
  from openai import AsyncOpenAI
7
6
  from openai.types.responses import (
8
7
  Response,
9
8
  ResponseFunctionToolCall,
10
9
  ResponseInputItemParam,
11
- ResponseOutputItem,
12
10
  ToolParam,
13
11
  )
14
12
  from openai.types.responses.function_tool_param import FunctionToolParam
@@ -28,17 +26,13 @@ from unique_toolkit.agentic.loop_runner.middleware.planning.schema import (
28
26
  PlanningSchemaConfig,
29
27
  get_planning_schema,
30
28
  )
31
- from unique_toolkit.chat.responses_api import (
32
- _convert_messages_to_openai,
33
- convert_messages_to_openai,
34
- )
29
+ from unique_toolkit.chat.responses_api import convert_messages_to_openai
35
30
  from unique_toolkit.chat.service import LanguageModelStreamResponse
36
31
  from unique_toolkit.language_model import (
37
32
  LanguageModelAssistantMessage,
38
33
  LanguageModelUserMessage,
39
34
  )
40
35
  from unique_toolkit.language_model.schemas import (
41
- LanguageModelMessageOptions,
42
36
  LanguageModelMessages,
43
37
  ResponsesLanguageModelStreamResponse,
44
38
  )
@@ -51,30 +45,6 @@ _PLAN_TOOL_DESCRIPTION = (
51
45
  "Record the plan for the next step. Call this tool exactly once."
52
46
  )
53
47
 
54
-
55
- def _is_language_model_messages(
56
- msgs: Sequence[object],
57
- ) -> TypeGuard[list[LanguageModelMessageOptions]]:
58
- return len(msgs) > 0 and all(
59
- isinstance(m, LanguageModelMessageOptions) for m in msgs
60
- )
61
-
62
-
63
- def _is_response_input_items(
64
- msgs: Sequence[object],
65
- ) -> TypeGuard[list[ResponseInputItemParam]]:
66
- return len(msgs) > 0 and all(isinstance(m, dict) for m in msgs)
67
-
68
-
69
- def _is_response_output_items(
70
- msgs: Sequence[object],
71
- ) -> TypeGuard[list[ResponseOutputItem]]:
72
- return len(msgs) > 0 and all(
73
- isinstance(m, BaseModel) and not isinstance(m, LanguageModelMessageOptions)
74
- for m in msgs
75
- )
76
-
77
-
78
48
  # Kwargs from _ResponsesLoopIterationRunnerKwargs that make sense to forward to
79
49
  # the planning `responses.create` call. We deliberately exclude anything that
80
50
  # conflicts with the forced-tool-call setup (`tools`, `tool_choices`, `text`,
@@ -300,22 +270,6 @@ class ResponsesPlanningMiddleware(ResponsesLoopIterationRunner):
300
270
  kwargs["messages"].builder().append(assistant_message).build()
301
271
  )
302
272
  else:
303
- message_items = list(kwargs["messages"])
304
- assistant_items = _convert_messages_to_openai([assistant_message])
305
- if _is_language_model_messages(message_items):
306
- kwargs["messages"] = [*message_items, assistant_message]
307
- elif _is_response_input_items(message_items):
308
- kwargs["messages"] = [*message_items, *assistant_items]
309
- elif _is_response_output_items(message_items):
310
- kwargs["messages"] = [
311
- *_convert_messages_to_openai(message_items),
312
- *assistant_items,
313
- ]
314
- else:
315
- raise TypeError(
316
- "messages must be a homogeneous list of "
317
- "LanguageModelMessageOptions, ResponseInputItemParam dicts, "
318
- "or ResponseOutputItem models"
319
- )
273
+ kwargs["messages"] = list(kwargs["messages"]) + [assistant_message]
320
274
 
321
275
  return await self._loop_runner(**kwargs)
@@ -4,9 +4,9 @@ Logger Service for Unique Agentic tools.
4
4
  Target of the method is to extend the step tracking on all levels of the tool.
5
5
  """
6
6
 
7
+ from collections import defaultdict
7
8
  from logging import getLogger
8
9
 
9
- from unique_toolkit.agentic.message_log_order import next_message_log_order
10
10
  from unique_toolkit.chat.schemas import (
11
11
  MessageLog,
12
12
  MessageLogDetails,
@@ -18,6 +18,10 @@ from unique_toolkit.content.schemas import ContentReference
18
18
 
19
19
  _LOGGER = getLogger(__name__)
20
20
 
21
+ # Per-request counters for message log ordering - keyed by message_id
22
+ # This is a mandatory global variable since we have in the system a bug which makes it impossible to use it as a proper class variable.
23
+ _request_counters = defaultdict(int)
24
+
21
25
 
22
26
  class MessageStepLogger:
23
27
  """
@@ -51,7 +55,8 @@ class MessageStepLogger:
51
55
  Next order number for this specific request
52
56
  """
53
57
 
54
- return next_message_log_order(message_id=message_id)
58
+ _request_counters[message_id] += 1
59
+ return _request_counters[message_id]
55
60
 
56
61
  def create_message_log_entry(
57
62
  self,
@@ -48,7 +48,7 @@ def get_valid_assessments(
48
48
  or assessment["label"] not in ChatMessageAssessmentLabel
49
49
  ):
50
50
  logger.warning(
51
- "Unknown assistant label %s for assistant %s (sequence number: %s) will be ignored",
51
+ "Unkown assistant label %s for assistant %s (sequence number: %s) will be ignored",
52
52
  assessment["label"],
53
53
  display_name,
54
54
  sequence_number,
@@ -62,7 +62,7 @@ def _add_sub_agent_references_in_place(
62
62
  responses: list[SubAgentResponse],
63
63
  ) -> None:
64
64
  text = loop_response.message.text
65
- refs = list(loop_response.message.references or [])
65
+ refs = []
66
66
 
67
67
  for response in responses:
68
68
  sub_agent_refs = []
@@ -198,7 +198,7 @@ class SubAgentTool(Tool[SubAgentToolConfig]):
198
198
  )
199
199
 
200
200
  active_message_log = self._create_or_update_message_log(
201
- progress_message=f"<em>Executing sub agent with input: {tool_input}</em>",
201
+ progress_message=f"_Executing sub agent with input: {tool_input}_",
202
202
  active_message_log=active_message_log,
203
203
  )
204
204
 
@@ -268,7 +268,7 @@ class SubAgentTool(Tool[SubAgentToolConfig]):
268
268
 
269
269
  # Update message log entry to completed
270
270
  active_message_log = self._create_or_update_message_log(
271
- progress_message=f"<em>Completed sub agent with input: {tool_input}</em>",
271
+ progress_message=f"_Completed sub agent with input: {tool_input}_",
272
272
  status=MessageLogStatus.COMPLETED,
273
273
  active_message_log=active_message_log,
274
274
  )
@@ -3,11 +3,6 @@ from unique_toolkit.agentic.tools.experimental.open_file_tool import (
3
3
  OpenFileToolRuntime,
4
4
  OpenFileToolRuntimeConfig,
5
5
  )
6
- from unique_toolkit.agentic.tools.experimental.retrieve_search_scope_tool import (
7
- DisplayMode,
8
- RetrieveSearchScopeConfig,
9
- RetrieveSearchScopeTool,
10
- )
11
6
  from unique_toolkit.agentic.tools.experimental.todo import (
12
7
  TodoConfig,
13
8
  TodoItem,
@@ -19,12 +14,9 @@ from unique_toolkit.agentic.tools.experimental.todo import (
19
14
  )
20
15
 
21
16
  __all__ = [
22
- "DisplayMode",
23
17
  "OpenFileTool",
24
18
  "OpenFileToolRuntime",
25
19
  "OpenFileToolRuntimeConfig",
26
- "RetrieveSearchScopeConfig",
27
- "RetrieveSearchScopeTool",
28
20
  "TodoConfig",
29
21
  "TodoItem",
30
22
  "TodoItemInput",
@@ -13,18 +13,6 @@ from unique_toolkit.agentic.tools.schemas import BaseToolConfig
13
13
 
14
14
 
15
15
  class TodoConfig(BaseToolConfig):
16
- enabled: Annotated[
17
- bool,
18
- RJSFMetaTag.BooleanWidget.checkbox(
19
- help=(
20
- "Enable the Todo tool. When enabled, the agent can track tasks and update their status."
21
- ),
22
- ),
23
- ] = Field(
24
- default=False,
25
- description="Enable the Todo tool.",
26
- )
27
-
28
16
  display_name: str = Field(
29
17
  default="Progress",
30
18
  description="Human-readable label for task tracking shown in the Steps panel.",