unique_toolkit 1.68.9__tar.gz → 1.68.10__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/PKG-INFO +1 -1
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/pyproject.toml +1 -1
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/postprocessors/generated_files.py +145 -26
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/README.md +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/__init__.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/_common/__init__.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/_common/_base_service.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/_common/_time_utils.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/_common/api_calling/human_verification_manager.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/_common/base_model_type_attribute.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/_common/chunk_relevancy_sorter/config.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/_common/chunk_relevancy_sorter/exception.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/_common/chunk_relevancy_sorter/schemas.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/_common/chunk_relevancy_sorter/service.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/_common/chunk_relevancy_sorter/tests/test_service.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/_common/config_checker/README.md +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/_common/config_checker/__init__.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/_common/config_checker/__main__.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/_common/config_checker/cli.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/_common/config_checker/differ.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/_common/config_checker/exporter.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/_common/config_checker/models.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/_common/config_checker/registry.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/_common/config_checker/validator.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/_common/default_language_model.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/_common/docx_generator/__init__.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/_common/docx_generator/config.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/_common/docx_generator/pandoc_converter.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/_common/docx_generator/schemas.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/_common/docx_generator/service.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/_common/docx_generator/template/Doc Template.docx +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/_common/endpoint_builder.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/_common/endpoint_requestor.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/_common/event_bus.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/_common/exception.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/_common/execution.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/_common/experimental/endpoint_builder.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/_common/experimental/endpoint_requestor.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/_common/experimental/write_up_agent/README.md +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/_common/experimental/write_up_agent/__init__.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/_common/experimental/write_up_agent/agent.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/_common/experimental/write_up_agent/config.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/_common/experimental/write_up_agent/examples/data.csv +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/_common/experimental/write_up_agent/examples/example_usage.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/_common/experimental/write_up_agent/schemas.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/_common/experimental/write_up_agent/services/__init__.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/__init__.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/exceptions.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/service.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/utils.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/__init__.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/config.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/exceptions.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/prompts/config.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/prompts/system_prompt.j2 +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/prompts/user_prompt.j2 +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/service.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/__init__.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/default_template.j2 +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/exceptions.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/service.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/utils.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/_common/experimental/write_up_agent/utils.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/_common/feature_flags/schema.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/_common/pydantic/rjsf_tags.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/_common/pydantic_helpers.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/_common/referencing.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/_common/string_utilities.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/_common/tests/test_referencing.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/_common/tests/test_string_utilities.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/_common/token/__init__.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/_common/token/image_token_counting.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/_common/token/token_counting.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/_common/token/tokenizers/deepseek/tokenizer.json +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/_common/token/tokenizers/qwen/tokenizer.json +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/_common/utils/__init__.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/_common/utils/files.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/_common/utils/image/encode.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/_common/utils/jinja/helpers.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/_common/utils/jinja/render.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/_common/utils/jinja/schema.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/_common/utils/jinja/utils.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/_common/utils/structured_output/__init__.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/_common/utils/structured_output/schema.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/_common/utils/write_configuration.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/_common/validate_required_values.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/_common/validators.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/__init__.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/debug_info_manager/debug_info_manager.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/debug_info_manager/test/test_debug_info_manager.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/evaluation/config.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/evaluation/context_relevancy/prompts/__init__.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/evaluation/context_relevancy/prompts/system_prompt.j2 +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/evaluation/context_relevancy/prompts/user_prompt.j2 +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/evaluation/context_relevancy/schema.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/evaluation/context_relevancy/service.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/evaluation/evaluation_manager.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/evaluation/exception.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/evaluation/hallucination/constants.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/evaluation/hallucination/hallucination_evaluation.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/evaluation/hallucination/prompts/__init__.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/evaluation/hallucination/prompts/system_prompt.j2 +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/evaluation/hallucination/prompts/user_prompt.j2 +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/evaluation/hallucination/service.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/evaluation/hallucination/utils.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/evaluation/output_parser.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/evaluation/schemas.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/evaluation/tests/fixtures.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/evaluation/tests/test_config.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/evaluation/tests/test_context_relevancy_service.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/evaluation/tests/test_hallucination_constants.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/evaluation/tests/test_hallucination_utils.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/evaluation/tests/test_output_parser.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/evaluation/tests/test_prompt_loaders.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/evaluation/utils.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/feature_flags/__init__.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/feature_flags/feature_flags.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/history_manager/history_construction_with_contents.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/history_manager/history_manager.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/history_manager/loop_token_reducer.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/history_manager/utils.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/loop_runner/__init__.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/loop_runner/_iteration_handler_utils.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/loop_runner/_responses_iteration_handler_utils.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/loop_runner/_responses_stream_handler_utils.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/loop_runner/_stream_handler_utils.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/loop_runner/base.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/loop_runner/middleware/__init__.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/loop_runner/middleware/planning/__init__.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/loop_runner/middleware/planning/planning.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/loop_runner/middleware/planning/schema.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/loop_runner/runners/__init__.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/loop_runner/runners/basic.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/loop_runner/runners/mistral/__init__.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/loop_runner/runners/mistral/mistral_runner.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/loop_runner/runners/qwen/__init__.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/loop_runner/runners/qwen/helpers.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/loop_runner/runners/qwen/qwen_runner.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/message_log_manager/__init__.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/message_log_manager/service.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/postprocessor/postprocessor_manager.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/reference_manager/reference_manager.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/responses_api/__init__.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/responses_api/postprocessors/code_display.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/responses_api/postprocessors/generated_files.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/responses_api/stream_handler.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/short_term_memory_manager/persistent_short_term_memory_manager.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/thinking_manager/thinking_manager.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/tools/__init__.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/tools/a2a/__init__.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/tools/a2a/config.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/tools/a2a/evaluation/__init__.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/tools/a2a/evaluation/_utils.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/tools/a2a/evaluation/config.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/tools/a2a/evaluation/evaluator.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/tools/a2a/evaluation/summarization_user_message.j2 +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/tools/a2a/manager.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/tools/a2a/postprocessing/__init__.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/tools/a2a/postprocessing/_display_utils.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/tools/a2a/postprocessing/_ref_utils.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/tools/a2a/postprocessing/config.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/tools/a2a/postprocessing/display.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/tools/a2a/postprocessing/references.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_display.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_display_utils.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_ref_utils.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/tools/a2a/prompts.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/tools/a2a/response_watcher/__init__.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/tools/a2a/response_watcher/service.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/tools/a2a/tool/__init__.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/tools/a2a/tool/_memory.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/tools/a2a/tool/_schema.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/tools/a2a/tool/config.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/tools/a2a/tool/service.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/tools/a2a/tool/test/test_service_utils.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/tools/agent_chunks_hanlder.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/tools/config.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/tools/experimental/__init__.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/tools/experimental/open_file_tool/__init__.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/tools/experimental/open_file_tool/config.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/tools/experimental/open_file_tool/runtime.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/tools/experimental/open_file_tool/tool.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/tools/factory.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/tools/mcp/__init__.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/tools/mcp/manager.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/tools/mcp/models.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/tools/mcp/tool_wrapper.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/tools/openai_builtin/__init__.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/tools/openai_builtin/base.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/__init__.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/config.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/postprocessors/__init__.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/postprocessors/code_display.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/schemas.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/service.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/tools/openai_builtin/manager.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/tools/schemas.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/tools/test/test_mcp_manager.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/tools/test/test_tool_progress_reporter.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/tools/tool.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/tools/tool_manager.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/tools/tool_progress_reporter.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/tools/utils/__init__.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/tools/utils/source_handling/__init__.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/tools/utils/source_handling/schema.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/tools/utils/source_handling/source_formatting.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/tools/utils/source_handling/tests/test_source_formatting.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic_table/__init__.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic_table/schemas.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic_table/service.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/app/__init__.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/app/dev_util.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/app/fast_api_factory.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/app/init_logging.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/app/init_sdk.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/app/performance/async_tasks.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/app/performance/async_wrapper.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/app/schemas.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/app/unique_settings.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/app/verification.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/app/webhook.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/chat/__init__.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/chat/cancellation.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/chat/constants.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/chat/deprecated/service.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/chat/functions.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/chat/rendering.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/chat/responses_api.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/chat/schemas.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/chat/service.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/chat/state.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/chat/utils.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/content/__init__.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/content/constants.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/content/functions.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/content/schemas.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/content/service.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/content/smart_rules.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/content/utils.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/data_extraction/README.md +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/data_extraction/__init__.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/data_extraction/augmented/__init__.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/data_extraction/augmented/service.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/data_extraction/base.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/data_extraction/basic/__init__.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/data_extraction/basic/config.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/data_extraction/basic/prompt.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/data_extraction/basic/service.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/elicitation/__init__.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/elicitation/constants.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/elicitation/exceptions.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/elicitation/functions.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/elicitation/schemas.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/elicitation/service.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/embedding/__init__.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/embedding/constants.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/embedding/functions.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/embedding/schemas.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/embedding/service.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/embedding/utils.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/framework_utilities/__init__.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/framework_utilities/langchain/__init__.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/framework_utilities/langchain/client.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/framework_utilities/langchain/history.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/framework_utilities/openai/__init__.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/framework_utilities/openai/client.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/framework_utilities/openai/message_builder.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/framework_utilities/utils.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/language_model/__init__.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/language_model/_responses_api_utils.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/language_model/builder.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/language_model/constants.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/language_model/default_language_model.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/language_model/functions.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/language_model/infos.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/language_model/prompt.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/language_model/reference.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/language_model/schemas.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/language_model/service.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/language_model/stream_transform.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/language_model/utils.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/protocols/support.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/services/__init__.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/services/chat_service.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/services/factory.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/services/knowledge_base.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/short_term_memory/__init__.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/short_term_memory/constants.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/short_term_memory/functions.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/short_term_memory/schemas.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/short_term_memory/service.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/smart_rules/__init__.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/smart_rules/compile.py +0 -0
- {unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/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: 1.68.
|
|
3
|
+
Version: 1.68.10
|
|
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>
|
|
@@ -41,6 +41,14 @@ from unique_toolkit.short_term_memory.service import ShortTermMemoryService
|
|
|
41
41
|
logger = logging.getLogger(__name__)
|
|
42
42
|
|
|
43
43
|
|
|
44
|
+
class _ChatLoggerAdapter(logging.LoggerAdapter[logging.Logger]):
|
|
45
|
+
"""LoggerAdapter that prefixes every message with ``[chat_id=…]``."""
|
|
46
|
+
|
|
47
|
+
def process(self, msg: str, kwargs): # type: ignore[override]
|
|
48
|
+
extra = dict(self.extra) if self.extra else {} # type: ignore[arg-type]
|
|
49
|
+
return f"[chat_id={extra.get('chat_id', 'n/a')}] {msg}", kwargs
|
|
50
|
+
|
|
51
|
+
|
|
44
52
|
class DisplayCodeInterpreterFilesPostProcessorConfig(BaseModel):
|
|
45
53
|
model_config = get_configuration_dict()
|
|
46
54
|
upload_to_chat: SkipJsonSchema[bool] = Field(
|
|
@@ -53,8 +61,8 @@ class DisplayCodeInterpreterFilesPostProcessorConfig(BaseModel):
|
|
|
53
61
|
)
|
|
54
62
|
|
|
55
63
|
file_download_failed_message: str = Field(
|
|
56
|
-
default="⚠️ File
|
|
57
|
-
description="The message to display when a file download fails.",
|
|
64
|
+
default="⚠️ File could not be generated. Please try again.",
|
|
65
|
+
description="The message to display when a file download fails after all retry attempts.",
|
|
58
66
|
)
|
|
59
67
|
max_concurrent_file_downloads: int = Field(
|
|
60
68
|
default=10,
|
|
@@ -122,6 +130,10 @@ class DisplayCodeInterpreterFilesPostProcessor(
|
|
|
122
130
|
if self._chat_service is None:
|
|
123
131
|
raise ValueError("ChatService is required if uploadToChat is True")
|
|
124
132
|
|
|
133
|
+
self._log: logging.LoggerAdapter[logging.Logger] = _ChatLoggerAdapter(
|
|
134
|
+
logger, {"chat_id": chat_id or "n/a"}
|
|
135
|
+
)
|
|
136
|
+
|
|
125
137
|
self._orphan_code_blocks: list[CodeInterpreterBlock] = []
|
|
126
138
|
self._short_term_memory_manager = None
|
|
127
139
|
if chat_id is not None and user_id is not None and company_id is not None:
|
|
@@ -140,23 +152,33 @@ class DisplayCodeInterpreterFilesPostProcessor(
|
|
|
140
152
|
return AsyncRetrying(
|
|
141
153
|
stop=stop_after_attempt(1 + self._config.max_download_retries),
|
|
142
154
|
wait=wait_exponential(multiplier=self._config.download_retry_base_delay),
|
|
143
|
-
before_sleep=before_sleep_log(
|
|
155
|
+
before_sleep=before_sleep_log(self._log, logging.WARNING), # type: ignore[arg-type]
|
|
144
156
|
reraise=True,
|
|
145
157
|
)
|
|
146
158
|
|
|
147
159
|
@override
|
|
148
160
|
async def run(self, loop_response: ResponsesLanguageModelStreamResponse) -> None:
|
|
149
|
-
|
|
161
|
+
self._log.info("run() started — fetching and uploading code interpreter files")
|
|
150
162
|
|
|
151
163
|
container_files = loop_response.container_files
|
|
152
|
-
|
|
164
|
+
self._log.info(
|
|
165
|
+
"run() found %d container file annotation(s): %s",
|
|
166
|
+
len(container_files),
|
|
167
|
+
[cf.filename for cf in container_files],
|
|
168
|
+
)
|
|
153
169
|
|
|
154
170
|
try:
|
|
155
171
|
self._content_map: dict[str, str | None] = await self._load_previous_files() # type: ignore
|
|
172
|
+
if self._content_map:
|
|
173
|
+
self._log.info(
|
|
174
|
+
"run() loaded %d previous file(s) from short-term memory: %s",
|
|
175
|
+
len(self._content_map),
|
|
176
|
+
list(self._content_map.keys()),
|
|
177
|
+
)
|
|
156
178
|
except Exception:
|
|
157
|
-
|
|
158
|
-
"
|
|
159
|
-
"
|
|
179
|
+
self._log.exception(
|
|
180
|
+
"run() failed to load previous files from short-term memory; "
|
|
181
|
+
"proceeding without previous file context."
|
|
160
182
|
)
|
|
161
183
|
self._content_map = {}
|
|
162
184
|
|
|
@@ -170,11 +192,21 @@ class DisplayCodeInterpreterFilesPostProcessor(
|
|
|
170
192
|
results = await asyncio.gather(*tasks)
|
|
171
193
|
|
|
172
194
|
for citation, result in zip(container_files, results):
|
|
173
|
-
# Overwrite if file has been re-generated
|
|
174
195
|
self._content_map[citation.filename] = (
|
|
175
196
|
result.content_id if result is not None else None
|
|
176
197
|
)
|
|
177
198
|
|
|
199
|
+
succeeded = {f: cid for f, cid in self._content_map.items() if cid is not None}
|
|
200
|
+
failed = [f for f, cid in self._content_map.items() if cid is None]
|
|
201
|
+
self._log.info(
|
|
202
|
+
"run() download/upload complete — %d succeeded, %d failed. "
|
|
203
|
+
"succeeded=%s, failed=%s",
|
|
204
|
+
len(succeeded),
|
|
205
|
+
len(failed),
|
|
206
|
+
list(succeeded.keys()),
|
|
207
|
+
failed,
|
|
208
|
+
)
|
|
209
|
+
|
|
178
210
|
try:
|
|
179
211
|
await self._save_generated_files(
|
|
180
212
|
[
|
|
@@ -184,9 +216,9 @@ class DisplayCodeInterpreterFilesPostProcessor(
|
|
|
184
216
|
]
|
|
185
217
|
)
|
|
186
218
|
except Exception:
|
|
187
|
-
|
|
188
|
-
"
|
|
189
|
-
"
|
|
219
|
+
self._log.exception(
|
|
220
|
+
"run() failed to save generated files to short-term memory; "
|
|
221
|
+
"file replacement will still proceed."
|
|
190
222
|
)
|
|
191
223
|
|
|
192
224
|
try:
|
|
@@ -196,19 +228,39 @@ class DisplayCodeInterpreterFilesPostProcessor(
|
|
|
196
228
|
self._orphan_code_blocks = await self._upload_orphan_code_as_txt(
|
|
197
229
|
loop_response
|
|
198
230
|
)
|
|
231
|
+
if self._orphan_code_blocks:
|
|
232
|
+
self._log.info(
|
|
233
|
+
"run() produced %d orphan code block(s)",
|
|
234
|
+
len(self._orphan_code_blocks),
|
|
235
|
+
)
|
|
199
236
|
else:
|
|
200
237
|
self._orphan_code_blocks = []
|
|
201
238
|
except Exception:
|
|
202
|
-
|
|
203
|
-
"
|
|
239
|
+
self._log.exception(
|
|
240
|
+
"run() failed to process orphan code blocks; "
|
|
204
241
|
"file replacement will still proceed."
|
|
205
242
|
)
|
|
206
243
|
self._orphan_code_blocks = []
|
|
207
244
|
|
|
245
|
+
self._log.info(
|
|
246
|
+
"run() finished — content_map has %d entries (%d with content_id, %d failed)",
|
|
247
|
+
len(self._content_map),
|
|
248
|
+
len(succeeded),
|
|
249
|
+
len(failed),
|
|
250
|
+
)
|
|
251
|
+
|
|
208
252
|
@override
|
|
209
253
|
def apply_postprocessing_to_response(
|
|
210
254
|
self, loop_response: ResponsesLanguageModelStreamResponse
|
|
211
255
|
) -> bool:
|
|
256
|
+
self._log.info(
|
|
257
|
+
"apply_postprocessing started — %d file(s) in content_map, fence_ff=%s",
|
|
258
|
+
len(self._content_map),
|
|
259
|
+
feature_flags.enable_code_execution_fence_un_17972.is_enabled(
|
|
260
|
+
self._company_id
|
|
261
|
+
),
|
|
262
|
+
)
|
|
263
|
+
|
|
212
264
|
if loop_response.message.references is None:
|
|
213
265
|
loop_response.message.references = []
|
|
214
266
|
if loop_response.message.text is None:
|
|
@@ -220,6 +272,10 @@ class DisplayCodeInterpreterFilesPostProcessor(
|
|
|
220
272
|
self._company_id
|
|
221
273
|
)
|
|
222
274
|
|
|
275
|
+
replaced_files: list[str] = []
|
|
276
|
+
missed_files: list[str] = []
|
|
277
|
+
error_files: list[str] = []
|
|
278
|
+
|
|
223
279
|
for filename, content_id in self._content_map.items():
|
|
224
280
|
if content_id is None:
|
|
225
281
|
loop_response.message.text, replaced = _replace_container_file_error(
|
|
@@ -228,12 +284,14 @@ class DisplayCodeInterpreterFilesPostProcessor(
|
|
|
228
284
|
error_message=self._config.file_download_failed_message,
|
|
229
285
|
)
|
|
230
286
|
changed |= replaced
|
|
287
|
+
error_files.append(filename)
|
|
231
288
|
continue
|
|
232
289
|
|
|
233
|
-
|
|
234
|
-
|
|
290
|
+
mime = guess_type(filename)[0] or ""
|
|
291
|
+
is_image = mime.startswith("image/")
|
|
292
|
+
is_html = mime == "text/html"
|
|
293
|
+
file_type = "image" if is_image else ("html" if is_html else "document")
|
|
235
294
|
|
|
236
|
-
# Images
|
|
237
295
|
if is_image:
|
|
238
296
|
loop_response.message.text, replaced = (
|
|
239
297
|
_replace_container_image_citation(
|
|
@@ -262,6 +320,17 @@ class DisplayCodeInterpreterFilesPostProcessor(
|
|
|
262
320
|
)
|
|
263
321
|
changed |= replaced
|
|
264
322
|
|
|
323
|
+
if replaced:
|
|
324
|
+
replaced_files.append(filename)
|
|
325
|
+
self._log.info(
|
|
326
|
+
"Replaced sandbox link for '%s' (type=%s, content_id=%s)",
|
|
327
|
+
filename,
|
|
328
|
+
file_type,
|
|
329
|
+
content_id,
|
|
330
|
+
)
|
|
331
|
+
else:
|
|
332
|
+
missed_files.append(filename)
|
|
333
|
+
|
|
265
334
|
is_html_rendered = is_html
|
|
266
335
|
if replaced and not (is_image or is_html_rendered or fence_ff_on):
|
|
267
336
|
loop_response.message.references.append(
|
|
@@ -275,15 +344,30 @@ class DisplayCodeInterpreterFilesPostProcessor(
|
|
|
275
344
|
)
|
|
276
345
|
ref_number += 1
|
|
277
346
|
|
|
347
|
+
self._log.info(
|
|
348
|
+
"Stage-1 replacement summary — replaced=%s, missed=%s, error=%s",
|
|
349
|
+
replaced_files,
|
|
350
|
+
missed_files,
|
|
351
|
+
error_files,
|
|
352
|
+
)
|
|
353
|
+
|
|
278
354
|
if fence_ff_on:
|
|
279
355
|
code_blocks = _build_code_blocks(loop_response, self._content_map)
|
|
356
|
+
self._log.info(
|
|
357
|
+
"Fence injection — %d code block(s), files: %s",
|
|
358
|
+
len(code_blocks),
|
|
359
|
+
[f.filename for b in code_blocks for f in b.files],
|
|
360
|
+
)
|
|
280
361
|
_warn_unmatched_code_blocks(self._content_map, code_blocks)
|
|
281
362
|
text_before = loop_response.message.text
|
|
282
363
|
loop_response.message.text = _inject_code_execution_fences(
|
|
283
364
|
loop_response.message.text,
|
|
284
365
|
code_blocks,
|
|
285
366
|
)
|
|
286
|
-
|
|
367
|
+
fences_changed = loop_response.message.text != text_before
|
|
368
|
+
changed |= fences_changed
|
|
369
|
+
if fences_changed:
|
|
370
|
+
self._log.info("Fence injection modified the message text")
|
|
287
371
|
|
|
288
372
|
if self._orphan_code_blocks:
|
|
289
373
|
fence_id = _get_next_fence_id(loop_response.message.text)
|
|
@@ -292,12 +376,29 @@ class DisplayCodeInterpreterFilesPostProcessor(
|
|
|
292
376
|
loop_response.message.text.rstrip() + "\n\n" + orphan_fences
|
|
293
377
|
)
|
|
294
378
|
changed = True
|
|
379
|
+
self._log.info(
|
|
380
|
+
"Appended %d orphan fence(s)", len(self._orphan_code_blocks)
|
|
381
|
+
)
|
|
295
382
|
|
|
296
383
|
_warn_missing_content_ids(loop_response.message.text, self._content_map)
|
|
297
384
|
loop_response.message.text, dangling_replaced = _replace_dangling_sandbox_links(
|
|
298
385
|
loop_response.message.text, self._config.file_download_failed_message
|
|
299
386
|
)
|
|
300
387
|
changed |= dangling_replaced
|
|
388
|
+
if dangling_replaced:
|
|
389
|
+
self._log.warning(
|
|
390
|
+
"apply_postprocessing found and replaced dangling sandbox links"
|
|
391
|
+
)
|
|
392
|
+
|
|
393
|
+
self._log.info(
|
|
394
|
+
"apply_postprocessing finished — changed=%s, replaced=%d, missed=%d, "
|
|
395
|
+
"error=%d, dangling_cleaned=%s",
|
|
396
|
+
changed,
|
|
397
|
+
len(replaced_files),
|
|
398
|
+
len(missed_files),
|
|
399
|
+
len(error_files),
|
|
400
|
+
dangling_replaced,
|
|
401
|
+
)
|
|
301
402
|
|
|
302
403
|
return changed
|
|
303
404
|
|
|
@@ -312,16 +413,29 @@ class DisplayCodeInterpreterFilesPostProcessor(
|
|
|
312
413
|
semaphore: asyncio.Semaphore,
|
|
313
414
|
) -> _ContentInfo | None:
|
|
314
415
|
async with semaphore:
|
|
416
|
+
self._log.info(
|
|
417
|
+
"Downloading container file '%s' (container=%s, file_id=%s)",
|
|
418
|
+
container_file.filename,
|
|
419
|
+
container_file.container_id,
|
|
420
|
+
container_file.file_id,
|
|
421
|
+
)
|
|
315
422
|
retry = self._build_retry()
|
|
316
423
|
file_content = await retry(
|
|
317
424
|
self._client.containers.files.content.retrieve,
|
|
318
425
|
container_id=container_file.container_id,
|
|
319
426
|
file_id=container_file.file_id,
|
|
320
427
|
)
|
|
428
|
+
self._log.info(
|
|
429
|
+
"Downloaded container file '%s' (%d bytes)",
|
|
430
|
+
container_file.filename,
|
|
431
|
+
len(file_content.content),
|
|
432
|
+
)
|
|
321
433
|
|
|
322
|
-
|
|
323
|
-
|
|
434
|
+
mime = guess_type(container_file.filename)[0] or "text/plain"
|
|
435
|
+
self._log.info(
|
|
436
|
+
"Uploading '%s' to knowledge base (mime=%s)",
|
|
324
437
|
container_file.filename,
|
|
438
|
+
mime,
|
|
325
439
|
)
|
|
326
440
|
|
|
327
441
|
assert self._chat_service is not None # Checked in __init__
|
|
@@ -329,29 +443,34 @@ class DisplayCodeInterpreterFilesPostProcessor(
|
|
|
329
443
|
self._chat_service.upload_to_chat_from_bytes_async,
|
|
330
444
|
content=file_content.content,
|
|
331
445
|
content_name=container_file.filename,
|
|
332
|
-
mime_type=
|
|
446
|
+
mime_type=mime,
|
|
333
447
|
skip_ingestion=True,
|
|
334
448
|
hide_in_chat=True,
|
|
335
449
|
)
|
|
336
450
|
|
|
451
|
+
self._log.info(
|
|
452
|
+
"Uploaded '%s' — content_id=%s",
|
|
453
|
+
container_file.filename,
|
|
454
|
+
content.id,
|
|
455
|
+
)
|
|
337
456
|
return _ContentInfo(filename=container_file.filename, content_id=content.id)
|
|
338
457
|
|
|
339
458
|
async def _load_previous_files(self) -> dict[str, str]:
|
|
340
459
|
if self._short_term_memory_manager is None:
|
|
341
460
|
return {}
|
|
342
461
|
|
|
343
|
-
|
|
462
|
+
self._log.info(
|
|
344
463
|
"Loading previously generated code interpreter files from short term memory"
|
|
345
464
|
)
|
|
346
465
|
memory = await self._short_term_memory_manager.load_async()
|
|
347
466
|
|
|
348
467
|
if memory is None:
|
|
349
|
-
|
|
468
|
+
self._log.info(
|
|
350
469
|
"No previously generated code interpreter files found in short term memory"
|
|
351
470
|
)
|
|
352
471
|
return {}
|
|
353
472
|
|
|
354
|
-
|
|
473
|
+
self._log.info(
|
|
355
474
|
"Found %s previously generated code interpreter files", len(memory.root)
|
|
356
475
|
)
|
|
357
476
|
|
|
@@ -414,7 +533,7 @@ class DisplayCodeInterpreterFilesPostProcessor(
|
|
|
414
533
|
hide_in_chat=True,
|
|
415
534
|
)
|
|
416
535
|
except Exception:
|
|
417
|
-
|
|
536
|
+
self._log.exception(
|
|
418
537
|
"Failed to upload orphan code block as txt for call %d ('%s'); "
|
|
419
538
|
"falling back to legacy code block display.",
|
|
420
539
|
i,
|
|
@@ -430,7 +549,7 @@ class DisplayCodeInterpreterFilesPostProcessor(
|
|
|
430
549
|
orphan_blocks.append(
|
|
431
550
|
CodeInterpreterBlock(code=call.code, files=[orphan_file])
|
|
432
551
|
)
|
|
433
|
-
|
|
552
|
+
self._log.info(
|
|
434
553
|
"Uploaded orphan code block as '%s' (content_id=%s)",
|
|
435
554
|
filename,
|
|
436
555
|
content.id,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/_common/base_model_type_attribute.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/_common/config_checker/README.md
RENAMED
|
File without changes
|
{unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/_common/config_checker/__init__.py
RENAMED
|
File without changes
|
{unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/_common/config_checker/__main__.py
RENAMED
|
File without changes
|
{unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/_common/config_checker/cli.py
RENAMED
|
File without changes
|
{unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/_common/config_checker/differ.py
RENAMED
|
File without changes
|
{unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/_common/config_checker/exporter.py
RENAMED
|
File without changes
|
{unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/_common/config_checker/models.py
RENAMED
|
File without changes
|
{unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/_common/config_checker/registry.py
RENAMED
|
File without changes
|
{unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/_common/config_checker/validator.py
RENAMED
|
File without changes
|
{unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/_common/default_language_model.py
RENAMED
|
File without changes
|
{unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/_common/docx_generator/__init__.py
RENAMED
|
File without changes
|
{unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/_common/docx_generator/config.py
RENAMED
|
File without changes
|
|
File without changes
|
{unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/_common/docx_generator/schemas.py
RENAMED
|
File without changes
|
{unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/_common/docx_generator/service.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/_common/endpoint_requestor.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/_common/feature_flags/schema.py
RENAMED
|
File without changes
|
{unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/_common/pydantic/rjsf_tags.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/_common/tests/test_referencing.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/_common/token/token_counting.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/_common/utils/image/encode.py
RENAMED
|
File without changes
|
{unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/_common/utils/jinja/helpers.py
RENAMED
|
File without changes
|
{unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/_common/utils/jinja/render.py
RENAMED
|
File without changes
|
{unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/_common/utils/jinja/schema.py
RENAMED
|
File without changes
|
{unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/_common/utils/jinja/utils.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/_common/utils/write_configuration.py
RENAMED
|
File without changes
|
{unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/_common/validate_required_values.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/evaluation/config.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{unique_toolkit-1.68.9 → unique_toolkit-1.68.10}/unique_toolkit/agentic/evaluation/exception.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|