ha-mcp-dev 9.0.0.dev3147__tar.gz → 9.0.0.dev3156__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 (807) hide show
  1. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/PKG-INFO +1 -1
  2. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/pyproject.toml +1 -1
  3. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/pyproject.toml.orig +1 -1
  4. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/MANIFEST.sha256 +53 -44
  5. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/REQUIRES.txt +2 -2
  6. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/VENDORED +1 -1
  7. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/__init__.py +1 -1
  8. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/apps/file_upload.py +26 -10
  9. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/cli/cli.py +10 -7
  10. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/cli/client.py +14 -5
  11. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/cli/discovery.py +8 -1
  12. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/client/auth/client_credentials.py +45 -17
  13. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/client/auth/oauth.py +12 -1
  14. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/client/caching.py +8 -4
  15. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/client/client.py +20 -9
  16. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/client/mixins/__init__.py +2 -0
  17. ha_mcp_dev-9.0.0.dev3156/src/ha_mcp/_vendor/fastmcp/client/mixins/skills.py +214 -0
  18. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/client/oauth_callback.py +3 -1
  19. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/client/transports/stdio.py +9 -0
  20. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/contrib/bulk_tool_caller/bulk_tool_caller.py +12 -2
  21. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/contrib/component_manager/component_manager.py +6 -1
  22. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/resources/base.py +23 -7
  23. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/resources/template.py +13 -4
  24. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/resources/types.py +26 -12
  25. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/server/auth/auth.py +32 -6
  26. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/server/auth/cimd.py +21 -2
  27. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/jwt.py +2 -2
  28. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/server/context.py +70 -38
  29. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/server/extensions.py +4 -0
  30. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/server/middleware/authorization.py +6 -10
  31. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/server/middleware/caching.py +8 -0
  32. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/server/middleware/middleware.py +10 -0
  33. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/server/middleware/rate_limiting.py +3 -3
  34. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/server/mixins/extensions.py +6 -0
  35. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/server/mixins/mcp_operations.py +8 -0
  36. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/server/providers/skills/_common.py +21 -0
  37. ha_mcp_dev-9.0.0.dev3156/src/ha_mcp/_vendor/fastmcp/server/providers/skills/directory_provider.py +454 -0
  38. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/server/providers/skills/skill_provider.py +55 -48
  39. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/server/server.py +81 -31
  40. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/server/transforms/search/regex.py +23 -3
  41. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/server/transforms/visibility.py +41 -9
  42. ha_mcp_dev-9.0.0.dev3156/src/ha_mcp/_vendor/fastmcp/skills/__init__.py +31 -0
  43. ha_mcp_dev-9.0.0.dev3156/src/ha_mcp/_vendor/fastmcp/skills/_constants.py +3 -0
  44. ha_mcp_dev-9.0.0.dev3156/src/ha_mcp/_vendor/fastmcp/skills/_resources.py +44 -0
  45. ha_mcp_dev-9.0.0.dev3156/src/ha_mcp/_vendor/fastmcp/skills/_snapshot.py +133 -0
  46. ha_mcp_dev-9.0.0.dev3156/src/ha_mcp/_vendor/fastmcp/skills/_source.py +35 -0
  47. ha_mcp_dev-9.0.0.dev3156/src/ha_mcp/_vendor/fastmcp/skills/client.py +11 -0
  48. ha_mcp_dev-9.0.0.dev3156/src/ha_mcp/_vendor/fastmcp/skills/extension.py +156 -0
  49. ha_mcp_dev-9.0.0.dev3156/src/ha_mcp/_vendor/fastmcp/skills/models.py +223 -0
  50. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/tools/base.py +13 -1
  51. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/tools/tool_transform.py +1 -0
  52. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/utilities/cli.py +7 -1
  53. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/utilities/inspect.py +8 -8
  54. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/utilities/json_schema_type.py +16 -1
  55. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/utilities/openapi/json_schema_converter.py +11 -3
  56. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/utilities/types.py +12 -7
  57. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/utilities/version_check.py +1 -1
  58. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/requirements.txt +1 -1
  59. ha_mcp_dev-9.0.0.dev3147/src/ha_mcp/_vendor/fastmcp/server/providers/skills/directory_provider.py +0 -169
  60. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/LICENSE +0 -0
  61. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/README.md +0 -0
  62. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/__init__.py +0 -0
  63. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/__main__.py +0 -0
  64. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_pypi_marker +0 -0
  65. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_rich_compat.py +0 -0
  66. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/__init__.py +0 -0
  67. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/LICENSE +0 -0
  68. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/_compat.py +0 -0
  69. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/_install_hints.py +0 -0
  70. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/_warnings.py +0 -0
  71. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/apps/__init__.py +0 -0
  72. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/apps/app.py +0 -0
  73. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/apps/approval.py +0 -0
  74. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/apps/choice.py +0 -0
  75. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/apps/config.py +0 -0
  76. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/apps/form.py +0 -0
  77. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/apps/generative.py +0 -0
  78. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/cli/__init__.py +0 -0
  79. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/cli/__main__.py +0 -0
  80. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/cli/apps_dev.py +0 -0
  81. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/cli/apps_dev_security.py +0 -0
  82. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/cli/auth.py +0 -0
  83. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/cli/cimd.py +0 -0
  84. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/cli/deploy/__init__.py +0 -0
  85. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/cli/deploy/authentication.py +0 -0
  86. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/cli/deploy/command.py +0 -0
  87. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/cli/deploy/configuration.py +0 -0
  88. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/cli/deploy/credentials.py +0 -0
  89. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/cli/deploy/horizon_client.py +0 -0
  90. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/cli/deploy/output.py +0 -0
  91. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/cli/deploy/state.py +0 -0
  92. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/cli/generate.py +0 -0
  93. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/cli/install/__init__.py +0 -0
  94. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/cli/install/claude_code.py +0 -0
  95. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/cli/install/claude_desktop.py +0 -0
  96. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/cli/install/cursor.py +0 -0
  97. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/cli/install/gemini_cli.py +0 -0
  98. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/cli/install/goose.py +0 -0
  99. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/cli/install/mcp_json.py +0 -0
  100. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/cli/install/shared.py +0 -0
  101. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/cli/install/stdio.py +0 -0
  102. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/cli/run.py +0 -0
  103. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/client/__init__.py +0 -0
  104. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/client/_sdk_context_shim.py +0 -0
  105. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/client/auth/__init__.py +0 -0
  106. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/client/auth/bearer.py +0 -0
  107. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/client/dependencies.py +0 -0
  108. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/client/elicitation.py +0 -0
  109. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/client/extension_hooks.py +0 -0
  110. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/client/group.py +0 -0
  111. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/client/logging.py +0 -0
  112. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/client/messages.py +0 -0
  113. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/client/mixins/prompts.py +0 -0
  114. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/client/mixins/resources.py +0 -0
  115. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/client/mixins/tools.py +0 -0
  116. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/client/progress.py +0 -0
  117. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/client/roots.py +0 -0
  118. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/client/sampling/__init__.py +0 -0
  119. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/client/sampling/handlers/__init__.py +0 -0
  120. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/client/sampling/handlers/anthropic.py +0 -0
  121. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/client/sampling/handlers/google_genai.py +0 -0
  122. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/client/sampling/handlers/openai.py +0 -0
  123. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/client/telemetry.py +0 -0
  124. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/client/transports/__init__.py +0 -0
  125. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/client/transports/base.py +0 -0
  126. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/client/transports/config.py +0 -0
  127. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/client/transports/http.py +0 -0
  128. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/client/transports/inference.py +0 -0
  129. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/client/transports/memory.py +0 -0
  130. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/client/transports/sse.py +0 -0
  131. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/contrib/README.md +0 -0
  132. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/contrib/bulk_tool_caller/README.md +0 -0
  133. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/contrib/bulk_tool_caller/__init__.py +0 -0
  134. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/contrib/bulk_tool_caller/example.py +0 -0
  135. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/contrib/component_manager/README.md +0 -0
  136. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/contrib/component_manager/__init__.py +0 -0
  137. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/contrib/component_manager/example.py +0 -0
  138. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/contrib/mcp_mixin/README.md +0 -0
  139. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/contrib/mcp_mixin/__init__.py +0 -0
  140. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/contrib/mcp_mixin/example.py +0 -0
  141. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/contrib/mcp_mixin/mcp_mixin.py +0 -0
  142. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/decorators.py +0 -0
  143. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/dependencies.py +0 -0
  144. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/exceptions.py +0 -0
  145. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/experimental/__init__.py +0 -0
  146. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/experimental/transforms/__init__.py +0 -0
  147. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/experimental/transforms/code_mode.py +0 -0
  148. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/experimental/transforms/jev_search.py +0 -0
  149. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/mcp_config.py +0 -0
  150. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/prompts/__init__.py +0 -0
  151. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/prompts/base.py +0 -0
  152. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/prompts/function_prompt.py +0 -0
  153. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/py.typed +0 -0
  154. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/resources/__init__.py +0 -0
  155. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/resources/function_resource.py +0 -0
  156. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/resources/security.py +0 -0
  157. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/server/__init__.py +0 -0
  158. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/server/auth/__init__.py +0 -0
  159. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/server/auth/handlers/__init__.py +0 -0
  160. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/server/auth/handlers/authorize.py +0 -0
  161. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/server/auth/identity_assertion.py +0 -0
  162. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/server/auth/jwt_issuer.py +0 -0
  163. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/server/auth/middleware.py +0 -0
  164. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/server/auth/oauth_proxy/__init__.py +0 -0
  165. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/server/auth/oauth_proxy/consent.py +0 -0
  166. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/server/auth/oauth_proxy/models.py +0 -0
  167. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/server/auth/oauth_proxy/proxy.py +0 -0
  168. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/server/auth/oauth_proxy/ui.py +0 -0
  169. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/server/auth/oauth_proxy/upstream.py +0 -0
  170. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/server/auth/oidc_proxy.py +0 -0
  171. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/__init__.py +0 -0
  172. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/auth0.py +0 -0
  173. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/aws.py +0 -0
  174. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/azure.py +0 -0
  175. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/clerk.py +0 -0
  176. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/debug.py +0 -0
  177. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/descope.py +0 -0
  178. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/discord.py +0 -0
  179. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/github.py +0 -0
  180. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/google.py +0 -0
  181. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/huggingface.py +0 -0
  182. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/in_memory.py +0 -0
  183. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/introspection.py +0 -0
  184. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/keycloak.py +0 -0
  185. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/oci.py +0 -0
  186. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/propelauth.py +0 -0
  187. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/scalekit.py +0 -0
  188. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/supabase.py +0 -0
  189. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/workos.py +0 -0
  190. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/server/auth/redirect_validation.py +0 -0
  191. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/server/auth/ssrf.py +0 -0
  192. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/server/caching.py +0 -0
  193. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/server/completions.py +0 -0
  194. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/server/dependencies.py +0 -0
  195. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/server/elicitation.py +0 -0
  196. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/server/event_store.py +0 -0
  197. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/server/http.py +0 -0
  198. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/server/lifespan.py +0 -0
  199. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/server/low_level.py +0 -0
  200. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/server/middleware/__init__.py +0 -0
  201. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/server/middleware/dereference.py +0 -0
  202. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/server/middleware/error_handling.py +0 -0
  203. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/server/middleware/logging.py +0 -0
  204. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/server/middleware/ping.py +0 -0
  205. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/server/middleware/response_limiting.py +0 -0
  206. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/server/middleware/timing.py +0 -0
  207. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/server/middleware/tool_injection.py +0 -0
  208. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/server/mixins/__init__.py +0 -0
  209. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/server/mixins/lifespan.py +0 -0
  210. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/server/mixins/transport.py +0 -0
  211. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/server/providers/__init__.py +0 -0
  212. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/server/providers/addressing.py +0 -0
  213. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/server/providers/aggregate.py +0 -0
  214. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/server/providers/base.py +0 -0
  215. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/server/providers/fastmcp_provider.py +0 -0
  216. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/server/providers/filesystem.py +0 -0
  217. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/server/providers/filesystem_discovery.py +0 -0
  218. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/server/providers/local_provider/__init__.py +0 -0
  219. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/server/providers/local_provider/decorators/__init__.py +0 -0
  220. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/server/providers/local_provider/decorators/prompts.py +0 -0
  221. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/server/providers/local_provider/decorators/resources.py +0 -0
  222. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/server/providers/local_provider/decorators/tools.py +0 -0
  223. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/server/providers/local_provider/local_provider.py +0 -0
  224. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/server/providers/openapi/README.md +0 -0
  225. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/server/providers/openapi/__init__.py +0 -0
  226. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/server/providers/openapi/components.py +0 -0
  227. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/server/providers/openapi/provider.py +0 -0
  228. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/server/providers/openapi/routing.py +0 -0
  229. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/server/providers/prefab_payload.py +0 -0
  230. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/server/providers/prefab_synthesis.py +0 -0
  231. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/server/providers/proxy.py +0 -0
  232. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/server/providers/skills/__init__.py +0 -0
  233. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/server/providers/skills/claude_provider.py +0 -0
  234. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/server/providers/skills/vendor_providers.py +0 -0
  235. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/server/providers/wrapped_provider.py +0 -0
  236. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/server/session_scoped_event_store.py +0 -0
  237. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/server/sessions.py +0 -0
  238. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/server/telemetry.py +0 -0
  239. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/server/transforms/__init__.py +0 -0
  240. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/server/transforms/catalog.py +0 -0
  241. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/server/transforms/namespace.py +0 -0
  242. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/server/transforms/prompts_as_tools.py +0 -0
  243. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/server/transforms/resources_as_tools.py +0 -0
  244. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/server/transforms/search/__init__.py +0 -0
  245. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/server/transforms/search/base.py +0 -0
  246. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/server/transforms/search/bm25.py +0 -0
  247. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/server/transforms/tool_transform.py +0 -0
  248. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/server/transforms/version_filter.py +0 -0
  249. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/settings.py +0 -0
  250. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/telemetry.py +0 -0
  251. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/tools/__init__.py +0 -0
  252. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/tools/function_parsing.py +0 -0
  253. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/tools/function_tool.py +0 -0
  254. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/types.py +0 -0
  255. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/utilities/__init__.py +0 -0
  256. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/utilities/asgi_transport.py +0 -0
  257. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/utilities/async_utils.py +0 -0
  258. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/utilities/auth.py +0 -0
  259. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/utilities/authorization.py +0 -0
  260. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/utilities/components.py +0 -0
  261. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/utilities/docstring_parsing.py +0 -0
  262. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/utilities/exceptions.py +0 -0
  263. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/utilities/http.py +0 -0
  264. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/utilities/json_schema.py +0 -0
  265. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/utilities/lifespan.py +0 -0
  266. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/utilities/logging.py +0 -0
  267. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/utilities/mcp_server_config/__init__.py +0 -0
  268. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/utilities/mcp_server_config/v1/__init__.py +0 -0
  269. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/utilities/mcp_server_config/v1/environments/__init__.py +0 -0
  270. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/utilities/mcp_server_config/v1/environments/base.py +0 -0
  271. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/utilities/mcp_server_config/v1/environments/uv.py +0 -0
  272. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/utilities/mcp_server_config/v1/mcp_server_config.py +0 -0
  273. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/utilities/mcp_server_config/v1/schema.json +0 -0
  274. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/utilities/mcp_server_config/v1/sources/__init__.py +0 -0
  275. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/utilities/mcp_server_config/v1/sources/base.py +0 -0
  276. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/utilities/mcp_server_config/v1/sources/filesystem.py +0 -0
  277. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/utilities/mime.py +0 -0
  278. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/utilities/openapi/README.md +0 -0
  279. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/utilities/openapi/__init__.py +0 -0
  280. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/utilities/openapi/director.py +0 -0
  281. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/utilities/openapi/formatters.py +0 -0
  282. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/utilities/openapi/models.py +0 -0
  283. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/utilities/openapi/parser.py +0 -0
  284. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/utilities/openapi/schemas.py +0 -0
  285. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/utilities/pagination.py +0 -0
  286. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/utilities/prefab.py +0 -0
  287. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/utilities/skills.py +0 -0
  288. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/utilities/tasks.py +0 -0
  289. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/utilities/tests.py +0 -0
  290. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/utilities/timeout.py +0 -0
  291. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/utilities/token_cache.py +0 -0
  292. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/utilities/ui.py +0 -0
  293. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/fastmcp/utilities/versions.py +0 -0
  294. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/LICENSE +0 -0
  295. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/MANIFEST.sha256 +0 -0
  296. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/REQUIRES.txt +0 -0
  297. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/VENDORED +0 -0
  298. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/__init__.py +0 -0
  299. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/cli/__init__.py +0 -0
  300. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/cli/claude.py +0 -0
  301. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/cli/cli.py +0 -0
  302. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/client/__init__.py +0 -0
  303. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/client/__main__.py +0 -0
  304. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/client/_input_required.py +0 -0
  305. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/client/_memory.py +0 -0
  306. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/client/_probe.py +0 -0
  307. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/client/_transport.py +0 -0
  308. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/client/auth/__init__.py +0 -0
  309. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/client/auth/exceptions.py +0 -0
  310. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/client/auth/extensions/__init__.py +0 -0
  311. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/client/auth/extensions/client_credentials.py +0 -0
  312. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/client/auth/extensions/identity_assertion.py +0 -0
  313. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/client/auth/oauth2.py +0 -0
  314. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/client/auth/utils.py +0 -0
  315. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/client/caching.py +0 -0
  316. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/client/client.py +0 -0
  317. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/client/context.py +0 -0
  318. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/client/extension.py +0 -0
  319. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/client/session.py +0 -0
  320. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/client/session_group.py +0 -0
  321. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/client/sse.py +0 -0
  322. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/client/stdio.py +0 -0
  323. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/client/streamable_http.py +0 -0
  324. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/client/subscriptions.py +0 -0
  325. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/os/__init__.py +0 -0
  326. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/os/posix/__init__.py +0 -0
  327. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/os/posix/utilities.py +0 -0
  328. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/os/win32/__init__.py +0 -0
  329. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/os/win32/utilities.py +0 -0
  330. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/py.typed +0 -0
  331. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/server/__init__.py +0 -0
  332. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/server/__main__.py +0 -0
  333. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/server/_otel.py +0 -0
  334. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/server/_streamable_http_modern.py +0 -0
  335. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/server/apps.py +0 -0
  336. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/server/auth/__init__.py +0 -0
  337. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/server/auth/errors.py +0 -0
  338. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/server/auth/handlers/__init__.py +0 -0
  339. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/server/auth/handlers/authorize.py +0 -0
  340. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/server/auth/handlers/metadata.py +0 -0
  341. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/server/auth/handlers/register.py +0 -0
  342. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/server/auth/handlers/revoke.py +0 -0
  343. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/server/auth/handlers/token.py +0 -0
  344. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/server/auth/json_response.py +0 -0
  345. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/server/auth/middleware/__init__.py +0 -0
  346. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/server/auth/middleware/auth_context.py +0 -0
  347. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/server/auth/middleware/bearer_auth.py +0 -0
  348. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/server/auth/middleware/client_auth.py +0 -0
  349. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/server/auth/provider.py +0 -0
  350. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/server/auth/routes.py +0 -0
  351. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/server/auth/settings.py +0 -0
  352. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/server/caching.py +0 -0
  353. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/server/connection.py +0 -0
  354. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/server/context.py +0 -0
  355. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/server/elicitation.py +0 -0
  356. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/server/extension.py +0 -0
  357. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/server/fastmcp.py +0 -0
  358. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/server/lowlevel/__init__.py +0 -0
  359. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/server/lowlevel/helper_types.py +0 -0
  360. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/server/lowlevel/server.py +0 -0
  361. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/server/mcpserver/__init__.py +0 -0
  362. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/server/mcpserver/context.py +0 -0
  363. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/server/mcpserver/exceptions.py +0 -0
  364. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/server/mcpserver/prompts/__init__.py +0 -0
  365. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/server/mcpserver/prompts/base.py +0 -0
  366. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/server/mcpserver/prompts/manager.py +0 -0
  367. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/server/mcpserver/resolve.py +0 -0
  368. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/server/mcpserver/resources/__init__.py +0 -0
  369. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/server/mcpserver/resources/base.py +0 -0
  370. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/server/mcpserver/resources/resource_manager.py +0 -0
  371. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/server/mcpserver/resources/templates.py +0 -0
  372. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/server/mcpserver/resources/types.py +0 -0
  373. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/server/mcpserver/server.py +0 -0
  374. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/server/mcpserver/tools/__init__.py +0 -0
  375. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/server/mcpserver/tools/base.py +0 -0
  376. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/server/mcpserver/tools/tool_manager.py +0 -0
  377. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/server/mcpserver/utilities/__init__.py +0 -0
  378. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/server/mcpserver/utilities/context_injection.py +0 -0
  379. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/server/mcpserver/utilities/func_metadata.py +0 -0
  380. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/server/mcpserver/utilities/logging.py +0 -0
  381. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/server/mcpserver/utilities/types.py +0 -0
  382. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/server/models.py +0 -0
  383. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/server/request_state.py +0 -0
  384. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/server/runner.py +0 -0
  385. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/server/session.py +0 -0
  386. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/server/sse.py +0 -0
  387. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/server/stdio.py +0 -0
  388. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/server/streamable_http.py +0 -0
  389. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/server/streamable_http_manager.py +0 -0
  390. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/server/subscriptions.py +0 -0
  391. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/server/transport_security.py +0 -0
  392. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/server/validation.py +0 -0
  393. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/shared/__init__.py +0 -0
  394. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/shared/_callable_inspection.py +0 -0
  395. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/shared/_compat.py +0 -0
  396. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/shared/_context_streams.py +0 -0
  397. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/shared/_httpx_utils.py +0 -0
  398. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/shared/_otel.py +0 -0
  399. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/shared/_request_clock.py +0 -0
  400. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/shared/_stream_protocols.py +0 -0
  401. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/shared/auth.py +0 -0
  402. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/shared/auth_utils.py +0 -0
  403. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/shared/context.py +0 -0
  404. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/shared/direct_dispatcher.py +0 -0
  405. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/shared/dispatcher.py +0 -0
  406. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/shared/exceptions.py +0 -0
  407. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/shared/extension.py +0 -0
  408. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/shared/inbound.py +0 -0
  409. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/shared/jsonrpc_dispatcher.py +0 -0
  410. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/shared/memory.py +0 -0
  411. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/shared/message.py +0 -0
  412. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/shared/metadata_utils.py +0 -0
  413. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/shared/path_security.py +0 -0
  414. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/shared/peer.py +0 -0
  415. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/shared/subscriptions.py +0 -0
  416. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/shared/tool_name_validation.py +0 -0
  417. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/shared/transport_context.py +0 -0
  418. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/shared/uri_template.py +0 -0
  419. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/types/__init__.py +0 -0
  420. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/types/jsonrpc.py +0 -0
  421. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/types/methods.py +0 -0
  422. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp/types/version.py +0 -0
  423. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp_types/LICENSE +0 -0
  424. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp_types/MANIFEST.sha256 +0 -0
  425. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp_types/REQUIRES.txt +0 -0
  426. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp_types/VENDORED +0 -0
  427. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp_types/__init__.py +0 -0
  428. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp_types/_types.py +0 -0
  429. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp_types/_v2025_11_25/__init__.py +0 -0
  430. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp_types/_v2026_07_28/__init__.py +0 -0
  431. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp_types/_wire_base.py +0 -0
  432. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp_types/jsonrpc.py +0 -0
  433. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp_types/methods.py +0 -0
  434. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp_types/py.typed +0 -0
  435. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/mcp_types/version.py +0 -0
  436. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/websockets/LICENSE +0 -0
  437. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/websockets/MANIFEST.sha256 +0 -0
  438. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/websockets/VENDORED +0 -0
  439. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/websockets/__init__.py +0 -0
  440. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/websockets/__main__.py +0 -0
  441. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/websockets/asyncio/__init__.py +0 -0
  442. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/websockets/asyncio/client.py +0 -0
  443. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/websockets/asyncio/connection.py +0 -0
  444. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/websockets/asyncio/messages.py +0 -0
  445. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/websockets/asyncio/router.py +0 -0
  446. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/websockets/asyncio/server.py +0 -0
  447. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/websockets/auth.py +0 -0
  448. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/websockets/cli.py +0 -0
  449. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/websockets/client.py +0 -0
  450. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/websockets/connection.py +0 -0
  451. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/websockets/datastructures.py +0 -0
  452. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/websockets/exceptions.py +0 -0
  453. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/websockets/extensions/__init__.py +0 -0
  454. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/websockets/extensions/base.py +0 -0
  455. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/websockets/extensions/permessage_deflate.py +0 -0
  456. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/websockets/frames.py +0 -0
  457. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/websockets/headers.py +0 -0
  458. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/websockets/http11.py +0 -0
  459. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/websockets/imports.py +0 -0
  460. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/websockets/legacy/__init__.py +0 -0
  461. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/websockets/legacy/auth.py +0 -0
  462. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/websockets/legacy/client.py +0 -0
  463. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/websockets/legacy/exceptions.py +0 -0
  464. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/websockets/legacy/framing.py +0 -0
  465. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/websockets/legacy/handshake.py +0 -0
  466. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/websockets/legacy/http.py +0 -0
  467. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/websockets/legacy/protocol.py +0 -0
  468. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/websockets/legacy/server.py +0 -0
  469. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/websockets/protocol.py +0 -0
  470. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/websockets/proxy.py +0 -0
  471. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/websockets/py.typed +0 -0
  472. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/websockets/server.py +0 -0
  473. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/websockets/streams.py +0 -0
  474. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/websockets/sync/__init__.py +0 -0
  475. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/websockets/sync/client.py +0 -0
  476. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/websockets/sync/connection.py +0 -0
  477. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/websockets/sync/messages.py +0 -0
  478. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/websockets/sync/router.py +0 -0
  479. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/websockets/sync/server.py +0 -0
  480. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/websockets/sync/utils.py +0 -0
  481. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/websockets/trio/__init__.py +0 -0
  482. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/websockets/trio/client.py +0 -0
  483. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/websockets/trio/connection.py +0 -0
  484. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/websockets/trio/messages.py +0 -0
  485. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/websockets/trio/router.py +0 -0
  486. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/websockets/trio/server.py +0 -0
  487. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/websockets/trio/utils.py +0 -0
  488. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/websockets/typing.py +0 -0
  489. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/websockets/uri.py +0 -0
  490. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/websockets/utils.py +0 -0
  491. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_vendor/websockets/version.py +0 -0
  492. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/_version.py +0 -0
  493. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/app_discovery.py +0 -0
  494. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/auth/__init__.py +0 -0
  495. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/auth/consent_form.py +0 -0
  496. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/auth/oidc_compat.py +0 -0
  497. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/auth/provider.py +0 -0
  498. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/backup_dashboards.py +0 -0
  499. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/backup_diff.py +0 -0
  500. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/backup_entity_ids.py +0 -0
  501. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/backup_helper_target.py +0 -0
  502. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/backup_integrations.py +0 -0
  503. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/backup_manager.py +0 -0
  504. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/backup_tags.py +0 -0
  505. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/backup_zones.py +0 -0
  506. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/browser_landing.py +0 -0
  507. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/client/__init__.py +0 -0
  508. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/client/admin_routes.py +0 -0
  509. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/client/models.py +0 -0
  510. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/client/rest_client.py +0 -0
  511. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/client/supervisor_client.py +0 -0
  512. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/client/websocket_client.py +0 -0
  513. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/client/websocket_listener.py +0 -0
  514. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/config.py +0 -0
  515. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/config_backup.py +0 -0
  516. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/config_meta.py +0 -0
  517. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/config_overrides.py +0 -0
  518. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/config_registry.py +0 -0
  519. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/config_settings.py +0 -0
  520. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/dashboard_screenshot/__init__.py +0 -0
  521. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/dashboard_screenshot/capture.py +0 -0
  522. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/dashboard_screenshot/content.py +0 -0
  523. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/dashboard_screenshot/paths.py +0 -0
  524. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/dashboard_screenshot/provision.py +0 -0
  525. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/dashboard_screenshot/theme_guard.py +0 -0
  526. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/errors.py +0 -0
  527. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/ha_request_queue.py +0 -0
  528. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/hacs_auto_refresh.py +0 -0
  529. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/http_transport.py +0 -0
  530. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/image_info.py +0 -0
  531. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/llm_exposure.py +0 -0
  532. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/log_filters.py +0 -0
  533. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/policy/__init__.py +0 -0
  534. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/policy/approval_queue.py +0 -0
  535. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/policy/decision_pin.py +0 -0
  536. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/policy/decisions.py +0 -0
  537. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/policy/editing.py +0 -0
  538. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/policy/evaluator.py +0 -0
  539. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/policy/events.py +0 -0
  540. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/policy/handlers.py +0 -0
  541. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/policy/middleware.py +0 -0
  542. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/policy/model.py +0 -0
  543. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/policy/mrtr.py +0 -0
  544. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/policy/persistence.py +0 -0
  545. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/policy/server_channels.py +0 -0
  546. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/policy/value_sources.py +0 -0
  547. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/py.typed +0 -0
  548. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/read_only.py +0 -0
  549. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/redaction.py +0 -0
  550. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/renamed_tools.py +0 -0
  551. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/resources/skills-vendor/LICENSE +0 -0
  552. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/SKILL.md +0 -0
  553. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/appdaemon.md +0 -0
  554. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/automation-actions.md +0 -0
  555. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/backups.md +0 -0
  556. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/blueprint-guide.md +0 -0
  557. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/dashboard-cards.md +0 -0
  558. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/dashboard-guide.md +0 -0
  559. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/device-control.md +0 -0
  560. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/domain-docs.md +0 -0
  561. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/examples.yaml +0 -0
  562. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/helper-selection.md +0 -0
  563. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/safe-refactoring.md +0 -0
  564. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/scenes.md +0 -0
  565. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/template-guidelines.md +0 -0
  566. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/triggers-and-conditions.md +0 -0
  567. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/yaml-only-integrations.md +0 -0
  568. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/server.py +0 -0
  569. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/server_instructions.py +0 -0
  570. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/server_lifespan.py +0 -0
  571. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/server_tool_text.py +0 -0
  572. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/settings_ui/__init__.py +0 -0
  573. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/settings_ui/_handlers_advanced.py +0 -0
  574. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/settings_ui/_handlers_backups.py +0 -0
  575. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/settings_ui/_handlers_fs.py +0 -0
  576. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/settings_ui/_handlers_oauth_callbacks.py +0 -0
  577. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/settings_ui/_handlers_server.py +0 -0
  578. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/settings_ui/_handlers_theme.py +0 -0
  579. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/settings_ui/_handlers_tools.py +0 -0
  580. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/settings_ui/_i18n.py +0 -0
  581. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/settings_ui/_locale_policy.py +0 -0
  582. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/settings_ui/_persistence.py +0 -0
  583. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/settings_ui/_supervisor.py +0 -0
  584. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/settings_ui/_theme.py +0 -0
  585. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/settings_ui/_tools_meta.py +0 -0
  586. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/settings_ui/locales/README.md +0 -0
  587. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/settings_ui/locales/az.json +0 -0
  588. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/settings_ui/locales/cs.json +0 -0
  589. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/settings_ui/locales/de.json +0 -0
  590. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/settings_ui/locales/en.json +0 -0
  591. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/settings_ui/locales/eo.json +0 -0
  592. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/settings_ui/locales/es.json +0 -0
  593. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/settings_ui/locales/fr.json +0 -0
  594. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/settings_ui/locales/it.json +0 -0
  595. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/settings_ui/locales/ko.json +0 -0
  596. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/settings_ui/locales/nl.json +0 -0
  597. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/settings_ui/locales/pl.json +0 -0
  598. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/settings_ui/locales/ru.json +0 -0
  599. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/settings_ui/locales/sv.json +0 -0
  600. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/settings_ui/locales/tlh.json +0 -0
  601. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/settings_ui/locales/zh-Hans.json +0 -0
  602. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/settings_ui/locales/zh-Hant.json +0 -0
  603. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/settings_ui/settings.css +0 -0
  604. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/settings_ui/settings.html +0 -0
  605. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/settings_ui/settings_js/01_i18n_state.js +0 -0
  606. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/settings_ui/settings_js/02_tools_restart.js +0 -0
  607. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/settings_ui/settings_js/03_render_save.js +0 -0
  608. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/settings_ui/settings_js/04_backups.js +0 -0
  609. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/settings_ui/settings_js/05_feature_flags.js +0 -0
  610. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/settings_ui/settings_js/06_policy_cards.js +0 -0
  611. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/settings_ui/settings_js/07_policy_actions.js +0 -0
  612. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/settings_ui/settings_js/08_advanced.js +0 -0
  613. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/settings_ui/settings_js/09_prefs_visibility.js +0 -0
  614. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/settings_ui/settings_js/10_oauth_callbacks.js +0 -0
  615. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/smoke_test.py +0 -0
  616. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/stdio_settings_sidecar.py +0 -0
  617. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/strict_bps.py +0 -0
  618. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tool_dispatch.py +0 -0
  619. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/__init__.py +0 -0
  620. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/addon_connection_hints.py +0 -0
  621. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/area_messages.py +0 -0
  622. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/auto_backup.py +0 -0
  623. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/backup.py +0 -0
  624. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/backup_access.py +0 -0
  625. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/backup_on_demand.py +0 -0
  626. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/best_practice_checker.py +0 -0
  627. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/best_practice_result.py +0 -0
  628. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/best_practice_variables.py +0 -0
  629. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/blueprint_sources.py +0 -0
  630. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/blueprint_substitute.py +0 -0
  631. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/blueprint_write.py +0 -0
  632. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/bug_report_config.py +0 -0
  633. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/bug_report_templates.py +0 -0
  634. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/bulk_selector.py +0 -0
  635. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/coercion.py +0 -0
  636. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/component_api.py +0 -0
  637. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/component_config_entries.py +0 -0
  638. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/component_config_reads.py +0 -0
  639. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/component_dashboard_edit.py +0 -0
  640. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/component_devices.py +0 -0
  641. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/component_helper_collections.py +0 -0
  642. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/component_registries.py +0 -0
  643. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/component_registry_lookup.py +0 -0
  644. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/config_entry_backup.py +0 -0
  645. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/config_entry_flow.py +0 -0
  646. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/config_entry_flow_form.py +0 -0
  647. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/config_entry_flow_introspect.py +0 -0
  648. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/config_entry_flow_menu.py +0 -0
  649. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/config_entry_flow_walker.py +0 -0
  650. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/config_entry_identity.py +0 -0
  651. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/config_entry_reconfigure.py +0 -0
  652. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/config_entry_reload_watch.py +0 -0
  653. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/config_helpers/__init__.py +0 -0
  654. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/config_helpers/core_payload.py +0 -0
  655. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/config_helpers/create.py +0 -0
  656. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/config_helpers/describe.py +0 -0
  657. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/config_helpers/flow.py +0 -0
  658. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/config_helpers/icon_route.py +0 -0
  659. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/config_helpers/listing.py +0 -0
  660. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/config_helpers/registry.py +0 -0
  661. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/config_helpers/schemas.py +0 -0
  662. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/config_helpers/typed_config.py +0 -0
  663. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/config_helpers/update.py +0 -0
  664. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/config_helpers/validation.py +0 -0
  665. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/config_subentry_restore.py +0 -0
  666. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/config_write_errors.py +0 -0
  667. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/config_write_helpers.py +0 -0
  668. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/core_contract.py +0 -0
  669. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/dashboard_card_describe.py +0 -0
  670. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/dashboard_edit_errors.py +0 -0
  671. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/dashboard_list_checks.py +0 -0
  672. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/dev_backup.py +0 -0
  673. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/device_control.py +0 -0
  674. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/device_enrichment.py +0 -0
  675. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/diagnostics_helpers.py +0 -0
  676. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/energy_preferences.py +0 -0
  677. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/entity_param_parsing.py +0 -0
  678. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/entity_registration.py +0 -0
  679. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/entity_removal.py +0 -0
  680. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/entity_update_fields.py +0 -0
  681. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/error_log_parsing.py +0 -0
  682. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/flow_helper_lookup.py +0 -0
  683. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/hacs_registration.py +0 -0
  684. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/helper_flows.py +0 -0
  685. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/helpers.py +0 -0
  686. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/history_response.py +0 -0
  687. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/integration_entry_state.py +0 -0
  688. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/integration_reconfigure.py +0 -0
  689. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/log_common.py +0 -0
  690. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/log_sources.py +0 -0
  691. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/log_sources_fault.py +0 -0
  692. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/log_sources_logbook.py +0 -0
  693. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/log_sources_supervisor.py +0 -0
  694. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/radio/__init__.py +0 -0
  695. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/radio/base.py +0 -0
  696. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/radio/matter.py +0 -0
  697. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/radio/thread.py +0 -0
  698. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/radio/zigbee.py +0 -0
  699. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/radio/zwave.py +0 -0
  700. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/radio/zwave_parameters.py +0 -0
  701. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/recorder_errors.py +0 -0
  702. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/reference_validator.py +0 -0
  703. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/registry.py +0 -0
  704. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/renamed_tool_middleware.py +0 -0
  705. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/response_helpers.py +0 -0
  706. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/scene_discovery.py +0 -0
  707. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/search/__init__.py +0 -0
  708. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/search/base.py +0 -0
  709. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/search/component.py +0 -0
  710. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/search/entities.py +0 -0
  711. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/search/legacy.py +0 -0
  712. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/search/modes.py +0 -0
  713. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/search/overview.py +0 -0
  714. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/search/response.py +0 -0
  715. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/search/state.py +0 -0
  716. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/server_version.py +0 -0
  717. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/smart_search/__init__.py +0 -0
  718. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/smart_search/_base.py +0 -0
  719. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/smart_search/_config.py +0 -0
  720. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/smart_search/_deep.py +0 -0
  721. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/smart_search/_entities.py +0 -0
  722. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/smart_search/_fetch.py +0 -0
  723. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/smart_search/_graph.py +0 -0
  724. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/smart_search/_overview.py +0 -0
  725. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/smart_search/_scenes.py +0 -0
  726. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/smart_search/_scoring.py +0 -0
  727. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/statistics_calendar.py +0 -0
  728. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/statistics_helpers.py +0 -0
  729. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/statistics_resets.py +0 -0
  730. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/system_restart.py +0 -0
  731. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/tool_hints.py +0 -0
  732. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/tool_search_hint_middleware.py +0 -0
  733. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/tools_addons.py +0 -0
  734. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/tools_areas.py +0 -0
  735. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/tools_assist_pipeline.py +0 -0
  736. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/tools_blueprints.py +0 -0
  737. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/tools_bug_report.py +0 -0
  738. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/tools_calendar.py +0 -0
  739. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/tools_camera.py +0 -0
  740. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/tools_categories.py +0 -0
  741. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/tools_code.py +0 -0
  742. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/tools_config_automations.py +0 -0
  743. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/tools_config_dashboards.py +0 -0
  744. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/tools_config_helpers.py +0 -0
  745. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/tools_config_scenes.py +0 -0
  746. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/tools_config_scripts.py +0 -0
  747. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/tools_dashboard_screenshot.py +0 -0
  748. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/tools_dev.py +0 -0
  749. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/tools_energy.py +0 -0
  750. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/tools_entities.py +0 -0
  751. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/tools_filesystem.py +0 -0
  752. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/tools_groups.py +0 -0
  753. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/tools_hacs.py +0 -0
  754. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/tools_history.py +0 -0
  755. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/tools_integrations.py +0 -0
  756. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/tools_labels.py +0 -0
  757. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/tools_logs.py +0 -0
  758. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/tools_radio.py +0 -0
  759. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/tools_registry.py +0 -0
  760. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/tools_resources.py +0 -0
  761. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/tools_search.py +0 -0
  762. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/tools_security_policy.py +0 -0
  763. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/tools_service.py +0 -0
  764. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/tools_services.py +0 -0
  765. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/tools_system.py +0 -0
  766. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/tools_themes.py +0 -0
  767. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/tools_todo.py +0 -0
  768. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/tools_traces.py +0 -0
  769. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/tools_updates.py +0 -0
  770. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/tools_utility.py +0 -0
  771. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/tools_voice_assistant.py +0 -0
  772. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/tools_yaml_config.py +0 -0
  773. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/tools_yaml_read.py +0 -0
  774. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/tools_zones.py +0 -0
  775. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/util_helpers.py +0 -0
  776. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/validation_middleware.py +0 -0
  777. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/tools/ws_waiters.py +0 -0
  778. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/transforms/__init__.py +0 -0
  779. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/transforms/categorized_search.py +0 -0
  780. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/transforms/compact_params.py +0 -0
  781. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/transforms/component_helpers.py +0 -0
  782. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/transforms/component_search.py +0 -0
  783. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/transforms/lite_docstrings.py +0 -0
  784. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/transforms/write_tool_note.py +0 -0
  785. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/transport_security.py +0 -0
  786. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/update_check.py +0 -0
  787. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/utils/__init__.py +0 -0
  788. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/utils/config_hash.py +0 -0
  789. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/utils/config_write_lock.py +0 -0
  790. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/utils/dashboard_patch.py +0 -0
  791. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/utils/data_paths.py +0 -0
  792. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/utils/device_registry_semantics.py +0 -0
  793. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/utils/domain_handlers.py +0 -0
  794. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/utils/entity_membership.py +0 -0
  795. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/utils/fuzzy_search.py +0 -0
  796. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/utils/kill_signal_diagnostics.py +0 -0
  797. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/utils/mcp_client_host.py +0 -0
  798. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/utils/operation_manager.py +0 -0
  799. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/utils/python_sandbox.py +0 -0
  800. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/utils/registry_update_lock.py +0 -0
  801. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/utils/skill_loader.py +0 -0
  802. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/utils/usage_logger.py +0 -0
  803. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/visibility/__init__.py +0 -0
  804. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/visibility/enforcement.py +0 -0
  805. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/visibility/model.py +0 -0
  806. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/visibility/persistence.py +0 -0
  807. {ha_mcp_dev-9.0.0.dev3147 → ha_mcp_dev-9.0.0.dev3156}/src/ha_mcp/visibility/resolver.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ha-mcp-dev
3
- Version: 9.0.0.dev3147
3
+ Version: 9.0.0.dev3156
4
4
  Summary: Home Assistant MCP Server - Complete control of Home Assistant through MCP
5
5
  Keywords: mcp,home-assistant,ai,automation,smart-home
6
6
  Author: Julien
@@ -4,7 +4,7 @@ build-backend = "uv_build"
4
4
 
5
5
  [project]
6
6
  name = "ha-mcp-dev"
7
- version = "9.0.0.dev3147"
7
+ version = "9.0.0.dev3156"
8
8
  description = "Home Assistant MCP Server - Complete control of Home Assistant through MCP"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.13,<3.15"
@@ -4,7 +4,7 @@ build-backend = "uv_build"
4
4
 
5
5
  [project]
6
6
  name = "ha-mcp-dev"
7
- version = "9.0.0.dev3147"
7
+ version = "9.0.0.dev3156"
8
8
  description = "Home Assistant MCP Server - Complete control of Home Assistant through MCP"
9
9
  readme = "README.md"
10
10
  # Upper bound widened to <3.15 so the package installs on Home Assistant's
@@ -1,7 +1,7 @@
1
1
  43070e2d4e532684de521b885f385d0841030efa2b1a20bafb76133a5e1379c1 LICENSE
2
- 11d0a755adccd0b0921b2bdf3754840b95a3cd48c3c83bd061ca2d67568903c1 REQUIRES.txt
3
- 508f65b3ae2f9a5b36b94b8d502da37f83eec9a245a47e5fba4c4b8cc2a896d2 VENDORED
4
- ecaf01eb0f0a29d863aaaf4440324b86d65aab40189a95d29e0fb0e25e19f9e1 __init__.py
2
+ 57d679f7a4f2649196569bb5ba0003769c702397762f111fa00b4024b4ba81b9 REQUIRES.txt
3
+ 474cd40c2b28f8f6a25f97a09f5944b5472af172900c8525feebc90feea58989 VENDORED
4
+ 17dda54e1e9603c3ed2629f7c7cca477e79c78de2430e4b926472831154e46b0 __init__.py
5
5
  2ae9ce0d217923abf551b6f8bcf08e516529b9a6abab160bab5d8c9b7e245c3d _compat.py
6
6
  0fe101433a655a48e5fd1dde0c75879f3a74f9092d2b935bd71fad19bcfb77a1 _install_hints.py
7
7
  a9c59fe78564360444de04484a2b0906569fb58408be3c968be3f81a5e3015a4 _warnings.py
@@ -10,7 +10,7 @@ d5a7cf7be1b90a54cb2aa34b4c52f16a627365756bae2799f8a1e8bfc19e3be1 apps/app.py
10
10
  43c543658ba0dfdd7622b42c6d9c1bd18ac1b5516d6f64e984bc21f5491968cc apps/approval.py
11
11
  ebc30d58d7be55717fdd0d2c8c3691e2d42e5e7ae7a6edca6a1aaeef06a6390e apps/choice.py
12
12
  f37ca3568e62ff272436263dba64baf712c4ee05e9c92c047c697f1fc8e6cebf apps/config.py
13
- 57fae4965441df62add5ce352e89a5a7a9d12c867046db27676aae7adfb202ec apps/file_upload.py
13
+ 07a3af5d581a6bf8ee09d269166b46150fee8b62e46477b79b678f3124cad6e2 apps/file_upload.py
14
14
  8b2e94be32a1e5753d06cd79af72f10f73f6959069db664f25d490f16f2450fc apps/form.py
15
15
  1912a7eb64b0c1f63c6a55a140b79da643c9bc6a7c48328e0522facebd75bd07 apps/generative.py
16
16
  1f3d55a17ea1a14a11eb4f4c47ae4a23bf27180135879c4a681619c616d4c84d cli/__init__.py
@@ -19,8 +19,8 @@ f7e802853b93ea231afe35bf6512bb8659f6ce31f5e2d788cbec70206b73ec6c cli/__main__.p
19
19
  25706d223a4a0bf6aeee9d998b6c2cc35a43f599b26b8da10188ffd632488412 cli/apps_dev_security.py
20
20
  69c000d140b8cd9e48a0feddf08fd5a7d8735f719f7443f34cb89caeea58d29f cli/auth.py
21
21
  c0b3e37538968d37ff03613bee536e83840c5a7bd6003fdac39b17e1f210fc15 cli/cimd.py
22
- 6dcfdc9f45db5fc244740670ca4b14003cfb066d86d3dd04dad1e0032173f50b cli/cli.py
23
- 376435585f0cc1fea0bbd56b13448bef76174cedc6d8d78e4be4ad378536f30a cli/client.py
22
+ ee711b8ba863d82485eb5be2f1b87e8b6374036e7a523959fac200d48b2f2fb1 cli/cli.py
23
+ 3f29c6258252e14ebf52a156ded11c8d2ea5b6ad111e970f0d68f8ba66b2caac cli/client.py
24
24
  e957afa2f01583177872973ad9ee3870b59353ef03aaaf716a27454c3c1be945 cli/deploy/__init__.py
25
25
  f0b119ec65bcfbadbe610b676fb3054c7dd55bd1ef8bd37325afe1f9c85e696b cli/deploy/authentication.py
26
26
  4e8d460c536d638ed6ddf1f44e21723b5aef4df3d822a80da791f0d96bf7d50c cli/deploy/command.py
@@ -29,7 +29,7 @@ d15ffc90ed6c4ee53c00bf0d3a0ecb7f73b0c5cdb2e2acb4299888bb8463f944 cli/deploy/cre
29
29
  a7457cd7975c6438acbe3a576a4ef26c432256e3ce32e1b4e41778666dc10a21 cli/deploy/horizon_client.py
30
30
  ed9553af547b8efd7c518f64d0aa1d022639307d6bbf4e81411ba1a5b7011a61 cli/deploy/output.py
31
31
  815b6c10d26fdc4e7fe50d76194c0fc34c19baa0d87b31ca83494cd64d87b2ce cli/deploy/state.py
32
- e2ccacdd93ce5498809b611d628f0cd002d860eaa36376d659d4f8dab355f269 cli/discovery.py
32
+ aef302e0de092a4efb277b9e44201e4b39819826b55011796b474e9ce361efc4 cli/discovery.py
33
33
  a1fc7bb7eb835b9e6bad14b9fb593d585b9f7646f59c892f0cfbd5c24959ada1 cli/generate.py
34
34
  3064643d52a2ee08d78b9c9f859e7e6365841ddc8a4ee3cb32bab5adf86c241b cli/install/__init__.py
35
35
  bed3123c8e5ef639b4aba8c12b023cd75076101e7c4ac69759fb28675ead764a cli/install/claude_code.py
@@ -45,21 +45,22 @@ be600c67653ad9248ffe5e8d35a93f466276afdcf5b1a193629217fd722f61ad client/__init_
45
45
  c2ccfa385e1ac971ca62bb3411f7922b773c2ebbf717368150ae9f9849cc996b client/_sdk_context_shim.py
46
46
  c1bb592687a240305e777178e6684d08f788a6c1559b1c4ee3086160268c934a client/auth/__init__.py
47
47
  f23abd973d004567dacf840728835c74bd94963ab48355990ee27879b598c7a5 client/auth/bearer.py
48
- e96f4731af86d4755a597300926782f82219aee6d03fd760698f2c4db66ab8d3 client/auth/client_credentials.py
49
- 47360239f1461d81aa7dda16f677ef31476b2cc6c801a3de9cc9d50b3e9fc318 client/auth/oauth.py
50
- b7f310d25afea2deec36a8ad055cf81827feaac934d1391a05b7cc92b2c9e5d6 client/caching.py
51
- 43c887efd89e4f089bb7360e864a39fe210ca6db59f711182aaf38d044020405 client/client.py
48
+ e79500bab9cc766870590c9edb0cb86a89025ecf1ac99e82bc188f12c48e6596 client/auth/client_credentials.py
49
+ 6d4d27b81185455678112a4313bfffed605c511ecdb5851ebf192fde613a4528 client/auth/oauth.py
50
+ a8b6c5f3af6420a016d5ce84647d51165c6fed3cf59c3bf3866abdd85694f8eb client/caching.py
51
+ b887e8bf28c691c6aa738ec3d39367bdc42988bf2113749bf2df39457707ee85 client/client.py
52
52
  ec3d69cbdc6d1331b028afad95616431d6bd02e91a2bcd76a12c30b6618f3d88 client/dependencies.py
53
53
  aab079f50b8a4d6cf0f8d90998025989558b37527fbb7e2c4ca4c583cf8d3d23 client/elicitation.py
54
54
  abdc07c2ae78249cfb095295120a982db23a7cfbbe90ec50ce5f964475c981e3 client/extension_hooks.py
55
55
  a7fe536d6fc5dbad6a2c8d34b3b8074a0c28e7572ee69c7d816ef8fd4617f2e9 client/group.py
56
56
  0648016833612089c873938a63d69cded6336e8c8d9867e9412d4e2dac9c2f97 client/logging.py
57
57
  4014857ab79e71cd06f28afaa160f00d9c646c63a63bb99565174933497fc501 client/messages.py
58
- 01e24f9b114fd85aacd62fb99631adedb23e5293e9e72cfc9b2680035364c7a9 client/mixins/__init__.py
58
+ 9c6ffca96bf49ef5f9f0d2574072c8248a8f3322067bc6d525cb866015f6a09f client/mixins/__init__.py
59
59
  a286df8775a6de31aa19ff6f26002a6f612a9ab36acf4e8629b52da44e406da4 client/mixins/prompts.py
60
60
  26c5c96f8ffa53ebf035667efde96418750eebeb016c6d79ab2f5f4fe087718e client/mixins/resources.py
61
+ c2e0b608dc1c937d5398b057e500528dca120b3a4f20ce3687e88004639d0ba9 client/mixins/skills.py
61
62
  e854e5421f880b3a57ff6ed2e16cba80054bf68395a83b704085d33eb3c40abd client/mixins/tools.py
62
- e418845c0228e016596d96d1a962f2d0ccb814f7b769ee0b08e9f158de44fe89 client/oauth_callback.py
63
+ ada0b130369f9e30db49487eb159cbcd24dfcb7487aa326d94577beab882830d client/oauth_callback.py
63
64
  c3a98f99610d06c9b95fd9df0f7acefacbfc4756a9f62bbd0a64df880ccd01ca client/progress.py
64
65
  5aa421cd60f10be7bdab46641ade22e90e41bf6a6226cb2d26814fb53ffcf406 client/roots.py
65
66
  d759cb6643a356a15c4537185597567349fe713beae579c48e48ed65ec35cbb0 client/sampling/__init__.py
@@ -75,15 +76,15 @@ c3f58b1274d23f3a93cf9c1cf1835da5b54c92243d3693956cba863fb1f5ed15 client/transpo
75
76
  a2fc0c9ba36479b0d79b53b9d43a2ddc0d054a71444437a1b6be5d02228504de client/transports/inference.py
76
77
  cd5fdcdb90616756ed695d7d57a30cb420d06c57b776615e81bac2c596b5ec17 client/transports/memory.py
77
78
  92c95544d195ce5e49bd1f7f2853fd743bb81bbd22416db63c238227b00c0b4a client/transports/sse.py
78
- 2ac68c04792107da432242d77f4b6cca6d8923025b5f33cf46a1733da7bcd3c8 client/transports/stdio.py
79
+ fcb50bf3d338534f89f8ec4860dbe776616db48f7b5e842c2d2e61d151cddeb8 client/transports/stdio.py
79
80
  aca9276122354f5f7652f4acceac300e5436798429c72c2b3532e88f5efb4985 contrib/README.md
80
81
  e5a5146354d214ab73d69bd32d20ea9140a41a4baa31f31936c2de68da848007 contrib/bulk_tool_caller/README.md
81
82
  c6f19249a5174d0adcdf57ab0688b51a1ec18a480e9621130e26154cfdeb2f16 contrib/bulk_tool_caller/__init__.py
82
- 14b9a331bddba2e12bdb816424a9bdad1de247d10e0b79fbd4a98aec27104efe contrib/bulk_tool_caller/bulk_tool_caller.py
83
+ f4cb80cc3ed88bb29a22e4c90f879b19a0896fec22d11297090c00b81fd212b9 contrib/bulk_tool_caller/bulk_tool_caller.py
83
84
  796edc6dd7736036cb6f13eeafe5e73d9577319364de1361c856fc322f281f11 contrib/bulk_tool_caller/example.py
84
85
  fd6536eb022a9fd828ee088b1bc18b55e050b15b3011d9f33ebc409968cd6624 contrib/component_manager/README.md
85
86
  9bee27be06ce8083646442ab477ef772e9a642785d5d58342e8069ef5e927fdf contrib/component_manager/__init__.py
86
- 971b25b708b8dec0c43a87a30616bc507a939d9a248e954ee6f3d280b13b3ee4 contrib/component_manager/component_manager.py
87
+ 4dbfe0989b7f51747c6474f9d0691e5b5caa0cffe09fbaf56a13fd5fc33e41c8 contrib/component_manager/component_manager.py
87
88
  9c0b76ef099a63ba6d402770561a92ffd88e1b5b4b45c91c0647767ba5b2e0bc contrib/component_manager/example.py
88
89
  7fa8a77bacfd92e131d6a2a163d8f3ac7eac0308f5a16a5770b5c6bcad063159 contrib/mcp_mixin/README.md
89
90
  cd914794019ec542420cb020e29ec21990e66fe9a03dd375c55bf4b51e2683b2 contrib/mcp_mixin/__init__.py
@@ -102,15 +103,15 @@ a08727048d5bdc6f513fd4161f1a53ae1ffbcf387cc62b6319317946814cd4c5 mcp_config.py
102
103
  21d1fa531c37e5525257218d605ba73efeada2548f42ae0b86bebe731b0cee95 prompts/function_prompt.py
103
104
  e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 py.typed
104
105
  b5074534e408ad9f8e5a325076e1549cecd0a0c8c7ddfbf016fa3b041c3509cb resources/__init__.py
105
- dc4c1e42dd8dbedc65381fafcc7de28a6751fa27041a29aab2f1eeef9097877f resources/base.py
106
+ 6f19f11c8057d9e11be29e1b9fc90be21f9ca6e4ded9081a1351f2c528388ddf resources/base.py
106
107
  6c5f589e472b41840b5c1777663495efbdede20e1aeb7adfccaa4360ac4a8a67 resources/function_resource.py
107
108
  1617d885ef49690595e063c5453476a7adb84503f31bd8d37c93a43b00d036fe resources/security.py
108
- 9fc9568b488bc929d1f5a9bcd5cb36d63ae4c757df4668694a4a47c6ddf8721f resources/template.py
109
- 09bec33d42187935401fd074d14ace2a6c056182d3ea4a340e1273e7a034ef51 resources/types.py
109
+ 0b5853007046f26ae55420e5c163e6f55da7ebb141367ca95e01e19b7ba82bef resources/template.py
110
+ 35612329060fb13f468eb2998cd32500992c516ff37115db7be4ae1382ae121a resources/types.py
110
111
  827d84d4bc780342fdbfd88101ac4f25b8a39b79ae63f8b9d9f636580cec52bb server/__init__.py
111
112
  260232a96fb443347da645d6fa1a0d32c9599a7c00e737c285158a3267c708a9 server/auth/__init__.py
112
- 98d864140b69b591ae55a342dedcca05f0fa895ae073e90618190e4df5c269bc server/auth/auth.py
113
- 2d2ec9ec41e3e6716a2f4b214dabecf3e10a167652546bfa692570c640647263 server/auth/cimd.py
113
+ 9a430a2062aa66274a51f612d9fde1a815622cf80b1384dfd61b07bade1def06 server/auth/auth.py
114
+ 71a9e5c1809537c98703866db245c7fb3c206c30d4203036ac19e862ace52126 server/auth/cimd.py
114
115
  e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 server/auth/handlers/__init__.py
115
116
  bd6cc8b7e5728f65e4ec8c9ee976533bfe7d712a63d4009b672c84d1a94125b9 server/auth/handlers/authorize.py
116
117
  690754c201248ff04a5c73899d9b0b1d2911507eac7d9bd649133b8185c07002 server/auth/identity_assertion.py
@@ -136,7 +137,7 @@ cd9ae180e45177b6d32444cae55ebd3c421c374ad719871e825a8a66a829b1f2 server/auth/pr
136
137
  3a76215676072a4c7e31971e3c79e57a3ea78ff10b79e5fc90cd371915ddd7ff server/auth/providers/huggingface.py
137
138
  57fa08d818ae235752a65083d1e19daeb65c7b6354ad81c76aed0257b4ea9e61 server/auth/providers/in_memory.py
138
139
  dfb1e26a7eafca5db135f70e9b9ad586e80bc57e4642b129a8bfc22c0083ebb1 server/auth/providers/introspection.py
139
- 81a3a74a68f5ea37bce5fd5e1c56fda7dcc31c269c0b5b31abb3fa576e08edcc server/auth/providers/jwt.py
140
+ 49ef26ce0f7439b249c8444ed0edfe443aef3ce2ad731dbe3350474ac5f04124 server/auth/providers/jwt.py
140
141
  27e8a505f6e1cee20548a5c789ae75311a33ed1addfbba0f49f01dac29c50370 server/auth/providers/keycloak.py
141
142
  f858f390ad6ca87990e548cdca584cef57fc93a0d2d36b4f5353dad2c4c0f7bf server/auth/providers/oci.py
142
143
  5fc4d64669c5c4aa673d9d640f2692e2b5a5eb99a02529cd671a8a285bcd329f server/auth/providers/propelauth.py
@@ -147,30 +148,30 @@ df16f6cf532f38b87318d06d7c0f97717699614ada54fcfb53701d5281ed6cc5 server/auth/pr
147
148
  8db12964a2f64b576d72858ad4d21aa27e5e8325101cd575762cb1dd56f01a22 server/auth/ssrf.py
148
149
  871c89e8a16ca2a3cd030b94108abb0bf15d8addab05b398f959da8445f4e6a9 server/caching.py
149
150
  38f783123395ffa153bc91af5db1ffac86eceaa249333d2991a59e057a2f4af1 server/completions.py
150
- 63c9fa3e4b6e155301625972b8d84df6614efa3084da4a358034ae420ed92350 server/context.py
151
+ 929c08b4041142da2336e933f9b120f1b8a2ef7a4169b22d766852f7cd9b430a server/context.py
151
152
  2561804a41617f9c4e8d7733f46cd64e95c8f8d35455e54e8a382c39504adc32 server/dependencies.py
152
153
  e9f49b78a223cd3a76ec037f3ebaf0dade60dd775ed8533f2c0a53127c1fff0f server/elicitation.py
153
154
  e0497cf65d8a93849bf2873b94e18abaff2d8a9a879d24db9af22d52548bb696 server/event_store.py
154
- 295d07943099c96d594d17aa592bae0c3014ed751f6a2a9541bb5b724e873b85 server/extensions.py
155
+ 3b72dd326aea6c7e534a07577cd57cc5244e6753a7dc76a9f948732c57fb0b04 server/extensions.py
155
156
  e2d8f616fdd6181f9de4febaa4be5eb5901c5e961ea36fa92a1177f1d2cd39b5 server/http.py
156
157
  c939ec1886308f99257b07aaa73a4781565d5d3e170fc13b0d8b36f4735a4fda server/lifespan.py
157
158
  88b443872d501d764b897cb272d47fd0692e6120e2160d68558aaff95aad4bcf server/low_level.py
158
159
  dc669c15efc3c6bdeb531a6267860c141bb86d64e49c0ee586805c4866bd0c01 server/middleware/__init__.py
159
- 172f87828b7aa58bcf31e377c149c9fbc05bf6aba377e8e92a8d4757ebda5bf0 server/middleware/authorization.py
160
- f5ea7269f47d6fc3ff301530492a3a8d8d15d82870a7d89ad5df361ce0fccd46 server/middleware/caching.py
160
+ 81fd341cfd5101c7d0bf01d10356c0e2e777fed5acafcc1e002aed2331d21fe0 server/middleware/authorization.py
161
+ f3d9c9064b56c4c8343137efd4f07a21a9ad18df8e7f447bdd6eda0e4dd478dd server/middleware/caching.py
161
162
  32e78726614e5a69b3ec87bb6868b151ad6955f3eaac3a41b5a9d6151a0efa55 server/middleware/dereference.py
162
163
  53d015df5c8c14cabcd52a864695c4b5316b99b06d7b3444124bb640a3cdfca6 server/middleware/error_handling.py
163
164
  d55654f305388914c045482ffaea32832fdfc57f17f90f558901ab422fe04cc2 server/middleware/logging.py
164
- f866f0fd1fe052a9835c23197ed868ac270727bec9f443d76a35d3d10cc7bdce server/middleware/middleware.py
165
+ 956de4ca44b656fa68371aa6f359ec86fd698c6d5262a0360ac3e7e6fd0b2804 server/middleware/middleware.py
165
166
  54745915b9fa8e6b8202a3a0a06d821f84fe81306d185d6f943f6b4f3797a3c8 server/middleware/ping.py
166
- b5cfa6d7148c34b40b9c685059f5227236b210e0295bfe56d9a3da03b86de3ac server/middleware/rate_limiting.py
167
+ 78792942f41d9704e304c726e553d3a61ae72541b9b28ee09e7a786b6e85b60d server/middleware/rate_limiting.py
167
168
  507e8ad039f47ebc8ba90c1f150b6405f1fb081b8cb85d3dad6214be03d7b7aa server/middleware/response_limiting.py
168
169
  94bff173e12b2c3e65a657ef779f872325846d9860341624710ef82855c03240 server/middleware/timing.py
169
170
  aefe367cf4119f62a497224bd39effb9e876a4cb15032558256e7bd749f7c1cc server/middleware/tool_injection.py
170
171
  7dbadca2563c9c44dbd242d6f75f53df1827b5ca24e09c76a26a63c450768467 server/mixins/__init__.py
171
- 46368f2ede13b030da757d4ec2a105eb2332e05c435d6e140a8caf9de4f55246 server/mixins/extensions.py
172
+ 4a0ec3b82ebfdaeac5b3ae8ff9ba063f7f8a4416b1fe55ef3e4eb5e4218dcb07 server/mixins/extensions.py
172
173
  10ccc0151a0590a6e0d1a6c611d71b6941b8942de975c094b791d201fd6f0f1e server/mixins/lifespan.py
173
- 52af4cd66251d312a9c2cc3dd822bf25512f2b8a39f2571dc6e7dd5184ffa56c server/mixins/mcp_operations.py
174
+ e6505af69e1240f9fdbfefdd8d81732b7f5ab20ced5721203f07927f1c290a5f server/mixins/mcp_operations.py
174
175
  186b88939549a093754b66c6334f43bdef880d07900531a93659c0f70c291f6e server/mixins/transport.py
175
176
  cd4f7cade13e4a23391117605bbbd4e9d9f66c43d949c09e4fef05ff279a5a32 server/providers/__init__.py
176
177
  60c8b27855ed49b56faf1935097a5d9cda837b3ff7e3f8c7e0f7949dddef3bf9 server/providers/addressing.py
@@ -194,13 +195,13 @@ b00f94d08ce939d3aca4fb4e9d77d34633570e505640bd7c0a3a4cfb27030b05 server/provide
194
195
  f4cee46905a912f0e52859350e8af886eadc3ba86f5a41ea248fb1638c6b11b2 server/providers/prefab_synthesis.py
195
196
  034b2b14755c29f6d7bb93bf2678fc8df616e49cf905772ae09485715c083f69 server/providers/proxy.py
196
197
  6bb7641e4c222ff359a38f9617987cc64a8c3eaf04118346b1e96f8b336bc9da server/providers/skills/__init__.py
197
- f91a1853484963de7508eba7091e5ba7ff59ff5e5802330d9675b9ced3d03d17 server/providers/skills/_common.py
198
+ 923dd2362c2eb6499fa398cf5eb52b230f248de044a085e507f0d6c27e639fc2 server/providers/skills/_common.py
198
199
  ce1a7b8a0adece4168f039721d3c0d196da79ae6d8d2b7835ef13733f6c510ab server/providers/skills/claude_provider.py
199
- 9244cca86910b4f057cb759b397a8b029787b05f9f6053ea80d25507254dc201 server/providers/skills/directory_provider.py
200
- 4758884fdbe14779d2e80c7eaf73b21a7c7aa09b291d955ea38e67950cb9b230 server/providers/skills/skill_provider.py
200
+ bd74f9be18063afb0b908d4ef750837d585f2f21bd039afa2f85fc601ab18de5 server/providers/skills/directory_provider.py
201
+ b37927f19c02a073fa1b22338be214e74c1189f6ab210a296820e67d6bd27024 server/providers/skills/skill_provider.py
201
202
  b759c2e9f832ff7b27a9d4347a12851e235d59f7cfa0360aba5efd57377a4adb server/providers/skills/vendor_providers.py
202
203
  ab36a66d437044cfd929d78b224d8c909296a968b3ef3670f0656af7202f3eb5 server/providers/wrapped_provider.py
203
- 8a9f85b84102ea618e1db92f99467b9550b9f56c061d6be7a4fbe097d44913e3 server/server.py
204
+ 92e79927130fd62404fca11a1621b3f5a83aecacf99f7162649a73e36510e84e server/server.py
204
205
  a50d0db0003d63db49a3ec62b18dc75e267d6e03b7165f11f02992316be4e160 server/session_scoped_event_store.py
205
206
  a172b6697b515083db1d9f2466d8c88659d37427ece0d292c26d1646c1e72e2f server/sessions.py
206
207
  24b63d7adc0e3e7ebb5528924d9cf2e5789faad798bd39175690c8dca0742ac4 server/telemetry.py
@@ -212,31 +213,39 @@ ef58b435263324aac98f71dd08057232e2eb39abdaec2697e4f2369e98c7734a server/transfo
212
213
  250bd40ffdaccfd4b0df19092965d743c1a7d55ff3e6cb812a3ade85e4a5419f server/transforms/search/__init__.py
213
214
  79f72a914511606c3c4083540fc198d9af27bf119f6bae078654d85e62c61cc8 server/transforms/search/base.py
214
215
  d97ffcc125efcc4844e86b9b0d8446ed559d3519de3610619eac5399366ab68b server/transforms/search/bm25.py
215
- c35748068520dfcf86e9ce14d83307a11528c738b9046947a4f2208ddd830e0e server/transforms/search/regex.py
216
+ 112c0190cb32e44918643cb91aebd17e3dd796803c12754e5c469cfeada0a78f server/transforms/search/regex.py
216
217
  e83d5c70c181f5145ebf4bd2fb4a808f6ebf4eb1ce9a052165a07d983045c44a server/transforms/tool_transform.py
217
218
  f2e810f9769e3c51a6be6822b03c230a87e94a7b6684d41fc29cb73efe339d80 server/transforms/version_filter.py
218
- 889394ade50ccad928013e12957141e52fd45ae16100c205869688c0bea07820 server/transforms/visibility.py
219
+ 025fc257357db3e19e8c8f611dbcef51af625795849d5ac778664592c87ea3a8 server/transforms/visibility.py
219
220
  b091c4eb034cd9cdaf42d65dade7c95846c37e137c2572115a9ef6277305ba2b settings.py
221
+ 7b83e24d81780ebe837717d2a183e78e7a2dcd30fb52bcd2d0ed9330d16204d7 skills/__init__.py
222
+ f44adbcd9abe7eb159d63bd0de0be6ebec37a8f6f84964814180424da5d0fa62 skills/_constants.py
223
+ 800eb0e3316e7423d09f48b17a7ec2cd1a797be7286340f39c255dbd99a368fb skills/_resources.py
224
+ 6bbbe3259c55eed390386e41b021ea1b1f151bde755a2489083d334b1c435322 skills/_snapshot.py
225
+ a324a06f09bf359781d0a11f07d0b3b13612b26ebdf5d5652e84c8710791fee2 skills/_source.py
226
+ 9a73f7097511e27e04d5a905d698fe763315c52490b962a3eedef95a221e5542 skills/client.py
227
+ f5303d967eb59473eed0a960a2da4b21461706bf4b36f4038d3480fc2e05d552 skills/extension.py
228
+ 82d1853cc0c581da118608e3349574d8c18b1169c774a45076ef8c770d66dbff skills/models.py
220
229
  1918d45032f08b689ad2d7f5df63e48b777266a81d4d0991a0415d5ff04bdfe7 telemetry.py
221
230
  fd1992e098123e61b8e2697dae56bc3d6311ea118c9dbdbac0197d7ad274b126 tools/__init__.py
222
- 2fceb041133d3d9d38b172f9d87650a6a5c9a856c11a8f0c29c35a682c1a7232 tools/base.py
231
+ fa7628ff8dd6cd1ce632af82b39b6b1acf942dc00046c5a65fecd2ebf8898706 tools/base.py
223
232
  f7f49cfda15a22b3f3aaddeeb161986341c72e2eceb0d90ea427131e23b1dd88 tools/function_parsing.py
224
233
  317016d376666c0c08ed9e1b150123bc18e3da28d9ff07441da028c711c2f82b tools/function_tool.py
225
- bdeae497a498f6e572dacda291143dd4ef1c2db1be51f6f00b7ee744204f4648 tools/tool_transform.py
234
+ 296be400218e0c14f9c1f88e778592541e2ea0a6ceeee72d79e44dae23f508d0 tools/tool_transform.py
226
235
  114f6988d2f7f28911d20afa9792106f76b723e8f4f8c09625e2310b7db438a3 types.py
227
236
  fa2989f12fab5e66d73167836a695d3fe7470ea00f83fc3098f573f8b357d781 utilities/__init__.py
228
237
  492b2b02870f7ae4f4cd4d07ddc26695fcdb20fb2b0ac38c062759b53a7bb2c2 utilities/asgi_transport.py
229
238
  00947ff9dfa76176a094ba5b0c62d2d3aeb62c1ec9c2f48373ec7f1b3b482ee0 utilities/async_utils.py
230
239
  cde0af6863c7ecaf5b43c5718d5a5186ebe83df93f4faabd484dc1b4cf5a1ae5 utilities/auth.py
231
240
  756eebcba1a9eabed3eb7f522df0ef90b0709147d46cf02e01224ead9b9e99b3 utilities/authorization.py
232
- 29dbfbef524572917aa070b3565843e817d278a676fac2c9a9ecba51c1215269 utilities/cli.py
241
+ f5ea6721e8897f13fec46b647b960652d93377db4e88f02e10b7a4edb519d5e6 utilities/cli.py
233
242
  749eca7633bcfd597b14424895a425e56877a654cdeaffbe40a44c11b7af2fb8 utilities/components.py
234
243
  4117b6f878d419e0d9fc1dbaa7a2bd2b6ebe5ef4f398c0efd095d4835d25e8b1 utilities/docstring_parsing.py
235
244
  26af5197f0c30342ec96338f37e7d0ee400674ac56e18f613de343df9b4c6022 utilities/exceptions.py
236
245
  d254480ddb82cb17eab1264cb27a06e4538980efdabc70abf4f23279f3c1c3aa utilities/http.py
237
- aa0204571cb55806ea28484ab4bf60018f95fce4c3c28f255f7f3c3eb5e2db1b utilities/inspect.py
246
+ 5dcf6115ecc2ceffb21874d55a736f4d844d4e62ee66517c13b452594b174bb2 utilities/inspect.py
238
247
  c1a03ed3e93f3c06a48b232304f938a00a347874987d64576326bb32fefa8cca utilities/json_schema.py
239
- 76a4d1ffe1f9431816131be0f77d7c6c3913c83d716e677775baa4327f2a7a9f utilities/json_schema_type.py
248
+ 056b62bea870a16499e8dd34b433b4771371b5e7bdaf5143256b819e4fd3bdc0 utilities/json_schema_type.py
240
249
  41a30eee26f03f4232b3b0ab3e88bfc925feaa4c08077c80f06a7eb8b4c5e1c1 utilities/lifespan.py
241
250
  c9734ef52ddc7185828b7a51bee16cff935cc52fef29a7e5c102d76709139790 utilities/logging.py
242
251
  91d04debaa395607f66912bbf108371543dd38703c8fc15ffaa8bfea0d8b8344 utilities/mcp_server_config/__init__.py
@@ -254,7 +263,7 @@ e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 utilities/mcp_
254
263
  c833f7723b65b8bf55695ab67261860ce5b21532dc6d6a3c6e887cc12e35ab83 utilities/openapi/__init__.py
255
264
  cc3e84e216a480d7fd5e9d7048d21d8163de76ea79f031b229b4d910a819747e utilities/openapi/director.py
256
265
  9eb89249d9644ba337379bbbc8140060ea6a5b642be1961d7cb214eed0cca404 utilities/openapi/formatters.py
257
- 9a5d3f218fb28da51122a544a78276ea97d14719b3f65b6637d66143c69760b8 utilities/openapi/json_schema_converter.py
266
+ 2519e15b22e67f513e35826b4e8948a25e3dbf5516fac0729d374059daacb885 utilities/openapi/json_schema_converter.py
258
267
  6d833c04a3bc731a66258221e5f15826a41e265e9c80898218ae226e29f4d612 utilities/openapi/models.py
259
268
  2e58bc03dd82687ef7a843474eb65c1f644eafe2c039eb0949a61cce8b313de9 utilities/openapi/parser.py
260
269
  01c2276726002ee579299104b92d540b58684660563432c847da30df4aee1eec utilities/openapi/schemas.py
@@ -265,7 +274,7 @@ cc3e84e216a480d7fd5e9d7048d21d8163de76ea79f031b229b4d910a819747e utilities/open
265
274
  257c52460866cda5280d0916d20a7356bb12a0147ccd877c6b885baa4e97d2f6 utilities/tests.py
266
275
  6e158212fb4a31e14b309c7c65aefee8861ac62f8edb2ee06ba359e37df92c37 utilities/timeout.py
267
276
  0b105f303612c242d5be4569b185a3e9780b9749f693ba5392ebad223b5aa0d6 utilities/token_cache.py
268
- 83f170b1719816d27e454ab0a4c238f48a23bffa573adf24b9dae55412d1020d utilities/types.py
277
+ c08f41e1d9ea048256e1d62f281d50dda27cc724f992afc88f8729516ba6c721 utilities/types.py
269
278
  81c9e16bb563e31101c5dad2f3711994aa4dff8dc0433720899144be44eacea8 utilities/ui.py
270
- e15b4687d5f807a4a8421c49f0e40d13916fdec1c12b74273964e94156350491 utilities/version_check.py
279
+ c239eb18e36c9883456f7e95cf08def998a81af0c5f19da885e753fdd036a3ee utilities/version_check.py
271
280
  5e19b700a340ef7fd8974571de2aa190ef1acfc609547aaa1729704bfc241ae2 utilities/versions.py
@@ -8,8 +8,8 @@ joserfc>=1.5.0
8
8
  jsonref>=1.1.0
9
9
  jsonschema-path>=0.3.4
10
10
  mcp-types<3.0.0,>=2.0.0
11
- mcp<3.0.0,>=2.0.0
12
- openapi-pydantic>=0.5.1
11
+ mcp<3.0.0,>=2.2.0
12
+ openapi-pydantic>=0.6.0
13
13
  opentelemetry-api>=1.28.0
14
14
  packaging>=24.0
15
15
  platformdirs>=4.0.0
@@ -1,2 +1,2 @@
1
- fastmcp-slim==4.1.0
1
+ fastmcp-slim==4.1.2
2
2
  Vendored by scripts/vendor_fastmcp.py — do not edit by hand.
@@ -32,7 +32,7 @@ from ha_mcp._vendor.fastmcp import _compat
32
32
 
33
33
  _compat.install()
34
34
 
35
- __version__ = "4.1.0"
35
+ __version__ = "4.1.2"
36
36
 
37
37
  if settings.deprecation_warnings:
38
38
  warnings.simplefilter("default", FastMCPDeprecationWarning)
@@ -67,6 +67,7 @@ from time import monotonic
67
67
  from typing import Any
68
68
 
69
69
  from ha_mcp._vendor.fastmcp.apps.app import FastMCPApp
70
+ from ha_mcp._vendor.fastmcp.exceptions import ToolError
70
71
  from ha_mcp._vendor.fastmcp.server.context import Context
71
72
 
72
73
  _TEXT_EXTENSIONS = frozenset(
@@ -118,12 +119,15 @@ class FileUpload(FastMCPApp):
118
119
  the current ``Context``, giving access to session ID, auth tokens,
119
120
  and request metadata for partitioning and authorization.
120
121
 
121
- **Session scoping:** The default storage uses ``ctx.session_id`` to
122
- isolate files by session. This works with stdio, SSE, and stateful
123
- HTTP transports. In **stateless HTTP** mode, each request creates a
124
- new session, so files won't persist across requests. For stateless
125
- deployments, override the storage methods to partition by a stable
126
- identifier from the auth context::
122
+ **Session scoping:** The default storage isolates files by MCP session
123
+ on handshake-era connections. MCP 2026-07-28 connections have no
124
+ session, so files are scoped to the authenticated user instead, or
125
+ shared by the server process on stdio. Unauthenticated 2026-07-28 HTTP
126
+ requests carry no client identity, so the default storage rejects them.
127
+ In **stateless HTTP** mode, each request creates a new session, so
128
+ files won't persist across requests. For stateless deployments,
129
+ override the storage methods to partition by a stable identifier from
130
+ the auth context::
127
131
 
128
132
  class UserScopedUpload(FileUpload):
129
133
  def on_store(self, files, ctx):
@@ -184,9 +188,13 @@ class FileUpload(FastMCPApp):
184
188
  def _get_scope_key(self, ctx: Context) -> str:
185
189
  """Return the key used to partition file storage.
186
190
 
187
- Defaults to ``ctx.session_id``, which is stable for stdio, SSE,
188
- and stateful HTTP. The default ``on_store``/``on_list``/``on_read``
189
- implementations call this to partition the in-memory store.
191
+ Defaults to the MCP session on handshake-era connections. A 2026-07-28
192
+ connection has no session, so files are scoped to the authenticated
193
+ user, or shared by the server process on stdio, which serves a single
194
+ client. An unauthenticated 2026-07-28 HTTP request has nothing to scope
195
+ files to and raises a `ToolError`. The default
196
+ ``on_store``/``on_list``/``on_read`` implementations call this to
197
+ partition the in-memory store.
190
198
 
191
199
  Override to scope by user, tenant, or any other dimension::
192
200
 
@@ -194,9 +202,17 @@ class FileUpload(FastMCPApp):
194
202
  return ctx.access_token["sub"]
195
203
  """
196
204
  try:
197
- return ctx.session_id
205
+ scope = ctx._session_scope_key()
198
206
  except RuntimeError:
199
207
  return "__default__"
208
+ if scope is None:
209
+ raise ToolError(
210
+ "File uploads are scoped to a client, and this unauthenticated "
211
+ "request carries no client identity: MCP 2026-07-28 HTTP "
212
+ "connections have no session. Add authentication to the server, "
213
+ "or override FileUpload._get_scope_key."
214
+ )
215
+ return scope
200
216
 
201
217
  def _prune_expired(self, now: float) -> None:
202
218
  """Remove expired files while holding the default storage lock."""
@@ -15,6 +15,7 @@ import cyclopts
15
15
  import pyperclip
16
16
  from cyclopts import Parameter
17
17
  from rich.console import Console
18
+ from rich.markup import escape
18
19
  from rich.table import Table
19
20
 
20
21
  from ha_mcp._vendor import fastmcp
@@ -962,16 +963,16 @@ async def inspect(
962
963
 
963
964
  # Server section
964
965
  console.print("[bold]Server[/bold]")
965
- console.print(f" Name: {info.name}")
966
+ console.print(f" Name: {escape(info.name)}")
966
967
  if info.version:
967
- console.print(f" Version: {info.version}")
968
+ console.print(f" Version: {escape(info.version)}")
968
969
  if info.website_url:
969
- console.print(f" Website: {info.website_url}")
970
+ console.print(f" Website: {escape(str(info.website_url))}")
970
971
  if info.icons:
971
972
  console.print(f" Icons: {len(info.icons)}")
972
973
  console.print(f" Generation: {info.server_generation}")
973
974
  if info.instructions:
974
- console.print(f" Instructions: {info.instructions}")
975
+ console.print(f" Instructions: {escape(info.instructions)}")
975
976
  console.print()
976
977
 
977
978
  # Components section
@@ -1009,9 +1010,9 @@ async def inspect(
1009
1010
 
1010
1011
  # Print confirmation to console
1011
1012
  console.print(
1012
- f"[bold green]✓[/bold green] Server inspection saved to: [cyan]{output}[/cyan]"
1013
+ f"[bold green]✓[/bold green] Server inspection saved to: [cyan]{escape(str(output))}[/cyan]"
1013
1014
  )
1014
- console.print(f" Server: [bold]{info.name}[/bold]")
1015
+ console.print(f" Server: [bold]{escape(info.name)}[/bold]")
1015
1016
  console.print(f" Format: {format.value}")
1016
1017
  else:
1017
1018
  # Output JSON to stdout. The console would wrap long lines and
@@ -1026,7 +1027,9 @@ async def inspect(
1026
1027
  "error": str(e),
1027
1028
  },
1028
1029
  )
1029
- console.print(f"[bold red]✗[/bold red] Failed to inspect server: {e}")
1030
+ console.print(
1031
+ f"[bold red]✗[/bold red] Failed to inspect server: {escape(str(e))}"
1032
+ )
1030
1033
  sys.exit(1)
1031
1034
 
1032
1035
 
@@ -8,6 +8,7 @@ import sys
8
8
  import warnings
9
9
  from pathlib import Path
10
10
  from typing import Annotated, Any, Literal
11
+ from urllib.parse import urlsplit, urlunsplit
11
12
 
12
13
  import cyclopts
13
14
  from ha_mcp._vendor import mcp_types
@@ -64,9 +65,10 @@ def resolve_server_spec(
64
65
  Exactly one of ``server_spec`` or ``command`` should be provided.
65
66
 
66
67
  Resolution order for ``server_spec``:
67
- 1. URLs (``http://``, ``https://``) — passed through as-is.
68
- If ``--transport`` is ``sse``, the URL is rewritten to end with ``/sse``
69
- so ``infer_transport`` picks the right transport.
68
+ 1. URLs (``http://``, ``https://``) — passed through as-is unless an
69
+ explicit transport is selected. In that case, the selected transport
70
+ is constructed directly; SSE URLs are rewritten to end with ``/sse``
71
+ while preserving their query and fragment.
70
72
  2. Existing file paths, or strings ending in ``.py``/``.js``/``.json``.
71
73
  3. Anything else — name-based resolution via ``resolve_name``.
72
74
 
@@ -94,8 +96,15 @@ def resolve_server_spec(
94
96
 
95
97
  # 1. URL
96
98
  if spec.startswith(("http://", "https://")):
97
- if transport == "sse" and not spec.rstrip("/").endswith("/sse"):
98
- spec = spec.rstrip("/") + "/sse"
99
+ if transport == "sse":
100
+ parsed = urlsplit(spec)
101
+ path = parsed.path
102
+ if not path.rstrip("/").endswith("/sse"):
103
+ path = f"{path.rstrip('/')}/sse"
104
+ spec = urlunsplit(parsed._replace(path=path))
105
+ return SSETransport(spec)
106
+ if transport == "http":
107
+ return StreamableHttpTransport(spec)
99
108
  return spec
100
109
 
101
110
  # 2. File path (must be a file, not a directory)
@@ -261,7 +261,8 @@ def _scan_goose() -> list[DiscoveredServer]:
261
261
  """Scan Goose config for MCP server extensions.
262
262
 
263
263
  Goose uses YAML (``~/.config/goose/config.yaml``) with a different
264
- schema — MCP servers are defined as ``extensions`` with ``type: stdio``.
264
+ schema — MCP servers are defined as ``extensions`` with ``type: stdio``
265
+ or ``type: streamable_http``. Legacy ``type: sse`` is also recognized.
265
266
  """
266
267
  if sys.platform == "win32":
267
268
  config_dir = Path(
@@ -311,6 +312,12 @@ def _scan_goose() -> list[DiscoveredServer]:
311
312
  }
312
313
  elif ext_type == "sse" and "uri" in ext:
313
314
  servers[name] = {"url": ext["uri"], "transport": "sse"}
315
+ elif ext_type == "streamable_http" and "uri" in ext:
316
+ servers[name] = {
317
+ "url": ext["uri"],
318
+ "transport": "http",
319
+ "headers": ext.get("headers", {}),
320
+ }
314
321
 
315
322
  return _parse_mcp_servers(servers, source="goose", config_path=path)
316
323