ha-mcp-dev 9.1.0.dev3285__tar.gz → 9.1.0.dev3293__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 (830) hide show
  1. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/PKG-INFO +1 -1
  2. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/pyproject.toml +1 -1
  3. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/pyproject.toml.orig +1 -1
  4. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/backup_manager.py +2 -14
  5. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/client/rest_client.py +54 -71
  6. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/server_tool_text.py +7 -7
  7. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/settings_ui/locales/az.json +1 -1
  8. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/settings_ui/locales/cs.json +1 -1
  9. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/settings_ui/locales/de.json +1 -1
  10. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/settings_ui/locales/eo.json +1 -1
  11. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/settings_ui/locales/es.json +1 -1
  12. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/settings_ui/locales/fr.json +1 -1
  13. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/settings_ui/locales/it.json +1 -1
  14. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/settings_ui/locales/ko.json +1 -1
  15. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/settings_ui/locales/nl.json +1 -1
  16. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/settings_ui/locales/pl.json +1 -1
  17. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/settings_ui/locales/ru.json +1 -1
  18. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/settings_ui/locales/sv.json +1 -1
  19. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/settings_ui/locales/zh-Hans.json +1 -1
  20. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/settings_ui/locales/zh-Hant.json +1 -1
  21. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/auto_backup.py +6 -6
  22. ha_mcp_dev-9.1.0.dev3293/src/ha_mcp/tools/automation_errors.py +206 -0
  23. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/best_practice_checker.py +5 -60
  24. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/blueprint_substitute.py +2 -2
  25. ha_mcp_dev-9.1.0.dev3293/src/ha_mcp/tools/component_automation.py +92 -0
  26. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/component_config_reads.py +17 -9
  27. ha_mcp_dev-9.1.0.dev3293/src/ha_mcp/tools/config_write_errors.py +96 -0
  28. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/config_write_helpers.py +57 -41
  29. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/reference_validator.py +111 -33
  30. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/tools_blueprints.py +1 -1
  31. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/tools_config_automations.py +630 -859
  32. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/tools_config_scripts.py +1 -1
  33. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/tools_entities.py +5 -5
  34. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/tools_service.py +1 -1
  35. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/utils/config_hash.py +1 -2
  36. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/visibility/identifier_aliases.py +4 -4
  37. ha_mcp_dev-9.1.0.dev3285/src/ha_mcp/tools/config_write_errors.py +0 -185
  38. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/LICENSE +0 -0
  39. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/README.md +0 -0
  40. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/__init__.py +0 -0
  41. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/__main__.py +0 -0
  42. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_pypi_marker +0 -0
  43. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_rich_compat.py +0 -0
  44. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/__init__.py +0 -0
  45. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/LICENSE +0 -0
  46. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/MANIFEST.sha256 +0 -0
  47. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/REQUIRES.txt +0 -0
  48. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/VENDORED +0 -0
  49. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/__init__.py +0 -0
  50. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/_compat.py +0 -0
  51. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/_install_hints.py +0 -0
  52. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/_warnings.py +0 -0
  53. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/apps/__init__.py +0 -0
  54. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/apps/app.py +0 -0
  55. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/apps/approval.py +0 -0
  56. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/apps/choice.py +0 -0
  57. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/apps/config.py +0 -0
  58. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/apps/file_upload.py +0 -0
  59. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/apps/form.py +0 -0
  60. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/apps/generative.py +0 -0
  61. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/cli/__init__.py +0 -0
  62. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/cli/__main__.py +0 -0
  63. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/cli/apps_dev.py +0 -0
  64. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/cli/apps_dev_security.py +0 -0
  65. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/cli/auth.py +0 -0
  66. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/cli/cimd.py +0 -0
  67. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/cli/cli.py +0 -0
  68. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/cli/client.py +0 -0
  69. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/cli/deploy/__init__.py +0 -0
  70. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/cli/deploy/authentication.py +0 -0
  71. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/cli/deploy/command.py +0 -0
  72. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/cli/deploy/configuration.py +0 -0
  73. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/cli/deploy/credentials.py +0 -0
  74. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/cli/deploy/horizon_client.py +0 -0
  75. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/cli/deploy/output.py +0 -0
  76. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/cli/deploy/state.py +0 -0
  77. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/cli/discovery.py +0 -0
  78. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/cli/generate.py +0 -0
  79. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/cli/install/__init__.py +0 -0
  80. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/cli/install/claude_code.py +0 -0
  81. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/cli/install/claude_desktop.py +0 -0
  82. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/cli/install/cursor.py +0 -0
  83. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/cli/install/gemini_cli.py +0 -0
  84. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/cli/install/goose.py +0 -0
  85. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/cli/install/mcp_json.py +0 -0
  86. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/cli/install/shared.py +0 -0
  87. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/cli/install/stdio.py +0 -0
  88. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/cli/run.py +0 -0
  89. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/client/__init__.py +0 -0
  90. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/client/_sdk_context_shim.py +0 -0
  91. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/client/auth/__init__.py +0 -0
  92. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/client/auth/bearer.py +0 -0
  93. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/client/auth/client_credentials.py +0 -0
  94. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/client/auth/oauth.py +0 -0
  95. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/client/caching.py +0 -0
  96. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/client/client.py +0 -0
  97. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/client/dependencies.py +0 -0
  98. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/client/elicitation.py +0 -0
  99. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/client/extension_hooks.py +0 -0
  100. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/client/group.py +0 -0
  101. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/client/logging.py +0 -0
  102. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/client/messages.py +0 -0
  103. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/client/mixins/__init__.py +0 -0
  104. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/client/mixins/prompts.py +0 -0
  105. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/client/mixins/resources.py +0 -0
  106. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/client/mixins/skills.py +0 -0
  107. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/client/mixins/tools.py +0 -0
  108. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/client/oauth_callback.py +0 -0
  109. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/client/progress.py +0 -0
  110. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/client/roots.py +0 -0
  111. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/client/sampling/__init__.py +0 -0
  112. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/client/sampling/handlers/__init__.py +0 -0
  113. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/client/sampling/handlers/anthropic.py +0 -0
  114. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/client/sampling/handlers/google_genai.py +0 -0
  115. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/client/sampling/handlers/openai.py +0 -0
  116. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/client/telemetry.py +0 -0
  117. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/client/transports/__init__.py +0 -0
  118. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/client/transports/base.py +0 -0
  119. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/client/transports/config.py +0 -0
  120. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/client/transports/http.py +0 -0
  121. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/client/transports/inference.py +0 -0
  122. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/client/transports/memory.py +0 -0
  123. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/client/transports/sse.py +0 -0
  124. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/client/transports/stdio.py +0 -0
  125. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/contrib/README.md +0 -0
  126. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/contrib/bulk_tool_caller/README.md +0 -0
  127. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/contrib/bulk_tool_caller/__init__.py +0 -0
  128. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/contrib/bulk_tool_caller/bulk_tool_caller.py +0 -0
  129. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/contrib/bulk_tool_caller/example.py +0 -0
  130. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/contrib/component_manager/README.md +0 -0
  131. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/contrib/component_manager/__init__.py +0 -0
  132. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/contrib/component_manager/component_manager.py +0 -0
  133. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/contrib/component_manager/example.py +0 -0
  134. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/contrib/mcp_mixin/README.md +0 -0
  135. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/contrib/mcp_mixin/__init__.py +0 -0
  136. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/contrib/mcp_mixin/example.py +0 -0
  137. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/contrib/mcp_mixin/mcp_mixin.py +0 -0
  138. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/decorators.py +0 -0
  139. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/dependencies.py +0 -0
  140. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/exceptions.py +0 -0
  141. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/experimental/__init__.py +0 -0
  142. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/experimental/transforms/__init__.py +0 -0
  143. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/experimental/transforms/code_mode.py +0 -0
  144. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/experimental/transforms/jev_search.py +0 -0
  145. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/mcp_config.py +0 -0
  146. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/prompts/__init__.py +0 -0
  147. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/prompts/base.py +0 -0
  148. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/prompts/function_prompt.py +0 -0
  149. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/py.typed +0 -0
  150. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/resources/__init__.py +0 -0
  151. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/resources/base.py +0 -0
  152. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/resources/function_resource.py +0 -0
  153. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/resources/security.py +0 -0
  154. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/resources/template.py +0 -0
  155. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/resources/types.py +0 -0
  156. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/server/__init__.py +0 -0
  157. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/server/auth/__init__.py +0 -0
  158. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/server/auth/auth.py +0 -0
  159. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/server/auth/cimd.py +0 -0
  160. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/server/auth/handlers/__init__.py +0 -0
  161. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/server/auth/handlers/authorize.py +0 -0
  162. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/server/auth/identity_assertion.py +0 -0
  163. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/server/auth/jwt_issuer.py +0 -0
  164. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/server/auth/middleware.py +0 -0
  165. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/server/auth/oauth_proxy/__init__.py +0 -0
  166. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/server/auth/oauth_proxy/consent.py +0 -0
  167. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/server/auth/oauth_proxy/models.py +0 -0
  168. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/server/auth/oauth_proxy/proxy.py +0 -0
  169. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/server/auth/oauth_proxy/ui.py +0 -0
  170. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/server/auth/oauth_proxy/upstream.py +0 -0
  171. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/server/auth/oidc_proxy.py +0 -0
  172. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/__init__.py +0 -0
  173. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/auth0.py +0 -0
  174. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/aws.py +0 -0
  175. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/azure.py +0 -0
  176. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/clerk.py +0 -0
  177. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/debug.py +0 -0
  178. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/descope.py +0 -0
  179. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/discord.py +0 -0
  180. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/github.py +0 -0
  181. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/google.py +0 -0
  182. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/huggingface.py +0 -0
  183. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/in_memory.py +0 -0
  184. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/introspection.py +0 -0
  185. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/jwt.py +0 -0
  186. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/keycloak.py +0 -0
  187. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/oci.py +0 -0
  188. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/propelauth.py +0 -0
  189. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/scalekit.py +0 -0
  190. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/supabase.py +0 -0
  191. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/workos.py +0 -0
  192. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/server/auth/redirect_validation.py +0 -0
  193. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/server/auth/ssrf.py +0 -0
  194. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/server/caching.py +0 -0
  195. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/server/completions.py +0 -0
  196. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/server/context.py +0 -0
  197. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/server/dependencies.py +0 -0
  198. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/server/elicitation.py +0 -0
  199. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/server/event_store.py +0 -0
  200. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/server/extensions.py +0 -0
  201. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/server/http.py +0 -0
  202. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/server/lifespan.py +0 -0
  203. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/server/low_level.py +0 -0
  204. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/server/middleware/__init__.py +0 -0
  205. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/server/middleware/authorization.py +0 -0
  206. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/server/middleware/caching.py +0 -0
  207. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/server/middleware/dereference.py +0 -0
  208. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/server/middleware/error_handling.py +0 -0
  209. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/server/middleware/logging.py +0 -0
  210. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/server/middleware/middleware.py +0 -0
  211. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/server/middleware/ping.py +0 -0
  212. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/server/middleware/rate_limiting.py +0 -0
  213. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/server/middleware/response_limiting.py +0 -0
  214. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/server/middleware/timing.py +0 -0
  215. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/server/middleware/tool_injection.py +0 -0
  216. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/server/mixins/__init__.py +0 -0
  217. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/server/mixins/extensions.py +0 -0
  218. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/server/mixins/lifespan.py +0 -0
  219. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/server/mixins/mcp_operations.py +0 -0
  220. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/server/mixins/transport.py +0 -0
  221. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/server/providers/__init__.py +0 -0
  222. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/server/providers/addressing.py +0 -0
  223. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/server/providers/aggregate.py +0 -0
  224. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/server/providers/base.py +0 -0
  225. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/server/providers/fastmcp_provider.py +0 -0
  226. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/server/providers/filesystem.py +0 -0
  227. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/server/providers/filesystem_discovery.py +0 -0
  228. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/server/providers/local_provider/__init__.py +0 -0
  229. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/server/providers/local_provider/decorators/__init__.py +0 -0
  230. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/server/providers/local_provider/decorators/prompts.py +0 -0
  231. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/server/providers/local_provider/decorators/resources.py +0 -0
  232. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/server/providers/local_provider/decorators/tools.py +0 -0
  233. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/server/providers/local_provider/local_provider.py +0 -0
  234. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/server/providers/openapi/README.md +0 -0
  235. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/server/providers/openapi/__init__.py +0 -0
  236. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/server/providers/openapi/components.py +0 -0
  237. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/server/providers/openapi/provider.py +0 -0
  238. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/server/providers/openapi/routing.py +0 -0
  239. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/server/providers/prefab_payload.py +0 -0
  240. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/server/providers/prefab_synthesis.py +0 -0
  241. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/server/providers/proxy.py +0 -0
  242. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/server/providers/skills/__init__.py +0 -0
  243. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/server/providers/skills/_common.py +0 -0
  244. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/server/providers/skills/claude_provider.py +0 -0
  245. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/server/providers/skills/directory_provider.py +0 -0
  246. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/server/providers/skills/skill_provider.py +0 -0
  247. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/server/providers/skills/vendor_providers.py +0 -0
  248. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/server/providers/wrapped_provider.py +0 -0
  249. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/server/server.py +0 -0
  250. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/server/session_scoped_event_store.py +0 -0
  251. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/server/sessions.py +0 -0
  252. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/server/telemetry.py +0 -0
  253. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/server/transforms/__init__.py +0 -0
  254. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/server/transforms/catalog.py +0 -0
  255. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/server/transforms/namespace.py +0 -0
  256. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/server/transforms/prompts_as_tools.py +0 -0
  257. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/server/transforms/resources_as_tools.py +0 -0
  258. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/server/transforms/search/__init__.py +0 -0
  259. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/server/transforms/search/base.py +0 -0
  260. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/server/transforms/search/bm25.py +0 -0
  261. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/server/transforms/search/regex.py +0 -0
  262. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/server/transforms/tool_transform.py +0 -0
  263. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/server/transforms/version_filter.py +0 -0
  264. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/server/transforms/visibility.py +0 -0
  265. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/settings.py +0 -0
  266. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/skills/__init__.py +0 -0
  267. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/skills/_constants.py +0 -0
  268. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/skills/_resources.py +0 -0
  269. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/skills/_snapshot.py +0 -0
  270. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/skills/_source.py +0 -0
  271. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/skills/client.py +0 -0
  272. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/skills/extension.py +0 -0
  273. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/skills/models.py +0 -0
  274. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/telemetry.py +0 -0
  275. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/tools/__init__.py +0 -0
  276. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/tools/base.py +0 -0
  277. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/tools/function_parsing.py +0 -0
  278. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/tools/function_tool.py +0 -0
  279. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/tools/tool_transform.py +0 -0
  280. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/types.py +0 -0
  281. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/utilities/__init__.py +0 -0
  282. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/utilities/asgi_transport.py +0 -0
  283. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/utilities/async_utils.py +0 -0
  284. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/utilities/auth.py +0 -0
  285. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/utilities/authorization.py +0 -0
  286. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/utilities/cli.py +0 -0
  287. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/utilities/components.py +0 -0
  288. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/utilities/docstring_parsing.py +0 -0
  289. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/utilities/exceptions.py +0 -0
  290. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/utilities/http.py +0 -0
  291. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/utilities/inspect.py +0 -0
  292. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/utilities/json_schema.py +0 -0
  293. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/utilities/json_schema_type.py +0 -0
  294. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/utilities/lifespan.py +0 -0
  295. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/utilities/logging.py +0 -0
  296. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/utilities/mcp_server_config/__init__.py +0 -0
  297. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/utilities/mcp_server_config/v1/__init__.py +0 -0
  298. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/utilities/mcp_server_config/v1/environments/__init__.py +0 -0
  299. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/utilities/mcp_server_config/v1/environments/base.py +0 -0
  300. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/utilities/mcp_server_config/v1/environments/uv.py +0 -0
  301. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/utilities/mcp_server_config/v1/mcp_server_config.py +0 -0
  302. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/utilities/mcp_server_config/v1/schema.json +0 -0
  303. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/utilities/mcp_server_config/v1/sources/__init__.py +0 -0
  304. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/utilities/mcp_server_config/v1/sources/base.py +0 -0
  305. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/utilities/mcp_server_config/v1/sources/filesystem.py +0 -0
  306. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/utilities/mime.py +0 -0
  307. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/utilities/openapi/README.md +0 -0
  308. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/utilities/openapi/__init__.py +0 -0
  309. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/utilities/openapi/director.py +0 -0
  310. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/utilities/openapi/formatters.py +0 -0
  311. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/utilities/openapi/json_schema_converter.py +0 -0
  312. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/utilities/openapi/models.py +0 -0
  313. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/utilities/openapi/parser.py +0 -0
  314. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/utilities/openapi/schemas.py +0 -0
  315. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/utilities/pagination.py +0 -0
  316. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/utilities/prefab.py +0 -0
  317. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/utilities/skills.py +0 -0
  318. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/utilities/tasks.py +0 -0
  319. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/utilities/tests.py +0 -0
  320. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/utilities/timeout.py +0 -0
  321. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/utilities/token_cache.py +0 -0
  322. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/utilities/types.py +0 -0
  323. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/utilities/ui.py +0 -0
  324. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/utilities/version_check.py +0 -0
  325. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/fastmcp/utilities/versions.py +0 -0
  326. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/LICENSE +0 -0
  327. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/MANIFEST.sha256 +0 -0
  328. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/REQUIRES.txt +0 -0
  329. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/VENDORED +0 -0
  330. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/__init__.py +0 -0
  331. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/cli/__init__.py +0 -0
  332. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/cli/claude.py +0 -0
  333. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/cli/cli.py +0 -0
  334. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/client/__init__.py +0 -0
  335. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/client/__main__.py +0 -0
  336. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/client/_input_required.py +0 -0
  337. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/client/_memory.py +0 -0
  338. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/client/_probe.py +0 -0
  339. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/client/_transport.py +0 -0
  340. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/client/auth/__init__.py +0 -0
  341. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/client/auth/exceptions.py +0 -0
  342. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/client/auth/extensions/__init__.py +0 -0
  343. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/client/auth/extensions/client_credentials.py +0 -0
  344. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/client/auth/extensions/identity_assertion.py +0 -0
  345. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/client/auth/oauth2.py +0 -0
  346. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/client/auth/utils.py +0 -0
  347. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/client/caching.py +0 -0
  348. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/client/client.py +0 -0
  349. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/client/context.py +0 -0
  350. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/client/extension.py +0 -0
  351. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/client/session.py +0 -0
  352. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/client/session_group.py +0 -0
  353. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/client/sse.py +0 -0
  354. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/client/stdio.py +0 -0
  355. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/client/streamable_http.py +0 -0
  356. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/client/subscriptions.py +0 -0
  357. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/os/__init__.py +0 -0
  358. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/os/posix/__init__.py +0 -0
  359. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/os/posix/utilities.py +0 -0
  360. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/os/win32/__init__.py +0 -0
  361. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/os/win32/utilities.py +0 -0
  362. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/py.typed +0 -0
  363. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/server/__init__.py +0 -0
  364. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/server/__main__.py +0 -0
  365. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/server/_otel.py +0 -0
  366. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/server/_streamable_http_modern.py +0 -0
  367. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/server/apps.py +0 -0
  368. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/server/auth/__init__.py +0 -0
  369. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/server/auth/errors.py +0 -0
  370. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/server/auth/handlers/__init__.py +0 -0
  371. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/server/auth/handlers/authorize.py +0 -0
  372. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/server/auth/handlers/metadata.py +0 -0
  373. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/server/auth/handlers/register.py +0 -0
  374. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/server/auth/handlers/revoke.py +0 -0
  375. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/server/auth/handlers/token.py +0 -0
  376. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/server/auth/json_response.py +0 -0
  377. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/server/auth/middleware/__init__.py +0 -0
  378. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/server/auth/middleware/auth_context.py +0 -0
  379. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/server/auth/middleware/bearer_auth.py +0 -0
  380. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/server/auth/middleware/client_auth.py +0 -0
  381. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/server/auth/provider.py +0 -0
  382. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/server/auth/routes.py +0 -0
  383. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/server/auth/settings.py +0 -0
  384. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/server/caching.py +0 -0
  385. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/server/connection.py +0 -0
  386. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/server/context.py +0 -0
  387. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/server/elicitation.py +0 -0
  388. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/server/extension.py +0 -0
  389. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/server/fastmcp.py +0 -0
  390. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/server/lowlevel/__init__.py +0 -0
  391. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/server/lowlevel/helper_types.py +0 -0
  392. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/server/lowlevel/server.py +0 -0
  393. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/server/mcpserver/__init__.py +0 -0
  394. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/server/mcpserver/context.py +0 -0
  395. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/server/mcpserver/exceptions.py +0 -0
  396. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/server/mcpserver/prompts/__init__.py +0 -0
  397. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/server/mcpserver/prompts/base.py +0 -0
  398. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/server/mcpserver/prompts/manager.py +0 -0
  399. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/server/mcpserver/resolve.py +0 -0
  400. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/server/mcpserver/resources/__init__.py +0 -0
  401. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/server/mcpserver/resources/base.py +0 -0
  402. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/server/mcpserver/resources/resource_manager.py +0 -0
  403. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/server/mcpserver/resources/templates.py +0 -0
  404. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/server/mcpserver/resources/types.py +0 -0
  405. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/server/mcpserver/server.py +0 -0
  406. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/server/mcpserver/tools/__init__.py +0 -0
  407. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/server/mcpserver/tools/base.py +0 -0
  408. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/server/mcpserver/tools/tool_manager.py +0 -0
  409. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/server/mcpserver/utilities/__init__.py +0 -0
  410. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/server/mcpserver/utilities/context_injection.py +0 -0
  411. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/server/mcpserver/utilities/func_metadata.py +0 -0
  412. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/server/mcpserver/utilities/logging.py +0 -0
  413. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/server/mcpserver/utilities/types.py +0 -0
  414. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/server/models.py +0 -0
  415. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/server/request_state.py +0 -0
  416. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/server/runner.py +0 -0
  417. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/server/session.py +0 -0
  418. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/server/sse.py +0 -0
  419. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/server/stdio.py +0 -0
  420. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/server/streamable_http.py +0 -0
  421. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/server/streamable_http_manager.py +0 -0
  422. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/server/subscriptions.py +0 -0
  423. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/server/transport_security.py +0 -0
  424. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/server/validation.py +0 -0
  425. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/shared/__init__.py +0 -0
  426. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/shared/_callable_inspection.py +0 -0
  427. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/shared/_compat.py +0 -0
  428. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/shared/_context_streams.py +0 -0
  429. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/shared/_httpx_utils.py +0 -0
  430. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/shared/_otel.py +0 -0
  431. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/shared/_request_clock.py +0 -0
  432. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/shared/_stream_protocols.py +0 -0
  433. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/shared/auth.py +0 -0
  434. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/shared/auth_utils.py +0 -0
  435. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/shared/context.py +0 -0
  436. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/shared/direct_dispatcher.py +0 -0
  437. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/shared/dispatcher.py +0 -0
  438. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/shared/exceptions.py +0 -0
  439. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/shared/extension.py +0 -0
  440. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/shared/inbound.py +0 -0
  441. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/shared/jsonrpc_dispatcher.py +0 -0
  442. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/shared/memory.py +0 -0
  443. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/shared/message.py +0 -0
  444. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/shared/metadata_utils.py +0 -0
  445. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/shared/path_security.py +0 -0
  446. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/shared/peer.py +0 -0
  447. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/shared/subscriptions.py +0 -0
  448. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/shared/tool_name_validation.py +0 -0
  449. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/shared/transport_context.py +0 -0
  450. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/shared/uri_template.py +0 -0
  451. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/types/__init__.py +0 -0
  452. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/types/jsonrpc.py +0 -0
  453. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/types/methods.py +0 -0
  454. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp/types/version.py +0 -0
  455. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp_types/LICENSE +0 -0
  456. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp_types/MANIFEST.sha256 +0 -0
  457. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp_types/REQUIRES.txt +0 -0
  458. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp_types/VENDORED +0 -0
  459. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp_types/__init__.py +0 -0
  460. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp_types/_types.py +0 -0
  461. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp_types/_v2025_11_25/__init__.py +0 -0
  462. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp_types/_v2026_07_28/__init__.py +0 -0
  463. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp_types/_wire_base.py +0 -0
  464. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp_types/jsonrpc.py +0 -0
  465. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp_types/methods.py +0 -0
  466. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp_types/py.typed +0 -0
  467. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/mcp_types/version.py +0 -0
  468. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/requirements.txt +0 -0
  469. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/websockets/LICENSE +0 -0
  470. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/websockets/MANIFEST.sha256 +0 -0
  471. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/websockets/VENDORED +0 -0
  472. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/websockets/__init__.py +0 -0
  473. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/websockets/__main__.py +0 -0
  474. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/websockets/asyncio/__init__.py +0 -0
  475. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/websockets/asyncio/client.py +0 -0
  476. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/websockets/asyncio/connection.py +0 -0
  477. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/websockets/asyncio/messages.py +0 -0
  478. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/websockets/asyncio/router.py +0 -0
  479. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/websockets/asyncio/server.py +0 -0
  480. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/websockets/auth.py +0 -0
  481. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/websockets/cli.py +0 -0
  482. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/websockets/client.py +0 -0
  483. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/websockets/connection.py +0 -0
  484. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/websockets/datastructures.py +0 -0
  485. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/websockets/exceptions.py +0 -0
  486. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/websockets/extensions/__init__.py +0 -0
  487. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/websockets/extensions/base.py +0 -0
  488. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/websockets/extensions/permessage_deflate.py +0 -0
  489. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/websockets/frames.py +0 -0
  490. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/websockets/headers.py +0 -0
  491. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/websockets/http11.py +0 -0
  492. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/websockets/imports.py +0 -0
  493. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/websockets/legacy/__init__.py +0 -0
  494. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/websockets/legacy/auth.py +0 -0
  495. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/websockets/legacy/client.py +0 -0
  496. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/websockets/legacy/exceptions.py +0 -0
  497. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/websockets/legacy/framing.py +0 -0
  498. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/websockets/legacy/handshake.py +0 -0
  499. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/websockets/legacy/http.py +0 -0
  500. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/websockets/legacy/protocol.py +0 -0
  501. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/websockets/legacy/server.py +0 -0
  502. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/websockets/protocol.py +0 -0
  503. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/websockets/proxy.py +0 -0
  504. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/websockets/py.typed +0 -0
  505. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/websockets/server.py +0 -0
  506. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/websockets/streams.py +0 -0
  507. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/websockets/sync/__init__.py +0 -0
  508. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/websockets/sync/client.py +0 -0
  509. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/websockets/sync/connection.py +0 -0
  510. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/websockets/sync/messages.py +0 -0
  511. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/websockets/sync/router.py +0 -0
  512. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/websockets/sync/server.py +0 -0
  513. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/websockets/sync/utils.py +0 -0
  514. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/websockets/trio/__init__.py +0 -0
  515. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/websockets/trio/client.py +0 -0
  516. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/websockets/trio/connection.py +0 -0
  517. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/websockets/trio/messages.py +0 -0
  518. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/websockets/trio/router.py +0 -0
  519. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/websockets/trio/server.py +0 -0
  520. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/websockets/trio/utils.py +0 -0
  521. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/websockets/typing.py +0 -0
  522. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/websockets/uri.py +0 -0
  523. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/websockets/utils.py +0 -0
  524. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_vendor/websockets/version.py +0 -0
  525. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/_version.py +0 -0
  526. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/app_discovery.py +0 -0
  527. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/auth/__init__.py +0 -0
  528. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/auth/consent_form.py +0 -0
  529. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/auth/iss_stamp.py +0 -0
  530. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/auth/oidc_compat.py +0 -0
  531. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/auth/provider.py +0 -0
  532. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/backup_dashboards.py +0 -0
  533. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/backup_diff.py +0 -0
  534. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/backup_entities.py +0 -0
  535. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/backup_entity_ids.py +0 -0
  536. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/backup_helper_target.py +0 -0
  537. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/backup_integrations.py +0 -0
  538. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/backup_tags.py +0 -0
  539. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/backup_todo.py +0 -0
  540. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/backup_zones.py +0 -0
  541. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/browser_landing.py +0 -0
  542. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/client/__init__.py +0 -0
  543. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/client/admin_routes.py +0 -0
  544. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/client/error_log_journald.py +0 -0
  545. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/client/models.py +0 -0
  546. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/client/supervisor_client.py +0 -0
  547. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/client/websocket_client.py +0 -0
  548. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/client/websocket_listener.py +0 -0
  549. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/config.py +0 -0
  550. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/config_backup.py +0 -0
  551. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/config_meta.py +0 -0
  552. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/config_overrides.py +0 -0
  553. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/config_registry.py +0 -0
  554. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/config_settings.py +0 -0
  555. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/dashboard_screenshot/__init__.py +0 -0
  556. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/dashboard_screenshot/capture.py +0 -0
  557. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/dashboard_screenshot/content.py +0 -0
  558. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/dashboard_screenshot/engine_compat.py +0 -0
  559. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/dashboard_screenshot/paths.py +0 -0
  560. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/dashboard_screenshot/provision.py +0 -0
  561. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/dashboard_screenshot/theme_guard.py +0 -0
  562. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/errors.py +0 -0
  563. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/ha_request_queue.py +0 -0
  564. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/hacs_auto_refresh.py +0 -0
  565. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/http_transport.py +0 -0
  566. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/image_info.py +0 -0
  567. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/ipv6_lan_guard.py +0 -0
  568. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/listen_sockets.py +0 -0
  569. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/llm_exposure.py +0 -0
  570. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/log_filters.py +0 -0
  571. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/mcp_client_context.py +0 -0
  572. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/policy/__init__.py +0 -0
  573. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/policy/approval_queue.py +0 -0
  574. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/policy/decision_pin.py +0 -0
  575. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/policy/decisions.py +0 -0
  576. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/policy/editing.py +0 -0
  577. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/policy/evaluator.py +0 -0
  578. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/policy/events.py +0 -0
  579. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/policy/handlers.py +0 -0
  580. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/policy/middleware.py +0 -0
  581. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/policy/model.py +0 -0
  582. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/policy/mrtr.py +0 -0
  583. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/policy/persistence.py +0 -0
  584. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/policy/server_channels.py +0 -0
  585. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/policy/value_sources.py +0 -0
  586. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/py.typed +0 -0
  587. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/read_only.py +0 -0
  588. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/redaction.py +0 -0
  589. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/renamed_tools.py +0 -0
  590. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/resources/skills-vendor/LICENSE +0 -0
  591. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/SKILL.md +0 -0
  592. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/appdaemon.md +0 -0
  593. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/automation-actions.md +0 -0
  594. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/backups.md +0 -0
  595. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/blueprint-guide.md +0 -0
  596. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/dashboard-cards.md +0 -0
  597. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/dashboard-guide.md +0 -0
  598. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/device-control.md +0 -0
  599. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/domain-docs.md +0 -0
  600. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/examples.yaml +0 -0
  601. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/helper-selection.md +0 -0
  602. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/safe-refactoring.md +0 -0
  603. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/scenes.md +0 -0
  604. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/template-guidelines.md +0 -0
  605. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/triggers-and-conditions.md +0 -0
  606. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/yaml-only-integrations.md +0 -0
  607. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/server.py +0 -0
  608. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/server_instructions.py +0 -0
  609. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/server_lifespan.py +0 -0
  610. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/settings_ui/__init__.py +0 -0
  611. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/settings_ui/_handlers_advanced.py +0 -0
  612. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/settings_ui/_handlers_backups.py +0 -0
  613. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/settings_ui/_handlers_fs.py +0 -0
  614. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/settings_ui/_handlers_oauth_callbacks.py +0 -0
  615. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/settings_ui/_handlers_server.py +0 -0
  616. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/settings_ui/_handlers_theme.py +0 -0
  617. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/settings_ui/_handlers_tools.py +0 -0
  618. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/settings_ui/_i18n.py +0 -0
  619. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/settings_ui/_locale_policy.py +0 -0
  620. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/settings_ui/_persistence.py +0 -0
  621. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/settings_ui/_supervisor.py +0 -0
  622. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/settings_ui/_theme.py +0 -0
  623. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/settings_ui/_tools_meta.py +0 -0
  624. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/settings_ui/locales/README.md +0 -0
  625. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/settings_ui/locales/en.json +0 -0
  626. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/settings_ui/locales/tlh.json +0 -0
  627. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/settings_ui/settings.css +0 -0
  628. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/settings_ui/settings.html +0 -0
  629. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/settings_ui/settings_js/01_i18n_state.js +0 -0
  630. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/settings_ui/settings_js/02_tools_restart.js +0 -0
  631. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/settings_ui/settings_js/03_render_save.js +0 -0
  632. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/settings_ui/settings_js/04_backups.js +0 -0
  633. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/settings_ui/settings_js/05_feature_flags.js +0 -0
  634. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/settings_ui/settings_js/06_policy_cards.js +0 -0
  635. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/settings_ui/settings_js/07_policy_actions.js +0 -0
  636. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/settings_ui/settings_js/08_advanced.js +0 -0
  637. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/settings_ui/settings_js/09_prefs_visibility.js +0 -0
  638. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/settings_ui/settings_js/10_oauth_callbacks.js +0 -0
  639. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/smoke_test.py +0 -0
  640. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/stdio_settings_sidecar.py +0 -0
  641. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/storage_helper_types.py +0 -0
  642. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/strict_bps.py +0 -0
  643. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tool_dispatch.py +0 -0
  644. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/__init__.py +0 -0
  645. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/addon_connection_hints.py +0 -0
  646. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/area_messages.py +0 -0
  647. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/backup.py +0 -0
  648. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/backup_access.py +0 -0
  649. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/backup_on_demand.py +0 -0
  650. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/backup_snapshot.py +0 -0
  651. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/backup_snapshot_restore.py +0 -0
  652. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/best_practice_result.py +0 -0
  653. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/best_practice_variables.py +0 -0
  654. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/blueprint_sources.py +0 -0
  655. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/blueprint_write.py +0 -0
  656. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/bug_report_config.py +0 -0
  657. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/bug_report_redaction.py +0 -0
  658. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/bug_report_sources.py +0 -0
  659. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/bug_report_templates.py +0 -0
  660. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/bulk_selector.py +0 -0
  661. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/coercion.py +0 -0
  662. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/component_api.py +0 -0
  663. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/component_config_entries.py +0 -0
  664. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/component_dashboard_edit.py +0 -0
  665. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/component_devices.py +0 -0
  666. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/component_helper_collections.py +0 -0
  667. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/component_registries.py +0 -0
  668. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/component_registry_lookup.py +0 -0
  669. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/component_todo.py +0 -0
  670. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/config_entry_backup.py +0 -0
  671. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/config_entry_flow.py +0 -0
  672. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/config_entry_flow_form.py +0 -0
  673. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/config_entry_flow_introspect.py +0 -0
  674. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/config_entry_flow_menu.py +0 -0
  675. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/config_entry_flow_walker.py +0 -0
  676. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/config_entry_identity.py +0 -0
  677. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/config_entry_reconfigure.py +0 -0
  678. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/config_entry_reload_watch.py +0 -0
  679. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/config_file_visibility.py +0 -0
  680. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/config_helpers/__init__.py +0 -0
  681. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/config_helpers/core_payload.py +0 -0
  682. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/config_helpers/create.py +0 -0
  683. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/config_helpers/describe.py +0 -0
  684. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/config_helpers/flow.py +0 -0
  685. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/config_helpers/icon_route.py +0 -0
  686. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/config_helpers/listing.py +0 -0
  687. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/config_helpers/registry.py +0 -0
  688. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/config_helpers/schemas.py +0 -0
  689. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/config_helpers/typed_config.py +0 -0
  690. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/config_helpers/update.py +0 -0
  691. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/config_helpers/validation.py +0 -0
  692. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/config_subentry_restore.py +0 -0
  693. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/core_contract.py +0 -0
  694. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/dashboard_card_describe.py +0 -0
  695. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/dashboard_edit_errors.py +0 -0
  696. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/dashboard_list_checks.py +0 -0
  697. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/dashboard_read_errors.py +0 -0
  698. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/dev_backup.py +0 -0
  699. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/device_control.py +0 -0
  700. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/device_enrichment.py +0 -0
  701. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/diagnostics_helpers.py +0 -0
  702. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/energy_preferences.py +0 -0
  703. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/entity_expose_batch.py +0 -0
  704. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/entity_param_parsing.py +0 -0
  705. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/entity_registration.py +0 -0
  706. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/entity_removal.py +0 -0
  707. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/entity_update_fields.py +0 -0
  708. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/error_log_parsing.py +0 -0
  709. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/flow_helper_lookup.py +0 -0
  710. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/hacs_backend.py +0 -0
  711. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/hacs_registration.py +0 -0
  712. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/helper_flows.py +0 -0
  713. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/helpers.py +0 -0
  714. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/history_response.py +0 -0
  715. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/integration_entry_state.py +0 -0
  716. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/integration_reconfigure.py +0 -0
  717. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/log_common.py +0 -0
  718. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/log_sources.py +0 -0
  719. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/log_sources_fault.py +0 -0
  720. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/log_sources_logbook.py +0 -0
  721. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/log_sources_supervisor.py +0 -0
  722. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/radio/__init__.py +0 -0
  723. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/radio/base.py +0 -0
  724. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/radio/matter.py +0 -0
  725. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/radio/thread.py +0 -0
  726. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/radio/zigbee.py +0 -0
  727. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/radio/zwave.py +0 -0
  728. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/radio/zwave_parameters.py +0 -0
  729. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/recorder_errors.py +0 -0
  730. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/registry.py +0 -0
  731. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/renamed_tool_middleware.py +0 -0
  732. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/response_helpers.py +0 -0
  733. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/scene_discovery.py +0 -0
  734. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/search/__init__.py +0 -0
  735. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/search/base.py +0 -0
  736. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/search/component.py +0 -0
  737. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/search/entities.py +0 -0
  738. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/search/legacy.py +0 -0
  739. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/search/modes.py +0 -0
  740. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/search/overview.py +0 -0
  741. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/search/response.py +0 -0
  742. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/search/state.py +0 -0
  743. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/server_version.py +0 -0
  744. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/smart_search/__init__.py +0 -0
  745. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/smart_search/_base.py +0 -0
  746. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/smart_search/_config.py +0 -0
  747. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/smart_search/_deep.py +0 -0
  748. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/smart_search/_entities.py +0 -0
  749. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/smart_search/_fetch.py +0 -0
  750. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/smart_search/_graph.py +0 -0
  751. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/smart_search/_overview.py +0 -0
  752. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/smart_search/_scenes.py +0 -0
  753. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/smart_search/_scoring.py +0 -0
  754. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/statistics_calendar.py +0 -0
  755. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/statistics_helpers.py +0 -0
  756. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/statistics_resets.py +0 -0
  757. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/system_restart.py +0 -0
  758. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/tool_hints.py +0 -0
  759. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/tool_search_hint_middleware.py +0 -0
  760. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/tools_addons.py +0 -0
  761. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/tools_areas.py +0 -0
  762. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/tools_assist_pipeline.py +0 -0
  763. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/tools_bug_report.py +0 -0
  764. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/tools_calendar.py +0 -0
  765. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/tools_camera.py +0 -0
  766. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/tools_categories.py +0 -0
  767. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/tools_code.py +0 -0
  768. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/tools_config_dashboards.py +0 -0
  769. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/tools_config_helpers.py +0 -0
  770. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/tools_config_scenes.py +0 -0
  771. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/tools_dashboard_screenshot.py +0 -0
  772. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/tools_dev.py +0 -0
  773. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/tools_energy.py +0 -0
  774. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/tools_filesystem.py +0 -0
  775. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/tools_groups.py +0 -0
  776. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/tools_hacs.py +0 -0
  777. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/tools_history.py +0 -0
  778. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/tools_integrations.py +0 -0
  779. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/tools_labels.py +0 -0
  780. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/tools_logs.py +0 -0
  781. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/tools_radio.py +0 -0
  782. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/tools_registry.py +0 -0
  783. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/tools_resources.py +0 -0
  784. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/tools_search.py +0 -0
  785. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/tools_security_policy.py +0 -0
  786. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/tools_services.py +0 -0
  787. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/tools_system.py +0 -0
  788. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/tools_themes.py +0 -0
  789. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/tools_todo.py +0 -0
  790. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/tools_traces.py +0 -0
  791. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/tools_updates.py +0 -0
  792. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/tools_utility.py +0 -0
  793. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/tools_voice_assistant.py +0 -0
  794. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/tools_yaml_config.py +0 -0
  795. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/tools_yaml_read.py +0 -0
  796. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/tools_zones.py +0 -0
  797. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/update_categories.py +0 -0
  798. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/util_helpers.py +0 -0
  799. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/validation_middleware.py +0 -0
  800. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/tools/ws_waiters.py +0 -0
  801. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/transforms/__init__.py +0 -0
  802. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/transforms/categorized_search.py +0 -0
  803. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/transforms/compact_params.py +0 -0
  804. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/transforms/component_helpers.py +0 -0
  805. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/transforms/component_search.py +0 -0
  806. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/transforms/lite_docstrings.py +0 -0
  807. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/transforms/write_tool_note.py +0 -0
  808. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/transport_security.py +0 -0
  809. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/update_check.py +0 -0
  810. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/utils/__init__.py +0 -0
  811. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/utils/config_write_lock.py +0 -0
  812. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/utils/dashboard_patch.py +0 -0
  813. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/utils/data_paths.py +0 -0
  814. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/utils/device_registry_semantics.py +0 -0
  815. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/utils/domain_handlers.py +0 -0
  816. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/utils/entity_membership.py +0 -0
  817. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/utils/fuzzy_search.py +0 -0
  818. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/utils/kill_signal_diagnostics.py +0 -0
  819. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/utils/mcp_client_host.py +0 -0
  820. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/utils/operation_manager.py +0 -0
  821. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/utils/python_sandbox.py +0 -0
  822. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/utils/registry_update_lock.py +0 -0
  823. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/utils/skill_loader.py +0 -0
  824. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/utils/usage_logger.py +0 -0
  825. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/visibility/__init__.py +0 -0
  826. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/visibility/config_files.py +0 -0
  827. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/visibility/enforcement.py +0 -0
  828. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/visibility/model.py +0 -0
  829. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/src/ha_mcp/visibility/persistence.py +0 -0
  830. {ha_mcp_dev-9.1.0.dev3285 → ha_mcp_dev-9.1.0.dev3293}/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.dev3285
3
+ Version: 9.1.0.dev3293
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.dev3285"
7
+ version = "9.1.0.dev3293"
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.dev3285"
7
+ version = "9.1.0.dev3293"
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
@@ -2070,25 +2070,13 @@ async def _ws_send(client: Any, message: dict[str, Any]) -> Any:
2070
2070
 
2071
2071
 
2072
2072
  async def _fetch_automation(client: Any, entity_id: str) -> Any:
2073
- """Fetch an automation through the same path the get tool uses.
2074
-
2075
- Applies ``_normalize_config_for_roundtrip`` so the snapshot matches
2076
- what ``ha_config_get_automation`` returns and round-trips cleanly
2077
- back through ``ha_config_set_automation`` on restore. Imported lazily
2078
- to keep the manager import-cycle-free.
2079
- """
2080
- # Lazy import to avoid backup_manager → tools → backup_manager cycle.
2081
- from .tools.tools_config_automations import _normalize_config_for_roundtrip
2082
-
2073
+ """Fetch the stored body verbatim."""
2083
2074
  try:
2084
- raw = await client.get_automation_config(entity_id)
2075
+ return await client.get_automation_config(entity_id)
2085
2076
  except HomeAssistantError as err:
2086
2077
  if getattr(err, "status_code", None) == 404:
2087
2078
  return None
2088
2079
  raise
2089
- if not isinstance(raw, dict):
2090
- return raw
2091
- return _normalize_config_for_roundtrip(raw)
2092
2080
 
2093
2081
 
2094
2082
  async def _restore_automation(client: Any, entity_id: str, config: Any) -> Any:
@@ -1377,40 +1377,44 @@ class HomeAssistantClient:
1377
1377
  # Automation Configuration Management
1378
1378
 
1379
1379
  async def _resolve_automation_id(self, identifier: str) -> str:
1380
- """Convert entity_id to unique_id if needed, or return unique_id as-is.
1380
+ """Return the config id of ``identifier`` (an entity_id or a config id).
1381
1381
 
1382
- Args:
1383
- identifier: Either entity_id (automation.xxx) or unique_id
1384
-
1385
- Returns:
1386
- The unique_id for configuration API
1382
+ An entity_id resolves through the entity registry first, so a disabled
1383
+ automation (no state) resolves too; the state's ``id`` attribute is the
1384
+ fallback when the registry does not answer with a ``unique_id``.
1387
1385
 
1388
1386
  Raises:
1389
1387
  HomeAssistantAPIError: 404 if not found; other read failures propagate
1390
1388
  """
1391
- if identifier.startswith("automation."):
1392
- try:
1393
- state = await self.get_entity_state(identifier)
1394
- unique_id = state.get("attributes", {}).get("id")
1395
- if not unique_id:
1396
- raise HomeAssistantAPIError(
1397
- f"Automation {identifier} has no unique_id attribute",
1398
- status_code=404,
1399
- )
1400
- logger.debug(
1401
- f"Converted entity_id {identifier} to unique_id {unique_id}"
1402
- )
1403
- return str(unique_id)
1404
- except HomeAssistantAPIError as e:
1405
- if e.status_code != 404: # a failed read is not a missing one
1406
- raise
1407
- raise HomeAssistantAPIError(
1408
- f"Failed to resolve automation {identifier}: {str(e)}",
1409
- status_code=404,
1410
- ) from e
1411
- else:
1412
- # Assume it's already a unique_id
1389
+ if not identifier.startswith("automation."):
1413
1390
  return identifier
1391
+ try:
1392
+ entry = await self.send_websocket_message(
1393
+ {"type": "config/entity_registry/get", "entity_id": identifier}
1394
+ )
1395
+ except HomeAssistantConnectionError as e:
1396
+ logger.debug(f"Registry lookup for {identifier} failed: {e}")
1397
+ entry = {}
1398
+ if entry.get("success"):
1399
+ unique_id = (entry.get("result") or {}).get("unique_id")
1400
+ if unique_id:
1401
+ return str(unique_id)
1402
+ try:
1403
+ state = await self.get_entity_state(identifier)
1404
+ except HomeAssistantAPIError as e:
1405
+ if e.status_code != 404: # a failed read is not a missing one
1406
+ raise
1407
+ raise HomeAssistantAPIError(
1408
+ f"Failed to resolve automation {identifier}: {str(e)}",
1409
+ status_code=404,
1410
+ ) from e
1411
+ unique_id = state.get("attributes", {}).get("id")
1412
+ if not unique_id:
1413
+ raise HomeAssistantAPIError(
1414
+ f"Automation {identifier} has no unique_id attribute",
1415
+ status_code=404,
1416
+ )
1417
+ return str(unique_id)
1414
1418
 
1415
1419
  async def get_automation_config(self, identifier: str) -> dict[str, Any]:
1416
1420
  """Get automation configuration by unique_id or entity_id.
@@ -1446,19 +1450,19 @@ class HomeAssistantClient:
1446
1450
  identifier: str | None = None,
1447
1451
  *,
1448
1452
  _resolved: bool = False,
1453
+ wait_for_entity: bool = False,
1449
1454
  ) -> dict[str, Any]:
1450
1455
  """
1451
1456
  Create new automation or update existing one.
1452
1457
 
1453
1458
  Args:
1454
- config: Automation configuration dictionary
1455
- identifier: Optional automation entity_id or unique_id (None = create new)
1456
- _resolved: When True, ``identifier`` is already the resolved unique_id
1457
- (the caller ran ``_resolve_automation_id``), so the redundant
1458
- entity_id→unique_id lookup is skipped. Ignored on the create path
1459
- (``identifier is None``). The #1404 config-id mismatch guard below
1460
- is unaffected — it still compares ``config['id']`` to the resolved
1461
- unique_id.
1459
+ config: Automation configuration dictionary, sent as given
1460
+ identifier: Optional automation entity_id or config id (None = create new)
1461
+ _resolved: When True, ``identifier`` is already the config id (the
1462
+ caller resolved it), so the entity_id lookup is skipped. The
1463
+ #1404 config-id mismatch guard below still applies.
1464
+ wait_for_entity: Poll for the entity the write registers, as a
1465
+ creation does, and report it as ``entity_id``.
1462
1466
 
1463
1467
  Returns:
1464
1468
  Result with automation unique_id and status
@@ -1466,19 +1470,14 @@ class HomeAssistantClient:
1466
1470
  Raises:
1467
1471
  HomeAssistantAPIError: If configuration invalid or API error
1468
1472
  """
1469
- # Generate unique_id for new automation if not provided
1470
1473
  if identifier is None:
1471
1474
  unique_id = str(int(time.time() * 1000))
1472
- operation = "created"
1473
- logger.debug(f"Creating new automation with unique_id: {unique_id}")
1474
1475
  else:
1475
1476
  unique_id = (
1476
1477
  identifier
1477
1478
  if _resolved
1478
1479
  else await self._resolve_automation_id(identifier)
1479
1480
  )
1480
- operation = "updated"
1481
- logger.debug(f"Updating automation with unique_id: {unique_id}")
1482
1481
 
1483
1482
  # Reject mismatch between resolved storage key and inner ``config["id"]``.
1484
1483
  # HA stores by the inner id field even though the URL carries one too —
@@ -1491,20 +1490,20 @@ class HomeAssistantClient:
1491
1490
  "Cannot create automation with explicit config['id']="
1492
1491
  f"{config_id!r}: Home Assistant stores by the inner id, "
1493
1492
  "which would silently overwrite an existing automation. "
1494
- "Omit 'id' from config to auto-generate, or pass identifier "
1493
+ "Omit 'id' from config to auto-generate, or pass entity_id "
1495
1494
  "to update an existing automation.",
1496
1495
  status_code=400,
1497
1496
  )
1498
1497
  raise HomeAssistantAPIError(
1499
- f"Mismatched automation id: identifier={identifier!r} resolves "
1500
- f"to unique_id={unique_id!r}, but config['id']={config_id!r}. "
1498
+ f"Mismatched automation id: the target's config id is "
1499
+ f"{unique_id!r}, but config['id']={config_id!r}. "
1501
1500
  "Refusing to write to prevent overwriting the wrong automation. "
1502
- f"Remove 'id' from config or set it to the resolved unique_id "
1501
+ f"Remove 'id' from config or set it to the target's config id "
1503
1502
  f"({unique_id!r}).",
1504
1503
  status_code=400,
1505
1504
  )
1506
1505
 
1507
- # Add unique_id to config for updates
1506
+ # Core stores by the body's id, so it carries the target's.
1508
1507
  if unique_id and "id" not in config:
1509
1508
  config = {**config, "id": unique_id}
1510
1509
 
@@ -1513,10 +1512,9 @@ class HomeAssistantClient:
1513
1512
  "POST", f"/config/automation/config/{unique_id}", json=config
1514
1513
  )
1515
1514
 
1516
- # For new automations, query Home Assistant to get the actual entity_id that was assigned
1517
1515
  actual_entity_id = None
1518
1516
  entity_not_verified = False
1519
- if operation == "created":
1517
+ if wait_for_entity:
1520
1518
  actual_entity_id = await self._poll_for_automation_entity(unique_id)
1521
1519
  if not actual_entity_id:
1522
1520
  entity_not_verified = True
@@ -1525,7 +1523,6 @@ class HomeAssistantClient:
1525
1523
  "unique_id": unique_id,
1526
1524
  "entity_id": actual_entity_id,
1527
1525
  "result": response.get("result", "ok"),
1528
- "operation": operation,
1529
1526
  }
1530
1527
  if entity_not_verified:
1531
1528
  result["entity_not_verified"] = True
@@ -1533,7 +1530,9 @@ class HomeAssistantClient:
1533
1530
  except HomeAssistantAPIError as e:
1534
1531
  if e.status_code == 400:
1535
1532
  raise HomeAssistantAPIError(
1536
- f"Invalid automation configuration: {str(e)}", status_code=400
1533
+ f"Invalid automation configuration: {str(e)}",
1534
+ status_code=400,
1535
+ response_data=e.response_data,
1537
1536
  ) from e
1538
1537
  raise
1539
1538
 
@@ -1610,27 +1609,11 @@ class HomeAssistantClient:
1610
1609
  "operation": "deleted",
1611
1610
  }
1612
1611
  except HomeAssistantAPIError as e:
1613
- if e.status_code == 404:
1614
- raise HomeAssistantAPIError(
1615
- f"Automation not found: {identifier} (unique_id: {unique_id})",
1616
- status_code=404,
1617
- ) from e
1618
- elif e.status_code == 405:
1619
- raise HomeAssistantAPIError(
1620
- f"Cannot delete automation '{identifier}': The HTTP DELETE method is blocked. "
1621
- f"This typically occurs when running ha-mcp as a Home Assistant add-on, because "
1622
- f"the Supervisor ingress proxy only allows GET and POST requests. "
1623
- f"WORKAROUNDS: "
1624
- f"(1) Use ha-mcp via pip, Docker, or as an external MCP server instead of the add-on. "
1625
- f"(2) Use a long-lived access token to connect directly to Home Assistant's API. "
1626
- f"(3) As a fallback, disable the automation and rename it with a 'DELETE_' prefix "
1627
- f"(e.g., 'DELETE_{identifier}') so you can identify and manually delete it later "
1628
- f"via the Home Assistant UI (Settings > Automations & Scenes).",
1629
- status_code=405,
1630
- ) from e
1631
- raise
1632
- except Exception as e:
1633
- if "404" in str(e):
1612
+ # Core's DELETE answers a missing id with 400, not 404.
1613
+ if (
1614
+ e.status_code == 400
1615
+ and (e.response_data or {}).get("message") == "Resource not found"
1616
+ ):
1634
1617
  raise HomeAssistantAPIError(
1635
1618
  f"Automation not found: {identifier} (unique_id: {unique_id})",
1636
1619
  status_code=404,
@@ -213,10 +213,10 @@ SEARCH_KEYWORDS: dict[str, str] = {
213
213
  LITE_DOCSTRINGS: dict[str, str] = {
214
214
  "ha_config_get_automation": (
215
215
  "Get a Home Assistant automation configuration by "
216
- "entity_id or unique_id. Returns the full config "
217
- "(trigger, condition, action, mode) plus a stable "
218
- "config_hash for use with python_transform on "
219
- "ha_config_set_automation.\n\n"
216
+ "entity_id or config id. Returns the stored config "
217
+ "plus a stable config_hash for use with python_transform on "
218
+ "ha_config_set_automation, the registry entry, and Home "
219
+ "Assistant's validation status.\n\n"
220
220
  "For schema and field-level details, see "
221
221
  "ha_get_skill_guide."
222
222
  ),
@@ -224,14 +224,14 @@ LITE_DOCSTRINGS: dict[str, str] = {
224
224
  "Create or update a Home Assistant automation.\n\n"
225
225
  "Supports three modes: full `config` replacement, surgical "
226
226
  "`python_transform` on an existing automation (requires "
227
- "`identifier` and `config_hash` from "
227
+ "`entity_id` and `config_hash` from "
228
228
  "ha_config_get_automation), or `take_control_of_blueprint` "
229
229
  "to convert a blueprint-backed automation into an editable "
230
230
  "standalone one (the UI's Take control action). Omit "
231
- "`identifier` to create a new automation. Reusing an identifier targets "
231
+ "`entity_id` to create a new automation. Reusing an entity_id targets "
232
232
  "the same automation; changing its alias requires config_hash from a prior read. "
233
233
  "`enabled` turns it on or off and `run_actions` runs it now, with a "
234
- "write or alone with `identifier`.\n\n"
234
+ "write or alone with `entity_id`.\n\n"
235
235
  "For schema details, examples, and native-vs-template "
236
236
  "guidance, see ha_get_skill_guide or your locally "
237
237
  "installed skills."
@@ -605,7 +605,7 @@
605
605
  },
606
606
  "ha_config_get_automation": {
607
607
  "title": "Avtomatlaşdırmanın konfiqurasiyasını al",
608
- "description": "Home Assistant avtomatlaşdırma konfiqurasiyasını əldə edin."
608
+ "description": "Home Assistant avtomatlaşdırmasının yadda saxlanılan konfiqurasiyasını əldə edin."
609
609
  },
610
610
  "ha_config_get_calendar_events": {
611
611
  "title": "Təqvim hadisələrini al",
@@ -574,7 +574,7 @@
574
574
  },
575
575
  "ha_config_get_automation": {
576
576
  "title": "Získat konfiguraci automatizace",
577
- "description": "Získá konfiguraci automatizace v Home Assistant."
577
+ "description": "Získat uloženou konfiguraci automatizace v Home Assistant."
578
578
  },
579
579
  "ha_config_get_calendar_events": {
580
580
  "title": "Získat události kalendáře",
@@ -605,7 +605,7 @@
605
605
  },
606
606
  "ha_config_get_automation": {
607
607
  "title": "Automatisierung abrufen",
608
- "description": "Rufe die Home-Assistant-Automatisierungskonfiguration ab."
608
+ "description": "Rufe die gespeicherte Konfiguration einer Home Assistant Automatisierung ab."
609
609
  },
610
610
  "ha_config_get_calendar_events": {
611
611
  "title": "Kalenderereignisse abrufen",
@@ -574,7 +574,7 @@
574
574
  },
575
575
  "ha_config_get_automation": {
576
576
  "title": "Akiri Aŭtomatigan Agordon",
577
- "description": "Akiri la agordon de aŭtomatigo de Home Assistant."
577
+ "description": "Akiri la konservitan agordon de Home Assistant aŭtomatigo."
578
578
  },
579
579
  "ha_config_get_calendar_events": {
580
580
  "title": "Akiri Kalendarajn Eventojn",
@@ -605,7 +605,7 @@
605
605
  },
606
606
  "ha_config_get_automation": {
607
607
  "title": "Obtener configuración de automatización",
608
- "description": "Obtiene la configuración de una automatización de Home Assistant."
608
+ "description": "Obtiene la configuración guardada de una automatización de Home Assistant."
609
609
  },
610
610
  "ha_config_get_calendar_events": {
611
611
  "title": "Obtener eventos de calendario",
@@ -605,7 +605,7 @@
605
605
  },
606
606
  "ha_config_get_automation": {
607
607
  "title": "Obtenir l'automatisation",
608
- "description": "Récupère la configuration d'une automatisation Home Assistant."
608
+ "description": "Obtenir la configuration enregistrée d'une automatisation Home Assistant."
609
609
  },
610
610
  "ha_config_get_calendar_events": {
611
611
  "title": "Obtenir les événements du calendrier",
@@ -605,7 +605,7 @@
605
605
  },
606
606
  "ha_config_get_automation": {
607
607
  "title": "Ottieni la configurazione di un'automazione",
608
- "description": "Ottieni la configurazione di un'automazione di Home Assistant."
608
+ "description": "Ottieni la configurazione memorizzata di un'automazione di Home Assistant."
609
609
  },
610
610
  "ha_config_get_calendar_events": {
611
611
  "title": "Ottieni gli eventi del calendario",
@@ -605,7 +605,7 @@
605
605
  },
606
606
  "ha_config_get_automation": {
607
607
  "title": "자동화 설정 조회",
608
- "description": "Home Assistant 자동화 구성을 가져옵니다."
608
+ "description": "Home Assistant 자동화의 저장된 설정을 가져옵니다."
609
609
  },
610
610
  "ha_config_get_calendar_events": {
611
611
  "title": "캘린더 일정 조회",
@@ -574,7 +574,7 @@
574
574
  },
575
575
  "ha_config_get_automation": {
576
576
  "title": "Haal Automatisering Config op",
577
- "description": "Haal de Home Assistant-automatiseringsconfiguratie op."
577
+ "description": "Haal de opgeslagen configuratie van een Home Assistant-automatisering op."
578
578
  },
579
579
  "ha_config_get_calendar_events": {
580
580
  "title": "Haal Kalendergebeurtenissen op",
@@ -574,7 +574,7 @@
574
574
  },
575
575
  "ha_config_get_automation": {
576
576
  "title": "Pobierz konfigurację automatyzacji",
577
- "description": "Pobierz konfigurację automatyzacji Home Assistant."
577
+ "description": "Pobierz zapisaną konfigurację automatyzacji Home Assistant."
578
578
  },
579
579
  "ha_config_get_calendar_events": {
580
580
  "title": "Pobierz wydarzenia z kalendarza",
@@ -605,7 +605,7 @@
605
605
  },
606
606
  "ha_config_get_automation": {
607
607
  "title": "Получить автоматизацию",
608
- "description": "Получить конфигурацию автоматизации Home Assistant."
608
+ "description": "Получить сохраненную конфигурацию автоматизации Home Assistant."
609
609
  },
610
610
  "ha_config_get_calendar_events": {
611
611
  "title": "Получить события календаря",
@@ -574,7 +574,7 @@
574
574
  },
575
575
  "ha_config_get_automation": {
576
576
  "title": "Hämta Automatiseringskonfiguration",
577
- "description": "Hämta konfiguration för Home Assistant-automatisering."
577
+ "description": "Hämta en Home Assistant-automations lagrade konfiguration."
578
578
  },
579
579
  "ha_config_get_calendar_events": {
580
580
  "title": "Hämta Kalenderhändelser",
@@ -605,7 +605,7 @@
605
605
  },
606
606
  "ha_config_get_automation": {
607
607
  "title": "获取自动化配置",
608
- "description": "获取 Home Assistant 自动化配置。"
608
+ "description": "获取 Home Assistant 自动化存储的配置。"
609
609
  },
610
610
  "ha_config_get_calendar_events": {
611
611
  "title": "获取日历事件",
@@ -574,7 +574,7 @@
574
574
  },
575
575
  "ha_config_get_automation": {
576
576
  "title": "取得自動化設定",
577
- "description": "取得 Home Assistant 自動化設定。"
577
+ "description": "取得 Home Assistant 自動化的儲存設定。"
578
578
  },
579
579
  "ha_config_get_calendar_events": {
580
580
  "title": "取得行事曆活動",
@@ -108,13 +108,13 @@ def automation_backup_target(kw: dict[str, Any]) -> str:
108
108
  """Resolve the actual storage target for an automation write.
109
109
 
110
110
  HA's automation storage uses the body's ``id`` field as the primary
111
- key (#1404). When the caller passes both ``identifier`` and a
111
+ key (#1404). When the caller passes both ``entity_id`` and a
112
112
  ``config.id`` that differ, HA writes to ``config.id`` — the
113
113
  snapshot must capture *that* entity, not the user-provided
114
- ``identifier`` whose target is left untouched.
114
+ ``entity_id`` whose target is left untouched.
115
115
 
116
116
  Returns ``str(config["id"])`` when present, else
117
- ``str(identifier or "")``. Empty string skips capture (matches the
117
+ ``str(entity_id or "")``. Empty string skips capture (matches the
118
118
  create path where there's nothing to back up yet).
119
119
 
120
120
  ``config`` accepts dict or JSON-string per the tool signature; both
@@ -130,7 +130,7 @@ def automation_backup_target(kw: dict[str, Any]) -> str:
130
130
  config_id = config.get("id")
131
131
  if config_id:
132
132
  return str(config_id)
133
- # Return the identifier UNCHANGED — do NOT strip the ``automation.``
133
+ # Return the entity_id UNCHANGED — do NOT strip the ``automation.``
134
134
  # prefix. Capture and restore resolve the target through
135
135
  # ``client.get_automation_config`` -> ``_resolve_automation_id``, which
136
136
  # converts an entity_id ("automation.<slug>") to the real numeric
@@ -142,8 +142,8 @@ def automation_backup_target(kw: dict[str, Any]) -> str:
142
142
  # would POST to the wrong key and create a stray automation). The
143
143
  # doubled domain segment in the snapshot filename
144
144
  # ("automation.automation.<slug>.<ts>.yaml") is purely cosmetic and is
145
- # exactly what the remove path (id_param="identifier") already produces.
146
- return _resolve_str(kw.get("identifier"))
145
+ # exactly what the remove path (id_param="entity_id") already produces.
146
+ return _resolve_str(kw.get("entity_id"))
147
147
 
148
148
 
149
149
  def with_auto_backup(