unique_toolkit 1.70.4__tar.gz → 1.70.6__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.70.4 → unique_toolkit-1.70.6}/PKG-INFO +1 -1
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/pyproject.toml +1 -1
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/postprocessors/generated_files.py +71 -69
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/README.md +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/__init__.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/_common/__init__.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/_common/_base_service.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/_common/_time_utils.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/_common/api_calling/human_verification_manager.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/_common/base_model_type_attribute.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/_common/chunk_relevancy_sorter/config.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/_common/chunk_relevancy_sorter/exception.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/_common/chunk_relevancy_sorter/schemas.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/_common/chunk_relevancy_sorter/service.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/_common/chunk_relevancy_sorter/tests/test_service.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/_common/config_checker/README.md +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/_common/config_checker/__init__.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/_common/config_checker/__main__.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/_common/config_checker/cli.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/_common/config_checker/differ.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/_common/config_checker/exporter.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/_common/config_checker/models.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/_common/config_checker/registry.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/_common/config_checker/validator.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/_common/default_language_model.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/_common/docx_generator/__init__.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/_common/docx_generator/config.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/_common/docx_generator/pandoc_converter.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/_common/docx_generator/schemas.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/_common/docx_generator/service.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/_common/docx_generator/template/Doc Template.docx +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/_common/endpoint_builder.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/_common/endpoint_requestor.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/_common/event_bus.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/_common/exception.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/_common/execution.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/_common/experimental/endpoint_builder.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/_common/experimental/endpoint_requestor.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/_common/experimental/write_up_agent/README.md +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/_common/experimental/write_up_agent/__init__.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/_common/experimental/write_up_agent/agent.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/_common/experimental/write_up_agent/config.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/_common/experimental/write_up_agent/examples/data.csv +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/_common/experimental/write_up_agent/examples/example_usage.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/_common/experimental/write_up_agent/schemas.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/_common/experimental/write_up_agent/services/__init__.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/__init__.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/exceptions.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/service.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/utils.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/__init__.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/config.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/exceptions.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/prompts/config.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/prompts/system_prompt.j2 +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/prompts/user_prompt.j2 +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/service.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/__init__.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/default_template.j2 +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/exceptions.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/service.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/utils.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/_common/experimental/write_up_agent/utils.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/_common/feature_flags/schema.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/_common/pydantic/rjsf_tags.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/_common/pydantic_helpers.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/_common/referencing.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/_common/string_utilities.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/_common/tests/test_referencing.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/_common/tests/test_string_utilities.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/_common/token/__init__.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/_common/token/image_token_counting.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/_common/token/token_counting.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/_common/token/tokenizers/deepseek/tokenizer.json +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/_common/token/tokenizers/qwen/tokenizer.json +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/_common/utils/__init__.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/_common/utils/files.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/_common/utils/image/encode.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/_common/utils/jinja/helpers.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/_common/utils/jinja/render.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/_common/utils/jinja/schema.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/_common/utils/jinja/utils.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/_common/utils/structured_output/__init__.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/_common/utils/structured_output/schema.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/_common/utils/write_configuration.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/_common/validate_required_values.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/_common/validators.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/__init__.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/debug_info_manager/debug_info_manager.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/debug_info_manager/test/test_debug_info_manager.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/evaluation/config.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/evaluation/context_relevancy/prompts/__init__.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/evaluation/context_relevancy/prompts/system_prompt.j2 +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/evaluation/context_relevancy/prompts/user_prompt.j2 +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/evaluation/context_relevancy/schema.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/evaluation/context_relevancy/service.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/evaluation/evaluation_manager.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/evaluation/exception.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/evaluation/hallucination/constants.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/evaluation/hallucination/hallucination_evaluation.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/evaluation/hallucination/prompts/__init__.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/evaluation/hallucination/prompts/system_prompt.j2 +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/evaluation/hallucination/prompts/user_prompt.j2 +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/evaluation/hallucination/service.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/evaluation/hallucination/utils.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/evaluation/output_parser.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/evaluation/schemas.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/evaluation/tests/fixtures.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/evaluation/tests/test_config.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/evaluation/tests/test_context_relevancy_service.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/evaluation/tests/test_hallucination_constants.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/evaluation/tests/test_hallucination_utils.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/evaluation/tests/test_output_parser.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/evaluation/tests/test_prompt_loaders.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/evaluation/utils.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/feature_flags/__init__.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/feature_flags/feature_flags.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/history_manager/history_construction_with_contents.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/history_manager/history_manager.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/history_manager/loop_token_reducer.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/history_manager/utils.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/loop_runner/__init__.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/loop_runner/_iteration_handler_utils.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/loop_runner/_responses_iteration_handler_utils.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/loop_runner/_responses_stream_handler_utils.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/loop_runner/_stream_handler_utils.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/loop_runner/base.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/loop_runner/middleware/__init__.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/loop_runner/middleware/planning/__init__.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/loop_runner/middleware/planning/planning.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/loop_runner/middleware/planning/schema.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/loop_runner/runners/__init__.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/loop_runner/runners/basic.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/loop_runner/runners/mistral/__init__.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/loop_runner/runners/mistral/mistral_runner.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/loop_runner/runners/qwen/__init__.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/loop_runner/runners/qwen/helpers.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/loop_runner/runners/qwen/qwen_runner.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/message_log_manager/__init__.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/message_log_manager/service.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/postprocessor/postprocessor_manager.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/reference_manager/reference_manager.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/responses_api/__init__.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/responses_api/postprocessors/code_display.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/responses_api/postprocessors/generated_files.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/responses_api/stream_handler.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/short_term_memory_manager/persistent_short_term_memory_manager.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/thinking_manager/thinking_manager.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/tools/__init__.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/tools/a2a/__init__.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/tools/a2a/config.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/tools/a2a/evaluation/__init__.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/tools/a2a/evaluation/_utils.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/tools/a2a/evaluation/config.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/tools/a2a/evaluation/evaluator.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/tools/a2a/evaluation/summarization_user_message.j2 +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/tools/a2a/manager.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/tools/a2a/postprocessing/__init__.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/tools/a2a/postprocessing/_display_utils.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/tools/a2a/postprocessing/_ref_utils.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/tools/a2a/postprocessing/config.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/tools/a2a/postprocessing/display.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/tools/a2a/postprocessing/references.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_display.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_display_utils.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_ref_utils.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/tools/a2a/prompts.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/tools/a2a/response_watcher/__init__.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/tools/a2a/response_watcher/service.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/tools/a2a/tool/__init__.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/tools/a2a/tool/_memory.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/tools/a2a/tool/_schema.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/tools/a2a/tool/config.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/tools/a2a/tool/service.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/tools/a2a/tool/test/test_service_utils.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/tools/agent_chunks_hanlder.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/tools/config.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/tools/experimental/__init__.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/tools/experimental/open_file_tool/__init__.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/tools/experimental/open_file_tool/config.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/tools/experimental/open_file_tool/runtime.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/tools/experimental/open_file_tool/tool.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/tools/factory.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/tools/mcp/__init__.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/tools/mcp/manager.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/tools/mcp/models.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/tools/mcp/tool_wrapper.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/tools/openai_builtin/__init__.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/tools/openai_builtin/base.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/__init__.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/config.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/postprocessors/__init__.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/postprocessors/code_display.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/schemas.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/service.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/tools/openai_builtin/manager.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/tools/schemas.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/tools/test/test_mcp_manager.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/tools/test/test_tool_progress_reporter.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/tools/tool.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/tools/tool_manager.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/tools/tool_progress_reporter.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/tools/utils/__init__.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/tools/utils/source_handling/__init__.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/tools/utils/source_handling/schema.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/tools/utils/source_handling/source_formatting.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/tools/utils/source_handling/tests/test_source_formatting.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic_table/__init__.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic_table/schemas.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic_table/service.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/app/__init__.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/app/dev_util.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/app/fast_api_factory.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/app/init_logging.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/app/init_sdk.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/app/performance/async_tasks.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/app/performance/async_wrapper.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/app/schemas.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/app/unique_settings.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/app/verification.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/app/webhook.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/chat/__init__.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/chat/cancellation.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/chat/constants.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/chat/deprecated/service.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/chat/functions.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/chat/rendering.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/chat/responses_api.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/chat/schemas.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/chat/service.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/chat/state.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/chat/utils.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/content/__init__.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/content/constants.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/content/functions.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/content/schemas.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/content/service.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/content/smart_rules.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/content/utils.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/data_extraction/README.md +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/data_extraction/__init__.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/data_extraction/augmented/__init__.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/data_extraction/augmented/service.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/data_extraction/base.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/data_extraction/basic/__init__.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/data_extraction/basic/config.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/data_extraction/basic/prompt.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/data_extraction/basic/service.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/elicitation/__init__.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/elicitation/constants.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/elicitation/exceptions.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/elicitation/functions.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/elicitation/schemas.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/elicitation/service.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/embedding/__init__.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/embedding/constants.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/embedding/functions.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/embedding/schemas.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/embedding/service.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/embedding/utils.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/framework_utilities/__init__.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/framework_utilities/langchain/__init__.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/framework_utilities/langchain/client.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/framework_utilities/langchain/history.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/framework_utilities/openai/__init__.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/framework_utilities/openai/client.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/framework_utilities/openai/message_builder.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/framework_utilities/utils.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/language_model/__init__.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/language_model/_responses_api_utils.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/language_model/builder.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/language_model/constants.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/language_model/default_language_model.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/language_model/functions.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/language_model/infos.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/language_model/prompt.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/language_model/reference.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/language_model/schemas.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/language_model/service.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/language_model/stream_transform.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/language_model/utils.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/monitoring/__init__.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/monitoring/middleware.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/monitoring/registry.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/protocols/support.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/services/__init__.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/services/chat_service.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/services/factory.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/services/knowledge_base.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/short_term_memory/__init__.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/short_term_memory/constants.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/short_term_memory/functions.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/short_term_memory/schemas.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/short_term_memory/service.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/smart_rules/__init__.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/smart_rules/compile.py +0 -0
- {unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/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.70.
|
|
3
|
+
Version: 1.70.6
|
|
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>
|
|
@@ -9,7 +9,6 @@ from typing import NamedTuple, override
|
|
|
9
9
|
|
|
10
10
|
import httpx
|
|
11
11
|
from openai import AsyncOpenAI
|
|
12
|
-
from openai.types.responses import ResponseCodeInterpreterToolCall
|
|
13
12
|
from openai.types.responses.response_output_text import AnnotationContainerFileCitation
|
|
14
13
|
from pydantic import BaseModel, Field, RootModel
|
|
15
14
|
from pydantic.json_schema import SkipJsonSchema
|
|
@@ -587,7 +586,12 @@ class DisplayCodeInterpreterFilesPostProcessor(
|
|
|
587
586
|
missed_files.append(filename)
|
|
588
587
|
|
|
589
588
|
is_html_rendered = is_html
|
|
590
|
-
|
|
589
|
+
has_superscript = f"<sup>{ref_number}</sup>" in loop_response.message.text
|
|
590
|
+
if (
|
|
591
|
+
replaced
|
|
592
|
+
and has_superscript
|
|
593
|
+
and not (is_image or is_html_rendered or fence_ff_on)
|
|
594
|
+
):
|
|
591
595
|
loop_response.message.references.append(
|
|
592
596
|
ContentReference(
|
|
593
597
|
sequence_number=ref_number,
|
|
@@ -613,7 +617,16 @@ class DisplayCodeInterpreterFilesPostProcessor(
|
|
|
613
617
|
len(code_blocks),
|
|
614
618
|
[f.filename for b in code_blocks for f in b.files],
|
|
615
619
|
)
|
|
616
|
-
_warn_unmatched_code_blocks(
|
|
620
|
+
unmatched_blocks = _warn_unmatched_code_blocks(
|
|
621
|
+
self._content_map, code_blocks
|
|
622
|
+
)
|
|
623
|
+
if unmatched_blocks:
|
|
624
|
+
self._log.info(
|
|
625
|
+
"Fence path: %d file(s) have no code-block match and will appear "
|
|
626
|
+
"as plain download links: %s",
|
|
627
|
+
len(unmatched_blocks),
|
|
628
|
+
list(unmatched_blocks),
|
|
629
|
+
)
|
|
617
630
|
text_before = loop_response.message.text
|
|
618
631
|
loop_response.message.text = _inject_code_execution_fences(
|
|
619
632
|
loop_response.message.text,
|
|
@@ -625,19 +638,27 @@ class DisplayCodeInterpreterFilesPostProcessor(
|
|
|
625
638
|
self._log.info("Fence injection modified the message text")
|
|
626
639
|
|
|
627
640
|
if self._orphan_code_blocks:
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
641
|
+
for block in self._orphan_code_blocks:
|
|
642
|
+
for file in block.files:
|
|
643
|
+
loop_response.message.references.append(
|
|
644
|
+
ContentReference(
|
|
645
|
+
sequence_number=ref_number,
|
|
646
|
+
source_id=file.content_id,
|
|
647
|
+
source="node-ingestion-chunks",
|
|
648
|
+
url=f"unique://content/{file.content_id}",
|
|
649
|
+
name=file.filename,
|
|
650
|
+
)
|
|
651
|
+
)
|
|
652
|
+
ref_number += 1
|
|
633
653
|
changed = True
|
|
634
654
|
self._log.info(
|
|
635
|
-
"
|
|
655
|
+
"Added %d orphan code block(s) to message references",
|
|
656
|
+
len(self._orphan_code_blocks),
|
|
636
657
|
)
|
|
637
658
|
|
|
638
659
|
_warn_missing_content_ids(loop_response.message.text, self._content_map)
|
|
639
660
|
loop_response.message.text, dangling_replaced = _replace_dangling_sandbox_links(
|
|
640
|
-
loop_response.message.text
|
|
661
|
+
loop_response.message.text
|
|
641
662
|
)
|
|
642
663
|
changed |= dangling_replaced
|
|
643
664
|
if dangling_replaced:
|
|
@@ -949,13 +970,12 @@ class DisplayCodeInterpreterFilesPostProcessor(
|
|
|
949
970
|
async def _upload_orphan_code_as_txt(
|
|
950
971
|
self, loop_response: ResponsesLanguageModelStreamResponse
|
|
951
972
|
) -> list[CodeInterpreterBlock]:
|
|
952
|
-
"""Upload
|
|
973
|
+
"""Upload source **code** from calls that produced no container files as .txt artifacts.
|
|
953
974
|
|
|
954
975
|
When code interpreter runs but generates no files or images, the response
|
|
955
976
|
text has no sandbox links for fence injection to hook onto. This method
|
|
956
|
-
converts those "orphan" calls into downloadable .txt files
|
|
957
|
-
postprocessor can attach a
|
|
958
|
-
Execution UI is shown instead of the legacy <details> block.
|
|
977
|
+
converts those "orphan" calls into downloadable .txt files (the executed
|
|
978
|
+
code, not stdout) so the postprocessor can attach a reference for download.
|
|
959
979
|
|
|
960
980
|
Called only when the fence feature flag is enabled. Skipped entirely if
|
|
961
981
|
any container files were produced (normal fencing handles those).
|
|
@@ -976,13 +996,9 @@ class DisplayCodeInterpreterFilesPostProcessor(
|
|
|
976
996
|
if not call.code:
|
|
977
997
|
continue
|
|
978
998
|
|
|
979
|
-
#
|
|
980
|
-
# the
|
|
981
|
-
|
|
982
|
-
# docs/manual_examples_for_docs/code_execution_openai_client.py). If
|
|
983
|
-
# `outputs` is omitted, call.outputs is null and we fall back to the
|
|
984
|
-
# source code as the downloadable txt.
|
|
985
|
-
txt_content = _collect_stdout(call) or call.code
|
|
999
|
+
# Always persist the executed source as the downloadable .txt (not stdout),
|
|
1000
|
+
# so the attachment matches what ran in the sandbox.
|
|
1001
|
+
txt_content = call.code
|
|
986
1002
|
filename = f"code_{i + 1}.txt" if use_numeric_suffix else "code.txt"
|
|
987
1003
|
|
|
988
1004
|
try:
|
|
@@ -1020,38 +1036,6 @@ class DisplayCodeInterpreterFilesPostProcessor(
|
|
|
1020
1036
|
return orphan_blocks
|
|
1021
1037
|
|
|
1022
1038
|
|
|
1023
|
-
def _collect_stdout(call: ResponseCodeInterpreterToolCall) -> str:
|
|
1024
|
-
"""Collect all stdout logs from a code interpreter call's outputs."""
|
|
1025
|
-
if not call.outputs:
|
|
1026
|
-
return ""
|
|
1027
|
-
return "\n".join(output.logs for output in call.outputs if output.type == "logs")
|
|
1028
|
-
|
|
1029
|
-
|
|
1030
|
-
def _get_next_fence_id(text: str) -> int:
|
|
1031
|
-
"""Return the next available fence id by scanning existing fences in the text."""
|
|
1032
|
-
existing = re.findall(r"````(?:imgWithSource|fileWithSource)\(id='(\d+)'", text)
|
|
1033
|
-
if not existing:
|
|
1034
|
-
return 1
|
|
1035
|
-
return max(int(fid) for fid in existing) + 1
|
|
1036
|
-
|
|
1037
|
-
|
|
1038
|
-
def _build_orphan_fences(
|
|
1039
|
-
blocks: list[CodeInterpreterBlock], start_fence_id: int
|
|
1040
|
-
) -> str:
|
|
1041
|
-
"""Build concatenated fence text for orphan code blocks.
|
|
1042
|
-
|
|
1043
|
-
Orphan blocks have no inline ref in the message text, so their fences are
|
|
1044
|
-
appended directly rather than injected via pattern replacement.
|
|
1045
|
-
"""
|
|
1046
|
-
fence_id = start_fence_id
|
|
1047
|
-
parts: list[str] = []
|
|
1048
|
-
for block in blocks:
|
|
1049
|
-
for file in block.files:
|
|
1050
|
-
parts.append(_build_file_fence(file, block.code, fence_id))
|
|
1051
|
-
fence_id += 1
|
|
1052
|
-
return "\n".join(parts)
|
|
1053
|
-
|
|
1054
|
-
|
|
1055
1039
|
def _get_file_type(filename: str) -> CodeInterpreterFileType:
|
|
1056
1040
|
mime = guess_type(filename)[0] or ""
|
|
1057
1041
|
if mime.startswith("image/"):
|
|
@@ -1383,33 +1367,41 @@ def _warn_missing_content_ids(text: str, content_map: dict[str, str | None]) ->
|
|
|
1383
1367
|
# so the entire `[label](sandbox://...)` token can be replaced rather than just the URL.
|
|
1384
1368
|
_SANDBOX_MARKDOWN_LINK_RE = re.compile(r"!?\[.*?\]\(sandbox:/mnt/data/\S+?\)")
|
|
1385
1369
|
|
|
1370
|
+
# Extracts the bare filename from a sandbox URL like `sandbox:/mnt/data/foo.csv`.
|
|
1371
|
+
_SANDBOX_FILENAME_RE = re.compile(r"sandbox:/mnt/data/([^)\s]+)")
|
|
1372
|
+
|
|
1386
1373
|
|
|
1387
|
-
def _replace_dangling_sandbox_links(text: str
|
|
1388
|
-
"""Replace any remaining sandbox:/mnt/data/ markdown links with
|
|
1374
|
+
def _replace_dangling_sandbox_links(text: str) -> tuple[str, bool]:
|
|
1375
|
+
"""Replace any remaining sandbox:/mnt/data/ markdown links with a per-file notice.
|
|
1389
1376
|
|
|
1390
1377
|
A dangling link means either the LLM hallucinated a file reference (the sandbox
|
|
1391
1378
|
link appears in the text but no matching container file annotation was emitted by
|
|
1392
1379
|
OpenAI), or the link format did not match the expected regex in stage-1. In both
|
|
1393
1380
|
cases the user would see a broken link; this function replaces each such link with
|
|
1394
|
-
the
|
|
1381
|
+
an actionable message that names the specific file, and logs a warning so the
|
|
1382
|
+
incident is visible in production logs.
|
|
1395
1383
|
"""
|
|
1396
|
-
|
|
1397
|
-
if not matches:
|
|
1384
|
+
if not _SANDBOX_MARKDOWN_LINK_RE.search(text):
|
|
1398
1385
|
return text, False
|
|
1399
|
-
|
|
1386
|
+
|
|
1387
|
+
def _replacement(m: re.Match[str]) -> str:
|
|
1388
|
+
filename_match = _SANDBOX_FILENAME_RE.search(m.group())
|
|
1389
|
+
filename = filename_match.group(1) if filename_match else "the file"
|
|
1400
1390
|
logger.warning(
|
|
1401
1391
|
"Dangling sandbox link found in final text: '%s'. "
|
|
1402
1392
|
"The file was either never uploaded or the link format did not match "
|
|
1403
|
-
"the expected pattern — replacing with
|
|
1404
|
-
|
|
1393
|
+
"the expected pattern — replacing with per-file notice.",
|
|
1394
|
+
m.group(),
|
|
1405
1395
|
)
|
|
1406
|
-
|
|
1396
|
+
return f"⚠️ The file *{filename}* could not be retrieved. You can ask me to regenerate it."
|
|
1397
|
+
|
|
1398
|
+
return _SANDBOX_MARKDOWN_LINK_RE.sub(_replacement, text), True
|
|
1407
1399
|
|
|
1408
1400
|
|
|
1409
1401
|
def _warn_unmatched_code_blocks(
|
|
1410
1402
|
content_map: dict[str, str | None],
|
|
1411
1403
|
code_blocks: list[CodeInterpreterBlock],
|
|
1412
|
-
) ->
|
|
1404
|
+
) -> dict[str, str]:
|
|
1413
1405
|
"""Warn for files that were uploaded but could not be matched to any code block.
|
|
1414
1406
|
|
|
1415
1407
|
When the fence feature flag is on, every uploaded file should map to a code block
|
|
@@ -1417,8 +1409,13 @@ def _warn_unmatched_code_blocks(
|
|
|
1417
1409
|
matched (e.g. the LLM used a variable for the output path rather than a literal
|
|
1418
1410
|
string) it falls back to a plain unique://content/ link with no code context.
|
|
1419
1411
|
The user can still download it, but the frontend artifact UI will not be shown.
|
|
1412
|
+
|
|
1413
|
+
Returns:
|
|
1414
|
+
Mapping of filename → content_id for every file that could not be matched
|
|
1415
|
+
to a code block. Callers may use this to inject additional fallback links.
|
|
1420
1416
|
"""
|
|
1421
1417
|
fenced_filenames = {f.filename for block in code_blocks for f in block.files}
|
|
1418
|
+
unmatched: dict[str, str] = {}
|
|
1422
1419
|
for filename, content_id in content_map.items():
|
|
1423
1420
|
if content_id is None:
|
|
1424
1421
|
continue
|
|
@@ -1434,6 +1431,8 @@ def _warn_unmatched_code_blocks(
|
|
|
1434
1431
|
content_id,
|
|
1435
1432
|
filename,
|
|
1436
1433
|
)
|
|
1434
|
+
unmatched[filename] = content_id
|
|
1435
|
+
return unmatched
|
|
1437
1436
|
|
|
1438
1437
|
|
|
1439
1438
|
def _get_next_ref_number(references: list[ContentReference] | None) -> int:
|
|
@@ -1474,11 +1473,12 @@ def _replace_container_image_citation(
|
|
|
1474
1473
|
if not re.search(image_markdown, text):
|
|
1475
1474
|
logger.warning(
|
|
1476
1475
|
"No sandbox link found for image '%s' (content_id=%s); "
|
|
1477
|
-
"file was uploaded but the LLM did not reference it —
|
|
1476
|
+
"file was uploaded but the LLM did not reference it — appending fallback link.",
|
|
1478
1477
|
filename,
|
|
1479
1478
|
content_id,
|
|
1480
1479
|
)
|
|
1481
|
-
|
|
1480
|
+
fallback = f"\n\n📎 [{filename}](unique://content/{content_id})"
|
|
1481
|
+
return text + fallback, True
|
|
1482
1482
|
|
|
1483
1483
|
logger.info("Inserting image citation for '%s'", filename)
|
|
1484
1484
|
return re.sub(
|
|
@@ -1497,11 +1497,12 @@ def _replace_container_html_citation(
|
|
|
1497
1497
|
if not re.search(html_markdown, text):
|
|
1498
1498
|
logger.warning(
|
|
1499
1499
|
"No sandbox link found for HTML file '%s' (content_id=%s); "
|
|
1500
|
-
"file was uploaded but the LLM did not reference it —
|
|
1500
|
+
"file was uploaded but the LLM did not reference it — appending fallback link.",
|
|
1501
1501
|
filename,
|
|
1502
1502
|
content_id,
|
|
1503
1503
|
)
|
|
1504
|
-
|
|
1504
|
+
fallback = f"\n\n📎 [{filename}](unique://content/{content_id})"
|
|
1505
|
+
return text + fallback, True
|
|
1505
1506
|
|
|
1506
1507
|
logger.info("Inserting HTML rendering block for '%s'", filename)
|
|
1507
1508
|
block = f"```HtmlRendering\n800px\n600px\n\nunique://content/{content_id}\n\n```"
|
|
@@ -1554,11 +1555,12 @@ def _replace_container_file_citation(
|
|
|
1554
1555
|
if not re.search(file_markdown, text):
|
|
1555
1556
|
logger.warning(
|
|
1556
1557
|
"No sandbox link found for file '%s' (content_id=%s); "
|
|
1557
|
-
"file was uploaded but the LLM did not reference it —
|
|
1558
|
+
"file was uploaded but the LLM did not reference it — appending fallback link.",
|
|
1558
1559
|
filename,
|
|
1559
1560
|
content_id,
|
|
1560
1561
|
)
|
|
1561
|
-
|
|
1562
|
+
fallback = f"\n\n📎 [{filename}](unique://content/{content_id})"
|
|
1563
|
+
return text + fallback, True
|
|
1562
1564
|
|
|
1563
1565
|
logger.info("Displaying file %s", filename)
|
|
1564
1566
|
replacement = (
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/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.70.4 → unique_toolkit-1.70.6}/unique_toolkit/_common/config_checker/README.md
RENAMED
|
File without changes
|
{unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/_common/config_checker/__init__.py
RENAMED
|
File without changes
|
{unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/_common/config_checker/__main__.py
RENAMED
|
File without changes
|
{unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/_common/config_checker/cli.py
RENAMED
|
File without changes
|
{unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/_common/config_checker/differ.py
RENAMED
|
File without changes
|
{unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/_common/config_checker/exporter.py
RENAMED
|
File without changes
|
{unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/_common/config_checker/models.py
RENAMED
|
File without changes
|
{unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/_common/config_checker/registry.py
RENAMED
|
File without changes
|
{unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/_common/config_checker/validator.py
RENAMED
|
File without changes
|
{unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/_common/default_language_model.py
RENAMED
|
File without changes
|
{unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/_common/docx_generator/__init__.py
RENAMED
|
File without changes
|
{unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/_common/docx_generator/config.py
RENAMED
|
File without changes
|
|
File without changes
|
{unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/_common/docx_generator/schemas.py
RENAMED
|
File without changes
|
{unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/_common/docx_generator/service.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/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.70.4 → unique_toolkit-1.70.6}/unique_toolkit/_common/feature_flags/schema.py
RENAMED
|
File without changes
|
{unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/_common/pydantic/rjsf_tags.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/_common/tests/test_referencing.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/_common/token/image_token_counting.py
RENAMED
|
File without changes
|
{unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/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.70.4 → unique_toolkit-1.70.6}/unique_toolkit/_common/utils/image/encode.py
RENAMED
|
File without changes
|
{unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/_common/utils/jinja/helpers.py
RENAMED
|
File without changes
|
{unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/_common/utils/jinja/render.py
RENAMED
|
File without changes
|
{unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/_common/utils/jinja/schema.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/_common/utils/write_configuration.py
RENAMED
|
File without changes
|
{unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/_common/validate_required_values.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
|
{unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/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
|
|
File without changes
|
{unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/evaluation/output_parser.py
RENAMED
|
File without changes
|
{unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/evaluation/schemas.py
RENAMED
|
File without changes
|
{unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/evaluation/tests/fixtures.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
|
{unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/feature_flags/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/history_manager/utils.py
RENAMED
|
File without changes
|
{unique_toolkit-1.70.4 → unique_toolkit-1.70.6}/unique_toolkit/agentic/loop_runner/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|