프로그램 상태를 전달하는 터미널 프로토콜 OSC 7501

3 hours ago 4

OSC 7501은 프로그램이 대기, 실행, 사용자 개입 필요, 완료, 실패 상태와 그 이유를 터미널에 직접 알리는 새 이스케이프 시퀀스 명세임 화면이나 창 제목으로 상태를 추측하는 대신 프로그램이 자신의 상태를 보고하며, 별도 소켓 API와 달리 기존 pty를 통해 SSH나 컨테이너에서도 전달할 수 있음 state만 필수인 key=value 형식으로 진행률, 사용자에게 필요한 행동, 메시지를 전달하고, 계층형 ID로 여러 하위 작업의 상태를 동시에 표현함 POSIX sh만으로 연동 가능하며 SDK, 소켓, 환경 변수, JSON이 필요하지 않음 특정 GUI나 AI 작업에 종속되지 않는 범용 명세로, 프로그램은 상태를 전달하고 터미널은 표시 방식을 결정함 장시간 실행 작업의 상태를 직접 전달하기 OSC 7501, Program Status Protocol은 프로그램이 무엇을 하고 있는지와 그 이유를 터미널에 전달하는 범용 프로토콜임 Superlogical과 Ghostty 개발 과정에서 나왔지만, 명세에 제품 전용 기능이나 표현은 없음 터미널 개발자에게 익숙한 형식으로 설계한 터미널 네이티브 명세임 빌드, 배포, 패키지 업그레이드, 데이터 처리, 코딩 에이전트 같은 장시간 작업은 자체 실행, 사용자 입력 대기, 완료 사이를 오감 사용자는 다른 일을 하다가 작업이 끝나거나 자신의 개입이 필요할 때 알림을 받기를 원함 기존 터미널은 포그라운드 프로세스의 변화를 감시하거나 일정 시간 출력이 없는 상태를 감지하기도 함 그러나 진행 상황, 작업 중단과 사용자 개입 필요 여부, 완료, 작업 트리를 일관되게 전달하는 범용 해법이 부족하며, 기존 시퀀스를 조합하는 방식으로도 이를 견고하게 해결하기 어려움 예를 들어 Terraform은 state=blocked, kind=permission 과 함께 “Apply 3 to add, 1 to change, 0 to destroy?”라는 메시지를 base64로 전달할 수 있음 터미널이나 Terraform을 실행하는 도구는 이를 알림, 통합 상태함, 상태 아이콘 등 적절한 방식으로 표시할 수 있음 에이전트 통합 상태함과 기존 접근의 한계 에이전트 통합 상태함(agentic inbox) 은 실행 중인 여러 에이전트가 작업 중인지, 완료됐는지, 사용자 응답을 기다리는지 한 화면에서 보여주는 도구임 백그라운드 조사, 이슈 감시, 버그 수정, 대규모 기능 개발 등을 맡은 에이전트는 권한이나 답변을...

Read Entire Article