unique_toolkit 2026.42.0.dev10__tar.gz → 2026.42.0.dev12__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.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/PKG-INFO +2 -2
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/pyproject.toml +2 -2
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/history_manager/history_construction_with_contents.py +45 -20
- unique_toolkit-2026.42.0.dev12/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/builder/_container.py +121 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/builder/_files.py +29 -2
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/content/schemas.py +29 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/content/service.py +8 -0
- unique_toolkit-2026.42.0.dev10/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/builder/_container.py +0 -50
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/README.md +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/__init__.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/_common/__init__.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/_common/_base_service.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/_common/_time_utils.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/_common/api_calling/human_verification_manager.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/_common/base_model_type_attribute.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/_common/chunk_relevancy_sorter/config.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/_common/chunk_relevancy_sorter/exception.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/_common/chunk_relevancy_sorter/schemas.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/_common/chunk_relevancy_sorter/service.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/_common/chunk_relevancy_sorter/tests/test_service.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/_common/config_checker/README.md +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/_common/config_checker/__init__.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/_common/config_checker/__main__.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/_common/config_checker/cli.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/_common/config_checker/differ.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/_common/config_checker/exporter.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/_common/config_checker/models.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/_common/config_checker/registry.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/_common/config_checker/validator.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/_common/default_language_model.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/_common/docx_generator/__init__.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/_common/docx_generator/config.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/_common/docx_generator/pandoc_converter.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/_common/docx_generator/schemas.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/_common/docx_generator/service.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/_common/docx_generator/template/Doc Template.docx +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/_common/endpoint_builder.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/_common/endpoint_requestor.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/_common/event_bus.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/_common/exception.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/_common/execution.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/_common/experimental/endpoint_builder.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/_common/experimental/endpoint_requestor.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/_common/experimental/write_up_agent/README.md +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/_common/experimental/write_up_agent/__init__.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/_common/experimental/write_up_agent/agent.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/_common/experimental/write_up_agent/config.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/_common/experimental/write_up_agent/examples/data.csv +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/_common/experimental/write_up_agent/examples/example_usage.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/_common/experimental/write_up_agent/schemas.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/_common/experimental/write_up_agent/services/__init__.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/__init__.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/exceptions.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/service.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/utils.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/__init__.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/config.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/exceptions.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/prompts/config.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/prompts/system_prompt.j2 +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/prompts/user_prompt.j2 +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/service.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/__init__.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/default_template.j2 +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/exceptions.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/service.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/utils.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/_common/experimental/write_up_agent/utils.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/_common/feature_flags/schema.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/_common/metadata_filter_scope.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/_common/pydantic/rjsf_tags.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/_common/pydantic_helpers.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/_common/referencing.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/_common/string_utilities.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/_common/tests/test_referencing.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/_common/tests/test_string_utilities.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/_common/token/__init__.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/_common/token/image_token_counting.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/_common/token/token_counting.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/_common/token/tokenizers/deepseek/tokenizer.json +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/_common/token/tokenizers/qwen/tokenizer.json +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/_common/utils/__init__.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/_common/utils/files.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/_common/utils/image/encode.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/_common/utils/jinja/helpers.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/_common/utils/jinja/render.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/_common/utils/jinja/schema.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/_common/utils/jinja/utils.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/_common/utils/structured_output/__init__.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/_common/utils/structured_output/schema.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/_common/utils/write_configuration.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/_common/validate_required_values.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/_common/validators.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/__init__.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/debug_info_manager/debug_info_manager.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/debug_info_manager/test/test_debug_info_manager.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/evaluation/config.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/evaluation/context_relevancy/prompts/__init__.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/evaluation/context_relevancy/prompts/system_prompt.j2 +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/evaluation/context_relevancy/prompts/user_prompt.j2 +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/evaluation/context_relevancy/schema.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/evaluation/context_relevancy/service.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/evaluation/evaluation_manager.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/evaluation/exception.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/evaluation/hallucination/constants.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/evaluation/hallucination/hallucination_evaluation.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/evaluation/hallucination/prompts/__init__.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/evaluation/hallucination/prompts/system_prompt.j2 +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/evaluation/hallucination/prompts/user_prompt.j2 +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/evaluation/hallucination/service.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/evaluation/hallucination/utils.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/evaluation/output_parser.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/evaluation/schemas.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/evaluation/tests/fixtures.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/evaluation/tests/test_config.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/evaluation/tests/test_context_relevancy_service.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/evaluation/tests/test_hallucination_constants.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/evaluation/tests/test_hallucination_external_context.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/evaluation/tests/test_hallucination_utils.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/evaluation/tests/test_output_parser.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/evaluation/tests/test_prompt_loaders.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/evaluation/utils.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/feature_flags/__init__.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/feature_flags/feature_flags.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/history_manager/history_manager.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/history_manager/loop_token_reducer.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/history_manager/settings.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/history_manager/utils.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/loop_runner/__init__.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/loop_runner/_iteration_handler_utils.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/loop_runner/_responses_iteration_handler_utils.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/loop_runner/_responses_stream_handler_utils.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/loop_runner/_stream_handler_utils.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/loop_runner/base.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/loop_runner/middleware/__init__.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/loop_runner/middleware/planning/__init__.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/loop_runner/middleware/planning/planning.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/loop_runner/middleware/planning/schema.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/loop_runner/runners/__init__.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/loop_runner/runners/basic.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/loop_runner/runners/mistral/__init__.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/loop_runner/runners/mistral/mistral_runner.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/loop_runner/runners/prompt_forced_tool/__init__.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/loop_runner/runners/prompt_forced_tool/helpers.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/loop_runner/runners/prompt_forced_tool/runner.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/loop_runner/runners/qwen/__init__.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/loop_runner/runners/qwen/helpers.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/loop_runner/runners/qwen/qwen_runner.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/message_log_manager/__init__.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/message_log_manager/service.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/message_log_order.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/postprocessor/postprocessor_manager.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/reference_manager/reference_manager.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/reference_manager/tests/test_external_context.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/responses_api/__init__.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/responses_api/postprocessors/code_display.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/responses_api/postprocessors/generated_files.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/responses_api/stream_handler.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/short_term_memory_manager/persistent_short_term_memory_manager.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/thinking_manager/thinking_manager.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/tools/__init__.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/tools/a2a/__init__.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/tools/a2a/config.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/tools/a2a/evaluation/__init__.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/tools/a2a/evaluation/_utils.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/tools/a2a/evaluation/config.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/tools/a2a/evaluation/evaluator.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/tools/a2a/evaluation/summarization_user_message.j2 +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/tools/a2a/manager.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/tools/a2a/postprocessing/__init__.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/tools/a2a/postprocessing/_display_utils.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/tools/a2a/postprocessing/_ref_utils.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/tools/a2a/postprocessing/config.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/tools/a2a/postprocessing/display.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/tools/a2a/postprocessing/references.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_display.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_display_utils.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_ref_utils.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_references.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/tools/a2a/prompts.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/tools/a2a/response_watcher/__init__.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/tools/a2a/response_watcher/service.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/tools/a2a/tool/__init__.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/tools/a2a/tool/_memory.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/tools/a2a/tool/_schema.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/tools/a2a/tool/config.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/tools/a2a/tool/service.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/tools/a2a/tool/test/test_service_utils.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/tools/agent_chunks_hanlder.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/tools/config.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/tools/experimental/__init__.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/tools/experimental/ask_user_tool/__init__.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/tools/experimental/ask_user_tool/config.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/tools/experimental/ask_user_tool/tool.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/tools/experimental/open_file_tool/__init__.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/tools/experimental/open_file_tool/config.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/tools/experimental/open_file_tool/runtime.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/tools/experimental/open_file_tool/tool.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/tools/experimental/retrieve_search_scope_tool/__init__.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/tools/experimental/retrieve_search_scope_tool/config.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/tools/experimental/retrieve_search_scope_tool/tool.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/tools/experimental/todo/__init__.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/tools/experimental/todo/config.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/tools/experimental/todo/prompts/__init__.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/tools/experimental/todo/prompts/execution_reminder.j2 +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/tools/experimental/todo/prompts/system_prompt.j2 +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/tools/experimental/todo/prompts/tool_description.j2 +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/tools/experimental/todo/prompts/verification_nudge.j2 +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/tools/experimental/todo/schemas.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/tools/experimental/todo/service.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/tools/factory.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/tools/mcp/__init__.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/tools/mcp/manager.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/tools/mcp/models.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/tools/mcp/tool_wrapper.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/tools/names.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/tools/openai_builtin/__init__.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/tools/openai_builtin/base.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/__init__.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/activator/__init__.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/activator/config.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/activator/service.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/builder/__init__.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/builder/_memory.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/builder/builder.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/config.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/postprocessors/__init__.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/postprocessors/artifacts.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/postprocessors/code_display.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/postprocessors/generated_files.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/postprocessors/office_preview.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/schemas.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/tool/__init__.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/tool/config.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/tool/service.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/tools/openai_builtin/manager.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/tools/run_context.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/tools/schemas.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/tools/test/test_mcp_manager.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/tools/test/test_tool_progress_reporter.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/tools/tool.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/tools/tool_manager.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/tools/tool_progress_reporter.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/tools/utils/__init__.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/tools/utils/source_handling/__init__.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/tools/utils/source_handling/schema.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/tools/utils/source_handling/source_formatting.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic/tools/utils/source_handling/tests/test_source_formatting.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic_table/__init__.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic_table/schemas.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic_table/service.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/agentic_table/synthetic_chat_event.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/app/__init__.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/app/chat_event_filter_options_settings.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/app/dev_util.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/app/fast_api_factory.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/app/feature_flags.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/app/find_env_file.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/app/init_logging.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/app/init_sdk.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/app/performance/async_tasks.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/app/performance/async_wrapper.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/app/schemas.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/app/unique_settings.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/app/verification.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/app/webhook.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/chat/__init__.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/chat/cancellation.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/chat/constants.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/chat/deprecated/__init__.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/chat/deprecated/service.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/chat/functions.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/chat/rendering.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/chat/responses_api.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/chat/schemas.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/chat/service.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/chat/state.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/chat/utils.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/content/__init__.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/content/constants.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/content/functions.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/content/smart_rules.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/content/utils.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/data_extraction/README.md +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/data_extraction/__init__.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/data_extraction/augmented/__init__.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/data_extraction/augmented/service.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/data_extraction/base.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/data_extraction/basic/__init__.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/data_extraction/basic/config.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/data_extraction/basic/prompt.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/data_extraction/basic/service.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/elicitation/__init__.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/elicitation/constants.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/elicitation/exceptions.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/elicitation/functions.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/elicitation/schemas.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/elicitation/service.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/embedding/__init__.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/embedding/constants.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/embedding/functions.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/embedding/schemas.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/embedding/service.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/embedding/utils.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/experimental/README.md +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/experimental/__init__.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/experimental/_internal/__init__.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/experimental/_internal/streaming/__init__.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/experimental/_internal/streaming/common.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/experimental/_internal/streaming/pattern_replacer.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/experimental/components/__init__.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/experimental/components/_base.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/experimental/components/content_tree/__init__.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/experimental/components/content_tree/functions.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/experimental/components/content_tree/schemas.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/experimental/components/content_tree/service.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/experimental/components/internal_search/__init__.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/experimental/components/internal_search/base/__init__.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/experimental/components/internal_search/base/config.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/experimental/components/internal_search/base/schemas.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/experimental/components/internal_search/base/service.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/experimental/components/internal_search/base/utils.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/experimental/components/internal_search/chat/__init__.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/experimental/components/internal_search/chat/config.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/experimental/components/internal_search/chat/schemas.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/experimental/components/internal_search/chat/service.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/experimental/components/internal_search/knowledge_base/__init__.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/experimental/components/internal_search/knowledge_base/config.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/experimental/components/internal_search/knowledge_base/schemas.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/experimental/components/internal_search/knowledge_base/service.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/experimental/components/internal_search/post_processing/__init__.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/experimental/components/internal_search/post_processing/config.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/experimental/components/internal_search/post_processing/service.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/experimental/content_tree/__init__.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/experimental/identity/__init__.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/experimental/integrations/__init__.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/experimental/integrations/openai/__init__.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/experimental/integrations/openai/streaming/__init__.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/__init__.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/_async_bridge.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/_model_params.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/chat_completions/__init__.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/chat_completions/complete_with_references.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/chat_completions/stream_event_router.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/chat_completions/text_event_handler.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/chat_completions/tool_call_event_handler.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/events.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/protocols/__init__.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/protocols/chat_completions.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/protocols/responses.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/responses/__init__.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/responses/code_interpreter_event_handler.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/responses/complete_with_references.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/responses/completed_event_handler.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/responses/stream_event_router.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/responses/text_delta_event_handler.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/responses/tool_call_event_handler.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/subscribers/__init__.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/subscribers/message_persister.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/experimental/integrations/openai/streaming/event_routing/subscribers/progress_log_persister.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/experimental/resources/__init__.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/experimental/resources/content_folder/__init__.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/experimental/resources/content_folder/functions.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/experimental/resources/content_folder/schemas.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/experimental/resources/content_folder/service.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/experimental/resources/facades/__init__.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/experimental/resources/facades/identity/__init__.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/experimental/resources/facades/identity/service.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/experimental/resources/feature_flags/README.md +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/experimental/resources/feature_flags/__init__.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/experimental/resources/feature_flags/_graphql_client.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/experimental/resources/feature_flags/_ttl_cache.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/experimental/resources/feature_flags/client.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/experimental/resources/feature_flags/schemas.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/experimental/resources/feature_flags/settings.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/experimental/resources/group/__init__.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/experimental/resources/group/functions.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/experimental/resources/group/schemas.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/experimental/resources/group/service.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/experimental/resources/scheduled_task/__init__.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/experimental/resources/scheduled_task/cron.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/experimental/resources/scheduled_task/functions.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/experimental/resources/scheduled_task/schemas.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/experimental/resources/scheduled_task/service.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/experimental/resources/user/__init__.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/experimental/resources/user/functions.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/experimental/resources/user/schemas.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/experimental/resources/user/service.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/experimental/testing/__init__.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/framework_utilities/__init__.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/framework_utilities/langchain/__init__.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/framework_utilities/langchain/client.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/framework_utilities/langchain/history.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/framework_utilities/openai/__init__.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/framework_utilities/openai/client.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/framework_utilities/openai/message_builder.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/framework_utilities/utils.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/language_model/__init__.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/language_model/_responses_api_utils.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/language_model/builder.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/language_model/constants.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/language_model/default_language_model.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/language_model/functions.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/language_model/infos.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/language_model/invocation_stats.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/language_model/model_costs.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/language_model/prompt.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/language_model/reference.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/language_model/schemas.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/language_model/service.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/language_model/settings.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/language_model/stream_transform.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/language_model/utils.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/monitoring/__init__.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/monitoring/gunicorn.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/monitoring/memory.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/monitoring/middleware.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/monitoring/registry.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/monitoring/tracing.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/protocols/support.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/services/__init__.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/services/chat_service.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/services/factory.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/services/knowledge_base.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/short_term_memory/__init__.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/short_term_memory/constants.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/short_term_memory/functions.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/short_term_memory/schemas.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/short_term_memory/service.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/smart_rules/__init__.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/smart_rules/compile.py +0 -0
- {unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/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.42.0.
|
|
3
|
+
Version: 2026.42.0.dev12
|
|
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.42.0.
|
|
19
|
+
Requires-Dist: unique-sdk>=2026.42.0.dev4,<2026.42.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.42.0.
|
|
3
|
+
version = "2026.42.0.dev12"
|
|
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.42.0.
|
|
31
|
+
"unique-sdk>=2026.42.0.dev4,<2026.42.0rc0",
|
|
32
32
|
"jambo>=0.1.2,<0.2",
|
|
33
33
|
"jinja2>=3.1.6,<4",
|
|
34
34
|
"docxtpl>=0.20.1,<0.21",
|
|
@@ -3,6 +3,7 @@ from __future__ import annotations
|
|
|
3
3
|
import base64
|
|
4
4
|
import logging
|
|
5
5
|
import mimetypes
|
|
6
|
+
from dataclasses import dataclass
|
|
6
7
|
from datetime import datetime
|
|
7
8
|
from enum import StrEnum
|
|
8
9
|
from itertools import groupby
|
|
@@ -104,12 +105,15 @@ def get_chat_history_with_contents(
|
|
|
104
105
|
else:
|
|
105
106
|
chat_history.append(last_user_message)
|
|
106
107
|
|
|
108
|
+
# Failed uploads are included on purpose so the model is told about every
|
|
109
|
+
# file the user attached, including those that could not be ingested.
|
|
107
110
|
chat_contents = content_service.search_contents(
|
|
108
111
|
where={
|
|
109
112
|
"ownerId": {
|
|
110
113
|
"equals": chat_id,
|
|
111
114
|
},
|
|
112
115
|
},
|
|
116
|
+
include_failed_content=True,
|
|
113
117
|
)
|
|
114
118
|
|
|
115
119
|
return ChatHistoryWithContent.from_chat_history_and_contents(
|
|
@@ -139,12 +143,15 @@ async def get_chat_history_with_contents_async(
|
|
|
139
143
|
else:
|
|
140
144
|
chat_history.append(last_user_message)
|
|
141
145
|
|
|
146
|
+
# Failed uploads are included on purpose so the model is told about every
|
|
147
|
+
# file the user attached, including those that could not be ingested.
|
|
142
148
|
chat_contents = await content_service.search_contents_async(
|
|
143
149
|
where={
|
|
144
150
|
"ownerId": {
|
|
145
151
|
"equals": chat_id,
|
|
146
152
|
},
|
|
147
153
|
},
|
|
154
|
+
include_failed_content=True,
|
|
148
155
|
)
|
|
149
156
|
|
|
150
157
|
return ChatHistoryWithContent.from_chat_history_and_contents(
|
|
@@ -223,6 +230,38 @@ def _serialize_file_contents(
|
|
|
223
230
|
return (text + "\n\n" + "\n".join(serialized_files)).strip()
|
|
224
231
|
|
|
225
232
|
|
|
233
|
+
@dataclass(frozen=True)
|
|
234
|
+
class _SplitContents:
|
|
235
|
+
"""Uploads of one chat message, grouped by how they reach the model.
|
|
236
|
+
|
|
237
|
+
``serializable`` holds documents *and* images in upload order so the
|
|
238
|
+
``FileContentSerializer`` can describe every upload as text, while
|
|
239
|
+
``images`` only holds the images that will be attached as base64.
|
|
240
|
+
"""
|
|
241
|
+
|
|
242
|
+
serializable: list[Content]
|
|
243
|
+
images: list[Content]
|
|
244
|
+
|
|
245
|
+
|
|
246
|
+
def _split_contents(
|
|
247
|
+
contents: list[Content],
|
|
248
|
+
selected_content_ids: set[str] | None,
|
|
249
|
+
) -> _SplitContents:
|
|
250
|
+
serializable: list[Content] = []
|
|
251
|
+
images: list[Content] = []
|
|
252
|
+
for content in contents:
|
|
253
|
+
if selected_content_ids is not None and content.id not in selected_content_ids:
|
|
254
|
+
continue
|
|
255
|
+
is_image = FileUtils.is_image_content(content.key)
|
|
256
|
+
if is_image or FileUtils.is_file_content(content.key):
|
|
257
|
+
serializable.append(content)
|
|
258
|
+
# Failed or expired uploads cannot be downloaded; they are still listed
|
|
259
|
+
# via the serializer but never attached as an image.
|
|
260
|
+
if is_image and not content.has_ingestion_failed() and not content.is_expired():
|
|
261
|
+
images.append(content)
|
|
262
|
+
return _SplitContents(serializable=serializable, images=images)
|
|
263
|
+
|
|
264
|
+
|
|
226
265
|
def _append_element_to_builder(
|
|
227
266
|
builder: MessagesBuilder,
|
|
228
267
|
c: ChatMessageWithContents,
|
|
@@ -234,18 +273,11 @@ def _append_element_to_builder(
|
|
|
234
273
|
selected_content_ids: set[str] | None = None,
|
|
235
274
|
) -> None:
|
|
236
275
|
if len(c.contents) > 0:
|
|
237
|
-
|
|
238
|
-
image_contents =
|
|
239
|
-
if selected_content_ids is not None:
|
|
240
|
-
file_contents = [
|
|
241
|
-
co for co in file_contents if co.id in selected_content_ids
|
|
242
|
-
]
|
|
243
|
-
image_contents = [
|
|
244
|
-
co for co in image_contents if co.id in selected_content_ids
|
|
245
|
-
]
|
|
276
|
+
split = _split_contents(c.contents, selected_content_ids)
|
|
277
|
+
image_contents = split.images
|
|
246
278
|
content = _serialize_file_contents(
|
|
247
279
|
text,
|
|
248
|
-
|
|
280
|
+
split.serializable,
|
|
249
281
|
file_content_serializer,
|
|
250
282
|
)
|
|
251
283
|
if include_images and image_contents:
|
|
@@ -282,18 +314,11 @@ async def _append_element_to_builder_async(
|
|
|
282
314
|
selected_content_ids: set[str] | None = None,
|
|
283
315
|
) -> None:
|
|
284
316
|
if len(c.contents) > 0:
|
|
285
|
-
|
|
286
|
-
image_contents =
|
|
287
|
-
if selected_content_ids is not None:
|
|
288
|
-
file_contents = [
|
|
289
|
-
co for co in file_contents if co.id in selected_content_ids
|
|
290
|
-
]
|
|
291
|
-
image_contents = [
|
|
292
|
-
co for co in image_contents if co.id in selected_content_ids
|
|
293
|
-
]
|
|
317
|
+
split = _split_contents(c.contents, selected_content_ids)
|
|
318
|
+
image_contents = split.images
|
|
294
319
|
content = _serialize_file_contents(
|
|
295
320
|
text,
|
|
296
|
-
|
|
321
|
+
split.serializable,
|
|
297
322
|
file_content_serializer,
|
|
298
323
|
)
|
|
299
324
|
if include_images and image_contents:
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import asyncio
|
|
2
|
+
import logging
|
|
3
|
+
import time
|
|
4
|
+
|
|
5
|
+
from openai import AsyncOpenAI
|
|
6
|
+
|
|
7
|
+
from unique_toolkit.agentic.tools.openai_builtin.code_interpreter.builder._memory import (
|
|
8
|
+
CodeExecutionShortTermMemorySchema,
|
|
9
|
+
)
|
|
10
|
+
|
|
11
|
+
logger = logging.getLogger(__name__)
|
|
12
|
+
|
|
13
|
+
# Statuses in which a container accepts file uploads and code execution.
|
|
14
|
+
LIVE_CONTAINER_STATUSES = frozenset({"active", "running"})
|
|
15
|
+
|
|
16
|
+
# Best-effort wait for a live status before the first upload; on deadline we
|
|
17
|
+
# proceed anyway and rely on the upload retry.
|
|
18
|
+
CONTAINER_READY_TIMEOUT_SECONDS = 10.0
|
|
19
|
+
CONTAINER_READY_POLL_INTERVAL_SECONDS = 0.5
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
def is_container_live(status: str | None) -> bool:
|
|
23
|
+
return status in LIVE_CONTAINER_STATUSES
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
async def check_container_exists(
|
|
27
|
+
client: AsyncOpenAI,
|
|
28
|
+
memory: CodeExecutionShortTermMemorySchema,
|
|
29
|
+
) -> bool:
|
|
30
|
+
try:
|
|
31
|
+
container = await client.containers.retrieve(memory.container_id)
|
|
32
|
+
# The error here is sometimes InternalServerError, and sometimes a NotFoundError. We catch everything and re-create on exception
|
|
33
|
+
except Exception:
|
|
34
|
+
logger.exception("Container %s not found", memory.container_id)
|
|
35
|
+
return False
|
|
36
|
+
|
|
37
|
+
if not is_container_live(container.status):
|
|
38
|
+
logger.info(
|
|
39
|
+
"Container %s has status `%s`, recreating a new one",
|
|
40
|
+
memory.container_id,
|
|
41
|
+
container.status,
|
|
42
|
+
)
|
|
43
|
+
return False
|
|
44
|
+
|
|
45
|
+
logger.info("Container %s found in short term memory", memory.container_id)
|
|
46
|
+
return True
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
async def wait_until_container_live(
|
|
50
|
+
client: AsyncOpenAI,
|
|
51
|
+
container_id: str,
|
|
52
|
+
initial_status: str | None,
|
|
53
|
+
*,
|
|
54
|
+
timeout_seconds: float = CONTAINER_READY_TIMEOUT_SECONDS,
|
|
55
|
+
poll_interval_seconds: float = CONTAINER_READY_POLL_INTERVAL_SECONDS,
|
|
56
|
+
) -> None:
|
|
57
|
+
"""Poll ``containers.retrieve`` until the container reports a live status.
|
|
58
|
+
|
|
59
|
+
Returns immediately (no API call) when ``initial_status`` is already live.
|
|
60
|
+
Never raises: on deadline or retrieve errors it logs and returns so the
|
|
61
|
+
caller can still attempt the upload.
|
|
62
|
+
"""
|
|
63
|
+
if is_container_live(initial_status):
|
|
64
|
+
return
|
|
65
|
+
|
|
66
|
+
logger.info(
|
|
67
|
+
"Container %s created with status `%s`, waiting up to %.0fs for it to become live",
|
|
68
|
+
container_id,
|
|
69
|
+
initial_status,
|
|
70
|
+
timeout_seconds,
|
|
71
|
+
)
|
|
72
|
+
deadline = time.monotonic() + timeout_seconds
|
|
73
|
+
status = initial_status
|
|
74
|
+
while time.monotonic() < deadline:
|
|
75
|
+
await asyncio.sleep(poll_interval_seconds)
|
|
76
|
+
try:
|
|
77
|
+
container = await client.containers.retrieve(container_id)
|
|
78
|
+
except Exception:
|
|
79
|
+
logger.warning(
|
|
80
|
+
"Failed to retrieve status of container %s while waiting for it to become live",
|
|
81
|
+
container_id,
|
|
82
|
+
exc_info=True,
|
|
83
|
+
)
|
|
84
|
+
return
|
|
85
|
+
status = container.status
|
|
86
|
+
if is_container_live(status):
|
|
87
|
+
logger.info("Container %s is now `%s`", container_id, status)
|
|
88
|
+
return
|
|
89
|
+
logger.info("Container %s still has status `%s`", container_id, status)
|
|
90
|
+
|
|
91
|
+
logger.warning(
|
|
92
|
+
"Container %s did not become live within %.0fs (last status `%s`); proceeding with upload anyway",
|
|
93
|
+
container_id,
|
|
94
|
+
timeout_seconds,
|
|
95
|
+
status,
|
|
96
|
+
)
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
async def create_container(
|
|
100
|
+
client: AsyncOpenAI,
|
|
101
|
+
chat_id: str,
|
|
102
|
+
user_id: str,
|
|
103
|
+
company_id: str,
|
|
104
|
+
expires_after_minutes: int,
|
|
105
|
+
) -> str:
|
|
106
|
+
container = await client.containers.create(
|
|
107
|
+
name=f"code_execution_{company_id}_{user_id}_{chat_id}",
|
|
108
|
+
expires_after={
|
|
109
|
+
"anchor": "last_active_at",
|
|
110
|
+
"minutes": expires_after_minutes,
|
|
111
|
+
},
|
|
112
|
+
)
|
|
113
|
+
logger.info(
|
|
114
|
+
"Created new container %s with status `%s`", container.id, container.status
|
|
115
|
+
)
|
|
116
|
+
await wait_until_container_live(
|
|
117
|
+
client=client,
|
|
118
|
+
container_id=container.id,
|
|
119
|
+
initial_status=container.status,
|
|
120
|
+
)
|
|
121
|
+
return container.id
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import asyncio
|
|
2
2
|
import logging
|
|
3
|
+
import time
|
|
3
4
|
from dataclasses import dataclass
|
|
4
5
|
|
|
6
|
+
import httpx
|
|
5
7
|
from openai import APIStatusError, AsyncOpenAI
|
|
6
8
|
from tenacity import (
|
|
7
9
|
AsyncRetrying,
|
|
@@ -26,6 +28,11 @@ logger = logging.getLogger(__name__)
|
|
|
26
28
|
UPLOAD_MAX_RETRIES = 2
|
|
27
29
|
UPLOAD_RETRY_BASE_DELAY = 0.5
|
|
28
30
|
|
|
31
|
+
# Read timeout must stay above node-chat's own upload retry window (~95s) so we
|
|
32
|
+
# never abandon a request the proxy is still retrying, which would double-upload.
|
|
33
|
+
UPLOAD_CONNECT_TIMEOUT_SECONDS = 5.0
|
|
34
|
+
UPLOAD_READ_TIMEOUT_SECONDS = 120.0
|
|
35
|
+
|
|
29
36
|
# The `/public/openai-proxy/containers/*/files` route enforces a request-body
|
|
30
37
|
# size cap (see UN-23109); Azure OpenAI/node-chat surfaces this as an
|
|
31
38
|
# `APIStatusError` with this status code. Anything else is treated as a
|
|
@@ -81,6 +88,24 @@ def build_upload_retry() -> AsyncRetrying:
|
|
|
81
88
|
)
|
|
82
89
|
|
|
83
90
|
|
|
91
|
+
def build_upload_client(client: AsyncOpenAI) -> AsyncOpenAI:
|
|
92
|
+
"""Return a client variant tuned for container-file uploads.
|
|
93
|
+
|
|
94
|
+
SDK-level retries are disabled (``max_retries=0``) so that
|
|
95
|
+
``build_upload_retry`` is the single retry owner with full visibility in
|
|
96
|
+
logs, and the read timeout is capped so a hung upstream costs
|
|
97
|
+
``UPLOAD_READ_TIMEOUT_SECONDS`` instead of the SDK's 600s default.
|
|
98
|
+
"""
|
|
99
|
+
return client.with_options(
|
|
100
|
+
max_retries=0,
|
|
101
|
+
timeout=httpx.Timeout(
|
|
102
|
+
UPLOAD_CONNECT_TIMEOUT_SECONDS,
|
|
103
|
+
read=UPLOAD_READ_TIMEOUT_SECONDS,
|
|
104
|
+
write=UPLOAD_READ_TIMEOUT_SECONDS,
|
|
105
|
+
),
|
|
106
|
+
)
|
|
107
|
+
|
|
108
|
+
|
|
84
109
|
def check_file_already_uploaded(
|
|
85
110
|
content_id: str,
|
|
86
111
|
memory: CodeExecutionShortTermMemorySchema,
|
|
@@ -117,16 +142,18 @@ async def upload_file_to_container(
|
|
|
117
142
|
container_id,
|
|
118
143
|
)
|
|
119
144
|
|
|
145
|
+
upload_started = time.monotonic()
|
|
120
146
|
openai_file = await build_upload_retry()(
|
|
121
|
-
client.containers.files.create,
|
|
147
|
+
build_upload_client(client).containers.files.create,
|
|
122
148
|
container_id=container_id,
|
|
123
149
|
file=(filename, file_content),
|
|
124
150
|
)
|
|
125
151
|
logger.info(
|
|
126
|
-
"File %s successfully uploaded as OpenAI file %s in container %s",
|
|
152
|
+
"File %s successfully uploaded as OpenAI file %s in container %s in %.1fs",
|
|
127
153
|
content_id,
|
|
128
154
|
openai_file.id,
|
|
129
155
|
container_id,
|
|
156
|
+
time.monotonic() - upload_started,
|
|
130
157
|
)
|
|
131
158
|
|
|
132
159
|
return openai_file.path
|
{unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/content/schemas.py
RENAMED
|
@@ -200,6 +200,35 @@ class Content(BaseModel):
|
|
|
200
200
|
timezone.utc
|
|
201
201
|
)
|
|
202
202
|
|
|
203
|
+
def has_ingestion_failed(self) -> bool:
|
|
204
|
+
"""Whether the platform reported a failed ingestion for this content.
|
|
205
|
+
|
|
206
|
+
All failure states of the platform's ``IngestionState`` enum share the
|
|
207
|
+
``FAILED`` prefix (e.g. ``FAILED_PARSING``, ``FAILED_MALWARE_FOUND``).
|
|
208
|
+
"""
|
|
209
|
+
return self.ingestion_state is not None and self.ingestion_state.startswith(
|
|
210
|
+
"FAILED"
|
|
211
|
+
)
|
|
212
|
+
|
|
213
|
+
def is_ingestion_in_progress(self) -> bool:
|
|
214
|
+
"""Whether the content is still being ingested and is not yet searchable."""
|
|
215
|
+
return self.ingestion_state in _INGESTION_IN_PROGRESS_STATES
|
|
216
|
+
|
|
217
|
+
|
|
218
|
+
_INGESTION_IN_PROGRESS_STATES: frozenset[str] = frozenset(
|
|
219
|
+
{
|
|
220
|
+
"QUEUED",
|
|
221
|
+
"MALWARE_SCANNING",
|
|
222
|
+
"METADATA_VALIDATION",
|
|
223
|
+
"EXTRACTING_METADATA",
|
|
224
|
+
"INGESTION_READING",
|
|
225
|
+
"INGESTION_CHUNKING",
|
|
226
|
+
"INGESTION_EMBEDDING",
|
|
227
|
+
"RE_INGESTING",
|
|
228
|
+
"RETRYING",
|
|
229
|
+
}
|
|
230
|
+
)
|
|
231
|
+
|
|
203
232
|
|
|
204
233
|
class ContentReference(BaseModel):
|
|
205
234
|
model_config = model_config
|
{unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/content/service.py
RENAMED
|
@@ -480,6 +480,7 @@ class ContentService:
|
|
|
480
480
|
self,
|
|
481
481
|
where: dict[str, Any],
|
|
482
482
|
chat_id: str | None = None,
|
|
483
|
+
include_failed_content: bool = False,
|
|
483
484
|
) -> list[Content]:
|
|
484
485
|
"""
|
|
485
486
|
Performs a search in the knowledge base by filter (and not a smilarity search)
|
|
@@ -487,6 +488,8 @@ class ContentService:
|
|
|
487
488
|
|
|
488
489
|
Args:
|
|
489
490
|
where (dict): The search criteria.
|
|
491
|
+
chat_id (str | None): Chat to scope the search to; defaults to the service's chat.
|
|
492
|
+
include_failed_content (bool): Also return content whose ingestion failed.
|
|
490
493
|
|
|
491
494
|
Returns:
|
|
492
495
|
list[Content]: The search results.
|
|
@@ -498,18 +501,22 @@ class ContentService:
|
|
|
498
501
|
company_id=self._company_id,
|
|
499
502
|
chat_id=chat_id,
|
|
500
503
|
where=where,
|
|
504
|
+
include_failed_content=include_failed_content,
|
|
501
505
|
)
|
|
502
506
|
|
|
503
507
|
async def search_contents_async(
|
|
504
508
|
self,
|
|
505
509
|
where: dict[str, Any],
|
|
506
510
|
chat_id: str | None = None,
|
|
511
|
+
include_failed_content: bool = False,
|
|
507
512
|
) -> list[Content]:
|
|
508
513
|
"""
|
|
509
514
|
Performs an asynchronous search for content files in the knowledge base by filter.
|
|
510
515
|
|
|
511
516
|
Args:
|
|
512
517
|
where (dict): The search criteria.
|
|
518
|
+
chat_id (str | None): Chat to scope the search to; defaults to the service's chat.
|
|
519
|
+
include_failed_content (bool): Also return content whose ingestion failed.
|
|
513
520
|
|
|
514
521
|
Returns:
|
|
515
522
|
list[Content]: The search results.
|
|
@@ -521,6 +528,7 @@ class ContentService:
|
|
|
521
528
|
company_id=self._company_id,
|
|
522
529
|
chat_id=chat_id,
|
|
523
530
|
where=where,
|
|
531
|
+
include_failed_content=include_failed_content,
|
|
524
532
|
)
|
|
525
533
|
|
|
526
534
|
def search_content_on_chat(self, chat_id: str) -> list[Content]:
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import logging
|
|
2
|
-
|
|
3
|
-
from openai import AsyncOpenAI
|
|
4
|
-
|
|
5
|
-
from unique_toolkit.agentic.tools.openai_builtin.code_interpreter.builder._memory import (
|
|
6
|
-
CodeExecutionShortTermMemorySchema,
|
|
7
|
-
)
|
|
8
|
-
|
|
9
|
-
logger = logging.getLogger(__name__)
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
async def check_container_exists(
|
|
13
|
-
client: AsyncOpenAI,
|
|
14
|
-
memory: CodeExecutionShortTermMemorySchema,
|
|
15
|
-
) -> bool:
|
|
16
|
-
try:
|
|
17
|
-
container = await client.containers.retrieve(memory.container_id)
|
|
18
|
-
# The error here is sometimes InternalServerError, and sometimes a NotFoundError. We catch everything and re-create on exception
|
|
19
|
-
except Exception:
|
|
20
|
-
logger.exception("Container %s not found", memory.container_id)
|
|
21
|
-
return False
|
|
22
|
-
|
|
23
|
-
if container.status not in ["active", "running"]:
|
|
24
|
-
logger.info(
|
|
25
|
-
"Container %s has status `%s`, recreating a new one",
|
|
26
|
-
memory.container_id,
|
|
27
|
-
container.status,
|
|
28
|
-
)
|
|
29
|
-
return False
|
|
30
|
-
|
|
31
|
-
logger.info("Container %s found in short term memory", memory.container_id)
|
|
32
|
-
return True
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
async def create_container(
|
|
36
|
-
client: AsyncOpenAI,
|
|
37
|
-
chat_id: str,
|
|
38
|
-
user_id: str,
|
|
39
|
-
company_id: str,
|
|
40
|
-
expires_after_minutes: int,
|
|
41
|
-
) -> str:
|
|
42
|
-
container = await client.containers.create(
|
|
43
|
-
name=f"code_execution_{company_id}_{user_id}_{chat_id}",
|
|
44
|
-
expires_after={
|
|
45
|
-
"anchor": "last_active_at",
|
|
46
|
-
"minutes": expires_after_minutes,
|
|
47
|
-
},
|
|
48
|
-
)
|
|
49
|
-
logger.info("Created new container %s", container.id)
|
|
50
|
-
return container.id
|
|
File without changes
|
{unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/__init__.py
RENAMED
|
File without changes
|
{unique_toolkit-2026.42.0.dev10 → unique_toolkit-2026.42.0.dev12}/unique_toolkit/_common/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
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
|