ha-mcp-dev 8.2.0.dev2367__tar.gz → 8.3.0.dev2372__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.dev2367/src/ha_mcp_dev.egg-info → ha_mcp_dev-8.3.0.dev2372}/PKG-INFO +1 -1
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/pyproject.toml +1 -1
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/settings_ui/locales/cs.json +4 -2
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/settings_ui/locales/de.json +4 -2
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/settings_ui/locales/eo.json +4 -2
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/settings_ui/locales/es.json +4 -2
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/settings_ui/locales/fr.json +4 -2
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/settings_ui/locales/it.json +4 -2
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/settings_ui/locales/nl.json +4 -2
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/settings_ui/locales/pl.json +4 -2
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/settings_ui/locales/ru.json +4 -2
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/settings_ui/locales/sv.json +4 -2
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/settings_ui/locales/zh-Hans.json +4 -2
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372/src/ha_mcp_dev.egg-info}/PKG-INFO +1 -1
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/LICENSE +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/MANIFEST.in +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/README.md +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/setup.cfg +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/__init__.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/__main__.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/_pypi_marker +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/_rich_compat.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/_vendor/__init__.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/_vendor/requirements.txt +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/_vendor/websockets/LICENSE +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/_vendor/websockets/MANIFEST.sha256 +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/_vendor/websockets/VENDORED +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/_vendor/websockets/__init__.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/_vendor/websockets/__main__.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/_vendor/websockets/asyncio/__init__.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/_vendor/websockets/asyncio/client.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/_vendor/websockets/asyncio/connection.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/_vendor/websockets/asyncio/messages.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/_vendor/websockets/asyncio/router.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/_vendor/websockets/asyncio/server.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/_vendor/websockets/auth.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/_vendor/websockets/cli.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/_vendor/websockets/client.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/_vendor/websockets/connection.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/_vendor/websockets/datastructures.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/_vendor/websockets/exceptions.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/_vendor/websockets/extensions/__init__.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/_vendor/websockets/extensions/base.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/_vendor/websockets/extensions/permessage_deflate.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/_vendor/websockets/frames.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/_vendor/websockets/headers.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/_vendor/websockets/http11.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/_vendor/websockets/imports.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/_vendor/websockets/legacy/__init__.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/_vendor/websockets/legacy/auth.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/_vendor/websockets/legacy/client.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/_vendor/websockets/legacy/exceptions.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/_vendor/websockets/legacy/framing.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/_vendor/websockets/legacy/handshake.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/_vendor/websockets/legacy/http.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/_vendor/websockets/legacy/protocol.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/_vendor/websockets/legacy/server.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/_vendor/websockets/protocol.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/_vendor/websockets/proxy.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/_vendor/websockets/py.typed +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/_vendor/websockets/server.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/_vendor/websockets/streams.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/_vendor/websockets/sync/__init__.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/_vendor/websockets/sync/client.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/_vendor/websockets/sync/connection.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/_vendor/websockets/sync/messages.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/_vendor/websockets/sync/router.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/_vendor/websockets/sync/server.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/_vendor/websockets/sync/utils.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/_vendor/websockets/trio/__init__.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/_vendor/websockets/trio/client.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/_vendor/websockets/trio/connection.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/_vendor/websockets/trio/messages.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/_vendor/websockets/trio/router.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/_vendor/websockets/trio/server.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/_vendor/websockets/trio/utils.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/_vendor/websockets/typing.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/_vendor/websockets/uri.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/_vendor/websockets/utils.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/_vendor/websockets/version.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/_version.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/auth/__init__.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/auth/consent_form.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/auth/oidc_compat.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/auth/provider.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/backup_manager.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/browser_landing.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/client/__init__.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/client/rest_client.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/client/supervisor_client.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/client/websocket_client.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/client/websocket_listener.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/config.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/dashboard_screenshot/__init__.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/dashboard_screenshot/capture.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/dashboard_screenshot/content.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/dashboard_screenshot/paths.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/dashboard_screenshot/provision.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/dashboard_screenshot/theme_guard.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/errors.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/hacs_auto_refresh.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/llm_exposure.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/policy/__init__.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/policy/approval_queue.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/policy/editing.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/policy/evaluator.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/policy/handlers.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/policy/middleware.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/policy/model.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/policy/persistence.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/policy/value_sources.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/py.typed +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/read_only.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/redaction.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/renamed_tools.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/resources/skills-vendor/.claude/settings.json +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/resources/skills-vendor/.claude-plugin/marketplace.json +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/resources/skills-vendor/.claude-plugin/plugin.json +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/resources/skills-vendor/.github/ISSUE_TEMPLATE/skill-rca.md +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/resources/skills-vendor/.github/pull_request_template.md +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/resources/skills-vendor/AGENTS.md +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/resources/skills-vendor/CLAUDE.md +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/resources/skills-vendor/CONTRIBUTING.md +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/resources/skills-vendor/LICENSE +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/resources/skills-vendor/README.md +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/SKILL.md +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/evals/evals.json +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/appdaemon.md +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/automation-patterns.md +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/blueprint-guide.md +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/dashboard-cards.md +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/dashboard-guide.md +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/device-control.md +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/domain-docs.md +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/examples.yaml +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/helper-selection.md +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/safe-refactoring.md +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/scenes.md +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/template-guidelines.md +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/yaml-only-integrations.md +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/server.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/settings_ui/__init__.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/settings_ui/_handlers_advanced.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/settings_ui/_handlers_backups.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/settings_ui/_handlers_fs.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/settings_ui/_handlers_server.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/settings_ui/_handlers_theme.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/settings_ui/_handlers_tools.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/settings_ui/_i18n.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/settings_ui/_persistence.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/settings_ui/_supervisor.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/settings_ui/_theme.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/settings_ui/_tools_meta.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/settings_ui/locales/README.md +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/settings_ui/locales/en.json +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/settings_ui/settings.css +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/settings_ui/settings.html +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/settings_ui/settings.js +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/smoke_test.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/stdio_settings_sidecar.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/strict_bps.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/tools/__init__.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/tools/auto_backup.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/tools/backup.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/tools/best_practice_checker.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/tools/best_practice_result.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/tools/best_practice_variables.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/tools/component_api.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/tools/component_config_entries.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/tools/component_config_reads.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/tools/component_devices.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/tools/component_registries.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/tools/component_registry_lookup.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/tools/config_entry_flow.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/tools/config_entry_flow_form.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/tools/config_entry_flow_menu.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/tools/config_entry_flow_walker.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/tools/config_entry_identity.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/tools/config_entry_reconfigure.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/tools/config_entry_reload_watch.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/tools/device_control.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/tools/error_log_parsing.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/tools/hacs_registration.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/tools/helpers.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/tools/integration_reconfigure.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/tools/radio/__init__.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/tools/radio/base.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/tools/radio/matter.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/tools/radio/thread.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/tools/radio/zigbee.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/tools/radio/zwave.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/tools/reference_validator.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/tools/registry.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/tools/renamed_tool_middleware.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/tools/smart_search/__init__.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/tools/smart_search/_base.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/tools/smart_search/_config.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/tools/smart_search/_deep.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/tools/smart_search/_entities.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/tools/smart_search/_fetch.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/tools/smart_search/_overview.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/tools/smart_search/_scenes.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/tools/smart_search/_scoring.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/tools/tool_search_hint_middleware.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/tools/tools_addons.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/tools/tools_areas.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/tools/tools_assist_pipeline.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/tools/tools_blueprints.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/tools/tools_bug_report.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/tools/tools_calendar.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/tools/tools_camera.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/tools/tools_categories.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/tools/tools_code.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/tools/tools_config_automations.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/tools/tools_config_dashboards.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/tools/tools_config_helpers.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/tools/tools_config_scenes.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/tools/tools_config_scripts.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/tools/tools_dashboard_screenshot.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/tools/tools_dev.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/tools/tools_energy.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/tools/tools_entities.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/tools/tools_filesystem.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/tools/tools_groups.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/tools/tools_hacs.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/tools/tools_history.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/tools/tools_integrations.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/tools/tools_labels.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/tools/tools_radio.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/tools/tools_registry.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/tools/tools_resources.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/tools/tools_search.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/tools/tools_security_policy.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/tools/tools_service.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/tools/tools_services.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/tools/tools_system.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/tools/tools_themes.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/tools/tools_todo.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/tools/tools_traces.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/tools/tools_updates.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/tools/tools_utility.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/tools/tools_voice_assistant.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/tools/tools_yaml_config.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/tools/tools_yaml_read.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/tools/tools_zones.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/tools/util_helpers.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/tools/validation_middleware.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/transforms/__init__.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/transforms/categorized_search.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/transforms/lite_docstrings.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/transport_security.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/update_check.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/utils/__init__.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/utils/config_hash.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/utils/config_write_lock.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/utils/data_paths.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/utils/domain_handlers.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/utils/fuzzy_search.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/utils/kill_signal_diagnostics.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/utils/operation_manager.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/utils/python_sandbox.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/utils/skill_loader.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/utils/usage_logger.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/visibility/__init__.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/visibility/enforcement.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/visibility/model.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/visibility/persistence.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/visibility/resolver.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp_dev.egg-info/SOURCES.txt +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp_dev.egg-info/dependency_links.txt +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp_dev.egg-info/entry_points.txt +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp_dev.egg-info/requires.txt +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp_dev.egg-info/top_level.txt +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/tests/__init__.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/tests/test_constants.py +0 -0
- {ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/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.
|
|
7
|
+
version = "8.3.0.dev2372"
|
|
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.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/settings_ui/locales/cs.json
RENAMED
|
@@ -96,8 +96,10 @@
|
|
|
96
96
|
"visibility.boundary": "Bez režimu vynucení (níže) jde o redukci šumu, nikoli o řízení přístupu: skrytá entita je stále vrácena přímým čtením jejího entity_id a stále se objevuje v obsahu automatizací, řídicích panelů a šablon. Nespoléhejte se na samotný filtr jako na bezpečnostní hranici.",
|
|
97
97
|
"visibility.enabled": "Povolit filtr viditelnosti entit",
|
|
98
98
|
"visibility.enforce.title": "Režim vynucení",
|
|
99
|
-
"visibility.enforce.help": "Rozšiřuje filtr z
|
|
100
|
-
"visibility.enforce.only_enforced": "
|
|
99
|
+
"visibility.enforce.help": "Rozšiřuje filtr z úklidu vyhledávání a přehledu na každé čtení nástroje kromě ha_report_issue ve výchozím nastavení. Přímé čtení skryté entity vrátí „nenalezeno“ a čtení obsahu, které by ji zobrazil, je odmítnuto. Výjimka pro nástroj hlášení se ovládá níže. Jedná se o snahu o skrytí před náhodným vystavením na základě nejlepších možností, nikoli o zabezpečenou bezpečnostní hranici.",
|
|
100
|
+
"visibility.enforce.only_enforced": "Udělat skryté entity nečitelnými napříč čteními nástrojů (kromě hlášení problémů ve výchozím nastavení)",
|
|
101
|
+
"visibility.enforce.report_issue_help": "Dokud je toto vypnuto, ha_report_issue a veškerý jeho diagnostický výstup – včetně protokolů – zůstávají mimo režim vynucení při každém volání, a to i když jsou data o viditelnosti v pořádku nebo nedostupná. Zapněte toto nastavení pro prohledání a odmítnutí tohoto nástroje stejně jako u jiných čtení.",
|
|
102
|
+
"visibility.enforce.restrict_report_issue": "Použít režim vynucení na ha_report_issue",
|
|
101
103
|
"visibility.categories.title": "Skrýt podle kategorie",
|
|
102
104
|
"visibility.categories.help": "Home Assistant označuje automaticky generované entity jako diagnostické nebo konfigurační.",
|
|
103
105
|
"visibility.categories.legend": "Kategorie entit ke skrytí",
|
{ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/settings_ui/locales/de.json
RENAMED
|
@@ -96,8 +96,10 @@
|
|
|
96
96
|
"visibility.boundary": "Ohne den Erzwingungsmodus (unten) ist dies Rauschreduzierung, keine Zugriffskontrolle: Eine versteckte Entität wird weiterhin durch ein direktes Lesen ihrer entity_id zurückgegeben und erscheint weiterhin in Automatisierungs-, Dashboard- und Template-Inhalten. Verlasse dich nicht allein auf den Filter als Sicherheitsgrenze.",
|
|
97
97
|
"visibility.enabled": "Entitäts-Sichtbarkeitsfilter aktivieren",
|
|
98
98
|
"visibility.enforce.title": "Erzwingungsmodus",
|
|
99
|
-
"visibility.enforce.help": "Erweitert den Filter
|
|
100
|
-
"visibility.enforce.only_enforced": "Versteckte Entitäten
|
|
99
|
+
"visibility.enforce.help": "Erweitert den Filter von der Übersicht und dem Aufräumen der Suche standardmäßig auf jeden Tool-Lesevorgang außer ha_report_issue. Ein direkter Lesevorgang einer ausgeblendeten Entität gibt „nicht gefunden“ zurück, und ein Inhaltslesevorgang, der eine solche anzeigen würde, wird verweigert. Die Ausnahme für das Berichts-Tool wird unten gesteuert. Best-Effort-Verbergen gegen zufällige Exposition, keine gehärtete Sicherheitsgrenze.",
|
|
100
|
+
"visibility.enforce.only_enforced": "Versteckte Entitäten bei Tool-Lesevorgängen unlesbar machen (standardmäßig außer Fehlerberichten)",
|
|
101
|
+
"visibility.enforce.report_issue_help": "Solange dies deaktiviert ist, bleiben ha_report_issue und all seine Diagnoseausgaben – einschließlich Protokolle – bei jedem Aufruf außerhalb des Erzwingungsmodus, selbst wenn die Sichtbarkeitsdaten intakt oder nicht verfügbar sind. Aktiviere dies, um dieses Tool wie andere Lesevorgänge zu scannen und zu verweigern.",
|
|
102
|
+
"visibility.enforce.restrict_report_issue": "Erzwingungsmodus auf ha_report_issue anwenden",
|
|
101
103
|
"visibility.categories.title": "Nach Kategorie verstecken",
|
|
102
104
|
"visibility.categories.help": "Home Assistant markiert automatisch generierte Entitäten als Diagnose oder Konfiguration.",
|
|
103
105
|
"visibility.categories.legend": "Zu versteckende Entitätskategorien",
|
{ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/settings_ui/locales/eo.json
RENAMED
|
@@ -96,8 +96,10 @@
|
|
|
96
96
|
"visibility.boundary": "Sen deviga reĝimo (malsupre), ĉi tio estas bruo-redukto, ne alirkontrolo: kaŝita ento estas ankoraŭ redonita per rekta legado de ĝia entity_id kaj ankoraŭ aperas en aŭtomatigo, panelo kaj ŝablona enhavo. Ne fidu nur je la filtrilo kiel sekureca limo.",
|
|
97
97
|
"visibility.enabled": "Ebligi filtrilon de enta videbleco",
|
|
98
98
|
"visibility.enforce.title": "Deviga reĝimo",
|
|
99
|
-
"visibility.enforce.help": "Etendas la filtrilon de
|
|
100
|
-
"visibility.enforce.only_enforced": "
|
|
99
|
+
"visibility.enforce.help": "Etendas la filtrilon de ordigado de serĉado kaj superrigardo al ĉiu illegado krom ha_report_issue defaŭlte. Rekta legado de kaŝita ento redonas “ne trovita”, kaj enhava legado kiu elmontrus tian enton estas rifuzita. La escepto de la raport-ilo estas regata sube. Plejforta kaŝado kontraŭ hazarda elmontro, ne fortika sekureca limo.",
|
|
100
|
+
"visibility.enforce.only_enforced": "Maliberi legadon de kaŝitaj entoj tra ĉiuj illegadoj (krom problemnotoj defaŭlte)",
|
|
101
|
+
"visibility.enforce.report_issue_help": "Dum ĉi tio estas malŝaltita, ha_report_issue kaj ĉiuj ĝiaj diagnozaj eliraĵoj—inkluzive de protokoloj—restas ekster la deviga reĝimo je ĉiu voko, eĉ kiam videblecaj datumoj estas sanaj aŭ nehaveblaj. Ŝaltu ĝin por skani kaj rifuzi tiun ilon kiel aliajn legadojn.",
|
|
102
|
+
"visibility.enforce.restrict_report_issue": "Apliki devigan reĝimon al ha_report_issue",
|
|
101
103
|
"visibility.categories.title": "Kaŝi laŭ kategorio",
|
|
102
104
|
"visibility.categories.help": "Home Assistant etikedas aŭtomate generitajn entojn kiel diagnozajn aŭ agordajn.",
|
|
103
105
|
"visibility.categories.legend": "Entaj kategorioj por kaŝi",
|
{ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/settings_ui/locales/es.json
RENAMED
|
@@ -96,8 +96,10 @@
|
|
|
96
96
|
"visibility.boundary": "Sin el modo de aplicación estricta (abajo), esto reduce ruido, no controla el acceso: una entidad oculta se sigue devolviendo en una lectura directa de su entity_id y sigue apareciendo en el contenido de automatizaciones, paneles y plantillas. No confíes en el filtro por sí solo como frontera de seguridad.",
|
|
97
97
|
"visibility.enabled": "Activar el filtro de visibilidad de entidades",
|
|
98
98
|
"visibility.enforce.title": "Modo de aplicación estricta",
|
|
99
|
-
"visibility.enforce.help": "
|
|
100
|
-
"visibility.enforce.only_enforced": "Hacer que las entidades ocultas no se puedan leer
|
|
99
|
+
"visibility.enforce.help": "Amplía el filtro de búsqueda y resumen para ocultar elementos en todas las lecturas de herramientas, excepto ha_report_issue de forma predeterminada. Una lectura directa de una entidad oculta devuelve \"no encontrado\", y se rechaza una lectura de contenido que muestre alguna. La excepción de la herramienta de informes se controla a continuación. Ocultación de mejor esfuerzo contra la exposición incidental, no es un límite de seguridad reforzado.",
|
|
100
|
+
"visibility.enforce.only_enforced": "Hacer que las entidades ocultas no se puedan leer en las lecturas de herramientas (excepto en los informes de problemas de forma predeterminada)",
|
|
101
|
+
"visibility.enforce.report_issue_help": "Mientras esto esté desactivado, ha_report_issue y toda su salida de diagnóstico (incluidos los registros) quedan fuera del modo de aplicación en cada llamada, incluso cuando los datos de visibilidad son correctos o no están disponibles. Actívalo para escanear y rechazar esa herramienta como las demás lecturas.",
|
|
102
|
+
"visibility.enforce.restrict_report_issue": "Aplicar el modo de aplicación a ha_report_issue",
|
|
101
103
|
"visibility.categories.title": "Ocultar por categoría",
|
|
102
104
|
"visibility.categories.help": "Home Assistant etiqueta las entidades generadas automáticamente como de diagnóstico o de configuración.",
|
|
103
105
|
"visibility.categories.legend": "Categorías de entidad que ocultar",
|
{ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/settings_ui/locales/fr.json
RENAMED
|
@@ -96,8 +96,10 @@
|
|
|
96
96
|
"visibility.boundary": "Sans le mode d'application (ci-dessous), il s'agit d'une réduction du bruit, pas d'un contrôle d'accès : une entité masquée est toujours renvoyée par une lecture directe de son entity_id et apparaît toujours dans le contenu des automatisations, tableaux de bord et modèles. Ne vous fiez pas uniquement au filtre comme barrière de sécurité.",
|
|
97
97
|
"visibility.enabled": "Activer le filtre de visibilité des entités",
|
|
98
98
|
"visibility.enforce.title": "Mode d'application",
|
|
99
|
-
"visibility.enforce.help": "Étend le filtre
|
|
100
|
-
"visibility.enforce.only_enforced": "Rendre les entités masquées illisibles
|
|
99
|
+
"visibility.enforce.help": "Étend par défaut le filtre de l'encombrement de la recherche et de la vue d'ensemble à toutes les lectures d'outils, à l'exception de ha_report_issue. La lecture directe d'une entité masquée renvoie \"introuvable\", et toute lecture de contenu qui en ferait apparaître une est refusée. L'exception pour l'outil de rapport est contrôlée ci-dessous. Il s'agit d'une dissimulation au mieux contre l'exposition accidentelle, et non d'une limite de sécurité renforcée.",
|
|
100
|
+
"visibility.enforce.only_enforced": "Rendre les entités masquées illisibles lors des lectures d'outils (sauf les rapports de problèmes par défaut)",
|
|
101
|
+
"visibility.enforce.report_issue_help": "Lorsque cette option est désactivée, ha_report_issue et l'ensemble de ses sorties de diagnostic (y compris les journaux) restent en dehors du mode d'application à chaque appel, même lorsque les données de visibilité sont saines ou indisponibles. Activez-le pour analyser et refuser cet outil comme les autres lectures.",
|
|
102
|
+
"visibility.enforce.restrict_report_issue": "Appliquer le mode d'application à ha_report_issue",
|
|
101
103
|
"visibility.categories.title": "Masquer par catégorie",
|
|
102
104
|
"visibility.categories.help": "Home Assistant étiquette les entités générées automatiquement comme diagnostic ou configuration.",
|
|
103
105
|
"visibility.categories.legend": "Catégories d'entités à masquer",
|
{ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/settings_ui/locales/it.json
RENAMED
|
@@ -96,8 +96,10 @@
|
|
|
96
96
|
"visibility.boundary": "Senza la modalità di applicazione rigorosa (qui sotto) questo riduce il rumore, non controlla l'accesso: un'entità nascosta viene comunque restituita da una lettura diretta del suo entity_id e compare ancora nei contenuti di automazioni, dashboard e template. Non considerare il filtro da solo come un confine di sicurezza.",
|
|
97
97
|
"visibility.enabled": "Attiva il filtro di visibilità delle entità",
|
|
98
98
|
"visibility.enforce.title": "Modalità di applicazione rigorosa",
|
|
99
|
-
"visibility.enforce.help": "Estende il filtro dalla
|
|
100
|
-
"visibility.enforce.only_enforced": "Rendi le entità nascoste illeggibili in
|
|
99
|
+
"visibility.enforce.help": "Estende il filtro dalla ricerca di pulizia e dalla panoramica a ogni lettura di strumenti, tranne ha_report_issue per impostazione predefinita. Una lettura diretta di un'entità nascosta restituisce \"non trovato\", e una lettura di contenuti che ne mostrerebbe una viene rifiutata. L'eccezione dello strumento di segnalazione è controllata di seguito. Copertura basata sul massimo sforzo contro l'esposizione accidentale, non un confine di sicurezza blindato.",
|
|
100
|
+
"visibility.enforce.only_enforced": "Rendi le entità nascoste illeggibili in tutte le letture degli strumenti (tranne i rapporti di problemi per impostazione predefinita)",
|
|
101
|
+
"visibility.enforce.report_issue_help": "Mentre questo è disattivato, ha_report_issue e tutta la sua emissione diagnostica, inclusi i log, rimangono al di fuori della modalità di applicazione a ogni chiamata, anche quando i dati di visibilità sono integri o non disponibili. Attivalo per scansionare e rifiutare tale strumento come le altre letture.",
|
|
102
|
+
"visibility.enforce.restrict_report_issue": "Applica la modalità di applicazione a ha_report_issue",
|
|
101
103
|
"visibility.categories.title": "Nascondi per categoria",
|
|
102
104
|
"visibility.categories.help": "Home Assistant contrassegna le entità generate automaticamente come di diagnostica o di configurazione.",
|
|
103
105
|
"visibility.categories.legend": "Categorie di entità da nascondere",
|
{ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/settings_ui/locales/nl.json
RENAMED
|
@@ -96,8 +96,10 @@
|
|
|
96
96
|
"visibility.boundary": "Zonder afdwingmodus (hieronder) is dit ruisonderdrukking, geen toegangscontrole: een verborgen entiteit wordt nog steeds geretourneerd door een directe uitlezing van zijn entity_id en verschijnt nog steeds in automatisering, dashboard en sjablooninhoud. Vertrouw niet alleen op het filter als een beveiligingsgrens.",
|
|
97
97
|
"visibility.enabled": "Schakel filter voor entiteitszichtbaarheid in",
|
|
98
98
|
"visibility.enforce.title": "Afdwingmodus",
|
|
99
|
-
"visibility.enforce.help": "Breidt het filter
|
|
100
|
-
"visibility.enforce.only_enforced": "Maak verborgen entiteiten onleesbaar
|
|
99
|
+
"visibility.enforce.help": "Breidt het filter van opschoning van zoekopdrachten en overzichten standaard uit naar elke tool-gelezen data behalve ha_report_issue. Een directe lezing van een verborgen entiteit retourneert \"niet gevonden\", en een inhoudsgelezen data die er een zou tonen, wordt geweigerd. De uitzondering voor het rapportageregelingsmiddel wordt hieronder beheerd. Dit is een inspanningsverplichting ter verberging tegen incidentele blootstelling, geen harde beveiligingsgrens.",
|
|
100
|
+
"visibility.enforce.only_enforced": "Maak verborgen entiteiten onleesbaar bij alle tool-lezingen (standaard uitgezonderd foutmeldingen)",
|
|
101
|
+
"visibility.enforce.report_issue_help": "Terwijl dit is uitgeschakeld, blijven ha_report_issue en al zijn diagnostische uitvoer — inclusief logboeken — bij elke aanroep buiten de afdwingmodus, zelfs wanneer zichtbaarheidsgegevens gezond of niet beschikbaar zijn. Schakel dit in om dat hulpprogramma te scannen en te weigeren net als andere lezingen.",
|
|
102
|
+
"visibility.enforce.restrict_report_issue": "Pas afdwingmodus toe op ha_report_issue",
|
|
101
103
|
"visibility.categories.title": "Verbergen per categorie",
|
|
102
104
|
"visibility.categories.help": "Home Assistant tagt automatisch gegenereerde entiteiten als diagnostisch of configuratie.",
|
|
103
105
|
"visibility.categories.legend": "Entiteitscategorieën om te verbergen",
|
{ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/settings_ui/locales/pl.json
RENAMED
|
@@ -96,8 +96,10 @@
|
|
|
96
96
|
"visibility.boundary": "Bez trybu wymuszenia (poniżej), jest to redukcja szumu, a nie kontrola dostępu: ukryta encja jest nadal zwracana przez bezpośredni odczyt jej entity_id i nadal pojawia się w automatyzacjach, panelach i zawartości szablonów. Nie polegaj wyłącznie na filtrze jako granicy bezpieczeństwa.",
|
|
97
97
|
"visibility.enabled": "Włącz filtr widoczności encji",
|
|
98
98
|
"visibility.enforce.title": "Tryb wymuszenia",
|
|
99
|
-
"visibility.enforce.help": "Rozszerza filtr z
|
|
100
|
-
"visibility.enforce.only_enforced": "
|
|
99
|
+
"visibility.enforce.help": "Rozszerza domyślnie filtr z ukrywania w wyszukiwaniu i przeglądzie na każdy odczyt narzędzia, z wyjątkiem ha_report_issue. Bezpośredni odczyt ukrytej encji zwraca „nie znaleziono”, a odczyt zawartości, który by ją ujawnił, jest odrzucany. Wyjątek dotyczący narzędzia raportowania jest kontrolowany poniżej. Ukrywanie w najlepszej wierze przed przypadkowym ujawnieniem, a nie twarda granica bezpieczeństwa.",
|
|
100
|
+
"visibility.enforce.only_enforced": "Uczyń ukryte encje nieczytelnymi we wszystkich odczytach narzędzi (domyślnie z wyjątkiem raportów błędów)",
|
|
101
|
+
"visibility.enforce.report_issue_help": "Gdy ta opcja jest wyłączona, ha_report_issue oraz wszystkie jego dane diagnostyczne — w tym logi — pozostają poza trybem egzekwowania przy każdym wywołaniu, nawet gdy dane widoczności są poprawne lub niedostępne. Włącz tę opcję, aby skanować i odrzucać to narzędzie podobnie jak inne odczyty.",
|
|
102
|
+
"visibility.enforce.restrict_report_issue": "Zastosuj tryb egzekwowania do ha_report_issue",
|
|
101
103
|
"visibility.categories.title": "Ukryj według kategorii",
|
|
102
104
|
"visibility.categories.help": "Home Assistant oznacza automatycznie generowane encje jako diagnostyczne lub konfiguracyjne.",
|
|
103
105
|
"visibility.categories.legend": "Kategorie encji do ukrycia",
|
{ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/settings_ui/locales/ru.json
RENAMED
|
@@ -96,8 +96,10 @@
|
|
|
96
96
|
"visibility.boundary": "Без режима принудительного скрытия (ниже) это уменьшение информационного шума, а не ограничение доступа: скрытая сущность всё ещё возвращается при прямом запросе по entity_id и остаётся видимой в автоматизациях, панелях и шаблонах. Не полагайтесь на один лишь фильтр как на средство безопасности.",
|
|
97
97
|
"visibility.enabled": "Включить фильтр видимости сущностей",
|
|
98
98
|
"visibility.enforce.title": "Режим принудительного скрытия",
|
|
99
|
-
"visibility.enforce.help": "Расширяет
|
|
100
|
-
"visibility.enforce.only_enforced": "Сделать скрытые сущности
|
|
99
|
+
"visibility.enforce.help": "Расширяет фильтр из поиска, загромождающего интерфейс, и обзора на чтение каждого инструмента, кроме ha_report_issue, по умолчанию. Прямое чтение скрытой сущности возвращает «не найдено», а чтение содержимого, которое должно её показать, отклоняется. Исключение для инструмента отчетов управляется ниже. Это скрытие на основе лучших усилий от случайного раскрытия, а не защищенный рубеж безопасности.",
|
|
100
|
+
"visibility.enforce.only_enforced": "Сделать скрытые сущности недоступными для чтения во всех инструментах (кроме отчетов о проблемах по умолчанию)",
|
|
101
|
+
"visibility.enforce.report_issue_help": "Пока эта функция отключена, ha_report_issue и весь ее диагностический вывод, включая логи, не участвуют в режиме принудительного применения при каждом вызове, даже когда данные о видимости в норме или недоступны. Включите ее, чтобы сканировать и отклонять этот инструмент так же, как и другие запросы на чтение.",
|
|
102
|
+
"visibility.enforce.restrict_report_issue": "Применить режим принудительного применения к ha_report_issue",
|
|
101
103
|
"visibility.categories.title": "Скрывать по категории",
|
|
102
104
|
"visibility.categories.help": "Home Assistant помечает автоматически созданные сущности как диагностические или конфигурационные.",
|
|
103
105
|
"visibility.categories.legend": "Категории скрываемых сущностей",
|
{ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/settings_ui/locales/sv.json
RENAMED
|
@@ -96,8 +96,10 @@
|
|
|
96
96
|
"visibility.boundary": "Utan tvingande läge (nedan) är detta brusreducering, inte åtkomstkontroll: en dold entitet returneras fortfarande vid en direkt läsning av dess entity_id och visas fortfarande i innehåll för automatisering, instrumentpaneler och mallar. Förlita dig inte enbart på filtret som en säkerhetsgräns.",
|
|
97
97
|
"visibility.enabled": "Aktivera entitets synlighetsfilter",
|
|
98
98
|
"visibility.enforce.title": "Tvingande läge",
|
|
99
|
-
"visibility.enforce.help": "Utökar filtret från att rensa
|
|
100
|
-
"visibility.enforce.only_enforced": "Gör dolda entiteter oläsbara
|
|
99
|
+
"visibility.enforce.help": "Utökar filtret från att rensa sökningar och översikter till att som standard gälla alla verktygsläsningar förutom ha_report_issue. En direkt läsning av en dold entitet returnerar \"ej hittad\", och en innehållsläsning som skulle visa en sådan nekas. Undantaget för rapportverktyget styrs nedan. Bästa möjliga döljande mot oavsiktlig exponering, inte en härdad säkerhetsgräns.",
|
|
100
|
+
"visibility.enforce.only_enforced": "Gör dolda entiteter oläsbara vid alla verktygsläsandet (förutom felrapporter som standard)",
|
|
101
|
+
"visibility.enforce.report_issue_help": "Medan detta är avstängt förblir ha_report_issue och all dess diagnostiska utdata – inklusive loggar – utanför tvingande läge vid varje anrop, även när synlighetsdata är felfri eller otillgänglig. Slå på det för att skanna och neka det verktyget liksom andra läsningar.",
|
|
102
|
+
"visibility.enforce.restrict_report_issue": "Tillämpa tvingande läge på ha_report_issue",
|
|
101
103
|
"visibility.categories.title": "Dölj efter kategori",
|
|
102
104
|
"visibility.categories.help": "Home Assistant taggar automatiskt genererade entiteter som diagnostik eller konfiguration.",
|
|
103
105
|
"visibility.categories.legend": "Entitetskategorier att dölja",
|
{ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/settings_ui/locales/zh-Hans.json
RENAMED
|
@@ -96,8 +96,10 @@
|
|
|
96
96
|
"visibility.boundary": "在未启用下方的强制模式时,这只是降噪,而非访问控制:被隐藏的实体仍会在直接读取其 entity_id 时返回,并仍会出现在自动化、仪表盘和模板内容中。请勿仅依赖此过滤器作为安全边界。",
|
|
97
97
|
"visibility.enabled": "启用实体可见性过滤器",
|
|
98
98
|
"visibility.enforce.title": "强制模式",
|
|
99
|
-
"visibility.enforce.help": "
|
|
100
|
-
"visibility.enforce.only_enforced": "
|
|
99
|
+
"visibility.enforce.help": "默认将过滤范围从精简搜索和概览扩展到除 ha_report_issue 之外的所有工具读取。直接读取隐藏实体会返回“未找到”,而会暴露隐藏实体的正文读取则会被拒绝。报告工具的例外情况在下方控制。这是针对偶然暴露的尽力隐蔽,而非强固的安全边界。",
|
|
100
|
+
"visibility.enforce.only_enforced": "使隐藏实体在所有工具读取中均不可读(默认故障排除报告除外)",
|
|
101
|
+
"visibility.enforce.report_issue_help": "当此选项关闭时,ha_report_issue 及其所有诊断输出(包括日志)在每次调用时都不受强制模式约束,即使可见性数据正常或不可用。开启此选项以像其他读取一样扫描并拒绝该工具。",
|
|
102
|
+
"visibility.enforce.restrict_report_issue": "将强制模式应用于 ha_report_issue",
|
|
101
103
|
"visibility.categories.title": "按类别隐藏",
|
|
102
104
|
"visibility.categories.help": "Home Assistant 会将自动生成的实体标记为诊断或配置。",
|
|
103
105
|
"visibility.categories.legend": "要隐藏的实体类别",
|
|
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.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/_vendor/websockets/MANIFEST.sha256
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/_vendor/websockets/VENDORED
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/_vendor/websockets/__init__.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/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.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/_vendor/websockets/client.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/_vendor/websockets/connection.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/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.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/_vendor/websockets/frames.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/_vendor/websockets/headers.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/_vendor/websockets/http11.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/_vendor/websockets/imports.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/_vendor/websockets/legacy/auth.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/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.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/_vendor/websockets/legacy/http.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/_vendor/websockets/legacy/server.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/_vendor/websockets/protocol.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/_vendor/websockets/proxy.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/_vendor/websockets/py.typed
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/_vendor/websockets/server.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/_vendor/websockets/streams.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/_vendor/websockets/sync/__init__.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/_vendor/websockets/sync/client.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/_vendor/websockets/sync/messages.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/_vendor/websockets/sync/router.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/_vendor/websockets/sync/server.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/_vendor/websockets/sync/utils.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/_vendor/websockets/trio/__init__.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/_vendor/websockets/trio/client.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/_vendor/websockets/trio/messages.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/_vendor/websockets/trio/router.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/_vendor/websockets/trio/server.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/_vendor/websockets/trio/utils.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/_vendor/websockets/typing.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/_vendor/websockets/utils.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/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.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/client/supervisor_client.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/client/websocket_listener.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/dashboard_screenshot/__init__.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/dashboard_screenshot/capture.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/dashboard_screenshot/content.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/dashboard_screenshot/paths.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/dashboard_screenshot/provision.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/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
|
{ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/resources/skills-vendor/AGENTS.md
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/resources/skills-vendor/CLAUDE.md
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/resources/skills-vendor/LICENSE
RENAMED
|
File without changes
|
{ha_mcp_dev-8.2.0.dev2367 → ha_mcp_dev-8.3.0.dev2372}/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.dev2367 → ha_mcp_dev-8.3.0.dev2372}/src/ha_mcp/settings_ui/_handlers_advanced.py
RENAMED
|
File without changes
|