alpacon event wait
결과를 정하는 이벤트 하나가 올 때까지 기다렸다가 그 이벤트를 출력하고 종료합니다. 결과는 종료 코드가 알려주므로 스크립트가 문장을 파싱할 필요가 없습니다.
자동화에 쓰라고 만든 명령어입니다. “요청한다”와 “결과에 따라 움직인다” 사이에 끼워 두면 답이 오는 순간 그 단계가 끝납니다. 작업 세션을 요청한 AI 에이전트라면 wait를 돌린 뒤 종료 코드만 보고 분기하면 됩니다. 0이면 진행, 6이면 거절, 4면 아직 미정입니다. --type과 --target이 무엇인지는 이벤트 채널이란에서 설명합니다.
alpacon event wait --type TYPE [--target TARGET_ID] [--until SUB_TYPE...] [--timeout DURATION]
옵션 (Options)
-h, --help wait 명령어에 대한 도움말 출력
--target string 대상 리소스 ID. 서버가 대상 없는 구독을 허용하면 생략 가능
--timeout duration 기다릴 시간 (기본값 5m0s)
--type string 구독할 이벤트 타입 (예: work_session) (필수)
--until strings 대기를 끝낼 서브 타입(쉼표 구분). 내장 조건을 덮어쓰며, 내장 조건이 없는 타입에는 필수
줄 형식은 전역 플래그 --output(table 또는 json)으로 정합니다.
종료 코드 (Exit codes)
| 코드 | 뜻 |
|---|---|
| 0 | 성공 집합에 해당하는 이벤트가 도착함 |
| 1 | 대기를 시작하지 못함: 연결 실패, 구독 거부, 사용법 오류 |
| 4 | 타임아웃 또는 중단. 결과는 아직 정해지지 않음 |
| 6 | 실패 집합에 해당하는 이벤트가 도착함 |
종료 코드 4는 실패가 아니라 결과가 아직 미정이라는 뜻입니다. --output json을 쓰면 alpacon exec와 같은 형태로 stdout에 {"status": "pending_approval", ...}을 출력합니다.
종료 조건
내장 종료 조건이 있는 타입은 work_session 하나뿐입니다.
| 집합 | 서브 타입 | 종료 코드 |
|---|---|---|
| 성공 | approved, activated | 0 |
| 실패 | rejected, expired, revoked, cancelled, completed | 6 |
그 밖의 타입은 대기를 끝낼 서브 타입을 --until로 지정하세요. --until은 내장 조건도 덮어씁니다. 실패 집합이 함께 사라지므로 종료 코드 6은 나오지 않습니다.
--until은 이벤트의 서브 타입과 맞춰 보므로 서브 타입을 내보내는 이벤트 타입에서만 대기를 끝낼 수 있습니다. 서브 타입이 없는 타입에 쓰면 타임아웃까지 기다린 뒤 종료 코드 4로 끝납니다.
결과를 놓치지 않는 방법
내장 종료 조건이 있는 타입에 --target까지 주면 구독한 직후 현재 상태를 한 번 읽습니다. 구독과 첫 이벤트 사이에 결과가 지나가 버려도 놓치지 않습니다. 끊긴 동안 발행된 이벤트는 유실되므로 재연결할 때마다 다시 읽습니다. 다른 타입에는 이 읽기가 붙지 않습니다.
출력
stdout에 한 줄이 나가고, 형식은 alpacon event watch와 같습니다. 나머지는 모두 stderr로 나갑니다.
예제
작업 세션 승인을 기다린 뒤 결과에 따라 분기:
alpacon event wait --type work_session --target a1b2c3d4-5678-abcd-ef01-234567890abc
case $? in
0) echo "approved" ;;
4) echo "still pending" ;;
6) echo "not approved" ;;
*) echo "could not wait" ;;
esac
최대 30분 대기:
alpacon event wait --type work_session --target a1b2c3d4-5678-abcd-ef01-234567890abc --timeout 30m
내장 실패 집합을 무시하고 승인일 때만 끝내기:
alpacon event wait --type work_session --target a1b2c3d4-5678-abcd-ef01-234567890abc --until approved
대상 ID 찾기
alpacon work-session ls를 실행하거나 Alpacon 콘솔에서 확인하세요.