ha-mcp-dev 7.12.3.dev1909__tar.gz → 7.12.3.dev1912__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.12.3.dev1909/src/ha_mcp_dev.egg-info → ha_mcp_dev-7.12.3.dev1912}/PKG-INFO +2 -2
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/pyproject.toml +2 -2
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/settings_ui/__init__.py +6 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/settings_ui/settings.js +35 -9
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912/src/ha_mcp_dev.egg-info}/PKG-INFO +2 -2
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp_dev.egg-info/requires.txt +1 -1
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/LICENSE +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/MANIFEST.in +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/README.md +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/setup.cfg +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/__init__.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/__main__.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/_pypi_marker +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/_version.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/auth/__init__.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/auth/consent_form.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/auth/provider.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/backup_manager.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/browser_landing.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/client/__init__.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/client/rest_client.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/client/supervisor_client.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/client/websocket_client.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/client/websocket_listener.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/config.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/dashboard_screenshot/__init__.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/dashboard_screenshot/capture.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/dashboard_screenshot/provision.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/errors.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/llm_exposure.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/policy/__init__.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/policy/approval_queue.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/policy/evaluator.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/policy/handlers.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/policy/middleware.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/policy/model.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/policy/persistence.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/policy/value_sources.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/py.typed +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/read_only.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/resources/skills-vendor/.claude/settings.json +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/resources/skills-vendor/.claude-plugin/marketplace.json +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/resources/skills-vendor/.claude-plugin/plugin.json +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/resources/skills-vendor/.github/ISSUE_TEMPLATE/skill-rca.md +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/resources/skills-vendor/.github/pull_request_template.md +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/resources/skills-vendor/AGENTS.md +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/resources/skills-vendor/CLAUDE.md +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/resources/skills-vendor/CONTRIBUTING.md +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/resources/skills-vendor/LICENSE +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/resources/skills-vendor/README.md +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/SKILL.md +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/evals/evals.json +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/appdaemon.md +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/automation-patterns.md +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/blueprint-guide.md +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/dashboard-cards.md +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/dashboard-guide.md +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/device-control.md +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/domain-docs.md +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/examples.yaml +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/helper-selection.md +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/safe-refactoring.md +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/scenes.md +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/template-guidelines.md +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/yaml-only-integrations.md +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/server.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/settings_ui/settings.css +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/settings_ui/settings.html +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/smoke_test.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/stdio_settings_sidecar.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/strict_bps.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/tools/__init__.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/tools/auto_backup.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/tools/backup.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/tools/best_practice_checker.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/tools/component_api.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/tools/config_entry_flow.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/tools/device_control.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/tools/enhanced.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/tools/helpers.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/tools/radio/__init__.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/tools/radio/base.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/tools/radio/matter.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/tools/radio/thread.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/tools/radio/zigbee.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/tools/radio/zwave.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/tools/reference_validator.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/tools/registry.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/tools/smart_search/__init__.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/tools/smart_search/_base.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/tools/smart_search/_config.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/tools/smart_search/_deep.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/tools/smart_search/_entities.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/tools/smart_search/_fetch.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/tools/smart_search/_overview.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/tools/smart_search/_scenes.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/tools/smart_search/_scoring.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/tools/tool_search_hint_middleware.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/tools/tools_addons.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/tools/tools_areas.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/tools/tools_blueprints.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/tools/tools_bug_report.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/tools/tools_calendar.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/tools/tools_camera.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/tools/tools_categories.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/tools/tools_code.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/tools/tools_config_automations.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/tools/tools_config_dashboards.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/tools/tools_config_helpers.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/tools/tools_config_scenes.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/tools/tools_config_scripts.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/tools/tools_dashboard_screenshot.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/tools/tools_dev.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/tools/tools_energy.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/tools/tools_entities.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/tools/tools_filesystem.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/tools/tools_groups.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/tools/tools_hacs.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/tools/tools_history.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/tools/tools_integrations.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/tools/tools_labels.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/tools/tools_mcp_component.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/tools/tools_radio.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/tools/tools_registry.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/tools/tools_resources.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/tools/tools_search.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/tools/tools_service.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/tools/tools_services.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/tools/tools_system.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/tools/tools_themes.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/tools/tools_todo.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/tools/tools_traces.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/tools/tools_updates.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/tools/tools_utility.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/tools/tools_voice_assistant.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/tools/tools_yaml_config.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/tools/tools_zones.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/tools/util_helpers.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/tools/validation_middleware.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/transforms/__init__.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/transforms/categorized_search.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/transforms/lite_docstrings.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/transport_security.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/update_check.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/utils/__init__.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/utils/config_hash.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/utils/data_paths.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/utils/domain_handlers.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/utils/fuzzy_search.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/utils/kill_signal_diagnostics.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/utils/operation_manager.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/utils/python_sandbox.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/utils/skill_loader.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/utils/usage_logger.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/visibility/__init__.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/visibility/model.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/visibility/persistence.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/visibility/resolver.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp_dev.egg-info/SOURCES.txt +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp_dev.egg-info/dependency_links.txt +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp_dev.egg-info/entry_points.txt +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp_dev.egg-info/top_level.txt +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/tests/__init__.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/tests/test_constants.py +0 -0
- {ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/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.12.3.
|
|
3
|
+
Version: 7.12.3.dev1912
|
|
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
|
|
@@ -19,7 +19,7 @@ Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
|
19
19
|
Requires-Python: <3.15,>=3.13
|
|
20
20
|
Description-Content-Type: text/markdown
|
|
21
21
|
License-File: LICENSE
|
|
22
|
-
Requires-Dist: fastmcp==3.4.
|
|
22
|
+
Requires-Dist: fastmcp==3.4.4
|
|
23
23
|
Requires-Dist: httpx[socks]==0.28.1
|
|
24
24
|
Requires-Dist: pydantic==2.13.4
|
|
25
25
|
Requires-Dist: python-dotenv==1.2.2
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "ha-mcp-dev"
|
|
7
|
-
version = "7.12.3.
|
|
7
|
+
version = "7.12.3.dev1912"
|
|
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
|
|
@@ -28,7 +28,7 @@ classifiers = [
|
|
|
28
28
|
]
|
|
29
29
|
|
|
30
30
|
dependencies = [
|
|
31
|
-
"fastmcp==3.4.
|
|
31
|
+
"fastmcp==3.4.4",
|
|
32
32
|
"httpx[socks]==0.28.1",
|
|
33
33
|
"pydantic==2.13.4",
|
|
34
34
|
"python-dotenv==1.2.2",
|
|
@@ -1446,6 +1446,12 @@ def build_settings_handlers(
|
|
|
1446
1446
|
"read_only_exempt": sorted(READ_ONLY_EXEMPT_TOOLS),
|
|
1447
1447
|
"llm_api": llm_effective,
|
|
1448
1448
|
"llm_api_overrides": llm_overrides,
|
|
1449
|
+
# LLM API exposure is registered by the ha_mcp_tools custom
|
|
1450
|
+
# component (in-process/embedded server). On the add-on,
|
|
1451
|
+
# Docker, or standalone server nothing consumes it, so the UI
|
|
1452
|
+
# hides the per-tool "LLM API" toggle rather than showing a
|
|
1453
|
+
# no-op control.
|
|
1454
|
+
"llm_api_available": is_embedded(),
|
|
1449
1455
|
}
|
|
1450
1456
|
)
|
|
1451
1457
|
|
|
@@ -33,6 +33,12 @@ let toolEnvPinned = {};
|
|
|
33
33
|
// never flipped keep tracking their defaults across releases.
|
|
34
34
|
let toolLlm = {};
|
|
35
35
|
let toolLlmOverrides = {};
|
|
36
|
+
// True only on the in-process custom-component (embedded) server, which
|
|
37
|
+
// registers the LLM API exposure surface. On the add-on / Docker / standalone
|
|
38
|
+
// server nothing consumes it, so the per-tool "LLM API" toggle is hidden
|
|
39
|
+
// rather than shown as a no-op. Set from data.llm_api_available (see
|
|
40
|
+
// settings_ui/__init__.py).
|
|
41
|
+
let llmApiAvailable = false;
|
|
36
42
|
let saveTimer = null;
|
|
37
43
|
let openGroups = new Set();
|
|
38
44
|
|
|
@@ -169,6 +175,7 @@ async function loadTools() {
|
|
|
169
175
|
toolEnvPinned = data.env_pinned || {};
|
|
170
176
|
toolLlm = data.llm_api || {};
|
|
171
177
|
toolLlmOverrides = data.llm_api_overrides || {};
|
|
178
|
+
llmApiAvailable = !!data.llm_api_available;
|
|
172
179
|
READ_ONLY_EXEMPT = new Set(data.read_only_exempt || []);
|
|
173
180
|
// Load policy state before the first render so the "security gated"
|
|
174
181
|
// toggle reflects current policy.rules. loadPolicyState() never throws
|
|
@@ -598,6 +605,19 @@ function render() {
|
|
|
598
605
|
return MANDATORY.includes(t.name) || (!t.disabled_by && s !== 'disabled');
|
|
599
606
|
}).length;
|
|
600
607
|
|
|
608
|
+
// Master-switch checked state. Normally it mirrors "any toggleable tool
|
|
609
|
+
// enabled" — it is a bulk control over the tools the user can actually
|
|
610
|
+
// flip. But when a group has NO toggleable tools (all mandatory /
|
|
611
|
+
// env-pinned / feature-gated), the switch is disabled and purely reflects
|
|
612
|
+
// status: show it ON only when the group is FULLY enabled (every tool on),
|
|
613
|
+
// matching the "N/N enabled" count. anyEnabled can't be reused here — it is
|
|
614
|
+
// always false over an empty toggleable set. So an all-mandatory group
|
|
615
|
+
// (e.g. Search & Discovery) reads as ON, while a partially-enabled locked
|
|
616
|
+
// group (e.g. a mandatory tool beside an env-pinned-off one) reads as OFF
|
|
617
|
+
// rather than contradicting its own "1/N enabled" count.
|
|
618
|
+
const masterChecked =
|
|
619
|
+
toggleable.length === 0 ? groupEnabled === tools.length : anyEnabled;
|
|
620
|
+
|
|
601
621
|
const header = document.createElement('div');
|
|
602
622
|
header.className = 'group-header';
|
|
603
623
|
header.innerHTML = `<div class="group-header-left">` +
|
|
@@ -606,7 +626,7 @@ function render() {
|
|
|
606
626
|
`<span class="group-count">${groupEnabled}/${tools.length} enabled</span>` +
|
|
607
627
|
`</div>` +
|
|
608
628
|
`<label class="switch group-master" title="Enable/disable all tools in this group">` +
|
|
609
|
-
`<input type="checkbox" name="tool-group:${escapeHtml(tag)}" ${
|
|
629
|
+
`<input type="checkbox" name="tool-group:${escapeHtml(tag)}" ${masterChecked ? 'checked' : ''} ${toggleable.length === 0 ? 'disabled' : ''}>` +
|
|
610
630
|
`<span class="slider"></span>` +
|
|
611
631
|
`</label>`;
|
|
612
632
|
|
|
@@ -717,6 +737,19 @@ function render() {
|
|
|
717
737
|
: (roExemptActive
|
|
718
738
|
? '<div class="feature-locked-note">Read Only Mode: write operations of this tool are blocked; read operations stay available.</div>'
|
|
719
739
|
: '');
|
|
740
|
+
// LLM API exposure column — rendered only on the embedded custom-component
|
|
741
|
+
// server (see llmApiAvailable); dropped elsewhere rather than shown as a
|
|
742
|
+
// no-op. Built here as a fragment, matching the *Note consts above.
|
|
743
|
+
const llmToggleHtml = llmApiAvailable
|
|
744
|
+
? `<div class="toggle-group ${isEnabled ? '' : 'disabled-toggle'}" ` +
|
|
745
|
+
`title="Offer this tool to Home Assistant conversation agents through the LLM API. Applies on the agent's next message - no restart. A tool disabled above is unavailable to agents regardless.">` +
|
|
746
|
+
`<label class="switch"><input type="checkbox" name="tool:${escapeHtml(t.name)}:llm" data-tool="${escapeHtml(t.name)}" data-field="llm" ` +
|
|
747
|
+
`aria-label="${escapeHtml(title)} exposed to the conversation-agent LLM API" ` +
|
|
748
|
+
`${(toolLlm[t.name] !== false) ? 'checked' : ''} ${isEnabled ? '' : 'disabled'}>` +
|
|
749
|
+
`<span class="slider"></span></label>` +
|
|
750
|
+
`<span>LLM API</span>` +
|
|
751
|
+
`</div>`
|
|
752
|
+
: '';
|
|
720
753
|
|
|
721
754
|
div.innerHTML = `<div class="tool-info">` +
|
|
722
755
|
`<div class="tool-name">${escapeHtml(title)}${badges}</div>` +
|
|
@@ -750,14 +783,7 @@ function render() {
|
|
|
750
783
|
`<span class="slider"></span></label>` +
|
|
751
784
|
`<span>security gated</span>` +
|
|
752
785
|
`</div>` +
|
|
753
|
-
|
|
754
|
-
`title="Offer this tool to Home Assistant conversation agents through the LLM API. Applies on the agent's next message - no restart. A tool disabled above is unavailable to agents regardless.">` +
|
|
755
|
-
`<label class="switch"><input type="checkbox" name="tool:${escapeHtml(t.name)}:llm" data-tool="${escapeHtml(t.name)}" data-field="llm" ` +
|
|
756
|
-
`aria-label="${escapeHtml(title)} exposed to the conversation-agent LLM API" ` +
|
|
757
|
-
`${(toolLlm[t.name] !== false) ? 'checked' : ''} ${isEnabled ? '' : 'disabled'}>` +
|
|
758
|
-
`<span class="slider"></span></label>` +
|
|
759
|
-
`<span>LLM API</span>` +
|
|
760
|
-
`</div>` +
|
|
786
|
+
llmToggleHtml +
|
|
761
787
|
`</div>`;
|
|
762
788
|
|
|
763
789
|
const inputs = div.querySelectorAll('input[type="checkbox"]');
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: ha-mcp-dev
|
|
3
|
-
Version: 7.12.3.
|
|
3
|
+
Version: 7.12.3.dev1912
|
|
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
|
|
@@ -19,7 +19,7 @@ Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
|
19
19
|
Requires-Python: <3.15,>=3.13
|
|
20
20
|
Description-Content-Type: text/markdown
|
|
21
21
|
License-File: LICENSE
|
|
22
|
-
Requires-Dist: fastmcp==3.4.
|
|
22
|
+
Requires-Dist: fastmcp==3.4.4
|
|
23
23
|
Requires-Dist: httpx[socks]==0.28.1
|
|
24
24
|
Requires-Dist: pydantic==2.13.4
|
|
25
25
|
Requires-Dist: python-dotenv==1.2.2
|
|
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.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/client/supervisor_client.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/client/websocket_client.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/client/websocket_listener.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/dashboard_screenshot/__init__.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/dashboard_screenshot/capture.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/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
|
{ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/resources/skills-vendor/AGENTS.md
RENAMED
|
File without changes
|
{ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/resources/skills-vendor/CLAUDE.md
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/resources/skills-vendor/LICENSE
RENAMED
|
File without changes
|
{ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/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.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/settings_ui/settings.html
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/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.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/tools/best_practice_checker.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/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.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/tools/reference_validator.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/tools/smart_search/__init__.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/tools/smart_search/_base.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/tools/smart_search/_config.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/tools/smart_search/_deep.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/tools/smart_search/_entities.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/tools/smart_search/_fetch.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/tools/smart_search/_overview.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/tools/smart_search/_scenes.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/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.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/tools/tools_blueprints.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/tools/tools_bug_report.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/tools/tools_categories.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/tools/tools_config_automations.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/tools/tools_config_dashboards.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/tools/tools_config_helpers.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/tools/tools_config_scenes.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/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.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/tools/tools_filesystem.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/tools/tools_integrations.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/tools/tools_mcp_component.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
|
{ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/tools/tools_voice_assistant.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/tools/tools_yaml_config.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/tools/validation_middleware.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/transforms/categorized_search.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/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
|
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/utils/kill_signal_diagnostics.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/utils/operation_manager.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp/visibility/persistence.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp_dev.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
{ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp_dev.egg-info/entry_points.txt
RENAMED
|
File without changes
|
{ha_mcp_dev-7.12.3.dev1909 → ha_mcp_dev-7.12.3.dev1912}/src/ha_mcp_dev.egg-info/top_level.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|