ha-mcp-dev 8.6.0.dev2834__tar.gz → 8.6.0.dev2839__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.dev2834 → ha_mcp_dev-8.6.0.dev2839}/PKG-INFO +1 -1
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/pyproject.toml +5 -1
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/pyproject.toml.orig +8 -1
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/__main__.py +5 -5
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_rich_compat.py +1 -1
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_version.py +1 -1
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/backup_manager.py +1 -1
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/client/rest_client.py +2 -2
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/client/websocket_client.py +7 -7
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/client/websocket_listener.py +5 -5
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/dashboard_screenshot/content.py +1 -1
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/dashboard_screenshot/paths.py +1 -1
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/dashboard_screenshot/theme_guard.py +4 -4
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/hacs_auto_refresh.py +1 -1
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/server.py +2 -2
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/settings_ui/_handlers_fs.py +2 -2
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/settings_ui/_handlers_server.py +2 -2
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/settings_ui/_supervisor.py +1 -1
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/smoke_test.py +3 -3
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/tools/backup.py +7 -7
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/tools/blueprint_sources.py +3 -3
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/tools/bulk_selector.py +1 -1
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/tools/component_config_entries.py +2 -2
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/tools/component_config_reads.py +2 -2
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/tools/component_dashboard_edit.py +1 -1
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/tools/component_devices.py +2 -2
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/tools/component_registries.py +1 -1
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/tools/component_registry_lookup.py +2 -2
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/tools/config_entry_flow.py +7 -7
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/tools/config_entry_flow_walker.py +2 -2
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/tools/config_entry_reconfigure.py +2 -2
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/tools/config_entry_reload_watch.py +1 -1
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/tools/device_control.py +6 -6
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/tools/helpers.py +1 -1
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/tools/integration_reconfigure.py +1 -1
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/tools/registry.py +1 -1
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/tools/scene_discovery.py +1 -1
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/tools/smart_search/_deep.py +7 -7
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/tools/smart_search/_graph.py +1 -1
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/tools/smart_search/_scenes.py +2 -2
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/tools/tools_addons.py +1 -1
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/tools/tools_areas.py +4 -4
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/tools/tools_assist_pipeline.py +1 -1
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/tools/tools_blueprints.py +1 -1
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/tools/tools_bug_report.py +16 -16
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/tools/tools_calendar.py +3 -3
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/tools/tools_categories.py +3 -3
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/tools/tools_code.py +2 -2
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/tools/tools_config_automations.py +5 -5
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/tools/tools_config_dashboards.py +7 -7
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/tools/tools_config_helpers.py +10 -10
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/tools/tools_config_scenes.py +1 -1
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/tools/tools_config_scripts.py +4 -4
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/tools/tools_dashboard_screenshot.py +2 -2
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/tools/tools_dev.py +9 -9
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/tools/tools_energy.py +5 -5
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/tools/tools_entities.py +4 -4
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/tools/tools_filesystem.py +4 -4
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/tools/tools_groups.py +3 -3
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/tools/tools_hacs.py +2 -2
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/tools/tools_history.py +1 -1
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/tools/tools_integrations.py +15 -15
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/tools/tools_labels.py +4 -4
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/tools/tools_radio.py +1 -1
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/tools/tools_registry.py +3 -3
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/tools/tools_resources.py +3 -3
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/tools/tools_search.py +9 -9
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/tools/tools_security_policy.py +1 -1
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/tools/tools_service.py +8 -8
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/tools/tools_services.py +2 -2
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/tools/tools_system.py +14 -14
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/tools/tools_themes.py +1 -1
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/tools/tools_traces.py +4 -4
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/tools/tools_updates.py +5 -5
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/tools/tools_voice_assistant.py +2 -2
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/tools/tools_yaml_config.py +3 -3
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/tools/tools_yaml_read.py +1 -1
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/tools/tools_zones.py +4 -4
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/tools/util_helpers.py +3 -3
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/update_check.py +2 -2
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/utils/kill_signal_diagnostics.py +3 -3
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/utils/usage_logger.py +4 -4
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/visibility/enforcement.py +1 -1
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/visibility/resolver.py +3 -3
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/LICENSE +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/README.md +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_pypi_marker +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/LICENSE +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/MANIFEST.sha256 +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/REQUIRES.txt +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/VENDORED +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/_compat.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/_install_hints.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/_warnings.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/apps/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/apps/app.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/apps/approval.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/apps/choice.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/apps/config.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/apps/file_upload.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/apps/form.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/apps/generative.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/cli/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/cli/__main__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/cli/apps_dev.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/cli/auth.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/cli/cimd.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/cli/cli.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/cli/client.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/cli/deploy/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/cli/deploy/authentication.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/cli/deploy/command.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/cli/deploy/configuration.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/cli/deploy/credentials.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/cli/deploy/horizon_client.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/cli/deploy/output.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/cli/deploy/state.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/cli/discovery.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/cli/generate.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/cli/install/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/cli/install/claude_code.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/cli/install/claude_desktop.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/cli/install/cursor.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/cli/install/gemini_cli.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/cli/install/goose.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/cli/install/mcp_json.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/cli/install/shared.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/cli/install/stdio.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/cli/run.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/client/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/client/_sdk_context_shim.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/client/auth/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/client/auth/bearer.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/client/auth/client_credentials.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/client/auth/oauth.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/client/caching.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/client/client.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/client/dependencies.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/client/elicitation.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/client/extension_hooks.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/client/group.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/client/logging.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/client/messages.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/client/mixins/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/client/mixins/prompts.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/client/mixins/resources.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/client/mixins/tools.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/client/oauth_callback.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/client/progress.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/client/roots.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/client/sampling/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/client/sampling/handlers/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/client/sampling/handlers/anthropic.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/client/sampling/handlers/google_genai.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/client/sampling/handlers/openai.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/client/telemetry.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/client/transports/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/client/transports/base.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/client/transports/config.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/client/transports/http.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/client/transports/inference.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/client/transports/memory.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/client/transports/sse.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/client/transports/stdio.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/contrib/README.md +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/contrib/bulk_tool_caller/README.md +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/contrib/bulk_tool_caller/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/contrib/bulk_tool_caller/bulk_tool_caller.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/contrib/bulk_tool_caller/example.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/contrib/component_manager/README.md +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/contrib/component_manager/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/contrib/component_manager/component_manager.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/contrib/component_manager/example.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/contrib/mcp_mixin/README.md +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/contrib/mcp_mixin/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/contrib/mcp_mixin/example.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/contrib/mcp_mixin/mcp_mixin.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/decorators.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/dependencies.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/exceptions.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/experimental/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/experimental/transforms/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/experimental/transforms/code_mode.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/mcp_config.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/prompts/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/prompts/base.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/prompts/function_prompt.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/py.typed +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/resources/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/resources/base.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/resources/function_resource.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/resources/security.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/resources/template.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/resources/types.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/server/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/server/auth/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/server/auth/auth.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/server/auth/cimd.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/server/auth/handlers/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/server/auth/handlers/authorize.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/server/auth/identity_assertion.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/server/auth/jwt_issuer.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/server/auth/middleware.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/server/auth/oauth_proxy/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/server/auth/oauth_proxy/consent.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/server/auth/oauth_proxy/models.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/server/auth/oauth_proxy/proxy.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/server/auth/oauth_proxy/ui.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/server/auth/oauth_proxy/upstream.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/server/auth/oidc_proxy.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/auth0.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/aws.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/azure.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/clerk.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/debug.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/descope.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/discord.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/github.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/google.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/huggingface.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/in_memory.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/introspection.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/jwt.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/keycloak.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/oci.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/propelauth.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/scalekit.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/supabase.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/workos.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/server/auth/redirect_validation.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/server/auth/ssrf.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/server/caching.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/server/completions.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/server/context.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/server/dependencies.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/server/elicitation.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/server/event_store.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/server/extensions.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/server/http.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/server/lifespan.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/server/low_level.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/server/middleware/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/server/middleware/authorization.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/server/middleware/caching.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/server/middleware/dereference.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/server/middleware/error_handling.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/server/middleware/logging.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/server/middleware/middleware.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/server/middleware/ping.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/server/middleware/rate_limiting.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/server/middleware/response_limiting.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/server/middleware/timing.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/server/middleware/tool_injection.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/server/mixins/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/server/mixins/lifespan.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/server/mixins/mcp_operations.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/server/mixins/transport.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/server/providers/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/server/providers/addressing.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/server/providers/aggregate.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/server/providers/base.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/server/providers/fastmcp_provider.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/server/providers/filesystem.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/server/providers/filesystem_discovery.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/server/providers/local_provider/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/server/providers/local_provider/decorators/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/server/providers/local_provider/decorators/prompts.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/server/providers/local_provider/decorators/resources.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/server/providers/local_provider/decorators/tools.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/server/providers/local_provider/local_provider.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/server/providers/openapi/README.md +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/server/providers/openapi/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/server/providers/openapi/components.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/server/providers/openapi/provider.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/server/providers/openapi/routing.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/server/providers/prefab_payload.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/server/providers/prefab_synthesis.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/server/providers/proxy.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/server/providers/skills/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/server/providers/skills/_common.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/server/providers/skills/claude_provider.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/server/providers/skills/directory_provider.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/server/providers/skills/skill_provider.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/server/providers/skills/vendor_providers.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/server/providers/wrapped_provider.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/server/server.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/server/session_scoped_event_store.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/server/sessions.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/server/telemetry.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/server/transforms/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/server/transforms/catalog.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/server/transforms/namespace.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/server/transforms/prompts_as_tools.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/server/transforms/resources_as_tools.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/server/transforms/search/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/server/transforms/search/base.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/server/transforms/search/bm25.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/server/transforms/search/regex.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/server/transforms/tool_transform.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/server/transforms/version_filter.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/server/transforms/visibility.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/settings.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/telemetry.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/tools/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/tools/base.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/tools/function_parsing.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/tools/function_tool.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/tools/tool_transform.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/types.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/utilities/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/utilities/asgi_transport.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/utilities/async_utils.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/utilities/auth.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/utilities/authorization.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/utilities/cli.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/utilities/components.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/utilities/docstring_parsing.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/utilities/exceptions.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/utilities/http.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/utilities/inspect.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/utilities/json_schema.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/utilities/json_schema_type.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/utilities/lifespan.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/utilities/logging.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/utilities/mcp_server_config/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/utilities/mcp_server_config/v1/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/utilities/mcp_server_config/v1/environments/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/utilities/mcp_server_config/v1/environments/base.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/utilities/mcp_server_config/v1/environments/uv.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/utilities/mcp_server_config/v1/mcp_server_config.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/utilities/mcp_server_config/v1/schema.json +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/utilities/mcp_server_config/v1/sources/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/utilities/mcp_server_config/v1/sources/base.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/utilities/mcp_server_config/v1/sources/filesystem.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/utilities/mime.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/utilities/openapi/README.md +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/utilities/openapi/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/utilities/openapi/director.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/utilities/openapi/formatters.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/utilities/openapi/json_schema_converter.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/utilities/openapi/models.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/utilities/openapi/parser.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/utilities/openapi/schemas.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/utilities/pagination.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/utilities/prefab.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/utilities/skills.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/utilities/tasks.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/utilities/tests.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/utilities/timeout.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/utilities/token_cache.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/utilities/types.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/utilities/ui.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/utilities/version_check.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/fastmcp/utilities/versions.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/LICENSE +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/MANIFEST.sha256 +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/REQUIRES.txt +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/VENDORED +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/cli/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/cli/claude.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/cli/cli.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/client/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/client/__main__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/client/_input_required.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/client/_memory.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/client/_probe.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/client/_transport.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/client/auth/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/client/auth/exceptions.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/client/auth/extensions/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/client/auth/extensions/client_credentials.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/client/auth/extensions/identity_assertion.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/client/auth/oauth2.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/client/auth/utils.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/client/caching.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/client/client.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/client/context.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/client/extension.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/client/session.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/client/session_group.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/client/sse.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/client/stdio.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/client/streamable_http.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/client/subscriptions.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/os/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/os/posix/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/os/posix/utilities.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/os/win32/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/os/win32/utilities.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/py.typed +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/server/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/server/__main__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/server/_otel.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/server/_streamable_http_modern.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/server/apps.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/server/auth/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/server/auth/errors.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/server/auth/handlers/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/server/auth/handlers/authorize.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/server/auth/handlers/metadata.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/server/auth/handlers/register.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/server/auth/handlers/revoke.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/server/auth/handlers/token.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/server/auth/json_response.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/server/auth/middleware/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/server/auth/middleware/auth_context.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/server/auth/middleware/bearer_auth.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/server/auth/middleware/client_auth.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/server/auth/provider.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/server/auth/routes.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/server/auth/settings.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/server/caching.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/server/connection.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/server/context.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/server/elicitation.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/server/extension.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/server/fastmcp.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/server/lowlevel/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/server/lowlevel/helper_types.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/server/lowlevel/server.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/server/mcpserver/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/server/mcpserver/context.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/server/mcpserver/exceptions.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/server/mcpserver/prompts/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/server/mcpserver/prompts/base.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/server/mcpserver/prompts/manager.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/server/mcpserver/resolve.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/server/mcpserver/resources/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/server/mcpserver/resources/base.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/server/mcpserver/resources/resource_manager.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/server/mcpserver/resources/templates.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/server/mcpserver/resources/types.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/server/mcpserver/server.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/server/mcpserver/tools/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/server/mcpserver/tools/base.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/server/mcpserver/tools/tool_manager.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/server/mcpserver/utilities/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/server/mcpserver/utilities/context_injection.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/server/mcpserver/utilities/func_metadata.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/server/mcpserver/utilities/logging.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/server/mcpserver/utilities/types.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/server/models.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/server/request_state.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/server/runner.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/server/session.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/server/sse.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/server/stdio.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/server/streamable_http.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/server/streamable_http_manager.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/server/subscriptions.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/server/transport_security.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/server/validation.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/shared/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/shared/_callable_inspection.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/shared/_compat.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/shared/_context_streams.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/shared/_httpx_utils.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/shared/_otel.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/shared/_stream_protocols.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/shared/auth.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/shared/auth_utils.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/shared/context.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/shared/direct_dispatcher.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/shared/dispatcher.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/shared/exceptions.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/shared/extension.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/shared/inbound.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/shared/jsonrpc_dispatcher.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/shared/memory.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/shared/message.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/shared/metadata_utils.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/shared/path_security.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/shared/peer.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/shared/subscriptions.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/shared/tool_name_validation.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/shared/transport_context.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/shared/uri_template.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/types/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/types/jsonrpc.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/types/methods.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp/types/version.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp_types/LICENSE +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp_types/MANIFEST.sha256 +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp_types/REQUIRES.txt +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp_types/VENDORED +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp_types/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp_types/_types.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp_types/_v2025_11_25/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp_types/_v2026_07_28/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp_types/_wire_base.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp_types/jsonrpc.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp_types/methods.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp_types/py.typed +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/mcp_types/version.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/requirements.txt +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/websockets/LICENSE +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/websockets/MANIFEST.sha256 +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/websockets/VENDORED +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/websockets/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/websockets/__main__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/websockets/asyncio/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/websockets/asyncio/client.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/websockets/asyncio/connection.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/websockets/asyncio/messages.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/websockets/asyncio/router.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/websockets/asyncio/server.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/websockets/auth.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/websockets/cli.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/websockets/client.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/websockets/connection.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/websockets/datastructures.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/websockets/exceptions.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/websockets/extensions/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/websockets/extensions/base.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/websockets/extensions/permessage_deflate.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/websockets/frames.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/websockets/headers.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/websockets/http11.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/websockets/imports.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/websockets/legacy/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/websockets/legacy/auth.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/websockets/legacy/client.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/websockets/legacy/exceptions.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/websockets/legacy/framing.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/websockets/legacy/handshake.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/websockets/legacy/http.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/websockets/legacy/protocol.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/websockets/legacy/server.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/websockets/protocol.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/websockets/proxy.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/websockets/py.typed +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/websockets/server.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/websockets/streams.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/websockets/sync/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/websockets/sync/client.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/websockets/sync/connection.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/websockets/sync/messages.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/websockets/sync/router.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/websockets/sync/server.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/websockets/sync/utils.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/websockets/trio/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/websockets/trio/client.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/websockets/trio/connection.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/websockets/trio/messages.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/websockets/trio/router.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/websockets/trio/server.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/websockets/trio/utils.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/websockets/typing.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/websockets/uri.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/websockets/utils.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/_vendor/websockets/version.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/auth/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/auth/consent_form.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/auth/oidc_compat.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/auth/provider.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/browser_landing.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/client/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/client/admin_routes.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/client/supervisor_client.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/config.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/dashboard_screenshot/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/dashboard_screenshot/capture.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/dashboard_screenshot/provision.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/errors.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/ha_request_queue.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/http_transport.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/llm_exposure.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/log_filters.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/policy/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/policy/approval_queue.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/policy/decision_pin.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/policy/decisions.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/policy/editing.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/policy/evaluator.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/policy/events.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/policy/handlers.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/policy/middleware.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/policy/model.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/policy/persistence.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/policy/value_sources.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/py.typed +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/read_only.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/redaction.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/renamed_tools.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/resources/skills-vendor/LICENSE +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/SKILL.md +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/appdaemon.md +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/automation-actions.md +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/backups.md +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/blueprint-guide.md +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/dashboard-cards.md +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/dashboard-guide.md +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/device-control.md +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/domain-docs.md +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/examples.yaml +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/helper-selection.md +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/safe-refactoring.md +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/scenes.md +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/template-guidelines.md +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/triggers-and-conditions.md +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/yaml-only-integrations.md +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/server_lifespan.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/settings_ui/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/settings_ui/_handlers_advanced.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/settings_ui/_handlers_backups.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/settings_ui/_handlers_theme.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/settings_ui/_handlers_tools.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/settings_ui/_i18n.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/settings_ui/_locale_policy.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/settings_ui/_persistence.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/settings_ui/_theme.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/settings_ui/_tools_meta.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/settings_ui/locales/README.md +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/settings_ui/locales/az.json +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/settings_ui/locales/cs.json +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/settings_ui/locales/de.json +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/settings_ui/locales/en.json +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/settings_ui/locales/eo.json +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/settings_ui/locales/es.json +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/settings_ui/locales/fr.json +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/settings_ui/locales/it.json +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/settings_ui/locales/ko.json +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/settings_ui/locales/nl.json +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/settings_ui/locales/pl.json +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/settings_ui/locales/ru.json +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/settings_ui/locales/sv.json +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/settings_ui/locales/tlh.json +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/settings_ui/locales/zh-Hans.json +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/settings_ui/locales/zh-Hant.json +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/settings_ui/settings.css +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/settings_ui/settings.html +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/settings_ui/settings.js +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/stdio_settings_sidecar.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/strict_bps.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/tool_dispatch.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/tools/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/tools/auto_backup.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/tools/best_practice_checker.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/tools/best_practice_result.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/tools/best_practice_variables.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/tools/blueprint_substitute.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/tools/blueprint_write.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/tools/component_api.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/tools/config_entry_flow_form.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/tools/config_entry_flow_menu.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/tools/config_entry_identity.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/tools/dashboard_edit_errors.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/tools/dashboard_list_checks.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/tools/entity_registration.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/tools/error_log_parsing.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/tools/hacs_registration.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/tools/log_common.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/tools/log_sources.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/tools/log_sources_fault.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/tools/log_sources_supervisor.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/tools/radio/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/tools/radio/base.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/tools/radio/matter.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/tools/radio/thread.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/tools/radio/zigbee.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/tools/radio/zwave.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/tools/reference_validator.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/tools/renamed_tool_middleware.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/tools/smart_search/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/tools/smart_search/_base.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/tools/smart_search/_config.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/tools/smart_search/_entities.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/tools/smart_search/_fetch.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/tools/smart_search/_overview.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/tools/smart_search/_scoring.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/tools/tool_search_hint_middleware.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/tools/tools_camera.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/tools/tools_logs.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/tools/tools_todo.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/tools/tools_utility.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/tools/validation_middleware.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/transforms/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/transforms/categorized_search.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/transforms/component_search.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/transforms/lite_docstrings.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/transforms/write_tool_note.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/transport_security.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/utils/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/utils/config_hash.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/utils/config_write_lock.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/utils/dashboard_patch.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/utils/data_paths.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/utils/device_registry_semantics.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/utils/domain_handlers.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/utils/entity_membership.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/utils/fuzzy_search.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/utils/mcp_client_host.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/utils/operation_manager.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/utils/python_sandbox.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/utils/registry_update_lock.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/utils/skill_loader.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/visibility/__init__.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/visibility/model.py +0 -0
- {ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/visibility/persistence.py +0 -0
|
@@ -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.dev2839"
|
|
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"
|
|
@@ -156,9 +156,11 @@ select = [
|
|
|
156
156
|
"LOG",
|
|
157
157
|
"SIM",
|
|
158
158
|
"PLE",
|
|
159
|
+
"BLE001",
|
|
159
160
|
"PLC0206",
|
|
160
161
|
"PLC0207",
|
|
161
162
|
"PLR0402",
|
|
163
|
+
"PLR0915",
|
|
162
164
|
"PLR1711",
|
|
163
165
|
"PLR1714",
|
|
164
166
|
"PLR1730",
|
|
@@ -189,6 +191,8 @@ ignore = [
|
|
|
189
191
|
[tool.ruff.lint.per-file-ignores]
|
|
190
192
|
"__init__.py" = ["F401"]
|
|
191
193
|
"tests/**/*" = ["B011"]
|
|
194
|
+
"homeassistant-addon-webhook-proxy/start.py" = ["BLE001"]
|
|
195
|
+
"homeassistant-addon-webhook-proxy-dev/start.py" = ["BLE001"]
|
|
192
196
|
|
|
193
197
|
[tool.pytest.ini_options]
|
|
194
198
|
testpaths = ["tests"]
|
|
@@ -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.dev2839"
|
|
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
|
|
@@ -204,6 +204,7 @@ select = [
|
|
|
204
204
|
"LOG", # logging best practices
|
|
205
205
|
"SIM", # simplify
|
|
206
206
|
"PLE", # pylint errors (real bugs: bad logging args, await outside async)
|
|
207
|
+
"BLE001", # blind except: catches Exception without re-raising or logging the traceback
|
|
207
208
|
# Targeted pylint conventions/refactors/warnings. The PL family is NOT
|
|
208
209
|
# selected wholesale: PLC0415 (import-outside-top-level) fights the
|
|
209
210
|
# deliberate lazy-init architecture, and PLR2004 (magic values),
|
|
@@ -215,6 +216,7 @@ select = [
|
|
|
215
216
|
"PLC0206", # dict-index-missing-items
|
|
216
217
|
"PLC0207", # missing-maxsplit-arg
|
|
217
218
|
"PLR0402", # manual-from-import
|
|
219
|
+
"PLR0915", # too-many-statements (default limit 50)
|
|
218
220
|
"PLR1711", # useless-return
|
|
219
221
|
"PLR1714", # repeated-equality-comparison
|
|
220
222
|
"PLR1730", # if-stmt-min-max
|
|
@@ -249,6 +251,11 @@ ignore = [
|
|
|
249
251
|
# list was fully cleared by issue #925). Do NOT add "path" = ["C901"] entries
|
|
250
252
|
# here — extract helpers to bring the function below the threshold instead:
|
|
251
253
|
# "some/path.py" = ["C901"] <- never this
|
|
254
|
+
# Every other blind except carries an inline noqa, which RUF100 fails once it
|
|
255
|
+
# is unused. These two are exempt here because a pull request cannot edit the
|
|
256
|
+
# stable tree, and an edit to the dev tree needs an app version bump.
|
|
257
|
+
"homeassistant-addon-webhook-proxy/start.py" = ["BLE001"]
|
|
258
|
+
"homeassistant-addon-webhook-proxy-dev/start.py" = ["BLE001"]
|
|
252
259
|
|
|
253
260
|
[tool.pytest.ini_options]
|
|
254
261
|
testpaths = ["tests"]
|
|
@@ -534,7 +534,7 @@ async def _cleanup_resources() -> None:
|
|
|
534
534
|
logger.debug("WebSocket listener stopped")
|
|
535
535
|
except ImportError:
|
|
536
536
|
logger.debug("WebSocket listener module not available")
|
|
537
|
-
except Exception as e:
|
|
537
|
+
except Exception as e: # noqa: BLE001
|
|
538
538
|
logger.warning(f"WebSocket listener cleanup failed: {e}")
|
|
539
539
|
|
|
540
540
|
# Close WebSocket manager connections
|
|
@@ -545,7 +545,7 @@ async def _cleanup_resources() -> None:
|
|
|
545
545
|
logger.debug("WebSocket manager disconnected")
|
|
546
546
|
except ImportError:
|
|
547
547
|
logger.debug("WebSocket manager module not available")
|
|
548
|
-
except Exception as e:
|
|
548
|
+
except Exception as e: # noqa: BLE001
|
|
549
549
|
logger.warning(f"WebSocket manager cleanup failed: {e}")
|
|
550
550
|
|
|
551
551
|
# Close the server's HTTP client
|
|
@@ -553,7 +553,7 @@ async def _cleanup_resources() -> None:
|
|
|
553
553
|
try:
|
|
554
554
|
await _server.close()
|
|
555
555
|
logger.debug("Server closed")
|
|
556
|
-
except Exception as e:
|
|
556
|
+
except Exception as e: # noqa: BLE001
|
|
557
557
|
logger.warning(f"Server cleanup failed: {e}")
|
|
558
558
|
|
|
559
559
|
logger.info("Server resources cleaned up")
|
|
@@ -676,7 +676,7 @@ async def _run_with_shutdown(server_coro: Coroutine[Any, Any, Any]) -> None:
|
|
|
676
676
|
|
|
677
677
|
try:
|
|
678
678
|
await _cancel_tasks(server_task, shutdown_task)
|
|
679
|
-
except Exception as e:
|
|
679
|
+
except Exception as e: # noqa: BLE001
|
|
680
680
|
# Teardown must never mask the exception being propagated from the
|
|
681
681
|
# try block (Python drops the original if finally raises).
|
|
682
682
|
logger.warning(f"Task cancellation during shutdown failed: {e}")
|
|
@@ -780,7 +780,7 @@ def _force_exit(code: int) -> NoReturn:
|
|
|
780
780
|
for stream in (sys.stdout, sys.stderr):
|
|
781
781
|
try:
|
|
782
782
|
stream.flush()
|
|
783
|
-
except Exception: # nothing actionable at exit
|
|
783
|
+
except Exception: # nothing actionable at exit # noqa: BLE001
|
|
784
784
|
pass
|
|
785
785
|
|
|
786
786
|
try:
|
|
@@ -55,7 +55,7 @@ def ensure_rich_handler_compat() -> bool:
|
|
|
55
55
|
"""
|
|
56
56
|
try:
|
|
57
57
|
from rich.logging import RichHandler
|
|
58
|
-
except Exception: # pragma: no cover - rich absent or broken
|
|
58
|
+
except Exception: # pragma: no cover - rich absent or broken # noqa: BLE001
|
|
59
59
|
# fastmcp depends on rich, so this means the import would fail anyway
|
|
60
60
|
# for reasons this shim cannot address.
|
|
61
61
|
logger.debug("rich.logging unavailable; skipping RichHandler shim")
|
|
@@ -42,7 +42,7 @@ def get_version() -> str:
|
|
|
42
42
|
owners = [name for name in _CHANNEL_DISTS if _owns_ha_mcp(name)]
|
|
43
43
|
if len(owners) == 1:
|
|
44
44
|
return importlib.metadata.version(owners[0])
|
|
45
|
-
except Exception as exc:
|
|
45
|
+
except Exception as exc: # noqa: BLE001
|
|
46
46
|
logger.debug("distribution ownership probe failed: %s", exc)
|
|
47
47
|
for pkg_name in _CHANNEL_DISTS:
|
|
48
48
|
try:
|
|
@@ -470,7 +470,7 @@ async def _await_backup_io[T](operation: Callable[..., T], *args: Any) -> T:
|
|
|
470
470
|
await asyncio.shield(worker)
|
|
471
471
|
except asyncio.CancelledError:
|
|
472
472
|
continue # Repeated cancellation must not release the lock early.
|
|
473
|
-
except Exception:
|
|
473
|
+
except Exception: # noqa: BLE001
|
|
474
474
|
break # Consume the worker failure below; preserve cancellation.
|
|
475
475
|
if not worker.cancelled():
|
|
476
476
|
worker.exception()
|
|
@@ -445,7 +445,7 @@ class HomeAssistantClient:
|
|
|
445
445
|
"""
|
|
446
446
|
try:
|
|
447
447
|
error_data = response.json()
|
|
448
|
-
except Exception:
|
|
448
|
+
except Exception: # noqa: BLE001
|
|
449
449
|
error_data = {"message": response.text}
|
|
450
450
|
|
|
451
451
|
message = error_data.get("message")
|
|
@@ -1459,7 +1459,7 @@ class HomeAssistantClient:
|
|
|
1459
1459
|
return True, None
|
|
1460
1460
|
else:
|
|
1461
1461
|
return False, "Invalid response from Home Assistant"
|
|
1462
|
-
except Exception as e:
|
|
1462
|
+
except Exception as e: # noqa: BLE001
|
|
1463
1463
|
# Intentional broad-catch: is_connected() contract maps any failure
|
|
1464
1464
|
# to (False, error_msg); styleguide § "broad except at top-level
|
|
1465
1465
|
# setup/teardown handlers" applies (connection probe is the analog).
|
|
@@ -377,7 +377,7 @@ class HomeAssistantWebSocketClient:
|
|
|
377
377
|
if verify_ssl is None:
|
|
378
378
|
try:
|
|
379
379
|
verify_ssl = get_global_settings().verify_ssl
|
|
380
|
-
except Exception as e:
|
|
380
|
+
except Exception as e: # noqa: BLE001
|
|
381
381
|
# A bad env var elsewhere should not silently flip TLS off:
|
|
382
382
|
# log which key tripped and fall back to the secure default.
|
|
383
383
|
logger.warning(
|
|
@@ -496,7 +496,7 @@ class HomeAssistantWebSocketClient:
|
|
|
496
496
|
logger.info("WebSocket connected and authenticated successfully")
|
|
497
497
|
return True
|
|
498
498
|
|
|
499
|
-
except Exception as e:
|
|
499
|
+
except Exception as e: # noqa: BLE001
|
|
500
500
|
self._last_connect_error = f"{type(e).__name__}: {e}"
|
|
501
501
|
self._last_connect_exception = e
|
|
502
502
|
if _is_ssl_error(e) and self.verify_ssl:
|
|
@@ -583,7 +583,7 @@ class HomeAssistantWebSocketClient:
|
|
|
583
583
|
await self._process_message(data)
|
|
584
584
|
except json.JSONDecodeError as e:
|
|
585
585
|
logger.error(f"Invalid JSON received: {e}")
|
|
586
|
-
except Exception as e:
|
|
586
|
+
except Exception as e: # noqa: BLE001
|
|
587
587
|
logger.error(f"Error processing message: {e}")
|
|
588
588
|
except websockets.exceptions.ConnectionClosed as e:
|
|
589
589
|
# Prefer the frame we received (the peer closed on us); fall
|
|
@@ -604,7 +604,7 @@ class HomeAssistantWebSocketClient:
|
|
|
604
604
|
logger.warning(log_message)
|
|
605
605
|
else:
|
|
606
606
|
logger.info(log_message)
|
|
607
|
-
except Exception as e:
|
|
607
|
+
except Exception as e: # noqa: BLE001
|
|
608
608
|
close_reason = str(e)
|
|
609
609
|
logger.error(f"WebSocket message handler error: {e}")
|
|
610
610
|
finally:
|
|
@@ -1110,7 +1110,7 @@ class HomeAssistantWebSocketClient:
|
|
|
1110
1110
|
await asyncio.wait_for(
|
|
1111
1111
|
asyncio.shield(task), timeout=CLEANUP_TIMEOUT_SECONDS
|
|
1112
1112
|
)
|
|
1113
|
-
except (Exception, TimeoutError) as e:
|
|
1113
|
+
except (Exception, TimeoutError) as e: # noqa: BLE001
|
|
1114
1114
|
logger.debug("%s: cleanup did not finish cleanly: %s", what, e)
|
|
1115
1115
|
except asyncio.CancelledError:
|
|
1116
1116
|
logger.debug("%s: cleanup cancelled before it finished", what)
|
|
@@ -1433,7 +1433,7 @@ class HomeAssistantWebSocketClient:
|
|
|
1433
1433
|
try:
|
|
1434
1434
|
response = await self.send_command("ping")
|
|
1435
1435
|
return response.get("type") == "pong"
|
|
1436
|
-
except Exception:
|
|
1436
|
+
except Exception: # noqa: BLE001
|
|
1437
1437
|
return False
|
|
1438
1438
|
|
|
1439
1439
|
@property
|
|
@@ -1549,7 +1549,7 @@ class WebSocketManager:
|
|
|
1549
1549
|
return verify_ssl
|
|
1550
1550
|
try:
|
|
1551
1551
|
return bool(get_global_settings().verify_ssl)
|
|
1552
|
-
except Exception as e:
|
|
1552
|
+
except Exception as e: # noqa: BLE001
|
|
1553
1553
|
# Mirror HomeAssistantWebSocketClient.__init__: a bad env var
|
|
1554
1554
|
# elsewhere should not crash pooling or silently flip TLS off.
|
|
1555
1555
|
logger.warning(
|
{ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/client/websocket_listener.py
RENAMED
|
@@ -58,7 +58,7 @@ class WebSocketListenerService:
|
|
|
58
58
|
logger.info("WebSocket listener service started successfully")
|
|
59
59
|
return True
|
|
60
60
|
|
|
61
|
-
except Exception as e:
|
|
61
|
+
except Exception as e: # noqa: BLE001
|
|
62
62
|
logger.error(f"Failed to start WebSocket listener service: {e}")
|
|
63
63
|
await self.stop()
|
|
64
64
|
return False
|
|
@@ -188,7 +188,7 @@ class WebSocketListenerService:
|
|
|
188
188
|
"state_changed", self._handle_state_change
|
|
189
189
|
)
|
|
190
190
|
logger.info("WebSocket reconnected successfully")
|
|
191
|
-
except Exception as e:
|
|
191
|
+
except Exception as e: # noqa: BLE001
|
|
192
192
|
logger.error(f"WebSocket reconnection failed: {e}")
|
|
193
193
|
|
|
194
194
|
# Wait before next health check
|
|
@@ -196,7 +196,7 @@ class WebSocketListenerService:
|
|
|
196
196
|
|
|
197
197
|
except asyncio.CancelledError:
|
|
198
198
|
break
|
|
199
|
-
except Exception as e:
|
|
199
|
+
except Exception as e: # noqa: BLE001
|
|
200
200
|
logger.error(f"Connection monitor error: {e}")
|
|
201
201
|
await asyncio.sleep(30)
|
|
202
202
|
|
|
@@ -210,7 +210,7 @@ class WebSocketListenerService:
|
|
|
210
210
|
|
|
211
211
|
except asyncio.CancelledError:
|
|
212
212
|
break
|
|
213
|
-
except Exception as e:
|
|
213
|
+
except Exception as e: # noqa: BLE001
|
|
214
214
|
logger.error(f"Cleanup task error: {e}")
|
|
215
215
|
await asyncio.sleep(300)
|
|
216
216
|
|
|
@@ -241,7 +241,7 @@ async def get_listener_service() -> WebSocketListenerService:
|
|
|
241
241
|
if _listener_service is not None:
|
|
242
242
|
try:
|
|
243
243
|
await _listener_service.stop()
|
|
244
|
-
except Exception as e:
|
|
244
|
+
except Exception as e: # noqa: BLE001
|
|
245
245
|
logger.debug(f"Error stopping previous listener service: {e}")
|
|
246
246
|
|
|
247
247
|
_listener_service = WebSocketListenerService()
|
{ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/dashboard_screenshot/content.py
RENAMED
|
@@ -23,7 +23,7 @@ def dashboard_image_content(
|
|
|
23
23
|
image = Image(
|
|
24
24
|
data=capture.data, format=capture.image_format
|
|
25
25
|
).to_image_content(mime_type=capture.mime_type)
|
|
26
|
-
except Exception as exc:
|
|
26
|
+
except Exception as exc: # noqa: BLE001
|
|
27
27
|
raise_tool_error(
|
|
28
28
|
create_error_response(
|
|
29
29
|
ErrorCode.IMAGE_SERIALIZATION_FAILED,
|
{ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/dashboard_screenshot/paths.py
RENAMED
|
@@ -275,7 +275,7 @@ async def fetch_dashboard_render_config(client: Any, url_path: str) -> dict[str,
|
|
|
275
275
|
response = await client.send_websocket_message(request)
|
|
276
276
|
except ToolError:
|
|
277
277
|
raise
|
|
278
|
-
except Exception as exc:
|
|
278
|
+
except Exception as exc: # noqa: BLE001
|
|
279
279
|
raise_tool_error(
|
|
280
280
|
create_error_response(
|
|
281
281
|
ErrorCode.CONNECTION_FAILED,
|
{ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/dashboard_screenshot/theme_guard.py
RENAMED
|
@@ -83,7 +83,7 @@ def _read_only_mode() -> bool:
|
|
|
83
83
|
from ..read_only import is_read_only
|
|
84
84
|
|
|
85
85
|
return is_read_only()
|
|
86
|
-
except Exception: # pragma: no cover - settings must never break a read
|
|
86
|
+
except Exception: # noqa: BLE001 # pragma: no cover - settings must never break a read
|
|
87
87
|
return False
|
|
88
88
|
|
|
89
89
|
|
|
@@ -319,7 +319,7 @@ class ThemeGuard:
|
|
|
319
319
|
await asyncio.wait_for(
|
|
320
320
|
asyncio.shield(close), timeout=CLOSE_TIMEOUT_SECONDS
|
|
321
321
|
)
|
|
322
|
-
except (Exception, TimeoutError) as close_error:
|
|
322
|
+
except (Exception, TimeoutError) as close_error: # noqa: BLE001
|
|
323
323
|
logger.debug(
|
|
324
324
|
"Ignoring error while closing the theme-guard session: %s",
|
|
325
325
|
close_error,
|
|
@@ -354,7 +354,7 @@ class ThemeGuard:
|
|
|
354
354
|
try:
|
|
355
355
|
self._snapshot = await self._read_theme()
|
|
356
356
|
self._snapshot_taken = True
|
|
357
|
-
except Exception as exc:
|
|
357
|
+
except Exception as exc: # noqa: BLE001
|
|
358
358
|
logger.warning(
|
|
359
359
|
"Could not read the screenshot engine user's saved theme "
|
|
360
360
|
"before rendering: %s",
|
|
@@ -381,7 +381,7 @@ class ThemeGuard:
|
|
|
381
381
|
# it land before reading (see RESTORE_SETTLE_SECONDS).
|
|
382
382
|
await asyncio.sleep(RESTORE_SETTLE_SECONDS)
|
|
383
383
|
current = await self._read_theme()
|
|
384
|
-
except Exception as exc:
|
|
384
|
+
except Exception as exc: # noqa: BLE001
|
|
385
385
|
logger.warning(
|
|
386
386
|
"Could not re-read the screenshot engine user's saved theme "
|
|
387
387
|
"after rendering: %s",
|
|
@@ -151,7 +151,7 @@ async def _refresh_installed_candidates() -> dict[str, Any] | None:
|
|
|
151
151
|
attempted += 1
|
|
152
152
|
try:
|
|
153
153
|
await send_hacs_repository_refresh(ws_client, str(repo["id"]))
|
|
154
|
-
except Exception as err:
|
|
154
|
+
except Exception as err: # noqa: BLE001
|
|
155
155
|
# Both entries read installed only when someone downloaded the
|
|
156
156
|
# mirror without removing the legacy record — HACS guards against
|
|
157
157
|
# adding the same repository twice but not against two
|
|
@@ -1264,7 +1264,7 @@ class HomeAssistantSmartMCPServer:
|
|
|
1264
1264
|
except Exception:
|
|
1265
1265
|
logger.exception("Failed to apply tool search transform")
|
|
1266
1266
|
|
|
1267
|
-
def _apply_tool_security_policies(self) -> None:
|
|
1267
|
+
def _apply_tool_security_policies(self) -> None: # noqa: PLR0915
|
|
1268
1268
|
"""Register the tool security policies middleware (#966).
|
|
1269
1269
|
|
|
1270
1270
|
Opt-in via ``ENABLE_TOOL_SECURITY_POLICIES``. When enabled, every
|
|
@@ -1928,7 +1928,7 @@ class HomeAssistantSmartMCPServer:
|
|
|
1928
1928
|
)
|
|
1929
1929
|
else:
|
|
1930
1930
|
logger.warning(f"⚠️ Failed to connect to Home Assistant: {error}")
|
|
1931
|
-
except Exception as e:
|
|
1931
|
+
except Exception as e: # noqa: BLE001
|
|
1932
1932
|
logger.error(f"❌ Error testing connection: {e}")
|
|
1933
1933
|
|
|
1934
1934
|
# Log successful server initialization
|
{ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/settings_ui/_handlers_fs.py
RENAMED
|
@@ -102,7 +102,7 @@ async def _get_fs_custom_paths(
|
|
|
102
102
|
)
|
|
103
103
|
try:
|
|
104
104
|
result = await _fs_custom_paths_call(server, "get_allowed_paths", {})
|
|
105
|
-
except Exception as exc:
|
|
105
|
+
except Exception as exc: # noqa: BLE001
|
|
106
106
|
logger.warning("fs-custom-paths GET could not reach ha_mcp_tools: %s", exc)
|
|
107
107
|
return _unavailable(
|
|
108
108
|
_component_error_reason(exc)
|
|
@@ -175,7 +175,7 @@ async def _save_fs_custom_paths(
|
|
|
175
175
|
result = await _fs_custom_paths_call(
|
|
176
176
|
server, "set_allowed_paths", {"paths": paths}
|
|
177
177
|
)
|
|
178
|
-
except Exception as exc:
|
|
178
|
+
except Exception as exc: # noqa: BLE001
|
|
179
179
|
logger.warning("fs-custom-paths POST could not reach ha_mcp_tools: %s", exc)
|
|
180
180
|
return JSONResponse(
|
|
181
181
|
create_error_response(
|
{ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/settings_ui/_handlers_server.py
RENAMED
|
@@ -168,7 +168,7 @@ async def _restart_embedded(server: HomeAssistantSmartMCPServer) -> JSONResponse
|
|
|
168
168
|
|
|
169
169
|
try:
|
|
170
170
|
found = await find_server_config_entry(server.client)
|
|
171
|
-
except Exception as exc:
|
|
171
|
+
except Exception as exc: # noqa: BLE001
|
|
172
172
|
# A discovery FAILURE is not "entry not found" — masking a
|
|
173
173
|
# WS/connection hiccup as not-found steers users toward
|
|
174
174
|
# reinstalling a running component. Also: the restart JS
|
|
@@ -362,7 +362,7 @@ async def _settings_info(
|
|
|
362
362
|
# Executor: get_version reads package metadata from disk, and the
|
|
363
363
|
# restart cycle polls this endpoint.
|
|
364
364
|
version = await asyncio.to_thread(get_version)
|
|
365
|
-
except Exception: # pragma: no cover — defensive only
|
|
365
|
+
except Exception: # pragma: no cover — defensive only # noqa: BLE001
|
|
366
366
|
logger.warning("get_version() raised; omitting version from info")
|
|
367
367
|
version = None
|
|
368
368
|
# ``deployment_mode`` reuses the bug-report detector so the UI and
|
|
@@ -281,7 +281,7 @@ async def _live_addon_options(
|
|
|
281
281
|
options, err = await _supervisor_fetch_current_options(
|
|
282
282
|
server.settings.verify_ssl
|
|
283
283
|
)
|
|
284
|
-
except Exception as exc: # pragma: no cover - defensive belt-and-braces
|
|
284
|
+
except Exception as exc: # noqa: BLE001 # pragma: no cover - defensive belt-and-braces
|
|
285
285
|
logger.debug("Live add-on options fetch raised %s — using boot-env values", exc)
|
|
286
286
|
return {}
|
|
287
287
|
if err is not None:
|
|
@@ -53,7 +53,7 @@ def _test_server_import(errors: list[str]) -> type | None:
|
|
|
53
53
|
|
|
54
54
|
print(" ✓ Server module imported successfully")
|
|
55
55
|
return HomeAssistantSmartMCPServer
|
|
56
|
-
except Exception as e:
|
|
56
|
+
except Exception as e: # noqa: BLE001
|
|
57
57
|
errors.append(f"Failed to import server module: {e}")
|
|
58
58
|
print(f" ✗ Server module import - FAILED: {e}")
|
|
59
59
|
return None
|
|
@@ -66,7 +66,7 @@ def _test_server_instantiation(errors: list[str], server_cls: type) -> Any | Non
|
|
|
66
66
|
mcp = server.mcp
|
|
67
67
|
print(f" ✓ Server created: {mcp.name}")
|
|
68
68
|
return mcp
|
|
69
|
-
except Exception as e:
|
|
69
|
+
except Exception as e: # noqa: BLE001
|
|
70
70
|
errors.append(f"Failed to create server: {e}")
|
|
71
71
|
print(f" ✗ Server instantiation - FAILED: {e}")
|
|
72
72
|
return None
|
|
@@ -86,7 +86,7 @@ def _test_tool_discovery(errors: list[str], mcp: Any) -> int:
|
|
|
86
86
|
tool_names = [t.name for t in tools[:5]]
|
|
87
87
|
print(f" ✓ Sample tools: {', '.join(tool_names)}...")
|
|
88
88
|
return tool_count
|
|
89
|
-
except Exception as e:
|
|
89
|
+
except Exception as e: # noqa: BLE001
|
|
90
90
|
errors.append(f"Failed to discover tools: {e}")
|
|
91
91
|
print(f" ✗ Tool discovery - FAILED: {e}")
|
|
92
92
|
return 0
|
|
@@ -283,7 +283,7 @@ async def _backup_prep_via_component(
|
|
|
283
283
|
else:
|
|
284
284
|
logger.warning("%s failed; fell back to legacy: %r", WS_BACKUP_PREP, exc)
|
|
285
285
|
return None
|
|
286
|
-
except Exception as exc:
|
|
286
|
+
except Exception as exc: # noqa: BLE001
|
|
287
287
|
# HomeAssistantConnectionError: a pooled-WS drop or a failed
|
|
288
288
|
# (re)connect. The legacy probes
|
|
289
289
|
# ride a dedicated already-connected socket, so fall back rather than fail
|
|
@@ -787,7 +787,7 @@ async def create_backup(
|
|
|
787
787
|
|
|
788
788
|
except ToolError:
|
|
789
789
|
raise
|
|
790
|
-
except Exception as e:
|
|
790
|
+
except Exception as e: # noqa: BLE001
|
|
791
791
|
logger.error(f"Error creating backup: {e}")
|
|
792
792
|
exception_to_structured_error(
|
|
793
793
|
e,
|
|
@@ -1162,7 +1162,7 @@ async def restore_backup(
|
|
|
1162
1162
|
|
|
1163
1163
|
except ToolError:
|
|
1164
1164
|
raise
|
|
1165
|
-
except Exception as e:
|
|
1165
|
+
except Exception as e: # noqa: BLE001
|
|
1166
1166
|
logger.error(f"Error restoring backup: {e}")
|
|
1167
1167
|
exception_to_structured_error(
|
|
1168
1168
|
e,
|
|
@@ -1271,7 +1271,7 @@ async def list_backups(client: HomeAssistantClient, limit: int = 200) -> dict[st
|
|
|
1271
1271
|
|
|
1272
1272
|
except ToolError:
|
|
1273
1273
|
raise
|
|
1274
|
-
except Exception as e:
|
|
1274
|
+
except Exception as e: # noqa: BLE001
|
|
1275
1275
|
logger.error(f"Error listing backups: {e}")
|
|
1276
1276
|
exception_to_structured_error(
|
|
1277
1277
|
e,
|
|
@@ -1396,7 +1396,7 @@ async def delete_backup(
|
|
|
1396
1396
|
|
|
1397
1397
|
except ToolError:
|
|
1398
1398
|
raise
|
|
1399
|
-
except Exception as e:
|
|
1399
|
+
except Exception as e: # noqa: BLE001
|
|
1400
1400
|
logger.error(f"Error deleting backup: {e}")
|
|
1401
1401
|
exception_to_structured_error(
|
|
1402
1402
|
e,
|
|
@@ -2016,7 +2016,7 @@ async def _edits_diff(
|
|
|
2016
2016
|
)
|
|
2017
2017
|
except ToolError:
|
|
2018
2018
|
raise
|
|
2019
|
-
except Exception as err:
|
|
2019
|
+
except Exception as err: # noqa: BLE001
|
|
2020
2020
|
# Fetching the live config for diff goes through the
|
|
2021
2021
|
# same domain handler ``restore`` uses, so the same
|
|
2022
2022
|
# HA-side failure modes (4xx/5xx, WS errors, schema
|
|
@@ -2139,7 +2139,7 @@ async def _edits_restore(
|
|
|
2139
2139
|
)
|
|
2140
2140
|
except ToolError:
|
|
2141
2141
|
raise
|
|
2142
|
-
except Exception as err:
|
|
2142
|
+
except Exception as err: # noqa: BLE001
|
|
2143
2143
|
# ``handler.restore`` is domain-specific and can surface
|
|
2144
2144
|
# HA-side rejections (schema-validation failures, 4xx/5xx
|
|
2145
2145
|
# responses, WS command errors). Without this catch those
|
|
@@ -218,7 +218,7 @@ async def _via_component(client: Any, domain: str, path: str) -> _ComponentBody:
|
|
|
218
218
|
"ha_mcp_tools/blueprint_get failed; served metadata-only: %r", exc
|
|
219
219
|
)
|
|
220
220
|
return _NO_COMPONENT_BODY
|
|
221
|
-
except Exception as exc:
|
|
221
|
+
except Exception as exc: # noqa: BLE001
|
|
222
222
|
# HomeAssistantConnectionError / plain establish Exception → metadata-only
|
|
223
223
|
# (no full-body legacy fetch exists; the base metadata is already served).
|
|
224
224
|
logger.warning(
|
|
@@ -252,7 +252,7 @@ async def _via_tools_entry(client: Any, domain: str, path: str) -> str | None:
|
|
|
252
252
|
|
|
253
253
|
try:
|
|
254
254
|
content = await _fetch_file(client, f"blueprints/{domain}/{path}")
|
|
255
|
-
except Exception as exc:
|
|
255
|
+
except Exception as exc: # noqa: BLE001
|
|
256
256
|
logger.debug(
|
|
257
257
|
"File & YAML Tools read of blueprint %r unavailable (%r)", path, exc
|
|
258
258
|
)
|
|
@@ -294,7 +294,7 @@ async def _via_source_url(
|
|
|
294
294
|
imported = await client.send_websocket_message(
|
|
295
295
|
{"type": "blueprint/import", "url": source_url}
|
|
296
296
|
)
|
|
297
|
-
except Exception as exc:
|
|
297
|
+
except Exception as exc: # noqa: BLE001
|
|
298
298
|
logger.debug(
|
|
299
299
|
"Re-fetch of blueprint %r from %s failed: %r",
|
|
300
300
|
path,
|
|
@@ -654,7 +654,7 @@ async def _load_hidden_entities(
|
|
|
654
654
|
return visibility_hidden | registry_hidden, warnings
|
|
655
655
|
|
|
656
656
|
|
|
657
|
-
async def resolve_bulk_selector(
|
|
657
|
+
async def resolve_bulk_selector( # noqa: PLR0915
|
|
658
658
|
client: HomeAssistantClient,
|
|
659
659
|
selector: Mapping[str, Any],
|
|
660
660
|
*,
|
{ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/tools/component_config_entries.py
RENAMED
|
@@ -83,7 +83,7 @@ async def _config_entry_rows(client: Any, **query: Any) -> list[dict[str, Any]]
|
|
|
83
83
|
else:
|
|
84
84
|
logger.warning("%s failed: %r", WS_CONFIG_ENTRIES, exc)
|
|
85
85
|
return None
|
|
86
|
-
except Exception as exc:
|
|
86
|
+
except Exception as exc: # noqa: BLE001
|
|
87
87
|
logger.warning("%s connection error: %r", WS_CONFIG_ENTRIES, exc)
|
|
88
88
|
return None
|
|
89
89
|
result = raw.get("result") if isinstance(raw, dict) else None
|
|
@@ -175,7 +175,7 @@ async def fetch_config_entry_unique_id(client: Any, entry_id: str) -> EntryUniqu
|
|
|
175
175
|
"%s failed; unique_id unavailable: %r", WS_CONFIG_ENTRIES, exc
|
|
176
176
|
)
|
|
177
177
|
return UNKNOWN_UNIQUE_ID
|
|
178
|
-
except Exception as exc:
|
|
178
|
+
except Exception as exc: # noqa: BLE001
|
|
179
179
|
logger.warning(
|
|
180
180
|
"%s connection error; unique_id unavailable: %r", WS_CONFIG_ENTRIES, exc
|
|
181
181
|
)
|
{ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/tools/component_config_reads.py
RENAMED
|
@@ -119,7 +119,7 @@ async def fetch_entity_lookup_via_component(
|
|
|
119
119
|
else:
|
|
120
120
|
logger.warning("%s failed; fell back to legacy: %r", WS_ENTITY_LOOKUP, exc)
|
|
121
121
|
return None
|
|
122
|
-
except Exception as exc:
|
|
122
|
+
except Exception as exc: # noqa: BLE001
|
|
123
123
|
# HomeAssistantConnectionError: a pooled-WS drop or a failed
|
|
124
124
|
# (re)connect.
|
|
125
125
|
# The resolvers' legacy paths do NOT die identically (see module docstring),
|
|
@@ -183,7 +183,7 @@ async def fetch_reference_data_via_component(
|
|
|
183
183
|
else:
|
|
184
184
|
logger.warning("%s failed; fell back to legacy: %r", WS_REFERENCE_DATA, exc)
|
|
185
185
|
return None
|
|
186
|
-
except Exception as exc:
|
|
186
|
+
except Exception as exc: # noqa: BLE001
|
|
187
187
|
# Legacy is REST (get_services/get_states), NOT the pooled WS, so a
|
|
188
188
|
# pooled-WS drop or a failed (re)connect must route to the REST fetch
|
|
189
189
|
# rather than escape into the validator's swallow-all guard (which would
|
{ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/tools/component_dashboard_edit.py
RENAMED
|
@@ -159,7 +159,7 @@ async def edit_dashboard_via_component(
|
|
|
159
159
|
kwargs["patch"] = patch
|
|
160
160
|
try:
|
|
161
161
|
raw = await ws.send_command(WS_DASHBOARD_EDIT, **kwargs)
|
|
162
|
-
except (asyncio.CancelledError, Exception) as exc:
|
|
162
|
+
except (asyncio.CancelledError, Exception) as exc: # noqa: BLE001
|
|
163
163
|
# Pre-dispatch cancellation still propagates; after dispatch it cannot
|
|
164
164
|
# establish whether Core saved unless an explicit rejection says so.
|
|
165
165
|
_handle_command_failure(exc, client, url_path, action)
|
|
@@ -110,7 +110,7 @@ async def fetch_device_via_component(
|
|
|
110
110
|
else:
|
|
111
111
|
logger.warning("%s failed; fell back to legacy: %r", WS_DEVICE_GET, exc)
|
|
112
112
|
return None
|
|
113
|
-
except Exception as exc:
|
|
113
|
+
except Exception as exc: # noqa: BLE001
|
|
114
114
|
# HomeAssistantConnectionError: a pooled-WS drop or a failed
|
|
115
115
|
# (re)connect. The legacy paths ride the send_websocket_message bridge /
|
|
116
116
|
# a dedicated capture socket, so fall back to legacy; if the transport
|
|
@@ -192,7 +192,7 @@ async def fetch_device_list_via_component(client: Any) -> dict[str, Any] | None:
|
|
|
192
192
|
else:
|
|
193
193
|
logger.warning("%s failed; fell back to legacy: %r", WS_DEVICE_LIST, exc)
|
|
194
194
|
return None
|
|
195
|
-
except Exception as exc:
|
|
195
|
+
except Exception as exc: # noqa: BLE001
|
|
196
196
|
# HomeAssistantConnectionError / plain establish Exception → legacy (the
|
|
197
197
|
# legacy device list rides the send_websocket_message bridge).
|
|
198
198
|
logger.warning(
|
{ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/tools/component_registries.py
RENAMED
|
@@ -132,7 +132,7 @@ async def fetch_registries_via_component(
|
|
|
132
132
|
else:
|
|
133
133
|
logger.warning("%s failed; fell back to legacy: %r", WS_REGISTRIES, exc)
|
|
134
134
|
return None
|
|
135
|
-
except Exception as exc:
|
|
135
|
+
except Exception as exc: # noqa: BLE001
|
|
136
136
|
# HomeAssistantConnectionError: a pooled-WS drop or a failed
|
|
137
137
|
# (re)connect. The capture
|
|
138
138
|
# fetchers use a dedicated one-shot socket and forbid a blocked write, so
|
{ha_mcp_dev-8.6.0.dev2834 → ha_mcp_dev-8.6.0.dev2839}/src/ha_mcp/tools/component_registry_lookup.py
RENAMED
|
@@ -102,7 +102,7 @@ async def fetch_entities_for_config_entry_via_component(
|
|
|
102
102
|
"%s failed; fell back to legacy: %r", WS_REGISTRY_LOOKUP, exc
|
|
103
103
|
)
|
|
104
104
|
return None
|
|
105
|
-
except Exception as exc:
|
|
105
|
+
except Exception as exc: # noqa: BLE001
|
|
106
106
|
# HomeAssistantConnectionError / plain establish Exception → legacy (the
|
|
107
107
|
# legacy entity_registry/list dump rides the bridge; see module
|
|
108
108
|
# docstring). Never propagate a transport failure out of the read.
|
|
@@ -157,7 +157,7 @@ async def resolve_entities_via_component(
|
|
|
157
157
|
"%s failed; fell back to legacy: %r", WS_REGISTRY_LOOKUP, exc
|
|
158
158
|
)
|
|
159
159
|
return None
|
|
160
|
-
except Exception as exc:
|
|
160
|
+
except Exception as exc: # noqa: BLE001
|
|
161
161
|
# HomeAssistantConnectionError / plain establish Exception → legacy. The
|
|
162
162
|
# simple-delete consumer's legacy per-id retry loop only runs when this
|
|
163
163
|
# returns None, so an escaping transport failure would skip it entirely.
|