ha-mcp-dev 7.5.0.dev533__tar.gz → 7.5.0.dev534__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.
Files changed (111) hide show
  1. {ha_mcp_dev-7.5.0.dev533/src/ha_mcp_dev.egg-info → ha_mcp_dev-7.5.0.dev534}/PKG-INFO +1 -1
  2. {ha_mcp_dev-7.5.0.dev533 → ha_mcp_dev-7.5.0.dev534}/pyproject.toml +1 -1
  3. {ha_mcp_dev-7.5.0.dev533 → ha_mcp_dev-7.5.0.dev534}/src/ha_mcp/tools/tools_config_scripts.py +19 -1
  4. {ha_mcp_dev-7.5.0.dev533 → ha_mcp_dev-7.5.0.dev534/src/ha_mcp_dev.egg-info}/PKG-INFO +1 -1
  5. {ha_mcp_dev-7.5.0.dev533 → ha_mcp_dev-7.5.0.dev534}/LICENSE +0 -0
  6. {ha_mcp_dev-7.5.0.dev533 → ha_mcp_dev-7.5.0.dev534}/MANIFEST.in +0 -0
  7. {ha_mcp_dev-7.5.0.dev533 → ha_mcp_dev-7.5.0.dev534}/README.md +0 -0
  8. {ha_mcp_dev-7.5.0.dev533 → ha_mcp_dev-7.5.0.dev534}/setup.cfg +0 -0
  9. {ha_mcp_dev-7.5.0.dev533 → ha_mcp_dev-7.5.0.dev534}/src/ha_mcp/__init__.py +0 -0
  10. {ha_mcp_dev-7.5.0.dev533 → ha_mcp_dev-7.5.0.dev534}/src/ha_mcp/__main__.py +0 -0
  11. {ha_mcp_dev-7.5.0.dev533 → ha_mcp_dev-7.5.0.dev534}/src/ha_mcp/_pypi_marker +0 -0
  12. {ha_mcp_dev-7.5.0.dev533 → ha_mcp_dev-7.5.0.dev534}/src/ha_mcp/_version.py +0 -0
  13. {ha_mcp_dev-7.5.0.dev533 → ha_mcp_dev-7.5.0.dev534}/src/ha_mcp/auth/__init__.py +0 -0
  14. {ha_mcp_dev-7.5.0.dev533 → ha_mcp_dev-7.5.0.dev534}/src/ha_mcp/auth/consent_form.py +0 -0
  15. {ha_mcp_dev-7.5.0.dev533 → ha_mcp_dev-7.5.0.dev534}/src/ha_mcp/auth/provider.py +0 -0
  16. {ha_mcp_dev-7.5.0.dev533 → ha_mcp_dev-7.5.0.dev534}/src/ha_mcp/client/__init__.py +0 -0
  17. {ha_mcp_dev-7.5.0.dev533 → ha_mcp_dev-7.5.0.dev534}/src/ha_mcp/client/rest_client.py +0 -0
  18. {ha_mcp_dev-7.5.0.dev533 → ha_mcp_dev-7.5.0.dev534}/src/ha_mcp/client/supervisor_client.py +0 -0
  19. {ha_mcp_dev-7.5.0.dev533 → ha_mcp_dev-7.5.0.dev534}/src/ha_mcp/client/websocket_client.py +0 -0
  20. {ha_mcp_dev-7.5.0.dev533 → ha_mcp_dev-7.5.0.dev534}/src/ha_mcp/client/websocket_listener.py +0 -0
  21. {ha_mcp_dev-7.5.0.dev533 → ha_mcp_dev-7.5.0.dev534}/src/ha_mcp/config.py +0 -0
  22. {ha_mcp_dev-7.5.0.dev533 → ha_mcp_dev-7.5.0.dev534}/src/ha_mcp/errors.py +0 -0
  23. {ha_mcp_dev-7.5.0.dev533 → ha_mcp_dev-7.5.0.dev534}/src/ha_mcp/py.typed +0 -0
  24. {ha_mcp_dev-7.5.0.dev533 → ha_mcp_dev-7.5.0.dev534}/src/ha_mcp/resources/skills-vendor/.claude/settings.json +0 -0
  25. {ha_mcp_dev-7.5.0.dev533 → ha_mcp_dev-7.5.0.dev534}/src/ha_mcp/resources/skills-vendor/.claude-plugin/marketplace.json +0 -0
  26. {ha_mcp_dev-7.5.0.dev533 → ha_mcp_dev-7.5.0.dev534}/src/ha_mcp/resources/skills-vendor/.claude-plugin/plugin.json +0 -0
  27. {ha_mcp_dev-7.5.0.dev533 → ha_mcp_dev-7.5.0.dev534}/src/ha_mcp/resources/skills-vendor/.github/ISSUE_TEMPLATE/skill-rca.md +0 -0
  28. {ha_mcp_dev-7.5.0.dev533 → ha_mcp_dev-7.5.0.dev534}/src/ha_mcp/resources/skills-vendor/AGENTS.md +0 -0
  29. {ha_mcp_dev-7.5.0.dev533 → ha_mcp_dev-7.5.0.dev534}/src/ha_mcp/resources/skills-vendor/CLAUDE.md +0 -0
  30. {ha_mcp_dev-7.5.0.dev533 → ha_mcp_dev-7.5.0.dev534}/src/ha_mcp/resources/skills-vendor/CONTRIBUTING.md +0 -0
  31. {ha_mcp_dev-7.5.0.dev533 → ha_mcp_dev-7.5.0.dev534}/src/ha_mcp/resources/skills-vendor/LICENSE +0 -0
  32. {ha_mcp_dev-7.5.0.dev533 → ha_mcp_dev-7.5.0.dev534}/src/ha_mcp/resources/skills-vendor/README.md +0 -0
  33. {ha_mcp_dev-7.5.0.dev533 → ha_mcp_dev-7.5.0.dev534}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/SKILL.md +0 -0
  34. {ha_mcp_dev-7.5.0.dev533 → ha_mcp_dev-7.5.0.dev534}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/evals/evals.json +0 -0
  35. {ha_mcp_dev-7.5.0.dev533 → ha_mcp_dev-7.5.0.dev534}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/automation-patterns.md +0 -0
  36. {ha_mcp_dev-7.5.0.dev533 → ha_mcp_dev-7.5.0.dev534}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/dashboard-cards.md +0 -0
  37. {ha_mcp_dev-7.5.0.dev533 → ha_mcp_dev-7.5.0.dev534}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/dashboard-guide.md +0 -0
  38. {ha_mcp_dev-7.5.0.dev533 → ha_mcp_dev-7.5.0.dev534}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/device-control.md +0 -0
  39. {ha_mcp_dev-7.5.0.dev533 → ha_mcp_dev-7.5.0.dev534}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/domain-docs.md +0 -0
  40. {ha_mcp_dev-7.5.0.dev533 → ha_mcp_dev-7.5.0.dev534}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/examples.yaml +0 -0
  41. {ha_mcp_dev-7.5.0.dev533 → ha_mcp_dev-7.5.0.dev534}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/helper-selection.md +0 -0
  42. {ha_mcp_dev-7.5.0.dev533 → ha_mcp_dev-7.5.0.dev534}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/safe-refactoring.md +0 -0
  43. {ha_mcp_dev-7.5.0.dev533 → ha_mcp_dev-7.5.0.dev534}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/template-guidelines.md +0 -0
  44. {ha_mcp_dev-7.5.0.dev533 → ha_mcp_dev-7.5.0.dev534}/src/ha_mcp/server.py +0 -0
  45. {ha_mcp_dev-7.5.0.dev533 → ha_mcp_dev-7.5.0.dev534}/src/ha_mcp/settings_ui.py +0 -0
  46. {ha_mcp_dev-7.5.0.dev533 → ha_mcp_dev-7.5.0.dev534}/src/ha_mcp/smoke_test.py +0 -0
  47. {ha_mcp_dev-7.5.0.dev533 → ha_mcp_dev-7.5.0.dev534}/src/ha_mcp/tools/__init__.py +0 -0
  48. {ha_mcp_dev-7.5.0.dev533 → ha_mcp_dev-7.5.0.dev534}/src/ha_mcp/tools/backup.py +0 -0
  49. {ha_mcp_dev-7.5.0.dev533 → ha_mcp_dev-7.5.0.dev534}/src/ha_mcp/tools/best_practice_checker.py +0 -0
  50. {ha_mcp_dev-7.5.0.dev533 → ha_mcp_dev-7.5.0.dev534}/src/ha_mcp/tools/device_control.py +0 -0
  51. {ha_mcp_dev-7.5.0.dev533 → ha_mcp_dev-7.5.0.dev534}/src/ha_mcp/tools/enhanced.py +0 -0
  52. {ha_mcp_dev-7.5.0.dev533 → ha_mcp_dev-7.5.0.dev534}/src/ha_mcp/tools/helpers.py +0 -0
  53. {ha_mcp_dev-7.5.0.dev533 → ha_mcp_dev-7.5.0.dev534}/src/ha_mcp/tools/reference_validator.py +0 -0
  54. {ha_mcp_dev-7.5.0.dev533 → ha_mcp_dev-7.5.0.dev534}/src/ha_mcp/tools/registry.py +0 -0
  55. {ha_mcp_dev-7.5.0.dev533 → ha_mcp_dev-7.5.0.dev534}/src/ha_mcp/tools/smart_search.py +0 -0
  56. {ha_mcp_dev-7.5.0.dev533 → ha_mcp_dev-7.5.0.dev534}/src/ha_mcp/tools/tools_addons.py +0 -0
  57. {ha_mcp_dev-7.5.0.dev533 → ha_mcp_dev-7.5.0.dev534}/src/ha_mcp/tools/tools_areas.py +0 -0
  58. {ha_mcp_dev-7.5.0.dev533 → ha_mcp_dev-7.5.0.dev534}/src/ha_mcp/tools/tools_blueprints.py +0 -0
  59. {ha_mcp_dev-7.5.0.dev533 → ha_mcp_dev-7.5.0.dev534}/src/ha_mcp/tools/tools_bug_report.py +0 -0
  60. {ha_mcp_dev-7.5.0.dev533 → ha_mcp_dev-7.5.0.dev534}/src/ha_mcp/tools/tools_calendar.py +0 -0
  61. {ha_mcp_dev-7.5.0.dev533 → ha_mcp_dev-7.5.0.dev534}/src/ha_mcp/tools/tools_camera.py +0 -0
  62. {ha_mcp_dev-7.5.0.dev533 → ha_mcp_dev-7.5.0.dev534}/src/ha_mcp/tools/tools_categories.py +0 -0
  63. {ha_mcp_dev-7.5.0.dev533 → ha_mcp_dev-7.5.0.dev534}/src/ha_mcp/tools/tools_code.py +0 -0
  64. {ha_mcp_dev-7.5.0.dev533 → ha_mcp_dev-7.5.0.dev534}/src/ha_mcp/tools/tools_config_automations.py +0 -0
  65. {ha_mcp_dev-7.5.0.dev533 → ha_mcp_dev-7.5.0.dev534}/src/ha_mcp/tools/tools_config_dashboards.py +0 -0
  66. {ha_mcp_dev-7.5.0.dev533 → ha_mcp_dev-7.5.0.dev534}/src/ha_mcp/tools/tools_config_entry_flow.py +0 -0
  67. {ha_mcp_dev-7.5.0.dev533 → ha_mcp_dev-7.5.0.dev534}/src/ha_mcp/tools/tools_config_helpers.py +0 -0
  68. {ha_mcp_dev-7.5.0.dev533 → ha_mcp_dev-7.5.0.dev534}/src/ha_mcp/tools/tools_config_scenes.py +0 -0
  69. {ha_mcp_dev-7.5.0.dev533 → ha_mcp_dev-7.5.0.dev534}/src/ha_mcp/tools/tools_energy.py +0 -0
  70. {ha_mcp_dev-7.5.0.dev533 → ha_mcp_dev-7.5.0.dev534}/src/ha_mcp/tools/tools_entities.py +0 -0
  71. {ha_mcp_dev-7.5.0.dev533 → ha_mcp_dev-7.5.0.dev534}/src/ha_mcp/tools/tools_filesystem.py +0 -0
  72. {ha_mcp_dev-7.5.0.dev533 → ha_mcp_dev-7.5.0.dev534}/src/ha_mcp/tools/tools_groups.py +0 -0
  73. {ha_mcp_dev-7.5.0.dev533 → ha_mcp_dev-7.5.0.dev534}/src/ha_mcp/tools/tools_hacs.py +0 -0
  74. {ha_mcp_dev-7.5.0.dev533 → ha_mcp_dev-7.5.0.dev534}/src/ha_mcp/tools/tools_history.py +0 -0
  75. {ha_mcp_dev-7.5.0.dev533 → ha_mcp_dev-7.5.0.dev534}/src/ha_mcp/tools/tools_integrations.py +0 -0
  76. {ha_mcp_dev-7.5.0.dev533 → ha_mcp_dev-7.5.0.dev534}/src/ha_mcp/tools/tools_labels.py +0 -0
  77. {ha_mcp_dev-7.5.0.dev533 → ha_mcp_dev-7.5.0.dev534}/src/ha_mcp/tools/tools_mcp_component.py +0 -0
  78. {ha_mcp_dev-7.5.0.dev533 → ha_mcp_dev-7.5.0.dev534}/src/ha_mcp/tools/tools_registry.py +0 -0
  79. {ha_mcp_dev-7.5.0.dev533 → ha_mcp_dev-7.5.0.dev534}/src/ha_mcp/tools/tools_resources.py +0 -0
  80. {ha_mcp_dev-7.5.0.dev533 → ha_mcp_dev-7.5.0.dev534}/src/ha_mcp/tools/tools_search.py +0 -0
  81. {ha_mcp_dev-7.5.0.dev533 → ha_mcp_dev-7.5.0.dev534}/src/ha_mcp/tools/tools_service.py +0 -0
  82. {ha_mcp_dev-7.5.0.dev533 → ha_mcp_dev-7.5.0.dev534}/src/ha_mcp/tools/tools_services.py +0 -0
  83. {ha_mcp_dev-7.5.0.dev533 → ha_mcp_dev-7.5.0.dev534}/src/ha_mcp/tools/tools_system.py +0 -0
  84. {ha_mcp_dev-7.5.0.dev533 → ha_mcp_dev-7.5.0.dev534}/src/ha_mcp/tools/tools_todo.py +0 -0
  85. {ha_mcp_dev-7.5.0.dev533 → ha_mcp_dev-7.5.0.dev534}/src/ha_mcp/tools/tools_traces.py +0 -0
  86. {ha_mcp_dev-7.5.0.dev533 → ha_mcp_dev-7.5.0.dev534}/src/ha_mcp/tools/tools_updates.py +0 -0
  87. {ha_mcp_dev-7.5.0.dev533 → ha_mcp_dev-7.5.0.dev534}/src/ha_mcp/tools/tools_utility.py +0 -0
  88. {ha_mcp_dev-7.5.0.dev533 → ha_mcp_dev-7.5.0.dev534}/src/ha_mcp/tools/tools_voice_assistant.py +0 -0
  89. {ha_mcp_dev-7.5.0.dev533 → ha_mcp_dev-7.5.0.dev534}/src/ha_mcp/tools/tools_yaml_config.py +0 -0
  90. {ha_mcp_dev-7.5.0.dev533 → ha_mcp_dev-7.5.0.dev534}/src/ha_mcp/tools/tools_zones.py +0 -0
  91. {ha_mcp_dev-7.5.0.dev533 → ha_mcp_dev-7.5.0.dev534}/src/ha_mcp/tools/util_helpers.py +0 -0
  92. {ha_mcp_dev-7.5.0.dev533 → ha_mcp_dev-7.5.0.dev534}/src/ha_mcp/transforms/__init__.py +0 -0
  93. {ha_mcp_dev-7.5.0.dev533 → ha_mcp_dev-7.5.0.dev534}/src/ha_mcp/transforms/categorized_search.py +0 -0
  94. {ha_mcp_dev-7.5.0.dev533 → ha_mcp_dev-7.5.0.dev534}/src/ha_mcp/transforms/lite_docstrings.py +0 -0
  95. {ha_mcp_dev-7.5.0.dev533 → ha_mcp_dev-7.5.0.dev534}/src/ha_mcp/utils/__init__.py +0 -0
  96. {ha_mcp_dev-7.5.0.dev533 → ha_mcp_dev-7.5.0.dev534}/src/ha_mcp/utils/config_hash.py +0 -0
  97. {ha_mcp_dev-7.5.0.dev533 → ha_mcp_dev-7.5.0.dev534}/src/ha_mcp/utils/data_paths.py +0 -0
  98. {ha_mcp_dev-7.5.0.dev533 → ha_mcp_dev-7.5.0.dev534}/src/ha_mcp/utils/domain_handlers.py +0 -0
  99. {ha_mcp_dev-7.5.0.dev533 → ha_mcp_dev-7.5.0.dev534}/src/ha_mcp/utils/fuzzy_search.py +0 -0
  100. {ha_mcp_dev-7.5.0.dev533 → ha_mcp_dev-7.5.0.dev534}/src/ha_mcp/utils/kill_signal_diagnostics.py +0 -0
  101. {ha_mcp_dev-7.5.0.dev533 → ha_mcp_dev-7.5.0.dev534}/src/ha_mcp/utils/operation_manager.py +0 -0
  102. {ha_mcp_dev-7.5.0.dev533 → ha_mcp_dev-7.5.0.dev534}/src/ha_mcp/utils/python_sandbox.py +0 -0
  103. {ha_mcp_dev-7.5.0.dev533 → ha_mcp_dev-7.5.0.dev534}/src/ha_mcp/utils/usage_logger.py +0 -0
  104. {ha_mcp_dev-7.5.0.dev533 → ha_mcp_dev-7.5.0.dev534}/src/ha_mcp_dev.egg-info/SOURCES.txt +0 -0
  105. {ha_mcp_dev-7.5.0.dev533 → ha_mcp_dev-7.5.0.dev534}/src/ha_mcp_dev.egg-info/dependency_links.txt +0 -0
  106. {ha_mcp_dev-7.5.0.dev533 → ha_mcp_dev-7.5.0.dev534}/src/ha_mcp_dev.egg-info/entry_points.txt +0 -0
  107. {ha_mcp_dev-7.5.0.dev533 → ha_mcp_dev-7.5.0.dev534}/src/ha_mcp_dev.egg-info/requires.txt +0 -0
  108. {ha_mcp_dev-7.5.0.dev533 → ha_mcp_dev-7.5.0.dev534}/src/ha_mcp_dev.egg-info/top_level.txt +0 -0
  109. {ha_mcp_dev-7.5.0.dev533 → ha_mcp_dev-7.5.0.dev534}/tests/__init__.py +0 -0
  110. {ha_mcp_dev-7.5.0.dev533 → ha_mcp_dev-7.5.0.dev534}/tests/test_constants.py +0 -0
  111. {ha_mcp_dev-7.5.0.dev533 → ha_mcp_dev-7.5.0.dev534}/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.5.0.dev533
3
+ Version: 7.5.0.dev534
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
@@ -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.dev533"
7
+ version = "7.5.0.dev534"
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"
@@ -96,6 +96,8 @@ class ConfigScriptTools:
96
96
 
97
97
  The returned `config_hash` is stable across consecutive reads of an unchanged config — `compute_config_hash` documents the underlying contract.
98
98
 
99
+ The returned `script_id` is the canonical storage key resolved by the REST client (matching what `ha_config_set_script` / `ha_config_remove_script` expect), falling back to the input identifier on the rare path where the REST envelope omits it.
100
+
99
101
  EXAMPLES:
100
102
  - Get script: ha_config_get_script("morning_routine")
101
103
  - Get script: ha_config_get_script("backup_script")
@@ -128,10 +130,26 @@ class ConfigScriptTools:
128
130
  if cat_id:
129
131
  config_result["category"] = cat_id
130
132
 
133
+ # Issue #1334: return the canonical storage key from the
134
+ # rest_client envelope so callers can thread the result into
135
+ # subsequent ha_config_*_script calls without re-resolving.
136
+ # Falls back to the input when the rest_client response omits
137
+ # the key — a contract violation that we surface via warning
138
+ # rather than mask silently.
139
+ canonical_id = config_result.get("script_id")
140
+ if canonical_id is None:
141
+ logger.warning(
142
+ "get_script_config envelope missing 'script_id' for "
143
+ "input %r; falling back to caller input. This indicates "
144
+ "a rest_client contract violation.",
145
+ script_id,
146
+ )
147
+ canonical_id = script_id
148
+
131
149
  return {
132
150
  "success": True,
133
151
  "action": "get",
134
- "script_id": script_id,
152
+ "script_id": canonical_id,
135
153
  "config": config_result,
136
154
  "config_hash": config_hash_value,
137
155
  }
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ha-mcp-dev
3
- Version: 7.5.0.dev533
3
+ Version: 7.5.0.dev534
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