language-model-common 3.0.0__tar.gz → 3.0.2__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-3.0.0/language_model_common.egg-info → language_model_common-3.0.2}/PKG-INFO +2 -2
- language_model_common-3.0.2/VERSION +1 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2/language_model_common.egg-info}/PKG-INFO +2 -2
- {language_model_common-3.0.0 → language_model_common-3.0.2}/language_model_common.egg-info/requires.txt +1 -1
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/configs/config_reader/mcp_json_fetcher.py +2 -2
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/mcp/callbacks.py +1 -1
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/mcp/interceptors/tracing.py +1 -1
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/mcp/interceptors/truncation.py +3 -1
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/mcp/mcp_client/content_conversion.py +6 -6
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/mcp/mcp_client/langchain_adapter.py +1 -1
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/mcp/mcp_client/session.py +32 -22
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/mcp/mcp_client/session_pool.py +2 -2
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/mcp/mcp_client/tool_invocation.py +12 -12
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/mcp/mcp_client/tool_list_cache.py +5 -3
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/utilities/logger/logging_response.py +10 -8
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/utilities/logger/logging_transport.py +9 -9
- {language_model_common-3.0.0 → language_model_common-3.0.2}/pyproject.toml +1 -1
- language_model_common-3.0.0/VERSION +0 -1
- {language_model_common-3.0.0 → language_model_common-3.0.2}/LICENSE +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/MANIFEST.in +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/README.md +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/language_model_common.egg-info/SOURCES.txt +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/language_model_common.egg-info/dependency_links.txt +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/language_model_common.egg-info/top_level.txt +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/__init__.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/auth/__init__.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/auth/authenticator/__init__.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/auth/exceptions/__init__.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/auth/models/__init__.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/aws/__init__.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/aws/aws_client_factory.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/configs/__init__.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/configs/config_reader/__init__.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/configs/config_reader/config_reader.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/configs/config_reader/file_config_reader.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/configs/config_reader/github_directory_downloader.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/configs/config_reader/github_directory_helper.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/configs/config_reader/mcp_json_reader.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/configs/config_reader/s3_config_reader.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/configs/prompt_library/__init__.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/configs/prompt_library/prompt_library_environment_variables.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/configs/prompt_library/prompt_library_manager.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/configs/prompt_library/prompt_store.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/configs/schemas/__init__.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/configs/schemas/config_schema.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/configs/schemas/mcp_json_schema.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/container/__init__.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/container/container_factory.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/context/__init__.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/context/request_context.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/converters/__init__.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/converters/history_cache_middleware.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/converters/langgraph_to_openai_converter.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/converters/stream_buffer.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/converters/stream_context_mixin.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/converters/stream_debug_output_manager.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/converters/streaming_formatters.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/converters/streaming_manager.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/converters/streaming_tool_node.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/converters/tool_event_handlers.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/exceptions/__init__.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/exceptions/bailey_exception.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/exceptions/rate_limit_exception.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/file_managers/__init__.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/file_managers/aws_s3_file_manager.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/file_managers/file_manager.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/file_managers/file_manager_factory.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/file_managers/file_writer.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/file_managers/local_file_manager.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/github/__init__.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/github/token_provider.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/graph/__init__.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/graph/graph_builder.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/history/__init__.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/history/context_compactor.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/history/conversation_history_manager.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/history/smart_history_manager.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/http/__init__.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/http/http_client_factory.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/image_generation/__init__.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/image_generation/aws_image_generator.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/image_generation/image_generator.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/image_generation/image_generator_factory.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/image_generation/managers/__init__.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/image_generation/managers/image_generation_manager.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/image_generation/openai_image_generator.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/image_generation/providers/__init__.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/image_generation/providers/base_image_generation_provider.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/image_generation/providers/image_generation_provider.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/markdown/__init__.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/markdown/html_to_markdown_converter.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/mcp/__init__.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/mcp/auth/__init__.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/mcp/exceptions/__init__.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/mcp/interceptors/__init__.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/mcp/interceptors/types.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/mcp/mcp_client/__init__.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/mcp/mcp_client/mcp_tool_list_store.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/mcp/mcp_client/server_card_discovery.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/mocks/__init__.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/mocks/mock_aws_client_factory.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/mocks/mock_http_client_factory.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/mocks/mock_image_generator.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/mocks/mock_image_generator_factory.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/models/__init__.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/models/bedrock_models.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/models/model_factory.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/models/sanitizing_bedrock_converse.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/ocr/__init__.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/ocr/aws_ocr_extractor.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/ocr/ocr_extractor.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/ocr/ocr_extractor_factory.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/persistence/__init__.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/persistence/persistence_factory.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/pipeline/__init__.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/pipeline/context.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/pipeline/output/__init__.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/pipeline/pipeline.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/pipeline/step.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/pipeline/steps/__init__.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/py.typed +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/schema/__init__.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/schema/openai/__init__.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/schema/openai/completions.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/schema/openai/image_generation.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/schema/openai/responses.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/state/__init__.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/state/messages_state.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/structures/__init__.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/structures/openai/__init__.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/structures/openai/message/__init__.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/structures/openai/message/chat_completion_api_message_wrapper.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/structures/openai/message/chat_message_wrapper.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/structures/openai/message/responses_api_message_wrapper.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/structures/openai/request/__init__.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/structures/openai/request/chat_completion_api_request_wrapper.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/structures/openai/request/chat_request_wrapper.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/structures/openai/request/responses_api_request_wrapper.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/tools/__init__.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/tools/mcp/__init__.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/utilities/__init__.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/utilities/cache/__init__.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/utilities/cache/advisory_lock.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/utilities/cache/model_config_cache_store.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/utilities/chat_message_helpers.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/utilities/config_substitution.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/utilities/environment/__init__.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/utilities/environment/language_model_common_environment_variables.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/utilities/header_reader/__init__.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/utilities/header_reader/header_reader.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/utilities/logger/__init__.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/utilities/logger/debug_configuration.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/utilities/logger/exception_formatter.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/utilities/logger/exception_logger.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/utilities/logger/log_levels.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/utilities/message_preprocessing/__init__.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/utilities/message_preprocessing/composite_message_preprocessor.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/utilities/message_preprocessing/message_preprocessor.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/utilities/mongo_url_utils.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/utilities/openai/__init__.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/utilities/openai/responses_api_converter.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/utilities/request_information.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/utilities/s3_url.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/utilities/security/__init__.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/utilities/security/normalize.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/utilities/security/off_topic_detector.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/utilities/security/prompt_extraction_detector.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/utilities/security/prompt_sanitizer.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/utilities/security/url_validation.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/utilities/slash_command/__init__.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/utilities/slash_command/handlers/__init__.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/utilities/slash_command/handlers/debug_command_handler.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/utilities/slash_command/handlers/skill_command_handler.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/utilities/slash_command/slash_command_handler.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/utilities/slash_command/slash_command_parser.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/utilities/slash_command/slash_command_processor.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/utilities/text_humanizer.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/utilities/token_reducer/__init__.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/utilities/token_reducer/token_reducer.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/utilities/tool_display_name_mapper.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/utilities/url_parser.py +0 -0
- {language_model_common-3.0.0 → language_model_common-3.0.2}/setup.cfg +0 -0
{language_model_common-3.0.0/language_model_common.egg-info → language_model_common-3.0.2}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: language-model-common
|
|
3
|
-
Version: 3.0.
|
|
3
|
+
Version: 3.0.2
|
|
4
4
|
Summary: Provides the underlying framework to enhance langchain and add loading configurations
|
|
5
5
|
Author-email: Imran Qureshi <imran.qureshi@bwell.com>
|
|
6
6
|
License: Apache-2.0
|
|
@@ -30,7 +30,7 @@ Requires-Dist: simple-container>=1.0.2
|
|
|
30
30
|
Requires-Dist: pypdf>=6.6.0
|
|
31
31
|
Requires-Dist: markdownify>=0.14.1
|
|
32
32
|
Requires-Dist: beautifulsoup4>=4.12.3
|
|
33
|
-
Requires-Dist: oidcauthlib>=3.0.
|
|
33
|
+
Requires-Dist: oidcauthlib>=3.0.21
|
|
34
34
|
Requires-Dist: fsspec>=2026.2.0
|
|
35
35
|
Requires-Dist: authlib>=1.6.5
|
|
36
36
|
Requires-Dist: langchain-google-genai>=4.1.3
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
3.0.2
|
{language_model_common-3.0.0 → language_model_common-3.0.2/language_model_common.egg-info}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: language-model-common
|
|
3
|
-
Version: 3.0.
|
|
3
|
+
Version: 3.0.2
|
|
4
4
|
Summary: Provides the underlying framework to enhance langchain and add loading configurations
|
|
5
5
|
Author-email: Imran Qureshi <imran.qureshi@bwell.com>
|
|
6
6
|
License: Apache-2.0
|
|
@@ -30,7 +30,7 @@ Requires-Dist: simple-container>=1.0.2
|
|
|
30
30
|
Requires-Dist: pypdf>=6.6.0
|
|
31
31
|
Requires-Dist: markdownify>=0.14.1
|
|
32
32
|
Requires-Dist: beautifulsoup4>=4.12.3
|
|
33
|
-
Requires-Dist: oidcauthlib>=3.0.
|
|
33
|
+
Requires-Dist: oidcauthlib>=3.0.21
|
|
34
34
|
Requires-Dist: fsspec>=2026.2.0
|
|
35
35
|
Requires-Dist: authlib>=1.6.5
|
|
36
36
|
Requires-Dist: langchain-google-genai>=4.1.3
|
|
@@ -74,7 +74,7 @@ class McpJsonFetcher:
|
|
|
74
74
|
|
|
75
75
|
raw_json = text_parts[0]
|
|
76
76
|
|
|
77
|
-
if getattr(result, "
|
|
77
|
+
if getattr(result, "is_error", False):
|
|
78
78
|
error_msg = (
|
|
79
79
|
f"get_mcp_servers_config returned an error for plugin "
|
|
80
80
|
f"'{plugin_name}' from {self._url}: {raw_json}"
|
|
@@ -140,7 +140,7 @@ class McpJsonFetcher:
|
|
|
140
140
|
|
|
141
141
|
raw_json = text_parts[0]
|
|
142
142
|
|
|
143
|
-
if getattr(result, "
|
|
143
|
+
if getattr(result, "is_error", False):
|
|
144
144
|
logger.warning(
|
|
145
145
|
"get_mcp_servers_config returned an error from %s: %s",
|
|
146
146
|
self._url,
|
{language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/mcp/callbacks.py
RENAMED
|
@@ -7,7 +7,7 @@ from dataclasses import dataclass
|
|
|
7
7
|
from typing import Protocol, runtime_checkable
|
|
8
8
|
|
|
9
9
|
from mcp.client.session import LoggingFnT as MCPLoggingFnT
|
|
10
|
-
from mcp.shared.
|
|
10
|
+
from mcp.shared.dispatcher import ProgressFnT as MCPProgressFnT
|
|
11
11
|
from mcp.types import LoggingMessageNotificationParams
|
|
12
12
|
|
|
13
13
|
|
|
@@ -116,7 +116,7 @@ class TracingMcpCallInterceptor:
|
|
|
116
116
|
span.set_attribute(
|
|
117
117
|
"mcp.result.content_blocks", len(result.content)
|
|
118
118
|
)
|
|
119
|
-
if result.
|
|
119
|
+
if result.structured_content is not None:
|
|
120
120
|
span.set_attribute("mcp.result.structured", True)
|
|
121
121
|
except Exception:
|
|
122
122
|
pass
|
|
@@ -80,7 +80,9 @@ class TruncationMcpCallInterceptor:
|
|
|
80
80
|
if isinstance(result, CallToolResult):
|
|
81
81
|
if logger.isEnabledFor(DEBUG):
|
|
82
82
|
# See if there is structured_content
|
|
83
|
-
structured_content: dict[str, Any] | None =
|
|
83
|
+
structured_content: dict[str, Any] | None = (
|
|
84
|
+
result.structured_content
|
|
85
|
+
)
|
|
84
86
|
logger.debug(
|
|
85
87
|
f"=== Tool structured output received: {type(structured_content)}: {structured_content} ==="
|
|
86
88
|
)
|
|
@@ -31,15 +31,15 @@ def convert_mcp_content_to_lc_block(
|
|
|
31
31
|
return create_text_block(text=content.text)
|
|
32
32
|
|
|
33
33
|
if isinstance(content, ImageContent):
|
|
34
|
-
return create_image_block(base64=content.data, mime_type=content.
|
|
34
|
+
return create_image_block(base64=content.data, mime_type=content.mime_type)
|
|
35
35
|
|
|
36
36
|
if isinstance(content, AudioContent):
|
|
37
37
|
raise NotImplementedError(
|
|
38
|
-
f"AudioContent conversion not supported. Mime type: {content.
|
|
38
|
+
f"AudioContent conversion not supported. Mime type: {content.mime_type}"
|
|
39
39
|
)
|
|
40
40
|
|
|
41
41
|
if isinstance(content, ResourceLink):
|
|
42
|
-
mime_type = content.
|
|
42
|
+
mime_type = content.mime_type or None
|
|
43
43
|
if mime_type and mime_type.startswith("image/"):
|
|
44
44
|
return create_image_block(url=str(content.uri), mime_type=mime_type)
|
|
45
45
|
return create_file_block(url=str(content.uri), mime_type=mime_type)
|
|
@@ -49,7 +49,7 @@ def convert_mcp_content_to_lc_block(
|
|
|
49
49
|
if isinstance(resource, TextResourceContents):
|
|
50
50
|
return create_text_block(text=resource.text)
|
|
51
51
|
if isinstance(resource, BlobResourceContents):
|
|
52
|
-
mime_type = resource.
|
|
52
|
+
mime_type = resource.mime_type or None
|
|
53
53
|
if mime_type and mime_type.startswith("image/"):
|
|
54
54
|
return create_image_block(base64=resource.blob, mime_type=mime_type)
|
|
55
55
|
return create_file_block(base64=resource.blob, mime_type=mime_type)
|
|
@@ -63,11 +63,11 @@ def convert_call_tool_result(
|
|
|
63
63
|
) -> list[ToolMessageContentBlock]:
|
|
64
64
|
"""Convert a CallToolResult to LangChain content blocks.
|
|
65
65
|
|
|
66
|
-
When the MCP server signals an error (
|
|
66
|
+
When the MCP server signals an error (is_error=True), the error content is
|
|
67
67
|
returned as normal text blocks prefixed with "Error:" so the LLM can see
|
|
68
68
|
the failure reason and retry with corrected parameters.
|
|
69
69
|
"""
|
|
70
|
-
if result.
|
|
70
|
+
if result.is_error:
|
|
71
71
|
error_parts = [
|
|
72
72
|
block.text for block in result.content if isinstance(block, TextContent)
|
|
73
73
|
]
|
|
@@ -114,7 +114,7 @@ def mcp_tool_to_langchain_tool(
|
|
|
114
114
|
return StructuredTool(
|
|
115
115
|
name=_sanitize_tool_name(tool.name),
|
|
116
116
|
description=tool.description or "",
|
|
117
|
-
args_schema=tool.
|
|
117
|
+
args_schema=tool.input_schema,
|
|
118
118
|
coroutine=call_tool,
|
|
119
119
|
response_format="content_and_artifact",
|
|
120
120
|
metadata=metadata or None,
|
|
@@ -6,9 +6,9 @@ from contextlib import asynccontextmanager
|
|
|
6
6
|
from datetime import timedelta
|
|
7
7
|
from typing import Any
|
|
8
8
|
|
|
9
|
-
import
|
|
9
|
+
import httpx2
|
|
10
10
|
from mcp import ClientSession
|
|
11
|
-
from mcp.client.streamable_http import
|
|
11
|
+
from mcp.client.streamable_http import streamable_http_client
|
|
12
12
|
from typing_extensions import NotRequired, TypedDict
|
|
13
13
|
|
|
14
14
|
from languagemodelcommon.mcp.callbacks import _MCPCallbacks
|
|
@@ -35,15 +35,15 @@ class McpSessionError(Exception):
|
|
|
35
35
|
|
|
36
36
|
|
|
37
37
|
class McpHttpClientFactory:
|
|
38
|
-
"""Protocol-compatible callable for creating
|
|
38
|
+
"""Protocol-compatible callable for creating httpx2 async clients."""
|
|
39
39
|
|
|
40
40
|
def __call__(
|
|
41
41
|
self,
|
|
42
42
|
headers: dict[str, str] | None = None,
|
|
43
|
-
timeout:
|
|
44
|
-
auth:
|
|
45
|
-
) ->
|
|
46
|
-
return
|
|
43
|
+
timeout: httpx2.Timeout | None = None,
|
|
44
|
+
auth: httpx2.Auth | None = None,
|
|
45
|
+
) -> httpx2.AsyncClient:
|
|
46
|
+
return httpx2.AsyncClient(
|
|
47
47
|
auth=auth,
|
|
48
48
|
headers=headers,
|
|
49
49
|
timeout=timeout,
|
|
@@ -73,11 +73,20 @@ async def create_mcp_session(
|
|
|
73
73
|
headers = config.get("headers")
|
|
74
74
|
timeout = config.get("timeout", DEFAULT_TIMEOUT)
|
|
75
75
|
sse_read_timeout = config.get("sse_read_timeout", DEFAULT_SSE_READ_TIMEOUT)
|
|
76
|
-
httpx_client_factory = config.get("httpx_client_factory")
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
76
|
+
httpx_client_factory = config.get("httpx_client_factory") or McpHttpClientFactory()
|
|
77
|
+
|
|
78
|
+
# mcp>=2.0's streamable_http_client takes a ready-made httpx2.AsyncClient
|
|
79
|
+
# (http_client=) instead of individual headers/timeout/sse_read_timeout
|
|
80
|
+
# kwargs. connect/write/pool keep `timeout`; `read` gets the longer
|
|
81
|
+
# `sse_read_timeout`, since the streamable HTTP connection is a
|
|
82
|
+
# long-lived read that would otherwise be cut short by `timeout`.
|
|
83
|
+
http_client = httpx_client_factory(
|
|
84
|
+
headers=headers,
|
|
85
|
+
timeout=httpx2.Timeout(
|
|
86
|
+
timeout.total_seconds(),
|
|
87
|
+
read=sse_read_timeout.total_seconds(),
|
|
88
|
+
),
|
|
89
|
+
)
|
|
81
90
|
|
|
82
91
|
session_kwargs: dict[str, Any] = {}
|
|
83
92
|
if mcp_callbacks is not None:
|
|
@@ -85,37 +94,38 @@ async def create_mcp_session(
|
|
|
85
94
|
session_kwargs["logging_callback"] = mcp_callbacks.logging_callback
|
|
86
95
|
|
|
87
96
|
try:
|
|
97
|
+
# streamable_http_client only manages the http_client's lifecycle
|
|
98
|
+
# when it creates one itself (http_client=None) -- since we always
|
|
99
|
+
# pass a pre-built client, we own closing it.
|
|
88
100
|
async with (
|
|
89
|
-
|
|
101
|
+
http_client,
|
|
102
|
+
streamable_http_client(
|
|
90
103
|
url,
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
sse_read_timeout,
|
|
94
|
-
**kwargs,
|
|
95
|
-
) as (read, write, _),
|
|
104
|
+
http_client=http_client,
|
|
105
|
+
) as (read, write),
|
|
96
106
|
ClientSession(read, write, **session_kwargs) as session,
|
|
97
107
|
):
|
|
98
108
|
yield session
|
|
99
|
-
except
|
|
109
|
+
except httpx2.ConnectError as e:
|
|
100
110
|
raise McpSessionError(
|
|
101
111
|
f"Connection refused — is the MCP server running at {url}? "
|
|
102
112
|
f"({type(e).__name__}: {e})",
|
|
103
113
|
url=url,
|
|
104
114
|
) from e
|
|
105
|
-
except
|
|
115
|
+
except httpx2.ConnectTimeout as e:
|
|
106
116
|
raise McpSessionError(
|
|
107
117
|
f"Connection timed out reaching MCP server at {url} "
|
|
108
118
|
f"(timeout={timeout}). ({type(e).__name__}: {e})",
|
|
109
119
|
url=url,
|
|
110
120
|
) from e
|
|
111
|
-
except
|
|
121
|
+
except httpx2.ReadTimeout as e:
|
|
112
122
|
raise McpSessionError(
|
|
113
123
|
f"Read timed out waiting for MCP server at {url} "
|
|
114
124
|
f"(sse_read_timeout={sse_read_timeout}). "
|
|
115
125
|
f"({type(e).__name__}: {e})",
|
|
116
126
|
url=url,
|
|
117
127
|
) from e
|
|
118
|
-
except
|
|
128
|
+
except httpx2.HTTPStatusError as e:
|
|
119
129
|
raise McpSessionError(
|
|
120
130
|
f"MCP server at {url} returned HTTP {e.response.status_code}. "
|
|
121
131
|
f"({type(e).__name__}: {e})",
|
|
@@ -23,7 +23,7 @@ logger.setLevel(SRC_LOG_LEVELS.MCP)
|
|
|
23
23
|
class _PooledSession:
|
|
24
24
|
"""A live MCP session whose CM lifecycle runs in a dedicated task.
|
|
25
25
|
|
|
26
|
-
``
|
|
26
|
+
``streamable_http_client`` uses anyio task groups whose cancel scopes
|
|
27
27
|
enforce that ``__aexit__`` is called in the same asyncio task that
|
|
28
28
|
called ``__aenter__``. To satisfy this, a background task runs the
|
|
29
29
|
CM and keeps it alive until ``close_event`` is set. The session
|
|
@@ -119,7 +119,7 @@ class McpSessionPool:
|
|
|
119
119
|
Each session's context manager lifecycle runs in a dedicated asyncio
|
|
120
120
|
task so that ``__aenter__`` and ``__aexit__`` execute in the same
|
|
121
121
|
task — required by anyio cancel scopes used inside
|
|
122
|
-
``
|
|
122
|
+
``streamable_http_client``.
|
|
123
123
|
"""
|
|
124
124
|
|
|
125
125
|
def __init__(self) -> None:
|
|
@@ -93,7 +93,7 @@ async def _tool_supports_tasks(
|
|
|
93
93
|
"""Check whether a specific tool supports task-augmented execution.
|
|
94
94
|
|
|
95
95
|
Server-level task capability is necessary but not sufficient. Each tool
|
|
96
|
-
declares its own task support via execution.
|
|
96
|
+
declares its own task support via execution.task_support in the tools/list
|
|
97
97
|
response. Only tools with "optional" or "required" support tasks.
|
|
98
98
|
|
|
99
99
|
Reads from the existing ToolListCache (populated when tools are listed)
|
|
@@ -112,7 +112,7 @@ async def _tool_supports_tasks(
|
|
|
112
112
|
for tool in tools:
|
|
113
113
|
if tool.name == tool_name:
|
|
114
114
|
if tool.execution is not None:
|
|
115
|
-
task_support = getattr(tool.execution, "
|
|
115
|
+
task_support = getattr(tool.execution, "task_support", None)
|
|
116
116
|
return task_support in ("optional", "required")
|
|
117
117
|
return False
|
|
118
118
|
|
|
@@ -120,20 +120,20 @@ async def _tool_supports_tasks(
|
|
|
120
120
|
|
|
121
121
|
|
|
122
122
|
def _extract_task_id_from_create_result(create_result: Any) -> str:
|
|
123
|
-
"""Extract
|
|
123
|
+
"""Extract task_id from CreateTaskResult, handling both spec versions.
|
|
124
124
|
|
|
125
|
-
Old spec: result.task.
|
|
126
|
-
New spec: result.
|
|
125
|
+
Old spec: result.task.task_id (nested under 'task' field)
|
|
126
|
+
New spec: result.task_id (flat, Result & Task merged)
|
|
127
127
|
"""
|
|
128
|
-
# New spec:
|
|
129
|
-
if hasattr(create_result, "
|
|
130
|
-
return str(create_result.
|
|
128
|
+
# New spec: task_id directly on result
|
|
129
|
+
if hasattr(create_result, "task_id"):
|
|
130
|
+
return str(create_result.task_id)
|
|
131
131
|
|
|
132
132
|
# Old spec: nested under .task
|
|
133
133
|
if hasattr(create_result, "task"):
|
|
134
|
-
return str(create_result.task.
|
|
134
|
+
return str(create_result.task.task_id)
|
|
135
135
|
|
|
136
|
-
raise ValueError(f"Cannot extract
|
|
136
|
+
raise ValueError(f"Cannot extract task_id from {type(create_result)}")
|
|
137
137
|
|
|
138
138
|
|
|
139
139
|
def _extract_result_from_task_status(task_status: Any) -> CallToolResult | None:
|
|
@@ -196,7 +196,7 @@ async def _execute_tool_as_task(
|
|
|
196
196
|
{
|
|
197
197
|
"task_id": task_id,
|
|
198
198
|
"status": status.status,
|
|
199
|
-
"message": getattr(status, "
|
|
199
|
+
"message": getattr(status, "status_message", None),
|
|
200
200
|
"server_name": server_name,
|
|
201
201
|
"tool_name": name,
|
|
202
202
|
},
|
|
@@ -297,7 +297,7 @@ def _make_execute_tool(
|
|
|
297
297
|
|
|
298
298
|
If the server and tool both advertise task support, the tool is
|
|
299
299
|
executed via the MCP task protocol with polling and progress events.
|
|
300
|
-
Per-tool ``execution.
|
|
300
|
+
Per-tool ``execution.task_support`` is checked from the already-cached
|
|
301
301
|
tool list so that tools with ``"forbidden"`` (or no declaration) use
|
|
302
302
|
normal call_tool.
|
|
303
303
|
"""
|
|
@@ -8,6 +8,7 @@ from dataclasses import dataclass
|
|
|
8
8
|
from typing import Protocol
|
|
9
9
|
|
|
10
10
|
from mcp import ClientSession
|
|
11
|
+
from mcp.types import PaginatedRequestParams
|
|
11
12
|
from mcp.types import Tool as MCPTool
|
|
12
13
|
|
|
13
14
|
from languagemodelcommon.utilities.logger.log_levels import SRC_LOG_LEVELS
|
|
@@ -266,12 +267,13 @@ async def list_all_tools(session: ClientSession) -> list[MCPTool]:
|
|
|
266
267
|
if iterations > MAX_ITERATIONS:
|
|
267
268
|
raise RuntimeError("Exceeded max iterations while listing tools")
|
|
268
269
|
|
|
269
|
-
|
|
270
|
+
params = PaginatedRequestParams(cursor=cursor) if cursor is not None else None
|
|
271
|
+
result = await session.list_tools(params=params)
|
|
270
272
|
if result.tools:
|
|
271
273
|
all_tools.extend(result.tools)
|
|
272
|
-
if not result.
|
|
274
|
+
if not result.next_cursor:
|
|
273
275
|
break
|
|
274
|
-
cursor = result.
|
|
276
|
+
cursor = result.next_cursor
|
|
275
277
|
|
|
276
278
|
return all_tools
|
|
277
279
|
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import logging
|
|
2
|
-
from
|
|
2
|
+
from collections.abc import AsyncGenerator
|
|
3
|
+
from typing import override
|
|
3
4
|
|
|
4
|
-
import
|
|
5
|
+
import httpx2
|
|
5
6
|
|
|
6
7
|
from languagemodelcommon.utilities.logger.log_levels import SRC_LOG_LEVELS
|
|
7
8
|
|
|
@@ -9,28 +10,29 @@ logger = logging.getLogger(__name__)
|
|
|
9
10
|
logger.setLevel(SRC_LOG_LEVELS.HTTP)
|
|
10
11
|
|
|
11
12
|
|
|
12
|
-
class LoggingResponse(
|
|
13
|
+
class LoggingResponse(httpx2.Response):
|
|
13
14
|
"""
|
|
14
15
|
A custom HTTP response class that logs the request and response details.
|
|
15
|
-
This class extends
|
|
16
|
+
This class extends httpx2.Response to log the request method, URL, status code,
|
|
16
17
|
and response content in bytes as they are streamed.
|
|
17
18
|
"""
|
|
18
19
|
|
|
19
20
|
@override
|
|
20
|
-
async def aiter_bytes(
|
|
21
|
+
async def aiter_bytes(
|
|
22
|
+
self, chunk_size: int | None = None
|
|
23
|
+
) -> AsyncGenerator[bytes, None]:
|
|
21
24
|
"""
|
|
22
25
|
Asynchronously iterate over the response content in bytes, logging each chunk.
|
|
23
26
|
This method overrides the default aiter_bytes method to include logging.
|
|
24
27
|
Args:
|
|
25
|
-
|
|
26
|
-
**kwargs: Keyword arguments passed to the parent method.
|
|
28
|
+
chunk_size: Passed through to the parent method.
|
|
27
29
|
Yields:
|
|
28
30
|
bytes: The next chunk of response content in bytes.
|
|
29
31
|
"""
|
|
30
32
|
logger.debug(
|
|
31
33
|
f"====== Response: {self.request.method} {self.url} {self.status_code} ====="
|
|
32
34
|
)
|
|
33
|
-
async for chunk in super().aiter_bytes(
|
|
35
|
+
async for chunk in super().aiter_bytes(chunk_size):
|
|
34
36
|
logger.debug(chunk)
|
|
35
37
|
yield chunk
|
|
36
38
|
logger.debug(
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import logging
|
|
2
2
|
from typing import override
|
|
3
3
|
|
|
4
|
-
import
|
|
4
|
+
import httpx2
|
|
5
5
|
|
|
6
6
|
from languagemodelcommon.utilities.logger.log_levels import SRC_LOG_LEVELS
|
|
7
7
|
from languagemodelcommon.utilities.logger.logging_response import (
|
|
@@ -12,29 +12,29 @@ logger = logging.getLogger(__name__)
|
|
|
12
12
|
logger.setLevel(SRC_LOG_LEVELS.HTTP)
|
|
13
13
|
|
|
14
14
|
|
|
15
|
-
class LoggingTransport(
|
|
15
|
+
class LoggingTransport(httpx2.AsyncBaseTransport):
|
|
16
16
|
"""
|
|
17
17
|
A custom HTTP transport that logs request and response details.
|
|
18
|
-
This class extends
|
|
18
|
+
This class extends httpx2.AsyncBaseTransport to log the request method, URL,
|
|
19
19
|
headers, and content before sending the request, and logs the response status code,
|
|
20
20
|
headers, and content as it is streamed back.
|
|
21
|
-
It is designed to be used with
|
|
21
|
+
It is designed to be used with httpx2 for asynchronous HTTP requests.
|
|
22
22
|
It logs the request method, URL, headers, and content before sending the request,
|
|
23
23
|
and logs the response status code, headers, and content as it is streamed back.
|
|
24
24
|
This transport can be used to monitor and debug HTTP requests and responses in an application.
|
|
25
25
|
"""
|
|
26
26
|
|
|
27
|
-
def __init__(self, transport:
|
|
27
|
+
def __init__(self, transport: httpx2.AsyncBaseTransport) -> None:
|
|
28
28
|
"""
|
|
29
29
|
Initialize the LoggingTransport with a given transport.
|
|
30
30
|
Args:
|
|
31
|
-
transport (
|
|
31
|
+
transport (httpx2.AsyncBaseTransport): The underlying transport to wrap.
|
|
32
32
|
This transport will handle the actual HTTP requests and responses.
|
|
33
33
|
"""
|
|
34
|
-
self.transport:
|
|
34
|
+
self.transport: httpx2.AsyncBaseTransport = transport
|
|
35
35
|
|
|
36
36
|
@override
|
|
37
|
-
async def handle_async_request(self, request:
|
|
37
|
+
async def handle_async_request(self, request: httpx2.Request) -> LoggingResponse:
|
|
38
38
|
"""
|
|
39
39
|
Handle an asynchronous HTTP request, logging the request details and returning a LoggingResponse.
|
|
40
40
|
Args:
|
|
@@ -60,7 +60,7 @@ class LoggingTransport(httpx.AsyncBaseTransport):
|
|
|
60
60
|
stream=response.stream,
|
|
61
61
|
extensions=response.extensions,
|
|
62
62
|
)
|
|
63
|
-
except
|
|
63
|
+
except httpx2.HTTPError as e:
|
|
64
64
|
logger.exception(f"HTTP error occurred: {e}")
|
|
65
65
|
raise
|
|
66
66
|
except Exception as e:
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
3.0.0
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/auth/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/aws/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/configs/__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
|
{language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/context/__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
|
{language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/github/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{language_model_common-3.0.0 → language_model_common-3.0.2}/languagemodelcommon/graph/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|