ha-mcp-dev 8.5.0.dev2757__tar.gz → 8.5.0.dev2759__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.
Potentially problematic release.
This version of ha-mcp-dev might be problematic. Click here for more details.
- {ha_mcp_dev-8.5.0.dev2757/src/ha_mcp_dev.egg-info → ha_mcp_dev-8.5.0.dev2759}/PKG-INFO +1 -1
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/pyproject.toml +1 -1
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/backup_manager.py +9 -3
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/server.py +5 -4
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/tools/device_control.py +10 -10
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/tools/smart_search/_entities.py +1 -2
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/tools/tools_calendar.py +6 -3
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/tools/tools_config_automations.py +1 -1
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/tools/tools_config_dashboards.py +3 -3
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/tools/tools_config_helpers.py +2 -2
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/tools/tools_config_scenes.py +5 -1
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/tools/tools_config_scripts.py +1 -1
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/tools/tools_filesystem.py +7 -4
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/tools/tools_registry.py +5 -3
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/tools/tools_service.py +71 -12
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/tools/tools_system.py +3 -7
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/tools/tools_traces.py +4 -3
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/tools/tools_yaml_config.py +4 -3
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759/src/ha_mcp_dev.egg-info}/PKG-INFO +1 -1
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/LICENSE +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/MANIFEST.in +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/README.md +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/setup.cfg +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/__init__.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/__main__.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_pypi_marker +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_rich_compat.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/__init__.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/LICENSE +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/MANIFEST.sha256 +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/REQUIRES.txt +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/VENDORED +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/__init__.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/_compat.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/_install_hints.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/_warnings.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/apps/__init__.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/apps/app.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/apps/approval.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/apps/choice.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/apps/config.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/apps/file_upload.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/apps/form.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/apps/generative.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/cli/__init__.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/cli/__main__.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/cli/apps_dev.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/cli/auth.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/cli/cimd.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/cli/cli.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/cli/client.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/cli/deploy/__init__.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/cli/deploy/authentication.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/cli/deploy/command.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/cli/deploy/configuration.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/cli/deploy/credentials.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/cli/deploy/horizon_client.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/cli/deploy/output.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/cli/deploy/state.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/cli/discovery.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/cli/generate.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/cli/install/__init__.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/cli/install/claude_code.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/cli/install/claude_desktop.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/cli/install/cursor.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/cli/install/gemini_cli.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/cli/install/goose.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/cli/install/mcp_json.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/cli/install/shared.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/cli/install/stdio.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/cli/run.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/client/__init__.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/client/_sdk_context_shim.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/client/auth/__init__.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/client/auth/bearer.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/client/auth/client_credentials.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/client/auth/oauth.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/client/caching.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/client/client.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/client/dependencies.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/client/elicitation.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/client/extension_hooks.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/client/group.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/client/logging.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/client/messages.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/client/mixins/__init__.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/client/mixins/prompts.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/client/mixins/resources.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/client/mixins/tools.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/client/oauth_callback.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/client/progress.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/client/roots.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/client/sampling/__init__.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/client/sampling/handlers/__init__.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/client/sampling/handlers/anthropic.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/client/sampling/handlers/google_genai.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/client/sampling/handlers/openai.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/client/telemetry.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/client/transports/__init__.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/client/transports/base.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/client/transports/config.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/client/transports/http.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/client/transports/inference.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/client/transports/memory.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/client/transports/sse.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/client/transports/stdio.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/contrib/README.md +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/contrib/bulk_tool_caller/README.md +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/contrib/bulk_tool_caller/__init__.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/contrib/bulk_tool_caller/bulk_tool_caller.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/contrib/bulk_tool_caller/example.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/contrib/component_manager/README.md +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/contrib/component_manager/__init__.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/contrib/component_manager/component_manager.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/contrib/component_manager/example.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/contrib/mcp_mixin/README.md +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/contrib/mcp_mixin/__init__.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/contrib/mcp_mixin/example.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/contrib/mcp_mixin/mcp_mixin.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/decorators.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/dependencies.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/exceptions.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/experimental/__init__.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/experimental/transforms/__init__.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/experimental/transforms/code_mode.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/mcp_config.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/prompts/__init__.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/prompts/base.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/prompts/function_prompt.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/py.typed +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/resources/__init__.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/resources/base.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/resources/function_resource.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/resources/security.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/resources/template.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/resources/types.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/server/__init__.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/server/auth/__init__.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/server/auth/auth.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/server/auth/cimd.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/server/auth/handlers/__init__.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/server/auth/handlers/authorize.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/server/auth/identity_assertion.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/server/auth/jwt_issuer.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/server/auth/middleware.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/server/auth/oauth_proxy/__init__.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/server/auth/oauth_proxy/consent.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/server/auth/oauth_proxy/models.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/server/auth/oauth_proxy/proxy.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/server/auth/oauth_proxy/ui.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/server/auth/oauth_proxy/upstream.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/server/auth/oidc_proxy.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/__init__.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/auth0.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/aws.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/azure.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/clerk.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/debug.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/descope.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/discord.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/github.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/google.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/huggingface.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/in_memory.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/introspection.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/jwt.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/keycloak.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/oci.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/propelauth.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/scalekit.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/supabase.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/workos.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/server/auth/redirect_validation.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/server/auth/ssrf.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/server/caching.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/server/completions.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/server/context.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/server/dependencies.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/server/elicitation.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/server/event_store.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/server/extensions.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/server/http.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/server/lifespan.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/server/low_level.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/server/middleware/__init__.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/server/middleware/authorization.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/server/middleware/caching.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/server/middleware/dereference.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/server/middleware/error_handling.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/server/middleware/logging.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/server/middleware/middleware.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/server/middleware/ping.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/server/middleware/rate_limiting.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/server/middleware/response_limiting.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/server/middleware/timing.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/server/middleware/tool_injection.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/server/mixins/__init__.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/server/mixins/lifespan.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/server/mixins/mcp_operations.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/server/mixins/transport.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/server/providers/__init__.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/server/providers/addressing.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/server/providers/aggregate.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/server/providers/base.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/server/providers/fastmcp_provider.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/server/providers/filesystem.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/server/providers/filesystem_discovery.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/server/providers/local_provider/__init__.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/server/providers/local_provider/decorators/__init__.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/server/providers/local_provider/decorators/prompts.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/server/providers/local_provider/decorators/resources.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/server/providers/local_provider/decorators/tools.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/server/providers/local_provider/local_provider.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/server/providers/openapi/README.md +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/server/providers/openapi/__init__.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/server/providers/openapi/components.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/server/providers/openapi/provider.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/server/providers/openapi/routing.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/server/providers/prefab_payload.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/server/providers/prefab_synthesis.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/server/providers/proxy.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/server/providers/skills/__init__.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/server/providers/skills/_common.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/server/providers/skills/claude_provider.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/server/providers/skills/directory_provider.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/server/providers/skills/skill_provider.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/server/providers/skills/vendor_providers.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/server/providers/wrapped_provider.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/server/server.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/server/session_scoped_event_store.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/server/sessions.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/server/telemetry.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/server/transforms/__init__.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/server/transforms/catalog.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/server/transforms/namespace.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/server/transforms/prompts_as_tools.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/server/transforms/resources_as_tools.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/server/transforms/search/__init__.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/server/transforms/search/base.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/server/transforms/search/bm25.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/server/transforms/search/regex.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/server/transforms/tool_transform.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/server/transforms/version_filter.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/server/transforms/visibility.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/settings.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/telemetry.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/tools/__init__.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/tools/base.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/tools/function_parsing.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/tools/function_tool.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/tools/tool_transform.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/types.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/utilities/__init__.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/utilities/asgi_transport.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/utilities/async_utils.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/utilities/auth.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/utilities/authorization.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/utilities/cli.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/utilities/components.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/utilities/docstring_parsing.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/utilities/exceptions.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/utilities/http.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/utilities/inspect.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/utilities/json_schema.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/utilities/json_schema_type.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/utilities/lifespan.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/utilities/logging.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/utilities/mcp_server_config/__init__.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/utilities/mcp_server_config/v1/__init__.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/utilities/mcp_server_config/v1/environments/__init__.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/utilities/mcp_server_config/v1/environments/base.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/utilities/mcp_server_config/v1/environments/uv.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/utilities/mcp_server_config/v1/mcp_server_config.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/utilities/mcp_server_config/v1/schema.json +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/utilities/mcp_server_config/v1/sources/__init__.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/utilities/mcp_server_config/v1/sources/base.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/utilities/mcp_server_config/v1/sources/filesystem.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/utilities/mime.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/utilities/openapi/README.md +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/utilities/openapi/__init__.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/utilities/openapi/director.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/utilities/openapi/formatters.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/utilities/openapi/json_schema_converter.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/utilities/openapi/models.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/utilities/openapi/parser.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/utilities/openapi/schemas.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/utilities/pagination.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/utilities/prefab.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/utilities/skills.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/utilities/tasks.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/utilities/tests.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/utilities/timeout.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/utilities/token_cache.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/utilities/types.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/utilities/ui.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/utilities/version_check.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/utilities/versions.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/LICENSE +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/MANIFEST.sha256 +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/REQUIRES.txt +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/VENDORED +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/__init__.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/cli/__init__.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/cli/claude.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/cli/cli.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/client/__init__.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/client/__main__.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/client/_input_required.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/client/_memory.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/client/_probe.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/client/_transport.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/client/auth/__init__.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/client/auth/exceptions.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/client/auth/extensions/__init__.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/client/auth/extensions/client_credentials.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/client/auth/extensions/identity_assertion.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/client/auth/oauth2.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/client/auth/utils.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/client/caching.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/client/client.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/client/context.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/client/extension.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/client/session.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/client/session_group.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/client/sse.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/client/stdio.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/client/streamable_http.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/client/subscriptions.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/os/__init__.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/os/posix/__init__.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/os/posix/utilities.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/os/win32/__init__.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/os/win32/utilities.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/py.typed +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/server/__init__.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/server/__main__.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/server/_otel.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/server/_streamable_http_modern.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/server/apps.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/server/auth/__init__.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/server/auth/errors.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/server/auth/handlers/__init__.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/server/auth/handlers/authorize.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/server/auth/handlers/metadata.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/server/auth/handlers/register.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/server/auth/handlers/revoke.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/server/auth/handlers/token.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/server/auth/json_response.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/server/auth/middleware/__init__.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/server/auth/middleware/auth_context.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/server/auth/middleware/bearer_auth.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/server/auth/middleware/client_auth.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/server/auth/provider.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/server/auth/routes.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/server/auth/settings.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/server/caching.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/server/connection.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/server/context.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/server/elicitation.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/server/extension.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/server/fastmcp.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/server/lowlevel/__init__.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/server/lowlevel/helper_types.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/server/lowlevel/server.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/server/mcpserver/__init__.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/server/mcpserver/context.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/server/mcpserver/exceptions.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/server/mcpserver/prompts/__init__.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/server/mcpserver/prompts/base.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/server/mcpserver/prompts/manager.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/server/mcpserver/resolve.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/server/mcpserver/resources/__init__.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/server/mcpserver/resources/base.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/server/mcpserver/resources/resource_manager.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/server/mcpserver/resources/templates.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/server/mcpserver/resources/types.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/server/mcpserver/server.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/server/mcpserver/tools/__init__.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/server/mcpserver/tools/base.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/server/mcpserver/tools/tool_manager.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/server/mcpserver/utilities/__init__.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/server/mcpserver/utilities/context_injection.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/server/mcpserver/utilities/func_metadata.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/server/mcpserver/utilities/logging.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/server/mcpserver/utilities/types.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/server/models.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/server/request_state.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/server/runner.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/server/session.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/server/sse.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/server/stdio.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/server/streamable_http.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/server/streamable_http_manager.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/server/subscriptions.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/server/transport_security.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/server/validation.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/shared/__init__.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/shared/_callable_inspection.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/shared/_compat.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/shared/_context_streams.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/shared/_httpx_utils.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/shared/_otel.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/shared/_stream_protocols.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/shared/auth.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/shared/auth_utils.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/shared/context.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/shared/direct_dispatcher.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/shared/dispatcher.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/shared/exceptions.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/shared/extension.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/shared/inbound.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/shared/jsonrpc_dispatcher.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/shared/memory.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/shared/message.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/shared/metadata_utils.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/shared/path_security.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/shared/peer.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/shared/subscriptions.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/shared/tool_name_validation.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/shared/transport_context.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/shared/uri_template.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/types/__init__.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/types/jsonrpc.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/types/methods.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp/types/version.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp_types/LICENSE +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp_types/MANIFEST.sha256 +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp_types/REQUIRES.txt +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp_types/VENDORED +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp_types/__init__.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp_types/_types.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp_types/_v2025_11_25/__init__.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp_types/_v2026_07_28/__init__.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp_types/_wire_base.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp_types/jsonrpc.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp_types/methods.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp_types/py.typed +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/mcp_types/version.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/requirements.txt +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/websockets/LICENSE +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/websockets/MANIFEST.sha256 +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/websockets/VENDORED +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/websockets/__init__.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/websockets/__main__.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/websockets/asyncio/__init__.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/websockets/asyncio/client.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/websockets/asyncio/connection.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/websockets/asyncio/messages.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/websockets/asyncio/router.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/websockets/asyncio/server.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/websockets/auth.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/websockets/cli.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/websockets/client.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/websockets/connection.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/websockets/datastructures.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/websockets/exceptions.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/websockets/extensions/__init__.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/websockets/extensions/base.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/websockets/extensions/permessage_deflate.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/websockets/frames.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/websockets/headers.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/websockets/http11.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/websockets/imports.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/websockets/legacy/__init__.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/websockets/legacy/auth.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/websockets/legacy/client.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/websockets/legacy/exceptions.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/websockets/legacy/framing.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/websockets/legacy/handshake.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/websockets/legacy/http.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/websockets/legacy/protocol.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/websockets/legacy/server.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/websockets/protocol.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/websockets/proxy.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/websockets/py.typed +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/websockets/server.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/websockets/streams.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/websockets/sync/__init__.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/websockets/sync/client.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/websockets/sync/connection.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/websockets/sync/messages.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/websockets/sync/router.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/websockets/sync/server.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/websockets/sync/utils.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/websockets/trio/__init__.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/websockets/trio/client.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/websockets/trio/connection.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/websockets/trio/messages.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/websockets/trio/router.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/websockets/trio/server.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/websockets/trio/utils.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/websockets/typing.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/websockets/uri.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/websockets/utils.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/websockets/version.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_version.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/auth/__init__.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/auth/consent_form.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/auth/oidc_compat.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/auth/provider.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/browser_landing.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/client/__init__.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/client/rest_client.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/client/supervisor_client.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/client/websocket_client.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/client/websocket_listener.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/config.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/dashboard_screenshot/__init__.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/dashboard_screenshot/capture.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/dashboard_screenshot/content.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/dashboard_screenshot/paths.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/dashboard_screenshot/provision.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/dashboard_screenshot/theme_guard.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/errors.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/ha_request_queue.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/hacs_auto_refresh.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/http_transport.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/llm_exposure.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/log_filters.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/policy/__init__.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/policy/approval_queue.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/policy/decision_pin.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/policy/decisions.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/policy/editing.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/policy/evaluator.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/policy/events.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/policy/handlers.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/policy/middleware.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/policy/model.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/policy/persistence.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/policy/value_sources.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/py.typed +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/read_only.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/redaction.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/renamed_tools.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/resources/skills-vendor/.claude/settings.json +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/resources/skills-vendor/.claude-plugin/marketplace.json +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/resources/skills-vendor/.claude-plugin/plugin.json +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/resources/skills-vendor/.github/ISSUE_TEMPLATE/skill-rca.md +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/resources/skills-vendor/.github/pull_request_template.md +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/resources/skills-vendor/AGENTS.md +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/resources/skills-vendor/CLAUDE.md +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/resources/skills-vendor/CONTRIBUTING.md +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/resources/skills-vendor/LICENSE +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/resources/skills-vendor/README.md +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/resources/skills-vendor/evals/area-target-over-entity-list/case.yaml +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/resources/skills-vendor/evals/arrive-home-automation/case.yaml +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/resources/skills-vendor/evals/assist-shortcut-card/case.yaml +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/resources/skills-vendor/evals/avg-temperature/case.yaml +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/resources/skills-vendor/evals/backup-deletion-confirmation/case.yaml +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/resources/skills-vendor/evals/blueprint-authoring/case.yaml +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/resources/skills-vendor/evals/button-event-entity/case.yaml +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/resources/skills-vendor/evals/device-id-trigger-migration/case.yaml +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/resources/skills-vendor/evals/helper-flow-fields-not-platform-yaml/case.yaml +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/resources/skills-vendor/evals/media-player-song/case.yaml +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/resources/skills-vendor/evals/motion-light-automation-mode/case.yaml +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/resources/skills-vendor/evals/rename-entity-impact-analysis/case.yaml +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/resources/skills-vendor/evals/template-attributes-yaml-exception/case.yaml +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/resources/skills-vendor/evals/timer-finished-automation/case.yaml +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/resources/skills-vendor/evals/vacuum-last-clean/case.yaml +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/resources/skills-vendor/scripts/check_eval_cases.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/SKILL.md +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/appdaemon.md +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/automation-patterns.md +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/backups.md +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/blueprint-guide.md +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/dashboard-cards.md +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/dashboard-guide.md +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/device-control.md +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/domain-docs.md +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/examples.yaml +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/helper-selection.md +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/safe-refactoring.md +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/scenes.md +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/template-guidelines.md +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/yaml-only-integrations.md +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/settings_ui/__init__.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/settings_ui/_handlers_advanced.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/settings_ui/_handlers_backups.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/settings_ui/_handlers_fs.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/settings_ui/_handlers_server.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/settings_ui/_handlers_theme.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/settings_ui/_handlers_tools.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/settings_ui/_i18n.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/settings_ui/_locale_policy.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/settings_ui/_persistence.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/settings_ui/_supervisor.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/settings_ui/_theme.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/settings_ui/_tools_meta.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/settings_ui/locales/README.md +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/settings_ui/locales/az.json +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/settings_ui/locales/cs.json +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/settings_ui/locales/de.json +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/settings_ui/locales/en.json +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/settings_ui/locales/eo.json +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/settings_ui/locales/es.json +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/settings_ui/locales/fr.json +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/settings_ui/locales/it.json +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/settings_ui/locales/ko.json +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/settings_ui/locales/nl.json +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/settings_ui/locales/pl.json +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/settings_ui/locales/ru.json +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/settings_ui/locales/sv.json +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/settings_ui/locales/tlh.json +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/settings_ui/locales/zh-Hans.json +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/settings_ui/locales/zh-Hant.json +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/settings_ui/settings.css +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/settings_ui/settings.html +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/settings_ui/settings.js +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/smoke_test.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/stdio_settings_sidecar.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/strict_bps.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/tool_dispatch.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/tools/__init__.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/tools/auto_backup.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/tools/backup.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/tools/best_practice_checker.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/tools/best_practice_result.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/tools/best_practice_variables.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/tools/blueprint_sources.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/tools/blueprint_substitute.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/tools/blueprint_write.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/tools/bulk_selector.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/tools/component_api.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/tools/component_config_entries.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/tools/component_config_reads.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/tools/component_dashboard_edit.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/tools/component_devices.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/tools/component_registries.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/tools/component_registry_lookup.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/tools/config_entry_flow.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/tools/config_entry_flow_form.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/tools/config_entry_flow_menu.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/tools/config_entry_flow_walker.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/tools/config_entry_identity.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/tools/config_entry_reconfigure.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/tools/config_entry_reload_watch.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/tools/dashboard_edit_errors.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/tools/entity_registration.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/tools/error_log_parsing.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/tools/hacs_registration.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/tools/helpers.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/tools/integration_reconfigure.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/tools/log_common.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/tools/log_sources.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/tools/log_sources_fault.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/tools/log_sources_supervisor.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/tools/radio/__init__.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/tools/radio/base.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/tools/radio/matter.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/tools/radio/thread.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/tools/radio/zigbee.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/tools/radio/zwave.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/tools/reference_validator.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/tools/registry.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/tools/renamed_tool_middleware.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/tools/scene_discovery.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/tools/smart_search/__init__.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/tools/smart_search/_base.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/tools/smart_search/_config.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/tools/smart_search/_deep.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/tools/smart_search/_fetch.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/tools/smart_search/_graph.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/tools/smart_search/_overview.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/tools/smart_search/_scenes.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/tools/smart_search/_scoring.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/tools/tool_search_hint_middleware.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/tools/tools_addons.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/tools/tools_areas.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/tools/tools_assist_pipeline.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/tools/tools_blueprints.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/tools/tools_bug_report.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/tools/tools_camera.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/tools/tools_categories.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/tools/tools_code.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/tools/tools_dashboard_screenshot.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/tools/tools_dev.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/tools/tools_energy.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/tools/tools_entities.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/tools/tools_groups.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/tools/tools_hacs.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/tools/tools_history.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/tools/tools_integrations.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/tools/tools_labels.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/tools/tools_logs.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/tools/tools_radio.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/tools/tools_resources.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/tools/tools_search.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/tools/tools_security_policy.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/tools/tools_services.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/tools/tools_themes.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/tools/tools_todo.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/tools/tools_updates.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/tools/tools_utility.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/tools/tools_voice_assistant.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/tools/tools_yaml_read.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/tools/tools_zones.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/tools/util_helpers.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/tools/validation_middleware.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/transforms/__init__.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/transforms/categorized_search.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/transforms/component_search.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/transforms/lite_docstrings.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/transforms/write_tool_note.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/transport_security.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/update_check.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/utils/__init__.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/utils/config_hash.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/utils/config_write_lock.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/utils/dashboard_patch.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/utils/data_paths.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/utils/device_registry_semantics.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/utils/domain_handlers.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/utils/entity_membership.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/utils/fuzzy_search.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/utils/kill_signal_diagnostics.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/utils/mcp_client_host.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/utils/operation_manager.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/utils/python_sandbox.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/utils/registry_update_lock.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/utils/skill_loader.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/utils/usage_logger.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/visibility/__init__.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/visibility/enforcement.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/visibility/model.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/visibility/persistence.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/visibility/resolver.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp_dev.egg-info/SOURCES.txt +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp_dev.egg-info/dependency_links.txt +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp_dev.egg-info/entry_points.txt +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp_dev.egg-info/requires.txt +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp_dev.egg-info/top_level.txt +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/tests/__init__.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/tests/test_constants.py +0 -0
- {ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/tests/test_env_manager.py +0 -0
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "ha-mcp-dev"
|
|
7
|
-
version = "8.5.0.
|
|
7
|
+
version = "8.5.0.dev2759"
|
|
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
|
|
@@ -3061,8 +3061,10 @@ async def _fetch_file(client: Any, entity_id: str) -> Any:
|
|
|
3061
3061
|
|
|
3062
3062
|
``entity_id`` is the file path. Returns the content string, or None
|
|
3063
3063
|
when the file does not exist — a brand-new write has no prior content
|
|
3064
|
-
to snapshot, so capture skips (same as creating a new entity).
|
|
3065
|
-
|
|
3064
|
+
to snapshot, so capture skips (same as creating a new entity). A
|
|
3065
|
+
binary file also returns None: snapshots store text only, so capture
|
|
3066
|
+
skips it instead of blocking the write or delete. Other read failures
|
|
3067
|
+
raise so the capture pipeline logs them at WARNING.
|
|
3066
3068
|
"""
|
|
3067
3069
|
from .tools.tools_filesystem import call_mcp_tools_service
|
|
3068
3070
|
from .tools.util_helpers import unwrap_service_response
|
|
@@ -3075,7 +3077,11 @@ async def _fetch_file(client: Any, entity_id: str) -> Any:
|
|
|
3075
3077
|
content = result.get("content")
|
|
3076
3078
|
return content if isinstance(content, str) else None
|
|
3077
3079
|
error = str(result.get("error", ""))
|
|
3078
|
-
if
|
|
3080
|
+
if (
|
|
3081
|
+
"does not exist" in error
|
|
3082
|
+
or "not a file" in error
|
|
3083
|
+
or "Cannot read binary file" in error
|
|
3084
|
+
):
|
|
3079
3085
|
return None
|
|
3080
3086
|
raise HomeAssistantError(f"read_file failed for {entity_id!r}: {error}")
|
|
3081
3087
|
|
|
@@ -873,8 +873,8 @@ class HomeAssistantSmartMCPServer:
|
|
|
873
873
|
"see ha_get_skill_guide."
|
|
874
874
|
),
|
|
875
875
|
"ha_config_set_yaml": (
|
|
876
|
-
"Update raw YAML in configuration.yaml
|
|
877
|
-
"via add / replace / remove on a single top-level key "
|
|
876
|
+
"Update raw YAML in configuration.yaml, packages/*.yaml or "
|
|
877
|
+
"themes/*.yaml via add / replace / remove on a single top-level key "
|
|
878
878
|
"(LAST RESORT). By default the first call returns a diff "
|
|
879
879
|
"preview plus confirm_token; repeat with confirm_token to "
|
|
880
880
|
"apply.\n\n"
|
|
@@ -884,8 +884,9 @@ class HomeAssistantSmartMCPServer:
|
|
|
884
884
|
"should be preferred. Use this only for YAML-only "
|
|
885
885
|
"integrations (command_line, rest, shell_command, notify), "
|
|
886
886
|
"YAML-heavy integrations like knx (in packages/*.yaml), "
|
|
887
|
-
"
|
|
888
|
-
"`lovelace.dashboards.<url_path
|
|
887
|
+
"registering YAML-mode dashboards via "
|
|
888
|
+
"`lovelace.dashboards.<url_path>`, or editing theme files in "
|
|
889
|
+
"themes/*.yaml (reloaded automatically). Most edits require a "
|
|
889
890
|
"full HA restart; template, mqtt, and group support "
|
|
890
891
|
"reload.\n\n"
|
|
891
892
|
"For routing guidance and the full allowlist, see "
|
|
@@ -137,7 +137,7 @@ class DeviceControlTools:
|
|
|
137
137
|
f"Invalid entity ID format: {entity_id}",
|
|
138
138
|
suggestions=[
|
|
139
139
|
"Entity ID must be in format 'domain.entity_name'",
|
|
140
|
-
"Use
|
|
140
|
+
"Use ha_search to find the correct entity ID",
|
|
141
141
|
],
|
|
142
142
|
context={"entity_id": entity_id, "action": action},
|
|
143
143
|
)
|
|
@@ -211,12 +211,12 @@ class DeviceControlTools:
|
|
|
211
211
|
"command_sent": True,
|
|
212
212
|
"operation_id": operation_id,
|
|
213
213
|
"status": "pending_verification",
|
|
214
|
-
"message": f"Command sent to {entity_id}. Use
|
|
214
|
+
"message": f"Command sent to {entity_id}. Use ha_get_operation_status to verify completion.",
|
|
215
215
|
"service_call": service_call,
|
|
216
216
|
"expected_state": expected_state,
|
|
217
217
|
"timeout_seconds": timeout_seconds,
|
|
218
218
|
"follow_up": {
|
|
219
|
-
"tool": "
|
|
219
|
+
"tool": "ha_get_operation_status",
|
|
220
220
|
"parameters": {
|
|
221
221
|
"operation_id": operation_id,
|
|
222
222
|
"timeout_seconds": timeout_seconds,
|
|
@@ -292,7 +292,7 @@ class DeviceControlTools:
|
|
|
292
292
|
ErrorCode.ENTITY_NOT_FOUND,
|
|
293
293
|
f"Entity not found: {entity_id}",
|
|
294
294
|
suggestions=[
|
|
295
|
-
"Use
|
|
295
|
+
"Use ha_search to find the correct entity",
|
|
296
296
|
"Check entity is not disabled in Home Assistant",
|
|
297
297
|
],
|
|
298
298
|
context={"entity_id": entity_id, "action": action},
|
|
@@ -509,7 +509,7 @@ class DeviceControlTools:
|
|
|
509
509
|
suggestions=[
|
|
510
510
|
"Operation may have been cleaned up after completion",
|
|
511
511
|
"Check operation ID spelling",
|
|
512
|
-
"Use
|
|
512
|
+
"Use ha_bulk_control to start a new operation",
|
|
513
513
|
],
|
|
514
514
|
context={"operation_id": operation_id},
|
|
515
515
|
)
|
|
@@ -535,7 +535,7 @@ class DeviceControlTools:
|
|
|
535
535
|
suggestions=[
|
|
536
536
|
"Operation may have completed and been purged before "
|
|
537
537
|
+ "verification finished",
|
|
538
|
-
"Use
|
|
538
|
+
"Use ha_bulk_control to start a new operation",
|
|
539
539
|
],
|
|
540
540
|
context={"operation_id": operation_id},
|
|
541
541
|
)
|
|
@@ -620,7 +620,7 @@ class DeviceControlTools:
|
|
|
620
620
|
"tips": [
|
|
621
621
|
"Operation will auto-complete when device state changes",
|
|
622
622
|
"Physical devices may take 1-3 seconds to respond",
|
|
623
|
-
"Call
|
|
623
|
+
"Call ha_get_operation_status again to check for updates",
|
|
624
624
|
],
|
|
625
625
|
}
|
|
626
626
|
|
|
@@ -935,7 +935,7 @@ class DeviceControlTools:
|
|
|
935
935
|
total=len(valid_operations),
|
|
936
936
|
message=(
|
|
937
937
|
f"dispatched {len(operation_ids)} op(s); "
|
|
938
|
-
"use
|
|
938
|
+
"use ha_get_operation_status to verify completion"
|
|
939
939
|
),
|
|
940
940
|
)
|
|
941
941
|
|
|
@@ -1539,7 +1539,7 @@ class DeviceControlTools:
|
|
|
1539
1539
|
"follow_up": (
|
|
1540
1540
|
{
|
|
1541
1541
|
"message": (
|
|
1542
|
-
f"Use
|
|
1542
|
+
f"Use ha_get_operation_status(operation_id=[...]) to check all "
|
|
1543
1543
|
f"{len(operation_ids)} operations"
|
|
1544
1544
|
),
|
|
1545
1545
|
"operation_ids": operation_ids,
|
|
@@ -1587,7 +1587,7 @@ class DeviceControlTools:
|
|
|
1587
1587
|
ErrorCode.VALIDATION_MISSING_PARAMETER,
|
|
1588
1588
|
"No operation IDs provided",
|
|
1589
1589
|
suggestions=[
|
|
1590
|
-
"Provide
|
|
1590
|
+
"Provide the operation_ids that ha_bulk_control returned"
|
|
1591
1591
|
],
|
|
1592
1592
|
)
|
|
1593
1593
|
)
|
{ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/tools/smart_search/_entities.py
RENAMED
|
@@ -601,8 +601,7 @@ class EntitySearchMixin(_SearchBase):
|
|
|
601
601
|
e,
|
|
602
602
|
suggestions=[
|
|
603
603
|
"Check Home Assistant connection",
|
|
604
|
-
"
|
|
605
|
-
"Use smart_entity_search to find entities first",
|
|
604
|
+
"Use ha_search to find entities first",
|
|
606
605
|
],
|
|
607
606
|
context={"area_query": area_query},
|
|
608
607
|
)
|
|
@@ -182,7 +182,8 @@ class CalendarTools:
|
|
|
182
182
|
end: Annotated[
|
|
183
183
|
str | None,
|
|
184
184
|
Field(
|
|
185
|
-
description="End datetime in ISO format (default: 7 days from
|
|
185
|
+
description="End datetime in ISO format (default: 7 days from now, "
|
|
186
|
+
"not from start; pass end whenever you pass start)",
|
|
186
187
|
default=None,
|
|
187
188
|
),
|
|
188
189
|
] = None,
|
|
@@ -193,8 +194,10 @@ class CalendarTools:
|
|
|
193
194
|
) -> dict[str, Any]:
|
|
194
195
|
"""Get calendar events from a calendar entity within a time range.
|
|
195
196
|
|
|
196
|
-
Returns each event's summary, start, end, description and location
|
|
197
|
-
|
|
197
|
+
Returns each event's summary, start, end, description and location,
|
|
198
|
+
plus the uid, recurrence_id and rrule when the calendar provides them
|
|
199
|
+
(the edit and remove tools use uid and recurrence_id). To find calendar
|
|
200
|
+
entities, use ha_search(domain_filter='calendar').
|
|
198
201
|
|
|
199
202
|
EXAMPLES:
|
|
200
203
|
- Next week (defaults): ha_config_get_calendar_events("calendar.family")
|
{ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/tools/tools_config_automations.py
RENAMED
|
@@ -562,7 +562,7 @@ class AutomationConfigTools:
|
|
|
562
562
|
|
|
563
563
|
Returns the complete configuration including triggers, conditions, actions, and mode settings.
|
|
564
564
|
|
|
565
|
-
The returned `config_hash`
|
|
565
|
+
The returned `config_hash` stays the same across consecutive reads of an unchanged config.
|
|
566
566
|
|
|
567
567
|
The returned `automation_id` is the resolved entity_id (canonical
|
|
568
568
|
form, e.g. `automation.morning_routine`) when the registry lookup
|
{ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/tools/tools_config_dashboards.py
RENAMED
|
@@ -1922,7 +1922,7 @@ class DashboardConfigTools:
|
|
|
1922
1922
|
On installs without the ha_mcp_tools component, the default (unnamed)
|
|
1923
1923
|
dashboard is also not searched — only dashboards with a url_path are.
|
|
1924
1924
|
|
|
1925
|
-
|
|
1925
|
+
MODE 2 (Search) and MODE 3 (Get) return a `config_hash` that stays the same across consecutive reads of an unchanged config; MODE 1 and MODE 4 do not return one.
|
|
1926
1926
|
|
|
1927
1927
|
EXAMPLES:
|
|
1928
1928
|
- List all dashboards: ha_config_get_dashboard(list_only=True)
|
|
@@ -2852,8 +2852,8 @@ class DashboardConfigTools:
|
|
|
2852
2852
|
|
|
2853
2853
|
Use ha_config_get_dashboard(entity_id=...) to get the path of any card,
|
|
2854
2854
|
and ha_search / ha_get_overview to find entity IDs — never guess them.
|
|
2855
|
-
For visual re-checks after the write use ha_get_dashboard_screenshot
|
|
2856
|
-
instead of re-sending config.
|
|
2855
|
+
For visual re-checks after the write, use ha_get_dashboard_screenshot
|
|
2856
|
+
(when available) instead of re-sending config.
|
|
2857
2857
|
|
|
2858
2858
|
title/icon/require_admin/show_in_sidebar can be updated in a
|
|
2859
2859
|
metadata-only call or alongside a full config replacement; with
|
{ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/tools/tools_config_helpers.py
RENAMED
|
@@ -4422,8 +4422,8 @@ class HelperConfigTools:
|
|
|
4422
4422
|
"Ignored for helper_type='config_subentry', which uses "
|
|
4423
4423
|
"entry_id/subentry_type/subentry_id instead. For flow-based "
|
|
4424
4424
|
"helper updates (template, group, utility_meter, ...), this is "
|
|
4425
|
-
"
|
|
4426
|
-
"
|
|
4425
|
+
"ignored because options flows don't expose renaming; change the "
|
|
4426
|
+
"resulting entity's display name with ha_set_entity(name=...)."
|
|
4427
4427
|
),
|
|
4428
4428
|
default=None,
|
|
4429
4429
|
),
|
{ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/tools/tools_config_scenes.py
RENAMED
|
@@ -313,7 +313,11 @@ class ConfigSceneTools:
|
|
|
313
313
|
self,
|
|
314
314
|
scene_id: Annotated[
|
|
315
315
|
str | None,
|
|
316
|
-
Field(
|
|
316
|
+
Field(
|
|
317
|
+
description="Scene storage ID from listing (e.g. 'movie_night') "
|
|
318
|
+
"or the scene's entity_id; an entity_id is resolved to the "
|
|
319
|
+
"storage ID."
|
|
320
|
+
),
|
|
317
321
|
] = None,
|
|
318
322
|
query: Annotated[
|
|
319
323
|
str | None, Field(description="Filter scene names or IDs")
|
{ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/tools/tools_config_scripts.py
RENAMED
|
@@ -133,7 +133,7 @@ class ConfigScriptTools:
|
|
|
133
133
|
|
|
134
134
|
Returns the complete configuration for a script, including sequence, mode, fields, and other settings.
|
|
135
135
|
|
|
136
|
-
The returned `config_hash`
|
|
136
|
+
The returned `config_hash` stays the same across consecutive reads of an unchanged config.
|
|
137
137
|
|
|
138
138
|
The returned `script_id` is the canonical bare storage key resolved by the REST client (matching what `ha_config_set_script` / `ha_config_remove_script` expect), falling back to the input identifier on the rare path where the REST envelope omits it. Prefix handling matches `ha_config_get_automation` in behavior (mechanism differs: automations resolve via state lookup; scripts strip the prefix).
|
|
139
139
|
|
|
@@ -582,8 +582,8 @@ class FilesystemTools:
|
|
|
582
582
|
- `custom_templates/` - Jinja2 template files
|
|
583
583
|
- `dashboards/` - YAML-mode dashboard files
|
|
584
584
|
- `blueprints/` - Automation/script blueprint sources (read-only)
|
|
585
|
-
-
|
|
586
|
-
|
|
585
|
+
- `packages/`, plus the folder bound by `homeassistant: packages:` when
|
|
586
|
+
it has another name
|
|
587
587
|
- Plus any custom directories OR HAOS sibling volumes (`/share`,
|
|
588
588
|
`/media`, `/ssl`, `/backup`) configured in the ha-mcp settings UI
|
|
589
589
|
Path traversal (../) is blocked.
|
|
@@ -699,7 +699,8 @@ class FilesystemTools:
|
|
|
699
699
|
**Allowed Read Paths:**
|
|
700
700
|
- `configuration.yaml`, `automations.yaml`, `scripts.yaml`, `scenes.yaml`
|
|
701
701
|
- `secrets.yaml` (values masked)
|
|
702
|
-
- `packages
|
|
702
|
+
- `*.yaml` at any depth under `packages/` and under the folder bound by
|
|
703
|
+
`homeassistant: packages:`
|
|
703
704
|
- `home-assistant.log`, `home-assistant.log.fault` (tail only)
|
|
704
705
|
- `www/**`, `themes/**`, `custom_templates/**`, `dashboards/**`, `blueprints/**`
|
|
705
706
|
- `custom_components/**/*.py` (read-only)
|
|
@@ -895,7 +896,9 @@ class FilesystemTools:
|
|
|
895
896
|
) -> dict[str, Any]:
|
|
896
897
|
"""Delete a file from allowed directories in the Home Assistant config.
|
|
897
898
|
|
|
898
|
-
|
|
899
|
+
ha_manage_backup(scope="edits") can restore a text file from its most
|
|
900
|
+
recent auto-backup snapshot; a binary file has no snapshot and its
|
|
901
|
+
deletion is permanent. Allowed directories:
|
|
899
902
|
`www/`, `themes/`, `custom_templates/`, `dashboards/`, plus any custom
|
|
900
903
|
directories OR HAOS sibling volumes (`/share`, `/media`, `/ssl`,
|
|
901
904
|
`/backup`) configured in the ha-mcp settings UI. Configuration files
|
|
@@ -1052,7 +1052,10 @@ class RegistryTools:
|
|
|
1052
1052
|
disabled_by: Annotated[
|
|
1053
1053
|
str | None,
|
|
1054
1054
|
Field(
|
|
1055
|
-
description=
|
|
1055
|
+
description=(
|
|
1056
|
+
"Set to 'user' to disable the device, or '' (empty string) "
|
|
1057
|
+
"to enable it. Omit to leave the disabled state unchanged."
|
|
1058
|
+
),
|
|
1056
1059
|
default=None,
|
|
1057
1060
|
),
|
|
1058
1061
|
] = None,
|
|
@@ -1139,8 +1142,7 @@ class RegistryTools:
|
|
|
1139
1142
|
- Active devices will typically be re-added by their integration
|
|
1140
1143
|
- Associated entities may also be removed
|
|
1141
1144
|
|
|
1142
|
-
|
|
1143
|
-
If the device has multiple config entries, they must all be removed.
|
|
1145
|
+
Works only when the integration supports removing devices.
|
|
1144
1146
|
|
|
1145
1147
|
EXAMPLES:
|
|
1146
1148
|
- Remove orphaned device: ha_remove_device("abc123def456")
|
|
@@ -2145,17 +2145,26 @@ class ServiceTools:
|
|
|
2145
2145
|
),
|
|
2146
2146
|
),
|
|
2147
2147
|
],
|
|
2148
|
-
timeout_seconds: Annotated[
|
|
2148
|
+
timeout_seconds: Annotated[
|
|
2149
|
+
float,
|
|
2150
|
+
Field(
|
|
2151
|
+
ge=0,
|
|
2152
|
+
allow_inf_nan=False,
|
|
2153
|
+
description=(
|
|
2154
|
+
"Seconds to wait for a pending operation to finish before "
|
|
2155
|
+
"returning its status. 0 returns the current status at once."
|
|
2156
|
+
),
|
|
2157
|
+
),
|
|
2158
|
+
] = 10,
|
|
2149
2159
|
) -> dict[str, Any]:
|
|
2150
2160
|
"""
|
|
2151
2161
|
Get the status of one or more device operations with real-time WebSocket verification.
|
|
2152
2162
|
|
|
2153
|
-
|
|
2154
|
-
|
|
2155
|
-
|
|
2156
|
-
batch.
|
|
2163
|
+
Bulk checks poll all operations concurrently under one shared
|
|
2164
|
+
timeout_seconds window and report per-item failures inside
|
|
2165
|
+
detailed_results instead of aborting the batch.
|
|
2157
2166
|
|
|
2158
|
-
Use this to track
|
|
2167
|
+
Use this to track the operation_ids that ha_bulk_control returns.
|
|
2159
2168
|
For current entity states, use ha_get_state instead.
|
|
2160
2169
|
"""
|
|
2161
2170
|
try:
|
|
@@ -2211,7 +2220,15 @@ class ServiceTools:
|
|
|
2211
2220
|
# supplies the runtime default without a `| None` mypy would then
|
|
2212
2221
|
# require type-narrowing for at every use below `selector is None`.
|
|
2213
2222
|
] = cast(Any, None),
|
|
2214
|
-
parallel:
|
|
2223
|
+
parallel: Annotated[
|
|
2224
|
+
bool,
|
|
2225
|
+
Field(
|
|
2226
|
+
description=(
|
|
2227
|
+
"Dispatch operations concurrently (default) or one at a "
|
|
2228
|
+
"time when False."
|
|
2229
|
+
),
|
|
2230
|
+
),
|
|
2231
|
+
] = True,
|
|
2215
2232
|
ctx: Context | None = None,
|
|
2216
2233
|
selector: Annotated[
|
|
2217
2234
|
SkipValidation[BulkControlSelector] | None,
|
|
@@ -2234,10 +2251,38 @@ class ServiceTools:
|
|
|
2234
2251
|
] = None,
|
|
2235
2252
|
timeout_seconds: Annotated[
|
|
2236
2253
|
float | None,
|
|
2237
|
-
Field(
|
|
2254
|
+
Field(
|
|
2255
|
+
ge=0,
|
|
2256
|
+
le=60,
|
|
2257
|
+
allow_inf_nan=False,
|
|
2258
|
+
strict=True,
|
|
2259
|
+
description=(
|
|
2260
|
+
"Selector mode only: confirmation wait in seconds for every "
|
|
2261
|
+
"resolved entity. In operations mode set timeout_seconds on "
|
|
2262
|
+
"each operation instead; a top-level value is rejected in "
|
|
2263
|
+
"operations mode."
|
|
2264
|
+
),
|
|
2265
|
+
),
|
|
2238
2266
|
] = None,
|
|
2239
|
-
validate_first: Annotated[
|
|
2240
|
-
|
|
2267
|
+
validate_first: Annotated[
|
|
2268
|
+
bool,
|
|
2269
|
+
Field(
|
|
2270
|
+
strict=True,
|
|
2271
|
+
description=(
|
|
2272
|
+
"Selector mode only: report ENTITY_NOT_FOUND for a target "
|
|
2273
|
+
"that does not exist. In operations mode set "
|
|
2274
|
+
"validate_first on each operation instead; a top-level "
|
|
2275
|
+
"False is rejected in operations mode."
|
|
2276
|
+
),
|
|
2277
|
+
),
|
|
2278
|
+
] = True,
|
|
2279
|
+
dry_run: Annotated[
|
|
2280
|
+
bool,
|
|
2281
|
+
Field(
|
|
2282
|
+
strict=True,
|
|
2283
|
+
description="Selector mode only; True is rejected in operations mode.",
|
|
2284
|
+
),
|
|
2285
|
+
] = False,
|
|
2241
2286
|
) -> dict[str, Any]:
|
|
2242
2287
|
"""Manage explicit operations or one deterministic structural bulk action.
|
|
2243
2288
|
|
|
@@ -2449,8 +2494,22 @@ class ServiceTools:
|
|
|
2449
2494
|
@log_tool_usage
|
|
2450
2495
|
async def ha_call_event(
|
|
2451
2496
|
self,
|
|
2452
|
-
event_type:
|
|
2453
|
-
|
|
2497
|
+
event_type: Annotated[
|
|
2498
|
+
str,
|
|
2499
|
+
Field(
|
|
2500
|
+
description="Event type to fire, e.g. 'my_custom_event'.",
|
|
2501
|
+
),
|
|
2502
|
+
],
|
|
2503
|
+
data: Annotated[
|
|
2504
|
+
dict[str, Any] | None,
|
|
2505
|
+
JSON_STRING_COERCION,
|
|
2506
|
+
Field(
|
|
2507
|
+
description=(
|
|
2508
|
+
"Optional event payload, delivered to subscribers as the "
|
|
2509
|
+
"event's data (trigger.event.data in an automation)."
|
|
2510
|
+
),
|
|
2511
|
+
),
|
|
2512
|
+
] = None,
|
|
2454
2513
|
) -> dict[str, Any]:
|
|
2455
2514
|
"""Execute a custom event on the Home Assistant event bus.
|
|
2456
2515
|
|
|
@@ -644,13 +644,9 @@ class SystemTools:
|
|
|
644
644
|
connectivity; available information varies by installation type and
|
|
645
645
|
loaded integrations. Optional sections are selected with `include`.
|
|
646
646
|
|
|
647
|
-
The result
|
|
648
|
-
update_available}
|
|
649
|
-
|
|
650
|
-
proactively tell the user to upgrade. Present on every install type
|
|
651
|
-
including the HA app; omitted for the ``unknown`` version, when
|
|
652
|
-
``HA_MCP_DISABLE_UPDATE_CHECK`` is set, or when the update check itself
|
|
653
|
-
failed.
|
|
647
|
+
The result may include ``ha_mcp_update`` ``{current, latest,
|
|
648
|
+
update_available}``. When update_available is true, tell the user a
|
|
649
|
+
newer ha-mcp release is available.
|
|
654
650
|
|
|
655
651
|
EXAMPLES:
|
|
656
652
|
- ha_get_system_health(include="repairs,zha_network,zwave_network,config_check")
|
|
@@ -118,9 +118,10 @@ class TraceTools:
|
|
|
118
118
|
|
|
119
119
|
Traces show what triggered a run, which conditions passed or failed,
|
|
120
120
|
which actions executed (for 'choose', which branch was taken), any
|
|
121
|
-
errors, and variable values during execution.
|
|
122
|
-
|
|
123
|
-
|
|
121
|
+
errors, and variable values during execution. Home Assistant keeps
|
|
122
|
+
only the most recent runs of each automation or script (its
|
|
123
|
+
stored_traces setting), so older runs are not available. The 'state'
|
|
124
|
+
field shows 'stopped' (completed), 'running', or an error state.
|
|
124
125
|
|
|
125
126
|
USAGE MODES:
|
|
126
127
|
1. List recent traces (omit run_id): returns a summary of recent runs
|
|
@@ -397,9 +397,10 @@ class YamlConfigTools:
|
|
|
397
397
|
configuration.yaml carries the ``frontend: themes:`` include (e.g.
|
|
398
398
|
``!include_dir_merge_named themes``); this tool cannot add that include
|
|
399
399
|
(``frontend`` is not an allowed key). ``automation``, ``script`` and
|
|
400
|
-
``scene`` keys are accepted only when ``file`` is a ``packages/*.yaml
|
|
401
|
-
|
|
402
|
-
|
|
400
|
+
``scene`` keys are accepted only when ``file`` is a ``packages/*.yaml``
|
|
401
|
+
and the operator has turned on that key's packages setting (each is
|
|
402
|
+
off by default); writes of those keys to ``configuration.yaml`` are
|
|
403
|
+
rejected; use the storage-mode tools.
|
|
403
404
|
|
|
404
405
|
Check ``post_action`` in the response: most keys need a full HA
|
|
405
406
|
restart. For ``themes/*.yaml`` this tool *performs* the reload itself
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/MANIFEST.sha256
RENAMED
|
File without changes
|
{ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/REQUIRES.txt
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/_install_hints.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/_warnings.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/apps/__init__.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/apps/app.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/apps/approval.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/apps/choice.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/apps/config.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/apps/file_upload.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/apps/form.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/apps/generative.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/cli/__init__.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/cli/__main__.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/cli/apps_dev.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/cli/auth.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/cli/cimd.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/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-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/cli/deploy/state.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/src/ha_mcp/_vendor/fastmcp/cli/discovery.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.5.0.dev2757 → ha_mcp_dev-8.5.0.dev2759}/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
|