unique_toolkit 1.55.0__tar.gz → 1.56.0__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-1.55.0 → unique_toolkit-1.56.0}/PKG-INFO +1 -1
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/pyproject.toml +1 -1
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic/evaluation/evaluation_manager.py +11 -1
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic/postprocessor/postprocessor_manager.py +11 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic/tools/tool_manager.py +8 -1
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/language_model/infos.py +130 -11
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/services/chat_service.py +44 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/README.md +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/__init__.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/_common/__init__.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/_common/_base_service.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/_common/_time_utils.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/_common/api_calling/human_verification_manager.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/_common/base_model_type_attribute.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/_common/chunk_relevancy_sorter/config.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/_common/chunk_relevancy_sorter/exception.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/_common/chunk_relevancy_sorter/schemas.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/_common/chunk_relevancy_sorter/service.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/_common/chunk_relevancy_sorter/tests/test_service.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/_common/config_checker/README.md +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/_common/config_checker/__init__.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/_common/config_checker/__main__.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/_common/config_checker/cli.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/_common/config_checker/differ.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/_common/config_checker/exporter.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/_common/config_checker/models.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/_common/config_checker/registry.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/_common/config_checker/validator.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/_common/default_language_model.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/_common/docx_generator/__init__.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/_common/docx_generator/config.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/_common/docx_generator/pandoc_converter.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/_common/docx_generator/schemas.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/_common/docx_generator/service.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/_common/docx_generator/template/Doc Template.docx +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/_common/endpoint_builder.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/_common/endpoint_requestor.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/_common/event_bus.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/_common/exception.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/_common/execution.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/_common/experimental/endpoint_builder.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/_common/experimental/endpoint_requestor.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/_common/experimental/write_up_agent/README.md +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/_common/experimental/write_up_agent/__init__.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/_common/experimental/write_up_agent/agent.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/_common/experimental/write_up_agent/config.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/_common/experimental/write_up_agent/examples/data.csv +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/_common/experimental/write_up_agent/examples/example_usage.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/_common/experimental/write_up_agent/schemas.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/_common/experimental/write_up_agent/services/__init__.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/__init__.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/exceptions.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/service.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/utils.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/__init__.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/config.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/exceptions.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/prompts/config.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/prompts/system_prompt.j2 +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/prompts/user_prompt.j2 +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/service.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/__init__.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/default_template.j2 +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/exceptions.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/service.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/utils.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/_common/experimental/write_up_agent/utils.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/_common/feature_flags/schema.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/_common/pydantic/rjsf_tags.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/_common/pydantic_helpers.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/_common/referencing.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/_common/string_utilities.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/_common/tests/test_referencing.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/_common/tests/test_string_utilities.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/_common/token/__init__.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/_common/token/image_token_counting.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/_common/token/token_counting.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/_common/token/tokenizers/deepseek/tokenizer.json +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/_common/token/tokenizers/qwen/tokenizer.json +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/_common/utils/__init__.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/_common/utils/files.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/_common/utils/image/encode.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/_common/utils/jinja/helpers.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/_common/utils/jinja/render.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/_common/utils/jinja/schema.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/_common/utils/jinja/utils.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/_common/utils/structured_output/__init__.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/_common/utils/structured_output/schema.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/_common/utils/write_configuration.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/_common/validate_required_values.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/_common/validators.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic/__init__.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic/debug_info_manager/debug_info_manager.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic/debug_info_manager/test/test_debug_info_manager.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic/evaluation/config.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic/evaluation/context_relevancy/prompts/__init__.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic/evaluation/context_relevancy/prompts/system_prompt.j2 +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic/evaluation/context_relevancy/prompts/user_prompt.j2 +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic/evaluation/context_relevancy/schema.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic/evaluation/context_relevancy/service.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic/evaluation/exception.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic/evaluation/hallucination/constants.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic/evaluation/hallucination/hallucination_evaluation.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic/evaluation/hallucination/prompts/__init__.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic/evaluation/hallucination/prompts/system_prompt.j2 +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic/evaluation/hallucination/prompts/user_prompt.j2 +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic/evaluation/hallucination/service.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic/evaluation/hallucination/utils.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic/evaluation/output_parser.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic/evaluation/schemas.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic/evaluation/tests/fixtures.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic/evaluation/tests/test_config.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic/evaluation/tests/test_context_relevancy_service.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic/evaluation/tests/test_hallucination_constants.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic/evaluation/tests/test_hallucination_utils.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic/evaluation/tests/test_output_parser.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic/evaluation/tests/test_prompt_loaders.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic/evaluation/utils.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic/feature_flags/__init__.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic/feature_flags/feature_flags.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic/history_manager/history_construction_with_contents.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic/history_manager/history_manager.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic/history_manager/loop_token_reducer.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic/history_manager/utils.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic/loop_runner/__init__.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic/loop_runner/_iteration_handler_utils.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic/loop_runner/_responses_iteration_handler_utils.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic/loop_runner/_responses_stream_handler_utils.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic/loop_runner/_stream_handler_utils.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic/loop_runner/base.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic/loop_runner/middleware/__init__.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic/loop_runner/middleware/planning/__init__.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic/loop_runner/middleware/planning/planning.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic/loop_runner/middleware/planning/schema.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic/loop_runner/runners/__init__.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic/loop_runner/runners/basic.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic/loop_runner/runners/mistral/__init__.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic/loop_runner/runners/mistral/mistral_runner.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic/loop_runner/runners/qwen/__init__.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic/loop_runner/runners/qwen/helpers.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic/loop_runner/runners/qwen/qwen_runner.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic/message_log_manager/__init__.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic/message_log_manager/service.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic/reference_manager/reference_manager.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic/responses_api/__init__.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic/responses_api/postprocessors/code_display.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic/responses_api/postprocessors/generated_files.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic/responses_api/stream_handler.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic/short_term_memory_manager/persistent_short_term_memory_manager.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic/thinking_manager/thinking_manager.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic/tools/__init__.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic/tools/a2a/__init__.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic/tools/a2a/config.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic/tools/a2a/evaluation/__init__.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic/tools/a2a/evaluation/_utils.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic/tools/a2a/evaluation/config.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic/tools/a2a/evaluation/evaluator.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic/tools/a2a/evaluation/summarization_user_message.j2 +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic/tools/a2a/manager.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic/tools/a2a/postprocessing/__init__.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic/tools/a2a/postprocessing/_display_utils.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic/tools/a2a/postprocessing/_ref_utils.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic/tools/a2a/postprocessing/config.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic/tools/a2a/postprocessing/display.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic/tools/a2a/postprocessing/references.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_display.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_display_utils.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_ref_utils.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic/tools/a2a/prompts.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic/tools/a2a/response_watcher/__init__.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic/tools/a2a/response_watcher/service.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic/tools/a2a/tool/__init__.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic/tools/a2a/tool/_memory.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic/tools/a2a/tool/_schema.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic/tools/a2a/tool/config.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic/tools/a2a/tool/service.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic/tools/a2a/tool/test/test_service_utils.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic/tools/agent_chunks_hanlder.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic/tools/config.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic/tools/factory.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic/tools/mcp/__init__.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic/tools/mcp/manager.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic/tools/mcp/models.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic/tools/mcp/tool_wrapper.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic/tools/openai_builtin/__init__.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic/tools/openai_builtin/base.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/__init__.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/config.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/postprocessors/__init__.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/postprocessors/code_display.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/postprocessors/generated_files.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/schemas.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/service.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic/tools/openai_builtin/manager.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic/tools/schemas.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic/tools/test/test_mcp_manager.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic/tools/test/test_tool_progress_reporter.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic/tools/tool.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic/tools/tool_progress_reporter.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic/tools/utils/__init__.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic/tools/utils/source_handling/__init__.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic/tools/utils/source_handling/schema.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic/tools/utils/source_handling/source_formatting.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic/tools/utils/source_handling/tests/test_source_formatting.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic_table/__init__.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic_table/schemas.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic_table/service.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/app/__init__.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/app/dev_util.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/app/fast_api_factory.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/app/init_logging.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/app/init_sdk.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/app/performance/async_tasks.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/app/performance/async_wrapper.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/app/schemas.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/app/unique_settings.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/app/verification.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/app/webhook.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/chat/__init__.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/chat/cancellation.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/chat/constants.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/chat/deprecated/service.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/chat/functions.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/chat/rendering.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/chat/responses_api.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/chat/schemas.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/chat/service.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/chat/state.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/chat/utils.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/content/__init__.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/content/constants.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/content/functions.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/content/schemas.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/content/service.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/content/smart_rules.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/content/utils.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/data_extraction/README.md +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/data_extraction/__init__.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/data_extraction/augmented/__init__.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/data_extraction/augmented/service.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/data_extraction/base.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/data_extraction/basic/__init__.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/data_extraction/basic/config.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/data_extraction/basic/prompt.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/data_extraction/basic/service.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/elicitation/__init__.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/elicitation/constants.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/elicitation/exceptions.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/elicitation/functions.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/elicitation/schemas.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/elicitation/service.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/embedding/__init__.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/embedding/constants.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/embedding/functions.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/embedding/schemas.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/embedding/service.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/embedding/utils.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/framework_utilities/__init__.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/framework_utilities/langchain/__init__.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/framework_utilities/langchain/client.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/framework_utilities/langchain/history.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/framework_utilities/openai/__init__.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/framework_utilities/openai/client.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/framework_utilities/openai/message_builder.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/framework_utilities/utils.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/language_model/__init__.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/language_model/_responses_api_utils.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/language_model/builder.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/language_model/constants.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/language_model/default_language_model.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/language_model/functions.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/language_model/prompt.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/language_model/reference.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/language_model/schemas.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/language_model/service.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/language_model/stream_transform.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/language_model/utils.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/protocols/support.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/services/__init__.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/services/knowledge_base.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/short_term_memory/__init__.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/short_term_memory/constants.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/short_term_memory/functions.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/short_term_memory/schemas.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/short_term_memory/service.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/smart_rules/__init__.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/smart_rules/compile.py +0 -0
- {unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/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: 1.
|
|
3
|
+
Version: 1.56.0
|
|
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>
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import asyncio
|
|
2
|
+
import time
|
|
2
3
|
from abc import ABC
|
|
3
4
|
from logging import Logger
|
|
4
5
|
|
|
@@ -86,6 +87,7 @@ class EvaluationManager:
|
|
|
86
87
|
self._chat_service = chat_service
|
|
87
88
|
self._evaluations: dict[EvaluationMetricName, Evaluation] = {}
|
|
88
89
|
self._evaluation_passed: bool = True
|
|
90
|
+
self._execution_times: dict[str, float] = {}
|
|
89
91
|
|
|
90
92
|
def add_evaluation(self, evaluation: Evaluation):
|
|
91
93
|
self._evaluations[evaluation.get_name()] = evaluation
|
|
@@ -99,6 +101,8 @@ class EvaluationManager:
|
|
|
99
101
|
loop_response: LanguageModelStreamResponse,
|
|
100
102
|
assistant_message_id: str,
|
|
101
103
|
) -> list[EvaluationMetricResult]:
|
|
104
|
+
self._execution_times = {}
|
|
105
|
+
|
|
102
106
|
task_executor = SafeTaskExecutor(
|
|
103
107
|
logger=self._logger,
|
|
104
108
|
)
|
|
@@ -134,6 +138,9 @@ class EvaluationManager:
|
|
|
134
138
|
|
|
135
139
|
return evaluation_results_unpacked
|
|
136
140
|
|
|
141
|
+
def get_execution_times(self) -> dict[str, float]:
|
|
142
|
+
return self._execution_times.copy()
|
|
143
|
+
|
|
137
144
|
async def execute_evaluation_call(
|
|
138
145
|
self,
|
|
139
146
|
evaluation_name: EvaluationMetricName,
|
|
@@ -145,13 +152,16 @@ class EvaluationManager:
|
|
|
145
152
|
evaluation_instance = self.get_evaluation_by_name(evaluation_name)
|
|
146
153
|
|
|
147
154
|
if evaluation_instance:
|
|
148
|
-
|
|
155
|
+
start = time.perf_counter()
|
|
149
156
|
await self._create_assistant_message(
|
|
150
157
|
evaluation_instance, assistant_message_id
|
|
151
158
|
)
|
|
152
159
|
evaluation_metric_result: EvaluationMetricResult = (
|
|
153
160
|
await evaluation_instance.run(loop_response)
|
|
154
161
|
)
|
|
162
|
+
self._execution_times[str(evaluation_name)] = round(
|
|
163
|
+
time.perf_counter() - start, 3
|
|
164
|
+
)
|
|
155
165
|
return evaluation_metric_result
|
|
156
166
|
|
|
157
167
|
return EvaluationMetricResult(
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import asyncio
|
|
2
|
+
import time
|
|
2
3
|
from abc import ABC
|
|
3
4
|
from logging import Logger
|
|
4
5
|
|
|
@@ -84,6 +85,7 @@ class PostprocessorManager:
|
|
|
84
85
|
self._logger = logger
|
|
85
86
|
self._chat_service = chat_service
|
|
86
87
|
self._postprocessors: list[Postprocessor | ResponsesApiPostprocessor] = []
|
|
88
|
+
self._execution_times: dict[str, float] = {}
|
|
87
89
|
|
|
88
90
|
# Allow to add postprocessors that should be run before or after the others.
|
|
89
91
|
self._first_postprocessor: Postprocessor | ResponsesApiPostprocessor | None = (
|
|
@@ -123,6 +125,8 @@ class PostprocessorManager:
|
|
|
123
125
|
self,
|
|
124
126
|
loop_response: LanguageModelStreamResponse,
|
|
125
127
|
) -> None:
|
|
128
|
+
self._execution_times = {}
|
|
129
|
+
|
|
126
130
|
task_executor = SafeTaskExecutor(
|
|
127
131
|
logger=self._logger,
|
|
128
132
|
)
|
|
@@ -158,12 +162,19 @@ class PostprocessorManager:
|
|
|
158
162
|
references=loop_response.message.references,
|
|
159
163
|
)
|
|
160
164
|
|
|
165
|
+
def get_execution_times(self) -> dict[str, float]:
|
|
166
|
+
return self._execution_times.copy()
|
|
167
|
+
|
|
161
168
|
async def execute_postprocessors(
|
|
162
169
|
self,
|
|
163
170
|
loop_response: LanguageModelStreamResponse,
|
|
164
171
|
postprocessor_instance: Postprocessor | ResponsesApiPostprocessor,
|
|
165
172
|
) -> None:
|
|
173
|
+
start = time.perf_counter()
|
|
166
174
|
await postprocessor_instance.run(loop_response) # type: ignore
|
|
175
|
+
self._execution_times[postprocessor_instance.name] = round(
|
|
176
|
+
time.perf_counter() - start, 3
|
|
177
|
+
)
|
|
167
178
|
|
|
168
179
|
async def remove_from_text(
|
|
169
180
|
self,
|
{unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/agentic/tools/tool_manager.py
RENAMED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import asyncio
|
|
2
|
+
import time
|
|
2
3
|
from logging import Logger, getLogger
|
|
3
4
|
from typing import Generic, Literal, TypeVar, overload
|
|
4
5
|
|
|
@@ -288,10 +289,16 @@ class _ToolManager(Generic[_ApiMode]):
|
|
|
288
289
|
raise ValueError(f"Tool {tool_call.name} cannot be run")
|
|
289
290
|
|
|
290
291
|
if tool_instance:
|
|
291
|
-
|
|
292
|
+
tool_start = time.perf_counter()
|
|
292
293
|
tool_response: ToolCallResponse = await tool_instance.run(
|
|
293
294
|
tool_call=tool_call
|
|
294
295
|
)
|
|
296
|
+
tool_execution_time = round(time.perf_counter() - tool_start, 3)
|
|
297
|
+
|
|
298
|
+
if tool_response.debug_info is None:
|
|
299
|
+
tool_response.debug_info = {}
|
|
300
|
+
tool_response.debug_info["execution_time_s"] = tool_execution_time
|
|
301
|
+
|
|
295
302
|
evaluation_checks = tool_instance.evaluation_check_list()
|
|
296
303
|
self._tool_evaluation_check_list.update(evaluation_checks)
|
|
297
304
|
|
|
@@ -52,6 +52,8 @@ class LanguageModelName(StrEnum):
|
|
|
52
52
|
AZURE_GPT_51_CODEX_MINI_2025_1113 = "AZURE_GPT_51_CODEX_MINI_2025_1113"
|
|
53
53
|
AZURE_GPT_52_2025_1211 = "AZURE_GPT_52_2025_1211"
|
|
54
54
|
AZURE_GPT_52_CHAT_2025_1211 = "AZURE_GPT_52_CHAT_2025_1211"
|
|
55
|
+
AZURE_GPT_54_2026_0305 = "AZURE_GPT_54_2026_0305"
|
|
56
|
+
AZURE_GPT_54_PRO_2026_0305 = "AZURE_GPT_54_PRO_2026_0305"
|
|
55
57
|
AZURE_GPT_4o_2024_0513 = "AZURE_GPT_4o_2024_0513"
|
|
56
58
|
AZURE_GPT_4o_2024_0806 = "AZURE_GPT_4o_2024_0806"
|
|
57
59
|
AZURE_GPT_4o_2024_1120 = "AZURE_GPT_4o_2024_1120"
|
|
@@ -100,6 +102,8 @@ class LanguageModelName(StrEnum):
|
|
|
100
102
|
LITELLM_OPENAI_GPT_51_THINKING = "litellm:openai-gpt-5-1-thinking"
|
|
101
103
|
LITELLM_OPENAI_GPT_52 = "litellm:openai-gpt-5-2"
|
|
102
104
|
LITELLM_OPENAI_GPT_52_THINKING = "litellm:openai-gpt-5-2-thinking"
|
|
105
|
+
LITELLM_OPENAI_GPT_54 = "litellm:openai-gpt-5-4"
|
|
106
|
+
LITELLM_OPENAI_GPT_54_THINKING = "litellm:openai-gpt-5-4-thinking"
|
|
103
107
|
LITELLM_OPENAI_O1 = "litellm:openai-o1"
|
|
104
108
|
LITELLM_OPENAI_O3 = "litellm:openai-o3"
|
|
105
109
|
LITELLM_OPENAI_O3_DEEP_RESEARCH = "litellm:openai-o3-deep-research"
|
|
@@ -170,6 +174,8 @@ def get_encoder_name(model_name: LanguageModelName) -> EncoderName:
|
|
|
170
174
|
| LMN.AZURE_GPT_51_CODEX_MINI_2025_1113
|
|
171
175
|
| LMN.AZURE_GPT_52_2025_1211
|
|
172
176
|
| LMN.AZURE_GPT_52_CHAT_2025_1211
|
|
177
|
+
| LMN.AZURE_GPT_54_2026_0305
|
|
178
|
+
| LMN.AZURE_GPT_54_PRO_2026_0305
|
|
173
179
|
| LMN.AZURE_MODEL_ROUTER_2025_1118
|
|
174
180
|
| LMN.LITELLM_OPENAI_GPT_5
|
|
175
181
|
| LMN.LITELLM_OPENAI_GPT_5_MINI
|
|
@@ -180,6 +186,8 @@ def get_encoder_name(model_name: LanguageModelName) -> EncoderName:
|
|
|
180
186
|
| LMN.LITELLM_OPENAI_GPT_51_THINKING
|
|
181
187
|
| LMN.LITELLM_OPENAI_GPT_52
|
|
182
188
|
| LMN.LITELLM_OPENAI_GPT_52_THINKING
|
|
189
|
+
| LMN.LITELLM_OPENAI_GPT_54
|
|
190
|
+
| LMN.LITELLM_OPENAI_GPT_54_THINKING
|
|
183
191
|
| LMN.LITELLM_OPENAI_O1
|
|
184
192
|
| LMN.LITELLM_OPENAI_O3
|
|
185
193
|
| LMN.LITELLM_OPENAI_O3_DEEP_RESEARCH
|
|
@@ -591,10 +599,10 @@ class LanguageModelInfo(BaseModel):
|
|
|
591
599
|
info_cutoff_at=date(2024, 9, 30),
|
|
592
600
|
published_at=date(2025, 11, 13),
|
|
593
601
|
temperature_bounds=TemperatureBounds(
|
|
594
|
-
min_temperature=
|
|
602
|
+
min_temperature=0.0, max_temperature=1.0
|
|
595
603
|
),
|
|
596
604
|
default_options={
|
|
597
|
-
"reasoning_effort":
|
|
605
|
+
"reasoning_effort": "none",
|
|
598
606
|
},
|
|
599
607
|
)
|
|
600
608
|
case LanguageModelName.AZURE_GPT_51_THINKING_2025_1113:
|
|
@@ -724,15 +732,15 @@ class LanguageModelInfo(BaseModel):
|
|
|
724
732
|
ModelCapabilities.VISION,
|
|
725
733
|
],
|
|
726
734
|
token_limits=LanguageModelTokenLimits(
|
|
727
|
-
token_limit_input=
|
|
735
|
+
token_limit_input=272_000, token_limit_output=128_000
|
|
728
736
|
),
|
|
729
737
|
info_cutoff_at=date(2024, 9, 30),
|
|
730
738
|
published_at=date(2025, 12, 11),
|
|
731
739
|
temperature_bounds=TemperatureBounds(
|
|
732
|
-
min_temperature=
|
|
740
|
+
min_temperature=0.0, max_temperature=1.0
|
|
733
741
|
),
|
|
734
742
|
default_options={
|
|
735
|
-
"reasoning_effort":
|
|
743
|
+
"reasoning_effort": "none",
|
|
736
744
|
},
|
|
737
745
|
)
|
|
738
746
|
case LanguageModelName.AZURE_GPT_52_CHAT_2025_1211:
|
|
@@ -761,6 +769,61 @@ class LanguageModelInfo(BaseModel):
|
|
|
761
769
|
"reasoning_effort": "medium",
|
|
762
770
|
},
|
|
763
771
|
)
|
|
772
|
+
case LanguageModelName.AZURE_GPT_54_2026_0305:
|
|
773
|
+
return cls(
|
|
774
|
+
name=model_name,
|
|
775
|
+
provider=LanguageModelProvider.AZURE,
|
|
776
|
+
version="2026-03-05",
|
|
777
|
+
encoder_name=EncoderName.O200K_BASE,
|
|
778
|
+
capabilities=[
|
|
779
|
+
ModelCapabilities.CHAT_COMPLETIONS_API,
|
|
780
|
+
ModelCapabilities.FUNCTION_CALLING,
|
|
781
|
+
ModelCapabilities.PARALLEL_FUNCTION_CALLING,
|
|
782
|
+
ModelCapabilities.REASONING,
|
|
783
|
+
ModelCapabilities.RESPONSES_API,
|
|
784
|
+
ModelCapabilities.STREAMING,
|
|
785
|
+
ModelCapabilities.STRUCTURED_OUTPUT,
|
|
786
|
+
ModelCapabilities.VISION,
|
|
787
|
+
],
|
|
788
|
+
token_limits=LanguageModelTokenLimits(
|
|
789
|
+
token_limit_input=922_000, token_limit_output=128_000
|
|
790
|
+
),
|
|
791
|
+
info_cutoff_at=date(2024, 9, 30),
|
|
792
|
+
published_at=date(2026, 3, 5),
|
|
793
|
+
temperature_bounds=TemperatureBounds(
|
|
794
|
+
min_temperature=0.0, max_temperature=1.0
|
|
795
|
+
),
|
|
796
|
+
default_options={
|
|
797
|
+
"reasoning_effort": "none",
|
|
798
|
+
},
|
|
799
|
+
)
|
|
800
|
+
case LanguageModelName.AZURE_GPT_54_PRO_2026_0305:
|
|
801
|
+
return cls(
|
|
802
|
+
name=model_name,
|
|
803
|
+
provider=LanguageModelProvider.AZURE,
|
|
804
|
+
version="2026-03-05",
|
|
805
|
+
encoder_name=EncoderName.O200K_BASE,
|
|
806
|
+
capabilities=[
|
|
807
|
+
ModelCapabilities.FUNCTION_CALLING,
|
|
808
|
+
ModelCapabilities.PARALLEL_FUNCTION_CALLING,
|
|
809
|
+
ModelCapabilities.REASONING,
|
|
810
|
+
ModelCapabilities.RESPONSES_API,
|
|
811
|
+
ModelCapabilities.STREAMING,
|
|
812
|
+
ModelCapabilities.STRUCTURED_OUTPUT,
|
|
813
|
+
ModelCapabilities.VISION,
|
|
814
|
+
],
|
|
815
|
+
token_limits=LanguageModelTokenLimits(
|
|
816
|
+
token_limit_input=922_000, token_limit_output=128_000
|
|
817
|
+
),
|
|
818
|
+
info_cutoff_at=date(2024, 9, 30),
|
|
819
|
+
published_at=date(2026, 3, 5),
|
|
820
|
+
temperature_bounds=TemperatureBounds(
|
|
821
|
+
min_temperature=1.0, max_temperature=1.0
|
|
822
|
+
),
|
|
823
|
+
default_options={
|
|
824
|
+
"reasoning_effort": "medium",
|
|
825
|
+
},
|
|
826
|
+
)
|
|
764
827
|
case LanguageModelName.AZURE_GPT_4_TURBO_2024_0409:
|
|
765
828
|
return cls(
|
|
766
829
|
name=model_name,
|
|
@@ -1681,10 +1744,10 @@ class LanguageModelInfo(BaseModel):
|
|
|
1681
1744
|
info_cutoff_at=date(2024, 9, 30),
|
|
1682
1745
|
published_at=date(2025, 11, 13),
|
|
1683
1746
|
temperature_bounds=TemperatureBounds(
|
|
1684
|
-
min_temperature=
|
|
1747
|
+
min_temperature=0.0, max_temperature=1.0
|
|
1685
1748
|
),
|
|
1686
1749
|
default_options={
|
|
1687
|
-
"reasoning_effort":
|
|
1750
|
+
"reasoning_effort": "none",
|
|
1688
1751
|
},
|
|
1689
1752
|
)
|
|
1690
1753
|
case LanguageModelName.LITELLM_OPENAI_GPT_51_THINKING:
|
|
@@ -1732,15 +1795,15 @@ class LanguageModelInfo(BaseModel):
|
|
|
1732
1795
|
ModelCapabilities.VISION,
|
|
1733
1796
|
],
|
|
1734
1797
|
token_limits=LanguageModelTokenLimits(
|
|
1735
|
-
token_limit_input=
|
|
1798
|
+
token_limit_input=272_000, token_limit_output=128_000
|
|
1736
1799
|
),
|
|
1737
1800
|
info_cutoff_at=date(2024, 9, 30),
|
|
1738
1801
|
published_at=date(2025, 12, 11),
|
|
1739
1802
|
temperature_bounds=TemperatureBounds(
|
|
1740
|
-
min_temperature=
|
|
1803
|
+
min_temperature=0.0, max_temperature=1.0
|
|
1741
1804
|
),
|
|
1742
1805
|
default_options={
|
|
1743
|
-
"reasoning_effort":
|
|
1806
|
+
"reasoning_effort": "none",
|
|
1744
1807
|
},
|
|
1745
1808
|
)
|
|
1746
1809
|
case LanguageModelName.LITELLM_OPENAI_GPT_52_THINKING:
|
|
@@ -1760,7 +1823,7 @@ class LanguageModelInfo(BaseModel):
|
|
|
1760
1823
|
ModelCapabilities.VISION,
|
|
1761
1824
|
],
|
|
1762
1825
|
token_limits=LanguageModelTokenLimits(
|
|
1763
|
-
token_limit_input=
|
|
1826
|
+
token_limit_input=272_000, token_limit_output=128_000
|
|
1764
1827
|
),
|
|
1765
1828
|
info_cutoff_at=date(2024, 9, 30),
|
|
1766
1829
|
published_at=date(2025, 12, 11),
|
|
@@ -1771,6 +1834,62 @@ class LanguageModelInfo(BaseModel):
|
|
|
1771
1834
|
"reasoning_effort": "medium",
|
|
1772
1835
|
},
|
|
1773
1836
|
)
|
|
1837
|
+
case LanguageModelName.LITELLM_OPENAI_GPT_54:
|
|
1838
|
+
return cls(
|
|
1839
|
+
name=model_name,
|
|
1840
|
+
provider=LanguageModelProvider.LITELLM,
|
|
1841
|
+
version="2026-03-05",
|
|
1842
|
+
encoder_name=EncoderName.O200K_BASE,
|
|
1843
|
+
capabilities=[
|
|
1844
|
+
ModelCapabilities.CHAT_COMPLETIONS_API,
|
|
1845
|
+
ModelCapabilities.FUNCTION_CALLING,
|
|
1846
|
+
ModelCapabilities.PARALLEL_FUNCTION_CALLING,
|
|
1847
|
+
ModelCapabilities.REASONING,
|
|
1848
|
+
ModelCapabilities.RESPONSES_API,
|
|
1849
|
+
ModelCapabilities.STREAMING,
|
|
1850
|
+
ModelCapabilities.STRUCTURED_OUTPUT,
|
|
1851
|
+
ModelCapabilities.VISION,
|
|
1852
|
+
],
|
|
1853
|
+
token_limits=LanguageModelTokenLimits(
|
|
1854
|
+
token_limit_input=922_000, token_limit_output=128_000
|
|
1855
|
+
),
|
|
1856
|
+
info_cutoff_at=date(2024, 9, 30),
|
|
1857
|
+
published_at=date(2026, 3, 5),
|
|
1858
|
+
temperature_bounds=TemperatureBounds(
|
|
1859
|
+
min_temperature=0.0, max_temperature=1.0
|
|
1860
|
+
),
|
|
1861
|
+
default_options={
|
|
1862
|
+
"reasoning_effort": "none",
|
|
1863
|
+
},
|
|
1864
|
+
)
|
|
1865
|
+
case LanguageModelName.LITELLM_OPENAI_GPT_54_THINKING:
|
|
1866
|
+
return cls(
|
|
1867
|
+
name=model_name,
|
|
1868
|
+
provider=LanguageModelProvider.LITELLM,
|
|
1869
|
+
version="2026-03-05",
|
|
1870
|
+
encoder_name=EncoderName.O200K_BASE,
|
|
1871
|
+
capabilities=[
|
|
1872
|
+
ModelCapabilities.CHAT_COMPLETIONS_API,
|
|
1873
|
+
ModelCapabilities.FUNCTION_CALLING,
|
|
1874
|
+
ModelCapabilities.PARALLEL_FUNCTION_CALLING,
|
|
1875
|
+
ModelCapabilities.REASONING,
|
|
1876
|
+
ModelCapabilities.RESPONSES_API,
|
|
1877
|
+
ModelCapabilities.STREAMING,
|
|
1878
|
+
ModelCapabilities.STRUCTURED_OUTPUT,
|
|
1879
|
+
ModelCapabilities.VISION,
|
|
1880
|
+
],
|
|
1881
|
+
token_limits=LanguageModelTokenLimits(
|
|
1882
|
+
token_limit_input=922_000, token_limit_output=128_000
|
|
1883
|
+
),
|
|
1884
|
+
info_cutoff_at=date(2024, 9, 30),
|
|
1885
|
+
published_at=date(2026, 3, 5),
|
|
1886
|
+
temperature_bounds=TemperatureBounds(
|
|
1887
|
+
min_temperature=1.0, max_temperature=1.0
|
|
1888
|
+
),
|
|
1889
|
+
default_options={
|
|
1890
|
+
"reasoning_effort": "medium",
|
|
1891
|
+
},
|
|
1892
|
+
)
|
|
1774
1893
|
case LanguageModelName.LITELLM_OPENAI_O1:
|
|
1775
1894
|
return cls(
|
|
1776
1895
|
name=model_name,
|
|
@@ -140,6 +140,50 @@ class ChatService(ChatServiceDeprecated):
|
|
|
140
140
|
|
|
141
141
|
return self._elicitation_service
|
|
142
142
|
|
|
143
|
+
def get_debug_info(self) -> dict[str, Any]:
|
|
144
|
+
"""Retrieves the debug information from the current user message.
|
|
145
|
+
|
|
146
|
+
Returns:
|
|
147
|
+
dict[str, Any]: The debug information stored on the user message,
|
|
148
|
+
or an empty dict if retrieval fails or no debug info exists.
|
|
149
|
+
|
|
150
|
+
"""
|
|
151
|
+
try:
|
|
152
|
+
raw_msg = unique_sdk.Message.retrieve(
|
|
153
|
+
user_id=self._user_id,
|
|
154
|
+
company_id=self._company_id,
|
|
155
|
+
id=self._user_message_id,
|
|
156
|
+
chatId=self._chat_id,
|
|
157
|
+
)
|
|
158
|
+
return getattr(raw_msg, "debugInfo", {}) or {}
|
|
159
|
+
except Exception:
|
|
160
|
+
logging.getLogger(__name__).warning(
|
|
161
|
+
"Failed to retrieve debug info from user message", exc_info=True
|
|
162
|
+
)
|
|
163
|
+
return {}
|
|
164
|
+
|
|
165
|
+
async def get_debug_info_async(self) -> dict[str, Any]:
|
|
166
|
+
"""Retrieves the debug information from the current user message asynchronously.
|
|
167
|
+
|
|
168
|
+
Returns:
|
|
169
|
+
dict[str, Any]: The debug information stored on the user message,
|
|
170
|
+
or an empty dict if retrieval fails or no debug info exists.
|
|
171
|
+
|
|
172
|
+
"""
|
|
173
|
+
try:
|
|
174
|
+
raw_msg = await unique_sdk.Message.retrieve_async(
|
|
175
|
+
user_id=self._user_id,
|
|
176
|
+
company_id=self._company_id,
|
|
177
|
+
id=self._user_message_id,
|
|
178
|
+
chatId=self._chat_id,
|
|
179
|
+
)
|
|
180
|
+
return getattr(raw_msg, "debugInfo", {}) or {}
|
|
181
|
+
except Exception:
|
|
182
|
+
logging.getLogger(__name__).warning(
|
|
183
|
+
"Failed to retrieve debug info from user message", exc_info=True
|
|
184
|
+
)
|
|
185
|
+
return {}
|
|
186
|
+
|
|
143
187
|
async def update_debug_info_async(self, debug_info: dict):
|
|
144
188
|
"""Updates the debug information for the chat session.
|
|
145
189
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/_common/base_model_type_attribute.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/_common/config_checker/README.md
RENAMED
|
File without changes
|
{unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/_common/config_checker/__init__.py
RENAMED
|
File without changes
|
{unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/_common/config_checker/__main__.py
RENAMED
|
File without changes
|
{unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/_common/config_checker/cli.py
RENAMED
|
File without changes
|
{unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/_common/config_checker/differ.py
RENAMED
|
File without changes
|
{unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/_common/config_checker/exporter.py
RENAMED
|
File without changes
|
{unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/_common/config_checker/models.py
RENAMED
|
File without changes
|
{unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/_common/config_checker/registry.py
RENAMED
|
File without changes
|
{unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/_common/config_checker/validator.py
RENAMED
|
File without changes
|
{unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/_common/default_language_model.py
RENAMED
|
File without changes
|
{unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/_common/docx_generator/__init__.py
RENAMED
|
File without changes
|
{unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/_common/docx_generator/config.py
RENAMED
|
File without changes
|
|
File without changes
|
{unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/_common/docx_generator/schemas.py
RENAMED
|
File without changes
|
{unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/_common/docx_generator/service.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/_common/endpoint_requestor.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
|
{unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/_common/feature_flags/schema.py
RENAMED
|
File without changes
|
{unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/_common/pydantic/rjsf_tags.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/_common/tests/test_referencing.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/_common/token/image_token_counting.py
RENAMED
|
File without changes
|
{unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/_common/token/token_counting.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/_common/utils/image/encode.py
RENAMED
|
File without changes
|
{unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/_common/utils/jinja/helpers.py
RENAMED
|
File without changes
|
{unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/_common/utils/jinja/render.py
RENAMED
|
File without changes
|
{unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/_common/utils/jinja/schema.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/_common/utils/write_configuration.py
RENAMED
|
File without changes
|
{unique_toolkit-1.55.0 → unique_toolkit-1.56.0}/unique_toolkit/_common/validate_required_values.py
RENAMED
|
File without changes
|