ha-mcp-dev 9.0.0.dev3183__tar.gz → 9.0.0.dev3196__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (808) hide show
  1. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/PKG-INFO +1 -1
  2. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/pyproject.toml +1 -1
  3. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/pyproject.toml.orig +1 -1
  4. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/backup_diff.py +12 -9
  5. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/settings_ui/locales/az.json +3 -1
  6. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/settings_ui/locales/cs.json +3 -1
  7. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/settings_ui/locales/de.json +3 -1
  8. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/settings_ui/locales/eo.json +3 -1
  9. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/settings_ui/locales/es.json +3 -1
  10. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/settings_ui/locales/fr.json +3 -1
  11. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/settings_ui/locales/it.json +3 -1
  12. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/settings_ui/locales/ko.json +3 -1
  13. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/settings_ui/locales/nl.json +3 -1
  14. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/settings_ui/locales/pl.json +3 -1
  15. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/settings_ui/locales/ru.json +3 -1
  16. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/settings_ui/locales/sv.json +3 -1
  17. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/settings_ui/locales/zh-Hans.json +3 -1
  18. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/settings_ui/locales/zh-Hant.json +3 -1
  19. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/LICENSE +0 -0
  20. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/README.md +0 -0
  21. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/__init__.py +0 -0
  22. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/__main__.py +0 -0
  23. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_pypi_marker +0 -0
  24. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_rich_compat.py +0 -0
  25. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/__init__.py +0 -0
  26. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/LICENSE +0 -0
  27. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/MANIFEST.sha256 +0 -0
  28. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/REQUIRES.txt +0 -0
  29. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/VENDORED +0 -0
  30. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/__init__.py +0 -0
  31. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/_compat.py +0 -0
  32. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/_install_hints.py +0 -0
  33. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/_warnings.py +0 -0
  34. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/apps/__init__.py +0 -0
  35. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/apps/app.py +0 -0
  36. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/apps/approval.py +0 -0
  37. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/apps/choice.py +0 -0
  38. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/apps/config.py +0 -0
  39. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/apps/file_upload.py +0 -0
  40. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/apps/form.py +0 -0
  41. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/apps/generative.py +0 -0
  42. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/cli/__init__.py +0 -0
  43. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/cli/__main__.py +0 -0
  44. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/cli/apps_dev.py +0 -0
  45. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/cli/apps_dev_security.py +0 -0
  46. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/cli/auth.py +0 -0
  47. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/cli/cimd.py +0 -0
  48. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/cli/cli.py +0 -0
  49. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/cli/client.py +0 -0
  50. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/cli/deploy/__init__.py +0 -0
  51. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/cli/deploy/authentication.py +0 -0
  52. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/cli/deploy/command.py +0 -0
  53. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/cli/deploy/configuration.py +0 -0
  54. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/cli/deploy/credentials.py +0 -0
  55. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/cli/deploy/horizon_client.py +0 -0
  56. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/cli/deploy/output.py +0 -0
  57. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/cli/deploy/state.py +0 -0
  58. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/cli/discovery.py +0 -0
  59. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/cli/generate.py +0 -0
  60. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/cli/install/__init__.py +0 -0
  61. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/cli/install/claude_code.py +0 -0
  62. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/cli/install/claude_desktop.py +0 -0
  63. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/cli/install/cursor.py +0 -0
  64. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/cli/install/gemini_cli.py +0 -0
  65. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/cli/install/goose.py +0 -0
  66. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/cli/install/mcp_json.py +0 -0
  67. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/cli/install/shared.py +0 -0
  68. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/cli/install/stdio.py +0 -0
  69. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/cli/run.py +0 -0
  70. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/client/__init__.py +0 -0
  71. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/client/_sdk_context_shim.py +0 -0
  72. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/client/auth/__init__.py +0 -0
  73. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/client/auth/bearer.py +0 -0
  74. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/client/auth/client_credentials.py +0 -0
  75. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/client/auth/oauth.py +0 -0
  76. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/client/caching.py +0 -0
  77. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/client/client.py +0 -0
  78. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/client/dependencies.py +0 -0
  79. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/client/elicitation.py +0 -0
  80. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/client/extension_hooks.py +0 -0
  81. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/client/group.py +0 -0
  82. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/client/logging.py +0 -0
  83. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/client/messages.py +0 -0
  84. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/client/mixins/__init__.py +0 -0
  85. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/client/mixins/prompts.py +0 -0
  86. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/client/mixins/resources.py +0 -0
  87. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/client/mixins/skills.py +0 -0
  88. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/client/mixins/tools.py +0 -0
  89. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/client/oauth_callback.py +0 -0
  90. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/client/progress.py +0 -0
  91. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/client/roots.py +0 -0
  92. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/client/sampling/__init__.py +0 -0
  93. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/client/sampling/handlers/__init__.py +0 -0
  94. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/client/sampling/handlers/anthropic.py +0 -0
  95. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/client/sampling/handlers/google_genai.py +0 -0
  96. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/client/sampling/handlers/openai.py +0 -0
  97. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/client/telemetry.py +0 -0
  98. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/client/transports/__init__.py +0 -0
  99. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/client/transports/base.py +0 -0
  100. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/client/transports/config.py +0 -0
  101. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/client/transports/http.py +0 -0
  102. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/client/transports/inference.py +0 -0
  103. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/client/transports/memory.py +0 -0
  104. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/client/transports/sse.py +0 -0
  105. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/client/transports/stdio.py +0 -0
  106. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/contrib/README.md +0 -0
  107. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/contrib/bulk_tool_caller/README.md +0 -0
  108. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/contrib/bulk_tool_caller/__init__.py +0 -0
  109. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/contrib/bulk_tool_caller/bulk_tool_caller.py +0 -0
  110. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/contrib/bulk_tool_caller/example.py +0 -0
  111. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/contrib/component_manager/README.md +0 -0
  112. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/contrib/component_manager/__init__.py +0 -0
  113. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/contrib/component_manager/component_manager.py +0 -0
  114. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/contrib/component_manager/example.py +0 -0
  115. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/contrib/mcp_mixin/README.md +0 -0
  116. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/contrib/mcp_mixin/__init__.py +0 -0
  117. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/contrib/mcp_mixin/example.py +0 -0
  118. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/contrib/mcp_mixin/mcp_mixin.py +0 -0
  119. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/decorators.py +0 -0
  120. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/dependencies.py +0 -0
  121. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/exceptions.py +0 -0
  122. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/experimental/__init__.py +0 -0
  123. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/experimental/transforms/__init__.py +0 -0
  124. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/experimental/transforms/code_mode.py +0 -0
  125. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/experimental/transforms/jev_search.py +0 -0
  126. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/mcp_config.py +0 -0
  127. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/prompts/__init__.py +0 -0
  128. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/prompts/base.py +0 -0
  129. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/prompts/function_prompt.py +0 -0
  130. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/py.typed +0 -0
  131. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/resources/__init__.py +0 -0
  132. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/resources/base.py +0 -0
  133. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/resources/function_resource.py +0 -0
  134. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/resources/security.py +0 -0
  135. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/resources/template.py +0 -0
  136. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/resources/types.py +0 -0
  137. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/server/__init__.py +0 -0
  138. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/server/auth/__init__.py +0 -0
  139. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/server/auth/auth.py +0 -0
  140. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/server/auth/cimd.py +0 -0
  141. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/server/auth/handlers/__init__.py +0 -0
  142. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/server/auth/handlers/authorize.py +0 -0
  143. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/server/auth/identity_assertion.py +0 -0
  144. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/server/auth/jwt_issuer.py +0 -0
  145. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/server/auth/middleware.py +0 -0
  146. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/server/auth/oauth_proxy/__init__.py +0 -0
  147. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/server/auth/oauth_proxy/consent.py +0 -0
  148. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/server/auth/oauth_proxy/models.py +0 -0
  149. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/server/auth/oauth_proxy/proxy.py +0 -0
  150. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/server/auth/oauth_proxy/ui.py +0 -0
  151. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/server/auth/oauth_proxy/upstream.py +0 -0
  152. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/server/auth/oidc_proxy.py +0 -0
  153. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/__init__.py +0 -0
  154. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/auth0.py +0 -0
  155. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/aws.py +0 -0
  156. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/azure.py +0 -0
  157. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/clerk.py +0 -0
  158. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/debug.py +0 -0
  159. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/descope.py +0 -0
  160. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/discord.py +0 -0
  161. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/github.py +0 -0
  162. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/google.py +0 -0
  163. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/huggingface.py +0 -0
  164. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/in_memory.py +0 -0
  165. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/introspection.py +0 -0
  166. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/jwt.py +0 -0
  167. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/keycloak.py +0 -0
  168. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/oci.py +0 -0
  169. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/propelauth.py +0 -0
  170. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/scalekit.py +0 -0
  171. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/supabase.py +0 -0
  172. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/server/auth/providers/workos.py +0 -0
  173. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/server/auth/redirect_validation.py +0 -0
  174. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/server/auth/ssrf.py +0 -0
  175. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/server/caching.py +0 -0
  176. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/server/completions.py +0 -0
  177. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/server/context.py +0 -0
  178. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/server/dependencies.py +0 -0
  179. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/server/elicitation.py +0 -0
  180. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/server/event_store.py +0 -0
  181. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/server/extensions.py +0 -0
  182. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/server/http.py +0 -0
  183. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/server/lifespan.py +0 -0
  184. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/server/low_level.py +0 -0
  185. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/server/middleware/__init__.py +0 -0
  186. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/server/middleware/authorization.py +0 -0
  187. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/server/middleware/caching.py +0 -0
  188. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/server/middleware/dereference.py +0 -0
  189. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/server/middleware/error_handling.py +0 -0
  190. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/server/middleware/logging.py +0 -0
  191. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/server/middleware/middleware.py +0 -0
  192. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/server/middleware/ping.py +0 -0
  193. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/server/middleware/rate_limiting.py +0 -0
  194. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/server/middleware/response_limiting.py +0 -0
  195. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/server/middleware/timing.py +0 -0
  196. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/server/middleware/tool_injection.py +0 -0
  197. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/server/mixins/__init__.py +0 -0
  198. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/server/mixins/extensions.py +0 -0
  199. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/server/mixins/lifespan.py +0 -0
  200. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/server/mixins/mcp_operations.py +0 -0
  201. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/server/mixins/transport.py +0 -0
  202. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/server/providers/__init__.py +0 -0
  203. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/server/providers/addressing.py +0 -0
  204. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/server/providers/aggregate.py +0 -0
  205. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/server/providers/base.py +0 -0
  206. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/server/providers/fastmcp_provider.py +0 -0
  207. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/server/providers/filesystem.py +0 -0
  208. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/server/providers/filesystem_discovery.py +0 -0
  209. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/server/providers/local_provider/__init__.py +0 -0
  210. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/server/providers/local_provider/decorators/__init__.py +0 -0
  211. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/server/providers/local_provider/decorators/prompts.py +0 -0
  212. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/server/providers/local_provider/decorators/resources.py +0 -0
  213. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/server/providers/local_provider/decorators/tools.py +0 -0
  214. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/server/providers/local_provider/local_provider.py +0 -0
  215. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/server/providers/openapi/README.md +0 -0
  216. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/server/providers/openapi/__init__.py +0 -0
  217. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/server/providers/openapi/components.py +0 -0
  218. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/server/providers/openapi/provider.py +0 -0
  219. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/server/providers/openapi/routing.py +0 -0
  220. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/server/providers/prefab_payload.py +0 -0
  221. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/server/providers/prefab_synthesis.py +0 -0
  222. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/server/providers/proxy.py +0 -0
  223. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/server/providers/skills/__init__.py +0 -0
  224. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/server/providers/skills/_common.py +0 -0
  225. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/server/providers/skills/claude_provider.py +0 -0
  226. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/server/providers/skills/directory_provider.py +0 -0
  227. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/server/providers/skills/skill_provider.py +0 -0
  228. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/server/providers/skills/vendor_providers.py +0 -0
  229. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/server/providers/wrapped_provider.py +0 -0
  230. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/server/server.py +0 -0
  231. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/server/session_scoped_event_store.py +0 -0
  232. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/server/sessions.py +0 -0
  233. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/server/telemetry.py +0 -0
  234. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/server/transforms/__init__.py +0 -0
  235. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/server/transforms/catalog.py +0 -0
  236. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/server/transforms/namespace.py +0 -0
  237. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/server/transforms/prompts_as_tools.py +0 -0
  238. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/server/transforms/resources_as_tools.py +0 -0
  239. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/server/transforms/search/__init__.py +0 -0
  240. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/server/transforms/search/base.py +0 -0
  241. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/server/transforms/search/bm25.py +0 -0
  242. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/server/transforms/search/regex.py +0 -0
  243. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/server/transforms/tool_transform.py +0 -0
  244. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/server/transforms/version_filter.py +0 -0
  245. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/server/transforms/visibility.py +0 -0
  246. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/settings.py +0 -0
  247. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/skills/__init__.py +0 -0
  248. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/skills/_constants.py +0 -0
  249. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/skills/_resources.py +0 -0
  250. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/skills/_snapshot.py +0 -0
  251. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/skills/_source.py +0 -0
  252. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/skills/client.py +0 -0
  253. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/skills/extension.py +0 -0
  254. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/skills/models.py +0 -0
  255. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/telemetry.py +0 -0
  256. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/tools/__init__.py +0 -0
  257. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/tools/base.py +0 -0
  258. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/tools/function_parsing.py +0 -0
  259. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/tools/function_tool.py +0 -0
  260. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/tools/tool_transform.py +0 -0
  261. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/types.py +0 -0
  262. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/utilities/__init__.py +0 -0
  263. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/utilities/asgi_transport.py +0 -0
  264. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/utilities/async_utils.py +0 -0
  265. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/utilities/auth.py +0 -0
  266. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/utilities/authorization.py +0 -0
  267. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/utilities/cli.py +0 -0
  268. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/utilities/components.py +0 -0
  269. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/utilities/docstring_parsing.py +0 -0
  270. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/utilities/exceptions.py +0 -0
  271. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/utilities/http.py +0 -0
  272. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/utilities/inspect.py +0 -0
  273. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/utilities/json_schema.py +0 -0
  274. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/utilities/json_schema_type.py +0 -0
  275. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/utilities/lifespan.py +0 -0
  276. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/utilities/logging.py +0 -0
  277. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/utilities/mcp_server_config/__init__.py +0 -0
  278. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/utilities/mcp_server_config/v1/__init__.py +0 -0
  279. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/utilities/mcp_server_config/v1/environments/__init__.py +0 -0
  280. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/utilities/mcp_server_config/v1/environments/base.py +0 -0
  281. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/utilities/mcp_server_config/v1/environments/uv.py +0 -0
  282. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/utilities/mcp_server_config/v1/mcp_server_config.py +0 -0
  283. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/utilities/mcp_server_config/v1/schema.json +0 -0
  284. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/utilities/mcp_server_config/v1/sources/__init__.py +0 -0
  285. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/utilities/mcp_server_config/v1/sources/base.py +0 -0
  286. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/utilities/mcp_server_config/v1/sources/filesystem.py +0 -0
  287. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/utilities/mime.py +0 -0
  288. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/utilities/openapi/README.md +0 -0
  289. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/utilities/openapi/__init__.py +0 -0
  290. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/utilities/openapi/director.py +0 -0
  291. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/utilities/openapi/formatters.py +0 -0
  292. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/utilities/openapi/json_schema_converter.py +0 -0
  293. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/utilities/openapi/models.py +0 -0
  294. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/utilities/openapi/parser.py +0 -0
  295. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/utilities/openapi/schemas.py +0 -0
  296. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/utilities/pagination.py +0 -0
  297. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/utilities/prefab.py +0 -0
  298. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/utilities/skills.py +0 -0
  299. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/utilities/tasks.py +0 -0
  300. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/utilities/tests.py +0 -0
  301. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/utilities/timeout.py +0 -0
  302. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/utilities/token_cache.py +0 -0
  303. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/utilities/types.py +0 -0
  304. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/utilities/ui.py +0 -0
  305. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/utilities/version_check.py +0 -0
  306. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/fastmcp/utilities/versions.py +0 -0
  307. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/LICENSE +0 -0
  308. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/MANIFEST.sha256 +0 -0
  309. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/REQUIRES.txt +0 -0
  310. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/VENDORED +0 -0
  311. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/__init__.py +0 -0
  312. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/cli/__init__.py +0 -0
  313. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/cli/claude.py +0 -0
  314. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/cli/cli.py +0 -0
  315. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/client/__init__.py +0 -0
  316. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/client/__main__.py +0 -0
  317. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/client/_input_required.py +0 -0
  318. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/client/_memory.py +0 -0
  319. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/client/_probe.py +0 -0
  320. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/client/_transport.py +0 -0
  321. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/client/auth/__init__.py +0 -0
  322. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/client/auth/exceptions.py +0 -0
  323. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/client/auth/extensions/__init__.py +0 -0
  324. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/client/auth/extensions/client_credentials.py +0 -0
  325. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/client/auth/extensions/identity_assertion.py +0 -0
  326. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/client/auth/oauth2.py +0 -0
  327. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/client/auth/utils.py +0 -0
  328. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/client/caching.py +0 -0
  329. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/client/client.py +0 -0
  330. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/client/context.py +0 -0
  331. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/client/extension.py +0 -0
  332. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/client/session.py +0 -0
  333. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/client/session_group.py +0 -0
  334. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/client/sse.py +0 -0
  335. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/client/stdio.py +0 -0
  336. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/client/streamable_http.py +0 -0
  337. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/client/subscriptions.py +0 -0
  338. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/os/__init__.py +0 -0
  339. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/os/posix/__init__.py +0 -0
  340. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/os/posix/utilities.py +0 -0
  341. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/os/win32/__init__.py +0 -0
  342. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/os/win32/utilities.py +0 -0
  343. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/py.typed +0 -0
  344. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/server/__init__.py +0 -0
  345. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/server/__main__.py +0 -0
  346. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/server/_otel.py +0 -0
  347. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/server/_streamable_http_modern.py +0 -0
  348. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/server/apps.py +0 -0
  349. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/server/auth/__init__.py +0 -0
  350. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/server/auth/errors.py +0 -0
  351. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/server/auth/handlers/__init__.py +0 -0
  352. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/server/auth/handlers/authorize.py +0 -0
  353. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/server/auth/handlers/metadata.py +0 -0
  354. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/server/auth/handlers/register.py +0 -0
  355. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/server/auth/handlers/revoke.py +0 -0
  356. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/server/auth/handlers/token.py +0 -0
  357. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/server/auth/json_response.py +0 -0
  358. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/server/auth/middleware/__init__.py +0 -0
  359. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/server/auth/middleware/auth_context.py +0 -0
  360. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/server/auth/middleware/bearer_auth.py +0 -0
  361. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/server/auth/middleware/client_auth.py +0 -0
  362. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/server/auth/provider.py +0 -0
  363. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/server/auth/routes.py +0 -0
  364. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/server/auth/settings.py +0 -0
  365. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/server/caching.py +0 -0
  366. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/server/connection.py +0 -0
  367. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/server/context.py +0 -0
  368. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/server/elicitation.py +0 -0
  369. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/server/extension.py +0 -0
  370. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/server/fastmcp.py +0 -0
  371. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/server/lowlevel/__init__.py +0 -0
  372. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/server/lowlevel/helper_types.py +0 -0
  373. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/server/lowlevel/server.py +0 -0
  374. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/server/mcpserver/__init__.py +0 -0
  375. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/server/mcpserver/context.py +0 -0
  376. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/server/mcpserver/exceptions.py +0 -0
  377. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/server/mcpserver/prompts/__init__.py +0 -0
  378. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/server/mcpserver/prompts/base.py +0 -0
  379. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/server/mcpserver/prompts/manager.py +0 -0
  380. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/server/mcpserver/resolve.py +0 -0
  381. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/server/mcpserver/resources/__init__.py +0 -0
  382. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/server/mcpserver/resources/base.py +0 -0
  383. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/server/mcpserver/resources/resource_manager.py +0 -0
  384. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/server/mcpserver/resources/templates.py +0 -0
  385. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/server/mcpserver/resources/types.py +0 -0
  386. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/server/mcpserver/server.py +0 -0
  387. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/server/mcpserver/tools/__init__.py +0 -0
  388. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/server/mcpserver/tools/base.py +0 -0
  389. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/server/mcpserver/tools/tool_manager.py +0 -0
  390. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/server/mcpserver/utilities/__init__.py +0 -0
  391. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/server/mcpserver/utilities/context_injection.py +0 -0
  392. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/server/mcpserver/utilities/func_metadata.py +0 -0
  393. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/server/mcpserver/utilities/logging.py +0 -0
  394. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/server/mcpserver/utilities/types.py +0 -0
  395. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/server/models.py +0 -0
  396. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/server/request_state.py +0 -0
  397. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/server/runner.py +0 -0
  398. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/server/session.py +0 -0
  399. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/server/sse.py +0 -0
  400. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/server/stdio.py +0 -0
  401. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/server/streamable_http.py +0 -0
  402. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/server/streamable_http_manager.py +0 -0
  403. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/server/subscriptions.py +0 -0
  404. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/server/transport_security.py +0 -0
  405. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/server/validation.py +0 -0
  406. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/shared/__init__.py +0 -0
  407. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/shared/_callable_inspection.py +0 -0
  408. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/shared/_compat.py +0 -0
  409. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/shared/_context_streams.py +0 -0
  410. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/shared/_httpx_utils.py +0 -0
  411. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/shared/_otel.py +0 -0
  412. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/shared/_request_clock.py +0 -0
  413. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/shared/_stream_protocols.py +0 -0
  414. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/shared/auth.py +0 -0
  415. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/shared/auth_utils.py +0 -0
  416. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/shared/context.py +0 -0
  417. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/shared/direct_dispatcher.py +0 -0
  418. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/shared/dispatcher.py +0 -0
  419. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/shared/exceptions.py +0 -0
  420. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/shared/extension.py +0 -0
  421. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/shared/inbound.py +0 -0
  422. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/shared/jsonrpc_dispatcher.py +0 -0
  423. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/shared/memory.py +0 -0
  424. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/shared/message.py +0 -0
  425. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/shared/metadata_utils.py +0 -0
  426. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/shared/path_security.py +0 -0
  427. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/shared/peer.py +0 -0
  428. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/shared/subscriptions.py +0 -0
  429. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/shared/tool_name_validation.py +0 -0
  430. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/shared/transport_context.py +0 -0
  431. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/shared/uri_template.py +0 -0
  432. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/types/__init__.py +0 -0
  433. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/types/jsonrpc.py +0 -0
  434. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/types/methods.py +0 -0
  435. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp/types/version.py +0 -0
  436. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp_types/LICENSE +0 -0
  437. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp_types/MANIFEST.sha256 +0 -0
  438. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp_types/REQUIRES.txt +0 -0
  439. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp_types/VENDORED +0 -0
  440. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp_types/__init__.py +0 -0
  441. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp_types/_types.py +0 -0
  442. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp_types/_v2025_11_25/__init__.py +0 -0
  443. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp_types/_v2026_07_28/__init__.py +0 -0
  444. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp_types/_wire_base.py +0 -0
  445. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp_types/jsonrpc.py +0 -0
  446. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp_types/methods.py +0 -0
  447. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp_types/py.typed +0 -0
  448. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/mcp_types/version.py +0 -0
  449. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/requirements.txt +0 -0
  450. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/websockets/LICENSE +0 -0
  451. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/websockets/MANIFEST.sha256 +0 -0
  452. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/websockets/VENDORED +0 -0
  453. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/websockets/__init__.py +0 -0
  454. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/websockets/__main__.py +0 -0
  455. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/websockets/asyncio/__init__.py +0 -0
  456. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/websockets/asyncio/client.py +0 -0
  457. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/websockets/asyncio/connection.py +0 -0
  458. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/websockets/asyncio/messages.py +0 -0
  459. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/websockets/asyncio/router.py +0 -0
  460. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/websockets/asyncio/server.py +0 -0
  461. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/websockets/auth.py +0 -0
  462. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/websockets/cli.py +0 -0
  463. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/websockets/client.py +0 -0
  464. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/websockets/connection.py +0 -0
  465. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/websockets/datastructures.py +0 -0
  466. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/websockets/exceptions.py +0 -0
  467. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/websockets/extensions/__init__.py +0 -0
  468. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/websockets/extensions/base.py +0 -0
  469. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/websockets/extensions/permessage_deflate.py +0 -0
  470. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/websockets/frames.py +0 -0
  471. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/websockets/headers.py +0 -0
  472. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/websockets/http11.py +0 -0
  473. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/websockets/imports.py +0 -0
  474. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/websockets/legacy/__init__.py +0 -0
  475. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/websockets/legacy/auth.py +0 -0
  476. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/websockets/legacy/client.py +0 -0
  477. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/websockets/legacy/exceptions.py +0 -0
  478. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/websockets/legacy/framing.py +0 -0
  479. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/websockets/legacy/handshake.py +0 -0
  480. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/websockets/legacy/http.py +0 -0
  481. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/websockets/legacy/protocol.py +0 -0
  482. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/websockets/legacy/server.py +0 -0
  483. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/websockets/protocol.py +0 -0
  484. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/websockets/proxy.py +0 -0
  485. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/websockets/py.typed +0 -0
  486. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/websockets/server.py +0 -0
  487. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/websockets/streams.py +0 -0
  488. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/websockets/sync/__init__.py +0 -0
  489. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/websockets/sync/client.py +0 -0
  490. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/websockets/sync/connection.py +0 -0
  491. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/websockets/sync/messages.py +0 -0
  492. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/websockets/sync/router.py +0 -0
  493. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/websockets/sync/server.py +0 -0
  494. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/websockets/sync/utils.py +0 -0
  495. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/websockets/trio/__init__.py +0 -0
  496. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/websockets/trio/client.py +0 -0
  497. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/websockets/trio/connection.py +0 -0
  498. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/websockets/trio/messages.py +0 -0
  499. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/websockets/trio/router.py +0 -0
  500. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/websockets/trio/server.py +0 -0
  501. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/websockets/trio/utils.py +0 -0
  502. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/websockets/typing.py +0 -0
  503. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/websockets/uri.py +0 -0
  504. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/websockets/utils.py +0 -0
  505. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_vendor/websockets/version.py +0 -0
  506. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/_version.py +0 -0
  507. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/app_discovery.py +0 -0
  508. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/auth/__init__.py +0 -0
  509. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/auth/consent_form.py +0 -0
  510. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/auth/iss_stamp.py +0 -0
  511. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/auth/oidc_compat.py +0 -0
  512. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/auth/provider.py +0 -0
  513. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/backup_dashboards.py +0 -0
  514. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/backup_entity_ids.py +0 -0
  515. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/backup_helper_target.py +0 -0
  516. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/backup_integrations.py +0 -0
  517. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/backup_manager.py +0 -0
  518. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/backup_tags.py +0 -0
  519. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/backup_zones.py +0 -0
  520. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/browser_landing.py +0 -0
  521. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/client/__init__.py +0 -0
  522. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/client/admin_routes.py +0 -0
  523. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/client/error_log_journald.py +0 -0
  524. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/client/models.py +0 -0
  525. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/client/rest_client.py +0 -0
  526. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/client/supervisor_client.py +0 -0
  527. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/client/websocket_client.py +0 -0
  528. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/client/websocket_listener.py +0 -0
  529. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/config.py +0 -0
  530. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/config_backup.py +0 -0
  531. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/config_meta.py +0 -0
  532. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/config_overrides.py +0 -0
  533. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/config_registry.py +0 -0
  534. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/config_settings.py +0 -0
  535. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/dashboard_screenshot/__init__.py +0 -0
  536. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/dashboard_screenshot/capture.py +0 -0
  537. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/dashboard_screenshot/content.py +0 -0
  538. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/dashboard_screenshot/paths.py +0 -0
  539. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/dashboard_screenshot/provision.py +0 -0
  540. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/dashboard_screenshot/theme_guard.py +0 -0
  541. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/errors.py +0 -0
  542. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/ha_request_queue.py +0 -0
  543. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/hacs_auto_refresh.py +0 -0
  544. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/http_transport.py +0 -0
  545. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/image_info.py +0 -0
  546. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/llm_exposure.py +0 -0
  547. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/log_filters.py +0 -0
  548. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/policy/__init__.py +0 -0
  549. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/policy/approval_queue.py +0 -0
  550. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/policy/decision_pin.py +0 -0
  551. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/policy/decisions.py +0 -0
  552. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/policy/editing.py +0 -0
  553. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/policy/evaluator.py +0 -0
  554. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/policy/events.py +0 -0
  555. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/policy/handlers.py +0 -0
  556. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/policy/middleware.py +0 -0
  557. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/policy/model.py +0 -0
  558. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/policy/mrtr.py +0 -0
  559. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/policy/persistence.py +0 -0
  560. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/policy/server_channels.py +0 -0
  561. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/policy/value_sources.py +0 -0
  562. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/py.typed +0 -0
  563. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/read_only.py +0 -0
  564. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/redaction.py +0 -0
  565. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/renamed_tools.py +0 -0
  566. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/resources/skills-vendor/LICENSE +0 -0
  567. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/SKILL.md +0 -0
  568. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/appdaemon.md +0 -0
  569. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/automation-actions.md +0 -0
  570. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/backups.md +0 -0
  571. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/blueprint-guide.md +0 -0
  572. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/dashboard-cards.md +0 -0
  573. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/dashboard-guide.md +0 -0
  574. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/device-control.md +0 -0
  575. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/domain-docs.md +0 -0
  576. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/examples.yaml +0 -0
  577. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/helper-selection.md +0 -0
  578. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/safe-refactoring.md +0 -0
  579. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/scenes.md +0 -0
  580. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/template-guidelines.md +0 -0
  581. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/triggers-and-conditions.md +0 -0
  582. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/yaml-only-integrations.md +0 -0
  583. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/server.py +0 -0
  584. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/server_instructions.py +0 -0
  585. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/server_lifespan.py +0 -0
  586. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/server_tool_text.py +0 -0
  587. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/settings_ui/__init__.py +0 -0
  588. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/settings_ui/_handlers_advanced.py +0 -0
  589. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/settings_ui/_handlers_backups.py +0 -0
  590. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/settings_ui/_handlers_fs.py +0 -0
  591. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/settings_ui/_handlers_oauth_callbacks.py +0 -0
  592. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/settings_ui/_handlers_server.py +0 -0
  593. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/settings_ui/_handlers_theme.py +0 -0
  594. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/settings_ui/_handlers_tools.py +0 -0
  595. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/settings_ui/_i18n.py +0 -0
  596. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/settings_ui/_locale_policy.py +0 -0
  597. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/settings_ui/_persistence.py +0 -0
  598. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/settings_ui/_supervisor.py +0 -0
  599. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/settings_ui/_theme.py +0 -0
  600. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/settings_ui/_tools_meta.py +0 -0
  601. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/settings_ui/locales/README.md +0 -0
  602. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/settings_ui/locales/en.json +0 -0
  603. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/settings_ui/locales/tlh.json +0 -0
  604. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/settings_ui/settings.css +0 -0
  605. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/settings_ui/settings.html +0 -0
  606. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/settings_ui/settings_js/01_i18n_state.js +0 -0
  607. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/settings_ui/settings_js/02_tools_restart.js +0 -0
  608. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/settings_ui/settings_js/03_render_save.js +0 -0
  609. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/settings_ui/settings_js/04_backups.js +0 -0
  610. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/settings_ui/settings_js/05_feature_flags.js +0 -0
  611. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/settings_ui/settings_js/06_policy_cards.js +0 -0
  612. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/settings_ui/settings_js/07_policy_actions.js +0 -0
  613. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/settings_ui/settings_js/08_advanced.js +0 -0
  614. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/settings_ui/settings_js/09_prefs_visibility.js +0 -0
  615. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/settings_ui/settings_js/10_oauth_callbacks.js +0 -0
  616. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/smoke_test.py +0 -0
  617. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/stdio_settings_sidecar.py +0 -0
  618. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/strict_bps.py +0 -0
  619. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tool_dispatch.py +0 -0
  620. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/__init__.py +0 -0
  621. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/addon_connection_hints.py +0 -0
  622. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/area_messages.py +0 -0
  623. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/auto_backup.py +0 -0
  624. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/backup.py +0 -0
  625. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/backup_access.py +0 -0
  626. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/backup_on_demand.py +0 -0
  627. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/best_practice_checker.py +0 -0
  628. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/best_practice_result.py +0 -0
  629. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/best_practice_variables.py +0 -0
  630. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/blueprint_sources.py +0 -0
  631. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/blueprint_substitute.py +0 -0
  632. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/blueprint_write.py +0 -0
  633. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/bug_report_config.py +0 -0
  634. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/bug_report_templates.py +0 -0
  635. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/bulk_selector.py +0 -0
  636. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/coercion.py +0 -0
  637. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/component_api.py +0 -0
  638. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/component_config_entries.py +0 -0
  639. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/component_config_reads.py +0 -0
  640. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/component_dashboard_edit.py +0 -0
  641. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/component_devices.py +0 -0
  642. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/component_helper_collections.py +0 -0
  643. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/component_registries.py +0 -0
  644. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/component_registry_lookup.py +0 -0
  645. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/config_entry_backup.py +0 -0
  646. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/config_entry_flow.py +0 -0
  647. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/config_entry_flow_form.py +0 -0
  648. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/config_entry_flow_introspect.py +0 -0
  649. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/config_entry_flow_menu.py +0 -0
  650. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/config_entry_flow_walker.py +0 -0
  651. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/config_entry_identity.py +0 -0
  652. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/config_entry_reconfigure.py +0 -0
  653. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/config_entry_reload_watch.py +0 -0
  654. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/config_helpers/__init__.py +0 -0
  655. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/config_helpers/core_payload.py +0 -0
  656. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/config_helpers/create.py +0 -0
  657. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/config_helpers/describe.py +0 -0
  658. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/config_helpers/flow.py +0 -0
  659. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/config_helpers/icon_route.py +0 -0
  660. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/config_helpers/listing.py +0 -0
  661. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/config_helpers/registry.py +0 -0
  662. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/config_helpers/schemas.py +0 -0
  663. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/config_helpers/typed_config.py +0 -0
  664. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/config_helpers/update.py +0 -0
  665. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/config_helpers/validation.py +0 -0
  666. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/config_subentry_restore.py +0 -0
  667. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/config_write_errors.py +0 -0
  668. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/config_write_helpers.py +0 -0
  669. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/core_contract.py +0 -0
  670. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/dashboard_card_describe.py +0 -0
  671. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/dashboard_edit_errors.py +0 -0
  672. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/dashboard_list_checks.py +0 -0
  673. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/dev_backup.py +0 -0
  674. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/device_control.py +0 -0
  675. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/device_enrichment.py +0 -0
  676. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/diagnostics_helpers.py +0 -0
  677. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/energy_preferences.py +0 -0
  678. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/entity_param_parsing.py +0 -0
  679. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/entity_registration.py +0 -0
  680. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/entity_removal.py +0 -0
  681. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/entity_update_fields.py +0 -0
  682. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/error_log_parsing.py +0 -0
  683. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/flow_helper_lookup.py +0 -0
  684. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/hacs_registration.py +0 -0
  685. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/helper_flows.py +0 -0
  686. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/helpers.py +0 -0
  687. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/history_response.py +0 -0
  688. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/integration_entry_state.py +0 -0
  689. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/integration_reconfigure.py +0 -0
  690. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/log_common.py +0 -0
  691. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/log_sources.py +0 -0
  692. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/log_sources_fault.py +0 -0
  693. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/log_sources_logbook.py +0 -0
  694. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/log_sources_supervisor.py +0 -0
  695. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/radio/__init__.py +0 -0
  696. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/radio/base.py +0 -0
  697. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/radio/matter.py +0 -0
  698. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/radio/thread.py +0 -0
  699. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/radio/zigbee.py +0 -0
  700. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/radio/zwave.py +0 -0
  701. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/radio/zwave_parameters.py +0 -0
  702. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/recorder_errors.py +0 -0
  703. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/reference_validator.py +0 -0
  704. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/registry.py +0 -0
  705. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/renamed_tool_middleware.py +0 -0
  706. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/response_helpers.py +0 -0
  707. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/scene_discovery.py +0 -0
  708. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/search/__init__.py +0 -0
  709. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/search/base.py +0 -0
  710. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/search/component.py +0 -0
  711. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/search/entities.py +0 -0
  712. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/search/legacy.py +0 -0
  713. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/search/modes.py +0 -0
  714. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/search/overview.py +0 -0
  715. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/search/response.py +0 -0
  716. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/search/state.py +0 -0
  717. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/server_version.py +0 -0
  718. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/smart_search/__init__.py +0 -0
  719. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/smart_search/_base.py +0 -0
  720. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/smart_search/_config.py +0 -0
  721. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/smart_search/_deep.py +0 -0
  722. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/smart_search/_entities.py +0 -0
  723. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/smart_search/_fetch.py +0 -0
  724. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/smart_search/_graph.py +0 -0
  725. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/smart_search/_overview.py +0 -0
  726. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/smart_search/_scenes.py +0 -0
  727. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/smart_search/_scoring.py +0 -0
  728. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/statistics_calendar.py +0 -0
  729. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/statistics_helpers.py +0 -0
  730. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/statistics_resets.py +0 -0
  731. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/system_restart.py +0 -0
  732. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/tool_hints.py +0 -0
  733. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/tool_search_hint_middleware.py +0 -0
  734. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/tools_addons.py +0 -0
  735. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/tools_areas.py +0 -0
  736. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/tools_assist_pipeline.py +0 -0
  737. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/tools_blueprints.py +0 -0
  738. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/tools_bug_report.py +0 -0
  739. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/tools_calendar.py +0 -0
  740. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/tools_camera.py +0 -0
  741. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/tools_categories.py +0 -0
  742. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/tools_code.py +0 -0
  743. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/tools_config_automations.py +0 -0
  744. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/tools_config_dashboards.py +0 -0
  745. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/tools_config_helpers.py +0 -0
  746. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/tools_config_scenes.py +0 -0
  747. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/tools_config_scripts.py +0 -0
  748. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/tools_dashboard_screenshot.py +0 -0
  749. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/tools_dev.py +0 -0
  750. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/tools_energy.py +0 -0
  751. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/tools_entities.py +0 -0
  752. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/tools_filesystem.py +0 -0
  753. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/tools_groups.py +0 -0
  754. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/tools_hacs.py +0 -0
  755. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/tools_history.py +0 -0
  756. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/tools_integrations.py +0 -0
  757. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/tools_labels.py +0 -0
  758. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/tools_logs.py +0 -0
  759. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/tools_radio.py +0 -0
  760. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/tools_registry.py +0 -0
  761. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/tools_resources.py +0 -0
  762. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/tools_search.py +0 -0
  763. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/tools_security_policy.py +0 -0
  764. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/tools_service.py +0 -0
  765. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/tools_services.py +0 -0
  766. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/tools_system.py +0 -0
  767. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/tools_themes.py +0 -0
  768. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/tools_todo.py +0 -0
  769. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/tools_traces.py +0 -0
  770. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/tools_updates.py +0 -0
  771. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/tools_utility.py +0 -0
  772. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/tools_voice_assistant.py +0 -0
  773. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/tools_yaml_config.py +0 -0
  774. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/tools_yaml_read.py +0 -0
  775. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/tools_zones.py +0 -0
  776. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/util_helpers.py +0 -0
  777. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/validation_middleware.py +0 -0
  778. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/tools/ws_waiters.py +0 -0
  779. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/transforms/__init__.py +0 -0
  780. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/transforms/categorized_search.py +0 -0
  781. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/transforms/compact_params.py +0 -0
  782. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/transforms/component_helpers.py +0 -0
  783. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/transforms/component_search.py +0 -0
  784. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/transforms/lite_docstrings.py +0 -0
  785. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/transforms/write_tool_note.py +0 -0
  786. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/transport_security.py +0 -0
  787. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/update_check.py +0 -0
  788. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/utils/__init__.py +0 -0
  789. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/utils/config_hash.py +0 -0
  790. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/utils/config_write_lock.py +0 -0
  791. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/utils/dashboard_patch.py +0 -0
  792. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/utils/data_paths.py +0 -0
  793. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/utils/device_registry_semantics.py +0 -0
  794. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/utils/domain_handlers.py +0 -0
  795. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/utils/entity_membership.py +0 -0
  796. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/utils/fuzzy_search.py +0 -0
  797. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/utils/kill_signal_diagnostics.py +0 -0
  798. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/utils/mcp_client_host.py +0 -0
  799. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/utils/operation_manager.py +0 -0
  800. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/utils/python_sandbox.py +0 -0
  801. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/utils/registry_update_lock.py +0 -0
  802. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/utils/skill_loader.py +0 -0
  803. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/utils/usage_logger.py +0 -0
  804. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/visibility/__init__.py +0 -0
  805. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/visibility/enforcement.py +0 -0
  806. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/visibility/model.py +0 -0
  807. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/visibility/persistence.py +0 -0
  808. {ha_mcp_dev-9.0.0.dev3183 → ha_mcp_dev-9.0.0.dev3196}/src/ha_mcp/visibility/resolver.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ha-mcp-dev
3
- Version: 9.0.0.dev3183
3
+ Version: 9.0.0.dev3196
4
4
  Summary: Home Assistant MCP Server - Complete control of Home Assistant through MCP
5
5
  Keywords: mcp,home-assistant,ai,automation,smart-home
6
6
  Author: Julien
@@ -4,7 +4,7 @@ build-backend = "uv_build"
4
4
 
5
5
  [project]
6
6
  name = "ha-mcp-dev"
7
- version = "9.0.0.dev3183"
7
+ version = "9.0.0.dev3196"
8
8
  description = "Home Assistant MCP Server - Complete control of Home Assistant through MCP"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.13,<3.15"
@@ -4,7 +4,7 @@ build-backend = "uv_build"
4
4
 
5
5
  [project]
6
6
  name = "ha-mcp-dev"
7
- version = "9.0.0.dev3183"
7
+ version = "9.0.0.dev3196"
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
@@ -8,6 +8,7 @@ from __future__ import annotations
8
8
 
9
9
  import difflib
10
10
  import logging
11
+ from io import StringIO
11
12
  from typing import Any, Literal, TypedDict
12
13
 
13
14
  logger = logging.getLogger(__name__)
@@ -134,15 +135,17 @@ def _build_text_diff_response(
134
135
  "unchanged": False,
135
136
  "truncated": False,
136
137
  }
137
- lines = list(
138
- difflib.unified_diff(
139
- str(current).splitlines(),
140
- stored.splitlines(),
141
- fromfile="current",
142
- tofile="snapshot",
143
- lineterm="",
144
- )
145
- )
138
+ lines: list[str] = []
139
+ # Split only at LF: Unicode separators are file content, not diff lines.
140
+ for line in difflib.unified_diff(
141
+ list(StringIO(str(current))),
142
+ list(StringIO(stored)),
143
+ fromfile="current",
144
+ tofile="snapshot",
145
+ ):
146
+ lines.append(line.removesuffix("\n"))
147
+ if not line.endswith("\n"):
148
+ lines.append("\")
146
149
  truncated = len(lines) > _MAX_DIFF_LINES
147
150
  if truncated:
148
151
  lines = lines[:_MAX_DIFF_LINES]
@@ -138,7 +138,7 @@
138
138
  "features.read_only_mode.label": "Yalnız oxuma rejimi",
139
139
  "features.read_only_mode.help": "Bütün yazma alətlərini söndürür və alətlərin hər hansı yazma və ya dağıdıcı əməliyyat çağırışı etmə imkanını aradan qaldırır. Həm oxuma, həm də yazma funksiyası olan alətlər — ehtiyat nüsxələr, tətbiqlər (əlavələr), enerji tərcihləri, səs emalı ardıcıllıqları və aktiv olduqda kod rejimi — yazma əməliyyatları bloklanmaqla istifadəyə açıq qalır. Veb interfeysin Alətlər bölməsindəki seçimlə eynidir. Standart olaraq deaktivdir. Qüvvəyə minməsi üçün yenidən başlatma tələb olunur.",
140
140
  "features.redact_secrets.label": "Məxfi məlumatları gizlət",
141
- "features.redact_secrets.help": "Alət cavabları AI köməkçisinə çatmazdan əvvəl onlardan məxfi məlumatları gizlədir. Parol kimi işarələnmiş tətbiq (əlavə) seçimləri və inteqrasiya sahələri təyin edilib/boş göstəricisi ilə əvəz olunur (beləliklə, \"bu giriş məlumatı konfiqurasiya edilibmi?\" sualını cavablandırmaq mümkün qalır), digər alət cavabları isə serverin artıq gördüyü məxfi dəyərlərdən təmizlənir (6 simvoldan qısa dəyərlər nəzərə alınmır, çünki kiçik fraqmentlərin əvəzlənməsi əlaqəsiz çıxışı korlayardı). Sxemdə parol kimi işarələnməyən sahələr aşkarlana bilmir. Standart olaraq deaktivdir.",
141
+ "features.redact_secrets.help": "AI köməkçisinə çatmazdan əvvəl alət cavablarındakı məxfi məlumatları gizlədir. Şifrə kimi qeyd olunmuş Tətbiq (əlavə) seçimləri və inteqrasiya sahələri təyin edilmiş/boş markerlə əvəz olunur (beləliklə, \"bu etimadnamə konfiqurasiya edilibmi?\" sualına cavab vermək mümkündür) və digər alət cavablarından serverin artıq gördüyü məxfi dəyərlər təmizlənir (6 simvoldan qısa dəyərlər ötürülür, ஏünki kiçik fraqmentlərin əvəz edilməsi əlaqəsiz çıxışı zədələyə bilər). Tətbiq seçimlərindəki şəxsi açarlar və aşağıda sadalanan tətbiq seçim adları istisna olmaqla, digər sahələr aşkar edilmir. Defolt olaraq söndürüldür.",
142
142
  "features.enable_mandatory_bps.label": "Yazma zamanı ən yaxşı təcrübələr üzrə bacarıq təlimatlarını əlavə et",
143
143
  "features.enable_mandatory_bps.help": "Yazma alətlərinin bacarıq məzmunu təqdim etməsi funksiyası üçün əsas seçim (problem #1182). Aktiv olduqda (standart vəziyyət) altı konfiqurasiya yazma aləti (avtomatlaşdırmalar, skriptlər, səhnələr, köməkçilər, idarə panelləri, xam YAML) hər uğurlu yazmada Home Assistant üzrə ən yaxşı təcrübələrin əsas istinad fayllarını `skill_content` daxilində əlavə edir, həmçinin ən yaxşı təcrübə xəbərdarlıqlarında istinad edilən bölmələri avtomatik daxil edir. Hər alət həmçinin hər çağırış üçün `MandatoryBPS` parametri təqdim edir; agent məzmunu əldə etdikdən sonra sonrakı çağırışlarda bunu false edə bilər. Bu əsas seçim deaktiv olduqda çağırış parametrindən və ya BP xəbərdarlıqlarından asılı olmayaraq HEÇ BİR skill_content göndərilmir. İlk seçim kimi aktiv saxlanması tövsiyə olunur; yalnız çox kiçik kontekst pəncərələri olan modellər üçün söndürün. Bunun söndürülməsi yazma dəqiqliyini azalda bilər. Qüvvəyə minməsi üçün yenidən başlatma tələb olunur.",
144
144
  "features.enable_strict_mandatory_bps.label": "Ən yaxşı təcrübələrə ciddi riayət rejimi",
@@ -516,6 +516,8 @@
516
516
  "advanced.code_mode_saved_tools_path.help": "Fərdi alətləri yenidən başladılmalar arasında saxlamaq üçün istifadə olunan JSON faylı.",
517
517
  "advanced.extra_yaml_write_keys.label": "Yazmağa icazə verilən əlavə YAML açarları",
518
518
  "advanced.extra_yaml_write_keys.help": "Bu quraşdırmada əsasən YAML ilə işləyən inteqrasiyalar (məs. alert2) üçün ha_config_set_yaml alətinin daxili açarlara əlavə olaraq yaza biləcəyi yuxarı səviyyəli açarlar. Hər sətirdə bir açar daxil edin və ya açarları vergüllə ayırın. Home Assistant-ın öz etibar sərhədini yenidən müəyyən edən açarlar heç vaxt əlavə edilə bilməz və nəzərə alınmır. Fərdi komponentin 1.2.4 və ya daha yeni versiyası tələb olunur.",
519
+ "advanced.redact_app_option_keys.label": "Gizlədiləcək əlavə tətbiq seçim açarları",
520
+ "advanced.redact_app_option_keys.help": "Sxemi sirri düz mətn kimi saxlayan tətbiqlər üçün (məsələn, backup_password) şifrə sahələri kimi gizlədiləcək Tətbiq (əlavə) seçim adları. Adları vergül və ya yeni sətirlərlə ayırın. Ad bütün tətbiqlərə şamil edilir; onu bir tətbiqlə məhdudlaşdırmaq üçün app_slug:name yazın. Seçim qrupunun adlandırılması ondakı hər bir seçimi əhatə edir. Yalnız Məxfiliklərin Gizlədilməsi (Redact Secrets) aktiv olduqda istifadə olunur. Defolt olaraq boşdur.",
519
521
  "advanced.sidecar_pin_port.label": "Parametrlər interfeysinin köməkçi proses portu",
520
522
  "advanced.sidecar_pin_port.help": "0 ilk işə salınmada boş port seçir və sonrakı yenidən başlatmalar üçün onu saxlayır; aralıqdakı port üstünlük verilən portu sabitləyir (tutulubsa boş olanına keçir).",
521
523
  "advanced.enable_dev_mode.label": "Proqramçı rejimi",
@@ -138,7 +138,7 @@
138
138
  "features.read_only_mode.label": "Režim pouze pro čtení",
139
139
  "features.read_only_mode.help": "Vypne všechny nástroje pro zápis a odstraní schopnost nástrojů provádět jakékoli zápisy nebo destruktivní volání. Smíšené nástroje pro čtení/zápis – zálohy, aplikace (doplňky), preference energie, hlasové pipelines a režim kódu, pokud je povolen – zůstávají k dispozici se zablokovanými operacemi zápisu. Stejný přepínač jako na kartě Tools ve webovém rozhraní. Ve výchozím nastavení vypnuto. K projevům změn je vyžadován restart.",
140
140
  "features.redact_secrets.label": "Redigovat tajemství",
141
- "features.redact_secrets.help": "Skrývá tajné údaje z odpovědí nástrojů, než se dostanou k AI asistenci. Možnosti aplikace (doplňku) a pole integrací označená jako hesla jsou nahrazena značkou nastaveno/prázdno (takže zůstává možné odpovědět na otázku „je tento pověření nastaveno?“), a z odpovědí ostatních nástrojů jsou odstraněny tajné hodnoty, které server již viděl (hodnoty kratší než 6 znaků se přeskakují, protože nahrazování drobných fragmentů by poškodilo nesouvisející výstup). Pole, která nejsou svým schématem označena jako hesla, nelze detekovat. Ve výchozím nastavení vypnuto.",
141
+ "features.redact_secrets.help": "Odstraní citlivé údaje z odpovědí nástrojů před jejich odesláním AI asistentovi. Možnosti aplikace (doplňku) a pole integrací označená jako hesla jsou nahrazena značkou pro nastaveno/prázdno (aby bylo možné odpovědět na otázku „je toto pověření nakonfigurováno?“), a z ostatních odpovědí nástrojů jsou odstraněny tajné hodnoty, které server již zaznamenal (hodnoty kratší než 6 znaků se přeskočí, protože nahrazování drobných fragmentů by poškodilo nesouvisející výstup). Ostatní pole se nerozpoznávají, s výjimkou privátních klíčů v možnostech aplikací a níže uvedených názvů možností aplikací. Ve výchozím nastavení vypnuto.",
142
142
  "features.enable_mandatory_bps.label": "Připojit dovednosti osvědčených postupů při zápisu",
143
143
  "features.enable_mandatory_bps.help": "Hlavní přepínač pro funkci doručování obsahu dovedností nástrojů pro zápis (problém #1182). Pokud je povoleno (výchozí), šest konfiguračních nástrojů pro zápis (automatizace, skripty, scény, pomocníci, řídicí panely, čistý YAML) připojí kanonické referenční soubory osvědčených postupů Home Assistant pod `skill_content` při každém úspěšném zápisu, plus automaticky vloží jakékoli referenční sekce citované varováními o osvědčených postupech. Každý nástroj také zpřístupňuje parametr `MandatoryBPS` pro každé volání, který může agent nastavit na false při následných voláních, jakmile má obsah. Když je tento hlavní přepínač vypnutý, ŽÁDNÝ `skill_content` není odeslán bez ohledu na parametr pro každé volání nebo varování BP. Doporučeno ZAPNUTO jako první volba; vypněte pouze pro modely s velmi malými kontextovými okny. Vypnutí této funkce může snížit přesnost zápisu. Vyžaduje restart, aby se projevilo.",
144
144
  "features.enable_strict_mandatory_bps.label": "Přísný režim osvědčených postupů",
@@ -516,6 +516,8 @@
516
516
  "advanced.code_mode_saved_tools_path.help": "Soubor JSON používaný k uchování vlastních nástrojů napříč restarty.",
517
517
  "advanced.extra_yaml_write_keys.label": "Další klíče pro zápis YAML",
518
518
  "advanced.extra_yaml_write_keys.help": "Další klíče nejvyšší úrovně, které může ha_config_set_yaml zapisovat kromě vestavěných, pro integrace primárně využívající YAML na této instalaci (např. alert2). Zadejte jeden klíč na řádek nebo oddělte klíče čárkami. Klíče, které mění vlastní hranici důvěry Home Assistant, nelze nikdy přidat a jsou ignorovány. Vyžaduje vlastní komponentu (custom component) 1.2.4 nebo novější.",
519
+ "advanced.redact_app_option_keys.label": "Další klíče možností aplikace k utajení",
520
+ "advanced.redact_app_option_keys.help": "Názvy možností aplikace (doplňku), které se mají utajit podobně jako pole pro hesla, pro aplikace, jejichž schéma ukládá tajný údaj jako prostý text (například backup_password). Názvy oddělte čárkami nebo novými řádky. Název platí pro každou aplikaci; zápisem app_slug:name jej omezíte na jednu aplikaci. Pojmenování skupiny možností zahrnuje každou možnost v ní. Používá se pouze tehdy, když je zapnuto Skrýt tajné údaje. Ve výchozím nastavení prázdné.",
519
521
  "advanced.sidecar_pin_port.label": "Port sidecaru uživatelského rozhraní nastavení",
520
522
  "advanced.sidecar_pin_port.help": "Hodnota 0 vybere volný port při prvním spuštění a ponechá si ho pro pozdější restarty; port v zadaném rozsahu zafixuje preferovaný port (pokud je obsazen, přejde na volný).",
521
523
  "advanced.enable_dev_mode.label": "Režim vývojáře",
@@ -138,7 +138,7 @@
138
138
  "features.read_only_mode.label": "Nur-Lese-Modus",
139
139
  "features.read_only_mode.help": "Schaltet alle Schreib-Tools aus und entzieht Tools die Fähigkeit, Schreib- oder destruktive Aufrufe auszuführen. Gemischte Lese-/Schreib-Tools — Backups, Apps (Add-ons), Energieeinstellungen, Sprach-Pipelines und der Code-Modus, wenn aktiviert — bleiben verfügbar, wobei ihre Schreiboperationen blockiert sind. Gleicher Umschalter wie auf dem Web-UI-Tab Tools. Standardmäßig aus. Erfordert einen Neustart, um wirksam zu werden.",
140
140
  "features.redact_secrets.label": "Geheimnisse schwärzen",
141
- "features.redact_secrets.help": "Entfernt Geheimnisse aus Tool-Antworten, bevor sie den KI-Assistenten erreichen. App-Optionen (Add-on) und als Passwörter markierte Integrationsfelder werden durch eine Markierung für gesetzt/leer ersetzt (sodass \"ist diese Zugangsbezeichnung konfiguriert?\" beantwortet bleiben kann), und andere Tool-Antworten werden von Geheimniswerten bereinigt, die der Server bereits gesehen hat (Werte, die kürzer als 6 Zeichen sind, werden übersprungen, da das Ersetzen winziger Fragmente zusammenhängende Ausgaben beschädigen würde). Felder, die von ihrem Schema nicht als Passwörter markiert wurden, können nicht erkannt werden. Standardmäßig aus.",
141
+ "features.redact_secrets.help": "Entfernt Geheimnisse aus Werkzeugantworten, bevor sie den KI-Assistenten erreichen. App- (Add-on-)Optionen und Integrationsfelder, die als Passwörter markiert sind, werden durch eine Markierung für gesetzt/leer ersetzt (damit „ist diese Zugangsmarke konfiguriert?“ beantwortet werden kann), und andere Werkzeugantworten werden von Geheimnissen bereinigt, die der Server bereits gesehen hat (Werte, die kürzer als 6 Zeichen sind, werden übersprungen, da das Ersetzen kleiner Fragmente unrelated Ausgaben beschädigen würde). Andere Felder werden nicht erkannt, außer privaten Schlüsseln in App-Optionen und den unten aufgeführten App-Optionennamen. Standardmäßig aus.",
142
142
  "features.enable_mandatory_bps.label": "Best-Practice-Skills bei Schreibvorgängen anhängen",
143
143
  "features.enable_mandatory_bps.help": "Hauptschalter für die Funktion zur Bereitstellung von Schreib-Tool-Skill-Inhalten (Issue #1182). Wenn aktiviert (Standard), fügen die sechs Konfigurations-Schreibtools (Automatisierungen, Skripte, Szenen, Helfer, Dashboards, rohes YAML) die kanonischen Home-Assistant-Best-Practice-Referenzdateien unter skill_content bei jedem erfolgreichen Schreibvorgang an, plus automatisches Einbetten aller Referenzabschnitte, die von Best-Practice-Warnungen zitiert werden. Jedes Tool stellt auch einen per-Aufruf-Parameter MandatoryBPS zur Verfügung, den der Agent bei nachfolgenden Aufrufen auf false setzen kann, sobald er den Inhalt hat. Wenn dieser Hauptschalter ausgeschaltet ist, wird KEIN skill_content ausgegeben, unabhängig vom per-Aufruf-Parameter oder BP-Warnungen. Empfohlen EIN als erste Wahl; deaktiviere nur für Modelle mit sehr kleinen Kontextfenstern. Das Ausschalten davon kann die Schreibgenauigkeit beeinträchtigen. Erfordert Neustart, um wirksam zu werden.",
144
144
  "features.enable_strict_mandatory_bps.label": "Strikter Best-Practices-Modus",
@@ -516,6 +516,8 @@
516
516
  "advanced.code_mode_saved_tools_path.help": "JSON-Datei zum Speichern von benutzerdefinierten Tools über Neustarts hinweg.",
517
517
  "advanced.extra_yaml_write_keys.label": "Zusätzliche YAML-Schreib-Keys",
518
518
  "advanced.extra_yaml_write_keys.help": "Zusätzliche Top-Level-Schlüssel, die ha_config_set_yaml zusätzlich zu den integrierten für YAML-erste Integrationen auf dieser Installation schreiben kann (z. B. alert2). Gib einen Schlüssel pro Zeile ein oder trenne Schlüssel mit Kommas. Schlüssel, die Home Assistants eigene Vertrauensgrenze neu definieren, können niemals hinzugefügt werden und werden ignoriert. Erfordert die Custom Component 1.2.4 oder neuer.",
519
+ "advanced.redact_app_option_keys.label": "Zusätzliche App-Optionsschlüssel zum Schwärzen",
520
+ "advanced.redact_app_option_keys.help": "App- (Add-on-)Optionsnamen zum Schwärzen wie Passwortfelder für Apps, deren Schema ein Geheimnis im Klartext speichert (zum Beispiel backup_password). Trenne Namen mit Kommas oder Zeilenumbrüchen. Ein Name gilt für jede App; schreibe app_slug:name, um ihn auf eine App zu beschränken. Das Benennen einer Optionsgruppe deckt jede Option darin ab. Wird nur verwendet, wenn Geheimnisse schwärzen aktiv ist. Standardmäßig leer.",
519
521
  "advanced.sidecar_pin_port.label": "Einstellungs-UI-Sidecar-Port",
520
522
  "advanced.sidecar_pin_port.help": "0 wählt beim ersten Start einen freien Port und behält ihn für spätere Neustarts bei; ein Port im Bereich fixiert einen bevorzugten Port (weicht auf einen freien aus, falls dieser belegt ist).",
521
523
  "advanced.enable_dev_mode.label": "Entwicklermodus",
@@ -138,7 +138,7 @@
138
138
  "features.read_only_mode.label": "Nur-lega Reĝimo",
139
139
  "features.read_only_mode.help": "Malŝaltas ĉiujn skribilojn, kaj forigas la kapablon por iloj fari skribajn aŭ detruajn vokojn. Miksitaj leg-skribaj iloj — savkopioj, Apoj (aldonaĵoj), energiaj preferoj, voĉaj duktoj, kaj koda reĝimo kiam ebligite — restas haveblaj kun siaj skribaj operacioj blokitaj. Sama ŝaltilo kiel la TTT-interfaca langeto Iloj. Malŝaltita defaŭlte. Postulas restartigon por ekvalidi.",
140
140
  "features.redact_secrets.label": "Redakti Sekretojn",
141
- "features.redact_secrets.help": "Redaktas sekretojn el ilaj respondon antaŭ ol ili atingas la AI-asistanton. Apaj (aldonaĵaj) opcioj kaj integriĝaj kampoj markitaj kiel pasvortoj estas anstataŭigitaj per aro/malplena markilo (do \"ĉu ĉi tiu akreditaĵo estas agordita?\" restas respondoebla), kaj aliaj ilaj respondoj estas purigitaj de sekretaj valoroj kiujn la servilo jam vidis (valoroj pli mallongaj ol 6 signoj estas preterlasitaj, ĉar anstataŭigi etajn fragmentojn koruptus senrilatan eligon). Kampoj ne markitaj kiel pasvortoj per sia skemo ne povas esti detektitaj. Malŝaltita defaŭlte.",
141
+ "features.redact_secrets.help": "Kaŝas sekretojn el ilaj respondoj antaŭ ol ili atingas la AI-asistanton. Opcioj de la aplikaĵo (aldonaĵo) kaj integriĝaj kampoj markitaj kiel pasvortoj estas anstataŭigitaj per indikilo pri difinita/malplena valoro (por ke la demando \"ĉu ĉi tiu akreditaĵo estas agordita?\" restu respondo-kapabla), kaj aliaj ilaj respondoj estas purigitaj de sekretaj valoroj jam viditaj de la servilo (valoroj pli mallongaj ol 6 signoj estas preterlasitaj, ĉar anstataŭigi etajn fragmentojn koruptus nerilatan eliron). Aliaj kampoj ne estas detektitaj, krom privataj ŝlosiloj en aplikaĵaj opcioj kaj la nomoj de aplikaĵaj opcioj listigitaj sube. Malŝaltita defaŭlte.",
142
142
  "features.enable_mandatory_bps.label": "Aligi plejbonajn praktikajn kapablojn ĉe skriboj",
143
143
  "features.enable_mandatory_bps.help": "Majstra ŝaltilo por la funkcio de liverado de enhavo de skrib-ila kapablo (problemo #1182). Kiam ebligita (defaŭlte), la ses agordaj skrib-iloj (aŭtomatigoj, skriptoj, scenoj, helpiloj, paneloj, kruda YAML) aligas la kanonikajn Home Assistant plejbonajn praktikajn referencajn dosierojn sub `skill_content` ĉe ĉiu sukcesa skribo, plus aŭtomate enigas iujn ajn referencajn sekciojn cititajn de plejbonaj praktikaj avertoj. Ĉiu ilo ankaŭ eksponas por-vokan `MandatoryBPS` parametron, kiun la agento povas agordi al false ĉe postaj vokoj post kiam ĝi havas la enhavon. Kiam ĉi tiu majstra ŝaltilo estas malŝaltita, NENIU skill_content eliras sendepende de la por-voka parametro aŭ BP-avertoj. Rekomendita ŜALTITA kiel la unua elekto; malŝaltu nur por modeloj kun tre malgrandaj kuntekstaj fenestroj. Malŝalti ĉi tion povas malbonigi skriban precizecon. Postulas restartigon por ekvalidi.",
144
144
  "features.enable_strict_mandatory_bps.label": "Strikta plejbonaj-praktikoj reĝimo",
@@ -516,6 +516,8 @@
516
516
  "advanced.code_mode_saved_tools_path.help": "JSON-dosiero uzata por persisti proprajn ilojn tra restartigoj.",
517
517
  "advanced.extra_yaml_write_keys.label": "Ekstraj YAML-skribaj ŝlosiloj",
518
518
  "advanced.extra_yaml_write_keys.help": "Kromaj ĉefnivelaj ŝlosiloj, kiujn ha_config_set_yaml povas skribi krom la enkonstruitaj, por YAML-unuaj integriĝoj en ĉi tiu instalo (ekz. alert2). Enigu unu ŝlosilon por ĉiu linio aŭ disigu ŝlosilojn per komoj. Ŝlosiloj, kiuj redefinas la propran fidlimon de Home Assistant, neniam povas esti aldoniĝaj kaj estas ignoritaj. Postulas la propran komponaĵon 1.2.4 aŭ pli novan.",
519
+ "advanced.redact_app_option_keys.label": "Pliaj aplikaĵopciaj ŝlosiloj por kaŝi",
520
+ "advanced.redact_app_option_keys.help": "Nomoj de aplikaĵaj (aldonaĵaj) opcioj kaŝendaj kiel pasvortkampoj, por aplikaĵoj kies skemo konservas sekreton kiel plata teksto (ekzemple backup_password). Disigu nomojn per komoj aŭ novaj linioj. Nomo aplikiĝas al ĉiu aplikaĵo; skribu app_slug:name por limigi ĝin al unu aplikaĵo. Nomi opciogrupon kovras ĉiun opcion en ĝi. Uzata nur dum \"Redact Secrets\" estas ŝaltita. Malplena defaŭlte.",
519
521
  "advanced.sidecar_pin_port.label": "Flankveturila pordo de Agorda UI",
520
522
  "advanced.sidecar_pin_port.help": "0 elektas liberan pordon ĉe unua komenco kaj konservas ĝin por postaj restartigoj; pordo en la intervalo pinglas preferatan pordon (falas al libera se okupata).",
521
523
  "advanced.enable_dev_mode.label": "Disvolva reĝimo",
@@ -138,7 +138,7 @@
138
138
  "features.read_only_mode.label": "Modo de solo lectura",
139
139
  "features.read_only_mode.help": "Desactiva todas las herramientas de escritura y elimina la capacidad de las herramientas para realizar llamadas de escritura o destructivas. Las herramientas mixtas de lectura/escritura (copias de seguridad, Apps (add-ons), preferencias de energía, canales de voz y el modo de código cuando está habilitado) siguen estando disponibles con sus operaciones de escritura bloqueadas. Es el mismo conmutador que en la pestaña Tools de la interfaz web. Desactivado por defecto. Requiere reiniciar para que surta efecto.",
140
140
  "features.redact_secrets.label": "Redactar secretos",
141
- "features.redact_secrets.help": "Elimina información confidencial de las respuestas de las herramientas antes de que lleguen al asistente de IA. Las opciones de la app (add-on) y los campos de integración marcados como contraseñas se reemplazan por un marcador de establecido/vacío (para que \"¿está esta credencial configurada?\" siga teniendo respuesta), y las respuestas de otras herramientas se depuran de valores secretos que el servidor ya ha visto (se omiten los valores de menos de 6 caracteres, ya que reemplazar fragmentos diminutos corrompería resultados no relacionados). Los campos no marcados como contraseñas por su esquema no se pueden detectar. Desactivado por defecto.",
141
+ "features.redact_secrets.help": "Elimina información confidencial de las respuestas de las herramientas antes de que lleguen al asistente de IA. Las opciones de la aplicación (complemento) y los campos de integración marcados como contraseñas se reemplazan por un marcador de establecido/vacío (para que se pueda responder a \"¿está configurada esta credencial?\"), y en las respuestas de otras herramientas se eliminan los valores confidenciales que el servidor ya ha visto (se omiten los valores de menos de 6 caracteres, ya que reemplazar fragmentos diminutos corrompería resultados no relacionados). No se detectan otros campos, excepto las claves privadas en las opciones de la aplicación y los nombres de opciones de la aplicación enumerados a continuación. Desactivado por defecto.",
142
142
  "features.enable_mandatory_bps.label": "Adjuntar skills de buenas prácticas en las escrituras",
143
143
  "features.enable_mandatory_bps.help": "Interruptor principal de la entrega de contenido de skills en las herramientas de escritura (issue #1182). Cuando está activado (predeterminado), las seis herramientas de escritura de configuración (automatizaciones, scripts, escenas, auxiliares, paneles, YAML en bruto) adjuntan los archivos de referencia canónicos de buenas prácticas de Home Assistant en `skill_content` tras cada escritura correcta, y además incrustan automáticamente las secciones de referencia citadas por los avisos de buenas prácticas. Cada herramienta expone también un parámetro `MandatoryBPS` por llamada que el agente puede poner a false en llamadas posteriores una vez que tiene el contenido. Con este interruptor principal desactivado NO se envía ningún skill_content, independientemente del parámetro por llamada o de los avisos de buenas prácticas. Se recomienda dejarlo activado; desactívalo solo para modelos con ventanas de contexto muy pequeñas. Desactivarlo puede degradar la precisión de las escrituras. Requiere reiniciar para que surta efecto.",
144
144
  "features.enable_strict_mandatory_bps.label": "Modo estricto de buenas prácticas",
@@ -516,6 +516,8 @@
516
516
  "advanced.code_mode_saved_tools_path.help": "Archivo JSON utilizado para persistir herramientas personalizadas entre reinicios.",
517
517
  "advanced.extra_yaml_write_keys.label": "Claves YAML de escritura adicionales",
518
518
  "advanced.extra_yaml_write_keys.help": "Claves adicionales de nivel superior que ha_config_set_yaml puede escribir además de las integradas, para integraciones basadas en YAML en esta instalación (p. ej., alert2). Introduce una clave por línea o sepáralas con comas. Las claves que redefinen el límite de confianza propio de Home Assistant nunca se pueden añadir y se ignoran. Requiere el componente personalizado 1.2.4 o posterior.",
519
+ "advanced.redact_app_option_keys.label": "Claves adicionales de opciones de aplicación para ocultar",
520
+ "advanced.redact_app_option_keys.help": "Nombres de opciones de la aplicación (complemento) para ocultar como los campos de contraseña, para aplicaciones cuyo esquema almacena un secreto como texto plano (por ejemplo, backup_password). Separa los nombres con comas o saltos de línea. Un nombre se aplica a todas las aplicaciones; escribe app_slug:name para limitarlo a una sola aplicación. Nombrar un grupo de opciones abarca todas las opciones que contiene. Se usa solo mientras la opción Redactar secretos esté activada. Vacío por defecto.",
519
521
  "advanced.sidecar_pin_port.label": "Puerto del sidecar de la interfaz de ajustes",
520
522
  "advanced.sidecar_pin_port.help": "0 selecciona un puerto libre en el primer inicio y lo mantiene para posteriores reinicios; un puerto dentro del rango fija un puerto preferido (recurre a uno libre si está ocupado).",
521
523
  "advanced.enable_dev_mode.label": "Modo de desarrollo",
@@ -138,7 +138,7 @@
138
138
  "features.read_only_mode.label": "Mode lecture seule",
139
139
  "features.read_only_mode.help": "Désactive tous les outils d'écriture et supprime la capacité des outils d'effectuer des appels d'écriture ou destructifs. Les outils mixtes lecture/écriture — sauvegardes, applications (add-ons), préférences énergétiques, pipelines vocaux et mode code lorsqu'il est activé — restent disponibles avec leurs opérations d'écriture bloquées. Même interrupteur que l'onglet Outils de l'interface Web. Désactivé par défaut. Nécessite un redémarrage pour prendre effet.",
140
140
  "features.redact_secrets.label": "Masquer les secrets",
141
- "features.redact_secrets.help": "Masque les secrets des réponses des outils avant qu'ils n'atteignent l'assistant IA. Les options de l'application (add-on) et les champs d'intégration marqués comme des mots de passe sont remplacés par un marqueur défini/vide (afin que la question \"ce secret est-il configuré ?\" puisse toujours recevoir une réponse), et les autres réponses des outils sont nettoyées des valeurs secrètes déjà vues par le serveur (les valeurs de moins de 6 caractères sont ignorées, car le remplacement de minuscules fragments corromprait des sorties sans rapport). Les champs non marqués comme mots de passe par leur schéma ne peuvent pas être détectés. Désactivé par défaut.",
141
+ "features.redact_secrets.help": "Masque les secrets dans les réponses des outils avant qu'ils n'atteignent l'assistant IA. Les options de l'application (add-on) et les champs d'intégration marqués comme mots de passe sont remplacés par un marqueur défini/vide (afin que la question « ce identifiant est-il configuré ? » reste traitable), et les autres réponses d'outils sont nettoyées des valeurs secrètes déjà vues par le serveur (les valeurs de moins de 6 caractères sont ignorées, car le remplacement de minuscules fragments corromprait des sorties sans rapport). Les autres champs ne sont pas détectés, à l'exception des clés privées dans les options de l'application et des noms d'options d'application listés ci-dessous. Désactivé par défaut.",
142
142
  "features.enable_mandatory_bps.label": "Attacher les compétences de bonnes pratiques aux écritures",
143
143
  "features.enable_mandatory_bps.help": "Interrupteur principal pour la fonction de livraison de contenu de compétences d'outils d'écriture (problème #1182). Lorsqu'il est activé (par défaut), les six outils d'écriture de configuration (automatisations, scripts, scènes, assistants, tableaux de bord, YAML brut) attachent les fichiers de référence canoniques des bonnes pratiques Home Assistant sous `skill_content` à chaque écriture réussie, plus l'intégration automatique de toutes les sections de référence citées par les avertissements de bonnes pratiques. Chaque outil expose également un paramètre `MandatoryBPS` par appel que l'agent peut définir sur false lors des appels suivants une fois qu'il a le contenu. Lorsque cet interrupteur principal est désactivé, AUCUN skill_content n'est émis, indépendamment du paramètre par appel ou des avertissements BP. Recommandé ACTIVÉ comme premier choix ; désactivez uniquement pour les modèles avec de très petites fenêtres de contexte. Désactiver ceci peut dégrader la précision des écritures. Nécessite un redémarrage pour prendre effet.",
144
144
  "features.enable_strict_mandatory_bps.label": "Mode strict de bonnes pratiques",
@@ -516,6 +516,8 @@
516
516
  "advanced.code_mode_saved_tools_path.help": "Fichier JSON utilisé pour persister les outils personnalisés entre les redémarrages.",
517
517
  "advanced.extra_yaml_write_keys.label": "Clés d'écriture YAML supplémentaires",
518
518
  "advanced.extra_yaml_write_keys.help": "Clés de premier niveau supplémentaires que ha_config_set_yaml peut écrire en plus de celles intégrées, pour les intégrations basées sur YAML sur cette installation (par ex. alert2). Entrez une clé par ligne ou séparez les clés par des virgules. Les clés qui redéfinissent la limite de confiance de Home Assistant ne peuvent jamais être ajoutées et sont ignorées. Nécessite le composant personnalisé 1.2.4 ou une version plus récente.",
519
+ "advanced.redact_app_option_keys.label": "Clés d'options d'application supplémentaires à masquer",
520
+ "advanced.redact_app_option_keys.help": "Noms d'options de l'application (add-on) à masquer comme les champs de mot de passe, pour les applications dont le schéma stocke un secret en texte brut (par exemple backup_password). Séparez les noms par des virgules ou des retours à la ligne. Un nom s'applique à toutes les applications ; écrivez app_slug:name pour le limiter à une seule application. Nommer un groupe d'options couvre toutes les options qu'il contient. Utilisé uniquement lorsque l'option Masquer les secrets est active. Vide par défaut.",
519
521
  "advanced.sidecar_pin_port.label": "Port du sidecar de l'interface des paramètres",
520
522
  "advanced.sidecar_pin_port.help": "0 choisit un port libre au premier démarrage et le conserve pour les redémarrages ultérieurs ; un port dans la plage épingle un port préféré (revient à un port libre s'il est pris).",
521
523
  "advanced.enable_dev_mode.label": "Mode développeur",
@@ -138,7 +138,7 @@
138
138
  "features.read_only_mode.label": "Modalità di sola lettura",
139
139
  "features.read_only_mode.help": "Disattiva tutti gli strumenti di scrittura e rimuove la capacità degli strumenti di effettuare chiamate di scrittura o distruttive. Gli strumenti misti di lettura/scrittura — backup, applicazioni (add-on), preferenze energetiche, pipeline vocali e la modalità codice quando abilitata — rimangono disponibili con le loro operazioni di scrittura bloccate. Stesso interruttore della scheda Tools dell'interfaccia web. Disattivato per impostazione predefinita. Richiede il riavvio per avere effetto.",
140
140
  "features.redact_secrets.label": "Rimuovi Segreti",
141
- "features.redact_secrets.help": "Rimuove le informazioni riservate dalle risposte degli strumenti prima che raggiungano l'assistente IA. Le opzioni dell'applicazione (add-on) e i campi di integrazione contrassegnati come password vengono sostituiti con un marcatore di impostato/vuoto (in modo che \"questa credenziale è configurata?\" rimanga interrogabile), e le risposte di altri strumenti vengono ripulite dai valori segreti che il server ha già visto (i valori più corti di 6 caratteri vengono ignorati, poiché la sostituzione di frammenti minuscoli corromperebbe output non correlati). I campi non contrassegnati come password dal loro schema non possono essere rilevati. Disattivato per impostazione predefinita.",
141
+ "features.redact_secrets.help": "Rimuove i dati sensibili dalle risposte degli strumenti prima che raggiungano l'assistente IA. Le opzioni dell'app (add-on) e i campi di integrazione contrassegnati come password vengono sostituiti con un indicatore di impostato/vuoto (in modo che sia comunque possibile rispondere a \"questa credenziale è configurata?\"), e le altre risposte degli strumenti vengono ripulite dai valori segreti che il server ha già visto (i valori più corti di 6 caratteri vengono ignorati, poiché la sostituzione di frammenti minuscoli corromperebbe output non correlati). Altri campi non vengono rilevati, ad eccezione delle chiavi private nelle opzioni dell'app e dei nomi di opzione dell'app elencati di seguito. Disattivato per impostazione predefinita.",
142
142
  "features.enable_mandatory_bps.label": "Allega le skill di buone pratiche alle scritture",
143
143
  "features.enable_mandatory_bps.help": "Interruttore principale della funzione che consegna il contenuto delle skill agli strumenti di scrittura (issue #1182). Quando è attivo (impostazione predefinita), i sei strumenti di scrittura della configurazione (automazioni, script, scene, helper, dashboard, YAML grezzo) allegano i file di riferimento canonici sulle buone pratiche di Home Assistant sotto `skill_content` a ogni scrittura riuscita e incorporano automaticamente le sezioni di riferimento citate dagli avvisi sulle buone pratiche. Ogni strumento espone inoltre un parametro `MandatoryBPS` per singola chiamata, che l'agente può impostare su false nelle chiamate successive una volta ottenuti i contenuti. Quando questo interruttore principale è disattivo NON viene inviato alcun skill_content, a prescindere dal parametro per singola chiamata o dagli avvisi sulle buone pratiche. Si consiglia di lasciarlo attivo come prima scelta; disattivalo solo per modelli con finestre di contesto molto piccole. Disattivarlo può peggiorare l'accuratezza delle scritture. Richiede il riavvio per avere effetto.",
144
144
  "features.enable_strict_mandatory_bps.label": "Modalità rigorosa per le buone pratiche",
@@ -516,6 +516,8 @@
516
516
  "advanced.code_mode_saved_tools_path.help": "File JSON utilizzato per mantenere i strumenti personalizzati tra i riavvii.",
517
517
  "advanced.extra_yaml_write_keys.label": "Chiavi YAML scrivibili aggiuntive",
518
518
  "advanced.extra_yaml_write_keys.help": "Ulteriori chiavi di primo livello che ha_config_set_yaml può scrivere oltre a quelle integrate, per le integrazioni YAML-first su questa installazione (ad es. alert2). Inserisci una chiave per riga o separa le chiavi con virgole. Le chiavi che ridefiniscono il limite di sicurezza di Home Assistant non possono mai essere aggiunte e vengono ignorate. Richiede il componente personalizzato 1.2.4 o successivo.",
519
+ "advanced.redact_app_option_keys.label": "Chiavi opzione app extra da oscurare",
520
+ "advanced.redact_app_option_keys.help": "Nomi di opzioni dell'app (add-on) da oscurare come i campi password, per le app il cui schema memorizza un segreto come testo in chiaro (ad esempio backup_password). Separa i nomi con virgole o nuove righe. Un nome si applica a ogni app; scrivi app_slug:name per limitarlo a una singola app. Denominare un gruppo di opzioni copre ogni opzione al suo interno. Utilizzato solo quando l'opzione Rimuovi dati sensibili è attiva. Vuoto per impostazione predefinita.",
519
521
  "advanced.sidecar_pin_port.label": "Porta del sidecar dell'interfaccia delle impostazioni",
520
522
  "advanced.sidecar_pin_port.help": "0 sceglie una porta libera al primo avvio e la mantiene per i riavvii successivi; una porta nell'intervallo fissa una porta preferita (passa a una libera se occupata).",
521
523
  "advanced.enable_dev_mode.label": "Modalità sviluppatore",
@@ -138,7 +138,7 @@
138
138
  "features.read_only_mode.label": "읽기 전용 모드",
139
139
  "features.read_only_mode.help": "모든 쓰기 도구를 끄고, 도구가 쓰기 또는 파괴적 호출을 하지 못하게 합니다. 읽기와 쓰기가 섞인 도구(백업, 앱(애드온), 에너지 환경설정, 음성 파이프라인, 활성화된 경우 코드 모드)는 쓰기 작업만 차단된 채 계속 사용할 수 있습니다. 웹 UI 도구 탭의 토글과 같은 설정입니다. 기본값은 꺼짐입니다. 적용하려면 다시 시작해야 합니다.",
140
140
  "features.redact_secrets.label": "비밀 정보 가리기",
141
- "features.redact_secrets.help": "도구 응답이 AI 어시스턴트에 전달되기 전에 비밀 정보를 가립니다. 앱(애드온) 옵션과 통합 구성요소 필드 중 비밀번호로 표시된 항목은 설정됨/비어 있음 표시로 대체되어 \"이 자격 증명이 설정되어 있는가?\"라는 질문에는 여전히 답할 수 있으며, 다른 도구 응답에서도 서버가 이미 확인한 비밀 값이 제거됩니다(6자 미만인 값은 건너뜁니다. 짧은 조각을 치환하면 관련 없는 출력까지 망가지기 때문입니다). 스키마에서 비밀번호로 표시하지 않은 필드는 감지할 수 없습니다. 기본값은 꺼짐입니다.",
141
+ "features.redact_secrets.help": "AI 어시스턴트에 도달하기 전에 도구 응답에서 민감한 정보를 숨깁니다. 앱(추가 기능) 옵션 및 비밀번호로 표시된 통합 필드는 설정됨/비어 있음 표시로 대체되어(\"이 자격 증명이 설정되어 있는지\" 여부는 계속 확인 가능) 처리되며, 서버가 이미 감지한 비밀 값은 다른 도구 응답에서 제거됩니다(너무 작은 조각을 바꾸면 관련 없는 출력이 손상될 수 있으므로 6자 미만의 값은 건너뜁니다). 앱 옵션의 비공개 키와 아래 나열된 앱 옵션 이름을 제외한 다른 필드는 감지되지 않습니다. 기본값은 꺼짐입니다.",
142
142
  "features.enable_mandatory_bps.label": "쓰기 시 모범 사례 스킬 첨부",
143
143
  "features.enable_mandatory_bps.help": "쓰기 도구 스킬 콘텐츠 전달 기능(이슈 #1182)의 마스터 스위치입니다. 켜져 있으면(기본값) 여섯 개의 설정 쓰기 도구(자동화, 스크립트, 장면, 헬퍼, 대시보드, 원시 YAML)가 쓰기에 성공할 때마다 Home Assistant 표준 모범 사례 참조 파일을 `skill_content`에 첨부하고, 모범 사례 경고가 인용한 참조 섹션도 자동으로 함께 넣습니다. 각 도구는 호출 단위 `MandatoryBPS` 매개변수도 제공하므로, 에이전트가 콘텐츠를 확보한 뒤에는 이후 호출에서 false로 설정할 수 있습니다. 이 마스터 스위치가 꺼져 있으면 호출 단위 매개변수나 모범 사례 경고와 관계없이 skill_content가 전혀 전달되지 않습니다. 켜 두는 것을 우선 권장하며, 컨텍스트 창이 매우 작은 모델에서만 끄세요. 끄면 쓰기 정확도가 떨어질 수 있습니다. 적용하려면 다시 시작해야 합니다.",
144
144
  "features.enable_strict_mandatory_bps.label": "엄격 모범 사례 모드",
@@ -516,6 +516,8 @@
516
516
  "advanced.code_mode_saved_tools_path.help": "재시작 후에도 사용자 지정 도구를 유지하는 데 사용되는 JSON 파일.",
517
517
  "advanced.extra_yaml_write_keys.label": "추가 YAML 쓰기 허용 키",
518
518
  "advanced.extra_yaml_write_keys.help": "이 설치에서 기본 키 외에 ha_config_set_yaml이 작성할 수 있는 추가 최상위 키입니다(예: alert2). 줄당 하나의 키를 입력하거나 쉼표로 구분하세요. Home Assistant 자체의 신뢰 경계를 재정의하는 키는 추가할 수 없으며 무시됩니다. 커스텀 구성 요소 1.2.4 버전 이상이 필요합니다.",
519
+ "advanced.redact_app_option_keys.label": "숨길 추가 앱 옵션 키",
520
+ "advanced.redact_app_option_keys.help": "스키마에 비밀 정보가 일반 텍스트로 저장되는 앱(예: backup_password)을 위해, 비밀번호 필드처럼 숨길 앱(추가 기능) 옵션 이름입니다. 쉼표나 새 줄로 이름을 구분하세요. 이름은 모든 앱에 적용되며, 특정 앱으로 제한하려면 app_slug:name 형식으로 작성하세요. 옵션 그룹 이름을 지정하면 그 안의 모든 옵션이 포함됩니다. '민감한 정보 숨기기'가 켜져 있는 동안에만 사용됩니다. 기본값은 비어 있음입니다.",
519
521
  "advanced.sidecar_pin_port.label": "설정 UI 사이드카 포트",
520
522
  "advanced.sidecar_pin_port.help": "0은 첫 시작 시 빈 포트를 선택하고 이후 재시작 시 유지합니다. 범위 내의 포트는 선호하는 포트를 고정합니다(사용 중인 경우 빈 포트로 대체됨).",
521
523
  "advanced.enable_dev_mode.label": "개발자 모드",
@@ -138,7 +138,7 @@
138
138
  "features.read_only_mode.label": "Alleen-lezen modus",
139
139
  "features.read_only_mode.help": "Schakelt alle schrijftools uit en verwijdert de mogelijkheid voor tools om schrijf- of destructieve aanroepen te doen. Gemengde lees-/schrijftools — back-ups, apps (add-ons), energievoorkeuren, spraakpijplijnen en codemodus wanneer ingeschakeld — blijven beschikbaar waarbij hun schrijfoperaties worden geblokkeerd. Dezelfde schakelaar als het web-ui-tabblad Tools. Standaard uit. Vereist herstart om van kracht te worden.",
140
140
  "features.redact_secrets.label": "Geheimen redigeren",
141
- "features.redact_secrets.help": "Verbergt geheimen uit toolresponsen voordat ze de AI-assistent bereiken. App (add-on)-opties en integratievelden die zijn gemarkeerd als wachtwoorden worden vervangen door een marker voor ingesteld/leeg (zodat \"is deze inloggegeven geconfigureerd?\" beantwoordbaar blijft), en andere toolresponsen worden opgeschoond van geheime waarden die de server al heeft gezien (waarden korter dan 6 tekens worden overgeslagen, aangezien het vervangen van kleine fragmenten gerelateerde uitvoer zou beschadigen). Velden die niet door hun schema als wachtwoord zijn gemarkeerd, kunnen niet worden gedetecteerd. Standaard uit.",
141
+ "features.redact_secrets.help": "Verbergt geheimen in toolreacties voordat ze de AI-assistent bereiken. App-optie (add-on) velden en integratievelden die als wachtwoord zijn gemarkeerd, worden vervangen door een marker voor ingesteld/leeg (zodat \"is dit credential geconfigureerd?\" beantwoordbaar blijft), en andere toolreacties worden opgeschoond van geheime waarden die de server al heeft gezien (waarden korter dan 6 tekens worden overgeslagen, omdat het vervangen van kleine fragmenten ongerelateerde uitvoer zou beschadigen. Andere velden worden niet gedetecteerd, met uitzondering van privésleutels in app-opties en de hieronder vermelde app-optienamen. Standaard uitgeschakeld.",
142
142
  "features.enable_mandatory_bps.label": "Koppel best-practice vaardigheden aan schrijfbewerkingen",
143
143
  "features.enable_mandatory_bps.help": "Hoofdschakelaar voor de functie voor het leveren van vaardigheidsinhoud voor schrijftools (issue #1182). Wanneer ingeschakeld (standaard), koppelen de zes configuratie-schrijftools (automatiseringen, scripts, scènes, helpers, dashboards, ruwe YAML) de canonieke Home Assistant best-practice referentiebestanden onder `skill_content` bij elke succesvolle schrijfbewerking, plus automatisch ingebedde referentiesecties die worden genoemd in best-practice waarschuwingen. Elke tool exposeert ook een per-aanroep `MandatoryBPS`-parameter die de agent op 'false' kan zetten bij volgende aanroepen zodra deze de inhoud heeft. Wanneer deze hoofdschakelaar uit staat, wordt GEEN `skill_content` verzonden, ongeacht de per-aanroep parameter of BP-waarschuwingen. Aanbevolen AAN als eerste keuze; alleen uitschakelen voor modellen met zeer kleine contextvensters. Het uitschakelen hiervan kan de schijfnauwkeurigheid verminderen. Vereist een herstart om van kracht te worden.",
144
144
  "features.enable_strict_mandatory_bps.label": "Strikte best-practices modus",
@@ -516,6 +516,8 @@
516
516
  "advanced.code_mode_saved_tools_path.help": "JSON-bestand dat wordt gebruikt om aangepaste tools te behouden na herstarts.",
517
517
  "advanced.extra_yaml_write_keys.label": "Extra YAML-schrijfsleutels",
518
518
  "advanced.extra_yaml_write_keys.help": "Extra sleutels op topniveau die ha_config_set_yaml kan schrijven naast de ingebouwde, voor YAML-first integraties op deze installatie (bijv. alert2). Voer één sleutel per regel in of scheid sleutels met komma's. Sleutels die de eigen vertrouwensgrens van Home Assistant herdefiniëren kunnen nooit worden toegevoegd en worden genegeerd. Vereist custom component 1.2.4 of nieuwere.",
519
+ "advanced.redact_app_option_keys.label": "Extra app-optiesleutels om te verbergen",
520
+ "advanced.redact_app_option_keys.help": "Namen van app-opties (add-on) om te verbergen zoals wachtwoordvelden, voor apps waarvan het schema een geheim opslaat als platte tekst (bijvoorbeeld backup_password). Scheid namen met komma's of nieuwe regels. Een naam is van toepassing op elke app; schrijf app_slug:name om het te beperken tot één app. Het benoemen van een optiegroep dekt elke optie daarin. Alleen gebruikt wanneer Verberg geheimen aan staat. Standaard leeg.",
519
521
  "advanced.sidecar_pin_port.label": "Instellingen UI sidecar-poort",
520
522
  "advanced.sidecar_pin_port.help": "0 kiest een vrije poort bij de eerste start en behoudt deze voor latere herstarts; een poort in het bereik zet een voorkeurspoort vast (valt terug op een vrije poort als deze bezet is).",
521
523
  "advanced.enable_dev_mode.label": "Ontwikkelaarsmodus",
@@ -138,7 +138,7 @@
138
138
  "features.read_only_mode.label": "Tryb tylko do odczytu",
139
139
  "features.read_only_mode.help": "Wyłącza wszystkie narzędzia zapisujące oraz usuwa możliwość wykonywania przez narzędzia jakichkolwiek wywołań zapisujących lub destrukcyjnych. Mieszane narzędzia do odczytu i zapisu — kopie zapasowe, aplikacje (dodatki), preferencje energii, potoki głosowe oraz tryb kodu, gdy jest włączony — pozostają dostępne z zablokowanymi operacjami zapisu. Ten sam przełącznik co na karcie Narzędzia w interfejsie webowym. Domyślnie wyłączony. Wymaga ponownego uruchomienia, aby zacząć obowiązywać.",
140
140
  "features.redact_secrets.label": "Redaguj sekrety",
141
- "features.redact_secrets.help": "Usuwa poufne dane z odpowiedzi narzędzi, zanim dotrą one do asystenta AI. Opcje aplikacji (dodatku) i pola integracji oznaczone jako hasła są zastępowane znacznikiem ustawienia/pustej wartości (dzięki czemu na pytanie \"czy to poświadczenie jest skonfigurowane?\" nadal można odpowiedzieć), a inne odpowiedzi narzędzi są czyszczone z poufnych wartości, które serwer już widział (wartości krótsze niż 6 znaków są pomijane, ponieważ zastępowanie malutkich fragmentów mogłoby uszkodzić powiązane dane wyjściowe). Pola nieoznaczone jako hasła przez ich schemat nie mogą zostać wykryte. Domyślnie wyłączone.",
141
+ "features.redact_secrets.help": "Usuwa poufne dane (sekrety) z odpowiedzi narzędzi przed ich dotarciem do asystenta AI. Opcje aplikacji (dodatku) oraz pola integracji oznaczone jako hasła są zastępowane znacznikiem ustawienia/pustej wartości (dzięki czemu nadal można odpowiedzieć na pytanie „czy te poświadczenia są skonfigurowane?”), a pozostałe odpowiedzi narzędzi są czyszczone z poufnych wartości, które serwer już widział (wartości krótsze niż 6 znaków są pomijane, ponieważ zastępowanie małych fragmentów mogłoby uszkodzić niezwiązane z nimi dane wyjściowe). Inne pola nie są wykrywane, z wyjątkiem kluczy prywatnych w opcjach aplikacji oraz nazw opcji aplikacji wymienionych poniżej. Domyślnie wyłączone.",
142
142
  "features.enable_mandatory_bps.label": "Dołącz umiejętności najlepszych praktyk przy zapisach",
143
143
  "features.enable_mandatory_bps.help": "Główny przełącznik funkcji dostarczania treści umiejętności narzędzi do zapisu (problem #1182). Gdy włączone (domyślnie), sześć narzędzi do zapisu konfiguracji (automatyzacje, skrypty, sceny, pomocnicy, panele, surowy YAML) dołącza kanoniczne pliki referencyjne najlepszych praktyk Home Assistant w sekcji `skill_content` przy każdym udanym zapisie, plus automatycznie osadza wszelkie sekcje referencyjne cytowane w ostrzeżeniach dotyczących najlepszych praktyk. Każde narzędzie udostępnia również parametr `MandatoryBPS` dla każdego wywołania, który agent może ustawić na „fałsz” w kolejnych wywołaniach, gdy już posiada treść. Gdy ten główny przełącznik jest wyłączony, ŻADNA treść `skill_content` nie jest wysyłana, niezależnie od parametru dla każdego wywołania lub ostrzeżeń BP. Zalecane WŁĄCZONE jako pierwszy wybór; wyłącz tylko dla modeli z bardzo małymi oknami kontekstowymi. Wyłączenie tej opcji może obniżyć dokładność zapisu. Wymaga ponownego uruchomienia, aby zmiany weszły w życie.",
144
144
  "features.enable_strict_mandatory_bps.label": "Tryb ścisłych najlepszych praktyk",
@@ -516,6 +516,8 @@
516
516
  "advanced.code_mode_saved_tools_path.help": "Plik JSON używany do trwałego zachowania niestandardowych narzędzi między ponownymi uruchomieniami.",
517
517
  "advanced.extra_yaml_write_keys.label": "Dodatkowe klucze zapisu YAML",
518
518
  "advanced.extra_yaml_write_keys.help": "Dodatkowe klucze najwyższego poziomu, które ha_config_set_yaml może zapisywać oprócz wbudowanych, dla integracji opartych na plikach YAML w tej instalacji (np. alert2). Wpisz jeden klucz w linii lub oddziel klucze przecinkami. Klucze redefiniujące własną granicę zaufania Home Assistant nigdy nie mogą zostać dodane i są ignorowane. Wymaga niestandardowego komponentu 1.2.4 lub nowszego.",
519
+ "advanced.redact_app_option_keys.label": "Dodatkowe klucze opcji aplikacji do ukrycia",
520
+ "advanced.redact_app_option_keys.help": "Nazwy opcji aplikacji (dodatku) do ukrycia, tak jak pola haseł, dla aplikacji, których schemat przechowuje sekret jako zwykły tekst (na przykład backup_password). Rozdziel nazwy przecinkami lub nowymi liniami. Nazwa dotyczy każdej aplikacji; wpisz app_slug:name, aby ograniczyć ją do jednej aplikacji. Podanie nazwy grupy opcji obejmuje każdą opcję w niej zawartą. Używane tylko wtedy, gdy funkcja ukrywania sekretów jest włączona. Domyślnie puste.",
519
521
  "advanced.sidecar_pin_port.label": "Port sidecar interfejsu ustawień",
520
522
  "advanced.sidecar_pin_port.help": "Wartość 0 wybiera wolny port przy pierwszym uruchomieniu i zachowuje go na kolejne restarty; port z podanego zakresu przypisuje preferowany port (w razie zajętości następuje powrót do wolnego portu).",
521
523
  "advanced.enable_dev_mode.label": "Tryb dewelopera",
@@ -138,7 +138,7 @@
138
138
  "features.read_only_mode.label": "Режим только для чтения",
139
139
  "features.read_only_mode.help": "Отключает все инструменты записи и убирает возможность для инструментов выполнять любые операции записи или деструктивные вызовы. Инструменты смешанного чтения/записи (резервные копии, приложения (аддоны), настройки энергии, голосовые конвейеры и режим кода при включении) остаются доступными с блокировкой операций записи. Тот же переключатель, что и на вкладке «Инструменты» в веб-интерфейсе. Выключен по умолчанию. Для применения требуется перезапуск.",
140
140
  "features.redact_secrets.label": "Скрывать секреты",
141
- "features.redact_secrets.help": "Удаляет секретные данные из ответов инструментов до того, как они попадут к ИИ-ассистенту. Опции приложения (аддона) и поля интеграций, помеченные как пароли, заменяются маркером заданного/пустого значения (чтобы оставался доступным ответ на вопрос «настроены ли эти учетные данные?»), а в ответах других инструментов маскируются секретные значения, которые сервер уже видел (значения короче 6 символов пропускаются, так как замена мелких фрагментов приведет к повреждению несвязанного вывода). Поля, не помеченные их схемой как пароли, обнаружить невозможно. Выключен по умолчанию.",
141
+ "features.redact_secrets.help": "Скрывает секретные данные в ответах инструментов до того, как они попадут к ИИ-ассистенту. Опции аддона (приложения) и поля интеграций, помеченные как пароли, заменяются на маркер заполненности/пустоты (чтобы на вопрос «настроена ли эта учётная запись?» можно было ответить), а из остальных ответов инструментов удаляются секретные значения, которые сервер уже видел (значения короче 6 символов пропускаются, так как замена мелких фрагментов может повредить несвязанный вывод). Другие поля не обнаруживаются, за исключением приватных ключей в опциях приложений и имён опций приложений, перечисленных ниже. По умолчанию выключено.",
142
142
  "features.enable_mandatory_bps.label": "Прикреплять навыки с рекомендациями при записи",
143
143
  "features.enable_mandatory_bps.help": "Главный переключатель функции доставки содержимого навыков для инструментов записи (issue #1182). Если он включён (по умолчанию), шесть инструментов записи конфигурации (автоматизации, скрипты, сцены, помощники, панели и необработанный YAML) при каждой успешной записи прикрепляют канонические справочные файлы с рекомендациями Home Assistant в поле `skill_content`, а также автоматически встраивают все разделы справки, упомянутые в предупреждениях о рекомендациях. Каждый инструмент также предоставляет параметр `MandatoryBPS` для отдельного вызова, который агент может установить в false при последующих вызовах после получения содержимого. Если этот главный переключатель выключен, содержимое skill_content НЕ отправляется независимо от параметра отдельного вызова или предупреждений BP. Рекомендуется оставить ВКЛЮЧЁННЫМ; отключайте только для моделей с очень маленьким контекстным окном. Отключение может снизить точность записи. Для применения требуется перезапуск.",
144
144
  "features.enable_strict_mandatory_bps.label": "Строгий режим рекомендаций",
@@ -516,6 +516,8 @@
516
516
  "advanced.code_mode_saved_tools_path.help": "JSON-файл, используемый для сохранения пользовательских инструментов между перезапусками.",
517
517
  "advanced.extra_yaml_write_keys.label": "Дополнительные YAML-ключи для записи",
518
518
  "advanced.extra_yaml_write_keys.help": "Дополнительные ключи верхнего уровня, которые ha_config_set_yaml может записывать в дополнение к встроенным для YAML-ориентированных интеграций в этой установке (например, alert2). Введите по одному ключу на строку или разделяйте ключи запятыми. Ключи, переопределяющие собственную границу доверия Home Assistant, не могут быть добавлены и игнорируются. Требуется пользовательский компонент 1.2.4 или новее.",
519
+ "advanced.redact_app_option_keys.label": "Дополнительные ключи опций приложения для скрытия",
520
+ "advanced.redact_app_option_keys.help": "Имена опций аддона (приложения) для скрытия, аналогичные полям паролей, для приложений, чья схема хранит секрет в виде обычного текста (например, backup_password). Разделяйте имена запятыми или переносами строк. Имя применяется к каждому приложению; укажите app_slug:name, чтобы ограничить его одним приложением. Указание имени группы опций охватывает каждую опцию в ней. Используется только при включенной функции «Скрывать секреты». По умолчанию пусто.",
519
521
  "advanced.sidecar_pin_port.label": "Порт sidecar интерфейса настроек",
520
522
  "advanced.sidecar_pin_port.help": "0 выбирает свободный порт при первом запуске и сохраняет его для последующих перезапусков; порт из указанного диапазона закрепляет предпочитаемый порт (при занятости происходит возврат к свободному).",
521
523
  "advanced.enable_dev_mode.label": "Режим разработчика",
@@ -138,7 +138,7 @@
138
138
  "features.read_only_mode.label": "Skrivskyddat läge",
139
139
  "features.read_only_mode.help": "Stänger av alla skrivverktyg och tar bort möjligheten för verktyg att göra några skrivningar eller destruktiva anrop. Blandade läs-/skrivverktyg – säkerhetskopior, appar (tillägg), energipreferenser, röstpipeliner och kodläge när det är aktiverat – förblir tillgängliga men med sina skrivåtgärder blockerade. Samma reglage som på fliken Tools i webbgränssnittet. Av som standard. Kräver omstart för att träda i kraft.",
140
140
  "features.redact_secrets.label": "Redigera hemligheter",
141
- "features.redact_secrets.help": "Döljer hemligheter från verktygssvar innan de når AI-assistenten. Appalternativ (tilläggsalternativ) och integrationsfält markerade som lösenord ersätts med en markering för satt/tomt (så att \"är denna autentiseringsuppgift konfigurerad?\" fortfarande kan besvaras), och andra verktygssvar rensas från hemliga värden som servern redan har sett (värden kortare än 6 tecken hoppas över, eftersom utbyte av små fragment skulle korruptera orelaterad utdata). Fält som inte är markerade som lösenord av sitt schema kan inte upptäckas. Av som standard.",
141
+ "features.redact_secrets.help": "Döljer hemligheter från verktygsrespons innan de når AI-assistenten. Appalternativ (tillägg) och integreringsfält markerade som lösenord ersätts med en satt/tom-markör (så att \"är denna uppgift konfigurerad?\" kan besvaras), och annan verktygsrespons rensas från hemliga värden som servern redan har sett (värden kortare än 6 tecken hoppas över, eftersom utbyte av små fragment skulle skada orelaterad utdata. Andra fält upptäcks inte, förutom privata nycklar i appalternativ och de appalternativnamn som listas nedan. Av som standard.",
142
142
  "features.enable_mandatory_bps.label": "Bifoga bästa praxis-färdigheter vid skrivningar",
143
143
  "features.enable_mandatory_bps.help": "Huvudbrytare för funktionen för leverans av skrivverktygsfärdighetsinnehåll (ärende #1182). När aktiverat (standard), bifogar de sex konfigurationsskrivverktygen (automatiseringar, skript, scener, hjälpare, instrumentpaneler, rå YAML) de kanoniska Home Assistant bästa praxis-referensfilerna under `skill_content` vid varje lyckad skrivning, plus att de automatiskt bäddar in alla referenssektioner som citeras av bästa praxis-varningar. Varje verktyg exponerar också en per-anrop `MandatoryBPS`-parameter som agenten kan sätta till false vid efterföljande anrop när den har innehållet. När denna huvudbrytare är avstängd, skickas INGET skill_content ut oavsett per-anrop-parametern eller BP-varningar. Rekommenderas PÅ som första val; inaktivera endast för modeller med mycket små kontextfönster. Att stänga av detta kan försämra skrivnoggrannheten. Kräver omstart för att träda i kraft.",
144
144
  "features.enable_strict_mandatory_bps.label": "Strikt bästa praxis-läge",
@@ -516,6 +516,8 @@
516
516
  "advanced.code_mode_saved_tools_path.help": "JSON-fil som används för att spara anpassade verktyg mellan omstarter.",
517
517
  "advanced.extra_yaml_write_keys.label": "Extra YAML-skrivnycklar",
518
518
  "advanced.extra_yaml_write_keys.help": "Extra toppnivånycklar som ha_config_set_yaml kan skriva utöver de inbyggda, för YAML-första integrationer på den här installationen (t.ex. alert2). Ange en nyckel per rad eller separera nycklar med kommatecken. Nycklar som omdefinierar Home Assistants egna förtroendegräns kan aldrig läggas till och ignoreras. Kräver anpassad komponent 1.2.4 eller nyare.",
519
+ "advanced.redact_app_option_keys.label": "Extra appalternativnycklar att dölja",
520
+ "advanced.redact_app_option_keys.help": "Appalternativnamn (tillägg) att dölja som lösenordsfält, för appar vars schema lagrar en hemlighet som klartext (till exempel backup_password). Separera namn med kommatecken eller nya rader. Ett namn gäller för varje app; skriv app_slug:name för att begränsa det till en app. Att namnge en alternativgrupp täcker varje alternativ i den. Används endast när Dölj hemligheter är aktiverat. Tom som standard.",
519
521
  "advanced.sidecar_pin_port.label": "Inställnings-UI sidovagnsport",
520
522
  "advanced.sidecar_pin_port.help": "0 väljer en ledig port vid första start och behåller den för senare omstarter; en port i intervallet låser fast en föredragen port (återgår till en ledig om den är upptagen).",
521
523
  "advanced.enable_dev_mode.label": "Utvecklarläge",
@@ -138,7 +138,7 @@
138
138
  "features.read_only_mode.label": "只读模式",
139
139
  "features.read_only_mode.help": "关闭所有写入工具,并移除工具执行任何写入或破坏性调用的能力。混合读写工具(备份、应用(附加组件)、能源偏好设置、语音管道,以及启用时的代码模式)在保持可用的同时,其写入操作会被阻止。与网页端 UI 的“工具”标签页使用相同的开关。默认关闭。需要重启才能生效。",
140
140
  "features.redact_secrets.label": "遮盖密文",
141
- "features.redact_secrets.help": "在工具响应到达 AI 助手之前,对其机密信息进行红线遮掩(脱敏)。应用(附加组件)选项和标记为密码的集成字段将被替换为已设置/空标记(以便“此凭据是否已配置?”保持可回答状态),并且其他工具响应将被清除服务器已见过的机密值(长度小于 6 个字符的值将被跳过,因为替换微小的片段会破坏不相关的输出)。其架构未标记为密码的字段无法被检测到。默认关闭。",
141
+ "features.redact_secrets.help": "在工具响应到达 AI 助手之前对其机密信息进行脱敏。标记为密码的应用(加载项)选项和集成字段会被替换为已设置/空标记(以便仍可回答“此凭据是否已配置?”),并且服务器已见过的其他工具响应中的机密值也会被清除(长度小于 6 个字符的值会被跳过,因为替换微小的片段会破坏不相关的输出)。除了应用选项中的私钥以及下方列出的应用选项名称外,不会检测其他字段。默认关闭。",
142
142
  "features.enable_mandatory_bps.label": "写入时附加最佳实践技能",
143
143
  "features.enable_mandatory_bps.help": "写入工具技能内容投递功能(issue #1182)的主开关。启用时(默认),六个配置写入工具(自动化、脚本、场景、辅助元素、仪表盘、原始 YAML)会在每次成功写入时于 `skill_content` 下附加规范的 Home Assistant 最佳实践参考文件,并自动嵌入最佳实践警告引用的任何参考章节。每个工具还暴露一个逐调用 `MandatoryBPS` 参数,智能体在获得内容后的后续调用中可将其设为 false。当此主开关关闭时,无论逐调用参数或 BP 警告如何,都不会输出 skill_content。建议默认开启;仅在上下文窗口极小的模型上才禁用。关闭可能降低写入准确性。需要重启才能生效。",
144
144
  "features.enable_strict_mandatory_bps.label": "严格最佳实践模式",
@@ -516,6 +516,8 @@
516
516
  "advanced.code_mode_saved_tools_path.help": "用于在重启之间持久化自定义工具的 JSON 文件。",
517
517
  "advanced.extra_yaml_write_keys.label": "额外的 YAML 可写键",
518
518
  "advanced.extra_yaml_write_keys.help": "此安装中面向 YAML 优先的集成(例如 alert2)除内置键外,ha_config_set_yaml 还可写入的额外顶级键。每行输入一个键或用逗号分隔键。重新定义 Home Assistant 自身信任边界的键永远无法添加且将被忽略。需要自定义组件 1.2.4 或更新版本。",
519
+ "advanced.redact_app_option_keys.label": "要脱敏的额外应用选项键",
520
+ "advanced.redact_app_option_keys.help": "要像密码字段一样进行脱敏的应用(加载项)选项名称,适用于其架构将机密存储为纯文本的应用(例如 backup_password)。使用逗号或换行符分隔名称。名称适用于所有应用;若要将其限制为一个应用,请编写 app_slug:name。命名选项组将涵盖其中的所有选项。仅在开启“Redact Secrets”时使用。默认留空。",
519
521
  "advanced.sidecar_pin_port.label": "设置界面旁路服务端口",
520
522
  "advanced.sidecar_pin_port.help": "0 会在首次启动时选择一个空闲端口并在后续重启中保留;范围内的端口会固定一个首选端口(若被占用则回退到空闲端口)。",
521
523
  "advanced.enable_dev_mode.label": "开发者模式",
@@ -138,7 +138,7 @@
138
138
  "features.read_only_mode.label": "唯讀模式",
139
139
  "features.read_only_mode.help": "將所有寫入工具關閉,並移除工具進行任何寫入或具破壞性呼叫的能力。混合讀取/寫入工具(備份、應用程式(附加元件)、能源偏好設定、語音管線,以及啟用時的程式碼模式)將保持可用,但其寫入操作會被封鎖。與網頁 UI「工具」分頁中的切換開關相同。預設為關閉。需要重新啟動才能生效。",
140
140
  "features.redact_secrets.label": "遮蔽機密資訊",
141
- "features.redact_secrets.help": "在工具回應到達 AI 助理之前,將其中的機密資訊遮蔽。應用程式(附加元件)選項以及標記為密碼的整合欄位會被替換為已設定/空白標記(以便「此憑證是否已設定?」保持可回答),並且其他工具回應中會清除伺服器已經看過的機密值(小於 6 個字元的實值會被略過,因為替換微小片段會損壞不相關的輸出)。其結構定義未標記為密碼的欄位無法被偵測。預設為關閉。需要重新啟動才能生效。",
141
+ "features.redact_secrets.help": "在工具回應傳送至 AI 助理之前,從中修訂(隱藏)密碼等機密資訊。應用程式(附加元件)選項以及標記為密碼的整合欄位會被替換為設定/空白標記(以便回答「此憑證是否已設定?」),並且伺服器已見過的其他工具回應中的機密值也會被清除(小於 6 個字元的長度會被跳過,因為替換微小的片段會損壞不相關的輸出)。除了應用程式選項中的私密金鑰以及下方列出的應用程式選項名稱外,不會偵測其他欄位。預設為關閉。",
142
142
  "features.enable_mandatory_bps.label": "寫入時附加最佳實踐技能",
143
143
  "features.enable_mandatory_bps.help": "寫入工具技能內容傳遞功能的主開關(issue #1182)。啟用時(預設),六個設定寫入工具(自動化、指令碼、場景、輔助程式、儀表板、原始 YAML)會在每次成功寫入時,於 `skill_content` 下方附加標準的 Home Assistant 最佳實踐參考檔案,並自動嵌入最佳實踐警告所引用的任何參考章節。每個工具也公開了每次呼叫皆有的 `MandatoryBPS` 參數,一旦代理程式取得內容,便可在後續呼叫中將其設定為 false。當此主開關關閉時,無論每次呼叫的參數或最佳實踐警告為何,都不會發出任何 skill_content。建議作為首選保持「開啟」;僅對上下文視窗非常小的模型進行停用。關閉此功能可能會降低寫入準確度。需要重新啟動才能生效。",
144
144
  "features.enable_strict_mandatory_bps.label": "嚴格最佳實踐模式",
@@ -516,6 +516,8 @@
516
516
  "advanced.code_mode_saved_tools_path.help": "用於在重新啟動之間保存自訂工具的 JSON 檔案。",
517
517
  "advanced.extra_yaml_write_keys.label": "額外的 YAML 寫入金鑰",
518
518
  "advanced.extra_yaml_write_keys.help": "除了內建的頂層鍵之外,ha_config_set_yaml 還可以為此安裝中的 YAML 優先整合(例如 alert2)寫入額外的頂層鍵。每行輸入一個鍵,或用逗號分隔鍵。重新定義 Home Assistant 自身信任邊界的鍵永遠無法被新增且將被忽略。需要自訂元件 1.2.4 或更新版本。",
519
+ "advanced.redact_app_option_keys.label": "要修訂的額外應用程式選項金鑰",
520
+ "advanced.redact_app_option_keys.help": "針對其結構描述將機密儲存為純文字(例如 backup_password)的應用程式,指定要像密碼欄位一樣進行修訂的應用程式(附加元件)選項名稱。多個名稱請用逗號或新行分隔。名稱適用於所有應用程式;若要限制為單一應用程式,請寫成 app_slug:name。命名選項群組會涵蓋其中的所有選項。僅在啟用「修訂機密」時使用。預設為空白。",
519
521
  "advanced.sidecar_pin_port.label": "設定 UI sidecar 連接埠",
520
522
  "advanced.sidecar_pin_port.help": "0 會在首次啟動時挑選一個可用連接埠並保留給後續重新啟動使用;範圍內的連接埠會釘選偏好的連接埠(若已被佔用則會改用可用連接埠)。",
521
523
  "advanced.enable_dev_mode.label": "開發者模式",