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.
Files changed (153) hide show
  1. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/PKG-INFO +1 -1
  2. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/__init__.py +1 -1
  3. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/shared/logging_config.py +17 -11
  4. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/mesh/helpers.py +11 -0
  5. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/pyproject.toml +4 -4
  6. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/.gitignore +0 -0
  7. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/LICENSE +0 -0
  8. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/README.md +0 -0
  9. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/engine/__init__.py +0 -0
  10. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/engine/async_mcp_client.py +0 -0
  11. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/engine/base_injector.py +0 -0
  12. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/engine/decorator_registry.py +0 -0
  13. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/engine/dependency_injector.py +0 -0
  14. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/engine/http_wrapper.py +0 -0
  15. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/engine/llm_config.py +0 -0
  16. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/engine/llm_errors.py +0 -0
  17. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/engine/mesh_llm_agent.py +0 -0
  18. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/engine/mesh_llm_agent_injector.py +0 -0
  19. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/engine/provider_handlers/__init__.py +0 -0
  20. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/engine/provider_handlers/base_provider_handler.py +0 -0
  21. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/engine/provider_handlers/claude_handler.py +0 -0
  22. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/engine/provider_handlers/generic_handler.py +0 -0
  23. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/engine/provider_handlers/openai_handler.py +0 -0
  24. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/engine/provider_handlers/provider_handler_registry.py +0 -0
  25. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/engine/response_parser.py +0 -0
  26. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/engine/self_dependency_proxy.py +0 -0
  27. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/engine/session_aware_client.py +0 -0
  28. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/engine/session_manager.py +0 -0
  29. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/engine/signature_analyzer.py +0 -0
  30. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/engine/tool_executor.py +0 -0
  31. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/engine/tool_schema_builder.py +0 -0
  32. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/engine/unified_mcp_proxy.py +0 -0
  33. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/generated/.openapi-generator/FILES +0 -0
  34. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/generated/.openapi-generator/VERSION +0 -0
  35. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/generated/.openapi-generator-ignore +0 -0
  36. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/__init__.py +0 -0
  37. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/api/__init__.py +0 -0
  38. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/api/agents_api.py +0 -0
  39. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/api/health_api.py +0 -0
  40. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/api/tracing_api.py +0 -0
  41. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/api_client.py +0 -0
  42. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/api_response.py +0 -0
  43. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/configuration.py +0 -0
  44. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/exceptions.py +0 -0
  45. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/__init__.py +0 -0
  46. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/agent_info.py +0 -0
  47. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/agent_metadata.py +0 -0
  48. {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
  49. {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
  50. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/agent_registration.py +0 -0
  51. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/agent_registration_metadata.py +0 -0
  52. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/agents_list_response.py +0 -0
  53. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/capability_info.py +0 -0
  54. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/decorator_agent_metadata.py +0 -0
  55. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/decorator_agent_request.py +0 -0
  56. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/decorator_info.py +0 -0
  57. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/dependency_info.py +0 -0
  58. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/dependency_resolution_info.py +0 -0
  59. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/error_response.py +0 -0
  60. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/health_response.py +0 -0
  61. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/heartbeat_request.py +0 -0
  62. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/heartbeat_request_metadata.py +0 -0
  63. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/heartbeat_response.py +0 -0
  64. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/llm_provider.py +0 -0
  65. {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
  66. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/llm_tool_filter.py +0 -0
  67. {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
  68. {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
  69. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/llm_tool_info.py +0 -0
  70. {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
  71. {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
  72. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/mesh_agent_registration.py +0 -0
  73. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/mesh_registration_response.py +0 -0
  74. {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
  75. {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
  76. {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
  77. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/mesh_tool_registration.py +0 -0
  78. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/registration_response.py +0 -0
  79. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/resolved_llm_provider.py +0 -0
  80. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/rich_dependency.py +0 -0
  81. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/root_response.py +0 -0
  82. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/standardized_dependency.py +0 -0
  83. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/trace_event.py +0 -0
  84. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/py.typed +0 -0
  85. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/rest.py +0 -0
  86. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/__init__.py +0 -0
  87. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/api_heartbeat/__init__.py +0 -0
  88. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/api_heartbeat/api_dependency_resolution.py +0 -0
  89. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/api_heartbeat/api_fast_heartbeat_check.py +0 -0
  90. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/api_heartbeat/api_health_check.py +0 -0
  91. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/api_heartbeat/api_heartbeat_orchestrator.py +0 -0
  92. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/api_heartbeat/api_heartbeat_pipeline.py +0 -0
  93. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/api_heartbeat/api_heartbeat_send.py +0 -0
  94. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/api_heartbeat/api_lifespan_integration.py +0 -0
  95. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/api_heartbeat/api_registry_connection.py +0 -0
  96. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/api_startup/__init__.py +0 -0
  97. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/api_startup/api_pipeline.py +0 -0
  98. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/api_startup/api_server_setup.py +0 -0
  99. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/api_startup/fastapi_discovery.py +0 -0
  100. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/api_startup/middleware_integration.py +0 -0
  101. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/api_startup/route_collection.py +0 -0
  102. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/api_startup/route_integration.py +0 -0
  103. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/mcp_heartbeat/__init__.py +0 -0
  104. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/mcp_heartbeat/dependency_resolution.py +0 -0
  105. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/mcp_heartbeat/fast_heartbeat_check.py +0 -0
  106. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/mcp_heartbeat/heartbeat_orchestrator.py +0 -0
  107. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/mcp_heartbeat/heartbeat_pipeline.py +0 -0
  108. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/mcp_heartbeat/heartbeat_send.py +0 -0
  109. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/mcp_heartbeat/lifespan_integration.py +0 -0
  110. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/mcp_heartbeat/llm_tools_resolution.py +0 -0
  111. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/mcp_heartbeat/registry_connection.py +0 -0
  112. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/mcp_startup/__init__.py +0 -0
  113. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/mcp_startup/configuration.py +0 -0
  114. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/mcp_startup/decorator_collection.py +0 -0
  115. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/mcp_startup/fastapiserver_setup.py +0 -0
  116. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/mcp_startup/fastmcpserver_discovery.py +0 -0
  117. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/mcp_startup/heartbeat_loop.py +0 -0
  118. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/mcp_startup/heartbeat_preparation.py +0 -0
  119. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/mcp_startup/lifespan_factory.py +0 -0
  120. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/mcp_startup/server_discovery.py +0 -0
  121. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/mcp_startup/startup_orchestrator.py +0 -0
  122. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/mcp_startup/startup_pipeline.py +0 -0
  123. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/shared/__init__.py +0 -0
  124. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/shared/base_step.py +0 -0
  125. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/shared/mesh_pipeline.py +0 -0
  126. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/shared/pipeline_types.py +0 -0
  127. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/shared/registry_connection.py +0 -0
  128. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/reload.py +0 -0
  129. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/reload_runner.py +0 -0
  130. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/shared/__init__.py +0 -0
  131. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/shared/config_resolver.py +0 -0
  132. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/shared/content_extractor.py +0 -0
  133. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/shared/defaults.py +0 -0
  134. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/shared/fast_heartbeat_status.py +0 -0
  135. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/shared/fastapi_middleware_manager.py +0 -0
  136. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/shared/health_check_manager.py +0 -0
  137. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/shared/host_resolver.py +0 -0
  138. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/shared/registry_client_wrapper.py +0 -0
  139. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/shared/server_discovery.py +0 -0
  140. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/shared/simple_shutdown.py +0 -0
  141. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/shared/sse_parser.py +0 -0
  142. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/shared/support_types.py +0 -0
  143. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/tracing/agent_context_helper.py +0 -0
  144. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/tracing/context.py +0 -0
  145. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/tracing/execution_tracer.py +0 -0
  146. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/tracing/fastapi_tracing_middleware.py +0 -0
  147. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/tracing/redis_metadata_publisher.py +0 -0
  148. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/tracing/trace_context_helper.py +0 -0
  149. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/tracing/utils.py +0 -0
  150. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/_mcp_mesh/utils/fastmcp_schema_extractor.py +0 -0
  151. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/mesh/__init__.py +0 -0
  152. {mcp_mesh-0.7.18 → mcp_mesh-0.7.19}/mesh/decorators.py +0 -0
  153. {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.18
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
@@ -31,7 +31,7 @@ from .engine.decorator_registry import (
31
31
  get_decorator_stats,
32
32
  )
33
33
 
34
- __version__ = "0.7.18"
34
+ __version__ = "0.7.19"
35
35
 
36
36
  # Store reference to runtime processor if initialized
37
37
  _runtime_processor = None
@@ -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(logging.Formatter("%(levelname)-8s %(message)s"))
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 = 1000) -> str:
168
- """Format a value for logging with truncation.
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 and truncation
171
- for large payloads. Suitable for DEBUG level logging.
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 (default 1000)
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.18"
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.18"
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.18"
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.18"
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