mcp-proxy-adapter 2.0.1__py3-none-any.whl → 6.9.50__py3-none-any.whl

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.

Potentially problematic release.


This version of mcp-proxy-adapter might be problematic. Click here for more details.

Files changed (269) hide show
  1. mcp_proxy_adapter/__init__.py +47 -0
  2. mcp_proxy_adapter/__main__.py +13 -0
  3. mcp_proxy_adapter/api/__init__.py +0 -0
  4. mcp_proxy_adapter/api/app.py +66 -0
  5. mcp_proxy_adapter/api/core/__init__.py +18 -0
  6. mcp_proxy_adapter/api/core/app_factory.py +400 -0
  7. mcp_proxy_adapter/api/core/lifespan_manager.py +55 -0
  8. mcp_proxy_adapter/api/core/registration_context.py +356 -0
  9. mcp_proxy_adapter/api/core/registration_manager.py +307 -0
  10. mcp_proxy_adapter/api/core/registration_tasks.py +84 -0
  11. mcp_proxy_adapter/api/core/ssl_context_factory.py +88 -0
  12. mcp_proxy_adapter/api/handlers.py +181 -0
  13. mcp_proxy_adapter/api/middleware/__init__.py +21 -0
  14. mcp_proxy_adapter/api/middleware/base.py +54 -0
  15. mcp_proxy_adapter/api/middleware/command_permission_middleware.py +73 -0
  16. mcp_proxy_adapter/api/middleware/error_handling.py +76 -0
  17. mcp_proxy_adapter/api/middleware/factory.py +147 -0
  18. mcp_proxy_adapter/api/middleware/logging.py +31 -0
  19. mcp_proxy_adapter/api/middleware/performance.py +51 -0
  20. mcp_proxy_adapter/api/middleware/protocol_middleware.py +140 -0
  21. mcp_proxy_adapter/api/middleware/transport_middleware.py +87 -0
  22. mcp_proxy_adapter/api/middleware/unified_security.py +223 -0
  23. mcp_proxy_adapter/api/middleware/user_info_middleware.py +132 -0
  24. mcp_proxy_adapter/api/openapi/__init__.py +21 -0
  25. mcp_proxy_adapter/api/openapi/command_integration.py +105 -0
  26. mcp_proxy_adapter/api/openapi/openapi_generator.py +40 -0
  27. mcp_proxy_adapter/api/openapi/openapi_registry.py +62 -0
  28. mcp_proxy_adapter/api/openapi/schema_loader.py +116 -0
  29. mcp_proxy_adapter/api/schemas.py +270 -0
  30. mcp_proxy_adapter/api/tool_integration.py +131 -0
  31. mcp_proxy_adapter/api/tools.py +163 -0
  32. mcp_proxy_adapter/cli/__init__.py +12 -0
  33. mcp_proxy_adapter/cli/commands/__init__.py +15 -0
  34. mcp_proxy_adapter/cli/commands/client.py +100 -0
  35. mcp_proxy_adapter/cli/commands/config_generate.py +105 -0
  36. mcp_proxy_adapter/cli/commands/config_validate.py +94 -0
  37. mcp_proxy_adapter/cli/commands/generate.py +259 -0
  38. mcp_proxy_adapter/cli/commands/server.py +174 -0
  39. mcp_proxy_adapter/cli/commands/sets.py +132 -0
  40. mcp_proxy_adapter/cli/commands/testconfig.py +177 -0
  41. mcp_proxy_adapter/cli/examples/__init__.py +8 -0
  42. mcp_proxy_adapter/cli/examples/http_basic.py +82 -0
  43. mcp_proxy_adapter/cli/examples/https_token.py +96 -0
  44. mcp_proxy_adapter/cli/examples/mtls_roles.py +103 -0
  45. mcp_proxy_adapter/cli/main.py +63 -0
  46. mcp_proxy_adapter/cli/parser.py +338 -0
  47. mcp_proxy_adapter/cli/validators.py +231 -0
  48. mcp_proxy_adapter/client/jsonrpc_client/__init__.py +9 -0
  49. mcp_proxy_adapter/client/jsonrpc_client/client.py +42 -0
  50. mcp_proxy_adapter/client/jsonrpc_client/command_api.py +45 -0
  51. mcp_proxy_adapter/client/jsonrpc_client/proxy_api.py +224 -0
  52. mcp_proxy_adapter/client/jsonrpc_client/queue_api.py +60 -0
  53. mcp_proxy_adapter/client/jsonrpc_client/transport.py +108 -0
  54. mcp_proxy_adapter/client/proxy.py +123 -0
  55. mcp_proxy_adapter/commands/__init__.py +66 -0
  56. mcp_proxy_adapter/commands/auth_validation_command.py +69 -0
  57. mcp_proxy_adapter/commands/base.py +389 -0
  58. mcp_proxy_adapter/commands/builtin_commands.py +30 -0
  59. mcp_proxy_adapter/commands/catalog/__init__.py +20 -0
  60. mcp_proxy_adapter/commands/catalog/catalog_loader.py +34 -0
  61. mcp_proxy_adapter/commands/catalog/catalog_manager.py +122 -0
  62. mcp_proxy_adapter/commands/catalog/catalog_syncer.py +149 -0
  63. mcp_proxy_adapter/commands/catalog/command_catalog.py +43 -0
  64. mcp_proxy_adapter/commands/catalog/dependency_manager.py +37 -0
  65. mcp_proxy_adapter/commands/catalog_manager.py +97 -0
  66. mcp_proxy_adapter/commands/cert_monitor_command.py +552 -0
  67. mcp_proxy_adapter/commands/certificate_management_command.py +562 -0
  68. mcp_proxy_adapter/commands/command_registry.py +298 -0
  69. mcp_proxy_adapter/commands/config_command.py +102 -0
  70. mcp_proxy_adapter/commands/dependency_container.py +40 -0
  71. mcp_proxy_adapter/commands/dependency_manager.py +143 -0
  72. mcp_proxy_adapter/commands/echo_command.py +48 -0
  73. mcp_proxy_adapter/commands/health_command.py +142 -0
  74. mcp_proxy_adapter/commands/help_command.py +175 -0
  75. mcp_proxy_adapter/commands/hooks.py +172 -0
  76. mcp_proxy_adapter/commands/key_management_command.py +484 -0
  77. mcp_proxy_adapter/commands/load_command.py +123 -0
  78. mcp_proxy_adapter/commands/plugins_command.py +246 -0
  79. mcp_proxy_adapter/commands/protocol_management_command.py +216 -0
  80. mcp_proxy_adapter/commands/proxy_registration_command.py +319 -0
  81. mcp_proxy_adapter/commands/queue_commands.py +750 -0
  82. mcp_proxy_adapter/commands/registration_status_command.py +76 -0
  83. mcp_proxy_adapter/commands/registry/__init__.py +18 -0
  84. mcp_proxy_adapter/commands/registry/command_info.py +103 -0
  85. mcp_proxy_adapter/commands/registry/command_loader.py +207 -0
  86. mcp_proxy_adapter/commands/registry/command_manager.py +119 -0
  87. mcp_proxy_adapter/commands/registry/command_registry.py +217 -0
  88. mcp_proxy_adapter/commands/reload_command.py +136 -0
  89. mcp_proxy_adapter/commands/result.py +157 -0
  90. mcp_proxy_adapter/commands/role_test_command.py +99 -0
  91. mcp_proxy_adapter/commands/roles_management_command.py +502 -0
  92. mcp_proxy_adapter/commands/security_command.py +472 -0
  93. mcp_proxy_adapter/commands/settings_command.py +113 -0
  94. mcp_proxy_adapter/commands/ssl_setup_command.py +306 -0
  95. mcp_proxy_adapter/commands/token_management_command.py +500 -0
  96. mcp_proxy_adapter/commands/transport_management_command.py +129 -0
  97. mcp_proxy_adapter/commands/unload_command.py +92 -0
  98. mcp_proxy_adapter/config.py +32 -0
  99. mcp_proxy_adapter/core/__init__.py +8 -0
  100. mcp_proxy_adapter/core/app_factory.py +560 -0
  101. mcp_proxy_adapter/core/app_runner.py +318 -0
  102. mcp_proxy_adapter/core/auth_validator.py +508 -0
  103. mcp_proxy_adapter/core/certificate/__init__.py +20 -0
  104. mcp_proxy_adapter/core/certificate/certificate_creator.py +372 -0
  105. mcp_proxy_adapter/core/certificate/certificate_extractor.py +185 -0
  106. mcp_proxy_adapter/core/certificate/certificate_utils.py +249 -0
  107. mcp_proxy_adapter/core/certificate/certificate_validator.py +481 -0
  108. mcp_proxy_adapter/core/certificate/ssl_context_manager.py +65 -0
  109. mcp_proxy_adapter/core/certificate_utils.py +249 -0
  110. mcp_proxy_adapter/core/client.py +608 -0
  111. mcp_proxy_adapter/core/client_manager.py +271 -0
  112. mcp_proxy_adapter/core/client_security.py +411 -0
  113. mcp_proxy_adapter/core/config/__init__.py +18 -0
  114. mcp_proxy_adapter/core/config/config.py +237 -0
  115. mcp_proxy_adapter/core/config/config_factory.py +22 -0
  116. mcp_proxy_adapter/core/config/config_loader.py +66 -0
  117. mcp_proxy_adapter/core/config/feature_manager.py +31 -0
  118. mcp_proxy_adapter/core/config/simple_config.py +204 -0
  119. mcp_proxy_adapter/core/config/simple_config_generator.py +131 -0
  120. mcp_proxy_adapter/core/config/simple_config_validator.py +476 -0
  121. mcp_proxy_adapter/core/config_converter.py +252 -0
  122. mcp_proxy_adapter/core/config_validator.py +211 -0
  123. mcp_proxy_adapter/core/crl_utils.py +362 -0
  124. mcp_proxy_adapter/core/errors.py +276 -0
  125. mcp_proxy_adapter/core/job_manager.py +54 -0
  126. mcp_proxy_adapter/core/logging.py +250 -0
  127. mcp_proxy_adapter/core/mtls_asgi.py +140 -0
  128. mcp_proxy_adapter/core/mtls_asgi_app.py +187 -0
  129. mcp_proxy_adapter/core/mtls_proxy.py +229 -0
  130. mcp_proxy_adapter/core/mtls_server.py +154 -0
  131. mcp_proxy_adapter/core/protocol_manager.py +232 -0
  132. mcp_proxy_adapter/core/proxy/__init__.py +19 -0
  133. mcp_proxy_adapter/core/proxy/auth_manager.py +26 -0
  134. mcp_proxy_adapter/core/proxy/proxy_registration_manager.py +160 -0
  135. mcp_proxy_adapter/core/proxy/registration_client.py +186 -0
  136. mcp_proxy_adapter/core/proxy/ssl_manager.py +101 -0
  137. mcp_proxy_adapter/core/proxy_client.py +184 -0
  138. mcp_proxy_adapter/core/proxy_registration.py +80 -0
  139. mcp_proxy_adapter/core/role_utils.py +103 -0
  140. mcp_proxy_adapter/core/security_adapter.py +343 -0
  141. mcp_proxy_adapter/core/security_factory.py +96 -0
  142. mcp_proxy_adapter/core/security_integration.py +342 -0
  143. mcp_proxy_adapter/core/server_adapter.py +251 -0
  144. mcp_proxy_adapter/core/server_engine.py +217 -0
  145. mcp_proxy_adapter/core/settings.py +260 -0
  146. mcp_proxy_adapter/core/signal_handler.py +107 -0
  147. mcp_proxy_adapter/core/ssl_utils.py +161 -0
  148. mcp_proxy_adapter/core/transport_manager.py +153 -0
  149. mcp_proxy_adapter/core/unified_config_adapter.py +471 -0
  150. mcp_proxy_adapter/core/utils.py +101 -0
  151. mcp_proxy_adapter/core/validation/__init__.py +21 -0
  152. mcp_proxy_adapter/core/validation/config_validator.py +219 -0
  153. mcp_proxy_adapter/core/validation/file_validator.py +131 -0
  154. mcp_proxy_adapter/core/validation/protocol_validator.py +205 -0
  155. mcp_proxy_adapter/core/validation/security_validator.py +140 -0
  156. mcp_proxy_adapter/core/validation/validation_result.py +27 -0
  157. mcp_proxy_adapter/custom_openapi.py +58 -0
  158. mcp_proxy_adapter/examples/__init__.py +16 -0
  159. mcp_proxy_adapter/examples/basic_framework/__init__.py +9 -0
  160. mcp_proxy_adapter/examples/basic_framework/commands/__init__.py +4 -0
  161. mcp_proxy_adapter/examples/basic_framework/hooks/__init__.py +4 -0
  162. mcp_proxy_adapter/examples/basic_framework/main.py +52 -0
  163. mcp_proxy_adapter/examples/bugfix_certificate_config.py +261 -0
  164. mcp_proxy_adapter/examples/cert_manager_bugfix.py +203 -0
  165. mcp_proxy_adapter/examples/check_config.py +413 -0
  166. mcp_proxy_adapter/examples/client_usage_example.py +164 -0
  167. mcp_proxy_adapter/examples/commands/__init__.py +5 -0
  168. mcp_proxy_adapter/examples/config_builder.py +234 -0
  169. mcp_proxy_adapter/examples/config_cli.py +282 -0
  170. mcp_proxy_adapter/examples/create_test_configs.py +174 -0
  171. mcp_proxy_adapter/examples/debug_request_state.py +130 -0
  172. mcp_proxy_adapter/examples/debug_role_chain.py +191 -0
  173. mcp_proxy_adapter/examples/demo_client.py +287 -0
  174. mcp_proxy_adapter/examples/full_application/__init__.py +12 -0
  175. mcp_proxy_adapter/examples/full_application/commands/__init__.py +8 -0
  176. mcp_proxy_adapter/examples/full_application/commands/custom_echo_command.py +45 -0
  177. mcp_proxy_adapter/examples/full_application/commands/dynamic_calculator_command.py +52 -0
  178. mcp_proxy_adapter/examples/full_application/commands/echo_command.py +32 -0
  179. mcp_proxy_adapter/examples/full_application/commands/help_command.py +54 -0
  180. mcp_proxy_adapter/examples/full_application/commands/list_command.py +57 -0
  181. mcp_proxy_adapter/examples/full_application/hooks/__init__.py +5 -0
  182. mcp_proxy_adapter/examples/full_application/hooks/application_hooks.py +29 -0
  183. mcp_proxy_adapter/examples/full_application/hooks/builtin_command_hooks.py +27 -0
  184. mcp_proxy_adapter/examples/full_application/main.py +311 -0
  185. mcp_proxy_adapter/examples/full_application/proxy_endpoints.py +161 -0
  186. mcp_proxy_adapter/examples/full_application/run_mtls.py +252 -0
  187. mcp_proxy_adapter/examples/full_application/run_simple.py +152 -0
  188. mcp_proxy_adapter/examples/full_application/test_minimal_server.py +45 -0
  189. mcp_proxy_adapter/examples/full_application/test_server.py +163 -0
  190. mcp_proxy_adapter/examples/full_application/test_simple_server.py +62 -0
  191. mcp_proxy_adapter/examples/generate_config.py +502 -0
  192. mcp_proxy_adapter/examples/proxy_registration_example.py +335 -0
  193. mcp_proxy_adapter/examples/queue_demo_simple.py +632 -0
  194. mcp_proxy_adapter/examples/queue_integration_example.py +578 -0
  195. mcp_proxy_adapter/examples/queue_server_demo.py +82 -0
  196. mcp_proxy_adapter/examples/queue_server_example.py +85 -0
  197. mcp_proxy_adapter/examples/queue_server_simple.py +173 -0
  198. mcp_proxy_adapter/examples/required_certificates.py +208 -0
  199. mcp_proxy_adapter/examples/run_example.py +77 -0
  200. mcp_proxy_adapter/examples/run_full_test_suite.py +619 -0
  201. mcp_proxy_adapter/examples/run_proxy_server.py +153 -0
  202. mcp_proxy_adapter/examples/run_security_tests_fixed.py +435 -0
  203. mcp_proxy_adapter/examples/security_test/__init__.py +18 -0
  204. mcp_proxy_adapter/examples/security_test/auth_manager.py +14 -0
  205. mcp_proxy_adapter/examples/security_test/ssl_context_manager.py +28 -0
  206. mcp_proxy_adapter/examples/security_test/test_client.py +159 -0
  207. mcp_proxy_adapter/examples/security_test/test_result.py +22 -0
  208. mcp_proxy_adapter/examples/security_test_client.py +72 -0
  209. mcp_proxy_adapter/examples/setup/__init__.py +24 -0
  210. mcp_proxy_adapter/examples/setup/certificate_manager.py +215 -0
  211. mcp_proxy_adapter/examples/setup/config_generator.py +12 -0
  212. mcp_proxy_adapter/examples/setup/config_validator.py +118 -0
  213. mcp_proxy_adapter/examples/setup/environment_setup.py +62 -0
  214. mcp_proxy_adapter/examples/setup/test_files_generator.py +10 -0
  215. mcp_proxy_adapter/examples/setup/test_runner.py +89 -0
  216. mcp_proxy_adapter/examples/setup_test_environment.py +235 -0
  217. mcp_proxy_adapter/examples/simple_protocol_test.py +125 -0
  218. mcp_proxy_adapter/examples/test_chk_hostname_automated.py +211 -0
  219. mcp_proxy_adapter/examples/test_config.py +205 -0
  220. mcp_proxy_adapter/examples/test_config_builder.py +110 -0
  221. mcp_proxy_adapter/examples/test_examples.py +308 -0
  222. mcp_proxy_adapter/examples/test_framework_complete.py +267 -0
  223. mcp_proxy_adapter/examples/test_mcp_server.py +187 -0
  224. mcp_proxy_adapter/examples/test_protocol_examples.py +337 -0
  225. mcp_proxy_adapter/examples/universal_client.py +674 -0
  226. mcp_proxy_adapter/examples/update_config_certificates.py +135 -0
  227. mcp_proxy_adapter/examples/validate_generator_compatibility.py +385 -0
  228. mcp_proxy_adapter/examples/validate_generator_compatibility_simple.py +61 -0
  229. mcp_proxy_adapter/integrations/__init__.py +25 -0
  230. mcp_proxy_adapter/integrations/queuemgr_integration.py +462 -0
  231. mcp_proxy_adapter/main.py +311 -0
  232. mcp_proxy_adapter/openapi.py +375 -0
  233. mcp_proxy_adapter/schemas/base_schema.json +114 -0
  234. mcp_proxy_adapter/schemas/openapi_schema.json +314 -0
  235. mcp_proxy_adapter/schemas/roles.json +37 -0
  236. mcp_proxy_adapter/schemas/roles_schema.json +162 -0
  237. mcp_proxy_adapter/version.py +5 -0
  238. mcp_proxy_adapter-6.9.50.dist-info/METADATA +1088 -0
  239. mcp_proxy_adapter-6.9.50.dist-info/RECORD +242 -0
  240. {mcp_proxy_adapter-2.0.1.dist-info → mcp_proxy_adapter-6.9.50.dist-info}/WHEEL +1 -1
  241. mcp_proxy_adapter-6.9.50.dist-info/entry_points.txt +14 -0
  242. mcp_proxy_adapter-6.9.50.dist-info/top_level.txt +1 -0
  243. adapters/__init__.py +0 -16
  244. analyzers/__init__.py +0 -14
  245. analyzers/docstring_analyzer.py +0 -199
  246. analyzers/type_analyzer.py +0 -151
  247. cli/__init__.py +0 -12
  248. cli/__main__.py +0 -79
  249. cli/command_runner.py +0 -233
  250. dispatchers/__init__.py +0 -14
  251. dispatchers/base_dispatcher.py +0 -85
  252. dispatchers/json_rpc_dispatcher.py +0 -198
  253. generators/__init__.py +0 -14
  254. generators/endpoint_generator.py +0 -172
  255. generators/openapi_generator.py +0 -254
  256. generators/rest_api_generator.py +0 -207
  257. mcp_proxy_adapter-2.0.1.dist-info/METADATA +0 -272
  258. mcp_proxy_adapter-2.0.1.dist-info/RECORD +0 -28
  259. mcp_proxy_adapter-2.0.1.dist-info/licenses/LICENSE +0 -21
  260. mcp_proxy_adapter-2.0.1.dist-info/top_level.txt +0 -7
  261. openapi_schema/__init__.py +0 -38
  262. openapi_schema/command_registry.py +0 -312
  263. openapi_schema/rest_schema.py +0 -510
  264. openapi_schema/rpc_generator.py +0 -307
  265. openapi_schema/rpc_schema.py +0 -416
  266. validators/__init__.py +0 -14
  267. validators/base_validator.py +0 -23
  268. validators/docstring_validator.py +0 -75
  269. validators/metadata_validator.py +0 -76
@@ -0,0 +1,242 @@
1
+ mcp_proxy_adapter/__init__.py,sha256=es6Hd5HexYP6yeFXKnFdro8enuWHXfbYGnimrVeQ78U,1380
2
+ mcp_proxy_adapter/__main__.py,sha256=lyUSshaAV8u7fOU4Ru4lqGuiqqf8NX8DNnymeUpvwU8,233
3
+ mcp_proxy_adapter/config.py,sha256=Nj5Cpyt2_BHRCWF_TsdL6W5Eb7_yNe7WVsCNZSx2LT0,518
4
+ mcp_proxy_adapter/custom_openapi.py,sha256=WY9JTPoi5uofaopU4tm703qQ8ak2qezPmk98dUyWm2U,1482
5
+ mcp_proxy_adapter/main.py,sha256=mnd-_GXUqIC9zq-5c4iOOITWgaYHf9HX25q2RQzsEW4,11343
6
+ mcp_proxy_adapter/openapi.py,sha256=N3iJ4h6vJKz_pjoHiJxM_mFEodsbz8aN3v0NVV7YX7w,12885
7
+ mcp_proxy_adapter/version.py,sha256=lu6VNwMyXlSFzd0UM3Sm1gtfXX41kLQ0uc-MkBeLHGQ,75
8
+ mcp_proxy_adapter/api/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
9
+ mcp_proxy_adapter/api/app.py,sha256=zvqMxMVx0YJ32Q6zFKhpyDdaF8BKVGokBxpwbqBTWmU,1921
10
+ mcp_proxy_adapter/api/handlers.py,sha256=jNzWrks7throenjQ6salj4C8tBxIvx-QBhK9IkfixxM,6370
11
+ mcp_proxy_adapter/api/schemas.py,sha256=oh-uj2B7qRPnZJvMG5n4Z4GgfIIFQSxBT4R5UdqqVFs,9511
12
+ mcp_proxy_adapter/api/tool_integration.py,sha256=aMG2PPBjz04w2_3clmYaEdJR9uy6x0Fi1doBIK8P1IU,5075
13
+ mcp_proxy_adapter/api/tools.py,sha256=lPrG1lXzS7B2UFl5Jvu5i1mr4fQqpFZdpACBeYEiycU,6410
14
+ mcp_proxy_adapter/api/core/__init__.py,sha256=OTGY-JQ-tV2Grnd6gs9FVxIqX4QvLKj5JJt3zxHX5UU,400
15
+ mcp_proxy_adapter/api/core/app_factory.py,sha256=Ll0fuZXZ4DtrhsyxuH5GMIusZHHxgJP88wNutnIMjfM,17511
16
+ mcp_proxy_adapter/api/core/lifespan_manager.py,sha256=mTBtWC_Z277H5fdX3asGIag3ecc8oGtO9F6bVEeD1wg,1682
17
+ mcp_proxy_adapter/api/core/registration_context.py,sha256=__d__K1mj-5NvSkmKST3dONXhlMrB711E2SppFcpIbQ,13985
18
+ mcp_proxy_adapter/api/core/registration_manager.py,sha256=Za_L83D8EhTtU7ILzyCV9fhV-uE04z8kBHIxabusJSw,11525
19
+ mcp_proxy_adapter/api/core/registration_tasks.py,sha256=lgq3CvCZir0GYWzku_G8CW5Y8_w2_6Xva5Q00LFKpHY,2539
20
+ mcp_proxy_adapter/api/core/ssl_context_factory.py,sha256=9gMwvhKWA_-9gDpGr1h7OghkAAwRKYpSIz2vk3Dy0pY,3165
21
+ mcp_proxy_adapter/api/middleware/__init__.py,sha256=yFB4U84cQZXBDw9R2WfziGjrBDafV_jMAT1WLWlicJo,601
22
+ mcp_proxy_adapter/api/middleware/base.py,sha256=OtGcCKSSXFFA9hNxsiaiaZ72qQpw_P2VyTxEJtVJXps,1264
23
+ mcp_proxy_adapter/api/middleware/command_permission_middleware.py,sha256=T-QZ-jYKZAgYGjsvTAHVf0nGtEYYv42EFal3iwREwiA,1984
24
+ mcp_proxy_adapter/api/middleware/error_handling.py,sha256=BumS2oM3NPMQi6-Do0mNWRu2GNJ0Cc6pW9mP8osxAyc,2010
25
+ mcp_proxy_adapter/api/middleware/factory.py,sha256=A27VPC_BYg-ssbfivONvRs_68w8pcACTOVTEi-yhhzU,4709
26
+ mcp_proxy_adapter/api/middleware/logging.py,sha256=dL_gRkl29lUXoQ5OKnc9yRluhZ_Blei4Rjom9e_hUXA,685
27
+ mcp_proxy_adapter/api/middleware/performance.py,sha256=FGuHWaPSwrmMBLvsLt_JBnkTJexxvO7yupV68ssuPo4,1441
28
+ mcp_proxy_adapter/api/middleware/protocol_middleware.py,sha256=FHyeU2lirHF6F83M6-fOFaz1uqWy35gtrR8eOXwYAyE,5464
29
+ mcp_proxy_adapter/api/middleware/transport_middleware.py,sha256=_WaKNif-cvV-_W15JECDHK9JRzz2rAo8AIYIYmBnroc,2790
30
+ mcp_proxy_adapter/api/middleware/unified_security.py,sha256=tUSzPfAmClujj0xGdRymRikyDT-ZaH2sUG69PcmmV-A,8311
31
+ mcp_proxy_adapter/api/middleware/user_info_middleware.py,sha256=9e1Pdaft-GTWECpXbW2IxpxlKYyLPUjJd1iOnLIzjRU,5991
32
+ mcp_proxy_adapter/api/openapi/__init__.py,sha256=6uLzjXaCpviEESIwNtfWpBc6EGQOTcMo2XWJbj4zk7g,555
33
+ mcp_proxy_adapter/api/openapi/command_integration.py,sha256=cMWrJRB_OxO30OR_B_VevoTHDTwXIIm4mPlGLrqLQ-U,3278
34
+ mcp_proxy_adapter/api/openapi/openapi_generator.py,sha256=bEVgRryZU0gouzYDKM9zPofM1RGdR-Rt5S6Y0qottfY,1559
35
+ mcp_proxy_adapter/api/openapi/openapi_registry.py,sha256=RRMDVLYSGQCB88qA0YpoJ_y-zuLcgckP4_RLFJ_PbfA,1338
36
+ mcp_proxy_adapter/api/openapi/schema_loader.py,sha256=tQtMQOSIV17kfnwzMD5mh5LWZF8XhIqseaHcevRZQB0,4462
37
+ mcp_proxy_adapter/cli/__init__.py,sha256=VbZZ5NWmDIf5Vhj-BDe6yElg4ximxokNmBXKN8G-R2U,213
38
+ mcp_proxy_adapter/cli/main.py,sha256=kgHCJkV6Q1YkBjcl7jbPuNbqaX1WiUNAMvBl7Ha2QmM,2220
39
+ mcp_proxy_adapter/cli/parser.py,sha256=jLgtWEoLQk29NrxJRs1uPC2zsnjNZJPv3IWr84vT87E,12299
40
+ mcp_proxy_adapter/cli/validators.py,sha256=Bl_oYSbL6FLA4HU5cZYkOdSky0Gfb0Tk4sg83PRkgAU,6554
41
+ mcp_proxy_adapter/cli/commands/__init__.py,sha256=8CkC1rFB4KgxB4g3amFUpQIiJK_8rel8ANUI_n_Jgvk,373
42
+ mcp_proxy_adapter/cli/commands/client.py,sha256=d-fd6mohw9b5NDS4DzwwFBM2Zwk0Tumzmf-3PVIX2B0,3210
43
+ mcp_proxy_adapter/cli/commands/config_generate.py,sha256=h2W5FTTadGRqHbf90Kn5ySxA2Ji2Jn5SmJrMOwvZqyc,4605
44
+ mcp_proxy_adapter/cli/commands/config_validate.py,sha256=fbttu3UmRtWUC4kDkZn34r0RnCkks4m2-J77s00ufkA,2909
45
+ mcp_proxy_adapter/cli/commands/generate.py,sha256=-qVk_7ynE6FHZvjUpTZJAhLm1sRm3uq6X8JHX7yNdd0,10018
46
+ mcp_proxy_adapter/cli/commands/server.py,sha256=WwmAtLTIAzyCaToDbjVY3OatHUSwqnRK5YdXnE3PKss,6663
47
+ mcp_proxy_adapter/cli/commands/sets.py,sha256=N4MDyjDo26mv6a-5zjLoGEd6IbJkj6JmcUJjoOUXiL4,4558
48
+ mcp_proxy_adapter/cli/commands/testconfig.py,sha256=ZUY-3bm_sZbCg-gnzxWmHsGwqIu88aqKKba_4mLsF1s,6725
49
+ mcp_proxy_adapter/cli/examples/__init__.py,sha256=UcVT4i9GwjU8ud3bzq9_yv1-vTJTuVyxRUvlSrxj8hw,145
50
+ mcp_proxy_adapter/cli/examples/http_basic.py,sha256=9qIsXuxez1OoGF8G8AKOhMuYOPbi-cgH5NzSuAD7ixA,2393
51
+ mcp_proxy_adapter/cli/examples/https_token.py,sha256=3hfXEAhcSFc5OgkbApoqTy9vm-VXpVgZrTdqUiYtKLo,3362
52
+ mcp_proxy_adapter/cli/examples/mtls_roles.py,sha256=4UlRHrbZxH71I6zAoxckzW8fG2zqOHRBwQzneu61ZDI,3785
53
+ mcp_proxy_adapter/client/proxy.py,sha256=BUaMHj3S8NlhhxH9DexzooGKWcIA9r4uSzhPOfcwNFk,3572
54
+ mcp_proxy_adapter/client/jsonrpc_client/__init__.py,sha256=jmVGar3W1RXvo08GA8vG3a4rYfiqf5gZMW1R-R-qgZg,196
55
+ mcp_proxy_adapter/client/jsonrpc_client/client.py,sha256=RLWX6rt2-_uf_rCSZsBXfzZS7OUSqHiFVBUuk4D8Ozw,1143
56
+ mcp_proxy_adapter/client/jsonrpc_client/command_api.py,sha256=GzD0Rie5JM_bFElcDkT6bRy5Ep9hEccolT69ti_IUg4,1540
57
+ mcp_proxy_adapter/client/jsonrpc_client/proxy_api.py,sha256=_i5R343lkNzDSpiSWp0qpC09gzsIpyG1SltSKC4Iaso,7940
58
+ mcp_proxy_adapter/client/jsonrpc_client/queue_api.py,sha256=x2uhoWhumQ2mvBZOyWrYsTcu4uMs5vhbfaXuRbTaKfo,2097
59
+ mcp_proxy_adapter/client/jsonrpc_client/transport.py,sha256=hrU9s_bxd9KXrNJ-VLekrFiT3FLX68puOAQGwOAEUn8,3383
60
+ mcp_proxy_adapter/commands/__init__.py,sha256=QjNaCoYmFaT5aioLCD0tGyQBDoimUjqrH5sJyGHE3KM,2224
61
+ mcp_proxy_adapter/commands/auth_validation_command.py,sha256=p867zooBn1si8_R2BBd7QpXkuHOTnfOZYiARQW2CsrY,1826
62
+ mcp_proxy_adapter/commands/base.py,sha256=jW_w6jjqbEtqKHfi5-bhd98HDF1UuyRXHFMuzOssoUM,14366
63
+ mcp_proxy_adapter/commands/builtin_commands.py,sha256=gU3ee2agE-urp0QbLfGrOEOa-aaSBe-hEUb4ia6CVJI,1197
64
+ mcp_proxy_adapter/commands/catalog_manager.py,sha256=xnGKUKe-K58qlj-XLncdmdilvwVrcC_Zug7_gr5kap0,2333
65
+ mcp_proxy_adapter/commands/cert_monitor_command.py,sha256=8WwbrVeupsD_L9bLL4k2XdTtWx8NvMEwU_eq-PNklCA,20836
66
+ mcp_proxy_adapter/commands/certificate_management_command.py,sha256=Vd9ZrdkIlwptp9AGq6aPhMAxhSc989ncMcibTRWkOOc,21875
67
+ mcp_proxy_adapter/commands/command_registry.py,sha256=iuVvSMzXzxMkrA_VFnvU8dUDhWeNLPdw-1n3qtyib_8,9647
68
+ mcp_proxy_adapter/commands/config_command.py,sha256=-Vxvnhy4YFgmbsrqcOfsA9IRc5GvF_ZVlFqFM6tZAZg,2899
69
+ mcp_proxy_adapter/commands/dependency_container.py,sha256=iuwzEOVYHZVLfRWWYb2BEE8tM6-VyFJQRuadxqPamDA,958
70
+ mcp_proxy_adapter/commands/dependency_manager.py,sha256=2iHfbSi4n09zpxRx4bBlPROa2mckTYZfcuEVa09J6Dw,4459
71
+ mcp_proxy_adapter/commands/echo_command.py,sha256=Kj51pJzWAhkcnpD1MWJZHc2a6b1arWUhSy390eEtgNs,1233
72
+ mcp_proxy_adapter/commands/health_command.py,sha256=h6mGW2RcsYAgPCCH-Lp0VLoi0RxyisqqoygTXjzeDeA,4356
73
+ mcp_proxy_adapter/commands/help_command.py,sha256=1T6gqEboInptFX7S6iD31rYkorlTAPVj_VHDl2PLqdw,7659
74
+ mcp_proxy_adapter/commands/hooks.py,sha256=qeVUA0hDYH3jB4T-G38ZO8V22S7GS2na_ydM9YUOwfk,5300
75
+ mcp_proxy_adapter/commands/key_management_command.py,sha256=ILfIdybizl7Df5IY-XOH9T0yzk91KGVgIuO5YlrUkkw,17648
76
+ mcp_proxy_adapter/commands/load_command.py,sha256=YLdXHGcdPqucNVEKy9o0JqxKckqMzCw3gfyqorAysak,3937
77
+ mcp_proxy_adapter/commands/plugins_command.py,sha256=_tJB9uff4edtXZkW6vAsQ6OBYgjpL1RnY9dB3TpTbYU,8224
78
+ mcp_proxy_adapter/commands/protocol_management_command.py,sha256=zs0721uSHkqL7Muwd1c97sN53pCAr2AOX67T7tCF-1Y,7638
79
+ mcp_proxy_adapter/commands/proxy_registration_command.py,sha256=mL_LIXKyBEbvpEWoLpXtuK6-Od98IjNTZe155OQtavY,11740
80
+ mcp_proxy_adapter/commands/queue_commands.py,sha256=v6vEYjI7WWtSBvrD-WF85ARQ2QQTB2y7CbMmAORJ3d0,25158
81
+ mcp_proxy_adapter/commands/registration_status_command.py,sha256=b2g2BP_pWn2n34IcOPVp22IA4MuyWUpsNVjsBiuMfHw,2218
82
+ mcp_proxy_adapter/commands/reload_command.py,sha256=AGGmjeybwzmVnGh5k1w1inpyf8MB4T_6ZVspy0NNFKI,4739
83
+ mcp_proxy_adapter/commands/result.py,sha256=De9RXrua6xIuJjh2jHoNgVgt1P7CloyYD-JeQzudHPI,4256
84
+ mcp_proxy_adapter/commands/role_test_command.py,sha256=vHYFaiuJpzSgzyOlLhFGLYD_8H8GwIfbN29-bkAPbyQ,2670
85
+ mcp_proxy_adapter/commands/roles_management_command.py,sha256=GJ09wtEh8yqRtQxrZJyMf0VjJuAelE4eiKYyTlw3_eM,15639
86
+ mcp_proxy_adapter/commands/security_command.py,sha256=j55PIE2olWRuqs7FT4Iatyv4rCjjbyRdg4goYW_5Dq4,16939
87
+ mcp_proxy_adapter/commands/settings_command.py,sha256=iSmJDygSVD3DZu6gwmc8kUS22NZaApjTB3OQ5dLGGSw,3391
88
+ mcp_proxy_adapter/commands/ssl_setup_command.py,sha256=JBuoFliUQ-tyHY6Nmb7KiCJy1OaPeIXm6XpsM2KPFXI,10702
89
+ mcp_proxy_adapter/commands/token_management_command.py,sha256=jg9WU5qMS31cVpQOARWhH9Dm-YVVIg1-lJwKwQotmww,16873
90
+ mcp_proxy_adapter/commands/transport_management_command.py,sha256=9h4NeLM81R3B_Mn_u390guVEsDH17BwSAua6zUsoW9I,4006
91
+ mcp_proxy_adapter/commands/unload_command.py,sha256=0G4qOodzCWb-_lsjl3tUAcl554THvn44p4t3P7ETfMM,2761
92
+ mcp_proxy_adapter/commands/catalog/__init__.py,sha256=_HG1KnN53p8-dvkpJSWao4C6cHQdqyKIogmuL10OpvM,469
93
+ mcp_proxy_adapter/commands/catalog/catalog_loader.py,sha256=W_vQmjfkxHs8jC5sApd3ecaVB-ETIe-_J-EKHN1Q7pM,737
94
+ mcp_proxy_adapter/commands/catalog/catalog_manager.py,sha256=2A7N9FBHx1xMxqsqF38NZbQC9ac_vQhxJ5zM6JEWi98,4001
95
+ mcp_proxy_adapter/commands/catalog/catalog_syncer.py,sha256=ITfvS1B9GQNEy14KSTxFtQAE9-OV7BiqKQXPLXl1nbo,4776
96
+ mcp_proxy_adapter/commands/catalog/command_catalog.py,sha256=S05UXkXqzsJNV1XxhZ4aGSHuwhc4LgjpOQqUCU3Rf-w,1132
97
+ mcp_proxy_adapter/commands/catalog/dependency_manager.py,sha256=RlXbm8SRs_aBq8ii94p0NHCjRbmXH4igf9ljs8Lhco8,786
98
+ mcp_proxy_adapter/commands/registry/__init__.py,sha256=utO35zaZo5mP1Gwkd8evOdqnLl7J3nJG0Mom_WSuyi0,382
99
+ mcp_proxy_adapter/commands/registry/command_info.py,sha256=A5b5O0WRoB3OCglxs0JNa9-aakpc7eGFilo4gfan1q0,3370
100
+ mcp_proxy_adapter/commands/registry/command_loader.py,sha256=OBRkKCtDHRxQGFgZKduE6zcf_eo1TGjqipPBAamgMAM,6878
101
+ mcp_proxy_adapter/commands/registry/command_manager.py,sha256=dMQWKNwACiknHdECya2DIE8beZaeJDV4dpHid--Sk6Q,3979
102
+ mcp_proxy_adapter/commands/registry/command_registry.py,sha256=XURwiKUoUNbzp32p1awtS7nedqO3RW8scy7qqzdBk3o,6410
103
+ mcp_proxy_adapter/core/__init__.py,sha256=aKs8nj8jamwV8xwZgtwxmzPKUgCZincqGZHuMj7qki0,196
104
+ mcp_proxy_adapter/core/app_factory.py,sha256=kfFdles4eXei7uVXkbOY8FZLCDbSNsX-zdCVpINlD9k,22353
105
+ mcp_proxy_adapter/core/app_runner.py,sha256=pbdPT3X6z_fXNbpjW2DZRkB_mvUfweM7w_cPqlCN_Zo,11773
106
+ mcp_proxy_adapter/core/auth_validator.py,sha256=BuvGEHLvNU8Rv5wmdB8qd-TPlCDJF0cSwnWMHe9h18w,16565
107
+ mcp_proxy_adapter/core/certificate_utils.py,sha256=Jeftf420a_tsBjOqUwZrK5azqrqkK10YFD0ll-lgWHo,7499
108
+ mcp_proxy_adapter/core/client.py,sha256=7DdZFAnu7UyyZeiaESjg2feyT-UwGS0bFxE9oS5A1aU,21214
109
+ mcp_proxy_adapter/core/client_manager.py,sha256=9kk_h9QsJ3pwiK_VZNpbM8qSJGNeLsAqNA4lbreWJyk,8533
110
+ mcp_proxy_adapter/core/client_security.py,sha256=gYr2V3UvPKDV6Xs06kzsBIAciW_gAvbF9fbs7MVeC2A,13575
111
+ mcp_proxy_adapter/core/config_converter.py,sha256=R4V_giWs4CNaGJDEZ8snzRZYYXAtnYWLWdJVZTfVgwg,9791
112
+ mcp_proxy_adapter/core/config_validator.py,sha256=7_law-AFjQkh5Ad1sChxUSzrp7Uc6azbQQ035GfExE8,7822
113
+ mcp_proxy_adapter/core/crl_utils.py,sha256=JagcJBkGY-YEmkhRWBDDkfi75wIyBOlf6s7YvXgTiHI,11992
114
+ mcp_proxy_adapter/core/errors.py,sha256=ekWfQGAvOkUva5iH6_tTTen8SBNmlHoQp-xJf-oAQQ8,7319
115
+ mcp_proxy_adapter/core/job_manager.py,sha256=D6cB7r8rxePDSAHD87TZqd2Mcfc9W7n6EFXU-fBhnbs,1196
116
+ mcp_proxy_adapter/core/logging.py,sha256=d5DUzpeZVnXw2puZydTiZXy2xNRA2bqDa14FLo1rt4E,8288
117
+ mcp_proxy_adapter/core/mtls_asgi.py,sha256=9s53xhQqZQpYLt_FW-52jW2hkfgtwHwSqWxzytVBoAA,4552
118
+ mcp_proxy_adapter/core/mtls_asgi_app.py,sha256=8FHzgIBWp_nUtIXxGRFNGjTeTzM26JsyOuzI-opKU9U,6349
119
+ mcp_proxy_adapter/core/mtls_proxy.py,sha256=nLbI2eeeFW070Vxt5Ym-7PYFOeM04zHv47epdy4OTEQ,7369
120
+ mcp_proxy_adapter/core/mtls_server.py,sha256=JTz-wU8RNsDpLfUDk37-ZJcHFxyo0NzW0sM31Ffm-Yk,4580
121
+ mcp_proxy_adapter/core/protocol_manager.py,sha256=f8pMKNRtSIKW9ebuLW4t27mw2gMaMhFUrsqrRr3dp8Q,8451
122
+ mcp_proxy_adapter/core/proxy_client.py,sha256=VKzUEMu6cO5BFWTManoSyN9PJF8eyzCgYabXGEbRMPQ,6065
123
+ mcp_proxy_adapter/core/proxy_registration.py,sha256=fmt5pGh4JmIW5uoeNMO870Cqs8jvDWf-ALWWCg2_aD4,2078
124
+ mcp_proxy_adapter/core/role_utils.py,sha256=J9iofFTFuzTcz8tXCx_e5TSToWF4nw1XMn6aVzICM-k,2536
125
+ mcp_proxy_adapter/core/security_adapter.py,sha256=i5dOnuWBpmQ8Kz1YxoD4g8vX7VEYMgTuM5oAoxgZl-8,11964
126
+ mcp_proxy_adapter/core/security_factory.py,sha256=cEsxxRTydm3SlK7zrBhSHuhxgs2WghtpYaEsrmoncFg,2833
127
+ mcp_proxy_adapter/core/security_integration.py,sha256=KsKjJnR0826-rV6uU9R7uGt6u43t6cyKApf3WCyVlz0,12855
128
+ mcp_proxy_adapter/core/server_adapter.py,sha256=Qzsps-2vufprAx2D2pgZtCmTc7KqKMr-ZkWS8Bh_RLY,8639
129
+ mcp_proxy_adapter/core/server_engine.py,sha256=XX8LDaEkd14v0Y_60EgX475ycX_lSj-W-3OQrhFSuK0,6712
130
+ mcp_proxy_adapter/core/settings.py,sha256=oPwm9r1TY4AvuW-hvxDnJ-_jJ9PI1Ggrltp3ldjvkIY,5415
131
+ mcp_proxy_adapter/core/signal_handler.py,sha256=bvZjBl2IzDvI8zLetq_ADBpsZ22oZvB4S9j3yATrMZM,2979
132
+ mcp_proxy_adapter/core/ssl_utils.py,sha256=m7BxBOsqlwhkYWy7RUtNiGB5Vm2gMa7-WomZTNJekq8,5453
133
+ mcp_proxy_adapter/core/transport_manager.py,sha256=iddFPgr84ZJMtm-ABEKQYX-utscROQoUysyr-Hy63_8,4001
134
+ mcp_proxy_adapter/core/unified_config_adapter.py,sha256=F4ej-TihENrtmSpvpJxJ2jaAmfmMSD6bj7Tt8C1tqIE,18277
135
+ mcp_proxy_adapter/core/utils.py,sha256=gSer7nRbSh0jB58MPIrDdoEJYSx04gCArm6e0OZ5wng,2402
136
+ mcp_proxy_adapter/core/certificate/__init__.py,sha256=D6fSBwXNrvMyzNCd2bIO4fOpKjhHfEIC2gKbS3qdvGQ,526
137
+ mcp_proxy_adapter/core/certificate/certificate_creator.py,sha256=2gMH5PL6uMrgyAHahP-VAPY_R5ycgtzwdU0_YqKBU7g,13520
138
+ mcp_proxy_adapter/core/certificate/certificate_extractor.py,sha256=dCznUImd8tOftM7ztuUP_b9f9Y0EXrdXw069mzNggf4,6823
139
+ mcp_proxy_adapter/core/certificate/certificate_utils.py,sha256=Jeftf420a_tsBjOqUwZrK5azqrqkK10YFD0ll-lgWHo,7499
140
+ mcp_proxy_adapter/core/certificate/certificate_validator.py,sha256=AoSQnfO0BL77UFS-RTLGkGbpDdiH79P2-vdw_Q6GvyY,17658
141
+ mcp_proxy_adapter/core/certificate/ssl_context_manager.py,sha256=gQ7iuiayCLwRV0mHuQoYPx-W7dNIz8y8akxe3ZDWt9o,2055
142
+ mcp_proxy_adapter/core/config/__init__.py,sha256=q25T3OyvYgYFEplZwqcOZUl5mpPkId0eh7Tr5rdypEM,364
143
+ mcp_proxy_adapter/core/config/config.py,sha256=AbaSWDl3CD-bGAI59lot48MYtrXx_gKk-ueAKDNVOcU,7356
144
+ mcp_proxy_adapter/core/config/config_factory.py,sha256=qm2QxqiOArpt4x_PPkR1O5A6T_LdD1RHTVnTMFNFxBI,409
145
+ mcp_proxy_adapter/core/config/config_loader.py,sha256=PmoDRNsLtuzqiJoL9e8p-4CpDF1jAaobXZaGs8LwuEw,1670
146
+ mcp_proxy_adapter/core/config/feature_manager.py,sha256=ET-ylB7sBpUG0rH5NNKn5gDjb0sAF02qItLz3GWCvC4,568
147
+ mcp_proxy_adapter/core/config/simple_config.py,sha256=CMJ-08irjfJxwuiSk4Z4ix7gJIRMnMqKsd-1pGM8WnQ,7574
148
+ mcp_proxy_adapter/core/config/simple_config_generator.py,sha256=p09o5enj7CLhb6zbH4Z0z9nOsAOJAeodaDDf3P-Vos0,5708
149
+ mcp_proxy_adapter/core/config/simple_config_validator.py,sha256=rBenEzLKrVx_ZZ2ZCP2ae-H4h-gdSfslBZHqPVCMAlI,21101
150
+ mcp_proxy_adapter/core/proxy/__init__.py,sha256=VR6n4GVB7SYqWzJUmYaxOpv5mpRr6j1Ud4jhMihyo-U,468
151
+ mcp_proxy_adapter/core/proxy/auth_manager.py,sha256=AP5soZt21R0jUdk6t1Kwv_VnTNuT1c-0tf9PAaUooPo,712
152
+ mcp_proxy_adapter/core/proxy/proxy_registration_manager.py,sha256=tpS2bkYw0Hg5i-PzwnECBvPXu8SiA43gSYtxPSF9jyc,4894
153
+ mcp_proxy_adapter/core/proxy/registration_client.py,sha256=1uczubH9C5rTZ4ipTnx_IsEBQdazbIdWcgRC1Ca6jqc,6785
154
+ mcp_proxy_adapter/core/proxy/ssl_manager.py,sha256=K2lzSxCpwlaa1kSgLqZ0YNDJEqfdAGcQ1slePqbhaSM,4138
155
+ mcp_proxy_adapter/core/validation/__init__.py,sha256=28gyTuiODN12gIrtTj91N6qJMySSVusFzJuWyysfNpM,529
156
+ mcp_proxy_adapter/core/validation/config_validator.py,sha256=gEsbXN71Aj-sSuDB82xrKKDnF3KX7qp5RRsAILfpzWs,8150
157
+ mcp_proxy_adapter/core/validation/file_validator.py,sha256=VsnwLblcrFTwhqxpiND20WCs-fMWaiqyP6HCGx54jRE,5035
158
+ mcp_proxy_adapter/core/validation/protocol_validator.py,sha256=nNgNcylywzFKJAQ0dtD7mj6PltTGfsiNP0wg1cghn3Y,8032
159
+ mcp_proxy_adapter/core/validation/security_validator.py,sha256=DEN0R8Y4J4xTb_esbj18i_LHMtJozaD1AQ93aIXGJ3U,4609
160
+ mcp_proxy_adapter/core/validation/validation_result.py,sha256=VKxhJ2Nv-QoVJzB4wsgfAUnhJ1Qj50ZTJ7guAELF-fM,598
161
+ mcp_proxy_adapter/examples/__init__.py,sha256=k1F-EotAFbJ3JvK_rNgiH4bUztmxIWtYn0AfbAZ1ZGs,450
162
+ mcp_proxy_adapter/examples/bugfix_certificate_config.py,sha256=-75AWN0ZnRZAzpzSJeZ_cPbfpsZFCUDRWuM0lbMhkVo,9493
163
+ mcp_proxy_adapter/examples/cert_manager_bugfix.py,sha256=pwifGipvxQX2WR0sTYZWs0k8g_C228Kd5KJuR0wYB_s,7285
164
+ mcp_proxy_adapter/examples/check_config.py,sha256=5IIfhgjVnTwTX03rNvEn_7WtQLpBLQLbuCYfwtMMW7o,13969
165
+ mcp_proxy_adapter/examples/client_usage_example.py,sha256=EUwgZELRD1NBXkCoa1N06O7TsQ5KyrtqUYp8AbInLUI,4948
166
+ mcp_proxy_adapter/examples/config_builder.py,sha256=9MMgLYdCCamFrrf_7KYuQ5blVTo1YDnFA1k0z7UNNZg,7358
167
+ mcp_proxy_adapter/examples/config_cli.py,sha256=SUEY--Y2x5QuayzKimSybSQ_eponxb71KLkchs-EGuA,11014
168
+ mcp_proxy_adapter/examples/create_test_configs.py,sha256=2KP-iKL-AVSpv7xzJn_iBGK8AuK6Gpw_WaxI0U_RApw,6350
169
+ mcp_proxy_adapter/examples/debug_request_state.py,sha256=iijjmopANN36AsP5acE8PyFISqQzUWlOKMmvGsHf2Tg,4452
170
+ mcp_proxy_adapter/examples/debug_role_chain.py,sha256=GLVXC2fJUwP8UJnXHchd1t-H53cjWLJI3RqTPrKmaak,8750
171
+ mcp_proxy_adapter/examples/demo_client.py,sha256=en2Rtb70B1sQmhL-vdQ4PDpKNNl_mfll2YCFT_jFCAg,10191
172
+ mcp_proxy_adapter/examples/generate_config.py,sha256=1gVKF3tOCRE6zwGXE585N6_3VDATVUd40gmppYHIvdI,19149
173
+ mcp_proxy_adapter/examples/proxy_registration_example.py,sha256=Dz7ZQTmdgCgGxMqhKaJj-EJWmHb4BLav9nDTZHPSKmY,12995
174
+ mcp_proxy_adapter/examples/queue_demo_simple.py,sha256=IINOErwdQpBjG3keZ414THvEfJl2JnPLJRSDa4yWVss,21786
175
+ mcp_proxy_adapter/examples/queue_integration_example.py,sha256=NNG28YFJ-vtjyRGGTbh-NIy78iEVjgf5ujJDyuSrt5A,18827
176
+ mcp_proxy_adapter/examples/queue_server_demo.py,sha256=fX_cyabVP5lL96Xi6Dw6DFwPYXAOgWpDH6oQI4VvPaE,2211
177
+ mcp_proxy_adapter/examples/queue_server_example.py,sha256=6p-uOnBZzZSt8DtmbzQQQI68ls2-c4SsNTyyW5S-ULE,2461
178
+ mcp_proxy_adapter/examples/queue_server_simple.py,sha256=Jz4Tm4lttAt2980B8LekoMesNBjJNJGOY5viYVuiw7c,5308
179
+ mcp_proxy_adapter/examples/required_certificates.py,sha256=hHhXC2snqA4TWBduQAtr1cjUuCcy98LGMH2I6o8W8n0,7073
180
+ mcp_proxy_adapter/examples/run_example.py,sha256=yp-a6HIrSk3ddQmbn0KkuKwErId0aNfj028TE6U-zmY,2626
181
+ mcp_proxy_adapter/examples/run_full_test_suite.py,sha256=PrT-YkkRKWr8QRSdaGn6EF1OSViZ1-opDYSMJD_Mwco,24653
182
+ mcp_proxy_adapter/examples/run_proxy_server.py,sha256=_k-Byh6xd_UsLo0ium42BpDA6y5H5oOUcyCJZW-sWJM,5274
183
+ mcp_proxy_adapter/examples/run_security_tests_fixed.py,sha256=BtNLYZrHChQxj3vMhw2czpn88QFE36HVpD5rZxpaWZ0,17228
184
+ mcp_proxy_adapter/examples/security_test_client.py,sha256=NxvFd-ksfhK7T6LnYh9C4PQZ84XSEmvYSaDWvHtYQ2Q,2209
185
+ mcp_proxy_adapter/examples/setup_test_environment.py,sha256=c8VISRhl48PpQcfhaVwC9J1XKH34nUWk7ihDULlmtDw,6823
186
+ mcp_proxy_adapter/examples/simple_protocol_test.py,sha256=BzFUZvK9Fih3aG4IFLQTZPyPe_s6YjpZfB6uZmQ76rw,3969
187
+ mcp_proxy_adapter/examples/test_chk_hostname_automated.py,sha256=nN0FEevzP6UP3q40zq4lw_GiT050FYomu7rWFPOMF2U,7002
188
+ mcp_proxy_adapter/examples/test_config.py,sha256=6lTpjb7UbiiqqHRt7LMnIXpuY3u-lKeUu2yQyhk2eLw,7938
189
+ mcp_proxy_adapter/examples/test_config_builder.py,sha256=iuQhdFOgH9snqkZRISOT4LG8YD68HhTXiEAmmCeLmq0,2393
190
+ mcp_proxy_adapter/examples/test_examples.py,sha256=0xKWsvuzBiY0OLTvfHQjG3VgcVKXKqAlgLWY696sjCM,12295
191
+ mcp_proxy_adapter/examples/test_framework_complete.py,sha256=rsjGDlviEQafiGMsy4IAYIO_T6z1eOH11y2w9dvMpN4,10015
192
+ mcp_proxy_adapter/examples/test_mcp_server.py,sha256=zFRUzdvdG6tzHp81HqoiiZvoXYDYsEfoaPNfdCS3FMY,6566
193
+ mcp_proxy_adapter/examples/test_protocol_examples.py,sha256=IDvWGfKf5zsQMZEBfB1Klugq0Jpq-0d8sPD-OK9Qudc,12123
194
+ mcp_proxy_adapter/examples/universal_client.py,sha256=YBpReQgms76ZA4iXmnmR_5fI65-nREtwdxt7xv0chlw,27302
195
+ mcp_proxy_adapter/examples/update_config_certificates.py,sha256=mj4_b0T2BJnJlQXWLyRp3wwvnQOI2GVGfkBv-knLJDY,4598
196
+ mcp_proxy_adapter/examples/validate_generator_compatibility.py,sha256=4Atdgbmop1GrE9c2JBmnSvHAFmTK6CTL3MdhJkh1lpM,13624
197
+ mcp_proxy_adapter/examples/validate_generator_compatibility_simple.py,sha256=K_n2y_r7cSSKUjUsEBDWcSKQqafGdftTMEWuKl1M8N4,1601
198
+ mcp_proxy_adapter/examples/basic_framework/__init__.py,sha256=4aYD--R6hy9n9CUxj7Osb9HcdVUMJ6_cfpu4ujkbCwI,345
199
+ mcp_proxy_adapter/examples/basic_framework/main.py,sha256=2bpT-zrekpzzbhOx6wOOYXYE1mejWXkT617zpSN7m70,1790
200
+ mcp_proxy_adapter/examples/basic_framework/commands/__init__.py,sha256=_VQNLUEdsxUG-4yt9BZI_vtOxHAdGG0OUSsP6Wj-Vz4,76
201
+ mcp_proxy_adapter/examples/basic_framework/hooks/__init__.py,sha256=IE_EIXMnkdXuakZn7wLD9kBFyfDF5lYi56ejgiBeb-A,70
202
+ mcp_proxy_adapter/examples/commands/__init__.py,sha256=zvY_OpH_B1bVc_khrNIl6O8vqCw1FH6gGMAsJAkGWGY,170
203
+ mcp_proxy_adapter/examples/full_application/__init__.py,sha256=ft7eu1COzFNHDnwX5neLQQc0muSV_iJQzqQrNUlrpyg,399
204
+ mcp_proxy_adapter/examples/full_application/main.py,sha256=VEWGIBKJ65ROdchDo647rlkn4tIsXrL0m5j8FV4esMk,12588
205
+ mcp_proxy_adapter/examples/full_application/proxy_endpoints.py,sha256=OCph5TuqRu1ZmoYWttg0STFSF7rqcXPWdSqEZIoWrdw,4877
206
+ mcp_proxy_adapter/examples/full_application/run_mtls.py,sha256=neYnzO9lfCEEruv-R__dHey18DXav5RG6hNKwu54G6Y,9455
207
+ mcp_proxy_adapter/examples/full_application/run_simple.py,sha256=Rnmsi68EfiFEWrXx5DfUnxSks9uhmJR-ERlo-BOm9tQ,5163
208
+ mcp_proxy_adapter/examples/full_application/test_minimal_server.py,sha256=b5lApTLB-zW5ZZoMb5KpEGKnrMtxh_k6nOI0D91rJls,1139
209
+ mcp_proxy_adapter/examples/full_application/test_server.py,sha256=FbzZV_QyE2lZMuqtvaLcMdJOq1co7zgb7BCNZno7vNc,5272
210
+ mcp_proxy_adapter/examples/full_application/test_simple_server.py,sha256=3reGMunQLHIIkgbRwFffU3IH_b4yu96JpZORCrmc_Wk,1798
211
+ mcp_proxy_adapter/examples/full_application/commands/__init__.py,sha256=GBGfvfY8Iu3uGjEpnBiIPtt_qqBLT8Ui3jRBCUt8t5k,225
212
+ mcp_proxy_adapter/examples/full_application/commands/custom_echo_command.py,sha256=if9NwXICFGpXeWUllJt6QWwzgrbDOv28YS6ieX21RDI,1295
213
+ mcp_proxy_adapter/examples/full_application/commands/dynamic_calculator_command.py,sha256=StrXJCyy6pKGATFVbHYdLTAAeseWTNYYkORLWf21g-I,1580
214
+ mcp_proxy_adapter/examples/full_application/commands/echo_command.py,sha256=xFXe60uviqGMKiC4CQBF1h4RB8KII6Yhb1tW0v2yoaQ,926
215
+ mcp_proxy_adapter/examples/full_application/commands/help_command.py,sha256=vsyKrnGRxuCA1xcG90YZmqgMf8V8FNbqWDV6VbyzEmQ,2021
216
+ mcp_proxy_adapter/examples/full_application/commands/list_command.py,sha256=QegtByNI-dvsi2Ax11is14uhFZH15i52QoAzI4AFNDI,1779
217
+ mcp_proxy_adapter/examples/full_application/hooks/__init__.py,sha256=16njlvy8T9cR6dttEVr_ljquq_XmkfPGhU9Qmf3nkQs,97
218
+ mcp_proxy_adapter/examples/full_application/hooks/application_hooks.py,sha256=T3_iOA-j0x0buFm1BP0PMvb-XMT6mR-xtSd7XrOAXug,439
219
+ mcp_proxy_adapter/examples/full_application/hooks/builtin_command_hooks.py,sha256=Cavu9oxEV6qDepBuEmS-KqSEmsBuWAKDwu2KjUgEhUg,436
220
+ mcp_proxy_adapter/examples/security_test/__init__.py,sha256=G8b5VNy_QrqwA2MGXc5FlkWuEJYtPPD0x7TCKEfuZDc,381
221
+ mcp_proxy_adapter/examples/security_test/auth_manager.py,sha256=gXUr8HTbXfV34Fr3zOUBdu6ylW4S5zig596QZ-Xob3g,226
222
+ mcp_proxy_adapter/examples/security_test/ssl_context_manager.py,sha256=0678mhkrEAayQWLYpp_0BEH8s2gErr5F5xyGU7m8nwU,616
223
+ mcp_proxy_adapter/examples/security_test/test_client.py,sha256=vNPoiXSZyym-tEXhLCyZdAhG-JjXU1yFLOmmJITJJMc,5922
224
+ mcp_proxy_adapter/examples/security_test/test_result.py,sha256=j2qiQPLMvBwHqDO800wtOugoAe4yduqC2pXyVVwoHvM,462
225
+ mcp_proxy_adapter/examples/setup/__init__.py,sha256=IvCG3i0Nx0akK3VCnVo0v8rNtw6btufgylKTcBnEgpk,800
226
+ mcp_proxy_adapter/examples/setup/certificate_manager.py,sha256=f6JwhAD_zdLmeDN5-yqHjTJD1EWD67zgb-ScyKUvfFc,7228
227
+ mcp_proxy_adapter/examples/setup/config_generator.py,sha256=AZoObnCB_VfQSszvKgrl5qXM7pIIPiBVijQlXumBN2k,162
228
+ mcp_proxy_adapter/examples/setup/config_validator.py,sha256=0-IXbn5dVc3B6UKKWG2IVchdwK-Wo265D8lED9EPIJM,4378
229
+ mcp_proxy_adapter/examples/setup/environment_setup.py,sha256=YY56_tnZvjyKsI2Pzad_8_2Z1K2DwJJorlaH2rM_ilg,1959
230
+ mcp_proxy_adapter/examples/setup/test_files_generator.py,sha256=jLNJgwqCWpUqgcD7O-VKvdATeVungvZBHX1ZUu66i5k,157
231
+ mcp_proxy_adapter/examples/setup/test_runner.py,sha256=878PnAR1Sv_DjInaYtpzG0jMaDE1F5po-S8qcI7JHWI,2502
232
+ mcp_proxy_adapter/integrations/__init__.py,sha256=3ryiZpAMJUkwdwm-N5PT6lmEfb8e_2cHbxuIk1lIfVw,518
233
+ mcp_proxy_adapter/integrations/queuemgr_integration.py,sha256=i_sepXi0ekhGssxEsg-HaWgvBH-whJfZty4Rwm56cDo,14848
234
+ mcp_proxy_adapter/schemas/base_schema.json,sha256=v9G9cGMd4dRhCZsOQ_FMqOi5VFyVbI6Cf3fyIvOT9dc,2881
235
+ mcp_proxy_adapter/schemas/openapi_schema.json,sha256=C3yLkwmDsvnLW9B5gnKKdBGl4zxkeU-rEmjTrNVsQU0,8405
236
+ mcp_proxy_adapter/schemas/roles.json,sha256=pgf_ZyqKyXbfGUxvobpiLiSJz9zzxrMuoVWEkEpz3N8,764
237
+ mcp_proxy_adapter/schemas/roles_schema.json,sha256=deHgI7L6GwfBXacOlNtDgDJelDThppClC3Ti4Eh8rJY,5659
238
+ mcp_proxy_adapter-6.9.50.dist-info/METADATA,sha256=fevuLPlliLDLvl6iGntbqdwkyELBRPGm25Y04TQoJN4,37698
239
+ mcp_proxy_adapter-6.9.50.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
240
+ mcp_proxy_adapter-6.9.50.dist-info/entry_points.txt,sha256=fPnWH6Fjv4hALgpVCmTqbBemFCoSHrsy7xqUw21DU6g,703
241
+ mcp_proxy_adapter-6.9.50.dist-info/top_level.txt,sha256=JZT7vPLBYrtroX-ij68JBhJYbjDdghcV-DFySRy-Nnw,18
242
+ mcp_proxy_adapter-6.9.50.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (80.0.1)
2
+ Generator: setuptools (80.9.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -0,0 +1,14 @@
1
+ [console_scripts]
2
+ adapter-cfg-gen = mcp_proxy_adapter.cli.commands.config_generate:main
3
+ adapter-cfg-val = mcp_proxy_adapter.cli.commands.config_validate:main
4
+ mcp-proxy-adapter = mcp_proxy_adapter.cli.main:main
5
+
6
+ [gui_scripts]
7
+ mcp-proxy-adapter-gui = mcp_proxy_adapter.examples.gui:main
8
+
9
+ [mcp_proxy_adapter.examples]
10
+ create_test_configs = mcp_proxy_adapter.examples.create_test_configs:main
11
+ generate_certificates = mcp_proxy_adapter.examples.generate_all_certificates:main
12
+ run_full_test_suite = mcp_proxy_adapter.examples.run_full_test_suite:main
13
+ run_security_tests = mcp_proxy_adapter.examples.run_security_tests_fixed:main
14
+ setup_test_environment = mcp_proxy_adapter.examples.setup_test_environment:main
@@ -0,0 +1 @@
1
+ mcp_proxy_adapter
adapters/__init__.py DELETED
@@ -1,16 +0,0 @@
1
- """
2
- Адаптеры Command Registry
3
- ========================
4
-
5
- Адаптеры обеспечивают интеграцию Command Registry с различными протоколами и системами.
6
- Они преобразуют команды из реестра в формат, понятный другим системам.
7
-
8
- Доступные адаптеры:
9
- - RESTAdapter: Создает REST API эндпоинты
10
- - MCPProxyAdapter: Интегрирует с MCPProxy для работы с инструментами моделей ИИ
11
- """
12
-
13
- from command_registry.adapters.rest_adapter import RESTAdapter
14
- from ..adapter import MCPProxyAdapter # Импортируем из основного модуля adapter.py
15
-
16
- __all__ = ['RESTAdapter', 'MCPProxyAdapter']
analyzers/__init__.py DELETED
@@ -1,14 +0,0 @@
1
- """
2
- Analyzers for extracting metadata from functions and docstrings.
3
-
4
- This module contains classes for analyzing type annotations and docstrings
5
- of Python functions to automatically extract metadata for commands.
6
- """
7
-
8
- from .type_analyzer import TypeAnalyzer
9
- from .docstring_analyzer import DocstringAnalyzer
10
-
11
- __all__ = [
12
- 'TypeAnalyzer',
13
- 'DocstringAnalyzer',
14
- ]
@@ -1,199 +0,0 @@
1
- """
2
- Docstring analyzer for extracting information from function documentation.
3
- """
4
- import inspect
5
- from typing import Dict, Any, Optional, Callable, List, Tuple
6
- import docstring_parser
7
-
8
- class DocstringAnalyzer:
9
- """
10
- Docstring analyzer for extracting metadata from function documentation.
11
-
12
- This class is responsible for analyzing command handler function docstrings
13
- and extracting function descriptions, parameters, and return values.
14
- """
15
-
16
- def analyze(self, handler: Callable) -> Dict[str, Any]:
17
- """
18
- Analyzes function docstring and returns metadata.
19
-
20
- Args:
21
- handler: Handler function to analyze
22
-
23
- Returns:
24
- Dict[str, Any]: Metadata extracted from docstring
25
- """
26
- result = {
27
- "description": "",
28
- "summary": "",
29
- "parameters": {},
30
- "returns": {
31
- "description": ""
32
- }
33
- }
34
-
35
- # Get function signature
36
- sig = inspect.signature(handler)
37
-
38
- # Get docstring
39
- docstring = handler.__doc__ or ""
40
-
41
- # Parse docstring
42
- try:
43
- parsed_doc = docstring_parser.parse(docstring)
44
-
45
- # Extract general function description
46
- if parsed_doc.short_description:
47
- result["summary"] = parsed_doc.short_description
48
- result["description"] = parsed_doc.short_description
49
-
50
- if parsed_doc.long_description:
51
- # If both short and long descriptions exist, combine them
52
- if result["description"]:
53
- result["description"] = f"{result['description']}\n\n{parsed_doc.long_description}"
54
- else:
55
- result["description"] = parsed_doc.long_description
56
-
57
- # Extract parameter information
58
- for param in parsed_doc.params:
59
- param_name = param.arg_name
60
- param_desc = param.description or f"Parameter {param_name}"
61
- param_type = None
62
-
63
- # If parameter type is specified in docstring, use it
64
- if param.type_name:
65
- param_type = self._parse_type_from_docstring(param.type_name)
66
-
67
- # Add parameter to metadata
68
- if param_name not in result["parameters"]:
69
- result["parameters"][param_name] = {}
70
-
71
- result["parameters"][param_name]["description"] = param_desc
72
-
73
- if param_type:
74
- result["parameters"][param_name]["type"] = param_type
75
-
76
- # Extract return value information
77
- if parsed_doc.returns:
78
- result["returns"]["description"] = parsed_doc.returns.description or "Return value"
79
-
80
- if parsed_doc.returns.type_name:
81
- result["returns"]["type"] = self._parse_type_from_docstring(parsed_doc.returns.type_name)
82
-
83
- except Exception as e:
84
- # In case of parsing error, use docstring as is
85
- if docstring:
86
- result["description"] = docstring.strip()
87
-
88
- # Fill parameter information from signature if not found in docstring
89
- for param_name, param in sig.parameters.items():
90
- # Skip self for methods
91
- if param_name == 'self':
92
- continue
93
-
94
- # If parameter not yet added to metadata, add it
95
- if param_name not in result["parameters"]:
96
- result["parameters"][param_name] = {
97
- "description": f"Parameter {param_name}"
98
- }
99
-
100
- # Determine if parameter is required
101
- required = param.default == inspect.Parameter.empty
102
- result["parameters"][param_name]["required"] = required
103
-
104
- # Add default value if exists
105
- if param.default != inspect.Parameter.empty:
106
- # Some default values cannot be serialized to JSON
107
- # So we check if the value can be serialized
108
- if param.default is None or isinstance(param.default, (str, int, float, bool, list, dict)):
109
- result["parameters"][param_name]["default"] = param.default
110
-
111
- return result
112
-
113
- def validate(self, handler: Callable) -> Tuple[bool, List[str]]:
114
- """
115
- Validates that function docstring matches its formal parameters.
116
-
117
- Args:
118
- handler: Command handler function
119
-
120
- Returns:
121
- Tuple[bool, List[str]]: Validity flag and list of errors
122
- """
123
- errors = []
124
-
125
- # Get function formal parameters
126
- sig = inspect.signature(handler)
127
- formal_params = list(sig.parameters.keys())
128
-
129
- # Skip self parameter for methods
130
- if formal_params and formal_params[0] == 'self':
131
- formal_params = formal_params[1:]
132
-
133
- # Parse docstring
134
- docstring = handler.__doc__ or ""
135
- parsed_doc = docstring_parser.parse(docstring)
136
-
137
- # Check for function description
138
- if not parsed_doc.short_description and not parsed_doc.long_description:
139
- errors.append(f"Missing function description")
140
-
141
- # Get parameters from docstring
142
- doc_params = {param.arg_name: param for param in parsed_doc.params}
143
-
144
- # Check that all formal parameters are described in docstring
145
- for param in formal_params:
146
- if param not in doc_params and param != 'params': # 'params' is special case, can be dictionary of all parameters
147
- errors.append(f"Parameter '{param}' not described in function docstring")
148
-
149
- # Check for returns in docstring
150
- if not parsed_doc.returns and not any(t.type_name == 'Returns' for t in parsed_doc.meta):
151
- errors.append(f"Missing return value description in function docstring")
152
-
153
- return len(errors) == 0, errors
154
-
155
- def _parse_type_from_docstring(self, type_str: str) -> str:
156
- """
157
- Parses type from string representation in docstring.
158
-
159
- Args:
160
- type_str: String representation of type
161
-
162
- Returns:
163
- str: Type in OpenAPI format
164
- """
165
- # Simple mapping of string types to OpenAPI types
166
- type_map = {
167
- "str": "string",
168
- "string": "string",
169
- "int": "integer",
170
- "integer": "integer",
171
- "float": "number",
172
- "number": "number",
173
- "bool": "boolean",
174
- "boolean": "boolean",
175
- "list": "array",
176
- "array": "array",
177
- "dict": "object",
178
- "object": "object",
179
- "none": "null",
180
- "null": "null",
181
- }
182
-
183
- # Convert to lowercase and remove spaces
184
- cleaned_type = type_str.lower().strip()
185
-
186
- # Check for simple types
187
- if cleaned_type in type_map:
188
- return type_map[cleaned_type]
189
-
190
- # Check for List[X]
191
- if cleaned_type.startswith("list[") or cleaned_type.startswith("array["):
192
- return "array"
193
-
194
- # Check for Dict[X, Y]
195
- if cleaned_type.startswith("dict[") or cleaned_type.startswith("object["):
196
- return "object"
197
-
198
- # Default to object
199
- return "object"