unique-toolkit 2026.20.0.dev7__tar.gz → 2026.20.0.dev9__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/PKG-INFO +2 -2
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/pyproject.toml +117 -2
- unique_toolkit-2026.20.0.dev9/unique_toolkit/experimental/README.md +258 -0
- unique_toolkit-2026.20.0.dev9/unique_toolkit/experimental/_internal/__init__.py +21 -0
- unique_toolkit-2026.20.0.dev9/unique_toolkit/experimental/components/__init__.py +27 -0
- {unique_toolkit-2026.20.0.dev7/unique_toolkit/experimental → unique_toolkit-2026.20.0.dev9/unique_toolkit/experimental/components}/content_tree/__init__.py +7 -7
- {unique_toolkit-2026.20.0.dev7/unique_toolkit/experimental → unique_toolkit-2026.20.0.dev9/unique_toolkit/experimental/components}/content_tree/functions.py +3 -3
- {unique_toolkit-2026.20.0.dev7/unique_toolkit/experimental → unique_toolkit-2026.20.0.dev9/unique_toolkit/experimental/components}/content_tree/schemas.py +2 -2
- {unique_toolkit-2026.20.0.dev7/unique_toolkit/experimental → unique_toolkit-2026.20.0.dev9/unique_toolkit/experimental/components}/content_tree/service.py +4 -4
- unique_toolkit-2026.20.0.dev9/unique_toolkit/experimental/content_tree/__init__.py +35 -0
- unique_toolkit-2026.20.0.dev9/unique_toolkit/experimental/identity/__init__.py +38 -0
- unique_toolkit-2026.20.0.dev9/unique_toolkit/experimental/integrations/__init__.py +12 -0
- unique_toolkit-2026.20.0.dev9/unique_toolkit/experimental/resources/__init__.py +63 -0
- {unique_toolkit-2026.20.0.dev7/unique_toolkit/experimental → unique_toolkit-2026.20.0.dev9/unique_toolkit/experimental/resources}/content_folder/__init__.py +13 -3
- {unique_toolkit-2026.20.0.dev7/unique_toolkit/experimental → unique_toolkit-2026.20.0.dev9/unique_toolkit/experimental/resources}/content_folder/functions.py +1 -1
- {unique_toolkit-2026.20.0.dev7/unique_toolkit/experimental → unique_toolkit-2026.20.0.dev9/unique_toolkit/experimental/resources}/content_folder/schemas.py +2 -2
- {unique_toolkit-2026.20.0.dev7/unique_toolkit/experimental → unique_toolkit-2026.20.0.dev9/unique_toolkit/experimental/resources}/content_folder/service.py +4 -4
- unique_toolkit-2026.20.0.dev9/unique_toolkit/experimental/resources/facades/__init__.py +29 -0
- unique_toolkit-2026.20.0.dev9/unique_toolkit/experimental/resources/facades/identity/__init__.py +51 -0
- unique_toolkit-2026.20.0.dev9/unique_toolkit/experimental/resources/facades/identity/service.py +113 -0
- unique_toolkit-2026.20.0.dev9/unique_toolkit/experimental/resources/group/__init__.py +70 -0
- unique_toolkit-2026.20.0.dev9/unique_toolkit/experimental/resources/group/functions.py +298 -0
- unique_toolkit-2026.20.0.dev9/unique_toolkit/experimental/resources/group/schemas.py +97 -0
- unique_toolkit-2026.20.0.dev9/unique_toolkit/experimental/resources/group/service.py +255 -0
- unique_toolkit-2026.20.0.dev9/unique_toolkit/experimental/resources/scheduled_task/__init__.py +55 -0
- {unique_toolkit-2026.20.0.dev7/unique_toolkit/experimental → unique_toolkit-2026.20.0.dev9/unique_toolkit/experimental/resources}/scheduled_task/cron.py +1 -1
- {unique_toolkit-2026.20.0.dev7/unique_toolkit/experimental → unique_toolkit-2026.20.0.dev9/unique_toolkit/experimental/resources}/scheduled_task/functions.py +1 -1
- {unique_toolkit-2026.20.0.dev7/unique_toolkit/experimental → unique_toolkit-2026.20.0.dev9/unique_toolkit/experimental/resources}/scheduled_task/schemas.py +3 -3
- {unique_toolkit-2026.20.0.dev7/unique_toolkit/experimental → unique_toolkit-2026.20.0.dev9/unique_toolkit/experimental/resources}/scheduled_task/service.py +3 -3
- unique_toolkit-2026.20.0.dev9/unique_toolkit/experimental/resources/user/__init__.py +60 -0
- unique_toolkit-2026.20.0.dev9/unique_toolkit/experimental/resources/user/functions.py +285 -0
- {unique_toolkit-2026.20.0.dev7/unique_toolkit/experimental/identity → unique_toolkit-2026.20.0.dev9/unique_toolkit/experimental/resources/user}/schemas.py +13 -93
- unique_toolkit-2026.20.0.dev9/unique_toolkit/experimental/resources/user/service.py +363 -0
- unique_toolkit-2026.20.0.dev9/unique_toolkit/experimental/testing/__init__.py +10 -0
- unique_toolkit-2026.20.0.dev7/unique_toolkit/experimental/identity/__init__.py +0 -48
- unique_toolkit-2026.20.0.dev7/unique_toolkit/experimental/identity/functions.py +0 -579
- unique_toolkit-2026.20.0.dev7/unique_toolkit/experimental/identity/service.py +0 -715
- unique_toolkit-2026.20.0.dev7/unique_toolkit/experimental/scheduled_task/__init__.py +0 -71
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/README.md +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/_common/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/_common/_base_service.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/_common/_time_utils.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/_common/api_calling/human_verification_manager.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/_common/base_model_type_attribute.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/_common/chunk_relevancy_sorter/config.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/_common/chunk_relevancy_sorter/exception.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/_common/chunk_relevancy_sorter/schemas.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/_common/chunk_relevancy_sorter/service.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/_common/chunk_relevancy_sorter/tests/test_service.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/_common/config_checker/README.md +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/_common/config_checker/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/_common/config_checker/__main__.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/_common/config_checker/cli.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/_common/config_checker/differ.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/_common/config_checker/exporter.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/_common/config_checker/models.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/_common/config_checker/registry.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/_common/config_checker/validator.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/_common/default_language_model.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/_common/docx_generator/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/_common/docx_generator/config.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/_common/docx_generator/pandoc_converter.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/_common/docx_generator/schemas.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/_common/docx_generator/service.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/_common/docx_generator/template/Doc Template.docx +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/_common/endpoint_builder.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/_common/endpoint_requestor.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/_common/event_bus.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/_common/exception.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/_common/execution.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/_common/experimental/endpoint_builder.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/_common/experimental/endpoint_requestor.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/_common/experimental/write_up_agent/README.md +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/_common/experimental/write_up_agent/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/_common/experimental/write_up_agent/agent.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/_common/experimental/write_up_agent/config.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/_common/experimental/write_up_agent/examples/data.csv +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/_common/experimental/write_up_agent/examples/example_usage.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/_common/experimental/write_up_agent/schemas.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/_common/experimental/write_up_agent/services/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/exceptions.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/service.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/_common/experimental/write_up_agent/services/dataframe_handler/utils.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/config.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/exceptions.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/prompts/config.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/prompts/system_prompt.j2 +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/prompts/user_prompt.j2 +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/_common/experimental/write_up_agent/services/generation_handler/service.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/default_template.j2 +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/exceptions.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/service.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/_common/experimental/write_up_agent/services/template_handler/utils.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/_common/experimental/write_up_agent/utils.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/_common/feature_flags/schema.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/_common/pydantic/rjsf_tags.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/_common/pydantic_helpers.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/_common/referencing.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/_common/string_utilities.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/_common/tests/test_referencing.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/_common/tests/test_string_utilities.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/_common/token/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/_common/token/image_token_counting.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/_common/token/token_counting.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/_common/token/tokenizers/deepseek/tokenizer.json +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/_common/token/tokenizers/qwen/tokenizer.json +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/_common/utils/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/_common/utils/files.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/_common/utils/image/encode.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/_common/utils/jinja/helpers.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/_common/utils/jinja/render.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/_common/utils/jinja/schema.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/_common/utils/jinja/utils.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/_common/utils/structured_output/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/_common/utils/structured_output/schema.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/_common/utils/write_configuration.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/_common/validate_required_values.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/_common/validators.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/debug_info_manager/debug_info_manager.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/debug_info_manager/test/test_debug_info_manager.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/evaluation/config.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/evaluation/context_relevancy/prompts/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/evaluation/context_relevancy/prompts/system_prompt.j2 +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/evaluation/context_relevancy/prompts/user_prompt.j2 +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/evaluation/context_relevancy/schema.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/evaluation/context_relevancy/service.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/evaluation/evaluation_manager.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/evaluation/exception.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/evaluation/hallucination/constants.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/evaluation/hallucination/hallucination_evaluation.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/evaluation/hallucination/prompts/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/evaluation/hallucination/prompts/system_prompt.j2 +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/evaluation/hallucination/prompts/user_prompt.j2 +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/evaluation/hallucination/service.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/evaluation/hallucination/utils.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/evaluation/output_parser.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/evaluation/schemas.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/evaluation/tests/fixtures.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/evaluation/tests/test_config.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/evaluation/tests/test_context_relevancy_service.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/evaluation/tests/test_hallucination_constants.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/evaluation/tests/test_hallucination_utils.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/evaluation/tests/test_output_parser.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/evaluation/tests/test_prompt_loaders.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/evaluation/utils.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/feature_flags/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/feature_flags/feature_flags.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/history_manager/history_construction_with_contents.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/history_manager/history_manager.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/history_manager/loop_token_reducer.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/history_manager/utils.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/loop_runner/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/loop_runner/_iteration_handler_utils.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/loop_runner/_responses_iteration_handler_utils.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/loop_runner/_responses_stream_handler_utils.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/loop_runner/_stream_handler_utils.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/loop_runner/base.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/loop_runner/middleware/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/loop_runner/middleware/planning/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/loop_runner/middleware/planning/planning.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/loop_runner/middleware/planning/schema.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/loop_runner/runners/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/loop_runner/runners/basic.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/loop_runner/runners/mistral/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/loop_runner/runners/mistral/mistral_runner.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/loop_runner/runners/qwen/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/loop_runner/runners/qwen/helpers.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/loop_runner/runners/qwen/qwen_runner.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/message_log_manager/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/message_log_manager/service.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/postprocessor/postprocessor_manager.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/reference_manager/reference_manager.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/responses_api/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/responses_api/postprocessors/code_display.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/responses_api/postprocessors/generated_files.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/responses_api/stream_handler.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/short_term_memory_manager/persistent_short_term_memory_manager.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/thinking_manager/thinking_manager.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/tools/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/tools/a2a/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/tools/a2a/config.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/tools/a2a/evaluation/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/tools/a2a/evaluation/_utils.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/tools/a2a/evaluation/config.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/tools/a2a/evaluation/evaluator.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/tools/a2a/evaluation/summarization_user_message.j2 +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/tools/a2a/manager.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/tools/a2a/postprocessing/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/tools/a2a/postprocessing/_display_utils.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/tools/a2a/postprocessing/_ref_utils.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/tools/a2a/postprocessing/config.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/tools/a2a/postprocessing/display.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/tools/a2a/postprocessing/references.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_display.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_display_utils.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_ref_utils.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/tools/a2a/prompts.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/tools/a2a/response_watcher/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/tools/a2a/response_watcher/service.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/tools/a2a/tool/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/tools/a2a/tool/_memory.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/tools/a2a/tool/_schema.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/tools/a2a/tool/config.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/tools/a2a/tool/service.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/tools/a2a/tool/test/test_service_utils.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/tools/agent_chunks_hanlder.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/tools/config.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/tools/experimental/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/tools/experimental/open_file_tool/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/tools/experimental/open_file_tool/config.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/tools/experimental/open_file_tool/runtime.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/tools/experimental/open_file_tool/tool.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/tools/experimental/todo/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/tools/experimental/todo/config.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/tools/experimental/todo/prompts/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/tools/experimental/todo/prompts/execution_reminder.j2 +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/tools/experimental/todo/prompts/system_prompt.j2 +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/tools/experimental/todo/prompts/tool_description.j2 +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/tools/experimental/todo/prompts/verification_nudge.j2 +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/tools/experimental/todo/schemas.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/tools/experimental/todo/service.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/tools/factory.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/tools/mcp/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/tools/mcp/manager.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/tools/mcp/models.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/tools/mcp/tool_wrapper.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/tools/openai_builtin/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/tools/openai_builtin/base.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/config.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/postprocessors/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/postprocessors/code_display.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/postprocessors/generated_files.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/schemas.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/service.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/tools/openai_builtin/manager.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/tools/schemas.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/tools/test/test_mcp_manager.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/tools/test/test_tool_progress_reporter.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/tools/tool.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/tools/tool_manager.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/tools/tool_progress_reporter.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/tools/utils/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/tools/utils/source_handling/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/tools/utils/source_handling/schema.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/tools/utils/source_handling/source_formatting.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic/tools/utils/source_handling/tests/test_source_formatting.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic_table/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic_table/schemas.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/agentic_table/service.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/app/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/app/chat_event_filter_options_settings.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/app/dev_util.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/app/fast_api_factory.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/app/feature_flags.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/app/find_env_file.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/app/init_logging.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/app/init_sdk.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/app/performance/async_tasks.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/app/performance/async_wrapper.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/app/schemas.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/app/unique_settings.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/app/verification.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/app/webhook.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/chat/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/chat/cancellation.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/chat/constants.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/chat/deprecated/service.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/chat/functions.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/chat/rendering.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/chat/responses_api.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/chat/schemas.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/chat/service.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/chat/state.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/chat/utils.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/content/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/content/constants.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/content/functions.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/content/schemas.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/content/service.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/content/smart_rules.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/content/utils.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/data_extraction/README.md +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/data_extraction/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/data_extraction/augmented/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/data_extraction/augmented/service.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/data_extraction/base.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/data_extraction/basic/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/data_extraction/basic/config.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/data_extraction/basic/prompt.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/data_extraction/basic/service.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/elicitation/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/elicitation/constants.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/elicitation/exceptions.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/elicitation/functions.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/elicitation/schemas.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/elicitation/service.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/embedding/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/embedding/constants.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/embedding/functions.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/embedding/schemas.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/embedding/service.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/embedding/utils.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/experimental/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/framework_utilities/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/framework_utilities/langchain/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/framework_utilities/langchain/client.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/framework_utilities/langchain/history.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/framework_utilities/openai/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/framework_utilities/openai/client.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/framework_utilities/openai/message_builder.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/framework_utilities/utils.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/language_model/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/language_model/_responses_api_utils.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/language_model/builder.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/language_model/constants.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/language_model/default_language_model.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/language_model/functions.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/language_model/infos.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/language_model/prompt.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/language_model/reference.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/language_model/schemas.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/language_model/service.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/language_model/stream_transform.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/language_model/utils.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/monitoring/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/monitoring/middleware.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/monitoring/registry.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/protocols/support.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/services/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/services/chat_service.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/services/factory.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/services/knowledge_base.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/short_term_memory/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/short_term_memory/constants.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/short_term_memory/functions.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/short_term_memory/schemas.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/short_term_memory/service.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/smart_rules/__init__.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/smart_rules/compile.py +0 -0
- {unique_toolkit-2026.20.0.dev7 → unique_toolkit-2026.20.0.dev9}/unique_toolkit/test_utilities/events.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: unique-toolkit
|
|
3
|
-
Version: 2026.20.0.
|
|
3
|
+
Version: 2026.20.0.dev9
|
|
4
4
|
Summary:
|
|
5
5
|
Author: Cedric Klinkert, Martin Fadler, Sadique Sheik, Fabian Schläpfer, Pascal Hauri, Ejiroghene Oki-Peter, Rami Azouz, Ricardo Visini, Sanzio Monti
|
|
6
6
|
Author-email: Cedric Klinkert <cedric.klinkert@unique.ch>, Martin Fadler <martin.fadler@unique.ch>, Sadique Sheik <sadique@unique.ch>, Fabian Schläpfer <fabian@unique.ch>, Pascal Hauri <pascal@unique.ch>, Ejiroghene Oki-Peter <oki-peter.ejiroghene@unique.ai>, Rami Azouz <rami.ext@unique.ch>, Ricardo Visini <ricardo.visini@unique.ch>, Sanzio Monti <sanzio.monti@unique.ai>
|
|
@@ -16,7 +16,7 @@ Requires-Dist: sseclient>=0.0.27,<0.0.28
|
|
|
16
16
|
Requires-Dist: openai>=1.105.0,<3
|
|
17
17
|
Requires-Dist: platformdirs>=4.0.0,<5
|
|
18
18
|
Requires-Dist: pillow>=12.1.1
|
|
19
|
-
Requires-Dist: unique-sdk>=2026.20.0.
|
|
19
|
+
Requires-Dist: unique-sdk>=2026.20.0.dev9
|
|
20
20
|
Requires-Dist: jambo>=0.1.2,<0.2
|
|
21
21
|
Requires-Dist: jinja2>=3.1.6,<4
|
|
22
22
|
Requires-Dist: docxtpl>=0.20.1,<0.21
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "unique_toolkit"
|
|
3
|
-
version = "2026.20.0.
|
|
3
|
+
version = "2026.20.0.dev9"
|
|
4
4
|
description = ""
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
requires-python = ">=3.12"
|
|
@@ -28,7 +28,7 @@ dependencies = [
|
|
|
28
28
|
"openai>=1.105.0,<3",
|
|
29
29
|
"platformdirs>=4.0.0,<5",
|
|
30
30
|
"pillow>=12.1.1",
|
|
31
|
-
"unique-sdk>=2026.20.0.
|
|
31
|
+
"unique-sdk>=2026.20.0.dev9",
|
|
32
32
|
"jambo>=0.1.2,<0.2",
|
|
33
33
|
"jinja2>=3.1.6,<4",
|
|
34
34
|
"docxtpl>=0.20.1,<0.21",
|
|
@@ -91,6 +91,7 @@ format = "ruff format ."
|
|
|
91
91
|
test = "pytest"
|
|
92
92
|
typecheck = "basedpyright"
|
|
93
93
|
depcheck = "deptry ."
|
|
94
|
+
check-imports = "lint-imports"
|
|
94
95
|
coverage = "pytest --cov=unique_toolkit --cov-report=term-missing"
|
|
95
96
|
ci-typecheck = { shell = "bash $(git rev-parse --show-toplevel)/.github/scripts/dev.sh typecheck" }
|
|
96
97
|
ci-coverage = { shell = "bash $(git rev-parse --show-toplevel)/.github/scripts/dev.sh coverage" }
|
|
@@ -118,6 +119,120 @@ extend_exclude = ["docs", "tests", "unique_toolkit/.*/test", "unique_toolkit/.*/
|
|
|
118
119
|
DEP002 = ["langchain", "fastapi", "starlette", "uvicorn"]
|
|
119
120
|
DEP004 = ["langchain_openai", "langchain_core"]
|
|
120
121
|
|
|
122
|
+
# -----------------------------------------------------------------------------
|
|
123
|
+
# import-linter — enforces the layered architecture documented in
|
|
124
|
+
# unique_toolkit/experimental/README.md. Contracts are scoped to the
|
|
125
|
+
# experimental/ subpackage; the rest of the toolkit keeps its existing
|
|
126
|
+
# (un-layered) shape until modules graduate into the new layout.
|
|
127
|
+
#
|
|
128
|
+
# Run: uv run poe check-imports (or: uv run lint-imports)
|
|
129
|
+
#
|
|
130
|
+
# Rules encoded below:
|
|
131
|
+
# 1. integrations → resources → _internal (layers)
|
|
132
|
+
# 2. components → resources → _internal (layers; peer of integrations)
|
|
133
|
+
# 3. components never import integrations (keeps orchestration framework-agnostic)
|
|
134
|
+
# 4. primitive resources are mutually independent
|
|
135
|
+
# 5. primitives never import facades (dependency direction inside resources/)
|
|
136
|
+
# 6. facades compose primitives only — never unique_sdk / components / integrations
|
|
137
|
+
# 7. components never call unique_sdk directly (go through a resource)
|
|
138
|
+
# 8. each integrations/<framework>/ stands alone — enabled when real modules land
|
|
139
|
+
#
|
|
140
|
+
# Preference rules from the README that are NOT machine-enforced (import-linter
|
|
141
|
+
# is pass/fail, not tiered): integrations prefer facades over primitives;
|
|
142
|
+
# integrations importing components is "discouraged but allowed".
|
|
143
|
+
# -----------------------------------------------------------------------------
|
|
144
|
+
[tool.importlinter]
|
|
145
|
+
root_packages = ["unique_toolkit"]
|
|
146
|
+
include_external_packages = true
|
|
147
|
+
|
|
148
|
+
[[tool.importlinter.contracts]]
|
|
149
|
+
name = "experimental: integrations stack (integrations → resources → _internal)"
|
|
150
|
+
type = "layers"
|
|
151
|
+
layers = [
|
|
152
|
+
"unique_toolkit.experimental.integrations",
|
|
153
|
+
"unique_toolkit.experimental.resources",
|
|
154
|
+
"unique_toolkit.experimental._internal",
|
|
155
|
+
]
|
|
156
|
+
|
|
157
|
+
[[tool.importlinter.contracts]]
|
|
158
|
+
name = "experimental: components stack (components → resources → _internal)"
|
|
159
|
+
type = "layers"
|
|
160
|
+
layers = [
|
|
161
|
+
"unique_toolkit.experimental.components",
|
|
162
|
+
"unique_toolkit.experimental.resources",
|
|
163
|
+
"unique_toolkit.experimental._internal",
|
|
164
|
+
]
|
|
165
|
+
|
|
166
|
+
[[tool.importlinter.contracts]]
|
|
167
|
+
name = "experimental: components never import integrations"
|
|
168
|
+
type = "forbidden"
|
|
169
|
+
source_modules = ["unique_toolkit.experimental.components"]
|
|
170
|
+
forbidden_modules = ["unique_toolkit.experimental.integrations"]
|
|
171
|
+
|
|
172
|
+
[[tool.importlinter.contracts]]
|
|
173
|
+
name = "experimental: primitive resources are independent"
|
|
174
|
+
type = "independence"
|
|
175
|
+
modules = [
|
|
176
|
+
"unique_toolkit.experimental.resources.user",
|
|
177
|
+
"unique_toolkit.experimental.resources.group",
|
|
178
|
+
"unique_toolkit.experimental.resources.content_folder",
|
|
179
|
+
"unique_toolkit.experimental.resources.scheduled_task",
|
|
180
|
+
]
|
|
181
|
+
|
|
182
|
+
[[tool.importlinter.contracts]]
|
|
183
|
+
name = "experimental: primitives never import facades"
|
|
184
|
+
type = "forbidden"
|
|
185
|
+
source_modules = [
|
|
186
|
+
"unique_toolkit.experimental.resources.user",
|
|
187
|
+
"unique_toolkit.experimental.resources.group",
|
|
188
|
+
"unique_toolkit.experimental.resources.content_folder",
|
|
189
|
+
"unique_toolkit.experimental.resources.scheduled_task",
|
|
190
|
+
]
|
|
191
|
+
forbidden_modules = ["unique_toolkit.experimental.resources.facades"]
|
|
192
|
+
|
|
193
|
+
[[tool.importlinter.contracts]]
|
|
194
|
+
name = "experimental: facades never import other facades"
|
|
195
|
+
type = "independence"
|
|
196
|
+
modules = ["unique_toolkit.experimental.resources.facades.*"]
|
|
197
|
+
|
|
198
|
+
[[tool.importlinter.contracts]]
|
|
199
|
+
name = "experimental: facades compose primitives only"
|
|
200
|
+
type = "forbidden"
|
|
201
|
+
source_modules = ["unique_toolkit.experimental.resources.facades"]
|
|
202
|
+
forbidden_modules = [
|
|
203
|
+
"unique_sdk",
|
|
204
|
+
"unique_toolkit.experimental.components",
|
|
205
|
+
"unique_toolkit.experimental.integrations",
|
|
206
|
+
]
|
|
207
|
+
# Facades legitimately reach `unique_sdk` transitively through primitive
|
|
208
|
+
# resources (that's the whole point). This flag restricts the check to
|
|
209
|
+
# *direct* `import unique_sdk` statements inside facade modules.
|
|
210
|
+
allow_indirect_imports = true
|
|
211
|
+
|
|
212
|
+
[[tool.importlinter.contracts]]
|
|
213
|
+
name = "experimental: components never call unique_sdk directly"
|
|
214
|
+
type = "forbidden"
|
|
215
|
+
source_modules = ["unique_toolkit.experimental.components"]
|
|
216
|
+
forbidden_modules = ["unique_sdk"]
|
|
217
|
+
# Components are allowed to reach `unique_sdk` indirectly through a
|
|
218
|
+
# resource or an existing toolkit service; the rule only bans a *direct*
|
|
219
|
+
# `import unique_sdk` inside a component module.
|
|
220
|
+
allow_indirect_imports = true
|
|
221
|
+
|
|
222
|
+
# Uncomment and populate once concrete integrations exist under
|
|
223
|
+
# unique_toolkit/experimental/integrations/<framework>/.
|
|
224
|
+
# [[tool.importlinter.contracts]]
|
|
225
|
+
# name = "experimental: integrations are mutually independent"
|
|
226
|
+
# type = "independence"
|
|
227
|
+
# modules = [
|
|
228
|
+
# "unique_toolkit.experimental.integrations.openai",
|
|
229
|
+
# "unique_toolkit.experimental.integrations.langchain",
|
|
230
|
+
# ]
|
|
231
|
+
|
|
232
|
+
|
|
233
|
+
|
|
234
|
+
|
|
235
|
+
|
|
121
236
|
[tool.ruff]
|
|
122
237
|
target-version = "py312"
|
|
123
238
|
exclude = [".venv", "docs"]
|
|
@@ -0,0 +1,258 @@
|
|
|
1
|
+
# `experimental/` — reorg proposal
|
|
2
|
+
|
|
3
|
+
This subpackage is the **staging area for the next-generation toolkit
|
|
4
|
+
layout**. Nothing here is stable; the public API, import paths, and class
|
|
5
|
+
names may change without notice and are not covered by the toolkit's normal
|
|
6
|
+
stability guarantees.
|
|
7
|
+
|
|
8
|
+
The goal of the reorganization is to replace the current "organize by file
|
|
9
|
+
type" layout with a layered layout where the **direction of dependencies is
|
|
10
|
+
visible at the folder level**. If you know which layer something lives in,
|
|
11
|
+
you know what it's allowed to import.
|
|
12
|
+
|
|
13
|
+
> **Contract:** every module in `experimental/` belongs to exactly one
|
|
14
|
+
> layer, and a layer may only import from layers *below* it. Violations are
|
|
15
|
+
> bugs; please fix them as you find them.
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## The stack
|
|
20
|
+
|
|
21
|
+
```mermaid
|
|
22
|
+
flowchart TD
|
|
23
|
+
integrations["<b>integrations/</b><br/><i>third-party framework glue</i>"]
|
|
24
|
+
components["<b>components/</b><br/><i>orchestration & derived views</i>"]
|
|
25
|
+
|
|
26
|
+
subgraph resources ["<b>resources/</b>"]
|
|
27
|
+
direction TB
|
|
28
|
+
facades["<b>facades/</b><br/><i>resource-shaped aggregators</i><br/>(identity)"]
|
|
29
|
+
primitives["<b>primitives</b><br/><i>typed SDK wrappers</i><br/>(user, group, content_folder,<br/>scheduled_task, …)"]
|
|
30
|
+
facades --> primitives
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
internal["<b>_internal/</b><br/><i>package-private primitives</i>"]
|
|
34
|
+
sdk[("<b>unique_sdk</b><br/><i>external</i>")]
|
|
35
|
+
|
|
36
|
+
integrations ==> facades
|
|
37
|
+
integrations -.-> primitives
|
|
38
|
+
integrations -.-> components
|
|
39
|
+
components --> resources
|
|
40
|
+
resources --> internal
|
|
41
|
+
primitives -.-> sdk
|
|
42
|
+
|
|
43
|
+
classDef external fill:#f6f8fa,stroke-dasharray: 5 5
|
|
44
|
+
class sdk external
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
**Reading the arrows:**
|
|
48
|
+
|
|
49
|
+
- **Solid arrows** are the default dependency path for a layer.
|
|
50
|
+
- **Dotted arrows** are allowed but discouraged — use them when the default
|
|
51
|
+
path does not cover your case, and consider whether the missing path is
|
|
52
|
+
a signal that something should be refactored.
|
|
53
|
+
- `integrations/` and `components/` are **peers**, not stacked. Both
|
|
54
|
+
sit directly above `resources/`. An integration's default path is a
|
|
55
|
+
facade (which is why `integrations ==> facades` is drawn bold); reaching
|
|
56
|
+
a primitive resource is fine when no facade fits; reaching into
|
|
57
|
+
`components/` is the escape hatch of last resort.
|
|
58
|
+
- `components/` never imports `integrations/`. Orchestration must stay
|
|
59
|
+
framework-agnostic — that is the entire reason integrations are a
|
|
60
|
+
separate layer.
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
## What goes where
|
|
65
|
+
|
|
66
|
+
### `_internal/` — package-private primitives
|
|
67
|
+
|
|
68
|
+
Shared low-level helpers that are deliberately **not** part of the public
|
|
69
|
+
API. Think: HTTP plumbing, Pydantic helpers, time/string/exception utilities.
|
|
70
|
+
|
|
71
|
+
- **May import:** stdlib, third-party libs (Pydantic, etc.).
|
|
72
|
+
- **Must not import:** anything else in `experimental/`. This is the
|
|
73
|
+
bottom of the stack; it would be a dependency inversion.
|
|
74
|
+
- **Public exposure:** none. If something here is genuinely useful to
|
|
75
|
+
users, promote it into `resources/`, `components/`, or
|
|
76
|
+
`integrations/` — whichever layer fits — and re-export it there.
|
|
77
|
+
|
|
78
|
+
### `resources/<name>/` — typed adapters over `unique_sdk`
|
|
79
|
+
|
|
80
|
+
One subfolder per SDK resource family. The canonical shape is:
|
|
81
|
+
|
|
82
|
+
```
|
|
83
|
+
resources/<name>/
|
|
84
|
+
schemas.py # Pydantic models for request/response payloads
|
|
85
|
+
functions.py # (optional) free-standing sync + async call pairs
|
|
86
|
+
service.py # stateful, keyword-only class over functions.py
|
|
87
|
+
__init__.py # re-exports
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
A module belongs here **iff** it could be deleted without losing any
|
|
91
|
+
functionality relative to raw `unique_sdk` usage — it's pure typing + a
|
|
92
|
+
slightly nicer call surface, nothing more.
|
|
93
|
+
|
|
94
|
+
- **May import:** `unique_sdk`, `_internal/`, stdlib, third-party libs.
|
|
95
|
+
- **Must not import:** sibling resources (see `facades/` below for the
|
|
96
|
+
exception), `components/`, `integrations/`.
|
|
97
|
+
- **Concrete examples in-tree today:** `user/`, `group/`,
|
|
98
|
+
`content_folder/`, `scheduled_task/`.
|
|
99
|
+
- **Resources** should be stateless classes
|
|
100
|
+
|
|
101
|
+
### `resources/facades/<name>/` — aggregating resources
|
|
102
|
+
|
|
103
|
+
A **facade** (GoF pattern) is a resource-shaped object with no SDK calls
|
|
104
|
+
of its own that composes two or more sibling resources behind a single
|
|
105
|
+
`(user_id, company_id)` context. Constructor shape and keyword-only
|
|
106
|
+
convention match the sibling resources, so callers cannot tell the
|
|
107
|
+
difference at the call site.
|
|
108
|
+
|
|
109
|
+
Facades are the **preferred entry point for `integrations/`** — they give
|
|
110
|
+
framework adapters a single object to bridge instead of N resource
|
|
111
|
+
services to wire up individually.
|
|
112
|
+
|
|
113
|
+
- **May import:** two or more sibling `resources/<primitive>/` packages,
|
|
114
|
+
`_internal/`, stdlib, third-party libs.
|
|
115
|
+
- **Must not import:** `unique_sdk` directly (go through a sibling
|
|
116
|
+
resource instead — a facade that calls the SDK directly is actually a
|
|
117
|
+
primitive resource with an identity crisis), `components/`,
|
|
118
|
+
`integrations/`.
|
|
119
|
+
- **Test to decide "facade vs component":** if every public method is a
|
|
120
|
+
one-liner that forwards to a sub-resource attribute, it is a facade.
|
|
121
|
+
As soon as a method adds orchestration (parallel fan-out, caching,
|
|
122
|
+
derived views, retry/fallback, cross-resource validation), it belongs
|
|
123
|
+
in `components/` instead.
|
|
124
|
+
- **Concrete example in-tree today:** `facades/identity/` composes
|
|
125
|
+
`user/` + `group/` behind `Identity.users` / `Identity.groups`.
|
|
126
|
+
|
|
127
|
+
### `components/<name>/` — behaviour beyond the SDK
|
|
128
|
+
|
|
129
|
+
Everything the SDK does not provide by itself: agent loops, evaluation,
|
|
130
|
+
rule compilation, tokenization, data extraction, derived views (e.g. a
|
|
131
|
+
trie over content), parallel pagination, post-processing.
|
|
132
|
+
|
|
133
|
+
- **May import:** `resources/` (primitives and facades), `_internal/`,
|
|
134
|
+
stdlib, third-party libs.
|
|
135
|
+
- **Must not import:** `integrations/`, `unique_sdk` directly (every SDK
|
|
136
|
+
call lives in a `resources/` module so there is exactly one place to
|
|
137
|
+
patch when the SDK changes).
|
|
138
|
+
- **Concrete example in-tree today:** `components/content_tree/` — a
|
|
139
|
+
derived trie + fuzzy-search view over the `content` resource.
|
|
140
|
+
|
|
141
|
+
### `integrations/<framework>/` — third-party framework adapters
|
|
142
|
+
|
|
143
|
+
Leaf layer. One subfolder per external framework (OpenAI SDK, LangChain,
|
|
144
|
+
LlamaIndex, …). Every module here is a thin adapter that maps toolkit
|
|
145
|
+
types to a framework's types.
|
|
146
|
+
|
|
147
|
+
- **May import (default path):** `resources/facades/` — the one-object
|
|
148
|
+
entry point that a framework adapter typically wants to bridge.
|
|
149
|
+
- **May import (fine when no facade fits):** primitive `resources/<x>/`.
|
|
150
|
+
- **May import (escape hatch — discouraged):** `components/`. If you
|
|
151
|
+
reach for this, stop and consider: is the orchestration you need truly
|
|
152
|
+
framework-specific (then it belongs inside this `integrations/<x>/`
|
|
153
|
+
module)? Or is it general-purpose orchestration that any caller would
|
|
154
|
+
want (then it stays in `components/`, and you import it, but
|
|
155
|
+
double-check whether another integration will need the same pass and
|
|
156
|
+
whether a facade could replace the dependency entirely)?
|
|
157
|
+
- **Always may import:** `_internal/`, stdlib, third-party libs
|
|
158
|
+
(including the framework itself).
|
|
159
|
+
- **Must not import:** another `integrations/<framework>/` — each
|
|
160
|
+
framework adapter stands alone. Share code via `_internal/` or by
|
|
161
|
+
lifting it into `components/`.
|
|
162
|
+
- **Optional dependencies:** integrations that depend on libraries the
|
|
163
|
+
toolkit does not pin (e.g. LangChain) stay importable even when the
|
|
164
|
+
library is missing; the framework itself is loaded lazily inside the
|
|
165
|
+
adapter.
|
|
166
|
+
|
|
167
|
+
---
|
|
168
|
+
|
|
169
|
+
## Import-rule cheat sheet
|
|
170
|
+
|
|
171
|
+
| From ↓ \ May import → | `_internal` | `resources/<primitive>` | `resources/facades` | `components` | `integrations` |
|
|
172
|
+
| --- | :-: | :-: | :-: | :-: | :-: |
|
|
173
|
+
| `_internal` | — | no | no | no | no |
|
|
174
|
+
| `resources/<primitive>` | yes | no¹ | no | no | no |
|
|
175
|
+
| `resources/facades` | yes | **yes** | no² | no | no |
|
|
176
|
+
| `components` | yes | yes | yes | yes³ | no |
|
|
177
|
+
| `integrations/<framework>` | yes | ok⁴ | **yes** | discouraged⁵ | no⁶ |
|
|
178
|
+
|
|
179
|
+
¹ A primitive resource imports only `unique_sdk`, not sibling resources.
|
|
180
|
+
If two primitives need to call each other, you have discovered a facade.
|
|
181
|
+
|
|
182
|
+
² Facades do not import other facades; they compose primitives. Stacking
|
|
183
|
+
facades is an orchestration concern — that lives in `components/`.
|
|
184
|
+
|
|
185
|
+
³ Importing a *sibling* module inside the same layer is fine when the
|
|
186
|
+
dependency is genuinely intra-layer (one component building on another).
|
|
187
|
+
Cross-layer is what the rules above constrain.
|
|
188
|
+
|
|
189
|
+
⁴ Primitive resources are a fine fallback when no facade covers the
|
|
190
|
+
integration's use case. Prefer the facade when one exists so there is a
|
|
191
|
+
single bridge to maintain per framework.
|
|
192
|
+
|
|
193
|
+
⁵ Allowed but flagged as a smell. Ask whether the orchestration you need
|
|
194
|
+
is framework-specific (belongs in this integration) or general-purpose
|
|
195
|
+
(stays in `components/`, possibly behind a new facade).
|
|
196
|
+
|
|
197
|
+
⁶ One integration never imports another integration. Share via
|
|
198
|
+
`_internal/` or promote to `components/`.
|
|
199
|
+
|
|
200
|
+
---
|
|
201
|
+
|
|
202
|
+
## Decision tree — "I'm adding new code"
|
|
203
|
+
|
|
204
|
+
Walk the diagram top to bottom; the first **yes** wins. A **no** all the
|
|
205
|
+
way to the bottom is a signal that the module probably does not belong in
|
|
206
|
+
`experimental/` at all.
|
|
207
|
+
|
|
208
|
+
```mermaid
|
|
209
|
+
flowchart TD
|
|
210
|
+
start(["I'm adding new code"])
|
|
211
|
+
q1{"Calls <b>unique_sdk</b> directly?"}
|
|
212
|
+
q2{"Resource-shaped facade —<br/>composes 2+ primitives with<br/>one-liner delegation methods?"}
|
|
213
|
+
q3{"Adds behaviour beyond the SDK<br/>(orchestration, parallelism,<br/>derived views, evaluation, …)<br/><b>and</b> framework-agnostic?"}
|
|
214
|
+
q4{"Adapter for a specific<br/>third-party framework?"}
|
|
215
|
+
q5{"Shared primitive with<br/>no public API story?"}
|
|
216
|
+
|
|
217
|
+
primitive["<b>resources/<name>/</b><br/>primitive resource"]
|
|
218
|
+
facade["<b>resources/facades/<name>/</b>"]
|
|
219
|
+
component["<b>components/<name>/</b>"]
|
|
220
|
+
integration["<b>integrations/<framework>/</b>"]
|
|
221
|
+
internal["<b>_internal/</b>"]
|
|
222
|
+
discuss["<i>Probably not experimental/ at all —<br/>open a discussion first</i>"]
|
|
223
|
+
|
|
224
|
+
start --> q1
|
|
225
|
+
q1 -- yes --> primitive
|
|
226
|
+
q1 -- no --> q2
|
|
227
|
+
q2 -- yes --> facade
|
|
228
|
+
q2 -- no --> q3
|
|
229
|
+
q3 -- yes --> component
|
|
230
|
+
q3 -- no --> q4
|
|
231
|
+
q4 -- yes --> integration
|
|
232
|
+
q4 -- no --> q5
|
|
233
|
+
q5 -- yes --> internal
|
|
234
|
+
q5 -- no --> discuss
|
|
235
|
+
|
|
236
|
+
classDef target fill:#e7f5ff,stroke:#1971c2,stroke-width:2px,color:#0b4a80
|
|
237
|
+
classDef escape fill:#fff4e6,stroke:#e8590c,color:#7a3b00
|
|
238
|
+
class primitive,facade,component,integration,internal target
|
|
239
|
+
class discuss escape
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
---
|
|
243
|
+
|
|
244
|
+
## Experimental ≠ "hidden"
|
|
245
|
+
|
|
246
|
+
The point of `experimental/` is **staging**, not secrecy. Modules here are
|
|
247
|
+
expected to graduate into the stable tree once:
|
|
248
|
+
|
|
249
|
+
- their public API has survived at least one integration at a customer
|
|
250
|
+
site or internal app,
|
|
251
|
+
- the naming and boundaries match the final-state convention documented
|
|
252
|
+
above,
|
|
253
|
+
- they have tests and Google-style docstrings on public symbols.
|
|
254
|
+
|
|
255
|
+
Graduation is a straight-through move: delete the `experimental/` ancestor
|
|
256
|
+
from the import path, keep everything else identical. Because layers and
|
|
257
|
+
sub-bucket names are the same in both places, the graduation diff is a
|
|
258
|
+
`git mv` plus an import sweep — no architectural rework.
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"""Package-private primitives — not part of the public API.
|
|
2
|
+
|
|
3
|
+
Replaces the current :mod:`unique_toolkit._common` junk drawer. Modules
|
|
4
|
+
here are implementation details; anything users are expected to import must
|
|
5
|
+
be promoted into :mod:`..resources`, :mod:`..components`, or
|
|
6
|
+
:mod:`..integrations` first.
|
|
7
|
+
|
|
8
|
+
Planned contents (current home → new home):
|
|
9
|
+
|
|
10
|
+
* ``http`` ← :mod:`unique_toolkit._common.endpoint_builder`,
|
|
11
|
+
:mod:`unique_toolkit._common.endpoint_requestor`,
|
|
12
|
+
:mod:`unique_toolkit._common.api_calling`
|
|
13
|
+
* ``pydantic`` ← :mod:`unique_toolkit._common.pydantic`,
|
|
14
|
+
:mod:`unique_toolkit._common.pydantic_helpers`,
|
|
15
|
+
:mod:`unique_toolkit._common.validators`,
|
|
16
|
+
:mod:`unique_toolkit._common.base_model_type_attribute`
|
|
17
|
+
* ``utils`` ← :mod:`unique_toolkit._common.utils` plus the loose
|
|
18
|
+
modules in :mod:`unique_toolkit._common` (``_time_utils``,
|
|
19
|
+
``string_utilities``, ``execution``, ``exception``, ``event_bus``,
|
|
20
|
+
``referencing``, ``validate_required_values``, ``_base_service``)
|
|
21
|
+
"""
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"""Components — orchestration and derived behaviour on top of :mod:`..resources`.
|
|
2
|
+
|
|
3
|
+
Everything here adds behavior the SDK does not provide: orchestration,
|
|
4
|
+
post-processing, evaluation, rule compilation, tokenization, etc. If a
|
|
5
|
+
module could be deleted without losing any functionality relative to raw
|
|
6
|
+
``unique_sdk`` usage, it belongs in :mod:`..resources`, not here.
|
|
7
|
+
|
|
8
|
+
Planned contents (current home → new home):
|
|
9
|
+
|
|
10
|
+
* ``agentic`` ← :mod:`unique_toolkit.agentic`
|
|
11
|
+
(subpackages: ``tools``, ``loop_runner``, ``evaluation``,
|
|
12
|
+
``managers`` — collects the sibling ``*_manager`` packages —,
|
|
13
|
+
``feature_flags`` — single canonical home, collapses duplicates in
|
|
14
|
+
:mod:`unique_toolkit.app.feature_flags` and
|
|
15
|
+
:mod:`unique_toolkit._common.feature_flags`)
|
|
16
|
+
* ``data_extraction`` ← :mod:`unique_toolkit.data_extraction`
|
|
17
|
+
* ``smart_rules`` ← :mod:`unique_toolkit.smart_rules`
|
|
18
|
+
+ :mod:`unique_toolkit.content.smart_rules` (unified)
|
|
19
|
+
* ``chunk_relevancy_sorter`` ← :mod:`unique_toolkit._common.chunk_relevancy_sorter`
|
|
20
|
+
* ``config_checker`` ← :mod:`unique_toolkit._common.config_checker`
|
|
21
|
+
* ``docx_generator`` ← :mod:`unique_toolkit._common.docx_generator`
|
|
22
|
+
* ``tokenization`` ← :mod:`unique_toolkit._common.token`
|
|
23
|
+
* ``content_tree`` ← :mod:`unique_toolkit.experimental.components.content_tree`
|
|
24
|
+
(re-export: :mod:`unique_toolkit.experimental.content_tree`); a derived
|
|
25
|
+
tree/fuzzy-search view over the ``content`` resource; does not wrap an SDK
|
|
26
|
+
endpoint of its own
|
|
27
|
+
"""
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
|
|
8
8
|
Typical usage::
|
|
9
9
|
|
|
10
|
-
from unique_toolkit.experimental.content_tree import ContentTree
|
|
10
|
+
from unique_toolkit.experimental.components.content_tree import ContentTree
|
|
11
11
|
|
|
12
12
|
tree = ContentTree.from_settings()
|
|
13
13
|
print(await tree.render_visible_tree_async(max_depth=2))
|
|
@@ -16,16 +16,16 @@ Typical usage::
|
|
|
16
16
|
The subpackage is split into three modules to mirror the rest of the
|
|
17
17
|
``content`` domain:
|
|
18
18
|
|
|
19
|
-
- :mod:`unique_toolkit.experimental.content_tree.schemas` — data classes
|
|
19
|
+
- :mod:`unique_toolkit.experimental.components.content_tree.schemas` — data classes
|
|
20
20
|
(:class:`PathTrieNode`, :class:`FuzzyMatch`, :data:`MatchTarget`).
|
|
21
|
-
- :mod:`unique_toolkit.experimental.content_tree.functions` — pure helpers
|
|
21
|
+
- :mod:`unique_toolkit.experimental.components.content_tree.functions` — pure helpers
|
|
22
22
|
for listing, scope-id resolution, trie construction, and ``tree(1)``-style
|
|
23
23
|
formatting.
|
|
24
|
-
- :mod:`unique_toolkit.experimental.content_tree.service` —
|
|
24
|
+
- :mod:`unique_toolkit.experimental.components.content_tree.service` —
|
|
25
25
|
:class:`ContentTree`, the orchestrating service with per-instance caching.
|
|
26
26
|
"""
|
|
27
27
|
|
|
28
|
-
from unique_toolkit.experimental.content_tree.functions import (
|
|
28
|
+
from unique_toolkit.experimental.components.content_tree.functions import (
|
|
29
29
|
build_trie_from_resolved_paths,
|
|
30
30
|
extract_scope_ids_from_content_infos,
|
|
31
31
|
format_path_trie,
|
|
@@ -35,12 +35,12 @@ from unique_toolkit.experimental.content_tree.functions import (
|
|
|
35
35
|
translate_scope_ids_async,
|
|
36
36
|
translate_scope_ids_batch,
|
|
37
37
|
)
|
|
38
|
-
from unique_toolkit.experimental.content_tree.schemas import (
|
|
38
|
+
from unique_toolkit.experimental.components.content_tree.schemas import (
|
|
39
39
|
FuzzyMatch,
|
|
40
40
|
MatchTarget,
|
|
41
41
|
PathTrieNode,
|
|
42
42
|
)
|
|
43
|
-
from unique_toolkit.experimental.content_tree.service import ContentTree
|
|
43
|
+
from unique_toolkit.experimental.components.content_tree.service import ContentTree
|
|
44
44
|
|
|
45
45
|
__all__ = [
|
|
46
46
|
"ContentTree",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"""Pure functions behind the content-tree view.
|
|
2
2
|
|
|
3
|
-
These helpers are decoupled from :class:`~unique_toolkit.experimental.content_tree.service.ContentTree`
|
|
3
|
+
These helpers are decoupled from :class:`~unique_toolkit.experimental.components.content_tree.service.ContentTree`
|
|
4
4
|
so that other callers (scripts, notebooks, ad-hoc tooling) can compose the same
|
|
5
5
|
listing + scope-id-resolution logic without constructing a service instance.
|
|
6
6
|
|
|
@@ -29,9 +29,9 @@ from unique_toolkit.content.functions import (
|
|
|
29
29
|
get_folder_info_async,
|
|
30
30
|
)
|
|
31
31
|
from unique_toolkit.content.schemas import ContentInfo, PaginatedContentInfos
|
|
32
|
-
from unique_toolkit.experimental.content_tree.schemas import PathTrieNode
|
|
32
|
+
from unique_toolkit.experimental.components.content_tree.schemas import PathTrieNode
|
|
33
33
|
|
|
34
|
-
_LOGGER = logging.getLogger(f"toolkit.experimental.content_tree.{__name__}")
|
|
34
|
+
_LOGGER = logging.getLogger(f"toolkit.experimental.components.content_tree.{__name__}")
|
|
35
35
|
|
|
36
36
|
|
|
37
37
|
def serialize_filter(metadata_filter: dict[str, Any] | None) -> str:
|
|
@@ -5,10 +5,10 @@ These types describe the *shape* of a content-tree snapshot:
|
|
|
5
5
|
- :class:`PathTrieNode` is the in-memory directory structure built from resolved
|
|
6
6
|
file paths.
|
|
7
7
|
- :class:`FuzzyMatch` is the result record returned by
|
|
8
|
-
:meth:`unique_toolkit.experimental.content_tree.service.ContentTree.search_visible_files_fuzzy_async`.
|
|
8
|
+
:meth:`unique_toolkit.experimental.components.content_tree.service.ContentTree.search_visible_files_fuzzy_async`.
|
|
9
9
|
|
|
10
10
|
Kept free of behaviour so they can be imported and introspected without pulling
|
|
11
|
-
in the SDK/HTTP stack used by :mod:`unique_toolkit.experimental.content_tree.functions`.
|
|
11
|
+
in the SDK/HTTP stack used by :mod:`unique_toolkit.experimental.components.content_tree.functions`.
|
|
12
12
|
"""
|
|
13
13
|
|
|
14
14
|
from __future__ import annotations
|
|
@@ -12,7 +12,7 @@ user (via ``folderIdPath`` metadata) and exposes it through three lenses:
|
|
|
12
12
|
The service is intentionally **decoupled** from
|
|
13
13
|
:class:`~unique_toolkit.services.knowledge_base.KnowledgeBaseService`: it talks
|
|
14
14
|
to the same backend through the functional helpers in
|
|
15
|
-
:mod:`unique_toolkit.experimental.content_tree.functions` so it can be constructed and used
|
|
15
|
+
:mod:`unique_toolkit.experimental.components.content_tree.functions` so it can be constructed and used
|
|
16
16
|
on its own.
|
|
17
17
|
"""
|
|
18
18
|
|
|
@@ -28,13 +28,13 @@ from typing import TYPE_CHECKING, Any, Protocol, Self, overload
|
|
|
28
28
|
from unique_toolkit._common.validate_required_values import validate_required_values
|
|
29
29
|
from unique_toolkit.app.unique_settings import UniqueSettings
|
|
30
30
|
from unique_toolkit.content.schemas import ContentInfo
|
|
31
|
-
from unique_toolkit.experimental.content_tree.functions import (
|
|
31
|
+
from unique_toolkit.experimental.components.content_tree.functions import (
|
|
32
32
|
build_trie_from_resolved_paths,
|
|
33
33
|
format_path_trie,
|
|
34
34
|
resolve_visible_file_paths_core,
|
|
35
35
|
serialize_filter,
|
|
36
36
|
)
|
|
37
|
-
from unique_toolkit.experimental.content_tree.schemas import (
|
|
37
|
+
from unique_toolkit.experimental.components.content_tree.schemas import (
|
|
38
38
|
FuzzyMatch,
|
|
39
39
|
MatchTarget,
|
|
40
40
|
PathTrieNode,
|
|
@@ -67,7 +67,7 @@ class ContentTree:
|
|
|
67
67
|
"""Resolve visible content paths, render trees, and search files.
|
|
68
68
|
|
|
69
69
|
The service is a thin orchestrator around the functional helpers in
|
|
70
|
-
:mod:`unique_toolkit.experimental.content_tree.functions`. It takes the same identity
|
|
70
|
+
:mod:`unique_toolkit.experimental.components.content_tree.functions`. It takes the same identity
|
|
71
71
|
parameters as the other toolkit services (``company_id`` / ``user_id`` /
|
|
72
72
|
optional ``metadata_filter``) so it can be instantiated and tested without
|
|
73
73
|
a :class:`~unique_toolkit.services.knowledge_base.KnowledgeBaseService`.
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"""Convenience re-export; implementation in :mod:`..components.content_tree`."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from unique_toolkit.experimental.components.content_tree.functions import (
|
|
6
|
+
build_trie_from_resolved_paths,
|
|
7
|
+
extract_scope_ids_from_content_infos,
|
|
8
|
+
format_path_trie,
|
|
9
|
+
get_all_content_infos_async,
|
|
10
|
+
resolve_visible_file_paths_core,
|
|
11
|
+
translate_scope_id_async,
|
|
12
|
+
translate_scope_ids_async,
|
|
13
|
+
translate_scope_ids_batch,
|
|
14
|
+
)
|
|
15
|
+
from unique_toolkit.experimental.components.content_tree.schemas import (
|
|
16
|
+
FuzzyMatch,
|
|
17
|
+
MatchTarget,
|
|
18
|
+
PathTrieNode,
|
|
19
|
+
)
|
|
20
|
+
from unique_toolkit.experimental.components.content_tree.service import ContentTree
|
|
21
|
+
|
|
22
|
+
__all__ = [
|
|
23
|
+
"ContentTree",
|
|
24
|
+
"FuzzyMatch",
|
|
25
|
+
"MatchTarget",
|
|
26
|
+
"PathTrieNode",
|
|
27
|
+
"build_trie_from_resolved_paths",
|
|
28
|
+
"extract_scope_ids_from_content_infos",
|
|
29
|
+
"format_path_trie",
|
|
30
|
+
"get_all_content_infos_async",
|
|
31
|
+
"resolve_visible_file_paths_core",
|
|
32
|
+
"translate_scope_id_async",
|
|
33
|
+
"translate_scope_ids_async",
|
|
34
|
+
"translate_scope_ids_batch",
|
|
35
|
+
]
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"""Barrel for the :class:`Identity` facade and related types.
|
|
2
|
+
|
|
3
|
+
The implementation lives in
|
|
4
|
+
:mod:`unique_toolkit.experimental.resources.facades.identity`; this package
|
|
5
|
+
re-exports the same public names for a shorter import path.
|
|
6
|
+
"""
|
|
7
|
+
|
|
8
|
+
from __future__ import annotations
|
|
9
|
+
|
|
10
|
+
from unique_toolkit.experimental.resources.facades.identity.service import Identity
|
|
11
|
+
from unique_toolkit.experimental.resources.group import (
|
|
12
|
+
GroupDeleted,
|
|
13
|
+
GroupInfo,
|
|
14
|
+
GroupMember,
|
|
15
|
+
GroupMembership,
|
|
16
|
+
Groups,
|
|
17
|
+
GroupWithConfiguration,
|
|
18
|
+
)
|
|
19
|
+
from unique_toolkit.experimental.resources.user import (
|
|
20
|
+
UserGroupMembership,
|
|
21
|
+
UserInfo,
|
|
22
|
+
Users,
|
|
23
|
+
UserWithConfiguration,
|
|
24
|
+
)
|
|
25
|
+
|
|
26
|
+
__all__ = [
|
|
27
|
+
"GroupDeleted",
|
|
28
|
+
"GroupInfo",
|
|
29
|
+
"GroupMember",
|
|
30
|
+
"GroupMembership",
|
|
31
|
+
"GroupWithConfiguration",
|
|
32
|
+
"Groups",
|
|
33
|
+
"Identity",
|
|
34
|
+
"UserGroupMembership",
|
|
35
|
+
"UserInfo",
|
|
36
|
+
"UserWithConfiguration",
|
|
37
|
+
"Users",
|
|
38
|
+
]
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"""Adapters for third-party frameworks.
|
|
2
|
+
|
|
3
|
+
Renamed from ``framework_utilities`` to reflect that these subpackages are
|
|
4
|
+
integrations with external libraries, not general-purpose utilities.
|
|
5
|
+
|
|
6
|
+
Planned contents (current home → new home):
|
|
7
|
+
|
|
8
|
+
* ``openai`` ← :mod:`unique_toolkit.framework_utilities.openai`
|
|
9
|
+
* ``langchain`` ← :mod:`unique_toolkit.framework_utilities.langchain`
|
|
10
|
+
(remains an optional dependency, surfaced via a conditional re-export in
|
|
11
|
+
the top-level ``__init__``)
|
|
12
|
+
"""
|