ha-mcp-dev 9.1.0.dev3347__tar.gz → 9.1.0.dev3350__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 (836) hide show
  1. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/PKG-INFO +1 -1
  2. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/pyproject.toml +1 -1
  3. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/pyproject.toml.orig +1 -1
  4. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/SKILL.md +7 -7
  5. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/backups.md +4 -4
  6. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/dashboard-guide.md +17 -10
  7. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/device-control.md +14 -3
  8. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/safe-refactoring.md +1 -1
  9. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/LICENSE +0 -0
  10. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/README.md +0 -0
  11. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/__init__.py +0 -0
  12. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/__main__.py +0 -0
  13. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_pypi_marker +0 -0
  14. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_rich_compat.py +0 -0
  15. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/__init__.py +0 -0
  16. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/LICENSE +0 -0
  17. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/MANIFEST.sha256 +0 -0
  18. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/REQUIRES.txt +0 -0
  19. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/VENDORED +0 -0
  20. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/__init__.py +0 -0
  21. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/_compat.py +0 -0
  22. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/_install_hints.py +0 -0
  23. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/_warnings.py +0 -0
  24. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/apps/__init__.py +0 -0
  25. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/apps/app.py +0 -0
  26. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/apps/approval.py +0 -0
  27. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/apps/choice.py +0 -0
  28. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/apps/config.py +0 -0
  29. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/apps/file_upload.py +0 -0
  30. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/apps/form.py +0 -0
  31. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/apps/generative.py +0 -0
  32. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/cli/__init__.py +0 -0
  33. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/cli/__main__.py +0 -0
  34. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/cli/apps_dev.py +0 -0
  35. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/cli/apps_dev_security.py +0 -0
  36. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/cli/auth.py +0 -0
  37. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/cli/cimd.py +0 -0
  38. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/cli/cli.py +0 -0
  39. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/cli/client.py +0 -0
  40. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/cli/deploy/__init__.py +0 -0
  41. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/cli/deploy/authentication.py +0 -0
  42. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/cli/deploy/command.py +0 -0
  43. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/cli/deploy/configuration.py +0 -0
  44. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/cli/deploy/credentials.py +0 -0
  45. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/cli/deploy/horizon_client.py +0 -0
  46. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/cli/deploy/output.py +0 -0
  47. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/cli/deploy/state.py +0 -0
  48. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/cli/discovery.py +0 -0
  49. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/cli/generate.py +0 -0
  50. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/cli/install/__init__.py +0 -0
  51. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/cli/install/claude_code.py +0 -0
  52. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/cli/install/claude_desktop.py +0 -0
  53. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/cli/install/cursor.py +0 -0
  54. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/cli/install/gemini_cli.py +0 -0
  55. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/cli/install/goose.py +0 -0
  56. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/cli/install/mcp_json.py +0 -0
  57. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/cli/install/shared.py +0 -0
  58. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/cli/install/stdio.py +0 -0
  59. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/cli/run.py +0 -0
  60. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/client/__init__.py +0 -0
  61. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/client/_sdk_context_shim.py +0 -0
  62. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/client/auth/__init__.py +0 -0
  63. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/client/auth/bearer.py +0 -0
  64. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/client/auth/client_credentials.py +0 -0
  65. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/client/auth/oauth.py +0 -0
  66. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/client/caching.py +0 -0
  67. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/client/client.py +0 -0
  68. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/client/dependencies.py +0 -0
  69. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/client/elicitation.py +0 -0
  70. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/client/extension_hooks.py +0 -0
  71. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/client/group.py +0 -0
  72. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/client/logging.py +0 -0
  73. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/client/messages.py +0 -0
  74. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/client/mixins/__init__.py +0 -0
  75. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/client/mixins/prompts.py +0 -0
  76. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/client/mixins/resources.py +0 -0
  77. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/client/mixins/skills.py +0 -0
  78. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/client/mixins/tools.py +0 -0
  79. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/client/oauth_callback.py +0 -0
  80. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/client/progress.py +0 -0
  81. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/client/roots.py +0 -0
  82. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/client/sampling/__init__.py +0 -0
  83. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/client/sampling/handlers/__init__.py +0 -0
  84. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/client/sampling/handlers/anthropic.py +0 -0
  85. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/client/sampling/handlers/google_genai.py +0 -0
  86. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/client/sampling/handlers/openai.py +0 -0
  87. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/client/telemetry.py +0 -0
  88. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/client/transports/__init__.py +0 -0
  89. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/client/transports/base.py +0 -0
  90. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/client/transports/config.py +0 -0
  91. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/client/transports/http.py +0 -0
  92. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/client/transports/inference.py +0 -0
  93. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/client/transports/memory.py +0 -0
  94. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/client/transports/sse.py +0 -0
  95. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/client/transports/stdio.py +0 -0
  96. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/contrib/README.md +0 -0
  97. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/contrib/bulk_tool_caller/README.md +0 -0
  98. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/contrib/bulk_tool_caller/__init__.py +0 -0
  99. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/contrib/bulk_tool_caller/bulk_tool_caller.py +0 -0
  100. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/contrib/bulk_tool_caller/example.py +0 -0
  101. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/contrib/component_manager/README.md +0 -0
  102. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/contrib/component_manager/__init__.py +0 -0
  103. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/contrib/component_manager/component_manager.py +0 -0
  104. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/contrib/component_manager/example.py +0 -0
  105. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/contrib/mcp_mixin/README.md +0 -0
  106. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/contrib/mcp_mixin/__init__.py +0 -0
  107. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/contrib/mcp_mixin/example.py +0 -0
  108. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/contrib/mcp_mixin/mcp_mixin.py +0 -0
  109. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/decorators.py +0 -0
  110. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/dependencies.py +0 -0
  111. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/exceptions.py +0 -0
  112. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/experimental/__init__.py +0 -0
  113. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/experimental/transforms/__init__.py +0 -0
  114. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/experimental/transforms/code_mode.py +0 -0
  115. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/experimental/transforms/jev_search.py +0 -0
  116. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/mcp_config.py +0 -0
  117. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/prompts/__init__.py +0 -0
  118. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/prompts/base.py +0 -0
  119. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/prompts/function_prompt.py +0 -0
  120. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/py.typed +0 -0
  121. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/resources/__init__.py +0 -0
  122. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/resources/base.py +0 -0
  123. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/resources/function_resource.py +0 -0
  124. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/resources/security.py +0 -0
  125. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/resources/template.py +0 -0
  126. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/resources/types.py +0 -0
  127. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/server/__init__.py +0 -0
  128. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/server/auth/__init__.py +0 -0
  129. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/server/auth/auth.py +0 -0
  130. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/server/auth/cimd.py +0 -0
  131. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/server/auth/handlers/__init__.py +0 -0
  132. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/server/auth/handlers/authorize.py +0 -0
  133. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/server/auth/identity_assertion.py +0 -0
  134. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/server/auth/jwt_issuer.py +0 -0
  135. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/server/auth/middleware.py +0 -0
  136. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/server/auth/oauth_proxy/__init__.py +0 -0
  137. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/server/auth/oauth_proxy/consent.py +0 -0
  138. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/server/auth/oauth_proxy/models.py +0 -0
  139. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/server/auth/oauth_proxy/proxy.py +0 -0
  140. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/server/auth/oauth_proxy/ui.py +0 -0
  141. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/server/auth/oauth_proxy/upstream.py +0 -0
  142. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/server/auth/oidc_proxy.py +0 -0
  143. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/__init__.py +0 -0
  144. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/auth0.py +0 -0
  145. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/aws.py +0 -0
  146. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/azure.py +0 -0
  147. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/clerk.py +0 -0
  148. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/debug.py +0 -0
  149. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/descope.py +0 -0
  150. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/discord.py +0 -0
  151. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/github.py +0 -0
  152. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/google.py +0 -0
  153. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/huggingface.py +0 -0
  154. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/in_memory.py +0 -0
  155. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/introspection.py +0 -0
  156. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/jwt.py +0 -0
  157. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/keycloak.py +0 -0
  158. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/oci.py +0 -0
  159. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/propelauth.py +0 -0
  160. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/scalekit.py +0 -0
  161. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/supabase.py +0 -0
  162. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/workos.py +0 -0
  163. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/server/auth/redirect_validation.py +0 -0
  164. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/server/auth/ssrf.py +0 -0
  165. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/server/caching.py +0 -0
  166. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/server/completions.py +0 -0
  167. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/server/context.py +0 -0
  168. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/server/dependencies.py +0 -0
  169. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/server/elicitation.py +0 -0
  170. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/server/event_store.py +0 -0
  171. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/server/extensions.py +0 -0
  172. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/server/http.py +0 -0
  173. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/server/lifespan.py +0 -0
  174. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/server/low_level.py +0 -0
  175. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/server/middleware/__init__.py +0 -0
  176. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/server/middleware/authorization.py +0 -0
  177. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/server/middleware/caching.py +0 -0
  178. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/server/middleware/dereference.py +0 -0
  179. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/server/middleware/error_handling.py +0 -0
  180. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/server/middleware/logging.py +0 -0
  181. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/server/middleware/middleware.py +0 -0
  182. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/server/middleware/ping.py +0 -0
  183. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/server/middleware/rate_limiting.py +0 -0
  184. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/server/middleware/response_limiting.py +0 -0
  185. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/server/middleware/timing.py +0 -0
  186. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/server/middleware/tool_injection.py +0 -0
  187. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/server/mixins/__init__.py +0 -0
  188. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/server/mixins/extensions.py +0 -0
  189. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/server/mixins/lifespan.py +0 -0
  190. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/server/mixins/mcp_operations.py +0 -0
  191. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/server/mixins/transport.py +0 -0
  192. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/server/providers/__init__.py +0 -0
  193. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/server/providers/addressing.py +0 -0
  194. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/server/providers/aggregate.py +0 -0
  195. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/server/providers/base.py +0 -0
  196. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/server/providers/fastmcp_provider.py +0 -0
  197. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/server/providers/filesystem.py +0 -0
  198. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/server/providers/filesystem_discovery.py +0 -0
  199. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/server/providers/local_provider/__init__.py +0 -0
  200. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/server/providers/local_provider/decorators/__init__.py +0 -0
  201. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/server/providers/local_provider/decorators/prompts.py +0 -0
  202. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/server/providers/local_provider/decorators/resources.py +0 -0
  203. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/server/providers/local_provider/decorators/tools.py +0 -0
  204. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/server/providers/local_provider/local_provider.py +0 -0
  205. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/server/providers/openapi/README.md +0 -0
  206. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/server/providers/openapi/__init__.py +0 -0
  207. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/server/providers/openapi/components.py +0 -0
  208. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/server/providers/openapi/provider.py +0 -0
  209. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/server/providers/openapi/routing.py +0 -0
  210. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/server/providers/prefab_payload.py +0 -0
  211. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/server/providers/prefab_synthesis.py +0 -0
  212. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/server/providers/proxy.py +0 -0
  213. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/server/providers/skills/__init__.py +0 -0
  214. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/server/providers/skills/_common.py +0 -0
  215. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/server/providers/skills/claude_provider.py +0 -0
  216. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/server/providers/skills/directory_provider.py +0 -0
  217. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/server/providers/skills/skill_provider.py +0 -0
  218. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/server/providers/skills/vendor_providers.py +0 -0
  219. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/server/providers/wrapped_provider.py +0 -0
  220. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/server/server.py +0 -0
  221. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/server/session_scoped_event_store.py +0 -0
  222. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/server/sessions.py +0 -0
  223. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/server/telemetry.py +0 -0
  224. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/server/transforms/__init__.py +0 -0
  225. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/server/transforms/catalog.py +0 -0
  226. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/server/transforms/namespace.py +0 -0
  227. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/server/transforms/prompts_as_tools.py +0 -0
  228. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/server/transforms/resources_as_tools.py +0 -0
  229. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/server/transforms/search/__init__.py +0 -0
  230. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/server/transforms/search/base.py +0 -0
  231. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/server/transforms/search/bm25.py +0 -0
  232. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/server/transforms/search/regex.py +0 -0
  233. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/server/transforms/tool_transform.py +0 -0
  234. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/server/transforms/version_filter.py +0 -0
  235. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/server/transforms/visibility.py +0 -0
  236. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/settings.py +0 -0
  237. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/skills/__init__.py +0 -0
  238. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/skills/_constants.py +0 -0
  239. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/skills/_resources.py +0 -0
  240. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/skills/_snapshot.py +0 -0
  241. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/skills/_source.py +0 -0
  242. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/skills/client.py +0 -0
  243. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/skills/extension.py +0 -0
  244. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/skills/models.py +0 -0
  245. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/telemetry.py +0 -0
  246. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/tools/__init__.py +0 -0
  247. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/tools/base.py +0 -0
  248. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/tools/function_parsing.py +0 -0
  249. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/tools/function_tool.py +0 -0
  250. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/tools/tool_transform.py +0 -0
  251. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/types.py +0 -0
  252. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/utilities/__init__.py +0 -0
  253. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/utilities/asgi_transport.py +0 -0
  254. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/utilities/async_utils.py +0 -0
  255. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/utilities/auth.py +0 -0
  256. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/utilities/authorization.py +0 -0
  257. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/utilities/cli.py +0 -0
  258. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/utilities/components.py +0 -0
  259. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/utilities/docstring_parsing.py +0 -0
  260. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/utilities/exceptions.py +0 -0
  261. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/utilities/http.py +0 -0
  262. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/utilities/inspect.py +0 -0
  263. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/utilities/json_schema.py +0 -0
  264. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/utilities/json_schema_type.py +0 -0
  265. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/utilities/lifespan.py +0 -0
  266. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/utilities/logging.py +0 -0
  267. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/utilities/mcp_server_config/__init__.py +0 -0
  268. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/utilities/mcp_server_config/v1/__init__.py +0 -0
  269. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/utilities/mcp_server_config/v1/environments/__init__.py +0 -0
  270. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/utilities/mcp_server_config/v1/environments/base.py +0 -0
  271. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/utilities/mcp_server_config/v1/environments/uv.py +0 -0
  272. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/utilities/mcp_server_config/v1/mcp_server_config.py +0 -0
  273. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/utilities/mcp_server_config/v1/schema.json +0 -0
  274. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/utilities/mcp_server_config/v1/sources/__init__.py +0 -0
  275. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/utilities/mcp_server_config/v1/sources/base.py +0 -0
  276. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/utilities/mcp_server_config/v1/sources/filesystem.py +0 -0
  277. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/utilities/mime.py +0 -0
  278. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/utilities/openapi/README.md +0 -0
  279. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/utilities/openapi/__init__.py +0 -0
  280. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/utilities/openapi/director.py +0 -0
  281. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/utilities/openapi/formatters.py +0 -0
  282. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/utilities/openapi/json_schema_converter.py +0 -0
  283. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/utilities/openapi/models.py +0 -0
  284. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/utilities/openapi/parser.py +0 -0
  285. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/utilities/openapi/schemas.py +0 -0
  286. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/utilities/pagination.py +0 -0
  287. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/utilities/prefab.py +0 -0
  288. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/utilities/skills.py +0 -0
  289. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/utilities/tasks.py +0 -0
  290. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/utilities/tests.py +0 -0
  291. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/utilities/timeout.py +0 -0
  292. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/utilities/token_cache.py +0 -0
  293. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/utilities/types.py +0 -0
  294. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/utilities/ui.py +0 -0
  295. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/utilities/version_check.py +0 -0
  296. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/fastmcp/utilities/versions.py +0 -0
  297. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/LICENSE +0 -0
  298. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/MANIFEST.sha256 +0 -0
  299. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/REQUIRES.txt +0 -0
  300. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/VENDORED +0 -0
  301. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/__init__.py +0 -0
  302. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/cli/__init__.py +0 -0
  303. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/cli/claude.py +0 -0
  304. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/cli/cli.py +0 -0
  305. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/client/__init__.py +0 -0
  306. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/client/__main__.py +0 -0
  307. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/client/_input_required.py +0 -0
  308. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/client/_memory.py +0 -0
  309. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/client/_probe.py +0 -0
  310. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/client/_transport.py +0 -0
  311. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/client/auth/__init__.py +0 -0
  312. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/client/auth/exceptions.py +0 -0
  313. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/client/auth/extensions/__init__.py +0 -0
  314. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/client/auth/extensions/client_credentials.py +0 -0
  315. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/client/auth/extensions/identity_assertion.py +0 -0
  316. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/client/auth/oauth2.py +0 -0
  317. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/client/auth/utils.py +0 -0
  318. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/client/caching.py +0 -0
  319. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/client/client.py +0 -0
  320. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/client/context.py +0 -0
  321. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/client/extension.py +0 -0
  322. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/client/session.py +0 -0
  323. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/client/session_group.py +0 -0
  324. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/client/sse.py +0 -0
  325. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/client/stdio.py +0 -0
  326. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/client/streamable_http.py +0 -0
  327. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/client/subscriptions.py +0 -0
  328. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/os/__init__.py +0 -0
  329. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/os/posix/__init__.py +0 -0
  330. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/os/posix/utilities.py +0 -0
  331. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/os/win32/__init__.py +0 -0
  332. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/os/win32/utilities.py +0 -0
  333. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/py.typed +0 -0
  334. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/server/__init__.py +0 -0
  335. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/server/__main__.py +0 -0
  336. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/server/_otel.py +0 -0
  337. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/server/_streamable_http_modern.py +0 -0
  338. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/server/apps.py +0 -0
  339. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/server/auth/__init__.py +0 -0
  340. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/server/auth/errors.py +0 -0
  341. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/server/auth/handlers/__init__.py +0 -0
  342. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/server/auth/handlers/authorize.py +0 -0
  343. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/server/auth/handlers/metadata.py +0 -0
  344. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/server/auth/handlers/register.py +0 -0
  345. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/server/auth/handlers/revoke.py +0 -0
  346. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/server/auth/handlers/token.py +0 -0
  347. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/server/auth/json_response.py +0 -0
  348. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/server/auth/middleware/__init__.py +0 -0
  349. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/server/auth/middleware/auth_context.py +0 -0
  350. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/server/auth/middleware/bearer_auth.py +0 -0
  351. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/server/auth/middleware/client_auth.py +0 -0
  352. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/server/auth/provider.py +0 -0
  353. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/server/auth/routes.py +0 -0
  354. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/server/auth/settings.py +0 -0
  355. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/server/caching.py +0 -0
  356. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/server/connection.py +0 -0
  357. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/server/context.py +0 -0
  358. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/server/elicitation.py +0 -0
  359. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/server/extension.py +0 -0
  360. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/server/fastmcp.py +0 -0
  361. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/server/lowlevel/__init__.py +0 -0
  362. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/server/lowlevel/helper_types.py +0 -0
  363. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/server/lowlevel/server.py +0 -0
  364. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/server/mcpserver/__init__.py +0 -0
  365. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/server/mcpserver/context.py +0 -0
  366. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/server/mcpserver/exceptions.py +0 -0
  367. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/server/mcpserver/prompts/__init__.py +0 -0
  368. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/server/mcpserver/prompts/base.py +0 -0
  369. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/server/mcpserver/prompts/manager.py +0 -0
  370. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/server/mcpserver/resolve.py +0 -0
  371. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/server/mcpserver/resources/__init__.py +0 -0
  372. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/server/mcpserver/resources/base.py +0 -0
  373. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/server/mcpserver/resources/resource_manager.py +0 -0
  374. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/server/mcpserver/resources/templates.py +0 -0
  375. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/server/mcpserver/resources/types.py +0 -0
  376. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/server/mcpserver/server.py +0 -0
  377. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/server/mcpserver/tools/__init__.py +0 -0
  378. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/server/mcpserver/tools/base.py +0 -0
  379. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/server/mcpserver/tools/tool_manager.py +0 -0
  380. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/server/mcpserver/utilities/__init__.py +0 -0
  381. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/server/mcpserver/utilities/context_injection.py +0 -0
  382. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/server/mcpserver/utilities/func_metadata.py +0 -0
  383. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/server/mcpserver/utilities/logging.py +0 -0
  384. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/server/mcpserver/utilities/types.py +0 -0
  385. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/server/models.py +0 -0
  386. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/server/request_state.py +0 -0
  387. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/server/runner.py +0 -0
  388. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/server/session.py +0 -0
  389. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/server/sse.py +0 -0
  390. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/server/stdio.py +0 -0
  391. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/server/streamable_http.py +0 -0
  392. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/server/streamable_http_manager.py +0 -0
  393. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/server/subscriptions.py +0 -0
  394. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/server/transport_security.py +0 -0
  395. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/server/validation.py +0 -0
  396. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/shared/__init__.py +0 -0
  397. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/shared/_callable_inspection.py +0 -0
  398. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/shared/_compat.py +0 -0
  399. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/shared/_context_streams.py +0 -0
  400. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/shared/_httpx_utils.py +0 -0
  401. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/shared/_otel.py +0 -0
  402. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/shared/_request_clock.py +0 -0
  403. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/shared/_stream_protocols.py +0 -0
  404. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/shared/auth.py +0 -0
  405. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/shared/auth_utils.py +0 -0
  406. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/shared/context.py +0 -0
  407. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/shared/direct_dispatcher.py +0 -0
  408. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/shared/dispatcher.py +0 -0
  409. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/shared/exceptions.py +0 -0
  410. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/shared/extension.py +0 -0
  411. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/shared/inbound.py +0 -0
  412. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/shared/jsonrpc_dispatcher.py +0 -0
  413. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/shared/memory.py +0 -0
  414. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/shared/message.py +0 -0
  415. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/shared/metadata_utils.py +0 -0
  416. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/shared/path_security.py +0 -0
  417. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/shared/peer.py +0 -0
  418. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/shared/subscriptions.py +0 -0
  419. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/shared/tool_name_validation.py +0 -0
  420. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/shared/transport_context.py +0 -0
  421. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/shared/uri_template.py +0 -0
  422. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/types/__init__.py +0 -0
  423. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/types/jsonrpc.py +0 -0
  424. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/types/methods.py +0 -0
  425. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp/types/version.py +0 -0
  426. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp_types/LICENSE +0 -0
  427. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp_types/MANIFEST.sha256 +0 -0
  428. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp_types/REQUIRES.txt +0 -0
  429. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp_types/VENDORED +0 -0
  430. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp_types/__init__.py +0 -0
  431. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp_types/_types.py +0 -0
  432. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp_types/_v2025_11_25/__init__.py +0 -0
  433. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp_types/_v2026_07_28/__init__.py +0 -0
  434. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp_types/_wire_base.py +0 -0
  435. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp_types/jsonrpc.py +0 -0
  436. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp_types/methods.py +0 -0
  437. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp_types/py.typed +0 -0
  438. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/mcp_types/version.py +0 -0
  439. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/requirements.txt +0 -0
  440. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/websockets/LICENSE +0 -0
  441. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/websockets/MANIFEST.sha256 +0 -0
  442. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/websockets/VENDORED +0 -0
  443. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/websockets/__init__.py +0 -0
  444. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/websockets/__main__.py +0 -0
  445. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/websockets/asyncio/__init__.py +0 -0
  446. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/websockets/asyncio/client.py +0 -0
  447. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/websockets/asyncio/connection.py +0 -0
  448. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/websockets/asyncio/messages.py +0 -0
  449. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/websockets/asyncio/router.py +0 -0
  450. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/websockets/asyncio/server.py +0 -0
  451. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/websockets/auth.py +0 -0
  452. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/websockets/cli.py +0 -0
  453. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/websockets/client.py +0 -0
  454. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/websockets/connection.py +0 -0
  455. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/websockets/datastructures.py +0 -0
  456. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/websockets/exceptions.py +0 -0
  457. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/websockets/extensions/__init__.py +0 -0
  458. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/websockets/extensions/base.py +0 -0
  459. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/websockets/extensions/permessage_deflate.py +0 -0
  460. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/websockets/frames.py +0 -0
  461. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/websockets/headers.py +0 -0
  462. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/websockets/http11.py +0 -0
  463. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/websockets/imports.py +0 -0
  464. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/websockets/legacy/__init__.py +0 -0
  465. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/websockets/legacy/auth.py +0 -0
  466. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/websockets/legacy/client.py +0 -0
  467. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/websockets/legacy/exceptions.py +0 -0
  468. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/websockets/legacy/framing.py +0 -0
  469. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/websockets/legacy/handshake.py +0 -0
  470. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/websockets/legacy/http.py +0 -0
  471. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/websockets/legacy/protocol.py +0 -0
  472. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/websockets/legacy/server.py +0 -0
  473. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/websockets/protocol.py +0 -0
  474. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/websockets/proxy.py +0 -0
  475. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/websockets/py.typed +0 -0
  476. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/websockets/server.py +0 -0
  477. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/websockets/streams.py +0 -0
  478. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/websockets/sync/__init__.py +0 -0
  479. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/websockets/sync/client.py +0 -0
  480. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/websockets/sync/connection.py +0 -0
  481. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/websockets/sync/messages.py +0 -0
  482. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/websockets/sync/router.py +0 -0
  483. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/websockets/sync/server.py +0 -0
  484. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/websockets/sync/utils.py +0 -0
  485. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/websockets/trio/__init__.py +0 -0
  486. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/websockets/trio/client.py +0 -0
  487. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/websockets/trio/connection.py +0 -0
  488. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/websockets/trio/messages.py +0 -0
  489. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/websockets/trio/router.py +0 -0
  490. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/websockets/trio/server.py +0 -0
  491. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/websockets/trio/utils.py +0 -0
  492. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/websockets/typing.py +0 -0
  493. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/websockets/uri.py +0 -0
  494. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/websockets/utils.py +0 -0
  495. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_vendor/websockets/version.py +0 -0
  496. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/_version.py +0 -0
  497. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/app_discovery.py +0 -0
  498. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/auth/__init__.py +0 -0
  499. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/auth/consent_form.py +0 -0
  500. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/auth/iss_stamp.py +0 -0
  501. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/auth/oidc_compat.py +0 -0
  502. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/auth/provider.py +0 -0
  503. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/backup_dashboards.py +0 -0
  504. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/backup_diff.py +0 -0
  505. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/backup_entities.py +0 -0
  506. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/backup_entity_ids.py +0 -0
  507. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/backup_helper_target.py +0 -0
  508. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/backup_integrations.py +0 -0
  509. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/backup_manager.py +0 -0
  510. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/backup_tags.py +0 -0
  511. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/backup_todo.py +0 -0
  512. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/backup_zones.py +0 -0
  513. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/browser_landing.py +0 -0
  514. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/client/__init__.py +0 -0
  515. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/client/admin_routes.py +0 -0
  516. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/client/error_log_journald.py +0 -0
  517. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/client/event_listeners.py +0 -0
  518. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/client/models.py +0 -0
  519. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/client/rest_client.py +0 -0
  520. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/client/supervisor_client.py +0 -0
  521. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/client/websocket_client.py +0 -0
  522. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/client/websocket_listener.py +0 -0
  523. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/config.py +0 -0
  524. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/config_backup.py +0 -0
  525. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/config_meta.py +0 -0
  526. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/config_overrides.py +0 -0
  527. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/config_registry.py +0 -0
  528. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/config_settings.py +0 -0
  529. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/dashboard_screenshot/__init__.py +0 -0
  530. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/dashboard_screenshot/capture.py +0 -0
  531. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/dashboard_screenshot/content.py +0 -0
  532. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/dashboard_screenshot/engine_compat.py +0 -0
  533. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/dashboard_screenshot/paths.py +0 -0
  534. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/dashboard_screenshot/provision.py +0 -0
  535. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/dashboard_screenshot/theme_check.py +0 -0
  536. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/dashboard_screenshot/theme_guard.py +0 -0
  537. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/errors.py +0 -0
  538. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/ha_request_queue.py +0 -0
  539. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/hacs_auto_refresh.py +0 -0
  540. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/http_transport.py +0 -0
  541. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/image_info.py +0 -0
  542. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/ipv6_lan_guard.py +0 -0
  543. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/listen_sockets.py +0 -0
  544. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/llm_exposure.py +0 -0
  545. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/log_filters.py +0 -0
  546. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/mcp_client_context.py +0 -0
  547. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/policy/__init__.py +0 -0
  548. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/policy/approval_queue.py +0 -0
  549. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/policy/decision_pin.py +0 -0
  550. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/policy/decisions.py +0 -0
  551. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/policy/editing.py +0 -0
  552. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/policy/evaluator.py +0 -0
  553. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/policy/events.py +0 -0
  554. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/policy/handlers.py +0 -0
  555. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/policy/middleware.py +0 -0
  556. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/policy/model.py +0 -0
  557. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/policy/mrtr.py +0 -0
  558. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/policy/persistence.py +0 -0
  559. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/policy/server_channels.py +0 -0
  560. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/policy/value_sources.py +0 -0
  561. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/py.typed +0 -0
  562. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/read_only.py +0 -0
  563. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/redaction.py +0 -0
  564. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/renamed_tools.py +0 -0
  565. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/resources/skills-vendor/LICENSE +0 -0
  566. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/appdaemon.md +0 -0
  567. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/automation-actions.md +0 -0
  568. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/blueprint-guide.md +0 -0
  569. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/dashboard-cards.md +0 -0
  570. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/domain-docs.md +0 -0
  571. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/examples.yaml +0 -0
  572. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/helper-selection.md +0 -0
  573. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/scenes.md +0 -0
  574. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/template-guidelines.md +0 -0
  575. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/triggers-and-conditions.md +0 -0
  576. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/yaml-only-integrations.md +0 -0
  577. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/server.py +0 -0
  578. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/server_instructions.py +0 -0
  579. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/server_lifespan.py +0 -0
  580. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/server_tool_text.py +0 -0
  581. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/settings_ui/__init__.py +0 -0
  582. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/settings_ui/_handlers_advanced.py +0 -0
  583. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/settings_ui/_handlers_backups.py +0 -0
  584. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/settings_ui/_handlers_fs.py +0 -0
  585. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/settings_ui/_handlers_oauth_callbacks.py +0 -0
  586. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/settings_ui/_handlers_server.py +0 -0
  587. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/settings_ui/_handlers_theme.py +0 -0
  588. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/settings_ui/_handlers_tools.py +0 -0
  589. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/settings_ui/_i18n.py +0 -0
  590. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/settings_ui/_locale_policy.py +0 -0
  591. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/settings_ui/_persistence.py +0 -0
  592. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/settings_ui/_supervisor.py +0 -0
  593. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/settings_ui/_theme.py +0 -0
  594. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/settings_ui/_tools_meta.py +0 -0
  595. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/settings_ui/locales/README.md +0 -0
  596. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/settings_ui/locales/az.json +0 -0
  597. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/settings_ui/locales/cs.json +0 -0
  598. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/settings_ui/locales/de.json +0 -0
  599. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/settings_ui/locales/en.json +0 -0
  600. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/settings_ui/locales/eo.json +0 -0
  601. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/settings_ui/locales/es.json +0 -0
  602. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/settings_ui/locales/fr.json +0 -0
  603. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/settings_ui/locales/hu.json +0 -0
  604. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/settings_ui/locales/it.json +0 -0
  605. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/settings_ui/locales/ko.json +0 -0
  606. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/settings_ui/locales/nl.json +0 -0
  607. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/settings_ui/locales/pl.json +0 -0
  608. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/settings_ui/locales/ru.json +0 -0
  609. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/settings_ui/locales/sv.json +0 -0
  610. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/settings_ui/locales/tlh.json +0 -0
  611. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/settings_ui/locales/zh-Hans.json +0 -0
  612. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/settings_ui/locales/zh-Hant.json +0 -0
  613. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/settings_ui/settings.css +0 -0
  614. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/settings_ui/settings.html +0 -0
  615. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/settings_ui/settings_js/01_i18n_state.js +0 -0
  616. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/settings_ui/settings_js/02_tools_restart.js +0 -0
  617. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/settings_ui/settings_js/03_render_save.js +0 -0
  618. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/settings_ui/settings_js/04_backups.js +0 -0
  619. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/settings_ui/settings_js/05_feature_flags.js +0 -0
  620. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/settings_ui/settings_js/06_policy_cards.js +0 -0
  621. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/settings_ui/settings_js/07_policy_actions.js +0 -0
  622. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/settings_ui/settings_js/08_advanced.js +0 -0
  623. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/settings_ui/settings_js/09_prefs_visibility.js +0 -0
  624. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/settings_ui/settings_js/10_oauth_callbacks.js +0 -0
  625. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/smoke_test.py +0 -0
  626. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/stdio_settings_sidecar.py +0 -0
  627. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/storage_helper_types.py +0 -0
  628. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/strict_bps.py +0 -0
  629. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tool_dispatch.py +0 -0
  630. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/__init__.py +0 -0
  631. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/addon_connection_hints.py +0 -0
  632. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/area_messages.py +0 -0
  633. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/auto_backup.py +0 -0
  634. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/automation_errors.py +0 -0
  635. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/backup.py +0 -0
  636. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/backup_access.py +0 -0
  637. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/backup_on_demand.py +0 -0
  638. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/backup_snapshot.py +0 -0
  639. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/backup_snapshot_restore.py +0 -0
  640. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/best_practice_checker.py +0 -0
  641. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/best_practice_result.py +0 -0
  642. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/best_practice_variables.py +0 -0
  643. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/blueprint_sources.py +0 -0
  644. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/blueprint_substitute.py +0 -0
  645. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/blueprint_write.py +0 -0
  646. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/bug_report_config.py +0 -0
  647. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/bug_report_redaction.py +0 -0
  648. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/bug_report_sources.py +0 -0
  649. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/bug_report_templates.py +0 -0
  650. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/bulk_selector.py +0 -0
  651. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/coercion.py +0 -0
  652. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/component_api.py +0 -0
  653. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/component_automation.py +0 -0
  654. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/component_config_entries.py +0 -0
  655. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/component_config_reads.py +0 -0
  656. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/component_dashboard_edit.py +0 -0
  657. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/component_devices.py +0 -0
  658. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/component_helper_collections.py +0 -0
  659. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/component_registries.py +0 -0
  660. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/component_registry_lookup.py +0 -0
  661. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/component_todo.py +0 -0
  662. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/config_entry_backup.py +0 -0
  663. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/config_entry_flow.py +0 -0
  664. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/config_entry_flow_form.py +0 -0
  665. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/config_entry_flow_introspect.py +0 -0
  666. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/config_entry_flow_menu.py +0 -0
  667. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/config_entry_flow_walker.py +0 -0
  668. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/config_entry_identity.py +0 -0
  669. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/config_entry_reconfigure.py +0 -0
  670. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/config_entry_reload_watch.py +0 -0
  671. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/config_file_visibility.py +0 -0
  672. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/config_helpers/__init__.py +0 -0
  673. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/config_helpers/core_payload.py +0 -0
  674. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/config_helpers/create.py +0 -0
  675. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/config_helpers/describe.py +0 -0
  676. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/config_helpers/flow.py +0 -0
  677. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/config_helpers/icon_route.py +0 -0
  678. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/config_helpers/listing.py +0 -0
  679. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/config_helpers/registry.py +0 -0
  680. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/config_helpers/schemas.py +0 -0
  681. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/config_helpers/typed_config.py +0 -0
  682. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/config_helpers/update.py +0 -0
  683. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/config_helpers/validation.py +0 -0
  684. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/config_subentry_restore.py +0 -0
  685. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/config_write_errors.py +0 -0
  686. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/config_write_helpers.py +0 -0
  687. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/core_contract.py +0 -0
  688. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/dashboard_card_describe.py +0 -0
  689. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/dashboard_edit_errors.py +0 -0
  690. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/dashboard_list_checks.py +0 -0
  691. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/dashboard_read_errors.py +0 -0
  692. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/dev_backup.py +0 -0
  693. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/device_control.py +0 -0
  694. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/device_enrichment.py +0 -0
  695. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/diagnostics_helpers.py +0 -0
  696. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/energy_preferences.py +0 -0
  697. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/entity_expose_batch.py +0 -0
  698. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/entity_param_parsing.py +0 -0
  699. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/entity_registration.py +0 -0
  700. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/entity_removal.py +0 -0
  701. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/entity_update_fields.py +0 -0
  702. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/error_log_parsing.py +0 -0
  703. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/event_call.py +0 -0
  704. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/event_listener_fields.py +0 -0
  705. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/flow_helper_lookup.py +0 -0
  706. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/hacs_backend.py +0 -0
  707. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/hacs_registration.py +0 -0
  708. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/helper_flows.py +0 -0
  709. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/helpers.py +0 -0
  710. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/history_response.py +0 -0
  711. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/integration_entry_state.py +0 -0
  712. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/integration_reconfigure.py +0 -0
  713. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/log_common.py +0 -0
  714. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/log_sources.py +0 -0
  715. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/log_sources_fault.py +0 -0
  716. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/log_sources_logbook.py +0 -0
  717. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/log_sources_supervisor.py +0 -0
  718. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/radio/__init__.py +0 -0
  719. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/radio/base.py +0 -0
  720. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/radio/matter.py +0 -0
  721. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/radio/thread.py +0 -0
  722. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/radio/zigbee.py +0 -0
  723. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/radio/zwave.py +0 -0
  724. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/radio/zwave_parameters.py +0 -0
  725. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/recorder_errors.py +0 -0
  726. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/reference_validator.py +0 -0
  727. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/registry.py +0 -0
  728. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/renamed_tool_middleware.py +0 -0
  729. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/resource_codec.py +0 -0
  730. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/resource_patch.py +0 -0
  731. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/response_helpers.py +0 -0
  732. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/scene_discovery.py +0 -0
  733. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/search/__init__.py +0 -0
  734. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/search/base.py +0 -0
  735. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/search/component.py +0 -0
  736. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/search/entities.py +0 -0
  737. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/search/legacy.py +0 -0
  738. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/search/modes.py +0 -0
  739. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/search/overview.py +0 -0
  740. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/search/response.py +0 -0
  741. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/search/state.py +0 -0
  742. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/server_version.py +0 -0
  743. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/smart_search/__init__.py +0 -0
  744. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/smart_search/_base.py +0 -0
  745. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/smart_search/_config.py +0 -0
  746. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/smart_search/_deep.py +0 -0
  747. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/smart_search/_entities.py +0 -0
  748. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/smart_search/_fetch.py +0 -0
  749. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/smart_search/_graph.py +0 -0
  750. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/smart_search/_overview.py +0 -0
  751. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/smart_search/_scenes.py +0 -0
  752. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/smart_search/_scoring.py +0 -0
  753. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/statistics_calendar.py +0 -0
  754. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/statistics_helpers.py +0 -0
  755. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/statistics_resets.py +0 -0
  756. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/system_restart.py +0 -0
  757. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/tool_hints.py +0 -0
  758. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/tool_search_hint_middleware.py +0 -0
  759. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/tools_addons.py +0 -0
  760. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/tools_areas.py +0 -0
  761. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/tools_assist_pipeline.py +0 -0
  762. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/tools_blueprints.py +0 -0
  763. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/tools_bug_report.py +0 -0
  764. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/tools_calendar.py +0 -0
  765. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/tools_camera.py +0 -0
  766. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/tools_categories.py +0 -0
  767. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/tools_code.py +0 -0
  768. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/tools_config_automations.py +0 -0
  769. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/tools_config_dashboards.py +0 -0
  770. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/tools_config_helpers.py +0 -0
  771. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/tools_config_scenes.py +0 -0
  772. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/tools_config_scripts.py +0 -0
  773. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/tools_dashboard_screenshot.py +0 -0
  774. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/tools_dev.py +0 -0
  775. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/tools_energy.py +0 -0
  776. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/tools_entities.py +0 -0
  777. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/tools_filesystem.py +0 -0
  778. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/tools_groups.py +0 -0
  779. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/tools_hacs.py +0 -0
  780. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/tools_history.py +0 -0
  781. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/tools_integrations.py +0 -0
  782. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/tools_labels.py +0 -0
  783. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/tools_logs.py +0 -0
  784. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/tools_radio.py +0 -0
  785. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/tools_registry.py +0 -0
  786. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/tools_resources.py +0 -0
  787. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/tools_search.py +0 -0
  788. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/tools_security_policy.py +0 -0
  789. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/tools_service.py +0 -0
  790. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/tools_services.py +0 -0
  791. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/tools_system.py +0 -0
  792. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/tools_themes.py +0 -0
  793. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/tools_todo.py +0 -0
  794. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/tools_traces.py +0 -0
  795. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/tools_updates.py +0 -0
  796. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/tools_utility.py +0 -0
  797. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/tools_voice_assistant.py +0 -0
  798. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/tools_yaml_config.py +0 -0
  799. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/tools_yaml_read.py +0 -0
  800. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/tools_zones.py +0 -0
  801. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/update_categories.py +0 -0
  802. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/util_helpers.py +0 -0
  803. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/validation_middleware.py +0 -0
  804. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/tools/ws_waiters.py +0 -0
  805. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/transforms/__init__.py +0 -0
  806. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/transforms/categorized_search.py +0 -0
  807. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/transforms/compact_params.py +0 -0
  808. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/transforms/component_helpers.py +0 -0
  809. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/transforms/component_search.py +0 -0
  810. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/transforms/lite_docstrings.py +0 -0
  811. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/transforms/write_tool_note.py +0 -0
  812. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/transport_security.py +0 -0
  813. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/update_check.py +0 -0
  814. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/utils/__init__.py +0 -0
  815. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/utils/config_hash.py +0 -0
  816. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/utils/config_write_lock.py +0 -0
  817. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/utils/dashboard_patch.py +0 -0
  818. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/utils/data_paths.py +0 -0
  819. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/utils/device_registry_semantics.py +0 -0
  820. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/utils/domain_handlers.py +0 -0
  821. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/utils/entity_membership.py +0 -0
  822. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/utils/fuzzy_search.py +0 -0
  823. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/utils/kill_signal_diagnostics.py +0 -0
  824. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/utils/mcp_client_host.py +0 -0
  825. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/utils/operation_manager.py +0 -0
  826. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/utils/python_sandbox.py +0 -0
  827. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/utils/registry_update_lock.py +0 -0
  828. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/utils/skill_loader.py +0 -0
  829. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/utils/usage_logger.py +0 -0
  830. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/visibility/__init__.py +0 -0
  831. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/visibility/config_files.py +0 -0
  832. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/visibility/enforcement.py +0 -0
  833. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/visibility/identifier_aliases.py +0 -0
  834. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/visibility/model.py +0 -0
  835. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/src/ha_mcp/visibility/persistence.py +0 -0
  836. {ha_mcp_dev-9.1.0.dev3347 → ha_mcp_dev-9.1.0.dev3350}/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.1.0.dev3347
3
+ Version: 9.1.0.dev3350
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.1.0.dev3347"
7
+ version = "9.1.0.dev3350"
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.1.0.dev3347"
7
+ version = "9.1.0.dev3350"
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
@@ -23,7 +23,7 @@ description: >
23
23
  - Existing state changed with no recovery path
24
24
  - Jinja copy-pasted between templates
25
25
  metadata:
26
- version: "53"
26
+ version: "56"
27
27
  ---
28
28
 
29
29
  # Home Assistant Best Practices
@@ -95,7 +95,7 @@ Default `single` mode is often wrong. See [automation-actions #automation-modes]
95
95
 
96
96
  ### 5. For buttons and remotes
97
97
  - **Any integration exposing an `event.*` entity:** Use `event.received` targeting that entity (see the anti-pattern row below)
98
- - **ZHA:** No event entities — use an `event` trigger with `device_ieee` (persistent)
98
+ - **ZHA:** `event.received` if the device has an `event.*` entity (2026.10+; none do in 2026.10), otherwise an `event` trigger with `device_ieee` (persistent)
99
99
  - **Z2M:** Event entities are experimental and off by default — use a `device` trigger (autodiscovered) or `mqtt` trigger
100
100
 
101
101
  Read [device-control #buttonremote-patterns](references/device-control.md#buttonremote-patterns) before writing the trigger.
@@ -117,7 +117,7 @@ Read [device-control #buttonremote-patterns](references/device-control.md#button
117
117
  | Template binary sensor with threshold | `threshold` helper | Built-in hysteresis support | [helper-selection #threshold](references/helper-selection.md#threshold) |
118
118
  | Renaming entity IDs without impact analysis | Follow [safe-refactoring](references/safe-refactoring.md) workflow | Renames break dashboards, scripts, scenes, Config-Entry data, and storage dashboards silently | [safe-refactoring #entity-renames](references/safe-refactoring.md#entity-renames) |
119
119
  | Renaming members of Config-Entry-based groups (UI groups) without updating membership | Update group membership via Options Flow after the registry rename | The entity registry rename does not update `options.entities` in the Config Entry — group silently breaks | [safe-refactoring #config-entry-groups](references/safe-refactoring.md#config-entry-groups) |
120
- | Renaming entities used by Min/Max helpers or custom Config-Entry integrations (e.g. Better Thermostat) without checking their Config-Entry data | Scan the config entries' `data`+`options`; re-select the renamed entity in the Min/Max Options Flow. An integration that keeps it in `data` (Better Thermostat) has no API fix: tell the user and take a full backup before the rename | They store entity_ids in the Config Entry, and a registry rename does not update them; single-source helpers such as Threshold (since 2025.6) and Generic Thermostat update themselves | [safe-refactoring #config-entry-data--blind-spots-for-entity-registry-renames](references/safe-refactoring.md#config-entry-data--blind-spots-for-entity-registry-renames) |
120
+ | Renaming entities used by Min/Max helpers or custom Config-Entry integrations (e.g. Better Thermostat) without checking their Config-Entry data | Scan the config entries' `data`+`options`; re-select the renamed entity in the Min/Max Options Flow. An integration that keeps it in `data` (Better Thermostat) has no API fix: tell the user, offer a full backup, and before the rename wait for their answer on the backup and their go-ahead for the rename | They store entity_ids in the Config Entry, and a registry rename does not update them; single-source helpers such as Threshold (since 2025.6) and Generic Thermostat update themselves | [safe-refactoring #config-entry-data--blind-spots-for-entity-registry-renames](references/safe-refactoring.md#config-entry-data--blind-spots-for-entity-registry-renames) |
121
121
  | `template:` sensor/binary sensor in YAML | Template Helper via the config flow | A flow helper reloads in place and stays UI-editable; a `template:` entry needs a config reload and does not. Exceptions are real — trigger-based templates and `attributes:` have no flow field | [helper-selection #template-helpers](references/helper-selection.md#template-helpers) |
122
122
  | Editing `.storage/` files or other HA internal state directly | Use the HA REST/WebSocket API to manage state and config entries | `.storage/` files are HA's internal state database; direct edits bypass validation, risk corruption, and can be silently overwritten by HA | — |
123
123
  | Looking for automation config in `.storage/` | Read and write automations through the HA config API. UI-created ones are saved to `automations.yaml` | No `.storage/` file holds automation config, in any config mode. `.storage/` holds only the automations' entity registry entries | — |
@@ -133,8 +133,8 @@ Read [device-control #buttonremote-patterns](references/device-control.md#button
133
133
  | Old purpose-specific keys (`battery.low`, `vacuum.docked`, `timer.time_remaining`, ...) or trigger `behavior: any`/`last` | Renamed 2026.7 keys (`battery.became_low`, ...) and `behavior: each`/`all` (renamed 2026.6) | Old keys no longer load; old behavior values raise a repair issue and face removal | [triggers-and-conditions #purpose-specific-triggers--conditions-default-since-20267](references/triggers-and-conditions.md#purpose-specific-triggers--conditions-default-since-20267) |
134
134
  | AppDaemon: callbacks in `__init__`, uncancelled `run_in` timers, state in instance variables, hardcoded entity IDs | Register in `initialize()`, cancel before rescheduling, persist via `input_*` helpers, pass IDs through `self.args` | Each fails silently, resets on reload, or blocks reuse | [appdaemon #appdaemon-specific-anti-patterns](references/appdaemon.md#appdaemon-specific-anti-patterns) |
135
135
  | Blueprints: hardcoded entities, free text where a selector belongs, `!input` inside a template, missing `source_url` | Typed `!input` selectors; bind an input to `variables:` before templating it; always set `source_url` | Hardcoding defeats reuse, text lets typos through, and `!input` is a YAML tag rather than a template value | [blueprint-guide #common-pitfalls](references/blueprint-guide.md#common-pitfalls) |
136
- | Backups: full restore to undo one object edit, no backup before an irreversible operation (registry deletion, integration removal, Core/OS upgrade), calling an action "reversible" without naming its inverse | Roll the single object back; take the backup *before*; name the exact inverse or treat it as irreversible | A full restore reverts every unrelated change since and restarts HA; a backup taken afterward captures the damage | [backups #when-a-full-backup-earns-its-cost](references/backups.md#when-a-full-backup-earns-its-cost) |
137
- | Restoring a backup, deleting a backup, or upgrading Core or the OS without explicit user confirmation | Ask, name the concrete effect, and wait for an answer — every time, backup or not | A full restore discards everything since the archive for all restored parts and restarts HA; a Supervisor partial restore overwrites only the selected archive parts; deletion destroys a recovery point; a Core/OS upgrade is high-impact and its recovery path IS the pre-upgrade backup | [backups](references/backups.md) |
136
+ | Backups: full restore to undo one object edit, no backup offered before an irreversible operation (registry deletion, integration removal, Core/OS upgrade), calling an action "reversible" without naming its inverse | Roll the single object back; offer the user a backup *before* and wait for their answer; name the exact inverse or treat it as irreversible | A full restore reverts every unrelated change since and restarts HA; a backup taken afterward captures the damage | [backups #when-a-full-backup-earns-its-cost](references/backups.md#when-a-full-backup-earns-its-cost) |
137
+ | Restoring a backup, deleting a backup, or upgrading Core or the OS without explicit user confirmation | Ask, name the concrete effect, and wait for an answer — every time, backup or not | A full restore discards everything since the archive for all restored parts and restarts HA; a Supervisor partial restore overwrites only the selected archive parts; deletion destroys a recovery point; a Core/OS upgrade is high-impact and a pre-upgrade backup is a recovery path | [backups](references/backups.md) |
138
138
  | The same non-trivial Jinja expression repeated across templates | Once a native trigger/condition and a built-in helper are ruled out, define it once as a macro in `config/custom_templates/*.jinja` and import it | One definition to fix when the rule changes, instead of copies that drift apart | [template-guidelines #reusable-macros](references/template-guidelines.md#reusable-macros) |
139
139
  | `trigger`, `this`, `value_json`, or a `{% set %}` variable used inside an imported macro | Pass it to the macro as an argument | An import does not carry the caller's context — the variable is undefined inside the macro, so it renders empty and any attribute access on it errors (HA's own functions like `states` are globals and do work) | [template-guidelines #imports-do-not-carry-the-callers-context](references/template-guidelines.md#imports-do-not-carry-the-callers-context) |
140
140
 
@@ -154,10 +154,10 @@ Read each file whose row matches the task before you answer:
154
154
  | [yaml-only-integrations](references/yaml-only-integrations.md) | Creating or editing YAML-only integrations that have no config flow (e.g. `command_line`, platform-based `mqtt`, `rest`) |
155
155
  | [device-control](references/device-control.md) | Writing actions, button/remote automations, or using target: |
156
156
  | [scenes](references/scenes.md) | Authoring or activating scenes; snapshot/restore patterns, including putting devices back the way they were after a temporary change; snapshot-vs-script distinction |
157
- | [dashboard-guide](references/dashboard-guide.md) | Designing or modifying Lovelace dashboards — layout, view types, strategies, sections, cards, badges, CSS styling, HACS |
157
+ | [dashboard-guide](references/dashboard-guide.md) | Designing or modifying Lovelace dashboards — layout, view types, strategies, sections, cards, badges, CSS styling, HACS / Marketplace |
158
158
  | [dashboard-cards](references/dashboard-cards.md) | Looking up built-in card types (core, energy, legacy) or where to read a card's fields; [entities-card attribute rows](references/dashboard-cards.md#entities-card-attribute-rows-need-type-attribute) — a row with `attribute:` but no `type: attribute` shows the entity state, not the attribute |
159
159
  | [domain-docs](references/domain-docs.md) | Looking up integration/domain documentation, or the dedicated doc page for a specific trigger, condition, or action |
160
160
  | [examples.yaml](references/examples.yaml) | Need compound examples combining multiple best practices |
161
161
  | [appdaemon](references/appdaemon.md) | AppDaemon apps: when to use vs. native HA, app structure, actions, scheduling, error handling, safe refactoring impact |
162
162
  | [blueprint-guide](references/blueprint-guide.md) | Authoring reusable blueprints: metadata & `source_url`, inputs & selectors, `target` vs `entity`, defaults, input sections, `!input` templating, versioning |
163
- | [backups](references/backups.md) | Deciding whether an operation needs a backup first; choosing between a full restore, a partial restore, and rolling one object back; what an archive actually contains; encryption keys and the emergency kit; restore verification; what HA does and does not protect when deleting a backup; whether a git config repo replaces a full backup |
163
+ | [backups](references/backups.md) | Deciding whether to offer a backup before an operation; choosing between a full restore, a partial restore, and rolling one object back; what an archive actually contains; encryption keys and the emergency kit; restore verification; what HA does and does not protect when deleting a backup; whether a git config repo replaces a full backup |
@@ -10,7 +10,7 @@
10
10
 
11
11
  - **Restoring a backup** — *irreversible*: it discards every change made since that archive and restarts HA. The only way back is another backup taken before the restore.
12
12
  - **Deleting a backup** — *irreversible*: the archive is gone, and with it any recovery point it was the last copy of.
13
- - **Upgrading Core or the OS** — *high-impact rather than strictly irreversible*: it can break integrations and custom components, and the recovery path is restoring the pre-upgrade backup, which is why one has to exist first.
13
+ - **Upgrading Core or the OS** — *high-impact rather than strictly irreversible*: it can break integrations and custom components, and a recovery path is restoring a pre-upgrade backup, so offer one first; if the user declines, tell them the newest backup they already have, if any, lacks the changes made since it was taken.
14
14
 
15
15
  A backup lowers recovery risk; it does not authorize the action.
16
16
 
@@ -44,9 +44,9 @@ Prefer the narrowest path that can fix the fault. Object rollback is scoped to o
44
44
 
45
45
  ## When a Full Backup Earns Its Cost
46
46
 
47
- The test is reversibility, not how risky something feels: **back up before an operation you cannot undo by writing the old value back.**
47
+ The test is reversibility, not how risky something feels: **offer a backup before an operation you cannot undo by writing the old value back.** Whether to make one is the user's call.
48
48
 
49
- **Irreversible — take the backup first, and confirm the operation with the user:**
49
+ **Irreversible — offer the user a backup first, wait for their answer, and confirm the operation with them:**
50
50
  - Deleting a device, entity, or area from the registry.
51
51
  - Removing an integration or config entry.
52
52
  - Removing an App, or a major App version jump.
@@ -70,7 +70,7 @@ The test is reversibility, not how risky something feels: **back up before an op
70
70
 
71
71
  Three things this test depends on:
72
72
 
73
- - **Timing is the whole point.** A backup taken *after* the destructive step captures the damage. It must precede the operation.
73
+ - **Timing is the whole point.** A backup taken *after* the destructive step captures the damage. If the user wants one, it must precede the operation.
74
74
  - **An existing schedule does not substitute.** On an instance with nightly automatic backups, the newest one can be almost a day stale — fine for reversible edits, not for an irreversible operation about to run now.
75
75
  - **A git config repo does not substitute.** A `/config` directory tracked in git conventionally excludes the recorder database, along with `.storage` and `secrets.yaml`, which carry credentials and long-lived tokens in cleartext. Such a repo holds tracked files only, and the irreversible operations above destroy registry, config-entry, or install state that it does not hold. A repo that does track `.storage` carries those credentials into every clone, so it must not go anywhere the user has not chosen, and writing `.storage` back over a running instance is a direct edit of HA's internal state rather than a restore.
76
76
 
@@ -16,7 +16,7 @@ Patterns and decisions for designing Home Assistant Lovelace dashboards.
16
16
  - [Actions](#actions)
17
17
  - [Custom Cards](#custom-cards)
18
18
  - [CSS Styling](#css-styling)
19
- - [HACS Integration](#hacs-integration)
19
+ - [HACS and the Marketplace](#hacs-and-the-marketplace)
20
20
  - [Complete Example: Multi-View Dashboard](#complete-example-multi-view-dashboard)
21
21
  - [Common Pitfalls](#common-pitfalls)
22
22
  - [Modern Best Practices](#modern-best-practices)
@@ -425,7 +425,7 @@ Use the HA dashboard resource API to convert inline code to a hosted URL, then r
425
425
 
426
426
  **Resource caching:** `/local/` is served with `public, max-age=2678400`, a 31-day cache, in desktop browsers as well as the Companion app. Editing a registered `.js` file in place leaves clients on the old copy until it expires or the client clears its cache.
427
427
 
428
- - HACS versions the plugin resource URLs it manages in storage (`?hacstag=<installed version>`), so a card installed through HACS is re-fetched on update. With YAML-mode resources HACS cannot update the URL, so that version string is yours to bump.
428
+ - HACS and the Marketplace register a card's resource on install and version its URL in storage mode: HACS (2026.10 and older) as `?hacstag=<installed version>`, the Marketplace (2026.11 and later) as `?v=<repository id>-<version>`. A card installed through either is re-fetched on update. Do not add its resource again through the resource API; that creates a duplicate. With YAML-mode resources neither can update the URL, so that version string is yours to bump.
429
429
  - A resource registered by hand needs the same: bump a version query string on the resource `url`, `/local/quick-status-card.js?v=2.0.0`. Only a changed URL forces every client to re-fetch, so renaming the element tag does not help; the cached module still registers the old tag name.
430
430
  - A client already holding a stale copy needs a client-side fix: hard refresh, clear site data for the HA origin, or **Settings** > **Reset frontend cache** in the Companion app.
431
431
 
@@ -435,7 +435,7 @@ Use the HA dashboard resource API to convert inline code to a hosted URL, then r
435
435
 
436
436
  ### Themes
437
437
 
438
- Global styling is done with HA **themes** (YAML maps of CSS variables), not raw CSS. Themes are defined under `frontend: themes:` in YAML or installed via HACS, and selected per user (profile) or per view/card with the `theme` option. Define both modes so OS dark/light switching applies cleanly to both:
438
+ Global styling is done with HA **themes** (YAML maps of CSS variables), not raw CSS. Themes are defined under `frontend: themes:` in YAML or installed from HACS or the Marketplace, and selected per user (profile) or per view/card with the `theme` option. Define both modes so OS dark/light switching applies cleanly to both:
439
439
 
440
440
  ```yaml
441
441
  frontend:
@@ -452,7 +452,7 @@ frontend:
452
452
 
453
453
  ### Card-mod (Per-Card Styling)
454
454
 
455
- Requires the `card-mod` HACS component. Use sparingly: it patches frontend internals via shadow-DOM selectors, which makes it a frequent source of breakage after HA upgrades — prefer native options and theme variables where they exist, and re-test card-mod styling after every HA update:
455
+ Requires the `card-mod` card from HACS or the Marketplace. Use sparingly: it patches frontend internals via shadow-DOM selectors, which makes it a frequent source of breakage after HA upgrades — prefer native options and theme variables where they exist, and re-test card-mod styling after every HA update:
456
456
 
457
457
  ```yaml
458
458
  type: entities
@@ -468,20 +468,27 @@ entities:
468
468
 
469
469
  ---
470
470
 
471
- ## HACS Integration
471
+ ## HACS and the Marketplace
472
+
473
+ Since 2026.11 the built-in Marketplace replaces HACS. It is under **Settings** > **Marketplace**, not in the sidebar. HACS installs migrate on the first start after the upgrade. On 2026.10 and older, community cards come from HACS, a custom integration. Check the HA version before naming either.
472
474
 
473
475
  | Use case | Solution |
474
476
  |----------|----------|
475
- | Popular community card | HACS — search and install via HACS API |
477
+ | Popular community card | HACS / Marketplace — search and install via its API |
476
478
  | Small custom styling | Inline CSS — register via HA dashboard resource API |
477
479
  | One-off custom card | Inline module — register via HA dashboard resource API |
478
- | Large/complex card | HACS or filesystem (`/config/www/`) |
480
+ | Large/complex card | HACS / Marketplace or filesystem (`/config/www/`) |
479
481
 
480
482
  ### Finding and Installing Cards
481
483
 
482
- Search HACS for community cards by name/category, review repository details, then install. HACS install operations are destructive — clients will ask for user confirmation.
484
+ Search for community cards by name/category, review repository details, then install. Install operations are destructive, so clients will ask for user confirmation.
485
+
486
+ The Marketplace (2026.11 and later) has two gates that are the user's decision. An agent can reach both through the UI or the API; it still must not clear them for the user:
487
+
488
+ - **First-run notice:** install and update fail with `warning_not_accepted` until the user the agent connects as has accepted the notice in **Settings** > **Marketplace**. Browsing works before that. The notice says community projects are not tested or audited by the Home Assistant project and run inside it. Ask the user to read and accept it themselves.
489
+ - **GitHub account:** adding a custom repository (**Add from link**) fails with `github_not_connected` until a GitHub account is connected in the Marketplace. Connecting links the user's own GitHub account, so ask the user to do it. Without one, the Marketplace does not check installed custom repositories for updates on its own. Catalog projects install and update without it.
483
490
 
484
- ### Popular HACS Cards
491
+ ### Popular Community Cards
485
492
 
486
493
  - **mushroom** — Modern, clean card collection (v5+ aligns with the native tile card; its template card covers Jinja-driven icon/color/content)
487
494
  - **button-card** — Highly customizable buttons with JS templating
@@ -567,7 +574,7 @@ Custom cards predating sections views (early 2024) that haven't updated since ar
567
574
  | Entity not found | Use full entity ID: `light.living_room` not `living_room` |
568
575
  | Features not working | Match feature type to entity domain (e.g., `light-brightness` only works on `light.*`) |
569
576
  | Custom card not loading | Check resource type is `module` and verify URL is accessible |
570
- | Card too large for inline | Use HACS or filesystem instead |
577
+ | Card too large for inline | Use HACS / Marketplace or filesystem instead |
571
578
  | Section title ignored/flagged | Section `title` is deprecated — use a `heading` card as the section's first card |
572
579
  | Cards sized with `layout_options` | Deprecated — use `grid_options` (`columns`/`rows`) |
573
580
  | Map card markers show entity-name initials instead of values | `label_mode` is a **per-entity** option, not card-level: `"entities": [{"entity": "sensor.x", "label_mode": "state"}]` |
@@ -159,7 +159,9 @@ so, and offer to count two presses within a short window instead of inventing a
159
159
 
160
160
  Two Zigbee stacks are exceptions:
161
161
 
162
- - **ZHA has no event platform**, so ZHA remotes use the `zha_event` pattern below.
162
+ - **ZHA added an event platform in 2026.10, but no ZHA device or quirk in that release
163
+ creates an `event.*` entity.** Check the device's entities first: use `event.received` if
164
+ one is there, otherwise the `zha_event` pattern below.
163
165
  - **Zigbee2MQTT's event entities are experimental and off by default** — they need
164
166
  `homeassistant: {experimental_event_entities: true}`, and Z2M documents both the feature
165
167
  and its event-type names as subject to change. Prefer its autodiscovered `device` trigger
@@ -167,10 +169,11 @@ Two Zigbee stacks are exceptions:
167
169
 
168
170
  ### ZHA (Zigbee Home Automation)
169
171
 
170
- ZHA buttons fire `zha_event` events. Use **event triggers** with `device_ieee` (the device's IEEE address), which is **persistent** across re-adds.
172
+ ZHA buttons fire `zha_event` events. When the device has no `event.*` entity, use **event triggers** with `device_ieee` (the device's IEEE address), which is **persistent** across re-adds.
171
173
 
172
174
  ```yaml
173
175
  # RIGHT — device_ieee is persistent across re-adds
176
+ # (fallback — use event.received if the device has an event.* entity)
174
177
  triggers:
175
178
  - trigger: event
176
179
  event_type: zha_event
@@ -179,6 +182,13 @@ triggers:
179
182
  command: "toggle"
180
183
  ```
181
184
 
185
+ This trigger does not link the automation to the device, so the device page does not list it:
186
+ HA links an `event` trigger to a device only through a `device_id` in its `event_data`. HA turns a ZHA `device` trigger
187
+ (`domain: zha`, `type: remote_button_short_press`, ...) into this same `zha_event` +
188
+ `device_ieee` match, and that one is listed, but it is keyed on the `device_id` (see
189
+ [Entity ID vs Device ID](#entity-id-vs-device-id)). The missing entry is expected and is not a
190
+ reason to switch.
191
+
182
192
  For a complete multi-button remote with trigger_id + choose, see [examples.yaml](examples.yaml) Example 2.
183
193
 
184
194
  #### Finding ZHA Event Data
@@ -218,6 +228,7 @@ triggers:
218
228
 
219
229
  | Aspect | ZHA | Zigbee2MQTT |
220
230
  |--------|-----|-------------|
231
+ | `event.*` entities | Platform since 2026.10; none created by any device in 2026.10 | Experimental, off by default |
221
232
  | Trigger type | `event` trigger | `device` trigger or `mqtt` trigger |
222
233
  | Identifier | `device_ieee` (persistent) | `device_id` (autodiscovered) |
223
234
  | Event name | `zha_event` | MQTT device trigger |
@@ -509,7 +520,7 @@ Read left to right and stop at the first column that applies.
509
520
 
510
521
  | Device type | Purpose-specific (check first) | Generic fallback | Zigbee specifics |
511
522
  |-------------|-------------------------------|------------------|------------------|
512
- | Button/Remote | `event.received` on the `event.*` entity, when one exists | `state` on the `event.*` entity (fires on any event type) | ZHA: `event` trigger on `zha_event` + `device_ieee`. Z2M: `device` or `mqtt` trigger |
523
+ | Button/Remote | `event.received` on the `event.*` entity, when one exists | `state` on the `event.*` entity (fires on any event type) | ZHA without an `event.*` entity: `event` trigger on `zha_event` + `device_ieee`. Z2M: `device` or `mqtt` trigger |
513
524
  | Motion sensor | `motion.detected` / `motion.cleared` | `state` | — |
514
525
  | Door/Window | `door.opened` / `door.closed`, `window.opened` / `window.closed` | `state` | — |
515
526
  | Temperature | `temperature.crossed_threshold` / `temperature.changed` | `numeric_state` or `state` | — |
@@ -239,7 +239,7 @@ Iterate the returned entries and check `data` and `options` fields for the old e
239
239
 
240
240
  For an integration marked ❌ that stores entity_ids in `options` (Min/Max Helper): use the Options Flow. See the Config-Entry-Groups section above for the full Options Flow pattern. Integrations marked ✅ need no patch; after the rename, check that their options show the new ID.
241
241
 
242
- For integrations that store entity_ids in `data` (Better Thermostat): `data` fields written during the initial Config Flow setup have no standard API for post-setup mutation — the Options Flow updates `options` only. No API-based fix path exists. Document this limitation to the user before proceeding with a rename. This is the one operation in this guide that a fetch-before-write rollback cannot undo, so treat the rename as irreversible and take a full backup first — see [backups #when-a-full-backup-earns-its-cost](backups.md#when-a-full-backup-earns-its-cost).
242
+ For integrations that store entity_ids in `data` (Better Thermostat): `data` fields written during the initial Config Flow setup have no standard API for post-setup mutation — the Options Flow updates `options` only. No API-based fix path exists. Document this limitation to the user before proceeding with a rename. This is the one operation in this guide that a fetch-before-write rollback cannot undo, so treat the rename as irreversible: offer the user a full backup, and before renaming wait for their answer on the backup and their go-ahead for the rename itself — see [backups #when-a-full-backup-earns-its-cost](backups.md#when-a-full-backup-earns-its-cost).
243
243
 
244
244
  ---
245
245