import { posix } from 'node:path' export function resolveContainerTerminal(inspectJson: string, moduleRoot: string): { id: string; cwd: string } { const [container] = JSON.parse(inspectJson) if (!container?.State?.Running) throw new Error('Module container is not running') const root = posix.resolve(moduleRoot) const mounts = (container.Mounts ?? []) as { Source: string; Destination: string }[] const mount = mounts .filter((item) => root === item.Source || root.startsWith(`${item.Source.replace(/\/$/, '')}/`)) .sort((a, b) => b.Source.length - a.Source.length)[0] if (!mount) throw new Error('Module workspace is not mounted in this container') return { id: container.Id, cwd: posix.join(mount.Destination, posix.relative(mount.Source, root)) } }