mcp-mesh 0.7.20__tar.gz → 0.7.21__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.20 → mcp_mesh-0.7.21}/PKG-INFO +1 -1
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/__init__.py +1 -1
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/pipeline/api_heartbeat/api_fast_heartbeat_check.py +1 -1
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/pipeline/api_heartbeat/api_health_check.py +3 -3
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/pipeline/api_heartbeat/api_heartbeat_orchestrator.py +10 -14
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/pipeline/api_heartbeat/api_heartbeat_pipeline.py +1 -1
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/pipeline/api_heartbeat/api_registry_connection.py +4 -4
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/pyproject.toml +4 -4
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/.gitignore +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/LICENSE +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/README.md +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/engine/__init__.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/engine/async_mcp_client.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/engine/base_injector.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/engine/decorator_registry.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/engine/dependency_injector.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/engine/http_wrapper.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/engine/llm_config.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/engine/llm_errors.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/engine/mesh_llm_agent.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/engine/mesh_llm_agent_injector.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/engine/provider_handlers/__init__.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/engine/provider_handlers/base_provider_handler.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/engine/provider_handlers/claude_handler.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/engine/provider_handlers/generic_handler.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/engine/provider_handlers/openai_handler.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/engine/provider_handlers/provider_handler_registry.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/engine/response_parser.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/engine/self_dependency_proxy.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/engine/session_aware_client.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/engine/session_manager.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/engine/signature_analyzer.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/engine/tool_executor.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/engine/tool_schema_builder.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/engine/unified_mcp_proxy.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/generated/.openapi-generator/FILES +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/generated/.openapi-generator/VERSION +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/generated/.openapi-generator-ignore +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/generated/mcp_mesh_registry_client/__init__.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/generated/mcp_mesh_registry_client/api/__init__.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/generated/mcp_mesh_registry_client/api/agents_api.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/generated/mcp_mesh_registry_client/api/health_api.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/generated/mcp_mesh_registry_client/api/tracing_api.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/generated/mcp_mesh_registry_client/api_client.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/generated/mcp_mesh_registry_client/api_response.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/generated/mcp_mesh_registry_client/configuration.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/generated/mcp_mesh_registry_client/exceptions.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/generated/mcp_mesh_registry_client/models/__init__.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/generated/mcp_mesh_registry_client/models/agent_info.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/generated/mcp_mesh_registry_client/models/agent_metadata.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/generated/mcp_mesh_registry_client/models/agent_metadata_dependencies_inner.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/generated/mcp_mesh_registry_client/models/agent_metadata_dependencies_inner_one_of.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/generated/mcp_mesh_registry_client/models/agent_registration.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/generated/mcp_mesh_registry_client/models/agent_registration_metadata.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/generated/mcp_mesh_registry_client/models/agents_list_response.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/generated/mcp_mesh_registry_client/models/capability_info.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/generated/mcp_mesh_registry_client/models/decorator_agent_metadata.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/generated/mcp_mesh_registry_client/models/decorator_agent_request.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/generated/mcp_mesh_registry_client/models/decorator_info.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/generated/mcp_mesh_registry_client/models/dependency_info.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/generated/mcp_mesh_registry_client/models/dependency_resolution_info.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/generated/mcp_mesh_registry_client/models/error_response.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/generated/mcp_mesh_registry_client/models/health_response.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/generated/mcp_mesh_registry_client/models/heartbeat_request.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/generated/mcp_mesh_registry_client/models/heartbeat_request_metadata.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/generated/mcp_mesh_registry_client/models/heartbeat_response.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/generated/mcp_mesh_registry_client/models/llm_provider.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/generated/mcp_mesh_registry_client/models/llm_provider_resolution_info.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/generated/mcp_mesh_registry_client/models/llm_tool_filter.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/generated/mcp_mesh_registry_client/models/llm_tool_filter_filter_inner.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/generated/mcp_mesh_registry_client/models/llm_tool_filter_filter_inner_one_of.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/generated/mcp_mesh_registry_client/models/llm_tool_info.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/generated/mcp_mesh_registry_client/models/llm_tool_resolution_info.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/generated/mcp_mesh_registry_client/models/mesh_agent_register_metadata.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/generated/mcp_mesh_registry_client/models/mesh_agent_registration.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/generated/mcp_mesh_registry_client/models/mesh_registration_response.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/generated/mcp_mesh_registry_client/models/mesh_registration_response_dependencies_resolved_value_inner.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/generated/mcp_mesh_registry_client/models/mesh_tool_dependency_registration.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/generated/mcp_mesh_registry_client/models/mesh_tool_register_metadata.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/generated/mcp_mesh_registry_client/models/mesh_tool_registration.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/generated/mcp_mesh_registry_client/models/registration_response.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/generated/mcp_mesh_registry_client/models/resolved_llm_provider.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/generated/mcp_mesh_registry_client/models/rich_dependency.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/generated/mcp_mesh_registry_client/models/root_response.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/generated/mcp_mesh_registry_client/models/standardized_dependency.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/generated/mcp_mesh_registry_client/models/trace_event.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/generated/mcp_mesh_registry_client/py.typed +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/generated/mcp_mesh_registry_client/rest.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/pipeline/__init__.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/pipeline/api_heartbeat/__init__.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/pipeline/api_heartbeat/api_dependency_resolution.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/pipeline/api_heartbeat/api_heartbeat_send.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/pipeline/api_heartbeat/api_lifespan_integration.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/pipeline/api_startup/__init__.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/pipeline/api_startup/api_pipeline.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/pipeline/api_startup/api_server_setup.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/pipeline/api_startup/fastapi_discovery.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/pipeline/api_startup/middleware_integration.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/pipeline/api_startup/route_collection.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/pipeline/api_startup/route_integration.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/pipeline/mcp_heartbeat/__init__.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/pipeline/mcp_heartbeat/dependency_resolution.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/pipeline/mcp_heartbeat/fast_heartbeat_check.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/pipeline/mcp_heartbeat/heartbeat_orchestrator.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/pipeline/mcp_heartbeat/heartbeat_pipeline.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/pipeline/mcp_heartbeat/heartbeat_send.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/pipeline/mcp_heartbeat/lifespan_integration.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/pipeline/mcp_heartbeat/llm_tools_resolution.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/pipeline/mcp_heartbeat/registry_connection.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/pipeline/mcp_startup/__init__.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/pipeline/mcp_startup/configuration.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/pipeline/mcp_startup/decorator_collection.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/pipeline/mcp_startup/fastapiserver_setup.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/pipeline/mcp_startup/fastmcpserver_discovery.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/pipeline/mcp_startup/heartbeat_loop.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/pipeline/mcp_startup/heartbeat_preparation.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/pipeline/mcp_startup/lifespan_factory.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/pipeline/mcp_startup/server_discovery.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/pipeline/mcp_startup/startup_orchestrator.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/pipeline/mcp_startup/startup_pipeline.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/pipeline/shared/__init__.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/pipeline/shared/base_step.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/pipeline/shared/mesh_pipeline.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/pipeline/shared/pipeline_types.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/pipeline/shared/registry_connection.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/reload.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/reload_runner.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/shared/__init__.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/shared/config_resolver.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/shared/content_extractor.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/shared/defaults.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/shared/fast_heartbeat_status.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/shared/fastapi_middleware_manager.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/shared/health_check_manager.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/shared/host_resolver.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/shared/logging_config.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/shared/registry_client_wrapper.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/shared/server_discovery.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/shared/simple_shutdown.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/shared/sse_parser.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/shared/support_types.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/tracing/agent_context_helper.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/tracing/context.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/tracing/execution_tracer.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/tracing/fastapi_tracing_middleware.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/tracing/redis_metadata_publisher.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/tracing/trace_context_helper.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/tracing/utils.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/utils/fastmcp_schema_extractor.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/mesh/__init__.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/mesh/decorators.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/mesh/helpers.py +0 -0
- {mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/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.21
|
|
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
|
{mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/pipeline/api_heartbeat/api_fast_heartbeat_check.py
RENAMED
|
@@ -73,7 +73,7 @@ class APIFastHeartbeatStep(PipelineStep):
|
|
|
73
73
|
|
|
74
74
|
# Log status and action with API-specific messaging
|
|
75
75
|
if status == FastHeartbeatStatus.NO_CHANGES:
|
|
76
|
-
self.logger.
|
|
76
|
+
self.logger.trace(
|
|
77
77
|
f"✅ API fast heartbeat: No changes detected for service '{service_id}'"
|
|
78
78
|
)
|
|
79
79
|
elif status == FastHeartbeatStatus.TOPOLOGY_CHANGED:
|
|
@@ -38,7 +38,7 @@ class APIHealthCheckStep(PipelineStep):
|
|
|
38
38
|
Returns:
|
|
39
39
|
PipelineResult with health_status in context
|
|
40
40
|
"""
|
|
41
|
-
self.logger.
|
|
41
|
+
self.logger.trace("🏥 Checking FastAPI application health status")
|
|
42
42
|
|
|
43
43
|
try:
|
|
44
44
|
# Get FastAPI app from context
|
|
@@ -66,7 +66,7 @@ class APIHealthCheckStep(PipelineStep):
|
|
|
66
66
|
routes_with_mesh = self._count_mesh_routes(fastapi_app)
|
|
67
67
|
total_routes = len(getattr(fastapi_app, "routes", []))
|
|
68
68
|
|
|
69
|
-
self.logger.
|
|
69
|
+
self.logger.trace(
|
|
70
70
|
f"🔍 FastAPI app health: {app_title} v{app_version}, "
|
|
71
71
|
f"{routes_with_mesh}/{total_routes} routes with mesh injection"
|
|
72
72
|
)
|
|
@@ -91,7 +91,7 @@ class APIHealthCheckStep(PipelineStep):
|
|
|
91
91
|
}
|
|
92
92
|
}
|
|
93
93
|
|
|
94
|
-
self.logger.
|
|
94
|
+
self.logger.trace(
|
|
95
95
|
f"🏥 API health check passed: {app_title} v{app_version} "
|
|
96
96
|
f"({routes_with_mesh} mesh routes)"
|
|
97
97
|
)
|
{mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/pipeline/api_heartbeat/api_heartbeat_orchestrator.py
RENAMED
|
@@ -58,19 +58,19 @@ class APIHeartbeatOrchestrator:
|
|
|
58
58
|
self._log_api_heartbeat_request(heartbeat_context, self._heartbeat_count)
|
|
59
59
|
|
|
60
60
|
# Execute API heartbeat pipeline with timeout protection
|
|
61
|
-
self.logger.
|
|
61
|
+
self.logger.trace(f"💓 Executing API heartbeat #{self._heartbeat_count} for service '{service_id}'")
|
|
62
62
|
|
|
63
63
|
# Add timeout to prevent hanging heartbeats (30 seconds max)
|
|
64
64
|
import asyncio
|
|
65
65
|
|
|
66
66
|
try:
|
|
67
|
-
self.logger.
|
|
67
|
+
self.logger.trace("Starting API heartbeat pipeline execution")
|
|
68
68
|
result = await asyncio.wait_for(
|
|
69
69
|
self.pipeline.execute_api_heartbeat_cycle(heartbeat_context),
|
|
70
70
|
timeout=30.0,
|
|
71
71
|
)
|
|
72
72
|
if result.is_success():
|
|
73
|
-
self.logger.
|
|
73
|
+
self.logger.trace("✅ API heartbeat pipeline completed successfully")
|
|
74
74
|
else:
|
|
75
75
|
self.logger.error(f"❌ API heartbeat pipeline failed: {result.message}")
|
|
76
76
|
except TimeoutError:
|
|
@@ -120,10 +120,6 @@ class APIHeartbeatOrchestrator:
|
|
|
120
120
|
|
|
121
121
|
# Get API service metadata from startup context
|
|
122
122
|
api_service_metadata = startup_context.get("api_service_metadata", {})
|
|
123
|
-
self.logger.debug(f"🔍 Startup context has api_service_metadata: {len(api_service_metadata) > 0}")
|
|
124
|
-
if api_service_metadata:
|
|
125
|
-
capabilities = api_service_metadata.get("capabilities", [])
|
|
126
|
-
self.logger.debug(f"🔍 API service has {len(capabilities)} route capabilities")
|
|
127
123
|
|
|
128
124
|
# Build heartbeat-specific context
|
|
129
125
|
heartbeat_context = {
|
|
@@ -182,7 +178,7 @@ class APIHeartbeatOrchestrator:
|
|
|
182
178
|
}
|
|
183
179
|
|
|
184
180
|
# Log heartbeat details
|
|
185
|
-
self.logger.
|
|
181
|
+
self.logger.trace(
|
|
186
182
|
f"🔍 API Heartbeat #{heartbeat_count} for '{service_id}': "
|
|
187
183
|
f"app={app_info}, display={display_config}"
|
|
188
184
|
)
|
|
@@ -197,29 +193,29 @@ class APIHeartbeatOrchestrator:
|
|
|
197
193
|
heartbeat_response = result.context.get("heartbeat_response")
|
|
198
194
|
heartbeat_success = result.context.get("heartbeat_success", False)
|
|
199
195
|
|
|
200
|
-
self.logger.
|
|
196
|
+
self.logger.trace(f"API heartbeat result - success: {heartbeat_success}")
|
|
201
197
|
|
|
202
198
|
# Check if heartbeat was skipped due to optimization
|
|
203
199
|
heartbeat_skipped = result.context.get("heartbeat_skipped", False)
|
|
204
200
|
skip_reason = result.context.get("skip_reason")
|
|
205
201
|
|
|
206
202
|
if heartbeat_success and heartbeat_response:
|
|
207
|
-
# Log response details for
|
|
203
|
+
# Log response details for tracing
|
|
208
204
|
try:
|
|
209
205
|
response_json = json.dumps(
|
|
210
206
|
heartbeat_response, indent=2, default=str
|
|
211
207
|
)
|
|
212
|
-
self.logger.
|
|
208
|
+
self.logger.trace(
|
|
213
209
|
f"🔍 API heartbeat response #{heartbeat_count}:\n{response_json}"
|
|
214
210
|
)
|
|
215
211
|
except Exception as e:
|
|
216
|
-
self.logger.
|
|
212
|
+
self.logger.trace(
|
|
217
213
|
f"🔍 API heartbeat response #{heartbeat_count}: {heartbeat_response} "
|
|
218
214
|
f"(json serialization failed: {e})"
|
|
219
215
|
)
|
|
220
216
|
|
|
221
|
-
self.logger.
|
|
222
|
-
f"
|
|
217
|
+
self.logger.debug(
|
|
218
|
+
f"🚀 API heartbeat #{heartbeat_count} sent for service '{service_id}'"
|
|
223
219
|
)
|
|
224
220
|
return True
|
|
225
221
|
elif heartbeat_success and heartbeat_skipped:
|
{mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/pipeline/api_heartbeat/api_heartbeat_pipeline.py
RENAMED
|
@@ -208,7 +208,7 @@ class APIHeartbeatPipeline(MeshPipeline):
|
|
|
208
208
|
# NO_CHANGES - skip for optimization
|
|
209
209
|
should_execute_remaining = False
|
|
210
210
|
reason = "optimization (no changes detected)"
|
|
211
|
-
self.logger.
|
|
211
|
+
self.logger.trace(
|
|
212
212
|
f"🚀 API heartbeat: Skipping remaining steps for optimization: {reason}"
|
|
213
213
|
)
|
|
214
214
|
elif FastHeartbeatStatusUtil.should_skip_for_resilience(
|
{mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/pipeline/api_heartbeat/api_registry_connection.py
RENAMED
|
@@ -39,14 +39,14 @@ class APIRegistryConnectionStep(PipelineStep):
|
|
|
39
39
|
Returns:
|
|
40
40
|
PipelineResult with registry_wrapper in context
|
|
41
41
|
"""
|
|
42
|
-
self.logger.
|
|
42
|
+
self.logger.trace("🔗 Preparing API registry connection for heartbeat")
|
|
43
43
|
|
|
44
44
|
try:
|
|
45
45
|
# Check if registry_wrapper already exists in context
|
|
46
46
|
registry_wrapper = context.get("registry_wrapper")
|
|
47
47
|
|
|
48
48
|
if registry_wrapper is not None:
|
|
49
|
-
self.logger.
|
|
49
|
+
self.logger.trace("✅ Registry wrapper already available in context")
|
|
50
50
|
return PipelineResult(
|
|
51
51
|
message="Registry connection already established",
|
|
52
52
|
context={"registry_wrapper": registry_wrapper}
|
|
@@ -69,7 +69,7 @@ class APIRegistryConnectionStep(PipelineStep):
|
|
|
69
69
|
rule=ValidationRule.URL_RULE,
|
|
70
70
|
)
|
|
71
71
|
|
|
72
|
-
self.logger.
|
|
72
|
+
self.logger.trace(f"🔍 Using registry URL: {registry_url}")
|
|
73
73
|
|
|
74
74
|
# Create registry client wrapper
|
|
75
75
|
from ...generated.mcp_mesh_registry_client.api_client import ApiClient
|
|
@@ -80,7 +80,7 @@ class APIRegistryConnectionStep(PipelineStep):
|
|
|
80
80
|
api_client = ApiClient(configuration=config)
|
|
81
81
|
registry_wrapper = RegistryClientWrapper(api_client)
|
|
82
82
|
|
|
83
|
-
self.logger.
|
|
83
|
+
self.logger.trace(f"🔗 API registry connection prepared: {registry_url}")
|
|
84
84
|
|
|
85
85
|
return PipelineResult(
|
|
86
86
|
message=f"Registry connection prepared for {registry_url}",
|
|
@@ -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.21"
|
|
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.21"
|
|
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.21"
|
|
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.21"
|
|
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.20 → mcp_mesh-0.7.21}/_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.20 → mcp_mesh-0.7.21}/_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.20 → mcp_mesh-0.7.21}/_mcp_mesh/generated/mcp_mesh_registry_client/__init__.py
RENAMED
|
File without changes
|
{mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/generated/mcp_mesh_registry_client/api/__init__.py
RENAMED
|
File without changes
|
{mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/generated/mcp_mesh_registry_client/api/agents_api.py
RENAMED
|
File without changes
|
{mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/generated/mcp_mesh_registry_client/api/health_api.py
RENAMED
|
File without changes
|
{mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/generated/mcp_mesh_registry_client/api/tracing_api.py
RENAMED
|
File without changes
|
{mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/generated/mcp_mesh_registry_client/api_client.py
RENAMED
|
File without changes
|
{mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/generated/mcp_mesh_registry_client/api_response.py
RENAMED
|
File without changes
|
{mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/generated/mcp_mesh_registry_client/configuration.py
RENAMED
|
File without changes
|
{mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/generated/mcp_mesh_registry_client/exceptions.py
RENAMED
|
File without changes
|
{mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_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.20 → mcp_mesh-0.7.21}/_mcp_mesh/pipeline/api_heartbeat/api_dependency_resolution.py
RENAMED
|
File without changes
|
|
File without changes
|
{mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/pipeline/api_heartbeat/api_lifespan_integration.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_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.20 → mcp_mesh-0.7.21}/_mcp_mesh/pipeline/mcp_heartbeat/dependency_resolution.py
RENAMED
|
File without changes
|
{mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/pipeline/mcp_heartbeat/fast_heartbeat_check.py
RENAMED
|
File without changes
|
{mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/pipeline/mcp_heartbeat/heartbeat_orchestrator.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_mcp_mesh/pipeline/mcp_heartbeat/lifespan_integration.py
RENAMED
|
File without changes
|
{mcp_mesh-0.7.20 → mcp_mesh-0.7.21}/_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.20 → mcp_mesh-0.7.21}/_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
|
|
File without changes
|
|
File without changes
|