unique_toolkit 2026.22.0__tar.gz → 2026.22.0.dev1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/PKG-INFO +2 -2
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/pyproject.toml +2 -2
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/_common/utils/files.py +2 -3
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/feature_flags/feature_flags.py +5 -5
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/history_manager/loop_token_reducer.py +4 -3
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/tools/config.py +6 -2
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/tools/names.py +0 -1
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/tools/openai_builtin/base.py +0 -7
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/postprocessors/generated_files.py +14 -31
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/service.py +0 -4
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/tools/tool.py +0 -10
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/tools/tool_manager.py +2 -12
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/app/schemas.py +2 -13
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/language_model/infos.py +22 -118
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/language_model/schemas.py +0 -13
- unique_toolkit-2026.22.0/unique_toolkit/agentic/history_manager/settings.py +0 -53
- unique_toolkit-2026.22.0/unique_toolkit/language_model/settings.py +0 -65
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/README.md +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/__init__.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/_common/__init__.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/_common/_base_service.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/_common/_time_utils.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/_common/api_calling/human_verification_manager.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/_common/base_model_type_attribute.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/_common/chunk_relevancy_sorter/config.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/_common/chunk_relevancy_sorter/exception.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/_common/chunk_relevancy_sorter/schemas.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/_common/chunk_relevancy_sorter/service.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/_common/chunk_relevancy_sorter/tests/test_service.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/_common/config_checker/README.md +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/_common/config_checker/__init__.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/_common/config_checker/__main__.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/_common/config_checker/cli.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/_common/config_checker/differ.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/_common/config_checker/exporter.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/_common/config_checker/models.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/_common/config_checker/registry.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/_common/config_checker/validator.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/_common/default_language_model.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/_common/docx_generator/__init__.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/_common/docx_generator/config.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/_common/docx_generator/pandoc_converter.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/_common/docx_generator/schemas.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/_common/docx_generator/service.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/_common/docx_generator/template/Doc Template.docx +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/_common/endpoint_builder.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/_common/endpoint_requestor.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/_common/event_bus.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/_common/exception.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/_common/execution.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/_common/experimental/endpoint_builder.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/_common/experimental/endpoint_requestor.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/_common/experimental/write_up_agent/README.md +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/_common/experimental/write_up_agent/__init__.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/_common/experimental/write_up_agent/agent.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/_common/experimental/write_up_agent/config.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/_common/experimental/write_up_agent/examples/data.csv +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/_common/experimental/write_up_agent/examples/example_usage.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/_common/experimental/write_up_agent/schemas.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/_common/experimental/write_up_agent/services/__init__.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/__init__.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/exceptions.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/service.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/utils.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/__init__.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/config.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/exceptions.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/prompts/config.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/prompts/system_prompt.j2 +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/prompts/user_prompt.j2 +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/service.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/__init__.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/default_template.j2 +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/exceptions.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/service.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/utils.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/_common/experimental/write_up_agent/utils.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/_common/feature_flags/schema.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/_common/metadata_filter_scope.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/_common/pydantic/rjsf_tags.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/_common/pydantic_helpers.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/_common/referencing.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/_common/string_utilities.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/_common/tests/test_referencing.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/_common/tests/test_string_utilities.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/_common/token/__init__.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/_common/token/image_token_counting.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/_common/token/token_counting.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/_common/token/tokenizers/deepseek/tokenizer.json +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/_common/token/tokenizers/qwen/tokenizer.json +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/_common/utils/__init__.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/_common/utils/image/encode.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/_common/utils/jinja/helpers.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/_common/utils/jinja/render.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/_common/utils/jinja/schema.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/_common/utils/jinja/utils.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/_common/utils/structured_output/__init__.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/_common/utils/structured_output/schema.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/_common/utils/write_configuration.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/_common/validate_required_values.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/_common/validators.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/__init__.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/debug_info_manager/debug_info_manager.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/debug_info_manager/test/test_debug_info_manager.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/evaluation/config.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/evaluation/context_relevancy/prompts/__init__.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/evaluation/context_relevancy/prompts/system_prompt.j2 +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/evaluation/context_relevancy/prompts/user_prompt.j2 +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/evaluation/context_relevancy/schema.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/evaluation/context_relevancy/service.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/evaluation/evaluation_manager.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/evaluation/exception.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/evaluation/hallucination/constants.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/evaluation/hallucination/hallucination_evaluation.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/evaluation/hallucination/prompts/__init__.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/evaluation/hallucination/prompts/system_prompt.j2 +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/evaluation/hallucination/prompts/user_prompt.j2 +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/evaluation/hallucination/service.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/evaluation/hallucination/utils.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/evaluation/output_parser.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/evaluation/schemas.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/evaluation/tests/fixtures.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/evaluation/tests/test_config.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/evaluation/tests/test_context_relevancy_service.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/evaluation/tests/test_hallucination_constants.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/evaluation/tests/test_hallucination_utils.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/evaluation/tests/test_output_parser.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/evaluation/tests/test_prompt_loaders.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/evaluation/utils.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/feature_flags/__init__.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/history_manager/history_construction_with_contents.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/history_manager/history_manager.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/history_manager/utils.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/loop_runner/__init__.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/loop_runner/_iteration_handler_utils.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/loop_runner/_responses_iteration_handler_utils.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/loop_runner/_responses_stream_handler_utils.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/loop_runner/_stream_handler_utils.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/loop_runner/base.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/loop_runner/middleware/__init__.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/loop_runner/middleware/planning/__init__.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/loop_runner/middleware/planning/planning.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/loop_runner/middleware/planning/schema.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/loop_runner/runners/__init__.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/loop_runner/runners/basic.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/loop_runner/runners/mistral/__init__.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/loop_runner/runners/mistral/mistral_runner.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/loop_runner/runners/qwen/__init__.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/loop_runner/runners/qwen/helpers.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/loop_runner/runners/qwen/qwen_runner.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/message_log_manager/__init__.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/message_log_manager/service.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/message_log_order.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/postprocessor/postprocessor_manager.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/reference_manager/reference_manager.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/responses_api/__init__.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/responses_api/postprocessors/code_display.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/responses_api/postprocessors/generated_files.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/responses_api/stream_handler.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/short_term_memory_manager/persistent_short_term_memory_manager.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/thinking_manager/thinking_manager.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/tools/__init__.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/tools/a2a/__init__.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/tools/a2a/config.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/tools/a2a/evaluation/__init__.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/tools/a2a/evaluation/_utils.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/tools/a2a/evaluation/config.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/tools/a2a/evaluation/evaluator.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/tools/a2a/evaluation/summarization_user_message.j2 +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/tools/a2a/manager.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/tools/a2a/postprocessing/__init__.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/tools/a2a/postprocessing/_display_utils.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/tools/a2a/postprocessing/_ref_utils.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/tools/a2a/postprocessing/config.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/tools/a2a/postprocessing/display.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/tools/a2a/postprocessing/references.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_display.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_display_utils.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_ref_utils.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_references.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/tools/a2a/prompts.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/tools/a2a/response_watcher/__init__.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/tools/a2a/response_watcher/service.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/tools/a2a/tool/__init__.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/tools/a2a/tool/_memory.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/tools/a2a/tool/_schema.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/tools/a2a/tool/config.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/tools/a2a/tool/service.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/tools/a2a/tool/test/test_service_utils.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/tools/agent_chunks_hanlder.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/tools/experimental/__init__.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/tools/experimental/open_file_tool/__init__.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/tools/experimental/open_file_tool/config.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/tools/experimental/open_file_tool/runtime.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/tools/experimental/open_file_tool/tool.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/tools/experimental/retrieve_search_scope_tool/__init__.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/tools/experimental/retrieve_search_scope_tool/config.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/tools/experimental/retrieve_search_scope_tool/tool.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/tools/experimental/todo/__init__.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/tools/experimental/todo/config.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/tools/experimental/todo/prompts/__init__.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/tools/experimental/todo/prompts/execution_reminder.j2 +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/tools/experimental/todo/prompts/system_prompt.j2 +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/tools/experimental/todo/prompts/tool_description.j2 +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/tools/experimental/todo/prompts/verification_nudge.j2 +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/tools/experimental/todo/schemas.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/tools/experimental/todo/service.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/tools/factory.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/tools/mcp/__init__.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/tools/mcp/manager.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/tools/mcp/models.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/tools/mcp/tool_wrapper.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/tools/openai_builtin/__init__.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/__init__.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/config.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/postprocessors/__init__.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/postprocessors/artifacts.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/postprocessors/code_display.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/schemas.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/tools/openai_builtin/manager.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/tools/schemas.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/tools/test/test_mcp_manager.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/tools/test/test_tool_progress_reporter.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/tools/tool_progress_reporter.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/tools/utils/__init__.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/tools/utils/source_handling/__init__.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/tools/utils/source_handling/schema.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/tools/utils/source_handling/source_formatting.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/tools/utils/source_handling/tests/test_source_formatting.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic_table/__init__.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic_table/schemas.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic_table/service.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/app/__init__.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/app/chat_event_filter_options_settings.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/app/dev_util.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/app/fast_api_factory.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/app/feature_flags.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/app/find_env_file.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/app/init_logging.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/app/init_sdk.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/app/performance/async_tasks.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/app/performance/async_wrapper.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/app/unique_settings.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/app/verification.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/app/webhook.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/chat/__init__.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/chat/cancellation.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/chat/constants.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/chat/deprecated/service.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/chat/functions.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/chat/rendering.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/chat/responses_api.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/chat/schemas.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/chat/service.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/chat/state.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/chat/utils.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/content/__init__.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/content/constants.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/content/functions.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/content/schemas.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/content/service.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/content/smart_rules.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/content/utils.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/data_extraction/README.md +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/data_extraction/__init__.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/data_extraction/augmented/__init__.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/data_extraction/augmented/service.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/data_extraction/base.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/data_extraction/basic/__init__.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/data_extraction/basic/config.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/data_extraction/basic/prompt.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/data_extraction/basic/service.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/elicitation/__init__.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/elicitation/constants.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/elicitation/exceptions.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/elicitation/functions.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/elicitation/schemas.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/elicitation/service.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/embedding/__init__.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/embedding/constants.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/embedding/functions.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/embedding/schemas.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/embedding/service.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/embedding/utils.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/experimental/README.md +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/experimental/__init__.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/experimental/_internal/__init__.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/experimental/_internal/streaming/__init__.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/experimental/_internal/streaming/common.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/experimental/_internal/streaming/pattern_replacer.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/experimental/components/__init__.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/experimental/components/_base.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/experimental/components/content_tree/__init__.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/experimental/components/content_tree/functions.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/experimental/components/content_tree/schemas.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/experimental/components/content_tree/service.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/experimental/components/internal_search/__init__.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/experimental/components/internal_search/base/__init__.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/experimental/components/internal_search/base/config.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/experimental/components/internal_search/base/schemas.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/experimental/components/internal_search/base/service.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/experimental/components/internal_search/base/utils.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/experimental/components/internal_search/chat/__init__.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/experimental/components/internal_search/chat/config.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/experimental/components/internal_search/chat/schemas.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/experimental/components/internal_search/chat/service.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/experimental/components/internal_search/knowledge_base/__init__.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/experimental/components/internal_search/knowledge_base/config.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/experimental/components/internal_search/knowledge_base/schemas.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/experimental/components/internal_search/knowledge_base/service.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/experimental/components/internal_search/post_processing/__init__.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/experimental/components/internal_search/post_processing/config.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/experimental/components/internal_search/post_processing/service.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/experimental/content_tree/__init__.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/experimental/identity/__init__.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/experimental/integrations/__init__.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/experimental/integrations/openai/__init__.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/experimental/integrations/openai/streaming/__init__.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/__init__.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/_async_bridge.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/chat_completions/__init__.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/chat_completions/complete_with_references.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/chat_completions/stream_event_router.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/chat_completions/text_event_handler.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/chat_completions/tool_call_event_handler.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/events.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/protocols/__init__.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/protocols/chat_completions.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/protocols/responses.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/responses/__init__.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/responses/code_interpreter_event_handler.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/responses/complete_with_references.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/responses/completed_event_handler.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/responses/stream_event_router.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/responses/text_delta_event_handler.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/responses/tool_call_event_handler.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/subscribers/__init__.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/subscribers/message_persister.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/subscribers/progress_log_persister.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/experimental/resources/__init__.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/experimental/resources/content_folder/__init__.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/experimental/resources/content_folder/functions.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/experimental/resources/content_folder/schemas.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/experimental/resources/content_folder/service.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/experimental/resources/facades/__init__.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/experimental/resources/facades/identity/__init__.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/experimental/resources/facades/identity/service.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/experimental/resources/group/__init__.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/experimental/resources/group/functions.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/experimental/resources/group/schemas.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/experimental/resources/group/service.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/experimental/resources/scheduled_task/__init__.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/experimental/resources/scheduled_task/cron.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/experimental/resources/scheduled_task/functions.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/experimental/resources/scheduled_task/schemas.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/experimental/resources/scheduled_task/service.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/experimental/resources/user/__init__.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/experimental/resources/user/functions.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/experimental/resources/user/schemas.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/experimental/resources/user/service.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/experimental/testing/__init__.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/framework_utilities/__init__.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/framework_utilities/langchain/__init__.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/framework_utilities/langchain/client.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/framework_utilities/langchain/history.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/framework_utilities/openai/__init__.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/framework_utilities/openai/client.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/framework_utilities/openai/message_builder.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/framework_utilities/utils.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/language_model/__init__.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/language_model/_responses_api_utils.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/language_model/builder.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/language_model/constants.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/language_model/default_language_model.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/language_model/functions.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/language_model/prompt.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/language_model/reference.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/language_model/service.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/language_model/stream_transform.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/language_model/utils.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/monitoring/__init__.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/monitoring/middleware.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/monitoring/registry.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/protocols/support.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/services/__init__.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/services/chat_service.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/services/factory.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/services/knowledge_base.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/short_term_memory/__init__.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/short_term_memory/constants.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/short_term_memory/functions.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/short_term_memory/schemas.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/short_term_memory/service.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/smart_rules/__init__.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/smart_rules/compile.py +0 -0
- {unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/test_utilities/events.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: unique-toolkit
|
|
3
|
-
Version: 2026.22.0
|
|
3
|
+
Version: 2026.22.0.dev1
|
|
4
4
|
Summary:
|
|
5
5
|
Author: Cedric Klinkert, Martin Fadler, Sadique Sheik, Fabian Schläpfer, Pascal Hauri, Ejiroghene Oki-Peter, Rami Azouz, Ricardo Visini, Sanzio Monti
|
|
6
6
|
Author-email: Cedric Klinkert <cedric.klinkert@unique.ch>, Martin Fadler <martin.fadler@unique.ch>, Sadique Sheik <sadique@unique.ch>, Fabian Schläpfer <fabian@unique.ch>, Pascal Hauri <pascal@unique.ch>, Ejiroghene Oki-Peter <oki-peter.ejiroghene@unique.ai>, Rami Azouz <rami.ext@unique.ch>, Ricardo Visini <ricardo.visini@unique.ch>, Sanzio Monti <sanzio.monti@unique.ai>
|
|
@@ -16,7 +16,7 @@ Requires-Dist: sseclient>=0.0.27,<0.0.28
|
|
|
16
16
|
Requires-Dist: openai>=1.105.0,<3
|
|
17
17
|
Requires-Dist: platformdirs>=4.0.0,<5
|
|
18
18
|
Requires-Dist: pillow>=12.1.1
|
|
19
|
-
Requires-Dist: unique-sdk>=2026.22.0
|
|
19
|
+
Requires-Dist: unique-sdk>=2026.22.0.dev1,<2026.22.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.22.0"
|
|
3
|
+
version = "2026.22.0.dev1"
|
|
4
4
|
description = ""
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
requires-python = ">=3.12"
|
|
@@ -28,7 +28,7 @@ dependencies = [
|
|
|
28
28
|
"openai>=1.105.0,<3",
|
|
29
29
|
"platformdirs>=4.0.0,<5",
|
|
30
30
|
"pillow>=12.1.1",
|
|
31
|
-
"unique-sdk>=2026.22.0",
|
|
31
|
+
"unique-sdk>=2026.22.0.dev1,<2026.22.0rc0",
|
|
32
32
|
"jambo>=0.1.2,<0.2",
|
|
33
33
|
"jinja2>=3.1.6,<4",
|
|
34
34
|
"docxtpl>=0.20.1,<0.21",
|
{unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/_common/utils/files.py
RENAMED
|
@@ -8,7 +8,6 @@ from pathlib import Path
|
|
|
8
8
|
class FileMimeType(StrEnum):
|
|
9
9
|
PDF = "application/pdf"
|
|
10
10
|
DOCX = "application/vnd.openxmlformats-officedocument.wordprocessingml.document"
|
|
11
|
-
DOTX = "application/vnd.openxmlformats-officedocument.wordprocessingml.template"
|
|
12
11
|
DOC = "application/msword"
|
|
13
12
|
# TODO: clean up duplicates and make the monolith compatible with this.
|
|
14
13
|
XLSX = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
|
|
@@ -42,7 +41,7 @@ class FileMimeType(StrEnum):
|
|
|
42
41
|
@property
|
|
43
42
|
def is_docx(self) -> bool:
|
|
44
43
|
cls = self.__class__
|
|
45
|
-
return self in {cls.DOCX, cls.
|
|
44
|
+
return self in {cls.DOCX, cls.DOC}
|
|
46
45
|
|
|
47
46
|
@property
|
|
48
47
|
def is_pdf(self) -> bool:
|
|
@@ -99,7 +98,7 @@ class FileMimeType(StrEnum):
|
|
|
99
98
|
|
|
100
99
|
def get_common_name(extension: FileMimeType) -> str:
|
|
101
100
|
match extension:
|
|
102
|
-
case FileMimeType.DOCX | FileMimeType.
|
|
101
|
+
case FileMimeType.DOCX | FileMimeType.DOC:
|
|
103
102
|
return "docx"
|
|
104
103
|
case (
|
|
105
104
|
FileMimeType.XLSX
|
|
@@ -66,6 +66,11 @@ class FeatureFlags(BaseSettings):
|
|
|
66
66
|
description="Enable new answers UI (UN-14411)",
|
|
67
67
|
)
|
|
68
68
|
|
|
69
|
+
enable_elicitation_un_15809: FeatureFlag = Field(
|
|
70
|
+
default=FeatureFlag(False),
|
|
71
|
+
description="Enable elicitation (UN-15809)",
|
|
72
|
+
)
|
|
73
|
+
|
|
69
74
|
enable_html_rendering_un_15131: FeatureFlag = Field(
|
|
70
75
|
default=FeatureFlag(False),
|
|
71
76
|
description="Enable HTML rendering for code interpreter files (UN-15131). Can be 'true' or comma-separated company IDs.",
|
|
@@ -76,11 +81,6 @@ class FeatureFlags(BaseSettings):
|
|
|
76
81
|
description="Emit codeExecution fences in message.text for code interpreter outputs (UN-17972). When disabled, inline file refs are kept as-is. Can be 'true' or comma-separated company IDs.",
|
|
77
82
|
)
|
|
78
83
|
|
|
79
|
-
enable_html_with_fence_un_17927: FeatureFlag = Field(
|
|
80
|
-
default=FeatureFlag(False),
|
|
81
|
-
description="Render HTML code interpreter files as htmlWithSource fences instead of HtmlRendering blocks (UN-17927). Requires enable_code_execution_fence_un_17972 to also be enabled. Can be 'true' or comma-separated company IDs.",
|
|
82
|
-
)
|
|
83
|
-
|
|
84
84
|
enable_web_search_argument_screening_un_18741: FeatureFlag = Field(
|
|
85
85
|
default=FeatureFlag(False),
|
|
86
86
|
description="Enable argument screening agent for web search tool calls (UN-18741). Can be 'true' or comma-separated company IDs.",
|
|
@@ -13,7 +13,6 @@ from unique_toolkit.agentic.history_manager.history_construction_with_contents i
|
|
|
13
13
|
get_full_history_with_contents_and_tool_calls_async,
|
|
14
14
|
get_full_history_with_contents_async,
|
|
15
15
|
)
|
|
16
|
-
from unique_toolkit.agentic.history_manager.settings import env_settings
|
|
17
16
|
from unique_toolkit.agentic.history_manager.utils import (
|
|
18
17
|
get_selected_uploaded_content_ids,
|
|
19
18
|
serialize_tool_content_json,
|
|
@@ -34,8 +33,10 @@ from unique_toolkit.language_model.schemas import (
|
|
|
34
33
|
)
|
|
35
34
|
from unique_toolkit.services.factory import UniqueServiceFactory
|
|
36
35
|
|
|
37
|
-
MAX_INPUT_TOKENS_SAFETY_PERCENTAGE =
|
|
38
|
-
|
|
36
|
+
MAX_INPUT_TOKENS_SAFETY_PERCENTAGE = (
|
|
37
|
+
0.1 # 10% safety margin for input tokens we need 10% less does not work.
|
|
38
|
+
)
|
|
39
|
+
SAFETY_MARGIN_FOR_AGGRESSIVE_REDUCTION = 0.9
|
|
39
40
|
|
|
40
41
|
|
|
41
42
|
class SourceReductionResult(BaseModel):
|
{unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/tools/config.py
RENAMED
|
@@ -5,8 +5,8 @@ from pydantic import (
|
|
|
5
5
|
BaseModel,
|
|
6
6
|
BeforeValidator,
|
|
7
7
|
Field,
|
|
8
|
-
SerializeAsAny,
|
|
9
8
|
ValidationInfo,
|
|
9
|
+
field_serializer,
|
|
10
10
|
model_validator,
|
|
11
11
|
)
|
|
12
12
|
from typing_extensions import TypeVar
|
|
@@ -53,7 +53,7 @@ class ToolBuildConfig(BaseModel, Generic[T]):
|
|
|
53
53
|
"""Main tool configuration"""
|
|
54
54
|
|
|
55
55
|
name: str
|
|
56
|
-
configuration:
|
|
56
|
+
configuration: T
|
|
57
57
|
display_name: str = ""
|
|
58
58
|
icon: Annotated[ToolIcon, BeforeValidator(handle_undefined_icon)] = Field(
|
|
59
59
|
default=ToolIcon.BOOK,
|
|
@@ -125,3 +125,7 @@ class ToolBuildConfig(BaseModel, Generic[T]):
|
|
|
125
125
|
config = configuration
|
|
126
126
|
value["configuration"] = config
|
|
127
127
|
return value
|
|
128
|
+
|
|
129
|
+
@field_serializer("configuration")
|
|
130
|
+
def serialize_config(self, value: T) -> dict[str, Any]:
|
|
131
|
+
return value.__class__.model_dump(value)
|
|
@@ -46,13 +46,6 @@ class OpenAIBuiltInTool(ABC, Generic[ToolType]):
|
|
|
46
46
|
def display_name(self) -> str:
|
|
47
47
|
raise NotImplementedError()
|
|
48
48
|
|
|
49
|
-
def is_capability(self) -> bool:
|
|
50
|
-
"""Return True if this tool is a capability that must remain in the
|
|
51
|
-
active tool set regardless of ``tool_choices`` filtering.
|
|
52
|
-
Default: False.
|
|
53
|
-
"""
|
|
54
|
-
return False
|
|
55
|
-
|
|
56
49
|
def get_required_include_params(self) -> list[ResponseIncludable]:
|
|
57
50
|
"""Return Responses API `include` values required by this tool.
|
|
58
51
|
|
|
@@ -503,15 +503,6 @@ class DisplayCodeInterpreterFilesPostProcessor(
|
|
|
503
503
|
fence_ff_on = feature_flags.enable_code_execution_fence_un_17972.is_enabled(
|
|
504
504
|
self._company_id
|
|
505
505
|
)
|
|
506
|
-
# HTML uses htmlWithSource only when BOTH the code-execution fence FF AND the
|
|
507
|
-
# dedicated HTML-fence FF are on. Default (FF off) keeps HtmlRendering so
|
|
508
|
-
# existing deployments are unaffected.
|
|
509
|
-
html_fence_ff_on = (
|
|
510
|
-
fence_ff_on
|
|
511
|
-
and feature_flags.enable_html_with_fence_un_17927.is_enabled(
|
|
512
|
-
self._company_id
|
|
513
|
-
)
|
|
514
|
-
)
|
|
515
506
|
|
|
516
507
|
replaced_files: list[str] = []
|
|
517
508
|
missed_files: list[str] = []
|
|
@@ -543,9 +534,7 @@ class DisplayCodeInterpreterFilesPostProcessor(
|
|
|
543
534
|
)
|
|
544
535
|
changed |= replaced
|
|
545
536
|
|
|
546
|
-
|
|
547
|
-
# is on (enable_html_with_fence_un_17927). Default keeps HtmlRendering.
|
|
548
|
-
elif is_html and not html_fence_ff_on:
|
|
537
|
+
elif is_html:
|
|
549
538
|
loop_response.message.text, replaced = _replace_container_html_citation(
|
|
550
539
|
text=loop_response.message.text or "",
|
|
551
540
|
filename=filename,
|
|
@@ -553,8 +542,6 @@ class DisplayCodeInterpreterFilesPostProcessor(
|
|
|
553
542
|
)
|
|
554
543
|
changed |= replaced
|
|
555
544
|
|
|
556
|
-
# Non-HTML files, or HTML when html_fence_ff_on → inline content link for
|
|
557
|
-
# subsequent fence injection (htmlWithSource / imgWithSource / fileWithSource)
|
|
558
545
|
else:
|
|
559
546
|
loop_response.message.text, replaced = _replace_container_file_citation(
|
|
560
547
|
text=loop_response.message.text or "",
|
|
@@ -576,7 +563,6 @@ class DisplayCodeInterpreterFilesPostProcessor(
|
|
|
576
563
|
else:
|
|
577
564
|
missed_files.append(filename)
|
|
578
565
|
|
|
579
|
-
# HtmlRendering and htmlWithSource both embed contentId directly — no ContentReference needed
|
|
580
566
|
is_html_rendered = is_html
|
|
581
567
|
if replaced and not (is_image or is_html_rendered or fence_ff_on):
|
|
582
568
|
loop_response.message.references.append(
|
|
@@ -598,17 +584,13 @@ class DisplayCodeInterpreterFilesPostProcessor(
|
|
|
598
584
|
)
|
|
599
585
|
|
|
600
586
|
if fence_ff_on:
|
|
601
|
-
code_blocks = _build_code_blocks(
|
|
602
|
-
loop_response, self._content_map, include_html=html_fence_ff_on
|
|
603
|
-
)
|
|
587
|
+
code_blocks = _build_code_blocks(loop_response, self._content_map)
|
|
604
588
|
self._log.info(
|
|
605
589
|
"Fence injection — %d code block(s), files: %s",
|
|
606
590
|
len(code_blocks),
|
|
607
591
|
[f.filename for b in code_blocks for f in b.files],
|
|
608
592
|
)
|
|
609
|
-
_warn_unmatched_code_blocks(
|
|
610
|
-
self._content_map, code_blocks, include_html=html_fence_ff_on
|
|
611
|
-
)
|
|
593
|
+
_warn_unmatched_code_blocks(self._content_map, code_blocks)
|
|
612
594
|
text_before = loop_response.message.text
|
|
613
595
|
loop_response.message.text = _inject_code_execution_fences(
|
|
614
596
|
loop_response.message.text or "",
|
|
@@ -989,9 +971,12 @@ def _build_file_fence(file: CodeInterpreterFile, code: str, fence_id: int) -> st
|
|
|
989
971
|
content_id, a title derived from the filename, the type, and the
|
|
990
972
|
escaped source code.
|
|
991
973
|
|
|
974
|
+
HTML is not emitted here in normal flow: it is rendered via ``HtmlRendering`` blocks
|
|
975
|
+
in message text and excluded from fence injection. If ``type="html"`` is passed (e.g.
|
|
976
|
+
orphan path), fall through to ``fileWithSource`` like other non-image artifacts.
|
|
977
|
+
|
|
992
978
|
Format (4 backticks so inner code backticks never close the fence):
|
|
993
979
|
````imgWithSource(id='{n}', contentId='{id}', title="{title}", code="{escaped_code}")````
|
|
994
|
-
````htmlWithSource(id='{n}', contentId='{id}', title="{title}", code="{escaped_code}")````
|
|
995
980
|
````fileWithSource(id='{n}', contentId='{id}', title="{title}", type="{type}", code="{escaped_code}")````
|
|
996
981
|
"""
|
|
997
982
|
title = _file_title(file.filename)
|
|
@@ -999,8 +984,6 @@ def _build_file_fence(file: CodeInterpreterFile, code: str, fence_id: int) -> st
|
|
|
999
984
|
outer = "````"
|
|
1000
985
|
if file.type == "image":
|
|
1001
986
|
tag = f"imgWithSource(id='{fence_id}', contentId='{file.content_id}', title=\"{title}\", code=\"{escaped}\")"
|
|
1002
|
-
elif file.type == "html":
|
|
1003
|
-
tag = f"htmlWithSource(id='{fence_id}', contentId='{file.content_id}', title=\"{title}\", code=\"{escaped}\")"
|
|
1004
987
|
else:
|
|
1005
988
|
ftype = _file_frontend_type(file.filename)
|
|
1006
989
|
tag = f'fileWithSource(id=\'{fence_id}\', contentId=\'{file.content_id}\', title="{title}", type="{ftype}", code="{escaped}")'
|
|
@@ -1024,7 +1007,7 @@ def _inline_ref_pattern(file: CodeInterpreterFile) -> re.Pattern[str]:
|
|
|
1024
1007
|
|
|
1025
1008
|
|
|
1026
1009
|
_FENCE_BLOCK_START = re.compile(
|
|
1027
|
-
r"^[^\n`]+?(````(?:imgWithSource|fileWithSource
|
|
1010
|
+
r"^[^\n`]+?(````(?:imgWithSource|fileWithSource)\()",
|
|
1028
1011
|
re.MULTILINE,
|
|
1029
1012
|
)
|
|
1030
1013
|
|
|
@@ -1034,9 +1017,9 @@ _FENCE_BLOCK_START = re.compile(
|
|
|
1034
1017
|
# - cross-line: 1 or 2 newlines optionally surrounded by horizontal whitespace
|
|
1035
1018
|
# (list-item linebreak, or blank-line paragraph gap)
|
|
1036
1019
|
_CONSECUTIVE_FENCES_RE = re.compile(
|
|
1037
|
-
r"(````(?:imgWithSource|fileWithSource
|
|
1020
|
+
r"(````(?:imgWithSource|fileWithSource)\([^\n]*\)````)"
|
|
1038
1021
|
r"(?:[^\n`]*|[ \t]*\n{1,2}[ \t]*)"
|
|
1039
|
-
r"(?=````(?:imgWithSource|fileWithSource
|
|
1022
|
+
r"(?=````(?:imgWithSource|fileWithSource)\()"
|
|
1040
1023
|
)
|
|
1041
1024
|
|
|
1042
1025
|
|
|
@@ -1100,7 +1083,6 @@ def _inject_code_execution_fences(
|
|
|
1100
1083
|
def _build_code_blocks(
|
|
1101
1084
|
loop_response: ResponsesLanguageModelStreamResponse,
|
|
1102
1085
|
content_map: dict[str, str | None],
|
|
1103
|
-
include_html: bool = False,
|
|
1104
1086
|
) -> list[CodeInterpreterBlock]:
|
|
1105
1087
|
"""Map each code interpreter call to the files it produced via /mnt/data/ path matching.
|
|
1106
1088
|
|
|
@@ -1198,9 +1180,11 @@ def _build_code_blocks(
|
|
|
1198
1180
|
# overwritten across executions. Using a dict keyed by filename ensures each
|
|
1199
1181
|
# file appears exactly once per block (last annotation wins, consistent with
|
|
1200
1182
|
# the last-writer-wins rule applied in step 1).
|
|
1183
|
+
# HTML files are excluded: they are always rendered via HtmlRendering blocks
|
|
1184
|
+
# and never participate in fence injection.
|
|
1201
1185
|
block_file_map: dict[int, dict[str, CodeInterpreterFile]] = {}
|
|
1202
1186
|
for annotation in loop_response.container_files:
|
|
1203
|
-
if
|
|
1187
|
+
if _get_file_type(annotation.filename) == "html":
|
|
1204
1188
|
continue
|
|
1205
1189
|
content_id = content_map.get(annotation.filename)
|
|
1206
1190
|
if content_id is None:
|
|
@@ -1284,7 +1268,6 @@ def _replace_dangling_sandbox_links(text: str) -> tuple[str, bool]:
|
|
|
1284
1268
|
def _warn_unmatched_code_blocks(
|
|
1285
1269
|
content_map: dict[str, str | None],
|
|
1286
1270
|
code_blocks: list[CodeInterpreterBlock],
|
|
1287
|
-
include_html: bool = False,
|
|
1288
1271
|
) -> None:
|
|
1289
1272
|
"""Warn for files that were uploaded but could not be matched to any code block.
|
|
1290
1273
|
|
|
@@ -1298,7 +1281,7 @@ def _warn_unmatched_code_blocks(
|
|
|
1298
1281
|
for filename, content_id in content_map.items():
|
|
1299
1282
|
if content_id is None:
|
|
1300
1283
|
continue
|
|
1301
|
-
if
|
|
1284
|
+
if _get_file_type(filename) == "html":
|
|
1302
1285
|
continue
|
|
1303
1286
|
if filename not in fenced_filenames:
|
|
1304
1287
|
logger.warning(
|
|
@@ -302,10 +302,6 @@ class OpenAICodeInterpreterTool(OpenAIBuiltInTool[CodeInterpreter]):
|
|
|
302
302
|
def is_exclusive(self) -> bool:
|
|
303
303
|
return self._is_exclusive
|
|
304
304
|
|
|
305
|
-
@override
|
|
306
|
-
def is_capability(self) -> bool:
|
|
307
|
-
return True
|
|
308
|
-
|
|
309
305
|
@classmethod
|
|
310
306
|
async def build_tool(
|
|
311
307
|
cls,
|
{unique_toolkit-2026.22.0 → unique_toolkit-2026.22.0.dev1}/unique_toolkit/agentic/tools/tool.py
RENAMED
|
@@ -117,16 +117,6 @@ class Tool(ABC, Generic[ConfigType]):
|
|
|
117
117
|
"""
|
|
118
118
|
return ""
|
|
119
119
|
|
|
120
|
-
def is_capability(self) -> bool:
|
|
121
|
-
"""Return True if this tool is a capability that must remain in the
|
|
122
|
-
active tool set regardless of ``tool_choices`` filtering.
|
|
123
|
-
|
|
124
|
-
Capability tools are always kept in ``_tools`` when enabled, even when
|
|
125
|
-
another tool is force-selected via ``tool_choices`` or an exclusive tool
|
|
126
|
-
wins the selection. Default: False.
|
|
127
|
-
"""
|
|
128
|
-
return False
|
|
129
|
-
|
|
130
120
|
@deprecated(
|
|
131
121
|
"Do not use. The tool should not determine how"
|
|
132
122
|
"it is checked. This should be defined by the user"
|
|
@@ -161,6 +161,8 @@ class _ToolManager(Generic[_ApiMode]):
|
|
|
161
161
|
continue
|
|
162
162
|
# if tool choices are given, only include those tools
|
|
163
163
|
if len(self._tool_choices) > 0 and t.name not in self._tool_choices:
|
|
164
|
+
if t.name == OpenAIBuiltInToolName.CODE_INTERPRETER:
|
|
165
|
+
self._tools.append(t)
|
|
164
166
|
continue
|
|
165
167
|
# is the tool exclusive and has been choosen by the user?
|
|
166
168
|
if t.is_exclusive() and len(tool_choices) > 0 and t.name in tool_choices:
|
|
@@ -175,18 +177,6 @@ class _ToolManager(Generic[_ApiMode]):
|
|
|
175
177
|
|
|
176
178
|
self._tools.append(t)
|
|
177
179
|
|
|
178
|
-
# Capability tools bypass tool_choices filtering — they are always
|
|
179
|
-
# included when enabled, regardless of what was force-selected.
|
|
180
|
-
active_names = {t.name for t in self._tools}
|
|
181
|
-
for t in self.available_tools:
|
|
182
|
-
if (
|
|
183
|
-
t.is_enabled()
|
|
184
|
-
and t.name not in self._disabled_tools
|
|
185
|
-
and t.is_capability()
|
|
186
|
-
and t.name not in active_names
|
|
187
|
-
):
|
|
188
|
-
self._tools.append(t)
|
|
189
|
-
|
|
190
180
|
def _restore_uploaded_search_for_internal_search_if_available(
|
|
191
181
|
self,
|
|
192
182
|
exclusive_tool: Tool[Any] | OpenAIBuiltInTool[Any],
|
|
@@ -215,7 +215,7 @@ class Correlation(BaseModel):
|
|
|
215
215
|
parent_assistant_id: str
|
|
216
216
|
|
|
217
217
|
|
|
218
|
-
class
|
|
218
|
+
class ChatEventSkillChoice(BaseModel):
|
|
219
219
|
model_config = model_config
|
|
220
220
|
|
|
221
221
|
name: str = Field(default="", description="Skill name.")
|
|
@@ -229,9 +229,6 @@ class ChatEventSkill(BaseModel):
|
|
|
229
229
|
)
|
|
230
230
|
|
|
231
231
|
|
|
232
|
-
SkillReference = ChatEventSkill
|
|
233
|
-
|
|
234
|
-
|
|
235
232
|
class ChatEventPayload(BaseModel):
|
|
236
233
|
model_config = model_config
|
|
237
234
|
|
|
@@ -251,21 +248,13 @@ class ChatEventPayload(BaseModel):
|
|
|
251
248
|
default_factory=list,
|
|
252
249
|
description="A list containing the tool names the user has chosen to be activated.",
|
|
253
250
|
)
|
|
254
|
-
skill_choices: list[
|
|
251
|
+
skill_choices: list[ChatEventSkillChoice] = Field(
|
|
255
252
|
default_factory=list,
|
|
256
253
|
description=(
|
|
257
254
|
"A list containing selected skills with ``scope_id``, "
|
|
258
255
|
"``content_id``, and ``name``."
|
|
259
256
|
),
|
|
260
257
|
)
|
|
261
|
-
available_skills: list[ChatEventSkill] = Field(
|
|
262
|
-
default_factory=list,
|
|
263
|
-
description=(
|
|
264
|
-
"Per-turn skills exposed for this message (``content_id`` + "
|
|
265
|
-
"``scope_id`` from the client). This list alone drives the "
|
|
266
|
-
"Skill tool registry for the run."
|
|
267
|
-
),
|
|
268
|
-
)
|
|
269
258
|
disabled_tools: list[str] = Field(
|
|
270
259
|
default_factory=list,
|
|
271
260
|
description="A list containing the tool names of tools that are disabled at the company level",
|