mcp-mesh 0.7.18__tar.gz → 0.7.19__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.
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/PKG-INFO +1 -1
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/__init__.py +1 -1
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/shared/logging_config.py +17 -11
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/mesh/helpers.py +11 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/pyproject.toml +4 -4
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/.gitignore +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/LICENSE +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/README.md +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/engine/__init__.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/engine/async_mcp_client.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/engine/base_injector.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/engine/decorator_registry.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/engine/dependency_injector.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/engine/http_wrapper.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/engine/llm_config.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/engine/llm_errors.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/engine/mesh_llm_agent.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/engine/mesh_llm_agent_injector.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/engine/provider_handlers/__init__.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/engine/provider_handlers/base_provider_handler.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/engine/provider_handlers/claude_handler.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/engine/provider_handlers/generic_handler.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/engine/provider_handlers/openai_handler.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/engine/provider_handlers/provider_handler_registry.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/engine/response_parser.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/engine/self_dependency_proxy.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/engine/session_aware_client.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/engine/session_manager.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/engine/signature_analyzer.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/engine/tool_executor.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/engine/tool_schema_builder.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/engine/unified_mcp_proxy.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/generated/.openapi-generator/FILES +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/generated/.openapi-generator/VERSION +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/generated/.openapi-generator-ignore +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/__init__.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/api/__init__.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/api/agents_api.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/api/health_api.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/api/tracing_api.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/api_client.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/api_response.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/configuration.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/exceptions.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/__init__.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/agent_info.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/agent_metadata.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/agent_metadata_dependencies_inner.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/agent_metadata_dependencies_inner_one_of.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/agent_registration.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/agent_registration_metadata.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/agents_list_response.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/capability_info.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/decorator_agent_metadata.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/decorator_agent_request.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/decorator_info.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/dependency_info.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/dependency_resolution_info.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/error_response.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/health_response.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/heartbeat_request.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/heartbeat_request_metadata.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/heartbeat_response.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/llm_provider.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/llm_provider_resolution_info.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/llm_tool_filter.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/llm_tool_filter_filter_inner.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/llm_tool_filter_filter_inner_one_of.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/llm_tool_info.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/llm_tool_resolution_info.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/mesh_agent_register_metadata.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/mesh_agent_registration.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/mesh_registration_response.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/mesh_registration_response_dependencies_resolved_value_inner.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/mesh_tool_dependency_registration.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/mesh_tool_register_metadata.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/mesh_tool_registration.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/registration_response.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/resolved_llm_provider.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/rich_dependency.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/root_response.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/standardized_dependency.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/trace_event.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/py.typed +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/rest.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/__init__.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/api_heartbeat/__init__.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/api_heartbeat/api_dependency_resolution.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/api_heartbeat/api_fast_heartbeat_check.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/api_heartbeat/api_health_check.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/api_heartbeat/api_heartbeat_orchestrator.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/api_heartbeat/api_heartbeat_pipeline.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/api_heartbeat/api_heartbeat_send.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/api_heartbeat/api_lifespan_integration.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/api_heartbeat/api_registry_connection.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/api_startup/__init__.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/api_startup/api_pipeline.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/api_startup/api_server_setup.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/api_startup/fastapi_discovery.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/api_startup/middleware_integration.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/api_startup/route_collection.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/api_startup/route_integration.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/mcp_heartbeat/__init__.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/mcp_heartbeat/dependency_resolution.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/mcp_heartbeat/fast_heartbeat_check.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/mcp_heartbeat/heartbeat_orchestrator.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/mcp_heartbeat/heartbeat_pipeline.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/mcp_heartbeat/heartbeat_send.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/mcp_heartbeat/lifespan_integration.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/mcp_heartbeat/llm_tools_resolution.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/mcp_heartbeat/registry_connection.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/mcp_startup/__init__.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/mcp_startup/configuration.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/mcp_startup/decorator_collection.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/mcp_startup/fastapiserver_setup.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/mcp_startup/fastmcpserver_discovery.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/mcp_startup/heartbeat_loop.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/mcp_startup/heartbeat_preparation.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/mcp_startup/lifespan_factory.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/mcp_startup/server_discovery.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/mcp_startup/startup_orchestrator.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/mcp_startup/startup_pipeline.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/shared/__init__.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/shared/base_step.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/shared/mesh_pipeline.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/shared/pipeline_types.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/shared/registry_connection.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/reload.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/reload_runner.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/shared/__init__.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/shared/config_resolver.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/shared/content_extractor.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/shared/defaults.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/shared/fast_heartbeat_status.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/shared/fastapi_middleware_manager.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/shared/health_check_manager.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/shared/host_resolver.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/shared/registry_client_wrapper.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/shared/server_discovery.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/shared/simple_shutdown.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/shared/sse_parser.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/shared/support_types.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/tracing/agent_context_helper.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/tracing/context.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/tracing/execution_tracer.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/tracing/fastapi_tracing_middleware.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/tracing/redis_metadata_publisher.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/tracing/trace_context_helper.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/tracing/utils.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/utils/fastmcp_schema_extractor.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/mesh/__init__.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/mesh/decorators.py +0 -0
- {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/mesh/types.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: mcp-mesh
|
|
3
|
-
Version: 0.7.
|
|
3
|
+
Version: 0.7.19
|
|
4
4
|
Summary: Kubernetes-native platform for distributed MCP applications
|
|
5
5
|
Project-URL: Homepage, https://github.com/dhyansraj/mcp-mesh
|
|
6
6
|
Project-URL: Documentation, https://github.com/dhyansraj/mcp-mesh/tree/main/docs
|
|
@@ -92,7 +92,12 @@ def configure_logging():
|
|
|
92
92
|
# Configure with safe stream handler for background threads
|
|
93
93
|
handler = SafeStreamHandler(sys.stdout)
|
|
94
94
|
handler.setLevel(TRACE) # Handler allows all levels including TRACE
|
|
95
|
-
handler.setFormatter(
|
|
95
|
+
handler.setFormatter(
|
|
96
|
+
logging.Formatter(
|
|
97
|
+
"%(asctime)s %(levelname)-8s %(message)s",
|
|
98
|
+
datefmt="%Y-%m-%d %H:%M:%S",
|
|
99
|
+
)
|
|
100
|
+
)
|
|
96
101
|
|
|
97
102
|
root_logger.addHandler(handler)
|
|
98
103
|
|
|
@@ -164,15 +169,16 @@ def get_trace_prefix() -> str:
|
|
|
164
169
|
return ""
|
|
165
170
|
|
|
166
171
|
|
|
167
|
-
def format_log_value(value, max_len: int =
|
|
168
|
-
"""Format a value for logging
|
|
172
|
+
def format_log_value(value, max_len: int = 0) -> str:
|
|
173
|
+
"""Format a value for logging.
|
|
169
174
|
|
|
170
|
-
Provides a readable representation of values with size info
|
|
171
|
-
|
|
175
|
+
Provides a readable representation of values with size info.
|
|
176
|
+
By default, no truncation is applied (max_len=0) to enable full
|
|
177
|
+
request/response logging at DEBUG/TRACE levels.
|
|
172
178
|
|
|
173
179
|
Args:
|
|
174
180
|
value: Any value to format
|
|
175
|
-
max_len: Maximum length before truncation (
|
|
181
|
+
max_len: Maximum length before truncation (0 = no truncation)
|
|
176
182
|
|
|
177
183
|
Returns:
|
|
178
184
|
Formatted string representation
|
|
@@ -185,18 +191,18 @@ def format_log_value(value, max_len: int = 1000) -> str:
|
|
|
185
191
|
try:
|
|
186
192
|
if isinstance(value, dict):
|
|
187
193
|
content = str(value)
|
|
188
|
-
if len(content) > max_len:
|
|
194
|
+
if max_len > 0 and len(content) > max_len:
|
|
189
195
|
return f"{type_name}({len(value)} keys): {content[:max_len]}..."
|
|
190
196
|
return content
|
|
191
197
|
|
|
192
198
|
elif isinstance(value, (list, tuple)):
|
|
193
199
|
content = str(value)
|
|
194
|
-
if len(content) > max_len:
|
|
200
|
+
if max_len > 0 and len(content) > max_len:
|
|
195
201
|
return f"{type_name}({len(value)} items): {content[:max_len]}..."
|
|
196
202
|
return content
|
|
197
203
|
|
|
198
204
|
elif isinstance(value, str):
|
|
199
|
-
if len(value) > max_len:
|
|
205
|
+
if max_len > 0 and len(value) > max_len:
|
|
200
206
|
return f'"{value[:max_len]}..." ({len(value)} chars)'
|
|
201
207
|
return f'"{value}"'
|
|
202
208
|
|
|
@@ -206,13 +212,13 @@ def format_log_value(value, max_len: int = 1000) -> str:
|
|
|
206
212
|
elif hasattr(value, "__dict__"):
|
|
207
213
|
# Object with attributes - show class name and key attributes
|
|
208
214
|
content = str(value)
|
|
209
|
-
if len(content) > max_len:
|
|
215
|
+
if max_len > 0 and len(content) > max_len:
|
|
210
216
|
return f"{type_name}: {content[:max_len]}..."
|
|
211
217
|
return f"{type_name}: {content}"
|
|
212
218
|
|
|
213
219
|
else:
|
|
214
220
|
content = str(value)
|
|
215
|
-
if len(content) > max_len:
|
|
221
|
+
if max_len > 0 and len(content) > max_len:
|
|
216
222
|
return f"{type_name}: {content[:max_len]}..."
|
|
217
223
|
return content
|
|
218
224
|
|
|
@@ -8,6 +8,8 @@ mesh decorators to simplify common patterns like zero-code LLM providers.
|
|
|
8
8
|
import logging
|
|
9
9
|
from typing import Any, Dict, List, Optional
|
|
10
10
|
|
|
11
|
+
from _mcp_mesh.shared.logging_config import format_log_value
|
|
12
|
+
|
|
11
13
|
logger = logging.getLogger(__name__)
|
|
12
14
|
|
|
13
15
|
|
|
@@ -228,7 +230,16 @@ def llm_provider(
|
|
|
228
230
|
|
|
229
231
|
# Call LiteLLM
|
|
230
232
|
try:
|
|
233
|
+
# Log full request
|
|
234
|
+
logger.debug(
|
|
235
|
+
f"📤 LLM provider request: {format_log_value(completion_args)}"
|
|
236
|
+
)
|
|
237
|
+
|
|
231
238
|
response = litellm.completion(**completion_args)
|
|
239
|
+
|
|
240
|
+
# Log full response
|
|
241
|
+
logger.debug(f"📥 LLM provider response: {format_log_value(response)}")
|
|
242
|
+
|
|
232
243
|
message = response.choices[0].message
|
|
233
244
|
|
|
234
245
|
# Build message dict with all necessary fields for agentic loop
|
|
@@ -6,7 +6,7 @@ build-backend = "hatchling.build"
|
|
|
6
6
|
|
|
7
7
|
[project]
|
|
8
8
|
name = "mcp-mesh"
|
|
9
|
-
version = "0.7.
|
|
9
|
+
version = "0.7.19"
|
|
10
10
|
description = "Kubernetes-native platform for distributed MCP applications"
|
|
11
11
|
readme = "README.md"
|
|
12
12
|
license = { text = "MIT" }
|
|
@@ -121,7 +121,7 @@ extend-exclude = '''
|
|
|
121
121
|
'''
|
|
122
122
|
|
|
123
123
|
[tool.ruff]
|
|
124
|
-
target-version = "0.7.
|
|
124
|
+
target-version = "0.7.19"
|
|
125
125
|
line-length = 88
|
|
126
126
|
|
|
127
127
|
[tool.ruff.lint]
|
|
@@ -158,7 +158,7 @@ ignore = [
|
|
|
158
158
|
"tests/**" = ["E712", "F841", "B007", "C401", "F401"] # Relax style requirements for test files
|
|
159
159
|
|
|
160
160
|
[tool.mypy]
|
|
161
|
-
python_version = "0.7.
|
|
161
|
+
python_version = "0.7.19"
|
|
162
162
|
check_untyped_defs = false # Temporarily relaxed
|
|
163
163
|
disallow_any_generics = false # Temporarily relaxed
|
|
164
164
|
disallow_incomplete_defs = false # Temporarily relaxed
|
|
@@ -170,7 +170,7 @@ warn_return_any = false # Temporarily relaxed
|
|
|
170
170
|
exclude = ["tests/", ".*agent_server_generated.*", ".*registry_client_generated.*"] # Skip type checking for test and generated files
|
|
171
171
|
|
|
172
172
|
[tool.pytest.ini_options]
|
|
173
|
-
minversion = "0.7.
|
|
173
|
+
minversion = "0.7.19"
|
|
174
174
|
addopts = "-ra -q --strict-markers --strict-config"
|
|
175
175
|
testpaths = [
|
|
176
176
|
"tests",
|
|
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
|
{mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/engine/provider_handlers/base_provider_handler.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/engine/provider_handlers/provider_handler_registry.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
|
{mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/__init__.py
RENAMED
|
File without changes
|
{mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/api/__init__.py
RENAMED
|
File without changes
|
{mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/api/agents_api.py
RENAMED
|
File without changes
|
{mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/api/health_api.py
RENAMED
|
File without changes
|
{mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/api/tracing_api.py
RENAMED
|
File without changes
|
{mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/api_client.py
RENAMED
|
File without changes
|
{mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/api_response.py
RENAMED
|
File without changes
|
{mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/configuration.py
RENAMED
|
File without changes
|
{mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/exceptions.py
RENAMED
|
File without changes
|
{mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/__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
|
{mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/api_heartbeat/api_dependency_resolution.py
RENAMED
|
File without changes
|
{mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/api_heartbeat/api_fast_heartbeat_check.py
RENAMED
|
File without changes
|
|
File without changes
|
{mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/api_heartbeat/api_heartbeat_orchestrator.py
RENAMED
|
File without changes
|
{mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/api_heartbeat/api_heartbeat_pipeline.py
RENAMED
|
File without changes
|
|
File without changes
|
{mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/api_heartbeat/api_lifespan_integration.py
RENAMED
|
File without changes
|
{mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/api_heartbeat/api_registry_connection.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/api_startup/middleware_integration.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/mcp_heartbeat/dependency_resolution.py
RENAMED
|
File without changes
|
{mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/mcp_heartbeat/fast_heartbeat_check.py
RENAMED
|
File without changes
|
{mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/mcp_heartbeat/heartbeat_orchestrator.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/mcp_heartbeat/lifespan_integration.py
RENAMED
|
File without changes
|
{mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/mcp_heartbeat/llm_tools_resolution.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/mcp_startup/fastmcpserver_discovery.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
|