ha-mcp-dev 8.6.0.dev2864__tar.gz → 8.6.0.dev2866__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/PKG-INFO +3 -3
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/README.md +2 -2
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/pyproject.toml +1 -1
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/pyproject.toml.orig +1 -1
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/server.py +3 -26
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/server_tool_text.py +50 -7
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/settings_ui/locales/en.json +1 -1
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/settings_ui/settings_js/05_feature_flags.js +1 -1
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/backup.py +5 -5
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/transforms/categorized_search.py +72 -3
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/LICENSE +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/__main__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_pypi_marker +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_rich_compat.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/LICENSE +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/MANIFEST.sha256 +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/REQUIRES.txt +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/VENDORED +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/_compat.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/_install_hints.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/_warnings.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/apps/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/apps/app.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/apps/approval.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/apps/choice.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/apps/config.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/apps/file_upload.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/apps/form.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/apps/generative.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/cli/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/cli/__main__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/cli/apps_dev.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/cli/auth.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/cli/cimd.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/cli/cli.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/cli/client.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/cli/deploy/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/cli/deploy/authentication.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/cli/deploy/command.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/cli/deploy/configuration.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/cli/deploy/credentials.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/cli/deploy/horizon_client.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/cli/deploy/output.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/cli/deploy/state.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/cli/discovery.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/cli/generate.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/cli/install/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/cli/install/claude_code.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/cli/install/claude_desktop.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/cli/install/cursor.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/cli/install/gemini_cli.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/cli/install/goose.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/cli/install/mcp_json.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/cli/install/shared.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/cli/install/stdio.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/cli/run.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/client/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/client/_sdk_context_shim.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/client/auth/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/client/auth/bearer.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/client/auth/client_credentials.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/client/auth/oauth.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/client/caching.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/client/client.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/client/dependencies.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/client/elicitation.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/client/extension_hooks.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/client/group.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/client/logging.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/client/messages.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/client/mixins/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/client/mixins/prompts.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/client/mixins/resources.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/client/mixins/tools.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/client/oauth_callback.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/client/progress.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/client/roots.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/client/sampling/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/client/sampling/handlers/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/client/sampling/handlers/anthropic.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/client/sampling/handlers/google_genai.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/client/sampling/handlers/openai.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/client/telemetry.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/client/transports/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/client/transports/base.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/client/transports/config.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/client/transports/http.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/client/transports/inference.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/client/transports/memory.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/client/transports/sse.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/client/transports/stdio.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/contrib/README.md +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/contrib/bulk_tool_caller/README.md +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/contrib/bulk_tool_caller/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/contrib/bulk_tool_caller/bulk_tool_caller.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/contrib/bulk_tool_caller/example.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/contrib/component_manager/README.md +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/contrib/component_manager/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/contrib/component_manager/component_manager.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/contrib/component_manager/example.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/contrib/mcp_mixin/README.md +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/contrib/mcp_mixin/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/contrib/mcp_mixin/example.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/contrib/mcp_mixin/mcp_mixin.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/decorators.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/dependencies.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/exceptions.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/experimental/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/experimental/transforms/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/experimental/transforms/code_mode.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/mcp_config.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/prompts/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/prompts/base.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/prompts/function_prompt.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/py.typed +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/resources/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/resources/base.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/resources/function_resource.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/resources/security.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/resources/template.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/resources/types.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/server/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/server/auth/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/server/auth/auth.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/server/auth/cimd.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/server/auth/handlers/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/server/auth/handlers/authorize.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/server/auth/identity_assertion.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/server/auth/jwt_issuer.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/server/auth/middleware.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/server/auth/oauth_proxy/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/server/auth/oauth_proxy/consent.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/server/auth/oauth_proxy/models.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/server/auth/oauth_proxy/proxy.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/server/auth/oauth_proxy/ui.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/server/auth/oauth_proxy/upstream.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/server/auth/oidc_proxy.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/auth0.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/aws.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/azure.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/clerk.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/debug.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/descope.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/discord.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/github.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/google.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/huggingface.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/in_memory.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/introspection.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/jwt.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/keycloak.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/oci.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/propelauth.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/scalekit.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/supabase.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/workos.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/server/auth/redirect_validation.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/server/auth/ssrf.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/server/caching.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/server/completions.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/server/context.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/server/dependencies.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/server/elicitation.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/server/event_store.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/server/extensions.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/server/http.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/server/lifespan.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/server/low_level.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/server/middleware/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/server/middleware/authorization.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/server/middleware/caching.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/server/middleware/dereference.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/server/middleware/error_handling.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/server/middleware/logging.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/server/middleware/middleware.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/server/middleware/ping.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/server/middleware/rate_limiting.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/server/middleware/response_limiting.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/server/middleware/timing.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/server/middleware/tool_injection.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/server/mixins/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/server/mixins/lifespan.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/server/mixins/mcp_operations.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/server/mixins/transport.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/server/providers/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/server/providers/addressing.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/server/providers/aggregate.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/server/providers/base.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/server/providers/fastmcp_provider.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/server/providers/filesystem.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/server/providers/filesystem_discovery.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/server/providers/local_provider/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/server/providers/local_provider/decorators/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/server/providers/local_provider/decorators/prompts.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/server/providers/local_provider/decorators/resources.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/server/providers/local_provider/decorators/tools.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/server/providers/local_provider/local_provider.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/server/providers/openapi/README.md +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/server/providers/openapi/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/server/providers/openapi/components.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/server/providers/openapi/provider.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/server/providers/openapi/routing.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/server/providers/prefab_payload.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/server/providers/prefab_synthesis.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/server/providers/proxy.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/server/providers/skills/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/server/providers/skills/_common.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/server/providers/skills/claude_provider.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/server/providers/skills/directory_provider.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/server/providers/skills/skill_provider.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/server/providers/skills/vendor_providers.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/server/providers/wrapped_provider.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/server/server.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/server/session_scoped_event_store.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/server/sessions.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/server/telemetry.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/server/transforms/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/server/transforms/catalog.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/server/transforms/namespace.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/server/transforms/prompts_as_tools.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/server/transforms/resources_as_tools.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/server/transforms/search/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/server/transforms/search/base.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/server/transforms/search/bm25.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/server/transforms/search/regex.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/server/transforms/tool_transform.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/server/transforms/version_filter.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/server/transforms/visibility.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/settings.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/telemetry.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/tools/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/tools/base.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/tools/function_parsing.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/tools/function_tool.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/tools/tool_transform.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/types.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/utilities/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/utilities/asgi_transport.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/utilities/async_utils.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/utilities/auth.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/utilities/authorization.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/utilities/cli.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/utilities/components.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/utilities/docstring_parsing.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/utilities/exceptions.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/utilities/http.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/utilities/inspect.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/utilities/json_schema.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/utilities/json_schema_type.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/utilities/lifespan.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/utilities/logging.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/utilities/mcp_server_config/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/utilities/mcp_server_config/v1/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/utilities/mcp_server_config/v1/environments/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/utilities/mcp_server_config/v1/environments/base.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/utilities/mcp_server_config/v1/environments/uv.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/utilities/mcp_server_config/v1/mcp_server_config.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/utilities/mcp_server_config/v1/schema.json +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/utilities/mcp_server_config/v1/sources/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/utilities/mcp_server_config/v1/sources/base.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/utilities/mcp_server_config/v1/sources/filesystem.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/utilities/mime.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/utilities/openapi/README.md +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/utilities/openapi/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/utilities/openapi/director.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/utilities/openapi/formatters.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/utilities/openapi/json_schema_converter.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/utilities/openapi/models.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/utilities/openapi/parser.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/utilities/openapi/schemas.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/utilities/pagination.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/utilities/prefab.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/utilities/skills.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/utilities/tasks.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/utilities/tests.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/utilities/timeout.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/utilities/token_cache.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/utilities/types.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/utilities/ui.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/utilities/version_check.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/utilities/versions.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/LICENSE +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/MANIFEST.sha256 +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/REQUIRES.txt +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/VENDORED +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/cli/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/cli/claude.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/cli/cli.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/client/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/client/__main__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/client/_input_required.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/client/_memory.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/client/_probe.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/client/_transport.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/client/auth/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/client/auth/exceptions.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/client/auth/extensions/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/client/auth/extensions/client_credentials.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/client/auth/extensions/identity_assertion.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/client/auth/oauth2.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/client/auth/utils.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/client/caching.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/client/client.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/client/context.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/client/extension.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/client/session.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/client/session_group.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/client/sse.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/client/stdio.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/client/streamable_http.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/client/subscriptions.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/os/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/os/posix/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/os/posix/utilities.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/os/win32/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/os/win32/utilities.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/py.typed +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/server/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/server/__main__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/server/_otel.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/server/_streamable_http_modern.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/server/apps.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/server/auth/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/server/auth/errors.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/server/auth/handlers/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/server/auth/handlers/authorize.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/server/auth/handlers/metadata.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/server/auth/handlers/register.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/server/auth/handlers/revoke.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/server/auth/handlers/token.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/server/auth/json_response.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/server/auth/middleware/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/server/auth/middleware/auth_context.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/server/auth/middleware/bearer_auth.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/server/auth/middleware/client_auth.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/server/auth/provider.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/server/auth/routes.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/server/auth/settings.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/server/caching.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/server/connection.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/server/context.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/server/elicitation.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/server/extension.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/server/fastmcp.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/server/lowlevel/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/server/lowlevel/helper_types.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/server/lowlevel/server.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/server/mcpserver/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/server/mcpserver/context.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/server/mcpserver/exceptions.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/server/mcpserver/prompts/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/server/mcpserver/prompts/base.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/server/mcpserver/prompts/manager.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/server/mcpserver/resolve.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/server/mcpserver/resources/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/server/mcpserver/resources/base.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/server/mcpserver/resources/resource_manager.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/server/mcpserver/resources/templates.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/server/mcpserver/resources/types.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/server/mcpserver/server.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/server/mcpserver/tools/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/server/mcpserver/tools/base.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/server/mcpserver/tools/tool_manager.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/server/mcpserver/utilities/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/server/mcpserver/utilities/context_injection.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/server/mcpserver/utilities/func_metadata.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/server/mcpserver/utilities/logging.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/server/mcpserver/utilities/types.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/server/models.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/server/request_state.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/server/runner.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/server/session.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/server/sse.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/server/stdio.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/server/streamable_http.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/server/streamable_http_manager.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/server/subscriptions.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/server/transport_security.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/server/validation.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/shared/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/shared/_callable_inspection.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/shared/_compat.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/shared/_context_streams.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/shared/_httpx_utils.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/shared/_otel.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/shared/_stream_protocols.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/shared/auth.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/shared/auth_utils.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/shared/context.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/shared/direct_dispatcher.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/shared/dispatcher.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/shared/exceptions.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/shared/extension.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/shared/inbound.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/shared/jsonrpc_dispatcher.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/shared/memory.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/shared/message.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/shared/metadata_utils.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/shared/path_security.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/shared/peer.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/shared/subscriptions.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/shared/tool_name_validation.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/shared/transport_context.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/shared/uri_template.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/types/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/types/jsonrpc.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/types/methods.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp/types/version.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp_types/LICENSE +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp_types/MANIFEST.sha256 +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp_types/REQUIRES.txt +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp_types/VENDORED +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp_types/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp_types/_types.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp_types/_v2025_11_25/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp_types/_v2026_07_28/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp_types/_wire_base.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp_types/jsonrpc.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp_types/methods.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp_types/py.typed +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/mcp_types/version.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/requirements.txt +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/websockets/LICENSE +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/websockets/MANIFEST.sha256 +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/websockets/VENDORED +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/websockets/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/websockets/__main__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/websockets/asyncio/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/websockets/asyncio/client.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/websockets/asyncio/connection.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/websockets/asyncio/messages.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/websockets/asyncio/router.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/websockets/asyncio/server.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/websockets/auth.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/websockets/cli.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/websockets/client.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/websockets/connection.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/websockets/datastructures.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/websockets/exceptions.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/websockets/extensions/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/websockets/extensions/base.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/websockets/extensions/permessage_deflate.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/websockets/frames.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/websockets/headers.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/websockets/http11.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/websockets/imports.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/websockets/legacy/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/websockets/legacy/auth.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/websockets/legacy/client.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/websockets/legacy/exceptions.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/websockets/legacy/framing.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/websockets/legacy/handshake.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/websockets/legacy/http.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/websockets/legacy/protocol.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/websockets/legacy/server.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/websockets/protocol.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/websockets/proxy.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/websockets/py.typed +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/websockets/server.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/websockets/streams.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/websockets/sync/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/websockets/sync/client.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/websockets/sync/connection.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/websockets/sync/messages.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/websockets/sync/router.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/websockets/sync/server.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/websockets/sync/utils.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/websockets/trio/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/websockets/trio/client.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/websockets/trio/connection.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/websockets/trio/messages.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/websockets/trio/router.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/websockets/trio/server.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/websockets/trio/utils.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/websockets/typing.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/websockets/uri.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/websockets/utils.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/websockets/version.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_version.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/auth/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/auth/consent_form.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/auth/oidc_compat.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/auth/provider.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/backup_manager.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/browser_landing.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/client/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/client/admin_routes.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/client/rest_client.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/client/supervisor_client.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/client/websocket_client.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/client/websocket_listener.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/config.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/config_backup.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/config_overrides.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/config_registry.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/config_settings.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/dashboard_screenshot/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/dashboard_screenshot/capture.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/dashboard_screenshot/content.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/dashboard_screenshot/paths.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/dashboard_screenshot/provision.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/dashboard_screenshot/theme_guard.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/errors.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/ha_request_queue.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/hacs_auto_refresh.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/http_transport.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/llm_exposure.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/log_filters.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/policy/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/policy/approval_queue.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/policy/decision_pin.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/policy/decisions.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/policy/editing.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/policy/evaluator.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/policy/events.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/policy/handlers.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/policy/middleware.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/policy/model.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/policy/mrtr.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/policy/persistence.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/policy/server_channels.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/policy/value_sources.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/py.typed +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/read_only.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/redaction.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/renamed_tools.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/resources/skills-vendor/LICENSE +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/SKILL.md +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/appdaemon.md +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/automation-actions.md +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/backups.md +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/blueprint-guide.md +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/dashboard-cards.md +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/dashboard-guide.md +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/device-control.md +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/domain-docs.md +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/examples.yaml +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/helper-selection.md +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/safe-refactoring.md +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/scenes.md +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/template-guidelines.md +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/triggers-and-conditions.md +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/yaml-only-integrations.md +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/server_lifespan.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/settings_ui/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/settings_ui/_handlers_advanced.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/settings_ui/_handlers_backups.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/settings_ui/_handlers_fs.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/settings_ui/_handlers_server.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/settings_ui/_handlers_theme.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/settings_ui/_handlers_tools.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/settings_ui/_i18n.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/settings_ui/_locale_policy.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/settings_ui/_persistence.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/settings_ui/_supervisor.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/settings_ui/_theme.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/settings_ui/_tools_meta.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/settings_ui/locales/README.md +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/settings_ui/locales/az.json +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/settings_ui/locales/cs.json +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/settings_ui/locales/de.json +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/settings_ui/locales/eo.json +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/settings_ui/locales/es.json +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/settings_ui/locales/fr.json +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/settings_ui/locales/it.json +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/settings_ui/locales/ko.json +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/settings_ui/locales/nl.json +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/settings_ui/locales/pl.json +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/settings_ui/locales/ru.json +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/settings_ui/locales/sv.json +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/settings_ui/locales/tlh.json +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/settings_ui/locales/zh-Hans.json +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/settings_ui/locales/zh-Hant.json +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/settings_ui/settings.css +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/settings_ui/settings.html +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/settings_ui/settings_js/01_i18n_state.js +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/settings_ui/settings_js/02_tools_restart.js +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/settings_ui/settings_js/03_render_save.js +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/settings_ui/settings_js/04_backups.js +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/settings_ui/settings_js/06_policy_cards.js +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/settings_ui/settings_js/07_policy_actions.js +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/settings_ui/settings_js/08_advanced.js +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/settings_ui/settings_js/09_prefs_visibility.js +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/smoke_test.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/stdio_settings_sidecar.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/strict_bps.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tool_dispatch.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/auto_backup.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/best_practice_checker.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/best_practice_result.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/best_practice_variables.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/blueprint_sources.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/blueprint_substitute.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/blueprint_write.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/bulk_selector.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/coercion.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/component_api.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/component_config_entries.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/component_config_reads.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/component_dashboard_edit.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/component_devices.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/component_registries.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/component_registry_lookup.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/config_entry_flow.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/config_entry_flow_form.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/config_entry_flow_menu.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/config_entry_flow_walker.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/config_entry_identity.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/config_entry_reconfigure.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/config_entry_reload_watch.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/config_helpers/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/config_helpers/create.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/config_helpers/flow.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/config_helpers/listing.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/config_helpers/registry.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/config_helpers/schemas.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/config_helpers/update.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/config_helpers/validation.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/config_write_helpers.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/dashboard_edit_errors.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/dashboard_list_checks.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/device_control.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/device_enrichment.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/diagnostics_helpers.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/entity_registration.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/entity_update_fields.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/error_log_parsing.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/hacs_registration.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/helpers.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/integration_reconfigure.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/log_common.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/log_sources.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/log_sources_fault.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/log_sources_supervisor.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/radio/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/radio/base.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/radio/matter.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/radio/thread.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/radio/zigbee.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/radio/zwave.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/reference_validator.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/registry.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/renamed_tool_middleware.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/response_helpers.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/scene_discovery.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/search/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/search/base.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/search/component.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/search/entities.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/search/legacy.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/search/modes.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/search/overview.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/search/response.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/search/state.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/smart_search/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/smart_search/_base.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/smart_search/_config.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/smart_search/_deep.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/smart_search/_entities.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/smart_search/_fetch.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/smart_search/_graph.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/smart_search/_overview.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/smart_search/_scenes.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/smart_search/_scoring.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/tool_search_hint_middleware.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/tools_addons.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/tools_areas.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/tools_assist_pipeline.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/tools_blueprints.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/tools_bug_report.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/tools_calendar.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/tools_camera.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/tools_categories.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/tools_code.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/tools_config_automations.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/tools_config_dashboards.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/tools_config_helpers.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/tools_config_scenes.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/tools_config_scripts.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/tools_dashboard_screenshot.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/tools_dev.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/tools_energy.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/tools_entities.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/tools_filesystem.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/tools_groups.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/tools_hacs.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/tools_history.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/tools_integrations.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/tools_labels.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/tools_logs.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/tools_radio.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/tools_registry.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/tools_resources.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/tools_search.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/tools_security_policy.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/tools_service.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/tools_services.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/tools_system.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/tools_themes.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/tools_todo.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/tools_traces.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/tools_updates.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/tools_utility.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/tools_voice_assistant.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/tools_yaml_config.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/tools_yaml_read.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/tools_zones.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/util_helpers.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/validation_middleware.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/tools/ws_waiters.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/transforms/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/transforms/component_search.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/transforms/lite_docstrings.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/transforms/write_tool_note.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/transport_security.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/update_check.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/utils/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/utils/config_hash.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/utils/config_write_lock.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/utils/dashboard_patch.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/utils/data_paths.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/utils/device_registry_semantics.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/utils/domain_handlers.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/utils/entity_membership.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/utils/fuzzy_search.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/utils/kill_signal_diagnostics.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/utils/mcp_client_host.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/utils/operation_manager.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/utils/python_sandbox.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/utils/registry_update_lock.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/utils/skill_loader.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/utils/usage_logger.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/visibility/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/visibility/enforcement.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/visibility/model.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/visibility/persistence.py +0 -0
- {ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/visibility/resolver.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: ha-mcp-dev
|
|
3
|
-
Version: 8.6.0.
|
|
3
|
+
Version: 8.6.0.dev2866
|
|
4
4
|
Summary: Home Assistant MCP Server - Complete control of Home Assistant through MCP
|
|
5
5
|
Keywords: mcp,home-assistant,ai,automation,smart-home
|
|
6
6
|
Author: Julien
|
|
@@ -407,7 +407,7 @@ Set ENABLE_TOOL_SEARCH=true (or toggle the option in the HA app). The full catal
|
|
|
407
407
|
|
|
408
408
|
| Tool | Purpose |
|
|
409
409
|
|------|---------|
|
|
410
|
-
| `ha_search_tools` | BM25 keyword search across all tools.
|
|
410
|
+
| `ha_search_tools` | BM25 English-keyword search across all tools, pinned ones included. Hidden tools return name, description, parameters, and annotations (`readOnlyHint` / `destructiveHint`) so the agent can pick the right one; a pinned tool returns a name-only stub (`pinned: true`) pointing back at the tool list, and does not use up a result slot. |
|
|
411
411
|
| `ha_call_read_tool` | Execute a `readOnlyHint` tool by name. Safe — clients can auto-approve. |
|
|
412
412
|
| `ha_call_write_tool` | Execute a write tool that creates or updates data. |
|
|
413
413
|
| `ha_call_delete_tool` | Execute a tool that removes / deletes data. |
|
|
@@ -419,7 +419,7 @@ A `ha_manage_*` tool combines several operations, so it is reachable from more t
|
|
|
419
419
|
| Setting | Default | Description |
|
|
420
420
|
|---------|---------|-------------|
|
|
421
421
|
| `ENABLE_TOOL_SEARCH` | `false` | Replace full tool catalog with search-based discovery (tools deferred behind on-demand search). |
|
|
422
|
-
| `TOOL_SEARCH_MAX_RESULTS` | `5` | Max
|
|
422
|
+
| `TOOL_SEARCH_MAX_RESULTS` | `5` | Max hidden tools returned per `ha_search_tools` call (range 2–10); a pinned tool that ranks inside that top count is added as a name-only stub on top of it. |
|
|
423
423
|
| `PINNED_TOOLS` | empty | Comma-separated tool names to keep always visible. The web settings UI is the primary way to manage this. |
|
|
424
424
|
|
|
425
425
|
### When to enable
|
|
@@ -347,7 +347,7 @@ Set ENABLE_TOOL_SEARCH=true (or toggle the option in the HA app). The full catal
|
|
|
347
347
|
|
|
348
348
|
| Tool | Purpose |
|
|
349
349
|
|------|---------|
|
|
350
|
-
| `ha_search_tools` | BM25 keyword search across all tools.
|
|
350
|
+
| `ha_search_tools` | BM25 English-keyword search across all tools, pinned ones included. Hidden tools return name, description, parameters, and annotations (`readOnlyHint` / `destructiveHint`) so the agent can pick the right one; a pinned tool returns a name-only stub (`pinned: true`) pointing back at the tool list, and does not use up a result slot. |
|
|
351
351
|
| `ha_call_read_tool` | Execute a `readOnlyHint` tool by name. Safe — clients can auto-approve. |
|
|
352
352
|
| `ha_call_write_tool` | Execute a write tool that creates or updates data. |
|
|
353
353
|
| `ha_call_delete_tool` | Execute a tool that removes / deletes data. |
|
|
@@ -359,7 +359,7 @@ A `ha_manage_*` tool combines several operations, so it is reachable from more t
|
|
|
359
359
|
| Setting | Default | Description |
|
|
360
360
|
|---------|---------|-------------|
|
|
361
361
|
| `ENABLE_TOOL_SEARCH` | `false` | Replace full tool catalog with search-based discovery (tools deferred behind on-demand search). |
|
|
362
|
-
| `TOOL_SEARCH_MAX_RESULTS` | `5` | Max
|
|
362
|
+
| `TOOL_SEARCH_MAX_RESULTS` | `5` | Max hidden tools returned per `ha_search_tools` call (range 2–10); a pinned tool that ranks inside that top count is added as a name-only stub on top of it. |
|
|
363
363
|
| `PINNED_TOOLS` | empty | Comma-separated tool names to keep always visible. The web settings UI is the primary way to manage this. |
|
|
364
364
|
|
|
365
365
|
### When to enable
|
|
@@ -4,7 +4,7 @@ build-backend = "uv_build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "ha-mcp-dev"
|
|
7
|
-
version = "8.6.0.
|
|
7
|
+
version = "8.6.0.dev2866"
|
|
8
8
|
description = "Home Assistant MCP Server - Complete control of Home Assistant through MCP"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.13,<3.15"
|
|
@@ -4,7 +4,7 @@ build-backend = "uv_build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "ha-mcp-dev"
|
|
7
|
-
version = "8.6.0.
|
|
7
|
+
version = "8.6.0.dev2866"
|
|
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
|
|
@@ -28,6 +28,7 @@ from .server_tool_text import (
|
|
|
28
28
|
SEARCH_KEYWORDS,
|
|
29
29
|
SEARCH_TOOL_DESCRIPTION,
|
|
30
30
|
SKILL_USE_BEFORE_KEYWORDS,
|
|
31
|
+
TOOL_DISCOVERY_INSTRUCTIONS,
|
|
31
32
|
)
|
|
32
33
|
from .tools.helpers import raise_tool_error
|
|
33
34
|
from .transforms import DEFAULT_PINNED_TOOLS
|
|
@@ -456,32 +457,8 @@ class HomeAssistantSmartMCPServer:
|
|
|
456
457
|
|
|
457
458
|
# Append tool search instructions when enabled
|
|
458
459
|
if self.settings.enable_tool_search:
|
|
459
|
-
instructions += (
|
|
460
|
-
"
|
|
461
|
-
"This server uses search-based tool discovery. Most tools "
|
|
462
|
-
"are NOT listed directly \u2014 use ha_search_tools to find them.\n\n"
|
|
463
|
-
"WORKFLOW:\n"
|
|
464
|
-
'1. Call ha_search_tools(query="...") to find relevant tools\n'
|
|
465
|
-
"2. Results include name, description, parameters, and "
|
|
466
|
-
"annotations (readOnlyHint/destructiveHint)\n"
|
|
467
|
-
"3. Execute the discovered tool \u2014 two options:\n"
|
|
468
|
-
" a) DIRECT CALL (preferred): Call the tool directly by "
|
|
469
|
-
"name. All discovered tools are callable without a proxy.\n"
|
|
470
|
-
" b) VIA PROXY: For permission-gated execution, use the "
|
|
471
|
-
"matching proxy:\n"
|
|
472
|
-
" - ha_call_read_tool \u2014 safe, read-only operations\n"
|
|
473
|
-
" - ha_call_write_tool \u2014 creates or modifies data\n"
|
|
474
|
-
" - ha_call_delete_tool \u2014 removes data permanently\n\n"
|
|
475
|
-
"Once you know a tool\u2019s name, you do NOT need to search "
|
|
476
|
-
"again \u2014 call it directly.\n\n"
|
|
477
|
-
f"A few default tools are listed directly "
|
|
478
|
-
f"({', '.join(DEFAULT_PINNED_TOOLS)}) — these are the "
|
|
479
|
-
f"starting pins, and users can unpin the non-mandatory "
|
|
480
|
-
f"ones via the Tools tab in the settings UI, so the "
|
|
481
|
-
f"actual visible set may be a subset of this list. "
|
|
482
|
-
f"Everything else must be discovered via search.\n\n"
|
|
483
|
-
"DO NOT assume a capability is unavailable because you "
|
|
484
|
-
"don't see a direct tool for it. ALWAYS search first."
|
|
460
|
+
instructions += TOOL_DISCOVERY_INSTRUCTIONS.format(
|
|
461
|
+
pinned=", ".join(DEFAULT_PINNED_TOOLS)
|
|
485
462
|
)
|
|
486
463
|
|
|
487
464
|
return instructions
|
|
@@ -9,12 +9,15 @@ from __future__ import annotations
|
|
|
9
9
|
|
|
10
10
|
# Description for the unified search tool
|
|
11
11
|
SEARCH_TOOL_DESCRIPTION = (
|
|
12
|
-
"Search ALL Home Assistant tools by keyword. Returns matching
|
|
13
|
-
"with descriptions, parameters, and annotations
|
|
14
|
-
"Categories: entities, states, automations,
|
|
15
|
-
"helpers, HACS, calendar, zones, labels, groups,
|
|
16
|
-
"history, statistics, devices, integrations, services,
|
|
17
|
-
"todo, camera, blueprints, system, and more.\n\n"
|
|
12
|
+
"Search ALL Home Assistant tools by ENGLISH keyword. Returns matching "
|
|
13
|
+
"tools with descriptions, parameters, and annotations "
|
|
14
|
+
"(read/write/delete). Categories: entities, states, automations, "
|
|
15
|
+
"scripts, dashboards, helpers, HACS, calendar, zones, labels, groups, "
|
|
16
|
+
"areas, floors, history, statistics, devices, integrations, services, "
|
|
17
|
+
"backups, todo, camera, blueprints, system, and more.\n\n"
|
|
18
|
+
"Tools already in your tool list are callable directly \u2014 no search "
|
|
19
|
+
"needed. If one matches a search, it comes back as a name-only stub "
|
|
20
|
+
"(pinned: true); use the schema you already have.\n\n"
|
|
18
21
|
"WORKFLOW:\n"
|
|
19
22
|
"1. ha_search_tools(query='...') \u2014 find tools (this tool)\n"
|
|
20
23
|
"2. Execute: call the tool DIRECTLY by name (preferred), or use "
|
|
@@ -32,6 +35,42 @@ SEARCH_TOOL_DESCRIPTION = (
|
|
|
32
35
|
"Most tools are discoverable only through this search."
|
|
33
36
|
)
|
|
34
37
|
|
|
38
|
+
# Appended to the server instructions when tool search is on; ``{pinned}``
|
|
39
|
+
# is the comma-joined DEFAULT_PINNED_TOOLS.
|
|
40
|
+
TOOL_DISCOVERY_INSTRUCTIONS = (
|
|
41
|
+
"\n\n## Tool Discovery\n"
|
|
42
|
+
"Tools already in your tool list are callable directly — "
|
|
43
|
+
"do not search for them. Once you know any tool’s name, "
|
|
44
|
+
"call it directly; never search for the same tool twice.\n\n"
|
|
45
|
+
"Most other tools are NOT listed directly — use "
|
|
46
|
+
"ha_search_tools to find them.\n\n"
|
|
47
|
+
"WORKFLOW:\n"
|
|
48
|
+
'1. Call ha_search_tools(query="...") with ENGLISH keywords '
|
|
49
|
+
"naming the operation (e.g. 'get entity state'). Translate "
|
|
50
|
+
"other languages first; entity, area and device names keep "
|
|
51
|
+
"their original spelling.\n"
|
|
52
|
+
"2. Results include name, description, parameters, and "
|
|
53
|
+
"annotations (readOnlyHint/destructiveHint). A tool already "
|
|
54
|
+
"in your list comes back as a name-only stub (pinned: true) "
|
|
55
|
+
"— use the schema you already have.\n"
|
|
56
|
+
"3. Execute the discovered tool — two options:\n"
|
|
57
|
+
" a) DIRECT CALL (preferred): Call the tool directly by "
|
|
58
|
+
"name. All discovered tools are callable without a proxy.\n"
|
|
59
|
+
" b) VIA PROXY: For permission-gated execution, use the "
|
|
60
|
+
"matching proxy:\n"
|
|
61
|
+
" - ha_call_read_tool — safe, read-only operations\n"
|
|
62
|
+
" - ha_call_write_tool — creates or modifies data\n"
|
|
63
|
+
" - ha_call_delete_tool — removes data permanently\n\n"
|
|
64
|
+
"A few default tools are listed directly "
|
|
65
|
+
"({pinned}) — these are the "
|
|
66
|
+
"starting pins, and users can unpin the non-mandatory "
|
|
67
|
+
"ones via the Tools tab in the settings UI, so the "
|
|
68
|
+
"actual visible set may be a subset of this list. "
|
|
69
|
+
"Everything else must be discovered via search.\n\n"
|
|
70
|
+
"DO NOT assume a capability is unavailable because you "
|
|
71
|
+
"don't see a direct tool for it. ALWAYS search first."
|
|
72
|
+
)
|
|
73
|
+
|
|
35
74
|
# Extra keywords appended to tool descriptions for BM25 ranking.
|
|
36
75
|
# Applied unconditionally via SearchKeywordsTransform so they also
|
|
37
76
|
# improve retrieval for Claude's native deferred-tool search on
|
|
@@ -72,8 +111,12 @@ SEARCH_KEYWORDS: dict[str, str] = {
|
|
|
72
111
|
"counter timer input_datetime input_select"
|
|
73
112
|
),
|
|
74
113
|
"ha_get_entity": ("get entity state attributes details single specific entity_id"),
|
|
114
|
+
# #2576: BM25 has no stemming, so "lights" never matched "light". No
|
|
115
|
+
# control verbs (on/off/turn) here: they would pull "turn off lights"
|
|
116
|
+
# onto this read tool.
|
|
75
117
|
"ha_get_state": (
|
|
76
|
-
"get current state value single entity check status bulk multiple states"
|
|
118
|
+
"get current state value single entity check status bulk multiple states "
|
|
119
|
+
"which lights"
|
|
77
120
|
),
|
|
78
121
|
"ha_config_set_automation": (
|
|
79
122
|
"create update modify edit automation triggers conditions actions "
|
{ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/settings_ui/locales/en.json
RENAMED
|
@@ -132,7 +132,7 @@
|
|
|
132
132
|
"features.enable_tool_search.label": "Enable tool search",
|
|
133
133
|
"features.enable_tool_search.help": "Replace the full tool catalog with search-based discovery. Reduces idle context by roughly 90%, to about 5K tokens. ⚠️ Do NOT enable this in clients with their own built-in tool search / deferred tools (claude.ai, Claude Desktop, Claude Code) — the two search layers conflict, and the client's built-in tool search is the better choice there; leave this off. Whether tools are deferred depends on your client and model combination: use this when your setup loads the full catalog up front — models without native deferred tools (e.g. Gemini, OpenAI-compatible local models, Claude Haiku), clients that inline all tool schemas regardless of model (e.g. GitHub Copilot CLI), or smaller context windows. Some Codex models and ChatGPT include deferred tools too — check your client/model directly to confirm its features so you don't leave this enabled unnecessarily. Tools are found via ha_search_tools and executed via categorized proxies (read/write/delete). Requires restart to take effect.",
|
|
134
134
|
"features.tool_search_max_results.label": "Tool search max results",
|
|
135
|
-
"features.tool_search_max_results.help": "Maximum number of tools returned
|
|
135
|
+
"features.tool_search_max_results.help": "Maximum number of hidden tools returned per ha_search_tools call when tool search is enabled; a pinned tool that ranks inside that top count is added as a short name-only entry on top of it. Lower values (2-3) save context tokens but may miss relevant tools. Range: 2-10. Requires restart.",
|
|
136
136
|
"features.enable_tool_security_policies.label": "Enable Tool Security Policies (advanced)",
|
|
137
137
|
"features.enable_tool_security_policies.help": "Gate high-stakes tool calls (lock/alarm control, automation writes, etc.) behind user approval. When a guarded tool is called, the agent tells the user to open the Tool Security Policies tab in the web UI and click Approve before the call proceeds. Per-tool rules with optional argument conditions are configured in the Tool Security Policies tab. Off by default. Requires restart to take effect.",
|
|
138
138
|
"features.read_only_mode.label": "Read Only Mode",
|
|
@@ -13,7 +13,7 @@ const FEATURE_META = {
|
|
|
13
13
|
},
|
|
14
14
|
tool_search_max_results: {
|
|
15
15
|
label: "Tool search max results",
|
|
16
|
-
help: "Maximum number of tools returned
|
|
16
|
+
help: "Maximum number of hidden tools returned per ha_search_tools call when tool search is enabled; a pinned tool that ranks inside that top count is added as a short name-only entry on top of it. Lower values (2-3) save context tokens but may miss relevant tools. Range: 2-10. Requires restart.",
|
|
17
17
|
},
|
|
18
18
|
enable_tool_security_policies: {
|
|
19
19
|
label: "Enable Tool Security Policies (advanced)",
|
|
@@ -1667,11 +1667,11 @@ survives an agent's own mistakes.
|
|
|
1667
1667
|
- List snapshots (to discover a backup_id or confirm one landed): `ha_manage_backup(scope="snapshot", action="list")`
|
|
1668
1668
|
- Restore full snapshot: `ha_manage_backup(scope="snapshot", action="restore", backup_id="dd7550ed")`
|
|
1669
1669
|
- Delete an old snapshot (requires `enable_snapshot_delete=true`): `ha_manage_backup(scope="snapshot", action="delete", backup_id="dd7550ed", confirm=True)`
|
|
1670
|
-
- On-demand entity snapshot before a manual UI edit: `ha_manage_backup(scope="edits", action="create", domain="helper_input_boolean", entity_id="
|
|
1671
|
-
- List recent auto-backups for one automation: `ha_manage_backup(scope="edits", action="list", domain="automation", entity_id="
|
|
1672
|
-
- View an auto-backup: `ha_manage_backup(scope="edits", action="view", backup_name="automation.
|
|
1673
|
-
- Diff an auto-backup vs current state: `ha_manage_backup(scope="edits", action="diff", backup_name="automation.
|
|
1674
|
-
- Restore an auto-backup: `ha_manage_backup(scope="edits", action="restore", backup_name="automation.
|
|
1670
|
+
- On-demand entity snapshot before a manual UI edit: `ha_manage_backup(scope="edits", action="create", domain="helper_input_boolean", entity_id="welcome_home_active")`
|
|
1671
|
+
- List recent auto-backups for one automation: `ha_manage_backup(scope="edits", action="list", domain="automation", entity_id="welcome_home")`
|
|
1672
|
+
- View an auto-backup: `ha_manage_backup(scope="edits", action="view", backup_name="automation.welcome_home.20260521_153000.yaml")`
|
|
1673
|
+
- Diff an auto-backup vs current state: `ha_manage_backup(scope="edits", action="diff", backup_name="automation.welcome_home.20260521_153000.yaml")`
|
|
1674
|
+
- Restore an auto-backup: `ha_manage_backup(scope="edits", action="restore", backup_name="automation.welcome_home.20260521_153000.yaml")`
|
|
1675
1675
|
- Delete one auto-backup: `ha_manage_backup(scope="edits", action="delete", backup_name="...")`
|
|
1676
1676
|
- Bulk-delete old auto-backups: `ha_manage_backup(scope="edits", action="delete", older_than_days=30)`
|
|
1677
1677
|
"""
|
{ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/transforms/categorized_search.py
RENAMED
|
@@ -92,6 +92,14 @@ DEFAULT_PINNED_TOOLS: tuple[str, ...] = (
|
|
|
92
92
|
# Tool name patterns that indicate delete/remove operations
|
|
93
93
|
_DELETE_PATTERNS = ("_remove_", "_delete_")
|
|
94
94
|
|
|
95
|
+
# Ranking is plain English keyword matching (BM25, no stemming, no
|
|
96
|
+
# translation), so a query in another language returns nothing (#2576).
|
|
97
|
+
SEARCH_QUERY_DESCRIPTION = (
|
|
98
|
+
"English keywords naming the operation, e.g. 'get entity state' or "
|
|
99
|
+
"'create automation'. Translate other languages to English first; "
|
|
100
|
+
"entity, area and device names keep their original spelling."
|
|
101
|
+
)
|
|
102
|
+
|
|
95
103
|
# ``manage`` names one interface that intentionally combines several
|
|
96
104
|
# operations (.gemini/styleguide.md, Tool Naming Convention). Such a tool is
|
|
97
105
|
# categorised by its annotations like any other, but every call proxy can
|
|
@@ -428,9 +436,12 @@ class CategorizedSearchTransform(BM25SearchTransform):
|
|
|
428
436
|
three category-specific proxies, each carrying appropriate MCP
|
|
429
437
|
annotations for client-side permission handling.
|
|
430
438
|
|
|
431
|
-
The unified ``ha_search_tools``
|
|
432
|
-
|
|
433
|
-
|
|
439
|
+
The unified ``ha_search_tools`` searches across ALL tools regardless of
|
|
440
|
+
category, pinned ones included (issue #2576: a pinned tool vanishing
|
|
441
|
+
from search reads as "no such capability" to a small model). Hidden
|
|
442
|
+
hits carry their full definition and annotations so the LLM can pick a
|
|
443
|
+
proxy; pinned hits are rendered as a name-only stub pointing back at the
|
|
444
|
+
tool list, and never consume one of the ``max_results`` slots.
|
|
434
445
|
"""
|
|
435
446
|
|
|
436
447
|
def __init__(
|
|
@@ -524,6 +535,48 @@ class CategorizedSearchTransform(BM25SearchTransform):
|
|
|
524
535
|
self._delete_tools = delete
|
|
525
536
|
self._last_catalog_hash = current_hash
|
|
526
537
|
|
|
538
|
+
def _make_search_tool(self) -> Tool:
|
|
539
|
+
"""Search tool over the whole catalog (pinned tools included)."""
|
|
540
|
+
transform = self
|
|
541
|
+
|
|
542
|
+
async def search_tools(
|
|
543
|
+
query: Annotated[str, SEARCH_QUERY_DESCRIPTION],
|
|
544
|
+
ctx: Context = None, # type: ignore[assignment]
|
|
545
|
+
) -> list[dict[str, Any]]:
|
|
546
|
+
"""Search for tools using English keywords.
|
|
547
|
+
|
|
548
|
+
Returns matching tool definitions ranked by relevance,
|
|
549
|
+
in the same format as list_tools.
|
|
550
|
+
"""
|
|
551
|
+
catalog = await transform.get_tool_catalog(ctx)
|
|
552
|
+
results = await transform._search(catalog, query)
|
|
553
|
+
return await transform._render_results(results)
|
|
554
|
+
|
|
555
|
+
return Tool.from_function(fn=search_tools, name=self._search_tool_name)
|
|
556
|
+
|
|
557
|
+
async def _search(self, tools: Sequence[Tool], query: str) -> Sequence[Tool]:
|
|
558
|
+
"""Rank ``tools``; pinned hits ride along without using a result slot.
|
|
559
|
+
|
|
560
|
+
A pinned tool is kept only when it ranks inside the first
|
|
561
|
+
``max_results`` of the whole catalog, so a weak match on a stop word
|
|
562
|
+
does not add a stub to every page.
|
|
563
|
+
"""
|
|
564
|
+
# The base call (re)builds the index for this catalog; its own top-k
|
|
565
|
+
# is discarded because pinned hits must not crowd out hidden ones.
|
|
566
|
+
await super()._search(tools, query)
|
|
567
|
+
pinned_count = sum(t.name in self._always_visible for t in tools)
|
|
568
|
+
indices = self._index.query(query, self._max_results + pinned_count)
|
|
569
|
+
slots = self._max_results
|
|
570
|
+
results: list[Tool] = []
|
|
571
|
+
for rank, tool in enumerate(self._indexed_tools[i] for i in indices):
|
|
572
|
+
if tool.name in self._always_visible:
|
|
573
|
+
if rank < self._max_results:
|
|
574
|
+
results.append(tool)
|
|
575
|
+
elif slots:
|
|
576
|
+
results.append(tool)
|
|
577
|
+
slots -= 1
|
|
578
|
+
return results
|
|
579
|
+
|
|
527
580
|
async def _render_results(self, tools: Sequence[Tool]) -> list[dict[str, Any]]:
|
|
528
581
|
"""Serialize search results with ``execute_via`` hints."""
|
|
529
582
|
proxy_map: dict[Capability, str] = {
|
|
@@ -533,6 +586,22 @@ class CategorizedSearchTransform(BM25SearchTransform):
|
|
|
533
586
|
}
|
|
534
587
|
results = []
|
|
535
588
|
for tool in tools:
|
|
589
|
+
if tool.name in self._always_visible:
|
|
590
|
+
# The client already holds this tool's full definition —
|
|
591
|
+
# repeating a 5-9KB schema here is what overflows small
|
|
592
|
+
# context windows (#2576).
|
|
593
|
+
results.append(
|
|
594
|
+
{
|
|
595
|
+
"name": tool.name,
|
|
596
|
+
"pinned": True,
|
|
597
|
+
"execute_via": (
|
|
598
|
+
f"{tool.name} is already in your tool list — "
|
|
599
|
+
"call it directly with the schema you have; "
|
|
600
|
+
"no search or proxy needed."
|
|
601
|
+
),
|
|
602
|
+
}
|
|
603
|
+
)
|
|
604
|
+
continue
|
|
536
605
|
data = tool.to_mcp_tool().model_dump(
|
|
537
606
|
mode="json", exclude_none=True, by_alias=True
|
|
538
607
|
)
|
|
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.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/MANIFEST.sha256
RENAMED
|
File without changes
|
{ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/REQUIRES.txt
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/_install_hints.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/_warnings.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/apps/__init__.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/apps/app.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/apps/approval.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/apps/choice.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/apps/config.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/apps/file_upload.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/apps/form.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/apps/generative.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/cli/__init__.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/cli/__main__.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/cli/apps_dev.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/cli/auth.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/cli/cimd.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/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.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/cli/deploy/state.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/cli/discovery.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/cli/generate.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/client/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/client/caching.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/client/client.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/client/group.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/client/logging.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/client/messages.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/client/progress.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/client/roots.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/client/telemetry.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/contrib/README.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/decorators.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/dependencies.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.6.0.dev2864 → ha_mcp_dev-8.6.0.dev2866}/src/ha_mcp/_vendor/fastmcp/exceptions.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|