ha-mcp-dev 7.14.2.dev2167__tar.gz → 7.14.2.dev2169__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.dev2167/src/ha_mcp_dev.egg-info → ha_mcp_dev-7.14.2.dev2169}/PKG-INFO +5 -5
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/README.md +4 -4
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/pyproject.toml +1 -1
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/settings_ui/locales/de.json +1 -1
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/settings_ui/locales/en.json +1 -1
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/settings_ui/locales/es.json +1 -1
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/settings_ui/locales/fr.json +1 -1
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/settings_ui/locales/ru.json +1 -1
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/settings_ui/locales/zh-Hans.json +1 -1
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/settings_ui/settings.js +1 -1
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169/src/ha_mcp_dev.egg-info}/PKG-INFO +5 -5
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/LICENSE +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/MANIFEST.in +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/setup.cfg +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/__init__.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/__main__.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/_pypi_marker +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/_version.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/auth/__init__.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/auth/consent_form.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/auth/provider.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/backup_manager.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/browser_landing.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/client/__init__.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/client/rest_client.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/client/supervisor_client.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/client/websocket_client.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/client/websocket_listener.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/config.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/dashboard_screenshot/__init__.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/dashboard_screenshot/capture.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/dashboard_screenshot/content.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/dashboard_screenshot/paths.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/dashboard_screenshot/provision.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/dashboard_screenshot/theme_guard.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/errors.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/llm_exposure.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/policy/__init__.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/policy/approval_queue.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/policy/evaluator.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/policy/handlers.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/policy/middleware.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/policy/model.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/policy/persistence.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/policy/value_sources.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/py.typed +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/read_only.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/resources/skills-vendor/.claude/settings.json +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/resources/skills-vendor/.claude-plugin/marketplace.json +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/resources/skills-vendor/.claude-plugin/plugin.json +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/resources/skills-vendor/.github/ISSUE_TEMPLATE/skill-rca.md +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/resources/skills-vendor/.github/pull_request_template.md +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/resources/skills-vendor/AGENTS.md +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/resources/skills-vendor/CLAUDE.md +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/resources/skills-vendor/CONTRIBUTING.md +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/resources/skills-vendor/LICENSE +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/resources/skills-vendor/README.md +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/SKILL.md +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/evals/evals.json +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/appdaemon.md +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/automation-patterns.md +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/blueprint-guide.md +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/dashboard-cards.md +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/dashboard-guide.md +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/device-control.md +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/domain-docs.md +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/examples.yaml +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/helper-selection.md +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/safe-refactoring.md +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/scenes.md +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/template-guidelines.md +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/yaml-only-integrations.md +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/server.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/settings_ui/__init__.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/settings_ui/_handlers_advanced.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/settings_ui/_handlers_backups.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/settings_ui/_handlers_fs.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/settings_ui/_handlers_server.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/settings_ui/_handlers_theme.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/settings_ui/_handlers_tools.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/settings_ui/_i18n.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/settings_ui/_persistence.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/settings_ui/_supervisor.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/settings_ui/_theme.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/settings_ui/_tools_meta.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/settings_ui/locales/README.md +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/settings_ui/settings.css +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/settings_ui/settings.html +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/smoke_test.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/stdio_settings_sidecar.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/strict_bps.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/tools/__init__.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/tools/auto_backup.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/tools/backup.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/tools/best_practice_checker.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/tools/component_api.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/tools/component_config_reads.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/tools/component_devices.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/tools/component_registries.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/tools/component_registry_lookup.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/tools/config_entry_flow.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/tools/device_control.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/tools/helpers.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/tools/radio/__init__.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/tools/radio/base.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/tools/radio/matter.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/tools/radio/thread.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/tools/radio/zigbee.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/tools/radio/zwave.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/tools/reference_validator.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/tools/registry.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/tools/smart_search/__init__.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/tools/smart_search/_base.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/tools/smart_search/_config.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/tools/smart_search/_deep.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/tools/smart_search/_entities.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/tools/smart_search/_fetch.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/tools/smart_search/_overview.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/tools/smart_search/_scenes.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/tools/smart_search/_scoring.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/tools/tool_search_hint_middleware.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/tools/tools_addons.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/tools/tools_areas.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/tools/tools_blueprints.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/tools/tools_bug_report.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/tools/tools_calendar.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/tools/tools_camera.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/tools/tools_categories.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/tools/tools_code.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/tools/tools_config_automations.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/tools/tools_config_dashboards.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/tools/tools_config_helpers.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/tools/tools_config_scenes.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/tools/tools_config_scripts.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/tools/tools_dashboard_screenshot.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/tools/tools_dev.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/tools/tools_energy.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/tools/tools_entities.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/tools/tools_filesystem.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/tools/tools_groups.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/tools/tools_hacs.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/tools/tools_history.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/tools/tools_integrations.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/tools/tools_labels.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/tools/tools_radio.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/tools/tools_registry.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/tools/tools_resources.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/tools/tools_search.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/tools/tools_service.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/tools/tools_services.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/tools/tools_system.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/tools/tools_themes.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/tools/tools_todo.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/tools/tools_traces.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/tools/tools_updates.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/tools/tools_utility.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/tools/tools_voice_assistant.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/tools/tools_yaml_config.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/tools/tools_yaml_read.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/tools/tools_zones.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/tools/util_helpers.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/tools/validation_middleware.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/transforms/__init__.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/transforms/categorized_search.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/transforms/lite_docstrings.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/transport_security.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/update_check.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/utils/__init__.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/utils/config_hash.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/utils/config_write_lock.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/utils/data_paths.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/utils/domain_handlers.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/utils/fuzzy_search.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/utils/kill_signal_diagnostics.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/utils/operation_manager.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/utils/python_sandbox.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/utils/skill_loader.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/utils/usage_logger.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/visibility/__init__.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/visibility/enforcement.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/visibility/model.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/visibility/persistence.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/visibility/resolver.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp_dev.egg-info/SOURCES.txt +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp_dev.egg-info/dependency_links.txt +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp_dev.egg-info/entry_points.txt +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp_dev.egg-info/requires.txt +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp_dev.egg-info/top_level.txt +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/tests/__init__.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/tests/test_constants.py +0 -0
- {ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/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.14.2.
|
|
3
|
+
Version: 7.14.2.dev2169
|
|
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
|
|
@@ -357,9 +357,9 @@ Skills can still be installed manually for clients that prefer local skill files
|
|
|
357
357
|
|
|
358
358
|
## 🔍 Tool Discovery for AI Agents
|
|
359
359
|
|
|
360
|
-
By default, the full tool catalog (~84 tools) is listed to the client through the standard MCP `tools/list` response. Clients with deferred / on-demand tool loading (Claude
|
|
360
|
+
By default, the full tool catalog (~84 tools) is listed to the client through the standard MCP `tools/list` response. Clients with deferred / on-demand tool loading (claude.ai, Claude Desktop, Claude Code) handle that fine — tools are pulled into context only when needed, so idle context cost is near-zero.
|
|
361
361
|
|
|
362
|
-
For
|
|
362
|
+
For setups *without* deferred tool support — models like Claude Haiku, Gemini, OpenAI-compatible local models and smaller open-weights models, or clients that inline all tool schemas regardless of model (e.g. GitHub Copilot CLI) — listing the full tool catalog up front adds a lot of idle context and can overwhelm smaller models. To address that, the server ships with a **search-based discovery mode** built on top of FastMCP's BM25 search transform.
|
|
363
363
|
|
|
364
364
|
### Smaller or local LLMs (Ollama, etc.)
|
|
365
365
|
|
|
@@ -389,11 +389,11 @@ The proxy split lets MCP clients apply different permission policies per categor
|
|
|
389
389
|
|
|
390
390
|
### When to enable
|
|
391
391
|
|
|
392
|
-
- **Claude Haiku, OpenAI-compatible local models, Gemini,
|
|
392
|
+
- **Claude Haiku, OpenAI-compatible local models, Gemini, or any model without native deferred tool support** — large idle-context savings. The same applies to clients that inline all tool schemas regardless of model (e.g. GitHub Copilot CLI, even when running Claude Sonnet/Opus).
|
|
393
393
|
- MCP clients that cap total tool count (some cap at 100) — surfaces a minimal set (~10 tools) instead of 84.
|
|
394
394
|
- **Cost-sensitive deployments** — fewer idle tokens per turn.
|
|
395
395
|
|
|
396
|
-
Leave it off
|
|
396
|
+
Leave it off in clients with deferred tool loading (claude.ai, Claude Desktop, Claude Code); the full catalog has no idle cost there, direct calls skip the search step, and the client's built-in tool search is the better choice — there is no benefit to running ha-mcp's on top of it. Whether tools are deferred depends on the client and model combination: the same model can behave differently per client — GitHub Copilot CLI running Claude Sonnet/Opus inlines the full catalog and still benefits from tool search here. Some Codex models and ChatGPT include deferred tools too — check your client/model directly to confirm its features so you don't leave this enabled unnecessarily.
|
|
397
397
|
|
|
398
398
|
> 🔄 **Refresh your client's tool list after changing this (or any) setting.** Toggling `ENABLE_TOOL_SEARCH` (or changing pinned/disabled tools, Read Only Mode, etc.) changes the tools the server exposes, but your AI client keeps serving its **cached** tool list until it re-fetches. Restarting the add-on or Home Assistant does **not** refresh the client — reconnect or refresh the MCP server in your client (e.g. re-add/refresh the connector in ChatGPT, or close and reopen Claude Desktop). If you skip this, newly enabled tools won't appear in the client at all, and tools the server no longer exposes still show as available but return `Unknown tool` when called. ChatGPT sometimes keeps serving the stale list even after the connector is removed and re-added under the same name — if tools are still missing after re-adding, delete the connector and create a new one with a **different name**.
|
|
399
399
|
|
|
@@ -324,9 +324,9 @@ Skills can still be installed manually for clients that prefer local skill files
|
|
|
324
324
|
|
|
325
325
|
## 🔍 Tool Discovery for AI Agents
|
|
326
326
|
|
|
327
|
-
By default, the full tool catalog (~84 tools) is listed to the client through the standard MCP `tools/list` response. Clients with deferred / on-demand tool loading (Claude
|
|
327
|
+
By default, the full tool catalog (~84 tools) is listed to the client through the standard MCP `tools/list` response. Clients with deferred / on-demand tool loading (claude.ai, Claude Desktop, Claude Code) handle that fine — tools are pulled into context only when needed, so idle context cost is near-zero.
|
|
328
328
|
|
|
329
|
-
For
|
|
329
|
+
For setups *without* deferred tool support — models like Claude Haiku, Gemini, OpenAI-compatible local models and smaller open-weights models, or clients that inline all tool schemas regardless of model (e.g. GitHub Copilot CLI) — listing the full tool catalog up front adds a lot of idle context and can overwhelm smaller models. To address that, the server ships with a **search-based discovery mode** built on top of FastMCP's BM25 search transform.
|
|
330
330
|
|
|
331
331
|
### Smaller or local LLMs (Ollama, etc.)
|
|
332
332
|
|
|
@@ -356,11 +356,11 @@ The proxy split lets MCP clients apply different permission policies per categor
|
|
|
356
356
|
|
|
357
357
|
### When to enable
|
|
358
358
|
|
|
359
|
-
- **Claude Haiku, OpenAI-compatible local models, Gemini,
|
|
359
|
+
- **Claude Haiku, OpenAI-compatible local models, Gemini, or any model without native deferred tool support** — large idle-context savings. The same applies to clients that inline all tool schemas regardless of model (e.g. GitHub Copilot CLI, even when running Claude Sonnet/Opus).
|
|
360
360
|
- MCP clients that cap total tool count (some cap at 100) — surfaces a minimal set (~10 tools) instead of 84.
|
|
361
361
|
- **Cost-sensitive deployments** — fewer idle tokens per turn.
|
|
362
362
|
|
|
363
|
-
Leave it off
|
|
363
|
+
Leave it off in clients with deferred tool loading (claude.ai, Claude Desktop, Claude Code); the full catalog has no idle cost there, direct calls skip the search step, and the client's built-in tool search is the better choice — there is no benefit to running ha-mcp's on top of it. Whether tools are deferred depends on the client and model combination: the same model can behave differently per client — GitHub Copilot CLI running Claude Sonnet/Opus inlines the full catalog and still benefits from tool search here. Some Codex models and ChatGPT include deferred tools too — check your client/model directly to confirm its features so you don't leave this enabled unnecessarily.
|
|
364
364
|
|
|
365
365
|
> 🔄 **Refresh your client's tool list after changing this (or any) setting.** Toggling `ENABLE_TOOL_SEARCH` (or changing pinned/disabled tools, Read Only Mode, etc.) changes the tools the server exposes, but your AI client keeps serving its **cached** tool list until it re-fetches. Restarting the add-on or Home Assistant does **not** refresh the client — reconnect or refresh the MCP server in your client (e.g. re-add/refresh the connector in ChatGPT, or close and reopen Claude Desktop). If you skip this, newly enabled tools won't appear in the client at all, and tools the server no longer exposes still show as available but return `Unknown tool` when called. ChatGPT sometimes keeps serving the stale list even after the connector is removed and re-added under the same name — if tools are still missing after re-adding, delete the connector and create a new one with a **different name**.
|
|
366
366
|
|
|
@@ -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.dev2169"
|
|
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
|
{ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/settings_ui/locales/de.json
RENAMED
|
@@ -110,7 +110,7 @@
|
|
|
110
110
|
"visibility.assist.help": "Verstecke Entitäten, die nicht für den Assist-Sprachassistenten (Konversation) von Home Assistant freigegeben sind – entsprechend der Liste Einstellungen > Sprachassistenten > Freigeben. Fügt zwei WebSocket-Lesevorgänge pro Suche hinzu, während es aktiviert ist.",
|
|
111
111
|
"visibility.assist.only_exposed": "Nur für Assist freigegebene Entitäten anzeigen",
|
|
112
112
|
"features.enable_tool_search.label": "Tool-Suche aktivieren",
|
|
113
|
-
"features.enable_tool_search.help": "Ersetzt den vollständigen Tool-Katalog durch suchbasierte Entdeckung. Reduziert den Leerlauf-Kontext
|
|
113
|
+
"features.enable_tool_search.help": "Ersetzt den vollständigen Tool-Katalog durch suchbasierte Entdeckung. Reduziert den Leerlauf-Kontext um rund 90 % auf etwa 5K Tokens. ⚠️ Aktiviere dies NICHT in Clients mit eigener integrierter Tool-Suche / aufgeschobenen Tools (claude.ai, Claude Desktop, Claude Code) – die beiden Suchebenen kollidieren, und die integrierte Tool-Suche des Clients ist dort die bessere Wahl; lasse dies ausgeschaltet. Ob Tools aufgeschoben werden, hängt von der Kombination aus Client und Modell ab: Verwende dies, wenn dein Setup den vollständigen Katalog von Anfang an lädt – Modelle ohne native aufgeschobene Tools (z. B. Gemini, lokale OpenAI-kompatible Modelle, Claude Haiku), Clients, die alle Tool-Schemata unabhängig vom Modell direkt einbetten (z. B. GitHub Copilot CLI), oder kleinere Kontextfenster. Auch einige Codex-Modelle und ChatGPT haben aufgeschobene Tools – prüfe direkt bei deinem Client/Modell, welche Features er hat, damit du dies nicht unnötig aktiviert lässt. Tools werden über ha_search_tools gefunden und über kategorisierte Proxys (read/write/delete) ausgeführt. Erfordert Neustart, um wirksam zu werden.",
|
|
114
114
|
"features.tool_search_max_results.label": "Max. Tool-Suchergebnisse",
|
|
115
115
|
"features.tool_search_max_results.help": "Maximale Anzahl von Tools, die von ha_search_tools zurückgegeben werden, wenn die Tool-Suche aktiviert ist. Niedrigere Werte (2-3) sparen Kontext-Tokens, können aber relevante Tools übersehen. Bereich: 2-10. Erfordert Neustart.",
|
|
116
116
|
"features.enable_tool_security_policies.label": "Tool-Sicherheitsrichtlinien aktivieren (erweitert)",
|
{ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/settings_ui/locales/en.json
RENAMED
|
@@ -110,7 +110,7 @@
|
|
|
110
110
|
"visibility.assist.help": "Hide entities not exposed to Home Assistant's Assist (“conversation”) voice assistant, mirroring the Settings > Voice assistants > Expose list. Adds two websocket reads per search while enabled.",
|
|
111
111
|
"visibility.assist.only_exposed": "Only show entities exposed to Assist",
|
|
112
112
|
"features.enable_tool_search.label": "Enable tool search",
|
|
113
|
-
"features.enable_tool_search.help": "Replace the full tool catalog with search-based discovery. Reduces idle context
|
|
113
|
+
"features.enable_tool_search.help": "Replace the full tool catalog with search-based discovery. Reduces idle context by roughly 90%, to about 5K tokens. ⚠️ Do NOT enable this in clients with their own built-in tool search / deferred tools (claude.ai, Claude Desktop, Claude Code) — the two search layers conflict, and the client's built-in tool search is the better choice there; leave this off. Whether tools are deferred depends on your client and model combination: use this when your setup loads the full catalog up front — models without native deferred tools (e.g. Gemini, OpenAI-compatible local models, Claude Haiku), clients that inline all tool schemas regardless of model (e.g. GitHub Copilot CLI), or smaller context windows. Some Codex models and ChatGPT include deferred tools too — check your client/model directly to confirm its features so you don't leave this enabled unnecessarily. Tools are found via ha_search_tools and executed via categorized proxies (read/write/delete). Requires restart to take effect.",
|
|
114
114
|
"features.tool_search_max_results.label": "Tool search max results",
|
|
115
115
|
"features.tool_search_max_results.help": "Maximum number of tools returned by ha_search_tools when tool search is enabled. Lower values (2-3) save context tokens but may miss relevant tools. Range: 2-10. Requires restart.",
|
|
116
116
|
"features.enable_tool_security_policies.label": "Enable Tool Security Policies (advanced)",
|
{ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/settings_ui/locales/es.json
RENAMED
|
@@ -110,7 +110,7 @@
|
|
|
110
110
|
"visibility.assist.help": "Oculta las entidades no expuestas al asistente de voz Assist («conversation») de Home Assistant, replicando la lista de Ajustes > Asistentes de voz > Exponer. Añade dos lecturas por websocket en cada búsqueda mientras está activado.",
|
|
111
111
|
"visibility.assist.only_exposed": "Mostrar solo las entidades expuestas a Assist",
|
|
112
112
|
"features.enable_tool_search.label": "Activar la búsqueda de herramientas",
|
|
113
|
-
"features.enable_tool_search.help": "Sustituye el catálogo completo de herramientas por un descubrimiento basado en búsqueda. Reduce el contexto en reposo
|
|
113
|
+
"features.enable_tool_search.help": "Sustituye el catálogo completo de herramientas por un descubrimiento basado en búsqueda. Reduce el contexto en reposo en torno a un 90 %, hasta unos 5K tokens. ⚠️ NO actives esto en clientes con su propia búsqueda de herramientas / herramientas diferidas integrada (claude.ai, Claude Desktop, Claude Code): las dos capas de búsqueda entran en conflicto y la búsqueda integrada del cliente es allí la mejor opción; deja esto desactivado. Que las herramientas se difieran depende de la combinación de cliente y modelo: usa esto cuando tu configuración carga el catálogo completo de entrada — modelos sin herramientas diferidas nativas (p. ej. Gemini, modelos locales compatibles con OpenAI, Claude Haiku), clientes que insertan todos los esquemas de herramientas sea cual sea el modelo (p. ej. GitHub Copilot CLI) o ventanas de contexto más pequeñas. Algunos modelos Codex y ChatGPT también incluyen herramientas diferidas: comprueba directamente con tu cliente/modelo qué características tiene para no dejar esto activado innecesariamente. Las herramientas se localizan mediante ha_search_tools y se ejecutan a través de proxies por categoría (lectura/escritura/borrado). Requiere reiniciar para que surta efecto.",
|
|
114
114
|
"features.tool_search_max_results.label": "Máximo de resultados de la búsqueda de herramientas",
|
|
115
115
|
"features.tool_search_max_results.help": "Número máximo de herramientas que devuelve ha_search_tools cuando la búsqueda de herramientas está activada. Los valores bajos (2-3) ahorran tokens de contexto pero pueden dejar fuera herramientas relevantes. Rango: 2-10. Requiere reiniciar.",
|
|
116
116
|
"features.enable_tool_security_policies.label": "Activar las políticas de seguridad de herramientas (avanzado)",
|
{ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/settings_ui/locales/fr.json
RENAMED
|
@@ -110,7 +110,7 @@
|
|
|
110
110
|
"visibility.assist.help": "Masque les entités non exposées à l'assistant vocal Assist (« conversation ») de Home Assistant, en miroir de la liste Paramètres > Assistants vocaux > Exposer. Ajoute deux lectures websocket par recherche lorsqu'il est activé.",
|
|
111
111
|
"visibility.assist.only_exposed": "Afficher uniquement les entités exposées à Assist",
|
|
112
112
|
"features.enable_tool_search.label": "Activer la recherche d'outils",
|
|
113
|
-
"features.enable_tool_search.help": "Remplace le catalogue complet d'outils par une découverte basée sur la recherche. Réduit le contexte inactif d'environ
|
|
113
|
+
"features.enable_tool_search.help": "Remplace le catalogue complet d'outils par une découverte basée sur la recherche. Réduit le contexte inactif d'environ 90 %, à près de 5K tokens. ⚠️ N'active PAS ceci dans les clients qui ont leur propre recherche d'outils intégrée / outils différés (claude.ai, Claude Desktop, Claude Code) — les deux couches de recherche entrent en conflit, et la recherche d'outils intégrée du client y est le meilleur choix ; laisse ceci désactivé. Le report des outils dépend de la combinaison client/modèle : utilise ceci lorsque ta configuration charge le catalogue complet d'emblée — modèles sans outils différés natifs (p. ex. Gemini, modèles locaux compatibles OpenAI, Claude Haiku), clients qui intègrent tous les schémas d'outils quel que soit le modèle (p. ex. GitHub Copilot CLI), ou fenêtres de contexte plus petites. Certains modèles Codex et ChatGPT incluent aussi des outils différés — vérifie directement auprès de ton client/modèle quelles fonctionnalités il possède pour ne pas laisser ceci activé inutilement. Les outils sont trouvés via ha_search_tools et exécutés via des proxys catégorisés (lecture/écriture/suppression). Nécessite un redémarrage pour prendre effet.",
|
|
114
114
|
"features.tool_search_max_results.label": "Résultats max. de la recherche d'outils",
|
|
115
115
|
"features.tool_search_max_results.help": "Nombre maximum d'outils renvoyés par ha_search_tools lorsque la recherche d'outils est activée. Des valeurs plus basses (2-3) économisent des tokens de contexte mais peuvent manquer des outils pertinents. Plage : 2-10. Nécessite un redémarrage.",
|
|
116
116
|
"features.enable_tool_security_policies.label": "Activer les politiques de sécurité des outils (avancé)",
|
{ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/settings_ui/locales/ru.json
RENAMED
|
@@ -110,7 +110,7 @@
|
|
|
110
110
|
"visibility.assist.help": "Скрывает сущности, не предоставленные голосовому помощнику Assist («conversation»), в соответствии со списком «Настройки → Голосовые помощники → Предоставить доступ». При каждом поиске выполняются два дополнительных WebSocket-запроса.",
|
|
111
111
|
"visibility.assist.only_exposed": "Показывать только сущности, доступные Assist",
|
|
112
112
|
"features.enable_tool_search.label": "Включить поиск инструментов",
|
|
113
|
-
"features.enable_tool_search.help": "Заменяет полный каталог инструментов поиском по запросу. Уменьшает неиспользуемый контекст примерно
|
|
113
|
+
"features.enable_tool_search.help": "Заменяет полный каталог инструментов поиском по запросу. Уменьшает неиспользуемый контекст примерно на 90 % — до порядка 5 тыс. токенов. ⚠️ НЕ включайте этот параметр в клиентах с собственным встроенным поиском инструментов и отложенными инструментами (claude.ai, Claude Desktop, Claude Code): два слоя поиска конфликтуют, а встроенный поиск инструментов клиента там — лучший выбор; оставьте этот параметр выключенным. Будут ли инструменты отложенными, зависит от сочетания клиента и модели: используйте этот параметр, когда ваша конфигурация загружает полный каталог сразу — модели без собственных отложенных инструментов (например, Gemini, локальные OpenAI-совместимые модели, Claude Haiku), клиенты, которые встраивают все схемы инструментов независимо от модели (например, GitHub Copilot CLI), или небольшие контекстные окна. Некоторые модели Codex и ChatGPT тоже включают отложенные инструменты — уточните непосредственно у своего клиента/модели, какие функции он поддерживает, чтобы не оставлять этот параметр включённым без необходимости. Инструменты находятся через ha_search_tools и выполняются через распределённые по категориям прокси (чтение, запись, удаление). Для применения требуется перезапуск.",
|
|
114
114
|
"features.tool_search_max_results.label": "Максимальное количество результатов поиска инструментов",
|
|
115
115
|
"features.tool_search_max_results.help": "Максимальное количество инструментов, возвращаемых ha_search_tools при включённом поиске инструментов. Меньшие значения (2–3) экономят токены контекста, но могут пропустить подходящие инструменты. Диапазон: 2–10. Требуется перезапуск.",
|
|
116
116
|
"features.enable_tool_security_policies.label": "Включить политики безопасности инструментов (расширенная настройка)",
|
{ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/settings_ui/locales/zh-Hans.json
RENAMED
|
@@ -110,7 +110,7 @@
|
|
|
110
110
|
"visibility.assist.help": "隐藏未暴露给 Home Assistant 的 Assist(“对话”)语音助手的实体,对应设置 > 语音助手 > 暴露列表。启用时每次搜索额外增加两次 websocket 读取。",
|
|
111
111
|
"visibility.assist.only_exposed": "仅显示暴露给 Assist 的实体",
|
|
112
112
|
"features.enable_tool_search.label": "启用工具搜索",
|
|
113
|
-
"features.enable_tool_search.help": "
|
|
113
|
+
"features.enable_tool_search.help": "用基于搜索的发现取代完整工具目录。将空闲上下文减少约 90%,降至约 5K token。⚠️ 如果客户端自带内置工具搜索/延迟工具(claude.ai、Claude Desktop、Claude Code),请勿启用此功能——两层搜索会相互冲突,且在这些客户端中其内置工具搜索是更好的选择;请保持关闭。工具是否延迟取决于客户端与模型的组合:当你的配置会一次性加载完整目录时才使用此功能——例如没有原生延迟工具的模型(如 Gemini、本地 OpenAI 兼容模型、Claude Haiku)、无论模型如何都会内联全部工具架构的客户端(如 GitHub Copilot CLI),或上下文窗口较小时。部分 Codex 模型和 ChatGPT 也带有延迟工具——请直接向你的客户端/模型确认其具备哪些功能,以免不必要地保持启用此功能。工具通过 ha_search_tools 发现,并通过分类代理(读/写/删)执行。需要重启才能生效。",
|
|
114
114
|
"features.tool_search_max_results.label": "工具搜索最大结果数",
|
|
115
115
|
"features.tool_search_max_results.help": "启用工具搜索时 ha_search_tools 返回的最大工具数。较小的值(2–3)可节省上下文 token,但可能遗漏相关工具。范围:2–10。需要重启。",
|
|
116
116
|
"features.enable_tool_security_policies.label": "启用工具安全策略(高级)",
|
|
@@ -1845,7 +1845,7 @@ document.getElementById('stopSidecarBtn').addEventListener('click', stopSidecar)
|
|
|
1845
1845
|
const FEATURE_META = {
|
|
1846
1846
|
enable_tool_search: {
|
|
1847
1847
|
label: "Enable tool search",
|
|
1848
|
-
help: "Replace the full tool catalog with search-based discovery. Reduces idle context
|
|
1848
|
+
help: "Replace the full tool catalog with search-based discovery. Reduces idle context by roughly 90%, to about 5K tokens. ⚠️ Do NOT enable this in clients with their own built-in tool search / deferred tools (claude.ai, Claude Desktop, Claude Code) — the two search layers conflict, and the client's built-in tool search is the better choice there; leave this off. Whether tools are deferred depends on your client and model combination: use this when your setup loads the full catalog up front — models without native deferred tools (e.g. Gemini, OpenAI-compatible local models, Claude Haiku), clients that inline all tool schemas regardless of model (e.g. GitHub Copilot CLI), or smaller context windows. Some Codex models and ChatGPT include deferred tools too — check your client/model directly to confirm its features so you don't leave this enabled unnecessarily. Tools are found via ha_search_tools and executed via categorized proxies (read/write/delete). Requires restart to take effect.",
|
|
1849
1849
|
},
|
|
1850
1850
|
tool_search_max_results: {
|
|
1851
1851
|
label: "Tool search max results",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: ha-mcp-dev
|
|
3
|
-
Version: 7.14.2.
|
|
3
|
+
Version: 7.14.2.dev2169
|
|
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
|
|
@@ -357,9 +357,9 @@ Skills can still be installed manually for clients that prefer local skill files
|
|
|
357
357
|
|
|
358
358
|
## 🔍 Tool Discovery for AI Agents
|
|
359
359
|
|
|
360
|
-
By default, the full tool catalog (~84 tools) is listed to the client through the standard MCP `tools/list` response. Clients with deferred / on-demand tool loading (Claude
|
|
360
|
+
By default, the full tool catalog (~84 tools) is listed to the client through the standard MCP `tools/list` response. Clients with deferred / on-demand tool loading (claude.ai, Claude Desktop, Claude Code) handle that fine — tools are pulled into context only when needed, so idle context cost is near-zero.
|
|
361
361
|
|
|
362
|
-
For
|
|
362
|
+
For setups *without* deferred tool support — models like Claude Haiku, Gemini, OpenAI-compatible local models and smaller open-weights models, or clients that inline all tool schemas regardless of model (e.g. GitHub Copilot CLI) — listing the full tool catalog up front adds a lot of idle context and can overwhelm smaller models. To address that, the server ships with a **search-based discovery mode** built on top of FastMCP's BM25 search transform.
|
|
363
363
|
|
|
364
364
|
### Smaller or local LLMs (Ollama, etc.)
|
|
365
365
|
|
|
@@ -389,11 +389,11 @@ The proxy split lets MCP clients apply different permission policies per categor
|
|
|
389
389
|
|
|
390
390
|
### When to enable
|
|
391
391
|
|
|
392
|
-
- **Claude Haiku, OpenAI-compatible local models, Gemini,
|
|
392
|
+
- **Claude Haiku, OpenAI-compatible local models, Gemini, or any model without native deferred tool support** — large idle-context savings. The same applies to clients that inline all tool schemas regardless of model (e.g. GitHub Copilot CLI, even when running Claude Sonnet/Opus).
|
|
393
393
|
- MCP clients that cap total tool count (some cap at 100) — surfaces a minimal set (~10 tools) instead of 84.
|
|
394
394
|
- **Cost-sensitive deployments** — fewer idle tokens per turn.
|
|
395
395
|
|
|
396
|
-
Leave it off
|
|
396
|
+
Leave it off in clients with deferred tool loading (claude.ai, Claude Desktop, Claude Code); the full catalog has no idle cost there, direct calls skip the search step, and the client's built-in tool search is the better choice — there is no benefit to running ha-mcp's on top of it. Whether tools are deferred depends on the client and model combination: the same model can behave differently per client — GitHub Copilot CLI running Claude Sonnet/Opus inlines the full catalog and still benefits from tool search here. Some Codex models and ChatGPT include deferred tools too — check your client/model directly to confirm its features so you don't leave this enabled unnecessarily.
|
|
397
397
|
|
|
398
398
|
> 🔄 **Refresh your client's tool list after changing this (or any) setting.** Toggling `ENABLE_TOOL_SEARCH` (or changing pinned/disabled tools, Read Only Mode, etc.) changes the tools the server exposes, but your AI client keeps serving its **cached** tool list until it re-fetches. Restarting the add-on or Home Assistant does **not** refresh the client — reconnect or refresh the MCP server in your client (e.g. re-add/refresh the connector in ChatGPT, or close and reopen Claude Desktop). If you skip this, newly enabled tools won't appear in the client at all, and tools the server no longer exposes still show as available but return `Unknown tool` when called. ChatGPT sometimes keeps serving the stale list even after the connector is removed and re-added under the same name — if tools are still missing after re-adding, delete the connector and create a new one with a **different name**.
|
|
399
399
|
|
|
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.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/client/supervisor_client.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/client/websocket_client.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/client/websocket_listener.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/dashboard_screenshot/__init__.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/dashboard_screenshot/capture.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/dashboard_screenshot/content.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/dashboard_screenshot/paths.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/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.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/resources/skills-vendor/AGENTS.md
RENAMED
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/resources/skills-vendor/CLAUDE.md
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/resources/skills-vendor/LICENSE
RENAMED
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/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.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/settings_ui/_handlers_advanced.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/settings_ui/_handlers_backups.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/settings_ui/_handlers_fs.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/settings_ui/_handlers_server.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/settings_ui/_handlers_theme.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/settings_ui/_handlers_tools.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/settings_ui/_persistence.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/settings_ui/_supervisor.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/settings_ui/_tools_meta.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/settings_ui/locales/README.md
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/settings_ui/settings.html
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/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.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/tools/best_practice_checker.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/tools/component_config_reads.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/tools/component_devices.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/tools/component_registries.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/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
|
{ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/tools/reference_validator.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/tools/smart_search/__init__.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/tools/smart_search/_base.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/tools/smart_search/_config.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/tools/smart_search/_deep.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/tools/smart_search/_entities.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/tools/smart_search/_fetch.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/tools/smart_search/_overview.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/tools/smart_search/_scenes.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/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.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/tools/tools_blueprints.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/tools/tools_bug_report.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/tools/tools_categories.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/tools/tools_config_automations.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/tools/tools_config_dashboards.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/tools/tools_config_helpers.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/tools/tools_config_scenes.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/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.dev2167 → ha_mcp_dev-7.14.2.dev2169}/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.dev2167 → ha_mcp_dev-7.14.2.dev2169}/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.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/tools/tools_voice_assistant.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/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.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/tools/validation_middleware.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/transforms/categorized_search.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/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.dev2167 → ha_mcp_dev-7.14.2.dev2169}/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.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/utils/kill_signal_diagnostics.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/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.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/visibility/enforcement.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp/visibility/persistence.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp_dev.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp_dev.egg-info/entry_points.txt
RENAMED
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp_dev.egg-info/requires.txt
RENAMED
|
File without changes
|
{ha_mcp_dev-7.14.2.dev2167 → ha_mcp_dev-7.14.2.dev2169}/src/ha_mcp_dev.egg-info/top_level.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|