diff options
Diffstat (limited to 'idatui/launch.py')
| -rw-r--r-- | idatui/launch.py | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/idatui/launch.py b/idatui/launch.py index 0c53987..e3cb091 100644 --- a/idatui/launch.py +++ b/idatui/launch.py @@ -36,8 +36,25 @@ def _log(msg: str) -> None: def _registered_databases() -> tuple[list[dict], list[dict]]: """Ready and blocked Code Mode registrations, with normalized errors.""" try: - from ida_codemode.registry import discover_instances - return discover_instances() + from ida_codemode import InstanceState, discover_databases + + ready: list[dict] = [] + blocked: list[dict] = [] + for discovered in discover_databases(): + instance = discovered.instance + item = { + "record_id": instance.record_id, + "backend": instance.backend, + "pid": instance.pid, + "exe_path": instance.exe_path, + "idb_path": instance.idb_path, + } + if discovered.state is InstanceState.READY: + ready.append(item) + else: + item["error"] = discovered.detail or "instance is unavailable" + blocked.append(item) + return ready, blocked except Exception as exc: # discovery diagnostics belong at the CLI boundary return [], [{"error": str(exc)}] |
