unique-toolkit 2026.30.0.dev22__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.dev22 → unique_toolkit-2026.30.0.dev24}/PKG-INFO +2 -2
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/pyproject.toml +2 -2
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/debug_info_manager/debug_info_manager.py +6 -2
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/postprocessors/generated_files.py +31 -9
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic_table/__init__.py +19 -1
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic_table/schemas.py +51 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic_table/service.py +312 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/README.md +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/_base_service.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/_time_utils.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/api_calling/human_verification_manager.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/base_model_type_attribute.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/chunk_relevancy_sorter/config.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/chunk_relevancy_sorter/exception.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/chunk_relevancy_sorter/schemas.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/chunk_relevancy_sorter/service.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/chunk_relevancy_sorter/tests/test_service.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/config_checker/README.md +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/config_checker/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/config_checker/__main__.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/config_checker/cli.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/config_checker/differ.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/config_checker/exporter.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/config_checker/models.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/config_checker/registry.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/config_checker/validator.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/default_language_model.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/docx_generator/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/docx_generator/config.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/docx_generator/pandoc_converter.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/docx_generator/schemas.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/docx_generator/service.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/docx_generator/template/Doc Template.docx +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/endpoint_builder.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/endpoint_requestor.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/event_bus.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/exception.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/execution.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/experimental/endpoint_builder.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/experimental/endpoint_requestor.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/experimental/write_up_agent/README.md +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/experimental/write_up_agent/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/experimental/write_up_agent/agent.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/experimental/write_up_agent/config.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/experimental/write_up_agent/examples/data.csv +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/experimental/write_up_agent/examples/example_usage.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/experimental/write_up_agent/schemas.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/experimental/write_up_agent/services/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → 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.dev22 → 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.dev22 → 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.dev22 → 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.dev22 → 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.dev22 → 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.dev22 → 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.dev22 → 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.dev22 → 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.dev22 → 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.dev22 → 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.dev22 → 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.dev22 → 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.dev22 → 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.dev22 → 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.dev22 → 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.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/experimental/write_up_agent/utils.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/feature_flags/schema.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/metadata_filter_scope.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/pydantic/rjsf_tags.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/pydantic_helpers.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/referencing.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/string_utilities.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/tests/test_referencing.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/tests/test_string_utilities.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/token/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/token/image_token_counting.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/token/token_counting.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/token/tokenizers/deepseek/tokenizer.json +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/token/tokenizers/qwen/tokenizer.json +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/utils/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/utils/files.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/utils/image/encode.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/utils/jinja/helpers.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/utils/jinja/render.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/utils/jinja/schema.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/utils/jinja/utils.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/utils/structured_output/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/utils/structured_output/schema.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/utils/write_configuration.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/validate_required_values.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/_common/validators.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → 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.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/evaluation/config.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/evaluation/context_relevancy/prompts/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/evaluation/context_relevancy/prompts/system_prompt.j2 +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/evaluation/context_relevancy/prompts/user_prompt.j2 +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/evaluation/context_relevancy/schema.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/evaluation/context_relevancy/service.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/evaluation/evaluation_manager.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/evaluation/exception.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/evaluation/hallucination/constants.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/evaluation/hallucination/hallucination_evaluation.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/evaluation/hallucination/prompts/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/evaluation/hallucination/prompts/system_prompt.j2 +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/evaluation/hallucination/prompts/user_prompt.j2 +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/evaluation/hallucination/service.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/evaluation/hallucination/utils.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/evaluation/output_parser.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/evaluation/schemas.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/evaluation/tests/fixtures.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/evaluation/tests/test_config.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/evaluation/tests/test_context_relevancy_service.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/evaluation/tests/test_hallucination_constants.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/evaluation/tests/test_hallucination_external_context.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/evaluation/tests/test_hallucination_utils.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/evaluation/tests/test_output_parser.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/evaluation/tests/test_prompt_loaders.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/evaluation/utils.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/feature_flags/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/feature_flags/feature_flags.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/history_manager/history_construction_with_contents.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/history_manager/history_manager.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/history_manager/loop_token_reducer.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/history_manager/settings.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/history_manager/utils.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/loop_runner/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/loop_runner/_iteration_handler_utils.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/loop_runner/_responses_iteration_handler_utils.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/loop_runner/_responses_stream_handler_utils.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/loop_runner/_stream_handler_utils.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/loop_runner/base.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/loop_runner/middleware/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/loop_runner/middleware/planning/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/loop_runner/middleware/planning/planning.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/loop_runner/middleware/planning/schema.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/loop_runner/runners/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/loop_runner/runners/basic.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/loop_runner/runners/mistral/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/loop_runner/runners/mistral/mistral_runner.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/loop_runner/runners/qwen/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/loop_runner/runners/qwen/helpers.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/loop_runner/runners/qwen/qwen_runner.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/message_log_manager/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/message_log_manager/service.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/message_log_order.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/postprocessor/postprocessor_manager.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/reference_manager/reference_manager.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/reference_manager/tests/test_external_context.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/responses_api/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/responses_api/postprocessors/code_display.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/responses_api/postprocessors/generated_files.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/responses_api/stream_handler.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → 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.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/thinking_manager/thinking_manager.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/a2a/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/a2a/config.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/a2a/evaluation/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/a2a/evaluation/_utils.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/a2a/evaluation/config.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/a2a/evaluation/evaluator.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/a2a/evaluation/summarization_user_message.j2 +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/a2a/manager.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/a2a/postprocessing/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/a2a/postprocessing/_display_utils.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/a2a/postprocessing/_ref_utils.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/a2a/postprocessing/config.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/a2a/postprocessing/display.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/a2a/postprocessing/references.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_display.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_display_utils.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_ref_utils.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_references.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/a2a/prompts.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/a2a/response_watcher/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/a2a/response_watcher/service.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/a2a/tool/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/a2a/tool/_memory.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/a2a/tool/_schema.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/a2a/tool/config.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/a2a/tool/service.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/a2a/tool/test/test_service_utils.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/agent_chunks_hanlder.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/config.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/experimental/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/experimental/ask_user_tool/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/experimental/ask_user_tool/config.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/experimental/ask_user_tool/tool.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/experimental/open_file_tool/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/experimental/open_file_tool/config.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/experimental/open_file_tool/runtime.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/experimental/open_file_tool/tool.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/experimental/retrieve_search_scope_tool/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/experimental/retrieve_search_scope_tool/config.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/experimental/retrieve_search_scope_tool/tool.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/experimental/todo/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/experimental/todo/config.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/experimental/todo/prompts/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/experimental/todo/prompts/execution_reminder.j2 +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/experimental/todo/prompts/system_prompt.j2 +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/experimental/todo/prompts/tool_description.j2 +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/experimental/todo/prompts/verification_nudge.j2 +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/experimental/todo/schemas.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/experimental/todo/service.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/factory.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/mcp/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/mcp/manager.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/mcp/models.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/mcp/tool_wrapper.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/names.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/openai_builtin/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/openai_builtin/base.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/activator/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/activator/config.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/activator/service.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/builder/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/builder/_container.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/builder/_files.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/builder/_memory.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/builder/builder.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/config.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/postprocessors/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/postprocessors/artifacts.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → 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.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/schemas.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/tool/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/tool/config.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/tool/service.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/openai_builtin/manager.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/run_context.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/schemas.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/test/test_mcp_manager.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/test/test_tool_progress_reporter.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/tool.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/tool_manager.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/tool_progress_reporter.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/utils/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/utils/source_handling/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/utils/source_handling/schema.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic/tools/utils/source_handling/source_formatting.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → 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.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/agentic_table/synthetic_chat_event.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/app/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/app/chat_event_filter_options_settings.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/app/dev_util.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/app/fast_api_factory.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/app/feature_flags.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/app/find_env_file.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/app/init_logging.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/app/init_sdk.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/app/performance/async_tasks.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/app/performance/async_wrapper.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/app/schemas.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/app/unique_settings.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/app/verification.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/app/webhook.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/chat/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/chat/cancellation.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/chat/constants.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/chat/deprecated/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/chat/deprecated/service.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/chat/functions.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/chat/rendering.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/chat/responses_api.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/chat/schemas.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/chat/service.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/chat/state.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/chat/utils.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/content/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/content/constants.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/content/functions.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/content/schemas.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/content/service.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/content/smart_rules.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/content/utils.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/data_extraction/README.md +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/data_extraction/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/data_extraction/augmented/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/data_extraction/augmented/service.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/data_extraction/base.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/data_extraction/basic/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/data_extraction/basic/config.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/data_extraction/basic/prompt.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/data_extraction/basic/service.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/elicitation/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/elicitation/constants.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/elicitation/exceptions.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/elicitation/functions.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/elicitation/schemas.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/elicitation/service.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/embedding/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/embedding/constants.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/embedding/functions.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/embedding/schemas.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/embedding/service.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/embedding/utils.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/README.md +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/_internal/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/_internal/streaming/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/_internal/streaming/common.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/_internal/streaming/pattern_replacer.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/components/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/components/_base.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/components/content_tree/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/components/content_tree/functions.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/components/content_tree/schemas.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/components/content_tree/service.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/components/internal_search/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/components/internal_search/base/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/components/internal_search/base/config.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/components/internal_search/base/schemas.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/components/internal_search/base/service.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/components/internal_search/base/utils.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/components/internal_search/chat/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/components/internal_search/chat/config.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/components/internal_search/chat/schemas.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/components/internal_search/chat/service.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/components/internal_search/knowledge_base/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/components/internal_search/knowledge_base/config.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/components/internal_search/knowledge_base/schemas.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/components/internal_search/knowledge_base/service.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/components/internal_search/post_processing/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/components/internal_search/post_processing/config.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/components/internal_search/post_processing/service.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/content_tree/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/identity/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/integrations/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/integrations/openai/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/integrations/openai/streaming/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/_async_bridge.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → 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.dev22 → 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.dev22 → 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.dev22 → 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.dev22 → 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.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/events.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/protocols/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → 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.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/protocols/responses.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/responses/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → 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.dev22 → 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.dev22 → 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.dev22 → 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.dev22 → 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.dev22 → 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.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/subscribers/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → 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.dev22 → 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.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/resources/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/resources/content_folder/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/resources/content_folder/functions.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/resources/content_folder/schemas.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/resources/content_folder/service.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/resources/facades/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/resources/facades/identity/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/resources/facades/identity/service.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/resources/feature_flags/README.md +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/resources/feature_flags/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/resources/feature_flags/_graphql_client.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/resources/feature_flags/_ttl_cache.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/resources/feature_flags/client.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/resources/feature_flags/schemas.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/resources/feature_flags/settings.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/resources/group/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/resources/group/functions.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/resources/group/schemas.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/resources/group/service.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/resources/scheduled_task/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/resources/scheduled_task/cron.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/resources/scheduled_task/functions.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/resources/scheduled_task/schemas.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/resources/scheduled_task/service.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/resources/user/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/resources/user/functions.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/resources/user/schemas.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/resources/user/service.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/experimental/testing/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/framework_utilities/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/framework_utilities/langchain/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/framework_utilities/langchain/client.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/framework_utilities/langchain/history.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/framework_utilities/openai/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/framework_utilities/openai/client.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/framework_utilities/openai/message_builder.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/framework_utilities/utils.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/language_model/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/language_model/_responses_api_utils.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/language_model/builder.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/language_model/constants.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/language_model/default_language_model.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/language_model/functions.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/language_model/infos.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/language_model/invocation_stats.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/language_model/prompt.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/language_model/reference.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/language_model/schemas.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/language_model/service.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/language_model/settings.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/language_model/stream_transform.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/language_model/utils.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/monitoring/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/monitoring/gunicorn.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/monitoring/middleware.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/monitoring/registry.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/protocols/support.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/services/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/services/chat_service.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/services/factory.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/services/knowledge_base.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/short_term_memory/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/short_term_memory/constants.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/short_term_memory/functions.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/short_term_memory/schemas.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/short_term_memory/service.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/smart_rules/__init__.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/smart_rules/compile.py +0 -0
- {unique_toolkit-2026.30.0.dev22 → 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",
|
|
@@ -48,6 +48,9 @@ class Analytics(TypedDict):
|
|
|
48
48
|
language_model: AnalyticsLanguageModel
|
|
49
49
|
loop_iteration_count: int
|
|
50
50
|
mcp_tool_names_used: list[AnalyticsToolName]
|
|
51
|
+
# Total size of artifacts/files created this turn, in MiB. None when Code
|
|
52
|
+
# Interpreter did not run; 0.0 when it ran but produced nothing.
|
|
53
|
+
output_size: float | None
|
|
51
54
|
references_count: int
|
|
52
55
|
skills_used: list[AnalyticsSkill]
|
|
53
56
|
subagent_names_used: list[AnalyticsToolName]
|
|
@@ -129,8 +132,8 @@ class DebugInfoManager:
|
|
|
129
132
|
]
|
|
130
133
|
# Artifacts are recorded at the postprocessor seam (Code Interpreter's
|
|
131
134
|
# DisplayCodeInterpreterFilesPostProcessor) into debug_info["artifacts"].
|
|
132
|
-
# Absent when no Code Interpreter ran this turn →
|
|
133
|
-
# preserving the always-present, null-when-unknown contract.
|
|
135
|
+
# Absent when no Code Interpreter ran this turn → artifact fields stay
|
|
136
|
+
# None, preserving the always-present, null-when-unknown contract.
|
|
134
137
|
analytics = Analytics(
|
|
135
138
|
tools_used=analytics_tools,
|
|
136
139
|
tool_call_count=len(analytics_tools),
|
|
@@ -152,6 +155,7 @@ class DebugInfoManager:
|
|
|
152
155
|
total_time_to_answer_ms=total_time_to_answer_ms,
|
|
153
156
|
artifacts_created_count=artifacts["count"] if artifacts else None,
|
|
154
157
|
artifacts_created_filetype=artifacts["filetypes"] if artifacts else None,
|
|
158
|
+
output_size=artifacts["output_size"] if artifacts else None,
|
|
155
159
|
# None when the user-memory postprocessor is not activated for this
|
|
156
160
|
# turn; True/False when it ran and did/didn't update the profile.
|
|
157
161
|
context_memory_updated=context_memory_updated,
|
|
@@ -46,16 +46,22 @@ from unique_toolkit.short_term_memory.service import ShortTermMemoryService
|
|
|
46
46
|
logger = logging.getLogger(__name__)
|
|
47
47
|
|
|
48
48
|
|
|
49
|
+
_BYTES_PER_MB = 1024 * 1024
|
|
50
|
+
|
|
51
|
+
|
|
49
52
|
class ArtifactsDebugInfo(TypedDict):
|
|
50
53
|
"""This turn's successfully-created artifacts, for analytics.
|
|
51
54
|
|
|
52
|
-
Feeds analytics.artifacts_created_count / artifacts_created_filetype
|
|
53
|
-
postprocessor returns this to the orchestrator, which
|
|
54
|
-
``DebugInfoManager`` and records it.
|
|
55
|
+
Feeds analytics.artifacts_created_count / artifacts_created_filetype /
|
|
56
|
+
output_size. The postprocessor returns this to the orchestrator, which
|
|
57
|
+
owns the ``DebugInfoManager`` and records it.
|
|
55
58
|
"""
|
|
56
59
|
|
|
57
60
|
count: int
|
|
58
61
|
filetypes: list[str]
|
|
62
|
+
# Total size of this turn's successfully-created artifacts, in MiB
|
|
63
|
+
# (bytes / 1024**2). 0.0 when the interpreter ran but produced nothing.
|
|
64
|
+
output_size: float
|
|
59
65
|
|
|
60
66
|
|
|
61
67
|
class _ChatLoggerAdapter(logging.LoggerAdapter[logging.Logger]):
|
|
@@ -380,6 +386,9 @@ class DisplayCodeInterpreterFilesPostProcessor(
|
|
|
380
386
|
chat_id=chat_id,
|
|
381
387
|
)
|
|
382
388
|
|
|
389
|
+
# Cleared at the start of each run(); holds this-turn download sizes.
|
|
390
|
+
self._file_size_map: dict[str, int] = {}
|
|
391
|
+
|
|
383
392
|
def _build_retry(self) -> AsyncRetrying:
|
|
384
393
|
"""Build a tenacity retry policy from the current config.
|
|
385
394
|
|
|
@@ -407,6 +416,10 @@ class DisplayCodeInterpreterFilesPostProcessor(
|
|
|
407
416
|
[cf.filename for cf in container_files],
|
|
408
417
|
)
|
|
409
418
|
|
|
419
|
+
# Per-turn byte sizes of successfully uploaded files. Not persisted to
|
|
420
|
+
# short-term memory — only feeds this turn's analytics.output_size.
|
|
421
|
+
self._file_size_map = {}
|
|
422
|
+
|
|
410
423
|
phase_t0 = time.monotonic()
|
|
411
424
|
try:
|
|
412
425
|
self._content_map: dict[str, str | None] = await self._load_previous_files() # pyright: ignore[reportAttributeAccessIssue]
|
|
@@ -501,17 +514,19 @@ class DisplayCodeInterpreterFilesPostProcessor(
|
|
|
501
514
|
) -> ArtifactsDebugInfo | None:
|
|
502
515
|
"""Compute this turn's successfully-created artifacts.
|
|
503
516
|
|
|
504
|
-
Feeds analytics.artifacts_created_count / artifacts_created_filetype
|
|
517
|
+
Feeds analytics.artifacts_created_count / artifacts_created_filetype /
|
|
518
|
+
output_size.
|
|
505
519
|
|
|
506
520
|
Returns ``None`` when the Code Interpreter did not execute this turn
|
|
507
521
|
(``code_interpreter_calls`` empty). The postprocessor is registered
|
|
508
522
|
whenever the tool is *enabled*, so ``run()`` also fires on turns where the
|
|
509
523
|
model never invoked it — returning ``None`` there keeps analytics.artifacts_*
|
|
510
|
-
as null ("did not run") rather than 0/[] ("ran, created
|
|
511
|
-
did run,
|
|
512
|
-
``self._content_map``, which also holds
|
|
513
|
-
memory), successful uploads only, with
|
|
514
|
-
extensions
|
|
524
|
+
/ output_size as null ("did not run") rather than 0/[]/0.0 ("ran, created
|
|
525
|
+
nothing"). When it did run, metrics are scoped to this response's
|
|
526
|
+
``container_files`` (not ``self._content_map``, which also holds
|
|
527
|
+
prior-message files from short-term memory), successful uploads only, with
|
|
528
|
+
a deduped, sorted set of file extensions and total size in MiB from
|
|
529
|
+
``self._file_size_map`` (populated at download time).
|
|
515
530
|
"""
|
|
516
531
|
# Interpreter did not run this turn → leave artifacts null, not 0/[].
|
|
517
532
|
if not loop_response.code_interpreter_calls:
|
|
@@ -522,9 +537,13 @@ class DisplayCodeInterpreterFilesPostProcessor(
|
|
|
522
537
|
for cf in loop_response.container_files
|
|
523
538
|
if self._content_map.get(cf.filename) is not None
|
|
524
539
|
}
|
|
540
|
+
total_bytes = sum(
|
|
541
|
+
self._file_size_map.get(name, 0) for name in created_filenames
|
|
542
|
+
)
|
|
525
543
|
return ArtifactsDebugInfo(
|
|
526
544
|
count=len(created_filenames),
|
|
527
545
|
filetypes=sorted({_artifact_filetype(name) for name in created_filenames}),
|
|
546
|
+
output_size=total_bytes / _BYTES_PER_MB,
|
|
528
547
|
)
|
|
529
548
|
|
|
530
549
|
@override
|
|
@@ -763,6 +782,9 @@ class DisplayCodeInterpreterFilesPostProcessor(
|
|
|
763
782
|
upload_ms,
|
|
764
783
|
pipeline_ms,
|
|
765
784
|
)
|
|
785
|
+
# Record size only on successful upload so failed downloads don't
|
|
786
|
+
# inflate analytics.output_size (mirrors content_map success gating).
|
|
787
|
+
self._file_size_map[container_file.filename] = len(file_bytes)
|
|
766
788
|
return _ContentInfo(filename=container_file.filename, content_id=content.id)
|
|
767
789
|
|
|
768
790
|
async def _download_file_bytes_with_progress(
|
|
@@ -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.dev22 → unique_toolkit-2026.30.0.dev24}/unique_toolkit/__init__.py
RENAMED
|
File without changes
|
{unique_toolkit-2026.30.0.dev22 → 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
|