unique_toolkit 1.40.0__tar.gz → 1.41.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.40.0 → unique_toolkit-1.41.0}/CHANGELOG.md +7 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/PKG-INFO +8 -1
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/pyproject.toml +1 -1
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/agentic/evaluation/hallucination/utils.py +54 -7
- unique_toolkit-1.41.0/unique_toolkit/agentic_table/__init__.py +56 -0
- unique_toolkit-1.41.0/unique_toolkit/agentic_table/schemas.py +305 -0
- unique_toolkit-1.41.0/unique_toolkit/agentic_table/service.py +452 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/app/fast_api_factory.py +15 -7
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/LICENSE +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/README.md +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/__init__.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/_common/_base_service.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/_common/_time_utils.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/_common/api_calling/human_verification_manager.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/_common/base_model_type_attribute.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/_common/chunk_relevancy_sorter/config.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/_common/chunk_relevancy_sorter/exception.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/_common/chunk_relevancy_sorter/schemas.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/_common/chunk_relevancy_sorter/service.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/_common/chunk_relevancy_sorter/tests/test_service.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/_common/default_language_model.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/_common/docx_generator/__init__.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/_common/docx_generator/config.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/_common/docx_generator/schemas.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/_common/docx_generator/service.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/_common/docx_generator/template/Doc Template.docx +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/_common/endpoint_builder.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/_common/endpoint_requestor.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/_common/exception.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/_common/execution.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/_common/experimental/endpoint_builder.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/_common/experimental/endpoint_requestor.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/_common/feature_flags/schema.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/_common/pydantic/rjsf_tags.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/_common/pydantic_helpers.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/_common/referencing.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/_common/string_utilities.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/_common/tests/test_referencing.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/_common/tests/test_string_utilities.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/_common/token/image_token_counting.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/_common/token/token_counting.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/_common/utils/__init__.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/_common/utils/files.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/_common/utils/image/encode.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/_common/utils/jinja/helpers.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/_common/utils/jinja/render.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/_common/utils/jinja/schema.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/_common/utils/jinja/utils.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/_common/utils/structured_output/__init__.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/_common/utils/structured_output/schema.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/_common/utils/write_configuration.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/_common/validate_required_values.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/_common/validators.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/agentic/__init__.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/agentic/debug_info_manager/debug_info_manager.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/agentic/debug_info_manager/test/test_debug_info_manager.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/agentic/evaluation/config.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/agentic/evaluation/context_relevancy/prompts.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/agentic/evaluation/context_relevancy/schema.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/agentic/evaluation/context_relevancy/service.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/agentic/evaluation/evaluation_manager.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/agentic/evaluation/exception.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/agentic/evaluation/hallucination/constants.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/agentic/evaluation/hallucination/hallucination_evaluation.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/agentic/evaluation/hallucination/prompts.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/agentic/evaluation/hallucination/service.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/agentic/evaluation/output_parser.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/agentic/evaluation/schemas.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/agentic/evaluation/tests/test_context_relevancy_service.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/agentic/evaluation/tests/test_output_parser.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/agentic/history_manager/history_construction_with_contents.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/agentic/history_manager/history_manager.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/agentic/history_manager/loop_token_reducer.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/agentic/history_manager/utils.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/agentic/loop_runner/__init__.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/agentic/loop_runner/_iteration_handler_utils.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/agentic/loop_runner/_stream_handler_utils.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/agentic/loop_runner/base.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/agentic/loop_runner/middleware/__init__.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/agentic/loop_runner/middleware/planning/__init__.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/agentic/loop_runner/middleware/planning/planning.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/agentic/loop_runner/middleware/planning/schema.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/agentic/loop_runner/runners/__init__.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/agentic/loop_runner/runners/basic.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/agentic/loop_runner/runners/qwen/__init__.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/agentic/loop_runner/runners/qwen/helpers.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/agentic/loop_runner/runners/qwen/qwen_runner.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/agentic/message_log_manager/__init__.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/agentic/message_log_manager/service.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/agentic/postprocessor/postprocessor_manager.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/agentic/reference_manager/reference_manager.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/agentic/responses_api/__init__.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/agentic/responses_api/postprocessors/code_display.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/agentic/responses_api/postprocessors/generated_files.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/agentic/responses_api/stream_handler.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/agentic/short_term_memory_manager/persistent_short_term_memory_manager.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/agentic/thinking_manager/thinking_manager.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/agentic/tools/__init__.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/agentic/tools/a2a/__init__.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/agentic/tools/a2a/config.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/agentic/tools/a2a/evaluation/__init__.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/agentic/tools/a2a/evaluation/_utils.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/agentic/tools/a2a/evaluation/config.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/agentic/tools/a2a/evaluation/evaluator.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/agentic/tools/a2a/evaluation/summarization_user_message.j2 +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/agentic/tools/a2a/manager.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/agentic/tools/a2a/postprocessing/__init__.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/agentic/tools/a2a/postprocessing/_display_utils.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/agentic/tools/a2a/postprocessing/_ref_utils.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/agentic/tools/a2a/postprocessing/config.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/agentic/tools/a2a/postprocessing/display.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/agentic/tools/a2a/postprocessing/references.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_display.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_display_utils.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_ref_utils.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/agentic/tools/a2a/prompts.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/agentic/tools/a2a/response_watcher/__init__.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/agentic/tools/a2a/response_watcher/service.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/agentic/tools/a2a/tool/__init__.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/agentic/tools/a2a/tool/_memory.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/agentic/tools/a2a/tool/_schema.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/agentic/tools/a2a/tool/config.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/agentic/tools/a2a/tool/service.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/agentic/tools/a2a/tool/test/test_service_utils.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/agentic/tools/agent_chunks_hanlder.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/agentic/tools/config.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/agentic/tools/factory.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/agentic/tools/mcp/__init__.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/agentic/tools/mcp/manager.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/agentic/tools/mcp/models.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/agentic/tools/mcp/tool_wrapper.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/agentic/tools/openai_builtin/__init__.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/agentic/tools/openai_builtin/base.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/__init__.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/config.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/agentic/tools/openai_builtin/code_interpreter/service.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/agentic/tools/openai_builtin/manager.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/agentic/tools/schemas.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/agentic/tools/test/test_mcp_manager.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/agentic/tools/test/test_tool_progress_reporter.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/agentic/tools/tool.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/agentic/tools/tool_manager.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/agentic/tools/tool_progress_reporter.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/agentic/tools/utils/__init__.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/agentic/tools/utils/source_handling/__init__.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/agentic/tools/utils/source_handling/schema.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/agentic/tools/utils/source_handling/source_formatting.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/agentic/tools/utils/source_handling/tests/test_source_formatting.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/app/__init__.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/app/dev_util.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/app/init_logging.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/app/init_sdk.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/app/performance/async_tasks.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/app/performance/async_wrapper.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/app/schemas.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/app/unique_settings.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/app/verification.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/app/webhook.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/chat/__init__.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/chat/constants.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/chat/deprecated/service.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/chat/functions.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/chat/rendering.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/chat/responses_api.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/chat/schemas.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/chat/service.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/chat/state.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/chat/utils.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/content/__init__.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/content/constants.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/content/functions.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/content/schemas.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/content/service.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/content/smart_rules.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/content/utils.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/data_extraction/README.md +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/data_extraction/__init__.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/data_extraction/augmented/__init__.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/data_extraction/augmented/service.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/data_extraction/base.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/data_extraction/basic/__init__.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/data_extraction/basic/config.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/data_extraction/basic/prompt.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/data_extraction/basic/service.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/embedding/__init__.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/embedding/constants.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/embedding/functions.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/embedding/schemas.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/embedding/service.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/embedding/utils.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/framework_utilities/__init__.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/framework_utilities/langchain/__init__.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/framework_utilities/langchain/client.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/framework_utilities/langchain/history.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/framework_utilities/openai/__init__.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/framework_utilities/openai/client.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/framework_utilities/openai/message_builder.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/framework_utilities/utils.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/language_model/__init__.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/language_model/_responses_api_utils.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/language_model/builder.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/language_model/constants.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/language_model/default_language_model.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/language_model/functions.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/language_model/infos.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/language_model/prompt.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/language_model/reference.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/language_model/schemas.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/language_model/service.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/language_model/utils.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/protocols/support.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/services/__init__.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/services/chat_service.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/services/knowledge_base.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/short_term_memory/__init__.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/short_term_memory/constants.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/short_term_memory/functions.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/short_term_memory/schemas.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/short_term_memory/service.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/smart_rules/__init__.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/smart_rules/compile.py +0 -0
- {unique_toolkit-1.40.0 → unique_toolkit-1.41.0}/unique_toolkit/test_utilities/events.py +0 -0
|
@@ -5,6 +5,13 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
|
|
9
|
+
## [1.41.0] - 2025-12-29
|
|
10
|
+
- Add `AgenticTable` service to unique_toolkit
|
|
11
|
+
|
|
12
|
+
## [1.40.0] - 2025-12-22
|
|
13
|
+
- Add option to use retrieve referenced chunks from their order
|
|
14
|
+
|
|
8
15
|
## [1.40.0] - 2025-12-22
|
|
9
16
|
- Add `hide_in_chat` parameter to `upload_to_chat_from_bytes` and `upload_to_chat_from_bytes_async`
|
|
10
17
|
- Hide code interpreter files in chat
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: unique_toolkit
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.41.0
|
|
4
4
|
Summary:
|
|
5
5
|
License: Proprietary
|
|
6
6
|
Author: Cedric Klinkert
|
|
@@ -123,6 +123,13 @@ All notable changes to this project will be documented in this file.
|
|
|
123
123
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
124
124
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
125
125
|
|
|
126
|
+
|
|
127
|
+
## [1.41.0] - 2025-12-29
|
|
128
|
+
- Add `AgenticTable` service to unique_toolkit
|
|
129
|
+
|
|
130
|
+
## [1.40.0] - 2025-12-22
|
|
131
|
+
- Add option to use retrieve referenced chunks from their order
|
|
132
|
+
|
|
126
133
|
## [1.40.0] - 2025-12-22
|
|
127
134
|
- Add `hide_in_chat` parameter to `upload_to_chat_from_bytes` and `upload_to_chat_from_bytes_async`
|
|
128
135
|
- Hide code interpreter files in chat
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import logging
|
|
2
|
+
from enum import StrEnum
|
|
2
3
|
from string import Template
|
|
3
4
|
|
|
4
5
|
from unique_toolkit.agentic.evaluation.config import EvaluationMetricConfig
|
|
@@ -9,6 +10,7 @@ from unique_toolkit.agentic.evaluation.schemas import (
|
|
|
9
10
|
EvaluationMetricName,
|
|
10
11
|
EvaluationMetricResult,
|
|
11
12
|
)
|
|
13
|
+
from unique_toolkit.content import ContentReference
|
|
12
14
|
from unique_toolkit.content.schemas import ContentChunk
|
|
13
15
|
from unique_toolkit.language_model.schemas import (
|
|
14
16
|
LanguageModelMessages,
|
|
@@ -201,13 +203,58 @@ def _get_user_prompt_default(config: EvaluationMetricConfig):
|
|
|
201
203
|
)
|
|
202
204
|
|
|
203
205
|
|
|
206
|
+
class SourceSelectionMode(StrEnum):
|
|
207
|
+
FROM_IDS = "FROM_IDS"
|
|
208
|
+
FROM_ORDER = "FROM_ORDER"
|
|
209
|
+
|
|
210
|
+
|
|
204
211
|
def context_text_from_stream_response(
|
|
205
|
-
response: LanguageModelStreamResponse,
|
|
212
|
+
response: LanguageModelStreamResponse,
|
|
213
|
+
selected_chunks: list[ContentChunk],
|
|
214
|
+
source_selection_mode: SourceSelectionMode = SourceSelectionMode.FROM_IDS,
|
|
206
215
|
):
|
|
207
216
|
response_references = response.message.references
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
217
|
+
match source_selection_mode:
|
|
218
|
+
case SourceSelectionMode.FROM_IDS:
|
|
219
|
+
referenced_chunks = _default_source_selection_mode(
|
|
220
|
+
response_references, selected_chunks
|
|
221
|
+
)
|
|
222
|
+
case SourceSelectionMode.FROM_ORDER:
|
|
223
|
+
referenced_chunks = _from_order_source_selection_mode(
|
|
224
|
+
response_references, selected_chunks
|
|
225
|
+
)
|
|
226
|
+
case _:
|
|
227
|
+
raise ValueError(f"Invalid source selection mode: {source_selection_mode}")
|
|
228
|
+
|
|
229
|
+
return [chunk.text for chunk in referenced_chunks]
|
|
230
|
+
|
|
231
|
+
|
|
232
|
+
def _default_source_selection_mode(
|
|
233
|
+
references: list[ContentReference], selected_chunks: list[ContentChunk]
|
|
234
|
+
):
|
|
235
|
+
reference_ids = {reference.source_id for reference in references}
|
|
236
|
+
|
|
237
|
+
def build_chunk_id(chunk: ContentChunk) -> str:
|
|
238
|
+
return f"{chunk.id}_{chunk.chunk_id}"
|
|
239
|
+
|
|
240
|
+
referenced_chunks = [
|
|
241
|
+
chunk for chunk in selected_chunks if build_chunk_id(chunk) in reference_ids
|
|
242
|
+
]
|
|
243
|
+
|
|
244
|
+
return referenced_chunks
|
|
245
|
+
|
|
246
|
+
|
|
247
|
+
def _from_order_source_selection_mode(
|
|
248
|
+
references: list[ContentReference], selected_chunks: list[ContentChunk]
|
|
249
|
+
):
|
|
250
|
+
original_chunks_order: list[int] = []
|
|
251
|
+
for reference in references:
|
|
252
|
+
for original_index in reference.original_index:
|
|
253
|
+
if original_index not in original_chunks_order:
|
|
254
|
+
original_chunks_order.append(original_index)
|
|
255
|
+
|
|
256
|
+
referenced_chunks: list[ContentChunk] = []
|
|
257
|
+
for index in original_chunks_order:
|
|
258
|
+
referenced_chunks.append(selected_chunks[index])
|
|
259
|
+
|
|
260
|
+
return referenced_chunks
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
from unique_sdk.api_resources._agentic_table import (
|
|
2
|
+
ActivityStatus,
|
|
3
|
+
CellRendererTypes,
|
|
4
|
+
FilterTypes,
|
|
5
|
+
RowVerificationStatus,
|
|
6
|
+
)
|
|
7
|
+
|
|
8
|
+
from .schemas import (
|
|
9
|
+
AgenticTableSheetState,
|
|
10
|
+
AgreementStatus,
|
|
11
|
+
ArtifactType,
|
|
12
|
+
LogEntry,
|
|
13
|
+
MagicTableAction,
|
|
14
|
+
MagicTableAddMetadataPayload,
|
|
15
|
+
MagicTableBasePayload,
|
|
16
|
+
MagicTableCell,
|
|
17
|
+
MagicTableCellMetaData,
|
|
18
|
+
MagicTableEvent,
|
|
19
|
+
MagicTableEventTypes,
|
|
20
|
+
MagicTableGenerateArtifactPayload,
|
|
21
|
+
MagicTableLibrarySheetRowVerifiedPayload,
|
|
22
|
+
MagicTableSheet,
|
|
23
|
+
MagicTableSheetCompletedPayload,
|
|
24
|
+
MagicTableSheetCreatedPayload,
|
|
25
|
+
MagicTableUpdateCellPayload,
|
|
26
|
+
RowMetadataEntry,
|
|
27
|
+
SelectionMethod,
|
|
28
|
+
)
|
|
29
|
+
from .service import AgenticTableService
|
|
30
|
+
|
|
31
|
+
__all__ = [
|
|
32
|
+
"AgenticTableService",
|
|
33
|
+
"ActivityStatus",
|
|
34
|
+
"AgenticTableSheetState",
|
|
35
|
+
"AgreementStatus",
|
|
36
|
+
"ArtifactType",
|
|
37
|
+
"CellRendererTypes",
|
|
38
|
+
"FilterTypes",
|
|
39
|
+
"LogEntry",
|
|
40
|
+
"MagicTableAction",
|
|
41
|
+
"MagicTableAddMetadataPayload",
|
|
42
|
+
"MagicTableBasePayload",
|
|
43
|
+
"MagicTableCell",
|
|
44
|
+
"MagicTableCellMetaData",
|
|
45
|
+
"MagicTableEvent",
|
|
46
|
+
"MagicTableEventTypes",
|
|
47
|
+
"MagicTableGenerateArtifactPayload",
|
|
48
|
+
"MagicTableLibrarySheetRowVerifiedPayload",
|
|
49
|
+
"MagicTableSheet",
|
|
50
|
+
"MagicTableSheetCompletedPayload",
|
|
51
|
+
"MagicTableSheetCreatedPayload",
|
|
52
|
+
"MagicTableUpdateCellPayload",
|
|
53
|
+
"RowMetadataEntry",
|
|
54
|
+
"RowVerificationStatus",
|
|
55
|
+
"SelectionMethod",
|
|
56
|
+
]
|
|
@@ -0,0 +1,305 @@
|
|
|
1
|
+
from enum import StrEnum
|
|
2
|
+
from typing import Annotated, Any, Generic, Literal, TypeVar
|
|
3
|
+
|
|
4
|
+
from pydantic import (
|
|
5
|
+
BaseModel,
|
|
6
|
+
Field,
|
|
7
|
+
field_validator,
|
|
8
|
+
)
|
|
9
|
+
from unique_sdk import (
|
|
10
|
+
AgenticTableSheetState,
|
|
11
|
+
AgreementStatus,
|
|
12
|
+
SelectionMethod,
|
|
13
|
+
)
|
|
14
|
+
from unique_sdk import LogDetail as SDKLogDetail
|
|
15
|
+
from unique_sdk import LogEntry as SDKLogEntry
|
|
16
|
+
from unique_sdk.api_resources._agentic_table import (
|
|
17
|
+
MagicTableAction,
|
|
18
|
+
SheetType,
|
|
19
|
+
)
|
|
20
|
+
|
|
21
|
+
from unique_toolkit._common.pydantic_helpers import get_configuration_dict
|
|
22
|
+
from unique_toolkit.app.schemas import (
|
|
23
|
+
ChatEvent,
|
|
24
|
+
ChatEventAssistantMessage,
|
|
25
|
+
ChatEventUserMessage,
|
|
26
|
+
)
|
|
27
|
+
from unique_toolkit.language_model.schemas import (
|
|
28
|
+
LanguageModelMessageRole,
|
|
29
|
+
LanguageModelMessages,
|
|
30
|
+
)
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
class MagicTableEventTypes(StrEnum):
|
|
34
|
+
IMPORT_COLUMNS = "unique.magic-table.import-columns"
|
|
35
|
+
UPDATE_CELL = "unique.magic-table.update-cell"
|
|
36
|
+
ADD_DATA = "unique.magic-table.add-document"
|
|
37
|
+
ADD_META_DATA = "unique.magic-table.add-meta-data"
|
|
38
|
+
GENERATE_ARTIFACT = "unique.magic-table.generate-artifact"
|
|
39
|
+
SHEET_COMPLETED = "unique.magic-table.sheet-completed"
|
|
40
|
+
LIBRARY_SHEET_ROW_VERIFIED = "unique.magic-table.library-sheet-row.verified"
|
|
41
|
+
SHEET_CREATED = "unique.magic-table.sheet-created"
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
class BaseMetadata(BaseModel):
|
|
45
|
+
model_config = get_configuration_dict()
|
|
46
|
+
|
|
47
|
+
sheet_type: SheetType = Field(
|
|
48
|
+
description="The type of the sheet.",
|
|
49
|
+
default=SheetType.DEFAULT,
|
|
50
|
+
)
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
class RowMetadataEntry(BaseModel):
|
|
54
|
+
model_config = get_configuration_dict()
|
|
55
|
+
id: str = Field(description="The ID of the metadata")
|
|
56
|
+
key: str = Field(description="The key of the metadata")
|
|
57
|
+
value: str = Field(description="The value of the metadata")
|
|
58
|
+
exact_filter: bool = Field(
|
|
59
|
+
default=False,
|
|
60
|
+
description="Whether the metadata is to be used for strict filtering",
|
|
61
|
+
)
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
class DDMetadata(BaseMetadata):
|
|
65
|
+
model_config = get_configuration_dict()
|
|
66
|
+
|
|
67
|
+
question_file_ids: list[str] = Field(
|
|
68
|
+
default_factory=list, description="The IDs of the question files"
|
|
69
|
+
)
|
|
70
|
+
source_file_ids: list[str] = Field(
|
|
71
|
+
default_factory=list, description="The IDs of the source files"
|
|
72
|
+
)
|
|
73
|
+
question_texts: list[str] = Field(
|
|
74
|
+
default_factory=list, description="The texts of the questions"
|
|
75
|
+
)
|
|
76
|
+
context: str = Field(default="", description="The context text for the table.")
|
|
77
|
+
|
|
78
|
+
@field_validator("context", mode="before")
|
|
79
|
+
@classmethod
|
|
80
|
+
def normalize_context(cls, v):
|
|
81
|
+
if v is None:
|
|
82
|
+
return ""
|
|
83
|
+
return v
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
# Define template types
|
|
87
|
+
A = TypeVar("A", bound=MagicTableAction)
|
|
88
|
+
T = TypeVar("T", bound=BaseMetadata)
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
class MagicTableBasePayload(BaseModel, Generic[A, T]):
|
|
92
|
+
model_config = get_configuration_dict()
|
|
93
|
+
name: str = Field(description="The name of the module")
|
|
94
|
+
sheet_name: str
|
|
95
|
+
|
|
96
|
+
action: A
|
|
97
|
+
chat_id: str
|
|
98
|
+
assistant_id: str
|
|
99
|
+
table_id: str
|
|
100
|
+
user_message: ChatEventUserMessage = Field(
|
|
101
|
+
default=ChatEventUserMessage(
|
|
102
|
+
id="", text="", original_text="", created_at="", language=""
|
|
103
|
+
)
|
|
104
|
+
)
|
|
105
|
+
assistant_message: ChatEventAssistantMessage = Field(
|
|
106
|
+
default=ChatEventAssistantMessage(id="", created_at="")
|
|
107
|
+
)
|
|
108
|
+
configuration: dict[str, Any] = {}
|
|
109
|
+
metadata: T
|
|
110
|
+
metadata_filter: dict[str, Any] | None = None
|
|
111
|
+
|
|
112
|
+
|
|
113
|
+
########### Specialized Payload definitions ###########
|
|
114
|
+
|
|
115
|
+
|
|
116
|
+
class MagicTableAddMetadataPayload(
|
|
117
|
+
MagicTableBasePayload[Literal[MagicTableAction.ADD_META_DATA], DDMetadata]
|
|
118
|
+
): ...
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+
class MagicTableUpdateCellPayload(
|
|
122
|
+
MagicTableBasePayload[Literal[MagicTableAction.UPDATE_CELL], DDMetadata]
|
|
123
|
+
):
|
|
124
|
+
column_order: int
|
|
125
|
+
row_order: int
|
|
126
|
+
data: str
|
|
127
|
+
|
|
128
|
+
|
|
129
|
+
class ArtifactType(StrEnum):
|
|
130
|
+
QUESTIONS = "QUESTIONS"
|
|
131
|
+
FULL_REPORT = "FULL_REPORT"
|
|
132
|
+
|
|
133
|
+
|
|
134
|
+
class ArtifactData(BaseModel):
|
|
135
|
+
model_config = get_configuration_dict()
|
|
136
|
+
artifact_type: ArtifactType
|
|
137
|
+
|
|
138
|
+
|
|
139
|
+
class MagicTableGenerateArtifactPayload(
|
|
140
|
+
MagicTableBasePayload[Literal[MagicTableAction.GENERATE_ARTIFACT], BaseMetadata]
|
|
141
|
+
):
|
|
142
|
+
data: ArtifactData
|
|
143
|
+
|
|
144
|
+
|
|
145
|
+
########## Sheet Completed Payload ##########
|
|
146
|
+
|
|
147
|
+
|
|
148
|
+
class SheetCompletedMetadata(BaseMetadata):
|
|
149
|
+
model_config = get_configuration_dict()
|
|
150
|
+
sheet_id: str = Field(description="The ID of the sheet that was completed.")
|
|
151
|
+
library_sheet_id: str = Field(
|
|
152
|
+
description="The ID of the library corresponding to the sheet."
|
|
153
|
+
)
|
|
154
|
+
context: str = Field(default="", description="The context text for the table.")
|
|
155
|
+
|
|
156
|
+
@field_validator("context", mode="before")
|
|
157
|
+
@classmethod
|
|
158
|
+
def normalize_context(cls, v):
|
|
159
|
+
if v is None:
|
|
160
|
+
return ""
|
|
161
|
+
return v
|
|
162
|
+
|
|
163
|
+
|
|
164
|
+
class MagicTableSheetCompletedPayload(
|
|
165
|
+
MagicTableBasePayload[
|
|
166
|
+
Literal[MagicTableAction.SHEET_COMPLETED], SheetCompletedMetadata
|
|
167
|
+
]
|
|
168
|
+
): ...
|
|
169
|
+
|
|
170
|
+
|
|
171
|
+
class SheetCreatedMetadata(BaseMetadata): ...
|
|
172
|
+
|
|
173
|
+
|
|
174
|
+
class MagicTableSheetCreatedPayload(
|
|
175
|
+
MagicTableBasePayload[Literal[MagicTableAction.SHEET_CREATED], SheetCreatedMetadata]
|
|
176
|
+
): ...
|
|
177
|
+
|
|
178
|
+
|
|
179
|
+
########## Library Sheet Row Verified Payload ##########
|
|
180
|
+
|
|
181
|
+
|
|
182
|
+
class LibrarySheetRowVerifiedMetadata(BaseMetadata):
|
|
183
|
+
model_config = get_configuration_dict()
|
|
184
|
+
row_order: int = Field(description="The row index of the row that was verified.")
|
|
185
|
+
|
|
186
|
+
|
|
187
|
+
class MagicTableLibrarySheetRowVerifiedPayload(
|
|
188
|
+
MagicTableBasePayload[
|
|
189
|
+
Literal[MagicTableAction.LIBRARY_SHEET_ROW_VERIFIED],
|
|
190
|
+
LibrarySheetRowVerifiedMetadata,
|
|
191
|
+
]
|
|
192
|
+
): ...
|
|
193
|
+
|
|
194
|
+
|
|
195
|
+
########### Magic Table Event definition ###########
|
|
196
|
+
|
|
197
|
+
|
|
198
|
+
PayloadTypes = (
|
|
199
|
+
MagicTableUpdateCellPayload
|
|
200
|
+
| MagicTableAddMetadataPayload
|
|
201
|
+
| MagicTableGenerateArtifactPayload
|
|
202
|
+
| MagicTableSheetCompletedPayload
|
|
203
|
+
| MagicTableLibrarySheetRowVerifiedPayload
|
|
204
|
+
| MagicTableSheetCreatedPayload
|
|
205
|
+
)
|
|
206
|
+
|
|
207
|
+
MagicTablePayloadTypes = Annotated[PayloadTypes, Field(discriminator="action")]
|
|
208
|
+
|
|
209
|
+
|
|
210
|
+
class MagicTableEvent(ChatEvent):
|
|
211
|
+
event: MagicTableEventTypes # type: ignore[assignment]
|
|
212
|
+
payload: MagicTablePayloadTypes # type: ignore[assignment]
|
|
213
|
+
|
|
214
|
+
|
|
215
|
+
class LogDetail(BaseModel):
|
|
216
|
+
model_config = get_configuration_dict()
|
|
217
|
+
llm_request: LanguageModelMessages | None = Field(
|
|
218
|
+
default=None, description="The LLM request for the log detail"
|
|
219
|
+
)
|
|
220
|
+
|
|
221
|
+
def to_sdk_log_detail(self) -> SDKLogDetail:
|
|
222
|
+
llm_request = None
|
|
223
|
+
if self.llm_request:
|
|
224
|
+
llm_request = self.llm_request.model_dump()
|
|
225
|
+
return SDKLogDetail(llmRequest=llm_request)
|
|
226
|
+
|
|
227
|
+
|
|
228
|
+
class LogEntry(BaseModel):
|
|
229
|
+
model_config = get_configuration_dict()
|
|
230
|
+
|
|
231
|
+
text: str
|
|
232
|
+
created_at: str
|
|
233
|
+
actor_type: LanguageModelMessageRole
|
|
234
|
+
message_id: str | None = None
|
|
235
|
+
details: LogDetail | None = Field(
|
|
236
|
+
default=None, description="The details of the log entry"
|
|
237
|
+
)
|
|
238
|
+
|
|
239
|
+
@field_validator("actor_type", mode="before")
|
|
240
|
+
@classmethod
|
|
241
|
+
def normalize_actor_type(cls, v):
|
|
242
|
+
if isinstance(v, str):
|
|
243
|
+
return v.lower()
|
|
244
|
+
return v
|
|
245
|
+
|
|
246
|
+
def to_sdk_log_entry(self) -> SDKLogEntry:
|
|
247
|
+
params: dict[str, Any] = {
|
|
248
|
+
"text": self.text,
|
|
249
|
+
"createdAt": self.created_at,
|
|
250
|
+
"actorType": self.actor_type.value.upper(),
|
|
251
|
+
}
|
|
252
|
+
if self.details:
|
|
253
|
+
params["details"] = self.details.to_sdk_log_detail()
|
|
254
|
+
|
|
255
|
+
return SDKLogEntry(**params)
|
|
256
|
+
|
|
257
|
+
|
|
258
|
+
class MagicTableCellMetaData(BaseModel):
|
|
259
|
+
model_config = get_configuration_dict()
|
|
260
|
+
row_order: int = Field(description="The row index of the cell.")
|
|
261
|
+
column_order: int = Field(description="The column index of the cell.")
|
|
262
|
+
selected: bool | None = None
|
|
263
|
+
selection_method: SelectionMethod | None = None
|
|
264
|
+
agreement_status: AgreementStatus | None = None
|
|
265
|
+
|
|
266
|
+
|
|
267
|
+
class MagicTableCell(BaseModel):
|
|
268
|
+
model_config = get_configuration_dict()
|
|
269
|
+
sheet_id: str
|
|
270
|
+
row_order: int = Field(description="The row index of the cell.")
|
|
271
|
+
column_order: int = Field(description="The column index of the cell.")
|
|
272
|
+
row_locked: bool = Field(default=False, description="Lock status of the row.")
|
|
273
|
+
text: str
|
|
274
|
+
log_entries: list[LogEntry] = Field(
|
|
275
|
+
default_factory=list, description="The log entries for the cell"
|
|
276
|
+
)
|
|
277
|
+
meta_data: MagicTableCellMetaData | None = Field(
|
|
278
|
+
default=None, description="The metadata for the cell"
|
|
279
|
+
)
|
|
280
|
+
row_metadata: list[RowMetadataEntry] = Field(
|
|
281
|
+
default_factory=list,
|
|
282
|
+
description="The metadata (key value pairs)for the rows.",
|
|
283
|
+
)
|
|
284
|
+
|
|
285
|
+
|
|
286
|
+
class MagicTableSheet(BaseModel):
|
|
287
|
+
model_config = get_configuration_dict()
|
|
288
|
+
sheet_id: str
|
|
289
|
+
name: str
|
|
290
|
+
state: AgenticTableSheetState
|
|
291
|
+
total_number_of_rows: int = Field(
|
|
292
|
+
default=0,
|
|
293
|
+
description="The total number of rows in the sheet",
|
|
294
|
+
alias="magicTableRowCount",
|
|
295
|
+
)
|
|
296
|
+
chat_id: str
|
|
297
|
+
created_by: str
|
|
298
|
+
company_id: str
|
|
299
|
+
created_at: str
|
|
300
|
+
magic_table_cells: list[MagicTableCell] = Field(
|
|
301
|
+
default_factory=list, description="The cells in the sheet"
|
|
302
|
+
)
|
|
303
|
+
magic_table_sheet_metadata: list[RowMetadataEntry] = Field(
|
|
304
|
+
default_factory=list, description="The metadata for the sheet"
|
|
305
|
+
)
|