5// Thin wrapper preserving the callback interface for existing callers (withDb, 6// migrateDb, guardPendingMigrations, devActions). Port-forward lifecycle is now 7// owned by portForwardMgr (self-healing) — no per-call establish/teardown. 8// Idempotent: ensureForwards no-ops for already-established svcs. 9export const wrapProxyMinikNodePorts = async <T,>( 10 callback: (k8sLocalFwdSvcPortsH?: Record<string, number>) => Promise<T>, 11 _opts?: { assumeDaemon?: boolean } 13 const { k8sProxyA } = k8sPortFwdCtx.getStore() || {} 15 if (!isDevPc || !k8sProxyA || k8sProxyA.length === 0) { 19 await portForwardMgr.ensureForwards(k8sProxyA as K8sProxyItem[]) 20 return callback(portForwardMgr.getEndpointMap())