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