ha-mcp-dev 8.0.0.dev2222__tar.gz → 8.0.0.dev2225__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 (196) hide show
  1. {ha_mcp_dev-8.0.0.dev2222/src/ha_mcp_dev.egg-info → ha_mcp_dev-8.0.0.dev2225}/PKG-INFO +1 -1
  2. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/pyproject.toml +1 -1
  3. ha_mcp_dev-8.0.0.dev2225/src/ha_mcp/resources/skills-vendor/AGENTS.md +40 -0
  4. ha_mcp_dev-8.0.0.dev2225/src/ha_mcp/resources/skills-vendor/CLAUDE.md +40 -0
  5. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225/src/ha_mcp_dev.egg-info}/PKG-INFO +1 -1
  6. ha_mcp_dev-8.0.0.dev2222/src/ha_mcp/resources/skills-vendor/AGENTS.md +0 -63
  7. ha_mcp_dev-8.0.0.dev2222/src/ha_mcp/resources/skills-vendor/CLAUDE.md +0 -63
  8. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/LICENSE +0 -0
  9. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/MANIFEST.in +0 -0
  10. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/README.md +0 -0
  11. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/setup.cfg +0 -0
  12. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/__init__.py +0 -0
  13. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/__main__.py +0 -0
  14. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/_pypi_marker +0 -0
  15. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/_version.py +0 -0
  16. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/auth/__init__.py +0 -0
  17. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/auth/consent_form.py +0 -0
  18. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/auth/provider.py +0 -0
  19. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/backup_manager.py +0 -0
  20. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/browser_landing.py +0 -0
  21. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/client/__init__.py +0 -0
  22. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/client/rest_client.py +0 -0
  23. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/client/supervisor_client.py +0 -0
  24. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/client/websocket_client.py +0 -0
  25. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/client/websocket_listener.py +0 -0
  26. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/config.py +0 -0
  27. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/dashboard_screenshot/__init__.py +0 -0
  28. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/dashboard_screenshot/capture.py +0 -0
  29. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/dashboard_screenshot/content.py +0 -0
  30. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/dashboard_screenshot/paths.py +0 -0
  31. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/dashboard_screenshot/provision.py +0 -0
  32. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/dashboard_screenshot/theme_guard.py +0 -0
  33. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/errors.py +0 -0
  34. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/llm_exposure.py +0 -0
  35. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/policy/__init__.py +0 -0
  36. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/policy/approval_queue.py +0 -0
  37. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/policy/evaluator.py +0 -0
  38. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/policy/handlers.py +0 -0
  39. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/policy/middleware.py +0 -0
  40. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/policy/model.py +0 -0
  41. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/policy/persistence.py +0 -0
  42. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/policy/value_sources.py +0 -0
  43. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/py.typed +0 -0
  44. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/read_only.py +0 -0
  45. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/resources/skills-vendor/.claude/settings.json +0 -0
  46. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/resources/skills-vendor/.claude-plugin/marketplace.json +0 -0
  47. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/resources/skills-vendor/.claude-plugin/plugin.json +0 -0
  48. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/resources/skills-vendor/.github/ISSUE_TEMPLATE/skill-rca.md +0 -0
  49. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/resources/skills-vendor/.github/pull_request_template.md +0 -0
  50. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/resources/skills-vendor/CONTRIBUTING.md +0 -0
  51. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/resources/skills-vendor/LICENSE +0 -0
  52. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/resources/skills-vendor/README.md +0 -0
  53. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/SKILL.md +0 -0
  54. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/evals/evals.json +0 -0
  55. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/appdaemon.md +0 -0
  56. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/automation-patterns.md +0 -0
  57. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/blueprint-guide.md +0 -0
  58. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/dashboard-cards.md +0 -0
  59. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/dashboard-guide.md +0 -0
  60. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/device-control.md +0 -0
  61. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/domain-docs.md +0 -0
  62. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/examples.yaml +0 -0
  63. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/helper-selection.md +0 -0
  64. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/safe-refactoring.md +0 -0
  65. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/scenes.md +0 -0
  66. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/template-guidelines.md +0 -0
  67. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/yaml-only-integrations.md +0 -0
  68. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/server.py +0 -0
  69. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/settings_ui/__init__.py +0 -0
  70. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/settings_ui/_handlers_advanced.py +0 -0
  71. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/settings_ui/_handlers_backups.py +0 -0
  72. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/settings_ui/_handlers_fs.py +0 -0
  73. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/settings_ui/_handlers_server.py +0 -0
  74. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/settings_ui/_handlers_theme.py +0 -0
  75. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/settings_ui/_handlers_tools.py +0 -0
  76. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/settings_ui/_i18n.py +0 -0
  77. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/settings_ui/_persistence.py +0 -0
  78. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/settings_ui/_supervisor.py +0 -0
  79. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/settings_ui/_theme.py +0 -0
  80. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/settings_ui/_tools_meta.py +0 -0
  81. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/settings_ui/locales/README.md +0 -0
  82. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/settings_ui/locales/de.json +0 -0
  83. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/settings_ui/locales/en.json +0 -0
  84. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/settings_ui/locales/es.json +0 -0
  85. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/settings_ui/locales/fr.json +0 -0
  86. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/settings_ui/locales/it.json +0 -0
  87. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/settings_ui/locales/ru.json +0 -0
  88. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/settings_ui/locales/zh-Hans.json +0 -0
  89. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/settings_ui/settings.css +0 -0
  90. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/settings_ui/settings.html +0 -0
  91. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/settings_ui/settings.js +0 -0
  92. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/smoke_test.py +0 -0
  93. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/stdio_settings_sidecar.py +0 -0
  94. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/strict_bps.py +0 -0
  95. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/tools/__init__.py +0 -0
  96. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/tools/auto_backup.py +0 -0
  97. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/tools/backup.py +0 -0
  98. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/tools/best_practice_checker.py +0 -0
  99. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/tools/best_practice_result.py +0 -0
  100. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/tools/best_practice_variables.py +0 -0
  101. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/tools/component_api.py +0 -0
  102. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/tools/component_config_reads.py +0 -0
  103. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/tools/component_devices.py +0 -0
  104. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/tools/component_registries.py +0 -0
  105. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/tools/component_registry_lookup.py +0 -0
  106. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/tools/config_entry_flow.py +0 -0
  107. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/tools/device_control.py +0 -0
  108. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/tools/helpers.py +0 -0
  109. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/tools/radio/__init__.py +0 -0
  110. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/tools/radio/base.py +0 -0
  111. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/tools/radio/matter.py +0 -0
  112. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/tools/radio/thread.py +0 -0
  113. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/tools/radio/zigbee.py +0 -0
  114. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/tools/radio/zwave.py +0 -0
  115. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/tools/reference_validator.py +0 -0
  116. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/tools/registry.py +0 -0
  117. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/tools/smart_search/__init__.py +0 -0
  118. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/tools/smart_search/_base.py +0 -0
  119. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/tools/smart_search/_config.py +0 -0
  120. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/tools/smart_search/_deep.py +0 -0
  121. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/tools/smart_search/_entities.py +0 -0
  122. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/tools/smart_search/_fetch.py +0 -0
  123. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/tools/smart_search/_overview.py +0 -0
  124. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/tools/smart_search/_scenes.py +0 -0
  125. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/tools/smart_search/_scoring.py +0 -0
  126. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/tools/tool_search_hint_middleware.py +0 -0
  127. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/tools/tools_addons.py +0 -0
  128. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/tools/tools_areas.py +0 -0
  129. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/tools/tools_blueprints.py +0 -0
  130. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/tools/tools_bug_report.py +0 -0
  131. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/tools/tools_calendar.py +0 -0
  132. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/tools/tools_camera.py +0 -0
  133. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/tools/tools_categories.py +0 -0
  134. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/tools/tools_code.py +0 -0
  135. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/tools/tools_config_automations.py +0 -0
  136. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/tools/tools_config_dashboards.py +0 -0
  137. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/tools/tools_config_helpers.py +0 -0
  138. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/tools/tools_config_scenes.py +0 -0
  139. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/tools/tools_config_scripts.py +0 -0
  140. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/tools/tools_dashboard_screenshot.py +0 -0
  141. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/tools/tools_dev.py +0 -0
  142. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/tools/tools_energy.py +0 -0
  143. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/tools/tools_entities.py +0 -0
  144. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/tools/tools_filesystem.py +0 -0
  145. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/tools/tools_groups.py +0 -0
  146. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/tools/tools_hacs.py +0 -0
  147. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/tools/tools_history.py +0 -0
  148. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/tools/tools_integrations.py +0 -0
  149. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/tools/tools_labels.py +0 -0
  150. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/tools/tools_radio.py +0 -0
  151. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/tools/tools_registry.py +0 -0
  152. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/tools/tools_resources.py +0 -0
  153. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/tools/tools_search.py +0 -0
  154. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/tools/tools_service.py +0 -0
  155. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/tools/tools_services.py +0 -0
  156. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/tools/tools_system.py +0 -0
  157. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/tools/tools_themes.py +0 -0
  158. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/tools/tools_todo.py +0 -0
  159. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/tools/tools_traces.py +0 -0
  160. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/tools/tools_updates.py +0 -0
  161. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/tools/tools_utility.py +0 -0
  162. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/tools/tools_voice_assistant.py +0 -0
  163. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/tools/tools_yaml_config.py +0 -0
  164. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/tools/tools_yaml_read.py +0 -0
  165. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/tools/tools_zones.py +0 -0
  166. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/tools/util_helpers.py +0 -0
  167. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/tools/validation_middleware.py +0 -0
  168. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/transforms/__init__.py +0 -0
  169. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/transforms/categorized_search.py +0 -0
  170. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/transforms/lite_docstrings.py +0 -0
  171. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/transport_security.py +0 -0
  172. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/update_check.py +0 -0
  173. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/utils/__init__.py +0 -0
  174. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/utils/config_hash.py +0 -0
  175. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/utils/config_write_lock.py +0 -0
  176. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/utils/data_paths.py +0 -0
  177. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/utils/domain_handlers.py +0 -0
  178. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/utils/fuzzy_search.py +0 -0
  179. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/utils/kill_signal_diagnostics.py +0 -0
  180. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/utils/operation_manager.py +0 -0
  181. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/utils/python_sandbox.py +0 -0
  182. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/utils/skill_loader.py +0 -0
  183. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/utils/usage_logger.py +0 -0
  184. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/visibility/__init__.py +0 -0
  185. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/visibility/enforcement.py +0 -0
  186. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/visibility/model.py +0 -0
  187. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/visibility/persistence.py +0 -0
  188. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp/visibility/resolver.py +0 -0
  189. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp_dev.egg-info/SOURCES.txt +0 -0
  190. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp_dev.egg-info/dependency_links.txt +0 -0
  191. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp_dev.egg-info/entry_points.txt +0 -0
  192. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp_dev.egg-info/requires.txt +0 -0
  193. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/src/ha_mcp_dev.egg-info/top_level.txt +0 -0
  194. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/tests/__init__.py +0 -0
  195. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/tests/test_constants.py +0 -0
  196. {ha_mcp_dev-8.0.0.dev2222 → ha_mcp_dev-8.0.0.dev2225}/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.0.0.dev2222
3
+ Version: 8.0.0.dev2225
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 = "8.0.0.dev2222"
7
+ version = "8.0.0.dev2225"
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
@@ -0,0 +1,40 @@
1
+ # CLAUDE.md
2
+
3
+ This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
4
+
5
+ ## Skill Format
6
+
7
+ Every skill is a `SKILL.md` file with YAML frontmatter:
8
+
9
+ ```yaml
10
+ ---
11
+ name: skill-name-here
12
+ description: >
13
+ When to activate this skill and what symptoms it addresses.
14
+ ---
15
+ ```
16
+
17
+ Full authoring constraints: `CONTRIBUTING.md`. The one CI cannot catch:
18
+ - `metadata.version` must be `0` on new skills — do not edit manually; CI assigns the real version on merge
19
+
20
+ ## Skill Authoring Principles
21
+
22
+ - **Context window conservation** — only include domain-specific knowledge that agents lack; omit general programming advice
23
+ - **Conciseness** — provide patterns and quick-reference tables, not tutorials
24
+ - **Consistent terminology** — one term per concept throughout a skill
25
+ - **Symptom-based triggering** — the `description` frontmatter should describe observable agent behaviors that signal the skill is needed
26
+ - **No tool names** — reference HA REST APIs and concepts, never specific MCP tool names (e.g. `ha_rename_entity`); tool names vary by agent setup
27
+
28
+ ## Validation
29
+
30
+ To validate locally:
31
+
32
+ ```bash
33
+ uvx skills-ref validate skills/<skill-name>
34
+ ```
35
+
36
+ ## Reviewing Skill PRs
37
+
38
+ - Judge prose as agent-consumed context, not human docs — the Skill Authoring Principles above are the review bar (e.g. an operator→result lookup table beats narrative bullets, because agents land here holding one case to resolve)
39
+ - Skills make version-pinned claims about HA behavior — verify against source at the release tag: `gh api repos/home-assistant/core/contents/<path>?ref=2026.7.4 --jq .content | base64 -d`
40
+ - Community PRs come from forks: base-repo `?ref=<pr-branch>` 404s; get the fork with `gh pr view <pr> --json headRepository` and fetch files from there
@@ -0,0 +1,40 @@
1
+ # CLAUDE.md
2
+
3
+ This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
4
+
5
+ ## Skill Format
6
+
7
+ Every skill is a `SKILL.md` file with YAML frontmatter:
8
+
9
+ ```yaml
10
+ ---
11
+ name: skill-name-here
12
+ description: >
13
+ When to activate this skill and what symptoms it addresses.
14
+ ---
15
+ ```
16
+
17
+ Full authoring constraints: `CONTRIBUTING.md`. The one CI cannot catch:
18
+ - `metadata.version` must be `0` on new skills — do not edit manually; CI assigns the real version on merge
19
+
20
+ ## Skill Authoring Principles
21
+
22
+ - **Context window conservation** — only include domain-specific knowledge that agents lack; omit general programming advice
23
+ - **Conciseness** — provide patterns and quick-reference tables, not tutorials
24
+ - **Consistent terminology** — one term per concept throughout a skill
25
+ - **Symptom-based triggering** — the `description` frontmatter should describe observable agent behaviors that signal the skill is needed
26
+ - **No tool names** — reference HA REST APIs and concepts, never specific MCP tool names (e.g. `ha_rename_entity`); tool names vary by agent setup
27
+
28
+ ## Validation
29
+
30
+ To validate locally:
31
+
32
+ ```bash
33
+ uvx skills-ref validate skills/<skill-name>
34
+ ```
35
+
36
+ ## Reviewing Skill PRs
37
+
38
+ - Judge prose as agent-consumed context, not human docs — the Skill Authoring Principles above are the review bar (e.g. an operator→result lookup table beats narrative bullets, because agents land here holding one case to resolve)
39
+ - Skills make version-pinned claims about HA behavior — verify against source at the release tag: `gh api repos/home-assistant/core/contents/<path>?ref=2026.7.4 --jq .content | base64 -d`
40
+ - Community PRs come from forks: base-repo `?ref=<pr-branch>` 404s; get the fork with `gh pr view <pr> --json headRepository` and fetch files from there
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ha-mcp-dev
3
- Version: 8.0.0.dev2222
3
+ Version: 8.0.0.dev2225
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
@@ -1,63 +0,0 @@
1
- # CLAUDE.md
2
-
3
- This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
4
-
5
- ## Project Overview
6
-
7
- This is a community-contributed collection of **Agent Skills** for Home Assistant, following the open [Agent Skills standard](https://agentskills.io/specification). Skills teach AI agents domain expertise for configuring and controlling Home Assistant. The repository doubles as a Claude Code plugin (see `.claude-plugin/plugin.json`).
8
-
9
- ## Repository Structure
10
-
11
- - `skills/<skill-name>/SKILL.md` — each skill lives in its own folder with a `SKILL.md` file
12
- - `CONTRIBUTING.md` — skill authoring guidelines and submission workflow
13
- - `.claude-plugin/plugin.json` — Claude Code plugin metadata
14
- - `.claude-plugin/marketplace.json` — marketplace metadata for plugin discovery
15
- - `AGENTS.md` — symlink to `CLAUDE.md` (for agents that use `AGENTS.md` convention)
16
- - `.github/ISSUE_TEMPLATE/skill-rca.md` — "Report Bad Skill Advice" issue template
17
-
18
- ## Skill Format
19
-
20
- Every skill is a `SKILL.md` file with YAML frontmatter:
21
-
22
- ```yaml
23
- ---
24
- name: skill-name-here
25
- description: >
26
- When to activate this skill and what symptoms it addresses.
27
- ---
28
- ```
29
-
30
- Constraints from CONTRIBUTING.md:
31
- - Max **500 lines** per SKILL.md
32
- - `metadata.version` must be `0` on new skills (do not edit manually)
33
- - `name` must match `[a-z0-9-]+` and be ≤64 characters
34
- - `description` frontmatter must be **≤1024 characters** (CI enforces this via `skills-ref validate`)
35
- - Reference files must be **one level deep** only (e.g. `references/example.yaml`)
36
- - Use **forward slashes** in all file paths
37
- - Optional subdirectories: `references/` (additional docs), `scripts/` (utility scripts), `assets/` (static resources)
38
-
39
- ## Skill Authoring Principles
40
-
41
- - **Context window conservation** — only include domain-specific knowledge that agents lack; omit general programming advice
42
- - **Conciseness** — provide patterns and quick-reference tables, not tutorials
43
- - **Consistent terminology** — one term per concept throughout a skill
44
- - **Symptom-based triggering** — the `description` frontmatter should describe observable agent behaviors that signal the skill is needed
45
- - **No tool names** — reference HA REST APIs and concepts, never specific MCP tool names (e.g. `ha_rename_entity`); tool names vary by agent setup
46
-
47
- ## Validation
48
-
49
- CI runs two workflows on PRs and pushes to `main`:
50
- - **validate-skills** — runs `skills-ref validate` on every skill when `skills/**` changes
51
- - **validate-plugin** — validates `.claude-plugin/` metadata
52
-
53
- To validate locally:
54
-
55
- ```bash
56
- uvx skills-ref validate skills/<skill-name>
57
- ```
58
-
59
- ## Reviewing Skill PRs
60
-
61
- - Judge prose as agent-consumed context, not human docs — the Skill Authoring Principles above are the review bar (e.g. an operator→result lookup table beats narrative bullets, because agents land here holding one case to resolve)
62
- - Skills make version-pinned claims about HA behavior — verify against source at the release tag: `gh api repos/home-assistant/core/contents/<path>?ref=2026.7.4 --jq .content | base64 -d`
63
- - Community PRs come from forks: base-repo `?ref=<pr-branch>` 404s; get the fork with `gh pr view <pr> --json headRepository` and fetch files from there
@@ -1,63 +0,0 @@
1
- # CLAUDE.md
2
-
3
- This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
4
-
5
- ## Project Overview
6
-
7
- This is a community-contributed collection of **Agent Skills** for Home Assistant, following the open [Agent Skills standard](https://agentskills.io/specification). Skills teach AI agents domain expertise for configuring and controlling Home Assistant. The repository doubles as a Claude Code plugin (see `.claude-plugin/plugin.json`).
8
-
9
- ## Repository Structure
10
-
11
- - `skills/<skill-name>/SKILL.md` — each skill lives in its own folder with a `SKILL.md` file
12
- - `CONTRIBUTING.md` — skill authoring guidelines and submission workflow
13
- - `.claude-plugin/plugin.json` — Claude Code plugin metadata
14
- - `.claude-plugin/marketplace.json` — marketplace metadata for plugin discovery
15
- - `AGENTS.md` — symlink to `CLAUDE.md` (for agents that use `AGENTS.md` convention)
16
- - `.github/ISSUE_TEMPLATE/skill-rca.md` — "Report Bad Skill Advice" issue template
17
-
18
- ## Skill Format
19
-
20
- Every skill is a `SKILL.md` file with YAML frontmatter:
21
-
22
- ```yaml
23
- ---
24
- name: skill-name-here
25
- description: >
26
- When to activate this skill and what symptoms it addresses.
27
- ---
28
- ```
29
-
30
- Constraints from CONTRIBUTING.md:
31
- - Max **500 lines** per SKILL.md
32
- - `metadata.version` must be `0` on new skills (do not edit manually)
33
- - `name` must match `[a-z0-9-]+` and be ≤64 characters
34
- - `description` frontmatter must be **≤1024 characters** (CI enforces this via `skills-ref validate`)
35
- - Reference files must be **one level deep** only (e.g. `references/example.yaml`)
36
- - Use **forward slashes** in all file paths
37
- - Optional subdirectories: `references/` (additional docs), `scripts/` (utility scripts), `assets/` (static resources)
38
-
39
- ## Skill Authoring Principles
40
-
41
- - **Context window conservation** — only include domain-specific knowledge that agents lack; omit general programming advice
42
- - **Conciseness** — provide patterns and quick-reference tables, not tutorials
43
- - **Consistent terminology** — one term per concept throughout a skill
44
- - **Symptom-based triggering** — the `description` frontmatter should describe observable agent behaviors that signal the skill is needed
45
- - **No tool names** — reference HA REST APIs and concepts, never specific MCP tool names (e.g. `ha_rename_entity`); tool names vary by agent setup
46
-
47
- ## Validation
48
-
49
- CI runs two workflows on PRs and pushes to `main`:
50
- - **validate-skills** — runs `skills-ref validate` on every skill when `skills/**` changes
51
- - **validate-plugin** — validates `.claude-plugin/` metadata
52
-
53
- To validate locally:
54
-
55
- ```bash
56
- uvx skills-ref validate skills/<skill-name>
57
- ```
58
-
59
- ## Reviewing Skill PRs
60
-
61
- - Judge prose as agent-consumed context, not human docs — the Skill Authoring Principles above are the review bar (e.g. an operator→result lookup table beats narrative bullets, because agents land here holding one case to resolve)
62
- - Skills make version-pinned claims about HA behavior — verify against source at the release tag: `gh api repos/home-assistant/core/contents/<path>?ref=2026.7.4 --jq .content | base64 -d`
63
- - Community PRs come from forks: base-repo `?ref=<pr-branch>` 404s; get the fork with `gh pr view <pr> --json headRepository` and fetch files from there