unique_toolkit 2026.32.0__tar.gz → 2026.32.0.dev0__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.32.0 → unique_toolkit-2026.32.0.dev0}/PKG-INFO +4 -5
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/pyproject.toml +5 -5
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/debug_info_manager/debug_info_manager.py +0 -90
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/postprocessor/postprocessor_manager.py +0 -31
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/tools/a2a/tool/service.py +2 -53
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/tools/a2a/tool/test/test_service_utils.py +0 -73
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic_table/service.py +0 -27
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/chat/schemas.py +1 -13
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/experimental/components/content_tree/functions.py +4 -3
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/language_model/infos.py +0 -48
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/language_model/invocation_stats.py +1 -8
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/monitoring/middleware.py +10 -48
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/monitoring/registry.py +2 -25
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/services/knowledge_base.py +2 -2
- unique_toolkit-2026.32.0/unique_toolkit/language_model/model_costs.py +0 -118
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/README.md +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/__init__.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/_common/__init__.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/_common/_base_service.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/_common/_time_utils.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/_common/api_calling/human_verification_manager.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/_common/base_model_type_attribute.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/_common/chunk_relevancy_sorter/config.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/_common/chunk_relevancy_sorter/exception.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/_common/chunk_relevancy_sorter/schemas.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/_common/chunk_relevancy_sorter/service.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/_common/chunk_relevancy_sorter/tests/test_service.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/_common/config_checker/README.md +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/_common/config_checker/__init__.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/_common/config_checker/__main__.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/_common/config_checker/cli.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/_common/config_checker/differ.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/_common/config_checker/exporter.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/_common/config_checker/models.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/_common/config_checker/registry.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/_common/config_checker/validator.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/_common/default_language_model.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/_common/docx_generator/__init__.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/_common/docx_generator/config.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/_common/docx_generator/pandoc_converter.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/_common/docx_generator/schemas.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/_common/docx_generator/service.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/_common/docx_generator/template/Doc Template.docx +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/_common/endpoint_builder.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/_common/endpoint_requestor.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/_common/event_bus.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/_common/exception.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/_common/execution.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/_common/experimental/endpoint_builder.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/_common/experimental/endpoint_requestor.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/_common/experimental/write_up_agent/README.md +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/_common/experimental/write_up_agent/__init__.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/_common/experimental/write_up_agent/agent.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/_common/experimental/write_up_agent/config.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/_common/experimental/write_up_agent/examples/data.csv +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/_common/experimental/write_up_agent/examples/example_usage.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/_common/experimental/write_up_agent/schemas.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/_common/experimental/write_up_agent/services/__init__.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/__init__.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/exceptions.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/service.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/utils.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/__init__.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/config.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/exceptions.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/prompts/config.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/prompts/system_prompt.j2 +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/prompts/user_prompt.j2 +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/service.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/__init__.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/default_template.j2 +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/exceptions.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/service.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/utils.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/_common/experimental/write_up_agent/utils.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/_common/feature_flags/schema.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/_common/metadata_filter_scope.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/_common/pydantic/rjsf_tags.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/_common/pydantic_helpers.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/_common/referencing.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/_common/string_utilities.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/_common/tests/test_referencing.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/_common/tests/test_string_utilities.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/_common/token/__init__.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/_common/token/image_token_counting.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/_common/token/token_counting.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/_common/token/tokenizers/deepseek/tokenizer.json +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/_common/token/tokenizers/qwen/tokenizer.json +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/_common/utils/__init__.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/_common/utils/files.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/_common/utils/image/encode.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/_common/utils/jinja/helpers.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/_common/utils/jinja/render.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/_common/utils/jinja/schema.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/_common/utils/jinja/utils.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/_common/utils/structured_output/__init__.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/_common/utils/structured_output/schema.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/_common/utils/write_configuration.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/_common/validate_required_values.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/_common/validators.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/__init__.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/debug_info_manager/test/test_debug_info_manager.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/evaluation/config.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/evaluation/context_relevancy/prompts/__init__.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/evaluation/context_relevancy/prompts/system_prompt.j2 +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/evaluation/context_relevancy/prompts/user_prompt.j2 +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/evaluation/context_relevancy/schema.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/evaluation/context_relevancy/service.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/evaluation/evaluation_manager.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/evaluation/exception.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/evaluation/hallucination/constants.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/evaluation/hallucination/hallucination_evaluation.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/evaluation/hallucination/prompts/__init__.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/evaluation/hallucination/prompts/system_prompt.j2 +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/evaluation/hallucination/prompts/user_prompt.j2 +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/evaluation/hallucination/service.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/evaluation/hallucination/utils.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/evaluation/output_parser.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/evaluation/schemas.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/evaluation/tests/fixtures.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/evaluation/tests/test_config.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/evaluation/tests/test_context_relevancy_service.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/evaluation/tests/test_hallucination_constants.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/evaluation/tests/test_hallucination_external_context.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/evaluation/tests/test_hallucination_utils.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/evaluation/tests/test_output_parser.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/evaluation/tests/test_prompt_loaders.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/evaluation/utils.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/feature_flags/__init__.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/feature_flags/feature_flags.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/history_manager/history_construction_with_contents.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/history_manager/history_manager.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/history_manager/loop_token_reducer.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/history_manager/settings.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/history_manager/utils.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/loop_runner/__init__.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/loop_runner/_iteration_handler_utils.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/loop_runner/_responses_iteration_handler_utils.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/loop_runner/_responses_stream_handler_utils.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/loop_runner/_stream_handler_utils.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/loop_runner/base.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/loop_runner/middleware/__init__.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/loop_runner/middleware/planning/__init__.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/loop_runner/middleware/planning/planning.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/loop_runner/middleware/planning/schema.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/loop_runner/runners/__init__.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/loop_runner/runners/basic.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/loop_runner/runners/mistral/__init__.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/loop_runner/runners/mistral/mistral_runner.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/loop_runner/runners/qwen/__init__.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/loop_runner/runners/qwen/helpers.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/loop_runner/runners/qwen/qwen_runner.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/message_log_manager/__init__.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/message_log_manager/service.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/message_log_order.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/reference_manager/reference_manager.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/reference_manager/tests/test_external_context.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/responses_api/__init__.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/responses_api/postprocessors/code_display.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/responses_api/postprocessors/generated_files.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/responses_api/stream_handler.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/short_term_memory_manager/persistent_short_term_memory_manager.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/thinking_manager/thinking_manager.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/tools/__init__.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/tools/a2a/__init__.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/tools/a2a/config.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/tools/a2a/evaluation/__init__.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/tools/a2a/evaluation/_utils.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/tools/a2a/evaluation/config.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/tools/a2a/evaluation/evaluator.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/tools/a2a/evaluation/summarization_user_message.j2 +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/tools/a2a/manager.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/tools/a2a/postprocessing/__init__.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/tools/a2a/postprocessing/_display_utils.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/tools/a2a/postprocessing/_ref_utils.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/tools/a2a/postprocessing/config.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/tools/a2a/postprocessing/display.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/tools/a2a/postprocessing/references.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_display.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_display_utils.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_ref_utils.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_references.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/tools/a2a/prompts.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/tools/a2a/response_watcher/__init__.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/tools/a2a/response_watcher/service.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/tools/a2a/tool/__init__.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/tools/a2a/tool/_memory.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/tools/a2a/tool/_schema.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/tools/a2a/tool/config.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/tools/agent_chunks_hanlder.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/tools/config.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/tools/experimental/__init__.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/tools/experimental/ask_user_tool/__init__.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/tools/experimental/ask_user_tool/config.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/tools/experimental/ask_user_tool/tool.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/tools/experimental/open_file_tool/__init__.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/tools/experimental/open_file_tool/config.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/tools/experimental/open_file_tool/runtime.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/tools/experimental/open_file_tool/tool.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/tools/experimental/retrieve_search_scope_tool/__init__.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/tools/experimental/retrieve_search_scope_tool/config.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/tools/experimental/retrieve_search_scope_tool/tool.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/tools/experimental/todo/__init__.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/tools/experimental/todo/config.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/tools/experimental/todo/prompts/__init__.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/tools/experimental/todo/prompts/execution_reminder.j2 +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/tools/experimental/todo/prompts/system_prompt.j2 +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/tools/experimental/todo/prompts/tool_description.j2 +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/tools/experimental/todo/prompts/verification_nudge.j2 +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/tools/experimental/todo/schemas.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/tools/experimental/todo/service.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/tools/factory.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/tools/mcp/__init__.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/tools/mcp/manager.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/tools/mcp/models.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/tools/mcp/tool_wrapper.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/tools/names.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/tools/openai_builtin/__init__.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/tools/openai_builtin/base.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/__init__.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/activator/__init__.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/activator/config.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/activator/service.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/builder/__init__.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/builder/_container.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/builder/_files.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/builder/_memory.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/builder/builder.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/config.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/postprocessors/__init__.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/postprocessors/artifacts.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/postprocessors/code_display.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/postprocessors/generated_files.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/schemas.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/tool/__init__.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/tool/config.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/tool/service.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/tools/openai_builtin/manager.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/tools/run_context.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/tools/schemas.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/tools/test/test_mcp_manager.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/tools/test/test_tool_progress_reporter.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/tools/tool.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/tools/tool_manager.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/tools/tool_progress_reporter.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/tools/utils/__init__.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/tools/utils/source_handling/__init__.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/tools/utils/source_handling/schema.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/tools/utils/source_handling/source_formatting.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic/tools/utils/source_handling/tests/test_source_formatting.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic_table/__init__.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic_table/schemas.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic_table/synthetic_chat_event.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/app/__init__.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/app/chat_event_filter_options_settings.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/app/dev_util.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/app/fast_api_factory.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/app/feature_flags.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/app/find_env_file.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/app/init_logging.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/app/init_sdk.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/app/performance/async_tasks.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/app/performance/async_wrapper.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/app/schemas.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/app/unique_settings.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/app/verification.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/app/webhook.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/chat/__init__.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/chat/cancellation.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/chat/constants.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/chat/deprecated/__init__.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/chat/deprecated/service.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/chat/functions.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/chat/rendering.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/chat/responses_api.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/chat/service.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/chat/state.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/chat/utils.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/content/__init__.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/content/constants.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/content/functions.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/content/schemas.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/content/service.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/content/smart_rules.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/content/utils.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/data_extraction/README.md +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/data_extraction/__init__.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/data_extraction/augmented/__init__.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/data_extraction/augmented/service.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/data_extraction/base.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/data_extraction/basic/__init__.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/data_extraction/basic/config.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/data_extraction/basic/prompt.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/data_extraction/basic/service.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/elicitation/__init__.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/elicitation/constants.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/elicitation/exceptions.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/elicitation/functions.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/elicitation/schemas.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/elicitation/service.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/embedding/__init__.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/embedding/constants.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/embedding/functions.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/embedding/schemas.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/embedding/service.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/embedding/utils.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/experimental/README.md +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/experimental/__init__.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/experimental/_internal/__init__.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/experimental/_internal/streaming/__init__.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/experimental/_internal/streaming/common.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/experimental/_internal/streaming/pattern_replacer.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/experimental/components/__init__.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/experimental/components/_base.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/experimental/components/content_tree/__init__.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/experimental/components/content_tree/schemas.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/experimental/components/content_tree/service.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/experimental/components/internal_search/__init__.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/experimental/components/internal_search/base/__init__.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/experimental/components/internal_search/base/config.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/experimental/components/internal_search/base/schemas.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/experimental/components/internal_search/base/service.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/experimental/components/internal_search/base/utils.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/experimental/components/internal_search/chat/__init__.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/experimental/components/internal_search/chat/config.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/experimental/components/internal_search/chat/schemas.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/experimental/components/internal_search/chat/service.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/experimental/components/internal_search/knowledge_base/__init__.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/experimental/components/internal_search/knowledge_base/config.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/experimental/components/internal_search/knowledge_base/schemas.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/experimental/components/internal_search/knowledge_base/service.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/experimental/components/internal_search/post_processing/__init__.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/experimental/components/internal_search/post_processing/config.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/experimental/components/internal_search/post_processing/service.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/experimental/content_tree/__init__.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/experimental/identity/__init__.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/experimental/integrations/__init__.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/experimental/integrations/openai/__init__.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/experimental/integrations/openai/streaming/__init__.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/__init__.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/_async_bridge.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/chat_completions/__init__.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/chat_completions/complete_with_references.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/chat_completions/stream_event_router.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/chat_completions/text_event_handler.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/chat_completions/tool_call_event_handler.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/events.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/protocols/__init__.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/protocols/chat_completions.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/protocols/responses.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/responses/__init__.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/responses/code_interpreter_event_handler.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/responses/complete_with_references.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/responses/completed_event_handler.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/responses/stream_event_router.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/responses/text_delta_event_handler.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/responses/tool_call_event_handler.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/subscribers/__init__.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/subscribers/message_persister.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/subscribers/progress_log_persister.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/experimental/resources/__init__.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/experimental/resources/content_folder/__init__.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/experimental/resources/content_folder/functions.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/experimental/resources/content_folder/schemas.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/experimental/resources/content_folder/service.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/experimental/resources/facades/__init__.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/experimental/resources/facades/identity/__init__.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/experimental/resources/facades/identity/service.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/experimental/resources/feature_flags/README.md +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/experimental/resources/feature_flags/__init__.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/experimental/resources/feature_flags/_graphql_client.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/experimental/resources/feature_flags/_ttl_cache.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/experimental/resources/feature_flags/client.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/experimental/resources/feature_flags/schemas.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/experimental/resources/feature_flags/settings.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/experimental/resources/group/__init__.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/experimental/resources/group/functions.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/experimental/resources/group/schemas.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/experimental/resources/group/service.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/experimental/resources/scheduled_task/__init__.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/experimental/resources/scheduled_task/cron.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/experimental/resources/scheduled_task/functions.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/experimental/resources/scheduled_task/schemas.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/experimental/resources/scheduled_task/service.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/experimental/resources/user/__init__.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/experimental/resources/user/functions.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/experimental/resources/user/schemas.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/experimental/resources/user/service.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/experimental/testing/__init__.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/framework_utilities/__init__.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/framework_utilities/langchain/__init__.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/framework_utilities/langchain/client.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/framework_utilities/langchain/history.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/framework_utilities/openai/__init__.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/framework_utilities/openai/client.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/framework_utilities/openai/message_builder.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/framework_utilities/utils.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/language_model/__init__.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/language_model/_responses_api_utils.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/language_model/builder.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/language_model/constants.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/language_model/default_language_model.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/language_model/functions.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/language_model/prompt.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/language_model/reference.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/language_model/schemas.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/language_model/service.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/language_model/settings.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/language_model/stream_transform.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/language_model/utils.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/monitoring/__init__.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/monitoring/gunicorn.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/protocols/support.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/services/__init__.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/services/chat_service.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/services/factory.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/short_term_memory/__init__.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/short_term_memory/constants.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/short_term_memory/functions.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/short_term_memory/schemas.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/short_term_memory/service.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/smart_rules/__init__.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/smart_rules/compile.py +0 -0
- {unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/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.32.0
|
|
3
|
+
Version: 2026.32.0.dev0
|
|
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.32.0
|
|
19
|
+
Requires-Dist: unique-sdk>=2026.32.0.dev0,<2026.32.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
|
|
@@ -33,9 +33,8 @@ Requires-Dist: tenacity>=9.1.4
|
|
|
33
33
|
Requires-Dist: pydantic-core>=2.41.5
|
|
34
34
|
Requires-Dist: cachetools>=5.0,<6
|
|
35
35
|
Requires-Dist: rapidfuzz>=3.0,<4
|
|
36
|
-
Requires-Dist:
|
|
37
|
-
Requires-Dist:
|
|
38
|
-
Requires-Dist: starlette>=1.3.1,<2.0.0 ; extra == 'fastapi'
|
|
36
|
+
Requires-Dist: fastapi>=0.121.0,<0.122 ; extra == 'fastapi'
|
|
37
|
+
Requires-Dist: starlette>=0.49.1 ; extra == 'fastapi'
|
|
39
38
|
Requires-Dist: uvicorn>=0.37.0,<0.38 ; extra == 'fastapi'
|
|
40
39
|
Requires-Dist: openai>=1.105.0,<3 ; extra == 'langchain'
|
|
41
40
|
Requires-Dist: langchain>=1.0.0,<2 ; extra == 'langchain'
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "unique_toolkit"
|
|
3
|
-
version = "2026.32.0"
|
|
3
|
+
version = "2026.32.0.dev0"
|
|
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.32.0",
|
|
31
|
+
"unique-sdk>=2026.32.0.dev0,<2026.32.0rc0",
|
|
32
32
|
"jambo>=0.1.2,<0.2",
|
|
33
33
|
"jinja2>=3.1.6,<4",
|
|
34
34
|
"docxtpl>=0.20.1,<0.21",
|
|
@@ -45,7 +45,6 @@ dependencies = [
|
|
|
45
45
|
"pydantic-core>=2.41.5",
|
|
46
46
|
"cachetools>=5.0,<6",
|
|
47
47
|
"rapidfuzz>=3.0,<4",
|
|
48
|
-
"pyyaml>=6.0.3",
|
|
49
48
|
]
|
|
50
49
|
|
|
51
50
|
[project.optional-dependencies]
|
|
@@ -56,8 +55,8 @@ langchain = [
|
|
|
56
55
|
"langchain-core>=1.0.0,<2",
|
|
57
56
|
]
|
|
58
57
|
fastapi = [
|
|
59
|
-
"fastapi>=0.
|
|
60
|
-
"starlette>=
|
|
58
|
+
"fastapi>=0.121.0,<0.122",
|
|
59
|
+
"starlette>=0.49.1",
|
|
61
60
|
"uvicorn>=0.37.0,<0.38",
|
|
62
61
|
]
|
|
63
62
|
monitoring = [
|
|
@@ -78,6 +77,7 @@ dev = [
|
|
|
78
77
|
[tool.uv]
|
|
79
78
|
exclude-newer = "2 weeks"
|
|
80
79
|
constraint-dependencies = [
|
|
80
|
+
"starlette>=0.49.1",
|
|
81
81
|
"lxml>=6.1.0",
|
|
82
82
|
]
|
|
83
83
|
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
from collections import defaultdict
|
|
2
1
|
from typing import Any, Required, TypedDict
|
|
3
2
|
|
|
4
3
|
from unique_toolkit.agentic.tools.openai_builtin import OpenAICodeInterpreterTool
|
|
@@ -8,10 +7,8 @@ from unique_toolkit.agentic.tools.openai_builtin.code_interpreter.postprocessors
|
|
|
8
7
|
)
|
|
9
8
|
from unique_toolkit.agentic.tools.schemas import ToolCallResponse
|
|
10
9
|
from unique_toolkit.agentic.tools.tool_manager import ToolManager
|
|
11
|
-
from unique_toolkit.language_model.invocation_stats import LanguageModelInvocationStats
|
|
12
10
|
from unique_toolkit.language_model.schemas import (
|
|
13
11
|
LanguageModelStreamResponse,
|
|
14
|
-
LanguageModelTokenUsage,
|
|
15
12
|
ResponsesLanguageModelStreamResponse,
|
|
16
13
|
)
|
|
17
14
|
|
|
@@ -43,29 +40,11 @@ class AnalyticsToolName(TypedDict):
|
|
|
43
40
|
display_name: str
|
|
44
41
|
|
|
45
42
|
|
|
46
|
-
class AnalyticsConsumption(TypedDict):
|
|
47
|
-
completion_tokens: int | None
|
|
48
|
-
prompt_tokens: int | None
|
|
49
|
-
total_tokens: int | None
|
|
50
|
-
reasoning_tokens: int | None
|
|
51
|
-
cached_tokens: int | None
|
|
52
|
-
cache_write_tokens: int | None
|
|
53
|
-
cost_usd: float | None
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
class AnalyticsConsumptionByLlm(AnalyticsConsumption):
|
|
57
|
-
model_name: str
|
|
58
|
-
|
|
59
|
-
|
|
60
43
|
class Analytics(TypedDict):
|
|
61
44
|
answer_length: int
|
|
62
45
|
artifacts_created_count: int | None
|
|
63
46
|
artifacts_created_filetype: list[str] | None
|
|
64
47
|
context_memory_updated: bool | None
|
|
65
|
-
# Sum of all model usages this turn. None when no invocations reported usage.
|
|
66
|
-
consumption: AnalyticsConsumption | None
|
|
67
|
-
# Per-model usage totals, sorted by model_name.
|
|
68
|
-
consumption_by_llm: list[AnalyticsConsumptionByLlm]
|
|
69
48
|
language_model: AnalyticsLanguageModel
|
|
70
49
|
loop_iteration_count: int
|
|
71
50
|
mcp_tool_names_used: list[AnalyticsToolName]
|
|
@@ -136,7 +115,6 @@ class DebugInfoManager:
|
|
|
136
115
|
total_time_to_answer_ms: int | None = None,
|
|
137
116
|
artifacts: ArtifactsDebugInfo | None = None,
|
|
138
117
|
context_memory_updated: bool | None = None,
|
|
139
|
-
invocations: list[LanguageModelInvocationStats] | None = None,
|
|
140
118
|
) -> None:
|
|
141
119
|
"""Add a stable 'analytics' snapshot for downstream ROI/usage reporting.
|
|
142
120
|
|
|
@@ -156,7 +134,6 @@ class DebugInfoManager:
|
|
|
156
134
|
# DisplayCodeInterpreterFilesPostProcessor) into debug_info["artifacts"].
|
|
157
135
|
# Absent when no Code Interpreter ran this turn → artifact fields stay
|
|
158
136
|
# None, preserving the always-present, null-when-unknown contract.
|
|
159
|
-
consumption_by_llm = _aggregate_consumption_by_llm(invocations or [])
|
|
160
137
|
analytics = Analytics(
|
|
161
138
|
tools_used=analytics_tools,
|
|
162
139
|
tool_call_count=len(analytics_tools),
|
|
@@ -175,8 +152,6 @@ class DebugInfoManager:
|
|
|
175
152
|
loop_iteration_count=loop_iteration_count,
|
|
176
153
|
subagent_names_used=_unique_tool_names(analytics_tools, "is_sub_agent"),
|
|
177
154
|
mcp_tool_names_used=_unique_tool_names(analytics_tools, "is_mcp"),
|
|
178
|
-
consumption_by_llm=consumption_by_llm,
|
|
179
|
-
consumption=_aggregate_consumption(invocations or []),
|
|
180
155
|
total_time_to_answer_ms=total_time_to_answer_ms,
|
|
181
156
|
artifacts_created_count=artifacts["count"] if artifacts else None,
|
|
182
157
|
artifacts_created_filetype=artifacts["filetypes"] if artifacts else None,
|
|
@@ -188,71 +163,6 @@ class DebugInfoManager:
|
|
|
188
163
|
self.add("analytics", analytics)
|
|
189
164
|
|
|
190
165
|
|
|
191
|
-
def _sum_invocation_costs(
|
|
192
|
-
invocations: list[LanguageModelInvocationStats],
|
|
193
|
-
) -> float | None:
|
|
194
|
-
"""Sum costs only when every invocation has a known cost; else None."""
|
|
195
|
-
costs = [invocation.cost_usd for invocation in invocations]
|
|
196
|
-
if not costs or any(cost is None for cost in costs):
|
|
197
|
-
return None
|
|
198
|
-
return sum(cost for cost in costs if cost is not None)
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
def _to_analytics_consumption(
|
|
202
|
-
usage: LanguageModelTokenUsage,
|
|
203
|
-
cost_usd: float | None,
|
|
204
|
-
) -> AnalyticsConsumption:
|
|
205
|
-
return AnalyticsConsumption(
|
|
206
|
-
completion_tokens=usage.completion_tokens,
|
|
207
|
-
prompt_tokens=usage.prompt_tokens,
|
|
208
|
-
total_tokens=usage.total_tokens,
|
|
209
|
-
reasoning_tokens=usage.reasoning_tokens,
|
|
210
|
-
cached_tokens=usage.cached_tokens,
|
|
211
|
-
cache_write_tokens=usage.cache_write_tokens,
|
|
212
|
-
cost_usd=cost_usd,
|
|
213
|
-
)
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
def _aggregate_consumption(
|
|
217
|
-
invocations: list[LanguageModelInvocationStats],
|
|
218
|
-
) -> AnalyticsConsumption | None:
|
|
219
|
-
"""Aggregate token usage and cost across all models for this turn."""
|
|
220
|
-
usage = LanguageModelTokenUsage.sum_usages(
|
|
221
|
-
invocation.token_usage for invocation in invocations
|
|
222
|
-
)
|
|
223
|
-
if usage is None:
|
|
224
|
-
return None
|
|
225
|
-
return _to_analytics_consumption(usage, _sum_invocation_costs(invocations))
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
def _aggregate_consumption_by_llm(
|
|
229
|
-
invocations: list[LanguageModelInvocationStats],
|
|
230
|
-
) -> list[AnalyticsConsumptionByLlm]:
|
|
231
|
-
invocations_by_model: dict[str, list[LanguageModelInvocationStats]] = defaultdict(
|
|
232
|
-
list
|
|
233
|
-
)
|
|
234
|
-
for invocation in invocations:
|
|
235
|
-
invocations_by_model[str(invocation.model_name)].append(invocation)
|
|
236
|
-
|
|
237
|
-
totals: list[AnalyticsConsumptionByLlm] = []
|
|
238
|
-
for model_name in sorted(invocations_by_model):
|
|
239
|
-
model_invocations = invocations_by_model[model_name]
|
|
240
|
-
usage = LanguageModelTokenUsage.sum_usages(
|
|
241
|
-
invocation.token_usage for invocation in model_invocations
|
|
242
|
-
)
|
|
243
|
-
if usage is None:
|
|
244
|
-
continue
|
|
245
|
-
totals.append(
|
|
246
|
-
AnalyticsConsumptionByLlm(
|
|
247
|
-
model_name=model_name,
|
|
248
|
-
**_to_analytics_consumption(
|
|
249
|
-
usage, _sum_invocation_costs(model_invocations)
|
|
250
|
-
),
|
|
251
|
-
)
|
|
252
|
-
)
|
|
253
|
-
return totals
|
|
254
|
-
|
|
255
|
-
|
|
256
166
|
def _unique_tool_names(
|
|
257
167
|
analytics_tools: list[AnalyticsTool], flag: str
|
|
258
168
|
) -> list[AnalyticsToolName]:
|
|
@@ -41,17 +41,6 @@ class Postprocessor(ABC):
|
|
|
41
41
|
"""Override in subclasses whose `run()` makes its own LLM call(s)."""
|
|
42
42
|
return []
|
|
43
43
|
|
|
44
|
-
def take_pending_invocation_stats(self) -> list[LanguageModelInvocationStats]:
|
|
45
|
-
"""Pop usage incurred before this turn's `run()` was reached.
|
|
46
|
-
|
|
47
|
-
Called unconditionally at the start of every turn so usage from work
|
|
48
|
-
done ahead of postprocessing (e.g. a load-time LLM call) is still
|
|
49
|
-
reported on turns that exit before `run()` executes. Override in
|
|
50
|
-
subclasses that do such work; must clear the pending stats so `run()`
|
|
51
|
-
does not report them a second time.
|
|
52
|
-
"""
|
|
53
|
-
return []
|
|
54
|
-
|
|
55
44
|
|
|
56
45
|
class ResponsesApiPostprocessor(ABC):
|
|
57
46
|
def __init__(self, name: str):
|
|
@@ -85,13 +74,6 @@ class ResponsesApiPostprocessor(ABC):
|
|
|
85
74
|
"""
|
|
86
75
|
return []
|
|
87
76
|
|
|
88
|
-
def take_pending_invocation_stats(self) -> list[LanguageModelInvocationStats]:
|
|
89
|
-
"""Pop usage incurred before this turn's `run()` was reached.
|
|
90
|
-
|
|
91
|
-
See `Postprocessor.take_pending_invocation_stats` for why this exists.
|
|
92
|
-
"""
|
|
93
|
-
return []
|
|
94
|
-
|
|
95
77
|
|
|
96
78
|
class PostprocessorManager:
|
|
97
79
|
"""
|
|
@@ -214,19 +196,6 @@ class PostprocessorManager:
|
|
|
214
196
|
"""Per-LLM-call stats from every postprocessor that made its own LLM call(s)."""
|
|
215
197
|
return list(self._invocation_stats)
|
|
216
198
|
|
|
217
|
-
def take_pending_invocation_stats(self) -> list[LanguageModelInvocationStats]:
|
|
218
|
-
"""Pop pre-`run()` usage (e.g. load-time calls) from every postprocessor.
|
|
219
|
-
|
|
220
|
-
Call this unconditionally at the start of a turn, before it's known
|
|
221
|
-
whether `run_postprocessors` will even be reached this turn, so that
|
|
222
|
-
usage is never silently dropped on turns that exit early.
|
|
223
|
-
"""
|
|
224
|
-
return [
|
|
225
|
-
invocation
|
|
226
|
-
for postprocessor in self._get_all_postprocessors()
|
|
227
|
-
for invocation in postprocessor.take_pending_invocation_stats()
|
|
228
|
-
]
|
|
229
|
-
|
|
230
199
|
async def execute_postprocessors(
|
|
231
200
|
self,
|
|
232
201
|
loop_response: LanguageModelStreamResponse,
|
|
@@ -4,15 +4,12 @@ import json
|
|
|
4
4
|
import logging
|
|
5
5
|
import re
|
|
6
6
|
from datetime import datetime
|
|
7
|
-
from typing import
|
|
7
|
+
from typing import override
|
|
8
8
|
|
|
9
9
|
import unique_sdk
|
|
10
10
|
from pydantic import Field, TypeAdapter, create_model
|
|
11
11
|
from unique_sdk.api_resources._space import Space
|
|
12
|
-
from unique_sdk.utils.chat_in_space import
|
|
13
|
-
get_message_invocations,
|
|
14
|
-
send_message_and_wait_for_completion,
|
|
15
|
-
)
|
|
12
|
+
from unique_sdk.utils.chat_in_space import send_message_and_wait_for_completion
|
|
16
13
|
|
|
17
14
|
from unique_toolkit._common.execution import SafeTaskExecutor
|
|
18
15
|
from unique_toolkit._common.referencing import (
|
|
@@ -58,7 +55,6 @@ from unique_toolkit.language_model import (
|
|
|
58
55
|
LanguageModelService,
|
|
59
56
|
LanguageModelToolDescription,
|
|
60
57
|
)
|
|
61
|
-
from unique_toolkit.language_model.invocation_stats import LanguageModelInvocationStats
|
|
62
58
|
|
|
63
59
|
logger = logging.getLogger(__name__)
|
|
64
60
|
|
|
@@ -300,13 +296,6 @@ class SubAgentTool(Tool[SubAgentToolConfig]):
|
|
|
300
296
|
if self.config.passthrough_config.enabled:
|
|
301
297
|
await self._display_sub_agent_response(response)
|
|
302
298
|
|
|
303
|
-
sub_agent_invocations = _prefix_sub_agent_invocation_sources(
|
|
304
|
-
invocations=_parse_sub_agent_invocation_stats(
|
|
305
|
-
get_message_invocations(response)
|
|
306
|
-
),
|
|
307
|
-
tool_name=self.name,
|
|
308
|
-
tool_call_id=tool_call.id,
|
|
309
|
-
)
|
|
310
299
|
return ToolCallResponse(
|
|
311
300
|
id=tool_call.id,
|
|
312
301
|
name=tool_call.name,
|
|
@@ -318,12 +307,9 @@ class SubAgentTool(Tool[SubAgentToolConfig]):
|
|
|
318
307
|
content_chunks=content_chunks,
|
|
319
308
|
debug_info={
|
|
320
309
|
"chat_id": response["chatId"],
|
|
321
|
-
"user_message_id": response.get("triggeringUserMessageId"),
|
|
322
|
-
"assistant_message_id": response.get("id"),
|
|
323
310
|
"assistant_id": self.config.assistant_id,
|
|
324
311
|
"display_name": self._display_name,
|
|
325
312
|
},
|
|
326
|
-
invocation_stats=sub_agent_invocations,
|
|
327
313
|
)
|
|
328
314
|
except TimeoutError as e:
|
|
329
315
|
raise e
|
|
@@ -509,7 +495,6 @@ class SubAgentTool(Tool[SubAgentToolConfig]):
|
|
|
509
495
|
parentAssistantId=self.config.assistant_id,
|
|
510
496
|
),
|
|
511
497
|
on_message_update=on_message_update,
|
|
512
|
-
wait_for_invocations=True,
|
|
513
498
|
)
|
|
514
499
|
except TimeoutError as e:
|
|
515
500
|
await self._notify_progress(
|
|
@@ -528,42 +513,6 @@ class SubAgentTool(Tool[SubAgentToolConfig]):
|
|
|
528
513
|
) from e
|
|
529
514
|
|
|
530
515
|
|
|
531
|
-
def _parse_sub_agent_invocation_stats(
|
|
532
|
-
raw_invocations: list[dict[str, Any]],
|
|
533
|
-
) -> list[LanguageModelInvocationStats]:
|
|
534
|
-
"""Deserialize sub-agent invocation stats, ignoring malformed entries.
|
|
535
|
-
|
|
536
|
-
A single unparseable entry (e.g. a stale model name) must not fail the
|
|
537
|
-
whole tool call and drop an otherwise-successful sub-agent reply -- see
|
|
538
|
-
`_load_invocation_stats_from_debug_info` in unique_orchestrator, which
|
|
539
|
-
applies the same per-entry tolerance for the same reason.
|
|
540
|
-
"""
|
|
541
|
-
invocations: list[LanguageModelInvocationStats] = []
|
|
542
|
-
for raw_invocation in raw_invocations:
|
|
543
|
-
try:
|
|
544
|
-
invocations.append(
|
|
545
|
-
LanguageModelInvocationStats.model_validate(raw_invocation)
|
|
546
|
-
)
|
|
547
|
-
except Exception:
|
|
548
|
-
logger.warning(
|
|
549
|
-
"Ignoring malformed sub-agent LLM invocation stats",
|
|
550
|
-
exc_info=True,
|
|
551
|
-
)
|
|
552
|
-
return invocations
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
def _prefix_sub_agent_invocation_sources(
|
|
556
|
-
invocations: list[LanguageModelInvocationStats],
|
|
557
|
-
tool_name: str,
|
|
558
|
-
tool_call_id: str,
|
|
559
|
-
) -> list[LanguageModelInvocationStats]:
|
|
560
|
-
prefix = f"subagent.{tool_name}.{tool_call_id}"
|
|
561
|
-
return [
|
|
562
|
-
invocation.model_copy(update={"source": f"{prefix}.{invocation.source}"})
|
|
563
|
-
for invocation in invocations
|
|
564
|
-
]
|
|
565
|
-
|
|
566
|
-
|
|
567
516
|
def _format_response(tool_name: str, text: str, system_reminders: list[str]) -> str:
|
|
568
517
|
if len(system_reminders) == 0:
|
|
569
518
|
return text
|
|
@@ -17,7 +17,6 @@ from unique_toolkit.agentic.tools.a2a.tool.config import (
|
|
|
17
17
|
from unique_toolkit.agentic.tools.a2a.tool.service import (
|
|
18
18
|
_format_response,
|
|
19
19
|
_get_sub_agent_system_reminders,
|
|
20
|
-
_parse_sub_agent_invocation_stats,
|
|
21
20
|
_prepare_sub_agent_response_refs,
|
|
22
21
|
_remove_extra_refs,
|
|
23
22
|
_response_has_refs,
|
|
@@ -60,78 +59,6 @@ def refs_list() -> list[dict[str, Any]]:
|
|
|
60
59
|
]
|
|
61
60
|
|
|
62
61
|
|
|
63
|
-
# Tests for _parse_sub_agent_invocation_stats
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
@pytest.mark.ai
|
|
67
|
-
def test_parse_sub_agent_invocation_stats__skips_malformed_entry__keeps_valid_ones() -> (
|
|
68
|
-
None
|
|
69
|
-
):
|
|
70
|
-
"""
|
|
71
|
-
Purpose: Verify one malformed invocation entry doesn't discard the rest.
|
|
72
|
-
Why this matters: A single bad entry must not fail the whole sub-agent tool
|
|
73
|
-
call and drop an otherwise-successful reply.
|
|
74
|
-
Setup summary: Mix a valid entry with a malformed one (missing required
|
|
75
|
-
fields), verify only the valid entry survives.
|
|
76
|
-
"""
|
|
77
|
-
# Arrange
|
|
78
|
-
raw_invocations = [
|
|
79
|
-
{
|
|
80
|
-
"modelName": "gpt-4",
|
|
81
|
-
"tokenUsage": {"totalTokens": 10},
|
|
82
|
-
"source": "main_loop",
|
|
83
|
-
},
|
|
84
|
-
{"modelName": "gpt-4"}, # missing required tokenUsage/source
|
|
85
|
-
]
|
|
86
|
-
|
|
87
|
-
# Act
|
|
88
|
-
result = _parse_sub_agent_invocation_stats(raw_invocations)
|
|
89
|
-
|
|
90
|
-
# Assert
|
|
91
|
-
assert len(result) == 1
|
|
92
|
-
assert result[0].source == "main_loop"
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
@pytest.mark.ai
|
|
96
|
-
def test_parse_sub_agent_invocation_stats__returns_empty__when_all_malformed() -> None:
|
|
97
|
-
"""
|
|
98
|
-
Purpose: Verify an all-malformed list returns empty instead of raising.
|
|
99
|
-
Why this matters: The sub-agent tool call must still succeed and return the
|
|
100
|
-
answer even if every persisted stats entry is unparseable.
|
|
101
|
-
Setup summary: Only malformed entries, assert empty list with no exception.
|
|
102
|
-
"""
|
|
103
|
-
# Arrange
|
|
104
|
-
raw_invocations = [{"modelName": "gpt-4"}, {"source": "main_loop"}]
|
|
105
|
-
|
|
106
|
-
# Act
|
|
107
|
-
result = _parse_sub_agent_invocation_stats(raw_invocations)
|
|
108
|
-
|
|
109
|
-
# Assert
|
|
110
|
-
assert result == []
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
@pytest.mark.ai
|
|
114
|
-
def test_parse_sub_agent_invocation_stats__parses_all__when_all_valid() -> None:
|
|
115
|
-
"""
|
|
116
|
-
Purpose: Verify parsing is unaffected by the malformed-entry tolerance
|
|
117
|
-
when every entry is well-formed.
|
|
118
|
-
Why this matters: The fix must not silently drop good data too.
|
|
119
|
-
Setup summary: Two valid entries, assert both are returned.
|
|
120
|
-
"""
|
|
121
|
-
# Arrange
|
|
122
|
-
raw_invocations = [
|
|
123
|
-
{"modelName": "gpt-4", "tokenUsage": {"totalTokens": 3}, "source": "a"},
|
|
124
|
-
{"modelName": "gpt-4", "tokenUsage": {"totalTokens": 5}, "source": "b"},
|
|
125
|
-
]
|
|
126
|
-
|
|
127
|
-
# Act
|
|
128
|
-
result = _parse_sub_agent_invocation_stats(raw_invocations)
|
|
129
|
-
|
|
130
|
-
# Assert
|
|
131
|
-
assert len(result) == 2
|
|
132
|
-
assert [inv.source for inv in result] == ["a", "b"]
|
|
133
|
-
|
|
134
|
-
|
|
135
62
|
# Tests for _format_response
|
|
136
63
|
|
|
137
64
|
|
{unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/agentic_table/service.py
RENAMED
|
@@ -648,33 +648,6 @@ class AgenticTableService:
|
|
|
648
648
|
result.get("message") or "Failed to trigger artifact generation"
|
|
649
649
|
)
|
|
650
650
|
|
|
651
|
-
async def rerun_row(self, row_order: int) -> None:
|
|
652
|
-
"""Re-run the agent for a single row (`POST .../row/{rowOrder}/rerun`).
|
|
653
|
-
|
|
654
|
-
The only way to re-answer part of a sheet: ``import_questions_and_sources``
|
|
655
|
-
is delta-based and will not re-answer a row that already exists.
|
|
656
|
-
|
|
657
|
-
Asynchronous, like the whole-sheet run: this triggers it and returns.
|
|
658
|
-
Follow with ``wait_for_run`` to block until the sheet leaves PROCESSING.
|
|
659
|
-
|
|
660
|
-
Args:
|
|
661
|
-
row_order: Row position in the sheet's own numbering, where row 0 is
|
|
662
|
-
the header — so answerable rows start at 1, and row 0 is
|
|
663
|
-
rejected. Same numbering as ``get_cell``.
|
|
664
|
-
|
|
665
|
-
Raises:
|
|
666
|
-
Exception: If the API reports a non-success status, which includes a
|
|
667
|
-
locked or final row and a sheet that is already PROCESSING.
|
|
668
|
-
"""
|
|
669
|
-
result = await AgenticTable.rerun_row(
|
|
670
|
-
user_id=self._user_id,
|
|
671
|
-
company_id=self._company_id,
|
|
672
|
-
tableId=self.table_id,
|
|
673
|
-
rowOrder=row_order,
|
|
674
|
-
)
|
|
675
|
-
if not result.get("status"):
|
|
676
|
-
raise Exception(result.get("message") or "Failed to trigger row rerun")
|
|
677
|
-
|
|
678
651
|
async def list_artifacts(self) -> list[MagicTableArtifact]:
|
|
679
652
|
"""List export artifacts of the sheet (`GET .../artifacts`)."""
|
|
680
653
|
artifacts = await AgenticTable.list_artifacts(
|
|
@@ -216,21 +216,9 @@ class MessageLogUncitedReferences(BaseModel):
|
|
|
216
216
|
|
|
217
217
|
class MessageLogEvent(BaseModel):
|
|
218
218
|
model_config = model_config
|
|
219
|
-
type: Literal[
|
|
220
|
-
"WebSearch",
|
|
221
|
-
"InternalSearch",
|
|
222
|
-
"Elicitation",
|
|
223
|
-
"Thinking",
|
|
224
|
-
"ToolCall",
|
|
225
|
-
"Todo",
|
|
226
|
-
"UserMemory",
|
|
227
|
-
]
|
|
219
|
+
type: Literal["WebSearch", "InternalSearch", "Elicitation", "Thinking", "ToolCall"]
|
|
228
220
|
text: str
|
|
229
221
|
step_type: str | None = None
|
|
230
|
-
status: Literal["todo", "done"] | None = Field(
|
|
231
|
-
default=None,
|
|
232
|
-
description="Checklist item state for 'Todo' events; unused for other event types",
|
|
233
|
-
)
|
|
234
222
|
|
|
235
223
|
|
|
236
224
|
class MessageLogDetails(BaseModel):
|
|
@@ -107,8 +107,9 @@ async def translate_scope_id_async(
|
|
|
107
107
|
) -> str | None:
|
|
108
108
|
"""Resolve a single ``scope_id`` to a folder name.
|
|
109
109
|
|
|
110
|
-
Returns ``None`` if the folder lookup fails
|
|
111
|
-
|
|
110
|
+
Returns ``None`` (and logs a warning) if the folder lookup fails, so callers
|
|
111
|
+
can batch-resolve ids without a single missing folder aborting the whole
|
|
112
|
+
operation.
|
|
112
113
|
"""
|
|
113
114
|
try:
|
|
114
115
|
folder_info = await get_folder_info_async(
|
|
@@ -118,7 +119,7 @@ async def translate_scope_id_async(
|
|
|
118
119
|
)
|
|
119
120
|
return folder_info.name
|
|
120
121
|
except Exception as e:
|
|
121
|
-
_LOGGER.
|
|
122
|
+
_LOGGER.warning(f"Could not resolve folder for scope_id {scope_id}", exc_info=e)
|
|
122
123
|
return None
|
|
123
124
|
|
|
124
125
|
|
{unique_toolkit-2026.32.0 → unique_toolkit-2026.32.0.dev0}/unique_toolkit/language_model/infos.py
RENAMED
|
@@ -93,7 +93,6 @@ class LanguageModelName(StrEnum):
|
|
|
93
93
|
ANTHROPIC_CLAUDE_OPUS_4_6 = "litellm:anthropic-claude-opus-4-6"
|
|
94
94
|
ANTHROPIC_CLAUDE_OPUS_4_7 = "litellm:anthropic-claude-opus-4-7"
|
|
95
95
|
ANTHROPIC_CLAUDE_OPUS_4_8 = "litellm:anthropic-claude-opus-4-8"
|
|
96
|
-
ANTHROPIC_CLAUDE_OPUS_5 = "litellm:anthropic-claude-opus-5"
|
|
97
96
|
ANTHROPIC_CLAUDE_FABLE_5 = "litellm:anthropic-claude-fable-5"
|
|
98
97
|
GEMINI_2_0_FLASH = "litellm:gemini-2-0-flash"
|
|
99
98
|
GEMINI_2_5_FLASH = "litellm:gemini-2-5-flash"
|
|
@@ -138,7 +137,6 @@ class LanguageModelName(StrEnum):
|
|
|
138
137
|
LITELLM_GLM_5_1 = "litellm:glm-5.1"
|
|
139
138
|
LITELLM_GLM_5_2 = "litellm:glm-5.2"
|
|
140
139
|
LITELLM_KIMI_K2_6 = "litellm:kimi-k2.6"
|
|
141
|
-
LITELLM_KIMI_K3 = "litellm:kimi-k3"
|
|
142
140
|
LITELLM_QWEN_3 = "litellm:qwen-3-235B-A22B"
|
|
143
141
|
LITELLM_QWEN_3_THINKING = "litellm:qwen-3-235B-A22B-thinking"
|
|
144
142
|
VERTEX_CLAUDE_SONNET_4_6 = "litellm:vertex-claude-sonnet-4-6"
|
|
@@ -146,7 +144,6 @@ class LanguageModelName(StrEnum):
|
|
|
146
144
|
VERTEX_CLAUDE_OPUS_4_6 = "litellm:vertex-claude-opus-4-6"
|
|
147
145
|
VERTEX_CLAUDE_OPUS_4_7 = "litellm:vertex-claude-opus-4-7"
|
|
148
146
|
VERTEX_CLAUDE_OPUS_4_8 = "litellm:vertex-claude-opus-4-8"
|
|
149
|
-
VERTEX_CLAUDE_OPUS_5 = "litellm:vertex-claude-opus-5"
|
|
150
147
|
VERTEX_CLAUDE_FABLE_5 = "litellm:vertex-claude-fable-5"
|
|
151
148
|
|
|
152
149
|
|
|
@@ -1815,30 +1812,6 @@ class LanguageModelInfo(BaseModel):
|
|
|
1815
1812
|
published_at=date(2026, 5, 28),
|
|
1816
1813
|
supported_reasoning_efforts=[],
|
|
1817
1814
|
)
|
|
1818
|
-
case (
|
|
1819
|
-
LanguageModelName.ANTHROPIC_CLAUDE_OPUS_5
|
|
1820
|
-
| LanguageModelName.VERTEX_CLAUDE_OPUS_5
|
|
1821
|
-
):
|
|
1822
|
-
return cls(
|
|
1823
|
-
name=model_name,
|
|
1824
|
-
capabilities=[
|
|
1825
|
-
ModelCapabilities.FUNCTION_CALLING,
|
|
1826
|
-
ModelCapabilities.STREAMING,
|
|
1827
|
-
ModelCapabilities.VISION,
|
|
1828
|
-
ModelCapabilities.REASONING,
|
|
1829
|
-
],
|
|
1830
|
-
provider=LanguageModelProvider.LITELLM,
|
|
1831
|
-
family=ModelFamily.ANTHROPIC,
|
|
1832
|
-
version="claude-opus-5",
|
|
1833
|
-
encoder_name=EncoderName.O200K_BASE, # TODO: Update encoder with litellm
|
|
1834
|
-
token_limits=LanguageModelTokenLimits(
|
|
1835
|
-
token_limit_input=1_000_000,
|
|
1836
|
-
token_limit_output=128_000,
|
|
1837
|
-
),
|
|
1838
|
-
info_cutoff_at=date(2026, 5, 1),
|
|
1839
|
-
published_at=date(2026, 7, 24),
|
|
1840
|
-
supported_reasoning_efforts=[],
|
|
1841
|
-
)
|
|
1842
1815
|
case (
|
|
1843
1816
|
LanguageModelName.ANTHROPIC_CLAUDE_FABLE_5
|
|
1844
1817
|
| LanguageModelName.VERTEX_CLAUDE_FABLE_5
|
|
@@ -2881,27 +2854,6 @@ class LanguageModelInfo(BaseModel):
|
|
|
2881
2854
|
published_at=date(2026, 1, 1),
|
|
2882
2855
|
supported_reasoning_efforts=[],
|
|
2883
2856
|
)
|
|
2884
|
-
case LanguageModelName.LITELLM_KIMI_K3:
|
|
2885
|
-
return cls(
|
|
2886
|
-
name=model_name,
|
|
2887
|
-
provider=LanguageModelProvider.LITELLM,
|
|
2888
|
-
family=ModelFamily.KIMI,
|
|
2889
|
-
version="kimi-k3",
|
|
2890
|
-
encoder_name=EncoderName.O200K_BASE,
|
|
2891
|
-
capabilities=[
|
|
2892
|
-
ModelCapabilities.FUNCTION_CALLING,
|
|
2893
|
-
ModelCapabilities.STRUCTURED_OUTPUT,
|
|
2894
|
-
ModelCapabilities.REASONING,
|
|
2895
|
-
ModelCapabilities.STREAMING,
|
|
2896
|
-
ModelCapabilities.VISION,
|
|
2897
|
-
],
|
|
2898
|
-
token_limits=LanguageModelTokenLimits(
|
|
2899
|
-
token_limit_input=1_000_000,
|
|
2900
|
-
token_limit_output=128_000,
|
|
2901
|
-
),
|
|
2902
|
-
published_at=date(2026, 7, 27),
|
|
2903
|
-
supported_reasoning_efforts=[],
|
|
2904
|
-
)
|
|
2905
2857
|
case LanguageModelName.LITELLM_QWEN_3:
|
|
2906
2858
|
return cls(
|
|
2907
2859
|
name=model_name,
|
|
@@ -11,7 +11,6 @@ from humps import camelize
|
|
|
11
11
|
from pydantic import BaseModel, BeforeValidator, ConfigDict
|
|
12
12
|
|
|
13
13
|
from unique_toolkit.language_model.infos import LanguageModelName
|
|
14
|
-
from unique_toolkit.language_model.model_costs import calculate_invocation_cost_usd
|
|
15
14
|
from unique_toolkit.language_model.schemas import LanguageModelTokenUsage
|
|
16
15
|
|
|
17
16
|
# `protected_namespaces=()` allows the `model_name` field name.
|
|
@@ -60,7 +59,6 @@ class LanguageModelInvocationStats(BaseModel):
|
|
|
60
59
|
model_name: ModelName
|
|
61
60
|
token_usage: LanguageModelTokenUsage
|
|
62
61
|
source: Source # e.g. "main_loop", tool/evaluation/postprocessor name
|
|
63
|
-
cost_usd: float | None = None
|
|
64
62
|
|
|
65
63
|
@classmethod
|
|
66
64
|
def from_usage(
|
|
@@ -69,9 +67,4 @@ class LanguageModelInvocationStats(BaseModel):
|
|
|
69
67
|
token_usage: LanguageModelTokenUsage,
|
|
70
68
|
source: str,
|
|
71
69
|
) -> Self:
|
|
72
|
-
return cls(
|
|
73
|
-
model_name=model_name,
|
|
74
|
-
token_usage=token_usage,
|
|
75
|
-
source=source,
|
|
76
|
-
cost_usd=calculate_invocation_cost_usd(str(model_name), token_usage),
|
|
77
|
-
)
|
|
70
|
+
return cls(model_name=model_name, token_usage=token_usage, source=source)
|