unique-toolkit 2026.20.0.dev24__tar.gz → 2026.20.0.dev26__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.
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/PKG-INFO +2 -2
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/pyproject.toml +2 -2
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/_common/config_checker/validator.py +8 -8
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/message_log_manager/service.py +2 -7
- unique_toolkit-2026.20.0.dev26/unique_toolkit/agentic/message_log_order.py +26 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/services/chat_service.py +138 -37
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/README.md +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/_common/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/_common/_base_service.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/_common/_time_utils.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/_common/api_calling/human_verification_manager.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/_common/base_model_type_attribute.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/_common/chunk_relevancy_sorter/config.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/_common/chunk_relevancy_sorter/exception.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/_common/chunk_relevancy_sorter/schemas.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/_common/chunk_relevancy_sorter/service.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/_common/chunk_relevancy_sorter/tests/test_service.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/_common/config_checker/README.md +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/_common/config_checker/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/_common/config_checker/__main__.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/_common/config_checker/cli.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/_common/config_checker/differ.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/_common/config_checker/exporter.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/_common/config_checker/models.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/_common/config_checker/registry.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/_common/default_language_model.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/_common/docx_generator/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/_common/docx_generator/config.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/_common/docx_generator/pandoc_converter.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/_common/docx_generator/schemas.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/_common/docx_generator/service.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/_common/docx_generator/template/Doc Template.docx +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/_common/endpoint_builder.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/_common/endpoint_requestor.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/_common/event_bus.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/_common/exception.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/_common/execution.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/_common/experimental/endpoint_builder.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/_common/experimental/endpoint_requestor.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/_common/experimental/write_up_agent/README.md +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/_common/experimental/write_up_agent/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/_common/experimental/write_up_agent/agent.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/_common/experimental/write_up_agent/config.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/_common/experimental/write_up_agent/examples/data.csv +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/_common/experimental/write_up_agent/examples/example_usage.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/_common/experimental/write_up_agent/schemas.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/_common/experimental/write_up_agent/services/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/exceptions.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/service.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/utils.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/config.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/exceptions.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/prompts/config.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/prompts/system_prompt.j2 +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/prompts/user_prompt.j2 +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/service.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/default_template.j2 +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/exceptions.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/service.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/utils.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/_common/experimental/write_up_agent/utils.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/_common/feature_flags/schema.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/_common/pydantic/rjsf_tags.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/_common/pydantic_helpers.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/_common/referencing.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/_common/string_utilities.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/_common/tests/test_referencing.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/_common/tests/test_string_utilities.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/_common/token/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/_common/token/image_token_counting.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/_common/token/token_counting.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/_common/token/tokenizers/deepseek/tokenizer.json +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/_common/token/tokenizers/qwen/tokenizer.json +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/_common/utils/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/_common/utils/files.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/_common/utils/image/encode.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/_common/utils/jinja/helpers.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/_common/utils/jinja/render.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/_common/utils/jinja/schema.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/_common/utils/jinja/utils.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/_common/utils/structured_output/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/_common/utils/structured_output/schema.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/_common/utils/write_configuration.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/_common/validate_required_values.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/_common/validators.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/debug_info_manager/debug_info_manager.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/debug_info_manager/test/test_debug_info_manager.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/evaluation/config.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/evaluation/context_relevancy/prompts/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/evaluation/context_relevancy/prompts/system_prompt.j2 +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/evaluation/context_relevancy/prompts/user_prompt.j2 +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/evaluation/context_relevancy/schema.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/evaluation/context_relevancy/service.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/evaluation/evaluation_manager.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/evaluation/exception.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/evaluation/hallucination/constants.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/evaluation/hallucination/hallucination_evaluation.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/evaluation/hallucination/prompts/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/evaluation/hallucination/prompts/system_prompt.j2 +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/evaluation/hallucination/prompts/user_prompt.j2 +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/evaluation/hallucination/service.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/evaluation/hallucination/utils.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/evaluation/output_parser.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/evaluation/schemas.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/evaluation/tests/fixtures.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/evaluation/tests/test_config.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/evaluation/tests/test_context_relevancy_service.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/evaluation/tests/test_hallucination_constants.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/evaluation/tests/test_hallucination_utils.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/evaluation/tests/test_output_parser.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/evaluation/tests/test_prompt_loaders.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/evaluation/utils.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/feature_flags/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/feature_flags/feature_flags.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/history_manager/history_construction_with_contents.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/history_manager/history_manager.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/history_manager/loop_token_reducer.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/history_manager/utils.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/loop_runner/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/loop_runner/_iteration_handler_utils.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/loop_runner/_responses_iteration_handler_utils.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/loop_runner/_responses_stream_handler_utils.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/loop_runner/_stream_handler_utils.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/loop_runner/base.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/loop_runner/middleware/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/loop_runner/middleware/planning/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/loop_runner/middleware/planning/planning.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/loop_runner/middleware/planning/schema.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/loop_runner/runners/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/loop_runner/runners/basic.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/loop_runner/runners/mistral/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/loop_runner/runners/mistral/mistral_runner.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/loop_runner/runners/qwen/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/loop_runner/runners/qwen/helpers.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/loop_runner/runners/qwen/qwen_runner.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/message_log_manager/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/postprocessor/postprocessor_manager.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/reference_manager/reference_manager.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/responses_api/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/responses_api/postprocessors/code_display.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/responses_api/postprocessors/generated_files.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/responses_api/stream_handler.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/short_term_memory_manager/persistent_short_term_memory_manager.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/thinking_manager/thinking_manager.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/tools/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/tools/a2a/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/tools/a2a/config.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/tools/a2a/evaluation/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/tools/a2a/evaluation/_utils.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/tools/a2a/evaluation/config.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/tools/a2a/evaluation/evaluator.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/tools/a2a/evaluation/summarization_user_message.j2 +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/tools/a2a/manager.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/tools/a2a/postprocessing/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/tools/a2a/postprocessing/_display_utils.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/tools/a2a/postprocessing/_ref_utils.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/tools/a2a/postprocessing/config.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/tools/a2a/postprocessing/display.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/tools/a2a/postprocessing/references.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_display.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_display_utils.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_ref_utils.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/tools/a2a/prompts.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/tools/a2a/response_watcher/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/tools/a2a/response_watcher/service.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/tools/a2a/tool/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/tools/a2a/tool/_memory.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/tools/a2a/tool/_schema.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/tools/a2a/tool/config.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/tools/a2a/tool/service.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/tools/a2a/tool/test/test_service_utils.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/tools/agent_chunks_hanlder.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/tools/config.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/tools/experimental/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/tools/experimental/open_file_tool/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/tools/experimental/open_file_tool/config.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/tools/experimental/open_file_tool/runtime.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/tools/experimental/open_file_tool/tool.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/tools/experimental/retrieve_search_scope_tool/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/tools/experimental/retrieve_search_scope_tool/config.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/tools/experimental/retrieve_search_scope_tool/tool.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/tools/experimental/todo/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/tools/experimental/todo/config.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/tools/experimental/todo/prompts/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/tools/experimental/todo/prompts/execution_reminder.j2 +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/tools/experimental/todo/prompts/system_prompt.j2 +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/tools/experimental/todo/prompts/tool_description.j2 +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/tools/experimental/todo/prompts/verification_nudge.j2 +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/tools/experimental/todo/schemas.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/tools/experimental/todo/service.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/tools/factory.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/tools/mcp/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/tools/mcp/manager.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/tools/mcp/models.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/tools/mcp/tool_wrapper.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/tools/openai_builtin/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/tools/openai_builtin/base.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/config.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/postprocessors/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/postprocessors/code_display.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/postprocessors/generated_files.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/schemas.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/service.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/tools/openai_builtin/manager.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/tools/schemas.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/tools/test/test_mcp_manager.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/tools/test/test_tool_progress_reporter.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/tools/tool.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/tools/tool_manager.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/tools/tool_progress_reporter.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/tools/utils/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/tools/utils/source_handling/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/tools/utils/source_handling/schema.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/tools/utils/source_handling/source_formatting.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/tools/utils/source_handling/tests/test_source_formatting.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic_table/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic_table/schemas.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic_table/service.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/app/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/app/chat_event_filter_options_settings.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/app/dev_util.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/app/fast_api_factory.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/app/feature_flags.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/app/find_env_file.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/app/init_logging.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/app/init_sdk.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/app/performance/async_tasks.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/app/performance/async_wrapper.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/app/schemas.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/app/unique_settings.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/app/verification.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/app/webhook.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/chat/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/chat/cancellation.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/chat/constants.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/chat/deprecated/service.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/chat/functions.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/chat/rendering.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/chat/responses_api.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/chat/schemas.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/chat/service.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/chat/state.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/chat/utils.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/content/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/content/constants.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/content/functions.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/content/schemas.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/content/service.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/content/smart_rules.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/content/utils.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/data_extraction/README.md +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/data_extraction/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/data_extraction/augmented/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/data_extraction/augmented/service.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/data_extraction/base.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/data_extraction/basic/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/data_extraction/basic/config.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/data_extraction/basic/prompt.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/data_extraction/basic/service.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/elicitation/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/elicitation/constants.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/elicitation/exceptions.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/elicitation/functions.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/elicitation/schemas.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/elicitation/service.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/embedding/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/embedding/constants.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/embedding/functions.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/embedding/schemas.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/embedding/service.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/embedding/utils.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/experimental/README.md +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/experimental/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/experimental/_internal/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/experimental/components/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/experimental/components/content_tree/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/experimental/components/content_tree/functions.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/experimental/components/content_tree/schemas.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/experimental/components/content_tree/service.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/experimental/content_tree/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/experimental/identity/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/experimental/integrations/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/experimental/resources/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/experimental/resources/content_folder/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/experimental/resources/content_folder/functions.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/experimental/resources/content_folder/schemas.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/experimental/resources/content_folder/service.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/experimental/resources/facades/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/experimental/resources/facades/identity/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/experimental/resources/facades/identity/service.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/experimental/resources/group/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/experimental/resources/group/functions.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/experimental/resources/group/schemas.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/experimental/resources/group/service.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/experimental/resources/scheduled_task/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/experimental/resources/scheduled_task/cron.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/experimental/resources/scheduled_task/functions.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/experimental/resources/scheduled_task/schemas.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/experimental/resources/scheduled_task/service.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/experimental/resources/user/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/experimental/resources/user/functions.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/experimental/resources/user/schemas.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/experimental/resources/user/service.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/experimental/testing/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/framework_utilities/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/framework_utilities/langchain/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/framework_utilities/langchain/client.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/framework_utilities/langchain/history.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/framework_utilities/openai/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/framework_utilities/openai/client.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/framework_utilities/openai/message_builder.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/framework_utilities/utils.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/language_model/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/language_model/_responses_api_utils.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/language_model/builder.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/language_model/constants.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/language_model/default_language_model.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/language_model/functions.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/language_model/infos.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/language_model/prompt.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/language_model/reference.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/language_model/schemas.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/language_model/service.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/language_model/stream_transform.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/language_model/utils.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/monitoring/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/monitoring/middleware.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/monitoring/registry.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/protocols/support.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/services/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/services/factory.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/services/knowledge_base.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/short_term_memory/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/short_term_memory/constants.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/short_term_memory/functions.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/short_term_memory/schemas.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/short_term_memory/service.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/smart_rules/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/smart_rules/compile.py +0 -0
- {unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/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.dev26
|
|
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.20.0.
|
|
19
|
+
Requires-Dist: unique-sdk>=2026.20.0.dev22,<2026.20.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.20.0.
|
|
3
|
+
version = "2026.20.0.dev26"
|
|
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.20.0.
|
|
31
|
+
"unique-sdk>=2026.20.0.dev22,<2026.20.0rc0",
|
|
32
32
|
"jambo>=0.1.2,<0.2",
|
|
33
33
|
"jinja2>=3.1.6,<4",
|
|
34
34
|
"docxtpl>=0.20.1,<0.21",
|
|
@@ -288,20 +288,20 @@ class ConfigValidator:
|
|
|
288
288
|
# Get the old value from original JSON
|
|
289
289
|
old_value = None
|
|
290
290
|
try:
|
|
291
|
-
|
|
291
|
+
node: Any = original_json
|
|
292
292
|
for key in loc:
|
|
293
|
-
if isinstance(
|
|
294
|
-
|
|
295
|
-
elif isinstance(
|
|
293
|
+
if isinstance(node, dict) and isinstance(key, str):
|
|
294
|
+
node = node.get(key)
|
|
295
|
+
elif isinstance(node, list) and isinstance(key, int):
|
|
296
296
|
try:
|
|
297
|
-
|
|
297
|
+
node = node[key]
|
|
298
298
|
except (IndexError, TypeError):
|
|
299
|
-
|
|
299
|
+
node = None
|
|
300
300
|
break
|
|
301
301
|
else:
|
|
302
|
-
|
|
302
|
+
node = None
|
|
303
303
|
break
|
|
304
|
-
old_value =
|
|
304
|
+
old_value = node
|
|
305
305
|
except Exception:
|
|
306
306
|
pass
|
|
307
307
|
|
|
@@ -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
|
|
8
7
|
from logging import getLogger
|
|
9
8
|
|
|
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,10 +18,6 @@ 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
|
-
|
|
25
21
|
|
|
26
22
|
class MessageStepLogger:
|
|
27
23
|
"""
|
|
@@ -55,8 +51,7 @@ class MessageStepLogger:
|
|
|
55
51
|
Next order number for this specific request
|
|
56
52
|
"""
|
|
57
53
|
|
|
58
|
-
|
|
59
|
-
return _request_counters[message_id]
|
|
54
|
+
return next_message_log_order(message_id=message_id)
|
|
60
55
|
|
|
61
56
|
def create_message_log_entry(
|
|
62
57
|
self,
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"""Per-request message log order counters (public API).
|
|
2
|
+
|
|
3
|
+
``MessageStepLogger`` and :meth:`~unique_toolkit.services.chat_service.ChatService.complete_responses_with_references_async`
|
|
4
|
+
share the same sequence so user-visible steps and rate-limit banners interleave with
|
|
5
|
+
correct ``order`` values.
|
|
6
|
+
|
|
7
|
+
This module lives outside the ``message_log_manager`` package intentionally: importing
|
|
8
|
+
``message_log_manager`` triggers its ``__init__.py`` which pulls in ``ChatService``,
|
|
9
|
+
creating a circular import. Placing this module one level up breaks the cycle while
|
|
10
|
+
keeping the counters accessible to both callers.
|
|
11
|
+
"""
|
|
12
|
+
|
|
13
|
+
from collections import defaultdict
|
|
14
|
+
|
|
15
|
+
_counters: defaultdict[str, int] = defaultdict(int)
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
def next_message_log_order(*, message_id: str) -> int:
|
|
19
|
+
"""Increment and return the next order index for logs belonging to ``message_id``."""
|
|
20
|
+
_counters[message_id] += 1
|
|
21
|
+
return _counters[message_id]
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
def reset_message_log_order_counters() -> None:
|
|
25
|
+
"""Clear all order counters (intended for test fixtures)."""
|
|
26
|
+
_counters.clear()
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
+
import asyncio
|
|
1
2
|
import logging
|
|
3
|
+
from contextlib import suppress
|
|
2
4
|
from typing import TYPE_CHECKING, Any, Sequence, overload
|
|
3
5
|
|
|
4
6
|
import unique_sdk
|
|
@@ -18,6 +20,7 @@ from typing_extensions import Self, deprecated
|
|
|
18
20
|
|
|
19
21
|
from unique_toolkit._common.utils.files import is_file_content, is_image_content
|
|
20
22
|
from unique_toolkit.agentic.feature_flags import feature_flags
|
|
23
|
+
from unique_toolkit.agentic.message_log_order import next_message_log_order
|
|
21
24
|
from unique_toolkit.app.unique_settings import UniqueContext, UniqueSettings
|
|
22
25
|
from unique_toolkit.chat.cancellation import CancellationWatcher
|
|
23
26
|
from unique_toolkit.chat.constants import (
|
|
@@ -1740,59 +1743,157 @@ class ChatService(ChatServiceDeprecated):
|
|
|
1740
1743
|
reasoning: Reasoning | None = None,
|
|
1741
1744
|
other_options: dict[str, Any] | None = None,
|
|
1742
1745
|
) -> ResponsesLanguageModelStreamResponse:
|
|
1746
|
+
# UN-19878: rate-limit retry UX via message logs. After the streaming refactor
|
|
1747
|
+
# (UN-20053) merges and is adopted, this should be integrated with the shared
|
|
1748
|
+
# streaming layer instead of living on ChatService.
|
|
1749
|
+
# Single-element box so nested callbacks and finally see assignments (pyright).
|
|
1750
|
+
rate_limit_log_box: list[MessageLog | None] = [None]
|
|
1751
|
+
_ticker_task: asyncio.Task[None] | None = None
|
|
1752
|
+
|
|
1753
|
+
async def _cancel_ticker() -> None:
|
|
1754
|
+
nonlocal _ticker_task
|
|
1755
|
+
if _ticker_task is not None and not _ticker_task.done():
|
|
1756
|
+
_ = _ticker_task.cancel()
|
|
1757
|
+
with suppress(asyncio.CancelledError):
|
|
1758
|
+
await _ticker_task
|
|
1759
|
+
_ticker_task = None
|
|
1760
|
+
|
|
1743
1761
|
async def _on_rate_limit_retry(attempt: int, wait_secs: float) -> None:
|
|
1762
|
+
nonlocal _ticker_task
|
|
1763
|
+
|
|
1744
1764
|
if not rate_limit_retry_config.log_message_on_retry:
|
|
1745
1765
|
return
|
|
1746
1766
|
if not feature_flags.enable_new_answers_ui_un_14411.is_enabled(
|
|
1747
1767
|
self._company_id
|
|
1748
1768
|
):
|
|
1749
1769
|
return
|
|
1750
|
-
|
|
1751
|
-
|
|
1752
|
-
)
|
|
1770
|
+
|
|
1771
|
+
await _cancel_ticker()
|
|
1753
1772
|
|
|
1754
1773
|
msg_id = self._assistant_message_id
|
|
1755
|
-
|
|
1756
|
-
|
|
1774
|
+
# Use round(), not int() and not :.0f in isolation: tenacity adds jitter, so
|
|
1775
|
+
# wait_secs is often non-integer. Rounding once keeps the first banner and the
|
|
1776
|
+
# countdown start value identical (e.g. avoid "31s" then 29, 28…).
|
|
1777
|
+
wait_display_seconds = max(0, round(float(wait_secs)))
|
|
1778
|
+
initial = (
|
|
1779
|
+
f"Rate limit reached; retrying in {wait_display_seconds}s "
|
|
1780
|
+
f"(attempt {attempt})"
|
|
1781
|
+
)
|
|
1782
|
+
|
|
1757
1783
|
try:
|
|
1758
|
-
|
|
1759
|
-
message_id=msg_id
|
|
1760
|
-
|
|
1761
|
-
|
|
1762
|
-
|
|
1763
|
-
|
|
1784
|
+
if rate_limit_log_box[0] is None:
|
|
1785
|
+
order = next_message_log_order(message_id=msg_id)
|
|
1786
|
+
rate_limit_log_box[0] = await self.create_message_log_async(
|
|
1787
|
+
message_id=msg_id,
|
|
1788
|
+
text=initial,
|
|
1789
|
+
status=MessageLogStatus.RUNNING,
|
|
1790
|
+
order=order,
|
|
1791
|
+
)
|
|
1792
|
+
else:
|
|
1793
|
+
existing = rate_limit_log_box[0]
|
|
1794
|
+
if existing.message_log_id is None:
|
|
1795
|
+
return
|
|
1796
|
+
rate_limit_log_box[0] = await self.update_message_log_async(
|
|
1797
|
+
message_log_id=existing.message_log_id,
|
|
1798
|
+
order=existing.order,
|
|
1799
|
+
text=initial,
|
|
1800
|
+
status=MessageLogStatus.RUNNING,
|
|
1801
|
+
)
|
|
1764
1802
|
except Exception:
|
|
1765
1803
|
_LOGGER.warning(
|
|
1766
1804
|
"Failed to write rate-limit retry message log",
|
|
1767
1805
|
exc_info=True,
|
|
1768
1806
|
)
|
|
1807
|
+
return
|
|
1769
1808
|
|
|
1770
|
-
|
|
1771
|
-
|
|
1772
|
-
|
|
1773
|
-
|
|
1774
|
-
|
|
1775
|
-
|
|
1776
|
-
|
|
1777
|
-
|
|
1778
|
-
|
|
1779
|
-
|
|
1780
|
-
|
|
1781
|
-
|
|
1782
|
-
|
|
1783
|
-
|
|
1784
|
-
|
|
1785
|
-
|
|
1786
|
-
|
|
1787
|
-
|
|
1788
|
-
|
|
1789
|
-
|
|
1790
|
-
|
|
1791
|
-
|
|
1792
|
-
|
|
1793
|
-
|
|
1794
|
-
|
|
1795
|
-
|
|
1809
|
+
active = rate_limit_log_box[0]
|
|
1810
|
+
if active is None or active.message_log_id is None: # pyright: ignore[reportUnnecessaryComparison]
|
|
1811
|
+
return
|
|
1812
|
+
|
|
1813
|
+
log_id = active.message_log_id
|
|
1814
|
+
log_order = active.order
|
|
1815
|
+
|
|
1816
|
+
async def _countdown() -> None:
|
|
1817
|
+
remaining = wait_display_seconds
|
|
1818
|
+
while remaining > 0:
|
|
1819
|
+
await asyncio.sleep(1)
|
|
1820
|
+
remaining -= 1
|
|
1821
|
+
if remaining <= 0:
|
|
1822
|
+
break
|
|
1823
|
+
try:
|
|
1824
|
+
_ = await self.update_message_log_async(
|
|
1825
|
+
message_log_id=log_id,
|
|
1826
|
+
order=log_order,
|
|
1827
|
+
text=(
|
|
1828
|
+
f"Rate limit reached; retrying in {remaining}s "
|
|
1829
|
+
f"(attempt {attempt})"
|
|
1830
|
+
),
|
|
1831
|
+
status=MessageLogStatus.RUNNING,
|
|
1832
|
+
)
|
|
1833
|
+
except Exception:
|
|
1834
|
+
_LOGGER.debug(
|
|
1835
|
+
"Rate limit countdown message log update failed",
|
|
1836
|
+
exc_info=True,
|
|
1837
|
+
)
|
|
1838
|
+
break
|
|
1839
|
+
|
|
1840
|
+
_ticker_task = asyncio.create_task(_countdown())
|
|
1841
|
+
|
|
1842
|
+
stream_error: BaseException | None = None
|
|
1843
|
+
try:
|
|
1844
|
+
return await stream_responses_with_references_async(
|
|
1845
|
+
company_id=self._company_id,
|
|
1846
|
+
user_id=self._user_id,
|
|
1847
|
+
assistant_message_id=self._assistant_message_id,
|
|
1848
|
+
user_message_id=self._user_message_id,
|
|
1849
|
+
chat_id=self._chat_id,
|
|
1850
|
+
assistant_id=self._assistant_id,
|
|
1851
|
+
model_name=model_name,
|
|
1852
|
+
messages=messages,
|
|
1853
|
+
content_chunks=content_chunks,
|
|
1854
|
+
tools=tools,
|
|
1855
|
+
temperature=temperature,
|
|
1856
|
+
debug_info=debug_info,
|
|
1857
|
+
start_text=start_text,
|
|
1858
|
+
include=include,
|
|
1859
|
+
instructions=instructions,
|
|
1860
|
+
max_output_tokens=max_output_tokens,
|
|
1861
|
+
metadata=metadata,
|
|
1862
|
+
parallel_tool_calls=parallel_tool_calls,
|
|
1863
|
+
text=text,
|
|
1864
|
+
tool_choice=tool_choice,
|
|
1865
|
+
top_p=top_p,
|
|
1866
|
+
reasoning=reasoning,
|
|
1867
|
+
other_options=other_options,
|
|
1868
|
+
on_rate_limit_retry=_on_rate_limit_retry,
|
|
1869
|
+
)
|
|
1870
|
+
except BaseException as exc:
|
|
1871
|
+
stream_error = exc
|
|
1872
|
+
raise
|
|
1873
|
+
finally:
|
|
1874
|
+
await _cancel_ticker()
|
|
1875
|
+
fin = rate_limit_log_box[0]
|
|
1876
|
+
if fin is not None and fin.message_log_id is not None:
|
|
1877
|
+
try:
|
|
1878
|
+
if stream_error is None:
|
|
1879
|
+
_ = await self.update_message_log_async(
|
|
1880
|
+
message_log_id=fin.message_log_id,
|
|
1881
|
+
order=fin.order,
|
|
1882
|
+
text="Rate limit resolved; resuming.",
|
|
1883
|
+
status=MessageLogStatus.COMPLETED,
|
|
1884
|
+
)
|
|
1885
|
+
else:
|
|
1886
|
+
_ = await self.update_message_log_async(
|
|
1887
|
+
message_log_id=fin.message_log_id,
|
|
1888
|
+
order=fin.order,
|
|
1889
|
+
text="Rate limit retries exhausted.",
|
|
1890
|
+
status=MessageLogStatus.FAILED,
|
|
1891
|
+
)
|
|
1892
|
+
except Exception:
|
|
1893
|
+
_LOGGER.warning(
|
|
1894
|
+
"Failed to finalize rate-limit message log",
|
|
1895
|
+
exc_info=True,
|
|
1896
|
+
)
|
|
1796
1897
|
|
|
1797
1898
|
# Chat Content Methods
|
|
1798
1899
|
############################################################################
|
|
File without changes
|
{unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/__init__.py
RENAMED
|
File without changes
|
{unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/_common/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{unique_toolkit-2026.20.0.dev24 → unique_toolkit-2026.20.0.dev26}/unique_toolkit/agentic/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|