This commit is contained in:
2026-01-11 00:39:17 -08:00
parent 13caa8d5fa
commit 6eb02f22b5
9 changed files with 736 additions and 40 deletions

View File

@@ -43,15 +43,15 @@ def _get_registry() -> Dict[str, Any]:
return getattr(pkg, "REGISTRY", {}) or {}
def ensure_registry_loaded() -> None:
"""Ensure native commands are registered into REGISTRY (idempotent)."""
def ensure_registry_loaded(force: bool = False) -> None:
"""Ensure native commands are registered into REGISTRY (idempotent unless force=True)."""
pkg = _get_cmdlet_package()
if pkg is None:
return
ensure_fn = getattr(pkg, "ensure_cmdlet_modules_loaded", None)
if callable(ensure_fn):
try:
ensure_fn()
ensure_fn(force=force)
except Exception:
pass
@@ -171,9 +171,11 @@ def get_cmdlet_metadata(
}
def list_cmdlet_metadata(config: Optional[Dict[str, Any]] = None) -> Dict[str, Dict[str, Any]]:
def list_cmdlet_metadata(
force: bool = False, config: Optional[Dict[str, Any]] = None
) -> Dict[str, Dict[str, Any]]:
"""Collect metadata for all registered cmdlet keyed by canonical name."""
ensure_registry_loaded()
ensure_registry_loaded(force=force)
entries: Dict[str, Dict[str, Any]] = {}
registry = _get_registry()
for reg_name in registry.keys():
@@ -238,11 +240,13 @@ def list_cmdlet_metadata(config: Optional[Dict[str, Any]] = None) -> Dict[str, D
def list_cmdlet_names(
include_aliases: bool = True, config: Optional[Dict[str, Any]] = None
include_aliases: bool = True,
force: bool = False,
config: Optional[Dict[str, Any]] = None,
) -> List[str]:
"""Return sorted cmdlet names (optionally including aliases)."""
ensure_registry_loaded()
entries = list_cmdlet_metadata(config=config)
ensure_registry_loaded(force=force)
entries = list_cmdlet_metadata(force=force, config=config)
names = set()
for meta in entries.values():
names.add(meta.get("name", ""))