CWSANDBOX_API_KEY에 설정된 CoreWeave API 액세스 토큰을 사용합니다. Forge API 키 인증은 시작하기를 참조하세요. CKS 요구 사항은 배치 모드를 참조하세요.
대화형 TTY 세션에는 Sandbox.shell()을 사용하세요. 이 메서드는 대화형 사용을 위해 설계된 TerminalSession을 반환하며, 출력 버퍼링 없이 원시 바이트 스트리밍을 제공합니다. 일괄 명령어 실행에는 대신 exec()을 사용하세요.
셸 세션
샌드박스를 생성하고 대화형 셸 세션을 엽니다. 인수 없이Sandbox.run()을 호출하면 기본 장기 실행 명령어를 사용합니다. 이후 예시는 이 컨텍스트가 여전히 활성 상태라고 가정합니다.
shell()은 항상 TTY를 할당하고 stdin을 활성화합니다. 반환된 TerminalSession은 UTF-8 디코딩이나 인코딩을 거치지 않고 원시 바이트를 스트림하므로 터미널 이스케이프 시퀀스와 바이너리 출력을 안전하게 처리할 수 있습니다.
명령어 전송 및 출력 조회
터미널 세션이 열린 상태에서 stdin에 명령어를 쓰고 원격 셸에서 병합된 바이트 출력을 스트림으로 받아오세요.TerminalSession은 출력을 버퍼링하지 않습니다. stdout과 stderr는 하나의 원시 바이트 스트림으로 병합되어 terminal.output으로 전달됩니다. 결과에는 별도의 stdout 또는 stderr 속성이 없습니다. terminal.output을 계속해서 조회하세요. 조회를 중단하면 크기가 제한된 큐에서 백프레셔가 발생하여 원격 세션이 멈춥니다.
터미널 크기 조정
터미널 크기가 변경될 때 크기 조정 메시지를 전송하세요.resize()는 TerminalSession에서 fire-and-forget입니다.
셸 세션 종료
stdin을 닫거나 exit 명령어를 전송하여 셸 세션을 종료하세요:terminal.wait() 또는 terminal.result()를 호출하세요.