ha-mcp-dev 7.14.2.dev2120__tar.gz → 7.14.2.dev2123__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.14.2.dev2120/src/ha_mcp_dev.egg-info → ha_mcp_dev-7.14.2.dev2123}/PKG-INFO +1 -1
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/pyproject.toml +1 -1
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/tools/tools_calendar.py +92 -14
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123/src/ha_mcp_dev.egg-info}/PKG-INFO +1 -1
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/LICENSE +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/MANIFEST.in +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/README.md +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/setup.cfg +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/__init__.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/__main__.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/_pypi_marker +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/_version.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/auth/__init__.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/auth/consent_form.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/auth/provider.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/backup_manager.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/browser_landing.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/client/__init__.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/client/rest_client.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/client/supervisor_client.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/client/websocket_client.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/client/websocket_listener.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/config.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/dashboard_screenshot/__init__.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/dashboard_screenshot/capture.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/dashboard_screenshot/content.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/dashboard_screenshot/paths.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/dashboard_screenshot/provision.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/dashboard_screenshot/theme_guard.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/errors.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/llm_exposure.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/policy/__init__.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/policy/approval_queue.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/policy/evaluator.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/policy/handlers.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/policy/middleware.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/policy/model.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/policy/persistence.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/policy/value_sources.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/py.typed +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/read_only.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/resources/skills-vendor/.claude/settings.json +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/resources/skills-vendor/.claude-plugin/marketplace.json +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/resources/skills-vendor/.claude-plugin/plugin.json +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/resources/skills-vendor/.github/ISSUE_TEMPLATE/skill-rca.md +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/resources/skills-vendor/.github/pull_request_template.md +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/resources/skills-vendor/AGENTS.md +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/resources/skills-vendor/CLAUDE.md +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/resources/skills-vendor/CONTRIBUTING.md +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/resources/skills-vendor/LICENSE +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/resources/skills-vendor/README.md +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/SKILL.md +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/evals/evals.json +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/appdaemon.md +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/automation-patterns.md +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/blueprint-guide.md +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/dashboard-cards.md +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/dashboard-guide.md +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/device-control.md +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/domain-docs.md +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/examples.yaml +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/helper-selection.md +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/safe-refactoring.md +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/scenes.md +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/template-guidelines.md +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/yaml-only-integrations.md +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/server.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/settings_ui/__init__.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/settings_ui/_handlers_advanced.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/settings_ui/_handlers_backups.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/settings_ui/_handlers_fs.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/settings_ui/_handlers_server.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/settings_ui/_handlers_theme.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/settings_ui/_handlers_tools.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/settings_ui/_i18n.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/settings_ui/_persistence.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/settings_ui/_supervisor.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/settings_ui/_theme.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/settings_ui/_tools_meta.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/settings_ui/locales/README.md +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/settings_ui/locales/de.json +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/settings_ui/locales/en.json +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/settings_ui/locales/ru.json +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/settings_ui/locales/zh-Hans.json +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/settings_ui/settings.css +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/settings_ui/settings.html +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/settings_ui/settings.js +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/smoke_test.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/stdio_settings_sidecar.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/strict_bps.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/tools/__init__.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/tools/auto_backup.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/tools/backup.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/tools/best_practice_checker.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/tools/component_api.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/tools/component_config_reads.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/tools/component_devices.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/tools/component_registries.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/tools/component_registry_lookup.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/tools/config_entry_flow.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/tools/device_control.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/tools/enhanced.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/tools/helpers.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/tools/radio/__init__.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/tools/radio/base.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/tools/radio/matter.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/tools/radio/thread.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/tools/radio/zigbee.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/tools/radio/zwave.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/tools/reference_validator.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/tools/registry.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/tools/smart_search/__init__.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/tools/smart_search/_base.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/tools/smart_search/_config.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/tools/smart_search/_deep.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/tools/smart_search/_entities.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/tools/smart_search/_fetch.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/tools/smart_search/_overview.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/tools/smart_search/_scenes.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/tools/smart_search/_scoring.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/tools/tool_search_hint_middleware.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/tools/tools_addons.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/tools/tools_areas.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/tools/tools_blueprints.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/tools/tools_bug_report.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/tools/tools_camera.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/tools/tools_categories.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/tools/tools_code.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/tools/tools_config_automations.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/tools/tools_config_dashboards.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/tools/tools_config_helpers.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/tools/tools_config_scenes.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/tools/tools_config_scripts.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/tools/tools_dashboard_screenshot.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/tools/tools_dev.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/tools/tools_energy.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/tools/tools_entities.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/tools/tools_filesystem.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/tools/tools_groups.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/tools/tools_hacs.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/tools/tools_history.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/tools/tools_integrations.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/tools/tools_labels.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/tools/tools_radio.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/tools/tools_registry.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/tools/tools_resources.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/tools/tools_search.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/tools/tools_service.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/tools/tools_services.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/tools/tools_system.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/tools/tools_themes.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/tools/tools_todo.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/tools/tools_traces.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/tools/tools_updates.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/tools/tools_utility.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/tools/tools_voice_assistant.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/tools/tools_yaml_config.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/tools/tools_yaml_read.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/tools/tools_zones.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/tools/util_helpers.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/tools/validation_middleware.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/transforms/__init__.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/transforms/categorized_search.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/transforms/lite_docstrings.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/transport_security.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/update_check.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/utils/__init__.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/utils/config_hash.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/utils/config_write_lock.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/utils/data_paths.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/utils/domain_handlers.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/utils/fuzzy_search.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/utils/kill_signal_diagnostics.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/utils/operation_manager.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/utils/python_sandbox.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/utils/skill_loader.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/utils/usage_logger.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/visibility/__init__.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/visibility/enforcement.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/visibility/model.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/visibility/persistence.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/visibility/resolver.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp_dev.egg-info/SOURCES.txt +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp_dev.egg-info/dependency_links.txt +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp_dev.egg-info/entry_points.txt +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp_dev.egg-info/requires.txt +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp_dev.egg-info/top_level.txt +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/tests/__init__.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/tests/test_constants.py +0 -0
- {ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/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.14.2.
|
|
7
|
+
version = "7.14.2.dev2123"
|
|
8
8
|
description = "Home Assistant MCP Server - Complete control of Home Assistant through MCP"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
# Upper bound widened to <3.15 so the package installs on Home Assistant's
|
|
@@ -232,12 +232,16 @@ class CalendarTools:
|
|
|
232
232
|
location: str | None,
|
|
233
233
|
) -> Any:
|
|
234
234
|
"""Create a one-off calendar event via the calendar.create_event service."""
|
|
235
|
+
start_is_date = self._is_date_only(start)
|
|
236
|
+
|
|
235
237
|
service_data: dict[str, Any] = {
|
|
236
238
|
"entity_id": entity_id,
|
|
237
239
|
"summary": summary,
|
|
238
|
-
"start_date_time": start,
|
|
239
|
-
"end_date_time": end,
|
|
240
240
|
}
|
|
241
|
+
if start_is_date:
|
|
242
|
+
service_data.update({"start_date": start, "end_date": end})
|
|
243
|
+
else:
|
|
244
|
+
service_data.update({"start_date_time": start, "end_date_time": end})
|
|
241
245
|
|
|
242
246
|
if description is not None:
|
|
243
247
|
service_data["description"] = description
|
|
@@ -246,8 +250,19 @@ class CalendarTools:
|
|
|
246
250
|
|
|
247
251
|
return await self._client.call_service("calendar", "create_event", service_data)
|
|
248
252
|
|
|
253
|
+
@staticmethod
|
|
254
|
+
def _is_date_only(value: str) -> bool:
|
|
255
|
+
"""Return whether value is a valid date in strict YYYY-MM-DD form."""
|
|
256
|
+
try:
|
|
257
|
+
return (
|
|
258
|
+
len(value) == 10
|
|
259
|
+
and datetime.strptime(value, "%Y-%m-%d").date().isoformat() == value
|
|
260
|
+
)
|
|
261
|
+
except ValueError:
|
|
262
|
+
return False
|
|
263
|
+
|
|
249
264
|
def _build_set_calendar_event_error_suggestions(
|
|
250
|
-
self, entity_id: str, rrule: str | None, error: Exception
|
|
265
|
+
self, entity_id: str, rrule: str | None, error: Exception, start: str, end: str
|
|
251
266
|
) -> list[str]:
|
|
252
267
|
"""Build suggestions for a failed ha_config_set_calendar_event call."""
|
|
253
268
|
if isinstance(error, HomeAssistantConnectionError):
|
|
@@ -274,8 +289,32 @@ class CalendarTools:
|
|
|
274
289
|
error_str = str(error)
|
|
275
290
|
if "404" in error_str or "not found" in error_str.lower():
|
|
276
291
|
suggestions.insert(0, f"Calendar entity '{entity_id}' not found")
|
|
292
|
+
# Only reachable on the WebSocket (rrule) path, which preserves HA's
|
|
293
|
+
# humanized message. The REST service path loses it: a read-only
|
|
294
|
+
# calendar raises ServiceNotSupported, which HA's handler does not map
|
|
295
|
+
# (see homeassistant/helpers/http.py — only vol.Invalid, ServiceNotFound
|
|
296
|
+
# and Unauthorized are), so the client sees a bodyless status line. Do
|
|
297
|
+
# NOT broaden this to match that generic shape: it would promote
|
|
298
|
+
# "does not support event creation" onto every validation failure. The
|
|
299
|
+
# REST path keeps the read-only hint via the unconditional
|
|
300
|
+
# "Some calendar integrations may be read-only" suggestion above.
|
|
277
301
|
if "not supported" in error_str.lower():
|
|
278
302
|
suggestions.insert(0, "This calendar does not support event creation")
|
|
303
|
+
# HA treats the all-day end date as exclusive and enforces
|
|
304
|
+
# MIN_NEW_EVENT_DURATION (1 second), so an all-day range with
|
|
305
|
+
# end <= start is rejected. Key this on the boundaries we already hold
|
|
306
|
+
# rather than on HA's wording: the REST service path raises a bare
|
|
307
|
+
# HTTPBadRequest, so voluptuous' "Expected minimum event duration"
|
|
308
|
+
# text never reaches the client (only the WebSocket rrule path keeps
|
|
309
|
+
# it). Strict YYYY-MM-DD sorts lexicographically, so comparing the
|
|
310
|
+
# strings is an exact date comparison here.
|
|
311
|
+
if self._is_date_only(start) and self._is_date_only(end) and end <= start:
|
|
312
|
+
suggestions.insert(
|
|
313
|
+
0,
|
|
314
|
+
"For an all-day event the end date is exclusive — set end to "
|
|
315
|
+
"start + 1 day (a single-day all-day event cannot have "
|
|
316
|
+
"start == end)",
|
|
317
|
+
)
|
|
279
318
|
|
|
280
319
|
return suggestions
|
|
281
320
|
|
|
@@ -305,8 +344,19 @@ class CalendarTools:
|
|
|
305
344
|
str, Field(description="Calendar entity ID (e.g., 'calendar.family')")
|
|
306
345
|
],
|
|
307
346
|
summary: Annotated[str, Field(description="Event title/summary")],
|
|
308
|
-
start: Annotated[
|
|
309
|
-
|
|
347
|
+
start: Annotated[
|
|
348
|
+
str, Field(description="Event start date or datetime in ISO format")
|
|
349
|
+
],
|
|
350
|
+
end: Annotated[
|
|
351
|
+
str,
|
|
352
|
+
Field(
|
|
353
|
+
description=(
|
|
354
|
+
"Event end date or datetime in ISO format. For all-day "
|
|
355
|
+
"events (date-only) the end date is exclusive; a "
|
|
356
|
+
"single-day all-day event needs end = start + 1 day."
|
|
357
|
+
)
|
|
358
|
+
),
|
|
359
|
+
],
|
|
310
360
|
description: Annotated[
|
|
311
361
|
str | None,
|
|
312
362
|
Field(description="Optional event description", default=None),
|
|
@@ -334,14 +384,9 @@ class CalendarTools:
|
|
|
334
384
|
when ``rrule`` is provided (the REST service schema does not accept
|
|
335
385
|
recurrence rules).
|
|
336
386
|
|
|
337
|
-
**
|
|
338
|
-
-
|
|
339
|
-
-
|
|
340
|
-
- start: Event start datetime in ISO format
|
|
341
|
-
- end: Event end datetime in ISO format
|
|
342
|
-
- description: Optional event description
|
|
343
|
-
- location: Optional event location
|
|
344
|
-
- rrule: Optional RFC 5545 recurrence rule (creates a recurring series)
|
|
387
|
+
**When NOT to use:**
|
|
388
|
+
- To retrieve calendar events, use ``ha_config_get_calendar_events``.
|
|
389
|
+
- To delete an event, use ``ha_config_remove_calendar_event``.
|
|
345
390
|
|
|
346
391
|
**Example Usage:**
|
|
347
392
|
```python
|
|
@@ -361,9 +406,25 @@ class CalendarTools:
|
|
|
361
406
|
end="2024-01-15T11:00:00",
|
|
362
407
|
rrule="FREQ=WEEKLY;BYDAY=MO;COUNT=10"
|
|
363
408
|
)
|
|
409
|
+
|
|
410
|
+
# Create an all-day event (date-only, no time component). The end
|
|
411
|
+
# date is EXCLUSIVE, so this spans 2026-07-04 through 2026-07-10.
|
|
412
|
+
result = ha_config_set_calendar_event(
|
|
413
|
+
"calendar.family",
|
|
414
|
+
summary="Vacation",
|
|
415
|
+
start="2026-07-04",
|
|
416
|
+
end="2026-07-11"
|
|
417
|
+
)
|
|
364
418
|
```
|
|
365
419
|
|
|
366
420
|
**Note:**
|
|
421
|
+
Passing date-only values (``YYYY-MM-DD``) for both ``start`` and
|
|
422
|
+
``end`` creates an all-day event; passing full ISO datetimes creates
|
|
423
|
+
a timed event. The two forms cannot be mixed — a date-only ``start``
|
|
424
|
+
with a datetime ``end`` (or vice versa) is rejected. Because the
|
|
425
|
+
all-day ``end`` date is exclusive, a single-day all-day event must
|
|
426
|
+
set ``end`` to ``start + 1 day``.
|
|
427
|
+
|
|
367
428
|
Not every calendar integration supports event creation; recurring
|
|
368
429
|
events additionally require the integration to support recurrence
|
|
369
430
|
(the built-in Local Calendar does).
|
|
@@ -386,6 +447,23 @@ class CalendarTools:
|
|
|
386
447
|
)
|
|
387
448
|
)
|
|
388
449
|
|
|
450
|
+
# Reject mixed date/datetime up front so both the simple and the
|
|
451
|
+
# recurring (rrule) paths give the same clear validation error —
|
|
452
|
+
# the rrule branch does not route through
|
|
453
|
+
# ``_create_simple_calendar_event`` where this used to live.
|
|
454
|
+
if self._is_date_only(start) != self._is_date_only(end):
|
|
455
|
+
raise_tool_error(
|
|
456
|
+
create_error_response(
|
|
457
|
+
ErrorCode.VALIDATION_INVALID_PARAMETER,
|
|
458
|
+
"Calendar event start and end must both be dates or both be datetimes",
|
|
459
|
+
context={"start": start, "end": end},
|
|
460
|
+
suggestions=[
|
|
461
|
+
"Use YYYY-MM-DD for both values to create an all-day event",
|
|
462
|
+
"Use ISO 8601 datetimes for both values to create a timed event",
|
|
463
|
+
],
|
|
464
|
+
)
|
|
465
|
+
)
|
|
466
|
+
|
|
389
467
|
if rrule:
|
|
390
468
|
result = await self._create_recurring_calendar_event(
|
|
391
469
|
entity_id, summary, start, end, description, location, rrule
|
|
@@ -416,7 +494,7 @@ class CalendarTools:
|
|
|
416
494
|
logger.error(f"Failed to create calendar event in {entity_id}: {error}")
|
|
417
495
|
|
|
418
496
|
suggestions = self._build_set_calendar_event_error_suggestions(
|
|
419
|
-
entity_id, rrule, error
|
|
497
|
+
entity_id, rrule, error, start, end
|
|
420
498
|
)
|
|
421
499
|
|
|
422
500
|
exception_to_structured_error(
|
|
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.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/client/supervisor_client.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/client/websocket_client.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/client/websocket_listener.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/dashboard_screenshot/__init__.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/dashboard_screenshot/capture.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/dashboard_screenshot/content.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/dashboard_screenshot/paths.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/dashboard_screenshot/provision.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.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/resources/skills-vendor/AGENTS.md
RENAMED
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/resources/skills-vendor/CLAUDE.md
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/resources/skills-vendor/LICENSE
RENAMED
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/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
|
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/settings_ui/_handlers_advanced.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/settings_ui/_handlers_backups.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/settings_ui/_handlers_fs.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/settings_ui/_handlers_server.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/settings_ui/_handlers_theme.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/settings_ui/_handlers_tools.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/settings_ui/_persistence.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/settings_ui/_supervisor.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/settings_ui/_tools_meta.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/settings_ui/locales/README.md
RENAMED
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/settings_ui/locales/de.json
RENAMED
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/settings_ui/locales/en.json
RENAMED
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/settings_ui/locales/ru.json
RENAMED
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/settings_ui/locales/zh-Hans.json
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/settings_ui/settings.html
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/stdio_settings_sidecar.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/tools/best_practice_checker.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/tools/component_config_reads.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/tools/component_devices.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/tools/component_registries.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/tools/config_entry_flow.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
|
{ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/tools/reference_validator.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/tools/smart_search/__init__.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/tools/smart_search/_base.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/tools/smart_search/_config.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/tools/smart_search/_deep.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/tools/smart_search/_entities.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/tools/smart_search/_fetch.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/tools/smart_search/_overview.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/tools/smart_search/_scenes.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/tools/smart_search/_scoring.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/tools/tools_blueprints.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/tools/tools_bug_report.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/tools/tools_categories.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/tools/tools_config_automations.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/tools/tools_config_dashboards.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/tools/tools_config_helpers.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/tools/tools_config_scenes.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/tools/tools_config_scripts.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/tools/tools_filesystem.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/tools/tools_integrations.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.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/tools/tools_voice_assistant.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/tools/tools_yaml_config.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/tools/validation_middleware.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/transforms/categorized_search.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/transforms/lite_docstrings.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/utils/config_write_lock.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/utils/kill_signal_diagnostics.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/utils/operation_manager.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/visibility/enforcement.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp/visibility/persistence.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp_dev.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp_dev.egg-info/entry_points.txt
RENAMED
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp_dev.egg-info/requires.txt
RENAMED
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2120 → ha_mcp_dev-7.14.2.dev2123}/src/ha_mcp_dev.egg-info/top_level.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|