language-model-common 2.0.83__tar.gz → 2.0.85__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.
- {language_model_common-2.0.83/language_model_common.egg-info → language_model_common-2.0.85}/PKG-INFO +1 -1
- language_model_common-2.0.85/VERSION +1 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85/language_model_common.egg-info}/PKG-INFO +1 -1
- {language_model_common-2.0.83 → language_model_common-2.0.85}/language_model_common.egg-info/SOURCES.txt +1 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/converters/langgraph_to_openai_converter.py +149 -37
- language_model_common-2.0.85/languagemodelcommon/exceptions/rate_limit_exception.py +22 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/mcp/mcp_client/mcp_tool_list_store.py +12 -1
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/utilities/environment/language_model_common_environment_variables.py +15 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/utilities/tool_display_name_mapper.py +2 -2
- language_model_common-2.0.83/VERSION +0 -1
- {language_model_common-2.0.83 → language_model_common-2.0.85}/LICENSE +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/MANIFEST.in +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/README.md +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/language_model_common.egg-info/dependency_links.txt +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/language_model_common.egg-info/requires.txt +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/language_model_common.egg-info/top_level.txt +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/__init__.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/auth/__init__.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/auth/authenticator/__init__.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/auth/exceptions/__init__.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/auth/exceptions/authorization_mcp_tool_token_invalid_exception.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/auth/exceptions/authorization_token_cache_item_expired_exception.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/auth/exceptions/authorization_token_cache_item_not_found_exception.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/auth/models/__init__.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/auth/models/token_cache_item.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/auth/oauth_provider_registrar.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/auth/pass_through_token_manager.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/auth/token_exchange/__init__.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/auth/token_exchange/token_exchange_manager.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/auth/token_storage_auth_manager.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/auth/tools/__init__.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/auth/tools/tool_auth_manager.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/aws/__init__.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/aws/aws_client_factory.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/configs/__init__.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/configs/config_reader/__init__.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/configs/config_reader/config_reader.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/configs/config_reader/file_config_reader.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/configs/config_reader/github_directory_downloader.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/configs/config_reader/github_directory_helper.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/configs/config_reader/mcp_json_fetcher.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/configs/config_reader/mcp_json_reader.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/configs/config_reader/s3_config_reader.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/configs/prompt_library/__init__.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/configs/prompt_library/prompt_library_environment_variables.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/configs/prompt_library/prompt_library_manager.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/configs/prompt_library/prompt_store.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/configs/schemas/__init__.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/configs/schemas/config_schema.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/configs/schemas/mcp_json_schema.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/container/__init__.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/container/container_factory.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/context/__init__.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/context/request_context.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/converters/__init__.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/converters/stream_buffer.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/converters/stream_context_mixin.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/converters/stream_debug_output_manager.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/converters/streaming_formatters.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/converters/streaming_manager.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/converters/streaming_tool_node.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/converters/tool_event_handlers.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/exceptions/__init__.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/exceptions/bailey_exception.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/file_managers/__init__.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/file_managers/aws_s3_file_manager.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/file_managers/file_manager.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/file_managers/file_manager_factory.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/file_managers/file_writer.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/file_managers/local_file_manager.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/github/__init__.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/github/token_provider.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/graph/__init__.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/graph/graph_builder.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/history/__init__.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/history/context_compactor.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/history/conversation_history_manager.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/history/smart_history_manager.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/http/__init__.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/http/http_client_factory.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/image_generation/__init__.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/image_generation/aws_image_generator.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/image_generation/image_generator.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/image_generation/image_generator_factory.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/image_generation/managers/__init__.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/image_generation/managers/image_generation_manager.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/image_generation/openai_image_generator.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/image_generation/providers/__init__.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/image_generation/providers/base_image_generation_provider.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/image_generation/providers/image_generation_provider.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/markdown/__init__.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/markdown/html_to_markdown_converter.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/mcp/__init__.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/mcp/auth/__init__.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/mcp/auth/auth_server_metadata_discovery.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/mcp/auth/mcp_authorization_helper.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/mcp/callbacks.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/mcp/exceptions/__init__.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/mcp/exceptions/mcp_tool_exception.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/mcp/exceptions/mcp_tool_not_found_exception.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/mcp/exceptions/mcp_tool_unauthorized_exception.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/mcp/exceptions/mcp_tool_unknown_exception.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/mcp/interceptors/__init__.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/mcp/interceptors/auth.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/mcp/interceptors/tracing.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/mcp/interceptors/truncation.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/mcp/interceptors/types.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/mcp/mcp_client/__init__.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/mcp/mcp_client/content_conversion.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/mcp/mcp_client/langchain_adapter.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/mcp/mcp_client/mcp_app_proxy.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/mcp/mcp_client/server_card_discovery.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/mcp/mcp_client/session.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/mcp/mcp_client/session_pool.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/mcp/mcp_client/tool_invocation.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/mcp/mcp_client/tool_list_cache.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/mcp/mcp_client/ui_resource.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/mcp/mcp_tool_provider.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/mcp/tool_catalog.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/mcp/tool_discovery_middleware.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/mocks/__init__.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/mocks/mock_aws_client_factory.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/mocks/mock_http_client_factory.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/mocks/mock_image_generator.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/mocks/mock_image_generator_factory.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/models/__init__.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/models/bedrock_models.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/models/model_factory.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/models/sanitizing_bedrock_converse.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/ocr/__init__.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/ocr/aws_ocr_extractor.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/ocr/ocr_extractor.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/ocr/ocr_extractor_factory.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/persistence/__init__.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/persistence/persistence_factory.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/pipeline/__init__.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/pipeline/context.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/pipeline/output/__init__.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/pipeline/pipeline.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/pipeline/step.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/pipeline/steps/__init__.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/py.typed +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/schema/__init__.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/schema/openai/__init__.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/schema/openai/completions.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/schema/openai/image_generation.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/schema/openai/responses.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/state/__init__.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/state/messages_state.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/structures/__init__.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/structures/openai/__init__.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/structures/openai/message/__init__.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/structures/openai/message/chat_completion_api_message_wrapper.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/structures/openai/message/chat_message_wrapper.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/structures/openai/message/responses_api_message_wrapper.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/structures/openai/request/__init__.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/structures/openai/request/chat_completion_api_request_wrapper.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/structures/openai/request/chat_request_wrapper.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/structures/openai/request/responses_api_request_wrapper.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/tools/__init__.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/tools/mcp/__init__.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/tools/mcp/call_tool_tool.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/tools/mcp/search_tools_tool.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/utilities/__init__.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/utilities/cache/__init__.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/utilities/cache/advisory_lock.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/utilities/cache/model_config_cache_store.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/utilities/chat_message_helpers.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/utilities/config_substitution.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/utilities/environment/__init__.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/utilities/header_reader/__init__.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/utilities/header_reader/header_reader.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/utilities/logger/__init__.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/utilities/logger/debug_configuration.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/utilities/logger/exception_formatter.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/utilities/logger/exception_logger.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/utilities/logger/log_levels.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/utilities/logger/logging_response.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/utilities/logger/logging_transport.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/utilities/message_preprocessing/__init__.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/utilities/message_preprocessing/composite_message_preprocessor.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/utilities/message_preprocessing/message_preprocessor.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/utilities/mongo_url_utils.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/utilities/openai/__init__.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/utilities/openai/responses_api_converter.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/utilities/request_information.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/utilities/s3_url.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/utilities/security/__init__.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/utilities/security/normalize.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/utilities/security/off_topic_detector.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/utilities/security/prompt_extraction_detector.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/utilities/security/prompt_sanitizer.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/utilities/slash_command/__init__.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/utilities/slash_command/handlers/__init__.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/utilities/slash_command/handlers/debug_command_handler.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/utilities/slash_command/handlers/skill_command_handler.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/utilities/slash_command/slash_command_handler.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/utilities/slash_command/slash_command_parser.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/utilities/slash_command/slash_command_processor.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/utilities/text_humanizer.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/utilities/token_reducer/__init__.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/utilities/token_reducer/token_reducer.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/utilities/url_parser.py +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/pyproject.toml +0 -0
- {language_model_common-2.0.83 → language_model_common-2.0.85}/setup.cfg +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
2.0.85
|
|
@@ -58,6 +58,7 @@ languagemodelcommon/converters/streaming_tool_node.py
|
|
|
58
58
|
languagemodelcommon/converters/tool_event_handlers.py
|
|
59
59
|
languagemodelcommon/exceptions/__init__.py
|
|
60
60
|
languagemodelcommon/exceptions/bailey_exception.py
|
|
61
|
+
languagemodelcommon/exceptions/rate_limit_exception.py
|
|
61
62
|
languagemodelcommon/file_managers/__init__.py
|
|
62
63
|
languagemodelcommon/file_managers/aws_s3_file_manager.py
|
|
63
64
|
languagemodelcommon/file_managers/file_manager.py
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
+
import asyncio
|
|
1
2
|
import botocore
|
|
2
3
|
import logging
|
|
4
|
+
import random
|
|
3
5
|
import re
|
|
4
6
|
import traceback
|
|
5
7
|
import uuid
|
|
@@ -50,6 +52,7 @@ from languagemodelcommon.converters.stream_debug_output_manager import (
|
|
|
50
52
|
)
|
|
51
53
|
from languagemodelcommon.converters.streaming_manager import LangGraphStreamingManager
|
|
52
54
|
from languagemodelcommon.exceptions.bailey_exception import BaileyException
|
|
55
|
+
from languagemodelcommon.exceptions.rate_limit_exception import RateLimitException
|
|
53
56
|
from languagemodelcommon.mcp.tool_catalog import ToolCatalog
|
|
54
57
|
from languagemodelcommon.mcp.tool_discovery_middleware import ToolDiscoveryMiddleware
|
|
55
58
|
from languagemodelcommon.state.messages_state import MyMessagesState
|
|
@@ -133,6 +136,53 @@ class LangGraphToOpenAIConverter(StreamContextMixin):
|
|
|
133
136
|
current = current.__cause__ or current.__context__
|
|
134
137
|
return False
|
|
135
138
|
|
|
139
|
+
_RATE_LIMIT_PATTERNS: tuple[str, ...] = (
|
|
140
|
+
"too many tokens",
|
|
141
|
+
"rate limit",
|
|
142
|
+
"rate_limit",
|
|
143
|
+
"error code: 429",
|
|
144
|
+
)
|
|
145
|
+
|
|
146
|
+
@staticmethod
|
|
147
|
+
def _is_rate_limit_error(exception: BaseException) -> bool:
|
|
148
|
+
"""Check if any exception in the cause chain is an upstream rate limit (HTTP 429).
|
|
149
|
+
|
|
150
|
+
Detects structurally rather than importing a specific vendor SDK: a
|
|
151
|
+
``status_code``/``code`` of 429, a class named ``*RateLimitError*``
|
|
152
|
+
(Anthropic, OpenAI), or a recognizable message pattern.
|
|
153
|
+
"""
|
|
154
|
+
current: BaseException | None = exception
|
|
155
|
+
while current is not None:
|
|
156
|
+
if (
|
|
157
|
+
getattr(current, "status_code", None) == 429
|
|
158
|
+
or getattr(current, "code", None) == 429
|
|
159
|
+
):
|
|
160
|
+
return True
|
|
161
|
+
if "ratelimiterror" in current.__class__.__name__.lower():
|
|
162
|
+
return True
|
|
163
|
+
msg = str(current).lower()
|
|
164
|
+
if any(p in msg for p in LangGraphToOpenAIConverter._RATE_LIMIT_PATTERNS):
|
|
165
|
+
return True
|
|
166
|
+
current = current.__cause__ or current.__context__
|
|
167
|
+
return False
|
|
168
|
+
|
|
169
|
+
@staticmethod
|
|
170
|
+
def _get_retry_after_seconds(exception: BaseException) -> float | None:
|
|
171
|
+
"""Extract a ``Retry-After`` hint (seconds) from the exception's response, if present."""
|
|
172
|
+
current: BaseException | None = exception
|
|
173
|
+
while current is not None:
|
|
174
|
+
response = getattr(current, "response", None)
|
|
175
|
+
headers = getattr(response, "headers", None)
|
|
176
|
+
if headers is not None:
|
|
177
|
+
retry_after = headers.get("retry-after") or headers.get("Retry-After")
|
|
178
|
+
if retry_after is not None:
|
|
179
|
+
try:
|
|
180
|
+
return float(retry_after)
|
|
181
|
+
except (TypeError, ValueError):
|
|
182
|
+
pass
|
|
183
|
+
current = current.__cause__ or current.__context__
|
|
184
|
+
return None
|
|
185
|
+
|
|
136
186
|
@staticmethod
|
|
137
187
|
def _find_cause(
|
|
138
188
|
exception: BaseException, target_type: type[BaseException]
|
|
@@ -693,50 +743,101 @@ class LangGraphToOpenAIConverter(StreamContextMixin):
|
|
|
693
743
|
config=config,
|
|
694
744
|
)
|
|
695
745
|
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
compiled_state_graph=compiled_state_graph,
|
|
700
|
-
request_information=request_information,
|
|
701
|
-
config=config,
|
|
702
|
-
state=state,
|
|
703
|
-
):
|
|
704
|
-
yield event
|
|
705
|
-
except BaileyException as e:
|
|
706
|
-
if "context window" not in str(e):
|
|
707
|
-
raise
|
|
708
|
-
|
|
709
|
-
if not self.environment_variables.context_compaction_enabled:
|
|
710
|
-
raise
|
|
711
|
-
|
|
712
|
-
# Compact and retry once
|
|
713
|
-
compacted_messages = self._context_compactor.compact(messages=messages)
|
|
714
|
-
if compacted_messages is messages or compacted_messages == messages:
|
|
715
|
-
raise
|
|
716
|
-
|
|
717
|
-
logger.info(
|
|
718
|
-
"Retrying after compaction. request_id=%s original_messages=%d compacted_messages=%d",
|
|
719
|
-
request_information.request_id,
|
|
720
|
-
len(messages),
|
|
721
|
-
len(compacted_messages),
|
|
722
|
-
)
|
|
723
|
-
|
|
746
|
+
rate_limit_attempt = 0
|
|
747
|
+
while True:
|
|
748
|
+
yielded_any = False
|
|
724
749
|
try:
|
|
725
750
|
async for event in self._attempt_stream(
|
|
726
|
-
messages=
|
|
751
|
+
messages=messages,
|
|
727
752
|
compiled_state_graph=compiled_state_graph,
|
|
728
753
|
request_information=request_information,
|
|
729
754
|
config=config,
|
|
730
|
-
state=
|
|
755
|
+
state=state,
|
|
731
756
|
):
|
|
757
|
+
yielded_any = True
|
|
732
758
|
yield event
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
759
|
+
return
|
|
760
|
+
except RateLimitException as e:
|
|
761
|
+
# Only safe to retry before the first token is streamed to the
|
|
762
|
+
# client; once partial output is sent, re-running would duplicate it.
|
|
763
|
+
if (
|
|
764
|
+
yielded_any
|
|
765
|
+
or not self.environment_variables.rate_limit_retry_enabled
|
|
766
|
+
or rate_limit_attempt
|
|
767
|
+
>= self.environment_variables.rate_limit_max_retries
|
|
768
|
+
):
|
|
769
|
+
raise
|
|
770
|
+
|
|
771
|
+
delay_seconds = self._compute_rate_limit_backoff(
|
|
772
|
+
attempt=rate_limit_attempt,
|
|
773
|
+
retry_after_seconds=e.retry_after_seconds,
|
|
774
|
+
)
|
|
775
|
+
logger.warning(
|
|
776
|
+
"Retrying after rate limit before first token. "
|
|
777
|
+
"request_id=%s attempt=%d delay_seconds=%.2f",
|
|
778
|
+
request_information.request_id,
|
|
779
|
+
rate_limit_attempt + 1,
|
|
780
|
+
delay_seconds,
|
|
781
|
+
)
|
|
782
|
+
await asyncio.sleep(delay_seconds)
|
|
783
|
+
rate_limit_attempt += 1
|
|
784
|
+
continue
|
|
785
|
+
except BaileyException as e:
|
|
786
|
+
if "context window" not in str(e):
|
|
787
|
+
raise
|
|
788
|
+
|
|
789
|
+
if not self.environment_variables.context_compaction_enabled:
|
|
790
|
+
raise
|
|
791
|
+
|
|
792
|
+
# Compact and retry once
|
|
793
|
+
compacted_messages = self._context_compactor.compact(messages=messages)
|
|
794
|
+
if compacted_messages is messages or compacted_messages == messages:
|
|
795
|
+
raise
|
|
796
|
+
|
|
797
|
+
logger.info(
|
|
798
|
+
"Retrying after compaction. request_id=%s original_messages=%d compacted_messages=%d",
|
|
799
|
+
request_information.request_id,
|
|
800
|
+
len(messages),
|
|
801
|
+
len(compacted_messages),
|
|
802
|
+
)
|
|
803
|
+
|
|
804
|
+
try:
|
|
805
|
+
async for event in self._attempt_stream(
|
|
806
|
+
messages=compacted_messages,
|
|
807
|
+
compiled_state_graph=compiled_state_graph,
|
|
808
|
+
request_information=request_information,
|
|
809
|
+
config=config,
|
|
810
|
+
state=None,
|
|
811
|
+
):
|
|
812
|
+
yield event
|
|
813
|
+
return
|
|
814
|
+
except BaileyException:
|
|
815
|
+
raise
|
|
816
|
+
except Exception as retry_error:
|
|
817
|
+
raise BaileyException(
|
|
818
|
+
"The conversation input exceeds the model's context window "
|
|
819
|
+
"even after compaction. Please start a new conversation."
|
|
820
|
+
) from retry_error
|
|
821
|
+
|
|
822
|
+
def _compute_rate_limit_backoff(
|
|
823
|
+
self,
|
|
824
|
+
*,
|
|
825
|
+
attempt: int,
|
|
826
|
+
retry_after_seconds: float | None,
|
|
827
|
+
) -> float:
|
|
828
|
+
"""Compute backoff delay for a rate-limit retry.
|
|
829
|
+
|
|
830
|
+
Honors an upstream ``Retry-After`` hint when present; otherwise uses
|
|
831
|
+
exponential backoff with full jitter based on the configured base delay.
|
|
832
|
+
"""
|
|
833
|
+
if retry_after_seconds is not None and retry_after_seconds > 0:
|
|
834
|
+
return retry_after_seconds
|
|
835
|
+
base_delay_seconds = (
|
|
836
|
+
self.environment_variables.rate_limit_retry_base_delay_ms / 1000.0
|
|
837
|
+
)
|
|
838
|
+
exponential_delay = base_delay_seconds * (2**attempt)
|
|
839
|
+
# Full jitter: random point in [0, exponential_delay] avoids thundering herd.
|
|
840
|
+
return random.uniform(0, exponential_delay)
|
|
740
841
|
|
|
741
842
|
async def _attempt_stream(
|
|
742
843
|
self,
|
|
@@ -800,6 +901,17 @@ class LangGraphToOpenAIConverter(StreamContextMixin):
|
|
|
800
901
|
"The graph reached its recursion limit before completing. "
|
|
801
902
|
"Please try again with a more focused request."
|
|
802
903
|
) from e
|
|
904
|
+
if self._is_rate_limit_error(e):
|
|
905
|
+
logger.warning(
|
|
906
|
+
"Rate limited while streaming. request_id=%s message_count=%d error=%s",
|
|
907
|
+
request_information.request_id,
|
|
908
|
+
len(messages),
|
|
909
|
+
e,
|
|
910
|
+
)
|
|
911
|
+
raise RateLimitException(
|
|
912
|
+
f"Upstream model rate limit exceeded: {e}",
|
|
913
|
+
retry_after_seconds=self._get_retry_after_seconds(e),
|
|
914
|
+
) from e
|
|
803
915
|
if self._is_timeout_exception(e):
|
|
804
916
|
logger.warning(
|
|
805
917
|
"Timeout while streaming graph. request_id=%s message_count=%d error=%s",
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
from typing import Optional
|
|
2
|
+
|
|
3
|
+
from languagemodelcommon.exceptions.bailey_exception import BaileyException
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class RateLimitException(BaileyException):
|
|
7
|
+
"""Raised when an upstream model rejects a request with a rate limit (HTTP 429).
|
|
8
|
+
|
|
9
|
+
Subclasses :class:`BaileyException` so existing callers that catch the base
|
|
10
|
+
type continue to work. Carries an optional ``retry_after_seconds`` hint
|
|
11
|
+
parsed from the upstream ``Retry-After`` header so callers can honor the
|
|
12
|
+
server's requested backoff.
|
|
13
|
+
"""
|
|
14
|
+
|
|
15
|
+
def __init__(
|
|
16
|
+
self,
|
|
17
|
+
message: str,
|
|
18
|
+
*,
|
|
19
|
+
retry_after_seconds: Optional[float] = None,
|
|
20
|
+
) -> None:
|
|
21
|
+
super().__init__(message)
|
|
22
|
+
self.retry_after_seconds = retry_after_seconds
|
|
@@ -91,7 +91,18 @@ class McpToolListStore:
|
|
|
91
91
|
|
|
92
92
|
async def clear(self) -> None:
|
|
93
93
|
if isinstance(self._store, BaseDestroyCollectionStore):
|
|
94
|
-
|
|
94
|
+
try:
|
|
95
|
+
await self._store.destroy_collection(collection=self._collection)
|
|
96
|
+
except KeyError:
|
|
97
|
+
# py-key-value-aio's MongoDBStore lazy-registers collections in
|
|
98
|
+
# _collections_by_name on first read/write and raises KeyError
|
|
99
|
+
# from destroy_collection when the collection was never touched.
|
|
100
|
+
# Treat as a no-op: nothing was stored, nothing to clear.
|
|
101
|
+
logger.debug(
|
|
102
|
+
"Collection %s not initialized; clear is a no-op",
|
|
103
|
+
self._collection,
|
|
104
|
+
)
|
|
105
|
+
return
|
|
95
106
|
self._store._setup_collection_complete[self._collection] = False
|
|
96
107
|
else:
|
|
97
108
|
logger.warning(
|
|
@@ -235,6 +235,21 @@ class LanguageModelCommonEnvironmentVariables(
|
|
|
235
235
|
"""When True, automatically compact conversation context on input-too-long errors."""
|
|
236
236
|
return self.str2bool(os.environ.get("CONTEXT_COMPACTION_ENABLED", "true"))
|
|
237
237
|
|
|
238
|
+
@property
|
|
239
|
+
def rate_limit_retry_enabled(self) -> bool:
|
|
240
|
+
"""When True, retry upstream model rate limits (HTTP 429) before surfacing them."""
|
|
241
|
+
return self.str2bool(os.environ.get("RATE_LIMIT_RETRY_ENABLED", "true"))
|
|
242
|
+
|
|
243
|
+
@property
|
|
244
|
+
def rate_limit_max_retries(self) -> int:
|
|
245
|
+
"""Maximum number of retries for an upstream rate limit before giving up."""
|
|
246
|
+
return int(os.environ.get("RATE_LIMIT_MAX_RETRIES", "3"))
|
|
247
|
+
|
|
248
|
+
@property
|
|
249
|
+
def rate_limit_retry_base_delay_ms(self) -> int:
|
|
250
|
+
"""Base delay in milliseconds for rate-limit retry exponential backoff."""
|
|
251
|
+
return int(os.environ.get("RATE_LIMIT_RETRY_BASE_DELAY_MS", "500"))
|
|
252
|
+
|
|
238
253
|
@property
|
|
239
254
|
def mongo_db_token_collection_name(self) -> Optional[str]:
|
|
240
255
|
return os.environ.get("MONGO_DB_TOKEN_COLLECTION_NAME")
|
|
@@ -154,8 +154,8 @@ class ToolDisplayNameMapper:
|
|
|
154
154
|
return ""
|
|
155
155
|
|
|
156
156
|
if self._starts_with_emoji(name_for_tool):
|
|
157
|
-
return f"\n{name_for_tool}.\n"
|
|
158
|
-
return f"\n🛠️ {name_for_tool}.\n"
|
|
157
|
+
return f"\n\n{name_for_tool}.\n\n"
|
|
158
|
+
return f"\n\n🛠️ {name_for_tool}.\n\n"
|
|
159
159
|
|
|
160
160
|
def get_name_for_tool(
|
|
161
161
|
self, *, tool_name: str | None, tool_input: Dict[str, Any] | None
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
2.0.83
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/__init__.py
RENAMED
|
File without changes
|
{language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/auth/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/aws/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/github/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/graph/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/http/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/mcp/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/mcp/callbacks.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/mocks/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/models/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/ocr/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/pipeline/step.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/schema/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/state/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{language_model_common-2.0.83 → language_model_common-2.0.85}/languagemodelcommon/tools/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|