ha-mcp-dev 8.2.0.dev2326__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.dev2326/src/ha_mcp_dev.egg-info → ha_mcp_dev-8.2.0.dev2328}/PKG-INFO +1 -1
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/pyproject.toml +1 -1
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/server.py +3 -2
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/settings_ui/locales/zh-Hans.json +1 -1
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/config_entry_flow.py +9 -2
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/tools_config_helpers.py +10 -3
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/tools_integrations.py +8 -4
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/tools_yaml_config.py +1 -1
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328/src/ha_mcp_dev.egg-info}/PKG-INFO +1 -1
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/LICENSE +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/MANIFEST.in +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/README.md +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/setup.cfg +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/__init__.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/__main__.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_pypi_marker +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_rich_compat.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/__init__.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/requirements.txt +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/LICENSE +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/MANIFEST.sha256 +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/VENDORED +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/__init__.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/__main__.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/asyncio/__init__.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/asyncio/client.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/asyncio/connection.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/asyncio/messages.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/asyncio/router.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/asyncio/server.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/auth.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/cli.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/client.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/connection.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/datastructures.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/exceptions.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/extensions/__init__.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/extensions/base.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/extensions/permessage_deflate.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/frames.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/headers.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/http11.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/imports.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/legacy/__init__.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/legacy/auth.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/legacy/client.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/legacy/exceptions.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/legacy/framing.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/legacy/handshake.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/legacy/http.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/legacy/protocol.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/legacy/server.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/protocol.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/proxy.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/py.typed +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/server.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/streams.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/sync/__init__.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/sync/client.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/sync/connection.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/sync/messages.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/sync/router.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/sync/server.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/sync/utils.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/trio/__init__.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/trio/client.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/trio/connection.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/trio/messages.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/trio/router.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/trio/server.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/trio/utils.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/typing.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/uri.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/utils.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/version.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_version.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/auth/__init__.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/auth/consent_form.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/auth/oidc_compat.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/auth/provider.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/backup_manager.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/browser_landing.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/client/__init__.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/client/rest_client.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/client/supervisor_client.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/client/websocket_client.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/client/websocket_listener.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/config.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/dashboard_screenshot/__init__.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/dashboard_screenshot/capture.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/dashboard_screenshot/content.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/dashboard_screenshot/paths.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/dashboard_screenshot/provision.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/dashboard_screenshot/theme_guard.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/errors.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/hacs_auto_refresh.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/llm_exposure.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/policy/__init__.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/policy/approval_queue.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/policy/editing.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/policy/evaluator.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/policy/handlers.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/policy/middleware.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/policy/model.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/policy/persistence.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/policy/value_sources.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/py.typed +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/read_only.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/redaction.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/resources/skills-vendor/.claude/settings.json +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → 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.dev2326 → 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.dev2326 → 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.dev2326 → 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.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/resources/skills-vendor/AGENTS.md +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/resources/skills-vendor/CLAUDE.md +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/resources/skills-vendor/CONTRIBUTING.md +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/resources/skills-vendor/LICENSE +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/resources/skills-vendor/README.md +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → 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.dev2326 → 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.dev2326 → 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.dev2326 → 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.dev2326 → 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.dev2326 → 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.dev2326 → 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.dev2326 → 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.dev2326 → 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.dev2326 → 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.dev2326 → 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.dev2326 → 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.dev2326 → 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.dev2326 → 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.dev2326 → 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.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/settings_ui/__init__.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/settings_ui/_handlers_advanced.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/settings_ui/_handlers_backups.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/settings_ui/_handlers_fs.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/settings_ui/_handlers_server.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/settings_ui/_handlers_theme.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/settings_ui/_handlers_tools.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/settings_ui/_i18n.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/settings_ui/_persistence.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/settings_ui/_supervisor.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/settings_ui/_theme.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/settings_ui/_tools_meta.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/settings_ui/locales/README.md +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/settings_ui/locales/de.json +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/settings_ui/locales/en.json +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/settings_ui/locales/eo.json +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/settings_ui/locales/es.json +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/settings_ui/locales/fr.json +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/settings_ui/locales/it.json +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/settings_ui/locales/nl.json +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/settings_ui/locales/pl.json +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/settings_ui/locales/ru.json +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/settings_ui/locales/sv.json +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/settings_ui/settings.css +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/settings_ui/settings.html +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/settings_ui/settings.js +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/smoke_test.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/stdio_settings_sidecar.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/strict_bps.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/__init__.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/auto_backup.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/backup.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/best_practice_checker.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/best_practice_result.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/best_practice_variables.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/component_api.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/component_config_reads.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/component_devices.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/component_registries.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/component_registry_lookup.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/config_entry_flow_form.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/config_entry_flow_menu.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/config_entry_flow_walker.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/device_control.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/error_log_parsing.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/hacs_registration.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/helpers.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/radio/__init__.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/radio/base.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/radio/matter.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/radio/thread.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/radio/zigbee.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/radio/zwave.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/reference_validator.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/registry.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/smart_search/__init__.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/smart_search/_base.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/smart_search/_config.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/smart_search/_deep.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/smart_search/_entities.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/smart_search/_fetch.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/smart_search/_overview.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/smart_search/_scenes.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/smart_search/_scoring.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/tool_search_hint_middleware.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/tools_addons.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/tools_areas.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/tools_blueprints.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/tools_bug_report.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/tools_calendar.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/tools_camera.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/tools_categories.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/tools_code.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/tools_config_automations.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/tools_config_dashboards.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/tools_config_scenes.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/tools_config_scripts.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/tools_dashboard_screenshot.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/tools_dev.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/tools_energy.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/tools_entities.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/tools_filesystem.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/tools_groups.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/tools_hacs.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/tools_history.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/tools_labels.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/tools_radio.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/tools_registry.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/tools_resources.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/tools_search.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/tools_security_policy.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/tools_service.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/tools_services.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/tools_system.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/tools_themes.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/tools_todo.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/tools_traces.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/tools_updates.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/tools_utility.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/tools_voice_assistant.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/tools_yaml_read.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/tools_zones.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/util_helpers.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/validation_middleware.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/transforms/__init__.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/transforms/categorized_search.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/transforms/lite_docstrings.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/transport_security.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/update_check.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/utils/__init__.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/utils/config_hash.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/utils/config_write_lock.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/utils/data_paths.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/utils/domain_handlers.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/utils/fuzzy_search.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/utils/kill_signal_diagnostics.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/utils/operation_manager.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/utils/python_sandbox.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/utils/skill_loader.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/utils/usage_logger.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/visibility/__init__.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/visibility/enforcement.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/visibility/model.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/visibility/persistence.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/visibility/resolver.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp_dev.egg-info/SOURCES.txt +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp_dev.egg-info/dependency_links.txt +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp_dev.egg-info/entry_points.txt +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp_dev.egg-info/requires.txt +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp_dev.egg-info/top_level.txt +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/tests/__init__.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/tests/test_constants.py +0 -0
- {ha_mcp_dev-8.2.0.dev2326 → 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.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/settings_ui/locales/zh-Hans.json
RENAMED
|
@@ -608,7 +608,7 @@
|
|
|
608
608
|
},
|
|
609
609
|
"ha_config_set_helper": {
|
|
610
610
|
"title": "创建或更新辅助实体",
|
|
611
|
-
"description": "创建或更新 Home Assistant 辅助实体与配置子条目(
|
|
611
|
+
"description": "创建或更新 Home Assistant 辅助实体与配置子条目(30 种类型,统一接口)。"
|
|
612
612
|
},
|
|
613
613
|
"ha_config_set_label": {
|
|
614
614
|
"title": "创建或更新标签",
|
|
@@ -7,7 +7,7 @@ Config Entry Flow API.
|
|
|
7
7
|
|
|
8
8
|
The create/update entry point is the unified ha_config_set_helper tool in
|
|
9
9
|
tools_config_helpers.py, which routes to create_flow_helper / update_flow_helper
|
|
10
|
-
for the
|
|
10
|
+
for the 17 helper types listed in FLOW_HELPER_TYPES.
|
|
11
11
|
|
|
12
12
|
The same flow walkers drive every other config-entry surface, not just
|
|
13
13
|
helpers: ``ha_set_integration`` creates entries for arbitrary domains through
|
|
@@ -65,7 +65,10 @@ def _reject_redaction_sentinels(config_dict: dict[str, Any]) -> None:
|
|
|
65
65
|
)
|
|
66
66
|
|
|
67
67
|
|
|
68
|
-
#
|
|
68
|
+
# 17 helpers that use Config Entry Flow API (Issue #324, #2187).
|
|
69
|
+
# `otp` is the one helper-typed config flow deliberately left out: its confirm
|
|
70
|
+
# step demands a live TOTP code derived from the secret, which no flow walker
|
|
71
|
+
# can supply. It stays reachable through ha_set_integration(domain="otp").
|
|
69
72
|
SUPPORTED_HELPERS = Literal[
|
|
70
73
|
"template",
|
|
71
74
|
"group",
|
|
@@ -82,6 +85,8 @@ SUPPORTED_HELPERS = Literal[
|
|
|
82
85
|
"generic_thermostat",
|
|
83
86
|
"switch_as_x",
|
|
84
87
|
"generic_hygrostat",
|
|
88
|
+
"history_stats",
|
|
89
|
+
"mold_indicator",
|
|
85
90
|
]
|
|
86
91
|
|
|
87
92
|
# Value-set form of SUPPORTED_HELPERS for runtime routing checks.
|
|
@@ -103,6 +108,8 @@ FLOW_HELPER_TYPES: frozenset[str] = frozenset(
|
|
|
103
108
|
"generic_thermostat",
|
|
104
109
|
"switch_as_x",
|
|
105
110
|
"generic_hygrostat",
|
|
111
|
+
"history_stats",
|
|
112
|
+
"mold_indicator",
|
|
106
113
|
}
|
|
107
114
|
)
|
|
108
115
|
|
{ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/tools_config_helpers.py
RENAMED
|
@@ -4398,6 +4398,7 @@ class HelperConfigTools:
|
|
|
4398
4398
|
"generic_hygrostat",
|
|
4399
4399
|
"generic_thermostat",
|
|
4400
4400
|
"group",
|
|
4401
|
+
"history_stats",
|
|
4401
4402
|
"input_boolean",
|
|
4402
4403
|
"input_button",
|
|
4403
4404
|
"input_datetime",
|
|
@@ -4406,6 +4407,7 @@ class HelperConfigTools:
|
|
|
4406
4407
|
"input_text",
|
|
4407
4408
|
"integration",
|
|
4408
4409
|
"min_max",
|
|
4410
|
+
"mold_indicator",
|
|
4409
4411
|
"person",
|
|
4410
4412
|
"random",
|
|
4411
4413
|
"schedule",
|
|
@@ -4702,7 +4704,8 @@ class HelperConfigTools:
|
|
|
4702
4704
|
"helper_type='config_subentry' "
|
|
4703
4705
|
"(template, group, utility_meter, derivative, min_max, threshold, "
|
|
4704
4706
|
"integration, statistics, trend, random, filter, tod, "
|
|
4705
|
-
"generic_thermostat, switch_as_x, generic_hygrostat
|
|
4707
|
+
"generic_thermostat, switch_as_x, generic_hygrostat, "
|
|
4708
|
+
"history_stats, mold_indicator). "
|
|
4706
4709
|
"Ignored for simple helper types. "
|
|
4707
4710
|
"Field set is delivered as data_schema on the first validation error."
|
|
4708
4711
|
),
|
|
@@ -4739,7 +4742,7 @@ class HelperConfigTools:
|
|
|
4739
4742
|
) -> dict[str, Any]:
|
|
4740
4743
|
"""
|
|
4741
4744
|
Create or update Home Assistant helper entities and config subentries
|
|
4742
|
-
(
|
|
4745
|
+
(30 types, unified interface).
|
|
4743
4746
|
|
|
4744
4747
|
MUST call ha_get_skill_guide OR refer to your locally installed skills first.
|
|
4745
4748
|
|
|
@@ -4753,9 +4756,13 @@ class HelperConfigTools:
|
|
|
4753
4756
|
|
|
4754
4757
|
FLOW types (pass `config` dict, Config Entry Flow API): template, group,
|
|
4755
4758
|
utility_meter, derivative, min_max, threshold, integration, statistics, trend,
|
|
4756
|
-
random, filter, tod, generic_thermostat, switch_as_x, generic_hygrostat
|
|
4759
|
+
random, filter, tod, generic_thermostat, switch_as_x, generic_hygrostat,
|
|
4760
|
+
history_stats, mold_indicator.
|
|
4757
4761
|
Note: `tod` is the purpose-built "is-current-time-in-range" indicator
|
|
4758
4762
|
(supports cross-midnight ranges, unlike `schedule`).
|
|
4763
|
+
Note: `otp` is a helper in the HA UI but is not offered here — its flow
|
|
4764
|
+
requires a live TOTP code. Create it with ha_set_integration(domain="otp"),
|
|
4765
|
+
as with any other helper-domain flow outside this list.
|
|
4759
4766
|
|
|
4760
4767
|
CONFIG_SUBENTRY type (Config Subentry Flow API): config_subentry.
|
|
4761
4768
|
Pass `entry_id`, `subentry_type`, and `config`. Pass `subentry_id` to
|
{ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/tools/tools_integrations.py
RENAMED
|
@@ -104,7 +104,7 @@ HelperTypeLiteral = Literal[
|
|
|
104
104
|
"tag",
|
|
105
105
|
# config-entry subentries
|
|
106
106
|
"config_subentry",
|
|
107
|
-
#
|
|
107
|
+
# 17 FLOW
|
|
108
108
|
"template",
|
|
109
109
|
"group",
|
|
110
110
|
"utility_meter",
|
|
@@ -120,6 +120,8 @@ HelperTypeLiteral = Literal[
|
|
|
120
120
|
"generic_thermostat",
|
|
121
121
|
"switch_as_x",
|
|
122
122
|
"generic_hygrostat",
|
|
123
|
+
"history_stats",
|
|
124
|
+
"mold_indicator",
|
|
123
125
|
]
|
|
124
126
|
assert set(get_args(HelperTypeLiteral)) == (
|
|
125
127
|
SIMPLE_HELPER_TYPES | FLOW_HELPER_TYPES | {"config_subentry"}
|
|
@@ -1846,7 +1848,9 @@ class IntegrationTools:
|
|
|
1846
1848
|
|
|
1847
1849
|
WHEN NOT TO USE:
|
|
1848
1850
|
- Helpers (template, group, utility_meter, ...): use
|
|
1849
|
-
ha_config_set_helper.
|
|
1851
|
+
ha_config_set_helper. The exception is `otp`, which is a helper in
|
|
1852
|
+
the HA UI but is created HERE via domain="otp" — its flow needs a
|
|
1853
|
+
live TOTP code, so ha_config_set_helper deliberately omits it.
|
|
1850
1854
|
- Config subentries: use
|
|
1851
1855
|
ha_config_set_helper(helper_type='config_subentry').
|
|
1852
1856
|
- Removing an entry: use ha_remove_helpers_integrations.
|
|
@@ -2110,10 +2114,10 @@ class IntegrationTools:
|
|
|
2110
2114
|
- SIMPLE (12, websocket-delete): input_button, input_boolean,
|
|
2111
2115
|
input_select, input_number, input_text, input_datetime, counter,
|
|
2112
2116
|
timer, schedule, zone, person, tag.
|
|
2113
|
-
- FLOW (
|
|
2117
|
+
- FLOW (17, config-entry-delete via entity lookup): template, group,
|
|
2114
2118
|
utility_meter, derivative, min_max, threshold, integration,
|
|
2115
2119
|
statistics, trend, random, filter, tod, generic_thermostat,
|
|
2116
|
-
switch_as_x, generic_hygrostat.
|
|
2120
|
+
switch_as_x, generic_hygrostat, history_stats, mold_indicator.
|
|
2117
2121
|
|
|
2118
2122
|
ROUTING:
|
|
2119
2123
|
- SIMPLE helper_type + bare helper_id or entity_id → websocket delete.
|
|
@@ -403,7 +403,7 @@ class YamlConfigTools:
|
|
|
403
403
|
- Automations (storage-mode) -> ha_config_set_automation
|
|
404
404
|
- Scripts (storage-mode) -> ha_config_set_script
|
|
405
405
|
- Scenes (storage-mode) -> ha_config_set_scene
|
|
406
|
-
- All
|
|
406
|
+
- All 30 helper types (input_*, counter, timer, schedule, zone, person,
|
|
407
407
|
tag, group, min_max, threshold, derivative, statistics, utility_meter,
|
|
408
408
|
trend, filter, switch_as_x, etc.) -> ha_config_set_helper
|
|
409
409
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/MANIFEST.sha256
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/VENDORED
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/__init__.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/__main__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/client.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/connection.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/exceptions.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/frames.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/headers.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/http11.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/imports.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/legacy/auth.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/legacy/client.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/legacy/http.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/legacy/server.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/protocol.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/proxy.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/py.typed
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/server.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/streams.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/sync/__init__.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/sync/client.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/sync/messages.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/sync/router.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/sync/server.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/sync/utils.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/trio/__init__.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/trio/client.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/trio/messages.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/trio/router.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/trio/server.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/trio/utils.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/typing.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/utils.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/_vendor/websockets/version.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/client/supervisor_client.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/client/websocket_listener.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/dashboard_screenshot/__init__.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/dashboard_screenshot/capture.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/dashboard_screenshot/content.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/dashboard_screenshot/paths.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/dashboard_screenshot/provision.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/dashboard_screenshot/theme_guard.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/resources/skills-vendor/AGENTS.md
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/resources/skills-vendor/CLAUDE.md
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/resources/skills-vendor/LICENSE
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/resources/skills-vendor/README.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/settings_ui/_handlers_advanced.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/settings_ui/_handlers_backups.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/settings_ui/_handlers_fs.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/settings_ui/_handlers_server.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/settings_ui/_handlers_theme.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/settings_ui/_handlers_tools.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/settings_ui/_persistence.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/settings_ui/locales/README.md
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/settings_ui/locales/de.json
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/settings_ui/locales/en.json
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/settings_ui/locales/eo.json
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/settings_ui/locales/es.json
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/settings_ui/locales/fr.json
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/settings_ui/locales/it.json
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/settings_ui/locales/nl.json
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/settings_ui/locales/pl.json
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/settings_ui/locales/ru.json
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2326 → ha_mcp_dev-8.2.0.dev2328}/src/ha_mcp/settings_ui/locales/sv.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|