ha-mcp-dev 7.14.2.dev2128__tar.gz → 7.14.2.dev2129__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-7.14.2.dev2128/src/ha_mcp_dev.egg-info → ha_mcp_dev-7.14.2.dev2129}/PKG-INFO +1 -1
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/pyproject.toml +8 -1
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/__main__.py +30 -8
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/utils/usage_logger.py +26 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129/src/ha_mcp_dev.egg-info}/PKG-INFO +1 -1
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/LICENSE +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/MANIFEST.in +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/README.md +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/setup.cfg +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/__init__.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/_pypi_marker +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/_version.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/auth/__init__.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/auth/consent_form.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/auth/provider.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/backup_manager.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/browser_landing.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/client/__init__.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/client/rest_client.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/client/supervisor_client.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/client/websocket_client.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/client/websocket_listener.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/config.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/dashboard_screenshot/__init__.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/dashboard_screenshot/capture.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/dashboard_screenshot/content.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/dashboard_screenshot/paths.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/dashboard_screenshot/provision.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/dashboard_screenshot/theme_guard.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/errors.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/llm_exposure.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/policy/__init__.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/policy/approval_queue.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/policy/evaluator.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/policy/handlers.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/policy/middleware.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/policy/model.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/policy/persistence.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/policy/value_sources.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/py.typed +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/read_only.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/resources/skills-vendor/.claude/settings.json +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/resources/skills-vendor/.claude-plugin/marketplace.json +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/resources/skills-vendor/.claude-plugin/plugin.json +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/resources/skills-vendor/.github/ISSUE_TEMPLATE/skill-rca.md +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/resources/skills-vendor/.github/pull_request_template.md +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/resources/skills-vendor/AGENTS.md +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/resources/skills-vendor/CLAUDE.md +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/resources/skills-vendor/CONTRIBUTING.md +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/resources/skills-vendor/LICENSE +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/resources/skills-vendor/README.md +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/SKILL.md +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/evals/evals.json +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/appdaemon.md +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/automation-patterns.md +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/blueprint-guide.md +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/dashboard-cards.md +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/dashboard-guide.md +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/device-control.md +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/domain-docs.md +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/examples.yaml +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/helper-selection.md +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/safe-refactoring.md +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/scenes.md +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/template-guidelines.md +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/yaml-only-integrations.md +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/server.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/settings_ui/__init__.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/settings_ui/_handlers_advanced.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/settings_ui/_handlers_backups.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/settings_ui/_handlers_fs.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/settings_ui/_handlers_server.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/settings_ui/_handlers_theme.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/settings_ui/_handlers_tools.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/settings_ui/_i18n.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/settings_ui/_persistence.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/settings_ui/_supervisor.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/settings_ui/_theme.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/settings_ui/_tools_meta.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/settings_ui/locales/README.md +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/settings_ui/locales/de.json +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/settings_ui/locales/en.json +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/settings_ui/locales/ru.json +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/settings_ui/locales/zh-Hans.json +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/settings_ui/settings.css +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/settings_ui/settings.html +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/settings_ui/settings.js +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/smoke_test.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/stdio_settings_sidecar.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/strict_bps.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/tools/__init__.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/tools/auto_backup.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/tools/backup.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/tools/best_practice_checker.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/tools/component_api.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/tools/component_config_reads.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/tools/component_devices.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/tools/component_registries.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/tools/component_registry_lookup.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/tools/config_entry_flow.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/tools/device_control.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/tools/enhanced.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/tools/helpers.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/tools/radio/__init__.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/tools/radio/base.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/tools/radio/matter.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/tools/radio/thread.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/tools/radio/zigbee.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/tools/radio/zwave.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/tools/reference_validator.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/tools/registry.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/tools/smart_search/__init__.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/tools/smart_search/_base.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/tools/smart_search/_config.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/tools/smart_search/_deep.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/tools/smart_search/_entities.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/tools/smart_search/_fetch.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/tools/smart_search/_overview.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/tools/smart_search/_scenes.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/tools/smart_search/_scoring.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/tools/tool_search_hint_middleware.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/tools/tools_addons.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/tools/tools_areas.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/tools/tools_blueprints.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/tools/tools_bug_report.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/tools/tools_calendar.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/tools/tools_camera.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/tools/tools_categories.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/tools/tools_code.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/tools/tools_config_automations.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/tools/tools_config_dashboards.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/tools/tools_config_helpers.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/tools/tools_config_scenes.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/tools/tools_config_scripts.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/tools/tools_dashboard_screenshot.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/tools/tools_dev.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/tools/tools_energy.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/tools/tools_entities.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/tools/tools_filesystem.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/tools/tools_groups.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/tools/tools_hacs.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/tools/tools_history.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/tools/tools_integrations.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/tools/tools_labels.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/tools/tools_radio.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/tools/tools_registry.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/tools/tools_resources.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/tools/tools_search.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/tools/tools_service.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/tools/tools_services.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/tools/tools_system.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/tools/tools_themes.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/tools/tools_todo.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/tools/tools_traces.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/tools/tools_updates.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/tools/tools_utility.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/tools/tools_voice_assistant.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/tools/tools_yaml_config.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/tools/tools_yaml_read.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/tools/tools_zones.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/tools/util_helpers.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/tools/validation_middleware.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/transforms/__init__.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/transforms/categorized_search.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/transforms/lite_docstrings.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/transport_security.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/update_check.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/utils/__init__.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/utils/config_hash.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/utils/config_write_lock.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/utils/data_paths.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/utils/domain_handlers.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/utils/fuzzy_search.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/utils/kill_signal_diagnostics.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/utils/operation_manager.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/utils/python_sandbox.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/utils/skill_loader.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/visibility/__init__.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/visibility/enforcement.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/visibility/model.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/visibility/persistence.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/visibility/resolver.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp_dev.egg-info/SOURCES.txt +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp_dev.egg-info/dependency_links.txt +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp_dev.egg-info/entry_points.txt +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp_dev.egg-info/requires.txt +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp_dev.egg-info/top_level.txt +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/tests/__init__.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/tests/test_constants.py +0 -0
- {ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/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 = "7.14.2.
|
|
7
|
+
version = "7.14.2.dev2129"
|
|
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
|
|
@@ -199,6 +199,13 @@ asyncio_mode = "auto"
|
|
|
199
199
|
|
|
200
200
|
[dependency-groups]
|
|
201
201
|
dev = [
|
|
202
|
+
# Real aiohttp so tests can pin the ClientTimeout defaults the custom
|
|
203
|
+
# component's relay and the webhook-proxy addon rely on (both are stubbed
|
|
204
|
+
# in unit tests; nothing else would catch stub drift). NOT a runtime
|
|
205
|
+
# dependency — src/ never imports aiohttp; HA core provides it in-process.
|
|
206
|
+
# Floor = the aiohttp HA core 2026.6 pins (2026.7 pins 3.14.1, 2026.8.dev
|
|
207
|
+
# pins 3.14.3), so the version tested here is one a supported HA runs.
|
|
208
|
+
"aiohttp>=3.13.5",
|
|
202
209
|
"build>=1.2.2",
|
|
203
210
|
"docker>=7.1.0",
|
|
204
211
|
"httpx2>=2.4.0",
|
|
@@ -478,14 +478,36 @@ class ProbeAccessLogFilter(logging.Filter):
|
|
|
478
478
|
return not (status == 405 and path == self._mcp_path)
|
|
479
479
|
|
|
480
480
|
|
|
481
|
-
def _setup_logging(log_level_str: str, force: bool =
|
|
482
|
-
"""Configure root logger with consistent timestamp format.
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
481
|
+
def _setup_logging(log_level_str: str, force: bool = True) -> None:
|
|
482
|
+
"""Configure root logger with consistent timestamp format.
|
|
483
|
+
|
|
484
|
+
``force`` defaults to True so the reconfiguration is deterministic: with
|
|
485
|
+
ANY root handler present, ``basicConfig`` is a silent no-op — neither the
|
|
486
|
+
console handler nor the level is applied. Since
|
|
487
|
+
``preserve_startup_collector`` detaches the collector before
|
|
488
|
+
``basicConfig`` runs, the default guards against FOREIGN root handlers —
|
|
489
|
+
a test runner's or a dependency's. At the two call sites that use the
|
|
490
|
+
default (``main`` and ``_setup_standard_mode``) the only root handler
|
|
491
|
+
attached anywhere in ``src/`` is the collector, which the wrapper detaches
|
|
492
|
+
first — so today the default is defensive rather than load-bearing. The
|
|
493
|
+
OAuth/OIDC entry points pass ``force=True`` explicitly and never exercise
|
|
494
|
+
the default.
|
|
495
|
+
|
|
496
|
+
The historical standard-mode bug was ``usage_logger``'s
|
|
497
|
+
``StartupLogCollector`` (attached to root at import time) triggering that
|
|
498
|
+
same no-op; the wrapper now detaches it for the duration — keeping it out
|
|
499
|
+
of the sweep ``force`` performs (which removes *and closes* every root
|
|
500
|
+
handler) so ``ha_report_issue`` keeps its startup diagnostics.
|
|
501
|
+
"""
|
|
502
|
+
from ha_mcp.utils.usage_logger import preserve_startup_collector
|
|
503
|
+
|
|
504
|
+
with preserve_startup_collector():
|
|
505
|
+
logging.basicConfig(
|
|
506
|
+
level=getattr(logging, log_level_str),
|
|
507
|
+
format="%(asctime)s %(name)s %(levelname)s: %(message)s",
|
|
508
|
+
datefmt=_LOG_DATE_FORMAT,
|
|
509
|
+
force=force,
|
|
510
|
+
)
|
|
489
511
|
logging.getLogger("mcp.server.streamable_http").addFilter(
|
|
490
512
|
StatelessSessionLogFilter()
|
|
491
513
|
)
|
|
@@ -7,6 +7,8 @@ import logging
|
|
|
7
7
|
import threading
|
|
8
8
|
import time
|
|
9
9
|
from collections import deque
|
|
10
|
+
from collections.abc import Iterator
|
|
11
|
+
from contextlib import contextmanager
|
|
10
12
|
from dataclasses import asdict, dataclass
|
|
11
13
|
from datetime import UTC, datetime
|
|
12
14
|
from pathlib import Path
|
|
@@ -94,6 +96,30 @@ def get_startup_logs() -> list[dict[str, Any]]:
|
|
|
94
96
|
return _startup_collector.get_logs()
|
|
95
97
|
|
|
96
98
|
|
|
99
|
+
@contextmanager
|
|
100
|
+
def preserve_startup_collector() -> Iterator[None]:
|
|
101
|
+
"""Keep the startup collector attached across a logging reconfiguration.
|
|
102
|
+
|
|
103
|
+
``logging.basicConfig(force=True)`` removes *and closes* every handler on
|
|
104
|
+
the root logger. The collector is attached there at import time and is the
|
|
105
|
+
source of ``ha_report_issue``'s startup diagnostics, so it is detached for
|
|
106
|
+
the duration of the block — leaving nothing for the sweep to close — and
|
|
107
|
+
re-attached afterwards.
|
|
108
|
+
"""
|
|
109
|
+
collector = _startup_collector
|
|
110
|
+
root = logging.getLogger()
|
|
111
|
+
if collector is None or collector not in root.handlers:
|
|
112
|
+
yield
|
|
113
|
+
return
|
|
114
|
+
|
|
115
|
+
root.removeHandler(collector)
|
|
116
|
+
try:
|
|
117
|
+
yield
|
|
118
|
+
finally:
|
|
119
|
+
if collector not in root.handlers:
|
|
120
|
+
root.addHandler(collector)
|
|
121
|
+
|
|
122
|
+
|
|
97
123
|
# Parameter keys whose values are masked before a tool call is recorded to the
|
|
98
124
|
# in-memory ring buffer or persisted to disk. Tool kwargs can carry secrets
|
|
99
125
|
# (alarm/lock ``code``, tokens, passwords); these must never reach the usage
|
|
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-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/client/supervisor_client.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/client/websocket_client.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/client/websocket_listener.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/dashboard_screenshot/__init__.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/dashboard_screenshot/capture.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/dashboard_screenshot/content.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/dashboard_screenshot/paths.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/dashboard_screenshot/provision.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
|
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/resources/skills-vendor/AGENTS.md
RENAMED
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/resources/skills-vendor/CLAUDE.md
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/resources/skills-vendor/LICENSE
RENAMED
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/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-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/settings_ui/_handlers_advanced.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/settings_ui/_handlers_backups.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/settings_ui/_handlers_fs.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/settings_ui/_handlers_server.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/settings_ui/_handlers_theme.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/settings_ui/_handlers_tools.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/settings_ui/_persistence.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/settings_ui/_supervisor.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/settings_ui/_tools_meta.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/settings_ui/locales/README.md
RENAMED
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/settings_ui/locales/de.json
RENAMED
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/settings_ui/locales/en.json
RENAMED
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/settings_ui/locales/ru.json
RENAMED
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/settings_ui/locales/zh-Hans.json
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/settings_ui/settings.html
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/stdio_settings_sidecar.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/tools/best_practice_checker.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/tools/component_config_reads.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/tools/component_devices.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/tools/component_registries.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/tools/config_entry_flow.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-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/tools/reference_validator.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/tools/smart_search/__init__.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/tools/smart_search/_base.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/tools/smart_search/_config.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/tools/smart_search/_deep.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/tools/smart_search/_entities.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/tools/smart_search/_fetch.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/tools/smart_search/_overview.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/tools/smart_search/_scenes.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/tools/smart_search/_scoring.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/tools/tools_blueprints.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/tools/tools_bug_report.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/tools/tools_categories.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/tools/tools_config_automations.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/tools/tools_config_dashboards.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/tools/tools_config_helpers.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/tools/tools_config_scenes.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/tools/tools_config_scripts.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/tools/tools_filesystem.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/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-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/tools/tools_voice_assistant.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/tools/tools_yaml_config.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/tools/validation_middleware.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/transforms/categorized_search.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/transforms/lite_docstrings.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/utils/config_write_lock.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/utils/kill_signal_diagnostics.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/utils/operation_manager.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/visibility/enforcement.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp/visibility/persistence.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp_dev.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp_dev.egg-info/entry_points.txt
RENAMED
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp_dev.egg-info/requires.txt
RENAMED
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2128 → ha_mcp_dev-7.14.2.dev2129}/src/ha_mcp_dev.egg-info/top_level.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|