feat: add trans playwright passthrough

This commit is contained in:
Codex
2026-06-14 00:44:11 +00:00
parent e5860cc36c
commit fd8954e443
6 changed files with 493 additions and 8 deletions
+20
View File
@@ -19,6 +19,10 @@ import {
type SshRemoteCommandExecutor,
type SshRemoteCommandStreamHandlers,
} from "./ssh-file-transfer";
import {
isSshPlaywrightOperation,
runSshPlaywrightOperation,
} from "./ssh-playwright";
export interface ParsedSshArgs {
remoteCommand: string | null;
@@ -938,6 +942,9 @@ export function parseSshArgs(args: string[]): ParsedSshArgs {
if (subcommand === "py") {
return { remoteCommand: buildPythonStdinCommand(args.slice(1)), requiresStdin: true, invocationKind: "helper" };
}
if (subcommand === "playwright") {
return { remoteCommand: null, requiresStdin: true, invocationKind: "helper" };
}
if (subcommand === "script" || subcommand === "sh") {
return buildShellCommand(args.slice(1));
}
@@ -1126,6 +1133,9 @@ function parseWinRouteArgs(route: ParsedSshRoute, args: string[]): ParsedSshArgs
invocationKind: "helper",
};
}
if (operation === "playwright") {
return { remoteCommand: null, requiresStdin: true, invocationKind: "helper" };
}
if (operation === "ps" || operation === "powershell" || operation === "powershell.exe") {
const commandArgs = args[1] === "--" ? args.slice(2) : args.slice(1);
if (commandArgs.length >= 2 && (commandArgs[0] === "-File" || commandArgs[0] === "-file")) {
@@ -3314,6 +3324,16 @@ export async function runSsh(config: UniDeskConfig, providerId: string, args: st
buildWindowsPowerShellCommand: buildWindowsPowerShellInvocation,
});
}
if (isSshPlaywrightOperation(normalizedArgs)) {
const executor: SshRemoteCommandExecutor = {
runRemoteCommand: (remoteCommand, input) => runSshCaptureRemoteCommand(config, invocation, remoteCommand, input),
streamRemoteCommand: (remoteCommand, handlers, input, options) => runSshStreamRemoteCommand(config, invocation, remoteCommand, handlers, input, options),
};
return await runSshPlaywrightOperation(invocation, normalizedArgs, executor, {
buildRouteCommand: remoteCommandForRoute,
buildWindowsPowerShellCommand: buildWindowsPowerShellInvocation,
});
}
if (operationName === "apply-patch") {
const applyPatch = effectiveApplyPatchV2Invocation(invocation, normalizedArgs.slice(1));
const executor: ApplyPatchV2Executor = applyPatch.invocation.route.plane === "win"