unique-toolkit 2026.20.0.dev10__tar.gz → 2026.20.0.dev12__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.dev10 → unique_toolkit-2026.20.0.dev12}/PKG-INFO +3 -3
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/pyproject.toml +3 -3
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/tools/experimental/__init__.py +8 -0
- unique_toolkit-2026.20.0.dev12/unique_toolkit/agentic/tools/experimental/retrieve_search_scope_tool/__init__.py +13 -0
- unique_toolkit-2026.20.0.dev12/unique_toolkit/agentic/tools/experimental/retrieve_search_scope_tool/config.py +118 -0
- unique_toolkit-2026.20.0.dev12/unique_toolkit/agentic/tools/experimental/retrieve_search_scope_tool/tool.py +191 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/README.md +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/_common/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/_common/_base_service.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/_common/_time_utils.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/_common/api_calling/human_verification_manager.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/_common/base_model_type_attribute.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/_common/chunk_relevancy_sorter/config.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/_common/chunk_relevancy_sorter/exception.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/_common/chunk_relevancy_sorter/schemas.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/_common/chunk_relevancy_sorter/service.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/_common/chunk_relevancy_sorter/tests/test_service.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/_common/config_checker/README.md +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/_common/config_checker/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/_common/config_checker/__main__.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/_common/config_checker/cli.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/_common/config_checker/differ.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/_common/config_checker/exporter.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/_common/config_checker/models.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/_common/config_checker/registry.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/_common/config_checker/validator.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/_common/default_language_model.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/_common/docx_generator/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/_common/docx_generator/config.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/_common/docx_generator/pandoc_converter.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/_common/docx_generator/schemas.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/_common/docx_generator/service.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/_common/docx_generator/template/Doc Template.docx +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/_common/endpoint_builder.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/_common/endpoint_requestor.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/_common/event_bus.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/_common/exception.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/_common/execution.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/_common/experimental/endpoint_builder.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/_common/experimental/endpoint_requestor.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/_common/experimental/write_up_agent/README.md +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/_common/experimental/write_up_agent/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/_common/experimental/write_up_agent/agent.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/_common/experimental/write_up_agent/config.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/_common/experimental/write_up_agent/examples/data.csv +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/_common/experimental/write_up_agent/examples/example_usage.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/_common/experimental/write_up_agent/schemas.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/_common/experimental/write_up_agent/services/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/exceptions.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/service.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/utils.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/config.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/exceptions.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/prompts/config.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/prompts/system_prompt.j2 +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/prompts/user_prompt.j2 +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/service.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/default_template.j2 +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/exceptions.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/service.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/utils.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/_common/experimental/write_up_agent/utils.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/_common/feature_flags/schema.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/_common/pydantic/rjsf_tags.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/_common/pydantic_helpers.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/_common/referencing.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/_common/string_utilities.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/_common/tests/test_referencing.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/_common/tests/test_string_utilities.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/_common/token/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/_common/token/image_token_counting.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/_common/token/token_counting.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/_common/token/tokenizers/deepseek/tokenizer.json +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/_common/token/tokenizers/qwen/tokenizer.json +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/_common/utils/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/_common/utils/files.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/_common/utils/image/encode.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/_common/utils/jinja/helpers.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/_common/utils/jinja/render.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/_common/utils/jinja/schema.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/_common/utils/jinja/utils.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/_common/utils/structured_output/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/_common/utils/structured_output/schema.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/_common/utils/write_configuration.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/_common/validate_required_values.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/_common/validators.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/debug_info_manager/debug_info_manager.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/debug_info_manager/test/test_debug_info_manager.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/evaluation/config.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/evaluation/context_relevancy/prompts/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/evaluation/context_relevancy/prompts/system_prompt.j2 +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/evaluation/context_relevancy/prompts/user_prompt.j2 +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/evaluation/context_relevancy/schema.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/evaluation/context_relevancy/service.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/evaluation/evaluation_manager.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/evaluation/exception.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/evaluation/hallucination/constants.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/evaluation/hallucination/hallucination_evaluation.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/evaluation/hallucination/prompts/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/evaluation/hallucination/prompts/system_prompt.j2 +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/evaluation/hallucination/prompts/user_prompt.j2 +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/evaluation/hallucination/service.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/evaluation/hallucination/utils.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/evaluation/output_parser.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/evaluation/schemas.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/evaluation/tests/fixtures.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/evaluation/tests/test_config.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/evaluation/tests/test_context_relevancy_service.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/evaluation/tests/test_hallucination_constants.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/evaluation/tests/test_hallucination_utils.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/evaluation/tests/test_output_parser.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/evaluation/tests/test_prompt_loaders.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/evaluation/utils.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/feature_flags/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/feature_flags/feature_flags.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/history_manager/history_construction_with_contents.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/history_manager/history_manager.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/history_manager/loop_token_reducer.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/history_manager/utils.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/loop_runner/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/loop_runner/_iteration_handler_utils.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/loop_runner/_responses_iteration_handler_utils.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/loop_runner/_responses_stream_handler_utils.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/loop_runner/_stream_handler_utils.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/loop_runner/base.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/loop_runner/middleware/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/loop_runner/middleware/planning/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/loop_runner/middleware/planning/planning.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/loop_runner/middleware/planning/schema.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/loop_runner/runners/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/loop_runner/runners/basic.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/loop_runner/runners/mistral/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/loop_runner/runners/mistral/mistral_runner.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/loop_runner/runners/qwen/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/loop_runner/runners/qwen/helpers.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/loop_runner/runners/qwen/qwen_runner.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/message_log_manager/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/message_log_manager/service.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/postprocessor/postprocessor_manager.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/reference_manager/reference_manager.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/responses_api/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/responses_api/postprocessors/code_display.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/responses_api/postprocessors/generated_files.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/responses_api/stream_handler.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/short_term_memory_manager/persistent_short_term_memory_manager.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/thinking_manager/thinking_manager.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/tools/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/tools/a2a/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/tools/a2a/config.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/tools/a2a/evaluation/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/tools/a2a/evaluation/_utils.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/tools/a2a/evaluation/config.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/tools/a2a/evaluation/evaluator.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/tools/a2a/evaluation/summarization_user_message.j2 +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/tools/a2a/manager.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/tools/a2a/postprocessing/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/tools/a2a/postprocessing/_display_utils.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/tools/a2a/postprocessing/_ref_utils.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/tools/a2a/postprocessing/config.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/tools/a2a/postprocessing/display.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/tools/a2a/postprocessing/references.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_display.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_display_utils.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_ref_utils.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/tools/a2a/prompts.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/tools/a2a/response_watcher/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/tools/a2a/response_watcher/service.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/tools/a2a/tool/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/tools/a2a/tool/_memory.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/tools/a2a/tool/_schema.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/tools/a2a/tool/config.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/tools/a2a/tool/service.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/tools/a2a/tool/test/test_service_utils.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/tools/agent_chunks_hanlder.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/tools/config.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/tools/experimental/open_file_tool/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/tools/experimental/open_file_tool/config.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/tools/experimental/open_file_tool/runtime.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/tools/experimental/open_file_tool/tool.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/tools/experimental/todo/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/tools/experimental/todo/config.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/tools/experimental/todo/prompts/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/tools/experimental/todo/prompts/execution_reminder.j2 +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/tools/experimental/todo/prompts/system_prompt.j2 +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/tools/experimental/todo/prompts/tool_description.j2 +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/tools/experimental/todo/prompts/verification_nudge.j2 +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/tools/experimental/todo/schemas.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/tools/experimental/todo/service.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/tools/factory.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/tools/mcp/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/tools/mcp/manager.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/tools/mcp/models.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/tools/mcp/tool_wrapper.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/tools/openai_builtin/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/tools/openai_builtin/base.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/config.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/postprocessors/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/postprocessors/code_display.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/postprocessors/generated_files.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/schemas.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/service.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/tools/openai_builtin/manager.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/tools/schemas.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/tools/test/test_mcp_manager.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/tools/test/test_tool_progress_reporter.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/tools/tool.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/tools/tool_manager.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/tools/tool_progress_reporter.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/tools/utils/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/tools/utils/source_handling/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/tools/utils/source_handling/schema.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/tools/utils/source_handling/source_formatting.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/tools/utils/source_handling/tests/test_source_formatting.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic_table/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic_table/schemas.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic_table/service.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/app/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/app/chat_event_filter_options_settings.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/app/dev_util.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/app/fast_api_factory.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/app/feature_flags.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/app/find_env_file.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/app/init_logging.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/app/init_sdk.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/app/performance/async_tasks.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/app/performance/async_wrapper.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/app/schemas.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/app/unique_settings.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/app/verification.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/app/webhook.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/chat/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/chat/cancellation.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/chat/constants.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/chat/deprecated/service.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/chat/functions.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/chat/rendering.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/chat/responses_api.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/chat/schemas.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/chat/service.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/chat/state.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/chat/utils.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/content/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/content/constants.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/content/functions.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/content/schemas.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/content/service.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/content/smart_rules.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/content/utils.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/data_extraction/README.md +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/data_extraction/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/data_extraction/augmented/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/data_extraction/augmented/service.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/data_extraction/base.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/data_extraction/basic/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/data_extraction/basic/config.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/data_extraction/basic/prompt.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/data_extraction/basic/service.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/elicitation/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/elicitation/constants.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/elicitation/exceptions.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/elicitation/functions.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/elicitation/schemas.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/elicitation/service.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/embedding/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/embedding/constants.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/embedding/functions.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/embedding/schemas.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/embedding/service.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/embedding/utils.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/experimental/README.md +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/experimental/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/experimental/_internal/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/experimental/components/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/experimental/components/content_tree/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/experimental/components/content_tree/functions.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/experimental/components/content_tree/schemas.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/experimental/components/content_tree/service.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/experimental/content_tree/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/experimental/identity/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/experimental/integrations/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/experimental/resources/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/experimental/resources/content_folder/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/experimental/resources/content_folder/functions.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/experimental/resources/content_folder/schemas.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/experimental/resources/content_folder/service.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/experimental/resources/facades/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/experimental/resources/facades/identity/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/experimental/resources/facades/identity/service.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/experimental/resources/group/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/experimental/resources/group/functions.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/experimental/resources/group/schemas.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/experimental/resources/group/service.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/experimental/resources/scheduled_task/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/experimental/resources/scheduled_task/cron.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/experimental/resources/scheduled_task/functions.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/experimental/resources/scheduled_task/schemas.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/experimental/resources/scheduled_task/service.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/experimental/resources/user/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/experimental/resources/user/functions.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/experimental/resources/user/schemas.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/experimental/resources/user/service.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/experimental/testing/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/framework_utilities/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/framework_utilities/langchain/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/framework_utilities/langchain/client.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/framework_utilities/langchain/history.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/framework_utilities/openai/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/framework_utilities/openai/client.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/framework_utilities/openai/message_builder.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/framework_utilities/utils.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/language_model/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/language_model/_responses_api_utils.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/language_model/builder.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/language_model/constants.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/language_model/default_language_model.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/language_model/functions.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/language_model/infos.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/language_model/prompt.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/language_model/reference.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/language_model/schemas.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/language_model/service.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/language_model/stream_transform.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/language_model/utils.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/monitoring/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/monitoring/middleware.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/monitoring/registry.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/protocols/support.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/services/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/services/chat_service.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/services/factory.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/services/knowledge_base.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/short_term_memory/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/short_term_memory/constants.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/short_term_memory/functions.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/short_term_memory/schemas.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/short_term_memory/service.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/smart_rules/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/smart_rules/compile.py +0 -0
- {unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/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.dev12
|
|
4
4
|
Summary:
|
|
5
5
|
Author: Cedric Klinkert, Martin Fadler, Sadique Sheik, Fabian Schläpfer, Pascal Hauri, Ejiroghene Oki-Peter, Rami Azouz, Ricardo Visini, Sanzio Monti
|
|
6
6
|
Author-email: Cedric Klinkert <cedric.klinkert@unique.ch>, Martin Fadler <martin.fadler@unique.ch>, Sadique Sheik <sadique@unique.ch>, Fabian Schläpfer <fabian@unique.ch>, Pascal Hauri <pascal@unique.ch>, Ejiroghene Oki-Peter <oki-peter.ejiroghene@unique.ai>, Rami Azouz <rami.ext@unique.ch>, Ricardo Visini <ricardo.visini@unique.ch>, Sanzio Monti <sanzio.monti@unique.ai>
|
|
@@ -10,13 +10,13 @@ Requires-Dist: pydantic>=2.11.0,<3
|
|
|
10
10
|
Requires-Dist: pyhumps>=3.8.0,<4
|
|
11
11
|
Requires-Dist: numpy>=2.4.2,<3
|
|
12
12
|
Requires-Dist: tiktoken>=0.12.0,<0.13
|
|
13
|
-
Requires-Dist: tokenizers>=0.21.0,<0.
|
|
13
|
+
Requires-Dist: tokenizers>=0.21.0,<0.23
|
|
14
14
|
Requires-Dist: pydantic-settings>=2.10.1,<3
|
|
15
15
|
Requires-Dist: sseclient>=0.0.27,<0.0.28
|
|
16
16
|
Requires-Dist: openai>=1.105.0,<3
|
|
17
17
|
Requires-Dist: platformdirs>=4.0.0,<5
|
|
18
18
|
Requires-Dist: pillow>=12.1.1
|
|
19
|
-
Requires-Dist: unique-sdk>=2026.20.0.
|
|
19
|
+
Requires-Dist: unique-sdk>=2026.20.0.dev11
|
|
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.dev12"
|
|
4
4
|
description = ""
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
requires-python = ">=3.12"
|
|
@@ -22,13 +22,13 @@ dependencies = [
|
|
|
22
22
|
"pyhumps>=3.8.0,<4",
|
|
23
23
|
"numpy>=2.4.2,<3",
|
|
24
24
|
"tiktoken>=0.12.0,<0.13",
|
|
25
|
-
"tokenizers>=0.21.0,<0.
|
|
25
|
+
"tokenizers>=0.21.0,<0.23",
|
|
26
26
|
"pydantic-settings>=2.10.1,<3",
|
|
27
27
|
"sseclient>=0.0.27,<0.0.28",
|
|
28
28
|
"openai>=1.105.0,<3",
|
|
29
29
|
"platformdirs>=4.0.0,<5",
|
|
30
30
|
"pillow>=12.1.1",
|
|
31
|
-
"unique-sdk>=2026.20.0.
|
|
31
|
+
"unique-sdk>=2026.20.0.dev11",
|
|
32
32
|
"jambo>=0.1.2,<0.2",
|
|
33
33
|
"jinja2>=3.1.6,<4",
|
|
34
34
|
"docxtpl>=0.20.1,<0.21",
|
|
@@ -3,6 +3,11 @@ from unique_toolkit.agentic.tools.experimental.open_file_tool import (
|
|
|
3
3
|
OpenFileToolRuntime,
|
|
4
4
|
OpenFileToolRuntimeConfig,
|
|
5
5
|
)
|
|
6
|
+
from unique_toolkit.agentic.tools.experimental.retrieve_search_scope_tool import (
|
|
7
|
+
DisplayMode,
|
|
8
|
+
RetrieveSearchScopeConfig,
|
|
9
|
+
RetrieveSearchScopeTool,
|
|
10
|
+
)
|
|
6
11
|
from unique_toolkit.agentic.tools.experimental.todo import (
|
|
7
12
|
TodoConfig,
|
|
8
13
|
TodoItem,
|
|
@@ -14,9 +19,12 @@ from unique_toolkit.agentic.tools.experimental.todo import (
|
|
|
14
19
|
)
|
|
15
20
|
|
|
16
21
|
__all__ = [
|
|
22
|
+
"DisplayMode",
|
|
17
23
|
"OpenFileTool",
|
|
18
24
|
"OpenFileToolRuntime",
|
|
19
25
|
"OpenFileToolRuntimeConfig",
|
|
26
|
+
"RetrieveSearchScopeConfig",
|
|
27
|
+
"RetrieveSearchScopeTool",
|
|
20
28
|
"TodoConfig",
|
|
21
29
|
"TodoItem",
|
|
22
30
|
"TodoItemInput",
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
from unique_toolkit.agentic.tools.experimental.retrieve_search_scope_tool.config import (
|
|
2
|
+
DisplayMode,
|
|
3
|
+
RetrieveSearchScopeConfig,
|
|
4
|
+
)
|
|
5
|
+
from unique_toolkit.agentic.tools.experimental.retrieve_search_scope_tool.tool import (
|
|
6
|
+
RetrieveSearchScopeTool,
|
|
7
|
+
)
|
|
8
|
+
|
|
9
|
+
__all__ = [
|
|
10
|
+
"DisplayMode",
|
|
11
|
+
"RetrieveSearchScopeConfig",
|
|
12
|
+
"RetrieveSearchScopeTool",
|
|
13
|
+
]
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
from enum import Enum
|
|
2
|
+
from typing import Annotated
|
|
3
|
+
|
|
4
|
+
from pydantic import Field
|
|
5
|
+
|
|
6
|
+
from unique_toolkit._common.pydantic.rjsf_tags import RJSFMetaTag
|
|
7
|
+
from unique_toolkit.agentic.tools.schemas import BaseToolConfig
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class DisplayMode(str, Enum):
|
|
11
|
+
"""How the file list is presented to the agent."""
|
|
12
|
+
|
|
13
|
+
flat = "flat"
|
|
14
|
+
tree = "tree"
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
DEFAULT_TOOL_DESCRIPTION = (
|
|
18
|
+
"Retrieves the list of all file names that are currently searchable "
|
|
19
|
+
"in the knowledge base. "
|
|
20
|
+
"Generally, this tool should be called before performing internal or web search."
|
|
21
|
+
)
|
|
22
|
+
|
|
23
|
+
_RETURNS_FLAT = (
|
|
24
|
+
"Returns all file names that are in the currently searchable knowledge base."
|
|
25
|
+
)
|
|
26
|
+
_RETURNS_TREE = (
|
|
27
|
+
"Returns a folder tree of all files in the currently searchable knowledge base, "
|
|
28
|
+
"showing how they are nested in the directory structure."
|
|
29
|
+
)
|
|
30
|
+
|
|
31
|
+
_TOOL_SYSTEM_PROMPT_TEMPLATE = (
|
|
32
|
+
"Use RetrieveSearchScope to determine the internally searchable files "
|
|
33
|
+
"and metadata about them.\n\n"
|
|
34
|
+
"**When to call the tool:**\n"
|
|
35
|
+
"1. Before performing Internal Search, verify RetrieveSearchScope has been called. "
|
|
36
|
+
"If not: call RetrieveSearchScope.\n"
|
|
37
|
+
"2. Before performing any other search (e.g. web search) it is usually "
|
|
38
|
+
"sensible to check RetrieveSearchScope to determine if internal search "
|
|
39
|
+
"is the better option.\n"
|
|
40
|
+
"**3. Important: Only call RetrieveSearchScope ONCE per conversation.**\n\n"
|
|
41
|
+
"**How the tool works:**\n"
|
|
42
|
+
"- {returns_description}\n"
|
|
43
|
+
"- Useful metadata is passed along with the file names, e.g. openable files "
|
|
44
|
+
"come with a scope id.\n"
|
|
45
|
+
"- The return is token-limited: if the file list exceeds the budget, "
|
|
46
|
+
"the tail is truncated. (Currently, the files end up in the tail arbitrarily)\n\n"
|
|
47
|
+
"**Use the returned file list to:**\n"
|
|
48
|
+
"1. Decide whether to use Internal Search or Web Search based on whether "
|
|
49
|
+
"relevant documents exist.\n"
|
|
50
|
+
"**IMPORTANT: If the listed files indicate that they contain relevant information "
|
|
51
|
+
"to a query: ALWAYS perform internal search.**\n"
|
|
52
|
+
"2. Craft more targeted search queries using the actual file names "
|
|
53
|
+
"(a file name in the query promotes chunks from that file).\n"
|
|
54
|
+
"3. Inform the user about available sources when relevant.\n"
|
|
55
|
+
"4. Files that come with a content id can be opened with a file opener tool."
|
|
56
|
+
)
|
|
57
|
+
|
|
58
|
+
DEFAULT_TOOL_SYSTEM_PROMPT = _TOOL_SYSTEM_PROMPT_TEMPLATE.format(
|
|
59
|
+
returns_description=_RETURNS_FLAT,
|
|
60
|
+
)
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
class RetrieveSearchScopeConfig(BaseToolConfig):
|
|
64
|
+
"""Configuration for the RetrieveSearchScope tool."""
|
|
65
|
+
|
|
66
|
+
enabled: Annotated[
|
|
67
|
+
bool,
|
|
68
|
+
RJSFMetaTag.BooleanWidget.checkbox(
|
|
69
|
+
help=(
|
|
70
|
+
"Enable the RetrieveSearchScope tool. When enabled, the agent "
|
|
71
|
+
"can list all files available in the knowledge base before searching."
|
|
72
|
+
),
|
|
73
|
+
),
|
|
74
|
+
] = Field(
|
|
75
|
+
default=False,
|
|
76
|
+
description="Enable the RetrieveSearchScope tool.",
|
|
77
|
+
)
|
|
78
|
+
|
|
79
|
+
display_mode: DisplayMode = Field(
|
|
80
|
+
default=DisplayMode.flat,
|
|
81
|
+
description=(
|
|
82
|
+
"How to present the file list. "
|
|
83
|
+
"'flat' returns only file names; "
|
|
84
|
+
"'tree' returns the full folder hierarchy."
|
|
85
|
+
),
|
|
86
|
+
)
|
|
87
|
+
|
|
88
|
+
tool_description: Annotated[
|
|
89
|
+
str,
|
|
90
|
+
RJSFMetaTag.StringWidget.textarea(rows=3),
|
|
91
|
+
] = Field(
|
|
92
|
+
default=DEFAULT_TOOL_DESCRIPTION,
|
|
93
|
+
description="The tool description shown to the language model.",
|
|
94
|
+
)
|
|
95
|
+
|
|
96
|
+
tool_description_for_system_prompt: Annotated[
|
|
97
|
+
str,
|
|
98
|
+
RJSFMetaTag.StringWidget.textarea(
|
|
99
|
+
rows=len(DEFAULT_TOOL_SYSTEM_PROMPT.split("\n"))
|
|
100
|
+
),
|
|
101
|
+
] = Field(
|
|
102
|
+
default=DEFAULT_TOOL_SYSTEM_PROMPT,
|
|
103
|
+
description="Instructions injected into the system prompt to guide when the agent should call this tool.",
|
|
104
|
+
)
|
|
105
|
+
|
|
106
|
+
context_window_fraction_for_file_list: float = Field(
|
|
107
|
+
default=0.05,
|
|
108
|
+
ge=0.0,
|
|
109
|
+
le=1.0,
|
|
110
|
+
description="Fraction of the context window reserved for the file list (default 5%).",
|
|
111
|
+
)
|
|
112
|
+
|
|
113
|
+
language_model_max_input_tokens: Annotated[
|
|
114
|
+
int | None, RJSFMetaTag.SpecialWidget.hidden()
|
|
115
|
+
] = Field(
|
|
116
|
+
default=None,
|
|
117
|
+
description="Language model maximum input tokens. Injected by the orchestrator at validation time.",
|
|
118
|
+
)
|
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
from logging import getLogger
|
|
2
|
+
|
|
3
|
+
from typing_extensions import override
|
|
4
|
+
|
|
5
|
+
from unique_toolkit._common.token import count_tokens
|
|
6
|
+
from unique_toolkit.agentic.evaluation.schemas import EvaluationMetricName
|
|
7
|
+
from unique_toolkit.agentic.tools.experimental.retrieve_search_scope_tool.config import (
|
|
8
|
+
_RETURNS_FLAT,
|
|
9
|
+
_RETURNS_TREE,
|
|
10
|
+
DisplayMode,
|
|
11
|
+
RetrieveSearchScopeConfig,
|
|
12
|
+
)
|
|
13
|
+
from unique_toolkit.agentic.tools.factory import ToolFactory
|
|
14
|
+
from unique_toolkit.agentic.tools.schemas import ToolCallResponse
|
|
15
|
+
from unique_toolkit.agentic.tools.tool import Tool
|
|
16
|
+
from unique_toolkit.app.unique_settings import UniqueSettings
|
|
17
|
+
from unique_toolkit.chat.service import LanguageModelToolDescription
|
|
18
|
+
from unique_toolkit.content.schemas import ContentInfo
|
|
19
|
+
from unique_toolkit.language_model.schemas import LanguageModelFunction
|
|
20
|
+
from unique_toolkit.services.factory import UniqueServiceFactory
|
|
21
|
+
from unique_toolkit.services.knowledge_base import KnowledgeBaseService
|
|
22
|
+
|
|
23
|
+
_LOGGER = getLogger(__name__)
|
|
24
|
+
|
|
25
|
+
_OPENABLE_MIME_PREFIXES = (
|
|
26
|
+
"application/pdf",
|
|
27
|
+
"application/msword",
|
|
28
|
+
"application/vnd.ms-word",
|
|
29
|
+
"application/vnd.ms-powerpoint",
|
|
30
|
+
"application/vnd.openxmlformats-officedocument.wordprocessingml",
|
|
31
|
+
"application/vnd.openxmlformats-officedocument.presentationml",
|
|
32
|
+
)
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
class RetrieveSearchScopeTool(Tool[RetrieveSearchScopeConfig]):
|
|
36
|
+
name = "RetrieveSearchScope"
|
|
37
|
+
default_display_name = "Retrieve Search Scope"
|
|
38
|
+
|
|
39
|
+
@override
|
|
40
|
+
def display_name(self) -> str:
|
|
41
|
+
return self.settings.display_name or self.default_display_name
|
|
42
|
+
|
|
43
|
+
@override
|
|
44
|
+
def tool_description(self) -> LanguageModelToolDescription:
|
|
45
|
+
return LanguageModelToolDescription(
|
|
46
|
+
name=self.name,
|
|
47
|
+
description=self.config.tool_description,
|
|
48
|
+
parameters={"type": "object", "properties": {}},
|
|
49
|
+
)
|
|
50
|
+
|
|
51
|
+
@override
|
|
52
|
+
def tool_description_for_system_prompt(self) -> str:
|
|
53
|
+
prompt = self.config.tool_description_for_system_prompt
|
|
54
|
+
if self.config.display_mode == DisplayMode.tree:
|
|
55
|
+
prompt = prompt.replace(_RETURNS_FLAT, _RETURNS_TREE)
|
|
56
|
+
return prompt
|
|
57
|
+
|
|
58
|
+
def evaluation_check_list(self) -> list[EvaluationMetricName]:
|
|
59
|
+
return []
|
|
60
|
+
|
|
61
|
+
def get_evaluation_checks_based_on_tool_response(
|
|
62
|
+
self, tool_response: ToolCallResponse
|
|
63
|
+
) -> list[EvaluationMetricName]:
|
|
64
|
+
return []
|
|
65
|
+
|
|
66
|
+
async def _has_prior_response_in_history(self) -> bool:
|
|
67
|
+
"""Check chat history for an existing RetrieveSearchScope tool response."""
|
|
68
|
+
# TODO(UN-18756 #6): When tool-call persistence is introduced, verify
|
|
69
|
+
# that the persisted response carries role="tool" and name="RetrieveSearchScope",
|
|
70
|
+
# then replace getattr with direct attribute access or adapt to the actual schema.
|
|
71
|
+
try:
|
|
72
|
+
history = await self._chat_service.get_full_history_async()
|
|
73
|
+
for msg in history:
|
|
74
|
+
if str(msg.role) == "tool" and getattr(msg, "name", None) == self.name:
|
|
75
|
+
return True
|
|
76
|
+
except Exception:
|
|
77
|
+
_LOGGER.debug(
|
|
78
|
+
"Could not check history for prior tool response", exc_info=True
|
|
79
|
+
)
|
|
80
|
+
return False
|
|
81
|
+
|
|
82
|
+
@staticmethod
|
|
83
|
+
def _format_entry(ci: ContentInfo, prefix: str = "") -> str:
|
|
84
|
+
if ci.mime_type.startswith(_OPENABLE_MIME_PREFIXES) and ci.id:
|
|
85
|
+
name_part = f"{ci.key} ({ci.id})"
|
|
86
|
+
else:
|
|
87
|
+
name_part = ci.key
|
|
88
|
+
return f"{prefix}/{name_part}" if prefix else name_part
|
|
89
|
+
|
|
90
|
+
async def _build_flat_entries(self, kb_service: KnowledgeBaseService) -> list[str]:
|
|
91
|
+
content_infos = await kb_service.get_content_infos_async(
|
|
92
|
+
metadata_filter=kb_service._metadata_filter,
|
|
93
|
+
)
|
|
94
|
+
return [self._format_entry(ci) for ci in content_infos]
|
|
95
|
+
|
|
96
|
+
async def _build_tree_entries(self, kb_service: KnowledgeBaseService) -> list[str]:
|
|
97
|
+
resolved = await kb_service.resolve_visible_file_paths_async(
|
|
98
|
+
metadata_filter=kb_service._metadata_filter,
|
|
99
|
+
)
|
|
100
|
+
entries: list[str] = []
|
|
101
|
+
for ci, path_segments in resolved:
|
|
102
|
+
folder_path = "/".join(
|
|
103
|
+
seg for seg in path_segments[:-1] if seg != "_no_folder_path"
|
|
104
|
+
)
|
|
105
|
+
entries.append(self._format_entry(ci, prefix=folder_path))
|
|
106
|
+
return entries
|
|
107
|
+
|
|
108
|
+
@override
|
|
109
|
+
async def run(self, tool_call: LanguageModelFunction) -> ToolCallResponse:
|
|
110
|
+
if await self._has_prior_response_in_history():
|
|
111
|
+
return ToolCallResponse(
|
|
112
|
+
id=tool_call.id or "unknown_id",
|
|
113
|
+
name=self.name,
|
|
114
|
+
content="RetrieveSearchScope has already been called in this conversation. "
|
|
115
|
+
"Refer to the earlier result.",
|
|
116
|
+
)
|
|
117
|
+
|
|
118
|
+
try:
|
|
119
|
+
settings = UniqueSettings.from_chat_event(self._event)
|
|
120
|
+
kb_service = UniqueServiceFactory(
|
|
121
|
+
settings=settings
|
|
122
|
+
).knowledge_base_service()
|
|
123
|
+
|
|
124
|
+
if self.config.display_mode == DisplayMode.tree:
|
|
125
|
+
raw_entries = await self._build_tree_entries(kb_service)
|
|
126
|
+
else:
|
|
127
|
+
raw_entries = await self._build_flat_entries(kb_service)
|
|
128
|
+
except Exception:
|
|
129
|
+
_LOGGER.exception("Failed to retrieve content infos from knowledge base")
|
|
130
|
+
return ToolCallResponse(
|
|
131
|
+
id=tool_call.id or "unknown_id",
|
|
132
|
+
name=self.name,
|
|
133
|
+
error_message="Failed to retrieve file list from the knowledge base.",
|
|
134
|
+
)
|
|
135
|
+
|
|
136
|
+
total_files = len(raw_entries)
|
|
137
|
+
if total_files == 0:
|
|
138
|
+
return ToolCallResponse(
|
|
139
|
+
id=tool_call.id or "unknown_id",
|
|
140
|
+
name=self.name,
|
|
141
|
+
content="No files found in the search scope.",
|
|
142
|
+
)
|
|
143
|
+
|
|
144
|
+
max_input_tokens = self.config.language_model_max_input_tokens
|
|
145
|
+
if max_input_tokens is None:
|
|
146
|
+
_LOGGER.warning("language_model_max_input_tokens not set")
|
|
147
|
+
return ToolCallResponse(
|
|
148
|
+
id=tool_call.id or "unknown_id",
|
|
149
|
+
name=self.name,
|
|
150
|
+
error_message="Max_input_tokens not set.",
|
|
151
|
+
)
|
|
152
|
+
|
|
153
|
+
token_budget = int(
|
|
154
|
+
max_input_tokens * self.config.context_window_fraction_for_file_list
|
|
155
|
+
)
|
|
156
|
+
token_count = 0
|
|
157
|
+
seen: set[str] = set()
|
|
158
|
+
display_entries: list[str] = []
|
|
159
|
+
for entry in raw_entries:
|
|
160
|
+
if entry in seen:
|
|
161
|
+
continue
|
|
162
|
+
seen.add(entry)
|
|
163
|
+
|
|
164
|
+
# Uses default cl100k_base tokenizer (not model-specific). Acceptable
|
|
165
|
+
# for short file names where the difference is negligible.
|
|
166
|
+
entry_tokens = count_tokens(entry)
|
|
167
|
+
if token_count + entry_tokens > token_budget:
|
|
168
|
+
break
|
|
169
|
+
display_entries.append(entry)
|
|
170
|
+
token_count += entry_tokens
|
|
171
|
+
|
|
172
|
+
if not display_entries:
|
|
173
|
+
content = "Token limit to low to display search scope."
|
|
174
|
+
else:
|
|
175
|
+
omitted = total_files - len(display_entries)
|
|
176
|
+
file_list = "\n".join(display_entries)
|
|
177
|
+
content = (
|
|
178
|
+
f"Listing {len(display_entries)} of {total_files} files in search scope"
|
|
179
|
+
)
|
|
180
|
+
if omitted > 0:
|
|
181
|
+
content += f" ({omitted} omitted due to token budget or deduplication)"
|
|
182
|
+
content += f":\n\n{file_list}"
|
|
183
|
+
|
|
184
|
+
return ToolCallResponse(
|
|
185
|
+
id=tool_call.id or "unknown_id",
|
|
186
|
+
name=self.name,
|
|
187
|
+
content=content,
|
|
188
|
+
)
|
|
189
|
+
|
|
190
|
+
|
|
191
|
+
ToolFactory.register_tool(RetrieveSearchScopeTool, RetrieveSearchScopeConfig)
|
|
File without changes
|
{unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/__init__.py
RENAMED
|
File without changes
|
{unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/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
|
|
File without changes
|
{unique_toolkit-2026.20.0.dev10 → unique_toolkit-2026.20.0.dev12}/unique_toolkit/agentic/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|