ha-mcp-dev 8.3.0.dev2425__tar.gz → 8.3.0.dev2427__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.3.0.dev2425/src/ha_mcp_dev.egg-info → ha_mcp_dev-8.3.0.dev2427}/PKG-INFO +1 -1
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/pyproject.toml +1 -1
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/tools/tools_addons.py +20 -7
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427/src/ha_mcp_dev.egg-info}/PKG-INFO +1 -1
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/LICENSE +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/MANIFEST.in +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/README.md +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/setup.cfg +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/__init__.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/__main__.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/_pypi_marker +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/_rich_compat.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/_vendor/__init__.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/_vendor/requirements.txt +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/_vendor/websockets/LICENSE +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/_vendor/websockets/MANIFEST.sha256 +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/_vendor/websockets/VENDORED +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/_vendor/websockets/__init__.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/_vendor/websockets/__main__.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/_vendor/websockets/asyncio/__init__.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/_vendor/websockets/asyncio/client.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/_vendor/websockets/asyncio/connection.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/_vendor/websockets/asyncio/messages.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/_vendor/websockets/asyncio/router.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/_vendor/websockets/asyncio/server.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/_vendor/websockets/auth.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/_vendor/websockets/cli.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/_vendor/websockets/client.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/_vendor/websockets/connection.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/_vendor/websockets/datastructures.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/_vendor/websockets/exceptions.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/_vendor/websockets/extensions/__init__.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/_vendor/websockets/extensions/base.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/_vendor/websockets/extensions/permessage_deflate.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/_vendor/websockets/frames.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/_vendor/websockets/headers.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/_vendor/websockets/http11.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/_vendor/websockets/imports.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/_vendor/websockets/legacy/__init__.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/_vendor/websockets/legacy/auth.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/_vendor/websockets/legacy/client.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/_vendor/websockets/legacy/exceptions.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/_vendor/websockets/legacy/framing.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/_vendor/websockets/legacy/handshake.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/_vendor/websockets/legacy/http.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/_vendor/websockets/legacy/protocol.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/_vendor/websockets/legacy/server.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/_vendor/websockets/protocol.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/_vendor/websockets/proxy.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/_vendor/websockets/py.typed +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/_vendor/websockets/server.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/_vendor/websockets/streams.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/_vendor/websockets/sync/__init__.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/_vendor/websockets/sync/client.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/_vendor/websockets/sync/connection.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/_vendor/websockets/sync/messages.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/_vendor/websockets/sync/router.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/_vendor/websockets/sync/server.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/_vendor/websockets/sync/utils.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/_vendor/websockets/trio/__init__.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/_vendor/websockets/trio/client.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/_vendor/websockets/trio/connection.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/_vendor/websockets/trio/messages.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/_vendor/websockets/trio/router.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/_vendor/websockets/trio/server.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/_vendor/websockets/trio/utils.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/_vendor/websockets/typing.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/_vendor/websockets/uri.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/_vendor/websockets/utils.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/_vendor/websockets/version.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/_version.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/auth/__init__.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/auth/consent_form.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/auth/oidc_compat.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/auth/provider.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/backup_manager.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/browser_landing.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/client/__init__.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/client/rest_client.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/client/supervisor_client.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/client/websocket_client.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/client/websocket_listener.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/config.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/dashboard_screenshot/__init__.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/dashboard_screenshot/capture.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/dashboard_screenshot/content.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/dashboard_screenshot/paths.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/dashboard_screenshot/provision.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/dashboard_screenshot/theme_guard.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/errors.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/hacs_auto_refresh.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/llm_exposure.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/log_filters.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/policy/__init__.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/policy/approval_queue.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/policy/editing.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/policy/evaluator.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/policy/handlers.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/policy/middleware.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/policy/model.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/policy/persistence.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/policy/value_sources.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/py.typed +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/read_only.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/redaction.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/renamed_tools.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/resources/skills-vendor/.claude/settings.json +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/resources/skills-vendor/.claude-plugin/marketplace.json +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/resources/skills-vendor/.claude-plugin/plugin.json +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/resources/skills-vendor/.github/ISSUE_TEMPLATE/skill-rca.md +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/resources/skills-vendor/.github/pull_request_template.md +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/resources/skills-vendor/AGENTS.md +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/resources/skills-vendor/CLAUDE.md +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/resources/skills-vendor/CONTRIBUTING.md +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/resources/skills-vendor/LICENSE +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/resources/skills-vendor/README.md +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/SKILL.md +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/evals/evals.json +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/appdaemon.md +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/automation-patterns.md +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/blueprint-guide.md +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/dashboard-cards.md +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/dashboard-guide.md +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/device-control.md +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/domain-docs.md +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/examples.yaml +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/helper-selection.md +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/safe-refactoring.md +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/scenes.md +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/template-guidelines.md +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/yaml-only-integrations.md +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/server.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/settings_ui/__init__.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/settings_ui/_handlers_advanced.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/settings_ui/_handlers_backups.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/settings_ui/_handlers_fs.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/settings_ui/_handlers_server.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/settings_ui/_handlers_theme.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/settings_ui/_handlers_tools.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/settings_ui/_i18n.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/settings_ui/_persistence.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/settings_ui/_supervisor.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/settings_ui/_theme.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/settings_ui/_tools_meta.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/settings_ui/locales/README.md +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/settings_ui/locales/cs.json +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/settings_ui/locales/de.json +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/settings_ui/locales/en.json +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/settings_ui/locales/eo.json +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/settings_ui/locales/es.json +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/settings_ui/locales/fr.json +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/settings_ui/locales/it.json +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/settings_ui/locales/ko.json +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/settings_ui/locales/nl.json +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/settings_ui/locales/pl.json +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/settings_ui/locales/ru.json +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/settings_ui/locales/sv.json +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/settings_ui/locales/zh-Hans.json +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/settings_ui/settings.css +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/settings_ui/settings.html +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/settings_ui/settings.js +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/smoke_test.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/stdio_settings_sidecar.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/strict_bps.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/tools/__init__.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/tools/auto_backup.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/tools/backup.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/tools/best_practice_checker.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/tools/best_practice_result.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/tools/best_practice_variables.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/tools/bulk_selector.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/tools/component_api.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/tools/component_config_entries.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/tools/component_config_reads.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/tools/component_devices.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/tools/component_registries.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/tools/component_registry_lookup.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/tools/config_entry_flow.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/tools/config_entry_flow_form.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/tools/config_entry_flow_menu.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/tools/config_entry_flow_walker.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/tools/config_entry_identity.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/tools/config_entry_reconfigure.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/tools/config_entry_reload_watch.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/tools/device_control.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/tools/error_log_parsing.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/tools/hacs_registration.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/tools/helpers.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/tools/integration_reconfigure.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/tools/radio/__init__.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/tools/radio/base.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/tools/radio/matter.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/tools/radio/thread.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/tools/radio/zigbee.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/tools/radio/zwave.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/tools/reference_validator.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/tools/registry.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/tools/renamed_tool_middleware.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/tools/smart_search/__init__.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/tools/smart_search/_base.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/tools/smart_search/_config.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/tools/smart_search/_deep.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/tools/smart_search/_entities.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/tools/smart_search/_fetch.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/tools/smart_search/_overview.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/tools/smart_search/_scenes.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/tools/smart_search/_scoring.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/tools/tool_search_hint_middleware.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/tools/tools_areas.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/tools/tools_assist_pipeline.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/tools/tools_blueprints.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/tools/tools_bug_report.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/tools/tools_calendar.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/tools/tools_camera.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/tools/tools_categories.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/tools/tools_code.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/tools/tools_config_automations.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/tools/tools_config_dashboards.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/tools/tools_config_helpers.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/tools/tools_config_scenes.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/tools/tools_config_scripts.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/tools/tools_dashboard_screenshot.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/tools/tools_dev.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/tools/tools_energy.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/tools/tools_entities.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/tools/tools_filesystem.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/tools/tools_groups.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/tools/tools_hacs.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/tools/tools_history.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/tools/tools_integrations.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/tools/tools_labels.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/tools/tools_radio.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/tools/tools_registry.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/tools/tools_resources.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/tools/tools_search.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/tools/tools_security_policy.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/tools/tools_service.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/tools/tools_services.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/tools/tools_system.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/tools/tools_themes.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/tools/tools_todo.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/tools/tools_traces.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/tools/tools_updates.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/tools/tools_utility.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/tools/tools_voice_assistant.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/tools/tools_yaml_config.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/tools/tools_yaml_read.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/tools/tools_zones.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/tools/util_helpers.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/tools/validation_middleware.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/transforms/__init__.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/transforms/categorized_search.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/transforms/lite_docstrings.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/transport_security.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/update_check.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/utils/__init__.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/utils/config_hash.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/utils/config_write_lock.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/utils/data_paths.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/utils/domain_handlers.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/utils/entity_membership.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/utils/fuzzy_search.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/utils/kill_signal_diagnostics.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/utils/operation_manager.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/utils/python_sandbox.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/utils/skill_loader.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/utils/usage_logger.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/visibility/__init__.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/visibility/enforcement.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/visibility/model.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/visibility/persistence.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/visibility/resolver.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp_dev.egg-info/SOURCES.txt +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp_dev.egg-info/dependency_links.txt +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp_dev.egg-info/entry_points.txt +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp_dev.egg-info/requires.txt +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp_dev.egg-info/top_level.txt +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/tests/__init__.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/tests/test_constants.py +0 -0
- {ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/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.3.0.
|
|
7
|
+
version = "8.3.0.dev2427"
|
|
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
|
|
@@ -316,13 +316,17 @@ def _supervisor_invalid_response(
|
|
|
316
316
|
return _supervisor_rest_failure(response, error)
|
|
317
317
|
|
|
318
318
|
|
|
319
|
+
def _bounded_supervisor_text(value: str) -> str:
|
|
320
|
+
"""Return model-safe Supervisor text, marking any truncation visibly."""
|
|
321
|
+
if len(value) <= _MAX_RESPONSE_SIZE:
|
|
322
|
+
return value
|
|
323
|
+
prefix_size = _MAX_RESPONSE_SIZE - len(_SUPERVISOR_RESPONSE_TRUNCATION_SUFFIX)
|
|
324
|
+
return value[:prefix_size] + _SUPERVISOR_RESPONSE_TRUNCATION_SUFFIX
|
|
325
|
+
|
|
326
|
+
|
|
319
327
|
def _bounded_supervisor_response_text(response: httpx.Response) -> str:
|
|
320
328
|
"""Return a model-safe Supervisor response body with visible truncation."""
|
|
321
|
-
|
|
322
|
-
if len(body) <= _MAX_RESPONSE_SIZE:
|
|
323
|
-
return body
|
|
324
|
-
prefix_size = _MAX_RESPONSE_SIZE - len(_SUPERVISOR_RESPONSE_TRUNCATION_SUFFIX)
|
|
325
|
-
return body[:prefix_size] + _SUPERVISOR_RESPONSE_TRUNCATION_SUFFIX
|
|
329
|
+
return _bounded_supervisor_text(response.text.strip())
|
|
326
330
|
|
|
327
331
|
|
|
328
332
|
def _normalize_supervisor_rest_response(
|
|
@@ -558,7 +562,12 @@ def _raise_supervisor_api_failure(
|
|
|
558
562
|
endpoint: str,
|
|
559
563
|
) -> NoReturn:
|
|
560
564
|
"""Raise the structured exception represented by a non-retryable result."""
|
|
561
|
-
|
|
565
|
+
# Both transports land here, and both carry Supervisor's own text: the
|
|
566
|
+
# direct REST payload and the message Core relays over the WebSocket
|
|
567
|
+
# bridge. Bind the size once, where every failure passes.
|
|
568
|
+
error_text = _bounded_supervisor_text(
|
|
569
|
+
str(result.get("error", f"Supervisor API call failed: {endpoint}"))
|
|
570
|
+
)
|
|
562
571
|
status_code = result.get("_status_code")
|
|
563
572
|
response_data = result.get("_response_data")
|
|
564
573
|
if status_code == 401:
|
|
@@ -613,7 +622,7 @@ def _supervisor_result_mapping(
|
|
|
613
622
|
return payload
|
|
614
623
|
|
|
615
624
|
verb = method.upper()
|
|
616
|
-
message = (
|
|
625
|
+
message = _bounded_supervisor_text(
|
|
617
626
|
f"Supervisor API {verb} {endpoint} returned an invalid result payload: "
|
|
618
627
|
f"{payload!r}"
|
|
619
628
|
)
|
|
@@ -717,6 +726,10 @@ async def _supervisor_api_call(
|
|
|
717
726
|
if _JOB_COLLISION_MARKER not in error_text.lower():
|
|
718
727
|
_raise_supervisor_api_failure(result, endpoint)
|
|
719
728
|
|
|
729
|
+
# The marker test runs on the raw text; everything below reports
|
|
730
|
+
# it, so bind the size once the classification is settled.
|
|
731
|
+
error_text = _bounded_supervisor_text(error_text)
|
|
732
|
+
|
|
720
733
|
remaining = deadline - time.monotonic()
|
|
721
734
|
if remaining <= 0:
|
|
722
735
|
# The retry budget is exhausted; the group may be stuck or
|
|
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.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/_vendor/websockets/MANIFEST.sha256
RENAMED
|
File without changes
|
{ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/_vendor/websockets/VENDORED
RENAMED
|
File without changes
|
{ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/_vendor/websockets/__init__.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/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.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/_vendor/websockets/client.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/_vendor/websockets/connection.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/_vendor/websockets/exceptions.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/_vendor/websockets/frames.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/_vendor/websockets/headers.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/_vendor/websockets/http11.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/_vendor/websockets/imports.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/_vendor/websockets/legacy/auth.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/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.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/_vendor/websockets/legacy/http.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/_vendor/websockets/legacy/server.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/_vendor/websockets/protocol.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/_vendor/websockets/proxy.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/_vendor/websockets/py.typed
RENAMED
|
File without changes
|
{ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/_vendor/websockets/server.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/_vendor/websockets/streams.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/_vendor/websockets/sync/__init__.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/_vendor/websockets/sync/client.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/_vendor/websockets/sync/messages.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/_vendor/websockets/sync/router.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/_vendor/websockets/sync/server.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/_vendor/websockets/sync/utils.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/_vendor/websockets/trio/__init__.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/_vendor/websockets/trio/client.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/_vendor/websockets/trio/messages.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/_vendor/websockets/trio/router.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/_vendor/websockets/trio/server.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/_vendor/websockets/trio/utils.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/_vendor/websockets/typing.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/_vendor/websockets/utils.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/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.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/client/supervisor_client.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/client/websocket_listener.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/dashboard_screenshot/__init__.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/dashboard_screenshot/capture.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/dashboard_screenshot/content.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/dashboard_screenshot/paths.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/dashboard_screenshot/provision.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/dashboard_screenshot/theme_guard.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/resources/skills-vendor/AGENTS.md
RENAMED
|
File without changes
|
{ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/resources/skills-vendor/CLAUDE.md
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/resources/skills-vendor/LICENSE
RENAMED
|
File without changes
|
{ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/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.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/settings_ui/_handlers_advanced.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/settings_ui/_handlers_backups.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/settings_ui/_handlers_fs.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/settings_ui/_handlers_server.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/settings_ui/_handlers_theme.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/settings_ui/_handlers_tools.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/settings_ui/_persistence.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/settings_ui/locales/README.md
RENAMED
|
File without changes
|
{ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/settings_ui/locales/cs.json
RENAMED
|
File without changes
|
{ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/settings_ui/locales/de.json
RENAMED
|
File without changes
|
{ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/settings_ui/locales/en.json
RENAMED
|
File without changes
|
{ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/settings_ui/locales/eo.json
RENAMED
|
File without changes
|
{ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/settings_ui/locales/es.json
RENAMED
|
File without changes
|
{ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/settings_ui/locales/fr.json
RENAMED
|
File without changes
|
{ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/settings_ui/locales/it.json
RENAMED
|
File without changes
|
{ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/settings_ui/locales/ko.json
RENAMED
|
File without changes
|
{ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/settings_ui/locales/nl.json
RENAMED
|
File without changes
|
{ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/settings_ui/locales/pl.json
RENAMED
|
File without changes
|
{ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/settings_ui/locales/ru.json
RENAMED
|
File without changes
|
{ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/settings_ui/locales/sv.json
RENAMED
|
File without changes
|
{ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/settings_ui/locales/zh-Hans.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/tools/best_practice_checker.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/tools/best_practice_result.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/tools/best_practice_variables.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/tools/component_config_entries.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/tools/component_config_reads.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/tools/component_registries.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/tools/component_registry_lookup.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/tools/config_entry_flow_form.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/tools/config_entry_flow_menu.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/tools/config_entry_flow_walker.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/tools/config_entry_identity.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/tools/config_entry_reconfigure.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/tools/config_entry_reload_watch.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.3.0.dev2425 → ha_mcp_dev-8.3.0.dev2427}/src/ha_mcp/tools/integration_reconfigure.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|