ha-mcp-dev 8.4.3.dev2596__tar.gz → 8.4.3.dev2602__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.4.3.dev2596/src/ha_mcp_dev.egg-info → ha_mcp_dev-8.4.3.dev2602}/PKG-INFO +1 -1
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/pyproject.toml +1 -1
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/read_only.py +6 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/tools/tools_service.py +9 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602/src/ha_mcp_dev.egg-info}/PKG-INFO +1 -1
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/LICENSE +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/MANIFEST.in +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/README.md +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/setup.cfg +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/__init__.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/__main__.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/_pypi_marker +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/_rich_compat.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/_vendor/__init__.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/_vendor/requirements.txt +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/_vendor/websockets/LICENSE +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/_vendor/websockets/MANIFEST.sha256 +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/_vendor/websockets/VENDORED +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/_vendor/websockets/__init__.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/_vendor/websockets/__main__.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/_vendor/websockets/asyncio/__init__.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/_vendor/websockets/asyncio/client.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/_vendor/websockets/asyncio/connection.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/_vendor/websockets/asyncio/messages.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/_vendor/websockets/asyncio/router.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/_vendor/websockets/asyncio/server.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/_vendor/websockets/auth.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/_vendor/websockets/cli.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/_vendor/websockets/client.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/_vendor/websockets/connection.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/_vendor/websockets/datastructures.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/_vendor/websockets/exceptions.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/_vendor/websockets/extensions/__init__.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/_vendor/websockets/extensions/base.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/_vendor/websockets/extensions/permessage_deflate.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/_vendor/websockets/frames.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/_vendor/websockets/headers.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/_vendor/websockets/http11.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/_vendor/websockets/imports.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/_vendor/websockets/legacy/__init__.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/_vendor/websockets/legacy/auth.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/_vendor/websockets/legacy/client.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/_vendor/websockets/legacy/exceptions.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/_vendor/websockets/legacy/framing.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/_vendor/websockets/legacy/handshake.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/_vendor/websockets/legacy/http.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/_vendor/websockets/legacy/protocol.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/_vendor/websockets/legacy/server.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/_vendor/websockets/protocol.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/_vendor/websockets/proxy.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/_vendor/websockets/py.typed +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/_vendor/websockets/server.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/_vendor/websockets/streams.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/_vendor/websockets/sync/__init__.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/_vendor/websockets/sync/client.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/_vendor/websockets/sync/connection.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/_vendor/websockets/sync/messages.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/_vendor/websockets/sync/router.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/_vendor/websockets/sync/server.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/_vendor/websockets/sync/utils.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/_vendor/websockets/trio/__init__.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/_vendor/websockets/trio/client.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/_vendor/websockets/trio/connection.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/_vendor/websockets/trio/messages.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/_vendor/websockets/trio/router.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/_vendor/websockets/trio/server.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/_vendor/websockets/trio/utils.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/_vendor/websockets/typing.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/_vendor/websockets/uri.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/_vendor/websockets/utils.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/_vendor/websockets/version.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/_version.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/auth/__init__.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/auth/consent_form.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/auth/oidc_compat.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/auth/provider.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/backup_manager.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/browser_landing.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/client/__init__.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/client/rest_client.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/client/supervisor_client.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/client/websocket_client.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/client/websocket_listener.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/config.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/dashboard_screenshot/__init__.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/dashboard_screenshot/capture.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/dashboard_screenshot/content.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/dashboard_screenshot/paths.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/dashboard_screenshot/provision.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/dashboard_screenshot/theme_guard.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/errors.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/ha_request_queue.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/hacs_auto_refresh.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/llm_exposure.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/log_filters.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/policy/__init__.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/policy/approval_queue.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/policy/editing.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/policy/evaluator.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/policy/handlers.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/policy/middleware.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/policy/model.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/policy/persistence.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/policy/value_sources.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/py.typed +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/redaction.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/renamed_tools.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/resources/skills-vendor/.claude/settings.json +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/resources/skills-vendor/.claude-plugin/marketplace.json +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/resources/skills-vendor/.claude-plugin/plugin.json +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/resources/skills-vendor/.github/ISSUE_TEMPLATE/skill-rca.md +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/resources/skills-vendor/.github/pull_request_template.md +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/resources/skills-vendor/AGENTS.md +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/resources/skills-vendor/CLAUDE.md +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/resources/skills-vendor/CONTRIBUTING.md +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/resources/skills-vendor/LICENSE +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/resources/skills-vendor/README.md +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/resources/skills-vendor/evals/area-target-over-entity-list/case.yaml +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/resources/skills-vendor/evals/arrive-home-automation/case.yaml +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/resources/skills-vendor/evals/assist-shortcut-card/case.yaml +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/resources/skills-vendor/evals/avg-temperature/case.yaml +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/resources/skills-vendor/evals/backup-deletion-confirmation/case.yaml +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/resources/skills-vendor/evals/blueprint-authoring/case.yaml +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/resources/skills-vendor/evals/button-event-entity/case.yaml +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/resources/skills-vendor/evals/device-id-trigger-migration/case.yaml +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/resources/skills-vendor/evals/helper-flow-fields-not-platform-yaml/case.yaml +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/resources/skills-vendor/evals/media-player-song/case.yaml +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/resources/skills-vendor/evals/motion-light-automation-mode/case.yaml +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/resources/skills-vendor/evals/rename-entity-impact-analysis/case.yaml +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/resources/skills-vendor/evals/template-attributes-yaml-exception/case.yaml +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/resources/skills-vendor/evals/timer-finished-automation/case.yaml +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/resources/skills-vendor/evals/vacuum-last-clean/case.yaml +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/resources/skills-vendor/scripts/check_eval_cases.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/SKILL.md +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/appdaemon.md +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/automation-patterns.md +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/backups.md +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/blueprint-guide.md +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/dashboard-cards.md +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/dashboard-guide.md +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/device-control.md +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/domain-docs.md +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/examples.yaml +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/helper-selection.md +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/safe-refactoring.md +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/scenes.md +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/template-guidelines.md +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/yaml-only-integrations.md +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/server.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/settings_ui/__init__.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/settings_ui/_handlers_advanced.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/settings_ui/_handlers_backups.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/settings_ui/_handlers_fs.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/settings_ui/_handlers_server.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/settings_ui/_handlers_theme.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/settings_ui/_handlers_tools.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/settings_ui/_i18n.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/settings_ui/_locale_policy.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/settings_ui/_persistence.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/settings_ui/_supervisor.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/settings_ui/_theme.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/settings_ui/_tools_meta.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/settings_ui/locales/README.md +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/settings_ui/locales/cs.json +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/settings_ui/locales/de.json +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/settings_ui/locales/en.json +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/settings_ui/locales/eo.json +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/settings_ui/locales/es.json +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/settings_ui/locales/fr.json +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/settings_ui/locales/it.json +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/settings_ui/locales/ko.json +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/settings_ui/locales/nl.json +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/settings_ui/locales/pl.json +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/settings_ui/locales/ru.json +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/settings_ui/locales/sv.json +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/settings_ui/locales/tlh.json +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/settings_ui/locales/zh-Hans.json +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/settings_ui/settings.css +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/settings_ui/settings.html +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/settings_ui/settings.js +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/smoke_test.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/stdio_settings_sidecar.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/strict_bps.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/tool_dispatch.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/tools/__init__.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/tools/auto_backup.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/tools/backup.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/tools/best_practice_checker.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/tools/best_practice_result.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/tools/best_practice_variables.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/tools/blueprint_sources.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/tools/blueprint_substitute.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/tools/blueprint_write.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/tools/bulk_selector.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/tools/component_api.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/tools/component_config_entries.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/tools/component_config_reads.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/tools/component_devices.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/tools/component_registries.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/tools/component_registry_lookup.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/tools/config_entry_flow.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/tools/config_entry_flow_form.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/tools/config_entry_flow_menu.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/tools/config_entry_flow_walker.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/tools/config_entry_identity.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/tools/config_entry_reconfigure.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/tools/config_entry_reload_watch.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/tools/device_control.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/tools/error_log_parsing.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/tools/hacs_registration.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/tools/helpers.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/tools/integration_reconfigure.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/tools/log_common.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/tools/log_sources.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/tools/log_sources_fault.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/tools/log_sources_supervisor.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/tools/radio/__init__.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/tools/radio/base.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/tools/radio/matter.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/tools/radio/thread.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/tools/radio/zigbee.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/tools/radio/zwave.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/tools/reference_validator.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/tools/registry.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/tools/renamed_tool_middleware.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/tools/smart_search/__init__.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/tools/smart_search/_base.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/tools/smart_search/_config.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/tools/smart_search/_deep.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/tools/smart_search/_entities.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/tools/smart_search/_fetch.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/tools/smart_search/_graph.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/tools/smart_search/_overview.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/tools/smart_search/_scenes.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/tools/smart_search/_scoring.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/tools/tool_search_hint_middleware.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/tools/tools_addons.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/tools/tools_areas.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/tools/tools_assist_pipeline.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/tools/tools_blueprints.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/tools/tools_bug_report.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/tools/tools_calendar.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/tools/tools_camera.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/tools/tools_categories.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/tools/tools_code.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/tools/tools_config_automations.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/tools/tools_config_dashboards.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/tools/tools_config_helpers.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/tools/tools_config_scenes.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/tools/tools_config_scripts.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/tools/tools_dashboard_screenshot.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/tools/tools_dev.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/tools/tools_energy.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/tools/tools_entities.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/tools/tools_filesystem.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/tools/tools_groups.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/tools/tools_hacs.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/tools/tools_history.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/tools/tools_integrations.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/tools/tools_labels.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/tools/tools_logs.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/tools/tools_radio.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/tools/tools_registry.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/tools/tools_resources.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/tools/tools_search.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/tools/tools_security_policy.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/tools/tools_services.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/tools/tools_system.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/tools/tools_themes.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/tools/tools_todo.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/tools/tools_traces.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/tools/tools_updates.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/tools/tools_utility.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/tools/tools_voice_assistant.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/tools/tools_yaml_config.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/tools/tools_yaml_read.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/tools/tools_zones.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/tools/util_helpers.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/tools/validation_middleware.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/transforms/__init__.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/transforms/categorized_search.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/transforms/lite_docstrings.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/transport_security.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/update_check.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/utils/__init__.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/utils/config_hash.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/utils/config_write_lock.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/utils/data_paths.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/utils/device_registry_semantics.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/utils/domain_handlers.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/utils/entity_membership.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/utils/fuzzy_search.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/utils/kill_signal_diagnostics.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/utils/operation_manager.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/utils/python_sandbox.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/utils/skill_loader.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/utils/usage_logger.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/visibility/__init__.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/visibility/enforcement.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/visibility/model.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/visibility/persistence.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/visibility/resolver.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp_dev.egg-info/SOURCES.txt +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp_dev.egg-info/dependency_links.txt +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp_dev.egg-info/entry_points.txt +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp_dev.egg-info/requires.txt +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp_dev.egg-info/top_level.txt +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/tests/__init__.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/tests/test_constants.py +0 -0
- {ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/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.4.3.
|
|
7
|
+
version = "8.4.3.dev2602"
|
|
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
|
|
@@ -331,6 +331,12 @@ def _raise_read_only_error(
|
|
|
331
331
|
)
|
|
332
332
|
|
|
333
333
|
|
|
334
|
+
def require_write_access(tool_name: str) -> None:
|
|
335
|
+
"""Reject direct tool execution while Read Only Mode is enabled."""
|
|
336
|
+
if get_global_settings().read_only_mode:
|
|
337
|
+
_raise_read_only_error(tool_name)
|
|
338
|
+
|
|
339
|
+
|
|
334
340
|
class ReadOnlyToolsTransform(Transform):
|
|
335
341
|
"""Hide write-capable tools from the catalog while read-only mode is on.
|
|
336
342
|
|
|
@@ -29,6 +29,7 @@ from ..errors import (
|
|
|
29
29
|
create_error_response,
|
|
30
30
|
create_validation_error,
|
|
31
31
|
)
|
|
32
|
+
from ..read_only import require_write_access
|
|
32
33
|
from ..utils.entity_membership import normalize_member_entity_ids
|
|
33
34
|
from .bulk_selector import (
|
|
34
35
|
_NON_AGGREGATE_ROOT_DOMAINS,
|
|
@@ -1816,6 +1817,7 @@ class ServiceTools:
|
|
|
1816
1817
|
name="ha_call_service",
|
|
1817
1818
|
tags={"Service & Device Control"},
|
|
1818
1819
|
annotations={
|
|
1820
|
+
"readOnlyHint": False,
|
|
1819
1821
|
"openWorldHint": False,
|
|
1820
1822
|
"destructiveHint": True,
|
|
1821
1823
|
"title": "Call Service",
|
|
@@ -2000,7 +2002,14 @@ class ServiceTools:
|
|
|
2000
2002
|
Only one-shot request/response commands are supported; streaming/two-phase
|
|
2001
2003
|
and service-invoking commands are rejected, and the other service
|
|
2002
2004
|
parameters (entity_id, return_response, etc.) don't apply.
|
|
2005
|
+
|
|
2006
|
+
Unavailable in Read Only Mode, including read-like services and WebSocket
|
|
2007
|
+
commands. Use dedicated read tools while that mode is enabled.
|
|
2003
2008
|
"""
|
|
2009
|
+
# Guard the escape hatch itself as well as the MCP catalog/middleware:
|
|
2010
|
+
# direct dispatch must never reach either transport in read-only mode.
|
|
2011
|
+
require_write_access("ha_call_service")
|
|
2012
|
+
|
|
2004
2013
|
# WebSocket-command escape hatch (issue #1839): reach one-shot WS
|
|
2005
2014
|
# commands that aren't registered services (e.g. repairs/ignore_issue).
|
|
2006
2015
|
if ws_command is not None:
|
|
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.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/_vendor/websockets/MANIFEST.sha256
RENAMED
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/_vendor/websockets/VENDORED
RENAMED
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/_vendor/websockets/__init__.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/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.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/_vendor/websockets/client.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/_vendor/websockets/connection.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/_vendor/websockets/exceptions.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/_vendor/websockets/frames.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/_vendor/websockets/headers.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/_vendor/websockets/http11.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/_vendor/websockets/imports.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/_vendor/websockets/legacy/auth.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/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.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/_vendor/websockets/legacy/http.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/_vendor/websockets/legacy/server.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/_vendor/websockets/protocol.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/_vendor/websockets/proxy.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/_vendor/websockets/py.typed
RENAMED
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/_vendor/websockets/server.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/_vendor/websockets/streams.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/_vendor/websockets/sync/__init__.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/_vendor/websockets/sync/client.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/_vendor/websockets/sync/messages.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/_vendor/websockets/sync/router.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/_vendor/websockets/sync/server.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/_vendor/websockets/sync/utils.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/_vendor/websockets/trio/__init__.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/_vendor/websockets/trio/client.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/_vendor/websockets/trio/messages.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/_vendor/websockets/trio/router.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/_vendor/websockets/trio/server.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/_vendor/websockets/trio/utils.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/_vendor/websockets/typing.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/_vendor/websockets/utils.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/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.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/client/supervisor_client.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/client/websocket_listener.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/dashboard_screenshot/__init__.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/dashboard_screenshot/capture.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/dashboard_screenshot/content.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/dashboard_screenshot/paths.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/dashboard_screenshot/provision.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/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
|
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/resources/skills-vendor/AGENTS.md
RENAMED
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/resources/skills-vendor/CLAUDE.md
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/resources/skills-vendor/LICENSE
RENAMED
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/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
|
|
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.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/settings_ui/_handlers_advanced.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/settings_ui/_handlers_backups.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/settings_ui/_handlers_fs.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/settings_ui/_handlers_server.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/settings_ui/_handlers_theme.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/settings_ui/_handlers_tools.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/settings_ui/_locale_policy.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/settings_ui/_persistence.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/settings_ui/locales/README.md
RENAMED
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/settings_ui/locales/cs.json
RENAMED
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/settings_ui/locales/de.json
RENAMED
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/settings_ui/locales/en.json
RENAMED
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/settings_ui/locales/eo.json
RENAMED
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/settings_ui/locales/es.json
RENAMED
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/settings_ui/locales/fr.json
RENAMED
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/settings_ui/locales/it.json
RENAMED
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/settings_ui/locales/ko.json
RENAMED
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/settings_ui/locales/nl.json
RENAMED
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/settings_ui/locales/pl.json
RENAMED
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/settings_ui/locales/ru.json
RENAMED
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/settings_ui/locales/sv.json
RENAMED
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/settings_ui/locales/tlh.json
RENAMED
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/settings_ui/locales/zh-Hans.json
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
|
{ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/tools/best_practice_checker.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/tools/best_practice_result.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/tools/best_practice_variables.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/tools/blueprint_substitute.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/tools/component_config_entries.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/tools/component_config_reads.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2596 → ha_mcp_dev-8.4.3.dev2602}/src/ha_mcp/tools/component_registries.py
RENAMED
|
File without changes
|