ha-mcp-dev 8.0.0.dev2238__tar.gz → 8.1.0.dev2243__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 (198) hide show
  1. {ha_mcp_dev-8.0.0.dev2238/src/ha_mcp_dev.egg-info → ha_mcp_dev-8.1.0.dev2243}/PKG-INFO +1 -1
  2. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/pyproject.toml +1 -1
  3. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/settings_ui/locales/README.md +27 -8
  4. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243/src/ha_mcp_dev.egg-info}/PKG-INFO +1 -1
  5. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/LICENSE +0 -0
  6. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/MANIFEST.in +0 -0
  7. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/README.md +0 -0
  8. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/setup.cfg +0 -0
  9. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/__init__.py +0 -0
  10. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/__main__.py +0 -0
  11. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/_pypi_marker +0 -0
  12. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/_version.py +0 -0
  13. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/auth/__init__.py +0 -0
  14. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/auth/consent_form.py +0 -0
  15. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/auth/provider.py +0 -0
  16. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/backup_manager.py +0 -0
  17. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/browser_landing.py +0 -0
  18. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/client/__init__.py +0 -0
  19. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/client/rest_client.py +0 -0
  20. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/client/supervisor_client.py +0 -0
  21. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/client/websocket_client.py +0 -0
  22. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/client/websocket_listener.py +0 -0
  23. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/config.py +0 -0
  24. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/dashboard_screenshot/__init__.py +0 -0
  25. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/dashboard_screenshot/capture.py +0 -0
  26. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/dashboard_screenshot/content.py +0 -0
  27. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/dashboard_screenshot/paths.py +0 -0
  28. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/dashboard_screenshot/provision.py +0 -0
  29. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/dashboard_screenshot/theme_guard.py +0 -0
  30. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/errors.py +0 -0
  31. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/llm_exposure.py +0 -0
  32. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/policy/__init__.py +0 -0
  33. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/policy/approval_queue.py +0 -0
  34. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/policy/evaluator.py +0 -0
  35. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/policy/handlers.py +0 -0
  36. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/policy/middleware.py +0 -0
  37. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/policy/model.py +0 -0
  38. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/policy/persistence.py +0 -0
  39. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/policy/value_sources.py +0 -0
  40. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/py.typed +0 -0
  41. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/read_only.py +0 -0
  42. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/resources/skills-vendor/.claude/settings.json +0 -0
  43. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/resources/skills-vendor/.claude-plugin/marketplace.json +0 -0
  44. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/resources/skills-vendor/.claude-plugin/plugin.json +0 -0
  45. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/resources/skills-vendor/.github/ISSUE_TEMPLATE/skill-rca.md +0 -0
  46. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/resources/skills-vendor/.github/pull_request_template.md +0 -0
  47. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/resources/skills-vendor/AGENTS.md +0 -0
  48. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/resources/skills-vendor/CLAUDE.md +0 -0
  49. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/resources/skills-vendor/CONTRIBUTING.md +0 -0
  50. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/resources/skills-vendor/LICENSE +0 -0
  51. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/resources/skills-vendor/README.md +0 -0
  52. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/SKILL.md +0 -0
  53. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/evals/evals.json +0 -0
  54. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/appdaemon.md +0 -0
  55. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/automation-patterns.md +0 -0
  56. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/blueprint-guide.md +0 -0
  57. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/dashboard-cards.md +0 -0
  58. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/dashboard-guide.md +0 -0
  59. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/device-control.md +0 -0
  60. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/domain-docs.md +0 -0
  61. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/examples.yaml +0 -0
  62. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/helper-selection.md +0 -0
  63. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/safe-refactoring.md +0 -0
  64. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/scenes.md +0 -0
  65. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/template-guidelines.md +0 -0
  66. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/yaml-only-integrations.md +0 -0
  67. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/server.py +0 -0
  68. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/settings_ui/__init__.py +0 -0
  69. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/settings_ui/_handlers_advanced.py +0 -0
  70. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/settings_ui/_handlers_backups.py +0 -0
  71. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/settings_ui/_handlers_fs.py +0 -0
  72. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/settings_ui/_handlers_server.py +0 -0
  73. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/settings_ui/_handlers_theme.py +0 -0
  74. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/settings_ui/_handlers_tools.py +0 -0
  75. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/settings_ui/_i18n.py +0 -0
  76. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/settings_ui/_persistence.py +0 -0
  77. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/settings_ui/_supervisor.py +0 -0
  78. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/settings_ui/_theme.py +0 -0
  79. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/settings_ui/_tools_meta.py +0 -0
  80. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/settings_ui/locales/de.json +0 -0
  81. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/settings_ui/locales/en.json +0 -0
  82. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/settings_ui/locales/es.json +0 -0
  83. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/settings_ui/locales/fr.json +0 -0
  84. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/settings_ui/locales/it.json +0 -0
  85. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/settings_ui/locales/ru.json +0 -0
  86. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/settings_ui/locales/zh-Hans.json +0 -0
  87. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/settings_ui/settings.css +0 -0
  88. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/settings_ui/settings.html +0 -0
  89. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/settings_ui/settings.js +0 -0
  90. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/smoke_test.py +0 -0
  91. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/stdio_settings_sidecar.py +0 -0
  92. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/strict_bps.py +0 -0
  93. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/tools/__init__.py +0 -0
  94. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/tools/auto_backup.py +0 -0
  95. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/tools/backup.py +0 -0
  96. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/tools/best_practice_checker.py +0 -0
  97. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/tools/best_practice_result.py +0 -0
  98. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/tools/best_practice_variables.py +0 -0
  99. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/tools/component_api.py +0 -0
  100. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/tools/component_config_reads.py +0 -0
  101. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/tools/component_devices.py +0 -0
  102. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/tools/component_registries.py +0 -0
  103. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/tools/component_registry_lookup.py +0 -0
  104. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/tools/config_entry_flow.py +0 -0
  105. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/tools/config_entry_flow_form.py +0 -0
  106. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/tools/config_entry_flow_menu.py +0 -0
  107. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/tools/config_entry_flow_walker.py +0 -0
  108. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/tools/device_control.py +0 -0
  109. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/tools/hacs_registration.py +0 -0
  110. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/tools/helpers.py +0 -0
  111. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/tools/radio/__init__.py +0 -0
  112. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/tools/radio/base.py +0 -0
  113. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/tools/radio/matter.py +0 -0
  114. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/tools/radio/thread.py +0 -0
  115. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/tools/radio/zigbee.py +0 -0
  116. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/tools/radio/zwave.py +0 -0
  117. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/tools/reference_validator.py +0 -0
  118. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/tools/registry.py +0 -0
  119. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/tools/smart_search/__init__.py +0 -0
  120. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/tools/smart_search/_base.py +0 -0
  121. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/tools/smart_search/_config.py +0 -0
  122. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/tools/smart_search/_deep.py +0 -0
  123. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/tools/smart_search/_entities.py +0 -0
  124. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/tools/smart_search/_fetch.py +0 -0
  125. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/tools/smart_search/_overview.py +0 -0
  126. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/tools/smart_search/_scenes.py +0 -0
  127. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/tools/smart_search/_scoring.py +0 -0
  128. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/tools/tool_search_hint_middleware.py +0 -0
  129. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/tools/tools_addons.py +0 -0
  130. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/tools/tools_areas.py +0 -0
  131. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/tools/tools_blueprints.py +0 -0
  132. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/tools/tools_bug_report.py +0 -0
  133. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/tools/tools_calendar.py +0 -0
  134. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/tools/tools_camera.py +0 -0
  135. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/tools/tools_categories.py +0 -0
  136. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/tools/tools_code.py +0 -0
  137. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/tools/tools_config_automations.py +0 -0
  138. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/tools/tools_config_dashboards.py +0 -0
  139. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/tools/tools_config_helpers.py +0 -0
  140. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/tools/tools_config_scenes.py +0 -0
  141. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/tools/tools_config_scripts.py +0 -0
  142. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/tools/tools_dashboard_screenshot.py +0 -0
  143. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/tools/tools_dev.py +0 -0
  144. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/tools/tools_energy.py +0 -0
  145. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/tools/tools_entities.py +0 -0
  146. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/tools/tools_filesystem.py +0 -0
  147. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/tools/tools_groups.py +0 -0
  148. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/tools/tools_hacs.py +0 -0
  149. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/tools/tools_history.py +0 -0
  150. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/tools/tools_integrations.py +0 -0
  151. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/tools/tools_labels.py +0 -0
  152. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/tools/tools_radio.py +0 -0
  153. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/tools/tools_registry.py +0 -0
  154. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/tools/tools_resources.py +0 -0
  155. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/tools/tools_search.py +0 -0
  156. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/tools/tools_service.py +0 -0
  157. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/tools/tools_services.py +0 -0
  158. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/tools/tools_system.py +0 -0
  159. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/tools/tools_themes.py +0 -0
  160. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/tools/tools_todo.py +0 -0
  161. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/tools/tools_traces.py +0 -0
  162. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/tools/tools_updates.py +0 -0
  163. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/tools/tools_utility.py +0 -0
  164. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/tools/tools_voice_assistant.py +0 -0
  165. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/tools/tools_yaml_config.py +0 -0
  166. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/tools/tools_yaml_read.py +0 -0
  167. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/tools/tools_zones.py +0 -0
  168. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/tools/util_helpers.py +0 -0
  169. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/tools/validation_middleware.py +0 -0
  170. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/transforms/__init__.py +0 -0
  171. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/transforms/categorized_search.py +0 -0
  172. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/transforms/lite_docstrings.py +0 -0
  173. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/transport_security.py +0 -0
  174. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/update_check.py +0 -0
  175. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/utils/__init__.py +0 -0
  176. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/utils/config_hash.py +0 -0
  177. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/utils/config_write_lock.py +0 -0
  178. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/utils/data_paths.py +0 -0
  179. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/utils/domain_handlers.py +0 -0
  180. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/utils/fuzzy_search.py +0 -0
  181. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/utils/kill_signal_diagnostics.py +0 -0
  182. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/utils/operation_manager.py +0 -0
  183. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/utils/python_sandbox.py +0 -0
  184. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/utils/skill_loader.py +0 -0
  185. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/utils/usage_logger.py +0 -0
  186. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/visibility/__init__.py +0 -0
  187. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/visibility/enforcement.py +0 -0
  188. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/visibility/model.py +0 -0
  189. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/visibility/persistence.py +0 -0
  190. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp/visibility/resolver.py +0 -0
  191. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp_dev.egg-info/SOURCES.txt +0 -0
  192. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp_dev.egg-info/dependency_links.txt +0 -0
  193. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp_dev.egg-info/entry_points.txt +0 -0
  194. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp_dev.egg-info/requires.txt +0 -0
  195. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/src/ha_mcp_dev.egg-info/top_level.txt +0 -0
  196. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/tests/__init__.py +0 -0
  197. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/tests/test_constants.py +0 -0
  198. {ha_mcp_dev-8.0.0.dev2238 → ha_mcp_dev-8.1.0.dev2243}/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.dev2238
3
+ Version: 8.1.0.dev2243
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.dev2238"
7
+ version = "8.1.0.dev2243"
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
@@ -24,10 +24,12 @@ Home Assistant language code names every file:
24
24
  - `homeassistant-addon/translations/<code>.yaml` (generated)
25
25
  - `homeassistant-addon-dev/translations/<code>.yaml` (generated)
26
26
 
27
- Add the two authored catalogs — this one may start as a `meta`-only stub
28
- (`native_name`, `dir`) — then run `python scripts/generate_locales.py` and
29
- merge: the post-merge `locale-sync.yml` workflow machine-fills every string
30
- over its next daily runs. To fill them in your own PR instead, run
27
+ Add the two authored catalogs, then run `python scripts/generate_locales.py`
28
+ and merge: the post-merge `locale-sync.yml` workflow machine-fills every string
29
+ over its next daily runs. The component catalog may start as an empty object;
30
+ this one needs `meta` (`native_name`, `dir`) plus the handful of `messages`
31
+ keys the ungated checks below demand — a `meta`-only catalog is red in PR CI.
32
+ To fill them in your own PR instead, run
31
33
  `scripts/translate_locales.py` yourself and review its output like any
32
34
  other diff. Also add the new code to the locale list in the repository-root
33
35
  `AGENTS.md`
@@ -71,9 +73,26 @@ import, so the failure names the file but arrives as a broken test module:
71
73
 
72
74
  ## What CI checks
73
75
 
74
- In PR CI (`tests/src/unit/test_locale_parity.py`, ungated):
76
+ In PR CI (ungated — `tests/src/unit/test_locale_parity.py` unless another file
77
+ is named):
75
78
 
76
79
  - Every surface carries the same set of language codes.
80
+ - Every decided `Decision` outcome (all but `pending`) and every
81
+ `PredicateOp` operator has a word in every catalog, non-blank — and in every
82
+ catalog but `en.json` not still spelled the way the backend does
83
+ (`test_every_decided_outcome_has_a_catalog_word`,
84
+ `test_every_predicate_operator_has_a_catalog_word` in
85
+ `tests/src/unit/test_settings_ui_i18n.py`). These words render inside
86
+ otherwise translated sentences, and the page payload merges English
87
+ underneath, so a missing key shows English's own word rather than reading as
88
+ a gap — and the bare enum literal where English lacks the key too. That is
89
+ why they are owed at once rather than left to the sync.
90
+ - At least one translated key whose English addresses the reader in the
91
+ second person, so `scripts/translate_locales.py` can show the engine
92
+ how this catalog addresses its reader
93
+ (`test_every_shipped_catalog_gets_reader_addressing_samples` in
94
+ `tests/src/unit/test_translate_locales.py`). Without one the pipeline
95
+ translates the rest of the catalog with no register to imitate.
77
96
  - The generated files (both add-on YAMLs, `FEATURE_META`) are byte-exact
78
97
  generator output (`test_derived_catalogs_match_the_canonical_store`); run
79
98
  `python scripts/generate_locales.py` after touching any `addon.*`,
@@ -82,9 +101,9 @@ In PR CI (`tests/src/unit/test_locale_parity.py`, ungated):
82
101
  matches the baseline — a hand edit that drops a placeholder fails the PR
83
102
  that makes it; a translation awaiting a machine rewrite is excluded.
84
103
 
85
- In the post-merge `locale-sync.yml` workflow only (the same test file, gated
86
- behind `LOCALE_COMPLETENESS_CHECKS=1` — a PR that changes English merges
87
- without these, and the daily sync owes them afterwards):
104
+ In the post-merge `locale-sync.yml` workflow only (the same files, gated behind
105
+ `LOCALE_COMPLETENESS_CHECKS=1` — a PR that changes English merges without
106
+ these, and the daily sync owes them afterwards):
88
107
 
89
108
  - `tool_groups` and `tools` name exactly the renderable groups and tools.
90
109
  - At most 5% of this catalog's `messages`, and 5% of its `tools` texts, may be
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ha-mcp-dev
3
- Version: 8.0.0.dev2238
3
+ Version: 8.1.0.dev2243
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