ha-mcp-dev 7.14.2.dev2086__tar.gz → 7.14.2.dev2091__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 (188) hide show
  1. {ha_mcp_dev-7.14.2.dev2086/src/ha_mcp_dev.egg-info → ha_mcp_dev-7.14.2.dev2091}/PKG-INFO +2 -2
  2. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/README.md +1 -1
  3. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/pyproject.toml +1 -1
  4. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/settings_ui/_i18n.py +9 -1
  5. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/settings_ui/locales/de.json +2 -2
  6. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/settings_ui/locales/en.json +2 -2
  7. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/settings_ui/locales/ru.json +2 -2
  8. ha_mcp_dev-7.14.2.dev2091/src/ha_mcp/settings_ui/locales/zh-Hans.json +806 -0
  9. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091/src/ha_mcp_dev.egg-info}/PKG-INFO +2 -2
  10. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp_dev.egg-info/SOURCES.txt +1 -0
  11. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/LICENSE +0 -0
  12. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/MANIFEST.in +0 -0
  13. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/setup.cfg +0 -0
  14. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/__init__.py +0 -0
  15. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/__main__.py +0 -0
  16. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/_pypi_marker +0 -0
  17. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/_version.py +0 -0
  18. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/auth/__init__.py +0 -0
  19. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/auth/consent_form.py +0 -0
  20. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/auth/provider.py +0 -0
  21. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/backup_manager.py +0 -0
  22. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/browser_landing.py +0 -0
  23. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/client/__init__.py +0 -0
  24. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/client/rest_client.py +0 -0
  25. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/client/supervisor_client.py +0 -0
  26. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/client/websocket_client.py +0 -0
  27. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/client/websocket_listener.py +0 -0
  28. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/config.py +0 -0
  29. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/dashboard_screenshot/__init__.py +0 -0
  30. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/dashboard_screenshot/capture.py +0 -0
  31. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/dashboard_screenshot/content.py +0 -0
  32. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/dashboard_screenshot/paths.py +0 -0
  33. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/dashboard_screenshot/provision.py +0 -0
  34. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/dashboard_screenshot/theme_guard.py +0 -0
  35. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/errors.py +0 -0
  36. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/llm_exposure.py +0 -0
  37. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/policy/__init__.py +0 -0
  38. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/policy/approval_queue.py +0 -0
  39. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/policy/evaluator.py +0 -0
  40. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/policy/handlers.py +0 -0
  41. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/policy/middleware.py +0 -0
  42. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/policy/model.py +0 -0
  43. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/policy/persistence.py +0 -0
  44. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/policy/value_sources.py +0 -0
  45. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/py.typed +0 -0
  46. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/read_only.py +0 -0
  47. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/resources/skills-vendor/.claude/settings.json +0 -0
  48. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/resources/skills-vendor/.claude-plugin/marketplace.json +0 -0
  49. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/resources/skills-vendor/.claude-plugin/plugin.json +0 -0
  50. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/resources/skills-vendor/.github/ISSUE_TEMPLATE/skill-rca.md +0 -0
  51. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/resources/skills-vendor/.github/pull_request_template.md +0 -0
  52. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/resources/skills-vendor/AGENTS.md +0 -0
  53. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/resources/skills-vendor/CLAUDE.md +0 -0
  54. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/resources/skills-vendor/CONTRIBUTING.md +0 -0
  55. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/resources/skills-vendor/LICENSE +0 -0
  56. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/resources/skills-vendor/README.md +0 -0
  57. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/SKILL.md +0 -0
  58. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/evals/evals.json +0 -0
  59. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/appdaemon.md +0 -0
  60. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/automation-patterns.md +0 -0
  61. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/blueprint-guide.md +0 -0
  62. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/dashboard-cards.md +0 -0
  63. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/dashboard-guide.md +0 -0
  64. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/device-control.md +0 -0
  65. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/domain-docs.md +0 -0
  66. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/examples.yaml +0 -0
  67. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/helper-selection.md +0 -0
  68. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/safe-refactoring.md +0 -0
  69. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/scenes.md +0 -0
  70. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/template-guidelines.md +0 -0
  71. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/yaml-only-integrations.md +0 -0
  72. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/server.py +0 -0
  73. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/settings_ui/__init__.py +0 -0
  74. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/settings_ui/_handlers_advanced.py +0 -0
  75. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/settings_ui/_handlers_backups.py +0 -0
  76. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/settings_ui/_handlers_fs.py +0 -0
  77. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/settings_ui/_handlers_server.py +0 -0
  78. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/settings_ui/_handlers_theme.py +0 -0
  79. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/settings_ui/_handlers_tools.py +0 -0
  80. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/settings_ui/_persistence.py +0 -0
  81. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/settings_ui/_supervisor.py +0 -0
  82. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/settings_ui/_theme.py +0 -0
  83. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/settings_ui/_tools_meta.py +0 -0
  84. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/settings_ui/locales/README.md +0 -0
  85. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/settings_ui/settings.css +0 -0
  86. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/settings_ui/settings.html +0 -0
  87. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/settings_ui/settings.js +0 -0
  88. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/smoke_test.py +0 -0
  89. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/stdio_settings_sidecar.py +0 -0
  90. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/strict_bps.py +0 -0
  91. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/tools/__init__.py +0 -0
  92. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/tools/auto_backup.py +0 -0
  93. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/tools/backup.py +0 -0
  94. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/tools/best_practice_checker.py +0 -0
  95. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/tools/component_api.py +0 -0
  96. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/tools/component_config_reads.py +0 -0
  97. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/tools/component_devices.py +0 -0
  98. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/tools/component_registries.py +0 -0
  99. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/tools/component_registry_lookup.py +0 -0
  100. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/tools/config_entry_flow.py +0 -0
  101. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/tools/device_control.py +0 -0
  102. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/tools/enhanced.py +0 -0
  103. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/tools/helpers.py +0 -0
  104. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/tools/radio/__init__.py +0 -0
  105. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/tools/radio/base.py +0 -0
  106. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/tools/radio/matter.py +0 -0
  107. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/tools/radio/thread.py +0 -0
  108. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/tools/radio/zigbee.py +0 -0
  109. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/tools/radio/zwave.py +0 -0
  110. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/tools/reference_validator.py +0 -0
  111. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/tools/registry.py +0 -0
  112. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/tools/smart_search/__init__.py +0 -0
  113. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/tools/smart_search/_base.py +0 -0
  114. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/tools/smart_search/_config.py +0 -0
  115. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/tools/smart_search/_deep.py +0 -0
  116. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/tools/smart_search/_entities.py +0 -0
  117. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/tools/smart_search/_fetch.py +0 -0
  118. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/tools/smart_search/_overview.py +0 -0
  119. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/tools/smart_search/_scenes.py +0 -0
  120. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/tools/smart_search/_scoring.py +0 -0
  121. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/tools/tool_search_hint_middleware.py +0 -0
  122. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/tools/tools_addons.py +0 -0
  123. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/tools/tools_areas.py +0 -0
  124. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/tools/tools_blueprints.py +0 -0
  125. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/tools/tools_bug_report.py +0 -0
  126. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/tools/tools_calendar.py +0 -0
  127. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/tools/tools_camera.py +0 -0
  128. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/tools/tools_categories.py +0 -0
  129. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/tools/tools_code.py +0 -0
  130. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/tools/tools_config_automations.py +0 -0
  131. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/tools/tools_config_dashboards.py +0 -0
  132. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/tools/tools_config_helpers.py +0 -0
  133. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/tools/tools_config_scenes.py +0 -0
  134. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/tools/tools_config_scripts.py +0 -0
  135. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/tools/tools_dashboard_screenshot.py +0 -0
  136. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/tools/tools_dev.py +0 -0
  137. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/tools/tools_energy.py +0 -0
  138. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/tools/tools_entities.py +0 -0
  139. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/tools/tools_filesystem.py +0 -0
  140. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/tools/tools_groups.py +0 -0
  141. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/tools/tools_hacs.py +0 -0
  142. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/tools/tools_history.py +0 -0
  143. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/tools/tools_integrations.py +0 -0
  144. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/tools/tools_labels.py +0 -0
  145. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/tools/tools_radio.py +0 -0
  146. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/tools/tools_registry.py +0 -0
  147. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/tools/tools_resources.py +0 -0
  148. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/tools/tools_search.py +0 -0
  149. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/tools/tools_service.py +0 -0
  150. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/tools/tools_services.py +0 -0
  151. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/tools/tools_system.py +0 -0
  152. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/tools/tools_themes.py +0 -0
  153. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/tools/tools_todo.py +0 -0
  154. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/tools/tools_traces.py +0 -0
  155. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/tools/tools_updates.py +0 -0
  156. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/tools/tools_utility.py +0 -0
  157. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/tools/tools_voice_assistant.py +0 -0
  158. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/tools/tools_yaml_config.py +0 -0
  159. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/tools/tools_yaml_read.py +0 -0
  160. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/tools/tools_zones.py +0 -0
  161. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/tools/util_helpers.py +0 -0
  162. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/tools/validation_middleware.py +0 -0
  163. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/transforms/__init__.py +0 -0
  164. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/transforms/categorized_search.py +0 -0
  165. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/transforms/lite_docstrings.py +0 -0
  166. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/transport_security.py +0 -0
  167. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/update_check.py +0 -0
  168. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/utils/__init__.py +0 -0
  169. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/utils/config_hash.py +0 -0
  170. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/utils/data_paths.py +0 -0
  171. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/utils/domain_handlers.py +0 -0
  172. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/utils/fuzzy_search.py +0 -0
  173. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/utils/kill_signal_diagnostics.py +0 -0
  174. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/utils/operation_manager.py +0 -0
  175. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/utils/python_sandbox.py +0 -0
  176. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/utils/skill_loader.py +0 -0
  177. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/utils/usage_logger.py +0 -0
  178. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/visibility/__init__.py +0 -0
  179. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/visibility/model.py +0 -0
  180. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/visibility/persistence.py +0 -0
  181. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp/visibility/resolver.py +0 -0
  182. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp_dev.egg-info/dependency_links.txt +0 -0
  183. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp_dev.egg-info/entry_points.txt +0 -0
  184. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp_dev.egg-info/requires.txt +0 -0
  185. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/src/ha_mcp_dev.egg-info/top_level.txt +0 -0
  186. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/tests/__init__.py +0 -0
  187. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/tests/test_constants.py +0 -0
  188. {ha_mcp_dev-7.14.2.dev2086 → ha_mcp_dev-7.14.2.dev2091}/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: 7.14.2.dev2086
3
+ Version: 7.14.2.dev2091
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
@@ -395,7 +395,7 @@ The proxy split lets MCP clients apply different permission policies per categor
395
395
 
396
396
  Leave it off when using Claude Sonnet/Opus or any client with deferred tool loading; the full catalog has no idle cost there and direct calls skip the search step. If you choose to use our toolsearch then you should disable the native Claude Opus/Sonnet toolsearch, which is called deferred tools in the settings.
397
397
 
398
- > 🔄 **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 add-on 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, tools shown as available will return `Unknown tool` when called.
398
+ > 🔄 **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 add-on 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
399
 
400
400
  For the HA add-on, 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.
401
401
 
@@ -362,7 +362,7 @@ The proxy split lets MCP clients apply different permission policies per categor
362
362
 
363
363
  Leave it off when using Claude Sonnet/Opus or any client with deferred tool loading; the full catalog has no idle cost there and direct calls skip the search step. If you choose to use our toolsearch then you should disable the native Claude Opus/Sonnet toolsearch, which is called deferred tools in the settings.
364
364
 
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 add-on 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, tools shown as available will return `Unknown tool` when called.
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 add-on 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
367
  For the HA add-on, 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.
368
368
 
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "ha-mcp-dev"
7
- version = "7.14.2.dev2086"
7
+ version = "7.14.2.dev2091"
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
@@ -201,7 +201,15 @@ def normalize_locale(
201
201
  if candidate in catalogs:
202
202
  return candidate
203
203
  base = candidate.split("-", 1)[0]
204
- return base if base in catalogs else None
204
+ if base in catalogs:
205
+ return base
206
+ if base == "zh" and "zh-hans" in catalogs:
207
+ # Map bare "zh" and simplified Chinese region tags (zh-CN, zh-SG) to
208
+ # zh-hans. Do NOT map zh-TW, zh-HK, etc. — those would need a zh-Hant
209
+ # catalog to be registered.
210
+ if candidate == "zh" or candidate.split("-", 1)[-1] in ("cn", "sg"):
211
+ return "zh-hans"
212
+ return None
205
213
 
206
214
 
207
215
  def _accept_language_candidates(header: str | None) -> list[str]:
@@ -21,7 +21,7 @@
21
21
  "tabs.policies": "Tool-Sicherheitsrichtlinien",
22
22
  "tabs.visibility": "Entitäts-Sichtbarkeit",
23
23
  "tabs.accessibility": "Barrierefreiheit",
24
- "notice.restart_required": "⚠ Änderungen gespeichert. Starte HA-MCP neu, damit sie wirksam werden. Beim nächsten Start entfernt HA-MCP deaktivierte Tools vollständig aus der MCP-Tool-Liste. Verbinde dann den MCP-Server in deinem KI-Client neu oder aktualisiere ihn (z. B. Tool-Liste auf claude.ai aktualisieren, Connector in ChatGPT erneut hinzufügen oder aktualisieren oder Claude Desktop schließen und neu öffnen), damit die Tool-Liste neu geladen wird. Das Neustarten des Add-ons oder von Home Assistant aktualisiert NICHT die vom Client zwischengespeicherte Tool-Liste.",
24
+ "notice.restart_required": "⚠ Änderungen gespeichert. Starte HA-MCP neu, damit sie wirksam werden. Beim nächsten Start entfernt HA-MCP deaktivierte Tools vollständig aus der MCP-Tool-Liste. Verbinde dann den MCP-Server in deinem KI-Client neu oder aktualisiere ihn (z. B. Tool-Liste auf claude.ai aktualisieren, Connector in ChatGPT erneut hinzufügen oder aktualisieren oder Claude Desktop schließen und neu öffnen), damit die Tool-Liste neu geladen wird. Das Neustarten des Add-ons oder von Home Assistant aktualisiert NICHT die vom Client zwischengespeicherte Tool-Liste. ChatGPT liefert die zwischengespeicherte Tool-Liste manchmal auch nach dem Entfernen und erneuten Hinzufügen des Connectors weiter aus — fehlen Tools weiterhin, lösche den Connector und lege ihn unter einem anderen Namen neu an.",
25
25
  "notice.shared_settings": "Server-weite Funktionen (Tool-Suche, YAML-Konfigurationsbearbeitung, Dateisystem-Tools usw.) erscheinen sowohl im Tab <strong>Server-Einstellungen</strong> als auch auf der Add-on-Konfigurationsseite; es sind dieselben Einstellungen. Beide Ansichten bleiben nach dem Neustart des Add-ons synchron. Änderungen erfordern einen Neustart von HA-MCP.",
26
26
  "notice.env_pins": "Tools, die in den Umgebungsvariablen <code>DISABLED_TOOLS</code> oder <code>PINNED_TOOLS</code> aufgeführt sind, sind schreibgeschützt gesperrt; hebe die Umgebungsvariable auf, um sie hier zu bearbeiten. Anheftungs-Toggles wirken nur, wenn die Tool-Suche aktiviert ist (Tab Server-Einstellungen oder Add-on-Konfigurationsseite).",
27
27
  "actions.restart_addon": "Add-on neu starten",
@@ -33,7 +33,7 @@
33
33
  "tools.read_only.help": "Schaltet alle Schreibtools aus und verhindert, dass Tools Schreib- oder destruktive Aufrufe tätigen. Gemischte Lese-/Schreib-Tools (Backups, Add-ons, Energiepräferenzen, Voice-Pipelines und Code-Modus, wenn aktiviert) bleiben verfügbar, wobei ihre Schreiboperationen blockiert sind.",
34
34
  "tools.read_only.unknown": "Server-Einstellungen konnten nicht gelesen werden. Status des Nur-Lese-Modus unbekannt; diese Ansicht spiegelt möglicherweise nicht wider, was der Server erzwingt.",
35
35
  "tools.search": "Tools durchsuchen...",
36
- "server.auto_save_notice": "Einstellungen auf diesem Tab werden automatisch gespeichert. Änderungen werden erst wirksam, nachdem du das Add-on neu gestartet hast (wendet sie serverseitig an) und die MCP-Server-Verbindung in deinem KI-Client neu verbindest oder aktualisierst (lädt die Tool-Liste neu), z. B. Tool-Liste auf claude.ai aktualisieren, Connector in ChatGPT erneut hinzufügen oder aktualisieren oder Claude Desktop schließen und neu öffnen.",
36
+ "server.auto_save_notice": "Einstellungen auf diesem Tab werden automatisch gespeichert. Änderungen werden erst wirksam, nachdem du das Add-on neu gestartet hast (wendet sie serverseitig an) und die MCP-Server-Verbindung in deinem KI-Client neu verbindest oder aktualisierst (lädt die Tool-Liste neu), z. B. Tool-Liste auf claude.ai aktualisieren, Connector in ChatGPT erneut hinzufügen oder aktualisieren oder Claude Desktop schließen und neu öffnen. ChatGPT liefert die zwischengespeicherte Tool-Liste manchmal auch nach dem Entfernen und erneuten Hinzufügen des Connectors weiter aus — fehlen Tools weiterhin, lösche den Connector und lege ihn unter einem anderen Namen neu an.",
37
37
  "server.sections.search": "Suche & Abgleich",
38
38
  "server.sections.operations": "Operationen",
39
39
  "server.sections.tool_surface": "Tool-Oberfläche",
@@ -21,7 +21,7 @@
21
21
  "tabs.policies": "Tool Security Policies",
22
22
  "tabs.visibility": "Entity Visibility",
23
23
  "tabs.accessibility": "Accessibility",
24
- "notice.restart_required": "⚠ Changes saved. Restart HA-MCP for them to take effect. On next startup, HA-MCP fully removes disabled tools from the MCP tool list. Then reconnect or refresh the MCP server in your AI client (e.g. refresh tool list on claude.ai, re-add/refresh the connector in ChatGPT, or close and reopen Claude Desktop) so it reloads the tool list. Restarting the App (add-on) or Home Assistant does NOT refresh your client's cached tool list.",
24
+ "notice.restart_required": "⚠ Changes saved. Restart HA-MCP for them to take effect. On next startup, HA-MCP fully removes disabled tools from the MCP tool list. Then reconnect or refresh the MCP server in your AI client (e.g. refresh tool list on claude.ai, re-add/refresh the connector in ChatGPT, or close and reopen Claude Desktop) so it reloads the tool list. Restarting the App (add-on) or Home Assistant does NOT refresh your client's cached tool list. ChatGPT sometimes keeps serving its cached tool list even after the connector is removed and re-added — if tools are still missing, delete the connector and create a new one under a different name.",
25
25
  "notice.shared_settings": "Server-wide features (Tool Search, YAML config editing, filesystem tools, etc.) appear in both the <strong>Server Settings</strong> tab and the App (add-on) Configuration page; they're the same settings either way. Either surface stays in sync with the other after the App (add-on) restarts. Changes require HA-MCP to be restarted.",
26
26
  "notice.env_pins": "Tools listed in the <code>DISABLED_TOOLS</code> or <code>PINNED_TOOLS</code> env vars are locked read-only; unset the env var to edit them here. Pin toggles only take effect when Tool Search is enabled (Server Settings tab or App (add-on) Configuration page).",
27
27
  "actions.restart_addon": "Restart App (add-on)",
@@ -33,7 +33,7 @@
33
33
  "tools.read_only.help": "Turns off all write tools and blocks every tool from making write or destructive calls. Mixed read/write tools (backups, Apps (add-ons), energy preferences, voice pipelines, and code mode when enabled) stay available with their write operations blocked.",
34
34
  "tools.read_only.unknown": "Could not read server settings. Read Only Mode status unknown; this view may not reflect what the server enforces.",
35
35
  "tools.search": "Search tools...",
36
- "server.auto_save_notice": "Settings on this tab save automatically. Changes take effect only after you restart the App (add-on) (applies them server-side) and reconnect or refresh the MCP server in your AI client (reloads the tool list), e.g. refresh tool list on claude.ai, re-add or refresh the connector in ChatGPT, or close and reopen Claude Desktop.",
36
+ "server.auto_save_notice": "Settings on this tab save automatically. Changes take effect only after you restart the App (add-on) (applies them server-side) and reconnect or refresh the MCP server in your AI client (reloads the tool list), e.g. refresh tool list on claude.ai, re-add or refresh the connector in ChatGPT, or close and reopen Claude Desktop. ChatGPT sometimes keeps serving its cached tool list even after the connector is removed and re-added — if tools are still missing, delete the connector and create a new one under a different name.",
37
37
  "server.sections.search": "Search & matching",
38
38
  "server.sections.operations": "Operations",
39
39
  "server.sections.tool_surface": "Tool surface",
@@ -21,7 +21,7 @@
21
21
  "tabs.policies": "Политики безопасности",
22
22
  "tabs.visibility": "Видимость сущностей",
23
23
  "tabs.accessibility": "Оформление и доступность",
24
- "notice.restart_required": "⚠ Изменения сохранены. Чтобы они вступили в силу, перезапустите HA-MCP. При следующем запуске HA-MCP полностью удалит отключённые инструменты из списка MCP. Затем переподключите или обновите MCP-сервер в клиенте ИИ, чтобы он заново загрузил список инструментов: обновите список на claude.ai, повторно добавьте или обновите коннектор в ChatGPT либо закройте и снова откройте Claude Desktop. Перезапуск приложения (дополнения) или Home Assistant НЕ обновляет список инструментов, сохранённый в кеше клиента.",
24
+ "notice.restart_required": "⚠ Изменения сохранены. Чтобы они вступили в силу, перезапустите HA-MCP. При следующем запуске HA-MCP полностью удалит отключённые инструменты из списка MCP. Затем переподключите или обновите MCP-сервер в клиенте ИИ, чтобы он заново загрузил список инструментов: обновите список на claude.ai, повторно добавьте или обновите коннектор в ChatGPT либо закройте и снова откройте Claude Desktop. Перезапуск приложения (дополнения) или Home Assistant НЕ обновляет список инструментов, сохранённый в кеше клиента. ChatGPT иногда продолжает использовать кешированный список инструментов даже после удаления и повторного добавления коннектора — если инструменты по-прежнему отсутствуют, удалите коннектор и создайте новый под другим именем.",
25
25
  "notice.shared_settings": "Общие серверные функции — поиск инструментов, редактирование YAML-конфигурации, работа с файлами и другие — отображаются и на вкладке <strong>Настройки сервера</strong>, и на странице конфигурации приложения (дополнения). Это одни и те же параметры. После перезапуска приложения обе страницы синхронизируются. Изменения требуют перезапуска HA-MCP.",
26
26
  "notice.env_pins": "Инструменты, перечисленные в переменных окружения <code>DISABLED_TOOLS</code> или <code>PINNED_TOOLS</code>, заблокированы от редактирования. Чтобы изменить их здесь, удалите инструмент из соответствующей переменной. Переключатели закрепления действуют только при включённом поиске инструментов — на вкладке настроек сервера или странице конфигурации приложения.",
27
27
  "actions.restart_addon": "Перезапустить приложение",
@@ -33,7 +33,7 @@
33
33
  "tools.read_only.help": "Отключает все инструменты записи и запрещает каждому инструменту выполнять изменяющие или разрушительные операции. Смешанные инструменты чтения и записи — резервные копии, приложения, параметры энергии, голосовые конвейеры и режим кода — остаются доступными, но их операции записи блокируются.",
34
34
  "tools.read_only.unknown": "Не удалось прочитать настройки сервера. Состояние режима только для чтения неизвестно; показанное значение может не соответствовать фактическим ограничениям сервера.",
35
35
  "tools.search": "Поиск инструментов...",
36
- "server.auto_save_notice": "Настройки на этой вкладке сохраняются автоматически. Изменения вступят в силу только после перезапуска приложения, который применит их на сервере, и повторного подключения или обновления MCP-сервера в клиенте ИИ, который заново загрузит список инструментов. Например, обновите список на claude.ai, повторно добавьте или обновите коннектор в ChatGPT либо закройте и снова откройте Claude Desktop.",
36
+ "server.auto_save_notice": "Настройки на этой вкладке сохраняются автоматически. Изменения вступят в силу только после перезапуска приложения, который применит их на сервере, и повторного подключения или обновления MCP-сервера в клиенте ИИ, который заново загрузит список инструментов. Например, обновите список на claude.ai, повторно добавьте или обновите коннектор в ChatGPT либо закройте и снова откройте Claude Desktop. ChatGPT иногда продолжает использовать кешированный список инструментов даже после удаления и повторного добавления коннектора — если инструменты по-прежнему отсутствуют, удалите коннектор и создайте новый под другим именем.",
37
37
  "server.sections.search": "Поиск и сопоставление",
38
38
  "server.sections.operations": "Операции",
39
39
  "server.sections.tool_surface": "Набор инструментов",