ha-mcp-dev 8.4.3.dev2625__tar.gz → 8.4.3.dev2629__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.dev2625/src/ha_mcp_dev.egg-info → ha_mcp_dev-8.4.3.dev2629}/PKG-INFO +1 -1
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/pyproject.toml +17 -1
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/__main__.py +1 -1
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/http_transport.py +44 -1
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/settings_ui/__init__.py +0 -1
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/settings_ui/locales/en.json +1 -1
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/settings_ui/settings.js +1 -1
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629/src/ha_mcp_dev.egg-info}/PKG-INFO +1 -1
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/LICENSE +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/MANIFEST.in +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/README.md +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/setup.cfg +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/__init__.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/_pypi_marker +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/_rich_compat.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/_vendor/__init__.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/_vendor/requirements.txt +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/_vendor/websockets/LICENSE +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/_vendor/websockets/MANIFEST.sha256 +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/_vendor/websockets/VENDORED +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/_vendor/websockets/__init__.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/_vendor/websockets/__main__.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/_vendor/websockets/asyncio/__init__.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/_vendor/websockets/asyncio/client.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/_vendor/websockets/asyncio/connection.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/_vendor/websockets/asyncio/messages.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/_vendor/websockets/asyncio/router.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/_vendor/websockets/asyncio/server.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/_vendor/websockets/auth.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/_vendor/websockets/cli.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/_vendor/websockets/client.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/_vendor/websockets/connection.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/_vendor/websockets/datastructures.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/_vendor/websockets/exceptions.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/_vendor/websockets/extensions/__init__.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/_vendor/websockets/extensions/base.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/_vendor/websockets/extensions/permessage_deflate.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/_vendor/websockets/frames.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/_vendor/websockets/headers.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/_vendor/websockets/http11.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/_vendor/websockets/imports.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/_vendor/websockets/legacy/__init__.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/_vendor/websockets/legacy/auth.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/_vendor/websockets/legacy/client.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/_vendor/websockets/legacy/exceptions.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/_vendor/websockets/legacy/framing.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/_vendor/websockets/legacy/handshake.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/_vendor/websockets/legacy/http.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/_vendor/websockets/legacy/protocol.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/_vendor/websockets/legacy/server.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/_vendor/websockets/protocol.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/_vendor/websockets/proxy.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/_vendor/websockets/py.typed +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/_vendor/websockets/server.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/_vendor/websockets/streams.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/_vendor/websockets/sync/__init__.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/_vendor/websockets/sync/client.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/_vendor/websockets/sync/connection.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/_vendor/websockets/sync/messages.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/_vendor/websockets/sync/router.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/_vendor/websockets/sync/server.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/_vendor/websockets/sync/utils.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/_vendor/websockets/trio/__init__.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/_vendor/websockets/trio/client.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/_vendor/websockets/trio/connection.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/_vendor/websockets/trio/messages.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/_vendor/websockets/trio/router.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/_vendor/websockets/trio/server.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/_vendor/websockets/trio/utils.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/_vendor/websockets/typing.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/_vendor/websockets/uri.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/_vendor/websockets/utils.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/_vendor/websockets/version.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/_version.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/auth/__init__.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/auth/consent_form.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/auth/oidc_compat.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/auth/provider.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/backup_manager.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/browser_landing.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/client/__init__.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/client/rest_client.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/client/supervisor_client.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/client/websocket_client.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/client/websocket_listener.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/config.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/dashboard_screenshot/__init__.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/dashboard_screenshot/capture.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/dashboard_screenshot/content.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/dashboard_screenshot/paths.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/dashboard_screenshot/provision.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/dashboard_screenshot/theme_guard.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/errors.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/ha_request_queue.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/hacs_auto_refresh.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/llm_exposure.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/log_filters.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/policy/__init__.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/policy/approval_queue.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/policy/editing.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/policy/evaluator.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/policy/handlers.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/policy/middleware.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/policy/model.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/policy/persistence.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/policy/value_sources.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/py.typed +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/read_only.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/redaction.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/renamed_tools.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/resources/skills-vendor/.claude/settings.json +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/resources/skills-vendor/.claude-plugin/marketplace.json +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/resources/skills-vendor/.claude-plugin/plugin.json +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/resources/skills-vendor/.github/ISSUE_TEMPLATE/skill-rca.md +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/resources/skills-vendor/.github/pull_request_template.md +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/resources/skills-vendor/AGENTS.md +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/resources/skills-vendor/CLAUDE.md +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/resources/skills-vendor/CONTRIBUTING.md +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/resources/skills-vendor/LICENSE +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/resources/skills-vendor/README.md +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/resources/skills-vendor/evals/area-target-over-entity-list/case.yaml +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/resources/skills-vendor/evals/arrive-home-automation/case.yaml +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/resources/skills-vendor/evals/assist-shortcut-card/case.yaml +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/resources/skills-vendor/evals/avg-temperature/case.yaml +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/resources/skills-vendor/evals/backup-deletion-confirmation/case.yaml +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/resources/skills-vendor/evals/blueprint-authoring/case.yaml +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/resources/skills-vendor/evals/button-event-entity/case.yaml +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/resources/skills-vendor/evals/device-id-trigger-migration/case.yaml +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/resources/skills-vendor/evals/helper-flow-fields-not-platform-yaml/case.yaml +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/resources/skills-vendor/evals/media-player-song/case.yaml +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/resources/skills-vendor/evals/motion-light-automation-mode/case.yaml +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/resources/skills-vendor/evals/rename-entity-impact-analysis/case.yaml +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/resources/skills-vendor/evals/template-attributes-yaml-exception/case.yaml +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/resources/skills-vendor/evals/timer-finished-automation/case.yaml +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/resources/skills-vendor/evals/vacuum-last-clean/case.yaml +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/resources/skills-vendor/scripts/check_eval_cases.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/SKILL.md +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/appdaemon.md +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/automation-patterns.md +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/backups.md +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/blueprint-guide.md +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/dashboard-cards.md +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/dashboard-guide.md +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/device-control.md +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/domain-docs.md +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/examples.yaml +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/helper-selection.md +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/safe-refactoring.md +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/scenes.md +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/template-guidelines.md +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/yaml-only-integrations.md +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/server.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/settings_ui/_handlers_advanced.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/settings_ui/_handlers_backups.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/settings_ui/_handlers_fs.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/settings_ui/_handlers_server.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/settings_ui/_handlers_theme.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/settings_ui/_handlers_tools.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/settings_ui/_i18n.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/settings_ui/_locale_policy.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/settings_ui/_persistence.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/settings_ui/_supervisor.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/settings_ui/_theme.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/settings_ui/_tools_meta.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/settings_ui/locales/README.md +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/settings_ui/locales/cs.json +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/settings_ui/locales/de.json +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/settings_ui/locales/eo.json +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/settings_ui/locales/es.json +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/settings_ui/locales/fr.json +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/settings_ui/locales/it.json +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/settings_ui/locales/ko.json +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/settings_ui/locales/nl.json +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/settings_ui/locales/pl.json +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/settings_ui/locales/ru.json +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/settings_ui/locales/sv.json +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/settings_ui/locales/tlh.json +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/settings_ui/locales/zh-Hans.json +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/settings_ui/locales/zh-Hant.json +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/settings_ui/settings.css +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/settings_ui/settings.html +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/smoke_test.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/stdio_settings_sidecar.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/strict_bps.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/tool_dispatch.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/tools/__init__.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/tools/auto_backup.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/tools/backup.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/tools/best_practice_checker.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/tools/best_practice_result.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/tools/best_practice_variables.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/tools/blueprint_sources.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/tools/blueprint_substitute.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/tools/blueprint_write.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/tools/bulk_selector.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/tools/component_api.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/tools/component_config_entries.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/tools/component_config_reads.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/tools/component_dashboard_edit.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/tools/component_devices.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/tools/component_registries.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/tools/component_registry_lookup.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/tools/config_entry_flow.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/tools/config_entry_flow_form.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/tools/config_entry_flow_menu.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/tools/config_entry_flow_walker.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/tools/config_entry_identity.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/tools/config_entry_reconfigure.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/tools/config_entry_reload_watch.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/tools/dashboard_edit_errors.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/tools/device_control.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/tools/error_log_parsing.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/tools/hacs_registration.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/tools/helpers.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/tools/integration_reconfigure.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/tools/log_common.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/tools/log_sources.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/tools/log_sources_fault.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/tools/log_sources_supervisor.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/tools/radio/__init__.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/tools/radio/base.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/tools/radio/matter.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/tools/radio/thread.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/tools/radio/zigbee.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/tools/radio/zwave.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/tools/reference_validator.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/tools/registry.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/tools/renamed_tool_middleware.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/tools/smart_search/__init__.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/tools/smart_search/_base.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/tools/smart_search/_config.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/tools/smart_search/_deep.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/tools/smart_search/_entities.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/tools/smart_search/_fetch.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/tools/smart_search/_graph.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/tools/smart_search/_overview.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/tools/smart_search/_scenes.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/tools/smart_search/_scoring.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/tools/tool_search_hint_middleware.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/tools/tools_addons.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/tools/tools_areas.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/tools/tools_assist_pipeline.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/tools/tools_blueprints.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/tools/tools_bug_report.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/tools/tools_calendar.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/tools/tools_camera.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/tools/tools_categories.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/tools/tools_code.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/tools/tools_config_automations.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/tools/tools_config_dashboards.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/tools/tools_config_helpers.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/tools/tools_config_scenes.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/tools/tools_config_scripts.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/tools/tools_dashboard_screenshot.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/tools/tools_dev.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/tools/tools_energy.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/tools/tools_entities.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/tools/tools_filesystem.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/tools/tools_groups.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/tools/tools_hacs.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/tools/tools_history.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/tools/tools_integrations.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/tools/tools_labels.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/tools/tools_logs.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/tools/tools_radio.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/tools/tools_registry.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/tools/tools_resources.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/tools/tools_search.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/tools/tools_security_policy.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/tools/tools_service.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/tools/tools_services.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/tools/tools_system.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/tools/tools_themes.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/tools/tools_todo.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/tools/tools_traces.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/tools/tools_updates.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/tools/tools_utility.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/tools/tools_voice_assistant.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/tools/tools_yaml_config.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/tools/tools_yaml_read.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/tools/tools_zones.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/tools/util_helpers.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/tools/validation_middleware.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/transforms/__init__.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/transforms/categorized_search.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/transforms/lite_docstrings.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/transport_security.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/update_check.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/utils/__init__.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/utils/config_hash.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/utils/config_write_lock.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/utils/dashboard_patch.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/utils/data_paths.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/utils/device_registry_semantics.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/utils/domain_handlers.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/utils/entity_membership.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/utils/fuzzy_search.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/utils/kill_signal_diagnostics.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/utils/operation_manager.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/utils/python_sandbox.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/utils/skill_loader.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/utils/usage_logger.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/visibility/__init__.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/visibility/enforcement.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/visibility/model.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/visibility/persistence.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/visibility/resolver.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp_dev.egg-info/SOURCES.txt +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp_dev.egg-info/dependency_links.txt +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp_dev.egg-info/entry_points.txt +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp_dev.egg-info/requires.txt +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp_dev.egg-info/top_level.txt +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/tests/__init__.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/tests/test_constants.py +0 -0
- {ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/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.dev2629"
|
|
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
|
|
@@ -94,6 +94,14 @@ mypy_path = "src"
|
|
|
94
94
|
# /tmp keeps the cache on Linux tmpfs — avoids the slow Windows FS in WSL2.
|
|
95
95
|
# Windows-native contributors can remove this line or override with MYPY_CACHE_DIR.
|
|
96
96
|
cache_dir = "/tmp/.mypy_cache"
|
|
97
|
+
# Vendored skills submodule: upstream's code, not ours to type-check. This is
|
|
98
|
+
# the exclusion that was actually failing a local run, because `mypy src/`
|
|
99
|
+
# recurses into the submodule when it is initialized while CI's lint job checks
|
|
100
|
+
# out without `submodules: true` and never sees it.
|
|
101
|
+
# A regex, NOT a [[tool.mypy.overrides]] module entry like the ha_mcp._vendor.*
|
|
102
|
+
# one below: `skills-vendor` contains a hyphen, so it has no importable module
|
|
103
|
+
# path for a module pattern to match. Do not "simplify" it into that block.
|
|
104
|
+
exclude = ['^src/ha_mcp/resources/skills-vendor/']
|
|
97
105
|
warn_return_any = true
|
|
98
106
|
warn_unused_configs = true
|
|
99
107
|
disallow_untyped_defs = true
|
|
@@ -150,6 +158,14 @@ extend-exclude = [
|
|
|
150
158
|
# Vendored websockets — upstream's code style, not ours. Kept in sync
|
|
151
159
|
# with PATHS_IGNORE in scripts/codeql_quality_gate.py.
|
|
152
160
|
"src/ha_mcp/_vendor/websockets",
|
|
161
|
+
# Vendored skills submodule (src/ha_mcp/resources/skills-vendor) — upstream's
|
|
162
|
+
# code, shipped as package data. This covers the directory-scoped commands,
|
|
163
|
+
# `ruff check src/ ...` in CI and the ones in CONTRIBUTING.md. It does NOT
|
|
164
|
+
# affect lefthook, which passes {staged_files} as explicit paths that ruff
|
|
165
|
+
# lints regardless of extend-exclude (force-exclude is not set), and a
|
|
166
|
+
# submodule's contents are never staged in the superproject anyway. Kept in
|
|
167
|
+
# sync with PATHS_IGNORE in scripts/codeql_quality_gate.py.
|
|
168
|
+
"src/ha_mcp/resources/skills-vendor",
|
|
153
169
|
# HA integration manifests must be strict JSON (no trailing commas);
|
|
154
170
|
# ruff 0.15+ formats .json files as JSONC and inserts trailing commas
|
|
155
171
|
# which makes Python's json.load() reject the file at HA startup.
|
|
@@ -616,7 +616,7 @@ async def _run_with_shutdown(server_coro: Coroutine[Any, Any, Any]) -> None:
|
|
|
616
616
|
shutdown_task = asyncio.create_task(_shutdown_event.wait())
|
|
617
617
|
|
|
618
618
|
try:
|
|
619
|
-
done,
|
|
619
|
+
done, _ = await asyncio.wait(
|
|
620
620
|
[server_task, shutdown_task],
|
|
621
621
|
return_when=asyncio.FIRST_COMPLETED,
|
|
622
622
|
)
|
|
@@ -3,7 +3,10 @@
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
5
5
|
import logging
|
|
6
|
-
from
|
|
6
|
+
from collections.abc import Iterator
|
|
7
|
+
from contextlib import contextmanager
|
|
8
|
+
from dataclasses import dataclass, field
|
|
9
|
+
from threading import Lock
|
|
7
10
|
from time import monotonic
|
|
8
11
|
from typing import Any
|
|
9
12
|
from uuid import uuid4
|
|
@@ -19,6 +22,42 @@ from .config import get_global_settings
|
|
|
19
22
|
logger = logging.getLogger(__name__)
|
|
20
23
|
|
|
21
24
|
|
|
25
|
+
@dataclass
|
|
26
|
+
class _DiagnosticLogLevel:
|
|
27
|
+
"""Shared ownership while HTTP app lifespans overlap during a restart."""
|
|
28
|
+
|
|
29
|
+
users: int = 0
|
|
30
|
+
previous_level: int = logging.NOTSET
|
|
31
|
+
changed: bool = False
|
|
32
|
+
lock: Lock = field(default_factory=Lock)
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
@contextmanager
|
|
36
|
+
def _diagnostic_logging() -> Iterator[None]:
|
|
37
|
+
"""Temporarily enable diagnostic records without changing other loggers."""
|
|
38
|
+
# Logger objects survive embedded-server module purges. Keep ownership on
|
|
39
|
+
# this logger so a retiring worker cannot reset its replacement's level.
|
|
40
|
+
state: _DiagnosticLogLevel = vars(logger).setdefault(
|
|
41
|
+
"_ha_mcp_http_diagnostics_level", _DiagnosticLogLevel()
|
|
42
|
+
)
|
|
43
|
+
with state.lock:
|
|
44
|
+
if state.users == 0:
|
|
45
|
+
state.previous_level = logger.level
|
|
46
|
+
state.changed = logger.getEffectiveLevel() > logging.INFO
|
|
47
|
+
if state.changed:
|
|
48
|
+
# Use the normal setter: HA's explicit per-logger overrides
|
|
49
|
+
# remain authoritative, and existing DEBUG levels stay intact.
|
|
50
|
+
logger.setLevel(logging.INFO)
|
|
51
|
+
state.users += 1
|
|
52
|
+
try:
|
|
53
|
+
yield
|
|
54
|
+
finally:
|
|
55
|
+
with state.lock:
|
|
56
|
+
state.users -= 1
|
|
57
|
+
if state.users == 0 and state.changed and logger.level == logging.INFO:
|
|
58
|
+
logger.setLevel(state.previous_level)
|
|
59
|
+
|
|
60
|
+
|
|
22
61
|
class HttpTransportFastMCP(FastMCP):
|
|
23
62
|
"""Apply instance HTTP experiments at the shared app-construction boundary.
|
|
24
63
|
|
|
@@ -117,6 +156,10 @@ class TransportDiagnostics:
|
|
|
117
156
|
self.path = path.rstrip("/")
|
|
118
157
|
|
|
119
158
|
async def __call__(self, scope: Scope, receive: Receive, send: Send) -> None:
|
|
159
|
+
if scope["type"] == "lifespan":
|
|
160
|
+
with _diagnostic_logging():
|
|
161
|
+
await self.app(scope, receive, send)
|
|
162
|
+
return
|
|
120
163
|
if scope["type"] != "http" or scope["path"].rstrip("/") != self.path:
|
|
121
164
|
await self.app(scope, receive, send)
|
|
122
165
|
return
|
{ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/settings_ui/locales/en.json
RENAMED
|
@@ -449,7 +449,7 @@
|
|
|
449
449
|
"advanced.environment.label": "Environment",
|
|
450
450
|
"advanced.environment.help": "development or production. Affects logging verbosity. Restart required.",
|
|
451
451
|
"advanced.http_transport_diagnostics.label": "HTTP transport diagnostics",
|
|
452
|
-
"advanced.http_transport_diagnostics.help": "Experimental.
|
|
452
|
+
"advanced.http_transport_diagnostics.help": "Experimental. Automatically enable INFO logging for HTTP diagnostics while the server runs, without payloads or credentials. Other loggers are unchanged; explicit Home Assistant logger overrides and filters still apply. Does not confirm client receipt. HTTP only; restart required.",
|
|
453
453
|
"advanced.http_json_response.label": "JSON responses instead of streaming",
|
|
454
454
|
"advanced.http_json_response.help": "Experimental. Return a single JSON response instead of an SSE stream. Affects all HTTP clients on this server and disables streamed progress for these responses. HTTP only; restart required.",
|
|
455
455
|
"advanced.log_level.label": "Log level",
|
|
@@ -3981,7 +3981,7 @@ const ADVANCED_FIELD_META = {
|
|
|
3981
3981
|
environment: { label: "Environment", help: "'development' or 'production'. Affects logging verbosity. Restart required." },
|
|
3982
3982
|
log_level: { label: "Log level", help: "DEBUG/INFO/WARNING/ERROR/CRITICAL. Set once at startup; restart required." },
|
|
3983
3983
|
debug: { label: "Debug mode", help: "Verbose request logging. Logs sensitive data; do not enable in production. Restart required." },
|
|
3984
|
-
http_transport_diagnostics: { label: "HTTP transport diagnostics", help: "Experimental.
|
|
3984
|
+
http_transport_diagnostics: { label: "HTTP transport diagnostics", help: "Experimental. Automatically enable INFO logging for HTTP diagnostics while the server runs, without payloads or credentials. Other loggers are unchanged; explicit Home Assistant logger overrides and filters still apply. Does not confirm client receipt. HTTP only; restart required." },
|
|
3985
3985
|
http_json_response: { label: "JSON responses instead of streaming", help: "Experimental. Return a single JSON response instead of an SSE stream. Affects all HTTP clients on this server and disables streamed progress for these responses. HTTP only; restart required." },
|
|
3986
3986
|
code_mode_max_duration: { label: "Code-mode max duration (s)", help: "Wall-clock budget per sandbox run. Range 1–300. Restart required." },
|
|
3987
3987
|
code_mode_max_memory: { label: "Code-mode max memory (bytes)", help: "RSS cap per sandbox run. Range 1 MB–256 MB. Restart required." },
|
|
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.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/_vendor/websockets/MANIFEST.sha256
RENAMED
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/_vendor/websockets/VENDORED
RENAMED
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/_vendor/websockets/__init__.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/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.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/_vendor/websockets/client.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/_vendor/websockets/connection.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/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.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/_vendor/websockets/frames.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/_vendor/websockets/headers.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/_vendor/websockets/http11.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/_vendor/websockets/imports.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/_vendor/websockets/legacy/auth.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/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.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/_vendor/websockets/legacy/http.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/_vendor/websockets/legacy/server.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/_vendor/websockets/protocol.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/_vendor/websockets/proxy.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/_vendor/websockets/py.typed
RENAMED
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/_vendor/websockets/server.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/_vendor/websockets/streams.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/_vendor/websockets/sync/__init__.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/_vendor/websockets/sync/client.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/_vendor/websockets/sync/messages.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/_vendor/websockets/sync/router.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/_vendor/websockets/sync/server.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/_vendor/websockets/sync/utils.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/_vendor/websockets/trio/__init__.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/_vendor/websockets/trio/client.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/_vendor/websockets/trio/messages.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/_vendor/websockets/trio/router.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/_vendor/websockets/trio/server.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/_vendor/websockets/trio/utils.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/_vendor/websockets/typing.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/_vendor/websockets/utils.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/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.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/client/supervisor_client.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/client/websocket_listener.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/dashboard_screenshot/__init__.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/dashboard_screenshot/capture.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/dashboard_screenshot/content.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/dashboard_screenshot/paths.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/dashboard_screenshot/provision.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/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
|
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/resources/skills-vendor/AGENTS.md
RENAMED
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/resources/skills-vendor/CLAUDE.md
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/resources/skills-vendor/LICENSE
RENAMED
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/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
|
{ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/settings_ui/_handlers_advanced.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/settings_ui/_handlers_backups.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/settings_ui/_handlers_fs.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/settings_ui/_handlers_server.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/settings_ui/_handlers_theme.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/settings_ui/_handlers_tools.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/settings_ui/_locale_policy.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/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.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/settings_ui/locales/README.md
RENAMED
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/settings_ui/locales/cs.json
RENAMED
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/settings_ui/locales/de.json
RENAMED
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/settings_ui/locales/eo.json
RENAMED
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/settings_ui/locales/es.json
RENAMED
|
File without changes
|
{ha_mcp_dev-8.4.3.dev2625 → ha_mcp_dev-8.4.3.dev2629}/src/ha_mcp/settings_ui/locales/fr.json
RENAMED
|
File without changes
|