ha-mcp-dev 7.5.0.dev576__tar.gz → 7.5.0.dev578__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.5.0.dev576/src/ha_mcp_dev.egg-info → ha_mcp_dev-7.5.0.dev578}/PKG-INFO +1 -1
- {ha_mcp_dev-7.5.0.dev576 → ha_mcp_dev-7.5.0.dev578}/pyproject.toml +3 -2
- ha_mcp_dev-7.5.0.dev578/src/ha_mcp/backup_manager.py +1215 -0
- {ha_mcp_dev-7.5.0.dev576 → ha_mcp_dev-7.5.0.dev578}/src/ha_mcp/config.py +254 -8
- {ha_mcp_dev-7.5.0.dev576 → ha_mcp_dev-7.5.0.dev578}/src/ha_mcp/settings_ui.py +924 -2
- ha_mcp_dev-7.5.0.dev578/src/ha_mcp/tools/auto_backup.py +156 -0
- ha_mcp_dev-7.5.0.dev578/src/ha_mcp/tools/backup.py +961 -0
- {ha_mcp_dev-7.5.0.dev576 → ha_mcp_dev-7.5.0.dev578}/src/ha_mcp/tools/best_practice_checker.py +34 -29
- {ha_mcp_dev-7.5.0.dev576 → ha_mcp_dev-7.5.0.dev578}/src/ha_mcp/tools/tools_areas.py +16 -0
- {ha_mcp_dev-7.5.0.dev576 → ha_mcp_dev-7.5.0.dev578}/src/ha_mcp/tools/tools_bug_report.py +81 -59
- {ha_mcp_dev-7.5.0.dev576 → ha_mcp_dev-7.5.0.dev578}/src/ha_mcp/tools/tools_calendar.py +92 -40
- {ha_mcp_dev-7.5.0.dev576 → ha_mcp_dev-7.5.0.dev578}/src/ha_mcp/tools/tools_categories.py +23 -0
- {ha_mcp_dev-7.5.0.dev576 → ha_mcp_dev-7.5.0.dev578}/src/ha_mcp/tools/tools_config_automations.py +246 -249
- {ha_mcp_dev-7.5.0.dev576 → ha_mcp_dev-7.5.0.dev578}/src/ha_mcp/tools/tools_config_dashboards.py +3 -0
- {ha_mcp_dev-7.5.0.dev576 → ha_mcp_dev-7.5.0.dev578}/src/ha_mcp/tools/tools_config_entry_flow.py +315 -249
- {ha_mcp_dev-7.5.0.dev576 → ha_mcp_dev-7.5.0.dev578}/src/ha_mcp/tools/tools_config_helpers.py +8 -0
- {ha_mcp_dev-7.5.0.dev576 → ha_mcp_dev-7.5.0.dev578}/src/ha_mcp/tools/tools_config_scenes.py +3 -0
- {ha_mcp_dev-7.5.0.dev576 → ha_mcp_dev-7.5.0.dev578}/src/ha_mcp/tools/tools_config_scripts.py +3 -0
- {ha_mcp_dev-7.5.0.dev576 → ha_mcp_dev-7.5.0.dev578}/src/ha_mcp/tools/tools_entities.py +14 -0
- {ha_mcp_dev-7.5.0.dev576 → ha_mcp_dev-7.5.0.dev578}/src/ha_mcp/tools/tools_groups.py +105 -51
- {ha_mcp_dev-7.5.0.dev576 → ha_mcp_dev-7.5.0.dev578}/src/ha_mcp/tools/tools_integrations.py +98 -82
- {ha_mcp_dev-7.5.0.dev576 → ha_mcp_dev-7.5.0.dev578}/src/ha_mcp/tools/tools_labels.py +3 -0
- {ha_mcp_dev-7.5.0.dev576 → ha_mcp_dev-7.5.0.dev578}/src/ha_mcp/tools/tools_resources.py +3 -0
- {ha_mcp_dev-7.5.0.dev576 → ha_mcp_dev-7.5.0.dev578}/src/ha_mcp/tools/tools_service.py +67 -53
- {ha_mcp_dev-7.5.0.dev576 → ha_mcp_dev-7.5.0.dev578}/src/ha_mcp/tools/tools_todo.py +21 -2
- {ha_mcp_dev-7.5.0.dev576 → ha_mcp_dev-7.5.0.dev578}/src/ha_mcp/tools/tools_updates.py +118 -69
- {ha_mcp_dev-7.5.0.dev576 → ha_mcp_dev-7.5.0.dev578}/src/ha_mcp/tools/tools_yaml_config.py +33 -22
- {ha_mcp_dev-7.5.0.dev576 → ha_mcp_dev-7.5.0.dev578}/src/ha_mcp/tools/tools_zones.py +6 -0
- {ha_mcp_dev-7.5.0.dev576 → ha_mcp_dev-7.5.0.dev578}/src/ha_mcp/tools/util_helpers.py +437 -358
- {ha_mcp_dev-7.5.0.dev576 → ha_mcp_dev-7.5.0.dev578}/src/ha_mcp/transforms/categorized_search.py +1 -2
- {ha_mcp_dev-7.5.0.dev576 → ha_mcp_dev-7.5.0.dev578/src/ha_mcp_dev.egg-info}/PKG-INFO +1 -1
- {ha_mcp_dev-7.5.0.dev576 → ha_mcp_dev-7.5.0.dev578}/src/ha_mcp_dev.egg-info/SOURCES.txt +2 -0
- ha_mcp_dev-7.5.0.dev576/src/ha_mcp/tools/backup.py +0 -588
- {ha_mcp_dev-7.5.0.dev576 → ha_mcp_dev-7.5.0.dev578}/LICENSE +0 -0
- {ha_mcp_dev-7.5.0.dev576 → ha_mcp_dev-7.5.0.dev578}/MANIFEST.in +0 -0
- {ha_mcp_dev-7.5.0.dev576 → ha_mcp_dev-7.5.0.dev578}/README.md +0 -0
- {ha_mcp_dev-7.5.0.dev576 → ha_mcp_dev-7.5.0.dev578}/setup.cfg +0 -0
- {ha_mcp_dev-7.5.0.dev576 → ha_mcp_dev-7.5.0.dev578}/src/ha_mcp/__init__.py +0 -0
- {ha_mcp_dev-7.5.0.dev576 → ha_mcp_dev-7.5.0.dev578}/src/ha_mcp/__main__.py +0 -0
- {ha_mcp_dev-7.5.0.dev576 → ha_mcp_dev-7.5.0.dev578}/src/ha_mcp/_pypi_marker +0 -0
- {ha_mcp_dev-7.5.0.dev576 → ha_mcp_dev-7.5.0.dev578}/src/ha_mcp/_version.py +0 -0
- {ha_mcp_dev-7.5.0.dev576 → ha_mcp_dev-7.5.0.dev578}/src/ha_mcp/auth/__init__.py +0 -0
- {ha_mcp_dev-7.5.0.dev576 → ha_mcp_dev-7.5.0.dev578}/src/ha_mcp/auth/consent_form.py +0 -0
- {ha_mcp_dev-7.5.0.dev576 → ha_mcp_dev-7.5.0.dev578}/src/ha_mcp/auth/provider.py +0 -0
- {ha_mcp_dev-7.5.0.dev576 → ha_mcp_dev-7.5.0.dev578}/src/ha_mcp/client/__init__.py +0 -0
- {ha_mcp_dev-7.5.0.dev576 → ha_mcp_dev-7.5.0.dev578}/src/ha_mcp/client/rest_client.py +0 -0
- {ha_mcp_dev-7.5.0.dev576 → ha_mcp_dev-7.5.0.dev578}/src/ha_mcp/client/supervisor_client.py +0 -0
- {ha_mcp_dev-7.5.0.dev576 → ha_mcp_dev-7.5.0.dev578}/src/ha_mcp/client/websocket_client.py +0 -0
- {ha_mcp_dev-7.5.0.dev576 → ha_mcp_dev-7.5.0.dev578}/src/ha_mcp/client/websocket_listener.py +0 -0
- {ha_mcp_dev-7.5.0.dev576 → ha_mcp_dev-7.5.0.dev578}/src/ha_mcp/errors.py +0 -0
- {ha_mcp_dev-7.5.0.dev576 → ha_mcp_dev-7.5.0.dev578}/src/ha_mcp/py.typed +0 -0
- {ha_mcp_dev-7.5.0.dev576 → ha_mcp_dev-7.5.0.dev578}/src/ha_mcp/resources/skills-vendor/.claude/settings.json +0 -0
- {ha_mcp_dev-7.5.0.dev576 → ha_mcp_dev-7.5.0.dev578}/src/ha_mcp/resources/skills-vendor/.claude-plugin/marketplace.json +0 -0
- {ha_mcp_dev-7.5.0.dev576 → ha_mcp_dev-7.5.0.dev578}/src/ha_mcp/resources/skills-vendor/.claude-plugin/plugin.json +0 -0
- {ha_mcp_dev-7.5.0.dev576 → ha_mcp_dev-7.5.0.dev578}/src/ha_mcp/resources/skills-vendor/.github/ISSUE_TEMPLATE/skill-rca.md +0 -0
- {ha_mcp_dev-7.5.0.dev576 → ha_mcp_dev-7.5.0.dev578}/src/ha_mcp/resources/skills-vendor/.github/pull_request_template.md +0 -0
- {ha_mcp_dev-7.5.0.dev576 → ha_mcp_dev-7.5.0.dev578}/src/ha_mcp/resources/skills-vendor/AGENTS.md +0 -0
- {ha_mcp_dev-7.5.0.dev576 → ha_mcp_dev-7.5.0.dev578}/src/ha_mcp/resources/skills-vendor/CLAUDE.md +0 -0
- {ha_mcp_dev-7.5.0.dev576 → ha_mcp_dev-7.5.0.dev578}/src/ha_mcp/resources/skills-vendor/CONTRIBUTING.md +0 -0
- {ha_mcp_dev-7.5.0.dev576 → ha_mcp_dev-7.5.0.dev578}/src/ha_mcp/resources/skills-vendor/LICENSE +0 -0
- {ha_mcp_dev-7.5.0.dev576 → ha_mcp_dev-7.5.0.dev578}/src/ha_mcp/resources/skills-vendor/README.md +0 -0
- {ha_mcp_dev-7.5.0.dev576 → ha_mcp_dev-7.5.0.dev578}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/SKILL.md +0 -0
- {ha_mcp_dev-7.5.0.dev576 → ha_mcp_dev-7.5.0.dev578}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/evals/evals.json +0 -0
- {ha_mcp_dev-7.5.0.dev576 → ha_mcp_dev-7.5.0.dev578}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/automation-patterns.md +0 -0
- {ha_mcp_dev-7.5.0.dev576 → ha_mcp_dev-7.5.0.dev578}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/dashboard-cards.md +0 -0
- {ha_mcp_dev-7.5.0.dev576 → ha_mcp_dev-7.5.0.dev578}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/dashboard-guide.md +0 -0
- {ha_mcp_dev-7.5.0.dev576 → ha_mcp_dev-7.5.0.dev578}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/device-control.md +0 -0
- {ha_mcp_dev-7.5.0.dev576 → ha_mcp_dev-7.5.0.dev578}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/domain-docs.md +0 -0
- {ha_mcp_dev-7.5.0.dev576 → ha_mcp_dev-7.5.0.dev578}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/examples.yaml +0 -0
- {ha_mcp_dev-7.5.0.dev576 → ha_mcp_dev-7.5.0.dev578}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/helper-selection.md +0 -0
- {ha_mcp_dev-7.5.0.dev576 → ha_mcp_dev-7.5.0.dev578}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/safe-refactoring.md +0 -0
- {ha_mcp_dev-7.5.0.dev576 → ha_mcp_dev-7.5.0.dev578}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/template-guidelines.md +0 -0
- {ha_mcp_dev-7.5.0.dev576 → ha_mcp_dev-7.5.0.dev578}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/yaml-only-integrations.md +0 -0
- {ha_mcp_dev-7.5.0.dev576 → ha_mcp_dev-7.5.0.dev578}/src/ha_mcp/server.py +0 -0
- {ha_mcp_dev-7.5.0.dev576 → ha_mcp_dev-7.5.0.dev578}/src/ha_mcp/smoke_test.py +0 -0
- {ha_mcp_dev-7.5.0.dev576 → ha_mcp_dev-7.5.0.dev578}/src/ha_mcp/stdio_settings_sidecar.py +0 -0
- {ha_mcp_dev-7.5.0.dev576 → ha_mcp_dev-7.5.0.dev578}/src/ha_mcp/tools/__init__.py +0 -0
- {ha_mcp_dev-7.5.0.dev576 → ha_mcp_dev-7.5.0.dev578}/src/ha_mcp/tools/device_control.py +0 -0
- {ha_mcp_dev-7.5.0.dev576 → ha_mcp_dev-7.5.0.dev578}/src/ha_mcp/tools/enhanced.py +0 -0
- {ha_mcp_dev-7.5.0.dev576 → ha_mcp_dev-7.5.0.dev578}/src/ha_mcp/tools/helpers.py +0 -0
- {ha_mcp_dev-7.5.0.dev576 → ha_mcp_dev-7.5.0.dev578}/src/ha_mcp/tools/reference_validator.py +0 -0
- {ha_mcp_dev-7.5.0.dev576 → ha_mcp_dev-7.5.0.dev578}/src/ha_mcp/tools/registry.py +0 -0
- {ha_mcp_dev-7.5.0.dev576 → ha_mcp_dev-7.5.0.dev578}/src/ha_mcp/tools/smart_search.py +0 -0
- {ha_mcp_dev-7.5.0.dev576 → ha_mcp_dev-7.5.0.dev578}/src/ha_mcp/tools/tools_addons.py +0 -0
- {ha_mcp_dev-7.5.0.dev576 → ha_mcp_dev-7.5.0.dev578}/src/ha_mcp/tools/tools_blueprints.py +0 -0
- {ha_mcp_dev-7.5.0.dev576 → ha_mcp_dev-7.5.0.dev578}/src/ha_mcp/tools/tools_camera.py +0 -0
- {ha_mcp_dev-7.5.0.dev576 → ha_mcp_dev-7.5.0.dev578}/src/ha_mcp/tools/tools_code.py +0 -0
- {ha_mcp_dev-7.5.0.dev576 → ha_mcp_dev-7.5.0.dev578}/src/ha_mcp/tools/tools_energy.py +0 -0
- {ha_mcp_dev-7.5.0.dev576 → ha_mcp_dev-7.5.0.dev578}/src/ha_mcp/tools/tools_filesystem.py +0 -0
- {ha_mcp_dev-7.5.0.dev576 → ha_mcp_dev-7.5.0.dev578}/src/ha_mcp/tools/tools_hacs.py +0 -0
- {ha_mcp_dev-7.5.0.dev576 → ha_mcp_dev-7.5.0.dev578}/src/ha_mcp/tools/tools_history.py +0 -0
- {ha_mcp_dev-7.5.0.dev576 → ha_mcp_dev-7.5.0.dev578}/src/ha_mcp/tools/tools_mcp_component.py +0 -0
- {ha_mcp_dev-7.5.0.dev576 → ha_mcp_dev-7.5.0.dev578}/src/ha_mcp/tools/tools_registry.py +0 -0
- {ha_mcp_dev-7.5.0.dev576 → ha_mcp_dev-7.5.0.dev578}/src/ha_mcp/tools/tools_search.py +0 -0
- {ha_mcp_dev-7.5.0.dev576 → ha_mcp_dev-7.5.0.dev578}/src/ha_mcp/tools/tools_services.py +0 -0
- {ha_mcp_dev-7.5.0.dev576 → ha_mcp_dev-7.5.0.dev578}/src/ha_mcp/tools/tools_system.py +0 -0
- {ha_mcp_dev-7.5.0.dev576 → ha_mcp_dev-7.5.0.dev578}/src/ha_mcp/tools/tools_traces.py +0 -0
- {ha_mcp_dev-7.5.0.dev576 → ha_mcp_dev-7.5.0.dev578}/src/ha_mcp/tools/tools_utility.py +0 -0
- {ha_mcp_dev-7.5.0.dev576 → ha_mcp_dev-7.5.0.dev578}/src/ha_mcp/tools/tools_voice_assistant.py +0 -0
- {ha_mcp_dev-7.5.0.dev576 → ha_mcp_dev-7.5.0.dev578}/src/ha_mcp/transforms/__init__.py +0 -0
- {ha_mcp_dev-7.5.0.dev576 → ha_mcp_dev-7.5.0.dev578}/src/ha_mcp/transforms/lite_docstrings.py +0 -0
- {ha_mcp_dev-7.5.0.dev576 → ha_mcp_dev-7.5.0.dev578}/src/ha_mcp/utils/__init__.py +0 -0
- {ha_mcp_dev-7.5.0.dev576 → ha_mcp_dev-7.5.0.dev578}/src/ha_mcp/utils/config_hash.py +0 -0
- {ha_mcp_dev-7.5.0.dev576 → ha_mcp_dev-7.5.0.dev578}/src/ha_mcp/utils/data_paths.py +0 -0
- {ha_mcp_dev-7.5.0.dev576 → ha_mcp_dev-7.5.0.dev578}/src/ha_mcp/utils/domain_handlers.py +0 -0
- {ha_mcp_dev-7.5.0.dev576 → ha_mcp_dev-7.5.0.dev578}/src/ha_mcp/utils/fuzzy_search.py +0 -0
- {ha_mcp_dev-7.5.0.dev576 → ha_mcp_dev-7.5.0.dev578}/src/ha_mcp/utils/kill_signal_diagnostics.py +0 -0
- {ha_mcp_dev-7.5.0.dev576 → ha_mcp_dev-7.5.0.dev578}/src/ha_mcp/utils/operation_manager.py +0 -0
- {ha_mcp_dev-7.5.0.dev576 → ha_mcp_dev-7.5.0.dev578}/src/ha_mcp/utils/python_sandbox.py +0 -0
- {ha_mcp_dev-7.5.0.dev576 → ha_mcp_dev-7.5.0.dev578}/src/ha_mcp/utils/usage_logger.py +0 -0
- {ha_mcp_dev-7.5.0.dev576 → ha_mcp_dev-7.5.0.dev578}/src/ha_mcp_dev.egg-info/dependency_links.txt +0 -0
- {ha_mcp_dev-7.5.0.dev576 → ha_mcp_dev-7.5.0.dev578}/src/ha_mcp_dev.egg-info/entry_points.txt +0 -0
- {ha_mcp_dev-7.5.0.dev576 → ha_mcp_dev-7.5.0.dev578}/src/ha_mcp_dev.egg-info/requires.txt +0 -0
- {ha_mcp_dev-7.5.0.dev576 → ha_mcp_dev-7.5.0.dev578}/src/ha_mcp_dev.egg-info/top_level.txt +0 -0
- {ha_mcp_dev-7.5.0.dev576 → ha_mcp_dev-7.5.0.dev578}/tests/__init__.py +0 -0
- {ha_mcp_dev-7.5.0.dev576 → ha_mcp_dev-7.5.0.dev578}/tests/test_constants.py +0 -0
- {ha_mcp_dev-7.5.0.dev576 → ha_mcp_dev-7.5.0.dev578}/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.5.0.
|
|
7
|
+
version = "7.5.0.dev578"
|
|
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"
|
|
@@ -148,7 +148,6 @@ ignore = [
|
|
|
148
148
|
"src/ha_mcp/tools/tools_search.py" = ["C901"]
|
|
149
149
|
"src/ha_mcp/tools/tools_utility.py" = ["C901"]
|
|
150
150
|
"src/ha_mcp/tools/smart_search.py" = ["C901"]
|
|
151
|
-
"src/ha_mcp/tools/util_helpers.py" = ["C901"]
|
|
152
151
|
|
|
153
152
|
[tool.pytest.ini_options]
|
|
154
153
|
testpaths = ["tests"]
|
|
@@ -174,6 +173,8 @@ markers = [
|
|
|
174
173
|
"error_handling: error handling and edge case tests",
|
|
175
174
|
"cleanup: tests that create entities needing cleanup",
|
|
176
175
|
"performance: performance measurement and regression tests",
|
|
176
|
+
"external_only: skips on HAOS inaddon tier (server runs in a separate addon container, so in-process env monkeypatching doesn't reach it)",
|
|
177
|
+
"inaddon_only: only runs on HAOS inaddon tier",
|
|
177
178
|
]
|
|
178
179
|
asyncio_mode = "auto"
|
|
179
180
|
|