ha-mcp-dev 7.5.0.dev534__tar.gz → 7.5.0.dev536__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.dev534/src/ha_mcp_dev.egg-info → ha_mcp_dev-7.5.0.dev536}/PKG-INFO +1 -1
- {ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/pyproject.toml +1 -1
- {ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/src/ha_mcp/tools/helpers.py +13 -0
- {ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/src/ha_mcp/tools/tools_config_automations.py +0 -4
- {ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/src/ha_mcp/tools/tools_config_dashboards.py +0 -11
- {ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536/src/ha_mcp_dev.egg-info}/PKG-INFO +1 -1
- {ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/LICENSE +0 -0
- {ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/MANIFEST.in +0 -0
- {ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/README.md +0 -0
- {ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/setup.cfg +0 -0
- {ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/src/ha_mcp/__init__.py +0 -0
- {ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/src/ha_mcp/__main__.py +0 -0
- {ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/src/ha_mcp/_pypi_marker +0 -0
- {ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/src/ha_mcp/_version.py +0 -0
- {ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/src/ha_mcp/auth/__init__.py +0 -0
- {ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/src/ha_mcp/auth/consent_form.py +0 -0
- {ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/src/ha_mcp/auth/provider.py +0 -0
- {ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/src/ha_mcp/client/__init__.py +0 -0
- {ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/src/ha_mcp/client/rest_client.py +0 -0
- {ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/src/ha_mcp/client/supervisor_client.py +0 -0
- {ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/src/ha_mcp/client/websocket_client.py +0 -0
- {ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/src/ha_mcp/client/websocket_listener.py +0 -0
- {ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/src/ha_mcp/config.py +0 -0
- {ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/src/ha_mcp/errors.py +0 -0
- {ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/src/ha_mcp/py.typed +0 -0
- {ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/src/ha_mcp/resources/skills-vendor/.claude/settings.json +0 -0
- {ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/src/ha_mcp/resources/skills-vendor/.claude-plugin/marketplace.json +0 -0
- {ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/src/ha_mcp/resources/skills-vendor/.claude-plugin/plugin.json +0 -0
- {ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/src/ha_mcp/resources/skills-vendor/.github/ISSUE_TEMPLATE/skill-rca.md +0 -0
- {ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/src/ha_mcp/resources/skills-vendor/AGENTS.md +0 -0
- {ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/src/ha_mcp/resources/skills-vendor/CLAUDE.md +0 -0
- {ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/src/ha_mcp/resources/skills-vendor/CONTRIBUTING.md +0 -0
- {ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/src/ha_mcp/resources/skills-vendor/LICENSE +0 -0
- {ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/src/ha_mcp/resources/skills-vendor/README.md +0 -0
- {ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/SKILL.md +0 -0
- {ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/evals/evals.json +0 -0
- {ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/automation-patterns.md +0 -0
- {ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/dashboard-cards.md +0 -0
- {ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/dashboard-guide.md +0 -0
- {ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/device-control.md +0 -0
- {ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/domain-docs.md +0 -0
- {ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/examples.yaml +0 -0
- {ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/helper-selection.md +0 -0
- {ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/safe-refactoring.md +0 -0
- {ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/template-guidelines.md +0 -0
- {ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/src/ha_mcp/server.py +0 -0
- {ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/src/ha_mcp/settings_ui.py +0 -0
- {ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/src/ha_mcp/smoke_test.py +0 -0
- {ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/src/ha_mcp/tools/__init__.py +0 -0
- {ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/src/ha_mcp/tools/backup.py +0 -0
- {ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/src/ha_mcp/tools/best_practice_checker.py +0 -0
- {ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/src/ha_mcp/tools/device_control.py +0 -0
- {ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/src/ha_mcp/tools/enhanced.py +0 -0
- {ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/src/ha_mcp/tools/reference_validator.py +0 -0
- {ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/src/ha_mcp/tools/registry.py +0 -0
- {ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/src/ha_mcp/tools/smart_search.py +0 -0
- {ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/src/ha_mcp/tools/tools_addons.py +0 -0
- {ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/src/ha_mcp/tools/tools_areas.py +0 -0
- {ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/src/ha_mcp/tools/tools_blueprints.py +0 -0
- {ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/src/ha_mcp/tools/tools_bug_report.py +0 -0
- {ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/src/ha_mcp/tools/tools_calendar.py +0 -0
- {ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/src/ha_mcp/tools/tools_camera.py +0 -0
- {ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/src/ha_mcp/tools/tools_categories.py +0 -0
- {ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/src/ha_mcp/tools/tools_code.py +0 -0
- {ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/src/ha_mcp/tools/tools_config_entry_flow.py +0 -0
- {ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/src/ha_mcp/tools/tools_config_helpers.py +0 -0
- {ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/src/ha_mcp/tools/tools_config_scenes.py +0 -0
- {ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/src/ha_mcp/tools/tools_config_scripts.py +0 -0
- {ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/src/ha_mcp/tools/tools_energy.py +0 -0
- {ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/src/ha_mcp/tools/tools_entities.py +0 -0
- {ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/src/ha_mcp/tools/tools_filesystem.py +0 -0
- {ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/src/ha_mcp/tools/tools_groups.py +0 -0
- {ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/src/ha_mcp/tools/tools_hacs.py +0 -0
- {ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/src/ha_mcp/tools/tools_history.py +0 -0
- {ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/src/ha_mcp/tools/tools_integrations.py +0 -0
- {ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/src/ha_mcp/tools/tools_labels.py +0 -0
- {ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/src/ha_mcp/tools/tools_mcp_component.py +0 -0
- {ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/src/ha_mcp/tools/tools_registry.py +0 -0
- {ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/src/ha_mcp/tools/tools_resources.py +0 -0
- {ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/src/ha_mcp/tools/tools_search.py +0 -0
- {ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/src/ha_mcp/tools/tools_service.py +0 -0
- {ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/src/ha_mcp/tools/tools_services.py +0 -0
- {ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/src/ha_mcp/tools/tools_system.py +0 -0
- {ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/src/ha_mcp/tools/tools_todo.py +0 -0
- {ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/src/ha_mcp/tools/tools_traces.py +0 -0
- {ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/src/ha_mcp/tools/tools_updates.py +0 -0
- {ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/src/ha_mcp/tools/tools_utility.py +0 -0
- {ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/src/ha_mcp/tools/tools_voice_assistant.py +0 -0
- {ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/src/ha_mcp/tools/tools_yaml_config.py +0 -0
- {ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/src/ha_mcp/tools/tools_zones.py +0 -0
- {ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/src/ha_mcp/tools/util_helpers.py +0 -0
- {ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/src/ha_mcp/transforms/__init__.py +0 -0
- {ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/src/ha_mcp/transforms/categorized_search.py +0 -0
- {ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/src/ha_mcp/transforms/lite_docstrings.py +0 -0
- {ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/src/ha_mcp/utils/__init__.py +0 -0
- {ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/src/ha_mcp/utils/config_hash.py +0 -0
- {ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/src/ha_mcp/utils/data_paths.py +0 -0
- {ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/src/ha_mcp/utils/domain_handlers.py +0 -0
- {ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/src/ha_mcp/utils/fuzzy_search.py +0 -0
- {ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/src/ha_mcp/utils/kill_signal_diagnostics.py +0 -0
- {ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/src/ha_mcp/utils/operation_manager.py +0 -0
- {ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/src/ha_mcp/utils/python_sandbox.py +0 -0
- {ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/src/ha_mcp/utils/usage_logger.py +0 -0
- {ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/src/ha_mcp_dev.egg-info/SOURCES.txt +0 -0
- {ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/src/ha_mcp_dev.egg-info/dependency_links.txt +0 -0
- {ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/src/ha_mcp_dev.egg-info/entry_points.txt +0 -0
- {ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/src/ha_mcp_dev.egg-info/requires.txt +0 -0
- {ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/src/ha_mcp_dev.egg-info/top_level.txt +0 -0
- {ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/tests/__init__.py +0 -0
- {ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/tests/test_constants.py +0 -0
- {ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/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.dev536"
|
|
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"
|
|
@@ -396,6 +396,19 @@ def exception_to_structured_error(
|
|
|
396
396
|
|
|
397
397
|
error_response = _classify_exception(error, error_str, error_msg, context)
|
|
398
398
|
|
|
399
|
+
# Tracebacks are operationally valuable only for genuinely unclassified
|
|
400
|
+
# exceptions (programmer errors, library bugs) — every other branch in
|
|
401
|
+
# _classify_exception produces a structured signal that's sufficient on
|
|
402
|
+
# its own. Logging at exception level here gives operators line numbers
|
|
403
|
+
# for the bug class where ``str(error)`` is least informative, without
|
|
404
|
+
# re-introducing the duplicate ERROR-log noise that classified failures
|
|
405
|
+
# produced.
|
|
406
|
+
if (
|
|
407
|
+
isinstance(error_response.get("error"), dict)
|
|
408
|
+
and error_response["error"].get("code") == ErrorCode.INTERNAL_ERROR
|
|
409
|
+
):
|
|
410
|
+
logger.exception("Unclassified exception: %s", error_msg)
|
|
411
|
+
|
|
399
412
|
if suggestions and "error" in error_response and isinstance(error_response["error"], dict):
|
|
400
413
|
# Set both `suggestion` (singular, first item) and `suggestions`
|
|
401
414
|
# (plural, full list). create_error_response (errors.py) sets the
|
{ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/src/ha_mcp/tools/tools_config_automations.py
RENAMED
|
@@ -317,7 +317,6 @@ class AutomationConfigTools:
|
|
|
317
317
|
return {
|
|
318
318
|
"success": True,
|
|
319
319
|
"action": "get",
|
|
320
|
-
"identifier": identifier,
|
|
321
320
|
"automation_id": entity_id or identifier,
|
|
322
321
|
"config": normalized_config,
|
|
323
322
|
"config_hash": config_hash,
|
|
@@ -325,7 +324,6 @@ class AutomationConfigTools:
|
|
|
325
324
|
except ToolError:
|
|
326
325
|
raise
|
|
327
326
|
except Exception as e:
|
|
328
|
-
logger.error(f"Error getting automation: {e}")
|
|
329
327
|
exception_to_structured_error(
|
|
330
328
|
e,
|
|
331
329
|
context={"identifier": identifier, "action": "get"},
|
|
@@ -761,7 +759,6 @@ class AutomationConfigTools:
|
|
|
761
759
|
except ToolError:
|
|
762
760
|
raise
|
|
763
761
|
except Exception as e:
|
|
764
|
-
logger.error(f"Error upserting automation: {e}")
|
|
765
762
|
suggestions = [
|
|
766
763
|
"Check automation configuration format",
|
|
767
764
|
"Ensure required fields: alias, trigger, action",
|
|
@@ -1033,7 +1030,6 @@ class AutomationConfigTools:
|
|
|
1033
1030
|
except ToolError:
|
|
1034
1031
|
raise
|
|
1035
1032
|
except Exception as e:
|
|
1036
|
-
logger.error(f"Error deleting automation: {e}")
|
|
1037
1033
|
exception_to_structured_error(
|
|
1038
1034
|
e,
|
|
1039
1035
|
context={"identifier": identifier, "action": "delete"},
|
{ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/src/ha_mcp/tools/tools_config_dashboards.py
RENAMED
|
@@ -803,12 +803,6 @@ def register_config_dashboard_tools(mcp: Any, client: Any, **kwargs: Any) -> Non
|
|
|
803
803
|
raise
|
|
804
804
|
except Exception as e:
|
|
805
805
|
if search_mode:
|
|
806
|
-
logger.error(
|
|
807
|
-
f"Error finding card in dashboard: url_path={url_path}, "
|
|
808
|
-
f"entity_id={entity_id}, card_type={card_type}, heading={heading}, "
|
|
809
|
-
f"error={e}",
|
|
810
|
-
exc_info=True,
|
|
811
|
-
)
|
|
812
806
|
suggestions = [
|
|
813
807
|
"Check HA connection",
|
|
814
808
|
"Verify dashboard with ha_config_get_dashboard(list_only=True)",
|
|
@@ -821,7 +815,6 @@ def register_config_dashboard_tools(mcp: Any, client: Any, **kwargs: Any) -> Non
|
|
|
821
815
|
"heading": heading,
|
|
822
816
|
}
|
|
823
817
|
else:
|
|
824
|
-
logger.error(f"Error getting dashboard: {e}", exc_info=True)
|
|
825
818
|
suggestions = [
|
|
826
819
|
"Use ha_config_get_dashboard(list_only=True) to see available dashboards",
|
|
827
820
|
"Check if you have permission to access this dashboard",
|
|
@@ -1482,7 +1475,6 @@ def register_config_dashboard_tools(mcp: Any, client: Any, **kwargs: Any) -> Non
|
|
|
1482
1475
|
except ToolError:
|
|
1483
1476
|
raise
|
|
1484
1477
|
except Exception as e:
|
|
1485
|
-
logger.error(f"Error setting dashboard: {e}")
|
|
1486
1478
|
exception_to_structured_error(
|
|
1487
1479
|
e,
|
|
1488
1480
|
context={"action": "set", "url_path": url_path},
|
|
@@ -1564,8 +1556,6 @@ def register_config_dashboard_tools(mcp: Any, client: Any, **kwargs: Any) -> Non
|
|
|
1564
1556
|
else:
|
|
1565
1557
|
error_str = str(error_msg)
|
|
1566
1558
|
|
|
1567
|
-
logger.error(f"Error deleting dashboard: {error_str}")
|
|
1568
|
-
|
|
1569
1559
|
# If the error is "not found" / "doesn't exist", treat as success (idempotent)
|
|
1570
1560
|
if (
|
|
1571
1561
|
"unable to find" in error_str.lower()
|
|
@@ -1606,7 +1596,6 @@ def register_config_dashboard_tools(mcp: Any, client: Any, **kwargs: Any) -> Non
|
|
|
1606
1596
|
except ToolError:
|
|
1607
1597
|
raise
|
|
1608
1598
|
except Exception as e:
|
|
1609
|
-
logger.error(f"Error deleting dashboard: {e}")
|
|
1610
1599
|
exception_to_structured_error(
|
|
1611
1600
|
e,
|
|
1612
1601
|
context={"action": "delete", "url_path": url_path},
|
|
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.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/src/ha_mcp/resources/skills-vendor/AGENTS.md
RENAMED
|
File without changes
|
{ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/src/ha_mcp/resources/skills-vendor/CLAUDE.md
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/src/ha_mcp/resources/skills-vendor/LICENSE
RENAMED
|
File without changes
|
{ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/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
|
{ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/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
|
|
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.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/src/ha_mcp/tools/tools_config_entry_flow.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/src/ha_mcp/tools/tools_config_helpers.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/src/ha_mcp/tools/tools_config_scripts.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.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/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-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/src/ha_mcp/transforms/categorized_search.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/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
|
{ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/src/ha_mcp/utils/kill_signal_diagnostics.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/src/ha_mcp_dev.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
{ha_mcp_dev-7.5.0.dev534 → ha_mcp_dev-7.5.0.dev536}/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
|