unique_toolkit 1.72.0__tar.gz → 1.73.0__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.72.0 → unique_toolkit-1.73.0}/PKG-INFO +1 -1
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/pyproject.toml +1 -1
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/loop_runner/__init__.py +2 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/loop_runner/middleware/__init__.py +2 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/loop_runner/middleware/planning/__init__.py +7 -1
- unique_toolkit-1.73.0/unique_toolkit/agentic/loop_runner/middleware/planning/planning.py +189 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/chat/responses_api.py +15 -8
- unique_toolkit-1.72.0/unique_toolkit/agentic/loop_runner/middleware/planning/planning.py +0 -94
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/README.md +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/__init__.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/_common/__init__.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/_common/_base_service.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/_common/_time_utils.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/_common/api_calling/human_verification_manager.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/_common/base_model_type_attribute.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/_common/chunk_relevancy_sorter/config.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/_common/chunk_relevancy_sorter/exception.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/_common/chunk_relevancy_sorter/schemas.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/_common/chunk_relevancy_sorter/service.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/_common/chunk_relevancy_sorter/tests/test_service.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/_common/config_checker/README.md +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/_common/config_checker/__init__.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/_common/config_checker/__main__.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/_common/config_checker/cli.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/_common/config_checker/differ.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/_common/config_checker/exporter.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/_common/config_checker/models.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/_common/config_checker/registry.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/_common/config_checker/validator.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/_common/default_language_model.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/_common/docx_generator/__init__.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/_common/docx_generator/config.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/_common/docx_generator/pandoc_converter.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/_common/docx_generator/schemas.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/_common/docx_generator/service.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/_common/docx_generator/template/Doc Template.docx +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/_common/endpoint_builder.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/_common/endpoint_requestor.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/_common/event_bus.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/_common/exception.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/_common/execution.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/_common/experimental/endpoint_builder.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/_common/experimental/endpoint_requestor.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/_common/experimental/write_up_agent/README.md +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/_common/experimental/write_up_agent/__init__.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/_common/experimental/write_up_agent/agent.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/_common/experimental/write_up_agent/config.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/_common/experimental/write_up_agent/examples/data.csv +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/_common/experimental/write_up_agent/examples/example_usage.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/_common/experimental/write_up_agent/schemas.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/_common/experimental/write_up_agent/services/__init__.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/__init__.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/exceptions.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/service.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/utils.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/__init__.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/config.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/exceptions.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/prompts/config.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/prompts/system_prompt.j2 +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/prompts/user_prompt.j2 +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/service.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/__init__.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/default_template.j2 +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/exceptions.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/service.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/utils.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/_common/experimental/write_up_agent/utils.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/_common/feature_flags/schema.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/_common/pydantic/rjsf_tags.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/_common/pydantic_helpers.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/_common/referencing.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/_common/string_utilities.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/_common/tests/test_referencing.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/_common/tests/test_string_utilities.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/_common/token/__init__.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/_common/token/image_token_counting.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/_common/token/token_counting.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/_common/token/tokenizers/deepseek/tokenizer.json +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/_common/token/tokenizers/qwen/tokenizer.json +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/_common/utils/__init__.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/_common/utils/files.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/_common/utils/image/encode.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/_common/utils/jinja/helpers.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/_common/utils/jinja/render.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/_common/utils/jinja/schema.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/_common/utils/jinja/utils.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/_common/utils/structured_output/__init__.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/_common/utils/structured_output/schema.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/_common/utils/write_configuration.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/_common/validate_required_values.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/_common/validators.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/__init__.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/debug_info_manager/debug_info_manager.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/debug_info_manager/test/test_debug_info_manager.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/evaluation/config.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/evaluation/context_relevancy/prompts/__init__.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/evaluation/context_relevancy/prompts/system_prompt.j2 +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/evaluation/context_relevancy/prompts/user_prompt.j2 +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/evaluation/context_relevancy/schema.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/evaluation/context_relevancy/service.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/evaluation/evaluation_manager.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/evaluation/exception.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/evaluation/hallucination/constants.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/evaluation/hallucination/hallucination_evaluation.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/evaluation/hallucination/prompts/__init__.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/evaluation/hallucination/prompts/system_prompt.j2 +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/evaluation/hallucination/prompts/user_prompt.j2 +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/evaluation/hallucination/service.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/evaluation/hallucination/utils.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/evaluation/output_parser.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/evaluation/schemas.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/evaluation/tests/fixtures.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/evaluation/tests/test_config.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/evaluation/tests/test_context_relevancy_service.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/evaluation/tests/test_hallucination_constants.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/evaluation/tests/test_hallucination_utils.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/evaluation/tests/test_output_parser.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/evaluation/tests/test_prompt_loaders.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/evaluation/utils.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/feature_flags/__init__.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/feature_flags/feature_flags.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/history_manager/history_construction_with_contents.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/history_manager/history_manager.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/history_manager/loop_token_reducer.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/history_manager/utils.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/loop_runner/_iteration_handler_utils.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/loop_runner/_responses_iteration_handler_utils.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/loop_runner/_responses_stream_handler_utils.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/loop_runner/_stream_handler_utils.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/loop_runner/base.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/loop_runner/middleware/planning/schema.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/loop_runner/runners/__init__.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/loop_runner/runners/basic.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/loop_runner/runners/mistral/__init__.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/loop_runner/runners/mistral/mistral_runner.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/loop_runner/runners/qwen/__init__.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/loop_runner/runners/qwen/helpers.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/loop_runner/runners/qwen/qwen_runner.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/message_log_manager/__init__.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/message_log_manager/service.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/postprocessor/postprocessor_manager.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/reference_manager/reference_manager.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/responses_api/__init__.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/responses_api/postprocessors/code_display.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/responses_api/postprocessors/generated_files.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/responses_api/stream_handler.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/short_term_memory_manager/persistent_short_term_memory_manager.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/thinking_manager/thinking_manager.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/tools/__init__.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/tools/a2a/__init__.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/tools/a2a/config.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/tools/a2a/evaluation/__init__.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/tools/a2a/evaluation/_utils.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/tools/a2a/evaluation/config.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/tools/a2a/evaluation/evaluator.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/tools/a2a/evaluation/summarization_user_message.j2 +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/tools/a2a/manager.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/tools/a2a/postprocessing/__init__.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/tools/a2a/postprocessing/_display_utils.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/tools/a2a/postprocessing/_ref_utils.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/tools/a2a/postprocessing/config.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/tools/a2a/postprocessing/display.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/tools/a2a/postprocessing/references.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_display.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_display_utils.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_ref_utils.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/tools/a2a/prompts.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/tools/a2a/response_watcher/__init__.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/tools/a2a/response_watcher/service.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/tools/a2a/tool/__init__.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/tools/a2a/tool/_memory.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/tools/a2a/tool/_schema.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/tools/a2a/tool/config.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/tools/a2a/tool/service.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/tools/a2a/tool/test/test_service_utils.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/tools/agent_chunks_hanlder.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/tools/config.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/tools/experimental/__init__.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/tools/experimental/open_file_tool/__init__.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/tools/experimental/open_file_tool/config.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/tools/experimental/open_file_tool/runtime.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/tools/experimental/open_file_tool/tool.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/tools/factory.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/tools/mcp/__init__.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/tools/mcp/manager.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/tools/mcp/models.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/tools/mcp/tool_wrapper.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/tools/openai_builtin/__init__.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/tools/openai_builtin/base.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/__init__.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/config.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/postprocessors/__init__.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/postprocessors/code_display.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/postprocessors/generated_files.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/schemas.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/service.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/tools/openai_builtin/manager.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/tools/schemas.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/tools/test/test_mcp_manager.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/tools/test/test_tool_progress_reporter.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/tools/tool.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/tools/tool_manager.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/tools/tool_progress_reporter.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/tools/utils/__init__.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/tools/utils/source_handling/__init__.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/tools/utils/source_handling/schema.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/tools/utils/source_handling/source_formatting.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/tools/utils/source_handling/tests/test_source_formatting.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic_table/__init__.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic_table/schemas.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic_table/service.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/app/__init__.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/app/chat_event_filter_options_settings.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/app/dev_util.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/app/fast_api_factory.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/app/feature_flags.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/app/find_env_file.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/app/init_logging.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/app/init_sdk.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/app/performance/async_tasks.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/app/performance/async_wrapper.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/app/schemas.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/app/unique_settings.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/app/verification.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/app/webhook.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/chat/__init__.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/chat/cancellation.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/chat/constants.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/chat/deprecated/service.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/chat/functions.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/chat/rendering.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/chat/schemas.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/chat/service.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/chat/state.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/chat/utils.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/content/__init__.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/content/constants.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/content/functions.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/content/schemas.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/content/service.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/content/smart_rules.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/content/utils.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/data_extraction/README.md +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/data_extraction/__init__.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/data_extraction/augmented/__init__.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/data_extraction/augmented/service.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/data_extraction/base.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/data_extraction/basic/__init__.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/data_extraction/basic/config.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/data_extraction/basic/prompt.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/data_extraction/basic/service.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/elicitation/__init__.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/elicitation/constants.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/elicitation/exceptions.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/elicitation/functions.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/elicitation/schemas.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/elicitation/service.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/embedding/__init__.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/embedding/constants.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/embedding/functions.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/embedding/schemas.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/embedding/service.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/embedding/utils.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/framework_utilities/__init__.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/framework_utilities/langchain/__init__.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/framework_utilities/langchain/client.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/framework_utilities/langchain/history.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/framework_utilities/openai/__init__.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/framework_utilities/openai/client.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/framework_utilities/openai/message_builder.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/framework_utilities/utils.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/language_model/__init__.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/language_model/_responses_api_utils.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/language_model/builder.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/language_model/constants.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/language_model/default_language_model.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/language_model/functions.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/language_model/infos.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/language_model/prompt.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/language_model/reference.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/language_model/schemas.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/language_model/service.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/language_model/stream_transform.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/language_model/utils.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/monitoring/__init__.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/monitoring/middleware.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/monitoring/registry.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/protocols/support.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/services/__init__.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/services/chat_service.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/services/factory.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/services/knowledge_base.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/short_term_memory/__init__.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/short_term_memory/constants.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/short_term_memory/functions.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/short_term_memory/schemas.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/short_term_memory/service.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/smart_rules/__init__.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/smart_rules/compile.py +0 -0
- {unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/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.
|
|
3
|
+
Version: 1.73.0
|
|
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>
|
{unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/loop_runner/__init__.py
RENAMED
|
@@ -11,6 +11,7 @@ from unique_toolkit.agentic.loop_runner.middleware import (
|
|
|
11
11
|
PlanningConfig,
|
|
12
12
|
PlanningMiddleware,
|
|
13
13
|
PlanningSchemaConfig,
|
|
14
|
+
ResponsesPlanningMiddleware,
|
|
14
15
|
)
|
|
15
16
|
from unique_toolkit.agentic.loop_runner.runners import (
|
|
16
17
|
QWEN_FORCED_TOOL_CALL_INSTRUCTION,
|
|
@@ -28,6 +29,7 @@ __all__ = [
|
|
|
28
29
|
"PlanningConfig",
|
|
29
30
|
"PlanningMiddleware",
|
|
30
31
|
"PlanningSchemaConfig",
|
|
32
|
+
"ResponsesPlanningMiddleware",
|
|
31
33
|
"BasicLoopIterationRunnerConfig",
|
|
32
34
|
"BasicLoopIterationRunner",
|
|
33
35
|
"MistralLoopIterationRunner",
|
|
@@ -2,10 +2,12 @@ from unique_toolkit.agentic.loop_runner.middleware.planning import (
|
|
|
2
2
|
PlanningConfig,
|
|
3
3
|
PlanningMiddleware,
|
|
4
4
|
PlanningSchemaConfig,
|
|
5
|
+
ResponsesPlanningMiddleware,
|
|
5
6
|
)
|
|
6
7
|
|
|
7
8
|
__all__ = [
|
|
8
9
|
"PlanningConfig",
|
|
9
10
|
"PlanningMiddleware",
|
|
10
11
|
"PlanningSchemaConfig",
|
|
12
|
+
"ResponsesPlanningMiddleware",
|
|
11
13
|
]
|
|
@@ -1,9 +1,15 @@
|
|
|
1
1
|
from unique_toolkit.agentic.loop_runner.middleware.planning.planning import (
|
|
2
2
|
PlanningConfig,
|
|
3
3
|
PlanningMiddleware,
|
|
4
|
+
ResponsesPlanningMiddleware,
|
|
4
5
|
)
|
|
5
6
|
from unique_toolkit.agentic.loop_runner.middleware.planning.schema import (
|
|
6
7
|
PlanningSchemaConfig,
|
|
7
8
|
)
|
|
8
9
|
|
|
9
|
-
__all__ = [
|
|
10
|
+
__all__ = [
|
|
11
|
+
"PlanningMiddleware",
|
|
12
|
+
"ResponsesPlanningMiddleware",
|
|
13
|
+
"PlanningConfig",
|
|
14
|
+
"PlanningSchemaConfig",
|
|
15
|
+
]
|
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
import json
|
|
2
|
+
import logging
|
|
3
|
+
from typing import Unpack
|
|
4
|
+
|
|
5
|
+
from openai import AsyncOpenAI
|
|
6
|
+
from openai.types.responses import (
|
|
7
|
+
Response,
|
|
8
|
+
ResponseFormatTextJSONSchemaConfigParam,
|
|
9
|
+
ResponseInputItemParam,
|
|
10
|
+
ResponseTextConfigParam,
|
|
11
|
+
)
|
|
12
|
+
from pydantic import BaseModel, Field
|
|
13
|
+
|
|
14
|
+
from unique_toolkit import LanguageModelService
|
|
15
|
+
from unique_toolkit._common.execution import failsafe_async
|
|
16
|
+
from unique_toolkit._common.pydantic_helpers import get_configuration_dict
|
|
17
|
+
from unique_toolkit.agentic.history_manager.history_manager import HistoryManager
|
|
18
|
+
from unique_toolkit.agentic.loop_runner.base import (
|
|
19
|
+
LoopIterationRunner,
|
|
20
|
+
ResponsesLoopIterationRunner,
|
|
21
|
+
_LoopIterationRunnerKwargs,
|
|
22
|
+
_ResponsesLoopIterationRunnerKwargs,
|
|
23
|
+
)
|
|
24
|
+
from unique_toolkit.agentic.loop_runner.middleware.planning.schema import (
|
|
25
|
+
PlanningSchemaConfig,
|
|
26
|
+
get_planning_schema,
|
|
27
|
+
)
|
|
28
|
+
from unique_toolkit.chat.responses_api import convert_messages_to_openai
|
|
29
|
+
from unique_toolkit.chat.service import LanguageModelStreamResponse
|
|
30
|
+
from unique_toolkit.language_model import (
|
|
31
|
+
LanguageModelAssistantMessage,
|
|
32
|
+
LanguageModelUserMessage,
|
|
33
|
+
)
|
|
34
|
+
from unique_toolkit.language_model.schemas import (
|
|
35
|
+
LanguageModelMessages,
|
|
36
|
+
ResponsesLanguageModelStreamResponse,
|
|
37
|
+
)
|
|
38
|
+
|
|
39
|
+
_LOGGER = logging.getLogger(__name__)
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
class PlanningConfig(BaseModel):
|
|
43
|
+
model_config = get_configuration_dict()
|
|
44
|
+
|
|
45
|
+
planning_schema_config: PlanningSchemaConfig = PlanningSchemaConfig()
|
|
46
|
+
ignored_options: list[str] = Field(
|
|
47
|
+
default=["parallel_tool_calls"],
|
|
48
|
+
description="A list of options to ignore when calling the LLM for the planning step.",
|
|
49
|
+
)
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
class PlanningMiddleware(LoopIterationRunner):
|
|
53
|
+
def __init__(
|
|
54
|
+
self,
|
|
55
|
+
*,
|
|
56
|
+
loop_runner: LoopIterationRunner,
|
|
57
|
+
config: PlanningConfig,
|
|
58
|
+
llm_service: LanguageModelService,
|
|
59
|
+
history_manager: HistoryManager | None = None,
|
|
60
|
+
) -> None:
|
|
61
|
+
self._config = config
|
|
62
|
+
self._loop_runner = loop_runner
|
|
63
|
+
self._history_manager = history_manager
|
|
64
|
+
self._llm_service = llm_service
|
|
65
|
+
|
|
66
|
+
@failsafe_async(failure_return_value=None, logger=_LOGGER)
|
|
67
|
+
async def _run_plan_step(
|
|
68
|
+
self, **kwargs: Unpack[_LoopIterationRunnerKwargs]
|
|
69
|
+
) -> LanguageModelAssistantMessage | None:
|
|
70
|
+
planning_schema = get_planning_schema(self._config.planning_schema_config)
|
|
71
|
+
|
|
72
|
+
other_options = {
|
|
73
|
+
k: v
|
|
74
|
+
for k, v in kwargs.get("other_options", {}).items()
|
|
75
|
+
if k not in self._config.ignored_options
|
|
76
|
+
}
|
|
77
|
+
response = await self._llm_service.complete_async(
|
|
78
|
+
messages=kwargs["messages"],
|
|
79
|
+
model_name=kwargs["model"].name,
|
|
80
|
+
structured_output_model=planning_schema,
|
|
81
|
+
other_options=other_options,
|
|
82
|
+
)
|
|
83
|
+
|
|
84
|
+
if response.choices[0].message.parsed is None:
|
|
85
|
+
_LOGGER.info("Error parsing planning response")
|
|
86
|
+
return None
|
|
87
|
+
|
|
88
|
+
return LanguageModelAssistantMessage(
|
|
89
|
+
content=json.dumps(response.choices[0].message.parsed)
|
|
90
|
+
)
|
|
91
|
+
|
|
92
|
+
async def __call__(
|
|
93
|
+
self, **kwargs: Unpack[_LoopIterationRunnerKwargs]
|
|
94
|
+
) -> LanguageModelStreamResponse:
|
|
95
|
+
assistant_message = await self._run_plan_step(**kwargs)
|
|
96
|
+
|
|
97
|
+
if assistant_message is None:
|
|
98
|
+
_LOGGER.info(
|
|
99
|
+
"Error executing planning step, proceeding without planning step"
|
|
100
|
+
)
|
|
101
|
+
return await self._loop_runner(**kwargs)
|
|
102
|
+
|
|
103
|
+
if self._history_manager is not None:
|
|
104
|
+
self._history_manager.add_assistant_message(assistant_message)
|
|
105
|
+
|
|
106
|
+
kwargs["messages"] = (
|
|
107
|
+
kwargs["messages"].builder().append(assistant_message).build()
|
|
108
|
+
)
|
|
109
|
+
return await self._loop_runner(**kwargs)
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
class ResponsesPlanningMiddleware(ResponsesLoopIterationRunner):
|
|
113
|
+
def __init__(
|
|
114
|
+
self,
|
|
115
|
+
*,
|
|
116
|
+
loop_runner: ResponsesLoopIterationRunner,
|
|
117
|
+
config: PlanningConfig,
|
|
118
|
+
openai_client: AsyncOpenAI,
|
|
119
|
+
history_manager: HistoryManager | None = None,
|
|
120
|
+
) -> None:
|
|
121
|
+
self._config = config
|
|
122
|
+
self._loop_runner = loop_runner
|
|
123
|
+
self._history_manager = history_manager
|
|
124
|
+
self._openai_client = openai_client
|
|
125
|
+
|
|
126
|
+
@failsafe_async(failure_return_value=None, logger=_LOGGER)
|
|
127
|
+
async def _run_plan_step(
|
|
128
|
+
self,
|
|
129
|
+
openai_messages: str | list[ResponseInputItemParam],
|
|
130
|
+
model_name: str,
|
|
131
|
+
) -> Response | None:
|
|
132
|
+
planning_schema = get_planning_schema(self._config.planning_schema_config)
|
|
133
|
+
|
|
134
|
+
response = await self._openai_client.responses.create(
|
|
135
|
+
model=model_name,
|
|
136
|
+
input=openai_messages,
|
|
137
|
+
text=ResponseTextConfigParam(
|
|
138
|
+
{
|
|
139
|
+
"format": ResponseFormatTextJSONSchemaConfigParam(
|
|
140
|
+
{
|
|
141
|
+
"type": "json_schema",
|
|
142
|
+
"name": planning_schema.get("title", "Plan"),
|
|
143
|
+
"schema": planning_schema,
|
|
144
|
+
}
|
|
145
|
+
)
|
|
146
|
+
}
|
|
147
|
+
),
|
|
148
|
+
)
|
|
149
|
+
|
|
150
|
+
if not response.output_text:
|
|
151
|
+
_LOGGER.info("Empty planning response")
|
|
152
|
+
return None
|
|
153
|
+
|
|
154
|
+
return response
|
|
155
|
+
|
|
156
|
+
async def __call__(
|
|
157
|
+
self, **kwargs: Unpack[_ResponsesLoopIterationRunnerKwargs]
|
|
158
|
+
) -> ResponsesLanguageModelStreamResponse:
|
|
159
|
+
openai_messages = convert_messages_to_openai(kwargs["messages"])
|
|
160
|
+
|
|
161
|
+
response = await self._run_plan_step(
|
|
162
|
+
openai_messages=openai_messages,
|
|
163
|
+
model_name=kwargs["model"].name,
|
|
164
|
+
)
|
|
165
|
+
|
|
166
|
+
if response is None:
|
|
167
|
+
_LOGGER.info(
|
|
168
|
+
"Error executing planning step, proceeding without planning step"
|
|
169
|
+
)
|
|
170
|
+
return await self._loop_runner(**kwargs)
|
|
171
|
+
|
|
172
|
+
assistant_message = LanguageModelAssistantMessage(content=response.output_text)
|
|
173
|
+
|
|
174
|
+
if self._history_manager is not None:
|
|
175
|
+
self._history_manager.add_assistant_message(assistant_message)
|
|
176
|
+
|
|
177
|
+
if isinstance(kwargs["messages"], str):
|
|
178
|
+
kwargs["messages"] = [
|
|
179
|
+
LanguageModelUserMessage(content=kwargs["messages"]),
|
|
180
|
+
assistant_message,
|
|
181
|
+
]
|
|
182
|
+
elif isinstance(kwargs["messages"], LanguageModelMessages):
|
|
183
|
+
kwargs["messages"] = (
|
|
184
|
+
kwargs["messages"].builder().append(assistant_message).build()
|
|
185
|
+
)
|
|
186
|
+
else:
|
|
187
|
+
kwargs["messages"] = list(kwargs["messages"]) + [assistant_message]
|
|
188
|
+
|
|
189
|
+
return await self._loop_runner(**kwargs)
|
|
@@ -122,6 +122,20 @@ def _convert_messages_to_openai(
|
|
|
122
122
|
return res
|
|
123
123
|
|
|
124
124
|
|
|
125
|
+
def convert_messages_to_openai(
|
|
126
|
+
messages: str
|
|
127
|
+
| LanguageModelMessages
|
|
128
|
+
| Sequence[
|
|
129
|
+
ResponseInputItemParam | LanguageModelMessageOptions | ResponseOutputItem
|
|
130
|
+
],
|
|
131
|
+
) -> str | list[ResponseInputItemParam]:
|
|
132
|
+
if isinstance(messages, str):
|
|
133
|
+
return messages
|
|
134
|
+
if isinstance(messages, LanguageModelMessages):
|
|
135
|
+
return _convert_messages_to_openai(messages.root)
|
|
136
|
+
return _convert_messages_to_openai(messages)
|
|
137
|
+
|
|
138
|
+
|
|
125
139
|
class _ResponsesParams(NamedTuple):
|
|
126
140
|
temperature: float
|
|
127
141
|
model_name: str
|
|
@@ -189,14 +203,7 @@ def _prepare_responses_params_util(
|
|
|
189
203
|
"low" # Code interpreter cannot be used with minimal effort
|
|
190
204
|
)
|
|
191
205
|
|
|
192
|
-
messages_res =
|
|
193
|
-
if isinstance(messages, LanguageModelMessages):
|
|
194
|
-
messages_res = _convert_messages_to_openai(messages.root)
|
|
195
|
-
elif isinstance(messages, list):
|
|
196
|
-
messages_res = _convert_messages_to_openai(messages)
|
|
197
|
-
else:
|
|
198
|
-
assert isinstance(messages, str)
|
|
199
|
-
messages_res = messages
|
|
206
|
+
messages_res = convert_messages_to_openai(messages)
|
|
200
207
|
|
|
201
208
|
return _ResponsesParams(
|
|
202
209
|
temperature, model, search_context, messages_res, tools_res, reasoning, text
|
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
import json
|
|
2
|
-
import logging
|
|
3
|
-
from typing import Unpack
|
|
4
|
-
|
|
5
|
-
from pydantic import BaseModel, Field
|
|
6
|
-
|
|
7
|
-
from unique_toolkit import LanguageModelService
|
|
8
|
-
from unique_toolkit._common.execution import failsafe_async
|
|
9
|
-
from unique_toolkit._common.pydantic_helpers import get_configuration_dict
|
|
10
|
-
from unique_toolkit.agentic.history_manager.history_manager import HistoryManager
|
|
11
|
-
from unique_toolkit.agentic.loop_runner.base import (
|
|
12
|
-
LoopIterationRunner,
|
|
13
|
-
_LoopIterationRunnerKwargs,
|
|
14
|
-
)
|
|
15
|
-
from unique_toolkit.agentic.loop_runner.middleware.planning.schema import (
|
|
16
|
-
PlanningSchemaConfig,
|
|
17
|
-
get_planning_schema,
|
|
18
|
-
)
|
|
19
|
-
from unique_toolkit.chat.service import LanguageModelStreamResponse
|
|
20
|
-
from unique_toolkit.language_model import (
|
|
21
|
-
LanguageModelAssistantMessage,
|
|
22
|
-
)
|
|
23
|
-
|
|
24
|
-
_LOGGER = logging.getLogger(__name__)
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
class PlanningConfig(BaseModel):
|
|
28
|
-
model_config = get_configuration_dict()
|
|
29
|
-
|
|
30
|
-
planning_schema_config: PlanningSchemaConfig = PlanningSchemaConfig()
|
|
31
|
-
ignored_options: list[str] = Field(
|
|
32
|
-
default=["parallel_tool_calls"],
|
|
33
|
-
description="A list of options to ignore when calling the LLM for the planning step.",
|
|
34
|
-
)
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
class PlanningMiddleware(LoopIterationRunner):
|
|
38
|
-
def __init__(
|
|
39
|
-
self,
|
|
40
|
-
*,
|
|
41
|
-
loop_runner: LoopIterationRunner,
|
|
42
|
-
config: PlanningConfig,
|
|
43
|
-
llm_service: LanguageModelService,
|
|
44
|
-
history_manager: HistoryManager | None = None,
|
|
45
|
-
) -> None:
|
|
46
|
-
self._config = config
|
|
47
|
-
self._loop_runner = loop_runner
|
|
48
|
-
self._history_manager = history_manager
|
|
49
|
-
self._llm_service = llm_service
|
|
50
|
-
|
|
51
|
-
@failsafe_async(failure_return_value=None, logger=_LOGGER)
|
|
52
|
-
async def _run_plan_step(
|
|
53
|
-
self, **kwargs: Unpack[_LoopIterationRunnerKwargs]
|
|
54
|
-
) -> LanguageModelAssistantMessage | None:
|
|
55
|
-
planning_schema = get_planning_schema(self._config.planning_schema_config)
|
|
56
|
-
|
|
57
|
-
other_options = {
|
|
58
|
-
k: v
|
|
59
|
-
for k, v in kwargs.get("other_options", {}).items()
|
|
60
|
-
if k not in self._config.ignored_options
|
|
61
|
-
}
|
|
62
|
-
response = await self._llm_service.complete_async(
|
|
63
|
-
messages=kwargs["messages"],
|
|
64
|
-
model_name=kwargs["model"].name,
|
|
65
|
-
structured_output_model=planning_schema,
|
|
66
|
-
other_options=other_options,
|
|
67
|
-
)
|
|
68
|
-
|
|
69
|
-
if response.choices[0].message.parsed is None:
|
|
70
|
-
_LOGGER.info("Error parsing planning response")
|
|
71
|
-
return None
|
|
72
|
-
|
|
73
|
-
return LanguageModelAssistantMessage(
|
|
74
|
-
content=json.dumps(response.choices[0].message.parsed)
|
|
75
|
-
)
|
|
76
|
-
|
|
77
|
-
async def __call__(
|
|
78
|
-
self, **kwargs: Unpack[_LoopIterationRunnerKwargs]
|
|
79
|
-
) -> LanguageModelStreamResponse:
|
|
80
|
-
assistant_message = await self._run_plan_step(**kwargs)
|
|
81
|
-
|
|
82
|
-
if assistant_message is None:
|
|
83
|
-
_LOGGER.info(
|
|
84
|
-
"Error executing planning step, proceeding without planning step"
|
|
85
|
-
)
|
|
86
|
-
return await self._loop_runner(**kwargs)
|
|
87
|
-
|
|
88
|
-
if self._history_manager is not None:
|
|
89
|
-
self._history_manager.add_assistant_message(assistant_message)
|
|
90
|
-
|
|
91
|
-
kwargs["messages"] = (
|
|
92
|
-
kwargs["messages"].builder().append(assistant_message).build()
|
|
93
|
-
)
|
|
94
|
-
return await self._loop_runner(**kwargs)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/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.72.0 → unique_toolkit-1.73.0}/unique_toolkit/_common/config_checker/README.md
RENAMED
|
File without changes
|
{unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/_common/config_checker/__init__.py
RENAMED
|
File without changes
|
{unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/_common/config_checker/__main__.py
RENAMED
|
File without changes
|
{unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/_common/config_checker/cli.py
RENAMED
|
File without changes
|
{unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/_common/config_checker/differ.py
RENAMED
|
File without changes
|
{unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/_common/config_checker/exporter.py
RENAMED
|
File without changes
|
{unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/_common/config_checker/models.py
RENAMED
|
File without changes
|
{unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/_common/config_checker/registry.py
RENAMED
|
File without changes
|
{unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/_common/config_checker/validator.py
RENAMED
|
File without changes
|
{unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/_common/default_language_model.py
RENAMED
|
File without changes
|
{unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/_common/docx_generator/__init__.py
RENAMED
|
File without changes
|
{unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/_common/docx_generator/config.py
RENAMED
|
File without changes
|
|
File without changes
|
{unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/_common/docx_generator/schemas.py
RENAMED
|
File without changes
|
{unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/_common/docx_generator/service.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/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.72.0 → unique_toolkit-1.73.0}/unique_toolkit/_common/feature_flags/schema.py
RENAMED
|
File without changes
|
{unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/_common/pydantic/rjsf_tags.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/_common/tests/test_referencing.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/_common/token/image_token_counting.py
RENAMED
|
File without changes
|
{unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/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.72.0 → unique_toolkit-1.73.0}/unique_toolkit/_common/utils/image/encode.py
RENAMED
|
File without changes
|
{unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/_common/utils/jinja/helpers.py
RENAMED
|
File without changes
|
{unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/_common/utils/jinja/render.py
RENAMED
|
File without changes
|
{unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/_common/utils/jinja/schema.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/unique_toolkit/_common/utils/write_configuration.py
RENAMED
|
File without changes
|
{unique_toolkit-1.72.0 → unique_toolkit-1.73.0}/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.72.0 → unique_toolkit-1.73.0}/unique_toolkit/agentic/evaluation/exception.py
RENAMED
|
File without changes
|
|
File without changes
|