import { applyWindowsSpawnProgramPolicy, materializeWindowsSpawnProgram, resolveWindowsSpawnProgramCandidate, } from "openclaw/plugin-sdk/lobster"; type SpawnTarget = { command: string; argv: string[]; windowsHide?: boolean; }; export function resolveWindowsLobsterSpawn( execPath: string, argv: string[], env: NodeJS.ProcessEnv, ): SpawnTarget { const candidate = resolveWindowsSpawnProgramCandidate({ command: execPath, env, packageName: "lobster", }); const program = applyWindowsSpawnProgramPolicy({ candidate, allowShellFallback: false, }); const resolved = materializeWindowsSpawnProgram(program, argv); if (resolved.shell) { throw new Error("lobster wrapper resolved to shell fallback unexpectedly"); } return { command: resolved.command, argv: resolved.argv, windowsHide: resolved.windowsHide, }; }