()
| 624 | }, |
| 625 | |
| 626 | async listInstalledApps(): Promise<InstalledApp[]> { |
| 627 | // `ComputerUseInstalledApp` is `{bundleId, displayName, path}`. |
| 628 | // `InstalledApp` adds optional `iconDataUrl` — left unpopulated; |
| 629 | // the approval dialog fetches lazily via getAppIcon() below. |
| 630 | return drainRunLoop(() => cu.apps.listInstalled()) |
| 631 | }, |
| 632 | |
| 633 | async getAppIcon(path: string): Promise<string | undefined> { |
| 634 | return cu.apps.iconDataUrl(path) ?? undefined |
nothing calls this directly
no test coverage detected