ha-mcp-dev 8.6.0.dev2945__tar.gz → 8.6.0.dev2949__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 (767) hide show
  1. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/PKG-INFO +1 -1
  2. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/pyproject.toml +1 -1
  3. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/pyproject.toml.orig +1 -1
  4. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/config_registry.py +3 -2
  5. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/settings_ui/_handlers_advanced.py +3 -4
  6. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/settings_ui/_handlers_backups.py +11 -9
  7. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/settings_ui/locales/README.md +5 -3
  8. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/settings_ui/locales/az.json +0 -60
  9. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/settings_ui/locales/cs.json +0 -60
  10. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/settings_ui/locales/de.json +0 -60
  11. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/settings_ui/locales/en.json +43 -60
  12. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/settings_ui/locales/eo.json +0 -60
  13. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/settings_ui/locales/es.json +0 -60
  14. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/settings_ui/locales/fr.json +0 -60
  15. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/settings_ui/locales/it.json +0 -60
  16. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/settings_ui/locales/ko.json +0 -60
  17. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/settings_ui/locales/nl.json +0 -60
  18. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/settings_ui/locales/pl.json +0 -60
  19. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/settings_ui/locales/ru.json +0 -60
  20. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/settings_ui/locales/sv.json +0 -60
  21. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/settings_ui/locales/tlh.json +0 -51
  22. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/settings_ui/locales/zh-Hans.json +0 -60
  23. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/settings_ui/locales/zh-Hant.json +0 -60
  24. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/settings_ui/settings_js/01_i18n_state.js +14 -0
  25. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/settings_ui/settings_js/04_backups.js +8 -52
  26. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/settings_ui/settings_js/05_feature_flags.js +6 -10
  27. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/settings_ui/settings_js/08_advanced.js +3 -44
  28. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/tools_dev.py +1 -1
  29. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/LICENSE +0 -0
  30. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/README.md +0 -0
  31. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/__init__.py +0 -0
  32. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/__main__.py +0 -0
  33. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_pypi_marker +0 -0
  34. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_rich_compat.py +0 -0
  35. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/__init__.py +0 -0
  36. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/LICENSE +0 -0
  37. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/MANIFEST.sha256 +0 -0
  38. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/REQUIRES.txt +0 -0
  39. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/VENDORED +0 -0
  40. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/__init__.py +0 -0
  41. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/_compat.py +0 -0
  42. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/_install_hints.py +0 -0
  43. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/_warnings.py +0 -0
  44. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/apps/__init__.py +0 -0
  45. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/apps/app.py +0 -0
  46. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/apps/approval.py +0 -0
  47. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/apps/choice.py +0 -0
  48. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/apps/config.py +0 -0
  49. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/apps/file_upload.py +0 -0
  50. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/apps/form.py +0 -0
  51. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/apps/generative.py +0 -0
  52. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/cli/__init__.py +0 -0
  53. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/cli/__main__.py +0 -0
  54. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/cli/apps_dev.py +0 -0
  55. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/cli/auth.py +0 -0
  56. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/cli/cimd.py +0 -0
  57. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/cli/cli.py +0 -0
  58. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/cli/client.py +0 -0
  59. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/cli/deploy/__init__.py +0 -0
  60. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/cli/deploy/authentication.py +0 -0
  61. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/cli/deploy/command.py +0 -0
  62. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/cli/deploy/configuration.py +0 -0
  63. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/cli/deploy/credentials.py +0 -0
  64. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/cli/deploy/horizon_client.py +0 -0
  65. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/cli/deploy/output.py +0 -0
  66. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/cli/deploy/state.py +0 -0
  67. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/cli/discovery.py +0 -0
  68. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/cli/generate.py +0 -0
  69. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/cli/install/__init__.py +0 -0
  70. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/cli/install/claude_code.py +0 -0
  71. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/cli/install/claude_desktop.py +0 -0
  72. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/cli/install/cursor.py +0 -0
  73. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/cli/install/gemini_cli.py +0 -0
  74. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/cli/install/goose.py +0 -0
  75. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/cli/install/mcp_json.py +0 -0
  76. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/cli/install/shared.py +0 -0
  77. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/cli/install/stdio.py +0 -0
  78. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/cli/run.py +0 -0
  79. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/client/__init__.py +0 -0
  80. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/client/_sdk_context_shim.py +0 -0
  81. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/client/auth/__init__.py +0 -0
  82. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/client/auth/bearer.py +0 -0
  83. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/client/auth/client_credentials.py +0 -0
  84. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/client/auth/oauth.py +0 -0
  85. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/client/caching.py +0 -0
  86. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/client/client.py +0 -0
  87. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/client/dependencies.py +0 -0
  88. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/client/elicitation.py +0 -0
  89. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/client/extension_hooks.py +0 -0
  90. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/client/group.py +0 -0
  91. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/client/logging.py +0 -0
  92. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/client/messages.py +0 -0
  93. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/client/mixins/__init__.py +0 -0
  94. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/client/mixins/prompts.py +0 -0
  95. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/client/mixins/resources.py +0 -0
  96. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/client/mixins/tools.py +0 -0
  97. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/client/oauth_callback.py +0 -0
  98. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/client/progress.py +0 -0
  99. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/client/roots.py +0 -0
  100. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/client/sampling/__init__.py +0 -0
  101. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/client/sampling/handlers/__init__.py +0 -0
  102. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/client/sampling/handlers/anthropic.py +0 -0
  103. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/client/sampling/handlers/google_genai.py +0 -0
  104. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/client/sampling/handlers/openai.py +0 -0
  105. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/client/telemetry.py +0 -0
  106. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/client/transports/__init__.py +0 -0
  107. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/client/transports/base.py +0 -0
  108. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/client/transports/config.py +0 -0
  109. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/client/transports/http.py +0 -0
  110. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/client/transports/inference.py +0 -0
  111. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/client/transports/memory.py +0 -0
  112. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/client/transports/sse.py +0 -0
  113. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/client/transports/stdio.py +0 -0
  114. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/contrib/README.md +0 -0
  115. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/contrib/bulk_tool_caller/README.md +0 -0
  116. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/contrib/bulk_tool_caller/__init__.py +0 -0
  117. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/contrib/bulk_tool_caller/bulk_tool_caller.py +0 -0
  118. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/contrib/bulk_tool_caller/example.py +0 -0
  119. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/contrib/component_manager/README.md +0 -0
  120. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/contrib/component_manager/__init__.py +0 -0
  121. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/contrib/component_manager/component_manager.py +0 -0
  122. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/contrib/component_manager/example.py +0 -0
  123. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/contrib/mcp_mixin/README.md +0 -0
  124. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/contrib/mcp_mixin/__init__.py +0 -0
  125. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/contrib/mcp_mixin/example.py +0 -0
  126. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/contrib/mcp_mixin/mcp_mixin.py +0 -0
  127. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/decorators.py +0 -0
  128. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/dependencies.py +0 -0
  129. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/exceptions.py +0 -0
  130. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/experimental/__init__.py +0 -0
  131. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/experimental/transforms/__init__.py +0 -0
  132. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/experimental/transforms/code_mode.py +0 -0
  133. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/mcp_config.py +0 -0
  134. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/prompts/__init__.py +0 -0
  135. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/prompts/base.py +0 -0
  136. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/prompts/function_prompt.py +0 -0
  137. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/py.typed +0 -0
  138. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/resources/__init__.py +0 -0
  139. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/resources/base.py +0 -0
  140. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/resources/function_resource.py +0 -0
  141. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/resources/security.py +0 -0
  142. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/resources/template.py +0 -0
  143. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/resources/types.py +0 -0
  144. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/server/__init__.py +0 -0
  145. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/server/auth/__init__.py +0 -0
  146. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/server/auth/auth.py +0 -0
  147. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/server/auth/cimd.py +0 -0
  148. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/server/auth/handlers/__init__.py +0 -0
  149. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/server/auth/handlers/authorize.py +0 -0
  150. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/server/auth/identity_assertion.py +0 -0
  151. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/server/auth/jwt_issuer.py +0 -0
  152. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/server/auth/middleware.py +0 -0
  153. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/server/auth/oauth_proxy/__init__.py +0 -0
  154. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/server/auth/oauth_proxy/consent.py +0 -0
  155. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/server/auth/oauth_proxy/models.py +0 -0
  156. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/server/auth/oauth_proxy/proxy.py +0 -0
  157. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/server/auth/oauth_proxy/ui.py +0 -0
  158. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/server/auth/oauth_proxy/upstream.py +0 -0
  159. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/server/auth/oidc_proxy.py +0 -0
  160. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/__init__.py +0 -0
  161. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/auth0.py +0 -0
  162. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/aws.py +0 -0
  163. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/azure.py +0 -0
  164. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/clerk.py +0 -0
  165. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/debug.py +0 -0
  166. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/descope.py +0 -0
  167. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/discord.py +0 -0
  168. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/github.py +0 -0
  169. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/google.py +0 -0
  170. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/huggingface.py +0 -0
  171. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/in_memory.py +0 -0
  172. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/introspection.py +0 -0
  173. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/jwt.py +0 -0
  174. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/keycloak.py +0 -0
  175. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/oci.py +0 -0
  176. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/propelauth.py +0 -0
  177. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/scalekit.py +0 -0
  178. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/supabase.py +0 -0
  179. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/workos.py +0 -0
  180. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/server/auth/redirect_validation.py +0 -0
  181. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/server/auth/ssrf.py +0 -0
  182. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/server/caching.py +0 -0
  183. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/server/completions.py +0 -0
  184. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/server/context.py +0 -0
  185. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/server/dependencies.py +0 -0
  186. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/server/elicitation.py +0 -0
  187. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/server/event_store.py +0 -0
  188. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/server/extensions.py +0 -0
  189. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/server/http.py +0 -0
  190. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/server/lifespan.py +0 -0
  191. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/server/low_level.py +0 -0
  192. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/server/middleware/__init__.py +0 -0
  193. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/server/middleware/authorization.py +0 -0
  194. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/server/middleware/caching.py +0 -0
  195. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/server/middleware/dereference.py +0 -0
  196. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/server/middleware/error_handling.py +0 -0
  197. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/server/middleware/logging.py +0 -0
  198. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/server/middleware/middleware.py +0 -0
  199. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/server/middleware/ping.py +0 -0
  200. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/server/middleware/rate_limiting.py +0 -0
  201. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/server/middleware/response_limiting.py +0 -0
  202. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/server/middleware/timing.py +0 -0
  203. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/server/middleware/tool_injection.py +0 -0
  204. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/server/mixins/__init__.py +0 -0
  205. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/server/mixins/lifespan.py +0 -0
  206. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/server/mixins/mcp_operations.py +0 -0
  207. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/server/mixins/transport.py +0 -0
  208. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/server/providers/__init__.py +0 -0
  209. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/server/providers/addressing.py +0 -0
  210. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/server/providers/aggregate.py +0 -0
  211. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/server/providers/base.py +0 -0
  212. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/server/providers/fastmcp_provider.py +0 -0
  213. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/server/providers/filesystem.py +0 -0
  214. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/server/providers/filesystem_discovery.py +0 -0
  215. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/server/providers/local_provider/__init__.py +0 -0
  216. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/server/providers/local_provider/decorators/__init__.py +0 -0
  217. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/server/providers/local_provider/decorators/prompts.py +0 -0
  218. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/server/providers/local_provider/decorators/resources.py +0 -0
  219. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/server/providers/local_provider/decorators/tools.py +0 -0
  220. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/server/providers/local_provider/local_provider.py +0 -0
  221. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/server/providers/openapi/README.md +0 -0
  222. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/server/providers/openapi/__init__.py +0 -0
  223. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/server/providers/openapi/components.py +0 -0
  224. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/server/providers/openapi/provider.py +0 -0
  225. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/server/providers/openapi/routing.py +0 -0
  226. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/server/providers/prefab_payload.py +0 -0
  227. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/server/providers/prefab_synthesis.py +0 -0
  228. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/server/providers/proxy.py +0 -0
  229. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/server/providers/skills/__init__.py +0 -0
  230. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/server/providers/skills/_common.py +0 -0
  231. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/server/providers/skills/claude_provider.py +0 -0
  232. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/server/providers/skills/directory_provider.py +0 -0
  233. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/server/providers/skills/skill_provider.py +0 -0
  234. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/server/providers/skills/vendor_providers.py +0 -0
  235. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/server/providers/wrapped_provider.py +0 -0
  236. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/server/server.py +0 -0
  237. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/server/session_scoped_event_store.py +0 -0
  238. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/server/sessions.py +0 -0
  239. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/server/telemetry.py +0 -0
  240. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/server/transforms/__init__.py +0 -0
  241. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/server/transforms/catalog.py +0 -0
  242. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/server/transforms/namespace.py +0 -0
  243. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/server/transforms/prompts_as_tools.py +0 -0
  244. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/server/transforms/resources_as_tools.py +0 -0
  245. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/server/transforms/search/__init__.py +0 -0
  246. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/server/transforms/search/base.py +0 -0
  247. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/server/transforms/search/bm25.py +0 -0
  248. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/server/transforms/search/regex.py +0 -0
  249. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/server/transforms/tool_transform.py +0 -0
  250. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/server/transforms/version_filter.py +0 -0
  251. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/server/transforms/visibility.py +0 -0
  252. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/settings.py +0 -0
  253. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/telemetry.py +0 -0
  254. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/tools/__init__.py +0 -0
  255. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/tools/base.py +0 -0
  256. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/tools/function_parsing.py +0 -0
  257. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/tools/function_tool.py +0 -0
  258. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/tools/tool_transform.py +0 -0
  259. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/types.py +0 -0
  260. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/utilities/__init__.py +0 -0
  261. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/utilities/asgi_transport.py +0 -0
  262. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/utilities/async_utils.py +0 -0
  263. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/utilities/auth.py +0 -0
  264. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/utilities/authorization.py +0 -0
  265. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/utilities/cli.py +0 -0
  266. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/utilities/components.py +0 -0
  267. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/utilities/docstring_parsing.py +0 -0
  268. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/utilities/exceptions.py +0 -0
  269. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/utilities/http.py +0 -0
  270. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/utilities/inspect.py +0 -0
  271. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/utilities/json_schema.py +0 -0
  272. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/utilities/json_schema_type.py +0 -0
  273. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/utilities/lifespan.py +0 -0
  274. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/utilities/logging.py +0 -0
  275. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/utilities/mcp_server_config/__init__.py +0 -0
  276. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/utilities/mcp_server_config/v1/__init__.py +0 -0
  277. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/utilities/mcp_server_config/v1/environments/__init__.py +0 -0
  278. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/utilities/mcp_server_config/v1/environments/base.py +0 -0
  279. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/utilities/mcp_server_config/v1/environments/uv.py +0 -0
  280. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/utilities/mcp_server_config/v1/mcp_server_config.py +0 -0
  281. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/utilities/mcp_server_config/v1/schema.json +0 -0
  282. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/utilities/mcp_server_config/v1/sources/__init__.py +0 -0
  283. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/utilities/mcp_server_config/v1/sources/base.py +0 -0
  284. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/utilities/mcp_server_config/v1/sources/filesystem.py +0 -0
  285. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/utilities/mime.py +0 -0
  286. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/utilities/openapi/README.md +0 -0
  287. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/utilities/openapi/__init__.py +0 -0
  288. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/utilities/openapi/director.py +0 -0
  289. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/utilities/openapi/formatters.py +0 -0
  290. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/utilities/openapi/json_schema_converter.py +0 -0
  291. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/utilities/openapi/models.py +0 -0
  292. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/utilities/openapi/parser.py +0 -0
  293. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/utilities/openapi/schemas.py +0 -0
  294. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/utilities/pagination.py +0 -0
  295. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/utilities/prefab.py +0 -0
  296. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/utilities/skills.py +0 -0
  297. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/utilities/tasks.py +0 -0
  298. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/utilities/tests.py +0 -0
  299. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/utilities/timeout.py +0 -0
  300. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/utilities/token_cache.py +0 -0
  301. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/utilities/types.py +0 -0
  302. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/utilities/ui.py +0 -0
  303. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/utilities/version_check.py +0 -0
  304. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/fastmcp/utilities/versions.py +0 -0
  305. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/LICENSE +0 -0
  306. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/MANIFEST.sha256 +0 -0
  307. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/REQUIRES.txt +0 -0
  308. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/VENDORED +0 -0
  309. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/__init__.py +0 -0
  310. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/cli/__init__.py +0 -0
  311. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/cli/claude.py +0 -0
  312. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/cli/cli.py +0 -0
  313. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/client/__init__.py +0 -0
  314. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/client/__main__.py +0 -0
  315. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/client/_input_required.py +0 -0
  316. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/client/_memory.py +0 -0
  317. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/client/_probe.py +0 -0
  318. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/client/_transport.py +0 -0
  319. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/client/auth/__init__.py +0 -0
  320. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/client/auth/exceptions.py +0 -0
  321. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/client/auth/extensions/__init__.py +0 -0
  322. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/client/auth/extensions/client_credentials.py +0 -0
  323. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/client/auth/extensions/identity_assertion.py +0 -0
  324. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/client/auth/oauth2.py +0 -0
  325. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/client/auth/utils.py +0 -0
  326. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/client/caching.py +0 -0
  327. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/client/client.py +0 -0
  328. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/client/context.py +0 -0
  329. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/client/extension.py +0 -0
  330. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/client/session.py +0 -0
  331. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/client/session_group.py +0 -0
  332. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/client/sse.py +0 -0
  333. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/client/stdio.py +0 -0
  334. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/client/streamable_http.py +0 -0
  335. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/client/subscriptions.py +0 -0
  336. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/os/__init__.py +0 -0
  337. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/os/posix/__init__.py +0 -0
  338. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/os/posix/utilities.py +0 -0
  339. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/os/win32/__init__.py +0 -0
  340. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/os/win32/utilities.py +0 -0
  341. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/py.typed +0 -0
  342. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/server/__init__.py +0 -0
  343. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/server/__main__.py +0 -0
  344. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/server/_otel.py +0 -0
  345. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/server/_streamable_http_modern.py +0 -0
  346. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/server/apps.py +0 -0
  347. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/server/auth/__init__.py +0 -0
  348. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/server/auth/errors.py +0 -0
  349. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/server/auth/handlers/__init__.py +0 -0
  350. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/server/auth/handlers/authorize.py +0 -0
  351. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/server/auth/handlers/metadata.py +0 -0
  352. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/server/auth/handlers/register.py +0 -0
  353. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/server/auth/handlers/revoke.py +0 -0
  354. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/server/auth/handlers/token.py +0 -0
  355. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/server/auth/json_response.py +0 -0
  356. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/server/auth/middleware/__init__.py +0 -0
  357. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/server/auth/middleware/auth_context.py +0 -0
  358. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/server/auth/middleware/bearer_auth.py +0 -0
  359. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/server/auth/middleware/client_auth.py +0 -0
  360. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/server/auth/provider.py +0 -0
  361. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/server/auth/routes.py +0 -0
  362. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/server/auth/settings.py +0 -0
  363. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/server/caching.py +0 -0
  364. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/server/connection.py +0 -0
  365. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/server/context.py +0 -0
  366. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/server/elicitation.py +0 -0
  367. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/server/extension.py +0 -0
  368. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/server/fastmcp.py +0 -0
  369. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/server/lowlevel/__init__.py +0 -0
  370. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/server/lowlevel/helper_types.py +0 -0
  371. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/server/lowlevel/server.py +0 -0
  372. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/server/mcpserver/__init__.py +0 -0
  373. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/server/mcpserver/context.py +0 -0
  374. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/server/mcpserver/exceptions.py +0 -0
  375. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/server/mcpserver/prompts/__init__.py +0 -0
  376. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/server/mcpserver/prompts/base.py +0 -0
  377. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/server/mcpserver/prompts/manager.py +0 -0
  378. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/server/mcpserver/resolve.py +0 -0
  379. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/server/mcpserver/resources/__init__.py +0 -0
  380. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/server/mcpserver/resources/base.py +0 -0
  381. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/server/mcpserver/resources/resource_manager.py +0 -0
  382. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/server/mcpserver/resources/templates.py +0 -0
  383. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/server/mcpserver/resources/types.py +0 -0
  384. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/server/mcpserver/server.py +0 -0
  385. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/server/mcpserver/tools/__init__.py +0 -0
  386. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/server/mcpserver/tools/base.py +0 -0
  387. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/server/mcpserver/tools/tool_manager.py +0 -0
  388. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/server/mcpserver/utilities/__init__.py +0 -0
  389. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/server/mcpserver/utilities/context_injection.py +0 -0
  390. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/server/mcpserver/utilities/func_metadata.py +0 -0
  391. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/server/mcpserver/utilities/logging.py +0 -0
  392. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/server/mcpserver/utilities/types.py +0 -0
  393. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/server/models.py +0 -0
  394. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/server/request_state.py +0 -0
  395. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/server/runner.py +0 -0
  396. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/server/session.py +0 -0
  397. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/server/sse.py +0 -0
  398. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/server/stdio.py +0 -0
  399. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/server/streamable_http.py +0 -0
  400. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/server/streamable_http_manager.py +0 -0
  401. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/server/subscriptions.py +0 -0
  402. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/server/transport_security.py +0 -0
  403. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/server/validation.py +0 -0
  404. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/shared/__init__.py +0 -0
  405. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/shared/_callable_inspection.py +0 -0
  406. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/shared/_compat.py +0 -0
  407. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/shared/_context_streams.py +0 -0
  408. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/shared/_httpx_utils.py +0 -0
  409. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/shared/_otel.py +0 -0
  410. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/shared/_stream_protocols.py +0 -0
  411. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/shared/auth.py +0 -0
  412. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/shared/auth_utils.py +0 -0
  413. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/shared/context.py +0 -0
  414. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/shared/direct_dispatcher.py +0 -0
  415. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/shared/dispatcher.py +0 -0
  416. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/shared/exceptions.py +0 -0
  417. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/shared/extension.py +0 -0
  418. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/shared/inbound.py +0 -0
  419. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/shared/jsonrpc_dispatcher.py +0 -0
  420. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/shared/memory.py +0 -0
  421. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/shared/message.py +0 -0
  422. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/shared/metadata_utils.py +0 -0
  423. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/shared/path_security.py +0 -0
  424. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/shared/peer.py +0 -0
  425. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/shared/subscriptions.py +0 -0
  426. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/shared/tool_name_validation.py +0 -0
  427. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/shared/transport_context.py +0 -0
  428. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/shared/uri_template.py +0 -0
  429. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/types/__init__.py +0 -0
  430. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/types/jsonrpc.py +0 -0
  431. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/types/methods.py +0 -0
  432. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp/types/version.py +0 -0
  433. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp_types/LICENSE +0 -0
  434. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp_types/MANIFEST.sha256 +0 -0
  435. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp_types/REQUIRES.txt +0 -0
  436. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp_types/VENDORED +0 -0
  437. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp_types/__init__.py +0 -0
  438. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp_types/_types.py +0 -0
  439. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp_types/_v2025_11_25/__init__.py +0 -0
  440. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp_types/_v2026_07_28/__init__.py +0 -0
  441. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp_types/_wire_base.py +0 -0
  442. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp_types/jsonrpc.py +0 -0
  443. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp_types/methods.py +0 -0
  444. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp_types/py.typed +0 -0
  445. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/mcp_types/version.py +0 -0
  446. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/requirements.txt +0 -0
  447. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/websockets/LICENSE +0 -0
  448. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/websockets/MANIFEST.sha256 +0 -0
  449. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/websockets/VENDORED +0 -0
  450. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/websockets/__init__.py +0 -0
  451. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/websockets/__main__.py +0 -0
  452. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/websockets/asyncio/__init__.py +0 -0
  453. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/websockets/asyncio/client.py +0 -0
  454. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/websockets/asyncio/connection.py +0 -0
  455. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/websockets/asyncio/messages.py +0 -0
  456. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/websockets/asyncio/router.py +0 -0
  457. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/websockets/asyncio/server.py +0 -0
  458. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/websockets/auth.py +0 -0
  459. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/websockets/cli.py +0 -0
  460. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/websockets/client.py +0 -0
  461. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/websockets/connection.py +0 -0
  462. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/websockets/datastructures.py +0 -0
  463. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/websockets/exceptions.py +0 -0
  464. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/websockets/extensions/__init__.py +0 -0
  465. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/websockets/extensions/base.py +0 -0
  466. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/websockets/extensions/permessage_deflate.py +0 -0
  467. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/websockets/frames.py +0 -0
  468. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/websockets/headers.py +0 -0
  469. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/websockets/http11.py +0 -0
  470. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/websockets/imports.py +0 -0
  471. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/websockets/legacy/__init__.py +0 -0
  472. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/websockets/legacy/auth.py +0 -0
  473. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/websockets/legacy/client.py +0 -0
  474. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/websockets/legacy/exceptions.py +0 -0
  475. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/websockets/legacy/framing.py +0 -0
  476. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/websockets/legacy/handshake.py +0 -0
  477. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/websockets/legacy/http.py +0 -0
  478. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/websockets/legacy/protocol.py +0 -0
  479. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/websockets/legacy/server.py +0 -0
  480. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/websockets/protocol.py +0 -0
  481. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/websockets/proxy.py +0 -0
  482. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/websockets/py.typed +0 -0
  483. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/websockets/server.py +0 -0
  484. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/websockets/streams.py +0 -0
  485. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/websockets/sync/__init__.py +0 -0
  486. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/websockets/sync/client.py +0 -0
  487. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/websockets/sync/connection.py +0 -0
  488. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/websockets/sync/messages.py +0 -0
  489. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/websockets/sync/router.py +0 -0
  490. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/websockets/sync/server.py +0 -0
  491. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/websockets/sync/utils.py +0 -0
  492. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/websockets/trio/__init__.py +0 -0
  493. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/websockets/trio/client.py +0 -0
  494. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/websockets/trio/connection.py +0 -0
  495. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/websockets/trio/messages.py +0 -0
  496. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/websockets/trio/router.py +0 -0
  497. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/websockets/trio/server.py +0 -0
  498. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/websockets/trio/utils.py +0 -0
  499. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/websockets/typing.py +0 -0
  500. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/websockets/uri.py +0 -0
  501. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/websockets/utils.py +0 -0
  502. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_vendor/websockets/version.py +0 -0
  503. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/_version.py +0 -0
  504. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/app_discovery.py +0 -0
  505. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/auth/__init__.py +0 -0
  506. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/auth/consent_form.py +0 -0
  507. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/auth/oidc_compat.py +0 -0
  508. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/auth/provider.py +0 -0
  509. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/backup_diff.py +0 -0
  510. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/backup_entity_ids.py +0 -0
  511. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/backup_manager.py +0 -0
  512. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/backup_tags.py +0 -0
  513. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/browser_landing.py +0 -0
  514. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/client/__init__.py +0 -0
  515. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/client/admin_routes.py +0 -0
  516. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/client/rest_client.py +0 -0
  517. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/client/supervisor_client.py +0 -0
  518. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/client/websocket_client.py +0 -0
  519. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/client/websocket_listener.py +0 -0
  520. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/config.py +0 -0
  521. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/config_backup.py +0 -0
  522. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/config_meta.py +0 -0
  523. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/config_overrides.py +0 -0
  524. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/config_settings.py +0 -0
  525. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/dashboard_screenshot/__init__.py +0 -0
  526. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/dashboard_screenshot/capture.py +0 -0
  527. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/dashboard_screenshot/content.py +0 -0
  528. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/dashboard_screenshot/paths.py +0 -0
  529. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/dashboard_screenshot/provision.py +0 -0
  530. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/dashboard_screenshot/theme_guard.py +0 -0
  531. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/errors.py +0 -0
  532. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/ha_request_queue.py +0 -0
  533. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/hacs_auto_refresh.py +0 -0
  534. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/http_transport.py +0 -0
  535. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/image_info.py +0 -0
  536. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/llm_exposure.py +0 -0
  537. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/log_filters.py +0 -0
  538. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/policy/__init__.py +0 -0
  539. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/policy/approval_queue.py +0 -0
  540. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/policy/decision_pin.py +0 -0
  541. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/policy/decisions.py +0 -0
  542. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/policy/editing.py +0 -0
  543. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/policy/evaluator.py +0 -0
  544. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/policy/events.py +0 -0
  545. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/policy/handlers.py +0 -0
  546. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/policy/middleware.py +0 -0
  547. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/policy/model.py +0 -0
  548. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/policy/mrtr.py +0 -0
  549. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/policy/persistence.py +0 -0
  550. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/policy/server_channels.py +0 -0
  551. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/policy/value_sources.py +0 -0
  552. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/py.typed +0 -0
  553. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/read_only.py +0 -0
  554. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/redaction.py +0 -0
  555. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/renamed_tools.py +0 -0
  556. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/resources/skills-vendor/LICENSE +0 -0
  557. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/SKILL.md +0 -0
  558. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/appdaemon.md +0 -0
  559. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/automation-actions.md +0 -0
  560. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/backups.md +0 -0
  561. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/blueprint-guide.md +0 -0
  562. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/dashboard-cards.md +0 -0
  563. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/dashboard-guide.md +0 -0
  564. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/device-control.md +0 -0
  565. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/domain-docs.md +0 -0
  566. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/examples.yaml +0 -0
  567. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/helper-selection.md +0 -0
  568. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/safe-refactoring.md +0 -0
  569. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/scenes.md +0 -0
  570. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/template-guidelines.md +0 -0
  571. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/triggers-and-conditions.md +0 -0
  572. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/yaml-only-integrations.md +0 -0
  573. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/server.py +0 -0
  574. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/server_lifespan.py +0 -0
  575. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/server_tool_text.py +0 -0
  576. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/settings_ui/__init__.py +0 -0
  577. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/settings_ui/_handlers_fs.py +0 -0
  578. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/settings_ui/_handlers_server.py +0 -0
  579. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/settings_ui/_handlers_theme.py +0 -0
  580. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/settings_ui/_handlers_tools.py +0 -0
  581. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/settings_ui/_i18n.py +0 -0
  582. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/settings_ui/_locale_policy.py +0 -0
  583. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/settings_ui/_persistence.py +0 -0
  584. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/settings_ui/_supervisor.py +0 -0
  585. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/settings_ui/_theme.py +0 -0
  586. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/settings_ui/_tools_meta.py +0 -0
  587. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/settings_ui/settings.css +0 -0
  588. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/settings_ui/settings.html +0 -0
  589. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/settings_ui/settings_js/02_tools_restart.js +0 -0
  590. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/settings_ui/settings_js/03_render_save.js +0 -0
  591. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/settings_ui/settings_js/06_policy_cards.js +0 -0
  592. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/settings_ui/settings_js/07_policy_actions.js +0 -0
  593. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/settings_ui/settings_js/09_prefs_visibility.js +0 -0
  594. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/smoke_test.py +0 -0
  595. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/stdio_settings_sidecar.py +0 -0
  596. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/strict_bps.py +0 -0
  597. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tool_dispatch.py +0 -0
  598. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/__init__.py +0 -0
  599. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/area_messages.py +0 -0
  600. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/auto_backup.py +0 -0
  601. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/backup.py +0 -0
  602. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/backup_access.py +0 -0
  603. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/backup_on_demand.py +0 -0
  604. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/best_practice_checker.py +0 -0
  605. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/best_practice_result.py +0 -0
  606. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/best_practice_variables.py +0 -0
  607. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/blueprint_sources.py +0 -0
  608. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/blueprint_substitute.py +0 -0
  609. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/blueprint_write.py +0 -0
  610. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/bug_report_config.py +0 -0
  611. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/bug_report_templates.py +0 -0
  612. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/bulk_selector.py +0 -0
  613. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/coercion.py +0 -0
  614. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/component_api.py +0 -0
  615. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/component_config_entries.py +0 -0
  616. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/component_config_reads.py +0 -0
  617. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/component_dashboard_edit.py +0 -0
  618. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/component_devices.py +0 -0
  619. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/component_helper_collections.py +0 -0
  620. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/component_registries.py +0 -0
  621. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/component_registry_lookup.py +0 -0
  622. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/config_entry_backup.py +0 -0
  623. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/config_entry_flow.py +0 -0
  624. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/config_entry_flow_form.py +0 -0
  625. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/config_entry_flow_introspect.py +0 -0
  626. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/config_entry_flow_menu.py +0 -0
  627. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/config_entry_flow_walker.py +0 -0
  628. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/config_entry_identity.py +0 -0
  629. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/config_entry_reconfigure.py +0 -0
  630. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/config_entry_reload_watch.py +0 -0
  631. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/config_helpers/__init__.py +0 -0
  632. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/config_helpers/core_payload.py +0 -0
  633. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/config_helpers/create.py +0 -0
  634. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/config_helpers/describe.py +0 -0
  635. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/config_helpers/flow.py +0 -0
  636. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/config_helpers/listing.py +0 -0
  637. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/config_helpers/registry.py +0 -0
  638. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/config_helpers/schemas.py +0 -0
  639. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/config_helpers/typed_config.py +0 -0
  640. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/config_helpers/update.py +0 -0
  641. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/config_helpers/validation.py +0 -0
  642. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/config_subentry_restore.py +0 -0
  643. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/config_write_errors.py +0 -0
  644. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/config_write_helpers.py +0 -0
  645. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/dashboard_edit_errors.py +0 -0
  646. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/dashboard_list_checks.py +0 -0
  647. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/dev_backup.py +0 -0
  648. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/device_control.py +0 -0
  649. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/device_enrichment.py +0 -0
  650. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/diagnostics_helpers.py +0 -0
  651. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/entity_param_parsing.py +0 -0
  652. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/entity_registration.py +0 -0
  653. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/entity_update_fields.py +0 -0
  654. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/error_log_parsing.py +0 -0
  655. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/hacs_registration.py +0 -0
  656. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/helpers.py +0 -0
  657. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/integration_reconfigure.py +0 -0
  658. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/log_common.py +0 -0
  659. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/log_sources.py +0 -0
  660. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/log_sources_fault.py +0 -0
  661. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/log_sources_supervisor.py +0 -0
  662. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/radio/__init__.py +0 -0
  663. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/radio/base.py +0 -0
  664. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/radio/matter.py +0 -0
  665. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/radio/thread.py +0 -0
  666. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/radio/zigbee.py +0 -0
  667. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/radio/zwave.py +0 -0
  668. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/radio/zwave_parameters.py +0 -0
  669. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/reference_validator.py +0 -0
  670. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/registry.py +0 -0
  671. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/renamed_tool_middleware.py +0 -0
  672. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/response_helpers.py +0 -0
  673. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/scene_discovery.py +0 -0
  674. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/search/__init__.py +0 -0
  675. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/search/base.py +0 -0
  676. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/search/component.py +0 -0
  677. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/search/entities.py +0 -0
  678. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/search/legacy.py +0 -0
  679. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/search/modes.py +0 -0
  680. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/search/overview.py +0 -0
  681. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/search/response.py +0 -0
  682. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/search/state.py +0 -0
  683. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/smart_search/__init__.py +0 -0
  684. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/smart_search/_base.py +0 -0
  685. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/smart_search/_config.py +0 -0
  686. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/smart_search/_deep.py +0 -0
  687. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/smart_search/_entities.py +0 -0
  688. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/smart_search/_fetch.py +0 -0
  689. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/smart_search/_graph.py +0 -0
  690. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/smart_search/_overview.py +0 -0
  691. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/smart_search/_scenes.py +0 -0
  692. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/smart_search/_scoring.py +0 -0
  693. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/tool_hints.py +0 -0
  694. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/tool_search_hint_middleware.py +0 -0
  695. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/tools_addons.py +0 -0
  696. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/tools_areas.py +0 -0
  697. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/tools_assist_pipeline.py +0 -0
  698. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/tools_blueprints.py +0 -0
  699. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/tools_bug_report.py +0 -0
  700. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/tools_calendar.py +0 -0
  701. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/tools_camera.py +0 -0
  702. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/tools_categories.py +0 -0
  703. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/tools_code.py +0 -0
  704. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/tools_config_automations.py +0 -0
  705. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/tools_config_dashboards.py +0 -0
  706. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/tools_config_helpers.py +0 -0
  707. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/tools_config_scenes.py +0 -0
  708. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/tools_config_scripts.py +0 -0
  709. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/tools_dashboard_screenshot.py +0 -0
  710. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/tools_energy.py +0 -0
  711. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/tools_entities.py +0 -0
  712. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/tools_filesystem.py +0 -0
  713. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/tools_groups.py +0 -0
  714. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/tools_hacs.py +0 -0
  715. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/tools_history.py +0 -0
  716. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/tools_integrations.py +0 -0
  717. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/tools_labels.py +0 -0
  718. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/tools_logs.py +0 -0
  719. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/tools_radio.py +0 -0
  720. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/tools_registry.py +0 -0
  721. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/tools_resources.py +0 -0
  722. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/tools_search.py +0 -0
  723. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/tools_security_policy.py +0 -0
  724. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/tools_service.py +0 -0
  725. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/tools_services.py +0 -0
  726. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/tools_system.py +0 -0
  727. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/tools_themes.py +0 -0
  728. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/tools_todo.py +0 -0
  729. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/tools_traces.py +0 -0
  730. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/tools_updates.py +0 -0
  731. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/tools_utility.py +0 -0
  732. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/tools_voice_assistant.py +0 -0
  733. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/tools_yaml_config.py +0 -0
  734. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/tools_yaml_read.py +0 -0
  735. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/tools_zones.py +0 -0
  736. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/util_helpers.py +0 -0
  737. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/validation_middleware.py +0 -0
  738. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/tools/ws_waiters.py +0 -0
  739. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/transforms/__init__.py +0 -0
  740. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/transforms/categorized_search.py +0 -0
  741. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/transforms/component_helpers.py +0 -0
  742. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/transforms/component_search.py +0 -0
  743. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/transforms/lite_docstrings.py +0 -0
  744. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/transforms/write_tool_note.py +0 -0
  745. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/transport_security.py +0 -0
  746. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/update_check.py +0 -0
  747. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/utils/__init__.py +0 -0
  748. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/utils/config_hash.py +0 -0
  749. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/utils/config_write_lock.py +0 -0
  750. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/utils/dashboard_patch.py +0 -0
  751. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/utils/data_paths.py +0 -0
  752. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/utils/device_registry_semantics.py +0 -0
  753. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/utils/domain_handlers.py +0 -0
  754. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/utils/entity_membership.py +0 -0
  755. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/utils/fuzzy_search.py +0 -0
  756. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/utils/kill_signal_diagnostics.py +0 -0
  757. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/utils/mcp_client_host.py +0 -0
  758. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/utils/operation_manager.py +0 -0
  759. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/utils/python_sandbox.py +0 -0
  760. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/utils/registry_update_lock.py +0 -0
  761. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/utils/skill_loader.py +0 -0
  762. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/utils/usage_logger.py +0 -0
  763. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/visibility/__init__.py +0 -0
  764. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/visibility/enforcement.py +0 -0
  765. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/visibility/model.py +0 -0
  766. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/src/ha_mcp/visibility/persistence.py +0 -0
  767. {ha_mcp_dev-8.6.0.dev2945 → ha_mcp_dev-8.6.0.dev2949}/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: 8.6.0.dev2945
3
+ Version: 8.6.0.dev2949
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 = "8.6.0.dev2945"
7
+ version = "8.6.0.dev2949"
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 = "8.6.0.dev2945"
7
+ version = "8.6.0.dev2949"
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
@@ -228,8 +228,9 @@ _ADVANCED_SETTINGS_BOUNDS: dict[str, tuple[float, float]] = {
228
228
  }
229
229
 
230
230
  # Values outside the range that mean "off" (sidecar_pin_port: 0 = ephemeral).
231
- # The UI emits min=off value so the number input can still express it; the
232
- # override-apply and UI-POST paths accept the off value OR the range.
231
+ # Row payloads report it as ``off_value`` beside the range, and the settings
232
+ # script lets the number input reach it; the override-apply and UI-POST paths
233
+ # accept the off value OR the range.
233
234
  _ADVANCED_SETTINGS_SENTINELS: dict[str, int] = {
234
235
  name: setting.off_value
235
236
  for name, _field, setting in _settings_of("advanced")
@@ -114,12 +114,11 @@ def _advanced_field_row(
114
114
  bounds = _ADVANCED_SETTINGS_BOUNDS.get(fname)
115
115
  if bounds is not None:
116
116
  row["min"], row["max"] = bounds
117
- # Sentinel fields (e.g. sidecar_pin_port: 0 = off) need the number
118
- # input to reach below the bounded range, so expose the sentinel
119
- # as the UI minimum.
117
+ # A value outside the range with its own meaning (sidecar_pin_port:
118
+ # 0 picks a free port); the UI lets the number input reach it.
120
119
  sentinel = _ADVANCED_SETTINGS_SENTINELS.get(fname)
121
120
  if sentinel is not None:
122
- row["min"] = sentinel
121
+ row["off_value"] = sentinel
123
122
  choices = _ADVANCED_SETTINGS_CHOICES.get(fname)
124
123
  if choices is not None:
125
124
  row["choices"] = list(choices)
@@ -332,15 +332,17 @@ def backup_config_fields() -> list[dict[str, Any]]:
332
332
  fields: list[dict[str, Any]] = []
333
333
  for field_name, env_name, _ftype in BACKUP_OVERRIDE_FIELDS:
334
334
  origin = get_backup_setting_origin(env_name)
335
- fields.append(
336
- {
337
- "field": field_name,
338
- "env_var": env_name,
339
- "value": getattr(settings, field_name),
340
- "origin": origin,
341
- "editable": origin in ("addon", "file", "default"),
342
- }
343
- )
335
+ row: dict[str, Any] = {
336
+ "field": field_name,
337
+ "env_var": env_name,
338
+ "value": getattr(settings, field_name),
339
+ "origin": origin,
340
+ "editable": origin in ("addon", "file", "default"),
341
+ }
342
+ bounds = SETTING_BOUNDS.get(field_name)
343
+ if bounds is not None:
344
+ row["min"], row["max"] = bounds
345
+ fields.append(row)
344
346
  return fields
345
347
 
346
348
 
@@ -6,8 +6,10 @@ the wheel and sdist ship every file under `src/ha_mcp`.
6
6
 
7
7
  **This directory is the canonical translation store.** Besides the settings
8
8
  UI's own strings, each catalog carries the add-on option strings under
9
- `addon.<key>.*` (with `features.<key>.*` for options the settings UI also
10
- shows, and `addon_stable.<key>.*` for flavor-specific wording). Both add-on
9
+ `addon.<key>.*`. An option the settings UI also shows has no `addon.<key>.*`
10
+ entry: it uses the UI's own `features.<key>.*`, `advanced.<key>.*` or
11
+ `backup.fields.<key>.*` text, and `addon_stable.<key>.*` holds flavor-specific
12
+ wording. Both add-on
11
13
  flavors' `translations/*.yaml` and the `FEATURE_META` block in
12
14
  `settings_js/05_feature_flags.js` are generated from these catalogs by
13
15
  `scripts/generate_locales.py` — never edit those by hand. Wherever one
@@ -145,7 +147,7 @@ is named):
145
147
  - The generated files (both add-on YAMLs, `FEATURE_META`) are byte-exact
146
148
  generator output (`test_derived_catalogs_match_the_canonical_store`); run
147
149
  `python scripts/generate_locales.py` after touching any `addon.*`,
148
- `addon_stable.*` or `features.*` key.
150
+ `addon_stable.*`, `features.*`, `advanced.*` or `backup.fields.*` key.
149
151
  - Component-catalog `{placeholder}` parity, for keys whose English still
150
152
  matches the baseline — a hand edit that drops a placeholder fails the PR
151
153
  that makes it; a translation awaiting a machine rewrite is excluded.
@@ -131,7 +131,6 @@
131
131
  "features.enable_tool_search.label": "Alət axtarışını aktivləşdir",
132
132
  "features.enable_tool_search.help": "Tam alət kataloqunu axtarış əsasında alət tapma ilə əvəz edir. Başlanğıc kontekst həcmini təxminən 90% azaldaraq təqribən 5K tokenə endirir. ⚠️ Öz daxili alət axtarışı / sonradan yüklənən alətləri olan müştərilərdə (claude.ai, Claude Desktop, Claude Code) bunu AKTİVLƏŞDİRMƏYİN — iki axtarış qatı ziddiyyət yaradır və həmin müştərinin daxili alət axtarışı daha yaxşı seçimdir; bunu deaktiv saxlayın. Alətlərin sonradan yüklənməsi müştəri və model birləşməsindən asılıdır: quruluşunuz tam kataloqu əvvəlcədən yükləyirsə, bundan istifadə edin — sonradan yüklənən alətlər üçün daxili dəstəyi olmayan modellərdə (məsələn, Gemini, OpenAI ilə uyğun lokal modellər, Claude Haiku), modeldən asılı olmayaraq bütün alət sxemlərini birbaşa kontekstə daxil edən müştərilərdə (məsələn, GitHub Copilot CLI) və ya daha kiçik kontekst pəncərələrində. Bəzi Codex modellərində və ChatGPT-də də sonradan yüklənən alətlər var — bu seçimi ehtiyac olmadan aktiv saxlamamaq üçün müştərinizin/modelinizin imkanlarını birbaşa yoxlayın. Alətlər ha_search_tools vasitəsilə tapılır və kateqoriyalara ayrılmış proksilər vasitəsilə icra olunur (oxuma/yazma/silmə). Qüvvəyə minməsi üçün yenidən başlatma tələb olunur.",
133
133
  "features.tool_search_max_results.label": "Alət axtarışında maksimum nəticə sayı",
134
- "features.tool_search_max_results.help": "Alət axtarışı aktiv olduqda hər ha_search_tools çağırışı üçün qaytarılan gizli alətlərin maksimum sayı; həmin yuxarı sayda yer alan bərkidilmiş alət onun üzərinə qısa yalnız ad daxiletməsi kimi əlavə edilir. Aşağı qiymətlər (2-3) kontekst tokenlərinə qənaət edir, lakin uyğun alətləri qaçıra bilər. Aralıq: 2-10. Yenidən başladılmasını tələb edir.",
135
134
  "features.enable_tool_security_policies.label": "Alətlərin təhlükəsizlik siyasətlərini aktivləşdir (qabaqcıl)",
136
135
  "features.enable_tool_security_policies.help": "Ciddi nəticələr doğura bilən alət çağırışları (kilid/siqnalizasiya idarəetməsi, avtomatlaşdırmaların yazılması və s.) üçün istifadəçi təsdiqi tələb edir. Qorunan alət çağırıldıqda agent istifadəçidən veb interfeysdə Alətlərin təhlükəsizlik siyasətləri bölməsini açmağı və çağırışın davam etməsi üçün Təsdiqlə düyməsinə basmağı istəyir. Hər alət üçün qaydalar və istəyə bağlı arqument şərtləri Alətlərin təhlükəsizlik siyasətləri bölməsində konfiqurasiya olunur. Standart olaraq deaktivdir. Qüvvəyə minməsi üçün yenidən başlatma tələb olunur.",
137
136
  "features.read_only_mode.label": "Yalnız oxuma rejimi",
@@ -252,23 +251,13 @@
252
251
  "tools.summary.disabled": "{count} deaktivdir",
253
252
  "tools.read_only.save_failed": "Yalnız oxuma rejiminin dəyişikliyi yadda saxlanılmadı. Serverdə hələ də əvvəlki dəyər saxlanılır.",
254
253
  "backup.fields.enable_auto_backup.label": "Redaktələr üçün avtomatik ehtiyat nüsxə yarat",
255
- "backup.fields.enable_auto_backup.help": "Avtomatik ehtiyat nüsxələmə ilə əhatə olunan hər yazma və ya dağıdıcı alət çağırışından əvvəl anlıq nüsxə yaradın.",
256
254
  "backup.fields.enable_snapshot_actions.label": "Tam HA arxiv (snapshot) əməliyyatlarına icazə ver",
257
- "backup.fields.enable_snapshot_actions.help": "AI köməkçilərinə ha_manage_backup və ha_call_service daxilindəki ekvivalent arxiv xidmətləri və əmrləri vasitəsilə tam Home Assistant arxivlərini idarə etməyə icazə verin. Bunu söndürmək siyahıyaalma daxil olmaqla bütün arxiv əməliyyatlarını bloklayır. Arxivin silinməsi yalnız ha_manage_backup vasitəsilə mümkündür və həmçinin Arxivin silinməsinə icazə verilməsini tələb edir. Bu səhifədəki arxiv redaktələri və insan tərəfindən edilən əməliyyatlar əlçatan olaraq qalır.",
258
255
  "backup.fields.backup_read_only.label": "Arxiv idarəetməsini yalnız oxunaqlı edin",
259
- "backup.fields.backup_read_only.help": "AI köməkçilərinə arxiv redaktələrini siyahıya almağa, baxmağa və fərqləri yoxlamağa, həmçinin arxiv əməliyyatları aktiv olduqda tam HA arxivlərini siyahıya almağa icazə verin. Əl ilə arxiv yaratma, bərpa etmə (redaktə bərpaları daxil olmaqla) və silmə əməliyyatlarını, o cümlədən ha_call_service daxilindəki ekvivalent arxiv xidmətləri və əmrlərini bloklayın. Avtomatik redaktədən əvvəlki arxivlər davam edir. Bu səhifədəki insan tərəfindən edilən əməliyyatlar əlçatan olaraq qalır.",
260
- "backup.fields.auto_backup_throttle_minutes.label": "Tezlik məhdudiyyəti (dəqiqə)",
261
- "backup.fields.auto_backup_throttle_minutes.help": "Hər obyekt üzrə tezlik məhdudiyyəti. 0 = hər yazmada; N > 0 = hər N dəqiqədə ən çox bir ehtiyat nüsxə. Aralıq 0–1440.",
262
- "backup.fields.auto_backup_retain_per_entity.label": "Hər obyekt üçün saxlanılan nüsxə sayı",
263
- "backup.fields.auto_backup_retain_per_entity.help": "Hər obyekt üçün saxlanılan anlıq nüsxələrin maksimum sayı (1–10000). Köhnələri növbə ilə silinir.",
264
256
  "backup.fields.auto_backup_dir.label": "Ehtiyat nüsxə qovluğunu dəyiş",
265
257
  "backup.fields.auto_backup_dir.help": "Standart yer üçün boş saxlayın: tətbiqdə (əlavədə) /data/ha_mcp_backups, digər hallarda ha-mcp məlumat qovluğunun backups/ alt qovluğu; anlıq nüsxələri əvvəlki standart yerdə saxlayan qurulum həmin yerdən istifadə etməyə davam edir. İstifadə olunan qovluq ehtiyat nüsxələrin vəziyyətində göstərilir. Və ya mütləq yol daxil edin.",
266
258
  "backup.fields.auto_backup_calendar_lookahead_days.label": "Təqvimdə irəli baxış (gün)",
267
- "backup.fields.auto_backup_calendar_lookahead_days.help": "Redaktədən əvvəlki anlıq nüsxələr üçün qarşıdakı neçə günün təqvim hadisələrinin sorğulanması. Aralıq 1–365.",
268
259
  "backup.fields.enable_snapshot_delete.label": "Anlıq nüsxələrin silinməsinə icazə ver",
269
- "backup.fields.enable_snapshot_delete.help": "Planlaşdırılmış, ən yeni və kifayət qədər köhnəlməmiş anlıq nüsxələrin qorunmasını saxlamaqla ha_manage_backup alətinə tam HA anlıq nüsxələrini silməyə icazə verin.",
270
260
  "backup.fields.snapshot_delete_min_age_days.label": "Silmək üçün anlıq nüsxənin minimum yaşı (gün)",
271
- "backup.fields.snapshot_delete_min_age_days.help": "Anlıq nüsxənin silinməsi üçün yaradılmasından ən azı bu qədər vaxt keçməlidir. Aralıq 0–365.",
272
261
  "backup.origins.addon": "Supervisor ilə sinxronlaşdırılıb. Yadda saxladıqdan sonra yenidən başlatma tələb olunur.",
273
262
  "backup.origins.file": "Lokal olaraq saxlanılır; dərhal qüvvəyə minir.",
274
263
  "backup.origins.default": "Standart dəyər istifadə olunur; ilk yadda saxlamada onu əvəz edən lokal parametr faylı yaradılır.",
@@ -438,29 +427,16 @@
438
427
  "advanced.homeassistant_token.label": "Home Assistant tokeni",
439
428
  "advanced.homeassistant_token.help": "Yalnız göstərilir. HOMEASSISTANT_TOKEN vasitəsilə təyin edilir. Təhlükəsizlik üçün burada gizlədilir.",
440
429
  "advanced.timeout.label": "HA sorğusunun gözləmə müddəti (s)",
441
- "advanced.timeout.help": "Hər HTTP sorğusu üçün gözləmə müddəti. Aralıq 1–600. Yenidən başlatmaq tələb olunur.",
442
430
  "advanced.max_retries.label": "HA sorğusu üçün maksimum təkrar cəhd sayı",
443
- "advanced.max_retries.help": "Hər uğursuz REST çağırışı üçün təkrar cəhd limiti. Aralıq 0–20. Yenidən başlatmaq tələb olunur.",
444
- "advanced.verify_ssl.label": "SSL sertifikatlarını yoxla",
445
- "advanced.verify_ssl.help": "TLS yoxlamasını yalnız etibarlı şəbəkələrdə söndürün. Yenidən başlatmaq tələb olunur.",
446
431
  "advanced.fuzzy_threshold.label": "Qeyri-səlis axtarış həddi",
447
- "advanced.fuzzy_threshold.help": "Daha aşağı dəyərlər obyektlərin uyğunlaşdırılmasında daha az dəqiqlik tələb edir. Aralıq 0–100.",
448
432
  "advanced.automation_config_time_budget.label": "Avtomatlaşdırma konfiqurasiyaları üçün vaxt limiti (s)",
449
- "advanced.automation_config_time_budget.help": "Dərin axtarışın avtomatlaşdırma konfiqurasiyalarını əldə etməyə sərf etdiyi maksimum vaxt. Aralıq 1–600. Yenidən başlatmaq tələb olunur.",
450
433
  "advanced.script_config_time_budget.label": "Skript konfiqurasiyaları üçün vaxt limiti (s)",
451
- "advanced.script_config_time_budget.help": "Dərin axtarışın skript konfiqurasiyalarını əldə etməyə sərf etdiyi maksimum vaxt. Aralıq 1–600. Yenidən başlatmaq tələb olunur.",
452
434
  "advanced.scene_config_time_budget.label": "Səhnə konfiqurasiyaları üçün vaxt limiti (s)",
453
- "advanced.scene_config_time_budget.help": "Dərin axtarışın səhnə konfiqurasiyalarını əldə etməyə sərf etdiyi maksimum vaxt. Aralıq 1–600. Yenidən başlatmaq tələb olunur.",
454
435
  "advanced.individual_config_timeout.label": "Hər konfiqurasiya sorğusu üçün gözləmə müddəti (s)",
455
- "advanced.individual_config_timeout.help": "Hər avtomatlaşdırma/skript/səhnə konfiqurasiyasını əldə etmək üçün gözləmə müddəti. Aralıq 1–600. Yenidən başlatmaq tələb olunur.",
456
436
  "advanced.individual_fetch_batch_size.label": "Konfiqurasiya sorğuları paketinin ölçüsü",
457
- "advanced.individual_fetch_batch_size.help": "ID üzrə eyni vaxtda konfiqurasiya sorğularının sayı. Sorğuları ardıcıl icra edən HA serverlərində 1 dəyərinə doğru azaldın. Aralıq 1–100. Yenidən başlatmaq tələb olunur.",
458
437
  "advanced.enable_history_query_guardrails.label": "Tarixçə sorğuları üçün qoruyucu məhdudiyyətlər",
459
438
  "advanced.enable_history_query_guardrails.help": "Obyekt sayı və vaxt aralığı üzrə ehtiyatlı limitləri aşan qeydiyyatçı sorğularını rədd edir. Standart olaraq deaktivdir.",
460
439
  "advanced.ha_tool_concurrency.label": "Home Assistant alətlərinin paralel icrası",
461
- "advanced.ha_tool_concurrency.help": "Bütün sessiyalar üzrə Home Assistant alətlərinin üst səviyyəli çağırışlarının eyni vaxtda icrası üçün istəyə bağlı limit. Daxili REST, WebSocket və hər alətin daxilində şaxələnən çağırışların paralel icrası dəyişmir. 0 məhdudiyyətsiz davranışı saxlayır. İcra üçün boş yer gözləyən çağırış 60 saniyədən sonra uğursuz olur. Aralıq 0–32. Yenidən başlatmaq tələb olunur.",
462
- "advanced.backup_hint.label": "Ehtiyat nüsxə tövsiyəsinin səviyyəsi",
463
- "advanced.backup_hint.help": "Riskli yazma əməliyyatlarından əvvəl HA-nın tam anlıq nüsxəsini yaratmaq üçün LLM-ə verilən tövsiyənin nə dərəcədə təkidli olmasını idarə edir.",
464
440
  "advanced.backup_hint.choices.strong": "Güclü",
465
441
  "advanced.backup_hint.choices.normal": "Normal",
466
442
  "advanced.backup_hint.choices.weak": "Zəif",
@@ -468,71 +444,35 @@
468
444
  "advanced.dashboard_screenshot_engine_url.label": "İdarə panelinin ekran görüntüsü mühərrikinin URL-i",
469
445
  "advanced.dashboard_screenshot_engine_url.help": "Ekran görüntüsü mühərrikinin əsas URL-i. Supervisor vasitəsilə avtomatik aşkarlama üçün boş saxlayın. Dərhal tətbiq edilir.",
470
446
  "advanced.enable_websocket.label": "WebSocket-i aktivləşdir",
471
- "advanced.enable_websocket.help": "WebSocket vasitəsilə vəziyyətin izlənməsi. Söndürüldükdə dövri sorğulara keçilir və bir çox alətin işi zəifləyir. Yenidən başlatmaq tələb olunur.",
472
447
  "advanced.enabled_tool_modules.label": "Aktiv alət modulları",
473
- "advanced.enabled_tool_modules.help": "Vergüllə ayrılmış modul adları və ya 'all'. Yenidən başlatmaq tələb olunur.",
474
448
  "advanced.enable_dashboard_partial_tools.label": "İdarə panelinin qismən yenilənməsi alətləri",
475
449
  "advanced.enable_dashboard_partial_tools.help": "Tokenlərə qənaət edən qismən idarə paneli alətləri. Alətlərdən proqram vasitəsilə istifadə edən müştərilər üçün söndürün.",
476
450
  "advanced.mcp_server_name.label": "MCP serverinin adı",
477
- "advanced.mcp_server_name.help": "MCP əl sıxması zamanı bildirilir. Yenidən başlatmaq tələb olunur.",
478
451
  "advanced.mcp_server_version.label": "MCP serverinin versiyası",
479
- "advanced.mcp_server_version.help": "Standart olaraq paketin versiyası istifadə edilir. Başqa dəyər təyin etmək müştərilərdə çaşqınlıq yarada bilər. Yenidən başlatmaq tələb olunur.",
480
452
  "advanced.environment.label": "Mühit",
481
- "advanced.environment.help": "development və ya production. Jurnala yazılan məlumatların təfərrüat səviyyəsinə təsir edir. Yenidən başlatmaq tələb olunur.",
482
453
  "advanced.http_transport_diagnostics.label": "HTTP ötürülməsinin diaqnostikası",
483
- "advanced.http_transport_diagnostics.help": "Eksperimentaldır. Server işləyərkən HTTP diaqnostikası üçün INFO səviyyəsində jurnal qeydini avtomatik aktivləşdirir; ötürülən məzmun və giriş məlumatları daxil edilmir. Digər jurnal qeydiyyatçıları dəyişmir; Home Assistant jurnal qeydiyyatçısı üçün açıq şəkildə təyin edilmiş fərdi parametrlər və süzgəclər qüvvədə qalır. Müştərinin məlumatı qəbul etdiyini təsdiqləmir. Yalnız HTTP üçün; yenidən başlatmaq tələb olunur.",
484
454
  "advanced.http_json_response.label": "Axın əvəzinə JSON cavabları",
485
- "advanced.http_json_response.help": "Eksperimentaldır. SSE axını əvəzinə tək JSON cavabı qaytarır. Bu serverdəki bütün HTTP müştərilərinə təsir edir və bu cavablar üçün gedişatın axınla ötürülməsini söndürür. Yalnız HTTP üçün; yenidən başlatmaq tələb olunur.",
486
455
  "advanced.log_level.label": "Jurnal səviyyəsi",
487
- "advanced.log_level.help": "DEBUG/INFO/WARNING/ERROR/CRITICAL. Yenidən başlatmaq tələb olunur.",
488
456
  "advanced.debug.label": "Sazlama rejimi",
489
- "advanced.debug.help": "Sorğuların ətraflı jurnallaşdırılması. Həssas məlumatları üzə çıxara bilər. Yenidən başlatmaq tələb olunur.",
490
457
  "advanced.code_mode_max_duration.label": "Kod rejimində maksimum müddət (s)",
491
- "advanced.code_mode_max_duration.help": "Təcrid olunmuş mühitdə hər icra üçün faktiki keçən vaxt limiti. Aralıq 1–300. Yenidən başlatmaq tələb olunur.",
492
458
  "advanced.code_mode_max_memory.label": "Kod rejimində maksimum yaddaş (bayt)",
493
- "advanced.code_mode_max_memory.help": "Təcrid olunmuş mühitdə hər icra üçün yaddaş limiti. Aralıq 1–256 MB. Yenidən başlatmaq tələb olunur.",
494
459
  "advanced.code_mode_max_recursion.label": "Kod rejimində maksimum rekursiya",
495
- "advanced.code_mode_max_recursion.help": "Təcrid olunmuş mühitdə hər icra üçün rekursiya dərinliyi limiti. Yenidən başlatmaq tələb olunur.",
496
460
  "advanced.code_mode_max_invocations.label": "Kod rejimində maksimum çağırış sayı",
497
- "advanced.code_mode_max_invocations.help": "Təcrid olunmuş mühitdə hər icra üçün API/alət çağırışı limiti. Yenidən başlatmaq tələb olunur.",
498
461
  "advanced.code_mode_saved_tools_path.label": "Yadda saxlanmış alətlərin yolu",
499
- "advanced.code_mode_saved_tools_path.help": "Fərdi alətləri yenidən başlatmalar arasında qorumaq üçün istifadə edilən JSON faylı. Yenidən başlatmaq tələb olunur.",
500
462
  "advanced.extra_yaml_write_keys.label": "Yazmağa icazə verilən əlavə YAML açarları",
501
463
  "advanced.extra_yaml_write_keys.help": "Bu quraşdırmada əsasən YAML ilə işləyən inteqrasiyalar (məs. alert2) üçün ha_config_set_yaml alətinin daxili açarlara əlavə olaraq yaza biləcəyi yuxarı səviyyəli açarlar. Hər sətirdə bir açar daxil edin və ya açarları vergüllə ayırın. Home Assistant-ın öz etibar sərhədini yenidən müəyyən edən açarlar heç vaxt əlavə edilə bilməz və nəzərə alınmır. Fərdi komponentin 1.2.4 və ya daha yeni versiyası tələb olunur.",
502
464
  "advanced.sidecar_pin_port.label": "Parametrlər interfeysinin köməkçi proses portu",
503
- "advanced.sidecar_pin_port.help": "0 ilk işə salınmada boş port seçir və onu sonrakı yenidən başlatmalar üçün saxlayır; 1024–65535 üstün tutulan portu sabitləyir (məşğuldursa, boş porta keçir). Yenidən başlatmaq tələb olunur.",
504
465
  "advanced.enable_dev_mode.label": "Proqramçı rejimi",
505
- "advanced.enable_dev_mode.help": "⚠ Parametrləri dəyişdirə və işləyən serveri əvəz edə bilən gizli alətləri qeydiyyata alır. Yalnız proqramlaşdırma və sınaq üçün. Yenidən başlatmaq tələb olunur.",
506
466
  "advanced.dev_tools_security_policy_access.label": "Proqramçı alətlərinin təhlükəsizlik siyasətlərinə girişi",
507
467
  "advanced.dev_tools_security_policy_access.help": "⚠ Proqramçı rejimi aktiv olduqda proqramçı alətlərinə alətlərin təhlükəsizlik siyasətlərini yenidən yazmağa, ayrı-ayrı alətlər üçün təsdiq tələbləri əlavə etməyə və ya onları çıxarmağa, gözləyən təsdiq sorğularını sizin adınızdan təsdiqləməyə və ya rədd etməyə imkan verir — AI agenti öz təsdiq tələb edən çağırışlarını qəbul edə bilər. Yalnız siyasətlərin sınağı üçün. Yenidən başlatmadan qüvvəyə minir.",
508
- "addon.backup_hint.name": "HA-nın tam anlıq nüsxəsi üçün tövsiyə səviyyəsi (LLM üçün)",
509
- "addon.backup_hint.description": "Riskli əməliyyatlardan (məs. cihazların kütləvi silinməsindən) əvvəl\nHome Assistant-ın tar arxivində tam ehtiyat nüsxəsinin yaradılmasını nə vaxt\ntövsiyə etmək barədə LLM-in `ha_manage_backup(scope='snapshot')` alətinin təsvirində\ngördüyü tövsiyənin ifadə tərzini tənzimləyir. YALNIZ LLM-ə ünvanlanan\nbu bir cümləyə təsir edir.\n\nAvtomatlaşdırmaların / skriptlərin / köməkçilərin / və s. hər redaktəsindən əvvəl avtomatik anlıq nüsxə yaratmaq üçün\naşağıdakı ayrıca **Redaktələrin avtomatik ehtiyat nüsxəsini aktivləşdir** seçimindən istifadə edin.",
510
468
  "addon.secret_path.name": "Gizli yolun əvəzlənməsi",
511
469
  "addon.secret_path.description": "MCP serveri üçün istəyə bağlı fərdi HTTP yolu. Avtomatik yaradılmış təhlükəsiz yoldan istifadə etmək üçün boş saxlayın.\n",
512
470
  "addon.enable_security_policy_tool.name": "AI agentlərinə alətlərin təhlükəsizlik siyasətlərini redaktə etməyə icazə ver",
513
471
  "addon.enable_security_policy_tool.description": "Qoşulmuş AI agentlərinə alətlərin təhlükəsizlik siyasətlərini oxumağa və yenidən yazmağa imkan verən ha_manage_security_policy alətini qeydiyyata alır — bu, təsdiq tələblərinin çıxarılmasını da əhatə edir. Standart olaraq deaktivdir. Yuxarıdakı Alətlərin təhlükəsizlik siyasətləri seçimindən asılı deyil: bu seçim qaydaların tətbiq olunmasını deyil, onları kimin redaktə edə biləcəyini idarə edir. Alət gözləyən təsdiq sorğularını görə və ya onlar barədə qərar verə bilməz. İnsan nəzarətini saxlamaq üçün aləti aktivləşdirməzdən əvvəl ona təsdiq tələbi qoyun: veb interfeysin Alətlər vərəqində Təhlükəsizlik siyasətini idarə et aləti üçün \"security gated\" seçimini aktivləşdirin. Qüvvəyə minməsi üçün yenidən başlatmaq tələb olunur.",
514
- "addon.enable_auto_backup.name": "Redaktələrin avtomatik ehtiyat nüsxəsini aktivləşdir",
515
- "addon.enable_snapshot_actions.name": "Tam HA arxiv (snapshot) əməliyyatlarına icazə ver",
516
- "addon.enable_snapshot_actions.description": "AI köməkçilərinə ha_manage_backup(scope='snapshot') və ha_call_service daxilindəki ekvivalent arxiv xidmətləri və əmrləri vasitəsilə tam Home Assistant arxivlərini idarə etməyə icazə verin. Bunu söndürmək siyahıyaalma daxil olmaqla bütün arxiv əməliyyatlarını bloklayır, redaktə arxivləri isə əlçatan qalır. Arxivin silinməsi yalnız ha_manage_backup vasitəsilə mümkündür, həmçinin enable_snapshot_delete tələb edir və onun qoruma mexanizmləri hələ də qüvvədədir. Varsayılan olaraq aktivdir. Bu seçimi dəyişdirin və ya veb Settings UI Backups vərəqindən istifadə edin; tətbiqdə yenidən başladılmasını tələb edir.",
517
- "addon.backup_read_only.name": "Arxiv idarəetməsini yalnız oxunaqlı edin",
518
- "addon.backup_read_only.description": "ha_manage_backup funksiyasını arxiv redaktələrini siyahıya almaq, baxmaq və fərqləri yoxlamaq, həmçinin arxiv əməliyyatları aktiv olduqda tam HA arxivlərini siyahıya almaqla məhdudlaşdırın. Əl ilə arxiv yaratma, bərpa etmə (redaktə bərpaları daxil olmaqla) və silmə əməliyyatlarını, o cümlədən ha_call_service daxilindəki ekvivalent arxiv xidmətləri və əmrlərini bloklayır. Avtomatik redaktədən əvvəlki arxivlər davam edir və veb Settings UI səhifəsindəki insan tərəfindən edilən əməliyyatlar əlçatan olaraq qalır. Varsayılan olaraq deaktivdir; tətbiqdə yenidən başladılmasını tələb edir.",
519
- "addon.enable_auto_backup.description": "Ehtiyat nüsxə mexanizmi ilə əhatə olunan hər yazma/dağıdıcı MCP alət çağırışından (avtomatlaşdırma, skript, səhnə, köməkçi, idarə paneli, idarə paneli resursu, etiket, kateqoriya, qrup, zona, sahə, təqvim, todo, obyekt, cihaz, inteqrasiya və müvafiq çıxarma/silmə alətləri) əvvəl obyekt üzrə anlıq nüsxə yaradır. Avtomatik ehtiyat nüsxə tezliyi limiti bunun nə qədər tez-tez baş verdiyini məhdudlaşdırır: 0 (standart) hər belə çağırışda, N>0 isə hər obyekt üçün N dəqiqə ərzində ən çox bir anlıq nüsxə yaradır. Anlıq nüsxələr /data/ha_mcp_backups/ altında YAML faylları kimi saxlanılır (HAMCP_BACKUP_DIR vasitəsilə dəyişdirilə bilər) və veb parametrlər interfeysindəki Ehtiyat nüsxələr vərəqi və ya ha_manage_backup(scope='edits', ...) vasitəsilə siyahılanır, bərpa edilir və ya silinir. Bu domenlər üçün nüsxənin yaradılması imkan daxilində yerinə yetirilir — uğursuzluq zamanı jurnala WARNING yazılır və yazma əməliyyatı davam edir. Fayl və birbaşa YAML alətləri istisnadır: ha_write_file, ha_delete_file və ha_config_set_yaml anlıq nüsxəni ilkin şərt sayır, buna görə bu seçim deaktiv olduqda həmin alətlərlə yazma rədd edilir, nüsxə yaratmaq alınmadıqda isə yazma bloklanır. Standart olaraq aktivdir; seçimi söndürmək imkan daxilində yaradılan nüsxələrdən imtina edir və bununla birlikdə fayl və birbaşa YAML alətlərini də istifadədən çıxarır. Qüvvəyə minməsi üçün yenidən başlatmaq tələb olunur.",
520
- "addon.auto_backup_throttle_minutes.name": "Avtomatik ehtiyat nüsxə tezliyi limiti (dəqiqə)",
521
- "addon.auto_backup_throttle_minutes.description": "Hər obyekt üçün tezlik məhdudiyyətinin müddəti. 0 (standart) ehtiyat nüsxə mexanizmi ilə əhatə olunan hər yazma əməliyyatında anlıq nüsxə yaradır. N>0 hər obyekt üçün N dəqiqə ərzində ən çox bir anlıq nüsxə yaradır. Aralıq 0–1440.",
522
- "addon.auto_backup_retain_per_entity.name": "Avtomatik ehtiyat nüsxələrin saxlanma sayı (hər obyekt üzrə)",
523
- "addon.auto_backup_retain_per_entity.description": "Hər obyekt üçün saxlanılan anlıq nüsxələrin maksimum sayı. Bu limiti aşan köhnə anlıq nüsxələr hər uğurlu nüsxə yaratma zamanı silinir. Standart dəyər 100, aralıq 1–10000.",
524
- "addon.enable_snapshot_delete.name": "Anlıq nüsxələrin silinməsinə icazə ver",
525
- "addon.enable_snapshot_delete.description": "ha_manage_backup alətinə HA-nın tam anlıq nüsxələrinin tar arxivlərini silməyə imkan verir (scope='snapshot', action='delete'). Standart olaraq deaktivdir — səhv dəyişiklikdən sonra anlıq nüsxə son bərpa nöqtəsi ola bilər, buna görə insan burada bu seçimi aktivləşdirməlidir. Aktiv olduqda belə planlaşdırılmış ehtiyat nüsxələr, qalan ən yeni anlıq nüsxə və aşağıdakı minimum yaş həddinə çatmamış bütün nüsxələr qorunur.",
526
- "addon.snapshot_delete_min_age_days.name": "Silmək üçün anlıq nüsxənin minimum yaşı (gün)",
527
- "addon.snapshot_delete_min_age_days.description": "Anlıq nüsxənin silinə bilməsi üçün yaradılmasından ən azı bu qədər vaxt keçməlidir. Aralıq 0–365; 0 minimum həddi söndürür (ən yeni anlıq nüsxənin və planlaşdırılmış ehtiyat nüsxələrin qorunması qüvvədə qalır). Standart dəyər 7.",
528
472
  "addon.disabled_tools.name": "Deaktiv alətlər (vergüllə ayrılmış)",
529
473
  "addon.disabled_tools.description": "Burada sadalanan alətlər məcburi söndürülür və veb Parametrlər interfeysində (Alətlər vərəqində) kilidlənir — əvvəlcə bu seçimdəki təyinatı ləğv etmədən onları orada yenidən aktivləşdirmək mümkün deyil. Məcburi alətlərin kiçik bir qrupu (ha_search, ha_get_overview, ha_get_state, ha_report_issue, ha_manage_backup) söndürülə bilməz və burada sadalansa belə işləməyə davam edir. ha_get_skill_guide yalnız ən yaxşı təcrübələrə ciddi riayət rejimi (enable_strict_mandatory_bps) deaktiv olduqda söndürülə bilər. Vergüllə ayrılmış alət adları (məs. ha_call_event,ha_eval_template).",
530
474
  "addon.pinned_tools.name": "Sancaqlanmış alətlər (vergüllə ayrılmış)",
531
475
  "addon.pinned_tools.description": "Burada sadalanan alətlər sancaqlanmış vəziyyətdə kilidlənir — Alətlər vərəqinin yuxarısında görünür və əvvəlcə bu seçimdəki təyinatı ləğv etmədən veb Parametrlər interfeysindən sancaqlarını çıxarmaq mümkün deyil. Alət axtarışı ilə birlikdə faydalıdır. Vergüllə ayrılmış alət adları.",
532
- "addon.verify_ssl.name": "TLS sertifikatını yoxla",
533
- "addon.verify_ssl.description": "Home Assistant serverinin TLS sertifikatını yoxlayın. Tətbiq (əlavə) Supervisor proksisi vasitəsilə qoşulur, buna görə adətən bu seçimin təsiri olmur və aktiv saxlanmalıdır. Yalnız tətbiqi (əlavəni) HA ilə özünün imzaladığı sertifikatı olan və ya host adı uyğun gəlməyən ictimai HTTPS host adı üzərindən əlaqə yaratmaq üçün yenidən konfiqurasiya etmisinizsə söndürün. Söndürmək ötürülmənin təhlükəsizliyini zəiflədir — buna ehtiyacınız olduğunu dəqiq bilmirsinizsə, aktiv saxlayın. Qüvvəyə minməsi üçün yenidən başlatmaq tələb olunur.",
534
- "addon.ha_tool_concurrency.name": "Home Assistant alətlərinin paralel icrası",
535
- "addon.ha_tool_concurrency.description": "Bütün sessiyalar üzrə Home Assistant alətlərinin üst səviyyəli çağırışlarının eyni vaxtda icrası üçün istəyə bağlı limit. Daxili REST, WebSocket və hər alətin daxilində şaxələnən çağırışların paralel icrası dəyişmir. 0 məhdudiyyətsiz davranışı saxlayır. İcra üçün boş yer gözləyən çağırış 60 saniyədən sonra uğursuz olur.",
536
476
  "addon_stable.enable_tool_search.description": "Tam alət kataloqunu axtarış əsasında aşkarlama ilə əvəz edin. Boşdayanma zamanı kontekst həcmini təxminən 90% azaldaraq təqribən 5K tokenə endirir. ⚠️ Öz daxili alət axtarışı / təxirə salınmış alətləri olan müştərilərdə (claude.ai, Claude Desktop, Claude Code) bunu aktivləşdirməyin — iki axtarış qatı toqquşur və həmin müştərilərdə daxili alət axtarışı daha yaxşı seçimdir; bunu deaktiv saxlayın. Alətlərin təxirə salınıb-salınmaması müştəri və model birləşməsindən asılıdır: quruluşunuz tam kataloqu əvvəlcədən yükləyirsə, bundan istifadə edin — təxirə salınmış alətləri özündə dəstəkləməyən modellər (məs. Gemini, OpenAI ilə uyğun lokal modellər, Claude Haiku), modeldən asılı olmayaraq bütün alət sxemlərini birbaşa kontekstə daxil edən müştərilər (məs. GitHub Copilot CLI) və ya daha kiçik kontekst pəncərələri üçün. Bəzi Codex modelləri və ChatGPT də təxirə salınmış alətləri dəstəkləyir — bu seçimi lazımsız yerə aktiv saxlamamaq üçün müştərinizin/modelinizin funksiyalarını birbaşa yoxlayın. Alətlər ha_search_tools vasitəsilə tapılır və kateqoriyalara ayrılmış proksilər (oxuma/yazma/silmə) vasitəsilə icra olunur. Qüvvəyə minməsi üçün tətbiqi (əlavəni) yenidən başlatmaq tələb olunur — sonra alət siyahısının yenidən yüklənməsi üçün AI müştərinizdə MCP serverinə yenidən qoşulun və ya onu yeniləyin. Təkcə tətbiqi (əlavəni) yenidən başlatmaq müştərinin keşindəki alət siyahısını yeniləmir; bu, buradakı istənilən parametr dəyişdirildikdən sonra keçərlidir.",
537
477
  "policies.global.event_decisions.label": "Home Assistant hadisələrindən təsdiqləməyə/rədd etməyə icazə ver",
538
478
  "policies.global.event_decisions.help": "Varsayılan olaraq söndürülür. Aktiv olduqda, gözləyən sorğunun tokenini, qərarı və aşağıdakı PİN-i daşıyan <code>ha_mcp_approval_response</code> hadisəsi həmin sorğunu müəyyən edir — beləliklə, öz bildiriş avtomatlaşdırmanız onu telefondan təsdiq edə bilər. Aktivləşdirilməzdən əvvəl PİN tələb olunur.",
@@ -131,7 +131,6 @@
131
131
  "features.enable_tool_search.label": "Povolit vyhledávání nástrojů",
132
132
  "features.enable_tool_search.help": "Nahradí celý katalog nástrojů vyhledáváním. Snižuje nečinný kontext přibližně o 90 %, na zhruba 5K tokenů. ⚠️ NEPOVOLUJTE toto v klientech s vlastním vestavěným vyhledáváním nástrojů / odloženými nástroji (claude.ai, Claude Desktop, Claude Code) — dvě vrstvy vyhledávání se střetávají a vestavěné vyhledávání nástrojů klienta je tam lepší volbou; nechte to vypnuté. Zda jsou nástroje odložené, závisí na kombinaci vašeho klienta a modelu: použijte toto, když vaše nastavení načítá celý katalog předem — modely bez nativních odložených nástrojů (např. Gemini, lokální modely kompatibilní s OpenAI, Claude Haiku), klienti, kteří vkládají všechna schémata nástrojů bez ohledu na model (např. GitHub Copilot CLI), nebo menší kontextová okna. Některé modely Codex a ChatGPT také zahrnují odložené nástroje — zkontrolujte přímo svého klienta/model, abyste potvrdili jeho funkce a nenechali to zbytečně povolené. Nástroje jsou nalezeny pomocí ha_search_tools a spouštěny prostřednictvím kategorizovaných proxy (čtení/zápis/mazání). Vyžaduje restart, aby se projevilo.",
133
133
  "features.tool_search_max_results.label": "Max. výsledků vyhledávání nástrojů",
134
- "features.tool_search_max_results.help": "Maximální počet skrytých nástrojů vrácených na jedno volání ha_search_tools, když je vyhledávání nástrojů povolené; připnutý nástroj, který se umisťuje v rámci tohoto horního počtu, je přidán jako krátká položka obsahující pouze název navrch. Nižší hodnoty (2-3) šetří kontextové tokeny, ale mohou minout relevantní nástroje. Rozsah: 2-10. Vyžaduje restart.",
135
134
  "features.enable_tool_security_policies.label": "Povolit zásady zabezpečení nástrojů (pokročilé)",
136
135
  "features.enable_tool_security_policies.help": "Podmiňuje vysoce rizikové volání nástrojů (ovládání zámků/alarmů, zápisy automatizací atd.) schválením uživatelem. Když je volán chráněný nástroj, agent řekne uživateli, aby otevřel záložku Zásady zabezpečení nástrojů ve webovém rozhraní a klikl na Schválit, než volání pokračuje. Pravidla pro jednotlivé nástroje s volitelnými podmínkami argumentů se konfigurují na záložce Zásady zabezpečení nástrojů. Ve výchozím nastavení vypnuto. Vyžaduje restart, aby se projevilo.",
137
136
  "features.read_only_mode.label": "Režim pouze pro čtení",
@@ -252,23 +251,13 @@
252
251
  "tools.summary.disabled": "{count} zakázáno",
253
252
  "tools.read_only.save_failed": "Změna režimu pouze pro čtení se neuložila. Server stále používá předchozí hodnotu.",
254
253
  "backup.fields.enable_auto_backup.label": "Automatické zálohování úprav",
255
- "backup.fields.enable_auto_backup.help": "Pořiďte snímek před každým zabaleným zápisem nebo destruktivním voláním nástroje.",
256
254
  "backup.fields.enable_snapshot_actions.label": "Povolit akce s úplnými snapshoty HA",
257
- "backup.fields.enable_snapshot_actions.help": "Umožnit AI asistentům spravovat úplné snapshoty Home Assistant prostřednictvím ha_manage_backup a odpovídajících zálohovacích služeb a příkazů v ha_call_service. Vypnutím zablokujete všechny akce se snapshoty, včetně jejich výpisu. Mazání snapshotů je dostupné pouze přes ha_manage_backup a vyžaduje také Povolit mazání snapshotů. Úpravy záloh a lidské akce na této stránce zůstávají dostupné.",
258
255
  "backup.fields.backup_read_only.label": "Nastavit správu záloh jako jen pro čtení",
259
- "backup.fields.backup_read_only.help": "Umožnit AI asistentům vypisovat, zobrazovat a porovnávat zálohy pro úpravy a vypisovat úplné snapshoty HA, pokud jsou povoleny akce se snapshoty. Blokuje ruční vytváření, obnovení (včetně obnovení úprav) a mazání záloh, včetně odpovídajících zálohovacích služeb a příkazů v ha_call_service. Automatické zálohy před úpravami pokračují. Lidské akce na této stránce zůstávají dostupné.",
260
- "backup.fields.auto_backup_throttle_minutes.label": "Omezení (minuty)",
261
- "backup.fields.auto_backup_throttle_minutes.help": "Omezení na entitu. 0 = každý zápis; N > 0 = maximálně jedna záloha za N minut. Rozsah 0–1440.",
262
- "backup.fields.auto_backup_retain_per_entity.label": "Zachovat na entitu",
263
- "backup.fields.auto_backup_retain_per_entity.help": "Maximální počet snímků uchovávaných na entitu (1–10000). Starší se postupně odstraňují.",
264
256
  "backup.fields.auto_backup_dir.label": "Přepsání adresáře záloh",
265
257
  "backup.fields.auto_backup_dir.help": "Ponechte prázdné pro výchozí hodnotu: /data/ha_mcp_backups v aplikaci (doplňku), jinak podadresář backups datového adresáře ha-mcp; instalace, která již obsahuje zálohy pod dřívějším výchozím nastavením, jej nadále používá. Používaný adresář se zobrazuje ve stavu zálohy. Nebo zadejte absolutní cestu.",
266
258
  "backup.fields.auto_backup_calendar_lookahead_days.label": "Předstih kalendáře (dny)",
267
- "backup.fields.auto_backup_calendar_lookahead_days.help": "Jak daleko dopředu se mají dotazovat události kalendáře pro snímky před úpravou. Rozsah 1–365.",
268
259
  "backup.fields.enable_snapshot_delete.label": "Povolit smazání snímků",
269
- "backup.fields.enable_snapshot_delete.help": "Povolit ha_manage_backup mazat úplné snímky HA, přičemž plánované, nejnovější a příliš mladé snímky zůstanou chráněny.",
270
260
  "backup.fields.snapshot_delete_min_age_days.label": "Minimální stáří snímku pro smazání (dny)",
271
- "backup.fields.snapshot_delete_min_age_days.help": "Snímek musí být před smazáním alespoň takto starý. Rozsah 0–365.",
272
261
  "backup.origins.addon": "Synchronizováno se Supervisor. Po uložení je vyžadován restart.",
273
262
  "backup.origins.file": "Uloženo lokálně; projeví se okamžitě.",
274
263
  "backup.origins.default": "Používá se výchozí; první uložení vytvoří lokální soubor pro přepsání.",
@@ -438,29 +427,16 @@
438
427
  "advanced.homeassistant_token.label": "Token Home Assistant",
439
428
  "advanced.homeassistant_token.help": "Pouze zobrazení. Nastaveno přes HOMEASSISTANT_TOKEN. Zde maskováno z bezpečnostních důvodů.",
440
429
  "advanced.timeout.label": "Časový limit požadavku HA (s)",
441
- "advanced.timeout.help": "HTTP časový limit pro každý požadavek. Rozsah 1–600. Vyžadován restart.",
442
430
  "advanced.max_retries.label": "Max. opakování požadavku HA",
443
- "advanced.max_retries.help": "Rozpočet opakování pro každé selhané volání REST. Rozsah 0–20. Vyžadován restart.",
444
- "advanced.verify_ssl.label": "Ověřit SSL certifikáty",
445
- "advanced.verify_ssl.help": "Zakažte ověřování TLS pouze na důvěryhodných sítích. Vyžadován restart.",
446
431
  "advanced.fuzzy_threshold.label": "Prahová hodnota fuzzy vyhledávání",
447
- "advanced.fuzzy_threshold.help": "Nižší hodnoty umožňují volnější shodu entit. Rozsah 0–100.",
448
432
  "advanced.automation_config_time_budget.label": "Časový rozpočet konfigurace automatizace (s)",
449
- "advanced.automation_config_time_budget.help": "Maximální čas, který hluboké vyhledávání stráví načítáním konfigurací automatizace. Rozsah 1–600. Vyžadován restart.",
450
433
  "advanced.script_config_time_budget.label": "Časový rozpočet konfigurace skriptu (s)",
451
- "advanced.script_config_time_budget.help": "Maximální čas, který hluboké vyhledávání stráví načítáním konfigurací skriptů. Rozsah 1–600. Vyžadován restart.",
452
434
  "advanced.scene_config_time_budget.label": "Časový rozpočet konfigurace scény (s)",
453
- "advanced.scene_config_time_budget.help": "Maximální čas, který hluboké vyhledávání stráví načítáním konfigurací scén. Rozsah 1–600. Vyžadován restart.",
454
435
  "advanced.individual_config_timeout.label": "Časový limit načítání konfigurace na požadavek (s)",
455
- "advanced.individual_config_timeout.help": "Časový limit pro každé načtení konfigurace automatizace/skriptu/scény. Rozsah 1–600. Vyžadován restart.",
456
436
  "advanced.individual_fetch_batch_size.label": "Velikost dávky načítání konfigurace",
457
- "advanced.individual_fetch_batch_size.help": "Souběžné načítání konfigurací podle ID. Snižte směrem k 1 na sériových HA serverech. Rozsah 1–100. Vyžadován restart.",
458
437
  "advanced.enable_history_query_guardrails.label": "Ochrana historických dotazů",
459
438
  "advanced.enable_history_query_guardrails.help": "Zamítat dotazy do záznamu (recorder), které překračují konzervativní limity entit a časového rozsahu. Ve výchozím nastavení vypnuto.",
460
439
  "advanced.ha_tool_concurrency.label": "Souběžnost nástrojů Home Assistant",
461
- "advanced.ha_tool_concurrency.help": "Volitelný limit pro vnější volání nástrojů Home Assistant napříč všemi relacemi. Vnitřní souběžnost REST, WebSocket a distribuce pro jednotlivé nástroje zůstává nezměněna. Hodnota 0 zachovává neomezené chování. Volání čekající na kapacitu selže po 60 sekundách. Rozsah 0–32. Vyžadován restart.",
462
- "advanced.backup_hint.label": "Úroveň nápovědy k zálohování",
463
- "advanced.backup_hint.help": "Určuje, jak silně je LLM vyzváno k vytvoření úplného snímku HA před rizikovými zápisy.",
464
440
  "advanced.backup_hint.choices.strong": "Silná",
465
441
  "advanced.backup_hint.choices.normal": "Normální",
466
442
  "advanced.backup_hint.choices.weak": "Slabá",
@@ -468,71 +444,35 @@
468
444
  "advanced.dashboard_screenshot_engine_url.label": "URL adresa enginu pro snímky obrazovky panelu",
469
445
  "advanced.dashboard_screenshot_engine_url.help": "Základní URL enginu pro snímky obrazovky. Ponechte prázdné pro automatické zjišťování Supervisor. Platí okamžitě.",
470
446
  "advanced.enable_websocket.label": "Povolit WebSocket",
471
- "advanced.enable_websocket.help": "Monitorování stavu WebSocket. Zakázání se vrátí k dotazování a zhoršuje funkčnost mnoha nástrojů. Vyžadován restart.",
472
447
  "advanced.enabled_tool_modules.label": "Povolené moduly nástrojů",
473
- "advanced.enabled_tool_modules.help": "Názvy modulů oddělené čárkami, nebo 'all'. Vyžadován restart.",
474
448
  "advanced.enable_dashboard_partial_tools.label": "Nástroje pro částečnou aktualizaci panelu",
475
449
  "advanced.enable_dashboard_partial_tools.help": "Tokenově efektivní nástroje pro částečnou aktualizaci panelu. Zakažte pro klienty s programovým použitím nástrojů.",
476
450
  "advanced.mcp_server_name.label": "Název serveru MCP",
477
- "advanced.mcp_server_name.help": "Hlášeno v MCP handshake. Vyžadován restart.",
478
451
  "advanced.mcp_server_version.label": "Verze serveru MCP",
479
- "advanced.mcp_server_version.help": "Výchozí je verze balíčku. Přepsání může zmást klienty. Vyžadován restart.",
480
452
  "advanced.environment.label": "Prostředí",
481
- "advanced.environment.help": "vývojové nebo produkční. Ovlivňuje podrobnost protokolování. Vyžaduje restart.",
482
453
  "advanced.http_transport_diagnostics.label": "Diagnostika HTTP přenosu",
483
- "advanced.http_transport_diagnostics.help": "Experimentální. Automaticky povolení protokolování INFO pro diagnostiku HTTP za běhu serveru, bez datových částí nebo přihlašovacích údajů. Ostatní loggery zůstávají nezměněny; explicitní přepsání loggeru Home Assistant a filtry se stále uplatňují. Potvrzení o přijetí klientem se neprovádí. Pouze HTTP; je vyžadován restart.",
484
454
  "advanced.http_json_response.label": "Odpovědi ve formátu JSON namísto streamování",
485
- "advanced.http_json_response.help": "Experimentální. Vrátit jednu odpověď ve formátu JSON namísto streamu SSE. Ovlivňuje všechny HTTP klienti na tomto serveru a zakazuje streamovaný průběh pro tyto odpovědi. Pouze HTTP; je vyžadován restart.",
486
455
  "advanced.log_level.label": "Úroveň protokolu",
487
- "advanced.log_level.help": "DEBUG/INFO/WARNING/ERROR/CRITICAL. Vyžaduje restart.",
488
456
  "advanced.debug.label": "Režim ladění",
489
- "advanced.debug.help": "Podrobné protokolování požadavků. Může odhalit citlivá data. Vyžaduje restart.",
490
457
  "advanced.code_mode_max_duration.label": "Maximální doba trvání režimu kódu (s)",
491
- "advanced.code_mode_max_duration.help": "Rozpočet reálného času na jedno spuštění sandboxu. Rozsah 1–300. Vyžaduje restart.",
492
458
  "advanced.code_mode_max_memory.label": "Maximální paměť režimu kódu (bajty)",
493
- "advanced.code_mode_max_memory.help": "Limit paměti na jedno spuštění sandboxu. Rozsah 1–256 MB. Vyžaduje restart.",
494
459
  "advanced.code_mode_max_recursion.label": "Maximální rekurze režimu kódu",
495
- "advanced.code_mode_max_recursion.help": "Limit hloubky rekurze na jedno spuštění sandboxu. Vyžaduje restart.",
496
460
  "advanced.code_mode_max_invocations.label": "Maximální počet volání režimu kódu",
497
- "advanced.code_mode_max_invocations.help": "Limit volání API/nástrojů na jedno spuštění sandboxu. Vyžaduje restart.",
498
461
  "advanced.code_mode_saved_tools_path.label": "Cesta k uloženým nástrojům",
499
- "advanced.code_mode_saved_tools_path.help": "Soubor JSON používaný k uchování vlastních nástrojů napříč restarty. Vyžaduje restart.",
500
462
  "advanced.extra_yaml_write_keys.label": "Další klíče pro zápis YAML",
501
463
  "advanced.extra_yaml_write_keys.help": "Další klíče nejvyšší úrovně, které může ha_config_set_yaml zapisovat kromě vestavěných, pro integrace primárně využívající YAML na této instalaci (např. alert2). Zadejte jeden klíč na řádek nebo oddělte klíče čárkami. Klíče, které mění vlastní hranici důvěry Home Assistant, nelze nikdy přidat a jsou ignorovány. Vyžaduje vlastní komponentu (custom component) 1.2.4 nebo novější.",
502
464
  "advanced.sidecar_pin_port.label": "Port sidecaru uživatelského rozhraní nastavení",
503
- "advanced.sidecar_pin_port.help": "0 vybere volný port při prvním spuštění a ponechá jej pro pozdější restarty; 1024–65535 připne preferovaný port (pokud je obsazen, vrátí se k volnému). Vyžaduje restart.",
504
465
  "advanced.enable_dev_mode.label": "Režim vývojáře",
505
- "advanced.enable_dev_mode.help": "⚠ Registruje skryté nástroje, které mohou měnit nastavení a nahradit běžící server. Pouze pro vývoj a testování. Vyžaduje restart.",
506
466
  "advanced.dev_tools_security_policy_access.label": "Přístup k bezpečnostním zásadám vývojářských nástrojů",
507
467
  "advanced.dev_tools_security_policy_access.help": "⚠ Zatímco je zapnutý režim vývojáře, umožňuje vývojářským nástrojům přepisovat bezpečnostní zásady nástrojů, přidávat nebo odebírat brány schválení pro jednotlivé nástroje a schvalovat nebo zamítat čekající schválení vaším jménem — agent AI může přijímat svá vlastní řízená volání. Pouze pro testování zásad. Projeví se bez restartu.",
508
- "addon.backup_hint.name": "Úroveň návrhu snímku celé HA (pro LLM)",
509
- "addon.backup_hint.description": "Upravuje znění nápovědy, kterou LLM vidí v popisu nástroje\n`ha_manage_backup(scope='snapshot')` pro to, kdy navrhnout úplnou zálohu Home Assistant tarballu před rizikovými operacemi\n(např. hromadné mazání zařízení). Ovlivňuje POUZE tuto jednu větu výzvy směřující k LLM.\n\nPro automatické snímky automatizací / skriptů / pomocníků /\natd. pro každou úpravu použijte samostatný přepínač **Povolit automatické zálohování úprav** níže.",
510
468
  "addon.secret_path.name": "Přepsání tajné cesty",
511
469
  "addon.secret_path.description": "Volitelná vlastní HTTP cesta pro server MCP. Ponechte prázdné pro použití automaticky generované zabezpečené cesty.\n",
512
470
  "addon.enable_security_policy_tool.name": "Povolit agentům AI upravovat bezpečnostní zásady nástrojů",
513
471
  "addon.enable_security_policy_tool.description": "Registruje nástroj ha_manage_security_policy, který umožňuje připojeným agentům AI číst a přepisovat bezpečnostní zásady nástrojů — včetně odstranění bran schválení. Ve výchozím nastavení vypnuto. Nezávisle na možnosti „Zásady zabezpečení nástrojů“ výše: toto řídí, kdo může pravidla upravovat, nikoli zda jsou vynucována. Nástroj nemůže vidět ani rozhodovat o čekajících schváleních. Chcete-li zachovat lidskou kontrolu, zablokujte nástroj před jeho povolením: zapněte „security gated“ pro „Manage Security Policy“ na kartě Nástroje ve webovém uživatelském rozhraní. Vyžaduje restart, aby se projevilo.",
514
- "addon.enable_auto_backup.name": "Povolit automatické zálohování úprav",
515
- "addon.enable_snapshot_actions.name": "Povolit akce s úplnými snapshoty HA",
516
- "addon.enable_snapshot_actions.description": "Umožnit AI asistentům spravovat úplné snapshoty Home Assistant prostřednictvím ha_manage_backup(scope='snapshot') a odpovídajících zálohovacích služeb a příkazů v ha_call_service. Vypnutím zablokujete všechny akce se snapshoty, včetně výpisu, přičemž zálohy pro úpravy zůstanou dostupné. Mazání snapshotů je dostupné pouze přes ha_manage_backup, vyžaduje také enable_snapshot_delete a jeho ochrany se stále uplatňují. Ve výchozím nastavení zapnuto. Změňte tuto volbu nebo použijte kartu Backups v nastavení webového rozhraní; v aplikaci je vyžadován restart.",
517
- "addon.backup_read_only.name": "Nastavit správu záloh jako jen pro čtení",
518
- "addon.backup_read_only.description": "Omezit ha_manage_backup na výpis, zobrazení a porovnávání záloh pro úpravy a výpis úplných snapshotů HA, když jsou povoleny akce se snapshoty. Blokuje ruční vytváření, obnovení (včetně obnovení úprav) a mazání záloh, včetně odpovídajících zálohovacích služeb a příkazů v ha_call_service. Automatické zálohy před úpravami pokračují a lidské akce ve webovém rozhraní nastavení zůstávají dostupné. Ve výchozím nastavení vypnuto; v aplikaci je vyžadován restart.",
519
- "addon.enable_auto_backup.description": "Pořídí snímek pro každou entitu před každým zabaleným zápisem/destruktivním voláním nástroje MCP (automatizace, skript, scéna, pomocník, dashboard, zdroj dashboardu, štítek, kategorie, skupina, zóna, oblast, kalendář, úkol, entita, zařízení, integrace a související nástroje pro odebrání/smazání). Omezení automatické zálohy určuje, jak často se to děje: 0 (výchozí) zachytí při každém takovém volání, N>0 maximálně jeden snímek za N minut na entitu. Snímky jsou uloženy jako soubory YAML pod /data/ha_mcp_backups/ (přepsání přes HAMCP_BACKUP_DIR) a jsou uvedeny, obnoveny nebo smazány přes kartu Zálohy ve webovém uživatelském rozhraní nastavení nebo přes ha_manage_backup(scope='edits', ...). Pro tyto domény je zachycení nejlepším možným úsilím — selhání zaznamená VAROVÁNÍ a zápis pokračuje. Nástroje pro soubory a raw-YAML jsou výjimkou: ha_write_file, ha_delete_file a ha_config_set_yaml považují snímek za předpoklad, takže zápis přes ně je odmítnut, pokud je tato možnost vypnuta, a neúspěšné zachycení jej blokuje. Ve výchozím nastavení zapnuto; zrušení zaškrtnutí se odhlásí od zachycení nejlepším úsilím a vyřadí s nimi nástroje pro soubory a raw-YAML z provozu. Vyžaduje restart, aby se projevilo.",
520
- "addon.auto_backup_throttle_minutes.name": "Omezení automatické zálohy (minuty)",
521
- "addon.auto_backup_throttle_minutes.description": "Okno omezení pro každou entitu. 0 (výchozí) zachytí snímek při každém zabaleném zápisu. N>0 zachytí maximálně jeden snímek za N minut na entitu. Rozsah 0–1440.",
522
- "addon.auto_backup_retain_per_entity.name": "Uchovávání automatických záloh (na entitu)",
523
- "addon.auto_backup_retain_per_entity.description": "Maximální počet snímků uchovávaných na entitu. Starší snímky nad tento limit jsou při každém úspěšném zachycení vyřazeny. Výchozí 100, rozsah 1–10000.",
524
- "addon.enable_snapshot_delete.name": "Povolit smazání snímků",
525
- "addon.enable_snapshot_delete.description": "Umožňuje ha_manage_backup mazat úplné HA snapshot tarbally (scope='snapshot', action='delete'). Ve výchozím nastavení vypnuto — snímek může být posledním bodem obnovy po chybné změně, takže zde musí člověk souhlasit. I když je zapnuto, plánované zálohy, nejnovější zbývající snímek a cokoli mladšího než níže uvedený věkový limit zůstávají chráněny.",
526
- "addon.snapshot_delete_min_age_days.name": "Minimální stáří snímku pro smazání (dny)",
527
- "addon.snapshot_delete_min_age_days.description": "Snímek musí být alespoň takto starý, než může být smazán. Rozsah 0–365; 0 zakáže dolní hranici (ochrany nejnovějšího snímku a plánované zálohy stále platí). Výchozí 7.",
528
472
  "addon.disabled_tools.name": "Zakázané nástroje (oddělené čárkami)",
529
473
  "addon.disabled_tools.description": "Nástroje zde uvedené jsou vynuceně vypnuty a uzamčeny ve webovém uživatelském rozhraní Nastavení (karta Nástroje) — nelze je tam znovu povolit, aniž byste nejprve zrušili toto nastavení. Malá sada povinných nástrojů (ha_search, ha_get_overview, ha_get_state, ha_report_issue, ha_manage_backup) nelze zakázat a zůstávají spuštěny, i když jsou zde uvedeny. ha_get_skill_guide lze zakázat pouze, když je vypnut režim přísných osvědčených postupů (enable_strict_mandatory_bps). Názvy nástrojů oddělené čárkami (např. ha_call_event,ha_eval_template).",
530
474
  "addon.pinned_tools.name": "Připnuté nástroje (oddělené čárkami)",
531
475
  "addon.pinned_tools.description": "Nástroje zde uvedené jsou uzamčeny jako připnuté — zobrazují se v horní části karty Nástroje a nelze je odepnout z webového uživatelského rozhraní Nastavení, aniž byste nejprve zrušili toto nastavení. Užitečné v kombinaci s vyhledáváním nástrojů. Názvy nástrojů oddělené čárkami.",
532
- "addon.verify_ssl.name": "Ověřit certifikát TLS",
533
- "addon.verify_ssl.description": "Ověřit TLS certifikát serveru Home Assistant. Aplikace (doplněk) se připojuje přes proxy Supervisor, takže to obvykle nemá žádný vliv a mělo by to zůstat zapnuté. Zakazujte pouze v případě, že jste přenastavili aplikaci (doplněk) tak, aby komunikovala s HA přes veřejný HTTPS hostname s The self-signed certifikátem nebo neshodou hostname. Vypnutí oslabuje zabezpečení přenosu – nechte zapnuté, pokud víte, že to potřebujete. Vyžaduje restart, aby se projevilo.",
534
- "addon.ha_tool_concurrency.name": "Souběžnost nástrojů Home Assistant",
535
- "addon.ha_tool_concurrency.description": "Volitelný limit pro vnější volání nástrojů Home Assistant napříč všemi relacemi. Vnitřní souběžnost REST, WebSocket a distribuce pro jednotlivé nástroje zůstává nezměněna. Hodnota 0 zachovává neomezené chování. Volání čekající na kapacitu selže po 60 sekundách.",
536
476
  "addon_stable.enable_tool_search.description": "Nahradit úplný katalog nástrojů vyhledáváním. Snižuje klidový kontext přibližně o 90 %, na asi 5 tisíc tokenů. ⚠️ NEZAPÍNEJTE toto v klientech s vlastním vestavěným vyhledáváním nástrojů / odloženými nástroji (claude.ai, Claude Desktop, Claude Code) – obě vrstvy vyhledávání se střetávají a vestavěné vyhledávání nástrojů v klientovi je zde lepší volbou; nechte to vypnuté. Zda jsou nástroje odloženy, závisí na kombinaci vašeho klienta a modelu: použijte toto, když vaše nastavení načítá celý katalog předem – modely bez nativních odložených nástrojů (např. Gemini, lokální modely kompatibilní s OpenAI, Claude Haiku), klienti, kteří vkládají všechna schémata nástrojů bez ohledu na model (např. GitHub Copilot CLI), nebo menší kontextová okna. Některé modely Codex a ChatGPT také obsahují odložené nástroje – ověřte si funkce přímo u svého klienta/modelu, abyste to nenechávali zbytečně zapnuté. Nástroje se vyhledávají přes ha_search_tools a spouštějí se přes kategorizované proxy (read/write/delete). Vyžaduje restart aplikace (doplněku), aby se projevila změna – poté znovu připojte nebo obnovte MCP server ve svém AI klientovi, aby se znovu načetl seznam nástrojů. Samotný restart aplikace (doplněku) NEAKTUALIZUJE mezipaměť seznamu nástrojů klienta; toto platí po změně jakéhokoli nastavení zde.",
537
477
  "policies.global.event_decisions.label": "Povolit schválení/zamítnutí z událostí Home Assistant",
538
478
  "policies.global.event_decisions.help": "Ve výchozím nastavení vypnuto. Pokud je zapnuto, událost <code>ha_mcp_approval_response</code> obsahující token čekajícího požadavku, rozhodnutí a níže uvedený PIN o tomto požadavku rozhodne — takže vaše vlastní automatizace oznámení jej může schválit z telefonu. Před zapnutím je vyžadován PIN.",