export type ManagerLookupResult = { manager: T | null; error?: string; }; export function formatErrorMessage(err: unknown): string { return err instanceof Error ? err.message : String(err); } export async function withManager(params: { getManager: () => Promise>; onMissing: (error?: string) => void; run: (manager: T) => Promise; close: (manager: T) => Promise; onCloseError?: (err: unknown) => void; }): Promise { const { manager, error } = await params.getManager(); if (!manager) { params.onMissing(error); return; } try { await params.run(manager); } finally { try { await params.close(manager); } catch (err) { params.onCloseError?.(err); } } } export async function runCommandWithRuntime( runtime: { error: (message: string) => void; exit: (code: number) => void }, action: () => Promise, onError?: (error: unknown) => void, ): Promise { try { await action(); } catch (err) { if (onError) { onError(err); return; } runtime.error(String(err)); runtime.exit(1); } }