세션
세션은 앱을 만드는 하나의 작업 단위입니다. 에이전트가 파일을 고치고, 그 변경이 커밋으로 쌓이고, 필요하면 되돌립니다.
세션 만들기
POST /api/session
응답의 id 가 이후 모든 세션 호출의 {sessionId} 입니다.
살아 있음 알리기
POST /api/session/{sessionId}/ping
세션이 유휴로 정리되지 않게 주기적으로 보냅니다. 웹 UI가 작업 화면을 열어 두는 동안 계속 호출합니다.
파일
| 메서드 | 경로 | 하는 일 |
|---|---|---|
GET | /api/session/{sessionId}/files | 파일 목록 |
GET | /api/session/{sessionId}/file?path={path} | 파일 하나의 내용 |
GET | /api/session/{sessionId}/download | 프로젝트 전체를 내려받기 |
path 는 URL 인코딩합니다.
이력과 되돌리기
| 메서드 | 경로 | 하는 일 |
|---|---|---|
GET | /api/session/{sessionId}/history | 커밋 이력 |
GET | /api/session/{sessionId}/transcript | 대화 전문 |
GET | /api/session/{sessionId}/diff?hash={hash} | 특정 커밋의 변경 내용 |
POST | /api/session/{sessionId}/revert | 특정 커밋으로 되돌리기 (본문에 hash) |
되돌리기는 이력을 지우지 않습니다 — 되돌린 것도 새 커밋으로 남습니다.
확정과 폐기
| 메서드 | 경로 | 하는 일 |
|---|---|---|
POST | /api/session/{id}/commit | 지금까지의 변경을 커밋 (본문에 message, 생략 가능) |
POST | /api/session/{id}/discard | 변경을 버리고 세션을 초기 상태로 |
POST | /api/session/{id}/verify | 앱이 실제로 동작하는지 검증 |
DELETE | /api/session/{sessionId} | 세션 삭제 |
공유
PUT /api/session/{id}/share
본문에 열람을 허용할 사용자 ID 배열을 보냅니다.
{ "users": ["kim.cs", "park.jh"] }
빈 배열을 보내면 공유가 해제됩니다.
데이터 컨텍스트
PUT /api/session/{id}/data-context
세션이 어떤 설비·태그를 대상으로 하는지 지정합니다. 에이전트가 앱을 만들 때 이 범위를 참조합니다. null 을 보내면 해제됩니다.