diff --git a/hermes_cli/auth.py b/hermes_cli/auth.py index a56919238..0941c6d91 100644 --- a/hermes_cli/auth.py +++ b/hermes_cli/auth.py @@ -923,7 +923,7 @@ def _prompt_model_selection(model_ids: List[str], current_model: str = "") -> Op custom = input("Enter model name: ").strip() return custom if custom else None return None - except ImportError: + except (ImportError, NotImplementedError): pass # Fallback: numbered list diff --git a/hermes_cli/main.py b/hermes_cli/main.py index a75f2612c..18d71451b 100644 --- a/hermes_cli/main.py +++ b/hermes_cli/main.py @@ -231,7 +231,7 @@ def _prompt_provider_choice(choices): idx = menu.show() print() return idx - except ImportError: + except (ImportError, NotImplementedError): pass # Fallback: numbered list diff --git a/hermes_cli/setup.py b/hermes_cli/setup.py index 861e32447..95c59213d 100644 --- a/hermes_cli/setup.py +++ b/hermes_cli/setup.py @@ -99,8 +99,8 @@ def prompt_choice(question: str, choices: list, default: int = 0) -> int: print() # Add newline after selection return idx - except ImportError: - # Fallback to number-based selection + except (ImportError, NotImplementedError): + # Fallback to number-based selection (simple_term_menu doesn't support Windows) for i, choice in enumerate(choices): marker = "●" if i == default else "○" if i == default: @@ -192,8 +192,8 @@ def prompt_checklist(title: str, items: list, pre_selected: list = None) -> list selected = list(terminal_menu.chosen_menu_indices or []) return selected - except ImportError: - # Fallback: numbered toggle interface + except (ImportError, NotImplementedError): + # Fallback: numbered toggle interface (simple_term_menu doesn't support Windows) selected = set(pre_selected) while True: diff --git a/hermes_cli/tools_config.py b/hermes_cli/tools_config.py index 646700463..bc9b552a9 100644 --- a/hermes_cli/tools_config.py +++ b/hermes_cli/tools_config.py @@ -116,7 +116,7 @@ def _prompt_choice(question: str, choices: list, default: int = 0) -> int: sys.exit(0) print() return idx - except ImportError: + except (ImportError, NotImplementedError): for i, c in enumerate(choices): marker = "●" if i == default else "○" style = Colors.GREEN if i == default else "" @@ -179,7 +179,7 @@ def _prompt_toolset_checklist(platform_label: str, enabled: Set[str]) -> Set[str return {CONFIGURABLE_TOOLSETS[i][0] for i in selected_indices} - except ImportError: + except (ImportError, NotImplementedError): # Fallback: numbered toggle selected = set(pre_selected_indices) while True: