ha-mcp-dev 9.1.0.dev3344__tar.gz → 9.1.0.dev3348__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-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/PKG-INFO +1 -1
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/pyproject.toml +1 -1
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/pyproject.toml.orig +1 -1
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/SKILL.md +7 -7
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/backups.md +4 -4
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/dashboard-guide.md +17 -10
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/device-control.md +14 -3
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/safe-refactoring.md +1 -1
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/LICENSE +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/README.md +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/__init__.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/__main__.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_pypi_marker +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_rich_compat.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/__init__.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/LICENSE +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/MANIFEST.sha256 +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/REQUIRES.txt +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/VENDORED +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/__init__.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/_compat.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/_install_hints.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/_warnings.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/apps/__init__.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/apps/app.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/apps/approval.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/apps/choice.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/apps/config.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/apps/file_upload.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/apps/form.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/apps/generative.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/cli/__init__.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/cli/__main__.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/cli/apps_dev.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/cli/apps_dev_security.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/cli/auth.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/cli/cimd.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/cli/cli.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/cli/client.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/cli/deploy/__init__.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/cli/deploy/authentication.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/cli/deploy/command.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/cli/deploy/configuration.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/cli/deploy/credentials.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/cli/deploy/horizon_client.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/cli/deploy/output.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/cli/deploy/state.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/cli/discovery.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/cli/generate.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/cli/install/__init__.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/cli/install/claude_code.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/cli/install/claude_desktop.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/cli/install/cursor.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/cli/install/gemini_cli.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/cli/install/goose.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/cli/install/mcp_json.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/cli/install/shared.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/cli/install/stdio.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/cli/run.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/client/__init__.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/client/_sdk_context_shim.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/client/auth/__init__.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/client/auth/bearer.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/client/auth/client_credentials.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/client/auth/oauth.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/client/caching.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/client/client.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/client/dependencies.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/client/elicitation.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/client/extension_hooks.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/client/group.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/client/logging.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/client/messages.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/client/mixins/__init__.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/client/mixins/prompts.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/client/mixins/resources.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/client/mixins/skills.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/client/mixins/tools.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/client/oauth_callback.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/client/progress.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/client/roots.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/client/sampling/__init__.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/client/sampling/handlers/__init__.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/client/sampling/handlers/anthropic.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/client/sampling/handlers/google_genai.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/client/sampling/handlers/openai.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/client/telemetry.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/client/transports/__init__.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/client/transports/base.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/client/transports/config.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/client/transports/http.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/client/transports/inference.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/client/transports/memory.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/client/transports/sse.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/client/transports/stdio.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/contrib/README.md +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/contrib/bulk_tool_caller/README.md +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/contrib/bulk_tool_caller/__init__.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/contrib/bulk_tool_caller/bulk_tool_caller.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/contrib/bulk_tool_caller/example.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/contrib/component_manager/README.md +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/contrib/component_manager/__init__.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/contrib/component_manager/component_manager.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/contrib/component_manager/example.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/contrib/mcp_mixin/README.md +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/contrib/mcp_mixin/__init__.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/contrib/mcp_mixin/example.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/contrib/mcp_mixin/mcp_mixin.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/decorators.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/dependencies.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/exceptions.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/experimental/__init__.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/experimental/transforms/__init__.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/experimental/transforms/code_mode.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/experimental/transforms/jev_search.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/mcp_config.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/prompts/__init__.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/prompts/base.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/prompts/function_prompt.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/py.typed +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/resources/__init__.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/resources/base.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/resources/function_resource.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/resources/security.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/resources/template.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/resources/types.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/server/__init__.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/server/auth/__init__.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/server/auth/auth.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/server/auth/cimd.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/server/auth/handlers/__init__.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/server/auth/handlers/authorize.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/server/auth/identity_assertion.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/server/auth/jwt_issuer.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/server/auth/middleware.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/server/auth/oauth_proxy/__init__.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/server/auth/oauth_proxy/consent.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/server/auth/oauth_proxy/models.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/server/auth/oauth_proxy/proxy.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/server/auth/oauth_proxy/ui.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/server/auth/oauth_proxy/upstream.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/server/auth/oidc_proxy.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/__init__.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/auth0.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/aws.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/azure.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/clerk.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/debug.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/descope.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/discord.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/github.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/google.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/huggingface.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/in_memory.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/introspection.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/jwt.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/keycloak.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/oci.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/propelauth.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/scalekit.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/supabase.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/workos.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/server/auth/redirect_validation.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/server/auth/ssrf.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/server/caching.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/server/completions.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/server/context.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/server/dependencies.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/server/elicitation.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/server/event_store.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/server/extensions.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/server/http.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/server/lifespan.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/server/low_level.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/server/middleware/__init__.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/server/middleware/authorization.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/server/middleware/caching.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/server/middleware/dereference.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/server/middleware/error_handling.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/server/middleware/logging.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/server/middleware/middleware.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/server/middleware/ping.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/server/middleware/rate_limiting.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/server/middleware/response_limiting.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/server/middleware/timing.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/server/middleware/tool_injection.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/server/mixins/__init__.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/server/mixins/extensions.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/server/mixins/lifespan.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/server/mixins/mcp_operations.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/server/mixins/transport.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/server/providers/__init__.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/server/providers/addressing.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/server/providers/aggregate.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/server/providers/base.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/server/providers/fastmcp_provider.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/server/providers/filesystem.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/server/providers/filesystem_discovery.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/server/providers/local_provider/__init__.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/server/providers/local_provider/decorators/__init__.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/server/providers/local_provider/decorators/prompts.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/server/providers/local_provider/decorators/resources.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/server/providers/local_provider/decorators/tools.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/server/providers/local_provider/local_provider.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/server/providers/openapi/README.md +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/server/providers/openapi/__init__.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/server/providers/openapi/components.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/server/providers/openapi/provider.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/server/providers/openapi/routing.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/server/providers/prefab_payload.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/server/providers/prefab_synthesis.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/server/providers/proxy.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/server/providers/skills/__init__.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/server/providers/skills/_common.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/server/providers/skills/claude_provider.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/server/providers/skills/directory_provider.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/server/providers/skills/skill_provider.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/server/providers/skills/vendor_providers.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/server/providers/wrapped_provider.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/server/server.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/server/session_scoped_event_store.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/server/sessions.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/server/telemetry.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/server/transforms/__init__.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/server/transforms/catalog.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/server/transforms/namespace.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/server/transforms/prompts_as_tools.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/server/transforms/resources_as_tools.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/server/transforms/search/__init__.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/server/transforms/search/base.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/server/transforms/search/bm25.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/server/transforms/search/regex.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/server/transforms/tool_transform.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/server/transforms/version_filter.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/server/transforms/visibility.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/settings.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/skills/__init__.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/skills/_constants.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/skills/_resources.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/skills/_snapshot.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/skills/_source.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/skills/client.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/skills/extension.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/skills/models.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/telemetry.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/tools/__init__.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/tools/base.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/tools/function_parsing.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/tools/function_tool.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/tools/tool_transform.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/types.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/utilities/__init__.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/utilities/asgi_transport.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/utilities/async_utils.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/utilities/auth.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/utilities/authorization.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/utilities/cli.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/utilities/components.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/utilities/docstring_parsing.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/utilities/exceptions.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/utilities/http.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/utilities/inspect.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/utilities/json_schema.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/utilities/json_schema_type.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/utilities/lifespan.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/utilities/logging.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/utilities/mcp_server_config/__init__.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/utilities/mcp_server_config/v1/__init__.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/utilities/mcp_server_config/v1/environments/__init__.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/utilities/mcp_server_config/v1/environments/base.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/utilities/mcp_server_config/v1/environments/uv.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/utilities/mcp_server_config/v1/mcp_server_config.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/utilities/mcp_server_config/v1/schema.json +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/utilities/mcp_server_config/v1/sources/__init__.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/utilities/mcp_server_config/v1/sources/base.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/utilities/mcp_server_config/v1/sources/filesystem.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/utilities/mime.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/utilities/openapi/README.md +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/utilities/openapi/__init__.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/utilities/openapi/director.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/utilities/openapi/formatters.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/utilities/openapi/json_schema_converter.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/utilities/openapi/models.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/utilities/openapi/parser.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/utilities/openapi/schemas.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/utilities/pagination.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/utilities/prefab.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/utilities/skills.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/utilities/tasks.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/utilities/tests.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/utilities/timeout.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/utilities/token_cache.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/utilities/types.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/utilities/ui.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/utilities/version_check.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/utilities/versions.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/LICENSE +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/MANIFEST.sha256 +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/REQUIRES.txt +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/VENDORED +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/__init__.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/cli/__init__.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/cli/claude.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/cli/cli.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/client/__init__.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/client/__main__.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/client/_input_required.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/client/_memory.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/client/_probe.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/client/_transport.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/client/auth/__init__.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/client/auth/exceptions.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/client/auth/extensions/__init__.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/client/auth/extensions/client_credentials.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/client/auth/extensions/identity_assertion.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/client/auth/oauth2.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/client/auth/utils.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/client/caching.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/client/client.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/client/context.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/client/extension.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/client/session.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/client/session_group.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/client/sse.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/client/stdio.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/client/streamable_http.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/client/subscriptions.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/os/__init__.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/os/posix/__init__.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/os/posix/utilities.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/os/win32/__init__.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/os/win32/utilities.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/py.typed +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/server/__init__.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/server/__main__.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/server/_otel.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/server/_streamable_http_modern.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/server/apps.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/server/auth/__init__.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/server/auth/errors.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/server/auth/handlers/__init__.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/server/auth/handlers/authorize.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/server/auth/handlers/metadata.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/server/auth/handlers/register.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/server/auth/handlers/revoke.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/server/auth/handlers/token.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/server/auth/json_response.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/server/auth/middleware/__init__.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/server/auth/middleware/auth_context.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/server/auth/middleware/bearer_auth.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/server/auth/middleware/client_auth.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/server/auth/provider.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/server/auth/routes.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/server/auth/settings.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/server/caching.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/server/connection.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/server/context.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/server/elicitation.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/server/extension.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/server/fastmcp.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/server/lowlevel/__init__.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/server/lowlevel/helper_types.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/server/lowlevel/server.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/server/mcpserver/__init__.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/server/mcpserver/context.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/server/mcpserver/exceptions.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/server/mcpserver/prompts/__init__.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/server/mcpserver/prompts/base.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/server/mcpserver/prompts/manager.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/server/mcpserver/resolve.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/server/mcpserver/resources/__init__.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/server/mcpserver/resources/base.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/server/mcpserver/resources/resource_manager.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/server/mcpserver/resources/templates.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/server/mcpserver/resources/types.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/server/mcpserver/server.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/server/mcpserver/tools/__init__.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/server/mcpserver/tools/base.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/server/mcpserver/tools/tool_manager.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/server/mcpserver/utilities/__init__.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/server/mcpserver/utilities/context_injection.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/server/mcpserver/utilities/func_metadata.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/server/mcpserver/utilities/logging.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/server/mcpserver/utilities/types.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/server/models.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/server/request_state.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/server/runner.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/server/session.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/server/sse.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/server/stdio.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/server/streamable_http.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/server/streamable_http_manager.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/server/subscriptions.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/server/transport_security.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/server/validation.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/shared/__init__.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/shared/_callable_inspection.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/shared/_compat.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/shared/_context_streams.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/shared/_httpx_utils.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/shared/_otel.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/shared/_request_clock.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/shared/_stream_protocols.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/shared/auth.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/shared/auth_utils.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/shared/context.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/shared/direct_dispatcher.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/shared/dispatcher.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/shared/exceptions.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/shared/extension.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/shared/inbound.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/shared/jsonrpc_dispatcher.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/shared/memory.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/shared/message.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/shared/metadata_utils.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/shared/path_security.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/shared/peer.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/shared/subscriptions.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/shared/tool_name_validation.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/shared/transport_context.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/shared/uri_template.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/types/__init__.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/types/jsonrpc.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/types/methods.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp/types/version.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp_types/LICENSE +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp_types/MANIFEST.sha256 +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp_types/REQUIRES.txt +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp_types/VENDORED +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp_types/__init__.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp_types/_types.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp_types/_v2025_11_25/__init__.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp_types/_v2026_07_28/__init__.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp_types/_wire_base.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp_types/jsonrpc.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp_types/methods.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp_types/py.typed +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/mcp_types/version.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/requirements.txt +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/websockets/LICENSE +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/websockets/MANIFEST.sha256 +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/websockets/VENDORED +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/websockets/__init__.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/websockets/__main__.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/websockets/asyncio/__init__.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/websockets/asyncio/client.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/websockets/asyncio/connection.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/websockets/asyncio/messages.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/websockets/asyncio/router.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/websockets/asyncio/server.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/websockets/auth.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/websockets/cli.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/websockets/client.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/websockets/connection.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/websockets/datastructures.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/websockets/exceptions.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/websockets/extensions/__init__.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/websockets/extensions/base.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/websockets/extensions/permessage_deflate.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/websockets/frames.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/websockets/headers.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/websockets/http11.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/websockets/imports.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/websockets/legacy/__init__.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/websockets/legacy/auth.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/websockets/legacy/client.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/websockets/legacy/exceptions.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/websockets/legacy/framing.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/websockets/legacy/handshake.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/websockets/legacy/http.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/websockets/legacy/protocol.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/websockets/legacy/server.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/websockets/protocol.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/websockets/proxy.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/websockets/py.typed +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/websockets/server.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/websockets/streams.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/websockets/sync/__init__.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/websockets/sync/client.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/websockets/sync/connection.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/websockets/sync/messages.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/websockets/sync/router.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/websockets/sync/server.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/websockets/sync/utils.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/websockets/trio/__init__.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/websockets/trio/client.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/websockets/trio/connection.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/websockets/trio/messages.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/websockets/trio/router.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/websockets/trio/server.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/websockets/trio/utils.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/websockets/typing.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/websockets/uri.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/websockets/utils.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/websockets/version.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_version.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/app_discovery.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/auth/__init__.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/auth/consent_form.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/auth/iss_stamp.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/auth/oidc_compat.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/auth/provider.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/backup_dashboards.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/backup_diff.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/backup_entities.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/backup_entity_ids.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/backup_helper_target.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/backup_integrations.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/backup_manager.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/backup_tags.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/backup_todo.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/backup_zones.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/browser_landing.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/client/__init__.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/client/admin_routes.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/client/error_log_journald.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/client/event_listeners.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/client/models.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/client/rest_client.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/client/supervisor_client.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/client/websocket_client.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/client/websocket_listener.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/config.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/config_backup.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/config_meta.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/config_overrides.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/config_registry.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/config_settings.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/dashboard_screenshot/__init__.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/dashboard_screenshot/capture.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/dashboard_screenshot/content.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/dashboard_screenshot/engine_compat.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/dashboard_screenshot/paths.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/dashboard_screenshot/provision.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/dashboard_screenshot/theme_check.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/dashboard_screenshot/theme_guard.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/errors.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/ha_request_queue.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/hacs_auto_refresh.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/http_transport.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/image_info.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/ipv6_lan_guard.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/listen_sockets.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/llm_exposure.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/log_filters.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/mcp_client_context.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/policy/__init__.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/policy/approval_queue.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/policy/decision_pin.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/policy/decisions.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/policy/editing.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/policy/evaluator.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/policy/events.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/policy/handlers.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/policy/middleware.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/policy/model.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/policy/mrtr.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/policy/persistence.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/policy/server_channels.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/policy/value_sources.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/py.typed +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/read_only.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/redaction.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/renamed_tools.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/resources/skills-vendor/LICENSE +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/appdaemon.md +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/automation-actions.md +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/blueprint-guide.md +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/dashboard-cards.md +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/domain-docs.md +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/examples.yaml +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/helper-selection.md +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/scenes.md +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/template-guidelines.md +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/triggers-and-conditions.md +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/yaml-only-integrations.md +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/server.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/server_instructions.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/server_lifespan.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/server_tool_text.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/settings_ui/__init__.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/settings_ui/_handlers_advanced.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/settings_ui/_handlers_backups.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/settings_ui/_handlers_fs.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/settings_ui/_handlers_oauth_callbacks.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/settings_ui/_handlers_server.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/settings_ui/_handlers_theme.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/settings_ui/_handlers_tools.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/settings_ui/_i18n.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/settings_ui/_locale_policy.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/settings_ui/_persistence.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/settings_ui/_supervisor.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/settings_ui/_theme.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/settings_ui/_tools_meta.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/settings_ui/locales/README.md +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/settings_ui/locales/az.json +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/settings_ui/locales/cs.json +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/settings_ui/locales/de.json +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/settings_ui/locales/en.json +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/settings_ui/locales/eo.json +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/settings_ui/locales/es.json +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/settings_ui/locales/fr.json +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/settings_ui/locales/hu.json +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/settings_ui/locales/it.json +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/settings_ui/locales/ko.json +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/settings_ui/locales/nl.json +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/settings_ui/locales/pl.json +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/settings_ui/locales/ru.json +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/settings_ui/locales/sv.json +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/settings_ui/locales/tlh.json +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/settings_ui/locales/zh-Hans.json +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/settings_ui/locales/zh-Hant.json +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/settings_ui/settings.css +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/settings_ui/settings.html +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/settings_ui/settings_js/01_i18n_state.js +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/settings_ui/settings_js/02_tools_restart.js +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/settings_ui/settings_js/03_render_save.js +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/settings_ui/settings_js/04_backups.js +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/settings_ui/settings_js/05_feature_flags.js +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/settings_ui/settings_js/06_policy_cards.js +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/settings_ui/settings_js/07_policy_actions.js +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/settings_ui/settings_js/08_advanced.js +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/settings_ui/settings_js/09_prefs_visibility.js +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/settings_ui/settings_js/10_oauth_callbacks.js +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/smoke_test.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/stdio_settings_sidecar.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/storage_helper_types.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/strict_bps.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tool_dispatch.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/__init__.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/addon_connection_hints.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/area_messages.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/auto_backup.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/automation_errors.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/backup.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/backup_access.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/backup_on_demand.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/backup_snapshot.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/backup_snapshot_restore.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/best_practice_checker.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/best_practice_result.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/best_practice_variables.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/blueprint_sources.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/blueprint_substitute.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/blueprint_write.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/bug_report_config.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/bug_report_redaction.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/bug_report_sources.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/bug_report_templates.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/bulk_selector.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/coercion.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/component_api.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/component_automation.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/component_config_entries.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/component_config_reads.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/component_dashboard_edit.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/component_devices.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/component_helper_collections.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/component_registries.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/component_registry_lookup.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/component_todo.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/config_entry_backup.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/config_entry_flow.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/config_entry_flow_form.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/config_entry_flow_introspect.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/config_entry_flow_menu.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/config_entry_flow_walker.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/config_entry_identity.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/config_entry_reconfigure.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/config_entry_reload_watch.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/config_file_visibility.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/config_helpers/__init__.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/config_helpers/core_payload.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/config_helpers/create.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/config_helpers/describe.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/config_helpers/flow.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/config_helpers/icon_route.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/config_helpers/listing.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/config_helpers/registry.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/config_helpers/schemas.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/config_helpers/typed_config.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/config_helpers/update.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/config_helpers/validation.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/config_subentry_restore.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/config_write_errors.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/config_write_helpers.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/core_contract.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/dashboard_card_describe.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/dashboard_edit_errors.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/dashboard_list_checks.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/dashboard_read_errors.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/dev_backup.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/device_control.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/device_enrichment.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/diagnostics_helpers.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/energy_preferences.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/entity_expose_batch.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/entity_param_parsing.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/entity_registration.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/entity_removal.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/entity_update_fields.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/error_log_parsing.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/event_call.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/event_listener_fields.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/flow_helper_lookup.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/hacs_backend.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/hacs_registration.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/helper_flows.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/helpers.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/history_response.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/integration_entry_state.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/integration_reconfigure.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/log_common.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/log_sources.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/log_sources_fault.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/log_sources_logbook.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/log_sources_supervisor.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/radio/__init__.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/radio/base.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/radio/matter.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/radio/thread.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/radio/zigbee.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/radio/zwave.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/radio/zwave_parameters.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/recorder_errors.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/reference_validator.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/registry.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/renamed_tool_middleware.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/resource_codec.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/resource_patch.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/response_helpers.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/scene_discovery.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/search/__init__.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/search/base.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/search/component.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/search/entities.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/search/legacy.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/search/modes.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/search/overview.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/search/response.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/search/state.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/server_version.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/smart_search/__init__.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/smart_search/_base.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/smart_search/_config.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/smart_search/_deep.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/smart_search/_entities.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/smart_search/_fetch.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/smart_search/_graph.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/smart_search/_overview.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/smart_search/_scenes.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/smart_search/_scoring.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/statistics_calendar.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/statistics_helpers.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/statistics_resets.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/system_restart.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/tool_hints.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/tool_search_hint_middleware.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/tools_addons.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/tools_areas.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/tools_assist_pipeline.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/tools_blueprints.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/tools_bug_report.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/tools_calendar.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/tools_camera.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/tools_categories.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/tools_code.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/tools_config_automations.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/tools_config_dashboards.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/tools_config_helpers.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/tools_config_scenes.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/tools_config_scripts.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/tools_dashboard_screenshot.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/tools_dev.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/tools_energy.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/tools_entities.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/tools_filesystem.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/tools_groups.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/tools_hacs.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/tools_history.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/tools_integrations.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/tools_labels.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/tools_logs.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/tools_radio.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/tools_registry.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/tools_resources.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/tools_search.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/tools_security_policy.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/tools_service.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/tools_services.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/tools_system.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/tools_themes.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/tools_todo.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/tools_traces.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/tools_updates.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/tools_utility.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/tools_voice_assistant.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/tools_yaml_config.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/tools_yaml_read.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/tools_zones.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/update_categories.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/util_helpers.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/validation_middleware.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/tools/ws_waiters.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/transforms/__init__.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/transforms/categorized_search.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/transforms/compact_params.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/transforms/component_helpers.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/transforms/component_search.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/transforms/lite_docstrings.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/transforms/write_tool_note.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/transport_security.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/update_check.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/utils/__init__.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/utils/config_hash.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/utils/config_write_lock.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/utils/dashboard_patch.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/utils/data_paths.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/utils/device_registry_semantics.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/utils/domain_handlers.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/utils/entity_membership.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/utils/fuzzy_search.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/utils/kill_signal_diagnostics.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/utils/mcp_client_host.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/utils/operation_manager.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/utils/python_sandbox.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/utils/registry_update_lock.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/utils/skill_loader.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/utils/usage_logger.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/visibility/__init__.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/visibility/config_files.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/visibility/enforcement.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/visibility/identifier_aliases.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/visibility/model.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/visibility/persistence.py +0 -0
- {ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/visibility/resolver.py +0 -0
|
@@ -4,7 +4,7 @@ build-backend = "uv_build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "ha-mcp-dev"
|
|
7
|
-
version = "9.1.0.
|
|
7
|
+
version = "9.1.0.dev3348"
|
|
8
8
|
description = "Home Assistant MCP Server - Complete control of Home Assistant through MCP"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.13,<3.15"
|
|
@@ -4,7 +4,7 @@ build-backend = "uv_build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "ha-mcp-dev"
|
|
7
|
-
version = "9.1.0.
|
|
7
|
+
version = "9.1.0.dev3348"
|
|
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
|
|
@@ -23,7 +23,7 @@ description: >
|
|
|
23
23
|
- Existing state changed with no recovery path
|
|
24
24
|
- Jinja copy-pasted between templates
|
|
25
25
|
metadata:
|
|
26
|
-
version: "
|
|
26
|
+
version: "56"
|
|
27
27
|
---
|
|
28
28
|
|
|
29
29
|
# Home Assistant Best Practices
|
|
@@ -95,7 +95,7 @@ Default `single` mode is often wrong. See [automation-actions #automation-modes]
|
|
|
95
95
|
|
|
96
96
|
### 5. For buttons and remotes
|
|
97
97
|
- **Any integration exposing an `event.*` entity:** Use `event.received` targeting that entity (see the anti-pattern row below)
|
|
98
|
-
- **ZHA:**
|
|
98
|
+
- **ZHA:** `event.received` if the device has an `event.*` entity (2026.10+; none do in 2026.10), otherwise an `event` trigger with `device_ieee` (persistent)
|
|
99
99
|
- **Z2M:** Event entities are experimental and off by default — use a `device` trigger (autodiscovered) or `mqtt` trigger
|
|
100
100
|
|
|
101
101
|
Read [device-control #buttonremote-patterns](references/device-control.md#buttonremote-patterns) before writing the trigger.
|
|
@@ -117,7 +117,7 @@ Read [device-control #buttonremote-patterns](references/device-control.md#button
|
|
|
117
117
|
| Template binary sensor with threshold | `threshold` helper | Built-in hysteresis support | [helper-selection #threshold](references/helper-selection.md#threshold) |
|
|
118
118
|
| Renaming entity IDs without impact analysis | Follow [safe-refactoring](references/safe-refactoring.md) workflow | Renames break dashboards, scripts, scenes, Config-Entry data, and storage dashboards silently | [safe-refactoring #entity-renames](references/safe-refactoring.md#entity-renames) |
|
|
119
119
|
| Renaming members of Config-Entry-based groups (UI groups) without updating membership | Update group membership via Options Flow after the registry rename | The entity registry rename does not update `options.entities` in the Config Entry — group silently breaks | [safe-refactoring #config-entry-groups](references/safe-refactoring.md#config-entry-groups) |
|
|
120
|
-
| Renaming entities used by Min/Max helpers or custom Config-Entry integrations (e.g. Better Thermostat) without checking their Config-Entry data | Scan the config entries' `data`+`options`; re-select the renamed entity in the Min/Max Options Flow. An integration that keeps it in `data` (Better Thermostat) has no API fix: tell the user
|
|
120
|
+
| Renaming entities used by Min/Max helpers or custom Config-Entry integrations (e.g. Better Thermostat) without checking their Config-Entry data | Scan the config entries' `data`+`options`; re-select the renamed entity in the Min/Max Options Flow. An integration that keeps it in `data` (Better Thermostat) has no API fix: tell the user, offer a full backup, and before the rename wait for their answer on the backup and their go-ahead for the rename | They store entity_ids in the Config Entry, and a registry rename does not update them; single-source helpers such as Threshold (since 2025.6) and Generic Thermostat update themselves | [safe-refactoring #config-entry-data--blind-spots-for-entity-registry-renames](references/safe-refactoring.md#config-entry-data--blind-spots-for-entity-registry-renames) |
|
|
121
121
|
| `template:` sensor/binary sensor in YAML | Template Helper via the config flow | A flow helper reloads in place and stays UI-editable; a `template:` entry needs a config reload and does not. Exceptions are real — trigger-based templates and `attributes:` have no flow field | [helper-selection #template-helpers](references/helper-selection.md#template-helpers) |
|
|
122
122
|
| Editing `.storage/` files or other HA internal state directly | Use the HA REST/WebSocket API to manage state and config entries | `.storage/` files are HA's internal state database; direct edits bypass validation, risk corruption, and can be silently overwritten by HA | — |
|
|
123
123
|
| Looking for automation config in `.storage/` | Read and write automations through the HA config API. UI-created ones are saved to `automations.yaml` | No `.storage/` file holds automation config, in any config mode. `.storage/` holds only the automations' entity registry entries | — |
|
|
@@ -133,8 +133,8 @@ Read [device-control #buttonremote-patterns](references/device-control.md#button
|
|
|
133
133
|
| Old purpose-specific keys (`battery.low`, `vacuum.docked`, `timer.time_remaining`, ...) or trigger `behavior: any`/`last` | Renamed 2026.7 keys (`battery.became_low`, ...) and `behavior: each`/`all` (renamed 2026.6) | Old keys no longer load; old behavior values raise a repair issue and face removal | [triggers-and-conditions #purpose-specific-triggers--conditions-default-since-20267](references/triggers-and-conditions.md#purpose-specific-triggers--conditions-default-since-20267) |
|
|
134
134
|
| AppDaemon: callbacks in `__init__`, uncancelled `run_in` timers, state in instance variables, hardcoded entity IDs | Register in `initialize()`, cancel before rescheduling, persist via `input_*` helpers, pass IDs through `self.args` | Each fails silently, resets on reload, or blocks reuse | [appdaemon #appdaemon-specific-anti-patterns](references/appdaemon.md#appdaemon-specific-anti-patterns) |
|
|
135
135
|
| Blueprints: hardcoded entities, free text where a selector belongs, `!input` inside a template, missing `source_url` | Typed `!input` selectors; bind an input to `variables:` before templating it; always set `source_url` | Hardcoding defeats reuse, text lets typos through, and `!input` is a YAML tag rather than a template value | [blueprint-guide #common-pitfalls](references/blueprint-guide.md#common-pitfalls) |
|
|
136
|
-
| Backups: full restore to undo one object edit, no backup before an irreversible operation (registry deletion, integration removal, Core/OS upgrade), calling an action "reversible" without naming its inverse | Roll the single object back;
|
|
137
|
-
| Restoring a backup, deleting a backup, or upgrading Core or the OS without explicit user confirmation | Ask, name the concrete effect, and wait for an answer — every time, backup or not | A full restore discards everything since the archive for all restored parts and restarts HA; a Supervisor partial restore overwrites only the selected archive parts; deletion destroys a recovery point; a Core/OS upgrade is high-impact and
|
|
136
|
+
| Backups: full restore to undo one object edit, no backup offered before an irreversible operation (registry deletion, integration removal, Core/OS upgrade), calling an action "reversible" without naming its inverse | Roll the single object back; offer the user a backup *before* and wait for their answer; name the exact inverse or treat it as irreversible | A full restore reverts every unrelated change since and restarts HA; a backup taken afterward captures the damage | [backups #when-a-full-backup-earns-its-cost](references/backups.md#when-a-full-backup-earns-its-cost) |
|
|
137
|
+
| Restoring a backup, deleting a backup, or upgrading Core or the OS without explicit user confirmation | Ask, name the concrete effect, and wait for an answer — every time, backup or not | A full restore discards everything since the archive for all restored parts and restarts HA; a Supervisor partial restore overwrites only the selected archive parts; deletion destroys a recovery point; a Core/OS upgrade is high-impact and a pre-upgrade backup is a recovery path | [backups](references/backups.md) |
|
|
138
138
|
| The same non-trivial Jinja expression repeated across templates | Once a native trigger/condition and a built-in helper are ruled out, define it once as a macro in `config/custom_templates/*.jinja` and import it | One definition to fix when the rule changes, instead of copies that drift apart | [template-guidelines #reusable-macros](references/template-guidelines.md#reusable-macros) |
|
|
139
139
|
| `trigger`, `this`, `value_json`, or a `{% set %}` variable used inside an imported macro | Pass it to the macro as an argument | An import does not carry the caller's context — the variable is undefined inside the macro, so it renders empty and any attribute access on it errors (HA's own functions like `states` are globals and do work) | [template-guidelines #imports-do-not-carry-the-callers-context](references/template-guidelines.md#imports-do-not-carry-the-callers-context) |
|
|
140
140
|
|
|
@@ -154,10 +154,10 @@ Read each file whose row matches the task before you answer:
|
|
|
154
154
|
| [yaml-only-integrations](references/yaml-only-integrations.md) | Creating or editing YAML-only integrations that have no config flow (e.g. `command_line`, platform-based `mqtt`, `rest`) |
|
|
155
155
|
| [device-control](references/device-control.md) | Writing actions, button/remote automations, or using target: |
|
|
156
156
|
| [scenes](references/scenes.md) | Authoring or activating scenes; snapshot/restore patterns, including putting devices back the way they were after a temporary change; snapshot-vs-script distinction |
|
|
157
|
-
| [dashboard-guide](references/dashboard-guide.md) | Designing or modifying Lovelace dashboards — layout, view types, strategies, sections, cards, badges, CSS styling, HACS |
|
|
157
|
+
| [dashboard-guide](references/dashboard-guide.md) | Designing or modifying Lovelace dashboards — layout, view types, strategies, sections, cards, badges, CSS styling, HACS / Marketplace |
|
|
158
158
|
| [dashboard-cards](references/dashboard-cards.md) | Looking up built-in card types (core, energy, legacy) or where to read a card's fields; [entities-card attribute rows](references/dashboard-cards.md#entities-card-attribute-rows-need-type-attribute) — a row with `attribute:` but no `type: attribute` shows the entity state, not the attribute |
|
|
159
159
|
| [domain-docs](references/domain-docs.md) | Looking up integration/domain documentation, or the dedicated doc page for a specific trigger, condition, or action |
|
|
160
160
|
| [examples.yaml](references/examples.yaml) | Need compound examples combining multiple best practices |
|
|
161
161
|
| [appdaemon](references/appdaemon.md) | AppDaemon apps: when to use vs. native HA, app structure, actions, scheduling, error handling, safe refactoring impact |
|
|
162
162
|
| [blueprint-guide](references/blueprint-guide.md) | Authoring reusable blueprints: metadata & `source_url`, inputs & selectors, `target` vs `entity`, defaults, input sections, `!input` templating, versioning |
|
|
163
|
-
| [backups](references/backups.md) | Deciding whether
|
|
163
|
+
| [backups](references/backups.md) | Deciding whether to offer a backup before an operation; choosing between a full restore, a partial restore, and rolling one object back; what an archive actually contains; encryption keys and the emergency kit; restore verification; what HA does and does not protect when deleting a backup; whether a git config repo replaces a full backup |
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
|
|
11
11
|
- **Restoring a backup** — *irreversible*: it discards every change made since that archive and restarts HA. The only way back is another backup taken before the restore.
|
|
12
12
|
- **Deleting a backup** — *irreversible*: the archive is gone, and with it any recovery point it was the last copy of.
|
|
13
|
-
- **Upgrading Core or the OS** — *high-impact rather than strictly irreversible*: it can break integrations and custom components, and
|
|
13
|
+
- **Upgrading Core or the OS** — *high-impact rather than strictly irreversible*: it can break integrations and custom components, and a recovery path is restoring a pre-upgrade backup, so offer one first; if the user declines, tell them the newest backup they already have, if any, lacks the changes made since it was taken.
|
|
14
14
|
|
|
15
15
|
A backup lowers recovery risk; it does not authorize the action.
|
|
16
16
|
|
|
@@ -44,9 +44,9 @@ Prefer the narrowest path that can fix the fault. Object rollback is scoped to o
|
|
|
44
44
|
|
|
45
45
|
## When a Full Backup Earns Its Cost
|
|
46
46
|
|
|
47
|
-
The test is reversibility, not how risky something feels: **
|
|
47
|
+
The test is reversibility, not how risky something feels: **offer a backup before an operation you cannot undo by writing the old value back.** Whether to make one is the user's call.
|
|
48
48
|
|
|
49
|
-
**Irreversible —
|
|
49
|
+
**Irreversible — offer the user a backup first, wait for their answer, and confirm the operation with them:**
|
|
50
50
|
- Deleting a device, entity, or area from the registry.
|
|
51
51
|
- Removing an integration or config entry.
|
|
52
52
|
- Removing an App, or a major App version jump.
|
|
@@ -70,7 +70,7 @@ The test is reversibility, not how risky something feels: **back up before an op
|
|
|
70
70
|
|
|
71
71
|
Three things this test depends on:
|
|
72
72
|
|
|
73
|
-
- **Timing is the whole point.** A backup taken *after* the destructive step captures the damage.
|
|
73
|
+
- **Timing is the whole point.** A backup taken *after* the destructive step captures the damage. If the user wants one, it must precede the operation.
|
|
74
74
|
- **An existing schedule does not substitute.** On an instance with nightly automatic backups, the newest one can be almost a day stale — fine for reversible edits, not for an irreversible operation about to run now.
|
|
75
75
|
- **A git config repo does not substitute.** A `/config` directory tracked in git conventionally excludes the recorder database, along with `.storage` and `secrets.yaml`, which carry credentials and long-lived tokens in cleartext. Such a repo holds tracked files only, and the irreversible operations above destroy registry, config-entry, or install state that it does not hold. A repo that does track `.storage` carries those credentials into every clone, so it must not go anywhere the user has not chosen, and writing `.storage` back over a running instance is a direct edit of HA's internal state rather than a restore.
|
|
76
76
|
|
|
@@ -16,7 +16,7 @@ Patterns and decisions for designing Home Assistant Lovelace dashboards.
|
|
|
16
16
|
- [Actions](#actions)
|
|
17
17
|
- [Custom Cards](#custom-cards)
|
|
18
18
|
- [CSS Styling](#css-styling)
|
|
19
|
-
- [HACS
|
|
19
|
+
- [HACS and the Marketplace](#hacs-and-the-marketplace)
|
|
20
20
|
- [Complete Example: Multi-View Dashboard](#complete-example-multi-view-dashboard)
|
|
21
21
|
- [Common Pitfalls](#common-pitfalls)
|
|
22
22
|
- [Modern Best Practices](#modern-best-practices)
|
|
@@ -425,7 +425,7 @@ Use the HA dashboard resource API to convert inline code to a hosted URL, then r
|
|
|
425
425
|
|
|
426
426
|
**Resource caching:** `/local/` is served with `public, max-age=2678400`, a 31-day cache, in desktop browsers as well as the Companion app. Editing a registered `.js` file in place leaves clients on the old copy until it expires or the client clears its cache.
|
|
427
427
|
|
|
428
|
-
- HACS
|
|
428
|
+
- HACS and the Marketplace register a card's resource on install and version its URL in storage mode: HACS (2026.10 and older) as `?hacstag=<installed version>`, the Marketplace (2026.11 and later) as `?v=<repository id>-<version>`. A card installed through either is re-fetched on update. Do not add its resource again through the resource API; that creates a duplicate. With YAML-mode resources neither can update the URL, so that version string is yours to bump.
|
|
429
429
|
- A resource registered by hand needs the same: bump a version query string on the resource `url`, `/local/quick-status-card.js?v=2.0.0`. Only a changed URL forces every client to re-fetch, so renaming the element tag does not help; the cached module still registers the old tag name.
|
|
430
430
|
- A client already holding a stale copy needs a client-side fix: hard refresh, clear site data for the HA origin, or **Settings** > **Reset frontend cache** in the Companion app.
|
|
431
431
|
|
|
@@ -435,7 +435,7 @@ Use the HA dashboard resource API to convert inline code to a hosted URL, then r
|
|
|
435
435
|
|
|
436
436
|
### Themes
|
|
437
437
|
|
|
438
|
-
Global styling is done with HA **themes** (YAML maps of CSS variables), not raw CSS. Themes are defined under `frontend: themes:` in YAML or installed
|
|
438
|
+
Global styling is done with HA **themes** (YAML maps of CSS variables), not raw CSS. Themes are defined under `frontend: themes:` in YAML or installed from HACS or the Marketplace, and selected per user (profile) or per view/card with the `theme` option. Define both modes so OS dark/light switching applies cleanly to both:
|
|
439
439
|
|
|
440
440
|
```yaml
|
|
441
441
|
frontend:
|
|
@@ -452,7 +452,7 @@ frontend:
|
|
|
452
452
|
|
|
453
453
|
### Card-mod (Per-Card Styling)
|
|
454
454
|
|
|
455
|
-
Requires the `card-mod` HACS
|
|
455
|
+
Requires the `card-mod` card from HACS or the Marketplace. Use sparingly: it patches frontend internals via shadow-DOM selectors, which makes it a frequent source of breakage after HA upgrades — prefer native options and theme variables where they exist, and re-test card-mod styling after every HA update:
|
|
456
456
|
|
|
457
457
|
```yaml
|
|
458
458
|
type: entities
|
|
@@ -468,20 +468,27 @@ entities:
|
|
|
468
468
|
|
|
469
469
|
---
|
|
470
470
|
|
|
471
|
-
## HACS
|
|
471
|
+
## HACS and the Marketplace
|
|
472
|
+
|
|
473
|
+
Since 2026.11 the built-in Marketplace replaces HACS. It is under **Settings** > **Marketplace**, not in the sidebar. HACS installs migrate on the first start after the upgrade. On 2026.10 and older, community cards come from HACS, a custom integration. Check the HA version before naming either.
|
|
472
474
|
|
|
473
475
|
| Use case | Solution |
|
|
474
476
|
|----------|----------|
|
|
475
|
-
| Popular community card | HACS — search and install via
|
|
477
|
+
| Popular community card | HACS / Marketplace — search and install via its API |
|
|
476
478
|
| Small custom styling | Inline CSS — register via HA dashboard resource API |
|
|
477
479
|
| One-off custom card | Inline module — register via HA dashboard resource API |
|
|
478
|
-
| Large/complex card | HACS or filesystem (`/config/www/`) |
|
|
480
|
+
| Large/complex card | HACS / Marketplace or filesystem (`/config/www/`) |
|
|
479
481
|
|
|
480
482
|
### Finding and Installing Cards
|
|
481
483
|
|
|
482
|
-
Search
|
|
484
|
+
Search for community cards by name/category, review repository details, then install. Install operations are destructive, so clients will ask for user confirmation.
|
|
485
|
+
|
|
486
|
+
The Marketplace (2026.11 and later) has two gates that are the user's decision. An agent can reach both through the UI or the API; it still must not clear them for the user:
|
|
487
|
+
|
|
488
|
+
- **First-run notice:** install and update fail with `warning_not_accepted` until the user the agent connects as has accepted the notice in **Settings** > **Marketplace**. Browsing works before that. The notice says community projects are not tested or audited by the Home Assistant project and run inside it. Ask the user to read and accept it themselves.
|
|
489
|
+
- **GitHub account:** adding a custom repository (**Add from link**) fails with `github_not_connected` until a GitHub account is connected in the Marketplace. Connecting links the user's own GitHub account, so ask the user to do it. Without one, the Marketplace does not check installed custom repositories for updates on its own. Catalog projects install and update without it.
|
|
483
490
|
|
|
484
|
-
### Popular
|
|
491
|
+
### Popular Community Cards
|
|
485
492
|
|
|
486
493
|
- **mushroom** — Modern, clean card collection (v5+ aligns with the native tile card; its template card covers Jinja-driven icon/color/content)
|
|
487
494
|
- **button-card** — Highly customizable buttons with JS templating
|
|
@@ -567,7 +574,7 @@ Custom cards predating sections views (early 2024) that haven't updated since ar
|
|
|
567
574
|
| Entity not found | Use full entity ID: `light.living_room` not `living_room` |
|
|
568
575
|
| Features not working | Match feature type to entity domain (e.g., `light-brightness` only works on `light.*`) |
|
|
569
576
|
| Custom card not loading | Check resource type is `module` and verify URL is accessible |
|
|
570
|
-
| Card too large for inline | Use HACS or filesystem instead |
|
|
577
|
+
| Card too large for inline | Use HACS / Marketplace or filesystem instead |
|
|
571
578
|
| Section title ignored/flagged | Section `title` is deprecated — use a `heading` card as the section's first card |
|
|
572
579
|
| Cards sized with `layout_options` | Deprecated — use `grid_options` (`columns`/`rows`) |
|
|
573
580
|
| Map card markers show entity-name initials instead of values | `label_mode` is a **per-entity** option, not card-level: `"entities": [{"entity": "sensor.x", "label_mode": "state"}]` |
|
|
@@ -159,7 +159,9 @@ so, and offer to count two presses within a short window instead of inventing a
|
|
|
159
159
|
|
|
160
160
|
Two Zigbee stacks are exceptions:
|
|
161
161
|
|
|
162
|
-
- **ZHA
|
|
162
|
+
- **ZHA added an event platform in 2026.10, but no ZHA device or quirk in that release
|
|
163
|
+
creates an `event.*` entity.** Check the device's entities first: use `event.received` if
|
|
164
|
+
one is there, otherwise the `zha_event` pattern below.
|
|
163
165
|
- **Zigbee2MQTT's event entities are experimental and off by default** — they need
|
|
164
166
|
`homeassistant: {experimental_event_entities: true}`, and Z2M documents both the feature
|
|
165
167
|
and its event-type names as subject to change. Prefer its autodiscovered `device` trigger
|
|
@@ -167,10 +169,11 @@ Two Zigbee stacks are exceptions:
|
|
|
167
169
|
|
|
168
170
|
### ZHA (Zigbee Home Automation)
|
|
169
171
|
|
|
170
|
-
ZHA buttons fire `zha_event` events.
|
|
172
|
+
ZHA buttons fire `zha_event` events. When the device has no `event.*` entity, use **event triggers** with `device_ieee` (the device's IEEE address), which is **persistent** across re-adds.
|
|
171
173
|
|
|
172
174
|
```yaml
|
|
173
175
|
# RIGHT — device_ieee is persistent across re-adds
|
|
176
|
+
# (fallback — use event.received if the device has an event.* entity)
|
|
174
177
|
triggers:
|
|
175
178
|
- trigger: event
|
|
176
179
|
event_type: zha_event
|
|
@@ -179,6 +182,13 @@ triggers:
|
|
|
179
182
|
command: "toggle"
|
|
180
183
|
```
|
|
181
184
|
|
|
185
|
+
This trigger does not link the automation to the device, so the device page does not list it:
|
|
186
|
+
HA links an `event` trigger to a device only through a `device_id` in its `event_data`. HA turns a ZHA `device` trigger
|
|
187
|
+
(`domain: zha`, `type: remote_button_short_press`, ...) into this same `zha_event` +
|
|
188
|
+
`device_ieee` match, and that one is listed, but it is keyed on the `device_id` (see
|
|
189
|
+
[Entity ID vs Device ID](#entity-id-vs-device-id)). The missing entry is expected and is not a
|
|
190
|
+
reason to switch.
|
|
191
|
+
|
|
182
192
|
For a complete multi-button remote with trigger_id + choose, see [examples.yaml](examples.yaml) Example 2.
|
|
183
193
|
|
|
184
194
|
#### Finding ZHA Event Data
|
|
@@ -218,6 +228,7 @@ triggers:
|
|
|
218
228
|
|
|
219
229
|
| Aspect | ZHA | Zigbee2MQTT |
|
|
220
230
|
|--------|-----|-------------|
|
|
231
|
+
| `event.*` entities | Platform since 2026.10; none created by any device in 2026.10 | Experimental, off by default |
|
|
221
232
|
| Trigger type | `event` trigger | `device` trigger or `mqtt` trigger |
|
|
222
233
|
| Identifier | `device_ieee` (persistent) | `device_id` (autodiscovered) |
|
|
223
234
|
| Event name | `zha_event` | MQTT device trigger |
|
|
@@ -509,7 +520,7 @@ Read left to right and stop at the first column that applies.
|
|
|
509
520
|
|
|
510
521
|
| Device type | Purpose-specific (check first) | Generic fallback | Zigbee specifics |
|
|
511
522
|
|-------------|-------------------------------|------------------|------------------|
|
|
512
|
-
| Button/Remote | `event.received` on the `event.*` entity, when one exists | `state` on the `event.*` entity (fires on any event type) | ZHA: `event` trigger on `zha_event` + `device_ieee`. Z2M: `device` or `mqtt` trigger |
|
|
523
|
+
| Button/Remote | `event.received` on the `event.*` entity, when one exists | `state` on the `event.*` entity (fires on any event type) | ZHA without an `event.*` entity: `event` trigger on `zha_event` + `device_ieee`. Z2M: `device` or `mqtt` trigger |
|
|
513
524
|
| Motion sensor | `motion.detected` / `motion.cleared` | `state` | — |
|
|
514
525
|
| Door/Window | `door.opened` / `door.closed`, `window.opened` / `window.closed` | `state` | — |
|
|
515
526
|
| Temperature | `temperature.crossed_threshold` / `temperature.changed` | `numeric_state` or `state` | — |
|
|
@@ -239,7 +239,7 @@ Iterate the returned entries and check `data` and `options` fields for the old e
|
|
|
239
239
|
|
|
240
240
|
For an integration marked ❌ that stores entity_ids in `options` (Min/Max Helper): use the Options Flow. See the Config-Entry-Groups section above for the full Options Flow pattern. Integrations marked ✅ need no patch; after the rename, check that their options show the new ID.
|
|
241
241
|
|
|
242
|
-
For integrations that store entity_ids in `data` (Better Thermostat): `data` fields written during the initial Config Flow setup have no standard API for post-setup mutation — the Options Flow updates `options` only. No API-based fix path exists. Document this limitation to the user before proceeding with a rename. This is the one operation in this guide that a fetch-before-write rollback cannot undo, so treat the rename as irreversible
|
|
242
|
+
For integrations that store entity_ids in `data` (Better Thermostat): `data` fields written during the initial Config Flow setup have no standard API for post-setup mutation — the Options Flow updates `options` only. No API-based fix path exists. Document this limitation to the user before proceeding with a rename. This is the one operation in this guide that a fetch-before-write rollback cannot undo, so treat the rename as irreversible: offer the user a full backup, and before renaming wait for their answer on the backup and their go-ahead for the rename itself — see [backups #when-a-full-backup-earns-its-cost](backups.md#when-a-full-backup-earns-its-cost).
|
|
243
243
|
|
|
244
244
|
---
|
|
245
245
|
|
|
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-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/MANIFEST.sha256
RENAMED
|
File without changes
|
{ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/REQUIRES.txt
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/_install_hints.py
RENAMED
|
File without changes
|
{ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/_warnings.py
RENAMED
|
File without changes
|
{ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/apps/__init__.py
RENAMED
|
File without changes
|
{ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/apps/app.py
RENAMED
|
File without changes
|
{ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/apps/approval.py
RENAMED
|
File without changes
|
{ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/apps/choice.py
RENAMED
|
File without changes
|
{ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/apps/config.py
RENAMED
|
File without changes
|
{ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/apps/file_upload.py
RENAMED
|
File without changes
|
{ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/apps/form.py
RENAMED
|
File without changes
|
{ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/apps/generative.py
RENAMED
|
File without changes
|
{ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/cli/__init__.py
RENAMED
|
File without changes
|
{ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/cli/__main__.py
RENAMED
|
File without changes
|
{ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/cli/apps_dev.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/cli/auth.py
RENAMED
|
File without changes
|
{ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/cli/cimd.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/cli/client.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
|
{ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/cli/deploy/state.py
RENAMED
|
File without changes
|
{ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/cli/discovery.py
RENAMED
|
File without changes
|
{ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/cli/generate.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/client/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/client/caching.py
RENAMED
|
File without changes
|
{ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/client/client.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/client/group.py
RENAMED
|
File without changes
|
{ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/client/logging.py
RENAMED
|
File without changes
|
{ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/client/messages.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/client/progress.py
RENAMED
|
File without changes
|
{ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/client/roots.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/client/telemetry.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-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/contrib/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
|
{ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/decorators.py
RENAMED
|
File without changes
|
{ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/dependencies.py
RENAMED
|
File without changes
|
{ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/exceptions.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/mcp_config.py
RENAMED
|
File without changes
|
{ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/prompts/__init__.py
RENAMED
|
File without changes
|
{ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/prompts/base.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/resources/base.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/resources/types.py
RENAMED
|
File without changes
|
{ha_mcp_dev-9.1.0.dev3344 → ha_mcp_dev-9.1.0.dev3348}/src/ha_mcp/_vendor/fastmcp/server/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|