ha-mcp-dev 7.0.0.dev279__tar.gz → 7.0.0.dev280__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.0.0.dev279/src/ha_mcp_dev.egg-info → ha_mcp_dev-7.0.0.dev280}/PKG-INFO +2 -1
- {ha_mcp_dev-7.0.0.dev279 → ha_mcp_dev-7.0.0.dev280}/README.md +1 -0
- {ha_mcp_dev-7.0.0.dev279 → ha_mcp_dev-7.0.0.dev280}/pyproject.toml +1 -1
- {ha_mcp_dev-7.0.0.dev279 → ha_mcp_dev-7.0.0.dev280}/src/ha_mcp/utils/python_sandbox.py +9 -3
- {ha_mcp_dev-7.0.0.dev279 → ha_mcp_dev-7.0.0.dev280/src/ha_mcp_dev.egg-info}/PKG-INFO +2 -1
- {ha_mcp_dev-7.0.0.dev279 → ha_mcp_dev-7.0.0.dev280}/LICENSE +0 -0
- {ha_mcp_dev-7.0.0.dev279 → ha_mcp_dev-7.0.0.dev280}/MANIFEST.in +0 -0
- {ha_mcp_dev-7.0.0.dev279 → ha_mcp_dev-7.0.0.dev280}/setup.cfg +0 -0
- {ha_mcp_dev-7.0.0.dev279 → ha_mcp_dev-7.0.0.dev280}/src/ha_mcp/__init__.py +0 -0
- {ha_mcp_dev-7.0.0.dev279 → ha_mcp_dev-7.0.0.dev280}/src/ha_mcp/__main__.py +0 -0
- {ha_mcp_dev-7.0.0.dev279 → ha_mcp_dev-7.0.0.dev280}/src/ha_mcp/_pypi_marker +0 -0
- {ha_mcp_dev-7.0.0.dev279 → ha_mcp_dev-7.0.0.dev280}/src/ha_mcp/auth/__init__.py +0 -0
- {ha_mcp_dev-7.0.0.dev279 → ha_mcp_dev-7.0.0.dev280}/src/ha_mcp/auth/consent_form.py +0 -0
- {ha_mcp_dev-7.0.0.dev279 → ha_mcp_dev-7.0.0.dev280}/src/ha_mcp/auth/provider.py +0 -0
- {ha_mcp_dev-7.0.0.dev279 → ha_mcp_dev-7.0.0.dev280}/src/ha_mcp/client/__init__.py +0 -0
- {ha_mcp_dev-7.0.0.dev279 → ha_mcp_dev-7.0.0.dev280}/src/ha_mcp/client/rest_client.py +0 -0
- {ha_mcp_dev-7.0.0.dev279 → ha_mcp_dev-7.0.0.dev280}/src/ha_mcp/client/websocket_client.py +0 -0
- {ha_mcp_dev-7.0.0.dev279 → ha_mcp_dev-7.0.0.dev280}/src/ha_mcp/client/websocket_listener.py +0 -0
- {ha_mcp_dev-7.0.0.dev279 → ha_mcp_dev-7.0.0.dev280}/src/ha_mcp/config.py +0 -0
- {ha_mcp_dev-7.0.0.dev279 → ha_mcp_dev-7.0.0.dev280}/src/ha_mcp/errors.py +0 -0
- {ha_mcp_dev-7.0.0.dev279 → ha_mcp_dev-7.0.0.dev280}/src/ha_mcp/py.typed +0 -0
- {ha_mcp_dev-7.0.0.dev279 → ha_mcp_dev-7.0.0.dev280}/src/ha_mcp/resources/card_types.json +0 -0
- {ha_mcp_dev-7.0.0.dev279 → ha_mcp_dev-7.0.0.dev280}/src/ha_mcp/resources/dashboard_guide.md +0 -0
- {ha_mcp_dev-7.0.0.dev279 → ha_mcp_dev-7.0.0.dev280}/src/ha_mcp/resources/skills-vendor/.claude/settings.json +0 -0
- {ha_mcp_dev-7.0.0.dev279 → ha_mcp_dev-7.0.0.dev280}/src/ha_mcp/resources/skills-vendor/.claude-plugin/marketplace.json +0 -0
- {ha_mcp_dev-7.0.0.dev279 → ha_mcp_dev-7.0.0.dev280}/src/ha_mcp/resources/skills-vendor/.claude-plugin/plugin.json +0 -0
- {ha_mcp_dev-7.0.0.dev279 → ha_mcp_dev-7.0.0.dev280}/src/ha_mcp/resources/skills-vendor/.github/ISSUE_TEMPLATE/skill-rca.md +0 -0
- {ha_mcp_dev-7.0.0.dev279 → ha_mcp_dev-7.0.0.dev280}/src/ha_mcp/resources/skills-vendor/AGENTS.md +0 -0
- {ha_mcp_dev-7.0.0.dev279 → ha_mcp_dev-7.0.0.dev280}/src/ha_mcp/resources/skills-vendor/CLAUDE.md +0 -0
- {ha_mcp_dev-7.0.0.dev279 → ha_mcp_dev-7.0.0.dev280}/src/ha_mcp/resources/skills-vendor/CONTRIBUTING.md +0 -0
- {ha_mcp_dev-7.0.0.dev279 → ha_mcp_dev-7.0.0.dev280}/src/ha_mcp/resources/skills-vendor/LICENSE +0 -0
- {ha_mcp_dev-7.0.0.dev279 → ha_mcp_dev-7.0.0.dev280}/src/ha_mcp/resources/skills-vendor/README.md +0 -0
- {ha_mcp_dev-7.0.0.dev279 → ha_mcp_dev-7.0.0.dev280}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/SKILL.md +0 -0
- {ha_mcp_dev-7.0.0.dev279 → ha_mcp_dev-7.0.0.dev280}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/automation-patterns.md +0 -0
- {ha_mcp_dev-7.0.0.dev279 → ha_mcp_dev-7.0.0.dev280}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/device-control.md +0 -0
- {ha_mcp_dev-7.0.0.dev279 → ha_mcp_dev-7.0.0.dev280}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/examples.yaml +0 -0
- {ha_mcp_dev-7.0.0.dev279 → ha_mcp_dev-7.0.0.dev280}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/helper-selection.md +0 -0
- {ha_mcp_dev-7.0.0.dev279 → ha_mcp_dev-7.0.0.dev280}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/safe-refactoring.md +0 -0
- {ha_mcp_dev-7.0.0.dev279 → ha_mcp_dev-7.0.0.dev280}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/template-guidelines.md +0 -0
- {ha_mcp_dev-7.0.0.dev279 → ha_mcp_dev-7.0.0.dev280}/src/ha_mcp/server.py +0 -0
- {ha_mcp_dev-7.0.0.dev279 → ha_mcp_dev-7.0.0.dev280}/src/ha_mcp/smoke_test.py +0 -0
- {ha_mcp_dev-7.0.0.dev279 → ha_mcp_dev-7.0.0.dev280}/src/ha_mcp/tools/__init__.py +0 -0
- {ha_mcp_dev-7.0.0.dev279 → ha_mcp_dev-7.0.0.dev280}/src/ha_mcp/tools/backup.py +0 -0
- {ha_mcp_dev-7.0.0.dev279 → ha_mcp_dev-7.0.0.dev280}/src/ha_mcp/tools/best_practice_checker.py +0 -0
- {ha_mcp_dev-7.0.0.dev279 → ha_mcp_dev-7.0.0.dev280}/src/ha_mcp/tools/device_control.py +0 -0
- {ha_mcp_dev-7.0.0.dev279 → ha_mcp_dev-7.0.0.dev280}/src/ha_mcp/tools/enhanced.py +0 -0
- {ha_mcp_dev-7.0.0.dev279 → ha_mcp_dev-7.0.0.dev280}/src/ha_mcp/tools/helpers.py +0 -0
- {ha_mcp_dev-7.0.0.dev279 → ha_mcp_dev-7.0.0.dev280}/src/ha_mcp/tools/registry.py +0 -0
- {ha_mcp_dev-7.0.0.dev279 → ha_mcp_dev-7.0.0.dev280}/src/ha_mcp/tools/smart_search.py +0 -0
- {ha_mcp_dev-7.0.0.dev279 → ha_mcp_dev-7.0.0.dev280}/src/ha_mcp/tools/tools_addons.py +0 -0
- {ha_mcp_dev-7.0.0.dev279 → ha_mcp_dev-7.0.0.dev280}/src/ha_mcp/tools/tools_areas.py +0 -0
- {ha_mcp_dev-7.0.0.dev279 → ha_mcp_dev-7.0.0.dev280}/src/ha_mcp/tools/tools_blueprints.py +0 -0
- {ha_mcp_dev-7.0.0.dev279 → ha_mcp_dev-7.0.0.dev280}/src/ha_mcp/tools/tools_bug_report.py +0 -0
- {ha_mcp_dev-7.0.0.dev279 → ha_mcp_dev-7.0.0.dev280}/src/ha_mcp/tools/tools_calendar.py +0 -0
- {ha_mcp_dev-7.0.0.dev279 → ha_mcp_dev-7.0.0.dev280}/src/ha_mcp/tools/tools_camera.py +0 -0
- {ha_mcp_dev-7.0.0.dev279 → ha_mcp_dev-7.0.0.dev280}/src/ha_mcp/tools/tools_config_automations.py +0 -0
- {ha_mcp_dev-7.0.0.dev279 → ha_mcp_dev-7.0.0.dev280}/src/ha_mcp/tools/tools_config_dashboards.py +0 -0
- {ha_mcp_dev-7.0.0.dev279 → ha_mcp_dev-7.0.0.dev280}/src/ha_mcp/tools/tools_config_entry_flow.py +0 -0
- {ha_mcp_dev-7.0.0.dev279 → ha_mcp_dev-7.0.0.dev280}/src/ha_mcp/tools/tools_config_helpers.py +0 -0
- {ha_mcp_dev-7.0.0.dev279 → ha_mcp_dev-7.0.0.dev280}/src/ha_mcp/tools/tools_config_info.py +0 -0
- {ha_mcp_dev-7.0.0.dev279 → ha_mcp_dev-7.0.0.dev280}/src/ha_mcp/tools/tools_config_scripts.py +0 -0
- {ha_mcp_dev-7.0.0.dev279 → ha_mcp_dev-7.0.0.dev280}/src/ha_mcp/tools/tools_entities.py +0 -0
- {ha_mcp_dev-7.0.0.dev279 → ha_mcp_dev-7.0.0.dev280}/src/ha_mcp/tools/tools_filesystem.py +0 -0
- {ha_mcp_dev-7.0.0.dev279 → ha_mcp_dev-7.0.0.dev280}/src/ha_mcp/tools/tools_groups.py +0 -0
- {ha_mcp_dev-7.0.0.dev279 → ha_mcp_dev-7.0.0.dev280}/src/ha_mcp/tools/tools_hacs.py +0 -0
- {ha_mcp_dev-7.0.0.dev279 → ha_mcp_dev-7.0.0.dev280}/src/ha_mcp/tools/tools_history.py +0 -0
- {ha_mcp_dev-7.0.0.dev279 → ha_mcp_dev-7.0.0.dev280}/src/ha_mcp/tools/tools_integrations.py +0 -0
- {ha_mcp_dev-7.0.0.dev279 → ha_mcp_dev-7.0.0.dev280}/src/ha_mcp/tools/tools_labels.py +0 -0
- {ha_mcp_dev-7.0.0.dev279 → ha_mcp_dev-7.0.0.dev280}/src/ha_mcp/tools/tools_mcp_component.py +0 -0
- {ha_mcp_dev-7.0.0.dev279 → ha_mcp_dev-7.0.0.dev280}/src/ha_mcp/tools/tools_registry.py +0 -0
- {ha_mcp_dev-7.0.0.dev279 → ha_mcp_dev-7.0.0.dev280}/src/ha_mcp/tools/tools_resources.py +0 -0
- {ha_mcp_dev-7.0.0.dev279 → ha_mcp_dev-7.0.0.dev280}/src/ha_mcp/tools/tools_search.py +0 -0
- {ha_mcp_dev-7.0.0.dev279 → ha_mcp_dev-7.0.0.dev280}/src/ha_mcp/tools/tools_service.py +0 -0
- {ha_mcp_dev-7.0.0.dev279 → ha_mcp_dev-7.0.0.dev280}/src/ha_mcp/tools/tools_services.py +0 -0
- {ha_mcp_dev-7.0.0.dev279 → ha_mcp_dev-7.0.0.dev280}/src/ha_mcp/tools/tools_system.py +0 -0
- {ha_mcp_dev-7.0.0.dev279 → ha_mcp_dev-7.0.0.dev280}/src/ha_mcp/tools/tools_todo.py +0 -0
- {ha_mcp_dev-7.0.0.dev279 → ha_mcp_dev-7.0.0.dev280}/src/ha_mcp/tools/tools_traces.py +0 -0
- {ha_mcp_dev-7.0.0.dev279 → ha_mcp_dev-7.0.0.dev280}/src/ha_mcp/tools/tools_updates.py +0 -0
- {ha_mcp_dev-7.0.0.dev279 → ha_mcp_dev-7.0.0.dev280}/src/ha_mcp/tools/tools_utility.py +0 -0
- {ha_mcp_dev-7.0.0.dev279 → ha_mcp_dev-7.0.0.dev280}/src/ha_mcp/tools/tools_voice_assistant.py +0 -0
- {ha_mcp_dev-7.0.0.dev279 → ha_mcp_dev-7.0.0.dev280}/src/ha_mcp/tools/tools_zones.py +0 -0
- {ha_mcp_dev-7.0.0.dev279 → ha_mcp_dev-7.0.0.dev280}/src/ha_mcp/tools/util_helpers.py +0 -0
- {ha_mcp_dev-7.0.0.dev279 → ha_mcp_dev-7.0.0.dev280}/src/ha_mcp/utils/__init__.py +0 -0
- {ha_mcp_dev-7.0.0.dev279 → ha_mcp_dev-7.0.0.dev280}/src/ha_mcp/utils/domain_handlers.py +0 -0
- {ha_mcp_dev-7.0.0.dev279 → ha_mcp_dev-7.0.0.dev280}/src/ha_mcp/utils/fuzzy_search.py +0 -0
- {ha_mcp_dev-7.0.0.dev279 → ha_mcp_dev-7.0.0.dev280}/src/ha_mcp/utils/operation_manager.py +0 -0
- {ha_mcp_dev-7.0.0.dev279 → ha_mcp_dev-7.0.0.dev280}/src/ha_mcp/utils/usage_logger.py +0 -0
- {ha_mcp_dev-7.0.0.dev279 → ha_mcp_dev-7.0.0.dev280}/src/ha_mcp_dev.egg-info/SOURCES.txt +0 -0
- {ha_mcp_dev-7.0.0.dev279 → ha_mcp_dev-7.0.0.dev280}/src/ha_mcp_dev.egg-info/dependency_links.txt +0 -0
- {ha_mcp_dev-7.0.0.dev279 → ha_mcp_dev-7.0.0.dev280}/src/ha_mcp_dev.egg-info/entry_points.txt +0 -0
- {ha_mcp_dev-7.0.0.dev279 → ha_mcp_dev-7.0.0.dev280}/src/ha_mcp_dev.egg-info/requires.txt +0 -0
- {ha_mcp_dev-7.0.0.dev279 → ha_mcp_dev-7.0.0.dev280}/src/ha_mcp_dev.egg-info/top_level.txt +0 -0
- {ha_mcp_dev-7.0.0.dev279 → ha_mcp_dev-7.0.0.dev280}/tests/__init__.py +0 -0
- {ha_mcp_dev-7.0.0.dev279 → ha_mcp_dev-7.0.0.dev280}/tests/test_constants.py +0 -0
- {ha_mcp_dev-7.0.0.dev279 → ha_mcp_dev-7.0.0.dev280}/tests/test_env_manager.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: ha-mcp-dev
|
|
3
|
-
Version: 7.0.0.
|
|
3
|
+
Version: 7.0.0.dev280
|
|
4
4
|
Summary: Home Assistant MCP Server - Complete control of Home Assistant through MCP
|
|
5
5
|
Author-email: Julien <github@qc-h.net>
|
|
6
6
|
License: MIT
|
|
@@ -275,6 +275,7 @@ This project is licensed under the MIT License - see the [LICENSE](LICENSE) file
|
|
|
275
275
|
- **[@saphid](https://github.com/saphid)** — Config entry options flow tools (initial design, #590).
|
|
276
276
|
- **[@adraguidev](https://github.com/adraguidev)** — Fix menu-based config entry flows for group helpers (#647).
|
|
277
277
|
- **[@transportrefer](https://github.com/transportrefer)** — Integration options inspection (`ha_get_integration` schema support, #689).
|
|
278
|
+
- **[@restriction](https://github.com/restriction)** — Responsible disclosure: python_transform sandbox missing call target validation.
|
|
278
279
|
|
|
279
280
|
---
|
|
280
281
|
|
|
@@ -245,6 +245,7 @@ This project is licensed under the MIT License - see the [LICENSE](LICENSE) file
|
|
|
245
245
|
- **[@saphid](https://github.com/saphid)** — Config entry options flow tools (initial design, #590).
|
|
246
246
|
- **[@adraguidev](https://github.com/adraguidev)** — Fix menu-based config entry flows for group helpers (#647).
|
|
247
247
|
- **[@transportrefer](https://github.com/transportrefer)** — Integration options inspection (`ha_get_integration` schema support, #689).
|
|
248
|
+
- **[@restriction](https://github.com/restriction)** — Responsible disclosure: python_transform sandbox missing call target validation.
|
|
248
249
|
|
|
249
250
|
---
|
|
250
251
|
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "ha-mcp-dev"
|
|
7
|
-
version = "7.0.0.
|
|
7
|
+
version = "7.0.0.dev280"
|
|
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"
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
"""
|
|
2
|
-
Python expression
|
|
2
|
+
Python expression validation for dashboard transformations.
|
|
3
3
|
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
Restricts expressions to a known-safe subset: dict/list operations,
|
|
5
|
+
basic control flow, and whitelisted methods. Not a security boundary —
|
|
6
|
+
callers are already authenticated MCP users with full HA access.
|
|
6
7
|
"""
|
|
7
8
|
|
|
8
9
|
import ast
|
|
@@ -189,6 +190,11 @@ def validate_expression(expr: str) -> tuple[bool, str]:
|
|
|
189
190
|
f"Forbidden method: {method_name} (allowed: {', '.join(sorted(SAFE_METHODS))})",
|
|
190
191
|
)
|
|
191
192
|
|
|
193
|
+
# Reject subscript calls, chained calls, and all other non-standard targets
|
|
194
|
+
# e.g., config['fn']() or config.get('fn')() would bypass Name/Attribute checks
|
|
195
|
+
else:
|
|
196
|
+
return False, f"Forbidden call target type: {type(node.func).__name__}"
|
|
197
|
+
|
|
192
198
|
# Block function definitions (could be used for obfuscation)
|
|
193
199
|
if isinstance(node, (ast.FunctionDef, ast.AsyncFunctionDef, ast.ClassDef)):
|
|
194
200
|
return False, "Forbidden: function/class definitions not allowed"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: ha-mcp-dev
|
|
3
|
-
Version: 7.0.0.
|
|
3
|
+
Version: 7.0.0.dev280
|
|
4
4
|
Summary: Home Assistant MCP Server - Complete control of Home Assistant through MCP
|
|
5
5
|
Author-email: Julien <github@qc-h.net>
|
|
6
6
|
License: MIT
|
|
@@ -275,6 +275,7 @@ This project is licensed under the MIT License - see the [LICENSE](LICENSE) file
|
|
|
275
275
|
- **[@saphid](https://github.com/saphid)** — Config entry options flow tools (initial design, #590).
|
|
276
276
|
- **[@adraguidev](https://github.com/adraguidev)** — Fix menu-based config entry flows for group helpers (#647).
|
|
277
277
|
- **[@transportrefer](https://github.com/transportrefer)** — Integration options inspection (`ha_get_integration` schema support, #689).
|
|
278
|
+
- **[@restriction](https://github.com/restriction)** — Responsible disclosure: python_transform sandbox missing call target validation.
|
|
278
279
|
|
|
279
280
|
---
|
|
280
281
|
|
|
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.0.0.dev279 → ha_mcp_dev-7.0.0.dev280}/src/ha_mcp/resources/skills-vendor/AGENTS.md
RENAMED
|
File without changes
|
{ha_mcp_dev-7.0.0.dev279 → ha_mcp_dev-7.0.0.dev280}/src/ha_mcp/resources/skills-vendor/CLAUDE.md
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.0.0.dev279 → ha_mcp_dev-7.0.0.dev280}/src/ha_mcp/resources/skills-vendor/LICENSE
RENAMED
|
File without changes
|
{ha_mcp_dev-7.0.0.dev279 → ha_mcp_dev-7.0.0.dev280}/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
|
{ha_mcp_dev-7.0.0.dev279 → ha_mcp_dev-7.0.0.dev280}/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.0.0.dev279 → ha_mcp_dev-7.0.0.dev280}/src/ha_mcp/tools/tools_config_automations.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.0.0.dev279 → ha_mcp_dev-7.0.0.dev280}/src/ha_mcp/tools/tools_config_dashboards.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.0.0.dev279 → ha_mcp_dev-7.0.0.dev280}/src/ha_mcp/tools/tools_config_entry_flow.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.0.0.dev279 → ha_mcp_dev-7.0.0.dev280}/src/ha_mcp/tools/tools_config_helpers.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.0.0.dev279 → ha_mcp_dev-7.0.0.dev280}/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.0.0.dev279 → ha_mcp_dev-7.0.0.dev280}/src/ha_mcp/tools/tools_voice_assistant.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.0.0.dev279 → ha_mcp_dev-7.0.0.dev280}/src/ha_mcp_dev.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
{ha_mcp_dev-7.0.0.dev279 → ha_mcp_dev-7.0.0.dev280}/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
|