ha-mcp-dev 8.6.0.dev2926__tar.gz → 8.6.0.dev2927__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 (756) hide show
  1. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/PKG-INFO +1 -1
  2. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/pyproject.toml +1 -1
  3. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/pyproject.toml.orig +1 -1
  4. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/settings_ui/locales/az.json +22 -0
  5. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/settings_ui/locales/cs.json +22 -0
  6. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/settings_ui/locales/de.json +22 -0
  7. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/settings_ui/locales/eo.json +22 -0
  8. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/settings_ui/locales/es.json +22 -0
  9. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/settings_ui/locales/fr.json +22 -0
  10. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/settings_ui/locales/it.json +22 -0
  11. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/settings_ui/locales/ko.json +22 -0
  12. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/settings_ui/locales/nl.json +22 -0
  13. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/settings_ui/locales/pl.json +22 -0
  14. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/settings_ui/locales/ru.json +22 -0
  15. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/settings_ui/locales/sv.json +22 -0
  16. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/settings_ui/locales/zh-Hans.json +22 -0
  17. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/settings_ui/locales/zh-Hant.json +22 -0
  18. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/LICENSE +0 -0
  19. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/README.md +0 -0
  20. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/__init__.py +0 -0
  21. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/__main__.py +0 -0
  22. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_pypi_marker +0 -0
  23. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_rich_compat.py +0 -0
  24. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/__init__.py +0 -0
  25. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/LICENSE +0 -0
  26. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/MANIFEST.sha256 +0 -0
  27. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/REQUIRES.txt +0 -0
  28. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/VENDORED +0 -0
  29. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/__init__.py +0 -0
  30. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/_compat.py +0 -0
  31. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/_install_hints.py +0 -0
  32. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/_warnings.py +0 -0
  33. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/apps/__init__.py +0 -0
  34. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/apps/app.py +0 -0
  35. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/apps/approval.py +0 -0
  36. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/apps/choice.py +0 -0
  37. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/apps/config.py +0 -0
  38. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/apps/file_upload.py +0 -0
  39. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/apps/form.py +0 -0
  40. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/apps/generative.py +0 -0
  41. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/cli/__init__.py +0 -0
  42. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/cli/__main__.py +0 -0
  43. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/cli/apps_dev.py +0 -0
  44. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/cli/auth.py +0 -0
  45. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/cli/cimd.py +0 -0
  46. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/cli/cli.py +0 -0
  47. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/cli/client.py +0 -0
  48. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/cli/deploy/__init__.py +0 -0
  49. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/cli/deploy/authentication.py +0 -0
  50. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/cli/deploy/command.py +0 -0
  51. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/cli/deploy/configuration.py +0 -0
  52. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/cli/deploy/credentials.py +0 -0
  53. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/cli/deploy/horizon_client.py +0 -0
  54. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/cli/deploy/output.py +0 -0
  55. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/cli/deploy/state.py +0 -0
  56. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/cli/discovery.py +0 -0
  57. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/cli/generate.py +0 -0
  58. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/cli/install/__init__.py +0 -0
  59. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/cli/install/claude_code.py +0 -0
  60. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/cli/install/claude_desktop.py +0 -0
  61. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/cli/install/cursor.py +0 -0
  62. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/cli/install/gemini_cli.py +0 -0
  63. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/cli/install/goose.py +0 -0
  64. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/cli/install/mcp_json.py +0 -0
  65. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/cli/install/shared.py +0 -0
  66. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/cli/install/stdio.py +0 -0
  67. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/cli/run.py +0 -0
  68. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/client/__init__.py +0 -0
  69. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/client/_sdk_context_shim.py +0 -0
  70. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/client/auth/__init__.py +0 -0
  71. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/client/auth/bearer.py +0 -0
  72. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/client/auth/client_credentials.py +0 -0
  73. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/client/auth/oauth.py +0 -0
  74. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/client/caching.py +0 -0
  75. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/client/client.py +0 -0
  76. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/client/dependencies.py +0 -0
  77. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/client/elicitation.py +0 -0
  78. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/client/extension_hooks.py +0 -0
  79. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/client/group.py +0 -0
  80. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/client/logging.py +0 -0
  81. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/client/messages.py +0 -0
  82. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/client/mixins/__init__.py +0 -0
  83. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/client/mixins/prompts.py +0 -0
  84. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/client/mixins/resources.py +0 -0
  85. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/client/mixins/tools.py +0 -0
  86. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/client/oauth_callback.py +0 -0
  87. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/client/progress.py +0 -0
  88. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/client/roots.py +0 -0
  89. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/client/sampling/__init__.py +0 -0
  90. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/client/sampling/handlers/__init__.py +0 -0
  91. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/client/sampling/handlers/anthropic.py +0 -0
  92. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/client/sampling/handlers/google_genai.py +0 -0
  93. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/client/sampling/handlers/openai.py +0 -0
  94. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/client/telemetry.py +0 -0
  95. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/client/transports/__init__.py +0 -0
  96. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/client/transports/base.py +0 -0
  97. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/client/transports/config.py +0 -0
  98. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/client/transports/http.py +0 -0
  99. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/client/transports/inference.py +0 -0
  100. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/client/transports/memory.py +0 -0
  101. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/client/transports/sse.py +0 -0
  102. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/client/transports/stdio.py +0 -0
  103. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/contrib/README.md +0 -0
  104. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/contrib/bulk_tool_caller/README.md +0 -0
  105. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/contrib/bulk_tool_caller/__init__.py +0 -0
  106. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/contrib/bulk_tool_caller/bulk_tool_caller.py +0 -0
  107. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/contrib/bulk_tool_caller/example.py +0 -0
  108. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/contrib/component_manager/README.md +0 -0
  109. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/contrib/component_manager/__init__.py +0 -0
  110. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/contrib/component_manager/component_manager.py +0 -0
  111. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/contrib/component_manager/example.py +0 -0
  112. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/contrib/mcp_mixin/README.md +0 -0
  113. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/contrib/mcp_mixin/__init__.py +0 -0
  114. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/contrib/mcp_mixin/example.py +0 -0
  115. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/contrib/mcp_mixin/mcp_mixin.py +0 -0
  116. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/decorators.py +0 -0
  117. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/dependencies.py +0 -0
  118. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/exceptions.py +0 -0
  119. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/experimental/__init__.py +0 -0
  120. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/experimental/transforms/__init__.py +0 -0
  121. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/experimental/transforms/code_mode.py +0 -0
  122. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/mcp_config.py +0 -0
  123. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/prompts/__init__.py +0 -0
  124. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/prompts/base.py +0 -0
  125. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/prompts/function_prompt.py +0 -0
  126. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/py.typed +0 -0
  127. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/resources/__init__.py +0 -0
  128. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/resources/base.py +0 -0
  129. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/resources/function_resource.py +0 -0
  130. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/resources/security.py +0 -0
  131. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/resources/template.py +0 -0
  132. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/resources/types.py +0 -0
  133. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/server/__init__.py +0 -0
  134. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/server/auth/__init__.py +0 -0
  135. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/server/auth/auth.py +0 -0
  136. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/server/auth/cimd.py +0 -0
  137. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/server/auth/handlers/__init__.py +0 -0
  138. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/server/auth/handlers/authorize.py +0 -0
  139. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/server/auth/identity_assertion.py +0 -0
  140. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/server/auth/jwt_issuer.py +0 -0
  141. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/server/auth/middleware.py +0 -0
  142. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/server/auth/oauth_proxy/__init__.py +0 -0
  143. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/server/auth/oauth_proxy/consent.py +0 -0
  144. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/server/auth/oauth_proxy/models.py +0 -0
  145. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/server/auth/oauth_proxy/proxy.py +0 -0
  146. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/server/auth/oauth_proxy/ui.py +0 -0
  147. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/server/auth/oauth_proxy/upstream.py +0 -0
  148. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/server/auth/oidc_proxy.py +0 -0
  149. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/__init__.py +0 -0
  150. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/auth0.py +0 -0
  151. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/aws.py +0 -0
  152. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/azure.py +0 -0
  153. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/clerk.py +0 -0
  154. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/debug.py +0 -0
  155. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/descope.py +0 -0
  156. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/discord.py +0 -0
  157. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/github.py +0 -0
  158. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/google.py +0 -0
  159. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/huggingface.py +0 -0
  160. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/in_memory.py +0 -0
  161. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/introspection.py +0 -0
  162. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/jwt.py +0 -0
  163. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/keycloak.py +0 -0
  164. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/oci.py +0 -0
  165. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/propelauth.py +0 -0
  166. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/scalekit.py +0 -0
  167. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/supabase.py +0 -0
  168. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/workos.py +0 -0
  169. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/server/auth/redirect_validation.py +0 -0
  170. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/server/auth/ssrf.py +0 -0
  171. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/server/caching.py +0 -0
  172. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/server/completions.py +0 -0
  173. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/server/context.py +0 -0
  174. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/server/dependencies.py +0 -0
  175. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/server/elicitation.py +0 -0
  176. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/server/event_store.py +0 -0
  177. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/server/extensions.py +0 -0
  178. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/server/http.py +0 -0
  179. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/server/lifespan.py +0 -0
  180. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/server/low_level.py +0 -0
  181. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/server/middleware/__init__.py +0 -0
  182. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/server/middleware/authorization.py +0 -0
  183. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/server/middleware/caching.py +0 -0
  184. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/server/middleware/dereference.py +0 -0
  185. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/server/middleware/error_handling.py +0 -0
  186. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/server/middleware/logging.py +0 -0
  187. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/server/middleware/middleware.py +0 -0
  188. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/server/middleware/ping.py +0 -0
  189. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/server/middleware/rate_limiting.py +0 -0
  190. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/server/middleware/response_limiting.py +0 -0
  191. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/server/middleware/timing.py +0 -0
  192. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/server/middleware/tool_injection.py +0 -0
  193. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/server/mixins/__init__.py +0 -0
  194. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/server/mixins/lifespan.py +0 -0
  195. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/server/mixins/mcp_operations.py +0 -0
  196. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/server/mixins/transport.py +0 -0
  197. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/server/providers/__init__.py +0 -0
  198. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/server/providers/addressing.py +0 -0
  199. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/server/providers/aggregate.py +0 -0
  200. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/server/providers/base.py +0 -0
  201. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/server/providers/fastmcp_provider.py +0 -0
  202. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/server/providers/filesystem.py +0 -0
  203. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/server/providers/filesystem_discovery.py +0 -0
  204. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/server/providers/local_provider/__init__.py +0 -0
  205. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/server/providers/local_provider/decorators/__init__.py +0 -0
  206. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/server/providers/local_provider/decorators/prompts.py +0 -0
  207. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/server/providers/local_provider/decorators/resources.py +0 -0
  208. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/server/providers/local_provider/decorators/tools.py +0 -0
  209. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/server/providers/local_provider/local_provider.py +0 -0
  210. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/server/providers/openapi/README.md +0 -0
  211. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/server/providers/openapi/__init__.py +0 -0
  212. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/server/providers/openapi/components.py +0 -0
  213. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/server/providers/openapi/provider.py +0 -0
  214. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/server/providers/openapi/routing.py +0 -0
  215. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/server/providers/prefab_payload.py +0 -0
  216. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/server/providers/prefab_synthesis.py +0 -0
  217. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/server/providers/proxy.py +0 -0
  218. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/server/providers/skills/__init__.py +0 -0
  219. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/server/providers/skills/_common.py +0 -0
  220. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/server/providers/skills/claude_provider.py +0 -0
  221. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/server/providers/skills/directory_provider.py +0 -0
  222. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/server/providers/skills/skill_provider.py +0 -0
  223. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/server/providers/skills/vendor_providers.py +0 -0
  224. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/server/providers/wrapped_provider.py +0 -0
  225. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/server/server.py +0 -0
  226. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/server/session_scoped_event_store.py +0 -0
  227. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/server/sessions.py +0 -0
  228. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/server/telemetry.py +0 -0
  229. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/server/transforms/__init__.py +0 -0
  230. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/server/transforms/catalog.py +0 -0
  231. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/server/transforms/namespace.py +0 -0
  232. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/server/transforms/prompts_as_tools.py +0 -0
  233. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/server/transforms/resources_as_tools.py +0 -0
  234. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/server/transforms/search/__init__.py +0 -0
  235. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/server/transforms/search/base.py +0 -0
  236. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/server/transforms/search/bm25.py +0 -0
  237. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/server/transforms/search/regex.py +0 -0
  238. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/server/transforms/tool_transform.py +0 -0
  239. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/server/transforms/version_filter.py +0 -0
  240. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/server/transforms/visibility.py +0 -0
  241. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/settings.py +0 -0
  242. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/telemetry.py +0 -0
  243. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/tools/__init__.py +0 -0
  244. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/tools/base.py +0 -0
  245. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/tools/function_parsing.py +0 -0
  246. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/tools/function_tool.py +0 -0
  247. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/tools/tool_transform.py +0 -0
  248. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/types.py +0 -0
  249. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/utilities/__init__.py +0 -0
  250. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/utilities/asgi_transport.py +0 -0
  251. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/utilities/async_utils.py +0 -0
  252. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/utilities/auth.py +0 -0
  253. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/utilities/authorization.py +0 -0
  254. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/utilities/cli.py +0 -0
  255. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/utilities/components.py +0 -0
  256. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/utilities/docstring_parsing.py +0 -0
  257. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/utilities/exceptions.py +0 -0
  258. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/utilities/http.py +0 -0
  259. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/utilities/inspect.py +0 -0
  260. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/utilities/json_schema.py +0 -0
  261. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/utilities/json_schema_type.py +0 -0
  262. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/utilities/lifespan.py +0 -0
  263. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/utilities/logging.py +0 -0
  264. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/utilities/mcp_server_config/__init__.py +0 -0
  265. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/utilities/mcp_server_config/v1/__init__.py +0 -0
  266. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/utilities/mcp_server_config/v1/environments/__init__.py +0 -0
  267. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/utilities/mcp_server_config/v1/environments/base.py +0 -0
  268. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/utilities/mcp_server_config/v1/environments/uv.py +0 -0
  269. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/utilities/mcp_server_config/v1/mcp_server_config.py +0 -0
  270. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/utilities/mcp_server_config/v1/schema.json +0 -0
  271. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/utilities/mcp_server_config/v1/sources/__init__.py +0 -0
  272. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/utilities/mcp_server_config/v1/sources/base.py +0 -0
  273. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/utilities/mcp_server_config/v1/sources/filesystem.py +0 -0
  274. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/utilities/mime.py +0 -0
  275. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/utilities/openapi/README.md +0 -0
  276. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/utilities/openapi/__init__.py +0 -0
  277. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/utilities/openapi/director.py +0 -0
  278. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/utilities/openapi/formatters.py +0 -0
  279. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/utilities/openapi/json_schema_converter.py +0 -0
  280. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/utilities/openapi/models.py +0 -0
  281. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/utilities/openapi/parser.py +0 -0
  282. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/utilities/openapi/schemas.py +0 -0
  283. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/utilities/pagination.py +0 -0
  284. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/utilities/prefab.py +0 -0
  285. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/utilities/skills.py +0 -0
  286. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/utilities/tasks.py +0 -0
  287. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/utilities/tests.py +0 -0
  288. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/utilities/timeout.py +0 -0
  289. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/utilities/token_cache.py +0 -0
  290. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/utilities/types.py +0 -0
  291. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/utilities/ui.py +0 -0
  292. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/utilities/version_check.py +0 -0
  293. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/fastmcp/utilities/versions.py +0 -0
  294. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/LICENSE +0 -0
  295. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/MANIFEST.sha256 +0 -0
  296. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/REQUIRES.txt +0 -0
  297. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/VENDORED +0 -0
  298. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/__init__.py +0 -0
  299. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/cli/__init__.py +0 -0
  300. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/cli/claude.py +0 -0
  301. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/cli/cli.py +0 -0
  302. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/client/__init__.py +0 -0
  303. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/client/__main__.py +0 -0
  304. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/client/_input_required.py +0 -0
  305. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/client/_memory.py +0 -0
  306. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/client/_probe.py +0 -0
  307. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/client/_transport.py +0 -0
  308. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/client/auth/__init__.py +0 -0
  309. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/client/auth/exceptions.py +0 -0
  310. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/client/auth/extensions/__init__.py +0 -0
  311. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/client/auth/extensions/client_credentials.py +0 -0
  312. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/client/auth/extensions/identity_assertion.py +0 -0
  313. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/client/auth/oauth2.py +0 -0
  314. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/client/auth/utils.py +0 -0
  315. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/client/caching.py +0 -0
  316. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/client/client.py +0 -0
  317. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/client/context.py +0 -0
  318. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/client/extension.py +0 -0
  319. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/client/session.py +0 -0
  320. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/client/session_group.py +0 -0
  321. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/client/sse.py +0 -0
  322. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/client/stdio.py +0 -0
  323. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/client/streamable_http.py +0 -0
  324. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/client/subscriptions.py +0 -0
  325. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/os/__init__.py +0 -0
  326. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/os/posix/__init__.py +0 -0
  327. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/os/posix/utilities.py +0 -0
  328. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/os/win32/__init__.py +0 -0
  329. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/os/win32/utilities.py +0 -0
  330. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/py.typed +0 -0
  331. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/server/__init__.py +0 -0
  332. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/server/__main__.py +0 -0
  333. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/server/_otel.py +0 -0
  334. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/server/_streamable_http_modern.py +0 -0
  335. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/server/apps.py +0 -0
  336. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/server/auth/__init__.py +0 -0
  337. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/server/auth/errors.py +0 -0
  338. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/server/auth/handlers/__init__.py +0 -0
  339. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/server/auth/handlers/authorize.py +0 -0
  340. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/server/auth/handlers/metadata.py +0 -0
  341. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/server/auth/handlers/register.py +0 -0
  342. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/server/auth/handlers/revoke.py +0 -0
  343. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/server/auth/handlers/token.py +0 -0
  344. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/server/auth/json_response.py +0 -0
  345. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/server/auth/middleware/__init__.py +0 -0
  346. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/server/auth/middleware/auth_context.py +0 -0
  347. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/server/auth/middleware/bearer_auth.py +0 -0
  348. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/server/auth/middleware/client_auth.py +0 -0
  349. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/server/auth/provider.py +0 -0
  350. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/server/auth/routes.py +0 -0
  351. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/server/auth/settings.py +0 -0
  352. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/server/caching.py +0 -0
  353. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/server/connection.py +0 -0
  354. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/server/context.py +0 -0
  355. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/server/elicitation.py +0 -0
  356. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/server/extension.py +0 -0
  357. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/server/fastmcp.py +0 -0
  358. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/server/lowlevel/__init__.py +0 -0
  359. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/server/lowlevel/helper_types.py +0 -0
  360. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/server/lowlevel/server.py +0 -0
  361. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/server/mcpserver/__init__.py +0 -0
  362. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/server/mcpserver/context.py +0 -0
  363. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/server/mcpserver/exceptions.py +0 -0
  364. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/server/mcpserver/prompts/__init__.py +0 -0
  365. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/server/mcpserver/prompts/base.py +0 -0
  366. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/server/mcpserver/prompts/manager.py +0 -0
  367. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/server/mcpserver/resolve.py +0 -0
  368. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/server/mcpserver/resources/__init__.py +0 -0
  369. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/server/mcpserver/resources/base.py +0 -0
  370. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/server/mcpserver/resources/resource_manager.py +0 -0
  371. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/server/mcpserver/resources/templates.py +0 -0
  372. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/server/mcpserver/resources/types.py +0 -0
  373. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/server/mcpserver/server.py +0 -0
  374. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/server/mcpserver/tools/__init__.py +0 -0
  375. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/server/mcpserver/tools/base.py +0 -0
  376. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/server/mcpserver/tools/tool_manager.py +0 -0
  377. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/server/mcpserver/utilities/__init__.py +0 -0
  378. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/server/mcpserver/utilities/context_injection.py +0 -0
  379. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/server/mcpserver/utilities/func_metadata.py +0 -0
  380. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/server/mcpserver/utilities/logging.py +0 -0
  381. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/server/mcpserver/utilities/types.py +0 -0
  382. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/server/models.py +0 -0
  383. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/server/request_state.py +0 -0
  384. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/server/runner.py +0 -0
  385. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/server/session.py +0 -0
  386. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/server/sse.py +0 -0
  387. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/server/stdio.py +0 -0
  388. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/server/streamable_http.py +0 -0
  389. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/server/streamable_http_manager.py +0 -0
  390. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/server/subscriptions.py +0 -0
  391. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/server/transport_security.py +0 -0
  392. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/server/validation.py +0 -0
  393. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/shared/__init__.py +0 -0
  394. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/shared/_callable_inspection.py +0 -0
  395. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/shared/_compat.py +0 -0
  396. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/shared/_context_streams.py +0 -0
  397. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/shared/_httpx_utils.py +0 -0
  398. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/shared/_otel.py +0 -0
  399. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/shared/_stream_protocols.py +0 -0
  400. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/shared/auth.py +0 -0
  401. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/shared/auth_utils.py +0 -0
  402. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/shared/context.py +0 -0
  403. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/shared/direct_dispatcher.py +0 -0
  404. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/shared/dispatcher.py +0 -0
  405. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/shared/exceptions.py +0 -0
  406. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/shared/extension.py +0 -0
  407. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/shared/inbound.py +0 -0
  408. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/shared/jsonrpc_dispatcher.py +0 -0
  409. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/shared/memory.py +0 -0
  410. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/shared/message.py +0 -0
  411. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/shared/metadata_utils.py +0 -0
  412. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/shared/path_security.py +0 -0
  413. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/shared/peer.py +0 -0
  414. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/shared/subscriptions.py +0 -0
  415. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/shared/tool_name_validation.py +0 -0
  416. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/shared/transport_context.py +0 -0
  417. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/shared/uri_template.py +0 -0
  418. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/types/__init__.py +0 -0
  419. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/types/jsonrpc.py +0 -0
  420. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/types/methods.py +0 -0
  421. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp/types/version.py +0 -0
  422. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp_types/LICENSE +0 -0
  423. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp_types/MANIFEST.sha256 +0 -0
  424. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp_types/REQUIRES.txt +0 -0
  425. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp_types/VENDORED +0 -0
  426. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp_types/__init__.py +0 -0
  427. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp_types/_types.py +0 -0
  428. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp_types/_v2025_11_25/__init__.py +0 -0
  429. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp_types/_v2026_07_28/__init__.py +0 -0
  430. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp_types/_wire_base.py +0 -0
  431. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp_types/jsonrpc.py +0 -0
  432. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp_types/methods.py +0 -0
  433. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp_types/py.typed +0 -0
  434. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/mcp_types/version.py +0 -0
  435. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/requirements.txt +0 -0
  436. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/websockets/LICENSE +0 -0
  437. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/websockets/MANIFEST.sha256 +0 -0
  438. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/websockets/VENDORED +0 -0
  439. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/websockets/__init__.py +0 -0
  440. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/websockets/__main__.py +0 -0
  441. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/websockets/asyncio/__init__.py +0 -0
  442. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/websockets/asyncio/client.py +0 -0
  443. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/websockets/asyncio/connection.py +0 -0
  444. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/websockets/asyncio/messages.py +0 -0
  445. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/websockets/asyncio/router.py +0 -0
  446. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/websockets/asyncio/server.py +0 -0
  447. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/websockets/auth.py +0 -0
  448. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/websockets/cli.py +0 -0
  449. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/websockets/client.py +0 -0
  450. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/websockets/connection.py +0 -0
  451. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/websockets/datastructures.py +0 -0
  452. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/websockets/exceptions.py +0 -0
  453. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/websockets/extensions/__init__.py +0 -0
  454. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/websockets/extensions/base.py +0 -0
  455. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/websockets/extensions/permessage_deflate.py +0 -0
  456. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/websockets/frames.py +0 -0
  457. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/websockets/headers.py +0 -0
  458. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/websockets/http11.py +0 -0
  459. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/websockets/imports.py +0 -0
  460. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/websockets/legacy/__init__.py +0 -0
  461. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/websockets/legacy/auth.py +0 -0
  462. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/websockets/legacy/client.py +0 -0
  463. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/websockets/legacy/exceptions.py +0 -0
  464. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/websockets/legacy/framing.py +0 -0
  465. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/websockets/legacy/handshake.py +0 -0
  466. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/websockets/legacy/http.py +0 -0
  467. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/websockets/legacy/protocol.py +0 -0
  468. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/websockets/legacy/server.py +0 -0
  469. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/websockets/protocol.py +0 -0
  470. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/websockets/proxy.py +0 -0
  471. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/websockets/py.typed +0 -0
  472. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/websockets/server.py +0 -0
  473. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/websockets/streams.py +0 -0
  474. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/websockets/sync/__init__.py +0 -0
  475. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/websockets/sync/client.py +0 -0
  476. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/websockets/sync/connection.py +0 -0
  477. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/websockets/sync/messages.py +0 -0
  478. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/websockets/sync/router.py +0 -0
  479. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/websockets/sync/server.py +0 -0
  480. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/websockets/sync/utils.py +0 -0
  481. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/websockets/trio/__init__.py +0 -0
  482. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/websockets/trio/client.py +0 -0
  483. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/websockets/trio/connection.py +0 -0
  484. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/websockets/trio/messages.py +0 -0
  485. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/websockets/trio/router.py +0 -0
  486. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/websockets/trio/server.py +0 -0
  487. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/websockets/trio/utils.py +0 -0
  488. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/websockets/typing.py +0 -0
  489. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/websockets/uri.py +0 -0
  490. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/websockets/utils.py +0 -0
  491. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_vendor/websockets/version.py +0 -0
  492. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/_version.py +0 -0
  493. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/app_discovery.py +0 -0
  494. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/auth/__init__.py +0 -0
  495. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/auth/consent_form.py +0 -0
  496. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/auth/oidc_compat.py +0 -0
  497. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/auth/provider.py +0 -0
  498. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/backup_manager.py +0 -0
  499. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/browser_landing.py +0 -0
  500. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/client/__init__.py +0 -0
  501. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/client/admin_routes.py +0 -0
  502. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/client/rest_client.py +0 -0
  503. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/client/supervisor_client.py +0 -0
  504. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/client/websocket_client.py +0 -0
  505. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/client/websocket_listener.py +0 -0
  506. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/config.py +0 -0
  507. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/config_backup.py +0 -0
  508. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/config_meta.py +0 -0
  509. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/config_overrides.py +0 -0
  510. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/config_registry.py +0 -0
  511. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/config_settings.py +0 -0
  512. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/dashboard_screenshot/__init__.py +0 -0
  513. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/dashboard_screenshot/capture.py +0 -0
  514. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/dashboard_screenshot/content.py +0 -0
  515. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/dashboard_screenshot/paths.py +0 -0
  516. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/dashboard_screenshot/provision.py +0 -0
  517. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/dashboard_screenshot/theme_guard.py +0 -0
  518. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/errors.py +0 -0
  519. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/ha_request_queue.py +0 -0
  520. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/hacs_auto_refresh.py +0 -0
  521. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/http_transport.py +0 -0
  522. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/llm_exposure.py +0 -0
  523. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/log_filters.py +0 -0
  524. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/policy/__init__.py +0 -0
  525. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/policy/approval_queue.py +0 -0
  526. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/policy/decision_pin.py +0 -0
  527. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/policy/decisions.py +0 -0
  528. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/policy/editing.py +0 -0
  529. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/policy/evaluator.py +0 -0
  530. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/policy/events.py +0 -0
  531. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/policy/handlers.py +0 -0
  532. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/policy/middleware.py +0 -0
  533. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/policy/model.py +0 -0
  534. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/policy/mrtr.py +0 -0
  535. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/policy/persistence.py +0 -0
  536. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/policy/server_channels.py +0 -0
  537. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/policy/value_sources.py +0 -0
  538. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/py.typed +0 -0
  539. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/read_only.py +0 -0
  540. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/redaction.py +0 -0
  541. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/renamed_tools.py +0 -0
  542. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/resources/skills-vendor/LICENSE +0 -0
  543. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/SKILL.md +0 -0
  544. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/appdaemon.md +0 -0
  545. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/automation-actions.md +0 -0
  546. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/backups.md +0 -0
  547. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/blueprint-guide.md +0 -0
  548. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/dashboard-cards.md +0 -0
  549. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/dashboard-guide.md +0 -0
  550. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/device-control.md +0 -0
  551. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/domain-docs.md +0 -0
  552. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/examples.yaml +0 -0
  553. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/helper-selection.md +0 -0
  554. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/safe-refactoring.md +0 -0
  555. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/scenes.md +0 -0
  556. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/template-guidelines.md +0 -0
  557. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/triggers-and-conditions.md +0 -0
  558. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/yaml-only-integrations.md +0 -0
  559. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/server.py +0 -0
  560. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/server_lifespan.py +0 -0
  561. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/server_tool_text.py +0 -0
  562. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/settings_ui/__init__.py +0 -0
  563. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/settings_ui/_handlers_advanced.py +0 -0
  564. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/settings_ui/_handlers_backups.py +0 -0
  565. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/settings_ui/_handlers_fs.py +0 -0
  566. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/settings_ui/_handlers_server.py +0 -0
  567. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/settings_ui/_handlers_theme.py +0 -0
  568. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/settings_ui/_handlers_tools.py +0 -0
  569. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/settings_ui/_i18n.py +0 -0
  570. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/settings_ui/_locale_policy.py +0 -0
  571. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/settings_ui/_persistence.py +0 -0
  572. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/settings_ui/_supervisor.py +0 -0
  573. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/settings_ui/_theme.py +0 -0
  574. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/settings_ui/_tools_meta.py +0 -0
  575. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/settings_ui/locales/README.md +0 -0
  576. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/settings_ui/locales/en.json +0 -0
  577. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/settings_ui/locales/tlh.json +0 -0
  578. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/settings_ui/settings.css +0 -0
  579. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/settings_ui/settings.html +0 -0
  580. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/settings_ui/settings_js/01_i18n_state.js +0 -0
  581. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/settings_ui/settings_js/02_tools_restart.js +0 -0
  582. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/settings_ui/settings_js/03_render_save.js +0 -0
  583. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/settings_ui/settings_js/04_backups.js +0 -0
  584. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/settings_ui/settings_js/05_feature_flags.js +0 -0
  585. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/settings_ui/settings_js/06_policy_cards.js +0 -0
  586. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/settings_ui/settings_js/07_policy_actions.js +0 -0
  587. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/settings_ui/settings_js/08_advanced.js +0 -0
  588. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/settings_ui/settings_js/09_prefs_visibility.js +0 -0
  589. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/smoke_test.py +0 -0
  590. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/stdio_settings_sidecar.py +0 -0
  591. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/strict_bps.py +0 -0
  592. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tool_dispatch.py +0 -0
  593. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/__init__.py +0 -0
  594. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/area_messages.py +0 -0
  595. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/auto_backup.py +0 -0
  596. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/backup.py +0 -0
  597. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/backup_access.py +0 -0
  598. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/best_practice_checker.py +0 -0
  599. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/best_practice_result.py +0 -0
  600. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/best_practice_variables.py +0 -0
  601. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/blueprint_sources.py +0 -0
  602. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/blueprint_substitute.py +0 -0
  603. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/blueprint_write.py +0 -0
  604. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/bug_report_config.py +0 -0
  605. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/bug_report_templates.py +0 -0
  606. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/bulk_selector.py +0 -0
  607. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/coercion.py +0 -0
  608. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/component_api.py +0 -0
  609. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/component_config_entries.py +0 -0
  610. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/component_config_reads.py +0 -0
  611. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/component_dashboard_edit.py +0 -0
  612. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/component_devices.py +0 -0
  613. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/component_helper_collections.py +0 -0
  614. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/component_registries.py +0 -0
  615. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/component_registry_lookup.py +0 -0
  616. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/config_entry_flow.py +0 -0
  617. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/config_entry_flow_form.py +0 -0
  618. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/config_entry_flow_menu.py +0 -0
  619. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/config_entry_flow_walker.py +0 -0
  620. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/config_entry_identity.py +0 -0
  621. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/config_entry_reconfigure.py +0 -0
  622. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/config_entry_reload_watch.py +0 -0
  623. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/config_helpers/__init__.py +0 -0
  624. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/config_helpers/create.py +0 -0
  625. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/config_helpers/flow.py +0 -0
  626. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/config_helpers/listing.py +0 -0
  627. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/config_helpers/registry.py +0 -0
  628. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/config_helpers/schemas.py +0 -0
  629. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/config_helpers/typed_config.py +0 -0
  630. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/config_helpers/update.py +0 -0
  631. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/config_helpers/validation.py +0 -0
  632. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/config_write_helpers.py +0 -0
  633. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/dashboard_edit_errors.py +0 -0
  634. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/dashboard_list_checks.py +0 -0
  635. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/dev_backup.py +0 -0
  636. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/device_control.py +0 -0
  637. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/device_enrichment.py +0 -0
  638. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/diagnostics_helpers.py +0 -0
  639. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/entity_param_parsing.py +0 -0
  640. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/entity_registration.py +0 -0
  641. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/entity_update_fields.py +0 -0
  642. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/error_log_parsing.py +0 -0
  643. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/hacs_registration.py +0 -0
  644. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/helpers.py +0 -0
  645. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/integration_reconfigure.py +0 -0
  646. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/log_common.py +0 -0
  647. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/log_sources.py +0 -0
  648. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/log_sources_fault.py +0 -0
  649. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/log_sources_supervisor.py +0 -0
  650. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/radio/__init__.py +0 -0
  651. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/radio/base.py +0 -0
  652. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/radio/matter.py +0 -0
  653. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/radio/thread.py +0 -0
  654. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/radio/zigbee.py +0 -0
  655. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/radio/zwave.py +0 -0
  656. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/radio/zwave_parameters.py +0 -0
  657. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/reference_validator.py +0 -0
  658. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/registry.py +0 -0
  659. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/renamed_tool_middleware.py +0 -0
  660. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/response_helpers.py +0 -0
  661. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/scene_discovery.py +0 -0
  662. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/search/__init__.py +0 -0
  663. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/search/base.py +0 -0
  664. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/search/component.py +0 -0
  665. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/search/entities.py +0 -0
  666. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/search/legacy.py +0 -0
  667. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/search/modes.py +0 -0
  668. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/search/overview.py +0 -0
  669. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/search/response.py +0 -0
  670. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/search/state.py +0 -0
  671. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/smart_search/__init__.py +0 -0
  672. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/smart_search/_base.py +0 -0
  673. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/smart_search/_config.py +0 -0
  674. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/smart_search/_deep.py +0 -0
  675. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/smart_search/_entities.py +0 -0
  676. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/smart_search/_fetch.py +0 -0
  677. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/smart_search/_graph.py +0 -0
  678. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/smart_search/_overview.py +0 -0
  679. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/smart_search/_scenes.py +0 -0
  680. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/smart_search/_scoring.py +0 -0
  681. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/tool_hints.py +0 -0
  682. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/tool_search_hint_middleware.py +0 -0
  683. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/tools_addons.py +0 -0
  684. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/tools_areas.py +0 -0
  685. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/tools_assist_pipeline.py +0 -0
  686. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/tools_blueprints.py +0 -0
  687. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/tools_bug_report.py +0 -0
  688. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/tools_calendar.py +0 -0
  689. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/tools_camera.py +0 -0
  690. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/tools_categories.py +0 -0
  691. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/tools_code.py +0 -0
  692. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/tools_config_automations.py +0 -0
  693. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/tools_config_dashboards.py +0 -0
  694. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/tools_config_helpers.py +0 -0
  695. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/tools_config_scenes.py +0 -0
  696. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/tools_config_scripts.py +0 -0
  697. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/tools_dashboard_screenshot.py +0 -0
  698. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/tools_dev.py +0 -0
  699. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/tools_energy.py +0 -0
  700. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/tools_entities.py +0 -0
  701. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/tools_filesystem.py +0 -0
  702. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/tools_groups.py +0 -0
  703. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/tools_hacs.py +0 -0
  704. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/tools_history.py +0 -0
  705. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/tools_integrations.py +0 -0
  706. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/tools_labels.py +0 -0
  707. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/tools_logs.py +0 -0
  708. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/tools_radio.py +0 -0
  709. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/tools_registry.py +0 -0
  710. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/tools_resources.py +0 -0
  711. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/tools_search.py +0 -0
  712. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/tools_security_policy.py +0 -0
  713. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/tools_service.py +0 -0
  714. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/tools_services.py +0 -0
  715. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/tools_system.py +0 -0
  716. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/tools_themes.py +0 -0
  717. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/tools_todo.py +0 -0
  718. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/tools_traces.py +0 -0
  719. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/tools_updates.py +0 -0
  720. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/tools_utility.py +0 -0
  721. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/tools_voice_assistant.py +0 -0
  722. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/tools_yaml_config.py +0 -0
  723. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/tools_yaml_read.py +0 -0
  724. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/tools_zones.py +0 -0
  725. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/util_helpers.py +0 -0
  726. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/validation_middleware.py +0 -0
  727. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/tools/ws_waiters.py +0 -0
  728. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/transforms/__init__.py +0 -0
  729. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/transforms/categorized_search.py +0 -0
  730. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/transforms/component_helpers.py +0 -0
  731. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/transforms/component_search.py +0 -0
  732. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/transforms/lite_docstrings.py +0 -0
  733. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/transforms/write_tool_note.py +0 -0
  734. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/transport_security.py +0 -0
  735. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/update_check.py +0 -0
  736. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/utils/__init__.py +0 -0
  737. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/utils/config_hash.py +0 -0
  738. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/utils/config_write_lock.py +0 -0
  739. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/utils/dashboard_patch.py +0 -0
  740. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/utils/data_paths.py +0 -0
  741. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/utils/device_registry_semantics.py +0 -0
  742. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/utils/domain_handlers.py +0 -0
  743. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/utils/entity_membership.py +0 -0
  744. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/utils/fuzzy_search.py +0 -0
  745. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/utils/kill_signal_diagnostics.py +0 -0
  746. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/utils/mcp_client_host.py +0 -0
  747. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/utils/operation_manager.py +0 -0
  748. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/utils/python_sandbox.py +0 -0
  749. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/utils/registry_update_lock.py +0 -0
  750. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/utils/skill_loader.py +0 -0
  751. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/utils/usage_logger.py +0 -0
  752. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/visibility/__init__.py +0 -0
  753. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/visibility/enforcement.py +0 -0
  754. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/visibility/model.py +0 -0
  755. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/src/ha_mcp/visibility/persistence.py +0 -0
  756. {ha_mcp_dev-8.6.0.dev2926 → ha_mcp_dev-8.6.0.dev2927}/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.dev2926
3
+ Version: 8.6.0.dev2927
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.dev2926"
7
+ version = "8.6.0.dev2927"
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.dev2926"
7
+ version = "8.6.0.dev2927"
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
@@ -233,6 +233,7 @@
233
233
  "tools.notes.beta_disabled": "Beta. {setting} parametrini tərtibat tətbiqinin (əlavəsinin) konfiqurasiyasında və ya uyğun mühit dəyişənində təyin edin (docs/beta.md faylına baxın).",
234
234
  "tools.notes.env_pinned": "{variable} dəyişəni ilə sancaqlanıb. Burada redaktə etmək üçün mühit dəyişənini ləğv edin.",
235
235
  "tools.notes.bps_locked": "Ən yaxşı təcrübələrə ciddi riayət rejimi aktiv olduğu müddətdə kilidlənib. Bu aləti söndürmək üçün əvvəlcə həmin parametri söndürün.",
236
+ "tools.notes.mandatory_disabled_ignored": "Deaktivetmə sorğusu nəzərə alınmadı: bu alət məcburidir və aktiv olaraq qalır.",
236
237
  "tools.notes.read_only_off": "Deaktivdir. Yalnız oxuma rejimi aktivdir; yazma alətləri deaktivdir.",
237
238
  "tools.notes.read_only_partial": "Yalnız oxuma rejimi: bu alətin yazma əməliyyatları bloklanıb; oxuma əməliyyatları istifadəyə açıq qalır.",
238
239
  "tools.llm_api.label": "LLM API",
@@ -252,6 +253,10 @@
252
253
  "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.",
253
254
  "backup.fields.enable_auto_backup.label": "Redaktələr üçün avtomatik ehtiyat nüsxə yarat",
254
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
+ "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
+ "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.",
255
260
  "backup.fields.auto_backup_throttle_minutes.label": "Tezlik məhdudiyyəti (dəqiqə)",
256
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.",
257
262
  "backup.fields.auto_backup_retain_per_entity.label": "Hər obyekt üçün saxlanılan nüsxə sayı",
@@ -367,6 +372,17 @@
367
372
  "policies.card.always_row": "(həmişə — bu alətin hər çağırışı üçün təsdiq tələb edir)",
368
373
  "policies.card.always_row_allow": "(həmişə — bu alətə edilən bütün zəngləri təsdiqləyir)",
369
374
  "policies.card.and_join": " VƏ ",
375
+ "policies.card.or_join": "VƏ YA",
376
+ "policies.card.add_and": "+ VƏ",
377
+ "policies.card.add_and_title": "Həmçinin uyğun gəlməli olan alt şərt əlavə edin. Bu şərt daha az zəngə uyğun gələcək.",
378
+ "policies.card.add_and_title_allow": "Həmçinin uyğun gəlməli olan alt şərt əlavə edin. Bu şərt daha az zəngi təsdiqləyəcək.",
379
+ "policies.card.and_hint": "Həmçinin uyğun gəlməlidir: {condition}",
380
+ "policies.card.remove_condition": "Şərti sil",
381
+ "policies.card.never_matches": "{path} üçün heç bir tək qiymət bu şərt daxilindəki bütün predikatları ödəmir. Siyahı arqumenti üçün saxlamalı olduğu hər bir qiymət üçün \"contains\" istifadə edin.",
382
+ "policies.card.never_matches_allow": "{path} üçün heç bir tək qiymət bu şərt daxilindəki bütün predikatları ödəmir. Siyahı arqumentini təsdiqləmək üçün onun elementlərinin alə biləcəyi hər bir qiymət ilə \"is one of\" istifadə edin.",
383
+ "policies.card.confirm_loosen": "Bu dəyişiklik əvvəllər sizin təsdiqinizi tələb edən \"{tool}\" zənglərinə icazə verə bilər. Saxlansın?",
384
+ "policies.card.stale_not_saved": "Bu dəyişiklik yadda saxlanılmamışdan əvvəl siyasət yenidən yükləndi. Dəyişikliyi yenidən edin.",
385
+ "policies.card.save_pending": "Dəyişiklik hələ də yadda saxlanılır və ya siyasət yenidən yüklənir. Bir azdan yenidən cəhd edin.",
370
386
  "policies.card.remove_title": "Siyasətdən çıxar",
371
387
  "policies.card.conditions_intro": "Şərtlərdən HƏR HANSI BİRİ ödənildikdə təsdiq tələb et (şərt yoxdur = həmişə təsdiq tələb et):",
372
388
  "policies.card.conditions_intro_allow": "HƏR hansı şərt ödədikdə soruşmadan təsdiq edin (şərt yoxdur = həmişə təsdiq et):",
@@ -402,6 +418,7 @@
402
418
  "policies.editor.validation.value_required": "op={operator} üçün dəyər tələb olunur",
403
419
  "policies.editor.validation.empty_list": "op={operator} üçün boş siyahı",
404
420
  "policies.editor.validation.argument_required": "arqument tələb olunur",
421
+ "policies.editor.validation.still_loading": "hələ də yüklənir, bir azdan yenidən cəhd edin",
405
422
  "policies.pending.offline": "Serverlə əlaqə kəsildi ({message}). Yenidən cəhd edilir.",
406
423
  "policies.pending.disabled": "Alətlərin təhlükəsizlik siyasətləri deaktivdir. Təsdiq tələbini aktivləşdirmək üçün bu seçimi aktivləşdirin və HA-MCP-ni yenidən başladın.",
407
424
  "policies.pending.unavailable": "Anlıq təsdiqlər əlçatan deyil. HA-MCP jurnalını yoxlayın.",
@@ -494,6 +511,10 @@
494
511
  "addon.enable_security_policy_tool.name": "AI agentlərinə alətlərin təhlükəsizlik siyasətlərini redaktə etməyə icazə ver",
495
512
  "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.",
496
513
  "addon.enable_auto_backup.name": "Redaktələrin avtomatik ehtiyat nüsxəsini aktivləşdir",
514
+ "addon.enable_snapshot_actions.name": "Tam HA arxiv (snapshot) əməliyyatlarına icazə ver",
515
+ "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.",
516
+ "addon.backup_read_only.name": "Arxiv idarəetməsini yalnız oxunaqlı edin",
517
+ "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.",
497
518
  "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.",
498
519
  "addon.auto_backup_throttle_minutes.name": "Avtomatik ehtiyat nüsxə tezliyi limiti (dəqiqə)",
499
520
  "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.",
@@ -524,6 +545,7 @@
524
545
  "policies.global.pin.not_set": "PİN təyin edilməyib. Hadisə şinası üzərindən qərarlara icazə vermək üçün birini təyin edin.",
525
546
  "policies.global.pin.unknown": "PİN-in təyin edilib-edilmədiyi oxuna bilmədi.",
526
547
  "policies.global.pin.saved": "PİN yadda saxlanıldı.",
548
+ "policies.global.pin.saved_switch_unread": "PİN yadda saxlanıldı, lakin hadisə qərarları (event-decisions) ayarı oxuna bilmədi. Qlobal ayarları yadda saxlamazdan əvvəl səhifəni yenidən yükləyin.",
527
549
  "policies.global.pin.cleared": "PİN silindi.",
528
550
  "policies.global.pin.cleared_and_disabled": "PİN silindi və onunla birlikdə hadisə şinası üzərindən qərar vermə sönduruldu.",
529
551
  "policies.global.pin.confirm_clear": "Təsdiqləmə PİN-i silinsin? Hadisə şinası üzərindən qərar vermə bununla birlikdə söndürülür; bu vərəqdəki gözləyən siyahıya təsir etmir.",
@@ -233,6 +233,7 @@
233
233
  "tools.notes.beta_disabled": "Beta. Nastavte {setting} v konfiguraci vývojové aplikace (doplňku) nebo odpovídající proměnné prostředí (viz docs/beta.md).",
234
234
  "tools.notes.env_pinned": "Připnuto proměnnou {variable}. Zrušte nastavení proměnné prostředí pro úpravu zde.",
235
235
  "tools.notes.bps_locked": "Uzamčeno, když je zapnut režim přísných osvědčených postupů. Nejprve vypněte toto nastavení, abyste tento nástroj zakázali.",
236
+ "tools.notes.mandatory_disabled_ignored": "Požadavek na zakázání byl ignorován: tento nástroj je povinný a zůstává zapnutý.",
236
237
  "tools.notes.read_only_off": "Vypnuto. Režim pouze pro čtení je zapnut; nástroje pro zápis jsou zakázány.",
237
238
  "tools.notes.read_only_partial": "Režim pouze pro čtení: operace zápisu tohoto nástroje jsou blokovány; operace čtení zůstávají dostupné.",
238
239
  "tools.llm_api.label": "LLM API",
@@ -252,6 +253,10 @@
252
253
  "tools.read_only.save_failed": "Změna režimu pouze pro čtení se neuložila. Server stále používá předchozí hodnotu.",
253
254
  "backup.fields.enable_auto_backup.label": "Automatické zálohování úprav",
254
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
+ "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
+ "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é.",
255
260
  "backup.fields.auto_backup_throttle_minutes.label": "Omezení (minuty)",
256
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.",
257
262
  "backup.fields.auto_backup_retain_per_entity.label": "Zachovat na entitu",
@@ -367,6 +372,17 @@
367
372
  "policies.card.always_row": "(vždy – řídí každé volání tohoto nástroje)",
368
373
  "policies.card.always_row_allow": "(vždy – schvaluje každé volání tohoto nástroje)",
369
374
  "policies.card.and_join": " A ",
375
+ "policies.card.or_join": "NEBO",
376
+ "policies.card.add_and": "+ A ZÁROVEŇ",
377
+ "policies.card.add_and_title": "Přidat dílčí podmínku, která musí také platit. Tato podmínka pak bude odpovídat menšímu počtu volání.",
378
+ "policies.card.add_and_title_allow": "Přidat dílčí podmínku, která musí také platit. Tato podmínka pak schválí menší počet volání.",
379
+ "policies.card.and_hint": "Musí také splňovat: {condition}",
380
+ "policies.card.remove_condition": "Odebrat podmínku",
381
+ "policies.card.never_matches": "Žádná jednotlivá hodnota položky {path} nesplňuje všechny své predikáty v této podmínce. Pro argument typu seznam použijte \"contains\" pro každou hodnotu, kterou musí obsahovat.",
382
+ "policies.card.never_matches_allow": "Žádná jednotlivá hodnota položky {path} nesplňuje všechny své predikáty v této podmínce. Chcete-li schválit argument typu seznam, použijte \"is one of\" se všemi hodnotami, které mohou jeho položky nabývat.",
383
+ "policies.card.confirm_loosen": "Tato změna může schválit volání nástroje \"{tool}\", která dříve vyžadovala vaše schválení. Uložit?",
384
+ "policies.card.stale_not_saved": "Politika byla znovu načtena předtím, než byla tato změna uložena. Proveďte změnu znovu.",
385
+ "policies.card.save_pending": "Změna se stále ukládá nebo se politika znovu načítá. Zkuste to za chvíli znovu.",
370
386
  "policies.card.remove_title": "Odebrat ze zásady",
371
387
  "policies.card.conditions_intro": "Vyžadovat schválení, když se shoduje JAKÁKOLI podmínka (žádné podmínky = vždy vyžadovat schválení):",
372
388
  "policies.card.conditions_intro_allow": "Schválit bez dotazu, pokud platí KTERÁKOLI podmínka (žádné podmínky = vždy schválit):",
@@ -402,6 +418,7 @@
402
418
  "policies.editor.validation.value_required": "hodnota je vyžadována pro op={operator}",
403
419
  "policies.editor.validation.empty_list": "prázdný seznam pro op={operator}",
404
420
  "policies.editor.validation.argument_required": "argument je vyžadován",
421
+ "policies.editor.validation.still_loading": "stále se načítá, zkuste to za chvíli znovu",
405
422
  "policies.pending.offline": "Ztracen kontakt se serverem ({message}). Opakuji pokus.",
406
423
  "policies.pending.disabled": "Zásady zabezpečení nástrojů jsou vypnuté. Zapněte je a restartujte HA-MCP pro aktivaci filtrování.",
407
424
  "policies.pending.unavailable": "Schvalování v reálném čase není k dispozici. Zkontrolujte protokol HA-MCP.",
@@ -494,6 +511,10 @@
494
511
  "addon.enable_security_policy_tool.name": "Povolit agentům AI upravovat bezpečnostní zásady nástrojů",
495
512
  "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.",
496
513
  "addon.enable_auto_backup.name": "Povolit automatické zálohování úprav",
514
+ "addon.enable_snapshot_actions.name": "Povolit akce s úplnými snapshoty HA",
515
+ "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.",
516
+ "addon.backup_read_only.name": "Nastavit správu záloh jako jen pro čtení",
517
+ "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.",
497
518
  "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.",
498
519
  "addon.auto_backup_throttle_minutes.name": "Omezení automatické zálohy (minuty)",
499
520
  "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.",
@@ -524,6 +545,7 @@
524
545
  "policies.global.pin.not_set": "Není nastaven žádný PIN. Nastavte jej pro povolení rozhodování přes sběrnici událostí.",
525
546
  "policies.global.pin.unknown": "Nepodařilo se zjistit, zda je PIN nastaven.",
526
547
  "policies.global.pin.saved": "PIN uložen.",
548
+ "policies.global.pin.saved_switch_unread": "PIN byl uložen, ale nastavení událostí a rozhodnutí se nepodařilo přečíst. Před uložením globálního nastavení znovu načtěte stránku.",
527
549
  "policies.global.pin.cleared": "PIN odebrán.",
528
550
  "policies.global.pin.cleared_and_disabled": "PIN byl odebrán a rozhodování přes sběrnici událostí bylo s ním vypnuto.",
529
551
  "policies.global.pin.confirm_clear": "Odebrat schvalovací PIN? Rozhodování přes sběrnici událostí se tím vypne; seznam čekajících na této kartě zůstane nedotčen.",
@@ -233,6 +233,7 @@
233
233
  "tools.notes.beta_disabled": "Beta. Setze {setting} in der Dev-App-Konfiguration (Add-on) oder der entsprechenden Umgebungsvariable (siehe docs/beta.md).",
234
234
  "tools.notes.env_pinned": "Angeheftet durch {variable}. Hebe die Umgebungsvariable auf, um hier zu bearbeiten.",
235
235
  "tools.notes.bps_locked": "Gesperrt, während der strikte Best-Practices-Modus eingeschaltet ist. Schalte diese Einstellung zuerst aus, um dieses Tool zu deaktivieren.",
236
+ "tools.notes.mandatory_disabled_ignored": "Deaktivierungsanfrage ignoriert: Dieses Tool ist obligatorisch und bleibt aktiviert.",
236
237
  "tools.notes.read_only_off": "Aus. Nur-Lese-Modus ist eingeschaltet; Schreibtools sind deaktiviert.",
237
238
  "tools.notes.read_only_partial": "Nur-Lese-Modus: Schreiboperationen dieses Tools sind blockiert; Leseoperationen bleiben verfügbar.",
238
239
  "tools.llm_api.label": "LLM-API",
@@ -252,6 +253,10 @@
252
253
  "tools.read_only.save_failed": "Nur-Lese-Modus-Änderung wurde nicht gespeichert. Der Server hat weiterhin den vorherigen Wert.",
253
254
  "backup.fields.enable_auto_backup.label": "Automatische Backup-Bearbeitungen",
254
255
  "backup.fields.enable_auto_backup.help": "Erfasse einen Snapshot vor jedem umwickelten Schreib- oder destruktiven Tool-Aufruf.",
256
+ "backup.fields.enable_snapshot_actions.label": "Vollständige HA-Snapshot-Aktionen erlauben",
257
+ "backup.fields.enable_snapshot_actions.help": "Erlaube KI-Assistenten die Verwaltung vollständiger Home Assistant-Snapshots über ha_manage_backup sowie die entsprechenden Backup-Dienste und -Befehle in ha_call_service. Das Ausschalten blockiert jede Snapshot-Aktion, einschließlich des Auflistens. Das Löschen von Snapshots ist nur über ha_manage_backup verfügbar und erfordert zudem Snapshot-Löschungen erlauben. Bearbeitungs-Backups und menschliche Aktionen auf dieser Seite bleiben verfügbar.",
258
+ "backup.fields.backup_read_only.label": "Backup-Verwaltung schreibgeschützt machen",
259
+ "backup.fields.backup_read_only.help": "Erlaube KI-Assistenten das Auflisten, Anzeigen und Vergleichen von Bearbeitungs-Backups sowie das Auflisten vollständiger HA-Snapshots, wenn Snapshot-Aktionen aktiviert sind. Blockiert das manuelle Erstellen, Wiederherstellen (einschließlich Bearbeitungswiederherstellungen) und Löschen von Backups, einschließlich der entsprechenden Backup-Dienste und -Befehle in ha_call_service. Automatische Backups vor Bearbeitungen werden fortgesetzt. Menschliche Aktionen auf dieser Seite bleiben verfügbar.",
255
260
  "backup.fields.auto_backup_throttle_minutes.label": "Drosselung (Minuten)",
256
261
  "backup.fields.auto_backup_throttle_minutes.help": "Drosselung pro Entität. 0 = jeder Schreibvorgang; N > 0 = höchstens ein Backup pro N Minuten. Bereich 0-1440.",
257
262
  "backup.fields.auto_backup_retain_per_entity.label": "Behalten pro Entität",
@@ -367,6 +372,17 @@
367
372
  "policies.card.always_row": "(immer — jeder Aufruf dieses Tools erfordert Genehmigung)",
368
373
  "policies.card.always_row_allow": "(immer — genehmigt jeden Aufruf dieses Tools)",
369
374
  "policies.card.and_join": " UND ",
375
+ "policies.card.or_join": "ODER",
376
+ "policies.card.add_and": "+ UND",
377
+ "policies.card.add_and_title": "Füge eine Unterbedingung hinzu, die ebenfalls zutreffen muss. Diese Bedingung passt dann zu weniger Aufrufen.",
378
+ "policies.card.add_and_title_allow": "Füge eine Unterbedingung hinzu, die ebenfalls zutreffen muss. Diese Bedingung genehmigt dann weniger Aufrufe.",
379
+ "policies.card.and_hint": "Muss ebenfalls zutreffen: {condition}",
380
+ "policies.card.remove_condition": "Bedingung entfernen",
381
+ "policies.card.never_matches": "Kein einzelner Wert von {path} erfüllt alle seine Prädikate in dieser Bedingung. Verwende für ein Listenargument \"contains\" für jeden Wert, den es enthalten muss.",
382
+ "policies.card.never_matches_allow": "Kein einzelner Wert von {path} erfüllt alle seine Prädikate in dieser Bedingung. Um ein Listenargument zu genehmigen, verwende \"is one of\" mit jedem Wert, den seine Elemente annehmen können.",
383
+ "policies.card.confirm_loosen": "Diese Änderung kann Aufrufe für \"{tool}\" genehmigen, die zuvor deine Genehmigung benötigten. Speichern?",
384
+ "policies.card.stale_not_saved": "Die Richtlinie wurde neu geladen, bevor diese Änderung gespeichert wurde. Führe die Änderung erneut aus.",
385
+ "policies.card.save_pending": "Eine Änderung wird noch gespeichert oder die Richtlinie wird neu geladen. Versuche es gleich noch einmal.",
370
386
  "policies.card.remove_title": "Aus Richtlinie entfernen",
371
387
  "policies.card.conditions_intro": "Genehmigung erfordern, wenn EINE der Bedingungen übereinstimmt (keine Bedingungen = immer Genehmigung erfordern):",
372
388
  "policies.card.conditions_intro_allow": "Ohne Nachfragen genehmigen, wenn IRGENDEINE Bedingung zutrifft (keine Bedingungen = immer genehmigen):",
@@ -402,6 +418,7 @@
402
418
  "policies.editor.validation.value_required": "Wert ist für op={operator} erforderlich",
403
419
  "policies.editor.validation.empty_list": "leere Liste für op={operator}",
404
420
  "policies.editor.validation.argument_required": "Argument ist erforderlich",
421
+ "policies.editor.validation.still_loading": "wird noch geladen, versuche es gleich noch einmal",
405
422
  "policies.pending.offline": "Kontakt zum Server verloren ({message}). Wiederhole.",
406
423
  "policies.pending.disabled": "Tool-Sicherheitsrichtlinien sind deaktiviert. Schalte sie ein und starte HA-MCP neu, um die Freigabe zu aktivieren.",
407
424
  "policies.pending.unavailable": "Echtzeit-Genehmigungen nicht verfügbar. Überprüfe das HA-MCP-Protokoll.",
@@ -494,6 +511,10 @@
494
511
  "addon.enable_security_policy_tool.name": "KI-Agenten erlauben, Tool-Sicherheitsrichtlinien zu bearbeiten",
495
512
  "addon.enable_security_policy_tool.description": "Registriert das Tool ha_manage_security_policy, das verbundenen KI-Agenten erlaubt, die Tool-Sicherheitsrichtlinien zu lesen und neu zu schreiben — einschließlich des Entfernens von Genehmigungsschranken. Standardmäßig deaktiviert. Unabhängig von der Option „Tool-Sicherheitsrichtlinien“ oben: Dies steuert, wer die Regeln bearbeiten kann, nicht ob sie erzwungen werden. Das Tool kann ausstehende Genehmigungen nicht sehen oder entscheiden. Um einen Menschen in der Schleife zu halten, schütze das Tool, bevor du es aktivierst: Aktiviere „security gated“ für „Manage Security Policy“ auf dem Tab „Tools“ der Web-UI. Erfordert einen Neustart, um wirksam zu werden.",
496
513
  "addon.enable_auto_backup.name": "Auto-Backup von Bearbeitungen aktivieren",
514
+ "addon.enable_snapshot_actions.name": "Vollständige HA-Snapshot-Aktionen erlauben",
515
+ "addon.enable_snapshot_actions.description": "Erlaube KI-Assistenten die Verwaltung vollständiger Home Assistant-Snapshots über ha_manage_backup(scope='snapshot') sowie die entsprechenden Backup-Dienste und -Befehle in ha_call_service. Das Ausschalten blockiert jede Snapshot-Aktion, einschließlich des Auflistens, während Bearbeitungs-Backups verfügbar bleiben. Das Löschen von Snapshots ist nur über ha_manage_backup verfügbar, erfordert zudem enable_snapshot_delete und dessen Schutzmaßnahmen gelten weiterhin. Standardmäßig aktiviert. Ändere diese Option oder nutze den Tab „Backups“ in den Web-Einstellungen; erfordert einen Neustart in der App.",
516
+ "addon.backup_read_only.name": "Backup-Verwaltung schreibgeschützt machen",
517
+ "addon.backup_read_only.description": "Beschränke ha_manage_backup auf das Auflisten, Anzeigen und Vergleichen von Bearbeitungs-Backups sowie das Auflisten vollständiger HA-Snapshots, wenn Snapshot-Aktionen aktiviert sind. Blockiert das manuelle Erstellen, Wiederherstellen (einschließlich Bearbeitungswiederherstellungen) und Löschen von Backups, einschließlich der entsprechenden Backup-Dienste und -Befehle in ha_call_service. Automatische Backups vor Bearbeitungen werden fortgesetzt und menschliche Aktionen in den Web-Einstellungen bleiben verfügbar. Standardmäßig deaktiviert; erfordert einen Neustart in der App.",
497
518
  "addon.enable_auto_backup.description": "Erstellt einen Snapshot pro Entität vor jedem umschlossenen Schreib-/destruktiven MCP-Tool-Aufruf (Automatisierung, Skript, Szene, Helfer, Dashboard, Dashboard-Ressource, Label, Kategorie, Gruppe, Zone, Bereich, Kalender, Todo, Entität, Gerät, Integration und zugehörige Entfernungs-/Lösch-Tools). Die Auto-Backup-Drosselung begrenzt, wie oft dies geschieht: 0 (Standard) erstellt bei jedem solchen Aufruf einen Snapshot, N>0 maximal einen Snapshot pro N Minuten pro Entität. Snapshots werden als YAML-Dateien unter /data/ha_mcp_backups/ (Überschreibung über HAMCP_BACKUP_DIR) gespeichert und können über den Tab „Backups“ in der Web-Einstellungen-UI oder über ha_manage_backup(scope='edits', ...) aufgelistet, wiederhergestellt oder gelöscht werden. Für diese Domänen ist die Erfassung ein Best-Effort-Versuch — ein Fehler protokolliert eine WARNING und der Schreibvorgang wird fortgesetzt. Die Datei- und Raw-YAML-Tools sind die Ausnahme: ha_write_file, ha_delete_file und ha_config_set_yaml behandeln den Snapshot als Vorbedingung, sodass ein Schreibvorgang über sie verweigert wird, solange dies deaktiviert ist, und eine fehlgeschlagene Erfassung ihn blockiert. Standardmäßig aktiviert; Deaktivieren meldet sich von den Best-Effort-Erfassungen ab und nimmt die Datei- und Raw-YAML-Tools mit ihnen außer Betrieb. Erfordert einen Neustart, um wirksam zu werden.",
498
519
  "addon.auto_backup_throttle_minutes.name": "Auto-Backup-Drosselung (Minuten)",
499
520
  "addon.auto_backup_throttle_minutes.description": "Pro-Entität-Drosselungsfenster. 0 (Standard) erfasst einen Snapshot bei jedem umschlossenen Schreibvorgang. N>0 erfasst höchstens einen Snapshot pro N Minuten pro Entität. Bereich 0–1440.",
@@ -524,6 +545,7 @@
524
545
  "policies.global.pin.not_set": "Keine PIN festgelegt. Lege eine fest, um Entscheidungen über den Ereignisbus zu erlauben.",
525
546
  "policies.global.pin.unknown": "Konnte nicht lesen, ob eine PIN festgelegt ist.",
526
547
  "policies.global.pin.saved": "PIN gespeichert.",
548
+ "policies.global.pin.saved_switch_unread": "PIN gespeichert, aber die Einstellung für Ereignisentscheidungen konnte nicht gelesen werden. Lade die Seite neu, bevor du die globalen Einstellungen speicherst.",
527
549
  "policies.global.pin.cleared": "PIN entfernt.",
528
550
  "policies.global.pin.cleared_and_disabled": "PIN entfernt und das Entscheiden über den Ereignisbus damit ausgeschaltet.",
529
551
  "policies.global.pin.confirm_clear": "Freigabe-PIN entfernen? Das Entscheiden über den Ereignisbus wird damit ausgeschaltet; die Liste der ausstehenden Anfragen in diesem Tab ist nicht betroffen.",
@@ -233,6 +233,7 @@
233
233
  "tools.notes.beta_disabled": "Beta. Agordu {setting} en la disvolva apa (aldonaĵo) agordo aŭ kongrua medivariablo (vidu docs/beta.md).",
234
234
  "tools.notes.env_pinned": "Fiksita de {variable}. Malagordu la medio-variablon por redakti ĉi tie.",
235
235
  "tools.notes.bps_locked": "Ŝlosita dum la reĝimo de striktaj plej bonaj praktikoj estas ŝaltita. Malŝaltu tiun agordon unue por malŝalti ĉi tiun ilon.",
236
+ "tools.notes.mandatory_disabled_ignored": "Malŝaltservo ignorita: ĉi tiu ilo estas deviga kaj restas ŝaltita.",
236
237
  "tools.notes.read_only_off": "Malŝaltita. Nurlega Reĝimo estas ŝaltita; skribaj iloj estas malŝaltitaj.",
237
238
  "tools.notes.read_only_partial": "Nurlega Reĝimo: skribaj operacioj de ĉi tiu ilo estas blokitaj; legaj operacioj restas disponeblaj.",
238
239
  "tools.llm_api.label": "LLM API",
@@ -252,6 +253,10 @@
252
253
  "tools.read_only.save_failed": "Ŝanĝo de Nurlega Reĝimo ne konserviĝis. La servilo ankoraŭ havas la antaŭan valoron.",
253
254
  "backup.fields.enable_auto_backup.label": "Aŭtomataj sekurkopioj de redaktoj",
254
255
  "backup.fields.enable_auto_backup.help": "Kaptu momentfoton antaŭ ĉiu envolvita skribo aŭ detrua ilvoko.",
256
+ "backup.fields.enable_snapshot_actions.label": "Permesi plenajn akompanajn agojn de HA-momentfotoj",
257
+ "backup.fields.enable_snapshot_actions.help": "Permesi al AI-asistantoj administri plenajn momentfotojn de Home Assistant per ha_manage_backup kaj la ekvivalentaj rezervaj servoj kaj komandoj en ha_call_service. Malŝalti ĉi tion blokas ĉiun momentfotan agon, inkluzive de listigado. Forigo de momentfotoj nur disponeblas per ha_manage_backup kaj ankaŭ postulas Permesi forigon de momentfotoj. Redakti rezervojn kaj homajn agojn en ĉi tiu paĝo restas disponeblaj.",
258
+ "backup.fields.backup_read_only.label": "Igi rezervadministradon nur-legebla",
259
+ "backup.fields.backup_read_only.help": "Permesi al AI-asistantoj listigi, rigardi kaj kompari redaktajn rezervojn, kaj listigi plenajn HA-momentfotojn kiam momentfotaj agoj estas ebligitaj. Bloki manan kreadon de rezervoj, restarigon (inkluzive de redaktaj restarigoj), kaj forigon, inkluzive de la ekvivalentaj rezervaj servoj kaj komandoj en ha_call_service. Aŭtomataj antaŭredaktaj rezervoj daŭras. Homaj agoj en ĉi tiu paĝo restas disponeblaj.",
255
260
  "backup.fields.auto_backup_throttle_minutes.label": "Limigo (minutoj)",
256
261
  "backup.fields.auto_backup_throttle_minutes.help": "Limigo por ento. 0 = ĉiu skribo; N > 0 = maksimume unu sekurkopio po N minutoj. Intervalo 0–1440.",
257
262
  "backup.fields.auto_backup_retain_per_entity.label": "Konservi po ento",
@@ -367,6 +372,17 @@
367
372
  "policies.card.always_row": "(ĉiam — pordigas ĉiun vokon al ĉi tiu ilo)",
368
373
  "policies.card.always_row_allow": "(ĉiam — aprobas ĉiun vokon al ĉi tiu ilo)",
369
374
  "policies.card.and_join": " KAJ ",
375
+ "policies.card.or_join": "AŬ",
376
+ "policies.card.add_and": "+ KAJ",
377
+ "policies.card.add_and_title": "Aldoni subkondiĉon kiu ankaŭ devas kongrui. Ĉi tiu kondiĉo tiam kongruas kun malpli da vokoj.",
378
+ "policies.card.add_and_title_allow": "Aldoni subkondiĉon kiu ankaŭ devas kongrui. Ĉi tiu kondiĉo tiam aprobas malpli da vokoj.",
379
+ "policies.card.and_hint": "Devas ankaŭ kongrui: {condition}",
380
+ "policies.card.remove_condition": "Forigi kondiĉon",
381
+ "policies.card.never_matches": "Neniu unuopa valoro de {path} kontentigas ĉiujn siajn predikatojn en ĉi tiu kondiĉo. Por lista argumento, uzu \"contains\" por ĉiu valoro kiun ĝi devas teni.",
382
+ "policies.card.never_matches_allow": "Neniu unuopa valoro de {path} kontentigas ĉiujn siajn predikatojn en ĉi tiu kondiĉo. Por aprobi listan argumenton, uzu \"is one of\" kun ĉiu valoro kiun ĝiaj eroj povas preni.",
383
+ "policies.card.confirm_loosen": "Ĉi tiu ŝanĝo povas aprobi vokojn al \"{tool}\", kiuj bezonis vian aprobon antaŭe. Ĉu konservi ĝin?",
384
+ "policies.card.stale_not_saved": "La politiko estis reŝargita antaŭ ol ĉi tiu ŝanĝo estis konservita. Faru la ŝanĝon denove.",
385
+ "policies.card.save_pending": "Ŝanĝo ankoraŭ estas konservata aŭ la politiko reŝariĝas. Provu denove post momento.",
370
386
  "policies.card.remove_title": "Forigi el politiko",
371
387
  "policies.card.conditions_intro": "Postulu aprobon kiam IUJ kondiĉo kongruas (sen kondiĉoj = ĉiam postulu aprobon):",
372
388
  "policies.card.conditions_intro_allow": "Aprobi sen demandi kiam IU AJN kondiĉo kongruas (neniuj kondiĉoj = ĉiam aprobi):",
@@ -402,6 +418,7 @@
402
418
  "policies.editor.validation.value_required": "valoro estas postulata por op={operator}",
403
419
  "policies.editor.validation.empty_list": "malplena listo por op={operator}",
404
420
  "policies.editor.validation.argument_required": "argumento estas postulata",
421
+ "policies.editor.validation.still_loading": "ankoraŭ ŝargiĝas, provu denove post momento",
405
422
  "policies.pending.offline": "Perdis kontakton kun la servilo ({message}). Reprovante.",
406
423
  "policies.pending.disabled": "La il-sekurecaj politikoj estas malŝaltitaj. Ŝaltu ilin kaj restartigu HA-MCP por ebligi filtradon.",
407
424
  "policies.pending.unavailable": "Realtempaj aproboj ne disponeblas. Kontrolu la protokolon de HA-MCP.",
@@ -494,6 +511,10 @@
494
511
  "addon.enable_security_policy_tool.name": "Permesi al AI-agentoj redakti ilajn sekurecajn politikojn",
495
512
  "addon.enable_security_policy_tool.description": "Registras la ilon ha_manage_security_policy, kiu permesas al konektitaj AI-agentoj legi kaj reverki la ilajn sekurecajn politikojn — inkluzive de forigo de aprobo-pordoj. Malŝaltita defaŭlte. Sendepende de la opcio 'Iloj Sekurecaj Politikoj' supre: ĉi tio regas, kiu povas redakti la regulojn, ne ĉu ili estas plenumitaj. La ilo ne povas vidi aŭ decidi atendajn aprobojn. Por konservi homon en la procezo, pordigu la ilon antaŭ ol ebligi ĝin: ŝaltu \"sekurece pordigita\" por 'Administri Sekurecan Politikon' en la langeto 'Iloj' de la reta UI. Postulas restartigon por efektiviĝi.",
496
513
  "addon.enable_auto_backup.name": "Ebligi aŭtomatan sekurkopion de redaktoj",
514
+ "addon.enable_snapshot_actions.name": "Permesi plenajn akompanajn agojn de HA-momentfotoj",
515
+ "addon.enable_snapshot_actions.description": "Permesi al AI-asistantoj administri plenajn momentfotojn de Home Assistant per ha_manage_backup(scope='snapshot') kaj la ekvivalentaj rezervaj servoj kaj komandoj en ha_call_service. Malŝalti ĉi tion blokas ĉiun momentfotan agon, inkluzive de listigado, dum redaktaj rezervoj restas disponeblaj. Forigo de momentfotoj nur disponeblas per ha_manage_backup, ankaŭ postulas enable_snapshot_delete, kaj ĝiaj protektoj ankoraŭ validas. Ŝaltita defaŭlte. Ŝanĝu ĉi tiun agordon aŭ uzu la retpaĝan Agordan UI-rigardeton Backups; postulas restartigon en la aplikaĵo.",
516
+ "addon.backup_read_only.name": "Igi rezervadministradon nur-legebla",
517
+ "addon.backup_read_only.description": "Limigi ha_manage_backup al listigado, rigardado kaj komparado de redaktaj rezervoj, kaj listigado de plenaj HA-momentfotoj kiam momentfotaj agoj estas ebligitaj. Blokas manan kreadon de rezervoj, restarigon (inkluzive de redaktaj restarigoj), kaj forigon, inkluzive de la ekvivalentaj rezervaj servoj kaj komandoj en ha_call_service. Aŭtomataj antaŭredaktaj rezervoj daŭras, kaj homaj agoj en la reta Agorda UI restas disponeblaj. Malŝaltita defaŭlte; postulas restartigon en la aplikaĵo.",
497
518
  "addon.enable_auto_backup.description": "Kaptas momentfoton por ĉiu ento antaŭ ĉiu ĉirkaŭvolvita skriba/detrua MCP-ilvoko (aŭtomatigo, skripto, sceno, helpilo, panelo, panelresurso, etikedo, kategorio, grupo, zono, areo, kalendaro, farendaĵo, ento, aparato, integriĝo, kaj parencaj forigaj/detruaj iloj). La aŭtomata sekurkopia limigo difinas kiom ofte tio okazas: 0 (defaŭlte) kaptas ĉe ĉiu tia voko, N>0 maksimume unu momentfoton po N minutoj por ĉiu ento. Momentfotoj estas konservitaj kiel YAML-dosieroj sub /data/ha_mcp_backups/ (anstataŭigebla per HAMCP_BACKUP_DIR) kaj listigitaj, restarigitaj, aŭ forigitaj per la langeto 'Sekurkopioj' en la reta agorda UI aŭ per ha_manage_backup(scope='edits', ...). Por tiuj domajnoj la kapto estas plejbone klopoda — malsukceso registras AVERTON kaj la skribo daŭras. La dosieraj kaj krud-YAML-iloj estas la escepto: ha_write_file, ha_delete_file kaj ha_config_set_yaml traktas la momentfoton kiel antaŭkondiĉon, do skribo tra ili estas rifuzita dum ĉi tio estas malŝaltita, kaj malsukcesa kapto blokas ĝin. Defaŭlte ŝaltita; malmarkado malaktivigas la plejbone klopodajn kaptojn kaj malfunkciigas la dosierajn kaj krud-YAML-ilojn kun ili. Postulas restartigon por efektiviĝi.",
498
519
  "addon.auto_backup_throttle_minutes.name": "Aŭtomata sekurkopia limigo (minutoj)",
499
520
  "addon.auto_backup_throttle_minutes.description": "Limiga fenestro por ĉiu ento. 0 (defaŭlte) kaptas momentfoton ĉe ĉiu ĉirkaŭvolvita skribo. N>0 kaptas maksimume unu momentfoton po N minutoj por ĉiu ento. Gamo 0–1440.",
@@ -524,6 +545,7 @@
524
545
  "policies.global.pin.not_set": "Neniu PIN-kodo agordita. Agordu unu por permesi decidojn tra la eventobuso.",
525
546
  "policies.global.pin.unknown": "Ne eblis legi ĉu PIN-kodo estas agordita.",
526
547
  "policies.global.pin.saved": "PIN-kodo konservita.",
548
+ "policies.global.pin.saved_switch_unread": "PIN konservita, sed la agordo de eventaj decidoj ne povis esti legita. Reŝargu la paĝon antaŭ konservi la ĉefajn agordojn.",
527
549
  "policies.global.pin.cleared": "PIN-kodo forigita.",
528
550
  "policies.global.pin.cleared_and_disabled": "PIN-kodo forigita, kaj decidi per la eventobuso malŝaltita kune kun ĝi.",
529
551
  "policies.global.pin.confirm_clear": "Ĉu forigi la aproban PIN-kodon? Decidi per la eventobuso malŝaltas kun ĝi; la pritraktata listo en ĉi tiu langeto ne tuŝiĝas.",
@@ -233,6 +233,7 @@
233
233
  "tools.notes.beta_disabled": "Beta. Configura {setting} en la configuración de la app (add-on) de desarrollo o en la variable de entorno correspondiente (consulta docs/beta.md).",
234
234
  "tools.notes.env_pinned": "Fijada por {variable}. Quita la variable de entorno para editarla aquí.",
235
235
  "tools.notes.bps_locked": "Bloqueada mientras el modo estricto de buenas prácticas esté activado. Desactiva antes ese ajuste para poder desactivar esta herramienta.",
236
+ "tools.notes.mandatory_disabled_ignored": "Solicitud de desactivación ignorada: esta herramienta es obligatoria y permanece habilitada.",
236
237
  "tools.notes.read_only_off": "Desactivada. El modo de solo lectura está activo; las herramientas de escritura están desactivadas.",
237
238
  "tools.notes.read_only_partial": "Modo de solo lectura: las operaciones de escritura de esta herramienta están bloqueadas; las de lectura siguen disponibles.",
238
239
  "tools.llm_api.label": "API de LLM",
@@ -252,6 +253,10 @@
252
253
  "tools.read_only.save_failed": "El cambio del modo de solo lectura no se ha guardado. El servidor mantiene el valor anterior.",
253
254
  "backup.fields.enable_auto_backup.label": "Copia automática de las ediciones",
254
255
  "backup.fields.enable_auto_backup.help": "Captura una instantánea antes de cada llamada cubierta a una herramienta de escritura o destructiva.",
256
+ "backup.fields.enable_snapshot_actions.label": "Permitir acciones de instantáneas completas de HA",
257
+ "backup.fields.enable_snapshot_actions.help": "Permitir a los asistentes de IA gestionar instantáneas completas de Home Assistant mediante ha_manage_backup y los servicios y comandos de copia de seguridad equivalentes en ha_call_service. Desactivar esto bloquea todas las acciones de instantáneas, incluida su lista. La eliminación de instantáneas solo está disponible a través de ha_manage_backup y también requiere Permitir eliminación de instantáneas. Las copias de seguridad de edición y las acciones humanas en esta página siguen estando disponibles.",
258
+ "backup.fields.backup_read_only.label": "Hacer que la gestión de copias de seguridad sea de solo lectura",
259
+ "backup.fields.backup_read_only.help": "Permitir a los asistentes de IA listar, ver y comparar copias de seguridad de edición, y listar instantáneas completas de HA cuando las acciones de instantáneas estén habilitadas. Bloquea la creación, restauración (incluidas las restauraciones de edición) y eliminación manuales de copias de seguridad, incluidos los servicios y comandos de copia de seguridad equivalentes en ha_call_service. Las copias de seguridad automáticas previas a la edición continúan. Las acciones humanas en esta página siguen estando disponibles.",
255
260
  "backup.fields.auto_backup_throttle_minutes.label": "Limitación (minutos)",
256
261
  "backup.fields.auto_backup_throttle_minutes.help": "Limitación por entidad. 0 = en cada escritura; N > 0 = como mucho una copia cada N minutos. Rango 0–1440.",
257
262
  "backup.fields.auto_backup_retain_per_entity.label": "Conservar por entidad",
@@ -367,6 +372,17 @@
367
372
  "policies.card.always_row": "(siempre: controla cada llamada a esta herramienta)",
368
373
  "policies.card.always_row_allow": "(siempre — aprueba cada llamada a esta herramienta)",
369
374
  "policies.card.and_join": " Y ",
375
+ "policies.card.or_join": "O",
376
+ "policies.card.add_and": "+ Y",
377
+ "policies.card.add_and_title": "Añadir una subcondición que también deba coincidir. Esta condición coincidirá entonces con menos llamadas.",
378
+ "policies.card.add_and_title_allow": "Añadir una subcondición que también deba coincidir. Esta condición aprobará entonces menos llamadas.",
379
+ "policies.card.and_hint": "También debe coincidir con: {condition}",
380
+ "policies.card.remove_condition": "Eliminar condición",
381
+ "policies.card.never_matches": "Ningún valor único de {path} cumple todos sus predicados en esta condición. Para un argumento de lista, usa \"contains\" para cada valor que deba contener.",
382
+ "policies.card.never_matches_allow": "Ningún valor único de {path} cumple todos sus predicados en esta condición. Para aprobar un argumento de lista, usa \"is one of\" con cada valor que puedan tomar sus elementos.",
383
+ "policies.card.confirm_loosen": "Este cambio puede aprobar llamadas a \"{tool}\" que antes necesitaban tu aprobación. ¿Guardarlo?",
384
+ "policies.card.stale_not_saved": "La directiva se recargó antes de que se guardara este cambio. Realiza el cambio de nuevo.",
385
+ "policies.card.save_pending": "Todavía se está guardando un cambio o la directiva se está recargando. Inténtalo de nuevo en un momento.",
370
386
  "policies.card.remove_title": "Quitar de la política",
371
387
  "policies.card.conditions_intro": "Exigir aprobación cuando coincida CUALQUIERA de las condiciones (sin condiciones = exigir aprobación siempre):",
372
388
  "policies.card.conditions_intro_allow": "Aprobar sin preguntar cuando CUALQUIER condición coincida (sin condiciones = aprobar siempre):",
@@ -402,6 +418,7 @@
402
418
  "policies.editor.validation.value_required": "hace falta un valor para op={operator}",
403
419
  "policies.editor.validation.empty_list": "lista vacía para op={operator}",
404
420
  "policies.editor.validation.argument_required": "hace falta un argumento",
421
+ "policies.editor.validation.still_loading": "aún cargando, inténtalo de nuevo en un momento",
405
422
  "policies.pending.offline": "Se ha perdido el contacto con el servidor ({message}). Reintentando.",
406
423
  "policies.pending.disabled": "Las políticas de seguridad de herramientas están desactivadas. Actívalas y reinicia HA-MCP para habilitar el control de acceso.",
407
424
  "policies.pending.unavailable": "Aprobaciones en vivo no disponibles. Revisa el registro de HA-MCP.",
@@ -494,6 +511,10 @@
494
511
  "addon.enable_security_policy_tool.name": "Permitir que los agentes de IA editen las políticas de seguridad de la herramienta",
495
512
  "addon.enable_security_policy_tool.description": "Registra la herramienta ha_manage_security_policy, que permite a los agentes de IA conectados leer y reescribir las políticas de seguridad de la herramienta — incluyendo la eliminación de las puertas de aprobación. Desactivado por defecto. Independiente de la opción Políticas de seguridad de la herramienta de arriba: esto controla quién puede editar las reglas, no si se aplican. La herramienta no puede ver ni decidir aprobaciones pendientes. Para mantener a un humano en el bucle, protege la herramienta antes de habilitarla: activa \"security gated\" para Manage Security Policy en la pestaña Herramientas de la interfaz de usuario web. Requiere un reinicio para que surta efecto.",
496
513
  "addon.enable_auto_backup.name": "Activar copia de seguridad automática de las ediciones",
514
+ "addon.enable_snapshot_actions.name": "Permitir acciones de instantáneas completas de HA",
515
+ "addon.enable_snapshot_actions.description": "Permitir a los asistentes de IA gestionar instantáneas completas de Home Assistant mediante ha_manage_backup(scope='snapshot') y los servicios y comandos de copia de seguridad equivalentes en ha_call_service. Desactivar esto bloquea todas las acciones de instantáneas, incluida su lista, mientras que las copias de seguridad de edición siguen estando disponibles. La eliminación de instantáneas solo está disponible a través de ha_manage_backup, también requiere enable_snapshot_delete y sus protecciones siguen aplicándose. Activado por defecto. Cambia esta opción o utiliza la pestaña Copias de seguridad de la interfaz web de configuración; requiere reiniciar en la aplicación.",
516
+ "addon.backup_read_only.name": "Hacer que la gestión de copias de seguridad sea de solo lectura",
517
+ "addon.backup_read_only.description": "Restringir ha_manage_backup a listar, ver y comparar copias de seguridad de edición, y listar instantáneas completas de HA cuando las acciones de instantáneas estén habilitadas. Bloquea la creación, restauración (incluidas las restauraciones de edición) y eliminación manuales de copias de seguridad, incluidos los servicios y comandos de copia de seguridad equivalentes en ha_call_service. Las copias de seguridad automáticas previas a la edición continúan y las acciones humanas en la interfaz web de configuración siguen estando disponibles. Desactivado por defecto; requiere reiniciar en la aplicación.",
497
518
  "addon.enable_auto_backup.description": "Captura una instantánea por entidad antes de cada llamada envuelta de herramienta MCP de escritura/destructiva (automatización, script, escena, asistente, panel, recurso de panel, etiqueta, categoría, grupo, zona, área, calendario, tarea, entidad, dispositivo, integración y herramientas de eliminación/borrado de elementos relacionados). El límite de frecuencia de la copia de seguridad automática establece la frecuencia con la que esto ocurre: 0 (predeterminado) captura en cada llamada de este tipo, N>0 como máximo una instantánea cada N minutos por entidad. Las instantáneas se guardan como archivos YAML en /data/ha_mcp_backups/ (anular mediante HAMCP_BACKUP_DIR) y se listan, restauran o eliminan a través de la pestaña \"Copias de seguridad\" en la interfaz de usuario de configuración web o mediante ha_manage_backup(scope='edits', ...). Para esos dominios, la captura es de \"mejor esfuerzo\" — un fallo registra una ADVERTENCIA y la escritura procede. Las herramientas de archivo y YAML sin procesar son la excepción: ha_write_file, ha_delete_file y ha_config_set_yaml tratan la instantánea como una condición previa, por lo que una escritura a través de ellas se rechaza mientras esto está desactivado, y una captura fallida la bloquea. Activado por defecto; desmarcar desactiva las capturas de \"mejor esfuerzo\" y deja fuera de servicio las herramientas de archivo y YAML sin procesar con ellas. Requiere un reinicio para que surta efecto.",
498
519
  "addon.auto_backup_throttle_minutes.name": "Limitación de la copia automática (minutos)",
499
520
  "addon.auto_backup_throttle_minutes.description": "Ventana de limitación por entidad. 0 (predeterminado) captura una instantánea en cada escritura cubierta. N>0 captura como mucho una instantánea cada N minutos por entidad. Rango 0–1440.",
@@ -524,6 +545,7 @@
524
545
  "policies.global.pin.not_set": "Ningún PIN establecido. Establece uno para permitir decisiones a través del bus de eventos.",
525
546
  "policies.global.pin.unknown": "No se pudo leer si hay un PIN establecido.",
526
547
  "policies.global.pin.saved": "PIN guardado.",
548
+ "policies.global.pin.saved_switch_unread": "PIN guardado, pero no se pudo leer la configuración de decisiones de eventos. Recarga la página antes de guardar la configuración global.",
527
549
  "policies.global.pin.cleared": "PIN eliminado.",
528
550
  "policies.global.pin.cleared_and_disabled": "PIN eliminado, y las decisiones a través del bus de eventos desactivadas junto con él.",
529
551
  "policies.global.pin.confirm_clear": "¿Eliminar el PIN de aprobación? Las decisiones a través del bus de eventos se desactivarán junto con él; la lista de pendientes en esta pestaña no se ve afectada.",
@@ -233,6 +233,7 @@
233
233
  "tools.notes.beta_disabled": "Bêta. Définissez {setting} dans la configuration de l'application (add-on) de développement ou dans la variable d'environnement correspondante (voir docs/beta.md).",
234
234
  "tools.notes.env_pinned": "Épinglé par {variable}. Désactivez la variable d'environnement pour modifier ici.",
235
235
  "tools.notes.bps_locked": "Verrouillé pendant que le mode strict de bonnes pratiques est activé. Désactivez d'abord ce paramètre pour désactiver cet outil.",
236
+ "tools.notes.mandatory_disabled_ignored": "Demande de désactivation ignorée : cet outil est obligatoire and reste activé.",
236
237
  "tools.notes.read_only_off": "Désactivé. Le mode lecture seule est activé ; les outils d'écriture sont désactivés.",
237
238
  "tools.notes.read_only_partial": "Mode lecture seule : les opérations d'écriture de cet outil sont bloquées ; les opérations de lecture restent disponibles.",
238
239
  "tools.llm_api.label": "API LLM",
@@ -252,6 +253,10 @@
252
253
  "tools.read_only.save_failed": "Le changement de mode lecture seule n'a pas été enregistré. Le serveur a toujours la valeur précédente.",
253
254
  "backup.fields.enable_auto_backup.label": "Sauvegardes automatiques des modifications",
254
255
  "backup.fields.enable_auto_backup.help": "Capture un instantané avant chaque appel d'outil d'écriture ou destructeur encapsulé.",
256
+ "backup.fields.enable_snapshot_actions.label": "Autoriser les actions d'instantané complet de Home Assistant",
257
+ "backup.fields.enable_snapshot_actions.help": "Permettre aux assistants IA de gérer les instantanés complets de Home Assistant via ha_manage_backup ainsi que les services et commandes de sauvegarde équivalents dans ha_call_service. Désactiver cette option bloque toutes les actions d'instantané, y compris le listage. La suppression d'instantanés n'est possible que via ha_manage_backup et nécessite également l'autorisation de suppression d'instantanés. Les modifications de sauvegardes et les actions humaines sur cette page restent disponibles.",
258
+ "backup.fields.backup_read_only.label": "Rendre la gestion des sauvegardes en lecture seule",
259
+ "backup.fields.backup_read_only.help": "Permettre aux assistants IA de lister, d'afficher et de comparer les sauvegardes de modification, ainsi que de lister les instantanés complets de Home Assistant lorsque les actions d'instantané sont activées. Bloque la création, la restauration (y compris les restaurations de modification) et la suppression manuelles de sauvegardes, ainsi que les services et commandes de sauvegarde équivalents dans ha_call_service. Les sauvegardes automatiques avant modification continuent. Les actions humaines sur cette page restent disponibles.",
255
260
  "backup.fields.auto_backup_throttle_minutes.label": "Limitation (minutes)",
256
261
  "backup.fields.auto_backup_throttle_minutes.help": "Limitation par entité. 0 = chaque écriture ; N > 0 = au plus une sauvegarde par N minutes. Plage 0–1440.",
257
262
  "backup.fields.auto_backup_retain_per_entity.label": "Conserver par entité",
@@ -367,6 +372,17 @@
367
372
  "policies.card.always_row": "(toujours — contrôle chaque appel de cet outil)",
368
373
  "policies.card.always_row_allow": "(toujours — approuve chaque appel à cet outil)",
369
374
  "policies.card.and_join": " ET ",
375
+ "policies.card.or_join": "OU",
376
+ "policies.card.add_and": "+ ET",
377
+ "policies.card.add_and_title": "Ajouter une sous-condition qui doit également correspondre. Cette condition correspondra alors à un nombre plus restreint d'appels.",
378
+ "policies.card.add_and_title_allow": "Ajouter une sous-condition qui doit également correspondre. Cette condition approuvera alors un nombre plus restreint d'appels.",
379
+ "policies.card.and_hint": "Doit également correspondre : {condition}",
380
+ "policies.card.remove_condition": "Supprimer la condition",
381
+ "policies.card.never_matches": "Aucune valeur unique de {path} ne satisfait tous ses prédicats dans cette condition. Pour un argument de type liste, utilisez \"contains\" pour chaque valeur qu'il doit contenir.",
382
+ "policies.card.never_matches_allow": "Aucune valeur unique de {path} ne satisfait tous ses prédicats dans cette condition. Pour approuver un argument de type liste, utilisez \"is one of\" avec chaque valeur que ses éléments peuvent prendre.",
383
+ "policies.card.confirm_loosen": "Cette modification peut approuver des appels à \"{tool}\" qui nécessitaient votre approbation auparavant. Voulez-vous l'enregistrer ?",
384
+ "policies.card.stale_not_saved": "La politique a été rechargée avant que cette modification ne soit enregistrée. Effectuez la modification à nouveau.",
385
+ "policies.card.save_pending": "Une modification est toujours en cours d'enregistrement ou la politique est en cours de rechargement. Réessayez dans un moment.",
370
386
  "policies.card.remove_title": "Retirer de la politique",
371
387
  "policies.card.conditions_intro": "Exiger une approbation lorsque N'IMPORTE QUELLE condition correspond (aucune condition = toujours exiger une approbation) :",
372
388
  "policies.card.conditions_intro_allow": "Approuver sans demander lorsqu'UNE condition correspond (aucune condition = toujours approuver) :",
@@ -402,6 +418,7 @@
402
418
  "policies.editor.validation.value_required": "la valeur est requise pour op={operator}",
403
419
  "policies.editor.validation.empty_list": "liste vide pour op={operator}",
404
420
  "policies.editor.validation.argument_required": "l'argument est requis",
421
+ "policies.editor.validation.still_loading": "chargement en cours, réessayez dans un moment",
405
422
  "policies.pending.offline": "Contact perdu avec le serveur ({message}). Nouvelle tentative.",
406
423
  "policies.pending.disabled": "Les politiques de sécurité des outils sont désactivées. Activez-les et redémarrez HA-MCP pour activer le filtrage.",
407
424
  "policies.pending.unavailable": "Approbations en direct indisponibles. Consultez le journal de HA-MCP.",
@@ -494,6 +511,10 @@
494
511
  "addon.enable_security_policy_tool.name": "Permettre aux agents IA de modifier les politiques de sécurité des outils",
495
512
  "addon.enable_security_policy_tool.description": "Enregistre l'outil ha_manage_security_policy, qui permet aux agents IA connectés de lire et de réécrire les politiques de sécurité des outils — y compris la suppression des portes d'approbation. Désactivé par défaut. Indépendant de l'option Politiques de sécurité des outils ci-dessus : ceci contrôle qui peut modifier les règles, et non si elles sont appliquées. L'outil ne peut pas voir ou décider des approbations en attente. Pour garder un humain dans la boucle, soumettez l'outil à une approbation avant de l'activer : activez « soumis à la sécurité » pour Gérer la politique de sécurité dans l'onglet Outils de l'interface web. Nécessite un redémarrage pour prendre effet.",
496
513
  "addon.enable_auto_backup.name": "Activer la sauvegarde automatique des modifications",
514
+ "addon.enable_snapshot_actions.name": "Autoriser les actions d'instantané complet de Home Assistant",
515
+ "addon.enable_snapshot_actions.description": "Permettre aux assistants IA de gérer les instantanés complets de Home Assistant via ha_manage_backup(scope='snapshot') ainsi que les services et commandes de sauvegarde équivalents dans ha_call_service. Désactiver cette option bloque toutes les actions d'instantané, y compris le listage, tandis que les sauvegardes de modification restent disponibles. La suppression d'instantanés n'est possible que via ha_manage_backup, nécessite également enable_snapshot_delete, et ses protections s'appliquent toujours. Activé par défaut. Modifiez cette option ou utilisez l'onglet Backups de l'interface des paramètres web ; nécessite un redémarrage dans l'application.",
516
+ "addon.backup_read_only.name": "Rendre la gestion des sauvegardes en lecture seule",
517
+ "addon.backup_read_only.description": "Restreindre ha_manage_backup au listage, à l'affichage et à la comparaison des sauvegardes de modification, ainsi qu'au listage des instantanés complets de Home Assistant lorsque les actions d'instantané sont activées. Bloque la création, la restauration (y compris les restaurations de modification) et la suppression manuelles de sauvegardes, ainsi que les services et commandes de sauvegarde équivalents dans ha_call_service. Les sauvegardes automatiques avant modification continuent, et les actions humaines dans l'interface des paramètres web restent disponibles. Désactivé par défaut ; nécessite un redémarrage dans l'application.",
497
518
  "addon.enable_auto_backup.description": "Capture un instantané par entité avant chaque appel d'outil MCP d'écriture/destructif encapsulé (automation, script, scene, helper, dashboard, ressource de dashboard, label, category, group, zone, area, calendar, todo, entity, device, integration, et les outils de suppression/effacement associés). La limitation de la sauvegarde automatique détermine la fréquence de ces captures : 0 (par défaut) capture à chaque appel de ce type, N>0 au maximum un instantané toutes les N minutes par entité. Les instantanés sont enregistrés en tant que fichiers YAML sous /data/ha_mcp_backups/ (à remplacer via HAMCP_BACKUP_DIR) et peuvent être listés, restaurés ou supprimés via l'onglet Backups dans l'interface utilisateur des paramètres web ou via ha_manage_backup(scope='edits', ...). Pour ces domaines, la capture est faite au mieux — un échec enregistre un WARNING et l'écriture se poursuit. Les outils de fichier et raw-YAML sont l'exception : ha_write_file, ha_delete_file et ha_config_set_yaml traitent l'instantané comme une précondition, donc une écriture via ces outils est refusée si cette option est désactivée, et une capture échouée la bloque. Activé par défaut ; désactiver cette option annule les captures au mieux et désactive les outils de fichier et raw-YAML avec elles. Nécessite un redémarrage pour prendre effet.",
498
519
  "addon.auto_backup_throttle_minutes.name": "Limitation de la sauvegarde automatique (minutes)",
499
520
  "addon.auto_backup_throttle_minutes.description": "Fenêtre de limitation par entité. 0 (par défaut) capture un instantané à chaque écriture encapsulée. N>0 capture au plus un instantané par N minutes par entité. Plage 0–1440.",
@@ -524,6 +545,7 @@
524
545
  "policies.global.pin.not_set": "Aucun code PIN défini. Définissez-en un pour autoriser les décisions via le bus d'événements.",
525
546
  "policies.global.pin.unknown": "Impossible de déterminer si un code PIN est défini.",
526
547
  "policies.global.pin.saved": "Code PIN enregistré.",
548
+ "policies.global.pin.saved_switch_unread": "Code PIN enregistré, mais le paramètre des décisions d'événements n'a pas pu être lu. Rechargez la page avant d'enregistrer les paramètres globaux.",
527
549
  "policies.global.pin.cleared": "Code PIN supprimé.",
528
550
  "policies.global.pin.cleared_and_disabled": "Code PIN supprimé, et la prise de décision via le bus d'événements désactivée en même temps.",
529
551
  "policies.global.pin.confirm_clear": "Supprimer le code PIN d'approbation ? La prise de décision via le bus d'événements sera désactivée ; la liste en attente dans cet onglet n'est pas affectée.",
@@ -233,6 +233,7 @@
233
233
  "tools.notes.beta_disabled": "Beta. Imposta {setting} nella configurazione dell'applicazione (add-on) di sviluppo o nella variabile d'ambiente corrispondente (vedi docs/beta.md).",
234
234
  "tools.notes.env_pinned": "Fissato da {variable}. Togli la variabile d'ambiente per modificarlo qui.",
235
235
  "tools.notes.bps_locked": "Bloccato mentre la modalità rigorosa per le buone pratiche è attiva. Disattiva prima quell'impostazione per disabilitare questo strumento.",
236
+ "tools.notes.mandatory_disabled_ignored": "Richiesta di disattivazione ignorata: questo strumento è obbligatorio e rimane abilitato.",
236
237
  "tools.notes.read_only_off": "Disattivato. La modalità di sola lettura è attiva; gli strumenti di scrittura sono disabilitati.",
237
238
  "tools.notes.read_only_partial": "Modalità di sola lettura: le operazioni di scrittura di questo strumento sono bloccate; quelle di lettura restano disponibili.",
238
239
  "tools.llm_api.label": "API LLM",
@@ -252,6 +253,10 @@
252
253
  "tools.read_only.save_failed": "La modifica della modalità di sola lettura non è stata salvata. Il server ha ancora il valore precedente.",
253
254
  "backup.fields.enable_auto_backup.label": "Backup automatico delle modifiche",
254
255
  "backup.fields.enable_auto_backup.help": "Cattura uno snapshot prima di ogni chiamata a uno strumento di scrittura o distruttivo tra quelli coperti.",
256
+ "backup.fields.enable_snapshot_actions.label": "Consenti azioni sui backup completi di HA",
257
+ "backup.fields.enable_snapshot_actions.help": "Consente agli assistenti IA di gestire i backup completi di Home Assistant tramite ha_manage_backup e i servizi e comandi di backup equivalenti in ha_call_service. Disattivando questa opzione vengono bloccate tutte le azioni sui backup, inclusa la visualizzazione dell'elenco. L'eliminazione dei backup è disponibile solo tramite ha_manage_backup e richiede anche l'impostazione Consenti eliminazione backup. La modifica dei backup e le azioni umane in questa pagina rimangono disponibili.",
258
+ "backup.fields.backup_read_only.label": "Rendi la gestione dei backup di sola lettura",
259
+ "backup.fields.backup_read_only.help": "Consente agli assistenti IA di elencare, visualizzare ed eseguire il diff dei backup di modifica, nonché di elencare i backup completi di HA quando le azioni sui backup sono abilitate. Blocca la creazione, il ripristino (inclusi i ripristini di modifica) e l'eliminazione manuale dei backup, inclusi i servizi e comandi di backup equivalenti in ha_call_service. I backup automatici pre-modifica continuano. Le azioni umane in questa pagina rimangono disponibili.",
255
260
  "backup.fields.auto_backup_throttle_minutes.label": "Limite di frequenza (minuti)",
256
261
  "backup.fields.auto_backup_throttle_minutes.help": "Limite per singola entità. 0 = a ogni scrittura; N > 0 = al massimo un backup ogni N minuti. Intervallo 0–1440.",
257
262
  "backup.fields.auto_backup_retain_per_entity.label": "Snapshot conservati per entità",
@@ -367,6 +372,17 @@
367
372
  "policies.card.always_row": "(sempre — controlla ogni chiamata di questo strumento)",
368
373
  "policies.card.always_row_allow": "(sempre — approva ogni chiamata a questo strumento)",
369
374
  "policies.card.and_join": " E ",
375
+ "policies.card.or_join": "OPPURE",
376
+ "policies.card.add_and": "+ E",
377
+ "policies.card.add_and_title": "Aggiunge una sotto-condizione che deve anch'essa corrispondere. Questa condizione corrisponderà quindi a un minor numero di chiamate.",
378
+ "policies.card.add_and_title_allow": "Aggiunge una sotto-condizione che deve anch'essa corrispondere. Questa condizione approverà quindi un minor numero di chiamate.",
379
+ "policies.card.and_hint": "Deve corrispondere anche a: {condition}",
380
+ "policies.card.remove_condition": "Rimuovi condizione",
381
+ "policies.card.never_matches": "Nessun singolo valore di {path} soddisfa tutti i suoi predicati in questa condizione. Per un argomento elenco, usa \"contains\" per ogni valore che deve contenere.",
382
+ "policies.card.never_matches_allow": "Nessun singolo valore di {path} soddisfa tutti i suoi predicati in questa condizione. Per approvare un argomento elenco, usa \"is one of\" con ogni valore che i suoi elementi possono assumere.",
383
+ "policies.card.confirm_loosen": "Questa modifica può approvare chiamate a \"{tool}\" che prima richiedevano la tua approvazione. Vuoi salvarla?",
384
+ "policies.card.stale_not_saved": "La policy è stata ricaricata prima che questa modifica venisse salvata. Effettua nuovamente la modifica.",
385
+ "policies.card.save_pending": "Una modifica è ancora in fase di salvataggio o la policy si sta ricaricando. Riprova tra un momento.",
370
386
  "policies.card.remove_title": "Rimuovi dal criterio",
371
387
  "policies.card.conditions_intro": "Richiedi l'approvazione quando corrisponde UNA QUALSIASI condizione (nessuna condizione = approvazione sempre richiesta):",
372
388
  "policies.card.conditions_intro_allow": "Approva senza chiedere quando UNA QUALSIASI condizione corrisponde (nessuna condizione = approva sempre):",
@@ -402,6 +418,7 @@
402
418
  "policies.editor.validation.value_required": "il valore è obbligatorio per op={operator}",
403
419
  "policies.editor.validation.empty_list": "elenco vuoto per op={operator}",
404
420
  "policies.editor.validation.argument_required": "l'argomento è obbligatorio",
421
+ "policies.editor.validation.still_loading": "caricamento in corso, riprova tra un momento",
405
422
  "policies.pending.offline": "Contatto con il server perso ({message}). Nuovo tentativo in corso.",
406
423
  "policies.pending.disabled": "Le policy di sicurezza degli strumenti sono disattivate. Attivale e riavvia HA-MCP per abilitare il controllo.",
407
424
  "policies.pending.unavailable": "Approvazioni in tempo reale non disponibili. Controlla il log di HA-MCP.",
@@ -494,6 +511,10 @@
494
511
  "addon.enable_security_policy_tool.name": "Consenti agli agenti IA di modificare le policy di sicurezza degli strumenti",
495
512
  "addon.enable_security_policy_tool.description": "Registra lo strumento ha_manage_security_policy, che consente agli agenti IA connessi di leggere e riscrivere le policy di sicurezza degli strumenti — inclusa la rimozione dei gate di approvazione. Disattivato per impostazione predefinita. Indipendente dall'opzione Policy di Sicurezza degli Strumenti sopra: questo controlla chi può modificare le regole, non se vengono applicate. Lo strumento non può vedere o decidere le approvazioni in sospeso. Per mantenere un essere umano nel ciclo, proteggi lo strumento prima di abilitarlo: attiva \"protetto da sicurezza\" per Gestisci Policy di Sicurezza nella scheda Strumenti dell'interfaccia web. Richiede un riavvio per avere effetto.",
496
513
  "addon.enable_auto_backup.name": "Attiva il backup automatico delle modifiche",
514
+ "addon.enable_snapshot_actions.name": "Consenti azioni sui backup completi di HA",
515
+ "addon.enable_snapshot_actions.description": "Consente agli assistenti IA di gestire i backup completi di Home Assistant tramite ha_manage_backup(scope='snapshot') e i servizi e comandi di backup equivalenti in ha_call_service. Disattivando questa opzione vengono bloccate tutte le azioni sui backup, inclusa la visualizzazione dell'elenco, mentre i backup di modifica rimangono disponibili. L'eliminazione dei backup è disponibile solo tramite ha_manage_backup, richiede anche enable_snapshot_delete e le relative protezioni continuano ad applicarsi. Attivato per impostazione predefinita. Modifica questa opzione o usa la scheda Backups dell'interfaccia Impostazioni web; richiede il riavvio nell'applicazione.",
516
+ "addon.backup_read_only.name": "Rendi la gestione dei backup di sola lettura",
517
+ "addon.backup_read_only.description": "Limita ha_manage_backup all'elenco, visualizzazione e diff dei backup di modifica e all'elenco dei backup completi di HA quando le azioni sui backup sono abilitate. Blocca la creazione, il ripristino (inclusi i ripristini di modifica) e l'eliminazione manuale dei backup, inclusi i servizi e comandi di backup equivalenti in ha_call_service. I backup automatici pre-modifica continuano e le azioni umane nell'interfaccia Impostazioni web rimangono disponibili. Disattivato per impostazione predefinita; richiede il riavvio nell'applicazione.",
497
518
  "addon.enable_auto_backup.description": "Cattura uno snapshot per entità prima di ogni chiamata a strumenti MCP di scrittura/distruttivi (automazione, script, scena, helper, dashboard, risorsa dashboard, etichetta, categoria, gruppo, zona, area, calendario, todo, entità, dispositivo, integrazione e strumenti di rimozione/eliminazione correlati). Il limite di frequenza del backup automatico definisce la frequenza con cui ciò avviene: 0 (predefinito) cattura ad ogni chiamata di questo tipo, N>0 al massimo uno snapshot ogni N minuti per entità. Gli snapshot vengono salvati come file YAML sotto /data/ha_mcp_backups/ (sovrascrivi tramite HAMCP_BACKUP_DIR) e elencati, ripristinati o eliminati tramite la scheda Backups nell'interfaccia utente delle impostazioni web o tramite ha_manage_backup(scope='edits', ...). Per questi domini la cattura è al meglio delle possibilità — un fallimento registra un WARNING e la scrittura procede. Gli strumenti per file e YAML grezzo sono l'eccezione: ha_write_file, ha_delete_file e ha_config_set_yaml trattano lo snapshot come una precondizione, quindi una scrittura tramite essi viene rifiutata mentre questo è disattivato, e una cattura fallita la blocca. Attivato per impostazione predefinita; deselezionando si rinuncia alle catture al meglio delle possibilità e si disattivano con esse gli strumenti per file e YAML grezzo. Richiede un riavvio per avere effetto.",
498
519
  "addon.auto_backup_throttle_minutes.name": "Limitazione del backup automatico (minuti)",
499
520
  "addon.auto_backup_throttle_minutes.description": "Finestra di limitazione per entità. 0 (impostazione predefinita) cattura uno snapshot a ogni scrittura coperta. N>0 cattura al massimo uno snapshot ogni N minuti per entità. Intervallo 0–1440.",
@@ -524,6 +545,7 @@
524
545
  "policies.global.pin.not_set": "Nessun PIN impostato. Impostane uno per consentire le decisioni tramite il bus degli eventi.",
525
546
  "policies.global.pin.unknown": "Impossibile leggere se è impostato un PIN.",
526
547
  "policies.global.pin.saved": "PIN salvato.",
548
+ "policies.global.pin.saved_switch_unread": "PIN salvato, ma non è stato possibile leggere l'impostazione delle decisioni sugli eventi. Ricarica la pagina prima di salvare le impostazioni globali.",
527
549
  "policies.global.pin.cleared": "PIN rimosso.",
528
550
  "policies.global.pin.cleared_and_disabled": "PIN rimosso e decisioni tramite il bus degli eventi disattivate insieme ad esso.",
529
551
  "policies.global.pin.confirm_clear": "Rimuovere il PIN di approvazione? Le decisioni tramite il bus degli eventi verranno disattivate; l'elenco in sospeso in questa scheda non subisce variazioni.",