diff --git a/hermes_cli/plugins.py b/hermes_cli/plugins.py index 73591443..ce57695f 100644 --- a/hermes_cli/plugins.py +++ b/hermes_cli/plugins.py @@ -36,7 +36,7 @@ import sys import types from dataclasses import dataclass, field from pathlib import Path -from typing import Any, Callable, Dict, List, Optional, Set +from typing import Any, Callable, Dict, List, Optional, Set, Union from utils import env_var_enabled @@ -95,7 +95,7 @@ class PluginManifest: version: str = "" description: str = "" author: str = "" - requires_env: List[str] = field(default_factory=list) + requires_env: List[Union[str, Dict[str, Any]]] = field(default_factory=list) provides_tools: List[str] = field(default_factory=list) provides_hooks: List[str] = field(default_factory=list) source: str = "" # "user", "project", or "entrypoint" diff --git a/hermes_cli/plugins_cmd.py b/hermes_cli/plugins_cmd.py index e794a3a1..bd6d7fab 100644 --- a/hermes_cli/plugins_cmd.py +++ b/hermes_cli/plugins_cmd.py @@ -165,13 +165,14 @@ def _prompt_plugin_env_vars(manifest: dict, console) -> None: url: "https://acme.com/keys" secret: true - Already-set variables are skipped. Values are saved to ``~/.hermes/.env``. + Already-set variables are skipped. Values are saved to the user's ``.env``. """ requires_env = manifest.get("requires_env") or [] if not requires_env: return from hermes_cli.config import get_env_value, save_env_value # noqa: F811 + from hermes_constants import display_hermes_home # Normalise to list-of-dicts env_specs: list[dict] = [] @@ -209,15 +210,15 @@ def _prompt_plugin_env_vars(manifest: dict, console) -> None: else: value = input(f" {name}: ").strip() except (EOFError, KeyboardInterrupt): - console.print("\n[dim] Skipped (you can set these later in ~/.hermes/.env)[/dim]") + console.print(f"\n[dim] Skipped (you can set these later in {display_hermes_home()}/.env)[/dim]") return if value: save_env_value(name, value) os.environ[name] = value - console.print(f" [green]✓[/green] Saved to ~/.hermes/.env") + console.print(f" [green]✓[/green] Saved to {display_hermes_home()}/.env") else: - console.print(f" [dim] Skipped (set {name} in ~/.hermes/.env later)[/dim]") + console.print(f" [dim] Skipped (set {name} in {display_hermes_home()}/.env later)[/dim]") console.print()