ha-mcp-dev 8.4.3.dev2546__tar.gz → 8.4.3.dev2550__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 (308) hide show
  1. {ha_mcp_dev-8.4.3.dev2546/src/ha_mcp_dev.egg-info → ha_mcp_dev-8.4.3.dev2550}/PKG-INFO +4 -2
  2. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/README.md +3 -1
  3. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/pyproject.toml +1 -1
  4. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/settings_ui/locales/cs.json +6 -10
  5. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/settings_ui/locales/de.json +6 -10
  6. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/settings_ui/locales/eo.json +6 -10
  7. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/settings_ui/locales/es.json +6 -10
  8. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/settings_ui/locales/fr.json +6 -10
  9. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/settings_ui/locales/it.json +6 -10
  10. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/settings_ui/locales/ko.json +6 -10
  11. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/settings_ui/locales/nl.json +6 -10
  12. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/settings_ui/locales/pl.json +6 -10
  13. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/settings_ui/locales/ru.json +6 -10
  14. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/settings_ui/locales/sv.json +6 -10
  15. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/settings_ui/locales/zh-Hans.json +6 -10
  16. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/transforms/categorized_search.py +116 -30
  17. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550/src/ha_mcp_dev.egg-info}/PKG-INFO +4 -2
  18. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/LICENSE +0 -0
  19. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/MANIFEST.in +0 -0
  20. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/setup.cfg +0 -0
  21. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/__init__.py +0 -0
  22. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/__main__.py +0 -0
  23. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/_pypi_marker +0 -0
  24. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/_rich_compat.py +0 -0
  25. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/_vendor/__init__.py +0 -0
  26. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/_vendor/requirements.txt +0 -0
  27. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/_vendor/websockets/LICENSE +0 -0
  28. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/_vendor/websockets/MANIFEST.sha256 +0 -0
  29. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/_vendor/websockets/VENDORED +0 -0
  30. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/_vendor/websockets/__init__.py +0 -0
  31. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/_vendor/websockets/__main__.py +0 -0
  32. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/_vendor/websockets/asyncio/__init__.py +0 -0
  33. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/_vendor/websockets/asyncio/client.py +0 -0
  34. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/_vendor/websockets/asyncio/connection.py +0 -0
  35. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/_vendor/websockets/asyncio/messages.py +0 -0
  36. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/_vendor/websockets/asyncio/router.py +0 -0
  37. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/_vendor/websockets/asyncio/server.py +0 -0
  38. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/_vendor/websockets/auth.py +0 -0
  39. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/_vendor/websockets/cli.py +0 -0
  40. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/_vendor/websockets/client.py +0 -0
  41. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/_vendor/websockets/connection.py +0 -0
  42. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/_vendor/websockets/datastructures.py +0 -0
  43. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/_vendor/websockets/exceptions.py +0 -0
  44. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/_vendor/websockets/extensions/__init__.py +0 -0
  45. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/_vendor/websockets/extensions/base.py +0 -0
  46. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/_vendor/websockets/extensions/permessage_deflate.py +0 -0
  47. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/_vendor/websockets/frames.py +0 -0
  48. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/_vendor/websockets/headers.py +0 -0
  49. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/_vendor/websockets/http11.py +0 -0
  50. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/_vendor/websockets/imports.py +0 -0
  51. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/_vendor/websockets/legacy/__init__.py +0 -0
  52. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/_vendor/websockets/legacy/auth.py +0 -0
  53. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/_vendor/websockets/legacy/client.py +0 -0
  54. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/_vendor/websockets/legacy/exceptions.py +0 -0
  55. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/_vendor/websockets/legacy/framing.py +0 -0
  56. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/_vendor/websockets/legacy/handshake.py +0 -0
  57. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/_vendor/websockets/legacy/http.py +0 -0
  58. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/_vendor/websockets/legacy/protocol.py +0 -0
  59. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/_vendor/websockets/legacy/server.py +0 -0
  60. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/_vendor/websockets/protocol.py +0 -0
  61. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/_vendor/websockets/proxy.py +0 -0
  62. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/_vendor/websockets/py.typed +0 -0
  63. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/_vendor/websockets/server.py +0 -0
  64. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/_vendor/websockets/streams.py +0 -0
  65. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/_vendor/websockets/sync/__init__.py +0 -0
  66. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/_vendor/websockets/sync/client.py +0 -0
  67. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/_vendor/websockets/sync/connection.py +0 -0
  68. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/_vendor/websockets/sync/messages.py +0 -0
  69. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/_vendor/websockets/sync/router.py +0 -0
  70. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/_vendor/websockets/sync/server.py +0 -0
  71. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/_vendor/websockets/sync/utils.py +0 -0
  72. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/_vendor/websockets/trio/__init__.py +0 -0
  73. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/_vendor/websockets/trio/client.py +0 -0
  74. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/_vendor/websockets/trio/connection.py +0 -0
  75. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/_vendor/websockets/trio/messages.py +0 -0
  76. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/_vendor/websockets/trio/router.py +0 -0
  77. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/_vendor/websockets/trio/server.py +0 -0
  78. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/_vendor/websockets/trio/utils.py +0 -0
  79. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/_vendor/websockets/typing.py +0 -0
  80. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/_vendor/websockets/uri.py +0 -0
  81. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/_vendor/websockets/utils.py +0 -0
  82. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/_vendor/websockets/version.py +0 -0
  83. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/_version.py +0 -0
  84. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/auth/__init__.py +0 -0
  85. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/auth/consent_form.py +0 -0
  86. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/auth/oidc_compat.py +0 -0
  87. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/auth/provider.py +0 -0
  88. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/backup_manager.py +0 -0
  89. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/browser_landing.py +0 -0
  90. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/client/__init__.py +0 -0
  91. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/client/rest_client.py +0 -0
  92. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/client/supervisor_client.py +0 -0
  93. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/client/websocket_client.py +0 -0
  94. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/client/websocket_listener.py +0 -0
  95. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/config.py +0 -0
  96. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/dashboard_screenshot/__init__.py +0 -0
  97. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/dashboard_screenshot/capture.py +0 -0
  98. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/dashboard_screenshot/content.py +0 -0
  99. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/dashboard_screenshot/paths.py +0 -0
  100. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/dashboard_screenshot/provision.py +0 -0
  101. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/dashboard_screenshot/theme_guard.py +0 -0
  102. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/errors.py +0 -0
  103. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/hacs_auto_refresh.py +0 -0
  104. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/llm_exposure.py +0 -0
  105. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/log_filters.py +0 -0
  106. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/policy/__init__.py +0 -0
  107. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/policy/approval_queue.py +0 -0
  108. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/policy/editing.py +0 -0
  109. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/policy/evaluator.py +0 -0
  110. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/policy/handlers.py +0 -0
  111. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/policy/middleware.py +0 -0
  112. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/policy/model.py +0 -0
  113. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/policy/persistence.py +0 -0
  114. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/policy/value_sources.py +0 -0
  115. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/py.typed +0 -0
  116. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/read_only.py +0 -0
  117. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/redaction.py +0 -0
  118. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/renamed_tools.py +0 -0
  119. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/resources/skills-vendor/.claude/settings.json +0 -0
  120. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/resources/skills-vendor/.claude-plugin/marketplace.json +0 -0
  121. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/resources/skills-vendor/.claude-plugin/plugin.json +0 -0
  122. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/resources/skills-vendor/.github/ISSUE_TEMPLATE/skill-rca.md +0 -0
  123. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/resources/skills-vendor/.github/pull_request_template.md +0 -0
  124. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/resources/skills-vendor/AGENTS.md +0 -0
  125. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/resources/skills-vendor/CLAUDE.md +0 -0
  126. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/resources/skills-vendor/CONTRIBUTING.md +0 -0
  127. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/resources/skills-vendor/LICENSE +0 -0
  128. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/resources/skills-vendor/README.md +0 -0
  129. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/resources/skills-vendor/evals/area-target-over-entity-list/case.yaml +0 -0
  130. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/resources/skills-vendor/evals/arrive-home-automation/case.yaml +0 -0
  131. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/resources/skills-vendor/evals/assist-shortcut-card/case.yaml +0 -0
  132. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/resources/skills-vendor/evals/avg-temperature/case.yaml +0 -0
  133. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/resources/skills-vendor/evals/backup-deletion-confirmation/case.yaml +0 -0
  134. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/resources/skills-vendor/evals/blueprint-authoring/case.yaml +0 -0
  135. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/resources/skills-vendor/evals/button-event-entity/case.yaml +0 -0
  136. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/resources/skills-vendor/evals/device-id-trigger-migration/case.yaml +0 -0
  137. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/resources/skills-vendor/evals/helper-flow-fields-not-platform-yaml/case.yaml +0 -0
  138. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/resources/skills-vendor/evals/media-player-song/case.yaml +0 -0
  139. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/resources/skills-vendor/evals/motion-light-automation-mode/case.yaml +0 -0
  140. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/resources/skills-vendor/evals/rename-entity-impact-analysis/case.yaml +0 -0
  141. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/resources/skills-vendor/evals/template-attributes-yaml-exception/case.yaml +0 -0
  142. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/resources/skills-vendor/evals/timer-finished-automation/case.yaml +0 -0
  143. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/resources/skills-vendor/evals/vacuum-last-clean/case.yaml +0 -0
  144. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/resources/skills-vendor/scripts/check_eval_cases.py +0 -0
  145. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/SKILL.md +0 -0
  146. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/appdaemon.md +0 -0
  147. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/automation-patterns.md +0 -0
  148. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/backups.md +0 -0
  149. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/blueprint-guide.md +0 -0
  150. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/dashboard-cards.md +0 -0
  151. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/dashboard-guide.md +0 -0
  152. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/device-control.md +0 -0
  153. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/domain-docs.md +0 -0
  154. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/examples.yaml +0 -0
  155. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/helper-selection.md +0 -0
  156. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/safe-refactoring.md +0 -0
  157. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/scenes.md +0 -0
  158. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/template-guidelines.md +0 -0
  159. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/yaml-only-integrations.md +0 -0
  160. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/server.py +0 -0
  161. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/settings_ui/__init__.py +0 -0
  162. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/settings_ui/_handlers_advanced.py +0 -0
  163. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/settings_ui/_handlers_backups.py +0 -0
  164. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/settings_ui/_handlers_fs.py +0 -0
  165. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/settings_ui/_handlers_server.py +0 -0
  166. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/settings_ui/_handlers_theme.py +0 -0
  167. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/settings_ui/_handlers_tools.py +0 -0
  168. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/settings_ui/_i18n.py +0 -0
  169. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/settings_ui/_locale_policy.py +0 -0
  170. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/settings_ui/_persistence.py +0 -0
  171. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/settings_ui/_supervisor.py +0 -0
  172. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/settings_ui/_theme.py +0 -0
  173. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/settings_ui/_tools_meta.py +0 -0
  174. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/settings_ui/locales/README.md +0 -0
  175. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/settings_ui/locales/en.json +0 -0
  176. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/settings_ui/locales/tlh.json +0 -0
  177. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/settings_ui/settings.css +0 -0
  178. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/settings_ui/settings.html +0 -0
  179. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/settings_ui/settings.js +0 -0
  180. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/smoke_test.py +0 -0
  181. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/stdio_settings_sidecar.py +0 -0
  182. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/strict_bps.py +0 -0
  183. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/tools/__init__.py +0 -0
  184. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/tools/auto_backup.py +0 -0
  185. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/tools/backup.py +0 -0
  186. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/tools/best_practice_checker.py +0 -0
  187. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/tools/best_practice_result.py +0 -0
  188. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/tools/best_practice_variables.py +0 -0
  189. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/tools/blueprint_sources.py +0 -0
  190. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/tools/blueprint_substitute.py +0 -0
  191. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/tools/blueprint_write.py +0 -0
  192. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/tools/bulk_selector.py +0 -0
  193. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/tools/component_api.py +0 -0
  194. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/tools/component_config_entries.py +0 -0
  195. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/tools/component_config_reads.py +0 -0
  196. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/tools/component_devices.py +0 -0
  197. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/tools/component_registries.py +0 -0
  198. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/tools/component_registry_lookup.py +0 -0
  199. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/tools/config_entry_flow.py +0 -0
  200. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/tools/config_entry_flow_form.py +0 -0
  201. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/tools/config_entry_flow_menu.py +0 -0
  202. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/tools/config_entry_flow_walker.py +0 -0
  203. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/tools/config_entry_identity.py +0 -0
  204. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/tools/config_entry_reconfigure.py +0 -0
  205. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/tools/config_entry_reload_watch.py +0 -0
  206. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/tools/device_control.py +0 -0
  207. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/tools/error_log_parsing.py +0 -0
  208. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/tools/hacs_registration.py +0 -0
  209. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/tools/helpers.py +0 -0
  210. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/tools/integration_reconfigure.py +0 -0
  211. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/tools/log_common.py +0 -0
  212. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/tools/log_sources.py +0 -0
  213. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/tools/log_sources_fault.py +0 -0
  214. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/tools/log_sources_supervisor.py +0 -0
  215. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/tools/radio/__init__.py +0 -0
  216. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/tools/radio/base.py +0 -0
  217. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/tools/radio/matter.py +0 -0
  218. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/tools/radio/thread.py +0 -0
  219. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/tools/radio/zigbee.py +0 -0
  220. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/tools/radio/zwave.py +0 -0
  221. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/tools/reference_validator.py +0 -0
  222. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/tools/registry.py +0 -0
  223. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/tools/renamed_tool_middleware.py +0 -0
  224. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/tools/smart_search/__init__.py +0 -0
  225. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/tools/smart_search/_base.py +0 -0
  226. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/tools/smart_search/_config.py +0 -0
  227. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/tools/smart_search/_deep.py +0 -0
  228. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/tools/smart_search/_entities.py +0 -0
  229. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/tools/smart_search/_fetch.py +0 -0
  230. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/tools/smart_search/_graph.py +0 -0
  231. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/tools/smart_search/_overview.py +0 -0
  232. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/tools/smart_search/_scenes.py +0 -0
  233. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/tools/smart_search/_scoring.py +0 -0
  234. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/tools/tool_search_hint_middleware.py +0 -0
  235. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/tools/tools_addons.py +0 -0
  236. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/tools/tools_areas.py +0 -0
  237. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/tools/tools_assist_pipeline.py +0 -0
  238. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/tools/tools_blueprints.py +0 -0
  239. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/tools/tools_bug_report.py +0 -0
  240. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/tools/tools_calendar.py +0 -0
  241. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/tools/tools_camera.py +0 -0
  242. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/tools/tools_categories.py +0 -0
  243. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/tools/tools_code.py +0 -0
  244. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/tools/tools_config_automations.py +0 -0
  245. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/tools/tools_config_dashboards.py +0 -0
  246. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/tools/tools_config_helpers.py +0 -0
  247. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/tools/tools_config_scenes.py +0 -0
  248. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/tools/tools_config_scripts.py +0 -0
  249. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/tools/tools_dashboard_screenshot.py +0 -0
  250. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/tools/tools_dev.py +0 -0
  251. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/tools/tools_energy.py +0 -0
  252. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/tools/tools_entities.py +0 -0
  253. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/tools/tools_filesystem.py +0 -0
  254. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/tools/tools_groups.py +0 -0
  255. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/tools/tools_hacs.py +0 -0
  256. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/tools/tools_history.py +0 -0
  257. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/tools/tools_integrations.py +0 -0
  258. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/tools/tools_labels.py +0 -0
  259. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/tools/tools_logs.py +0 -0
  260. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/tools/tools_radio.py +0 -0
  261. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/tools/tools_registry.py +0 -0
  262. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/tools/tools_resources.py +0 -0
  263. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/tools/tools_search.py +0 -0
  264. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/tools/tools_security_policy.py +0 -0
  265. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/tools/tools_service.py +0 -0
  266. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/tools/tools_services.py +0 -0
  267. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/tools/tools_system.py +0 -0
  268. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/tools/tools_themes.py +0 -0
  269. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/tools/tools_todo.py +0 -0
  270. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/tools/tools_traces.py +0 -0
  271. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/tools/tools_updates.py +0 -0
  272. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/tools/tools_utility.py +0 -0
  273. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/tools/tools_voice_assistant.py +0 -0
  274. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/tools/tools_yaml_config.py +0 -0
  275. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/tools/tools_yaml_read.py +0 -0
  276. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/tools/tools_zones.py +0 -0
  277. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/tools/util_helpers.py +0 -0
  278. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/tools/validation_middleware.py +0 -0
  279. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/transforms/__init__.py +0 -0
  280. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/transforms/lite_docstrings.py +0 -0
  281. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/transport_security.py +0 -0
  282. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/update_check.py +0 -0
  283. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/utils/__init__.py +0 -0
  284. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/utils/config_hash.py +0 -0
  285. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/utils/config_write_lock.py +0 -0
  286. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/utils/data_paths.py +0 -0
  287. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/utils/device_registry_semantics.py +0 -0
  288. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/utils/domain_handlers.py +0 -0
  289. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/utils/entity_membership.py +0 -0
  290. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/utils/fuzzy_search.py +0 -0
  291. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/utils/kill_signal_diagnostics.py +0 -0
  292. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/utils/operation_manager.py +0 -0
  293. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/utils/python_sandbox.py +0 -0
  294. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/utils/skill_loader.py +0 -0
  295. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/utils/usage_logger.py +0 -0
  296. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/visibility/__init__.py +0 -0
  297. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/visibility/enforcement.py +0 -0
  298. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/visibility/model.py +0 -0
  299. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/visibility/persistence.py +0 -0
  300. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp/visibility/resolver.py +0 -0
  301. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp_dev.egg-info/SOURCES.txt +0 -0
  302. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp_dev.egg-info/dependency_links.txt +0 -0
  303. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp_dev.egg-info/entry_points.txt +0 -0
  304. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp_dev.egg-info/requires.txt +0 -0
  305. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/src/ha_mcp_dev.egg-info/top_level.txt +0 -0
  306. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/tests/__init__.py +0 -0
  307. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/tests/test_constants.py +0 -0
  308. {ha_mcp_dev-8.4.3.dev2546 → ha_mcp_dev-8.4.3.dev2550}/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.4.3.dev2546
3
+ Version: 8.4.3.dev2550
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
@@ -380,6 +380,8 @@ Set ENABLE_TOOL_SEARCH=true (or toggle the option in the HA app). The full catal
380
380
 
381
381
  The proxy split lets MCP clients apply different permission policies per category (e.g. auto-approve reads, prompt for writes, confirm deletes) without parsing tool docstrings.
382
382
 
383
+ A `ha_manage_*` tool combines several operations, so it is reachable from more than one proxy: `ha_call_write_tool` and `ha_call_delete_tool` run the whole tool, while `ha_call_read_tool` runs only the read actions Read Only Mode approves (the same per-call verdict), so a manage tool with no approved read actions is not reachable there. Search results list each proxy the tool can be reached through. In Read Only Mode only `ha_call_read_tool` is listed; the other two still answer a client that holds them in a cached tool list, and any write they carry gets the Read Only Mode error rather than `Unknown tool`.
384
+
383
385
  | Setting | Default | Description |
384
386
  |---------|---------|-------------|
385
387
  | `ENABLE_TOOL_SEARCH` | `false` | Replace full tool catalog with search-based discovery (tools deferred behind on-demand search). |
@@ -394,7 +396,7 @@ The proxy split lets MCP clients apply different permission policies per categor
394
396
 
395
397
  Leave it off in clients with deferred tool loading (claude.ai, Claude Desktop, Claude Code); the full catalog has no idle cost there, direct calls skip the search step, and the client's built-in tool search is the better choice — there is no benefit to running ha-mcp's on top of it. Whether tools are deferred depends on the client and model combination: the same model can behave differently per client — GitHub Copilot CLI running Claude Sonnet/Opus inlines the full catalog and still benefits from tool search here. Some Codex models and ChatGPT include deferred tools too — check your client/model directly to confirm its features so you don't leave this enabled unnecessarily.
396
398
 
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**.
399
+ > 🔄 **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 fail when called (`Unknown tool`, or the Read Only Mode error for a write tool that mode hides). 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
400
 
399
401
  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
402
 
@@ -348,6 +348,8 @@ Set ENABLE_TOOL_SEARCH=true (or toggle the option in the HA app). The full catal
348
348
 
349
349
  The proxy split lets MCP clients apply different permission policies per category (e.g. auto-approve reads, prompt for writes, confirm deletes) without parsing tool docstrings.
350
350
 
351
+ A `ha_manage_*` tool combines several operations, so it is reachable from more than one proxy: `ha_call_write_tool` and `ha_call_delete_tool` run the whole tool, while `ha_call_read_tool` runs only the read actions Read Only Mode approves (the same per-call verdict), so a manage tool with no approved read actions is not reachable there. Search results list each proxy the tool can be reached through. In Read Only Mode only `ha_call_read_tool` is listed; the other two still answer a client that holds them in a cached tool list, and any write they carry gets the Read Only Mode error rather than `Unknown tool`.
352
+
351
353
  | Setting | Default | Description |
352
354
  |---------|---------|-------------|
353
355
  | `ENABLE_TOOL_SEARCH` | `false` | Replace full tool catalog with search-based discovery (tools deferred behind on-demand search). |
@@ -362,7 +364,7 @@ The proxy split lets MCP clients apply different permission policies per categor
362
364
 
363
365
  Leave it off in clients with deferred tool loading (claude.ai, Claude Desktop, Claude Code); the full catalog has no idle cost there, direct calls skip the search step, and the client's built-in tool search is the better choice — there is no benefit to running ha-mcp's on top of it. Whether tools are deferred depends on the client and model combination: the same model can behave differently per client — GitHub Copilot CLI running Claude Sonnet/Opus inlines the full catalog and still benefits from tool search here. Some Codex models and ChatGPT include deferred tools too — check your client/model directly to confirm its features so you don't leave this enabled unnecessarily.
364
366
 
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**.
367
+ > 🔄 **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 fail when called (`Unknown tool`, or the Read Only Mode error for a write tool that mode hides). 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
368
 
367
369
  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
370
 
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "ha-mcp-dev"
7
- version = "8.4.3.dev2546"
7
+ version = "8.4.3.dev2550"
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
@@ -251,7 +251,7 @@
251
251
  "backup.fields.auto_backup_retain_per_entity.label": "Zachovat na entitu",
252
252
  "backup.fields.auto_backup_retain_per_entity.help": "Maximální počet snímků uchovávaných na entitu (1–10000). Starší se postupně odstraňují.",
253
253
  "backup.fields.auto_backup_dir.label": "Přepsání adresáře záloh",
254
- "backup.fields.auto_backup_dir.help": "Ponechte prázdné pro použití výchozího adresáře; jinak zadejte absolutní cestu.",
254
+ "backup.fields.auto_backup_dir.help": "Ponechte prázdné pro výchozí hodnotu: /data/ha_mcp_backups v aplikaci (doplňku), jinak podadresář backups datového adresáře ha-mcp; instalace, která již obsahuje zálohy pod dřívějším výchozím nastavením, jej nadále používá. Používaný adresář se zobrazuje ve stavu zálohy. Nebo zadejte absolutní cestu.",
255
255
  "backup.fields.auto_backup_calendar_lookahead_days.label": "Předstih kalendáře (dny)",
256
256
  "backup.fields.auto_backup_calendar_lookahead_days.help": "Jak daleko dopředu se mají dotazovat události kalendáře pro snímky před úpravou. Rozsah 1–365.",
257
257
  "backup.fields.enable_snapshot_delete.label": "Povolit smazání snímků",
@@ -288,7 +288,7 @@
288
288
  "backup.bulk.confirm": "Smazat všechny zálohy odpovídající: {filters}?",
289
289
  "backup.bulk.deleted": "Smazáno {count} záloh",
290
290
  "filesystem.custom.title": "Vlastní cesty k souborům (pokročilé)",
291
- "filesystem.custom.help": "Další cesty (jedna na řádek), které nástroje pro práci se soubory mohou <strong>číst a zapisovat</strong>. Jsou podporovány cesty relativní ke konfiguraci, včetně přesných názvů souborů, jako je <code>sensor.yaml</code>, a cesty pod adresáři <code>/share</code>, <code>/media</code>, <code>/ssl</code> a <code>/backup</code>. Každá položka povolená tato cesta cokoliv pod ní. Tyto cesty můžete také spravovat v Home Assistant v části Nastavení → Zařízení a služby → HA-MCP Custom Component → HA-MCP File & YAML Tools → Konfigurovat; obě umístění upravují stejné nastavení a změny se projeví okamžitě.",
291
+ "filesystem.custom.help": "Další cesty (jedna na řádek), které mohou souborové nástroje <strong>číst a zapisovat</strong>. Jsou podporovány cesty relativní ke konfiguraci včetně přesných názvů souborů, jako je <code>sensor.yaml</code>, a cesty pod <code>/share</code>, <code>/media</code>, <code>/ssl</code> a <code>/backup</code>. Každá položka povolenou cestu a vše pod ní. Položky se porovnávají doslovně; zástupné znaky jako <code>*</code> nejsou podporovány. Tyto cesty můžete také spravovat v Home Assistant v části Nastavení → Zařízení a služby → HA-MCP Custom Component → HA-MCP File & YAML Tools → Konfigurovat; obě umístění upravují stejné nastavení a změny se projeví okamžitě.",
292
292
  "filesystem.custom.blocked": "Vždy blokováno: {paths}, procházení cest (<code>..</code>) a absolutní cesty mimo povolené svazky HAOS.",
293
293
  "filesystem.custom.enable_first": "Povolte beta funkce a nástroje souborového systému výše pro úpravy.",
294
294
  "filesystem.custom.unavailable": "Vlastní cesty jsou aktuálně nedostupné.",
@@ -631,10 +631,6 @@
631
631
  "title": "Získat trasování automatizací",
632
632
  "description": "Načíst trasování spuštění pro automatizace a skripty k ladění problémů."
633
633
  },
634
- "ha_get_blueprint": {
635
- "title": "Získat blueprint",
636
- "description": "Získat informace o blueprintu – vypsat všechny blueprinty nebo získat podrobnosti o konkrétním."
637
- },
638
634
  "ha_get_camera_image": {
639
635
  "title": "Získat obraz z kamery",
640
636
  "description": "Načíst snímek obrazu z entity kamery Home Assistant."
@@ -695,10 +691,6 @@
695
691
  "title": "Získat zónu",
696
692
  "description": "Získat informace o zóně – vypsat všechny zóny nebo získat podrobnosti o konkrétní."
697
693
  },
698
- "ha_import_blueprint": {
699
- "title": "Importovat blueprint",
700
- "description": "Importovat blueprint z URL."
701
- },
702
694
  "ha_list_files": {
703
695
  "title": "Vypsat soubory",
704
696
  "description": "Vypsat soubory v adresáři v rámci konfigurace Home Assistant."
@@ -719,6 +711,10 @@
719
711
  "title": "Spravovat zálohy",
720
712
  "description": "Polymorfní nástroj pro zálohování. Viz popis nástroje pro směrovací matici."
721
713
  },
714
+ "ha_manage_blueprints": {
715
+ "title": "Správa šablon",
716
+ "description": "Správa šablon Home Assistant — výpis, čtení, import, uložení, smazání nebo vykreslení samostatné konfigurace."
717
+ },
722
718
  "ha_manage_custom_tool": {
723
719
  "title": "Vlastní nástroj",
724
720
  "description": "Vytvořit a spustit vlastní nástroj v sandboxu, nebo spravovat uložené vlastní nástroje (režim kódu)."
@@ -251,7 +251,7 @@
251
251
  "backup.fields.auto_backup_retain_per_entity.label": "Behalten pro Entität",
252
252
  "backup.fields.auto_backup_retain_per_entity.help": "Maximale Snapshots, die pro Entität behalten werden (1-10000). Ältere rotieren heraus.",
253
253
  "backup.fields.auto_backup_dir.label": "Backup-Verzeichnis-Überschreibung",
254
- "backup.fields.auto_backup_dir.help": "Lasse leer, um das Standardverzeichnis zu verwenden; gib andernfalls einen absoluten Pfad ein.",
254
+ "backup.fields.auto_backup_dir.help": "Leer lassen für den Standard: /data/ha_mcp_backups im Add-on, ansonsten das Unterverzeichnis backups/ des ha-mcp-Datenverzeichnisses; eine Installation, die bereits Schnappschüsse unter dem früheren Standard speichert, verwendet diesen weiterhin. Das verwendete Verzeichnis wird im Backup-Status angezeigt. Oder gib einen absoluten Pfad ein.",
255
255
  "backup.fields.auto_backup_calendar_lookahead_days.label": "Kalender-Vorschau (Tage)",
256
256
  "backup.fields.auto_backup_calendar_lookahead_days.help": "Wie weit voraus Kalenderereignisse für Pre-Edit-Snapshots abgefragt werden. Bereich 1-365.",
257
257
  "backup.fields.enable_snapshot_delete.label": "Snapshot-Löschung erlauben",
@@ -288,7 +288,7 @@
288
288
  "backup.bulk.confirm": "Alle Backups löschen, die übereinstimmen: {filters}?",
289
289
  "backup.bulk.deleted": "Gelöschte Backups: {count}",
290
290
  "filesystem.custom.title": "Benutzerdefinierte Dateisystempfade (fortgeschritten)",
291
- "filesystem.custom.help": "Zusätzliche Pfade (einer pro Zeile), die von Dateitools <strong>gelesen und beschrieben</strong> werden dürfen. Konfigurationsrelative Pfade, einschließlich exakter Dateinamen wie <code>sensor.yaml</code> sowie Pfade unter <code>/share</code>, <code>/media</code>, <code>/ssl</code> und <code>/backup</code> werden unterstützt. Jeder Eintrag erlaubt diesen Pfad und alles darunter. Du kannst diese Pfade auch in Home Assistant unter Einstellungen → Geräte & Dienste → HA-MCP Custom Component → HA-MCP File & YAML Tools → Konfigurieren verwalten; beide Orte bearbeiten dieselbe Einstellung und übernehmen Änderungen sofort.",
291
+ "filesystem.custom.help": "Zusätzliche Pfade (einer pro Zeile), die Dateitools <strong>lesen und beschreiben</strong> dürfen. Konfigurationsrelative Pfade, einschließlich exakter Dateinamen wie <code>sensor.yaml</code>, sowie Pfade unter <code>/share</code>, <code>/media</code>, <code>/ssl</code> und <code>/backup</code> werden unterstützt. Jeder Eintrag erlaubt diesen Pfad und alles darunter. Einträge werden wörtlich abgeglichen; Platzhalter wie <code>*</code> werden nicht unterstützt. Du kannst diese Pfade auch in Home Assistant unter Einstellungen → Geräte & Dienste → HA-MCP Custom Component → HA-MCP File & YAML Tools → Konfigurieren verwalten; beide Orte bearbeiten dieselbe Einstellung und wenden Änderungen sofort an.",
292
292
  "filesystem.custom.blocked": "Immer blockiert: {paths}, Pfad-Traversierung (<code>..</code>) und absolute Pfade außerhalb erlaubter HAOS-Volumes.",
293
293
  "filesystem.custom.enable_first": "Aktiviere zuerst Beta-Funktionen und Dateisystem-Tools oben zum Bearbeiten.",
294
294
  "filesystem.custom.unavailable": "Benutzerdefinierte Pfade sind derzeit nicht verfügbar.",
@@ -662,10 +662,6 @@
662
662
  "title": "Traces abrufen",
663
663
  "description": "Ruft Ausführungstraces von Automatisierungen und Skripten zur Diagnose ab."
664
664
  },
665
- "ha_get_blueprint": {
666
- "title": "Blueprint abrufen",
667
- "description": "Zeigt die Liste der Blueprints oder Details zu einem bestimmten Blueprint."
668
- },
669
665
  "ha_get_camera_image": {
670
666
  "title": "Kamerabild abrufen",
671
667
  "description": "Ruft das aktuelle Standbild von einer Home-Assistant-Kamera ab."
@@ -726,10 +722,6 @@
726
722
  "title": "Zonen abrufen",
727
723
  "description": "Zeigt alle geografischen Zonen oder Details zu einer Zone."
728
724
  },
729
- "ha_import_blueprint": {
730
- "title": "Blueprint importieren",
731
- "description": "Importiert einen Blueprint aus einer URL in Home Assistant."
732
- },
733
725
  "ha_list_files": {
734
726
  "title": "Dateien auflisten",
735
727
  "description": "Zeigt Dateien in einem erlaubten Konfigurationsverzeichnis."
@@ -750,6 +742,10 @@
750
742
  "title": "Backups verwalten",
751
743
  "description": "Erstellt, zeigt, stellt wieder her und löscht Backups."
752
744
  },
745
+ "ha_manage_blueprints": {
746
+ "title": "Blueprints verwalten",
747
+ "description": "Home Assistant Blueprints verwalten — auflisten, lesen, importieren, speichern, löschen oder eine eigenständige Konfiguration rendern."
748
+ },
753
749
  "ha_manage_custom_tool": {
754
750
  "title": "Benutzerdefiniertes Tool",
755
751
  "description": "Erstellt und führt Code in einer Sandbox aus und verwaltet gespeicherte Tools."
@@ -251,7 +251,7 @@
251
251
  "backup.fields.auto_backup_retain_per_entity.label": "Konservi po ento",
252
252
  "backup.fields.auto_backup_retain_per_entity.help": "Maksimumaj momentfotoj konservitaj po ento (1–10000). Pli malnovaj elrotacias.",
253
253
  "backup.fields.auto_backup_dir.label": "Anstataŭa sekurkopia dosierujo",
254
- "backup.fields.auto_backup_dir.help": "Lasu malplena por uzi la defaŭltan dosierujon; alie enigu absolutan vojon.",
254
+ "backup.fields.auto_backup_dir.help": "Lasu malplena por la defaŭlto: /data/ha_mcp_backups en la aplikaĵo (aldonaĵo), alie la subdosierujo backups/ de la ha-mcp datendosierujo; instalado, kiu jam konservas momentfotojn sub la pli frua defaŭlto, plu uzas ĝin. La uzata dosierujo estas montrata en la sekurkopia statuso. Aŭ enmetu absolutan vojon.",
255
255
  "backup.fields.auto_backup_calendar_lookahead_days.label": "Kalendara antaŭvido (tagoj)",
256
256
  "backup.fields.auto_backup_calendar_lookahead_days.help": "Kiom antaŭen demandi kalendarajn eventojn por antaŭ-redaktaj momentfotoj. Intervalo 1–365.",
257
257
  "backup.fields.enable_snapshot_delete.label": "Permesi forigon de momentfotoj",
@@ -288,7 +288,7 @@
288
288
  "backup.bulk.confirm": "Forigi ĉiujn sekurkopiojn kongruantajn: {filters}?",
289
289
  "backup.bulk.deleted": "Forigitaj {count} sekurkopio(j)n",
290
290
  "filesystem.custom.title": "Propraj dosiersistemaj vojoj (disvolvita)",
291
- "filesystem.custom.help": "Ekstraj vojoj (unu po linio) kiujn dosieraj iloj rajtas <strong>legi kaj skribi</strong>. Agord-rilataj vojoj, inkluzive de ekzaktaj dosiernomoj kiel <code>sensor.yaml</code>, kaj vojoj sub <code>/share</code>, <code>/media</code>, <code>/ssl</code>, kaj <code>/backup</code> estas subtenataj. Ĉiu eniro permesas tiun vojon kaj ĉion sub ĝi. Vi ankaŭ povas administri ĉi tiujn vojojn en Home Assistant sub Agordoj → Aparatoj kaj Servoj → HA-MCP Custom Component → HA-MCP File & YAML Tools → Agordi; ambaŭ lokoj redaktas la saman agordon kaj tuj aplikas ŝanĝojn.",
291
+ "filesystem.custom.help": "Kromaj vojoj (unu po linio), kiujn dosieraj iloj rajtas <strong>legi kaj skribi</strong>. Agord-rilataj vojoj, inkluzive de ekzaktaj dosiernomoj kiel <code>sensor.yaml</code>, kaj vojoj sub <code>/share</code>, <code>/media</code>, <code>/ssl</code>, kaj <code>/backup</code> estas subtenataj. Ĉiu eniro permesas tiun vojon kaj ĉion sub ĝi. Eniroj estas komparataj laŭvorte; ĵokeroj kiel <code>*</code> ne estas subtenataj. Vi ankaŭ povas administri ĉi tiujn vojojn en Home Assistant sub Agordoj → Aparatoj kaj Servoj → HA-MCP Custom Component → HA-MCP File & YAML Tools → Agordi; ambaŭ lokoj redaktas la saman agordon kaj tuj aplikas ŝanĝojn.",
292
292
  "filesystem.custom.blocked": "Ĉiam blokita: {paths}, trairo de vojo (<code>..</code>), kaj absolutaj vojoj ekster permesitaj HAOS-volumoj.",
293
293
  "filesystem.custom.enable_first": "Ebligu beta-funkciojn kaj dosiersistemajn ilojn supre por redakti.",
294
294
  "filesystem.custom.unavailable": "Propraj vojoj nuntempe ne disponeblas.",
@@ -631,10 +631,6 @@
631
631
  "title": "Akiri Aŭtomatigajn Spurojn",
632
632
  "description": "Reakiru ekzekutajn spurojn por aŭtomatigoj kaj skriptoj por sencimigi problemojn."
633
633
  },
634
- "ha_get_blueprint": {
635
- "title": "Akiri Skizon",
636
- "description": "Akiru skizan informon - listigu ĉiujn skizojn aŭ akiru detalojn por specifa."
637
- },
638
634
  "ha_get_camera_image": {
639
635
  "title": "Akiri Kameran Bildon",
640
636
  "description": "Reakiru momentfoton de bildo de kameraa ento de Home Assistant."
@@ -695,10 +691,6 @@
695
691
  "title": "Akiri Zonon",
696
692
  "description": "Akiru zonan informon - listigu ĉiujn zonojn aŭ akiru detalojn por specifa."
697
693
  },
698
- "ha_import_blueprint": {
699
- "title": "Importi Skizon",
700
- "description": "Importu skizon el URL."
701
- },
702
694
  "ha_list_files": {
703
695
  "title": "Listigi Dosierojn",
704
696
  "description": "Listigu dosierojn en dosierujo ene de la agordo de Home Assistant."
@@ -719,6 +711,10 @@
719
711
  "title": "Administri Rezervojn",
720
712
  "description": "Polimorfa rezerva ilo. Vidu la ilopriskribon por la vojiga matrico."
721
713
  },
714
+ "ha_manage_blueprints": {
715
+ "title": "Administri Skizojn",
716
+ "description": "Administri Home Assistant skizojn — listigi, legi, importi, konservi, forigi, aŭ vidigi sendependan agordon."
717
+ },
722
718
  "ha_manage_custom_tool": {
723
719
  "title": "Propra Ilo",
724
720
  "description": "Krei kaj ruli propran ilon en sablokesto, aŭ administri konservitajn proprajn ilojn (koda reĝimo)."
@@ -251,7 +251,7 @@
251
251
  "backup.fields.auto_backup_retain_per_entity.label": "Conservar por entidad",
252
252
  "backup.fields.auto_backup_retain_per_entity.help": "Número máximo de instantáneas conservadas por entidad (1–10000). Las más antiguas se rotan.",
253
253
  "backup.fields.auto_backup_dir.label": "Directorio de copias alternativo",
254
- "backup.fields.auto_backup_dir.help": "Déjalo vacío para usar el directorio predeterminado; si no, introduce una ruta absoluta.",
254
+ "backup.fields.auto_backup_dir.help": "Déjalo vacío para usar el valor predeterminado: /data/ha_mcp_backups en la App (complemento), o el subdirectorio backups/ del directorio de datos de ha-mcp en caso contrario; una instalación que ya tenga copias de seguridad bajo el valor predeterminado anterior seguirá utilizándolo. El directorio en uso se muestra en el estado de la copia de seguridad. O introduce una ruta absoluta.",
255
255
  "backup.fields.auto_backup_calendar_lookahead_days.label": "Antelación del calendario (días)",
256
256
  "backup.fields.auto_backup_calendar_lookahead_days.help": "Con cuánta antelación se consultan los eventos de calendario para las instantáneas previas a la edición. Rango 1–365.",
257
257
  "backup.fields.enable_snapshot_delete.label": "Permitir la eliminación de instantáneas",
@@ -288,7 +288,7 @@
288
288
  "backup.bulk.confirm": "¿Eliminar todas las copias de seguridad que coinciden con: {filters}?",
289
289
  "backup.bulk.deleted": "Se han eliminado {count} copia(s) de seguridad",
290
290
  "filesystem.custom.title": "Rutas de sistema de archivos personalizadas (avanzado)",
291
- "filesystem.custom.help": "Rutas adicionales (una por línea) que las herramientas de archivos pueden <strong>leer y escribir</strong>. Se admiten rutas relativas a la configuración, incluidos nombres de archivo exactos como <code>sensor.yaml</code>, y rutas bajo <code>/share</code>, <code>/media</code>, <code>/ssl</code> y <code>/backup</code>. Cada entrada permite esa ruta y todo lo que esté debajo de ella. También puedes administrar estas rutas en Home Assistant en Ajustes → Dispositivos y servicios → HA-MCP Custom Component → HA-MCP File & YAML Tools → Configurar; ambas ubicaciones editan la misma configuración y aplican los cambios de inmediato.",
291
+ "filesystem.custom.help": "Rutas adicionales (una por línea) que las herramientas de archivos pueden <strong>leer y escribir</strong>. Se admiten rutas relativas a la configuración, incluidos nombres de archivo exactos como <code>sensor.yaml</code>, y rutas bajo <code>/share</code>, <code>/media</code>, <code>/ssl</code> y <code>/backup</code>. Cada entrada permite acceder a esa ruta y a todo lo que contenga. Las entradas se evalúan literalmente; no se admiten comodines como <code>*</code>. También puedes gestionar estas rutas en Home Assistant en Ajustes → Dispositivos y servicios → HA-MCP Custom Component → HA-MCP File & YAML Tools → Configurar; ambas ubicaciones modifican la misma configuración y aplican los cambios de inmediato.",
292
292
  "filesystem.custom.blocked": "Siempre bloqueados: {paths}, el recorrido de rutas (<code>..</code>) y las rutas absolutas fuera de los volúmenes de HAOS permitidos.",
293
293
  "filesystem.custom.enable_first": "Activa arriba las funciones beta y las herramientas de sistema de archivos para poder editar.",
294
294
  "filesystem.custom.unavailable": "Las rutas personalizadas no están disponibles actualmente.",
@@ -662,10 +662,6 @@
662
662
  "title": "Obtener trazas de automatización",
663
663
  "description": "Consulta las trazas de ejecución de automatizaciones y scripts para depurar problemas."
664
664
  },
665
- "ha_get_blueprint": {
666
- "title": "Obtener plano",
667
- "description": "Muestra todos los planos o los detalles de uno concreto."
668
- },
669
665
  "ha_get_camera_image": {
670
666
  "title": "Obtener imagen de cámara",
671
667
  "description": "Captura una imagen de una entidad de cámara de Home Assistant."
@@ -726,10 +722,6 @@
726
722
  "title": "Obtener zona",
727
723
  "description": "Lista todas las zonas u obtiene los detalles de una concreta."
728
724
  },
729
- "ha_import_blueprint": {
730
- "title": "Importar plano",
731
- "description": "Importa un plano desde una URL."
732
- },
733
725
  "ha_list_files": {
734
726
  "title": "Listar archivos",
735
727
  "description": "Lista los archivos de un directorio dentro del directorio de configuración de Home Assistant."
@@ -750,6 +742,10 @@
750
742
  "title": "Gestionar copias de seguridad",
751
743
  "description": "Herramienta polimórfica de copias de seguridad. Consulta su descripción para ver la matriz de enrutado."
752
744
  },
745
+ "ha_manage_blueprints": {
746
+ "title": "Gestionar Blueprints",
747
+ "description": "Gestiona los blueprints de Home Assistant: lista, lee, importa, guarda, elimina o renderiza una configuración independiente."
748
+ },
753
749
  "ha_manage_custom_tool": {
754
750
  "title": "Herramienta personalizada",
755
751
  "description": "Crea y ejecuta una herramienta personalizada en un entorno aislado, o gestiona las guardadas."
@@ -251,7 +251,7 @@
251
251
  "backup.fields.auto_backup_retain_per_entity.label": "Conserver par entité",
252
252
  "backup.fields.auto_backup_retain_per_entity.help": "Nombre maximum d'instantanés conservés par entité (1–10000). Les plus anciens sont retirés.",
253
253
  "backup.fields.auto_backup_dir.label": "Remplacement du répertoire de sauvegarde",
254
- "backup.fields.auto_backup_dir.help": "Laissez vide pour utiliser le répertoire par défaut ; sinon entrez un chemin absolu.",
254
+ "backup.fields.auto_backup_dir.help": "Laissez vide pour la valeur par défaut : /data/ha_mcp_backups dans l'App (add-on), sinon le sous-répertoire backups/ du répertoire de données ha-mcp ; une installation qui contient déjà des instantanés sous l'ancienne valeur par défaut continue de l'utiliser. Le répertoire utilisé est affiché dans l'état des sauvegardes. Ou entrez un chemin absolu.",
255
255
  "backup.fields.auto_backup_calendar_lookahead_days.label": "Prévision du calendrier (jours)",
256
256
  "backup.fields.auto_backup_calendar_lookahead_days.help": "Jusqu'où interroger les événements du calendrier pour les instantanés pré-édition. Plage 1–365.",
257
257
  "backup.fields.enable_snapshot_delete.label": "Autoriser la suppression d'instantanés",
@@ -288,7 +288,7 @@
288
288
  "backup.bulk.confirm": "Supprimer toutes les sauvegardes correspondant à : {filters} ?",
289
289
  "backup.bulk.deleted": "{count} sauvegarde(s) supprimée(s)",
290
290
  "filesystem.custom.title": "Chemins de fichiers personnalisés (avancé)",
291
- "filesystem.custom.help": "Chemins supplémentaires (un par ligne) que les outils de fichiers sont autorisés à <strong>lire et écrire</strong>. Les chemins relatifs à la configuration, y compris les noms de fichiers exacts tels que <code>sensor.yaml</code>, ainsi que les chemins sous <code>/share</code>, <code>/media</code>, <code>/ssl</code> et <code>/backup</code> sont pris en charge. Chaque entrée autorise ce chemin ainsi que tout ce qui s'y trouve en dessous. Vous pouvez également gérer ces chemins dans Home Assistant sous Paramètres → Appareils et services → HA-MCP Custom Component → HA-MCP File & YAML Tools → Configurer ; les deux emplacements modifient le même paramètre et appliquent les modifications immédiatement.",
291
+ "filesystem.custom.help": "Chemins supplémentaires (un par ligne) que les outils de fichiers peuvent <strong>lire et écrire</strong>. Les chemins relatifs à la configuration, y compris les noms de fichiers exacts tels que <code>sensor.yaml</code>, et les chemins sous <code>/share</code>, <code>/media</code>, <code>/ssl</code> et <code>/backup</code> sont pris en charge. Chaque entrée autorise ce chemin et tout ce qui se trouve en dessous. Les entrées sont comparées littéralement ; les caractères génériques tels que <code>*</code> ne sont pas pris en charge. Vous pouvez également gérer ces chemins dans Home Assistant sous Paramètres → Appareils et services → HA-MCP Custom Component → HA-MCP File & YAML Tools → Configurer ; les deux emplacements modifient le même paramètre et appliquent les modifications immédiatement.",
292
292
  "filesystem.custom.blocked": "Toujours bloqués : {paths}, les traversées de chemin (<code>..</code>) et les chemins absolus en dehors des volumes HAOS autorisés.",
293
293
  "filesystem.custom.enable_first": "Activez d'abord les fonctionnalités bêta et les outils de système de fichiers ci-dessus pour modifier.",
294
294
  "filesystem.custom.unavailable": "Les chemins personnalisés sont actuellement indisponibles.",
@@ -662,10 +662,6 @@
662
662
  "title": "Obtenir les traces",
663
663
  "description": "Récupère les traces d'exécution des automatisations et scripts pour le diagnostic."
664
664
  },
665
- "ha_get_blueprint": {
666
- "title": "Obtenir le blueprint",
667
- "description": "Affiche la liste des blueprints ou les détails d'un blueprint spécifique."
668
- },
669
665
  "ha_get_camera_image": {
670
666
  "title": "Obtenir l'image de la caméra",
671
667
  "description": "Récupère l'image fixe actuelle d'une caméra Home Assistant."
@@ -726,10 +722,6 @@
726
722
  "title": "Obtenir les zones",
727
723
  "description": "Affiche toutes les zones géographiques ou les détails d'une zone."
728
724
  },
729
- "ha_import_blueprint": {
730
- "title": "Importer un blueprint",
731
- "description": "Importe un blueprint depuis une URL dans Home Assistant."
732
- },
733
725
  "ha_list_files": {
734
726
  "title": "Lister les fichiers",
735
727
  "description": "Affiche les fichiers dans un répertoire de configuration autorisé."
@@ -750,6 +742,10 @@
750
742
  "title": "Gérer les sauvegardes",
751
743
  "description": "Crée, affiche, restaure et supprime les sauvegardes."
752
744
  },
745
+ "ha_manage_blueprints": {
746
+ "title": "Gérer les blueprints",
747
+ "description": "Gérer les blueprints Home Assistant — lister, lire, importer, enregistrer, supprimer ou rendre une configuration autonome."
748
+ },
753
749
  "ha_manage_custom_tool": {
754
750
  "title": "Outil personnalisé",
755
751
  "description": "Crée et exécute du code dans un bac à sable et gère les outils enregistrés."
@@ -251,7 +251,7 @@
251
251
  "backup.fields.auto_backup_retain_per_entity.label": "Snapshot conservati per entità",
252
252
  "backup.fields.auto_backup_retain_per_entity.help": "Numero massimo di snapshot conservati per entità (1–10000). I più vecchi vengono eliminati a rotazione.",
253
253
  "backup.fields.auto_backup_dir.label": "Cartella di backup personalizzata",
254
- "backup.fields.auto_backup_dir.help": "Lascia vuoto per usare la cartella predefinita; altrimenti inserisci un percorso assoluto.",
254
+ "backup.fields.auto_backup_dir.help": "Lascia vuoto per il valore predefinito: /data/ha_mcp_backups nell'App (add-on), altrimenti la sottodirectory backups/ della directory dati di ha-mcp; un'installazione che contiene già backup con il precedente valore predefinito continuerà a usarlo. La directory in uso è mostrata nello stato del backup. Oppure inserisci un percorso assoluto.",
255
255
  "backup.fields.auto_backup_calendar_lookahead_days.label": "Anticipo del calendario (giorni)",
256
256
  "backup.fields.auto_backup_calendar_lookahead_days.help": "Con quanto anticipo interrogare gli eventi del calendario per gli snapshot precedenti a una modifica. Intervallo 1–365.",
257
257
  "backup.fields.enable_snapshot_delete.label": "Consenti l'eliminazione degli snapshot",
@@ -288,7 +288,7 @@
288
288
  "backup.bulk.confirm": "Eliminare tutti i backup che corrispondono a: {filters}?",
289
289
  "backup.bulk.deleted": "Backup eliminati: {count}",
290
290
  "filesystem.custom.title": "Percorsi di file system personalizzati (avanzato)",
291
- "filesystem.custom.help": "Percorsi aggiuntivi (uno per riga) che gli strumenti per i file possono <strong>leggere e scrivere</strong>. Sono supportati i percorsi relativi alla configurazione, inclusi nomi di file esatti come <code>sensor.yaml</code>, e i percorsi sotto <code>/share</code>, <code>/media</code>, <code>/ssl</code> e <code>/backup</code>. Ogni voce consente l'accesso a quel percorso e a tutto ciò che si trova al di sotto di esso. Puoi anche gestire questi percorsi in Home Assistant in Impostazioni → Dispositivi e servizi → HA-MCP Custom Component → HA-MCP File & YAML Tools → Configura; entrambe le posizioni modificano la stessa impostazione e applicano le modifiche immediatamente.",
291
+ "filesystem.custom.help": "Percorsi aggiuntivi (uno per riga) che gli strumenti di file possono <strong>leggere e scrivere</strong>. Sono supportati i percorsi relativi alla configurazione, inclusi nomi di file esatti come <code>sensor.yaml</code>, e i percorsi sotto <code>/share</code>, <code>/media</code>, <code>/ssl</code> e <code>/backup</code>. Ogni voce consente l'accesso a quel percorso e a tutto ciò che si trova al di sotto di esso. Le voci vengono abbinate letteralmente; i caratteri jolly come <code>*</code> non sono supportati. Puoi anche gestire questi percorsi in Home Assistant andando su Impostazioni → Dispositivi e servizi → HA-MCP Custom Component → HA-MCP File & YAML Tools → Configura; entrambe le posizioni modificano la stessa impostazione e applicano le modifiche immediatamente.",
292
292
  "filesystem.custom.blocked": "Sempre bloccati: {paths}, il path traversal (<code>..</code>) e i percorsi assoluti al di fuori dei volumi HAOS consentiti.",
293
293
  "filesystem.custom.enable_first": "Attiva le funzioni beta e gli strumenti per il filesystem qui sopra per poter modificare.",
294
294
  "filesystem.custom.unavailable": "I percorsi personalizzati non sono attualmente disponibili.",
@@ -662,10 +662,6 @@
662
662
  "title": "Ottieni le tracce delle automazioni",
663
663
  "description": "Recupera le tracce di esecuzione di automazioni e script per analizzare i problemi."
664
664
  },
665
- "ha_get_blueprint": {
666
- "title": "Ottieni un blueprint",
667
- "description": "Ottiene informazioni sui blueprint: elenca tutti i blueprint o restituisce i dettagli di uno specifico."
668
- },
669
665
  "ha_get_camera_image": {
670
666
  "title": "Ottieni l'immagine di una telecamera",
671
667
  "description": "Recupera un'istantanea da un'entità telecamera di Home Assistant."
@@ -726,10 +722,6 @@
726
722
  "title": "Ottieni una zona",
727
723
  "description": "Ottiene informazioni sulle zone: le elenca tutte o restituisce i dettagli di una specifica."
728
724
  },
729
- "ha_import_blueprint": {
730
- "title": "Importa un blueprint",
731
- "description": "Importa un blueprint da un URL."
732
- },
733
725
  "ha_list_files": {
734
726
  "title": "Elenca i file",
735
727
  "description": "Elenca i file di una cartella all'interno della cartella di configurazione di Home Assistant."
@@ -750,6 +742,10 @@
750
742
  "title": "Gestisci i backup",
751
743
  "description": "Strumento di backup polimorfico. Vedi la descrizione dello strumento per la matrice di instradamento."
752
744
  },
745
+ "ha_manage_blueprints": {
746
+ "title": "Gestisci i blueprint",
747
+ "description": "Gestisci i blueprint di Home Assistant: elenca, leggi, importa, salva, elimina o genera una configurazione indipendente."
748
+ },
753
749
  "ha_manage_custom_tool": {
754
750
  "title": "Strumento personalizzato",
755
751
  "description": "Crea ed esegue uno strumento personalizzato in una sandbox, oppure gestisce gli strumenti personalizzati salvati."
@@ -251,7 +251,7 @@
251
251
  "backup.fields.auto_backup_retain_per_entity.label": "엔티티당 보관 개수",
252
252
  "backup.fields.auto_backup_retain_per_entity.help": "엔티티당 보관하는 최대 스냅숏 수(1~10000)입니다. 오래된 것부터 밀려납니다.",
253
253
  "backup.fields.auto_backup_dir.label": "백업 디렉터리 재정의",
254
- "backup.fields.auto_backup_dir.help": "기본 디렉터리를 쓰려면 비워 두고, 그렇지 않으면 절대 경로를 입력하세요.",
254
+ "backup.fields.auto_backup_dir.help": "기본값을 사용하려면 비워 두세요. 앱(애드온)의 경우 /data/ha_mcp_backups가 사용되며, 그 외에는 ha-mcp 데이터 디렉터리 내의 backups/ 하위 디렉터리가 사용됩니다. 이전 기본값에 이미 스냅샷이 있는 설치 건은 계속 해당 경로를 사용합니다. 현재 사용 중인 디렉터리는 백업 상태에 표시됩니다. 또는 절대 경로를 입력할 수도 있습니다.",
255
255
  "backup.fields.auto_backup_calendar_lookahead_days.label": "캘린더 조회 기간(일)",
256
256
  "backup.fields.auto_backup_calendar_lookahead_days.help": "편집 전 스냅숏을 위해 캘린더 이벤트를 얼마나 앞까지 조회할지 정합니다. 범위 1~365.",
257
257
  "backup.fields.enable_snapshot_delete.label": "스냅숏 삭제 허용",
@@ -288,7 +288,7 @@
288
288
  "backup.bulk.confirm": "다음 조건에 맞는 백업을 모두 삭제할까요? {filters}",
289
289
  "backup.bulk.deleted": "백업 {count}개를 삭제했습니다",
290
290
  "filesystem.custom.title": "사용자 지정 파일 시스템 경로 (고급)",
291
- "filesystem.custom.help": "파일 도구가 <strong>읽고 쓸 수 있는</strong> 추가 경로입니다(줄당 하나씩). 설정 상대 경로(<code>sensor.yaml</code> 같은 정확한 파일 이름 포함) 및 <code>/share</code>, <code>/media</code>, <code>/ssl</code>, <code>/backup</code> 하위 경로가 지원됩니다. 각 항목은 해당 경로 및 그 하위의 모든 항목을 허용합니다. Home Assistant의 설정 → 기기 및 서비스 → HA-MCP Custom Component → HA-MCP File & YAML Tools → 구성에서도 이러한 경로를 관리할 수 있습니다. 두 위치 모두 동일한 설정을 편집하며 즉시 변경 사항이 적용됩니다.",
291
+ "filesystem.custom.help": "파일 도구가 <strong>읽고 쓸 수 있는</strong> 추가 경로입니다(줄당 하나씩 입력). 정확한 파일 이름(<code>sensor.yaml</code> 등)을 포함한 설정 상대 경로와 <code>/share</code>, <code>/media</code>, <code>/ssl</code>, <code>/backup</code> 하위 경로가 지원됩니다. 각 항목은 해당 경로와 그 하위의 모든 항목을 허용합니다. 항목은 문자 그대로 일치하며 <code>*</code> 같은 와일드카드는 지원되지 않습니다. 홈 아시스턴트의 설정 → 기기 및 서비스 → HA-MCP 사용자 정의 구성 요소 → HA-MCP 파일 및 YAML 도구 → 구성에서도 이 경로들을 관리할 수 있으며, 두 위치 모두 동일한 설정을 편집하고 즉시 변경 사항이 적용됩니다.",
292
292
  "filesystem.custom.blocked": "항상 차단됨: {paths}, 경로 탈출(<code>..</code>), 허용된 HAOS 볼륨 밖의 절대 경로.",
293
293
  "filesystem.custom.enable_first": "편집하려면 위에서 베타 기능과 파일 시스템 도구를 켜세요.",
294
294
  "filesystem.custom.unavailable": "현재 사용자 지정 경로를 사용할 수 없습니다.",
@@ -662,10 +662,6 @@
662
662
  "title": "자동화 추적 기록 조회",
663
663
  "description": "문제를 진단할 수 있도록 자동화와 스크립트의 실행 추적 기록을 가져옵니다."
664
664
  },
665
- "ha_get_blueprint": {
666
- "title": "블루프린트 조회",
667
- "description": "블루프린트 정보를 가져옵니다. 전체 목록을 보거나 특정 블루프린트의 상세 정보를 확인합니다."
668
- },
669
665
  "ha_get_camera_image": {
670
666
  "title": "카메라 이미지 조회",
671
667
  "description": "Home Assistant 카메라 엔티티에서 스냅숏 이미지를 가져옵니다."
@@ -726,10 +722,6 @@
726
722
  "title": "구역 조회",
727
723
  "description": "구역 정보를 가져옵니다. 전체 구역을 나열하거나 특정 구역의 상세 정보를 확인합니다."
728
724
  },
729
- "ha_import_blueprint": {
730
- "title": "블루프린트 가져오기",
731
- "description": "URL에서 블루프린트를 가져옵니다."
732
- },
733
725
  "ha_list_files": {
734
726
  "title": "파일 목록",
735
727
  "description": "Home Assistant 설정 디렉터리 안의 디렉터리에서 파일을 나열합니다."
@@ -750,6 +742,10 @@
750
742
  "title": "백업 관리",
751
743
  "description": "여러 역할을 겸하는 백업 도구입니다. 라우팅 표는 도구 설명을 참고하세요."
752
744
  },
745
+ "ha_manage_blueprints": {
746
+ "title": "블루프린트 관리",
747
+ "description": "홈 아시스턴트 블루프린트를 관리합니다 — 목록 조회, 읽기, 가져오기, 저장, 삭제 또는 독립형 설정 렌더링."
748
+ },
753
749
  "ha_manage_custom_tool": {
754
750
  "title": "사용자 지정 도구",
755
751
  "description": "샌드박스에서 사용자 지정 도구를 만들어 실행하거나 저장된 사용자 지정 도구를 관리합니다(코드 모드)."
@@ -251,7 +251,7 @@
251
251
  "backup.fields.auto_backup_retain_per_entity.label": "Behouden per entiteit",
252
252
  "backup.fields.auto_backup_retain_per_entity.help": "Maximaal aantal momentopnamen per entiteit (1–10000). Oudere worden verwijderd.",
253
253
  "backup.fields.auto_backup_dir.label": "Backupmap overschrijven",
254
- "backup.fields.auto_backup_dir.help": "Laat leeg om de standaardmap te gebruiken; anders voer een absoluut pad in.",
254
+ "backup.fields.auto_backup_dir.help": "Laat leeg voor de standaard: /data/ha_mcp_backups in de app (add-on), anders de submap backups/ van de ha-mcp-datamap; een installatie die al snapshots bevat onder de eerdere standaard blijft deze gebruiken. De map die in gebruik is, wordt weergegeven in de backupstatus. Of voer een absoluut pad in.",
255
255
  "backup.fields.auto_backup_calendar_lookahead_days.label": "Agenda vooruitblik (dagen)",
256
256
  "backup.fields.auto_backup_calendar_lookahead_days.help": "Hoe ver vooruit agenda-evenementen moeten worden opgevraagd voor momentopnamen vóór bewerking. Bereik 1–365.",
257
257
  "backup.fields.enable_snapshot_delete.label": "Momentopname verwijdering toestaan",
@@ -288,7 +288,7 @@
288
288
  "backup.bulk.confirm": "Alle backups verwijderen die overeenkomen met: {filters}?",
289
289
  "backup.bulk.deleted": "{count} backup(s) verwijderd",
290
290
  "filesystem.custom.title": "Aangepaste bestandssysteempaden (geavanceerd)",
291
- "filesystem.custom.help": "Extra paden (één per regel) die bestandstools mogen <strong>lezen en schrijven</strong>. Config-relatieve paden, inclusief exacte bestandsnamen zoals <code>sensor.yaml</code>, en paden onder <code>/share</code>, <code>/media</code>, <code>/ssl</code> en <code>/backup</code> worden ondersteund. Elke invoer geeft toegang tot dat pad en alles daaronder. Je kunt deze paden ook beheren in Home Assistant onder Instellingen → Apparaten en diensten → HA-MCP Custom Component → HA-MCP File & YAML Tools → Configureren; beide locaties bewerken dezelfde instelling en passen wijzigingen direct toe.",
291
+ "filesystem.custom.help": "Extra paden (één per regel) die bestandstools mogen <strong>lezen en schrijven</strong>. Config-relatieve paden, inclusief exacte bestandsnamen zoals <code>sensor.yaml</code>, en paden onder <code>/share</code>, <code>/media</code>, <code>/ssl</code> en <code>/backup</code> worden ondersteund. Elke invoer staat dat pad en alles daaronder toe. Vermeldingen worden letterlijk gematcht; jokers zoals <code>*</code> worden niet ondersteund. Je kunt deze paden ook beheren in Home Assistant onder Instellingen → Apparaten & Diensten → HA-MCP Custom Component → HA-MCP File & YAML Tools → Configureer; beide locaties bewerken dezelfde instelling en passen wijzigingen direct toe.",
292
292
  "filesystem.custom.blocked": "Altijd geblokkeerd: {paths}, padtraversal (<code>..</code>), en absolute paden buiten toegestane HAOS-volumes.",
293
293
  "filesystem.custom.enable_first": "Schakel bètafuncties en bestandssysteemtools hierboven in om te bewerken.",
294
294
  "filesystem.custom.unavailable": "Aangepaste paden zijn momenteel niet beschikbaar.",
@@ -631,10 +631,6 @@
631
631
  "title": "Haal Automatiseringstraceringen op",
632
632
  "description": "Haal uitvoeringstraceringen op voor automatiseringen en scripts om problemen op te sporen."
633
633
  },
634
- "ha_get_blueprint": {
635
- "title": "Haal Blueprint op",
636
- "description": "Haal blueprintinformatie op - lijst alle blueprints of haal details op voor een specifieke."
637
- },
638
634
  "ha_get_camera_image": {
639
635
  "title": "Haal Camerabeeld op",
640
636
  "description": "Haal een momentopname van een afbeelding op van een Home Assistant-camera-entiteit."
@@ -695,10 +691,6 @@
695
691
  "title": "Haal Zone op",
696
692
  "description": "Haal zone-informatie op - lijst alle zones of haal details op voor een specifieke."
697
693
  },
698
- "ha_import_blueprint": {
699
- "title": "Importeer Blueprint",
700
- "description": "Importeer een blueprint van een URL."
701
- },
702
694
  "ha_list_files": {
703
695
  "title": "Lijst Bestanden",
704
696
  "description": "Lijst bestanden in een map binnen de Home Assistant-configuratie."
@@ -719,6 +711,10 @@
719
711
  "title": "Back-ups Beheren",
720
712
  "description": "Polymorfe back-uptool. Zie de toolbeschrijving voor de routeringsmatrix."
721
713
  },
714
+ "ha_manage_blueprints": {
715
+ "title": "Blauwdrukken beheren",
716
+ "description": "Beheer Home Assistant-blauwdrukken — weergeven, lezen, importeren, opslaan, verwijderen of een losse configuratie renderen."
717
+ },
722
718
  "ha_manage_custom_tool": {
723
719
  "title": "Aangepaste Tool",
724
720
  "description": "Maak en voer een aangepaste tool uit in een sandbox, of beheer opgeslagen aangepaste tools (codemodus)."
@@ -251,7 +251,7 @@
251
251
  "backup.fields.auto_backup_retain_per_entity.label": "Zachowaj na encję",
252
252
  "backup.fields.auto_backup_retain_per_entity.help": "Maksymalna liczba migawek przechowywanych na encję (1–10000). Starsze są usuwane.",
253
253
  "backup.fields.auto_backup_dir.label": "Nadpisanie katalogu kopii zapasowych",
254
- "backup.fields.auto_backup_dir.help": "Pozostaw puste, aby użyć domyślnego katalogu; w przeciwnym razie wprowadź ścieżkę absolutną.",
254
+ "backup.fields.auto_backup_dir.help": "Pozostaw puste, aby użyć domyślnej ścieżki: /data/ha_mcp_backups w aplikacji (dodatku), w przeciwnym razie podkatalogu backups/ katalogu danych ha-mcp; instalacja, która przechowuje już kopie zapasowe w ramach wcześniejszego domyślnego katalogu, nadal z niego korzysta. Używany katalog jest widoczny w stanie kopii zapasowej. Możesz też wpisać ścieżkę bezwzględną.",
255
255
  "backup.fields.auto_backup_calendar_lookahead_days.label": "Przewidywanie kalendarza (dni)",
256
256
  "backup.fields.auto_backup_calendar_lookahead_days.help": "Jak daleko w przyszłość wysyłać zapytania o zdarzenia kalendarza dla migawek przed edycją. Zakres 1–365.",
257
257
  "backup.fields.enable_snapshot_delete.label": "Zezwól na usuwanie migawek",
@@ -288,7 +288,7 @@
288
288
  "backup.bulk.confirm": "Usunąć wszystkie kopie zapasowe pasujące do: {filters}?",
289
289
  "backup.bulk.deleted": "Usunięto {count} kopii zapasowych",
290
290
  "filesystem.custom.title": "Niestandardowe ścieżki systemu plików (zaawansowane)",
291
- "filesystem.custom.help": "Dodatkowe ścieżki (po jednej w linii), do których narzędzia plików mogą <strong>mieć dostęp do odczytu i zapisu</strong>. Obsługiwane są ścieżki względne konfiguracji, w tym dokładne nazwy plików, takie jak <code>sensor.yaml</code>, oraz ścieżki w katalogach <code>/share</code>, <code>/media</code>, <code>/ssl</code> i <code>/backup</code>. Każdy wpis zezwala na dostęp do tej ścieżki oraz wszystkiego, co się w niej znajduje. Możesz również zarządzać tymi ścieżkami w Home Assistant w sekcji Ustawienia → Urządzenia i usługi → HA-MCP Custom Component → HA-MCP File & YAML Tools → Konfiguruj; obie lokalizacje edytują to samo ustawienie i wprowadzają zmiany natychmiast.",
291
+ "filesystem.custom.help": "Dodatkowe ścieżki (po jednej w linii), które narzędzia plikowe mogą <strong>odczytywać i zapisywać</strong>. Obsługiwane są ścieżki względne względem konfiguracji, w tym dokładne nazwy plików, takie jak <code>sensor.yaml</code>, oraz ścieżki w katalogach <code>/share</code>, <code>/media</code>, <code>/ssl</code> i <code>/backup</code>. Każdy wpis zezwala na dostęp do tej ścieżki oraz wszystkiego, co się w niej znajduje. Wpisy są dopasowywane dosłownie; znaki wieloznaczne, takie jak <code>*</code>, nie są obsługiwane. Możesz również zarządzać tymi ścieżkami w Home Assistant w sekcji Ustawienia → Urządzenia i usługi → HA-MCP Custom Component → HA-MCP File & YAML Tools → Konfiguruj; obie lokalizacje edytują to samo ustawienie i natychmiast wprowadzają zmiany.",
292
292
  "filesystem.custom.blocked": "Zawsze blokowane: {paths}, przechodzenie po ścieżkach (<code>..</code>) oraz ścieżki bezwzględne poza dozwolonymi woluminami HAOS.",
293
293
  "filesystem.custom.enable_first": "Włącz funkcje beta i narzędzia systemu plików powyżej, aby edytować.",
294
294
  "filesystem.custom.unavailable": "Niestandardowe ścieżki są obecnie niedostępne.",
@@ -631,10 +631,6 @@
631
631
  "title": "Pobierz ślady automatyzacji",
632
632
  "description": "Pobierz ślady wykonania dla automatyzacji i skryptów w celu debugowania problemów."
633
633
  },
634
- "ha_get_blueprint": {
635
- "title": "Pobierz schemat",
636
- "description": "Pobierz informacje o schemacie - wyświetl wszystkie schematy lub pobierz szczegóły dla konkretnego."
637
- },
638
634
  "ha_get_camera_image": {
639
635
  "title": "Pobierz obraz z kamery",
640
636
  "description": "Pobierz obraz migawki z encji kamery Home Assistant."
@@ -695,10 +691,6 @@
695
691
  "title": "Pobierz strefę",
696
692
  "description": "Pobierz informacje o strefie - wyświetl wszystkie strefy lub pobierz szczegóły dla konkretnej."
697
693
  },
698
- "ha_import_blueprint": {
699
- "title": "Importuj schemat",
700
- "description": "Importuj schemat z adresu URL."
701
- },
702
694
  "ha_list_files": {
703
695
  "title": "Wyświetl pliki",
704
696
  "description": "Wyświetl pliki w katalogu w konfiguracji Home Assistant."
@@ -719,6 +711,10 @@
719
711
  "title": "Zarządzaj kopiami zapasowymi",
720
712
  "description": "Polimorficzne narzędzie do tworzenia kopii zapasowych. Zobacz opis narzędzia, aby uzyskać matrycę routingu."
721
713
  },
714
+ "ha_manage_blueprints": {
715
+ "title": "Zarządzaj szablonami",
716
+ "description": "Zarządzaj szablonami Home Assistant — wyświetlaj listę, czytaj, importuj, zapisuj, usuwaj lub renderuj niezależną konfigurację."
717
+ },
722
718
  "ha_manage_custom_tool": {
723
719
  "title": "Niestandardowe narzędzie",
724
720
  "description": "Utwórz i uruchom niestandardowe narzędzie w piaskownicy, lub zarządzaj zapisanymi niestandardowymi narzędziami (tryb kodu)."