ha-mcp-dev 8.0.0.dev2230__tar.gz → 8.0.0.dev2233__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.0.0.dev2230/src/ha_mcp_dev.egg-info → ha_mcp_dev-8.0.0.dev2233}/PKG-INFO +1 -1
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/pyproject.toml +1 -1
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/__main__.py +12 -5
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/client/websocket_client.py +30 -2
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233/src/ha_mcp_dev.egg-info}/PKG-INFO +1 -1
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/LICENSE +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/MANIFEST.in +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/README.md +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/setup.cfg +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/__init__.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/_pypi_marker +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/_version.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/auth/__init__.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/auth/consent_form.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/auth/provider.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/backup_manager.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/browser_landing.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/client/__init__.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/client/rest_client.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/client/supervisor_client.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/client/websocket_listener.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/config.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/dashboard_screenshot/__init__.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/dashboard_screenshot/capture.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/dashboard_screenshot/content.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/dashboard_screenshot/paths.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/dashboard_screenshot/provision.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/dashboard_screenshot/theme_guard.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/errors.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/llm_exposure.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/policy/__init__.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/policy/approval_queue.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/policy/evaluator.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/policy/handlers.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/policy/middleware.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/policy/model.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/policy/persistence.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/policy/value_sources.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/py.typed +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/read_only.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/resources/skills-vendor/.claude/settings.json +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/resources/skills-vendor/.claude-plugin/marketplace.json +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/resources/skills-vendor/.claude-plugin/plugin.json +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/resources/skills-vendor/.github/ISSUE_TEMPLATE/skill-rca.md +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/resources/skills-vendor/.github/pull_request_template.md +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/resources/skills-vendor/AGENTS.md +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/resources/skills-vendor/CLAUDE.md +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/resources/skills-vendor/CONTRIBUTING.md +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/resources/skills-vendor/LICENSE +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/resources/skills-vendor/README.md +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/SKILL.md +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/evals/evals.json +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/appdaemon.md +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/automation-patterns.md +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/blueprint-guide.md +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/dashboard-cards.md +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/dashboard-guide.md +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/device-control.md +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/domain-docs.md +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/examples.yaml +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/helper-selection.md +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/safe-refactoring.md +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/scenes.md +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/template-guidelines.md +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/yaml-only-integrations.md +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/server.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/settings_ui/__init__.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/settings_ui/_handlers_advanced.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/settings_ui/_handlers_backups.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/settings_ui/_handlers_fs.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/settings_ui/_handlers_server.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/settings_ui/_handlers_theme.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/settings_ui/_handlers_tools.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/settings_ui/_i18n.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/settings_ui/_persistence.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/settings_ui/_supervisor.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/settings_ui/_theme.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/settings_ui/_tools_meta.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/settings_ui/locales/README.md +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/settings_ui/locales/de.json +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/settings_ui/locales/en.json +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/settings_ui/locales/es.json +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/settings_ui/locales/fr.json +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/settings_ui/locales/it.json +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/settings_ui/locales/ru.json +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/settings_ui/locales/zh-Hans.json +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/settings_ui/settings.css +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/settings_ui/settings.html +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/settings_ui/settings.js +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/smoke_test.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/stdio_settings_sidecar.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/strict_bps.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/tools/__init__.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/tools/auto_backup.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/tools/backup.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/tools/best_practice_checker.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/tools/best_practice_result.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/tools/best_practice_variables.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/tools/component_api.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/tools/component_config_reads.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/tools/component_devices.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/tools/component_registries.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/tools/component_registry_lookup.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/tools/config_entry_flow.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/tools/config_entry_flow_form.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/tools/config_entry_flow_menu.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/tools/config_entry_flow_walker.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/tools/device_control.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/tools/hacs_registration.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/tools/helpers.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/tools/radio/__init__.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/tools/radio/base.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/tools/radio/matter.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/tools/radio/thread.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/tools/radio/zigbee.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/tools/radio/zwave.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/tools/reference_validator.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/tools/registry.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/tools/smart_search/__init__.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/tools/smart_search/_base.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/tools/smart_search/_config.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/tools/smart_search/_deep.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/tools/smart_search/_entities.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/tools/smart_search/_fetch.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/tools/smart_search/_overview.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/tools/smart_search/_scenes.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/tools/smart_search/_scoring.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/tools/tool_search_hint_middleware.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/tools/tools_addons.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/tools/tools_areas.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/tools/tools_blueprints.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/tools/tools_bug_report.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/tools/tools_calendar.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/tools/tools_camera.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/tools/tools_categories.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/tools/tools_code.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/tools/tools_config_automations.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/tools/tools_config_dashboards.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/tools/tools_config_helpers.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/tools/tools_config_scenes.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/tools/tools_config_scripts.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/tools/tools_dashboard_screenshot.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/tools/tools_dev.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/tools/tools_energy.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/tools/tools_entities.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/tools/tools_filesystem.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/tools/tools_groups.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/tools/tools_hacs.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/tools/tools_history.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/tools/tools_integrations.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/tools/tools_labels.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/tools/tools_radio.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/tools/tools_registry.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/tools/tools_resources.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/tools/tools_search.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/tools/tools_service.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/tools/tools_services.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/tools/tools_system.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/tools/tools_themes.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/tools/tools_todo.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/tools/tools_traces.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/tools/tools_updates.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/tools/tools_utility.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/tools/tools_voice_assistant.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/tools/tools_yaml_config.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/tools/tools_yaml_read.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/tools/tools_zones.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/tools/util_helpers.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/tools/validation_middleware.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/transforms/__init__.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/transforms/categorized_search.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/transforms/lite_docstrings.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/transport_security.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/update_check.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/utils/__init__.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/utils/config_hash.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/utils/config_write_lock.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/utils/data_paths.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/utils/domain_handlers.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/utils/fuzzy_search.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/utils/kill_signal_diagnostics.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/utils/operation_manager.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/utils/python_sandbox.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/utils/skill_loader.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/utils/usage_logger.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/visibility/__init__.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/visibility/enforcement.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/visibility/model.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/visibility/persistence.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/visibility/resolver.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp_dev.egg-info/SOURCES.txt +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp_dev.egg-info/dependency_links.txt +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp_dev.egg-info/entry_points.txt +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp_dev.egg-info/requires.txt +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp_dev.egg-info/top_level.txt +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/tests/__init__.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/tests/test_constants.py +0 -0
- {ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/tests/test_env_manager.py +0 -0
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "ha-mcp-dev"
|
|
7
|
-
version = "8.0.0.
|
|
7
|
+
version = "8.0.0.dev2233"
|
|
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
|
|
@@ -690,11 +690,18 @@ async def _run_with_shutdown(server_coro: Coroutine[Any, Any, Any]) -> None:
|
|
|
690
690
|
logger.error("Server task cancelled without a shutdown signal")
|
|
691
691
|
raise
|
|
692
692
|
finally:
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
693
|
+
# Cancel-and-abandon, not wait_for: wait_for awaits the cancelled
|
|
694
|
+
# coroutine before raising, and the cleanup stack swallows
|
|
695
|
+
# CancelledError at several layers (per-client in
|
|
696
|
+
# WebSocketManager.disconnect, in client.disconnect's own task-cancel
|
|
697
|
+
# guard), so a hung close handshake could block shutdown past the
|
|
698
|
+
# budget. A straggler is left to the runner's own task sweep.
|
|
699
|
+
cleanup_task = asyncio.ensure_future(_cleanup_resources())
|
|
700
|
+
_done, cleanup_pending = await asyncio.wait(
|
|
701
|
+
{cleanup_task}, timeout=SHUTDOWN_TIMEOUT_SECONDS
|
|
702
|
+
)
|
|
703
|
+
if cleanup_pending:
|
|
704
|
+
cleanup_task.cancel()
|
|
698
705
|
logger.warning("Resource cleanup timed out")
|
|
699
706
|
|
|
700
707
|
try:
|
|
@@ -1251,10 +1251,31 @@ class WebSocketManager:
|
|
|
1251
1251
|
self._last_used[key] = time.monotonic()
|
|
1252
1252
|
return existing
|
|
1253
1253
|
|
|
1254
|
-
# Remove stale client if present
|
|
1254
|
+
# Remove stale client if present. Disconnect it too: a client
|
|
1255
|
+
# whose connection dropped can still own a parked reader task and
|
|
1256
|
+
# a half-open socket, and simply dropping the reference abandons
|
|
1257
|
+
# both to garbage collection — the GC's asyncgen finalizer then
|
|
1258
|
+
# acloses the reader's ``Connection.__aiter__`` mid-``__anext__``
|
|
1259
|
+
# and logs ``aclose(): asynchronous generator is already
|
|
1260
|
+
# running`` (issue #2127). Same-loop by construction: a loop
|
|
1261
|
+
# change already detached the pool above, so ``existing`` was
|
|
1262
|
+
# built on ``current_loop`` and can be awaited here.
|
|
1255
1263
|
if existing:
|
|
1256
1264
|
self._clients.pop(key, None)
|
|
1257
1265
|
self._last_used.pop(key, None)
|
|
1266
|
+
try:
|
|
1267
|
+
await existing.disconnect()
|
|
1268
|
+
except asyncio.CancelledError:
|
|
1269
|
+
# The caller itself was cancelled mid-cleanup: propagate.
|
|
1270
|
+
# Swallowing here would let a cancelled operation keep
|
|
1271
|
+
# doing network I/O and leave a fresh connection retained
|
|
1272
|
+
# in the pool.
|
|
1273
|
+
raise
|
|
1274
|
+
except (OSError, RuntimeError):
|
|
1275
|
+
logger.warning(
|
|
1276
|
+
"Error disconnecting stale WebSocket client",
|
|
1277
|
+
exc_info=True,
|
|
1278
|
+
)
|
|
1258
1279
|
|
|
1259
1280
|
factory = self._client_factory or HomeAssistantWebSocketClient
|
|
1260
1281
|
client = (
|
|
@@ -1291,7 +1312,14 @@ class WebSocketManager:
|
|
|
1291
1312
|
if stale:
|
|
1292
1313
|
try:
|
|
1293
1314
|
await stale.disconnect()
|
|
1294
|
-
except
|
|
1315
|
+
except asyncio.CancelledError:
|
|
1316
|
+
# The caller itself was cancelled mid-eviction: propagate.
|
|
1317
|
+
# Eviction runs after the fresh client was pooled, so a
|
|
1318
|
+
# swallow here would hand a connected client back to a
|
|
1319
|
+
# cancelled caller (mirror of the stale-replacement clause
|
|
1320
|
+
# in get_client).
|
|
1321
|
+
raise
|
|
1322
|
+
except (OSError, RuntimeError):
|
|
1295
1323
|
logger.warning(
|
|
1296
1324
|
"Error disconnecting evicted WebSocket client",
|
|
1297
1325
|
exc_info=True,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/client/supervisor_client.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/client/websocket_listener.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/dashboard_screenshot/__init__.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/dashboard_screenshot/capture.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/dashboard_screenshot/content.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/dashboard_screenshot/paths.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/dashboard_screenshot/provision.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/dashboard_screenshot/theme_guard.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/resources/skills-vendor/AGENTS.md
RENAMED
|
File without changes
|
{ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/resources/skills-vendor/CLAUDE.md
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/resources/skills-vendor/LICENSE
RENAMED
|
File without changes
|
{ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/resources/skills-vendor/README.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/settings_ui/_handlers_advanced.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/settings_ui/_handlers_backups.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/settings_ui/_handlers_fs.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/settings_ui/_handlers_server.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/settings_ui/_handlers_theme.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/settings_ui/_handlers_tools.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/settings_ui/_persistence.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/settings_ui/locales/README.md
RENAMED
|
File without changes
|
{ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/settings_ui/locales/de.json
RENAMED
|
File without changes
|
{ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/settings_ui/locales/en.json
RENAMED
|
File without changes
|
{ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/settings_ui/locales/es.json
RENAMED
|
File without changes
|
{ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/settings_ui/locales/fr.json
RENAMED
|
File without changes
|
{ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/settings_ui/locales/it.json
RENAMED
|
File without changes
|
{ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/settings_ui/locales/ru.json
RENAMED
|
File without changes
|
{ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/settings_ui/locales/zh-Hans.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/tools/best_practice_checker.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/tools/best_practice_result.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/tools/best_practice_variables.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/tools/component_config_reads.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/tools/component_registries.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/tools/component_registry_lookup.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/tools/config_entry_flow_form.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/tools/config_entry_flow_menu.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/tools/config_entry_flow_walker.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/tools/reference_validator.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/tools/smart_search/__init__.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/tools/smart_search/_base.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/tools/smart_search/_config.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/tools/smart_search/_deep.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/tools/smart_search/_entities.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/tools/smart_search/_fetch.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/tools/smart_search/_overview.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/tools/smart_search/_scenes.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/tools/smart_search/_scoring.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/tools/tools_config_automations.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/tools/tools_config_dashboards.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/tools/tools_config_helpers.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/tools/tools_config_scenes.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/tools/tools_config_scripts.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/tools/tools_dashboard_screenshot.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/tools/tools_integrations.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/tools/tools_voice_assistant.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/tools/validation_middleware.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/transforms/categorized_search.py
RENAMED
|
File without changes
|
{ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/transforms/lite_docstrings.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp/utils/kill_signal_diagnostics.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp_dev.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
{ha_mcp_dev-8.0.0.dev2230 → ha_mcp_dev-8.0.0.dev2233}/src/ha_mcp_dev.egg-info/entry_points.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|