ha-mcp-dev 8.2.0.dev2360__tar.gz → 8.2.0.dev2364__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 (278) hide show
  1. {ha_mcp_dev-8.2.0.dev2360/src/ha_mcp_dev.egg-info → ha_mcp_dev-8.2.0.dev2364}/PKG-INFO +2 -2
  2. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/README.md +1 -1
  3. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/pyproject.toml +1 -1
  4. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/resources/skills-vendor/.claude-plugin/marketplace.json +1 -1
  5. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/resources/skills-vendor/.claude-plugin/plugin.json +1 -1
  6. ha_mcp_dev-8.2.0.dev2364/src/ha_mcp/resources/skills-vendor/AGENTS.md +57 -0
  7. ha_mcp_dev-8.2.0.dev2364/src/ha_mcp/resources/skills-vendor/CLAUDE.md +57 -0
  8. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/SKILL.md +1 -1
  9. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/automation-patterns.md +0 -30
  10. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/settings_ui/locales/cs.json +32 -32
  11. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/settings_ui/locales/de.json +35 -35
  12. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/settings_ui/locales/eo.json +35 -35
  13. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/settings_ui/locales/es.json +35 -35
  14. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/settings_ui/locales/fr.json +35 -35
  15. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/settings_ui/locales/it.json +34 -34
  16. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/settings_ui/locales/nl.json +35 -35
  17. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/settings_ui/locales/pl.json +35 -35
  18. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/settings_ui/locales/ru.json +35 -35
  19. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/settings_ui/locales/sv.json +35 -35
  20. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/settings_ui/locales/zh-Hans.json +35 -35
  21. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364/src/ha_mcp_dev.egg-info}/PKG-INFO +2 -2
  22. ha_mcp_dev-8.2.0.dev2360/src/ha_mcp/resources/skills-vendor/AGENTS.md +0 -40
  23. ha_mcp_dev-8.2.0.dev2360/src/ha_mcp/resources/skills-vendor/CLAUDE.md +0 -40
  24. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/LICENSE +0 -0
  25. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/MANIFEST.in +0 -0
  26. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/setup.cfg +0 -0
  27. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/__init__.py +0 -0
  28. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/__main__.py +0 -0
  29. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/_pypi_marker +0 -0
  30. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/_rich_compat.py +0 -0
  31. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/_vendor/__init__.py +0 -0
  32. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/_vendor/requirements.txt +0 -0
  33. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/_vendor/websockets/LICENSE +0 -0
  34. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/_vendor/websockets/MANIFEST.sha256 +0 -0
  35. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/_vendor/websockets/VENDORED +0 -0
  36. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/_vendor/websockets/__init__.py +0 -0
  37. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/_vendor/websockets/__main__.py +0 -0
  38. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/_vendor/websockets/asyncio/__init__.py +0 -0
  39. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/_vendor/websockets/asyncio/client.py +0 -0
  40. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/_vendor/websockets/asyncio/connection.py +0 -0
  41. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/_vendor/websockets/asyncio/messages.py +0 -0
  42. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/_vendor/websockets/asyncio/router.py +0 -0
  43. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/_vendor/websockets/asyncio/server.py +0 -0
  44. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/_vendor/websockets/auth.py +0 -0
  45. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/_vendor/websockets/cli.py +0 -0
  46. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/_vendor/websockets/client.py +0 -0
  47. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/_vendor/websockets/connection.py +0 -0
  48. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/_vendor/websockets/datastructures.py +0 -0
  49. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/_vendor/websockets/exceptions.py +0 -0
  50. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/_vendor/websockets/extensions/__init__.py +0 -0
  51. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/_vendor/websockets/extensions/base.py +0 -0
  52. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/_vendor/websockets/extensions/permessage_deflate.py +0 -0
  53. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/_vendor/websockets/frames.py +0 -0
  54. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/_vendor/websockets/headers.py +0 -0
  55. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/_vendor/websockets/http11.py +0 -0
  56. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/_vendor/websockets/imports.py +0 -0
  57. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/_vendor/websockets/legacy/__init__.py +0 -0
  58. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/_vendor/websockets/legacy/auth.py +0 -0
  59. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/_vendor/websockets/legacy/client.py +0 -0
  60. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/_vendor/websockets/legacy/exceptions.py +0 -0
  61. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/_vendor/websockets/legacy/framing.py +0 -0
  62. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/_vendor/websockets/legacy/handshake.py +0 -0
  63. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/_vendor/websockets/legacy/http.py +0 -0
  64. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/_vendor/websockets/legacy/protocol.py +0 -0
  65. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/_vendor/websockets/legacy/server.py +0 -0
  66. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/_vendor/websockets/protocol.py +0 -0
  67. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/_vendor/websockets/proxy.py +0 -0
  68. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/_vendor/websockets/py.typed +0 -0
  69. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/_vendor/websockets/server.py +0 -0
  70. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/_vendor/websockets/streams.py +0 -0
  71. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/_vendor/websockets/sync/__init__.py +0 -0
  72. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/_vendor/websockets/sync/client.py +0 -0
  73. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/_vendor/websockets/sync/connection.py +0 -0
  74. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/_vendor/websockets/sync/messages.py +0 -0
  75. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/_vendor/websockets/sync/router.py +0 -0
  76. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/_vendor/websockets/sync/server.py +0 -0
  77. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/_vendor/websockets/sync/utils.py +0 -0
  78. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/_vendor/websockets/trio/__init__.py +0 -0
  79. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/_vendor/websockets/trio/client.py +0 -0
  80. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/_vendor/websockets/trio/connection.py +0 -0
  81. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/_vendor/websockets/trio/messages.py +0 -0
  82. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/_vendor/websockets/trio/router.py +0 -0
  83. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/_vendor/websockets/trio/server.py +0 -0
  84. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/_vendor/websockets/trio/utils.py +0 -0
  85. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/_vendor/websockets/typing.py +0 -0
  86. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/_vendor/websockets/uri.py +0 -0
  87. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/_vendor/websockets/utils.py +0 -0
  88. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/_vendor/websockets/version.py +0 -0
  89. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/_version.py +0 -0
  90. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/auth/__init__.py +0 -0
  91. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/auth/consent_form.py +0 -0
  92. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/auth/oidc_compat.py +0 -0
  93. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/auth/provider.py +0 -0
  94. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/backup_manager.py +0 -0
  95. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/browser_landing.py +0 -0
  96. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/client/__init__.py +0 -0
  97. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/client/rest_client.py +0 -0
  98. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/client/supervisor_client.py +0 -0
  99. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/client/websocket_client.py +0 -0
  100. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/client/websocket_listener.py +0 -0
  101. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/config.py +0 -0
  102. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/dashboard_screenshot/__init__.py +0 -0
  103. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/dashboard_screenshot/capture.py +0 -0
  104. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/dashboard_screenshot/content.py +0 -0
  105. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/dashboard_screenshot/paths.py +0 -0
  106. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/dashboard_screenshot/provision.py +0 -0
  107. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/dashboard_screenshot/theme_guard.py +0 -0
  108. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/errors.py +0 -0
  109. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/hacs_auto_refresh.py +0 -0
  110. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/llm_exposure.py +0 -0
  111. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/policy/__init__.py +0 -0
  112. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/policy/approval_queue.py +0 -0
  113. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/policy/editing.py +0 -0
  114. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/policy/evaluator.py +0 -0
  115. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/policy/handlers.py +0 -0
  116. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/policy/middleware.py +0 -0
  117. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/policy/model.py +0 -0
  118. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/policy/persistence.py +0 -0
  119. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/policy/value_sources.py +0 -0
  120. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/py.typed +0 -0
  121. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/read_only.py +0 -0
  122. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/redaction.py +0 -0
  123. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/renamed_tools.py +0 -0
  124. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/resources/skills-vendor/.claude/settings.json +0 -0
  125. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/resources/skills-vendor/.github/ISSUE_TEMPLATE/skill-rca.md +0 -0
  126. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/resources/skills-vendor/.github/pull_request_template.md +0 -0
  127. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/resources/skills-vendor/CONTRIBUTING.md +0 -0
  128. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/resources/skills-vendor/LICENSE +0 -0
  129. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/resources/skills-vendor/README.md +0 -0
  130. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/evals/evals.json +0 -0
  131. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/appdaemon.md +0 -0
  132. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/blueprint-guide.md +0 -0
  133. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/dashboard-cards.md +0 -0
  134. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/dashboard-guide.md +0 -0
  135. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/device-control.md +0 -0
  136. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/domain-docs.md +0 -0
  137. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/examples.yaml +0 -0
  138. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/helper-selection.md +0 -0
  139. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/safe-refactoring.md +0 -0
  140. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/scenes.md +0 -0
  141. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/template-guidelines.md +0 -0
  142. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/yaml-only-integrations.md +0 -0
  143. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/server.py +0 -0
  144. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/settings_ui/__init__.py +0 -0
  145. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/settings_ui/_handlers_advanced.py +0 -0
  146. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/settings_ui/_handlers_backups.py +0 -0
  147. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/settings_ui/_handlers_fs.py +0 -0
  148. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/settings_ui/_handlers_server.py +0 -0
  149. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/settings_ui/_handlers_theme.py +0 -0
  150. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/settings_ui/_handlers_tools.py +0 -0
  151. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/settings_ui/_i18n.py +0 -0
  152. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/settings_ui/_persistence.py +0 -0
  153. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/settings_ui/_supervisor.py +0 -0
  154. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/settings_ui/_theme.py +0 -0
  155. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/settings_ui/_tools_meta.py +0 -0
  156. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/settings_ui/locales/README.md +0 -0
  157. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/settings_ui/locales/en.json +0 -0
  158. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/settings_ui/settings.css +0 -0
  159. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/settings_ui/settings.html +0 -0
  160. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/settings_ui/settings.js +0 -0
  161. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/smoke_test.py +0 -0
  162. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/stdio_settings_sidecar.py +0 -0
  163. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/strict_bps.py +0 -0
  164. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/tools/__init__.py +0 -0
  165. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/tools/auto_backup.py +0 -0
  166. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/tools/backup.py +0 -0
  167. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/tools/best_practice_checker.py +0 -0
  168. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/tools/best_practice_result.py +0 -0
  169. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/tools/best_practice_variables.py +0 -0
  170. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/tools/component_api.py +0 -0
  171. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/tools/component_config_entries.py +0 -0
  172. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/tools/component_config_reads.py +0 -0
  173. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/tools/component_devices.py +0 -0
  174. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/tools/component_registries.py +0 -0
  175. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/tools/component_registry_lookup.py +0 -0
  176. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/tools/config_entry_flow.py +0 -0
  177. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/tools/config_entry_flow_form.py +0 -0
  178. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/tools/config_entry_flow_menu.py +0 -0
  179. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/tools/config_entry_flow_walker.py +0 -0
  180. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/tools/config_entry_identity.py +0 -0
  181. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/tools/config_entry_reconfigure.py +0 -0
  182. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/tools/config_entry_reload_watch.py +0 -0
  183. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/tools/device_control.py +0 -0
  184. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/tools/error_log_parsing.py +0 -0
  185. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/tools/hacs_registration.py +0 -0
  186. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/tools/helpers.py +0 -0
  187. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/tools/integration_reconfigure.py +0 -0
  188. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/tools/radio/__init__.py +0 -0
  189. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/tools/radio/base.py +0 -0
  190. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/tools/radio/matter.py +0 -0
  191. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/tools/radio/thread.py +0 -0
  192. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/tools/radio/zigbee.py +0 -0
  193. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/tools/radio/zwave.py +0 -0
  194. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/tools/reference_validator.py +0 -0
  195. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/tools/registry.py +0 -0
  196. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/tools/renamed_tool_middleware.py +0 -0
  197. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/tools/smart_search/__init__.py +0 -0
  198. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/tools/smart_search/_base.py +0 -0
  199. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/tools/smart_search/_config.py +0 -0
  200. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/tools/smart_search/_deep.py +0 -0
  201. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/tools/smart_search/_entities.py +0 -0
  202. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/tools/smart_search/_fetch.py +0 -0
  203. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/tools/smart_search/_overview.py +0 -0
  204. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/tools/smart_search/_scenes.py +0 -0
  205. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/tools/smart_search/_scoring.py +0 -0
  206. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/tools/tool_search_hint_middleware.py +0 -0
  207. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/tools/tools_addons.py +0 -0
  208. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/tools/tools_areas.py +0 -0
  209. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/tools/tools_assist_pipeline.py +0 -0
  210. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/tools/tools_blueprints.py +0 -0
  211. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/tools/tools_bug_report.py +0 -0
  212. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/tools/tools_calendar.py +0 -0
  213. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/tools/tools_camera.py +0 -0
  214. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/tools/tools_categories.py +0 -0
  215. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/tools/tools_code.py +0 -0
  216. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/tools/tools_config_automations.py +0 -0
  217. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/tools/tools_config_dashboards.py +0 -0
  218. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/tools/tools_config_helpers.py +0 -0
  219. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/tools/tools_config_scenes.py +0 -0
  220. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/tools/tools_config_scripts.py +0 -0
  221. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/tools/tools_dashboard_screenshot.py +0 -0
  222. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/tools/tools_dev.py +0 -0
  223. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/tools/tools_energy.py +0 -0
  224. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/tools/tools_entities.py +0 -0
  225. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/tools/tools_filesystem.py +0 -0
  226. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/tools/tools_groups.py +0 -0
  227. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/tools/tools_hacs.py +0 -0
  228. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/tools/tools_history.py +0 -0
  229. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/tools/tools_integrations.py +0 -0
  230. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/tools/tools_labels.py +0 -0
  231. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/tools/tools_radio.py +0 -0
  232. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/tools/tools_registry.py +0 -0
  233. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/tools/tools_resources.py +0 -0
  234. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/tools/tools_search.py +0 -0
  235. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/tools/tools_security_policy.py +0 -0
  236. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/tools/tools_service.py +0 -0
  237. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/tools/tools_services.py +0 -0
  238. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/tools/tools_system.py +0 -0
  239. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/tools/tools_themes.py +0 -0
  240. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/tools/tools_todo.py +0 -0
  241. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/tools/tools_traces.py +0 -0
  242. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/tools/tools_updates.py +0 -0
  243. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/tools/tools_utility.py +0 -0
  244. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/tools/tools_voice_assistant.py +0 -0
  245. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/tools/tools_yaml_config.py +0 -0
  246. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/tools/tools_yaml_read.py +0 -0
  247. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/tools/tools_zones.py +0 -0
  248. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/tools/util_helpers.py +0 -0
  249. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/tools/validation_middleware.py +0 -0
  250. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/transforms/__init__.py +0 -0
  251. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/transforms/categorized_search.py +0 -0
  252. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/transforms/lite_docstrings.py +0 -0
  253. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/transport_security.py +0 -0
  254. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/update_check.py +0 -0
  255. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/utils/__init__.py +0 -0
  256. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/utils/config_hash.py +0 -0
  257. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/utils/config_write_lock.py +0 -0
  258. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/utils/data_paths.py +0 -0
  259. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/utils/domain_handlers.py +0 -0
  260. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/utils/fuzzy_search.py +0 -0
  261. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/utils/kill_signal_diagnostics.py +0 -0
  262. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/utils/operation_manager.py +0 -0
  263. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/utils/python_sandbox.py +0 -0
  264. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/utils/skill_loader.py +0 -0
  265. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/utils/usage_logger.py +0 -0
  266. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/visibility/__init__.py +0 -0
  267. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/visibility/enforcement.py +0 -0
  268. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/visibility/model.py +0 -0
  269. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/visibility/persistence.py +0 -0
  270. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp/visibility/resolver.py +0 -0
  271. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp_dev.egg-info/SOURCES.txt +0 -0
  272. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp_dev.egg-info/dependency_links.txt +0 -0
  273. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp_dev.egg-info/entry_points.txt +0 -0
  274. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp_dev.egg-info/requires.txt +0 -0
  275. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/src/ha_mcp_dev.egg-info/top_level.txt +0 -0
  276. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/tests/__init__.py +0 -0
  277. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/tests/test_constants.py +0 -0
  278. {ha_mcp_dev-8.2.0.dev2360 → ha_mcp_dev-8.2.0.dev2364}/tests/test_env_manager.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ha-mcp-dev
3
- Version: 8.2.0.dev2360
3
+ Version: 8.2.0.dev2364
4
4
  Summary: Home Assistant MCP Server - Complete control of Home Assistant through MCP
5
5
  Author-email: Julien <github@qc-h.net>
6
6
  License: MIT
@@ -396,7 +396,7 @@ Leave it off in clients with deferred tool loading (claude.ai, Claude Desktop, C
396
396
 
397
397
  > 🔄 **Refresh your client's tool list after changing this (or any) setting.** Toggling `ENABLE_TOOL_SEARCH` (or changing pinned/disabled tools, Read Only Mode, etc.) changes the tools the server exposes, but your AI client keeps serving its **cached** tool list until it re-fetches. Restarting the app or Home Assistant does **not** refresh the client — reconnect or refresh the MCP server in your client (e.g. re-add/refresh the connector in ChatGPT, or close and reopen Claude Desktop). If you skip this, newly enabled tools won't appear in the client at all, and tools the server no longer exposes still show as available but return `Unknown tool` when called. ChatGPT sometimes keeps serving the stale list even after the connector is removed and re-added under the same name — if tools are still missing after re-adding, delete the connector and create a new one with a **different name**.
398
398
 
399
- For the HA app, the same option is documented in [`homeassistant-addon/DOCS.md`](homeassistant-addon/DOCS.md#enable_tool_search) along with the in-add-on settings UI for fine-grained tool enable/disable/pin.
399
+ For the HA app, the same option is documented in [`homeassistant-addon/DOCS.md`](homeassistant-addon/DOCS.md#enable_tool_search) along with the in-app settings UI for fine-grained tool enable/disable/pin.
400
400
 
401
401
  ---
402
402
 
@@ -364,7 +364,7 @@ Leave it off in clients with deferred tool loading (claude.ai, Claude Desktop, C
364
364
 
365
365
  > 🔄 **Refresh your client's tool list after changing this (or any) setting.** Toggling `ENABLE_TOOL_SEARCH` (or changing pinned/disabled tools, Read Only Mode, etc.) changes the tools the server exposes, but your AI client keeps serving its **cached** tool list until it re-fetches. Restarting the app or Home Assistant does **not** refresh the client — reconnect or refresh the MCP server in your client (e.g. re-add/refresh the connector in ChatGPT, or close and reopen Claude Desktop). If you skip this, newly enabled tools won't appear in the client at all, and tools the server no longer exposes still show as available but return `Unknown tool` when called. ChatGPT sometimes keeps serving the stale list even after the connector is removed and re-added under the same name — if tools are still missing after re-adding, delete the connector and create a new one with a **different name**.
366
366
 
367
- For the HA app, the same option is documented in [`homeassistant-addon/DOCS.md`](homeassistant-addon/DOCS.md#enable_tool_search) along with the in-add-on settings UI for fine-grained tool enable/disable/pin.
367
+ For the HA app, the same option is documented in [`homeassistant-addon/DOCS.md`](homeassistant-addon/DOCS.md#enable_tool_search) along with the in-app settings UI for fine-grained tool enable/disable/pin.
368
368
 
369
369
  ---
370
370
 
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "ha-mcp-dev"
7
- version = "8.2.0.dev2360"
7
+ version = "8.2.0.dev2364"
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
@@ -6,7 +6,7 @@
6
6
  },
7
7
  "metadata": {
8
8
  "description": "Agent skills for Home Assistant: best practices for automations, helpers, templates, device control, and dashboards",
9
- "version": "0.16.0"
9
+ "version": "0.15.0"
10
10
  },
11
11
  "plugins": [
12
12
  {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "home-assistant-skills",
3
3
  "description": "Agent skills for Home Assistant: best practices for automations, helpers, templates, device control, and dashboards.",
4
- "version": "0.16.0",
4
+ "version": "0.15.0",
5
5
  "repository": "https://github.com/homeassistant-ai/skills",
6
6
  "license": "MIT"
7
7
  }
@@ -0,0 +1,57 @@
1
+ # CLAUDE.md
2
+
3
+ This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
4
+
5
+ ## Project Overview
6
+
7
+ This is a community-contributed collection of **Agent Skills** for Home Assistant, following the open [Agent Skills standard](https://agentskills.io/specification). Skills teach AI agents domain expertise for configuring and controlling Home Assistant. The repository doubles as a Claude Code plugin (see `.claude-plugin/plugin.json`).
8
+
9
+ ## Repository Structure
10
+
11
+ - `skills/<skill-name>/SKILL.md` — each skill lives in its own folder with a `SKILL.md` file
12
+ - `CONTRIBUTING.md` — skill authoring guidelines and submission workflow
13
+ - `.claude-plugin/plugin.json` — Claude Code plugin metadata
14
+ - `.claude-plugin/marketplace.json` — marketplace metadata for plugin discovery
15
+ - `AGENTS.md` — symlink to `CLAUDE.md` (for agents that use `AGENTS.md` convention)
16
+ - `.github/ISSUE_TEMPLATE/skill-rca.md` — "Report Bad Skill Advice" issue template
17
+
18
+ ## Skill Format
19
+
20
+ Every skill is a `SKILL.md` file with YAML frontmatter:
21
+
22
+ ```yaml
23
+ ---
24
+ name: skill-name-here
25
+ description: >
26
+ When to activate this skill and what symptoms it addresses.
27
+ ---
28
+ ```
29
+
30
+ Constraints from CONTRIBUTING.md:
31
+ - Max **500 lines** per SKILL.md
32
+ - `metadata.version` must be `0` on new skills (do not edit manually)
33
+ - `name` must match `[a-z0-9-]+` and be ≤64 characters
34
+ - `description` frontmatter must be **≤1024 characters** (CI enforces this via `skills-ref validate`)
35
+ - Reference files must be **one level deep** only (e.g. `references/example.yaml`)
36
+ - Use **forward slashes** in all file paths
37
+ - Optional subdirectories: `references/` (additional docs), `scripts/` (utility scripts), `assets/` (static resources)
38
+
39
+ ## Skill Authoring Principles
40
+
41
+ - **Context window conservation** — only include domain-specific knowledge that agents lack; omit general programming advice
42
+ - **Conciseness** — provide patterns and quick-reference tables, not tutorials
43
+ - **Consistent terminology** — one term per concept throughout a skill
44
+ - **Symptom-based triggering** — the `description` frontmatter should describe observable agent behaviors that signal the skill is needed
45
+ - **No tool names** — reference HA REST APIs and concepts, never specific MCP tool names (e.g. `ha_rename_entity`); tool names vary by agent setup
46
+
47
+ ## Validation
48
+
49
+ CI runs two workflows on PRs and pushes to `main`:
50
+ - **validate-skills** — runs `skills-ref validate` on every skill when `skills/**` changes
51
+ - **validate-plugin** — validates `.claude-plugin/` metadata
52
+
53
+ To validate locally:
54
+
55
+ ```bash
56
+ uvx skills-ref validate skills/<skill-name>
57
+ ```
@@ -0,0 +1,57 @@
1
+ # CLAUDE.md
2
+
3
+ This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
4
+
5
+ ## Project Overview
6
+
7
+ This is a community-contributed collection of **Agent Skills** for Home Assistant, following the open [Agent Skills standard](https://agentskills.io/specification). Skills teach AI agents domain expertise for configuring and controlling Home Assistant. The repository doubles as a Claude Code plugin (see `.claude-plugin/plugin.json`).
8
+
9
+ ## Repository Structure
10
+
11
+ - `skills/<skill-name>/SKILL.md` — each skill lives in its own folder with a `SKILL.md` file
12
+ - `CONTRIBUTING.md` — skill authoring guidelines and submission workflow
13
+ - `.claude-plugin/plugin.json` — Claude Code plugin metadata
14
+ - `.claude-plugin/marketplace.json` — marketplace metadata for plugin discovery
15
+ - `AGENTS.md` — symlink to `CLAUDE.md` (for agents that use `AGENTS.md` convention)
16
+ - `.github/ISSUE_TEMPLATE/skill-rca.md` — "Report Bad Skill Advice" issue template
17
+
18
+ ## Skill Format
19
+
20
+ Every skill is a `SKILL.md` file with YAML frontmatter:
21
+
22
+ ```yaml
23
+ ---
24
+ name: skill-name-here
25
+ description: >
26
+ When to activate this skill and what symptoms it addresses.
27
+ ---
28
+ ```
29
+
30
+ Constraints from CONTRIBUTING.md:
31
+ - Max **500 lines** per SKILL.md
32
+ - `metadata.version` must be `0` on new skills (do not edit manually)
33
+ - `name` must match `[a-z0-9-]+` and be ≤64 characters
34
+ - `description` frontmatter must be **≤1024 characters** (CI enforces this via `skills-ref validate`)
35
+ - Reference files must be **one level deep** only (e.g. `references/example.yaml`)
36
+ - Use **forward slashes** in all file paths
37
+ - Optional subdirectories: `references/` (additional docs), `scripts/` (utility scripts), `assets/` (static resources)
38
+
39
+ ## Skill Authoring Principles
40
+
41
+ - **Context window conservation** — only include domain-specific knowledge that agents lack; omit general programming advice
42
+ - **Conciseness** — provide patterns and quick-reference tables, not tutorials
43
+ - **Consistent terminology** — one term per concept throughout a skill
44
+ - **Symptom-based triggering** — the `description` frontmatter should describe observable agent behaviors that signal the skill is needed
45
+ - **No tool names** — reference HA REST APIs and concepts, never specific MCP tool names (e.g. `ha_rename_entity`); tool names vary by agent setup
46
+
47
+ ## Validation
48
+
49
+ CI runs two workflows on PRs and pushes to `main`:
50
+ - **validate-skills** — runs `skills-ref validate` on every skill when `skills/**` changes
51
+ - **validate-plugin** — validates `.claude-plugin/` metadata
52
+
53
+ To validate locally:
54
+
55
+ ```bash
56
+ uvx skills-ref validate skills/<skill-name>
57
+ ```
@@ -24,7 +24,7 @@ description: >
24
24
  - Agent tells user to edit configuration.yaml for UI integrations
25
25
  - Agent hardcodes entities in a Blueprint or uses free-text input over a selector
26
26
  metadata:
27
- version: 16
27
+ version: 15
28
28
  ---
29
29
 
30
30
  # Home Assistant Best Practices
@@ -927,36 +927,6 @@ variables:
927
927
 
928
928
  `trigger_variables:` is a separate top-level key evaluated **before** triggers fire — it supports **limited templates only** (no `states()`/`state_attr()`), mainly for passing a blueprint `!input` into trigger options. Don't put state-based templates there.
929
929
 
930
- ### Keys render in order, one at a time
931
-
932
- A `variables:` block renders one key at a time, each rendered result feeding the context for the next. A key that reads a name declared **further down the same block** reads it while it is still undefined.
933
-
934
- ```yaml
935
- # AVOID — `total` is still undefined when `msg` renders
936
- variables:
937
- msg: "Total: {{ total }}"
938
- total: "{{ states('sensor.a') | float(0) + states('sensor.b') | float(0) }}"
939
-
940
- # CORRECT — declare before use
941
- variables:
942
- total: "{{ states('sensor.a') | float(0) + states('sensor.b') | float(0) }}"
943
- msg: "Total: {{ total }}"
944
- ```
945
-
946
- What the forward read costs depends on how the template uses the name (behavior as of 2026.7):
947
-
948
- | Use of the undefined name | Result |
949
- |---|---|
950
- | `x.attr`, `x['k']`, arithmetic, `<`/`>`/`<=`/`>=`, `\| int`, `\| float` | Raises `UndefinedError`, logs ERROR — **aborts the run** |
951
- | `{{ x }}`, `{% if x %}`, `{% for i in x %}`, `'p' ~ x` | Empty and falsy, logs WARNING — runs on into the else branch |
952
- | `x \| length`, `x == y`, `x != y` | `0` / `False` / `True` — **no log and no trace entry** |
953
-
954
- For the aborting row, [`continue_on_error:`](#continue-on-error) is no escape — it is an action option, a top-level block is not an action, and on a mid-sequence step it cannot suppress a render error. A default like `| int(0)` does not save it either: the default covers an unconvertible value, not an undefined name. In the silent row, watch `!=`: `{% if later != 'x' %}` on a name that is not defined yet takes the **then** branch, leaving nothing behind to explain why.
955
-
956
- Not a problem when the name also exists in an enclosing scope — the reference then resolves outward to that value. The two placements diverge on that collision, though: a top-level `variables:` block **skips** a key already present in the incoming scope, so the incoming value stands and the block's own definition never takes effect for that run, while a mid-sequence `- variables:` step renders and **overwrites** it. Staging a computation across consecutive `variables:` steps is therefore mid-sequence only.
957
-
958
- When an automation declares both `trigger_variables:` and `variables:`, the two render as one sequential mapping with `trigger_variables:` first, so a `variables:` key may read a `trigger_variables:` key but not the reverse. That holds for names declared in only one of the two: a name in both merges into a single entry that keeps the `trigger_variables:` position but takes the `variables:` template, so it renders early — before any `trigger_variables:` key declared after it. The separate attach-time render noted above happens before any `variables:` key exists.
959
-
960
930
  ---
961
931
 
962
932
  ## Capturing Action Responses
@@ -28,9 +28,9 @@
28
28
  "tabs.policies": "Zásady zabezpečení nástrojů",
29
29
  "tabs.visibility": "Viditelnost entit",
30
30
  "tabs.accessibility": "Přístupnost",
31
- "notice.restart_required": "⚠ Změny uloženy. Restartujte HA-MCP, aby se projevily. Při dalším spuštění HA-MCP zcela odstraní zakázané nástroje ze seznamu nástrojů MCP. Poté se znovu připojte nebo obnovte server MCP ve vašem AI klientovi (např. obnovte seznam nástrojů na claude.ai, znovu přidejte/obnovte konektor v ChatGPT, nebo zavřete a znovu otevřete Claude Desktop), aby se seznam nástrojů znovu načetl. Restartování aplikace (doplňku) nebo Home Assistant NEobnoví seznam nástrojů uložený ve vašem klientovi. ChatGPT někdy nadále poskytuje svůj uložený seznam nástrojů i po odebrání a opětovném přidání konektoru – pokud nástroje stále chybí, odstraňte konektor a vytvořte nový pod jiným názvem.",
32
- "notice.shared_settings": "Funkce pro celý server (vyhledávání nástrojů, úprava konfigurace YAML, nástroje souborového systému atd.) se zobrazují jak na kartě <strong>Nastavení serveru</strong>, tak na stránce konfigurace aplikace (doplňku); v obou případech se jedná o stejná nastavení. Obě rozhraní zůstanou synchronizovaná po restartu aplikace (doplňku). Změny vyžadují restart HA-MCP.",
33
- "notice.env_pins": "Nástroje uvedené v proměnných prostředí <code>DISABLED_TOOLS</code> nebo <code>PINNED_TOOLS</code> jsou uzamčeny pouze pro čtení; zrušte nastavení proměnné prostředí, abyste je zde mohli upravit. Přepínače připnutí se projeví pouze tehdy, když je povoleno vyhledávání nástrojů (karta Nastavení serveru nebo stránka konfigurace aplikace (doplňku)).",
31
+ "notice.restart_required": "⚠ Změny uloženy. Aby se projevily, restartujte HA-MCP. Při příštím spuštění HA-MCP zcela odstraní zakázané nástroje ze seznamu nástrojů MCP. Poté znovu připojte nebo obnovte server MCP ve svém AI klientovi (např. obnovte seznam nástrojů na claude.ai, znovu přidejte/obnovte konektor v ChatGPT nebo zavřete a znovu otevřete Claude Desktop), aby se seznam nástrojů načetl znovu. Restartování aplikace (doplňku) nebo Home Assistant NEZAPOMENE obnovit mezipaměť seznamu nástrojů vašeho klienta. ChatGPT někdy nadále poskytuje seznam nástrojů z mezipaměti i po odebrání a opětovném přidání konektoru – pokud nástroje stále chybí, odstraňte konektor a vytvořte nový pod jiným názvem.",
32
+ "notice.shared_settings": "Funkce platné pro celý server (vyhledávání nástrojů, úpravy konfigurace YAML, nástroje souborového systému atd.) se objevují jak na kartě <strong>Server Settings</strong>, tak na stránce Konfigurace aplikace (doplňku); v obou případech jde o totožné nastavení. Po restartování aplikace (doplňku) zůstává jedno rozhraní synchronizované s druhým. Změny vyžadují restartování HA-MCP.",
33
+ "notice.env_pins": "Nástroje uvedené v proměnných prostředí <code>DISABLED_TOOLS</code> nebo <code>PINNED_TOOLS</code> jsou zamčené pouze pro čtení; chcete-li je upravit zde, zrušte nastavení proměnné prostředí. Přepínače připnutí se projeví pouze tehdy, když je povoleno vyhledávání nástrojů (karta Server Settings nebo stránka Konfigurace aplikace (doplňku)).",
34
34
  "actions.restart_addon": "Restartovat aplikaci (doplněk)",
35
35
  "actions.save": "Uložit",
36
36
  "actions.save_settings": "Uložit nastavení",
@@ -40,7 +40,7 @@
40
40
  "tools.read_only.help": "Vypne všechny nástroje pro zápis a zablokuje každému nástroji provádění zápisových nebo destruktivních volání. Nástroje pro smíšené čtení/zápis (zálohy, aplikace (doplňky), preference energie, hlasové pipeline a režim kódu, pokud je povolen) zůstanou dostupné s blokovanými operacemi zápisu.",
41
41
  "tools.read_only.unknown": "Nepodařilo se načíst nastavení serveru. Stav režimu pouze pro čtení je neznámý; toto zobrazení nemusí odrážet to, co server vynucuje.",
42
42
  "tools.search": "Hledat nástroje...",
43
- "server.auto_save_notice": "Nastavení na této kartě se ukládají automaticky. Změny se projeví až po restartu aplikace (doplňku) (aplikuje je na straně serveru) a opětovném připojení nebo obnovení serveru MCP ve vašem AI klientovi (znovu načte seznam nástrojů), např. obnovení seznamu nástrojů na claude.ai, opětovné přidání nebo obnovení konektoru v ChatGPT, nebo zavření a opětovné otevření Claude Desktop. ChatGPT někdy nadále poskytuje svůj uložený seznam nástrojů i po odebrání a opětovném přidání konektoru – pokud nástroje stále chybí, odstraňte konektor a vytvořte nový pod jiným názvem.",
43
+ "server.auto_save_notice": "Nastavení na této kartě se ukládá automaticky. Změny se projeví až po restartování HA-MCP (aplikuje je na straně serveru) a opětovném připojení nebo obnovení serveru MCP ve vašem AI klientovi (znovu načte seznam nástrojů), např. obnovením seznamu nástrojů na claude.ai, opětovným přidáním nebo obnovením konektoru v ChatGPT, případně zavřením a opětovným otevřením Claude Desktop. ChatGPT někdy nadále poskytuje seznam nástrojů z mezipaměti i po odebrání a opětovném přidání konektoru – pokud nástroje stále chybí, odstraňte konektor a vytvořte nový pod jiným názvem.",
44
44
  "server.sections.search": "Vyhledávání a shoda",
45
45
  "server.sections.operations": "Operace",
46
46
  "server.sections.tool_surface": "Rozhraní nástrojů",
@@ -61,10 +61,10 @@
61
61
  "policies.global.title": "Globální nastavení",
62
62
  "policies.global.unknown": "Nepodařilo se načíst nastavení serveru. Dva přepínače níže jsou zobrazeny jako neznámé a nelze je změnit, dokud se stránka úspěšně nenačte; toto zobrazení nemusí odrážet to, co server vynucuje.",
63
63
  "policies.global.enabled.label": "Povolit zásady zabezpečení nástrojů",
64
- "policies.global.enabled.help": "Hlavní přepínač. Zrcadlí přepínač v Nastavení serveru. Ve výchozím nastavení vypnuto. Zapněte a restartujte aplikaci (doplněk) pro aktivaci schvalovacího middleware. Pokud je vypnuto, pravidla níže přetrvávají, ale nejsou vynucována.",
64
+ "policies.global.enabled.help": "Hlavní vypínač. Zrcadlí přepínač v Server Settings. Ve výchozím nastavení vypnuto. Zapnutím a restartováním HA-MCP aktivujete middleware pro řízení přístupu. Když je vypnuto, níže uvedená pravidla zůstávají zachována, ale nevynucují se.",
65
65
  "policies.global.manage_tool.label": "Povolit AI agentům upravovat tyto zásady (ha_manage_security_policy)",
66
66
  "policies.global.manage_tool.help": "Registruje nástroj ha_manage_security_policy, který čte a nahrazuje dokument zásad, který tato karta upravuje. Ve výchozím nastavení vypnuto. Nezávisle na hlavním přepínači výše: toto řídí, kdo může pravidla upravovat, nikoli zda jsou vynucována. Nástroj nezpřístupňuje operace fronty čekajících schválení, ale akce nastavení řízená zásadami může stále vyžadovat schválení.",
67
- "policies.global.manage_tool.warning": "Povolení této možnosti umožňuje připojeným AI agentům přepisovat zásady zabezpečení na této kartě, včetně odstranění schvalovacích bran. Abyste udrželi člověka v procesu, zabezpečte nástroj PŘEDTÍM, než jej povolíte: na kartě Nástroje zapněte „security gated“ pro Manage Security Policy. Toto pravidlo lze vytvořit, když je nástroj stále vypnutý, a vynucuje se, jakmile je hlavní přepínač výše zapnutý a server byl restartován. Restartujte aplikaci (doplněk) po přepnutí kteréhokoli přepínače.",
67
+ "policies.global.manage_tool.warning": "Povolením této funkce umožníte připojeným AI agentům přepisovat bezpečnostní pravidla na této kartě, včetně odstranění bran schvalování. Chcete-li zachovat dohled člověka, zabezpečte nástroj PŘED jeho zapnutím: na kartě Tools zapněte „security gated“ pro Manage Security Policy. Toto pravidlo lze vytvořit, když je nástroj stále vypnutý, a začne se vynucovat, jakmile bude výše uvedený hlavní vypínač zapnutý a server restartovaný. Po přepnutí libovolného přepínače restartujte aplikaci (doplněk).",
68
68
  "policies.global.wait.label": "Čekat sekund (5-600)",
69
69
  "policies.global.wait.help": "Jak dlouho middleware čeká na schválení před vypršením časového limitu.",
70
70
  "policies.global.ttl.label": "TTL schválení minut (1-60)",
@@ -127,9 +127,9 @@
127
127
  "features.enable_tool_security_policies.label": "Povolit zásady zabezpečení nástrojů (pokročilé)",
128
128
  "features.enable_tool_security_policies.help": "Podmiňuje vysoce rizikové volání nástrojů (ovládání zámků/alarmů, zápisy automatizací atd.) schválením uživatelem. Když je volán chráněný nástroj, agent řekne uživateli, aby otevřel záložku Zásady zabezpečení nástrojů ve webovém rozhraní a klikl na Schválit, než volání pokračuje. Pravidla pro jednotlivé nástroje s volitelnými podmínkami argumentů se konfigurují na záložce Zásady zabezpečení nástrojů. Ve výchozím nastavení vypnuto. Vyžaduje restart, aby se projevilo.",
129
129
  "features.read_only_mode.label": "Režim pouze pro čtení",
130
- "features.read_only_mode.help": "Vypne všechny nástroje pro zápis a odebere nástrojům možnost provádět jakékoli zápisové nebo destruktivní volání. Smíšené nástroje pro čtení/zápis (zálohy, doplňky, preference energie, hlasové pipeline a režim kódu, pokud je povolen) zůstanou dostupné s blokovanými operacemi zápisu. Stejný přepínač jako na záložce Nástroje ve webovém rozhraní. Ve výchozím nastavení vypnuto. Vyžaduje restart, aby se projevilo.",
130
+ "features.read_only_mode.help": "Vypne všechny nástroje pro zápis a odstraní schopnost nástrojů provádět jakékoli zápisy nebo destruktivní volání. Smíšené nástroje pro čtení/zápis – zálohy, aplikace (doplňky), preference energie, hlasové pipelines a režim kódu, pokud je povolen – zůstávají k dispozici se zablokovanými operacemi zápisu. Stejný přepínač jako na kartě Tools ve webovém rozhraní. Ve výchozím nastavení vypnuto. K projevům změn je vyžadován restart.",
131
131
  "features.redact_secrets.label": "Redigovat tajemství",
132
- "features.redact_secrets.help": "Rediguje tajemství z odpovědí nástrojů, než se dostanou k AI asistentovi. Možnosti doplňků a integrační pole označené jako hesla jsou nahrazeny značkou nastaveno/prázdné (takže otázka „je tento pověřovací údaj nakonfigurován?“ zůstane zodpověditelná) a další odpovědi nástrojů jsou očištěny od tajných hodnot, které server již viděl (hodnoty kratší než 6 znaků jsou přeskočeny, protože nahrazení malých fragmentů by poškodilo nesouvisející výstup). Pole, která nejsou schématem označena jako hesla, nelze detekovat. Ve výchozím nastavení vypnuto.",
132
+ "features.redact_secrets.help": "Skrývá tajné údaje z odpovědí nástrojů, než se dostanou k AI asistenci. Možnosti aplikace (doplňku) a pole integrací označená jako hesla jsou nahrazena značkou nastaveno/prázdno (takže zůstává možné odpovědět na otázku „je tento pověření nastaveno?“), a z odpovědí ostatních nástrojů jsou odstraněny tajné hodnoty, které server již viděl (hodnoty kratší než 6 znaků se přeskakují, protože nahrazování drobných fragmentů by poškodilo nesouvisející výstup). Pole, která nejsou svým schématem označena jako hesla, nelze detekovat. Ve výchozím nastavení vypnuto.",
133
133
  "features.enable_mandatory_bps.label": "Připojit dovednosti osvědčených postupů při zápisu",
134
134
  "features.enable_mandatory_bps.help": "Hlavní přepínač pro funkci doručování obsahu dovedností nástrojů pro zápis (problém #1182). Pokud je povoleno (výchozí), šest konfiguračních nástrojů pro zápis (automatizace, skripty, scény, pomocníci, řídicí panely, čistý YAML) připojí kanonické referenční soubory osvědčených postupů Home Assistant pod `skill_content` při každém úspěšném zápisu, plus automaticky vloží jakékoli referenční sekce citované varováními o osvědčených postupech. Každý nástroj také zpřístupňuje parametr `MandatoryBPS` pro každé volání, který může agent nastavit na false při následných voláních, jakmile má obsah. Když je tento hlavní přepínač vypnutý, ŽÁDNÝ `skill_content` není odeslán bez ohledu na parametr pro každé volání nebo varování BP. Doporučeno ZAPNUTO jako první volba; vypněte pouze pro modely s velmi malými kontextovými okny. Vypnutí této funkce může snížit přesnost zápisu. Vyžaduje restart, aby se projevilo.",
135
135
  "features.enable_strict_mandatory_bps.label": "Přísný režim osvědčených postupů",
@@ -149,11 +149,11 @@
149
149
  "features.enable_filesystem_tools.label": "Povolit nástroje souborového systému (beta)",
150
150
  "features.enable_filesystem_tools.help": "Nastaví HAMCP_ENABLE_FILESYSTEM_TOOLS=true. Povoluje přímý přístup pro čtení/zápis souborů do vašeho souborového systému Home Assistant. VAROVÁNÍ: Tímto získá MCP server citlivý přímý přístup k souborům ve vašem systému. Povolte pouze v případě, že důvěřujete AI asistentovi s operacemi se soubory. Vyžaduje restart, aby se změny projevily. VYŽADUJE, aby byl zapnut hlavní přepínač „Enable beta features“ výše (a ve webovém rozhraní) — jinak je tento podřízený příznak za běhu ignorován bez ohledu na jeho hodnotu zde.",
151
151
  "features.enable_code_mode.label": "Povolit sandbox vlastních nástrojů (beta)",
152
- "features.enable_code_mode.help": "Beta funkce. Povoluje nástroj ha_manage_custom_tool, který umožňuje AI asistentům vytvářet, spouštět, ukládat a mazat vlastní kód Pythonu v zabezpečeném sandboxu, když žádný vestavěný nástroj nedokáže požadavek zpracovat. Kód běží v izolovaném interpretu bez přístupu k souborovému systému nebo libovolnému síťovému přístupu. Kód v sandboxu může přistupovat k HA REST API (api_get/api_post), posílat WebSocket příkazy (ws_send), volat existující nástroje MCP (call_tool) nebo odstranit uložený nástroj (delete_saved_tool). Uložené nástroje se ve výchozím nastavení ukládají do /data/saved_tools.json, takže přežijí restarty doplňku a jsou viditelné pro každého klienta, který se může připojit. Známá omezení naleznete v docs/beta.md. Vyžaduje restart, aby se projevilo. VYŽADUJE, aby byl zapnut hlavní přepínač „Enable beta features“ výše (a ve webovém rozhraní) – jinak je tento podřízený příznak za běhu ignorován bez ohledu na jeho hodnotu zde.",
152
+ "features.enable_code_mode.help": "Funkce v beta verzi. Povoluje nástroj ha_manage_custom_tool, který umožňuje AI asistentům vytvářet, spouštět, ukládat a mazat vlastní kód v Pythonu v zabezpečeném sandboxu, když žádný vestavěný nástroj nedokáže požadavek zpracovat. Kód běží v izolovaném interpretu bez přístupu k souborovému systému nebo libovolné síti. Kód v sandboxu může přistupovat k REST API HA (api_get/api_post), odesílat příkazy WebSocket (ws_send), volat existující nástroje MCP (call_tool) nebo odstranit uložený nástroj (delete_saved_tool). Uložené nástroje se ve výchozím nastavení ukládají do /data/saved_tools.json, takže přežijí restarty aplikace (doplňku) a jsou viditelné pro každého klienta, který se může připojit. Známá omezení naleznete v docs/beta.md. K projevům změn je vyžadován restart. VYŽADUJE, aby byl výše uvedený hlavní přepínač „Enable beta features“ zapnutý (a to i ve webovém rozhraní) – v opačném případě bude tento dílčí příznak za běhu ignorován bez ohledu na jeho hodnotu zde.",
153
153
  "features.enable_lite_docstrings.label": "Povolit zjednodušené docstringy nástrojů (beta)",
154
154
  "features.enable_lite_docstrings.help": "Beta funkce. Nahrazuje docstringy u několika náročných nástrojů ha-mcp (automations, scripts, scenes, helpers, dashboards, ha_call_service, ha_config_set_yaml) kratšími variantami, které odkládají podrobnosti o schématu a příkladech na nástroj ha_get_skill_guide (nebo jeho skill:// resource). UPOZORNĚNÍ: toto snižuje využití tokenů v nečinnosti, ale může snížit výkon LLM — zkrácené popisy spoléhají na to, že LLM skutečně zavolá nástroj skill nebo přečte skill resource pro podrobnosti, což není zaručeno (některé modely přeskočí dodatečné volání nástroje a skončí s menším vedením, než měly dříve). Nejlépe se kombinuje s klientem, který podporuje MCP resources nebo s enable_tool_search. Vyžaduje restart, aby se projevilo. VYŽADUJE, aby byl hlavní přepínač „Enable beta features“ výše (a ve web UI) zapnutý — jinak je tento podřízený příznak za runtime ignorován bez ohledu na jeho hodnotu zde.",
155
155
  "features.enable_dashboard_screenshot.label": "Povolit režim snímání obrazovky dashboardu (beta)",
156
- "features.enable_dashboard_screenshot.help": "Beta funkce — ve výchozím nastavení zakázáno. Přidává nástroj ha_get_dashboard_screenshot a možnosti include_screenshot / return_screenshot k nástrojům pro získání/nastavení panelu, takže asistenti AI mohou kontrolovat jeden nebo více responzivních obrázků Lovelace (např. k ověření panelu, který právě vytvořili). Podporuje stabilní pojmenované pohledy, dávky pro mobilní zařízení/tablety/desktopy a výstup PNG/JPEG/WebP/BMP. Vykreslování probíhá v samostatném, volitelném enginu — doplňku „Puppet“ od ballooba (headless Chromium) — který nainstalujete jednou (přidáte repozitář doplňků ballooba, poté nainstalujete „Puppet“) a udělíte mu dlouhodobý přístupový token; v nasazeních Docker/Container spustíte tento engine jako sidecar a nastavíte HAMCP_DASHBOARD_SCREENSHOT_ENGINE_URL. Nic náročného se nenainstaluje, pokud tuto funkci nepovolíte a nenainstalujete engine. Vyžaduje restart, aby se projevilo. VYŽADUJE, aby byl zapnut hlavní přepínač „Enable beta features“ výše (a ve webovém rozhraní) — jinak je tento podřízený příznak za běhu ignorován bez ohledu na jeho hodnotu zde.",
156
+ "features.enable_dashboard_screenshot.help": "Funkce v beta verzi – ve výchozím nastavení zakázána. Přidává nástroj ha_get_dashboard_screenshot a volby include_screenshot / return_screenshot k nástrojům pro získání/nastavení nástěnek, takže AI asistenti mohou kontrolovat jeden nebo více responzivních obrázků Lovelace (např. pro ověření právě vytvořené nástěnky). Podporuje stabilní pojmenované pohledy, dávky pro mobily/tablety/desktopy a výstup v PNG/JPEG/WebP/BMP. Vykreslování běží v samostatném volitelném enginu – „Puppet“ aplikaci (doplňku) od ballooba, což je headless Chromium –, který nainstalujete jednou (přidáte balloobův repozitář do obchodu s aplikacemi a nainstalujete „Puppet“) a poskytnete mu přístupový token s dlouhou platností; v nasazeních Docker/Container tento engine spustíte jako vedlejší kontejner (sidecar) a nastavíte proměnnou HAMCP_DASHBOARD_SCREENSHOT_ENGINE_URL. Nic náročného se neinstaluje, dokud obojí nepovolíte a nenainstalujete daný engine. K projevům změn je vyžadován restart. VYŽADUJE, aby byl výše uvedený hlavní přepínač „Enable beta features“ zapnutý (a to i ve webovém rozhraní) – v opačném případě bude tento dílčí příznak za běhu ignorován bez ohledu na jeho hodnotu zde.",
157
157
  "actions.restart_server": "Restartovat server HA-MCP",
158
158
  "actions.restart_confirm": "Restartovat HA-MCP nyní? Stránka se automaticky znovu načte, jakmile bude opět online.",
159
159
  "actions.view": "Zobrazit",
@@ -181,7 +181,7 @@
181
181
  "status.stopped_offline": "Zastaveno. Tato stránka přejde do režimu offline",
182
182
  "status.stopped_connection": "Zastaveno (spojení přerušeno)",
183
183
  "status.restarting": "Restartování…",
184
- "status.waiting_addon": "Čekání, až se aplikace (doplněk) vrátí online…",
184
+ "status.waiting_addon": "Čeká se na opětovné spuštění aplikace (doplňku)…",
185
185
  "errors.javascript": "Chyba JS: {message} @ {where}",
186
186
  "errors.async": "Asynchronní chyba: {message}",
187
187
  "errors.network": "Chyba sítě: {message}",
@@ -206,7 +206,7 @@
206
206
  "common.minutes_short": "{count} min",
207
207
  "common.bytes": "{count} bajtů",
208
208
  "common.none": "(žádné)",
209
- "notice.restart.addon": "⚠ Změny uloženy. Klikněte na „Restartovat aplikaci (doplněk)“, aby se projevily. Zakázané nástroje budou při příštím spuštění odstraněny ze seznamu nástrojů MCP. Poté obnovte seznam nástrojů ve vašem AI klientovi; samotné restartování aplikace neobnoví seznam uložený v mezipaměti klienta.",
209
+ "notice.restart.addon": "⚠ Změny uloženy. Kliknutím na „Restartovat aplikaci (doplněk)“ je projevíte. Zakázané nástroje budou odstraněny ze seznamu nástrojů MCP při příštím spuštění. Poté obnovte seznam nástrojů ve svém AI klientovi; samotný restart aplikace neobnoví mezipaměť seznamu klienta.",
210
210
  "notice.restart.embedded": "⚠ Změny uloženy. Klikněte na „Restartovat server HA-MCP“ pro opětovné načtení integrace v procesu. Poté obnovte seznam nástrojů MCP ve vašem AI klientovi.",
211
211
  "notice.restart.sidecar": "⚠ Změny uloženy. Pro jejich projevení zcela ukončete a znovu otevřete svého klienta MCP. Zakázané nástroje budou při příštím spuštění odstraněny ze seznamu nástrojů MCP.",
212
212
  "notice.restart.standalone": "⚠ Změny uloženy. Restartujte proces ha-mcp a poté obnovte seznam nástrojů MCP ve vašem AI klientovi.",
@@ -218,7 +218,7 @@
218
218
  "tools.badges.read_only": "pouze pro čtení",
219
219
  "tools.badges.writes": "zapisuje",
220
220
  "tools.badges.deletes": "maže",
221
- "tools.notes.gated_disabled": "Zakázáno. Zapněte {setting} — přepínač nástroje pro úpravu zásad je na kartě Zásady zabezpečení nástrojů — a poté restartujte aplikaci (doplněk).",
221
+ "tools.notes.gated_disabled": "Zakázáno. Zapněte {setting} – přepínač nástroje pro úpravu pravidel se nachází na kartě Tool Security Policies – a poté restartujte aplikaci (doplněk).",
222
222
  "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).",
223
223
  "tools.notes.env_pinned": "Připnuto proměnnou {variable}. Zrušte nastavení proměnné prostředí pro úpravu zde.",
224
224
  "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.",
@@ -233,7 +233,7 @@
233
233
  "tools.states.enabled": "povoleno",
234
234
  "tools.states.pinned": "připnuto",
235
235
  "tools.states.security_gated": "zabezpečeno",
236
- "tools.security.enable_first": "Nejprve povolte zásady zabezpečení nástrojů v konfiguraci aplikace (doplňku).",
236
+ "tools.security.enable_first": "Nejprve povolte Tool Security Policies v nastavení serveru.",
237
237
  "tools.summary.total": "{count} celkem",
238
238
  "tools.summary.enabled": "{count} povoleno",
239
239
  "tools.summary.pinned": "{count} připnuto",
@@ -292,9 +292,9 @@
292
292
  "origins.env_locked": "Nastaveno přes proměnnou prostředí; zrušte ji pro úpravy zde.",
293
293
  "origins.addon_synced": "Synchronizováno s kartou Konfigurace aplikace (doplňku). Po uložení je vyžadován restart.",
294
294
  "origins.env_var_unset": "Nastaveno přes proměnnou prostředí {variable}; zrušte ji pro úpravy zde.",
295
- "origins.beta_legacy_bridge": "Automaticky povoleno v režimu legacy aplikace (doplňku). Nastavte <code>enable_beta_features</code> explicitně v Konfiguraci, abyste převzali kontrolu. (proměnná prostředí: {variable})",
296
- "origins.addon_runtime": "Nastaveno běhovým prostředím aplikace (doplňku) spravovaným Supervisor; nelze zde změnit. (proměnná prostředí: {variable})",
297
- "origins.display_only": "Pouze zobrazení. Upravte pomocí proměnné prostředí nebo nastavení aplikace (doplňku).",
295
+ "origins.beta_legacy_bridge": "Automaticky povoleno v starším režimu aplikace (doplňku). Pro převzetí kontroly nastavte <code>enable_beta_features</code> explicitně v konfiguraci. (env: {variable})",
296
+ "origins.addon_runtime": "Nastaveno v běhovém prostředí aplikace (doplňku) spravovaném nástrojem Supervisor; zde nelze změnit. (env: {variable})",
297
+ "origins.display_only": "Pouze pro zobrazení. Upravte pomocí proměnné prostředí nebo nastavení aplikace (doplněku).",
298
298
  "features.errors.network": "Příznaky funkcí nedostupné (chyba sítě při přístupu k /api/settings/features).",
299
299
  "features.errors.http": "Příznaky funkcí nedostupné (HTTP {status}).",
300
300
  "features.errors.json": "Odpověď příznaků funkcí nebyla platný JSON.",
@@ -304,12 +304,12 @@
304
304
  "advanced.sidecar.stdio_only": "Dostupné pouze v režimu stdio. Tento HTTP server nemá žádný sidecar uživatelského rozhraní nastavení k připnutí.",
305
305
  "advanced.enable_dev_mode.confirm": "⚠ Povolit režim vývojáře?\n\nPo restartu budou skryté vývojářské nástroje zpřístupněny připojeným AI agentům. Povolte pouze pro vývoj a testování.",
306
306
  "advanced.dev_tools_security_policy_access.confirm": "⚠ Povolit vývojářským nástrojům měnit bezpečnostní zásady?\n\nZatímco je režim vývojáře zapnutý, připojení AI agenti budou moci přepisovat bezpečnostní zásady nástrojů, přidávat nebo odebírat brány schválení pro jednotlivé nástroje a schvalovat nebo zamítat čekající schválení – včetně jejich vlastních řízených volání. Povolte pouze při testování zásad.",
307
- "advanced.code_mode_saved_tools_path.addon_locked": "Pevně zakódováno na <code>/data/saved_tools.json</code> v režimu aplikace (doplňku), aby uložené nástroje přežily aktualizace.",
307
+ "advanced.code_mode_saved_tools_path.addon_locked": "Pevně nastaveno na <code>/data/saved_tools.json</code> v režimu aplikace (doplněku), aby uložené nástroje přežily aktualizace.",
308
308
  "advanced.code_mode_saved_tools_path.blank_warning": "Pokud je prázdné, vlastní nástroje jsou uchovávány pouze v paměti a ztraceny po restartu.",
309
309
  "policies.errors.conflict": "{operation} selhalo: zásada byla upravena na jiné kartě nebo v jiné relaci. Znovu načtěte a znovu použijte své změny.",
310
310
  "policies.errors.load": "Nepodařilo se načíst zásadu: {status}",
311
311
  "policies.errors.reach_server": "Nepodařilo se dosáhnout serveru: {message}",
312
- "policies.errors.corrupt_suffix": " (tool_policy.json se zdá být poškozený; upravte nebo smažte jej na svazku /data aplikace (doplňku))",
312
+ "policies.errors.corrupt_suffix": " (soubor tool_policy.json se zdá být poškozený; upravte jej nebo smažte v datovém adresáři serveru)",
313
313
  "policies.errors.load_detail": "Nepodařilo se načíst zásadu: {detail}",
314
314
  "policies.errors.update_tool": "Nepodařilo se aktualizovat bezpečnostní zásadu nástroje: {message}",
315
315
  "policies.errors.remove_rule": "Nepodařilo se odstranit pravidlo: {message}",
@@ -365,8 +365,8 @@
365
365
  "policies.editor.validation.empty_list": "prázdný seznam pro op={operator}",
366
366
  "policies.editor.validation.argument_required": "argument je vyžadován",
367
367
  "policies.pending.offline": "Ztracen kontakt se serverem ({message}). Opakuji pokus.",
368
- "policies.pending.disabled": "Bezpečnostní zásady nástrojů jsou vypnuté. Zapněte je a restartujte aplikaci (doplněk), abyste povolili řízení.",
369
- "policies.pending.unavailable": "Živé schvalování nedostupné. Zkontrolujte protokol aplikace (doplňku).",
368
+ "policies.pending.disabled": "Zásady zabezpečení nástrojů jsou vypnuté. Zapněte je a restartujte HA-MCP pro aktivaci filtrování.",
369
+ "policies.pending.unavailable": "Schvalování v reálném čase není k dispozici. Zkontrolujte protokol HA-MCP.",
370
370
  "policies.pending.expires": "Vyprší: {time}",
371
371
  "policies.pending.already_decided": "Toto schválení již bylo {decision}, pravděpodobně z jiné karty nebo relace.",
372
372
  "policies.pending.decision.approved": "schváleno",
@@ -374,11 +374,11 @@
374
374
  "policies.pending.invalid_token": "Tento schvalovací token již není platný (již spotřebován nebo vypršel).",
375
375
  "policies.pending.action_failed": "Akce schválení selhala: {detail}",
376
376
  "visibility.errors.reach_server": "Nepodařilo se dosáhnout serveru: {message}",
377
- "visibility.errors.corrupt_suffix": " (entity_visibility.json se zdá být poškozený; upravte nebo smažte jej na svazku /data aplikace (doplňku))",
377
+ "visibility.errors.corrupt_suffix": " (soubor entity_visibility.json se zdá být poškozený; upravte jej nebo smažte v datovém adresáři serveru)",
378
378
  "visibility.errors.load_detail": "Nepodařilo se načíst konfiguraci viditelnosti: {detail}",
379
379
  "visibility.errors.conflict": "Konfigurace byla změněna na jiné kartě nebo v jiné relaci. Znovu načtěte stránku a poté znovu použijte své změny.",
380
380
  "advanced.homeassistant_url.label": "URL adresa Home Assistant",
381
- "advanced.homeassistant_url.help": "Pouze zobrazení. Nastaveno přes HOMEASSISTANT_URL nebo spravováno aplikací (doplňkem).",
381
+ "advanced.homeassistant_url.help": "Pouze pro zobrazení. Nastavuje se přes HOMEASSISTANT_URL nebo je spravováno aplikací (doplněkem).",
382
382
  "advanced.homeassistant_token.label": "Token Home Assistant",
383
383
  "advanced.homeassistant_token.help": "Pouze zobrazení. Nastaveno přes HOMEASSISTANT_TOKEN. Zde maskováno z bezpečnostních důvodů.",
384
384
  "advanced.timeout.label": "Časový limit požadavku HA (s)",
@@ -462,8 +462,8 @@
462
462
  "addon.pinned_tools.name": "Připnuté nástroje (oddělené čárkami)",
463
463
  "addon.pinned_tools.description": "Nástroje zde uvedené jsou uzamčeny jako připnuté — zobrazují se v horní části karty Nástroje a nelze je odepnout z webového uživatelského rozhraní Nastavení, aniž byste nejprve zrušili toto nastavení. Užitečné v kombinaci s vyhledáváním nástrojů. Názvy nástrojů oddělené čárkami.",
464
464
  "addon.verify_ssl.name": "Ověřit certifikát TLS",
465
- "addon.verify_ssl.description": "Ověří certifikát TLS serveru Home Assistant. Doplněk se připojuje přes proxy Supervisor, takže to obvykle nemá žádný účinek a mělo by zůstat povoleno. Zakázat pouze v případě, že jste doplněk překonfigurovali tak, aby komunikoval s HA přes veřejný HTTPS hostname s vlastnoručně podepsaným certifikátem nebo neshodou hostname. Zakázání oslabuje zabezpečení přenosu — ponechte zapnuto, pokud víte, že to potřebujete. Vyžaduje restart, aby se projevilo.",
466
- "addon_stable.enable_tool_search.description": "Nahradí úplný katalog nástrojů vyhledáváním. Snižuje nečinný kontext přibližně o 90 %, na asi 5K tokenů. ⚠️ NEPOVOLUJTE toto v klientech s vlastním vestavěným vyhledáváním nástrojů / odloženými nástroji (claude.ai, Claude Desktop, Claude Code) — dvě vrstvy vyhledávání se střetávají a vestavěné vyhledávání nástrojů klienta je v takovém případě lepší volbou; ponechte toto vypnuté. Zda jsou nástroje odloženy, závisí na kombinaci vašeho klienta a modelu: použijte toto, když vaše nastavení načítá celý katalog předem — modely bez nativních odložených nástrojů (např. Gemini, lokální modely kompatibilní s OpenAI, Claude Haiku), klienti, kteří vkládají všechna schémata nástrojů bez ohledu na model (např. GitHub Copilot CLI), nebo menší kontextová okna. Některé modely Codex a ChatGPT také zahrnují odložené nástroje — zkontrolujte přímo svého klienta/model, abyste potvrdili jeho funkce a zbytečně toto nenechali povolené. Nástroje jsou nalezeny pomocí ha_search_tools a spouštěny pomocí kategorizovaných proxy (čtení/zápis/mazání). Vyžaduje restart doplňku, aby se změny projevily — poté se znovu připojte nebo obnovte server MCP ve vašem AI klientovi, aby znovu načetl seznam nástrojů. Samotný restart doplňku NEobnoví seznam nástrojů uložený v mezipaměti klienta; toto platí po změně jakéhokoli nastavení zde."
465
+ "addon.verify_ssl.description": "Ověřit TLS certifikát serveru Home Assistant. Aplikace (doplněk) se připojuje přes proxy Supervisor, takže to obvykle nemá žádný vliv a mělo by to zůstat zapnuté. Zakazujte pouze v případě, že jste přenastavili aplikaci (doplněk) tak, aby komunikovala s HA přes veřejný HTTPS hostname s The self-signed certifikátem nebo neshodou hostname. Vypnutí oslabuje zabezpečení přenosu – nechte zapnuté, pokud víte, že to potřebujete. Vyžaduje restart, aby se projevilo.",
466
+ "addon_stable.enable_tool_search.description": "Nahradit úplný katalog nástrojů vyhledáváním. Snižuje klidový kontext přibližně o 90 %, na asi 5 tisíc tokenů. ⚠️ NEZAPÍNEJTE toto v klientech s vlastním vestavěným vyhledáváním nástrojů / odloženými nástroji (claude.ai, Claude Desktop, Claude Code) – obě vrstvy vyhledávání se střetávají a vestavěné vyhledávání nástrojů v klientovi je zde lepší volbou; nechte to vypnuté. Zda jsou nástroje odloženy, závisí na kombinaci vašeho klienta a modelu: použijte toto, když vaše nastavení načítá celý katalog předem – modely bez nativních odložených nástrojů (např. Gemini, lokální modely kompatibilní s OpenAI, Claude Haiku), klienti, kteří vkládají všechna schémata nástrojů bez ohledu na model (např. GitHub Copilot CLI), nebo menší kontextová okna. Některé modely Codex a ChatGPT také obsahují odložené nástroje – ověřte si funkce přímo u svého klienta/modelu, abyste to nenechávali zbytečně zapnuté. Nástroje se vyhledávají přes ha_search_tools a spouštějí se přes kategorizované proxy (read/write/delete). Vyžaduje restart aplikace (doplněku), aby se projevila změna – poté znovu připojte nebo obnovte MCP server ve svém AI klientovi, aby se znovu načetl seznam nástrojů. Samotný restart aplikace (doplněku) NEAKTUALIZUJE mezipaměť seznamu nástrojů klienta; toto platí po změně jakéhokoli nastavení zde."
467
467
  },
468
468
  "tools": {
469
469
  "ha_bulk_control": {
@@ -618,9 +618,9 @@
618
618
  "title": "Vyhodnotit šablonu",
619
619
  "description": "Vyhodnotit šablony Jinja2 pomocí šablonovacího enginu Home Assistant."
620
620
  },
621
- "ha_get_addon": {
622
- "title": "Získat doplňky",
623
- "description": "Získat doplňky Home Assistant – vypsat nainstalované, dostupné nebo získat podrobnosti o jednom."
621
+ "ha_get_app": {
622
+ "title": "Získat aplikace (doplňky)",
623
+ "description": "Získat aplikace Home Assistant (dříve známé jako doplňky a tento nástroj jako ha_get_addon) – vypsat nainstalované, dostupné nebo získat d"
624
624
  },
625
625
  "ha_get_automation_traces": {
626
626
  "title": "Získat trasování automatizací",
@@ -706,9 +706,9 @@
706
706
  "title": "Vypsat dostupné služby",
707
707
  "description": "Seznam dostupných služeb Home Assistant s volitelným stránkováním a řízením detailů."
708
708
  },
709
- "ha_manage_addon": {
710
- "title": "Spravovat doplněk",
711
- "description": "Spravovat doplněk Home Assistant — aktualizovat jeho konfiguraci nebo volat jeho interní API."
709
+ "ha_manage_app": {
710
+ "title": "Spravovat aplikaci (doplněk)",
711
+ "description": "Spravovat aplikaci Home Assistant (dříve známou jako doplněk a tento nástroj jako ha_manage_addon) – aktualizovat její konfiguraci o"
712
712
  },
713
713
  "ha_manage_backup": {
714
714
  "title": "Spravovat zálohy",
@@ -820,7 +820,7 @@
820
820
  }
821
821
  },
822
822
  "tool_groups": {
823
- "Add-ons": "Doplňky",
823
+ "Apps (add-ons)": "Aplikace (doplňky)",
824
824
  "Areas & Floors": "Oblasti a patra",
825
825
  "Assist": "Asistent",
826
826
  "Automations": "Automatizace",