unique-toolkit 2026.30.0.dev23__tar.gz → 2026.30.0.dev24__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/PKG-INFO +2 -2
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/pyproject.toml +2 -2
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic_table/__init__.py +19 -1
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic_table/schemas.py +51 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic_table/service.py +312 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/README.md +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/_base_service.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/_time_utils.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/api_calling/human_verification_manager.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/base_model_type_attribute.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/chunk_relevancy_sorter/config.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/chunk_relevancy_sorter/exception.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/chunk_relevancy_sorter/schemas.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/chunk_relevancy_sorter/service.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/chunk_relevancy_sorter/tests/test_service.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/config_checker/README.md +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/config_checker/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/config_checker/__main__.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/config_checker/cli.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/config_checker/differ.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/config_checker/exporter.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/config_checker/models.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/config_checker/registry.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/config_checker/validator.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/default_language_model.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/docx_generator/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/docx_generator/config.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/docx_generator/pandoc_converter.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/docx_generator/schemas.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/docx_generator/service.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/docx_generator/template/Doc Template.docx +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/endpoint_builder.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/endpoint_requestor.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/event_bus.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/exception.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/execution.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/experimental/endpoint_builder.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/experimental/endpoint_requestor.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/experimental/write_up_agent/README.md +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/experimental/write_up_agent/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/experimental/write_up_agent/agent.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/experimental/write_up_agent/config.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/experimental/write_up_agent/examples/data.csv +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/experimental/write_up_agent/examples/example_usage.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/experimental/write_up_agent/schemas.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/experimental/write_up_agent/services/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/exceptions.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/service.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/utils.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/config.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/exceptions.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/prompts/config.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/prompts/system_prompt.j2 +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/prompts/user_prompt.j2 +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/service.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/default_template.j2 +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/exceptions.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/service.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/utils.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/experimental/write_up_agent/utils.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/feature_flags/schema.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/metadata_filter_scope.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/pydantic/rjsf_tags.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/pydantic_helpers.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/referencing.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/string_utilities.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/tests/test_referencing.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/tests/test_string_utilities.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/token/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/token/image_token_counting.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/token/token_counting.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/token/tokenizers/deepseek/tokenizer.json +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/token/tokenizers/qwen/tokenizer.json +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/utils/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/utils/files.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/utils/image/encode.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/utils/jinja/helpers.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/utils/jinja/render.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/utils/jinja/schema.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/utils/jinja/utils.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/utils/structured_output/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/utils/structured_output/schema.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/utils/write_configuration.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/validate_required_values.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/validators.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/debug_info_manager/debug_info_manager.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/debug_info_manager/test/test_debug_info_manager.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/evaluation/config.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/evaluation/context_relevancy/prompts/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/evaluation/context_relevancy/prompts/system_prompt.j2 +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/evaluation/context_relevancy/prompts/user_prompt.j2 +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/evaluation/context_relevancy/schema.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/evaluation/context_relevancy/service.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/evaluation/evaluation_manager.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/evaluation/exception.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/evaluation/hallucination/constants.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/evaluation/hallucination/hallucination_evaluation.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/evaluation/hallucination/prompts/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/evaluation/hallucination/prompts/system_prompt.j2 +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/evaluation/hallucination/prompts/user_prompt.j2 +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/evaluation/hallucination/service.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/evaluation/hallucination/utils.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/evaluation/output_parser.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/evaluation/schemas.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/evaluation/tests/fixtures.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/evaluation/tests/test_config.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/evaluation/tests/test_context_relevancy_service.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/evaluation/tests/test_hallucination_constants.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/evaluation/tests/test_hallucination_external_context.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/evaluation/tests/test_hallucination_utils.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/evaluation/tests/test_output_parser.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/evaluation/tests/test_prompt_loaders.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/evaluation/utils.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/feature_flags/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/feature_flags/feature_flags.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/history_manager/history_construction_with_contents.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/history_manager/history_manager.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/history_manager/loop_token_reducer.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/history_manager/settings.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/history_manager/utils.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/loop_runner/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/loop_runner/_iteration_handler_utils.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/loop_runner/_responses_iteration_handler_utils.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/loop_runner/_responses_stream_handler_utils.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/loop_runner/_stream_handler_utils.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/loop_runner/base.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/loop_runner/middleware/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/loop_runner/middleware/planning/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/loop_runner/middleware/planning/planning.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/loop_runner/middleware/planning/schema.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/loop_runner/runners/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/loop_runner/runners/basic.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/loop_runner/runners/mistral/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/loop_runner/runners/mistral/mistral_runner.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/loop_runner/runners/qwen/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/loop_runner/runners/qwen/helpers.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/loop_runner/runners/qwen/qwen_runner.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/message_log_manager/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/message_log_manager/service.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/message_log_order.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/postprocessor/postprocessor_manager.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/reference_manager/reference_manager.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/reference_manager/tests/test_external_context.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/responses_api/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/responses_api/postprocessors/code_display.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/responses_api/postprocessors/generated_files.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/responses_api/stream_handler.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/short_term_memory_manager/persistent_short_term_memory_manager.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/thinking_manager/thinking_manager.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/a2a/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/a2a/config.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/a2a/evaluation/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/a2a/evaluation/_utils.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/a2a/evaluation/config.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/a2a/evaluation/evaluator.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/a2a/evaluation/summarization_user_message.j2 +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/a2a/manager.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/a2a/postprocessing/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/a2a/postprocessing/_display_utils.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/a2a/postprocessing/_ref_utils.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/a2a/postprocessing/config.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/a2a/postprocessing/display.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/a2a/postprocessing/references.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_display.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_display_utils.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_ref_utils.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_references.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/a2a/prompts.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/a2a/response_watcher/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/a2a/response_watcher/service.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/a2a/tool/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/a2a/tool/_memory.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/a2a/tool/_schema.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/a2a/tool/config.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/a2a/tool/service.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/a2a/tool/test/test_service_utils.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/agent_chunks_hanlder.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/config.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/experimental/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/experimental/ask_user_tool/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/experimental/ask_user_tool/config.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/experimental/ask_user_tool/tool.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/experimental/open_file_tool/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/experimental/open_file_tool/config.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/experimental/open_file_tool/runtime.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/experimental/open_file_tool/tool.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/experimental/retrieve_search_scope_tool/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/experimental/retrieve_search_scope_tool/config.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/experimental/retrieve_search_scope_tool/tool.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/experimental/todo/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/experimental/todo/config.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/experimental/todo/prompts/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/experimental/todo/prompts/execution_reminder.j2 +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/experimental/todo/prompts/system_prompt.j2 +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/experimental/todo/prompts/tool_description.j2 +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/experimental/todo/prompts/verification_nudge.j2 +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/experimental/todo/schemas.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/experimental/todo/service.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/factory.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/mcp/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/mcp/manager.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/mcp/models.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/mcp/tool_wrapper.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/names.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/openai_builtin/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/openai_builtin/base.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/activator/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/activator/config.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/activator/service.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/builder/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/builder/_container.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/builder/_files.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/builder/_memory.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/builder/builder.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/config.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/postprocessors/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/postprocessors/artifacts.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/postprocessors/code_display.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/postprocessors/generated_files.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/schemas.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/tool/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/tool/config.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/tool/service.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/openai_builtin/manager.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/run_context.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/schemas.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/test/test_mcp_manager.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/test/test_tool_progress_reporter.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/tool.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/tool_manager.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/tool_progress_reporter.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/utils/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/utils/source_handling/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/utils/source_handling/schema.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/utils/source_handling/source_formatting.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/utils/source_handling/tests/test_source_formatting.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic_table/synthetic_chat_event.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/app/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/app/chat_event_filter_options_settings.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/app/dev_util.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/app/fast_api_factory.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/app/feature_flags.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/app/find_env_file.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/app/init_logging.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/app/init_sdk.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/app/performance/async_tasks.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/app/performance/async_wrapper.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/app/schemas.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/app/unique_settings.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/app/verification.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/app/webhook.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/chat/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/chat/cancellation.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/chat/constants.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/chat/deprecated/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/chat/deprecated/service.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/chat/functions.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/chat/rendering.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/chat/responses_api.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/chat/schemas.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/chat/service.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/chat/state.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/chat/utils.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/content/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/content/constants.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/content/functions.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/content/schemas.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/content/service.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/content/smart_rules.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/content/utils.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/data_extraction/README.md +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/data_extraction/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/data_extraction/augmented/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/data_extraction/augmented/service.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/data_extraction/base.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/data_extraction/basic/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/data_extraction/basic/config.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/data_extraction/basic/prompt.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/data_extraction/basic/service.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/elicitation/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/elicitation/constants.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/elicitation/exceptions.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/elicitation/functions.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/elicitation/schemas.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/elicitation/service.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/embedding/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/embedding/constants.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/embedding/functions.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/embedding/schemas.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/embedding/service.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/embedding/utils.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/README.md +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/_internal/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/_internal/streaming/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/_internal/streaming/common.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/_internal/streaming/pattern_replacer.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/components/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/components/_base.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/components/content_tree/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/components/content_tree/functions.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/components/content_tree/schemas.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/components/content_tree/service.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/components/internal_search/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/components/internal_search/base/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/components/internal_search/base/config.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/components/internal_search/base/schemas.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/components/internal_search/base/service.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/components/internal_search/base/utils.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/components/internal_search/chat/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/components/internal_search/chat/config.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/components/internal_search/chat/schemas.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/components/internal_search/chat/service.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/components/internal_search/knowledge_base/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/components/internal_search/knowledge_base/config.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/components/internal_search/knowledge_base/schemas.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/components/internal_search/knowledge_base/service.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/components/internal_search/post_processing/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/components/internal_search/post_processing/config.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/components/internal_search/post_processing/service.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/content_tree/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/identity/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/integrations/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/integrations/openai/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/integrations/openai/streaming/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/_async_bridge.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/chat_completions/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/chat_completions/complete_with_references.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/chat_completions/stream_event_router.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/chat_completions/text_event_handler.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/chat_completions/tool_call_event_handler.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/events.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/protocols/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/protocols/chat_completions.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/protocols/responses.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/responses/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/responses/code_interpreter_event_handler.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/responses/complete_with_references.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/responses/completed_event_handler.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/responses/stream_event_router.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/responses/text_delta_event_handler.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/responses/tool_call_event_handler.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/subscribers/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/subscribers/message_persister.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/subscribers/progress_log_persister.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/resources/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/resources/content_folder/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/resources/content_folder/functions.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/resources/content_folder/schemas.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/resources/content_folder/service.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/resources/facades/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/resources/facades/identity/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/resources/facades/identity/service.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/resources/feature_flags/README.md +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/resources/feature_flags/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/resources/feature_flags/_graphql_client.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/resources/feature_flags/_ttl_cache.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/resources/feature_flags/client.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/resources/feature_flags/schemas.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/resources/feature_flags/settings.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/resources/group/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/resources/group/functions.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/resources/group/schemas.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/resources/group/service.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/resources/scheduled_task/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/resources/scheduled_task/cron.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/resources/scheduled_task/functions.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/resources/scheduled_task/schemas.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/resources/scheduled_task/service.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/resources/user/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/resources/user/functions.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/resources/user/schemas.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/resources/user/service.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/testing/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/framework_utilities/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/framework_utilities/langchain/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/framework_utilities/langchain/client.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/framework_utilities/langchain/history.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/framework_utilities/openai/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/framework_utilities/openai/client.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/framework_utilities/openai/message_builder.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/framework_utilities/utils.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/language_model/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/language_model/_responses_api_utils.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/language_model/builder.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/language_model/constants.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/language_model/default_language_model.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/language_model/functions.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/language_model/infos.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/language_model/invocation_stats.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/language_model/prompt.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/language_model/reference.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/language_model/schemas.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/language_model/service.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/language_model/settings.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/language_model/stream_transform.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/language_model/utils.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/monitoring/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/monitoring/gunicorn.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/monitoring/middleware.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/monitoring/registry.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/protocols/support.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/services/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/services/chat_service.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/services/factory.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/services/knowledge_base.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/short_term_memory/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/short_term_memory/constants.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/short_term_memory/functions.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/short_term_memory/schemas.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/short_term_memory/service.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/smart_rules/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/smart_rules/compile.py +0 -0
- {unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/test_utilities/events.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: unique-toolkit
|
|
3
|
-
Version: 2026.30.0.
|
|
3
|
+
Version: 2026.30.0.dev24
|
|
4
4
|
Summary:
|
|
5
5
|
Author: Cedric Klinkert, Martin Fadler, Sadique Sheik, Fabian Schläpfer, Pascal Hauri, Ejiroghene Oki-Peter, Rami Azouz, Ricardo Visini, Sanzio Monti
|
|
6
6
|
Author-email: Cedric Klinkert <cedric.klinkert@unique.ch>, Martin Fadler <martin.fadler@unique.ch>, Sadique Sheik <sadique@unique.ch>, Fabian Schläpfer <fabian@unique.ch>, Pascal Hauri <pascal@unique.ch>, Ejiroghene Oki-Peter <oki-peter.ejiroghene@unique.ai>, Rami Azouz <rami.ext@unique.ch>, Ricardo Visini <ricardo.visini@unique.ch>, Sanzio Monti <sanzio.monti@unique.ai>
|
|
@@ -16,7 +16,7 @@ Requires-Dist: sseclient>=0.0.27,<0.0.28
|
|
|
16
16
|
Requires-Dist: openai>=1.105.0,<3
|
|
17
17
|
Requires-Dist: platformdirs>=4.0.0,<5
|
|
18
18
|
Requires-Dist: pillow>=12.1.1
|
|
19
|
-
Requires-Dist: unique-sdk>=2026.30.0.
|
|
19
|
+
Requires-Dist: unique-sdk>=2026.30.0.dev10,<2026.30.0rc0
|
|
20
20
|
Requires-Dist: jambo>=0.1.2,<0.2
|
|
21
21
|
Requires-Dist: jinja2>=3.1.6,<4
|
|
22
22
|
Requires-Dist: docxtpl>=0.20.1,<0.21
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "unique_toolkit"
|
|
3
|
-
version = "2026.30.0.
|
|
3
|
+
version = "2026.30.0.dev24"
|
|
4
4
|
description = ""
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
requires-python = ">=3.12"
|
|
@@ -28,7 +28,7 @@ dependencies = [
|
|
|
28
28
|
"openai>=1.105.0,<3",
|
|
29
29
|
"platformdirs>=4.0.0,<5",
|
|
30
30
|
"pillow>=12.1.1",
|
|
31
|
-
"unique-sdk>=2026.30.0.
|
|
31
|
+
"unique-sdk>=2026.30.0.dev10,<2026.30.0rc0",
|
|
32
32
|
"jambo>=0.1.2,<0.2",
|
|
33
33
|
"jinja2>=3.1.6,<4",
|
|
34
34
|
"docxtpl>=0.20.1,<0.21",
|
|
@@ -3,6 +3,7 @@ from unique_sdk.api_resources._agentic_table import (
|
|
|
3
3
|
CellRendererTypes,
|
|
4
4
|
FilterTypes,
|
|
5
5
|
MagicTableActivityResponse,
|
|
6
|
+
MagicTableArtifactState,
|
|
6
7
|
MagicTableArtifactType,
|
|
7
8
|
MagicTableMetadataEntry,
|
|
8
9
|
RowVerificationStatus,
|
|
@@ -12,9 +13,11 @@ from .schemas import (
|
|
|
12
13
|
AgenticTableSheetState,
|
|
13
14
|
AgreementStatus,
|
|
14
15
|
ArtifactType,
|
|
16
|
+
CreatedMagicTableSheet,
|
|
15
17
|
LogEntry,
|
|
16
18
|
MagicTableAction,
|
|
17
19
|
MagicTableAddMetadataPayload,
|
|
20
|
+
MagicTableArtifact,
|
|
18
21
|
MagicTableBasePayload,
|
|
19
22
|
MagicTableCell,
|
|
20
23
|
MagicTableCellMetaData,
|
|
@@ -30,20 +33,34 @@ from .schemas import (
|
|
|
30
33
|
RerunRowMetadata,
|
|
31
34
|
RowMetadataEntry,
|
|
32
35
|
SelectionMethod,
|
|
36
|
+
SheetMetadataEntryInput,
|
|
33
37
|
SheetType,
|
|
34
38
|
)
|
|
35
|
-
from .service import
|
|
39
|
+
from .service import (
|
|
40
|
+
AgenticTableArtifactError,
|
|
41
|
+
AgenticTableRunNotStartedError,
|
|
42
|
+
AgenticTableRunTimeoutError,
|
|
43
|
+
AgenticTableService,
|
|
44
|
+
LockedAgenticTableError,
|
|
45
|
+
)
|
|
36
46
|
|
|
37
47
|
__all__ = [
|
|
38
48
|
"AgenticTableService",
|
|
49
|
+
"AgenticTableArtifactError",
|
|
50
|
+
"AgenticTableRunNotStartedError",
|
|
51
|
+
"AgenticTableRunTimeoutError",
|
|
39
52
|
"ActivityStatus",
|
|
40
53
|
"AgenticTableSheetState",
|
|
41
54
|
"AgreementStatus",
|
|
42
55
|
"ArtifactType",
|
|
43
56
|
"CellRendererTypes",
|
|
57
|
+
"CreatedMagicTableSheet",
|
|
44
58
|
"FilterTypes",
|
|
59
|
+
"LockedAgenticTableError",
|
|
45
60
|
"LogEntry",
|
|
46
61
|
"MagicTableActivityResponse",
|
|
62
|
+
"MagicTableArtifact",
|
|
63
|
+
"MagicTableArtifactState",
|
|
47
64
|
"MagicTableArtifactType",
|
|
48
65
|
"MagicTableAction",
|
|
49
66
|
"MagicTableMetadataEntry",
|
|
@@ -64,5 +81,6 @@ __all__ = [
|
|
|
64
81
|
"RowMetadataEntry",
|
|
65
82
|
"RowVerificationStatus",
|
|
66
83
|
"SelectionMethod",
|
|
84
|
+
"SheetMetadataEntryInput",
|
|
67
85
|
"SheetType",
|
|
68
86
|
]
|
|
@@ -10,6 +10,7 @@ from pydantic import (
|
|
|
10
10
|
from unique_sdk import (
|
|
11
11
|
AgenticTableSheetState,
|
|
12
12
|
AgreementStatus,
|
|
13
|
+
MagicTableArtifactState,
|
|
13
14
|
MagicTableArtifactType,
|
|
14
15
|
SelectionMethod,
|
|
15
16
|
)
|
|
@@ -401,3 +402,53 @@ class MagicTableSheet(BaseModel):
|
|
|
401
402
|
magic_table_sheet_metadata: list[RowMetadataEntry] = Field(
|
|
402
403
|
default_factory=list, description="The metadata for the sheet"
|
|
403
404
|
)
|
|
405
|
+
|
|
406
|
+
|
|
407
|
+
class CreatedMagicTableSheet(BaseModel):
|
|
408
|
+
"""Response of `POST /magic-table` (create sheet in a space)."""
|
|
409
|
+
|
|
410
|
+
model_config = get_configuration_dict()
|
|
411
|
+
sheet_id: str
|
|
412
|
+
due_diligence_id: str = Field(
|
|
413
|
+
description="Identifier of the due-diligence record backing this sheet."
|
|
414
|
+
)
|
|
415
|
+
name: str
|
|
416
|
+
state: AgenticTableSheetState
|
|
417
|
+
chat_id: str | None = Field(
|
|
418
|
+
default=None, description="Chat that owns the sheet (may be null)."
|
|
419
|
+
)
|
|
420
|
+
created_by: str
|
|
421
|
+
company_id: str
|
|
422
|
+
created_at: str
|
|
423
|
+
due_at: str | None = None
|
|
424
|
+
|
|
425
|
+
|
|
426
|
+
class MagicTableArtifact(BaseModel):
|
|
427
|
+
"""Export artifact of a sheet as returned by `GET /magic-table/{tableId}/artifacts`."""
|
|
428
|
+
|
|
429
|
+
model_config = get_configuration_dict()
|
|
430
|
+
id: str
|
|
431
|
+
name: str | None = None
|
|
432
|
+
content_id: str | None = Field(
|
|
433
|
+
default=None,
|
|
434
|
+
description="Content id of the generated file. Only present once the artifact is DONE; download it via the Content API.",
|
|
435
|
+
)
|
|
436
|
+
mime_type: str | None = None
|
|
437
|
+
artifact_type: MagicTableArtifactType
|
|
438
|
+
artifact_state: MagicTableArtifactState = Field(
|
|
439
|
+
description="IN_PROGRESS while the agent is generating the export, DONE when ready."
|
|
440
|
+
)
|
|
441
|
+
created_at: str
|
|
442
|
+
updated_at: str
|
|
443
|
+
|
|
444
|
+
|
|
445
|
+
class SheetMetadataEntryInput(BaseModel):
|
|
446
|
+
"""Input entry for creating sheet metadata (key/value pairs) on a sheet."""
|
|
447
|
+
|
|
448
|
+
model_config = get_configuration_dict()
|
|
449
|
+
key: str
|
|
450
|
+
value: str
|
|
451
|
+
exact_filter: bool = Field(
|
|
452
|
+
default=False,
|
|
453
|
+
description="Whether the metadata is to be used for strict filtering",
|
|
454
|
+
)
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
+
import asyncio
|
|
1
2
|
import logging
|
|
3
|
+
import time
|
|
2
4
|
from typing import Any, cast
|
|
3
5
|
|
|
4
6
|
from typing_extensions import deprecated
|
|
@@ -8,6 +10,7 @@ from unique_sdk import (
|
|
|
8
10
|
AgreementStatus,
|
|
9
11
|
CellRendererTypes,
|
|
10
12
|
FilterTypes,
|
|
13
|
+
MagicTableArtifactState,
|
|
11
14
|
MagicTableArtifactType,
|
|
12
15
|
RowVerificationStatus,
|
|
13
16
|
SelectionMethod,
|
|
@@ -16,11 +19,14 @@ from unique_sdk import AgenticTableCell as SDKAgenticTableCell
|
|
|
16
19
|
from unique_sdk.api_resources._agentic_table import ActivityStatus
|
|
17
20
|
|
|
18
21
|
from .schemas import (
|
|
22
|
+
CreatedMagicTableSheet,
|
|
19
23
|
LogEntry,
|
|
20
24
|
MagicTableAction,
|
|
25
|
+
MagicTableArtifact,
|
|
21
26
|
MagicTableCell,
|
|
22
27
|
MagicTableSheet,
|
|
23
28
|
RowMetadataEntry,
|
|
29
|
+
SheetMetadataEntryInput,
|
|
24
30
|
)
|
|
25
31
|
|
|
26
32
|
|
|
@@ -47,6 +53,18 @@ class LockedAgenticTableError(Exception):
|
|
|
47
53
|
pass
|
|
48
54
|
|
|
49
55
|
|
|
56
|
+
class AgenticTableRunNotStartedError(TimeoutError):
|
|
57
|
+
"""Raised by ``wait_for_run`` when the sheet never left IDLE within the start timeout."""
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
class AgenticTableRunTimeoutError(TimeoutError):
|
|
61
|
+
"""Raised by ``wait_for_run``/``wait_for_artifacts`` when the operation did not complete in time."""
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
class AgenticTableArtifactError(Exception):
|
|
65
|
+
"""Raised by ``wait_for_artifacts`` when an artifact ends up in the ERROR state."""
|
|
66
|
+
|
|
67
|
+
|
|
50
68
|
class AgenticTableService:
|
|
51
69
|
"""
|
|
52
70
|
Provides methods to interact with the Agentic Table.
|
|
@@ -69,6 +87,51 @@ class AgenticTableService:
|
|
|
69
87
|
self._company_id = company_id
|
|
70
88
|
self.table_id = table_id
|
|
71
89
|
self.logger = logger
|
|
90
|
+
self.created_sheet: CreatedMagicTableSheet | None = None
|
|
91
|
+
|
|
92
|
+
@classmethod
|
|
93
|
+
async def create_sheet(
|
|
94
|
+
cls,
|
|
95
|
+
user_id: str,
|
|
96
|
+
company_id: str,
|
|
97
|
+
assistant_id: str,
|
|
98
|
+
name: str | None = None,
|
|
99
|
+
due_at: str | None = None,
|
|
100
|
+
logger: logging.Logger = logging.getLogger(__name__),
|
|
101
|
+
) -> "AgenticTableService":
|
|
102
|
+
"""Create a new Agentic Table sheet in a space and return a service bound to it.
|
|
103
|
+
|
|
104
|
+
Args:
|
|
105
|
+
user_id: The user creating the sheet (must have access to the space).
|
|
106
|
+
company_id: The company id.
|
|
107
|
+
assistant_id: The space (assistant) to create the sheet in.
|
|
108
|
+
name: Optional sheet name.
|
|
109
|
+
due_at: Optional due date (ISO 8601 string).
|
|
110
|
+
|
|
111
|
+
Returns:
|
|
112
|
+
AgenticTableService: A service bound to the new sheet. The full creation
|
|
113
|
+
response (including ``due_diligence_id``) is available on ``created_sheet``.
|
|
114
|
+
"""
|
|
115
|
+
params: dict[str, str] = {"assistantId": assistant_id}
|
|
116
|
+
if name is not None:
|
|
117
|
+
params["name"] = name
|
|
118
|
+
if due_at is not None:
|
|
119
|
+
params["dueAt"] = due_at
|
|
120
|
+
# ``Unpack[CreateSheet]`` + dynamic keys: basedpyright cannot tie ``params`` to optional fields.
|
|
121
|
+
created = await AgenticTable.create_sheet(
|
|
122
|
+
user_id=user_id,
|
|
123
|
+
company_id=company_id,
|
|
124
|
+
**cast(Any, params),
|
|
125
|
+
)
|
|
126
|
+
sheet = CreatedMagicTableSheet.model_validate(created)
|
|
127
|
+
service = cls(
|
|
128
|
+
user_id=user_id,
|
|
129
|
+
company_id=company_id,
|
|
130
|
+
table_id=sheet.sheet_id,
|
|
131
|
+
logger=logger,
|
|
132
|
+
)
|
|
133
|
+
service.created_sheet = sheet
|
|
134
|
+
return service
|
|
72
135
|
|
|
73
136
|
async def set_cell(
|
|
74
137
|
self,
|
|
@@ -519,3 +582,252 @@ class AgenticTableService:
|
|
|
519
582
|
status=status,
|
|
520
583
|
locked=locked,
|
|
521
584
|
)
|
|
585
|
+
|
|
586
|
+
async def import_questions_and_sources(
|
|
587
|
+
self,
|
|
588
|
+
question_file_ids: list[str] | None = None,
|
|
589
|
+
question_texts: list[str] | None = None,
|
|
590
|
+
source_file_ids: list[str] | None = None,
|
|
591
|
+
context: str | None = None,
|
|
592
|
+
) -> None:
|
|
593
|
+
"""Import questions and source files into the sheet (`POST .../metadata`).
|
|
594
|
+
|
|
595
|
+
Delta semantics: ids/texts already on the sheet are silently skipped. The
|
|
596
|
+
agent run is only triggered when new questions (file ids or texts) are
|
|
597
|
+
provided; adding only sources does not trigger a run. Rejected while the
|
|
598
|
+
sheet is PROCESSING.
|
|
599
|
+
|
|
600
|
+
Args:
|
|
601
|
+
question_file_ids: Content ids of questionnaire files to import.
|
|
602
|
+
question_texts: Question texts to import directly.
|
|
603
|
+
source_file_ids: Content ids of source (knowledge) files to answer from.
|
|
604
|
+
context: Optional free-text context passed to the agent.
|
|
605
|
+
|
|
606
|
+
Raises:
|
|
607
|
+
Exception: If the API reports a non-success status.
|
|
608
|
+
"""
|
|
609
|
+
params: dict[str, Any] = {}
|
|
610
|
+
if question_file_ids is not None:
|
|
611
|
+
params["questionFileIds"] = question_file_ids
|
|
612
|
+
if question_texts is not None:
|
|
613
|
+
params["questionTexts"] = question_texts
|
|
614
|
+
if source_file_ids is not None:
|
|
615
|
+
params["sourceFileIds"] = source_file_ids
|
|
616
|
+
if context is not None:
|
|
617
|
+
params["context"] = context
|
|
618
|
+
result = await AgenticTable.add_metadata(
|
|
619
|
+
user_id=self._user_id,
|
|
620
|
+
company_id=self._company_id,
|
|
621
|
+
tableId=self.table_id,
|
|
622
|
+
**cast(Any, params),
|
|
623
|
+
)
|
|
624
|
+
if not result.get("status"):
|
|
625
|
+
raise Exception(result.get("message") or "Failed to import metadata")
|
|
626
|
+
|
|
627
|
+
async def generate_artifacts(
|
|
628
|
+
self,
|
|
629
|
+
artifact_types: list[MagicTableArtifactType],
|
|
630
|
+
) -> None:
|
|
631
|
+
"""Trigger export generation (`POST .../generate-artifact`).
|
|
632
|
+
|
|
633
|
+
Generation is asynchronous: this only initiates it. Use ``wait_for_artifacts``
|
|
634
|
+
(or poll ``list_artifacts``) to detect completion, then download the artifact's
|
|
635
|
+
``content_id`` via the Content API.
|
|
636
|
+
|
|
637
|
+
Raises:
|
|
638
|
+
Exception: If the API reports a non-success status.
|
|
639
|
+
"""
|
|
640
|
+
result = await AgenticTable.generate_artifact(
|
|
641
|
+
user_id=self._user_id,
|
|
642
|
+
company_id=self._company_id,
|
|
643
|
+
tableId=self.table_id,
|
|
644
|
+
artifactTypes=artifact_types,
|
|
645
|
+
)
|
|
646
|
+
if not result.get("status"):
|
|
647
|
+
raise Exception(
|
|
648
|
+
result.get("message") or "Failed to trigger artifact generation"
|
|
649
|
+
)
|
|
650
|
+
|
|
651
|
+
async def list_artifacts(self) -> list[MagicTableArtifact]:
|
|
652
|
+
"""List export artifacts of the sheet (`GET .../artifacts`)."""
|
|
653
|
+
artifacts = await AgenticTable.list_artifacts(
|
|
654
|
+
user_id=self._user_id,
|
|
655
|
+
company_id=self._company_id,
|
|
656
|
+
tableId=self.table_id,
|
|
657
|
+
)
|
|
658
|
+
return [MagicTableArtifact.model_validate(artifact) for artifact in artifacts]
|
|
659
|
+
|
|
660
|
+
async def create_sheet_metadata(
|
|
661
|
+
self,
|
|
662
|
+
entries: list[SheetMetadataEntryInput],
|
|
663
|
+
) -> None:
|
|
664
|
+
"""Create sheet metadata entries (key/value pairs) on the sheet.
|
|
665
|
+
|
|
666
|
+
Raises:
|
|
667
|
+
Exception: If the API reports a non-success status.
|
|
668
|
+
"""
|
|
669
|
+
result = await AgenticTable.create_sheet_metadata(
|
|
670
|
+
user_id=self._user_id,
|
|
671
|
+
company_id=self._company_id,
|
|
672
|
+
tableId=self.table_id,
|
|
673
|
+
entries=[
|
|
674
|
+
cast(
|
|
675
|
+
Any,
|
|
676
|
+
entry.model_dump(by_alias=True, exclude_none=True),
|
|
677
|
+
)
|
|
678
|
+
for entry in entries
|
|
679
|
+
],
|
|
680
|
+
)
|
|
681
|
+
if not result.get("status"):
|
|
682
|
+
raise Exception(result.get("message") or "Failed to create sheet metadata")
|
|
683
|
+
|
|
684
|
+
async def delete_sheet_metadata(self, metadata_id: str) -> None:
|
|
685
|
+
"""Delete a sheet metadata entry by its id.
|
|
686
|
+
|
|
687
|
+
Raises:
|
|
688
|
+
Exception: If the API reports a non-success status.
|
|
689
|
+
"""
|
|
690
|
+
result = await AgenticTable.delete_sheet_metadata(
|
|
691
|
+
user_id=self._user_id,
|
|
692
|
+
company_id=self._company_id,
|
|
693
|
+
tableId=self.table_id,
|
|
694
|
+
metadataId=metadata_id,
|
|
695
|
+
)
|
|
696
|
+
if not result.get("status"):
|
|
697
|
+
raise Exception(result.get("message") or "Failed to delete sheet metadata")
|
|
698
|
+
|
|
699
|
+
async def wait_for_run(
|
|
700
|
+
self,
|
|
701
|
+
start_timeout: float = 120.0,
|
|
702
|
+
completion_timeout: float = 3600.0,
|
|
703
|
+
poll_interval: float = 5.0,
|
|
704
|
+
) -> AgenticTableSheetState:
|
|
705
|
+
"""Wait for an agent run to start and complete, by polling the sheet state.
|
|
706
|
+
|
|
707
|
+
Two-phase poll:
|
|
708
|
+
1. Wait until the sheet enters PROCESSING (the agent picked up the trigger).
|
|
709
|
+
Terminal state left over from an earlier run is not treated as a new
|
|
710
|
+
run. If PROCESSING is never observed within ``start_timeout``, raise
|
|
711
|
+
``AgenticTableRunNotStartedError`` — most likely the trigger did not
|
|
712
|
+
start a run (e.g. no new questions were imported).
|
|
713
|
+
2. Wait until the sheet returns to IDLE or STOPPED_BY_USER (the run
|
|
714
|
+
finished), up to ``completion_timeout``.
|
|
715
|
+
|
|
716
|
+
Because the API exposes only the current state, a complete
|
|
717
|
+
PROCESSING-to-IDLE transition between two polls cannot be observed.
|
|
718
|
+
Keep ``poll_interval`` shorter than the expected minimum run duration.
|
|
719
|
+
|
|
720
|
+
Args:
|
|
721
|
+
start_timeout: Max seconds to wait for the run to start (phase 1).
|
|
722
|
+
completion_timeout: Max seconds to wait for the run to finish (phase 2).
|
|
723
|
+
poll_interval: Seconds between state polls.
|
|
724
|
+
|
|
725
|
+
Returns:
|
|
726
|
+
AgenticTableSheetState: The terminal state (IDLE or STOPPED_BY_USER).
|
|
727
|
+
|
|
728
|
+
Raises:
|
|
729
|
+
AgenticTableRunNotStartedError: The sheet never entered PROCESSING in phase 1.
|
|
730
|
+
AgenticTableRunTimeoutError: The run did not finish within ``completion_timeout``.
|
|
731
|
+
"""
|
|
732
|
+
deadline = time.monotonic() + start_timeout
|
|
733
|
+
while True:
|
|
734
|
+
state = await AgenticTable.get_sheet_state(
|
|
735
|
+
user_id=self._user_id,
|
|
736
|
+
company_id=self._company_id,
|
|
737
|
+
tableId=self.table_id,
|
|
738
|
+
)
|
|
739
|
+
if state == AgenticTableSheetState.PROCESSING:
|
|
740
|
+
break
|
|
741
|
+
if time.monotonic() >= deadline:
|
|
742
|
+
raise AgenticTableRunNotStartedError(
|
|
743
|
+
f"Sheet {self.table_id} never entered PROCESSING within {start_timeout}s. "
|
|
744
|
+
"Did the trigger start a run (e.g. were new questions imported)?"
|
|
745
|
+
)
|
|
746
|
+
await asyncio.sleep(poll_interval)
|
|
747
|
+
|
|
748
|
+
self.logger.debug("Sheet %s run started (state=%s)", self.table_id, state)
|
|
749
|
+
|
|
750
|
+
deadline = time.monotonic() + completion_timeout
|
|
751
|
+
while state == AgenticTableSheetState.PROCESSING:
|
|
752
|
+
if time.monotonic() >= deadline:
|
|
753
|
+
raise AgenticTableRunTimeoutError(
|
|
754
|
+
f"Sheet {self.table_id} still PROCESSING after {completion_timeout}s."
|
|
755
|
+
)
|
|
756
|
+
await asyncio.sleep(poll_interval)
|
|
757
|
+
state = await AgenticTable.get_sheet_state(
|
|
758
|
+
user_id=self._user_id,
|
|
759
|
+
company_id=self._company_id,
|
|
760
|
+
tableId=self.table_id,
|
|
761
|
+
)
|
|
762
|
+
|
|
763
|
+
self.logger.debug("Sheet %s run finished (state=%s)", self.table_id, state)
|
|
764
|
+
return state
|
|
765
|
+
|
|
766
|
+
async def wait_for_artifacts(
|
|
767
|
+
self,
|
|
768
|
+
artifact_types: list[MagicTableArtifactType],
|
|
769
|
+
timeout: float = 600.0,
|
|
770
|
+
poll_interval: float = 5.0,
|
|
771
|
+
) -> list[MagicTableArtifact]:
|
|
772
|
+
"""Wait until artifacts of the given types are DONE, by polling ``list_artifacts``.
|
|
773
|
+
|
|
774
|
+
Artifact records are upserted per type: triggering an export flips the record
|
|
775
|
+
of that type to IN_PROGRESS and back to DONE when the file is ready. A
|
|
776
|
+
terminal state is accepted only after IN_PROGRESS has been observed for
|
|
777
|
+
that artifact type, so a result left over from an earlier generation is
|
|
778
|
+
not mistaken for the newly triggered one.
|
|
779
|
+
|
|
780
|
+
Because the API exposes only the current artifact state, a complete
|
|
781
|
+
IN_PROGRESS-to-terminal transition between two polls cannot be observed.
|
|
782
|
+
Keep ``poll_interval`` shorter than the expected minimum generation time.
|
|
783
|
+
|
|
784
|
+
Args:
|
|
785
|
+
artifact_types: The artifact types to wait for (as passed to ``generate_artifacts``).
|
|
786
|
+
timeout: Max seconds to wait for all requested artifacts to be DONE.
|
|
787
|
+
poll_interval: Seconds between polls.
|
|
788
|
+
|
|
789
|
+
Returns:
|
|
790
|
+
list[MagicTableArtifact]: The DONE artifacts, one per requested type.
|
|
791
|
+
|
|
792
|
+
Raises:
|
|
793
|
+
AgenticTableArtifactError: An artifact of a requested type is in the ERROR state.
|
|
794
|
+
AgenticTableRunTimeoutError: Not all artifacts were DONE within ``timeout``.
|
|
795
|
+
"""
|
|
796
|
+
wanted = set(artifact_types)
|
|
797
|
+
started: set[MagicTableArtifactType] = set()
|
|
798
|
+
deadline = time.monotonic() + timeout
|
|
799
|
+
while True:
|
|
800
|
+
artifacts = await self.list_artifacts()
|
|
801
|
+
current = {
|
|
802
|
+
a.artifact_type: a for a in artifacts if a.artifact_type in wanted
|
|
803
|
+
}
|
|
804
|
+
started.update(
|
|
805
|
+
artifact_type
|
|
806
|
+
for artifact_type, artifact in current.items()
|
|
807
|
+
if artifact.artifact_state == MagicTableArtifactState.IN_PROGRESS
|
|
808
|
+
)
|
|
809
|
+
failed = [
|
|
810
|
+
artifact
|
|
811
|
+
for artifact_type, artifact in current.items()
|
|
812
|
+
if artifact_type in started
|
|
813
|
+
and artifact.artifact_state == MagicTableArtifactState.ERROR
|
|
814
|
+
]
|
|
815
|
+
if failed:
|
|
816
|
+
raise AgenticTableArtifactError(
|
|
817
|
+
f"Artifact generation failed for {[a.artifact_type for a in failed]} "
|
|
818
|
+
f"on sheet {self.table_id}."
|
|
819
|
+
)
|
|
820
|
+
done = {
|
|
821
|
+
artifact_type: artifact
|
|
822
|
+
for artifact_type, artifact in current.items()
|
|
823
|
+
if artifact_type in started
|
|
824
|
+
and artifact.artifact_state == MagicTableArtifactState.DONE
|
|
825
|
+
}
|
|
826
|
+
if wanted <= set(done.keys()):
|
|
827
|
+
return [done[t] for t in artifact_types]
|
|
828
|
+
if time.monotonic() >= deadline:
|
|
829
|
+
missing = sorted(t.value for t in wanted - set(done.keys()))
|
|
830
|
+
raise AgenticTableRunTimeoutError(
|
|
831
|
+
f"Artifacts {missing} not DONE within {timeout}s on sheet {self.table_id}."
|
|
832
|
+
)
|
|
833
|
+
await asyncio.sleep(poll_interval)
|
|
File without changes
|
{unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/__init__.py
RENAMED
|
File without changes
|
{unique_toolkit-2026.30.0.dev23 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|