ha-mcp-dev 8.2.0.dev2350__tar.gz → 8.2.0.dev2352__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {ha_mcp_dev-8.2.0.dev2350/src/ha_mcp_dev.egg-info → ha_mcp_dev-8.2.0.dev2352}/PKG-INFO +1 -1
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/pyproject.toml +1 -1
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/settings_ui/locales/en.json +7 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/settings_ui/settings.js +28 -6
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352/src/ha_mcp_dev.egg-info}/PKG-INFO +1 -1
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/LICENSE +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/MANIFEST.in +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/README.md +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/setup.cfg +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/__init__.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/__main__.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/_pypi_marker +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/_rich_compat.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/_vendor/__init__.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/_vendor/requirements.txt +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/_vendor/websockets/LICENSE +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/_vendor/websockets/MANIFEST.sha256 +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/_vendor/websockets/VENDORED +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/_vendor/websockets/__init__.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/_vendor/websockets/__main__.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/_vendor/websockets/asyncio/__init__.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/_vendor/websockets/asyncio/client.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/_vendor/websockets/asyncio/connection.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/_vendor/websockets/asyncio/messages.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/_vendor/websockets/asyncio/router.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/_vendor/websockets/asyncio/server.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/_vendor/websockets/auth.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/_vendor/websockets/cli.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/_vendor/websockets/client.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/_vendor/websockets/connection.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/_vendor/websockets/datastructures.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/_vendor/websockets/exceptions.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/_vendor/websockets/extensions/__init__.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/_vendor/websockets/extensions/base.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/_vendor/websockets/extensions/permessage_deflate.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/_vendor/websockets/frames.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/_vendor/websockets/headers.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/_vendor/websockets/http11.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/_vendor/websockets/imports.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/_vendor/websockets/legacy/__init__.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/_vendor/websockets/legacy/auth.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/_vendor/websockets/legacy/client.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/_vendor/websockets/legacy/exceptions.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/_vendor/websockets/legacy/framing.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/_vendor/websockets/legacy/handshake.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/_vendor/websockets/legacy/http.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/_vendor/websockets/legacy/protocol.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/_vendor/websockets/legacy/server.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/_vendor/websockets/protocol.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/_vendor/websockets/proxy.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/_vendor/websockets/py.typed +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/_vendor/websockets/server.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/_vendor/websockets/streams.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/_vendor/websockets/sync/__init__.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/_vendor/websockets/sync/client.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/_vendor/websockets/sync/connection.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/_vendor/websockets/sync/messages.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/_vendor/websockets/sync/router.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/_vendor/websockets/sync/server.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/_vendor/websockets/sync/utils.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/_vendor/websockets/trio/__init__.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/_vendor/websockets/trio/client.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/_vendor/websockets/trio/connection.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/_vendor/websockets/trio/messages.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/_vendor/websockets/trio/router.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/_vendor/websockets/trio/server.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/_vendor/websockets/trio/utils.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/_vendor/websockets/typing.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/_vendor/websockets/uri.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/_vendor/websockets/utils.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/_vendor/websockets/version.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/_version.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/auth/__init__.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/auth/consent_form.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/auth/oidc_compat.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/auth/provider.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/backup_manager.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/browser_landing.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/client/__init__.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/client/rest_client.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/client/supervisor_client.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/client/websocket_client.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/client/websocket_listener.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/config.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/dashboard_screenshot/__init__.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/dashboard_screenshot/capture.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/dashboard_screenshot/content.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/dashboard_screenshot/paths.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/dashboard_screenshot/provision.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/dashboard_screenshot/theme_guard.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/errors.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/hacs_auto_refresh.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/llm_exposure.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/policy/__init__.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/policy/approval_queue.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/policy/editing.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/policy/evaluator.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/policy/handlers.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/policy/middleware.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/policy/model.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/policy/persistence.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/policy/value_sources.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/py.typed +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/read_only.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/redaction.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/resources/skills-vendor/.claude/settings.json +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/resources/skills-vendor/.claude-plugin/marketplace.json +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/resources/skills-vendor/.claude-plugin/plugin.json +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/resources/skills-vendor/.github/ISSUE_TEMPLATE/skill-rca.md +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/resources/skills-vendor/.github/pull_request_template.md +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/resources/skills-vendor/AGENTS.md +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/resources/skills-vendor/CLAUDE.md +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/resources/skills-vendor/CONTRIBUTING.md +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/resources/skills-vendor/LICENSE +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/resources/skills-vendor/README.md +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/SKILL.md +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/evals/evals.json +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/appdaemon.md +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/automation-patterns.md +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/blueprint-guide.md +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/dashboard-cards.md +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/dashboard-guide.md +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/device-control.md +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/domain-docs.md +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/examples.yaml +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/helper-selection.md +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/safe-refactoring.md +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/scenes.md +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/template-guidelines.md +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/yaml-only-integrations.md +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/server.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/settings_ui/__init__.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/settings_ui/_handlers_advanced.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/settings_ui/_handlers_backups.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/settings_ui/_handlers_fs.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/settings_ui/_handlers_server.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/settings_ui/_handlers_theme.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/settings_ui/_handlers_tools.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/settings_ui/_i18n.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/settings_ui/_persistence.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/settings_ui/_supervisor.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/settings_ui/_theme.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/settings_ui/_tools_meta.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/settings_ui/locales/README.md +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/settings_ui/locales/cs.json +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/settings_ui/locales/de.json +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/settings_ui/locales/eo.json +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/settings_ui/locales/es.json +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/settings_ui/locales/fr.json +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/settings_ui/locales/it.json +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/settings_ui/locales/nl.json +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/settings_ui/locales/pl.json +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/settings_ui/locales/ru.json +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/settings_ui/locales/sv.json +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/settings_ui/locales/zh-Hans.json +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/settings_ui/settings.css +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/settings_ui/settings.html +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/smoke_test.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/stdio_settings_sidecar.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/strict_bps.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/tools/__init__.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/tools/auto_backup.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/tools/backup.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/tools/best_practice_checker.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/tools/best_practice_result.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/tools/best_practice_variables.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/tools/component_api.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/tools/component_config_reads.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/tools/component_devices.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/tools/component_registries.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/tools/component_registry_lookup.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/tools/config_entry_flow.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/tools/config_entry_flow_form.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/tools/config_entry_flow_menu.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/tools/config_entry_flow_walker.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/tools/device_control.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/tools/error_log_parsing.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/tools/hacs_registration.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/tools/helpers.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/tools/radio/__init__.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/tools/radio/base.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/tools/radio/matter.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/tools/radio/thread.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/tools/radio/zigbee.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/tools/radio/zwave.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/tools/reference_validator.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/tools/registry.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/tools/smart_search/__init__.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/tools/smart_search/_base.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/tools/smart_search/_config.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/tools/smart_search/_deep.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/tools/smart_search/_entities.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/tools/smart_search/_fetch.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/tools/smart_search/_overview.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/tools/smart_search/_scenes.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/tools/smart_search/_scoring.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/tools/tool_search_hint_middleware.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/tools/tools_addons.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/tools/tools_areas.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/tools/tools_assist_pipeline.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/tools/tools_blueprints.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/tools/tools_bug_report.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/tools/tools_calendar.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/tools/tools_camera.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/tools/tools_categories.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/tools/tools_code.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/tools/tools_config_automations.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/tools/tools_config_dashboards.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/tools/tools_config_helpers.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/tools/tools_config_scenes.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/tools/tools_config_scripts.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/tools/tools_dashboard_screenshot.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/tools/tools_dev.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/tools/tools_energy.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/tools/tools_entities.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/tools/tools_filesystem.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/tools/tools_groups.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/tools/tools_hacs.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/tools/tools_history.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/tools/tools_integrations.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/tools/tools_labels.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/tools/tools_radio.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/tools/tools_registry.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/tools/tools_resources.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/tools/tools_search.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/tools/tools_security_policy.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/tools/tools_service.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/tools/tools_services.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/tools/tools_system.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/tools/tools_themes.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/tools/tools_todo.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/tools/tools_traces.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/tools/tools_updates.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/tools/tools_utility.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/tools/tools_voice_assistant.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/tools/tools_yaml_config.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/tools/tools_yaml_read.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/tools/tools_zones.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/tools/util_helpers.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/tools/validation_middleware.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/transforms/__init__.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/transforms/categorized_search.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/transforms/lite_docstrings.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/transport_security.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/update_check.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/utils/__init__.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/utils/config_hash.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/utils/config_write_lock.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/utils/data_paths.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/utils/domain_handlers.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/utils/fuzzy_search.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/utils/kill_signal_diagnostics.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/utils/operation_manager.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/utils/python_sandbox.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/utils/skill_loader.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/utils/usage_logger.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/visibility/__init__.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/visibility/enforcement.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/visibility/model.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/visibility/persistence.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/visibility/resolver.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp_dev.egg-info/SOURCES.txt +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp_dev.egg-info/dependency_links.txt +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp_dev.egg-info/entry_points.txt +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp_dev.egg-info/requires.txt +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp_dev.egg-info/top_level.txt +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/tests/__init__.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/tests/test_constants.py +0 -0
- {ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/tests/test_env_manager.py +0 -0
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "ha-mcp-dev"
|
|
7
|
-
version = "8.2.0.
|
|
7
|
+
version = "8.2.0.dev2352"
|
|
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
|
{ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/settings_ui/locales/en.json
RENAMED
|
@@ -13,6 +13,13 @@
|
|
|
13
13
|
"theme.light": "Light",
|
|
14
14
|
"theme.dark": "Dark",
|
|
15
15
|
"status.loading": "Loading…",
|
|
16
|
+
"footer.installation": "installation: {method}",
|
|
17
|
+
"footer.deployment.addon": "app/add-on",
|
|
18
|
+
"footer.deployment.docker": "container/docker",
|
|
19
|
+
"footer.deployment.pyinstaller": "standalone binary",
|
|
20
|
+
"footer.deployment.git": "source checkout",
|
|
21
|
+
"footer.deployment.pypi": "python package",
|
|
22
|
+
"footer.deployment.unknown": "unknown",
|
|
16
23
|
"nav.skip": "Skip to content",
|
|
17
24
|
"tabs.aria": "Settings sections",
|
|
18
25
|
"tabs.tools": "Tools",
|
|
@@ -536,14 +536,36 @@ async function applyInfoChrome() {
|
|
|
536
536
|
'⚠ Changes saved. Restart the ha-mcp process, then refresh the MCP tool list in your AI client.'
|
|
537
537
|
);
|
|
538
538
|
}
|
|
539
|
-
//
|
|
540
|
-
//
|
|
541
|
-
//
|
|
542
|
-
//
|
|
543
|
-
// to package metadata in standalone deployments.
|
|
539
|
+
// Footer — show the running build and the same deployment classification
|
|
540
|
+
// used by ha_report_issue. The backend keeps embedded and sidecar distinct
|
|
541
|
+
// because they need different restart behavior; preserve those concise
|
|
542
|
+
// names here and clarify the less obvious packaging-oriented values.
|
|
544
543
|
if (info.version) {
|
|
545
544
|
const fEl = document.getElementById('versionFooterText');
|
|
546
|
-
|
|
545
|
+
const deploymentMode = typeof info.deployment_mode === 'string'
|
|
546
|
+
? info.deployment_mode
|
|
547
|
+
: '';
|
|
548
|
+
const deploymentLabels = {
|
|
549
|
+
embedded: 'embedded',
|
|
550
|
+
sidecar: 'sidecar',
|
|
551
|
+
addon: t('footer.deployment.addon', {}, 'app/add-on'),
|
|
552
|
+
docker: t('footer.deployment.docker', {}, 'container/docker'),
|
|
553
|
+
pyinstaller: t('footer.deployment.pyinstaller', {}, 'standalone binary'),
|
|
554
|
+
git: t('footer.deployment.git', {}, 'source checkout'),
|
|
555
|
+
pypi: t('footer.deployment.pypi', {}, 'python package'),
|
|
556
|
+
unknown: t('footer.deployment.unknown', {}, 'unknown'),
|
|
557
|
+
};
|
|
558
|
+
const deploymentLabel = Object.prototype.hasOwnProperty.call(
|
|
559
|
+
deploymentLabels, deploymentMode
|
|
560
|
+
) ? deploymentLabels[deploymentMode] : deploymentMode;
|
|
561
|
+
const installation = deploymentLabel
|
|
562
|
+
? ' · ' + t(
|
|
563
|
+
'footer.installation',
|
|
564
|
+
{method: deploymentLabel},
|
|
565
|
+
'installation: {method}'
|
|
566
|
+
)
|
|
567
|
+
: '';
|
|
568
|
+
if (fEl) fEl.textContent = 'ha-mcp ' + info.version + installation;
|
|
547
569
|
}
|
|
548
570
|
} catch (e) {
|
|
549
571
|
// A transient /api/settings/info failure must not leave the restart
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/_vendor/websockets/MANIFEST.sha256
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/_vendor/websockets/VENDORED
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/_vendor/websockets/__init__.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/_vendor/websockets/__main__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/_vendor/websockets/client.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/_vendor/websockets/connection.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/_vendor/websockets/exceptions.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/_vendor/websockets/frames.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/_vendor/websockets/headers.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/_vendor/websockets/http11.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/_vendor/websockets/imports.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/_vendor/websockets/legacy/auth.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/_vendor/websockets/legacy/client.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/_vendor/websockets/legacy/http.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/_vendor/websockets/legacy/server.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/_vendor/websockets/protocol.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/_vendor/websockets/proxy.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/_vendor/websockets/py.typed
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/_vendor/websockets/server.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/_vendor/websockets/streams.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/_vendor/websockets/sync/__init__.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/_vendor/websockets/sync/client.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/_vendor/websockets/sync/messages.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/_vendor/websockets/sync/router.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/_vendor/websockets/sync/server.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/_vendor/websockets/sync/utils.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/_vendor/websockets/trio/__init__.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/_vendor/websockets/trio/client.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/_vendor/websockets/trio/messages.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/_vendor/websockets/trio/router.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/_vendor/websockets/trio/server.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/_vendor/websockets/trio/utils.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/_vendor/websockets/typing.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/_vendor/websockets/utils.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/_vendor/websockets/version.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/client/supervisor_client.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/client/websocket_listener.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/dashboard_screenshot/__init__.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/dashboard_screenshot/capture.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/dashboard_screenshot/content.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/dashboard_screenshot/paths.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/dashboard_screenshot/provision.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/dashboard_screenshot/theme_guard.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/resources/skills-vendor/AGENTS.md
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/resources/skills-vendor/CLAUDE.md
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/resources/skills-vendor/LICENSE
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/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
|
{ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/settings_ui/_handlers_advanced.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/settings_ui/_handlers_backups.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/settings_ui/_handlers_fs.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/settings_ui/_handlers_server.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/settings_ui/_handlers_theme.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/settings_ui/_handlers_tools.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/settings_ui/_persistence.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/settings_ui/locales/README.md
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/settings_ui/locales/cs.json
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/settings_ui/locales/de.json
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/settings_ui/locales/eo.json
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/settings_ui/locales/es.json
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/settings_ui/locales/fr.json
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/settings_ui/locales/it.json
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/settings_ui/locales/nl.json
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/settings_ui/locales/pl.json
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/settings_ui/locales/ru.json
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/settings_ui/locales/sv.json
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/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
|
{ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/tools/best_practice_checker.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/tools/best_practice_result.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/tools/best_practice_variables.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/tools/component_config_reads.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/tools/component_registries.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/tools/component_registry_lookup.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/tools/config_entry_flow_form.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/tools/config_entry_flow_menu.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/tools/config_entry_flow_walker.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
|
{ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/tools/reference_validator.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/tools/smart_search/__init__.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/tools/smart_search/_base.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/tools/smart_search/_config.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/tools/smart_search/_deep.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/tools/smart_search/_entities.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/tools/smart_search/_fetch.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2350 → ha_mcp_dev-8.2.0.dev2352}/src/ha_mcp/tools/smart_search/_overview.py
RENAMED
|
File without changes
|