스트리밍 채팅(SSE)
POST /v1/chat/stream: Server-Sent Events를 통해 Minara 턴을 스트리밍합니다. 각 SSE 이벤트는 중간 단계를 설명하는 JSON 페이로드입니다.
POST /v1/chat/stream
Server-Sent Events를 통해 Minara 턴을 스트리밍합니다. 각 SSE 이벤트는 LLM 델타, 도구 호출, 도구 결과 또는 최종 Minara 메시지 같은 중간 단계를 설명하는 JSON 페이로드입니다.
| 메서드 | POST |
| 경로 | /v1/chat/stream |
| 인증 | GATEWAY_AUTH_TOKEN 설정 시 Authorization: Bearer <token> 필요 |
| 카테고리 | chat |
요청 본문
{ "message": "analyze BTC momentum" }응답 본문
text/event-stream — see the SSE envelope defined in `apps/agent/src/gateway/api.ts`.참고
message를 제외한 모든 필드는 선택 사항입니다. 완료된 제공자 연결 오류 턴을 resume: true로 계속하는 경우에만 message를 생략할 수 있습니다. session_id는 기존 대화를 계속하며, 생략하면 새 세션이 시작됩니다. 이때 session_kind가 화면 유형을 선택하고 기본값은 "chat"입니다. retry: true는 중복 턴을 추가하지 않고 세션의 최신 턴을 교체합니다. resume: true에는 기존 session_id가 필요합니다. 완료된 도구 결과를 유지하고 마지막 영구 저장 경계부터 실행을 계속하며, 화면에 표시되는 사용자 메시지 행을 추가하지 않습니다.
턴 중간 조정 이벤트: POST /v1/chat/interject를 통해 큐에 넣은 메시지가 실행 중인 턴에 주입되면 user_interjection 이벤트({ "message": "...", "ts_ms": 1747000000000 })가 발생합니다. 최종 done 이벤트 데이터에는 두 개의 선택 필드가 있습니다. POST /v1/chat/interrupt로 턴을 중지했을 때의 interrupted: true와 주입하기에 너무 늦게 도착한 메시지를 나열하는 pending_interjections: string[]입니다. 클라이언트는 후자를 일반 메시지로 다시 전송합니다. 헤드리스 호출자는 선택적 본문 필드 surface("web" | "cli", 기본 "web")와 prompt_mode("full" | "minimal", 기본 "full")로 시스템 프롬프트를 조정할 수 있습니다. cli는 사용자 정의 URI 와이어 프로토콜을 생략하고, minimal은 스킬 카탈로그, 날짜, 작업 디렉터리를 유지하면서 주입 컨텍스트에서 개인화를 제거한 간결한 골격(정체성, 스킬/도구 동작, 기본 Markdown)을 마운트합니다.
실행 중인 턴 중단
POST /v1/chat/interrupt: 세션에서 진행 중인 턴을 중지합니다. 턴은 정상적으로 끝나고 부분 작업이 보존되며 SSE 스트림은 `interrupted: true`를 포함한 `done` 이벤트로 완료됩니다.
기밀 코드 업로드 세션 만들기
POST /v1/confidential-code/upload-sessions: Strategy Studio와 X Strategy Studio에서 사용하는 브라우저 측 TEE 업로드 핸드셰이크를 시작합니다. 게이트웨이는 불투명한 증명 및 암호화된 봉투 메타데이터만 전달합니다. 평문 전략 소스는 게이트웨이 로그에 기록되지 않습니다.