ha-mcp-dev 7.2.0.dev332__tar.gz → 7.2.0.dev333__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.2.0.dev332/src/ha_mcp_dev.egg-info → ha_mcp_dev-7.2.0.dev333}/PKG-INFO +1 -1
- {ha_mcp_dev-7.2.0.dev332 → ha_mcp_dev-7.2.0.dev333}/pyproject.toml +1 -1
- {ha_mcp_dev-7.2.0.dev332 → ha_mcp_dev-7.2.0.dev333}/src/ha_mcp/tools/helpers.py +25 -0
- {ha_mcp_dev-7.2.0.dev332 → ha_mcp_dev-7.2.0.dev333/src/ha_mcp_dev.egg-info}/PKG-INFO +1 -1
- {ha_mcp_dev-7.2.0.dev332 → ha_mcp_dev-7.2.0.dev333}/LICENSE +0 -0
- {ha_mcp_dev-7.2.0.dev332 → ha_mcp_dev-7.2.0.dev333}/MANIFEST.in +0 -0
- {ha_mcp_dev-7.2.0.dev332 → ha_mcp_dev-7.2.0.dev333}/README.md +0 -0
- {ha_mcp_dev-7.2.0.dev332 → ha_mcp_dev-7.2.0.dev333}/setup.cfg +0 -0
- {ha_mcp_dev-7.2.0.dev332 → ha_mcp_dev-7.2.0.dev333}/src/ha_mcp/__init__.py +0 -0
- {ha_mcp_dev-7.2.0.dev332 → ha_mcp_dev-7.2.0.dev333}/src/ha_mcp/__main__.py +0 -0
- {ha_mcp_dev-7.2.0.dev332 → ha_mcp_dev-7.2.0.dev333}/src/ha_mcp/_pypi_marker +0 -0
- {ha_mcp_dev-7.2.0.dev332 → ha_mcp_dev-7.2.0.dev333}/src/ha_mcp/auth/__init__.py +0 -0
- {ha_mcp_dev-7.2.0.dev332 → ha_mcp_dev-7.2.0.dev333}/src/ha_mcp/auth/consent_form.py +0 -0
- {ha_mcp_dev-7.2.0.dev332 → ha_mcp_dev-7.2.0.dev333}/src/ha_mcp/auth/provider.py +0 -0
- {ha_mcp_dev-7.2.0.dev332 → ha_mcp_dev-7.2.0.dev333}/src/ha_mcp/client/__init__.py +0 -0
- {ha_mcp_dev-7.2.0.dev332 → ha_mcp_dev-7.2.0.dev333}/src/ha_mcp/client/rest_client.py +0 -0
- {ha_mcp_dev-7.2.0.dev332 → ha_mcp_dev-7.2.0.dev333}/src/ha_mcp/client/websocket_client.py +0 -0
- {ha_mcp_dev-7.2.0.dev332 → ha_mcp_dev-7.2.0.dev333}/src/ha_mcp/client/websocket_listener.py +0 -0
- {ha_mcp_dev-7.2.0.dev332 → ha_mcp_dev-7.2.0.dev333}/src/ha_mcp/config.py +0 -0
- {ha_mcp_dev-7.2.0.dev332 → ha_mcp_dev-7.2.0.dev333}/src/ha_mcp/errors.py +0 -0
- {ha_mcp_dev-7.2.0.dev332 → ha_mcp_dev-7.2.0.dev333}/src/ha_mcp/py.typed +0 -0
- {ha_mcp_dev-7.2.0.dev332 → ha_mcp_dev-7.2.0.dev333}/src/ha_mcp/resources/skills-vendor/.claude/settings.json +0 -0
- {ha_mcp_dev-7.2.0.dev332 → ha_mcp_dev-7.2.0.dev333}/src/ha_mcp/resources/skills-vendor/.claude-plugin/marketplace.json +0 -0
- {ha_mcp_dev-7.2.0.dev332 → ha_mcp_dev-7.2.0.dev333}/src/ha_mcp/resources/skills-vendor/.claude-plugin/plugin.json +0 -0
- {ha_mcp_dev-7.2.0.dev332 → ha_mcp_dev-7.2.0.dev333}/src/ha_mcp/resources/skills-vendor/.github/ISSUE_TEMPLATE/skill-rca.md +0 -0
- {ha_mcp_dev-7.2.0.dev332 → ha_mcp_dev-7.2.0.dev333}/src/ha_mcp/resources/skills-vendor/AGENTS.md +0 -0
- {ha_mcp_dev-7.2.0.dev332 → ha_mcp_dev-7.2.0.dev333}/src/ha_mcp/resources/skills-vendor/CLAUDE.md +0 -0
- {ha_mcp_dev-7.2.0.dev332 → ha_mcp_dev-7.2.0.dev333}/src/ha_mcp/resources/skills-vendor/CONTRIBUTING.md +0 -0
- {ha_mcp_dev-7.2.0.dev332 → ha_mcp_dev-7.2.0.dev333}/src/ha_mcp/resources/skills-vendor/LICENSE +0 -0
- {ha_mcp_dev-7.2.0.dev332 → ha_mcp_dev-7.2.0.dev333}/src/ha_mcp/resources/skills-vendor/README.md +0 -0
- {ha_mcp_dev-7.2.0.dev332 → ha_mcp_dev-7.2.0.dev333}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/SKILL.md +0 -0
- {ha_mcp_dev-7.2.0.dev332 → ha_mcp_dev-7.2.0.dev333}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/evals/evals.json +0 -0
- {ha_mcp_dev-7.2.0.dev332 → ha_mcp_dev-7.2.0.dev333}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/automation-patterns.md +0 -0
- {ha_mcp_dev-7.2.0.dev332 → ha_mcp_dev-7.2.0.dev333}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/dashboard-cards.md +0 -0
- {ha_mcp_dev-7.2.0.dev332 → ha_mcp_dev-7.2.0.dev333}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/dashboard-guide.md +0 -0
- {ha_mcp_dev-7.2.0.dev332 → ha_mcp_dev-7.2.0.dev333}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/device-control.md +0 -0
- {ha_mcp_dev-7.2.0.dev332 → ha_mcp_dev-7.2.0.dev333}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/domain-docs.md +0 -0
- {ha_mcp_dev-7.2.0.dev332 → ha_mcp_dev-7.2.0.dev333}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/examples.yaml +0 -0
- {ha_mcp_dev-7.2.0.dev332 → ha_mcp_dev-7.2.0.dev333}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/helper-selection.md +0 -0
- {ha_mcp_dev-7.2.0.dev332 → ha_mcp_dev-7.2.0.dev333}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/safe-refactoring.md +0 -0
- {ha_mcp_dev-7.2.0.dev332 → ha_mcp_dev-7.2.0.dev333}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/template-guidelines.md +0 -0
- {ha_mcp_dev-7.2.0.dev332 → ha_mcp_dev-7.2.0.dev333}/src/ha_mcp/server.py +0 -0
- {ha_mcp_dev-7.2.0.dev332 → ha_mcp_dev-7.2.0.dev333}/src/ha_mcp/smoke_test.py +0 -0
- {ha_mcp_dev-7.2.0.dev332 → ha_mcp_dev-7.2.0.dev333}/src/ha_mcp/tools/__init__.py +0 -0
- {ha_mcp_dev-7.2.0.dev332 → ha_mcp_dev-7.2.0.dev333}/src/ha_mcp/tools/backup.py +0 -0
- {ha_mcp_dev-7.2.0.dev332 → ha_mcp_dev-7.2.0.dev333}/src/ha_mcp/tools/best_practice_checker.py +0 -0
- {ha_mcp_dev-7.2.0.dev332 → ha_mcp_dev-7.2.0.dev333}/src/ha_mcp/tools/device_control.py +0 -0
- {ha_mcp_dev-7.2.0.dev332 → ha_mcp_dev-7.2.0.dev333}/src/ha_mcp/tools/enhanced.py +0 -0
- {ha_mcp_dev-7.2.0.dev332 → ha_mcp_dev-7.2.0.dev333}/src/ha_mcp/tools/registry.py +0 -0
- {ha_mcp_dev-7.2.0.dev332 → ha_mcp_dev-7.2.0.dev333}/src/ha_mcp/tools/smart_search.py +0 -0
- {ha_mcp_dev-7.2.0.dev332 → ha_mcp_dev-7.2.0.dev333}/src/ha_mcp/tools/tools_addons.py +0 -0
- {ha_mcp_dev-7.2.0.dev332 → ha_mcp_dev-7.2.0.dev333}/src/ha_mcp/tools/tools_areas.py +0 -0
- {ha_mcp_dev-7.2.0.dev332 → ha_mcp_dev-7.2.0.dev333}/src/ha_mcp/tools/tools_blueprints.py +0 -0
- {ha_mcp_dev-7.2.0.dev332 → ha_mcp_dev-7.2.0.dev333}/src/ha_mcp/tools/tools_bug_report.py +0 -0
- {ha_mcp_dev-7.2.0.dev332 → ha_mcp_dev-7.2.0.dev333}/src/ha_mcp/tools/tools_calendar.py +0 -0
- {ha_mcp_dev-7.2.0.dev332 → ha_mcp_dev-7.2.0.dev333}/src/ha_mcp/tools/tools_camera.py +0 -0
- {ha_mcp_dev-7.2.0.dev332 → ha_mcp_dev-7.2.0.dev333}/src/ha_mcp/tools/tools_categories.py +0 -0
- {ha_mcp_dev-7.2.0.dev332 → ha_mcp_dev-7.2.0.dev333}/src/ha_mcp/tools/tools_config_automations.py +0 -0
- {ha_mcp_dev-7.2.0.dev332 → ha_mcp_dev-7.2.0.dev333}/src/ha_mcp/tools/tools_config_dashboards.py +0 -0
- {ha_mcp_dev-7.2.0.dev332 → ha_mcp_dev-7.2.0.dev333}/src/ha_mcp/tools/tools_config_entry_flow.py +0 -0
- {ha_mcp_dev-7.2.0.dev332 → ha_mcp_dev-7.2.0.dev333}/src/ha_mcp/tools/tools_config_helpers.py +0 -0
- {ha_mcp_dev-7.2.0.dev332 → ha_mcp_dev-7.2.0.dev333}/src/ha_mcp/tools/tools_config_scripts.py +0 -0
- {ha_mcp_dev-7.2.0.dev332 → ha_mcp_dev-7.2.0.dev333}/src/ha_mcp/tools/tools_entities.py +0 -0
- {ha_mcp_dev-7.2.0.dev332 → ha_mcp_dev-7.2.0.dev333}/src/ha_mcp/tools/tools_filesystem.py +0 -0
- {ha_mcp_dev-7.2.0.dev332 → ha_mcp_dev-7.2.0.dev333}/src/ha_mcp/tools/tools_groups.py +0 -0
- {ha_mcp_dev-7.2.0.dev332 → ha_mcp_dev-7.2.0.dev333}/src/ha_mcp/tools/tools_hacs.py +0 -0
- {ha_mcp_dev-7.2.0.dev332 → ha_mcp_dev-7.2.0.dev333}/src/ha_mcp/tools/tools_history.py +0 -0
- {ha_mcp_dev-7.2.0.dev332 → ha_mcp_dev-7.2.0.dev333}/src/ha_mcp/tools/tools_integrations.py +0 -0
- {ha_mcp_dev-7.2.0.dev332 → ha_mcp_dev-7.2.0.dev333}/src/ha_mcp/tools/tools_labels.py +0 -0
- {ha_mcp_dev-7.2.0.dev332 → ha_mcp_dev-7.2.0.dev333}/src/ha_mcp/tools/tools_mcp_component.py +0 -0
- {ha_mcp_dev-7.2.0.dev332 → ha_mcp_dev-7.2.0.dev333}/src/ha_mcp/tools/tools_registry.py +0 -0
- {ha_mcp_dev-7.2.0.dev332 → ha_mcp_dev-7.2.0.dev333}/src/ha_mcp/tools/tools_resources.py +0 -0
- {ha_mcp_dev-7.2.0.dev332 → ha_mcp_dev-7.2.0.dev333}/src/ha_mcp/tools/tools_search.py +0 -0
- {ha_mcp_dev-7.2.0.dev332 → ha_mcp_dev-7.2.0.dev333}/src/ha_mcp/tools/tools_service.py +0 -0
- {ha_mcp_dev-7.2.0.dev332 → ha_mcp_dev-7.2.0.dev333}/src/ha_mcp/tools/tools_services.py +0 -0
- {ha_mcp_dev-7.2.0.dev332 → ha_mcp_dev-7.2.0.dev333}/src/ha_mcp/tools/tools_system.py +0 -0
- {ha_mcp_dev-7.2.0.dev332 → ha_mcp_dev-7.2.0.dev333}/src/ha_mcp/tools/tools_todo.py +0 -0
- {ha_mcp_dev-7.2.0.dev332 → ha_mcp_dev-7.2.0.dev333}/src/ha_mcp/tools/tools_traces.py +0 -0
- {ha_mcp_dev-7.2.0.dev332 → ha_mcp_dev-7.2.0.dev333}/src/ha_mcp/tools/tools_updates.py +0 -0
- {ha_mcp_dev-7.2.0.dev332 → ha_mcp_dev-7.2.0.dev333}/src/ha_mcp/tools/tools_utility.py +0 -0
- {ha_mcp_dev-7.2.0.dev332 → ha_mcp_dev-7.2.0.dev333}/src/ha_mcp/tools/tools_voice_assistant.py +0 -0
- {ha_mcp_dev-7.2.0.dev332 → ha_mcp_dev-7.2.0.dev333}/src/ha_mcp/tools/tools_yaml_config.py +0 -0
- {ha_mcp_dev-7.2.0.dev332 → ha_mcp_dev-7.2.0.dev333}/src/ha_mcp/tools/tools_zones.py +0 -0
- {ha_mcp_dev-7.2.0.dev332 → ha_mcp_dev-7.2.0.dev333}/src/ha_mcp/tools/util_helpers.py +0 -0
- {ha_mcp_dev-7.2.0.dev332 → ha_mcp_dev-7.2.0.dev333}/src/ha_mcp/transforms/__init__.py +0 -0
- {ha_mcp_dev-7.2.0.dev332 → ha_mcp_dev-7.2.0.dev333}/src/ha_mcp/transforms/categorized_search.py +0 -0
- {ha_mcp_dev-7.2.0.dev332 → ha_mcp_dev-7.2.0.dev333}/src/ha_mcp/utils/__init__.py +0 -0
- {ha_mcp_dev-7.2.0.dev332 → ha_mcp_dev-7.2.0.dev333}/src/ha_mcp/utils/domain_handlers.py +0 -0
- {ha_mcp_dev-7.2.0.dev332 → ha_mcp_dev-7.2.0.dev333}/src/ha_mcp/utils/fuzzy_search.py +0 -0
- {ha_mcp_dev-7.2.0.dev332 → ha_mcp_dev-7.2.0.dev333}/src/ha_mcp/utils/operation_manager.py +0 -0
- {ha_mcp_dev-7.2.0.dev332 → ha_mcp_dev-7.2.0.dev333}/src/ha_mcp/utils/python_sandbox.py +0 -0
- {ha_mcp_dev-7.2.0.dev332 → ha_mcp_dev-7.2.0.dev333}/src/ha_mcp/utils/usage_logger.py +0 -0
- {ha_mcp_dev-7.2.0.dev332 → ha_mcp_dev-7.2.0.dev333}/src/ha_mcp_dev.egg-info/SOURCES.txt +0 -0
- {ha_mcp_dev-7.2.0.dev332 → ha_mcp_dev-7.2.0.dev333}/src/ha_mcp_dev.egg-info/dependency_links.txt +0 -0
- {ha_mcp_dev-7.2.0.dev332 → ha_mcp_dev-7.2.0.dev333}/src/ha_mcp_dev.egg-info/entry_points.txt +0 -0
- {ha_mcp_dev-7.2.0.dev332 → ha_mcp_dev-7.2.0.dev333}/src/ha_mcp_dev.egg-info/requires.txt +0 -0
- {ha_mcp_dev-7.2.0.dev332 → ha_mcp_dev-7.2.0.dev333}/src/ha_mcp_dev.egg-info/top_level.txt +0 -0
- {ha_mcp_dev-7.2.0.dev332 → ha_mcp_dev-7.2.0.dev333}/tests/__init__.py +0 -0
- {ha_mcp_dev-7.2.0.dev332 → ha_mcp_dev-7.2.0.dev333}/tests/test_constants.py +0 -0
- {ha_mcp_dev-7.2.0.dev332 → ha_mcp_dev-7.2.0.dev333}/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.2.0.
|
|
7
|
+
version = "7.2.0.dev333"
|
|
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"
|
|
@@ -7,6 +7,7 @@ Centralized utilities that can be shared across multiple tool implementations.
|
|
|
7
7
|
import functools
|
|
8
8
|
import json
|
|
9
9
|
import logging
|
|
10
|
+
import sys
|
|
10
11
|
import time
|
|
11
12
|
from typing import Any, Literal, NoReturn, overload
|
|
12
13
|
|
|
@@ -230,6 +231,30 @@ def exception_to_structured_error(
|
|
|
230
231
|
if suggestions and "error" in error_response and isinstance(error_response["error"], dict):
|
|
231
232
|
error_response["error"]["suggestions"] = suggestions
|
|
232
233
|
|
|
234
|
+
# Append macOS-specific hints for connection failures (after all other processing
|
|
235
|
+
# so hints survive regardless of whether caller provided explicit suggestions)
|
|
236
|
+
if (
|
|
237
|
+
sys.platform == "darwin"
|
|
238
|
+
and "error" in error_response
|
|
239
|
+
and isinstance(error_response["error"], dict)
|
|
240
|
+
and error_response["error"].get("code")
|
|
241
|
+
in (ErrorCode.CONNECTION_FAILED, ErrorCode.CONNECTION_TIMEOUT)
|
|
242
|
+
):
|
|
243
|
+
macos_hints = [
|
|
244
|
+
"macOS may block local network access for Claude Desktop subprocesses "
|
|
245
|
+
"(System Settings > Privacy & Security > Local Network)",
|
|
246
|
+
"Try an SSH tunnel: ssh -N -L 8123:localhost:8123 user@ha-server, "
|
|
247
|
+
"then use http://localhost:8123",
|
|
248
|
+
"Ensure you are using http:// (not https://) unless SSL/TLS is configured",
|
|
249
|
+
]
|
|
250
|
+
# Handle both "suggestions" (plural, 2+ items) and "suggestion" (singular, 1 item)
|
|
251
|
+
existing = error_response["error"].get("suggestions") or []
|
|
252
|
+
if not existing:
|
|
253
|
+
single = error_response["error"].get("suggestion")
|
|
254
|
+
if single:
|
|
255
|
+
existing = [single]
|
|
256
|
+
error_response["error"]["suggestions"] = existing + macos_hints
|
|
257
|
+
|
|
233
258
|
if raise_error:
|
|
234
259
|
raise_tool_error(error_response)
|
|
235
260
|
|
|
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.2.0.dev332 → ha_mcp_dev-7.2.0.dev333}/src/ha_mcp/resources/skills-vendor/AGENTS.md
RENAMED
|
File without changes
|
{ha_mcp_dev-7.2.0.dev332 → ha_mcp_dev-7.2.0.dev333}/src/ha_mcp/resources/skills-vendor/CLAUDE.md
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.2.0.dev332 → ha_mcp_dev-7.2.0.dev333}/src/ha_mcp/resources/skills-vendor/LICENSE
RENAMED
|
File without changes
|
{ha_mcp_dev-7.2.0.dev332 → ha_mcp_dev-7.2.0.dev333}/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
|
{ha_mcp_dev-7.2.0.dev332 → ha_mcp_dev-7.2.0.dev333}/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
|
{ha_mcp_dev-7.2.0.dev332 → ha_mcp_dev-7.2.0.dev333}/src/ha_mcp/tools/tools_config_automations.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.2.0.dev332 → ha_mcp_dev-7.2.0.dev333}/src/ha_mcp/tools/tools_config_dashboards.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.2.0.dev332 → ha_mcp_dev-7.2.0.dev333}/src/ha_mcp/tools/tools_config_entry_flow.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.2.0.dev332 → ha_mcp_dev-7.2.0.dev333}/src/ha_mcp/tools/tools_config_helpers.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.2.0.dev332 → ha_mcp_dev-7.2.0.dev333}/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
|
{ha_mcp_dev-7.2.0.dev332 → ha_mcp_dev-7.2.0.dev333}/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.2.0.dev332 → ha_mcp_dev-7.2.0.dev333}/src/ha_mcp/transforms/categorized_search.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.2.0.dev332 → ha_mcp_dev-7.2.0.dev333}/src/ha_mcp_dev.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
{ha_mcp_dev-7.2.0.dev332 → ha_mcp_dev-7.2.0.dev333}/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
|