unique_toolkit 1.47.3__tar.gz → 1.47.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.47.3 → unique_toolkit-1.47.4}/CHANGELOG.md +4 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/PKG-INFO +7 -2
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/pyproject.toml +11 -1
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/_common/pydantic/rjsf_tags.py +140 -9
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic/tools/a2a/tool/config.py +20 -7
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/LICENSE +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/README.md +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/__init__.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/_common/__init__.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/_common/_base_service.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/_common/_time_utils.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/_common/api_calling/human_verification_manager.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/_common/base_model_type_attribute.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/_common/chunk_relevancy_sorter/config.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/_common/chunk_relevancy_sorter/exception.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/_common/chunk_relevancy_sorter/schemas.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/_common/chunk_relevancy_sorter/service.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/_common/chunk_relevancy_sorter/tests/test_service.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/_common/config_checker/README.md +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/_common/config_checker/__init__.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/_common/config_checker/__main__.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/_common/config_checker/cli.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/_common/config_checker/differ.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/_common/config_checker/exporter.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/_common/config_checker/models.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/_common/config_checker/registry.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/_common/config_checker/validator.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/_common/default_language_model.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/_common/docx_generator/__init__.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/_common/docx_generator/config.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/_common/docx_generator/schemas.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/_common/docx_generator/service.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/_common/docx_generator/template/Doc Template.docx +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/_common/endpoint_builder.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/_common/endpoint_requestor.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/_common/event_bus.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/_common/exception.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/_common/execution.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/_common/experimental/endpoint_builder.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/_common/experimental/endpoint_requestor.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/_common/experimental/write_up_agent/README.md +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/_common/experimental/write_up_agent/__init__.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/_common/experimental/write_up_agent/agent.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/_common/experimental/write_up_agent/config.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/_common/experimental/write_up_agent/examples/data.csv +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/_common/experimental/write_up_agent/examples/example_usage.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/_common/experimental/write_up_agent/schemas.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/_common/experimental/write_up_agent/services/__init__.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/__init__.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/exceptions.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/service.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/utils.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/__init__.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/config.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/exceptions.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/prompts/config.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/prompts/system_prompt.j2 +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/prompts/user_prompt.j2 +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/service.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/__init__.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/default_template.j2 +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/exceptions.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/service.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/utils.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/_common/experimental/write_up_agent/utils.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/_common/feature_flags/schema.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/_common/pydantic_helpers.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/_common/referencing.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/_common/string_utilities.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/_common/tests/test_referencing.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/_common/tests/test_string_utilities.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/_common/token/__init__.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/_common/token/image_token_counting.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/_common/token/token_counting.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/_common/token/tokenizers/deepseek/tokenizer.json +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/_common/token/tokenizers/qwen/tokenizer.json +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/_common/utils/__init__.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/_common/utils/files.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/_common/utils/image/encode.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/_common/utils/jinja/helpers.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/_common/utils/jinja/render.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/_common/utils/jinja/schema.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/_common/utils/jinja/utils.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/_common/utils/structured_output/__init__.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/_common/utils/structured_output/schema.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/_common/utils/write_configuration.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/_common/validate_required_values.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/_common/validators.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic/__init__.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic/debug_info_manager/debug_info_manager.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic/debug_info_manager/test/test_debug_info_manager.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic/evaluation/config.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic/evaluation/context_relevancy/prompts/__init__.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic/evaluation/context_relevancy/prompts/system_prompt.j2 +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic/evaluation/context_relevancy/prompts/user_prompt.j2 +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic/evaluation/context_relevancy/schema.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic/evaluation/context_relevancy/service.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic/evaluation/evaluation_manager.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic/evaluation/exception.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic/evaluation/hallucination/constants.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic/evaluation/hallucination/hallucination_evaluation.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic/evaluation/hallucination/prompts/__init__.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic/evaluation/hallucination/prompts/system_prompt.j2 +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic/evaluation/hallucination/prompts/user_prompt.j2 +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic/evaluation/hallucination/service.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic/evaluation/hallucination/utils.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic/evaluation/output_parser.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic/evaluation/schemas.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic/evaluation/tests/fixtures.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic/evaluation/tests/test_config.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic/evaluation/tests/test_context_relevancy_service.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic/evaluation/tests/test_hallucination_constants.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic/evaluation/tests/test_hallucination_utils.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic/evaluation/tests/test_output_parser.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic/evaluation/tests/test_prompt_loaders.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic/evaluation/utils.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic/feature_flags/__init__.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic/feature_flags/feature_flags.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic/history_manager/history_construction_with_contents.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic/history_manager/history_manager.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic/history_manager/loop_token_reducer.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic/history_manager/utils.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic/loop_runner/__init__.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic/loop_runner/_iteration_handler_utils.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic/loop_runner/_responses_iteration_handler_utils.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic/loop_runner/_responses_stream_handler_utils.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic/loop_runner/_stream_handler_utils.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic/loop_runner/base.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic/loop_runner/middleware/__init__.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic/loop_runner/middleware/planning/__init__.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic/loop_runner/middleware/planning/planning.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic/loop_runner/middleware/planning/schema.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic/loop_runner/runners/__init__.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic/loop_runner/runners/basic.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic/loop_runner/runners/qwen/__init__.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic/loop_runner/runners/qwen/helpers.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic/loop_runner/runners/qwen/qwen_runner.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic/message_log_manager/__init__.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic/message_log_manager/service.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic/postprocessor/postprocessor_manager.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic/reference_manager/reference_manager.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic/responses_api/__init__.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic/responses_api/postprocessors/code_display.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic/responses_api/postprocessors/generated_files.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic/responses_api/stream_handler.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic/short_term_memory_manager/persistent_short_term_memory_manager.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic/thinking_manager/thinking_manager.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic/tools/__init__.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic/tools/a2a/__init__.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic/tools/a2a/config.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic/tools/a2a/evaluation/__init__.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic/tools/a2a/evaluation/_utils.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic/tools/a2a/evaluation/config.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic/tools/a2a/evaluation/evaluator.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic/tools/a2a/evaluation/summarization_user_message.j2 +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic/tools/a2a/manager.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic/tools/a2a/postprocessing/__init__.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic/tools/a2a/postprocessing/_display_utils.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic/tools/a2a/postprocessing/_ref_utils.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic/tools/a2a/postprocessing/config.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic/tools/a2a/postprocessing/display.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic/tools/a2a/postprocessing/references.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_display.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_display_utils.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_ref_utils.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic/tools/a2a/prompts.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic/tools/a2a/response_watcher/__init__.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic/tools/a2a/response_watcher/service.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic/tools/a2a/tool/__init__.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic/tools/a2a/tool/_memory.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic/tools/a2a/tool/_schema.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic/tools/a2a/tool/service.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic/tools/a2a/tool/test/test_service_utils.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic/tools/agent_chunks_hanlder.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic/tools/config.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic/tools/factory.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic/tools/mcp/__init__.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic/tools/mcp/manager.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic/tools/mcp/models.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic/tools/mcp/tool_wrapper.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic/tools/openai_builtin/__init__.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic/tools/openai_builtin/base.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/__init__.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/config.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/postprocessors/__init__.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/postprocessors/code_display.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/postprocessors/generated_files.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/service.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic/tools/openai_builtin/manager.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic/tools/schemas.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic/tools/test/test_mcp_manager.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic/tools/test/test_tool_progress_reporter.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic/tools/tool.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic/tools/tool_manager.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic/tools/tool_progress_reporter.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic/tools/utils/__init__.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic/tools/utils/source_handling/__init__.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic/tools/utils/source_handling/schema.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic/tools/utils/source_handling/source_formatting.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic/tools/utils/source_handling/tests/test_source_formatting.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic_table/__init__.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic_table/schemas.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic_table/service.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/app/__init__.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/app/dev_util.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/app/fast_api_factory.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/app/init_logging.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/app/init_sdk.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/app/performance/async_tasks.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/app/performance/async_wrapper.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/app/schemas.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/app/unique_settings.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/app/verification.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/app/webhook.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/chat/__init__.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/chat/cancellation.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/chat/constants.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/chat/deprecated/service.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/chat/functions.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/chat/rendering.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/chat/responses_api.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/chat/schemas.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/chat/service.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/chat/state.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/chat/utils.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/content/__init__.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/content/constants.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/content/functions.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/content/schemas.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/content/service.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/content/smart_rules.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/content/utils.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/data_extraction/README.md +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/data_extraction/__init__.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/data_extraction/augmented/__init__.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/data_extraction/augmented/service.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/data_extraction/base.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/data_extraction/basic/__init__.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/data_extraction/basic/config.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/data_extraction/basic/prompt.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/data_extraction/basic/service.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/elicitation/__init__.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/elicitation/constants.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/elicitation/exceptions.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/elicitation/functions.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/elicitation/schemas.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/elicitation/service.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/embedding/__init__.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/embedding/constants.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/embedding/functions.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/embedding/schemas.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/embedding/service.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/embedding/utils.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/framework_utilities/__init__.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/framework_utilities/langchain/__init__.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/framework_utilities/langchain/client.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/framework_utilities/langchain/history.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/framework_utilities/openai/__init__.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/framework_utilities/openai/client.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/framework_utilities/openai/message_builder.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/framework_utilities/utils.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/language_model/__init__.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/language_model/_responses_api_utils.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/language_model/builder.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/language_model/constants.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/language_model/default_language_model.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/language_model/functions.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/language_model/infos.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/language_model/prompt.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/language_model/reference.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/language_model/schemas.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/language_model/service.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/language_model/stream_transform.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/language_model/utils.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/protocols/support.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/services/__init__.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/services/chat_service.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/services/knowledge_base.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/short_term_memory/__init__.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/short_term_memory/constants.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/short_term_memory/functions.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/short_term_memory/schemas.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/short_term_memory/service.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/smart_rules/__init__.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/smart_rules/compile.py +0 -0
- {unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/test_utilities/events.py +0 -0
|
@@ -5,6 +5,10 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [1.47.4] - 2026-02-24
|
|
9
|
+
- Extend RJSF tags: add `CustomWidget.custom()` with `CustomWidgetName`, `ObjectWidget.collapsible()`, `SpecialWidget.hidden()`
|
|
10
|
+
- Add RJSF meta tags to `SubAgentToolConfig` text fields (textarea with rows=5 for tool descriptions and format info)
|
|
11
|
+
|
|
8
12
|
## [1.47.3] - 2026-02-24
|
|
9
13
|
- Add `mcp_server` name to debug info for analytics
|
|
10
14
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.3
|
|
2
2
|
Name: unique_toolkit
|
|
3
|
-
Version: 1.47.
|
|
3
|
+
Version: 1.47.4
|
|
4
4
|
Summary:
|
|
5
5
|
License: Proprietary
|
|
6
6
|
Author: Cedric Klinkert
|
|
@@ -9,6 +9,7 @@ Requires-Python: >=3.12,<4.0
|
|
|
9
9
|
Classifier: License :: Other/Proprietary License
|
|
10
10
|
Classifier: Programming Language :: Python :: 3
|
|
11
11
|
Classifier: Programming Language :: Python :: 3.12
|
|
12
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
12
13
|
Requires-Dist: aiohttp (>=3.12.0,<4.0.0)
|
|
13
14
|
Requires-Dist: click (>=8.1.0,<9.0.0)
|
|
14
15
|
Requires-Dist: deepdiff (>=8.6.1,<9.0.0)
|
|
@@ -127,6 +128,10 @@ All notable changes to this project will be documented in this file.
|
|
|
127
128
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
128
129
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
129
130
|
|
|
131
|
+
## [1.47.4] - 2026-02-24
|
|
132
|
+
- Extend RJSF tags: add `CustomWidget.custom()` with `CustomWidgetName`, `ObjectWidget.collapsible()`, `SpecialWidget.hidden()`
|
|
133
|
+
- Add RJSF meta tags to `SubAgentToolConfig` text fields (textarea with rows=5 for tool descriptions and format info)
|
|
134
|
+
|
|
130
135
|
## [1.47.3] - 2026-02-24
|
|
131
136
|
- Add `mcp_server` name to debug info for analytics
|
|
132
137
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[tool.poetry]
|
|
2
2
|
name = "unique_toolkit"
|
|
3
|
-
version = "1.47.
|
|
3
|
+
version = "1.47.4"
|
|
4
4
|
description = ""
|
|
5
5
|
authors = [
|
|
6
6
|
"Cedric Klinkert <cedric.klinkert@unique.ch>",
|
|
@@ -94,6 +94,16 @@ coverage = "pytest --cov=unique_toolkit --cov-report=term-missing"
|
|
|
94
94
|
ci-typecheck = { shell = "bash $(git rev-parse --show-toplevel)/.github/scripts/dev.sh typecheck" }
|
|
95
95
|
ci-coverage = { shell = "bash $(git rev-parse --show-toplevel)/.github/scripts/dev.sh coverage" }
|
|
96
96
|
|
|
97
|
+
[tool.pytest.ini_options]
|
|
98
|
+
addopts = "--strict-markers"
|
|
99
|
+
asyncio_mode = "auto"
|
|
100
|
+
markers = [
|
|
101
|
+
"ai: AI-generated tests",
|
|
102
|
+
"verified: AI-generated tests with human verification",
|
|
103
|
+
"wip: Work in progress tests"
|
|
104
|
+
]
|
|
105
|
+
filterwarnings = ["ignore::DeprecationWarning"]
|
|
106
|
+
|
|
97
107
|
[tool.deptry]
|
|
98
108
|
known_first_party = ["unique_toolkit"]
|
|
99
109
|
extend_exclude = ["docs", "tests", "unique_toolkit/.*/test", "unique_toolkit/.*/tests"]
|
{unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/_common/pydantic/rjsf_tags.py
RENAMED
|
@@ -13,12 +13,21 @@ Key components:
|
|
|
13
13
|
|
|
14
14
|
from __future__ import annotations
|
|
15
15
|
|
|
16
|
+
from collections.abc import Callable
|
|
17
|
+
from enum import StrEnum
|
|
16
18
|
from typing import Annotated, Any, Union, get_args, get_origin
|
|
17
19
|
|
|
18
20
|
from pydantic import BaseModel
|
|
19
21
|
from typing_extensions import get_type_hints
|
|
20
22
|
|
|
21
23
|
|
|
24
|
+
class CustomWidgetName(StrEnum):
|
|
25
|
+
"""Mirrors TypeScript CustomWidgetName. Keep in sync when extending."""
|
|
26
|
+
|
|
27
|
+
ICON_PICKER = "iconPicker"
|
|
28
|
+
# Add new entries here when adding custom widgets in TypeScript
|
|
29
|
+
|
|
30
|
+
|
|
22
31
|
# --------- Base Metadata carrier ----------
|
|
23
32
|
class RJSFMetaTag:
|
|
24
33
|
def __init__(self, attrs: dict[str, Any] | None = None):
|
|
@@ -401,7 +410,7 @@ class RJSFMetaTag:
|
|
|
401
410
|
|
|
402
411
|
attrs = {
|
|
403
412
|
"ui:widget": "range",
|
|
404
|
-
"ui:disabled":
|
|
413
|
+
"ui:disabled": disabled,
|
|
405
414
|
"ui:options": options if options else None,
|
|
406
415
|
"ui:title": title,
|
|
407
416
|
"ui:description": description,
|
|
@@ -573,6 +582,29 @@ class RJSFMetaTag:
|
|
|
573
582
|
}
|
|
574
583
|
return RJSFMetaTag({k: v for k, v in attrs.items() if v is not None})
|
|
575
584
|
|
|
585
|
+
class CustomWidget:
|
|
586
|
+
@classmethod
|
|
587
|
+
def custom(
|
|
588
|
+
cls,
|
|
589
|
+
name: CustomWidgetName,
|
|
590
|
+
*,
|
|
591
|
+
disabled: bool = False,
|
|
592
|
+
title: str | None = None,
|
|
593
|
+
description: str | None = None,
|
|
594
|
+
help: str | None = None,
|
|
595
|
+
**kwargs: Any,
|
|
596
|
+
) -> RJSFMetaTag:
|
|
597
|
+
"""Use any custom widget by name. Extend CustomWidgetName when adding new widgets."""
|
|
598
|
+
attrs = {
|
|
599
|
+
"ui:widget": name,
|
|
600
|
+
"ui:disabled": disabled,
|
|
601
|
+
"ui:title": title,
|
|
602
|
+
"ui:description": description,
|
|
603
|
+
"ui:help": help,
|
|
604
|
+
**kwargs,
|
|
605
|
+
}
|
|
606
|
+
return RJSFMetaTag({k: v for k, v in attrs.items() if v is not None})
|
|
607
|
+
|
|
576
608
|
# --------- Composer Methods ----------
|
|
577
609
|
|
|
578
610
|
@classmethod
|
|
@@ -663,7 +695,6 @@ class RJSFMetaTag:
|
|
|
663
695
|
for widget in widgets:
|
|
664
696
|
any_of_branches.append(widget.attrs)
|
|
665
697
|
|
|
666
|
-
# Start with Union-level metadata
|
|
667
698
|
union_attrs = {
|
|
668
699
|
"ui:title": title,
|
|
669
700
|
"ui:description": description,
|
|
@@ -673,11 +704,6 @@ class RJSFMetaTag:
|
|
|
673
704
|
**kwargs,
|
|
674
705
|
}
|
|
675
706
|
|
|
676
|
-
# Add any additional kwargs
|
|
677
|
-
for key, value in kwargs.items():
|
|
678
|
-
if value is not None:
|
|
679
|
-
union_attrs[f"ui:{key}" if not key.startswith("ui:") else key] = value
|
|
680
|
-
|
|
681
707
|
union_attrs = {k: v for k, v in union_attrs.items() if v is not None}
|
|
682
708
|
return RJSFMetaTag({**union_attrs, "anyOf": any_of_branches})
|
|
683
709
|
|
|
@@ -788,7 +814,12 @@ def _is_pyd_model(t: Any) -> bool:
|
|
|
788
814
|
|
|
789
815
|
|
|
790
816
|
# --------- Build RJSF-style uiSchema dict from a model *type* ----------
|
|
791
|
-
def ui_schema_for_model(
|
|
817
|
+
def ui_schema_for_model(
|
|
818
|
+
model_cls: type[BaseModel],
|
|
819
|
+
*,
|
|
820
|
+
key_transform: Callable[[str], str] | None = None,
|
|
821
|
+
value_transform: Callable[[str], str] | None = None,
|
|
822
|
+
) -> dict[str, Any]:
|
|
792
823
|
"""
|
|
793
824
|
Generate a React JSON Schema Form (RJSF) uiSchema from a Pydantic model.
|
|
794
825
|
|
|
@@ -806,6 +837,15 @@ def ui_schema_for_model(model_cls: type[BaseModel]) -> dict[str, Any]:
|
|
|
806
837
|
|
|
807
838
|
Args:
|
|
808
839
|
model_cls: A Pydantic BaseModel subclass to analyze
|
|
840
|
+
key_transform: An optional ``str → str`` function (e.g.
|
|
841
|
+
``humps.camelize``) applied to **dict keys** (field names).
|
|
842
|
+
RJSF metadata keys like ``ui:widget`` are never transformed.
|
|
843
|
+
When ``None`` (default), the schema is returned with the
|
|
844
|
+
original snake_case keys.
|
|
845
|
+
value_transform: An optional ``str → str`` function applied to
|
|
846
|
+
**string values inside ``ui:order`` lists**. Defaults to
|
|
847
|
+
*key_transform* when not provided, since ``ui:order`` values
|
|
848
|
+
must match the (transformed) property names.
|
|
809
849
|
|
|
810
850
|
Returns:
|
|
811
851
|
A dictionary representing the RJSF uiSchema with the structure:
|
|
@@ -834,11 +874,16 @@ def ui_schema_for_model(model_cls: type[BaseModel]) -> dict[str, Any]:
|
|
|
834
874
|
hints = get_type_hints(model_cls, include_extras=True)
|
|
835
875
|
ui: dict[str, Any] = {}
|
|
836
876
|
|
|
837
|
-
for fname
|
|
877
|
+
for fname in model_cls.model_fields:
|
|
878
|
+
ann = hints[fname]
|
|
838
879
|
node: dict[str, Any] = {}
|
|
839
880
|
|
|
840
881
|
base, meta = _walk_annotated_chain(ann)
|
|
841
882
|
base = _unwrap_optional(base)
|
|
883
|
+
# For Annotated[T, meta] | None, _walk_annotated_chain sees Union (empty meta).
|
|
884
|
+
# Re-process the unwrapped type to extract metadata from the Annotated branch.
|
|
885
|
+
if not meta and get_origin(base) is Annotated:
|
|
886
|
+
base, meta = _walk_annotated_chain(base)
|
|
842
887
|
# Start with field-level metadata (flat dict)
|
|
843
888
|
if meta:
|
|
844
889
|
node.update(meta)
|
|
@@ -901,9 +946,95 @@ def ui_schema_for_model(model_cls: type[BaseModel]) -> dict[str, Any]:
|
|
|
901
946
|
|
|
902
947
|
ui[fname] = node
|
|
903
948
|
|
|
949
|
+
ui["ui:order"] = list(model_cls.model_fields.keys())
|
|
950
|
+
|
|
951
|
+
if key_transform is not None:
|
|
952
|
+
return transform_ui_schema(ui, key_transform, value_transform)
|
|
904
953
|
return ui
|
|
905
954
|
|
|
906
955
|
|
|
956
|
+
# --------- Key / value transformation helpers ----------
|
|
957
|
+
|
|
958
|
+
|
|
959
|
+
_STRUCTURAL_KEYS = frozenset(
|
|
960
|
+
{
|
|
961
|
+
"anyOf",
|
|
962
|
+
"oneOf",
|
|
963
|
+
"allOf",
|
|
964
|
+
"items",
|
|
965
|
+
"additionalProperties",
|
|
966
|
+
"type",
|
|
967
|
+
}
|
|
968
|
+
)
|
|
969
|
+
|
|
970
|
+
|
|
971
|
+
def _is_metadata_key(key: str, field_names: frozenset[str] | None = None) -> bool:
|
|
972
|
+
"""Return ``True`` for RJSF / JSON-Schema structural keys that must not
|
|
973
|
+
be treated as field names (and therefore must not be transformed).
|
|
974
|
+
|
|
975
|
+
When *field_names* is provided, a key that exists in both
|
|
976
|
+
``_STRUCTURAL_KEYS`` and *field_names* is treated as a field name
|
|
977
|
+
(i.e. **not** metadata), so it will be transformed correctly.
|
|
978
|
+
"""
|
|
979
|
+
if key.startswith(("ui:", "$")):
|
|
980
|
+
return True
|
|
981
|
+
if key in _STRUCTURAL_KEYS:
|
|
982
|
+
return field_names is None or key not in field_names
|
|
983
|
+
return False
|
|
984
|
+
|
|
985
|
+
|
|
986
|
+
def transform_ui_schema(
|
|
987
|
+
ui_schema: dict[str, Any],
|
|
988
|
+
key_transform: Callable[[str], str],
|
|
989
|
+
value_transform: Callable[[str], str] | None = None,
|
|
990
|
+
) -> dict[str, Any]:
|
|
991
|
+
"""Apply transforms to field-name keys and ``ui:order`` values.
|
|
992
|
+
|
|
993
|
+
RJSF metadata keys (``ui:widget``, ``ui:options``, …) and JSON-Schema
|
|
994
|
+
structural keys (``anyOf``, ``items``, …) are never transformed — only
|
|
995
|
+
regular field-name keys and the string values inside ``ui:order`` lists.
|
|
996
|
+
|
|
997
|
+
For the common camelCase use-case::
|
|
998
|
+
|
|
999
|
+
from humps import camelize
|
|
1000
|
+
transform_ui_schema(raw_ui, camelize)
|
|
1001
|
+
|
|
1002
|
+
Args:
|
|
1003
|
+
ui_schema: The raw UI schema to transform.
|
|
1004
|
+
key_transform: A ``str → str`` function for dict keys.
|
|
1005
|
+
value_transform: A ``str → str`` function for ``ui:order`` values.
|
|
1006
|
+
Defaults to *key_transform* when ``None``.
|
|
1007
|
+
|
|
1008
|
+
Returns:
|
|
1009
|
+
A new dictionary with transformed keys and ``ui:order`` values.
|
|
1010
|
+
"""
|
|
1011
|
+
val_fn = value_transform if value_transform is not None else key_transform
|
|
1012
|
+
top_level_fields = frozenset(ui_schema.get("ui:order", []))
|
|
1013
|
+
return _transform_obj(ui_schema, key_transform, val_fn, top_level_fields)
|
|
1014
|
+
|
|
1015
|
+
|
|
1016
|
+
def _transform_obj(
|
|
1017
|
+
obj: Any,
|
|
1018
|
+
key_fn: Callable[[str], str],
|
|
1019
|
+
val_fn: Callable[[str], str],
|
|
1020
|
+
field_names: frozenset[str] | None = None,
|
|
1021
|
+
) -> Any:
|
|
1022
|
+
if isinstance(obj, dict):
|
|
1023
|
+
result: dict[str, Any] = {}
|
|
1024
|
+
child_fields = frozenset(obj.get("ui:order", [])) if "ui:order" in obj else None
|
|
1025
|
+
names = field_names if child_fields is None else child_fields
|
|
1026
|
+
for k, v in obj.items():
|
|
1027
|
+
new_key = k if _is_metadata_key(k, names) else key_fn(k)
|
|
1028
|
+
if k == "ui:order" and isinstance(v, list):
|
|
1029
|
+
result[new_key] = [val_fn(s) if isinstance(s, str) else s for s in v]
|
|
1030
|
+
else:
|
|
1031
|
+
result[new_key] = _transform_obj(v, key_fn, val_fn)
|
|
1032
|
+
return result
|
|
1033
|
+
if isinstance(obj, list):
|
|
1034
|
+
return [_transform_obj(item, key_fn, val_fn) for item in obj]
|
|
1035
|
+
return obj
|
|
1036
|
+
|
|
1037
|
+
|
|
907
1038
|
# --------- Example ---------
|
|
908
1039
|
if __name__ == "__main__":
|
|
909
1040
|
|
{unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic/tools/a2a/tool/config.py
RENAMED
|
@@ -5,6 +5,7 @@ from typing import Annotated, Generic, Literal, TypeVar
|
|
|
5
5
|
from pydantic import Field
|
|
6
6
|
from pydantic.main import BaseModel
|
|
7
7
|
|
|
8
|
+
from unique_toolkit._common.pydantic.rjsf_tags import RJSFMetaTag
|
|
8
9
|
from unique_toolkit._common.pydantic_helpers import get_configuration_dict
|
|
9
10
|
from unique_toolkit.agentic.tools.schemas import BaseToolConfig
|
|
10
11
|
|
|
@@ -118,27 +119,37 @@ class SubAgentToolConfig(BaseToolConfig):
|
|
|
118
119
|
description="The list of tool names that will be forced to be called for this sub-agent.",
|
|
119
120
|
)
|
|
120
121
|
|
|
121
|
-
tool_description_for_system_prompt:
|
|
122
|
+
tool_description_for_system_prompt: Annotated[
|
|
123
|
+
str, RJSFMetaTag.StringWidget.textarea(rows=5)
|
|
124
|
+
] = Field(
|
|
122
125
|
default="",
|
|
123
126
|
description="Description of the tool that will be included in the system prompt.",
|
|
124
127
|
)
|
|
125
|
-
tool_description: str = Field(
|
|
128
|
+
tool_description: Annotated[str, RJSFMetaTag.StringWidget.textarea(rows=5)] = Field(
|
|
126
129
|
default="",
|
|
127
130
|
description="Description of the tool that will be included in the tools sent to the model.",
|
|
128
131
|
)
|
|
129
|
-
param_description_sub_agent_user_message:
|
|
132
|
+
param_description_sub_agent_user_message: Annotated[
|
|
133
|
+
str, RJSFMetaTag.StringWidget.textarea(rows=5)
|
|
134
|
+
] = Field(
|
|
130
135
|
default=DEFAULT_PARAM_DESCRIPTION_SUB_AGENT_USER_MESSAGE,
|
|
131
136
|
description="Description of the user message parameter that will be sent to the model.",
|
|
132
137
|
)
|
|
133
|
-
tool_format_information_for_system_prompt:
|
|
138
|
+
tool_format_information_for_system_prompt: Annotated[
|
|
139
|
+
str, RJSFMetaTag.StringWidget.textarea(rows=5)
|
|
140
|
+
] = Field(
|
|
134
141
|
default="",
|
|
135
142
|
description="Format information that will be included in the system prompt to guide response formatting.",
|
|
136
143
|
)
|
|
137
|
-
tool_description_for_user_prompt:
|
|
144
|
+
tool_description_for_user_prompt: Annotated[
|
|
145
|
+
str, RJSFMetaTag.StringWidget.textarea(rows=5)
|
|
146
|
+
] = Field(
|
|
138
147
|
default="",
|
|
139
148
|
description="Description of the tool that will be included in the user prompt.",
|
|
140
149
|
)
|
|
141
|
-
tool_format_information_for_user_prompt:
|
|
150
|
+
tool_format_information_for_user_prompt: Annotated[
|
|
151
|
+
str, RJSFMetaTag.StringWidget.textarea(rows=5)
|
|
152
|
+
] = Field(
|
|
142
153
|
default="",
|
|
143
154
|
description="Format information that will be included in the user prompt to guide response formatting.",
|
|
144
155
|
)
|
|
@@ -156,7 +167,9 @@ class SubAgentToolConfig(BaseToolConfig):
|
|
|
156
167
|
description="The condition that will be used to stop the polling for the sub-agent response.",
|
|
157
168
|
)
|
|
158
169
|
|
|
159
|
-
tool_input_json_schema:
|
|
170
|
+
tool_input_json_schema: (
|
|
171
|
+
Annotated[str, RJSFMetaTag.StringWidget.textarea(rows=5)] | None
|
|
172
|
+
) = Field(
|
|
160
173
|
default=None,
|
|
161
174
|
description="A custom JSON schema to send to the llm as the tool input schema.",
|
|
162
175
|
)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{unique_toolkit-1.47.3 → unique_toolkit-1.47.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.47.3 → unique_toolkit-1.47.4}/unique_toolkit/_common/config_checker/README.md
RENAMED
|
File without changes
|
{unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/_common/config_checker/__init__.py
RENAMED
|
File without changes
|
{unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/_common/config_checker/__main__.py
RENAMED
|
File without changes
|
{unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/_common/config_checker/cli.py
RENAMED
|
File without changes
|
{unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/_common/config_checker/differ.py
RENAMED
|
File without changes
|
{unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/_common/config_checker/exporter.py
RENAMED
|
File without changes
|
{unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/_common/config_checker/models.py
RENAMED
|
File without changes
|
{unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/_common/config_checker/registry.py
RENAMED
|
File without changes
|
{unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/_common/config_checker/validator.py
RENAMED
|
File without changes
|
{unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/_common/default_language_model.py
RENAMED
|
File without changes
|
{unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/_common/docx_generator/__init__.py
RENAMED
|
File without changes
|
{unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/_common/docx_generator/config.py
RENAMED
|
File without changes
|
{unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/_common/docx_generator/schemas.py
RENAMED
|
File without changes
|
{unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/_common/docx_generator/service.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{unique_toolkit-1.47.3 → unique_toolkit-1.47.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.47.3 → unique_toolkit-1.47.4}/unique_toolkit/_common/feature_flags/schema.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/_common/tests/test_referencing.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/_common/token/image_token_counting.py
RENAMED
|
File without changes
|
{unique_toolkit-1.47.3 → unique_toolkit-1.47.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.47.3 → unique_toolkit-1.47.4}/unique_toolkit/_common/utils/image/encode.py
RENAMED
|
File without changes
|
{unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/_common/utils/jinja/helpers.py
RENAMED
|
File without changes
|
{unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/_common/utils/jinja/render.py
RENAMED
|
File without changes
|
{unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/_common/utils/jinja/schema.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/_common/utils/write_configuration.py
RENAMED
|
File without changes
|
{unique_toolkit-1.47.3 → unique_toolkit-1.47.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.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic/evaluation/exception.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
|
{unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic/evaluation/output_parser.py
RENAMED
|
File without changes
|
{unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic/evaluation/schemas.py
RENAMED
|
File without changes
|
{unique_toolkit-1.47.3 → unique_toolkit-1.47.4}/unique_toolkit/agentic/evaluation/tests/fixtures.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|