ha-mcp-dev 7.9.0.dev737__tar.gz → 7.9.0.dev738__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.9.0.dev737/src/ha_mcp_dev.egg-info → ha_mcp_dev-7.9.0.dev738}/PKG-INFO +1 -1
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/pyproject.toml +1 -1
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/tools/tools_entities.py +38 -23
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738/src/ha_mcp_dev.egg-info}/PKG-INFO +1 -1
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/LICENSE +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/MANIFEST.in +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/README.md +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/setup.cfg +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/__init__.py +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/__main__.py +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/_pypi_marker +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/_version.py +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/auth/__init__.py +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/auth/consent_form.py +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/auth/provider.py +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/backup_manager.py +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/client/__init__.py +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/client/rest_client.py +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/client/supervisor_client.py +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/client/websocket_client.py +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/client/websocket_listener.py +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/config.py +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/dashboard_screenshot/__init__.py +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/dashboard_screenshot/capture.py +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/dashboard_screenshot/provision.py +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/errors.py +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/policy/__init__.py +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/policy/approval_queue.py +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/policy/evaluator.py +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/policy/handlers.py +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/policy/middleware.py +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/policy/model.py +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/policy/persistence.py +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/policy/value_sources.py +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/py.typed +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/read_only.py +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/resources/skills-vendor/.claude/settings.json +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/resources/skills-vendor/.claude-plugin/marketplace.json +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/resources/skills-vendor/.claude-plugin/plugin.json +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/resources/skills-vendor/.github/ISSUE_TEMPLATE/skill-rca.md +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/resources/skills-vendor/.github/pull_request_template.md +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/resources/skills-vendor/AGENTS.md +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/resources/skills-vendor/CLAUDE.md +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/resources/skills-vendor/CONTRIBUTING.md +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/resources/skills-vendor/LICENSE +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/resources/skills-vendor/README.md +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/SKILL.md +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/evals/evals.json +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/automation-patterns.md +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/dashboard-cards.md +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/dashboard-guide.md +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/device-control.md +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/domain-docs.md +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/examples.yaml +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/helper-selection.md +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/safe-refactoring.md +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/template-guidelines.md +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/yaml-only-integrations.md +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/server.py +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/settings_ui/__init__.py +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/settings_ui/settings.css +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/settings_ui/settings.html +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/settings_ui/settings.js +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/smoke_test.py +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/stdio_settings_sidecar.py +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/tools/__init__.py +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/tools/auto_backup.py +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/tools/backup.py +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/tools/best_practice_checker.py +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/tools/config_entry_flow.py +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/tools/device_control.py +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/tools/enhanced.py +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/tools/helpers.py +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/tools/reference_validator.py +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/tools/registry.py +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/tools/smart_search/__init__.py +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/tools/smart_search/_base.py +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/tools/smart_search/_config.py +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/tools/smart_search/_deep.py +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/tools/smart_search/_entities.py +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/tools/smart_search/_fetch.py +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/tools/smart_search/_overview.py +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/tools/smart_search/_scenes.py +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/tools/smart_search/_scoring.py +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/tools/tool_search_hint_middleware.py +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/tools/tools_addons.py +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/tools/tools_areas.py +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/tools/tools_blueprints.py +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/tools/tools_bug_report.py +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/tools/tools_calendar.py +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/tools/tools_camera.py +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/tools/tools_categories.py +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/tools/tools_code.py +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/tools/tools_config_automations.py +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/tools/tools_config_dashboards.py +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/tools/tools_config_helpers.py +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/tools/tools_config_scenes.py +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/tools/tools_config_scripts.py +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/tools/tools_dashboard_screenshot.py +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/tools/tools_energy.py +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/tools/tools_filesystem.py +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/tools/tools_groups.py +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/tools/tools_hacs.py +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/tools/tools_history.py +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/tools/tools_integrations.py +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/tools/tools_labels.py +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/tools/tools_mcp_component.py +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/tools/tools_registry.py +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/tools/tools_resources.py +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/tools/tools_search.py +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/tools/tools_service.py +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/tools/tools_services.py +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/tools/tools_system.py +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/tools/tools_themes.py +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/tools/tools_todo.py +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/tools/tools_traces.py +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/tools/tools_updates.py +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/tools/tools_utility.py +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/tools/tools_voice_assistant.py +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/tools/tools_yaml_config.py +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/tools/tools_zones.py +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/tools/util_helpers.py +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/tools/validation_middleware.py +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/transforms/__init__.py +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/transforms/categorized_search.py +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/transforms/lite_docstrings.py +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/update_check.py +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/utils/__init__.py +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/utils/config_hash.py +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/utils/data_paths.py +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/utils/domain_handlers.py +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/utils/fuzzy_search.py +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/utils/kill_signal_diagnostics.py +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/utils/operation_manager.py +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/utils/python_sandbox.py +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/utils/skill_loader.py +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/utils/usage_logger.py +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp_dev.egg-info/SOURCES.txt +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp_dev.egg-info/dependency_links.txt +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp_dev.egg-info/entry_points.txt +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp_dev.egg-info/requires.txt +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp_dev.egg-info/top_level.txt +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/tests/__init__.py +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/tests/test_constants.py +0 -0
- {ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/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.9.0.
|
|
7
|
+
version = "7.9.0.dev738"
|
|
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.14"
|
|
@@ -745,30 +745,45 @@ class EntityTools:
|
|
|
745
745
|
|
|
746
746
|
exposure_result: dict[str, bool] | None = succeeded if succeeded else None
|
|
747
747
|
|
|
748
|
-
#
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
|
|
748
|
+
# Exposure mutates the registry entry's options, so refetch to return the
|
|
749
|
+
# post-exposure state. This is unconditional: the method returns early on
|
|
750
|
+
# an empty expose_to (line 695) and any exposure failure already raised
|
|
751
|
+
# above, so reaching here always means at least one exposure was applied.
|
|
752
|
+
get_msg: dict[str, Any] = {
|
|
753
|
+
"type": "config/entity_registry/get",
|
|
754
|
+
"entity_id": entity_id,
|
|
755
|
+
}
|
|
756
|
+
get_result = await self._client.send_websocket_message(get_msg)
|
|
757
|
+
if get_result.get("success"):
|
|
758
|
+
entity_entry = get_result.get("result") or {}
|
|
759
|
+
elif entity_entry:
|
|
760
|
+
# The exposure already committed; only the cosmetic post-exposure
|
|
761
|
+
# refresh failed. Keep the pre-exposure snapshot and warn rather
|
|
762
|
+
# than reporting the whole (successful) operation as a failure.
|
|
763
|
+
logger.warning(
|
|
764
|
+
f"Exposure applied to {entity_id} but its registry state could "
|
|
765
|
+
f"not be refreshed: {_extract_ws_error(get_result)}"
|
|
766
|
+
)
|
|
767
|
+
else:
|
|
768
|
+
# No prior-phase snapshot to fall back on -- surface the read
|
|
769
|
+
# failure with the actual WebSocket error.
|
|
770
|
+
raise_tool_error(
|
|
771
|
+
create_error_response(
|
|
772
|
+
ErrorCode.ENTITY_NOT_FOUND,
|
|
773
|
+
f"Entity '{entity_id}' could not be read after applying "
|
|
774
|
+
f"exposure changes: {_extract_ws_error(get_result)}",
|
|
775
|
+
context={
|
|
776
|
+
"entity_id": entity_id,
|
|
777
|
+
"exposure_succeeded": exposure_result,
|
|
778
|
+
"has_registry_updates": has_registry_updates,
|
|
779
|
+
"options_succeeded": options_succeeded,
|
|
780
|
+
},
|
|
781
|
+
suggestions=[
|
|
782
|
+
"Verify the entity_id exists using ha_search()",
|
|
783
|
+
"The entity's exposure settings were likely changed, but its current state could not be confirmed.",
|
|
784
|
+
],
|
|
771
785
|
)
|
|
786
|
+
)
|
|
772
787
|
|
|
773
788
|
return exposure_result, entity_entry
|
|
774
789
|
|
|
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.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/dashboard_screenshot/__init__.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/dashboard_screenshot/capture.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/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
|
{ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/resources/skills-vendor/AGENTS.md
RENAMED
|
File without changes
|
{ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/resources/skills-vendor/CLAUDE.md
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/resources/skills-vendor/LICENSE
RENAMED
|
File without changes
|
{ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/tools/best_practice_checker.py
RENAMED
|
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.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/tools/smart_search/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/tools/smart_search/_config.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/tools/smart_search/_entities.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/tools/smart_search/_overview.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/tools/smart_search/_scenes.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/tools/smart_search/_scoring.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/tools/tool_search_hint_middleware.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-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/tools/tools_config_automations.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/tools/tools_config_dashboards.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/tools/tools_config_helpers.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/tools/tools_config_scripts.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/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
|
|
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.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/tools/tools_voice_assistant.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/tools/validation_middleware.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp/transforms/categorized_search.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/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
|
{ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/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
|
{ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/src/ha_mcp_dev.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
{ha_mcp_dev-7.9.0.dev737 → ha_mcp_dev-7.9.0.dev738}/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
|