unique_toolkit 1.70.2__tar.gz → 1.70.4__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.70.2 → unique_toolkit-1.70.4}/PKG-INFO +1 -1
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/pyproject.toml +1 -1
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/_common/pydantic/rjsf_tags.py +77 -4
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/tools/a2a/tool/config.py +2 -2
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/service.py +47 -5
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/README.md +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/__init__.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/_common/__init__.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/_common/_base_service.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/_common/_time_utils.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/_common/api_calling/human_verification_manager.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/_common/base_model_type_attribute.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/_common/chunk_relevancy_sorter/config.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/_common/chunk_relevancy_sorter/exception.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/_common/chunk_relevancy_sorter/schemas.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/_common/chunk_relevancy_sorter/service.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/_common/chunk_relevancy_sorter/tests/test_service.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/_common/config_checker/README.md +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/_common/config_checker/__init__.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/_common/config_checker/__main__.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/_common/config_checker/cli.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/_common/config_checker/differ.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/_common/config_checker/exporter.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/_common/config_checker/models.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/_common/config_checker/registry.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/_common/config_checker/validator.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/_common/default_language_model.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/_common/docx_generator/__init__.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/_common/docx_generator/config.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/_common/docx_generator/pandoc_converter.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/_common/docx_generator/schemas.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/_common/docx_generator/service.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/_common/docx_generator/template/Doc Template.docx +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/_common/endpoint_builder.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/_common/endpoint_requestor.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/_common/event_bus.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/_common/exception.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/_common/execution.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/_common/experimental/endpoint_builder.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/_common/experimental/endpoint_requestor.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/_common/experimental/write_up_agent/README.md +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/_common/experimental/write_up_agent/__init__.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/_common/experimental/write_up_agent/agent.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/_common/experimental/write_up_agent/config.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/_common/experimental/write_up_agent/examples/data.csv +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/_common/experimental/write_up_agent/examples/example_usage.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/_common/experimental/write_up_agent/schemas.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/_common/experimental/write_up_agent/services/__init__.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/__init__.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/exceptions.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/service.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/utils.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/__init__.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/config.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/exceptions.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/prompts/config.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/prompts/system_prompt.j2 +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/prompts/user_prompt.j2 +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/service.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/__init__.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/default_template.j2 +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/exceptions.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/service.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/utils.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/_common/experimental/write_up_agent/utils.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/_common/feature_flags/schema.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/_common/pydantic_helpers.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/_common/referencing.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/_common/string_utilities.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/_common/tests/test_referencing.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/_common/tests/test_string_utilities.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/_common/token/__init__.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/_common/token/image_token_counting.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/_common/token/token_counting.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/_common/token/tokenizers/deepseek/tokenizer.json +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/_common/token/tokenizers/qwen/tokenizer.json +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/_common/utils/__init__.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/_common/utils/files.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/_common/utils/image/encode.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/_common/utils/jinja/helpers.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/_common/utils/jinja/render.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/_common/utils/jinja/schema.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/_common/utils/jinja/utils.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/_common/utils/structured_output/__init__.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/_common/utils/structured_output/schema.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/_common/utils/write_configuration.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/_common/validate_required_values.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/_common/validators.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/__init__.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/debug_info_manager/debug_info_manager.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/debug_info_manager/test/test_debug_info_manager.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/evaluation/config.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/evaluation/context_relevancy/prompts/__init__.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/evaluation/context_relevancy/prompts/system_prompt.j2 +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/evaluation/context_relevancy/prompts/user_prompt.j2 +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/evaluation/context_relevancy/schema.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/evaluation/context_relevancy/service.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/evaluation/evaluation_manager.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/evaluation/exception.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/evaluation/hallucination/constants.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/evaluation/hallucination/hallucination_evaluation.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/evaluation/hallucination/prompts/__init__.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/evaluation/hallucination/prompts/system_prompt.j2 +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/evaluation/hallucination/prompts/user_prompt.j2 +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/evaluation/hallucination/service.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/evaluation/hallucination/utils.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/evaluation/output_parser.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/evaluation/schemas.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/evaluation/tests/fixtures.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/evaluation/tests/test_config.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/evaluation/tests/test_context_relevancy_service.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/evaluation/tests/test_hallucination_constants.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/evaluation/tests/test_hallucination_utils.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/evaluation/tests/test_output_parser.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/evaluation/tests/test_prompt_loaders.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/evaluation/utils.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/feature_flags/__init__.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/feature_flags/feature_flags.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/history_manager/history_construction_with_contents.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/history_manager/history_manager.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/history_manager/loop_token_reducer.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/history_manager/utils.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/loop_runner/__init__.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/loop_runner/_iteration_handler_utils.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/loop_runner/_responses_iteration_handler_utils.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/loop_runner/_responses_stream_handler_utils.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/loop_runner/_stream_handler_utils.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/loop_runner/base.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/loop_runner/middleware/__init__.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/loop_runner/middleware/planning/__init__.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/loop_runner/middleware/planning/planning.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/loop_runner/middleware/planning/schema.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/loop_runner/runners/__init__.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/loop_runner/runners/basic.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/loop_runner/runners/mistral/__init__.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/loop_runner/runners/mistral/mistral_runner.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/loop_runner/runners/qwen/__init__.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/loop_runner/runners/qwen/helpers.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/loop_runner/runners/qwen/qwen_runner.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/message_log_manager/__init__.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/message_log_manager/service.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/postprocessor/postprocessor_manager.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/reference_manager/reference_manager.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/responses_api/__init__.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/responses_api/postprocessors/code_display.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/responses_api/postprocessors/generated_files.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/responses_api/stream_handler.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/short_term_memory_manager/persistent_short_term_memory_manager.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/thinking_manager/thinking_manager.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/tools/__init__.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/tools/a2a/__init__.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/tools/a2a/config.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/tools/a2a/evaluation/__init__.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/tools/a2a/evaluation/_utils.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/tools/a2a/evaluation/config.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/tools/a2a/evaluation/evaluator.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/tools/a2a/evaluation/summarization_user_message.j2 +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/tools/a2a/manager.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/tools/a2a/postprocessing/__init__.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/tools/a2a/postprocessing/_display_utils.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/tools/a2a/postprocessing/_ref_utils.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/tools/a2a/postprocessing/config.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/tools/a2a/postprocessing/display.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/tools/a2a/postprocessing/references.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_display.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_display_utils.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_ref_utils.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/tools/a2a/prompts.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/tools/a2a/response_watcher/__init__.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/tools/a2a/response_watcher/service.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/tools/a2a/tool/__init__.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/tools/a2a/tool/_memory.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/tools/a2a/tool/_schema.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/tools/a2a/tool/service.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/tools/a2a/tool/test/test_service_utils.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/tools/agent_chunks_hanlder.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/tools/config.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/tools/experimental/__init__.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/tools/experimental/open_file_tool/__init__.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/tools/experimental/open_file_tool/config.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/tools/experimental/open_file_tool/runtime.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/tools/experimental/open_file_tool/tool.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/tools/factory.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/tools/mcp/__init__.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/tools/mcp/manager.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/tools/mcp/models.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/tools/mcp/tool_wrapper.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/tools/openai_builtin/__init__.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/tools/openai_builtin/base.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/__init__.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/config.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/postprocessors/__init__.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/postprocessors/code_display.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/postprocessors/generated_files.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/schemas.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/tools/openai_builtin/manager.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/tools/schemas.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/tools/test/test_mcp_manager.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/tools/test/test_tool_progress_reporter.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/tools/tool.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/tools/tool_manager.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/tools/tool_progress_reporter.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/tools/utils/__init__.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/tools/utils/source_handling/__init__.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/tools/utils/source_handling/schema.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/tools/utils/source_handling/source_formatting.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/tools/utils/source_handling/tests/test_source_formatting.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic_table/__init__.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic_table/schemas.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic_table/service.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/app/__init__.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/app/dev_util.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/app/fast_api_factory.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/app/init_logging.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/app/init_sdk.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/app/performance/async_tasks.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/app/performance/async_wrapper.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/app/schemas.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/app/unique_settings.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/app/verification.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/app/webhook.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/chat/__init__.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/chat/cancellation.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/chat/constants.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/chat/deprecated/service.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/chat/functions.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/chat/rendering.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/chat/responses_api.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/chat/schemas.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/chat/service.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/chat/state.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/chat/utils.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/content/__init__.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/content/constants.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/content/functions.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/content/schemas.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/content/service.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/content/smart_rules.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/content/utils.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/data_extraction/README.md +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/data_extraction/__init__.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/data_extraction/augmented/__init__.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/data_extraction/augmented/service.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/data_extraction/base.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/data_extraction/basic/__init__.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/data_extraction/basic/config.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/data_extraction/basic/prompt.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/data_extraction/basic/service.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/elicitation/__init__.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/elicitation/constants.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/elicitation/exceptions.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/elicitation/functions.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/elicitation/schemas.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/elicitation/service.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/embedding/__init__.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/embedding/constants.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/embedding/functions.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/embedding/schemas.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/embedding/service.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/embedding/utils.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/framework_utilities/__init__.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/framework_utilities/langchain/__init__.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/framework_utilities/langchain/client.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/framework_utilities/langchain/history.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/framework_utilities/openai/__init__.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/framework_utilities/openai/client.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/framework_utilities/openai/message_builder.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/framework_utilities/utils.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/language_model/__init__.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/language_model/_responses_api_utils.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/language_model/builder.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/language_model/constants.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/language_model/default_language_model.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/language_model/functions.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/language_model/infos.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/language_model/prompt.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/language_model/reference.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/language_model/schemas.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/language_model/service.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/language_model/stream_transform.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/language_model/utils.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/monitoring/__init__.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/monitoring/middleware.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/monitoring/registry.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/protocols/support.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/services/__init__.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/services/chat_service.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/services/factory.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/services/knowledge_base.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/short_term_memory/__init__.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/short_term_memory/constants.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/short_term_memory/functions.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/short_term_memory/schemas.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/short_term_memory/service.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/smart_rules/__init__.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/smart_rules/compile.py +0 -0
- {unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/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.70.
|
|
3
|
+
Version: 1.70.4
|
|
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>
|
{unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/_common/pydantic/rjsf_tags.py
RENAMED
|
@@ -23,6 +23,9 @@ from typing_extensions import get_type_hints
|
|
|
23
23
|
|
|
24
24
|
_UNION_ORIGINS = {Union, types.UnionType}
|
|
25
25
|
|
|
26
|
+
# Sentinel: omit ``default_string_empty_value`` so plain ``str`` fields stay unchanged.
|
|
27
|
+
_DEFAULT_STRING_EMPTY_VALUE_UNSET = object()
|
|
28
|
+
|
|
26
29
|
|
|
27
30
|
class CustomWidgetName(StrEnum):
|
|
28
31
|
"""Mirrors TypeScript CustomWidgetName. Keep in sync when extending."""
|
|
@@ -129,6 +132,7 @@ class RJSFMetaTag:
|
|
|
129
132
|
description: str | None = None,
|
|
130
133
|
help: str | None = None,
|
|
131
134
|
class_names: str | None = None,
|
|
135
|
+
empty_value: str = "",
|
|
132
136
|
**kwargs: Any,
|
|
133
137
|
) -> RJSFMetaTag:
|
|
134
138
|
"""Create a text field (default for strings)."""
|
|
@@ -142,6 +146,7 @@ class RJSFMetaTag:
|
|
|
142
146
|
"ui:description": description,
|
|
143
147
|
"ui:help": help,
|
|
144
148
|
"ui:classNames": class_names,
|
|
149
|
+
"ui:emptyValue": empty_value,
|
|
145
150
|
**kwargs,
|
|
146
151
|
}
|
|
147
152
|
return RJSFMetaTag({k: v for k, v in attrs.items() if v is not None})
|
|
@@ -157,6 +162,7 @@ class RJSFMetaTag:
|
|
|
157
162
|
title: str | None = None,
|
|
158
163
|
description: str | None = None,
|
|
159
164
|
help: str | None = None,
|
|
165
|
+
empty_value: str = "",
|
|
160
166
|
**kwargs: Any,
|
|
161
167
|
) -> RJSFMetaTag:
|
|
162
168
|
"""Create a textarea field."""
|
|
@@ -169,6 +175,7 @@ class RJSFMetaTag:
|
|
|
169
175
|
"ui:title": title,
|
|
170
176
|
"ui:description": description,
|
|
171
177
|
"ui:help": help,
|
|
178
|
+
"ui:emptyValue": empty_value,
|
|
172
179
|
**kwargs,
|
|
173
180
|
}
|
|
174
181
|
return RJSFMetaTag({k: v for k, v in attrs.items() if v is not None})
|
|
@@ -183,6 +190,7 @@ class RJSFMetaTag:
|
|
|
183
190
|
title: str | None = None,
|
|
184
191
|
description: str | None = None,
|
|
185
192
|
help: str | None = None,
|
|
193
|
+
empty_value: str = "",
|
|
186
194
|
**kwargs: Any,
|
|
187
195
|
) -> RJSFMetaTag:
|
|
188
196
|
"""Create a password field."""
|
|
@@ -194,6 +202,7 @@ class RJSFMetaTag:
|
|
|
194
202
|
"ui:title": title,
|
|
195
203
|
"ui:description": description,
|
|
196
204
|
"ui:help": help,
|
|
205
|
+
"ui:emptyValue": empty_value,
|
|
197
206
|
**kwargs,
|
|
198
207
|
}
|
|
199
208
|
return RJSFMetaTag({k: v for k, v in attrs.items() if v is not None})
|
|
@@ -206,6 +215,7 @@ class RJSFMetaTag:
|
|
|
206
215
|
title: str | None = None,
|
|
207
216
|
description: str | None = None,
|
|
208
217
|
help: str | None = None,
|
|
218
|
+
empty_value: str = "",
|
|
209
219
|
**kwargs: Any,
|
|
210
220
|
) -> RJSFMetaTag:
|
|
211
221
|
"""Create a color picker field."""
|
|
@@ -215,6 +225,7 @@ class RJSFMetaTag:
|
|
|
215
225
|
"ui:title": title,
|
|
216
226
|
"ui:description": description,
|
|
217
227
|
"ui:help": help,
|
|
228
|
+
"ui:emptyValue": empty_value,
|
|
218
229
|
**kwargs,
|
|
219
230
|
}
|
|
220
231
|
return RJSFMetaTag({k: v for k, v in attrs.items() if v is not None})
|
|
@@ -229,6 +240,7 @@ class RJSFMetaTag:
|
|
|
229
240
|
title: str | None = None,
|
|
230
241
|
description: str | None = None,
|
|
231
242
|
help: str | None = None,
|
|
243
|
+
empty_value: str = "",
|
|
232
244
|
**kwargs: Any,
|
|
233
245
|
) -> RJSFMetaTag:
|
|
234
246
|
"""Create an email field."""
|
|
@@ -240,6 +252,7 @@ class RJSFMetaTag:
|
|
|
240
252
|
"ui:title": title,
|
|
241
253
|
"ui:description": description,
|
|
242
254
|
"ui:help": help,
|
|
255
|
+
"ui:emptyValue": empty_value,
|
|
243
256
|
**kwargs,
|
|
244
257
|
}
|
|
245
258
|
return RJSFMetaTag({k: v for k, v in attrs.items() if v is not None})
|
|
@@ -254,6 +267,7 @@ class RJSFMetaTag:
|
|
|
254
267
|
title: str | None = None,
|
|
255
268
|
description: str | None = None,
|
|
256
269
|
help: str | None = None,
|
|
270
|
+
empty_value: str = "",
|
|
257
271
|
**kwargs: Any,
|
|
258
272
|
) -> RJSFMetaTag:
|
|
259
273
|
"""Create a URL field."""
|
|
@@ -265,6 +279,7 @@ class RJSFMetaTag:
|
|
|
265
279
|
"ui:title": title,
|
|
266
280
|
"ui:description": description,
|
|
267
281
|
"ui:help": help,
|
|
282
|
+
"ui:emptyValue": empty_value,
|
|
268
283
|
**kwargs,
|
|
269
284
|
}
|
|
270
285
|
return RJSFMetaTag({k: v for k, v in attrs.items() if v is not None})
|
|
@@ -277,6 +292,7 @@ class RJSFMetaTag:
|
|
|
277
292
|
title: str | None = None,
|
|
278
293
|
description: str | None = None,
|
|
279
294
|
help: str | None = None,
|
|
295
|
+
empty_value: str | None = None,
|
|
280
296
|
**kwargs: Any,
|
|
281
297
|
) -> RJSFMetaTag:
|
|
282
298
|
"""Create a date field."""
|
|
@@ -286,6 +302,7 @@ class RJSFMetaTag:
|
|
|
286
302
|
"ui:title": title,
|
|
287
303
|
"ui:description": description,
|
|
288
304
|
"ui:help": help,
|
|
305
|
+
"ui:emptyValue": empty_value,
|
|
289
306
|
**kwargs,
|
|
290
307
|
}
|
|
291
308
|
return RJSFMetaTag({k: v for k, v in attrs.items() if v is not None})
|
|
@@ -298,6 +315,7 @@ class RJSFMetaTag:
|
|
|
298
315
|
title: str | None = None,
|
|
299
316
|
description: str | None = None,
|
|
300
317
|
help: str | None = None,
|
|
318
|
+
empty_value: str | None = None,
|
|
301
319
|
**kwargs: Any,
|
|
302
320
|
) -> RJSFMetaTag:
|
|
303
321
|
"""Create a datetime field."""
|
|
@@ -307,6 +325,7 @@ class RJSFMetaTag:
|
|
|
307
325
|
"ui:title": title,
|
|
308
326
|
"ui:description": description,
|
|
309
327
|
"ui:help": help,
|
|
328
|
+
"ui:emptyValue": empty_value,
|
|
310
329
|
**kwargs,
|
|
311
330
|
}
|
|
312
331
|
return RJSFMetaTag({k: v for k, v in attrs.items() if v is not None})
|
|
@@ -319,6 +338,7 @@ class RJSFMetaTag:
|
|
|
319
338
|
title: str | None = None,
|
|
320
339
|
description: str | None = None,
|
|
321
340
|
help: str | None = None,
|
|
341
|
+
empty_value: str | None = None,
|
|
322
342
|
**kwargs: Any,
|
|
323
343
|
) -> RJSFMetaTag:
|
|
324
344
|
"""Create a time field."""
|
|
@@ -328,6 +348,7 @@ class RJSFMetaTag:
|
|
|
328
348
|
"ui:title": title,
|
|
329
349
|
"ui:description": description,
|
|
330
350
|
"ui:help": help,
|
|
351
|
+
"ui:emptyValue": empty_value,
|
|
331
352
|
**kwargs,
|
|
332
353
|
}
|
|
333
354
|
return RJSFMetaTag({k: v for k, v in attrs.items() if v is not None})
|
|
@@ -341,6 +362,7 @@ class RJSFMetaTag:
|
|
|
341
362
|
title: str | None = None,
|
|
342
363
|
description: str | None = None,
|
|
343
364
|
help: str | None = None,
|
|
365
|
+
empty_value: str = "",
|
|
344
366
|
**kwargs: Any,
|
|
345
367
|
) -> RJSFMetaTag:
|
|
346
368
|
"""Create a file upload field."""
|
|
@@ -351,6 +373,7 @@ class RJSFMetaTag:
|
|
|
351
373
|
"ui:title": title,
|
|
352
374
|
"ui:description": description,
|
|
353
375
|
"ui:help": help,
|
|
376
|
+
"ui:emptyValue": empty_value,
|
|
354
377
|
**kwargs,
|
|
355
378
|
}
|
|
356
379
|
return RJSFMetaTag({k: v for k, v in attrs.items() if v is not None})
|
|
@@ -820,12 +843,26 @@ def _is_pyd_model(t: Any) -> bool:
|
|
|
820
843
|
return False
|
|
821
844
|
|
|
822
845
|
|
|
846
|
+
def _maybe_set_string_empty_value(
|
|
847
|
+
node: dict[str, Any],
|
|
848
|
+
base: Any,
|
|
849
|
+
default_string_empty_value: Any,
|
|
850
|
+
) -> None:
|
|
851
|
+
"""Set ``ui:emptyValue`` for plain ``str`` fields when requested and not already set."""
|
|
852
|
+
if default_string_empty_value is _DEFAULT_STRING_EMPTY_VALUE_UNSET:
|
|
853
|
+
return
|
|
854
|
+
if base is not str or "ui:emptyValue" in node:
|
|
855
|
+
return
|
|
856
|
+
node["ui:emptyValue"] = default_string_empty_value
|
|
857
|
+
|
|
858
|
+
|
|
823
859
|
# --------- Build RJSF-style uiSchema dict from a model *type* ----------
|
|
824
860
|
def ui_schema_for_model(
|
|
825
861
|
model_cls: type[BaseModel],
|
|
826
862
|
*,
|
|
827
863
|
key_transform: Callable[[str], str] | None = None,
|
|
828
864
|
value_transform: Callable[[str], str] | None = None,
|
|
865
|
+
default_string_empty_value: Any = _DEFAULT_STRING_EMPTY_VALUE_UNSET,
|
|
829
866
|
) -> dict[str, Any]:
|
|
830
867
|
"""
|
|
831
868
|
Generate a React JSON Schema Form (RJSF) uiSchema from a Pydantic model.
|
|
@@ -853,6 +890,14 @@ def ui_schema_for_model(
|
|
|
853
890
|
**string values inside ``ui:order`` lists**. Defaults to
|
|
854
891
|
*key_transform* when not provided, since ``ui:order`` values
|
|
855
892
|
must match the (transformed) property names.
|
|
893
|
+
default_string_empty_value: When not omitted, ``ui:emptyValue`` is
|
|
894
|
+
added for every plain ``str`` field (including ``list[str]``
|
|
895
|
+
items, ``dict`` values, and ``Union`` branches) that does not
|
|
896
|
+
already define ``ui:emptyValue`` (for example via
|
|
897
|
+
``Annotated[..., RJSFMetaTag...]``). Use this so bare ``str``
|
|
898
|
+
annotations get RJSF empty-input behaviour without repeating
|
|
899
|
+
metadata. Pass ``None`` to emit JSON ``null`` as the empty
|
|
900
|
+
value.
|
|
856
901
|
|
|
857
902
|
Returns:
|
|
858
903
|
A dictionary representing the RJSF uiSchema with the structure:
|
|
@@ -899,7 +944,12 @@ def ui_schema_for_model(
|
|
|
899
944
|
|
|
900
945
|
# Nested model -> inline children
|
|
901
946
|
if _is_pyd_model(base):
|
|
902
|
-
node.update(
|
|
947
|
+
node.update(
|
|
948
|
+
ui_schema_for_model(
|
|
949
|
+
base,
|
|
950
|
+
default_string_empty_value=default_string_empty_value,
|
|
951
|
+
)
|
|
952
|
+
)
|
|
903
953
|
|
|
904
954
|
# Array-like -> items
|
|
905
955
|
elif origin in (list, set, tuple):
|
|
@@ -911,7 +961,15 @@ def ui_schema_for_model(
|
|
|
911
961
|
if item_meta:
|
|
912
962
|
item_node.update(item_meta)
|
|
913
963
|
if _is_pyd_model(item_base):
|
|
914
|
-
item_node.update(
|
|
964
|
+
item_node.update(
|
|
965
|
+
ui_schema_for_model(
|
|
966
|
+
item_base,
|
|
967
|
+
default_string_empty_value=default_string_empty_value,
|
|
968
|
+
)
|
|
969
|
+
)
|
|
970
|
+
_maybe_set_string_empty_value(
|
|
971
|
+
item_node, item_base, default_string_empty_value
|
|
972
|
+
)
|
|
915
973
|
node["items"] = item_node
|
|
916
974
|
|
|
917
975
|
# Dict -> additionalProperties (value side)
|
|
@@ -924,7 +982,15 @@ def ui_schema_for_model(
|
|
|
924
982
|
if val_meta:
|
|
925
983
|
val_node.update(val_meta)
|
|
926
984
|
if _is_pyd_model(val_base):
|
|
927
|
-
val_node.update(
|
|
985
|
+
val_node.update(
|
|
986
|
+
ui_schema_for_model(
|
|
987
|
+
val_base,
|
|
988
|
+
default_string_empty_value=default_string_empty_value,
|
|
989
|
+
)
|
|
990
|
+
)
|
|
991
|
+
_maybe_set_string_empty_value(
|
|
992
|
+
val_node, val_base, default_string_empty_value
|
|
993
|
+
)
|
|
928
994
|
node["additionalProperties"] = val_node
|
|
929
995
|
|
|
930
996
|
# Union -> anyOf branches
|
|
@@ -938,7 +1004,13 @@ def ui_schema_for_model(
|
|
|
938
1004
|
if alt_meta:
|
|
939
1005
|
branch.update(alt_meta)
|
|
940
1006
|
if _is_pyd_model(alt_b):
|
|
941
|
-
branch.update(
|
|
1007
|
+
branch.update(
|
|
1008
|
+
ui_schema_for_model(
|
|
1009
|
+
alt_b,
|
|
1010
|
+
default_string_empty_value=default_string_empty_value,
|
|
1011
|
+
)
|
|
1012
|
+
)
|
|
1013
|
+
_maybe_set_string_empty_value(branch, alt_b, default_string_empty_value)
|
|
942
1014
|
branches.append(branch)
|
|
943
1015
|
if branches:
|
|
944
1016
|
# Check if the metadata already has an anyOf structure (from Union composer)
|
|
@@ -950,6 +1022,7 @@ def ui_schema_for_model(
|
|
|
950
1022
|
node["anyOf"] = branches
|
|
951
1023
|
|
|
952
1024
|
# Scalars: node already has metadata if any
|
|
1025
|
+
_maybe_set_string_empty_value(node, base, default_string_empty_value)
|
|
953
1026
|
|
|
954
1027
|
ui[fname] = node
|
|
955
1028
|
|
{unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/tools/a2a/tool/config.py
RENAMED
|
@@ -160,11 +160,11 @@ class SubAgentToolConfig(BaseToolConfig):
|
|
|
160
160
|
description="Description of the message parameter extracted by the orchestrator and sent as the input message to the sub-agent.",
|
|
161
161
|
)
|
|
162
162
|
|
|
163
|
-
poll_interval: float = Field(
|
|
163
|
+
poll_interval: Annotated[float, RJSFMetaTag.NumberWidget.updown()] = Field(
|
|
164
164
|
default=1.0,
|
|
165
165
|
description="Time interval in seconds between polling attempts when waiting for sub-agent response.",
|
|
166
166
|
)
|
|
167
|
-
max_wait: float = Field(
|
|
167
|
+
max_wait: Annotated[float, RJSFMetaTag.NumberWidget.updown()] = Field(
|
|
168
168
|
default=120.0,
|
|
169
169
|
description="Maximum time in seconds to wait for the sub-agent response before timing out.",
|
|
170
170
|
)
|
|
@@ -6,6 +6,12 @@ from typing import Any, override
|
|
|
6
6
|
from openai import AsyncOpenAI, BaseModel, NotFoundError
|
|
7
7
|
from openai.types.responses import ResponseCodeInterpreterToolCall, ResponseIncludable
|
|
8
8
|
from openai.types.responses.tool_param import CodeInterpreter
|
|
9
|
+
from tenacity import (
|
|
10
|
+
AsyncRetrying,
|
|
11
|
+
before_sleep_log,
|
|
12
|
+
stop_after_attempt,
|
|
13
|
+
wait_exponential,
|
|
14
|
+
)
|
|
9
15
|
|
|
10
16
|
from unique_toolkit import ContentService, ShortTermMemoryService
|
|
11
17
|
from unique_toolkit.agentic.feature_flags.feature_flags import feature_flags
|
|
@@ -26,6 +32,25 @@ from unique_toolkit.content.schemas import (
|
|
|
26
32
|
|
|
27
33
|
logger = logging.getLogger(__name__)
|
|
28
34
|
|
|
35
|
+
_UPLOAD_MAX_RETRIES = 2
|
|
36
|
+
_UPLOAD_RETRY_BASE_DELAY = 0.5
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
def _build_upload_retry() -> AsyncRetrying:
|
|
40
|
+
"""Exponential-backoff retry policy for transient upload/download failures.
|
|
41
|
+
|
|
42
|
+
Matches the pattern used in the ``DisplayCodeInterpreterFilesPostProcessor``
|
|
43
|
+
so that every outbound I/O call gets the same behaviour: up to
|
|
44
|
+
``_UPLOAD_MAX_RETRIES`` extra attempts, doubling the wait each time,
|
|
45
|
+
with a WARNING log before each sleep.
|
|
46
|
+
"""
|
|
47
|
+
return AsyncRetrying(
|
|
48
|
+
stop=stop_after_attempt(1 + _UPLOAD_MAX_RETRIES),
|
|
49
|
+
wait=wait_exponential(multiplier=_UPLOAD_RETRY_BASE_DELAY),
|
|
50
|
+
before_sleep=before_sleep_log(logger, logging.WARNING),
|
|
51
|
+
reraise=True,
|
|
52
|
+
)
|
|
53
|
+
|
|
29
54
|
|
|
30
55
|
_SHORT_TERM_MEMORY_NAME = "container_code_execution"
|
|
31
56
|
|
|
@@ -127,17 +152,34 @@ async def _upload_files_to_container(
|
|
|
127
152
|
|
|
128
153
|
if upload:
|
|
129
154
|
logger.info(
|
|
130
|
-
"
|
|
155
|
+
"Uploading file %s (%s) to container %s",
|
|
156
|
+
file.id,
|
|
157
|
+
file.key,
|
|
158
|
+
memory.container_id,
|
|
131
159
|
)
|
|
132
|
-
file_content = await
|
|
133
|
-
|
|
160
|
+
file_content = await _build_upload_retry()(
|
|
161
|
+
content_service.download_content_to_bytes_async,
|
|
162
|
+
content_id=file.id,
|
|
163
|
+
chat_id=chat_id,
|
|
134
164
|
)
|
|
135
|
-
|
|
136
|
-
|
|
165
|
+
logger.info(
|
|
166
|
+
"Downloaded %d bytes for file %s; uploading to container %s",
|
|
167
|
+
len(file_content),
|
|
168
|
+
file.id,
|
|
169
|
+
container_id,
|
|
170
|
+
)
|
|
171
|
+
openai_file = await _build_upload_retry()(
|
|
172
|
+
client.containers.files.create,
|
|
137
173
|
container_id=container_id,
|
|
138
174
|
file=(file.key, file_content),
|
|
139
175
|
)
|
|
140
176
|
memory.file_ids[file.id] = openai_file.id
|
|
177
|
+
logger.info(
|
|
178
|
+
"File %s successfully uploaded as OpenAI file %s in container %s",
|
|
179
|
+
file.id,
|
|
180
|
+
openai_file.id,
|
|
181
|
+
container_id,
|
|
182
|
+
)
|
|
141
183
|
|
|
142
184
|
return memory
|
|
143
185
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/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.70.2 → unique_toolkit-1.70.4}/unique_toolkit/_common/config_checker/README.md
RENAMED
|
File without changes
|
{unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/_common/config_checker/__init__.py
RENAMED
|
File without changes
|
{unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/_common/config_checker/__main__.py
RENAMED
|
File without changes
|
{unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/_common/config_checker/cli.py
RENAMED
|
File without changes
|
{unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/_common/config_checker/differ.py
RENAMED
|
File without changes
|
{unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/_common/config_checker/exporter.py
RENAMED
|
File without changes
|
{unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/_common/config_checker/models.py
RENAMED
|
File without changes
|
{unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/_common/config_checker/registry.py
RENAMED
|
File without changes
|
{unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/_common/config_checker/validator.py
RENAMED
|
File without changes
|
{unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/_common/default_language_model.py
RENAMED
|
File without changes
|
{unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/_common/docx_generator/__init__.py
RENAMED
|
File without changes
|
{unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/_common/docx_generator/config.py
RENAMED
|
File without changes
|
|
File without changes
|
{unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/_common/docx_generator/schemas.py
RENAMED
|
File without changes
|
{unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/_common/docx_generator/service.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/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.70.2 → unique_toolkit-1.70.4}/unique_toolkit/_common/feature_flags/schema.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/_common/tests/test_referencing.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/_common/token/image_token_counting.py
RENAMED
|
File without changes
|
{unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/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.70.2 → unique_toolkit-1.70.4}/unique_toolkit/_common/utils/image/encode.py
RENAMED
|
File without changes
|
{unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/_common/utils/jinja/helpers.py
RENAMED
|
File without changes
|
{unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/_common/utils/jinja/render.py
RENAMED
|
File without changes
|
{unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/_common/utils/jinja/schema.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/_common/utils/write_configuration.py
RENAMED
|
File without changes
|
{unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/_common/validate_required_values.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
|
{unique_toolkit-1.70.2 → unique_toolkit-1.70.4}/unique_toolkit/agentic/evaluation/exception.py
RENAMED
|
File without changes
|
|
File without changes
|