unique_toolkit 2026.40.0__tar.gz → 2026.40.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 (431) hide show
  1. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/PKG-INFO +2 -2
  2. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/pyproject.toml +2 -2
  3. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/evaluation/hallucination/utils.py +2 -3
  4. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/evaluation/tests/test_hallucination_utils.py +0 -64
  5. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/feature_flags/feature_flags.py +6 -14
  6. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/loop_runner/__init__.py +0 -2
  7. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/loop_runner/runners/__init__.py +0 -6
  8. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/postprocessors/code_display.py +13 -19
  9. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/postprocessors/generated_files.py +37 -24
  10. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/tool/config.py +3 -3
  11. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic_table/service.py +17 -22
  12. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/chat/functions.py +0 -40
  13. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/chat/schemas.py +0 -6
  14. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/language_model/infos.py +0 -209
  15. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/services/chat_service.py +0 -31
  16. unique_toolkit-2026.40.0/unique_toolkit/agentic/loop_runner/runners/prompt_forced_tool/__init__.py +0 -9
  17. unique_toolkit-2026.40.0/unique_toolkit/agentic/loop_runner/runners/prompt_forced_tool/helpers.py +0 -32
  18. unique_toolkit-2026.40.0/unique_toolkit/agentic/loop_runner/runners/prompt_forced_tool/runner.py +0 -53
  19. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/README.md +0 -0
  20. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/__init__.py +0 -0
  21. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/_common/__init__.py +0 -0
  22. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/_common/_base_service.py +0 -0
  23. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/_common/_time_utils.py +0 -0
  24. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/_common/api_calling/human_verification_manager.py +0 -0
  25. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/_common/base_model_type_attribute.py +0 -0
  26. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/_common/chunk_relevancy_sorter/config.py +0 -0
  27. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/_common/chunk_relevancy_sorter/exception.py +0 -0
  28. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/_common/chunk_relevancy_sorter/schemas.py +0 -0
  29. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/_common/chunk_relevancy_sorter/service.py +0 -0
  30. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/_common/chunk_relevancy_sorter/tests/test_service.py +0 -0
  31. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/_common/config_checker/README.md +0 -0
  32. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/_common/config_checker/__init__.py +0 -0
  33. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/_common/config_checker/__main__.py +0 -0
  34. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/_common/config_checker/cli.py +0 -0
  35. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/_common/config_checker/differ.py +0 -0
  36. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/_common/config_checker/exporter.py +0 -0
  37. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/_common/config_checker/models.py +0 -0
  38. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/_common/config_checker/registry.py +0 -0
  39. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/_common/config_checker/validator.py +0 -0
  40. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/_common/default_language_model.py +0 -0
  41. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/_common/docx_generator/__init__.py +0 -0
  42. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/_common/docx_generator/config.py +0 -0
  43. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/_common/docx_generator/pandoc_converter.py +0 -0
  44. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/_common/docx_generator/schemas.py +0 -0
  45. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/_common/docx_generator/service.py +0 -0
  46. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/_common/docx_generator/template/Doc Template.docx +0 -0
  47. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/_common/endpoint_builder.py +0 -0
  48. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/_common/endpoint_requestor.py +0 -0
  49. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/_common/event_bus.py +0 -0
  50. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/_common/exception.py +0 -0
  51. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/_common/execution.py +0 -0
  52. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/_common/experimental/endpoint_builder.py +0 -0
  53. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/_common/experimental/endpoint_requestor.py +0 -0
  54. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/_common/experimental/write_up_agent/README.md +0 -0
  55. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/_common/experimental/write_up_agent/__init__.py +0 -0
  56. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/_common/experimental/write_up_agent/agent.py +0 -0
  57. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/_common/experimental/write_up_agent/config.py +0 -0
  58. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/_common/experimental/write_up_agent/examples/data.csv +0 -0
  59. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/_common/experimental/write_up_agent/examples/example_usage.py +0 -0
  60. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/_common/experimental/write_up_agent/schemas.py +0 -0
  61. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/_common/experimental/write_up_agent/services/__init__.py +0 -0
  62. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/__init__.py +0 -0
  63. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/exceptions.py +0 -0
  64. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/service.py +0 -0
  65. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/utils.py +0 -0
  66. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/__init__.py +0 -0
  67. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/config.py +0 -0
  68. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/exceptions.py +0 -0
  69. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/prompts/config.py +0 -0
  70. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/prompts/system_prompt.j2 +0 -0
  71. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/prompts/user_prompt.j2 +0 -0
  72. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/service.py +0 -0
  73. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/__init__.py +0 -0
  74. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/default_template.j2 +0 -0
  75. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/exceptions.py +0 -0
  76. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/service.py +0 -0
  77. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/utils.py +0 -0
  78. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/_common/experimental/write_up_agent/utils.py +0 -0
  79. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/_common/feature_flags/schema.py +0 -0
  80. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/_common/metadata_filter_scope.py +0 -0
  81. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/_common/pydantic/rjsf_tags.py +0 -0
  82. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/_common/pydantic_helpers.py +0 -0
  83. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/_common/referencing.py +0 -0
  84. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/_common/string_utilities.py +0 -0
  85. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/_common/tests/test_referencing.py +0 -0
  86. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/_common/tests/test_string_utilities.py +0 -0
  87. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/_common/token/__init__.py +0 -0
  88. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/_common/token/image_token_counting.py +0 -0
  89. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/_common/token/token_counting.py +0 -0
  90. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/_common/token/tokenizers/deepseek/tokenizer.json +0 -0
  91. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/_common/token/tokenizers/qwen/tokenizer.json +0 -0
  92. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/_common/utils/__init__.py +0 -0
  93. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/_common/utils/files.py +0 -0
  94. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/_common/utils/image/encode.py +0 -0
  95. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/_common/utils/jinja/helpers.py +0 -0
  96. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/_common/utils/jinja/render.py +0 -0
  97. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/_common/utils/jinja/schema.py +0 -0
  98. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/_common/utils/jinja/utils.py +0 -0
  99. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/_common/utils/structured_output/__init__.py +0 -0
  100. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/_common/utils/structured_output/schema.py +0 -0
  101. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/_common/utils/write_configuration.py +0 -0
  102. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/_common/validate_required_values.py +0 -0
  103. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/_common/validators.py +0 -0
  104. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/__init__.py +0 -0
  105. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/debug_info_manager/debug_info_manager.py +0 -0
  106. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/debug_info_manager/test/test_debug_info_manager.py +0 -0
  107. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/evaluation/config.py +0 -0
  108. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/evaluation/context_relevancy/prompts/__init__.py +0 -0
  109. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/evaluation/context_relevancy/prompts/system_prompt.j2 +0 -0
  110. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/evaluation/context_relevancy/prompts/user_prompt.j2 +0 -0
  111. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/evaluation/context_relevancy/schema.py +0 -0
  112. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/evaluation/context_relevancy/service.py +0 -0
  113. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/evaluation/evaluation_manager.py +0 -0
  114. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/evaluation/exception.py +0 -0
  115. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/evaluation/hallucination/constants.py +0 -0
  116. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/evaluation/hallucination/hallucination_evaluation.py +0 -0
  117. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/evaluation/hallucination/prompts/__init__.py +0 -0
  118. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/evaluation/hallucination/prompts/system_prompt.j2 +0 -0
  119. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/evaluation/hallucination/prompts/user_prompt.j2 +0 -0
  120. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/evaluation/hallucination/service.py +0 -0
  121. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/evaluation/output_parser.py +0 -0
  122. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/evaluation/schemas.py +0 -0
  123. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/evaluation/tests/fixtures.py +0 -0
  124. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/evaluation/tests/test_config.py +0 -0
  125. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/evaluation/tests/test_context_relevancy_service.py +0 -0
  126. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/evaluation/tests/test_hallucination_constants.py +0 -0
  127. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/evaluation/tests/test_hallucination_external_context.py +0 -0
  128. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/evaluation/tests/test_output_parser.py +0 -0
  129. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/evaluation/tests/test_prompt_loaders.py +0 -0
  130. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/evaluation/utils.py +0 -0
  131. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/feature_flags/__init__.py +0 -0
  132. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/history_manager/history_construction_with_contents.py +0 -0
  133. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/history_manager/history_manager.py +0 -0
  134. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/history_manager/loop_token_reducer.py +0 -0
  135. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/history_manager/settings.py +0 -0
  136. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/history_manager/utils.py +0 -0
  137. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/loop_runner/_iteration_handler_utils.py +0 -0
  138. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/loop_runner/_responses_iteration_handler_utils.py +0 -0
  139. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/loop_runner/_responses_stream_handler_utils.py +0 -0
  140. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/loop_runner/_stream_handler_utils.py +0 -0
  141. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/loop_runner/base.py +0 -0
  142. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/loop_runner/middleware/__init__.py +0 -0
  143. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/loop_runner/middleware/planning/__init__.py +0 -0
  144. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/loop_runner/middleware/planning/planning.py +0 -0
  145. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/loop_runner/middleware/planning/schema.py +0 -0
  146. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/loop_runner/runners/basic.py +0 -0
  147. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/loop_runner/runners/mistral/__init__.py +0 -0
  148. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/loop_runner/runners/mistral/mistral_runner.py +0 -0
  149. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/loop_runner/runners/qwen/__init__.py +0 -0
  150. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/loop_runner/runners/qwen/helpers.py +0 -0
  151. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/loop_runner/runners/qwen/qwen_runner.py +0 -0
  152. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/message_log_manager/__init__.py +0 -0
  153. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/message_log_manager/service.py +0 -0
  154. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/message_log_order.py +0 -0
  155. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/postprocessor/postprocessor_manager.py +0 -0
  156. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/reference_manager/reference_manager.py +0 -0
  157. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/reference_manager/tests/test_external_context.py +0 -0
  158. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/responses_api/__init__.py +0 -0
  159. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/responses_api/postprocessors/code_display.py +0 -0
  160. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/responses_api/postprocessors/generated_files.py +0 -0
  161. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/responses_api/stream_handler.py +0 -0
  162. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/short_term_memory_manager/persistent_short_term_memory_manager.py +0 -0
  163. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/thinking_manager/thinking_manager.py +0 -0
  164. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/tools/__init__.py +0 -0
  165. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/tools/a2a/__init__.py +0 -0
  166. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/tools/a2a/config.py +0 -0
  167. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/tools/a2a/evaluation/__init__.py +0 -0
  168. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/tools/a2a/evaluation/_utils.py +0 -0
  169. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/tools/a2a/evaluation/config.py +0 -0
  170. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/tools/a2a/evaluation/evaluator.py +0 -0
  171. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/tools/a2a/evaluation/summarization_user_message.j2 +0 -0
  172. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/tools/a2a/manager.py +0 -0
  173. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/tools/a2a/postprocessing/__init__.py +0 -0
  174. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/tools/a2a/postprocessing/_display_utils.py +0 -0
  175. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/tools/a2a/postprocessing/_ref_utils.py +0 -0
  176. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/tools/a2a/postprocessing/config.py +0 -0
  177. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/tools/a2a/postprocessing/display.py +0 -0
  178. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/tools/a2a/postprocessing/references.py +0 -0
  179. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_display.py +0 -0
  180. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_display_utils.py +0 -0
  181. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_ref_utils.py +0 -0
  182. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_references.py +0 -0
  183. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/tools/a2a/prompts.py +0 -0
  184. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/tools/a2a/response_watcher/__init__.py +0 -0
  185. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/tools/a2a/response_watcher/service.py +0 -0
  186. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/tools/a2a/tool/__init__.py +0 -0
  187. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/tools/a2a/tool/_memory.py +0 -0
  188. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/tools/a2a/tool/_schema.py +0 -0
  189. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/tools/a2a/tool/config.py +0 -0
  190. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/tools/a2a/tool/service.py +0 -0
  191. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/tools/a2a/tool/test/test_service_utils.py +0 -0
  192. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/tools/agent_chunks_hanlder.py +0 -0
  193. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/tools/config.py +0 -0
  194. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/tools/experimental/__init__.py +0 -0
  195. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/tools/experimental/ask_user_tool/__init__.py +0 -0
  196. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/tools/experimental/ask_user_tool/config.py +0 -0
  197. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/tools/experimental/ask_user_tool/tool.py +0 -0
  198. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/tools/experimental/open_file_tool/__init__.py +0 -0
  199. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/tools/experimental/open_file_tool/config.py +0 -0
  200. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/tools/experimental/open_file_tool/runtime.py +0 -0
  201. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/tools/experimental/open_file_tool/tool.py +0 -0
  202. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/tools/experimental/retrieve_search_scope_tool/__init__.py +0 -0
  203. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/tools/experimental/retrieve_search_scope_tool/config.py +0 -0
  204. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/tools/experimental/retrieve_search_scope_tool/tool.py +0 -0
  205. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/tools/experimental/todo/__init__.py +0 -0
  206. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/tools/experimental/todo/config.py +0 -0
  207. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/tools/experimental/todo/prompts/__init__.py +0 -0
  208. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/tools/experimental/todo/prompts/execution_reminder.j2 +0 -0
  209. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/tools/experimental/todo/prompts/system_prompt.j2 +0 -0
  210. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/tools/experimental/todo/prompts/tool_description.j2 +0 -0
  211. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/tools/experimental/todo/prompts/verification_nudge.j2 +0 -0
  212. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/tools/experimental/todo/schemas.py +0 -0
  213. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/tools/experimental/todo/service.py +0 -0
  214. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/tools/factory.py +0 -0
  215. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/tools/mcp/__init__.py +0 -0
  216. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/tools/mcp/manager.py +0 -0
  217. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/tools/mcp/models.py +0 -0
  218. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/tools/mcp/tool_wrapper.py +0 -0
  219. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/tools/names.py +0 -0
  220. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/tools/openai_builtin/__init__.py +0 -0
  221. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/tools/openai_builtin/base.py +0 -0
  222. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/__init__.py +0 -0
  223. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/activator/__init__.py +0 -0
  224. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/activator/config.py +0 -0
  225. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/activator/service.py +0 -0
  226. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/builder/__init__.py +0 -0
  227. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/builder/_container.py +0 -0
  228. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/builder/_files.py +0 -0
  229. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/builder/_memory.py +0 -0
  230. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/builder/builder.py +0 -0
  231. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/config.py +0 -0
  232. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/postprocessors/__init__.py +0 -0
  233. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/postprocessors/artifacts.py +0 -0
  234. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/postprocessors/office_preview.py +0 -0
  235. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/schemas.py +0 -0
  236. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/tool/__init__.py +0 -0
  237. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/tool/service.py +0 -0
  238. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/tools/openai_builtin/manager.py +0 -0
  239. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/tools/run_context.py +0 -0
  240. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/tools/schemas.py +0 -0
  241. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/tools/test/test_mcp_manager.py +0 -0
  242. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/tools/test/test_tool_progress_reporter.py +0 -0
  243. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/tools/tool.py +0 -0
  244. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/tools/tool_manager.py +0 -0
  245. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/tools/tool_progress_reporter.py +0 -0
  246. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/tools/utils/__init__.py +0 -0
  247. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/tools/utils/source_handling/__init__.py +0 -0
  248. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/tools/utils/source_handling/schema.py +0 -0
  249. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/tools/utils/source_handling/source_formatting.py +0 -0
  250. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic/tools/utils/source_handling/tests/test_source_formatting.py +0 -0
  251. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic_table/__init__.py +0 -0
  252. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic_table/schemas.py +0 -0
  253. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/agentic_table/synthetic_chat_event.py +0 -0
  254. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/app/__init__.py +0 -0
  255. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/app/chat_event_filter_options_settings.py +0 -0
  256. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/app/dev_util.py +0 -0
  257. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/app/fast_api_factory.py +0 -0
  258. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/app/feature_flags.py +0 -0
  259. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/app/find_env_file.py +0 -0
  260. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/app/init_logging.py +0 -0
  261. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/app/init_sdk.py +0 -0
  262. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/app/performance/async_tasks.py +0 -0
  263. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/app/performance/async_wrapper.py +0 -0
  264. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/app/schemas.py +0 -0
  265. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/app/unique_settings.py +0 -0
  266. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/app/verification.py +0 -0
  267. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/app/webhook.py +0 -0
  268. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/chat/__init__.py +0 -0
  269. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/chat/cancellation.py +0 -0
  270. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/chat/constants.py +0 -0
  271. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/chat/deprecated/__init__.py +0 -0
  272. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/chat/deprecated/service.py +0 -0
  273. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/chat/rendering.py +0 -0
  274. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/chat/responses_api.py +0 -0
  275. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/chat/service.py +0 -0
  276. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/chat/state.py +0 -0
  277. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/chat/utils.py +0 -0
  278. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/content/__init__.py +0 -0
  279. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/content/constants.py +0 -0
  280. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/content/functions.py +0 -0
  281. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/content/schemas.py +0 -0
  282. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/content/service.py +0 -0
  283. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/content/smart_rules.py +0 -0
  284. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/content/utils.py +0 -0
  285. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/data_extraction/README.md +0 -0
  286. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/data_extraction/__init__.py +0 -0
  287. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/data_extraction/augmented/__init__.py +0 -0
  288. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/data_extraction/augmented/service.py +0 -0
  289. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/data_extraction/base.py +0 -0
  290. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/data_extraction/basic/__init__.py +0 -0
  291. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/data_extraction/basic/config.py +0 -0
  292. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/data_extraction/basic/prompt.py +0 -0
  293. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/data_extraction/basic/service.py +0 -0
  294. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/elicitation/__init__.py +0 -0
  295. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/elicitation/constants.py +0 -0
  296. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/elicitation/exceptions.py +0 -0
  297. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/elicitation/functions.py +0 -0
  298. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/elicitation/schemas.py +0 -0
  299. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/elicitation/service.py +0 -0
  300. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/embedding/__init__.py +0 -0
  301. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/embedding/constants.py +0 -0
  302. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/embedding/functions.py +0 -0
  303. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/embedding/schemas.py +0 -0
  304. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/embedding/service.py +0 -0
  305. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/embedding/utils.py +0 -0
  306. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/experimental/README.md +0 -0
  307. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/experimental/__init__.py +0 -0
  308. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/experimental/_internal/__init__.py +0 -0
  309. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/experimental/_internal/streaming/__init__.py +0 -0
  310. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/experimental/_internal/streaming/common.py +0 -0
  311. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/experimental/_internal/streaming/pattern_replacer.py +0 -0
  312. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/experimental/components/__init__.py +0 -0
  313. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/experimental/components/_base.py +0 -0
  314. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/experimental/components/content_tree/__init__.py +0 -0
  315. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/experimental/components/content_tree/functions.py +0 -0
  316. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/experimental/components/content_tree/schemas.py +0 -0
  317. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/experimental/components/content_tree/service.py +0 -0
  318. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/experimental/components/internal_search/__init__.py +0 -0
  319. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/experimental/components/internal_search/base/__init__.py +0 -0
  320. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/experimental/components/internal_search/base/config.py +0 -0
  321. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/experimental/components/internal_search/base/schemas.py +0 -0
  322. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/experimental/components/internal_search/base/service.py +0 -0
  323. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/experimental/components/internal_search/base/utils.py +0 -0
  324. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/experimental/components/internal_search/chat/__init__.py +0 -0
  325. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/experimental/components/internal_search/chat/config.py +0 -0
  326. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/experimental/components/internal_search/chat/schemas.py +0 -0
  327. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/experimental/components/internal_search/chat/service.py +0 -0
  328. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/experimental/components/internal_search/knowledge_base/__init__.py +0 -0
  329. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/experimental/components/internal_search/knowledge_base/config.py +0 -0
  330. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/experimental/components/internal_search/knowledge_base/schemas.py +0 -0
  331. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/experimental/components/internal_search/knowledge_base/service.py +0 -0
  332. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/experimental/components/internal_search/post_processing/__init__.py +0 -0
  333. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/experimental/components/internal_search/post_processing/config.py +0 -0
  334. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/experimental/components/internal_search/post_processing/service.py +0 -0
  335. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/experimental/content_tree/__init__.py +0 -0
  336. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/experimental/identity/__init__.py +0 -0
  337. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/experimental/integrations/__init__.py +0 -0
  338. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/experimental/integrations/openai/__init__.py +0 -0
  339. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/experimental/integrations/openai/streaming/__init__.py +0 -0
  340. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/__init__.py +0 -0
  341. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/_async_bridge.py +0 -0
  342. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/_model_params.py +0 -0
  343. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/chat_completions/__init__.py +0 -0
  344. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/chat_completions/complete_with_references.py +0 -0
  345. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/chat_completions/stream_event_router.py +0 -0
  346. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/chat_completions/text_event_handler.py +0 -0
  347. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/chat_completions/tool_call_event_handler.py +0 -0
  348. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/events.py +0 -0
  349. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/protocols/__init__.py +0 -0
  350. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/protocols/chat_completions.py +0 -0
  351. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/protocols/responses.py +0 -0
  352. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/responses/__init__.py +0 -0
  353. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/responses/code_interpreter_event_handler.py +0 -0
  354. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/responses/complete_with_references.py +0 -0
  355. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/responses/completed_event_handler.py +0 -0
  356. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/responses/stream_event_router.py +0 -0
  357. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/responses/text_delta_event_handler.py +0 -0
  358. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/responses/tool_call_event_handler.py +0 -0
  359. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/subscribers/__init__.py +0 -0
  360. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/subscribers/message_persister.py +0 -0
  361. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/subscribers/progress_log_persister.py +0 -0
  362. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/experimental/resources/__init__.py +0 -0
  363. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/experimental/resources/content_folder/__init__.py +0 -0
  364. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/experimental/resources/content_folder/functions.py +0 -0
  365. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/experimental/resources/content_folder/schemas.py +0 -0
  366. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/experimental/resources/content_folder/service.py +0 -0
  367. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/experimental/resources/facades/__init__.py +0 -0
  368. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/experimental/resources/facades/identity/__init__.py +0 -0
  369. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/experimental/resources/facades/identity/service.py +0 -0
  370. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/experimental/resources/feature_flags/README.md +0 -0
  371. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/experimental/resources/feature_flags/__init__.py +0 -0
  372. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/experimental/resources/feature_flags/_graphql_client.py +0 -0
  373. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/experimental/resources/feature_flags/_ttl_cache.py +0 -0
  374. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/experimental/resources/feature_flags/client.py +0 -0
  375. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/experimental/resources/feature_flags/schemas.py +0 -0
  376. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/experimental/resources/feature_flags/settings.py +0 -0
  377. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/experimental/resources/group/__init__.py +0 -0
  378. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/experimental/resources/group/functions.py +0 -0
  379. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/experimental/resources/group/schemas.py +0 -0
  380. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/experimental/resources/group/service.py +0 -0
  381. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/experimental/resources/scheduled_task/__init__.py +0 -0
  382. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/experimental/resources/scheduled_task/cron.py +0 -0
  383. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/experimental/resources/scheduled_task/functions.py +0 -0
  384. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/experimental/resources/scheduled_task/schemas.py +0 -0
  385. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/experimental/resources/scheduled_task/service.py +0 -0
  386. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/experimental/resources/user/__init__.py +0 -0
  387. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/experimental/resources/user/functions.py +0 -0
  388. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/experimental/resources/user/schemas.py +0 -0
  389. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/experimental/resources/user/service.py +0 -0
  390. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/experimental/testing/__init__.py +0 -0
  391. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/framework_utilities/__init__.py +0 -0
  392. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/framework_utilities/langchain/__init__.py +0 -0
  393. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/framework_utilities/langchain/client.py +0 -0
  394. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/framework_utilities/langchain/history.py +0 -0
  395. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/framework_utilities/openai/__init__.py +0 -0
  396. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/framework_utilities/openai/client.py +0 -0
  397. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/framework_utilities/openai/message_builder.py +0 -0
  398. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/framework_utilities/utils.py +0 -0
  399. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/language_model/__init__.py +0 -0
  400. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/language_model/_responses_api_utils.py +0 -0
  401. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/language_model/builder.py +0 -0
  402. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/language_model/constants.py +0 -0
  403. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/language_model/default_language_model.py +0 -0
  404. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/language_model/functions.py +0 -0
  405. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/language_model/invocation_stats.py +0 -0
  406. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/language_model/model_costs.py +0 -0
  407. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/language_model/prompt.py +0 -0
  408. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/language_model/reference.py +0 -0
  409. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/language_model/schemas.py +0 -0
  410. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/language_model/service.py +0 -0
  411. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/language_model/settings.py +0 -0
  412. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/language_model/stream_transform.py +0 -0
  413. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/language_model/utils.py +0 -0
  414. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/monitoring/__init__.py +0 -0
  415. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/monitoring/gunicorn.py +0 -0
  416. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/monitoring/memory.py +0 -0
  417. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/monitoring/middleware.py +0 -0
  418. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/monitoring/registry.py +0 -0
  419. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/monitoring/tracing.py +0 -0
  420. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/protocols/support.py +0 -0
  421. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/services/__init__.py +0 -0
  422. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/services/factory.py +0 -0
  423. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/services/knowledge_base.py +0 -0
  424. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/short_term_memory/__init__.py +0 -0
  425. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/short_term_memory/constants.py +0 -0
  426. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/short_term_memory/functions.py +0 -0
  427. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/short_term_memory/schemas.py +0 -0
  428. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/short_term_memory/service.py +0 -0
  429. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/smart_rules/__init__.py +0 -0
  430. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.0.dev1}/unique_toolkit/smart_rules/compile.py +0 -0
  431. {unique_toolkit-2026.40.0 → unique_toolkit-2026.40.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.40.0
3
+ Version: 2026.40.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>
@@ -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.40.0
19
+ Requires-Dist: unique-sdk>=2026.40.0.dev0,<2026.40.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.40.0"
3
+ version = "2026.40.0.dev1"
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.40.0",
31
+ "unique-sdk>=2026.40.0.dev0,<2026.40.0rc0",
32
32
  "jambo>=0.1.2,<0.2",
33
33
  "jinja2>=3.1.6,<4",
34
34
  "docxtpl>=0.20.1,<0.21",
@@ -203,8 +203,7 @@ def _compose_msgs(
203
203
  )
204
204
  system_msg = LanguageModelSystemMessage(content=system_msg_content)
205
205
 
206
- # Render user message. Pass history text only when history exists so the
207
- # template can omit an empty conversation section.
206
+ # Render user message
208
207
  user_msg_content = render_template(
209
208
  user_template,
210
209
  input_text=input.input_text,
@@ -212,7 +211,7 @@ def _compose_msgs(
212
211
  if has_context
213
212
  else None,
214
213
  history_messages_text=input.get_joined_history_texts(tag_name="conversation")
215
- if has_context and input.history_messages
214
+ if has_context
216
215
  else None,
217
216
  output_text=input.output_text,
218
217
  )
@@ -1224,67 +1224,3 @@ def test_get_msgs__ignores_context_images__when_model_lacks_vision() -> None:
1224
1224
  # Assert
1225
1225
  assert result.root[0].content == no_context_result.root[0].content
1226
1226
  assert isinstance(result.root[1].content, str)
1227
-
1228
-
1229
- @pytest.mark.unit
1230
- def test_compose_msgs__omits_conversation_section__when_history_is_empty():
1231
- """A single-turn evaluation must not be shown an empty conversation.
1232
-
1233
- The template guards the section with `{% if history_messages_text %}`,
1234
- and the getter returns a truthy placeholder when there is no history, so
1235
- the guard used to never fire: every caller evaluating one turn shipped a
1236
- `Conversation:` section whose body said there was no conversation, while
1237
- the system prompt announced one.
1238
- """
1239
- msgs = _compose_msgs(
1240
- EvaluationMetricInput(
1241
- input_text="What is the policy rate?",
1242
- context_texts=["The policy rate is 0.25%."],
1243
- history_messages=[],
1244
- output_text="0.25%.",
1245
- ),
1246
- HallucinationConfig(),
1247
- has_context=True,
1248
- )
1249
-
1250
- user_content = msgs.root[-1].content
1251
- assert isinstance(user_content, str)
1252
- assert "Conversation:" not in user_content
1253
- assert "<No conversation texts provided>" not in user_content
1254
- # The references the model does have must still be there.
1255
- assert "The policy rate is 0.25%." in user_content
1256
-
1257
-
1258
- @pytest.mark.unit
1259
- def test_compose_msgs__keeps_conversation_section__when_history_is_present():
1260
- msgs = _compose_msgs(
1261
- EvaluationMetricInput(
1262
- input_text="And in March?",
1263
- context_texts=["The March rate was 0.50%."],
1264
- history_messages=[
1265
- ChatMessage(
1266
- id="msg_1",
1267
- chat_id="chat_1",
1268
- previous_message_id=None,
1269
- role=LanguageModelMessageRole.USER,
1270
- text="What is the policy rate?",
1271
- ),
1272
- ChatMessage(
1273
- id="msg_2",
1274
- chat_id="chat_1",
1275
- previous_message_id="msg_1",
1276
- role=LanguageModelMessageRole.ASSISTANT,
1277
- text="0.25%.",
1278
- ),
1279
- ],
1280
- output_text="0.50%.",
1281
- ),
1282
- HallucinationConfig(),
1283
- has_context=True,
1284
- )
1285
-
1286
- user_content = msgs.root[-1].content
1287
- assert isinstance(user_content, str)
1288
- assert "Conversation:" in user_content
1289
- assert "What is the policy rate?" in user_content
1290
- assert "<No conversation texts provided>" not in user_content
@@ -23,6 +23,10 @@ class FeatureFlagNames(StrEnum):
23
23
  "FEATURE_FLAG_ENABLE_MCP_METADATA_FALLBACK_UN_19145"
24
24
  )
25
25
  enable_html_rendering_un_15131 = "FEATURE_FLAG_ENABLE_HTML_RENDERING_UN_15131"
26
+ enable_code_execution_fence_un_17972 = (
27
+ "FEATURE_FLAG_ENABLE_CODE_EXECUTION_FENCE_UN_17972"
28
+ )
29
+ enable_html_with_fence_un_17927 = "FEATURE_FLAG_ENABLE_HTML_WITH_FENCE_UN_17927"
26
30
  enable_web_search_argument_screening_un_18741 = (
27
31
  "FEATURE_FLAG_ENABLE_WEB_SEARCH_ARGUMENT_SCREENING_UN_18741"
28
32
  )
@@ -106,24 +110,12 @@ class FeatureFlags(BaseSettings):
106
110
 
107
111
  enable_code_execution_fence_un_17972: FeatureFlag = Field(
108
112
  default=FeatureFlag(False),
109
- description=(
110
- "Retired: replaced by the `enable_code_execution_fence` config field "
111
- "on ShowExecutedCodePostprocessorConfig (default true). "
112
- "No code reads this field anymore. Kept only so removing it doesn't "
113
- "trip the config-checker's breaking-change gate on this settings "
114
- "model; delete once that checker allows field removal."
115
- ),
113
+ description="Emit codeExecution fences in message.text for code interpreter outputs (UN-17972). When disabled, inline file refs are kept as-is. Can be 'true' or comma-separated company IDs.",
116
114
  )
117
115
 
118
116
  enable_html_with_fence_un_17927: FeatureFlag = Field(
119
117
  default=FeatureFlag(False),
120
- description=(
121
- "Retired: replaced by the `enable_html_with_fence` config field "
122
- "on ShowExecutedCodePostprocessorConfig (default true). "
123
- "No code reads this field anymore. Kept only so removing it doesn't "
124
- "trip the config-checker's breaking-change gate on this settings "
125
- "model; delete once that checker allows field removal."
126
- ),
118
+ description="Render HTML code interpreter files as htmlWithSource fences instead of HtmlRendering blocks (UN-17927). Requires enable_code_execution_fence_un_17972 to also be enabled. Can be 'true' or comma-separated company IDs.",
127
119
  )
128
120
 
129
121
  enable_web_search_argument_screening_un_18741: FeatureFlag = Field(
@@ -21,7 +21,6 @@ from unique_toolkit.agentic.loop_runner.runners import (
21
21
  BasicLoopIterationRunner,
22
22
  BasicLoopIterationRunnerConfig,
23
23
  MistralLoopIterationRunner,
24
- PromptForcedToolLoopIterationRunner,
25
24
  QwenLoopIterationRunner,
26
25
  ResponsesBasicLoopIterationRunner,
27
26
  )
@@ -35,7 +34,6 @@ __all__ = [
35
34
  "BasicLoopIterationRunnerConfig",
36
35
  "BasicLoopIterationRunner",
37
36
  "MistralLoopIterationRunner",
38
- "PromptForcedToolLoopIterationRunner",
39
37
  "QwenLoopIterationRunner",
40
38
  "handle_forced_tools_iteration",
41
39
  "handle_last_iteration",
@@ -6,10 +6,6 @@ from unique_toolkit.agentic.loop_runner.runners.basic import (
6
6
  from unique_toolkit.agentic.loop_runner.runners.mistral import (
7
7
  MistralLoopIterationRunner,
8
8
  )
9
- from unique_toolkit.agentic.loop_runner.runners.prompt_forced_tool import (
10
- PROMPT_FORCED_TOOL_CALL_INSTRUCTION,
11
- PromptForcedToolLoopIterationRunner,
12
- )
13
9
  from unique_toolkit.agentic.loop_runner.runners.qwen import (
14
10
  QWEN_FORCED_TOOL_CALL_INSTRUCTION,
15
11
  QWEN_LAST_ITERATION_INSTRUCTION,
@@ -22,8 +18,6 @@ __all__ = [
22
18
  "BasicLoopIterationRunner",
23
19
  "ResponsesBasicLoopIterationRunner",
24
20
  "MistralLoopIterationRunner",
25
- "PROMPT_FORCED_TOOL_CALL_INSTRUCTION",
26
- "PromptForcedToolLoopIterationRunner",
27
21
  "QwenLoopIterationRunner",
28
22
  "QWEN_FORCED_TOOL_CALL_INSTRUCTION",
29
23
  "QWEN_LAST_ITERATION_INSTRUCTION",
@@ -6,10 +6,15 @@ from typing import override
6
6
  from pydantic import BaseModel, Field
7
7
  from pydantic.json_schema import SkipJsonSchema
8
8
 
9
+ from unique_toolkit.agentic.feature_flags import FeatureFlagNames
9
10
  from unique_toolkit.agentic.postprocessor.postprocessor_manager import (
10
11
  ResponsesApiPostprocessor,
11
12
  )
12
13
  from unique_toolkit.agentic.tools.config import get_configuration_dict
14
+ from unique_toolkit.experimental.resources.feature_flags import (
15
+ COMPANY_ID_PLACEHOLDER,
16
+ is_flag_enabled,
17
+ )
13
18
  from unique_toolkit.language_model.schemas import ResponsesLanguageModelStreamResponse
14
19
 
15
20
  _TEMPLATE = """
@@ -34,22 +39,6 @@ class ShowExecutedCodePostprocessorConfig(BaseModel):
34
39
  default=True,
35
40
  description="Show the executed source code to the user",
36
41
  )
37
- enable_code_execution_fence: bool = Field(
38
- default=True,
39
- description=(
40
- "Show generated files as interactive cards with a built-in code view "
41
- "and hide the legacy collapsible code block below."
42
- ),
43
- )
44
- enable_html_with_fence: bool = Field(
45
- default=True,
46
- description=(
47
- "Show generated HTML files as interactive cards with a built-in code "
48
- "view instead of a plain rendered HTML block. Has no effect on its "
49
- "own: 'enable_code_execution_fence' must be on as well. While that "
50
- "switch is off, HTML files stay a plain rendered HTML block."
51
- ),
52
- )
53
42
  remove_from_history: SkipJsonSchema[bool] = (
54
43
  Field( # At the moment, it's not possible to keep executed code in the history
55
44
  default=True,
@@ -66,15 +55,20 @@ class ShowExecutedCodePostprocessor(ResponsesApiPostprocessor):
66
55
  def __init__(
67
56
  self,
68
57
  config: ShowExecutedCodePostprocessorConfig,
58
+ company_id: str | None = None,
69
59
  ):
70
60
  super().__init__(self.__class__.__name__)
71
61
  self._config = config
72
- # When fences are enabled, the fence itself shows the executed code,
73
- # so this legacy <details> display must stay off.
74
- self._is_enabled = config.enable and not config.enable_code_execution_fence
62
+ self._company_id = company_id
63
+ # Resolved in run() (before apply_postprocessing_to_response) since flag evaluation is async.
64
+ self._is_enabled = False
75
65
 
76
66
  @override
77
67
  async def run(self, loop_response: ResponsesLanguageModelStreamResponse) -> None:
68
+ self._is_enabled = self._config.enable and not await is_flag_enabled(
69
+ FeatureFlagNames.enable_code_execution_fence_un_17972,
70
+ company_id=self._company_id or COMPANY_ID_PLACEHOLDER,
71
+ )
78
72
  if self._is_enabled:
79
73
  await asyncio.sleep(self._config.sleep_time_before_display)
80
74
 
@@ -21,6 +21,7 @@ from tenacity import (
21
21
 
22
22
  from unique_toolkit import ChatService
23
23
  from unique_toolkit._common.execution import failsafe_async
24
+ from unique_toolkit.agentic.feature_flags import FeatureFlagNames
24
25
  from unique_toolkit.agentic.postprocessor.postprocessor_manager import (
25
26
  ResponsesApiPostprocessor,
26
27
  )
@@ -39,6 +40,10 @@ from unique_toolkit.agentic.tools.openai_builtin.code_interpreter.schemas import
39
40
  )
40
41
  from unique_toolkit.content.schemas import ContentReference
41
42
  from unique_toolkit.content.service import ContentService
43
+ from unique_toolkit.experimental.resources.feature_flags import (
44
+ COMPANY_ID_PLACEHOLDER,
45
+ is_flag_enabled,
46
+ )
42
47
  from unique_toolkit.language_model.schemas import ResponsesLanguageModelStreamResponse
43
48
  from unique_toolkit.services.knowledge_base import KnowledgeBaseService
44
49
  from unique_toolkit.short_term_memory.service import ShortTermMemoryService
@@ -371,8 +376,6 @@ class DisplayCodeInterpreterFilesPostProcessor(
371
376
  company_id: str | None = None,
372
377
  user_id: str | None = None,
373
378
  chat_id: str | None = None,
374
- code_execution_fence_enabled: bool = True,
375
- html_with_fence_enabled: bool = True,
376
379
  ) -> None:
377
380
  super().__init__(self.__class__.__name__)
378
381
 
@@ -380,6 +383,7 @@ class DisplayCodeInterpreterFilesPostProcessor(
380
383
  self._chat_service = chat_service
381
384
  self._client = client
382
385
  self._config = config
386
+ self._company_id = company_id
383
387
 
384
388
  if self._chat_service is None:
385
389
  raise ValueError("ChatService is required if uploadToChat is True")
@@ -400,11 +404,9 @@ class DisplayCodeInterpreterFilesPostProcessor(
400
404
  self._file_size_map: dict[str, int] = {}
401
405
  self._container_files: list[CodeInterpreterContainerFile] = []
402
406
 
403
- # Both switches are plain config values now (were FFs UN-17972 / UN-17927).
404
- # They live on ShowExecutedCodePostprocessorConfig ("Code display" on the
405
- # config page) and are passed in by the orchestrator.
406
- self._fence_enabled = code_execution_fence_enabled
407
- self._html_fence_enabled = html_with_fence_enabled
407
+ # Resolved in run() (before apply_postprocessing_to_response) since flag evaluation is async.
408
+ self._fence_ff_on = False
409
+ self._html_fence_ff_on = False
408
410
 
409
411
  def _build_retry(self) -> AsyncRetrying:
410
412
  """Build a tenacity retry policy from the current config.
@@ -509,6 +511,17 @@ class DisplayCodeInterpreterFilesPostProcessor(
509
511
  run_t0 = time.monotonic()
510
512
  self._log.info("run() started — fetching and uploading code interpreter files")
511
513
 
514
+ self._fence_ff_on = await is_flag_enabled(
515
+ FeatureFlagNames.enable_code_execution_fence_un_17972,
516
+ company_id=self._company_id or COMPANY_ID_PLACEHOLDER,
517
+ )
518
+ # htmlWithSource requires BOTH the fence FF and the HTML-fence FF on; default
519
+ # (FF off) keeps HtmlRendering, so existing deployments are unaffected.
520
+ self._html_fence_ff_on = await is_flag_enabled(
521
+ FeatureFlagNames.enable_html_with_fence_un_17927,
522
+ company_id=self._company_id or COMPANY_ID_PLACEHOLDER,
523
+ )
524
+
512
525
  container_files = await self._resolve_container_files(loop_response)
513
526
  self._container_files = container_files
514
527
  self._log.info(
@@ -655,9 +668,9 @@ class DisplayCodeInterpreterFilesPostProcessor(
655
668
  ) -> bool:
656
669
  apply_t0 = time.monotonic()
657
670
  self._log.info(
658
- "apply_postprocessing started — %d file(s) in content_map, fence_enabled=%s",
671
+ "apply_postprocessing started — %d file(s) in content_map, fence_ff=%s",
659
672
  len(self._content_map),
660
- self._fence_enabled,
673
+ self._fence_ff_on,
661
674
  )
662
675
 
663
676
  if loop_response.message.references is None:
@@ -698,9 +711,9 @@ class DisplayCodeInterpreterFilesPostProcessor(
698
711
  )
699
712
  changed |= replaced
700
713
 
701
- # HTML uses HtmlRendering unless BOTH switches are on (htmlWithSource
702
- # needs the code-execution fence too).
703
- elif is_html and not (self._html_fence_enabled and self._fence_enabled):
714
+ # HTML rendered as HtmlRendering block unless the dedicated html-fence FF
715
+ # is on (enable_html_with_fence_un_17927). Default keeps HtmlRendering.
716
+ elif is_html and not self._html_fence_ff_on:
704
717
  loop_response.message.text, replaced = _replace_container_html_citation(
705
718
  text=loop_response.message.text or "",
706
719
  filename=filename,
@@ -708,15 +721,15 @@ class DisplayCodeInterpreterFilesPostProcessor(
708
721
  )
709
722
  changed |= replaced
710
723
 
711
- # Non-HTML files, or HTML when both fence switches are on → inline
712
- # content link for subsequent fence injection
724
+ # Non-HTML files, or HTML when self._html_fence_ff_on → inline content link for
725
+ # subsequent fence injection (htmlWithSource / imgWithSource / fileWithSource)
713
726
  else:
714
727
  loop_response.message.text, replaced = _replace_container_file_citation(
715
728
  text=loop_response.message.text or "",
716
729
  filename=filename,
717
730
  content_id=content_id,
718
731
  ref_number=ref_number,
719
- use_content_link=self._fence_enabled,
732
+ use_content_link=self._fence_ff_on,
720
733
  )
721
734
  changed |= replaced
722
735
 
@@ -733,7 +746,7 @@ class DisplayCodeInterpreterFilesPostProcessor(
733
746
 
734
747
  # HtmlRendering and htmlWithSource both embed contentId directly — no ContentReference needed
735
748
  is_html_rendered = is_html
736
- if replaced and not (is_image or is_html_rendered or self._fence_enabled):
749
+ if replaced and not (is_image or is_html_rendered or self._fence_ff_on):
737
750
  loop_response.message.references.append(
738
751
  ContentReference(
739
752
  sequence_number=ref_number,
@@ -752,12 +765,12 @@ class DisplayCodeInterpreterFilesPostProcessor(
752
765
  error_files,
753
766
  )
754
767
 
755
- if self._fence_enabled:
768
+ if self._fence_ff_on:
756
769
  code_blocks = _build_code_blocks(
757
770
  loop_response,
758
771
  self._content_map,
759
772
  self._container_files,
760
- include_html=self._html_fence_enabled,
773
+ include_html=self._html_fence_ff_on,
761
774
  )
762
775
  self._log.info(
763
776
  "Fence injection — %d code block(s), files: %s",
@@ -765,7 +778,7 @@ class DisplayCodeInterpreterFilesPostProcessor(
765
778
  [f.filename for b in code_blocks for f in b.files],
766
779
  )
767
780
  _warn_unmatched_code_blocks(
768
- self._content_map, code_blocks, include_html=self._html_fence_enabled
781
+ self._content_map, code_blocks, include_html=self._html_fence_ff_on
769
782
  )
770
783
  text_before = loop_response.message.text
771
784
  loop_response.message.text = _inject_code_execution_fences(
@@ -1490,7 +1503,7 @@ def _warn_unmatched_code_blocks(
1490
1503
  ) -> None:
1491
1504
  """Warn for files that were uploaded but could not be matched to any code block.
1492
1505
 
1493
- When fence rendering is enabled, every uploaded file should map to a code block
1506
+ When the fence feature flag is on, every uploaded file should map to a code block
1494
1507
  via its /mnt/data/<filename> path so it can receive a fence. If a file is not
1495
1508
  matched (e.g. the LLM used a variable for the output path rather than a literal
1496
1509
  string) it falls back to a plain unique://content/ link with no code context.
@@ -1621,10 +1634,10 @@ def _replace_container_file_citation(
1621
1634
  ) -> tuple[str, bool]:
1622
1635
  """Replace a sandbox file link with either an inline content link or a superscript ref.
1623
1636
 
1624
- When fence rendering is enabled in the config (use_content_link=True), the sandbox
1625
- link is replaced with [filename](unique://content/{id}) so the subsequent fence
1626
- injection step can locate and wrap it. When it is disabled (use_content_link=False),
1627
- the original pre-fence behaviour is restored: the link is replaced with <sup>N</sup>
1637
+ When the fence feature flag is on (use_content_link=True), the sandbox link is
1638
+ replaced with [filename](unique://content/{id}) so the subsequent fence injection
1639
+ step can locate and wrap it. When the flag is off (use_content_link=False), the
1640
+ original pre-fence behaviour is restored: the link is replaced with <sup>N</sup>
1628
1641
  and the file remains accessible via the references panel.
1629
1642
  """
1630
1643
  file_markdown = _sandbox_link_pattern(filename)
@@ -96,9 +96,9 @@ DEFAULT_TOOL_DESCRIPTION_FOR_SYSTEM_PROMPT = (
96
96
  _TOOL_DESCRIPTION_FOR_SYSTEM_PROMPT_BASE + _TOOL_DESCRIPTION_FILES_SUFFIX
97
97
  ).strip()
98
98
 
99
- # Default system prompt. The frontend derives the artifact title from the
100
- # filename itself, so the LLM does not need to produce a markdown heading
101
- # before the sandbox link.
99
+ # Used when the code-execution fence feature flag (UN-17972) is enabled.
100
+ # The frontend derives the artifact title from the filename itself, so the
101
+ # LLM no longer needs to produce a markdown heading before the sandbox link.
102
102
  #
103
103
  # UN-19711 / Horizon follow-up: The HTML rules in the fence prompt reduce iframe height
104
104
  # collapse when chat auto-measures the embedded document. Remaining gaps belong in the
@@ -653,8 +653,6 @@ class AgenticTableService:
653
653
  row_orders: list[int],
654
654
  status: RowVerificationStatus,
655
655
  locked: bool | None = None,
656
- *,
657
- emit_library_sheet_verified_event: bool | None = None,
658
656
  ):
659
657
  """Update the verification status of multiple rows at once.
660
658
 
@@ -662,27 +660,24 @@ class AgenticTableService:
662
660
  row_orders: The row indexes to update.
663
661
  status: The verification status to set (``NEEDS_REVIEW``, etc.; matches public API).
664
662
  locked: When set, forwarded as ``locked`` on ``POST .../rows/bulk-update-status``.
665
- emit_library_sheet_verified_event: When set, forwarded as
666
- ``emitLibrarySheetVerifiedEvent``. ``False`` marks the rows without
667
- starting a ``LIBRARY_SHEET_ROW_VERIFIED`` run on library sheets; use it
668
- when the caller has already ingested the rows. ``None`` omits the field
669
- and keeps the server default (``True``). Servers that predate the field
670
- reject it with a 400, so only set it against a backend that supports it.
671
663
  """
672
- params: AgenticTable.BulkUpdateStatus = {
673
- "tableId": self.table_id,
674
- "rowOrders": row_orders,
675
- "status": status,
676
- }
677
- if locked is not None:
678
- params["locked"] = locked
679
- if emit_library_sheet_verified_event is not None:
680
- params["emitLibrarySheetVerifiedEvent"] = emit_library_sheet_verified_event
681
- await AgenticTable.bulk_update_status(
682
- user_id=self._user_id,
683
- company_id=self._company_id,
684
- **params,
685
- )
664
+ if locked is None:
665
+ await AgenticTable.bulk_update_status(
666
+ user_id=self._user_id,
667
+ company_id=self._company_id,
668
+ tableId=self.table_id,
669
+ rowOrders=row_orders,
670
+ status=status,
671
+ )
672
+ else:
673
+ await AgenticTable.bulk_update_status(
674
+ user_id=self._user_id,
675
+ company_id=self._company_id,
676
+ tableId=self.table_id,
677
+ rowOrders=row_orders,
678
+ status=status,
679
+ locked=locked,
680
+ )
686
681
 
687
682
  async def import_questions_and_sources(
688
683
  self,
@@ -188,46 +188,6 @@ async def modify_message_async(
188
188
  raise e
189
189
 
190
190
 
191
- async def mark_turn_system_interrupted_async(
192
- user_id: str,
193
- company_id: str,
194
- chat_id: str,
195
- user_message_id: str,
196
- ) -> ChatMessage:
197
- """Marks the turn anchored on *user_message_id* as system-interrupted.
198
-
199
- Persists ``turnInterruptionReason = SYSTEM_INTERRUPTED`` on the originating
200
- USER message via a dedicated service-authenticated node-chat endpoint. The
201
- server guarantees idempotency and never overwrites ``userAbortedAt`` (a
202
- user-initiated stop wins if both race).
203
-
204
- Args:
205
- user_id (str): The user ID.
206
- company_id (str): The company ID.
207
- chat_id (str): The chat ID.
208
- user_message_id (str): The originating USER message of the turn.
209
-
210
- Returns:
211
- ChatMessage: The USER message after the update (unchanged if the call
212
- was a no-op due to idempotency or a racing user stop).
213
-
214
- Raises:
215
- Exception: If the request fails.
216
-
217
- """
218
- try:
219
- message = await unique_sdk.Message.mark_turn_system_interrupted_async(
220
- user_id=user_id,
221
- company_id=company_id,
222
- id=user_message_id,
223
- chatId=chat_id,
224
- )
225
- return ChatMessage(**message)
226
- except Exception as e:
227
- _LOGGER.error(f"Failed to mark turn as system-interrupted: {e}")
228
- raise e
229
-
230
-
231
191
  def map_references(references: list[ContentReference]) -> list[dict[str, Any]]:
232
192
  return [
233
193
  {
@@ -192,12 +192,6 @@ class MessageLogStatus(StrEnum):
192
192
  RUNNING = "RUNNING"
193
193
  COMPLETED = "COMPLETED"
194
194
  FAILED = "FAILED"
195
- CANCELLED = "CANCELLED"
196
- """The user pressed Stop while this thinking/tool step was in flight.
197
-
198
- Use ``FAILED`` for system-side interruption (timeout, truncation, terminal
199
- backend failure), not for user-initiated cancellation.
200
- """
201
195
 
202
196
 
203
197
  class MessageExecutionStatus(StrEnum):