ha-mcp-dev 8.2.0.dev2323__tar.gz → 8.2.0.dev2328__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.
- {ha_mcp_dev-8.2.0.dev2323/src/ha_mcp_dev.egg-info → ha_mcp_dev-8.2.0.dev2328}/PKG-INFO +1 -1
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/pyproject.toml +1 -1
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/server.py +3 -2
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/settings_ui/locales/de.json +2 -2
- ha_mcp_dev-8.2.0.dev2328/src/ha_mcp/settings_ui/locales/eo.json +846 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/settings_ui/locales/es.json +2 -2
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/settings_ui/locales/fr.json +2 -2
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/settings_ui/locales/it.json +2 -2
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/settings_ui/locales/nl.json +2 -2
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/settings_ui/locales/pl.json +2 -2
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/settings_ui/locales/ru.json +2 -2
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/settings_ui/locales/sv.json +2 -2
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/settings_ui/locales/zh-Hans.json +3 -3
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/config_entry_flow.py +9 -2
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/tools_config_helpers.py +10 -3
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/tools_integrations.py +8 -4
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/tools_yaml_config.py +1 -1
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328/src/ha_mcp_dev.egg-info}/PKG-INFO +1 -1
- ha_mcp_dev-8.2.0.dev2323/src/ha_mcp/settings_ui/locales/eo.json +0 -26
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/LICENSE +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/MANIFEST.in +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/README.md +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/setup.cfg +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/__init__.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/__main__.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_pypi_marker +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_rich_compat.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/__init__.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/requirements.txt +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/LICENSE +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/MANIFEST.sha256 +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/VENDORED +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/__init__.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/__main__.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/asyncio/__init__.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/asyncio/client.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/asyncio/connection.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/asyncio/messages.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/asyncio/router.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/asyncio/server.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/auth.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/cli.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/client.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/connection.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/datastructures.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/exceptions.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/extensions/__init__.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/extensions/base.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/extensions/permessage_deflate.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/frames.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/headers.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/http11.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/imports.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/legacy/__init__.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/legacy/auth.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/legacy/client.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/legacy/exceptions.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/legacy/framing.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/legacy/handshake.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/legacy/http.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/legacy/protocol.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/legacy/server.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/protocol.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/proxy.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/py.typed +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/server.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/streams.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/sync/__init__.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/sync/client.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/sync/connection.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/sync/messages.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/sync/router.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/sync/server.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/sync/utils.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/trio/__init__.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/trio/client.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/trio/connection.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/trio/messages.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/trio/router.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/trio/server.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/trio/utils.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/typing.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/uri.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/utils.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/version.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_version.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/auth/__init__.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/auth/consent_form.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/auth/oidc_compat.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/auth/provider.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/backup_manager.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/browser_landing.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/client/__init__.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/client/rest_client.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/client/supervisor_client.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/client/websocket_client.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/client/websocket_listener.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/config.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/dashboard_screenshot/__init__.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/dashboard_screenshot/capture.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/dashboard_screenshot/content.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/dashboard_screenshot/paths.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/dashboard_screenshot/provision.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/dashboard_screenshot/theme_guard.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/errors.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/hacs_auto_refresh.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/llm_exposure.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/policy/__init__.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/policy/approval_queue.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/policy/editing.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/policy/evaluator.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/policy/handlers.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/policy/middleware.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/policy/model.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/policy/persistence.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/policy/value_sources.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/py.typed +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/read_only.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/redaction.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/resources/skills-vendor/.claude/settings.json +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/resources/skills-vendor/.claude-plugin/marketplace.json +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/resources/skills-vendor/.claude-plugin/plugin.json +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/resources/skills-vendor/.github/ISSUE_TEMPLATE/skill-rca.md +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/resources/skills-vendor/.github/pull_request_template.md +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/resources/skills-vendor/AGENTS.md +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/resources/skills-vendor/CLAUDE.md +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/resources/skills-vendor/CONTRIBUTING.md +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/resources/skills-vendor/LICENSE +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/resources/skills-vendor/README.md +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/SKILL.md +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/evals/evals.json +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/appdaemon.md +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/automation-patterns.md +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/blueprint-guide.md +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/dashboard-cards.md +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/dashboard-guide.md +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/device-control.md +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/domain-docs.md +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/examples.yaml +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/helper-selection.md +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/safe-refactoring.md +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/scenes.md +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/template-guidelines.md +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/yaml-only-integrations.md +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/settings_ui/__init__.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/settings_ui/_handlers_advanced.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/settings_ui/_handlers_backups.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/settings_ui/_handlers_fs.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/settings_ui/_handlers_server.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/settings_ui/_handlers_theme.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/settings_ui/_handlers_tools.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/settings_ui/_i18n.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/settings_ui/_persistence.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/settings_ui/_supervisor.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/settings_ui/_theme.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/settings_ui/_tools_meta.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/settings_ui/locales/README.md +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/settings_ui/locales/en.json +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/settings_ui/settings.css +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/settings_ui/settings.html +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/settings_ui/settings.js +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/smoke_test.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/stdio_settings_sidecar.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/strict_bps.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/__init__.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/auto_backup.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/backup.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/best_practice_checker.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/best_practice_result.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/best_practice_variables.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/component_api.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/component_config_reads.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/component_devices.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/component_registries.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/component_registry_lookup.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/config_entry_flow_form.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/config_entry_flow_menu.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/config_entry_flow_walker.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/device_control.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/error_log_parsing.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/hacs_registration.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/helpers.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/radio/__init__.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/radio/base.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/radio/matter.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/radio/thread.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/radio/zigbee.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/radio/zwave.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/reference_validator.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/registry.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/smart_search/__init__.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/smart_search/_base.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/smart_search/_config.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/smart_search/_deep.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/smart_search/_entities.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/smart_search/_fetch.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/smart_search/_overview.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/smart_search/_scenes.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/smart_search/_scoring.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/tool_search_hint_middleware.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/tools_addons.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/tools_areas.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/tools_blueprints.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/tools_bug_report.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/tools_calendar.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/tools_camera.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/tools_categories.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/tools_code.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/tools_config_automations.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/tools_config_dashboards.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/tools_config_scenes.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/tools_config_scripts.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/tools_dashboard_screenshot.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/tools_dev.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/tools_energy.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/tools_entities.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/tools_filesystem.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/tools_groups.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/tools_hacs.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/tools_history.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/tools_labels.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/tools_radio.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/tools_registry.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/tools_resources.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/tools_search.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/tools_security_policy.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/tools_service.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/tools_services.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/tools_system.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/tools_themes.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/tools_todo.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/tools_traces.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/tools_updates.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/tools_utility.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/tools_voice_assistant.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/tools_yaml_read.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/tools_zones.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/util_helpers.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/validation_middleware.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/transforms/__init__.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/transforms/categorized_search.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/transforms/lite_docstrings.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/transport_security.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/update_check.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/utils/__init__.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/utils/config_hash.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/utils/config_write_lock.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/utils/data_paths.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/utils/domain_handlers.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/utils/fuzzy_search.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/utils/kill_signal_diagnostics.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/utils/operation_manager.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/utils/python_sandbox.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/utils/skill_loader.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/utils/usage_logger.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/visibility/__init__.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/visibility/enforcement.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/visibility/model.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/visibility/persistence.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/visibility/resolver.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp_dev.egg-info/SOURCES.txt +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp_dev.egg-info/dependency_links.txt +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp_dev.egg-info/entry_points.txt +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp_dev.egg-info/requires.txt +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp_dev.egg-info/top_level.txt +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/tests/__init__.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/tests/test_constants.py +0 -0
- {ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/tests/test_env_manager.py +0 -0
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "ha-mcp-dev"
|
|
7
|
-
version = "8.2.0.
|
|
7
|
+
version = "8.2.0.dev2328"
|
|
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
|
|
@@ -603,14 +603,15 @@ class HomeAssistantSmartMCPServer:
|
|
|
603
603
|
"conditions actions get show detail"
|
|
604
604
|
),
|
|
605
605
|
# s09: "create helper" → ha_config_set_helper should outrank remove_helper
|
|
606
|
-
# Covers all
|
|
606
|
+
# Covers all 29 helper types (12 simple + 17 flow-based, unified in #967).
|
|
607
607
|
"ha_config_set_helper": (
|
|
608
608
|
"create update new add helper "
|
|
609
609
|
"input_boolean input_button input_number input_text input_datetime "
|
|
610
610
|
"input_select counter timer schedule zone person tag "
|
|
611
611
|
"template group utility_meter derivative min_max threshold "
|
|
612
612
|
"integration statistics trend random filter tod "
|
|
613
|
-
"generic_thermostat switch_as_x generic_hygrostat"
|
|
613
|
+
"generic_thermostat switch_as_x generic_hygrostat "
|
|
614
|
+
"history_stats mold_indicator"
|
|
614
615
|
),
|
|
615
616
|
# Boost tools that compete with ha_search for common queries
|
|
616
617
|
"ha_config_get_script": (
|
{ha_mcp_dev-8.2.0.dev2323 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/settings_ui/locales/de.json
RENAMED
|
@@ -128,7 +128,7 @@
|
|
|
128
128
|
"features.enable_strict_mandatory_bps.label": "Strikter Best-Practices-Modus",
|
|
129
129
|
"features.enable_strict_mandatory_bps.help": "Strikter Modus: verhindert, dass der Client das Tool verwendet, bis er nachweisen kann, dass er die Best Practices gelesen hat. Während er eingeschaltet ist, werden die sechs Best-Practice-Schreibtools (Automatisierungen, Skripte, Szenen, Helfer, Dashboards, rohes YAML) blockiert und geben einen Fehler zurück, der den Client anweist, das Best-Practices-Skill über ha_get_skill_guide zu lesen und den dort erhaltenen Bestätigungsschlüssel zurückzugeben. Während er eingeschaltet ist, ist das ha_get_skill_guide-Tool gesperrt aktiviert – es ist der einzige Herausgeber des Bestätigungsschlüssels. Kind der Option Best-Practice-Skills bei Schreibvorgängen anhängen oben und inert, während dieser Elternteil ausgeschaltet ist. Erfordert Neustart, um wirksam zu werden.",
|
|
130
130
|
"features.enable_beta_features.label": "Beta-Funktionen aktivieren (Master)",
|
|
131
|
-
"features.enable_beta_features.help": "⚠ GEFAHR
|
|
131
|
+
"features.enable_beta_features.help": "⚠ GEFAHR — diese Tools können deine Home Assistant-Installation DAUERHAFT BESCHÄDIGEN. Sie schreiben in deine YAML-Konfiguration, dein Dateisystem, installieren benutzerdefinierte Komponenten, führen beliebigen sandboxed Python-Code aus und bearbeiten Tool-Docstrings, die die KI sieht. Es gibt keine Garantie und keine Support-Zusage — du aktivierst sie auf EIGENES RISIKO. Erstelle ein Home Assistant-Backup, bevor du dies aktivierst, und aktiviere es niemals in der Produktion ohne eines. Hauptschalter für die experimentellen Unter-Flags unten; Unter-Flags werden zur Laufzeit ignoriert, solange dieser Hauptschalter ausgeschaltet ist, selbst wenn sie explizit auf true gesetzt sind. Derselbe Schalter wird auch in der Web-Einstellungen-UI unter \"Beta-Funktionen (gefährlich)\" angezeigt — beide Oberflächen spiegeln sich beim Neustart wider.",
|
|
132
132
|
"features.enable_yaml_config_editing.label": "YAML-Konfigurations-Bearbeitung aktivieren (Beta)",
|
|
133
133
|
"features.enable_yaml_config_editing.help": "Beta-Funktion. Ermöglicht KI-Assistenten, Schlüssel der obersten Ebene in configuration.yaml und packages/*.yaml hinzuzufügen, zu ersetzen oder zu entfernen. Nur auf die Whitelist gesetzte Schlüssel sind erlaubt (z. B. template, sensor, command_line, mqtt, knx); Kernschlüssel wie homeassistant, http und recorder sind blockiert. Jede Bearbeitung validiert YAML-Syntax, führt eine Konfigurationsprüfung durch und erstellt ein automatisches Backup. Änderungen an den meisten Schlüsseln erfordern einen vollständigen HA-Neustart, um wirksam zu werden. Siehe docs/beta.md für bekannte Einschränkungen. Dedizierte Tools (Automatisierungen, Skripte, Szenen, Helfer, Template-Sensoren) sollten bevorzugt werden, wenn verfügbar. ERFORDERT, dass der Master-Schalter Beta-Funktionen aktivieren oben (und in der Web-UI) eingeschaltet ist – andernfalls wird dieses Unter-Flag zur Laufzeit ignoriert, unabhängig von seinem Wert hier.",
|
|
134
134
|
"features.enable_yaml_edit_confirm.label": "Bestätigung für YAML-Bearbeitungen erfordern (Diff-Vorschau)",
|
|
@@ -441,7 +441,7 @@
|
|
|
441
441
|
"addon.enable_security_policy_tool.name": "KI-Agenten erlauben, Tool-Sicherheitsrichtlinien zu bearbeiten",
|
|
442
442
|
"addon.enable_security_policy_tool.description": "Registriert das Tool ha_manage_security_policy, das verbundenen KI-Agenten erlaubt, die Tool-Sicherheitsrichtlinien zu lesen und neu zu schreiben — einschließlich des Entfernens von Genehmigungsschranken. Standardmäßig deaktiviert. Unabhängig von der Option „Tool-Sicherheitsrichtlinien“ oben: Dies steuert, wer die Regeln bearbeiten kann, nicht ob sie erzwungen werden. Das Tool kann ausstehende Genehmigungen nicht sehen oder entscheiden. Um einen Menschen in der Schleife zu halten, schütze das Tool, bevor du es aktivierst: Aktiviere „security gated“ für „Manage Security Policy“ auf dem Tab „Tools“ der Web-UI. Erfordert einen Neustart, um wirksam zu werden.",
|
|
443
443
|
"addon.enable_auto_backup.name": "Auto-Backup von Bearbeitungen aktivieren",
|
|
444
|
-
"addon.enable_auto_backup.description": "
|
|
444
|
+
"addon.enable_auto_backup.description": "Erstellt einen Snapshot pro Entität vor jedem umschlossenen Schreib-/destruktiven MCP-Tool-Aufruf (Automatisierung, Skript, Szene, Helfer, Dashboard, Dashboard-Ressource, Label, Kategorie, Gruppe, Zone, Bereich, Kalender, Todo, Entität, Gerät, Integration und zugehörige Entfernungs-/Lösch-Tools). Die Auto-Backup-Drosselung begrenzt, wie oft dies geschieht: 0 (Standard) erstellt bei jedem solchen Aufruf einen Snapshot, N>0 maximal einen Snapshot pro N Minuten pro Entität. Snapshots werden als YAML-Dateien unter /data/ha_mcp_backups/ (Überschreibung über HAMCP_BACKUP_DIR) gespeichert und können über den Tab „Backups“ in der Web-Einstellungen-UI oder über ha_manage_backup(scope='edits', ...) aufgelistet, wiederhergestellt oder gelöscht werden. Für diese Domänen ist die Erfassung ein Best-Effort-Versuch — ein Fehler protokolliert eine WARNING und der Schreibvorgang wird fortgesetzt. Die Datei- und Raw-YAML-Tools sind die Ausnahme: ha_write_file, ha_delete_file und ha_config_set_yaml behandeln den Snapshot als Vorbedingung, sodass ein Schreibvorgang über sie verweigert wird, solange dies deaktiviert ist, und eine fehlgeschlagene Erfassung ihn blockiert. Standardmäßig aktiviert; Deaktivieren meldet sich von den Best-Effort-Erfassungen ab und nimmt die Datei- und Raw-YAML-Tools mit ihnen außer Betrieb. Erfordert einen Neustart, um wirksam zu werden.",
|
|
445
445
|
"addon.auto_backup_throttle_minutes.name": "Auto-Backup-Drosselung (Minuten)",
|
|
446
446
|
"addon.auto_backup_throttle_minutes.description": "Pro-Entität-Drosselungsfenster. 0 (Standard) erfasst einen Snapshot bei jedem umschlossenen Schreibvorgang. N>0 erfasst höchstens einen Snapshot pro N Minuten pro Entität. Bereich 0–1440.",
|
|
447
447
|
"addon.auto_backup_retain_per_entity.name": "Auto-Backup-Aufbewahrung (pro Entität)",
|