export const ACP_TERMINAL_AUTH_FLAG = "--acp-terminal-auth";

export interface AcpTerminalAuthArgs {
	args: string[];
	terminalAuth: boolean;
}

export function prepareAcpTerminalAuthArgs(rawArgs: readonly string[]): AcpTerminalAuthArgs {
	const withoutAuthFlag: string[] = [];
	let terminalAuth = false;
	for (const arg of rawArgs) {
		if (arg === ACP_TERMINAL_AUTH_FLAG) {
			terminalAuth = true;
			continue;
		}
		withoutAuthFlag.push(arg);
	}

	if (!terminalAuth) {
		return { args: withoutAuthFlag, terminalAuth: false };
	}

	const args: string[] = [];
	for (let i = 0; i < withoutAuthFlag.length; i++) {
		const arg = withoutAuthFlag[i];
		if (arg === "--mode") {
			i++;
			continue;
		}
		if (arg.startsWith("--mode=")) {
			continue;
		}
		args.push(arg);
	}

	return { args, terminalAuth: true };
}