ha-mcp-dev 7.13.0.dev2035__tar.gz → 7.13.0.dev2037__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 (187) hide show
  1. {ha_mcp_dev-7.13.0.dev2035/src/ha_mcp_dev.egg-info → ha_mcp_dev-7.13.0.dev2037}/PKG-INFO +1 -1
  2. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/pyproject.toml +1 -1
  3. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/tools/tools_config_helpers.py +25 -7
  4. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037/src/ha_mcp_dev.egg-info}/PKG-INFO +1 -1
  5. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/LICENSE +0 -0
  6. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/MANIFEST.in +0 -0
  7. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/README.md +0 -0
  8. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/setup.cfg +0 -0
  9. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/__init__.py +0 -0
  10. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/__main__.py +0 -0
  11. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/_pypi_marker +0 -0
  12. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/_version.py +0 -0
  13. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/auth/__init__.py +0 -0
  14. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/auth/consent_form.py +0 -0
  15. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/auth/provider.py +0 -0
  16. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/backup_manager.py +0 -0
  17. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/browser_landing.py +0 -0
  18. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/client/__init__.py +0 -0
  19. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/client/rest_client.py +0 -0
  20. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/client/supervisor_client.py +0 -0
  21. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/client/websocket_client.py +0 -0
  22. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/client/websocket_listener.py +0 -0
  23. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/config.py +0 -0
  24. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/dashboard_screenshot/__init__.py +0 -0
  25. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/dashboard_screenshot/capture.py +0 -0
  26. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/dashboard_screenshot/content.py +0 -0
  27. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/dashboard_screenshot/paths.py +0 -0
  28. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/dashboard_screenshot/provision.py +0 -0
  29. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/dashboard_screenshot/theme_guard.py +0 -0
  30. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/errors.py +0 -0
  31. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/llm_exposure.py +0 -0
  32. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/policy/__init__.py +0 -0
  33. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/policy/approval_queue.py +0 -0
  34. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/policy/evaluator.py +0 -0
  35. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/policy/handlers.py +0 -0
  36. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/policy/middleware.py +0 -0
  37. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/policy/model.py +0 -0
  38. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/policy/persistence.py +0 -0
  39. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/policy/value_sources.py +0 -0
  40. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/py.typed +0 -0
  41. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/read_only.py +0 -0
  42. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/resources/skills-vendor/.claude/settings.json +0 -0
  43. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/resources/skills-vendor/.claude-plugin/marketplace.json +0 -0
  44. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/resources/skills-vendor/.claude-plugin/plugin.json +0 -0
  45. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/resources/skills-vendor/.github/ISSUE_TEMPLATE/skill-rca.md +0 -0
  46. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/resources/skills-vendor/.github/pull_request_template.md +0 -0
  47. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/resources/skills-vendor/AGENTS.md +0 -0
  48. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/resources/skills-vendor/CLAUDE.md +0 -0
  49. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/resources/skills-vendor/CONTRIBUTING.md +0 -0
  50. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/resources/skills-vendor/LICENSE +0 -0
  51. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/resources/skills-vendor/README.md +0 -0
  52. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/SKILL.md +0 -0
  53. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/evals/evals.json +0 -0
  54. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/appdaemon.md +0 -0
  55. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/automation-patterns.md +0 -0
  56. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/blueprint-guide.md +0 -0
  57. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/dashboard-cards.md +0 -0
  58. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/dashboard-guide.md +0 -0
  59. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/device-control.md +0 -0
  60. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/domain-docs.md +0 -0
  61. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/examples.yaml +0 -0
  62. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/helper-selection.md +0 -0
  63. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/safe-refactoring.md +0 -0
  64. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/scenes.md +0 -0
  65. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/template-guidelines.md +0 -0
  66. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/yaml-only-integrations.md +0 -0
  67. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/server.py +0 -0
  68. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/settings_ui/__init__.py +0 -0
  69. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/settings_ui/_handlers_advanced.py +0 -0
  70. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/settings_ui/_handlers_backups.py +0 -0
  71. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/settings_ui/_handlers_fs.py +0 -0
  72. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/settings_ui/_handlers_server.py +0 -0
  73. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/settings_ui/_handlers_theme.py +0 -0
  74. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/settings_ui/_handlers_tools.py +0 -0
  75. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/settings_ui/_i18n.py +0 -0
  76. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/settings_ui/_persistence.py +0 -0
  77. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/settings_ui/_supervisor.py +0 -0
  78. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/settings_ui/_theme.py +0 -0
  79. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/settings_ui/_tools_meta.py +0 -0
  80. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/settings_ui/locales/README.md +0 -0
  81. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/settings_ui/locales/de.json +0 -0
  82. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/settings_ui/locales/en.json +0 -0
  83. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/settings_ui/locales/ru.json +0 -0
  84. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/settings_ui/settings.css +0 -0
  85. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/settings_ui/settings.html +0 -0
  86. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/settings_ui/settings.js +0 -0
  87. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/smoke_test.py +0 -0
  88. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/stdio_settings_sidecar.py +0 -0
  89. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/strict_bps.py +0 -0
  90. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/tools/__init__.py +0 -0
  91. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/tools/auto_backup.py +0 -0
  92. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/tools/backup.py +0 -0
  93. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/tools/best_practice_checker.py +0 -0
  94. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/tools/component_api.py +0 -0
  95. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/tools/component_config_reads.py +0 -0
  96. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/tools/component_devices.py +0 -0
  97. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/tools/component_registries.py +0 -0
  98. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/tools/component_registry_lookup.py +0 -0
  99. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/tools/config_entry_flow.py +0 -0
  100. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/tools/device_control.py +0 -0
  101. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/tools/enhanced.py +0 -0
  102. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/tools/helpers.py +0 -0
  103. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/tools/radio/__init__.py +0 -0
  104. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/tools/radio/base.py +0 -0
  105. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/tools/radio/matter.py +0 -0
  106. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/tools/radio/thread.py +0 -0
  107. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/tools/radio/zigbee.py +0 -0
  108. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/tools/radio/zwave.py +0 -0
  109. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/tools/reference_validator.py +0 -0
  110. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/tools/registry.py +0 -0
  111. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/tools/smart_search/__init__.py +0 -0
  112. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/tools/smart_search/_base.py +0 -0
  113. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/tools/smart_search/_config.py +0 -0
  114. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/tools/smart_search/_deep.py +0 -0
  115. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/tools/smart_search/_entities.py +0 -0
  116. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/tools/smart_search/_fetch.py +0 -0
  117. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/tools/smart_search/_overview.py +0 -0
  118. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/tools/smart_search/_scenes.py +0 -0
  119. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/tools/smart_search/_scoring.py +0 -0
  120. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/tools/tool_search_hint_middleware.py +0 -0
  121. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/tools/tools_addons.py +0 -0
  122. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/tools/tools_areas.py +0 -0
  123. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/tools/tools_blueprints.py +0 -0
  124. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/tools/tools_bug_report.py +0 -0
  125. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/tools/tools_calendar.py +0 -0
  126. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/tools/tools_camera.py +0 -0
  127. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/tools/tools_categories.py +0 -0
  128. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/tools/tools_code.py +0 -0
  129. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/tools/tools_config_automations.py +0 -0
  130. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/tools/tools_config_dashboards.py +0 -0
  131. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/tools/tools_config_scenes.py +0 -0
  132. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/tools/tools_config_scripts.py +0 -0
  133. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/tools/tools_dashboard_screenshot.py +0 -0
  134. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/tools/tools_dev.py +0 -0
  135. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/tools/tools_energy.py +0 -0
  136. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/tools/tools_entities.py +0 -0
  137. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/tools/tools_filesystem.py +0 -0
  138. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/tools/tools_groups.py +0 -0
  139. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/tools/tools_hacs.py +0 -0
  140. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/tools/tools_history.py +0 -0
  141. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/tools/tools_integrations.py +0 -0
  142. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/tools/tools_labels.py +0 -0
  143. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/tools/tools_radio.py +0 -0
  144. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/tools/tools_registry.py +0 -0
  145. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/tools/tools_resources.py +0 -0
  146. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/tools/tools_search.py +0 -0
  147. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/tools/tools_service.py +0 -0
  148. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/tools/tools_services.py +0 -0
  149. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/tools/tools_system.py +0 -0
  150. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/tools/tools_themes.py +0 -0
  151. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/tools/tools_todo.py +0 -0
  152. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/tools/tools_traces.py +0 -0
  153. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/tools/tools_updates.py +0 -0
  154. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/tools/tools_utility.py +0 -0
  155. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/tools/tools_voice_assistant.py +0 -0
  156. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/tools/tools_yaml_config.py +0 -0
  157. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/tools/tools_yaml_read.py +0 -0
  158. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/tools/tools_zones.py +0 -0
  159. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/tools/util_helpers.py +0 -0
  160. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/tools/validation_middleware.py +0 -0
  161. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/transforms/__init__.py +0 -0
  162. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/transforms/categorized_search.py +0 -0
  163. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/transforms/lite_docstrings.py +0 -0
  164. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/transport_security.py +0 -0
  165. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/update_check.py +0 -0
  166. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/utils/__init__.py +0 -0
  167. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/utils/config_hash.py +0 -0
  168. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/utils/data_paths.py +0 -0
  169. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/utils/domain_handlers.py +0 -0
  170. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/utils/fuzzy_search.py +0 -0
  171. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/utils/kill_signal_diagnostics.py +0 -0
  172. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/utils/operation_manager.py +0 -0
  173. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/utils/python_sandbox.py +0 -0
  174. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/utils/skill_loader.py +0 -0
  175. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/utils/usage_logger.py +0 -0
  176. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/visibility/__init__.py +0 -0
  177. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/visibility/model.py +0 -0
  178. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/visibility/persistence.py +0 -0
  179. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp/visibility/resolver.py +0 -0
  180. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp_dev.egg-info/SOURCES.txt +0 -0
  181. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp_dev.egg-info/dependency_links.txt +0 -0
  182. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp_dev.egg-info/entry_points.txt +0 -0
  183. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp_dev.egg-info/requires.txt +0 -0
  184. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/src/ha_mcp_dev.egg-info/top_level.txt +0 -0
  185. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/tests/__init__.py +0 -0
  186. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/tests/test_constants.py +0 -0
  187. {ha_mcp_dev-7.13.0.dev2035 → ha_mcp_dev-7.13.0.dev2037}/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.13.0.dev2035
3
+ Version: 7.13.0.dev2037
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
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "ha-mcp-dev"
7
- version = "7.13.0.dev2035"
7
+ version = "7.13.0.dev2037"
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
@@ -4001,11 +4001,11 @@ class HelperConfigTools:
4001
4001
  async def _legacy_helper_list(self, helper_type: str) -> dict[str, Any]:
4002
4002
  """Legacy ``{helper_type}/list`` success envelope, for the § 4 #3 fallback.
4003
4003
 
4004
- A faithful copy of the tool's inline legacy success path, kept separate
4005
- (rather than extracted from that body) so the #1794 registry-join PR can
4006
- patch the inline body without a conflict here. The drift is bounded to
4007
- the rare component-error fallback and is flagged by the ``warnings[]``
4008
- entry the caller appends.
4004
+ A copy of the tool's inline legacy success path, kept separate rather
4005
+ than extracted from that body. It flattens and joins the entity registry
4006
+ (issue #1945) exactly like the inline path, so a renamed helper served on
4007
+ this fallback carries its current entity_id/name; the caller additionally
4008
+ appends a ``warnings[]`` entry flagging that the component path was used.
4009
4009
  """
4010
4010
  result = await self._client.send_websocket_message(
4011
4011
  {"type": f"{helper_type}/list"}
@@ -4023,13 +4023,22 @@ class HelperConfigTools:
4023
4023
  # would be a dict here — breaking count, the pagination slice and the
4024
4024
  # all-types merge, which all expect a list of records.
4025
4025
  items = _flatten_helper_list_result(result)
4026
- return {
4026
+ # Join the entity registry like the inline body (issue #1945): without
4027
+ # this a renamed helper served on the component-error fallback keeps its
4028
+ # stale storage id/name, the same #1794 staleness the inline path fixes.
4029
+ enrich_warnings = await _enrich_helpers_with_current_registry(
4030
+ self._client, helper_type, items
4031
+ )
4032
+ response: dict[str, Any] = {
4027
4033
  "success": True,
4028
4034
  "helper_type": helper_type,
4029
4035
  "count": len(items),
4030
4036
  "helpers": items,
4031
4037
  "message": f"Found {len(items)} {helper_type} helper(s)",
4032
4038
  }
4039
+ if enrich_warnings:
4040
+ response["warnings"] = enrich_warnings
4041
+ return response
4033
4042
 
4034
4043
  async def _list_all_helpers(self) -> dict[str, Any]:
4035
4044
  """Serve ``helper_type="all"``: one merged component listing, or a hard error.
@@ -4145,8 +4154,14 @@ class HelperConfigTools:
4145
4154
  ],
4146
4155
  )
4147
4156
  )
4157
+ merge_warnings: list[str] = []
4148
4158
  for helper_type in sorted(SIMPLE_HELPER_TYPES - covered_set):
4149
4159
  legacy = await self._legacy_helper_list(helper_type)
4160
+ # _legacy_helper_list joins the registry (issue #1945) and, degrade-
4161
+ # open, flags a failed registry read in warnings[]; surface those here
4162
+ # instead of dropping them, else an uncovered type is served stale and
4163
+ # silent during an all-types listing.
4164
+ merge_warnings.extend(legacy.get("warnings", []))
4150
4165
  skipped = 0
4151
4166
  for item in legacy.get("helpers", []):
4152
4167
  if isinstance(item, dict):
@@ -4165,13 +4180,16 @@ class HelperConfigTools:
4165
4180
  helper_type,
4166
4181
  )
4167
4182
 
4168
- return {
4183
+ response: dict[str, Any] = {
4169
4184
  "success": True,
4170
4185
  "helper_type": "all",
4171
4186
  "count": len(helpers),
4172
4187
  "helpers": helpers,
4173
4188
  "message": f"Found {len(helpers)} helper(s)",
4174
4189
  }
4190
+ if merge_warnings:
4191
+ response["warnings"] = merge_warnings
4192
+ return response
4175
4193
 
4176
4194
  @tool(
4177
4195
  name="ha_config_set_helper",
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ha-mcp-dev
3
- Version: 7.13.0.dev2035
3
+ Version: 7.13.0.dev2037
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