mcp-mesh 0.7.17__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.17 → mcp_mesh-0.7.19}/PKG-INFO +2 -1
  2. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/__init__.py +1 -1
  3. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/shared/logging_config.py +17 -11
  4. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/mesh/helpers.py +11 -0
  5. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/pyproject.toml +6 -5
  6. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/.gitignore +0 -0
  7. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/LICENSE +0 -0
  8. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/README.md +0 -0
  9. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/engine/__init__.py +0 -0
  10. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/engine/async_mcp_client.py +0 -0
  11. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/engine/base_injector.py +0 -0
  12. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/engine/decorator_registry.py +0 -0
  13. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/engine/dependency_injector.py +0 -0
  14. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/engine/http_wrapper.py +0 -0
  15. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/engine/llm_config.py +0 -0
  16. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/engine/llm_errors.py +0 -0
  17. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/engine/mesh_llm_agent.py +0 -0
  18. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/engine/mesh_llm_agent_injector.py +0 -0
  19. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/engine/provider_handlers/__init__.py +0 -0
  20. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/engine/provider_handlers/base_provider_handler.py +0 -0
  21. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/engine/provider_handlers/claude_handler.py +0 -0
  22. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/engine/provider_handlers/generic_handler.py +0 -0
  23. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/engine/provider_handlers/openai_handler.py +0 -0
  24. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/engine/provider_handlers/provider_handler_registry.py +0 -0
  25. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/engine/response_parser.py +0 -0
  26. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/engine/self_dependency_proxy.py +0 -0
  27. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/engine/session_aware_client.py +0 -0
  28. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/engine/session_manager.py +0 -0
  29. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/engine/signature_analyzer.py +0 -0
  30. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/engine/tool_executor.py +0 -0
  31. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/engine/tool_schema_builder.py +0 -0
  32. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/engine/unified_mcp_proxy.py +0 -0
  33. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/generated/.openapi-generator/FILES +0 -0
  34. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/generated/.openapi-generator/VERSION +0 -0
  35. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/generated/.openapi-generator-ignore +0 -0
  36. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/__init__.py +0 -0
  37. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/api/__init__.py +0 -0
  38. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/api/agents_api.py +0 -0
  39. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/api/health_api.py +0 -0
  40. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/api/tracing_api.py +0 -0
  41. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/api_client.py +0 -0
  42. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/api_response.py +0 -0
  43. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/configuration.py +0 -0
  44. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/exceptions.py +0 -0
  45. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/__init__.py +0 -0
  46. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/agent_info.py +0 -0
  47. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/agent_metadata.py +0 -0
  48. {mcp_mesh-0.7.17 → 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.17 → 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.17 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/agent_registration.py +0 -0
  51. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/agent_registration_metadata.py +0 -0
  52. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/agents_list_response.py +0 -0
  53. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/capability_info.py +0 -0
  54. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/decorator_agent_metadata.py +0 -0
  55. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/decorator_agent_request.py +0 -0
  56. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/decorator_info.py +0 -0
  57. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/dependency_info.py +0 -0
  58. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/dependency_resolution_info.py +0 -0
  59. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/error_response.py +0 -0
  60. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/health_response.py +0 -0
  61. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/heartbeat_request.py +0 -0
  62. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/heartbeat_request_metadata.py +0 -0
  63. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/heartbeat_response.py +0 -0
  64. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/llm_provider.py +0 -0
  65. {mcp_mesh-0.7.17 → 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.17 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/llm_tool_filter.py +0 -0
  67. {mcp_mesh-0.7.17 → 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.17 → 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.17 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/llm_tool_info.py +0 -0
  70. {mcp_mesh-0.7.17 → 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.17 → 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.17 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/mesh_agent_registration.py +0 -0
  73. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/mesh_registration_response.py +0 -0
  74. {mcp_mesh-0.7.17 → 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.17 → 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.17 → 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.17 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/mesh_tool_registration.py +0 -0
  78. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/registration_response.py +0 -0
  79. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/resolved_llm_provider.py +0 -0
  80. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/rich_dependency.py +0 -0
  81. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/root_response.py +0 -0
  82. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/standardized_dependency.py +0 -0
  83. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/models/trace_event.py +0 -0
  84. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/py.typed +0 -0
  85. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/generated/mcp_mesh_registry_client/rest.py +0 -0
  86. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/__init__.py +0 -0
  87. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/api_heartbeat/__init__.py +0 -0
  88. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/api_heartbeat/api_dependency_resolution.py +0 -0
  89. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/api_heartbeat/api_fast_heartbeat_check.py +0 -0
  90. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/api_heartbeat/api_health_check.py +0 -0
  91. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/api_heartbeat/api_heartbeat_orchestrator.py +0 -0
  92. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/api_heartbeat/api_heartbeat_pipeline.py +0 -0
  93. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/api_heartbeat/api_heartbeat_send.py +0 -0
  94. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/api_heartbeat/api_lifespan_integration.py +0 -0
  95. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/api_heartbeat/api_registry_connection.py +0 -0
  96. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/api_startup/__init__.py +0 -0
  97. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/api_startup/api_pipeline.py +0 -0
  98. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/api_startup/api_server_setup.py +0 -0
  99. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/api_startup/fastapi_discovery.py +0 -0
  100. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/api_startup/middleware_integration.py +0 -0
  101. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/api_startup/route_collection.py +0 -0
  102. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/api_startup/route_integration.py +0 -0
  103. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/mcp_heartbeat/__init__.py +0 -0
  104. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/mcp_heartbeat/dependency_resolution.py +0 -0
  105. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/mcp_heartbeat/fast_heartbeat_check.py +0 -0
  106. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/mcp_heartbeat/heartbeat_orchestrator.py +0 -0
  107. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/mcp_heartbeat/heartbeat_pipeline.py +0 -0
  108. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/mcp_heartbeat/heartbeat_send.py +0 -0
  109. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/mcp_heartbeat/lifespan_integration.py +0 -0
  110. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/mcp_heartbeat/llm_tools_resolution.py +0 -0
  111. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/mcp_heartbeat/registry_connection.py +0 -0
  112. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/mcp_startup/__init__.py +0 -0
  113. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/mcp_startup/configuration.py +0 -0
  114. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/mcp_startup/decorator_collection.py +0 -0
  115. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/mcp_startup/fastapiserver_setup.py +0 -0
  116. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/mcp_startup/fastmcpserver_discovery.py +0 -0
  117. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/mcp_startup/heartbeat_loop.py +0 -0
  118. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/mcp_startup/heartbeat_preparation.py +0 -0
  119. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/mcp_startup/lifespan_factory.py +0 -0
  120. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/mcp_startup/server_discovery.py +0 -0
  121. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/mcp_startup/startup_orchestrator.py +0 -0
  122. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/mcp_startup/startup_pipeline.py +0 -0
  123. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/shared/__init__.py +0 -0
  124. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/shared/base_step.py +0 -0
  125. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/shared/mesh_pipeline.py +0 -0
  126. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/shared/pipeline_types.py +0 -0
  127. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/pipeline/shared/registry_connection.py +0 -0
  128. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/reload.py +0 -0
  129. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/reload_runner.py +0 -0
  130. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/shared/__init__.py +0 -0
  131. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/shared/config_resolver.py +0 -0
  132. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/shared/content_extractor.py +0 -0
  133. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/shared/defaults.py +0 -0
  134. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/shared/fast_heartbeat_status.py +0 -0
  135. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/shared/fastapi_middleware_manager.py +0 -0
  136. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/shared/health_check_manager.py +0 -0
  137. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/shared/host_resolver.py +0 -0
  138. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/shared/registry_client_wrapper.py +0 -0
  139. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/shared/server_discovery.py +0 -0
  140. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/shared/simple_shutdown.py +0 -0
  141. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/shared/sse_parser.py +0 -0
  142. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/shared/support_types.py +0 -0
  143. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/tracing/agent_context_helper.py +0 -0
  144. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/tracing/context.py +0 -0
  145. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/tracing/execution_tracer.py +0 -0
  146. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/tracing/fastapi_tracing_middleware.py +0 -0
  147. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/tracing/redis_metadata_publisher.py +0 -0
  148. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/tracing/trace_context_helper.py +0 -0
  149. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/tracing/utils.py +0 -0
  150. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/_mcp_mesh/utils/fastmcp_schema_extractor.py +0 -0
  151. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/mesh/__init__.py +0 -0
  152. {mcp_mesh-0.7.17 → mcp_mesh-0.7.19}/mesh/decorators.py +0 -0
  153. {mcp_mesh-0.7.17 → 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.17
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
@@ -40,6 +40,7 @@ Requires-Dist: rich<14.0.0,>=13.0.0
40
40
  Requires-Dist: typer<1.0.0,>=0.9.0
41
41
  Requires-Dist: urllib3<3.0.0,>=2.1.0
42
42
  Requires-Dist: uvicorn<1.0.0,>=0.24.0
43
+ Requires-Dist: watchfiles>=1.0.0
43
44
  Provides-Extra: dev
44
45
  Requires-Dist: bandit[toml]>=1.7.0; extra == 'dev'
45
46
  Requires-Dist: black>=25.0.0; extra == 'dev'
@@ -31,7 +31,7 @@ from .engine.decorator_registry import (
31
31
  get_decorator_stats,
32
32
  )
33
33
 
34
- __version__ = "0.7.17"
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.17"
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" }
@@ -53,7 +53,8 @@ dependencies = [
53
53
  "pyyaml>=6.0,<7.0",
54
54
  "jinja2>=3.1.0",
55
55
  "redis>=4.0.0,<7.0.0",
56
- "cachetools>=5.3.0"
56
+ "cachetools>=5.3.0",
57
+ "watchfiles>=1.0.0"
57
58
  ]
58
59
 
59
60
  [project.optional-dependencies]
@@ -120,7 +121,7 @@ extend-exclude = '''
120
121
  '''
121
122
 
122
123
  [tool.ruff]
123
- target-version = "0.7.17"
124
+ target-version = "0.7.19"
124
125
  line-length = 88
125
126
 
126
127
  [tool.ruff.lint]
@@ -157,7 +158,7 @@ ignore = [
157
158
  "tests/**" = ["E712", "F841", "B007", "C401", "F401"] # Relax style requirements for test files
158
159
 
159
160
  [tool.mypy]
160
- python_version = "0.7.17"
161
+ python_version = "0.7.19"
161
162
  check_untyped_defs = false # Temporarily relaxed
162
163
  disallow_any_generics = false # Temporarily relaxed
163
164
  disallow_incomplete_defs = false # Temporarily relaxed
@@ -169,7 +170,7 @@ warn_return_any = false # Temporarily relaxed
169
170
  exclude = ["tests/", ".*agent_server_generated.*", ".*registry_client_generated.*"] # Skip type checking for test and generated files
170
171
 
171
172
  [tool.pytest.ini_options]
172
- minversion = "0.7.17"
173
+ minversion = "0.7.19"
173
174
  addopts = "-ra -q --strict-markers --strict-config"
174
175
  testpaths = [
175
176
  "tests",
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes