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); } } }