터미널 오프너은(는) 무엇을 하나요?
scripts/open-terminal.js를 사용하여 실행 파일과 모든 인수를 별도의 프로세스 항목으로 보존합니다. 셸 명령 문자열을 절대 보간하지 마세요. 모든 spawn은 shell: false로 유지하세요. 기본적으로 실행하지 않는 계획을 사용하세요. 사용자가 명시적으로 실제 창을 요청하고 argv를 검토한 후에만 --launch를 사용하세요. 실행된 프로세스는 호출 프로세스의 전체 환경(비밀 변수 포함)을 상속받습니다. 실행 프로그램은 환경을 필터링하지 않습니다. 대상 명령에 노출해도 안전한 환경의 셸에서 실행하세요.
명령 실행
실행기 옵션을 -- 앞에 전달하고, 정확히 하나의 실행 파일과 그 뒤에 인수 배열을 전달하세요:
node skills/terminal-opener/scripts/open-terminal.js \
--launch \
--cwd /absolute/host/path \
-- ssh -t example.test command-with-arguments
먼저 일반 모드로 실행하세요. WezTerm이 새로운 창으로 mux를 시도하게 하고, mux를 사용할 수 없는 경우 실행기가 분리된 wezterm start 프로세스로 폴백하게 하세요. 폴백이 사용될 때는 JSON 출력(또는 사람이 읽을 수 있는 실패 줄)에서 muxFailure를 읽어 mux 경로가 실패한 이유를 진단하세요.
터미널 설정에서 복구
사용자 설정이나 mux 상태가 요청된 명령을 방해할 수 있는 경우 --recover 또는 --standalone을 추가하세요. 다음 명령으로 분리된 WezTerm 프로세스를 시작하세요:
--skip-config start --always-new-process
복구 모드는 의도적으로 모든 사용자 터미널 설정을 건너뛸 것으로 예상하세요.
실행 전 검사
--launch를 생략하거나 --dry-run을 추가하고 --json을 추가하면 실행 파일, argv, 작업 디렉터리, 터미널 어댑터, 기본 실행 및 폴백을 창을 열지 않고 검사할 수 있습니다. JSON 계획을 호출자의 구성 경계로 취급하세요.
명령 없이 --detect --json을 실행하여 터미널 지원 여부를 확인하세요. 어댑터가 없거나 지원되지 않는 경우 반환된 action을 따르세요. 현재 어댑터에는 WezTerm을 사용하세요. 다른 요청된 터미널은 실행할 명령이 아닌 지원되지 않는 계획으로 처리하세요.