# rawp-crs 1.0.1 변경 사항 1.0.0와 비교 ## 개요 | 항목 | 값 | | --- | --- | | 원본 파일 | `rawp-crs.md` | | 추가된 섹션 | 0 | | 삭제된 섹션 | 0 | | 수정된 섹션 | 5 | | 문서 변경 여부 | 예 | ## 추가된 섹션 - 없음 ## 삭제된 섹션 - 없음 ## 수정된 섹션 - Document Overview - 3. 유저 메시지 (User Message) - 4. 에이전트 메시지 (Agent Message) - 5. 시스템 메시지 (System Message) - 부록: 관련 규격 문서 ## 섹션별 변경 상세 ### Document Overview - 이전 앵커: `#document-overview` - 현재 앵커: `#document-overview` - 추가된 줄: 6 - 삭제된 줄: 6 ```diff > **본 파일은 RAWP-CRS 1.0의 §1–§3을 포함합니다. §4–§6 및 부록은 Part 2를 참조하십시오.** -| 항목 | 값 | -| ---------------- | ---------------- | -| 상태 | Stable | -| 버전 | 1.0 | -| 상위 규격 | **RAWP 1.0** | -| 데이터 평면 규격 | **RAWP-DPS 1.0** | +| 항목 | 값 | +| ---------------- | ------------------ | +| 상태 | Stable | +| 버전 | 1.0.1 | +| 상위 규격 | **RAWP 1.0.2** | +| 데이터 평면 규격 | **RAWP-DPS 1.0.1** | --- ``` ### 3. 유저 메시지 (User Message) - 이전 앵커: `#3-user-message` - 현재 앵커: `#3-user-message` - 추가된 줄: 34 - 삭제된 줄: 8 ```diff **우측 정렬 채팅 버블**: 유저 메시지는 대화 영역의 우측에 배경색이 있는 둥근 모서리(border-radius) 버블로 렌더링해야 한다 (MUST). 버블의 최대 너비는 대화 영역 전체 폭의 70~80%로 제한하여 좌측에 여백을 확보하고, 에이전트 메시지와의 시각적 대칭을 유지한다 (SHOULD). -**텍스트 메시지**: `control.prompt.request`에서 `input_type: "text"`인 메시지는 입력된 원문 텍스트를 버블 내에 그대로 표시한다. 기본적인 마크다운 포맷(볼드, 이텔릭 등)이 포함되어 있더라도, 유저 메시지 버블 내에서는 렌더링하지 않고 원문을 유지하는 것을 기본으로 한다 (SHOULD). 이는 사용자가 자신이 입력한 내용을 정확히 확인할 수 있도록 하기 위함이다. +**텍스트 메시지**: `control.prompt.request`에서 `input_type: "text"`인 메시지는 입력된 텍스트를 버블 내에 마크다운 서식을 적용하여 표시한다. +**유저 메시지 서식 인식**: 유저 메시지 버블 내에서 다음의 텍스트 마크다운 서식을 인식하고 렌더링해야 한다 (MUST): + +| 서식 | 구문 | 렌더링 | +| --------------- | -------------------------------- | ------------------------------------ | +| **볼드** | `**text**` 또는 `__text__` | `font-weight: bold` 적용 | +| **이텔릭** | `*text*` 또는 `_text_` | `font-style: italic` 적용 | +| **볼드+이텔릭** | `***text***` | 볼드와 이텔릭 동시 적용 | +| **취소선** | `~~text~~` | `text-decoration: line-through` 적용 | +| **인라인 코드** | `` `code` `` | 모노스페이스 폰트, 배경색 구분 | +| **줄바꿈** | Enter 키 (`\n`) 또는 Shift+Enter | `
` 줄바꿈 표시 | +| **링크** | `[text](url)` | 클릭 가능한 하이퍼링크 | +| **자동 링크** | URL 패턴 자동 감지 | 클릭 가능한 링크로 변환 | + +다음 서식은 유저 메시지에서 렌더링하지 않는다 (MUST NOT): 헤더(`#`), 펜스 코드 블록(` ``` `), 테이블(`| |`), 이미지(`![]()`), 목록(`-`, `1.`), 인용구(`>`), 수평선(`---`), 수식(`$`). 유저 메시지는 대화형 텍스트이므로 블록 레벨 구조는 적용하지 않고, 인라인 텍스트 서식만 인식한다. + +**입력창에서의 서식 입력**: 입력창은 사용자가 마크다운 구문을 직접 타이핑하는 플레인 텍스트 모드를 기본으로 한다 (MUST). 서식이 적용된 리치 텍스트 미리보기는 입력 중에 표시하지 않는다 (MUST NOT). 마크다운 구문은 전송 후 대화 이력에 표시될 때 렌더링된다. + **파일 참조 토큰 렌더링**: 전송 완료된 메시지가 대화 이력에 표시될 때, `prompt_text` 내 파일 참조 토큰이 포함되어 있는 경우 §3.4.5의 토큰 시각 사양(배경색, 둥근 모서리, 아이콘)과 동일한 스타일로 인라인 렌더링해야 한다 (MUST). 대화 이력 내 토큰은 읽기 전용이며, 클릭 시 해당 파일의 경로를 클립보드에 복사하거나 파일 뷰어를 여는 동작을 지원할 수 있다 (MAY). ... - 토큰은 커서 이동 시 **원자 단위(atomic unit)** 로 취급한다 (MUST). 좌/우 화살표로 커서가 토큰에 도달하면 토큰 전체를 건너뛴다. 토큰 내부에 커서가 진입하지 않는다. -- `Backspace` 키로 토큰 직후에서 삭제하면, 첫 번째 `Backspace`로 토큰 전체를 선택(하이라이트) 상태로 전환하고, 두 번째 `Backspace`로 토큰을 삭제해야 한다 (SHOULD). 이는 슬랙의 멘션 삭제 UX와 동일하다. 또는 단일 `Backspace`로 즉시 삭제하되, `Ctrl+Z`(undo)로 복원할 수 있게 하는 방식도 허용한다 (MAY). - 토큰을 포함한 텍스트의 복사/붙여넣기 시, 토큰은 `@파일명` 형태의 플레인 텍스트로 변환된다 (SHOULD). +**토큰 삭제 (Fluid Deletion):** + +토큰 삭제는 커서 위치에 관계없이 물 흐르듯 자연스러운 시각적 연속성을 유지해야 한다 (MUST). 삭제 과정에서 대화 흐름이 끊기거나 레이아웃이 점프해서는 안 된다 (MUST NOT). + +- **Backspace (토큰 직후에서)**: 첫 번째 `Backspace`로 토큰 전체를 선택(하이라이트) 상태로 전환한다 (MUST). 하이라이트된 토큰은 배경색 변경(예: 기존 연한 파란색 → 연한 빨간색 `#FFEBEE` 또는 테마의 `danger` 색상 10~15% 불투명도)으로 삭제 예정 상태임을 표시한다. 두 번째 `Backspace`로 토큰을 삭제한다. +- **Delete (토큰 직전에서)**: `Backspace`와 동일한 2단계 동작을 `Delete` 키에도 적용해야 한다 (MUST). +- **삭제 애니메이션**: 토큰이 삭제될 때 너비를 0으로 축소하는 트랜지션(100~150ms)을 적용하여 후속 텍스트가 부드럽게 당겨지도록 해야 한다 (MUST). 즉시 제거하여 텍스트가 갑자기 이동하는 것은 허용하지 않는다 (MUST NOT). +- **범위 선택 삭제**: 사용자가 마우스 드래그 또는 Shift+화살표로 토큰을 포함하는 텍스트 범위를 선택한 후 삭제하면, 선택 범위 내의 토큰은 2단계 확인 없이 즉시 삭제한다 (MUST). 이 경우에도 삭제 애니메이션은 적용한다 (SHOULD). +- **Undo 지원**: 토큰 삭제 후 `Ctrl+Z`(macOS: `Cmd+Z`)로 토큰을 복원할 수 있어야 한다 (MUST). 복원 시 토큰의 메타데이터(`ref_id`, 파일 경로 등)도 함께 복원된다. + **복수 참조**: 단일 메시지 내에 여러 개의 파일 참조 토큰이 존재할 수 있다 (MUST 지원). 각 토큰은 독립된 `ref_id`를 가지며, 동일 파일을 중복 참조하더라도 별개의 토큰으로 취급한다. ... > **본 파일은 RAWP-CRS 1.0의 §4–§6 및 부록을 포함합니다. §1–§3(파일 참조 입력 §3.4 포함)은 Part 1을 참조하십시오.** -| 항목 | 값 | -| ---------------- | ---------------- | -| 상태 | Stable | -| 버전 | 1.0 | -| 상위 규격 | **RAWP 1.0** | -| 데이터 평면 규격 | **RAWP-DPS 1.0** | +| 항목 | 값 | +| ---------------- | ------------------ | +| 상태 | Stable | +| 버전 | 1.0.1 | +| 상위 규격 | **RAWP 1.0.2** | +| 데이터 평면 규격 | **RAWP-DPS 1.0.1** | --- ``` ### 4. 에이전트 메시지 (Agent Message) - 이전 앵커: `#4-agent-message` - 현재 앵커: `#4-agent-message` - 추가된 줄: 87 - 삭제된 줄: 1 ```diff **다중 사고 블록**: 각 `content_index`별로 독립된 사고 컨테이너를 생성하되, 동시에 두 개 이상의 Thinking Indicator가 활성 상태로 표시되어서는 안 된다 (MUST NOT). -### 4.5. 도구 호출 결과 렌더링 (Tool Result Rendering) +### 4.5. 도구 가용 상태 및 호출 결과 렌더링 (Tool Status & Result Rendering) +#### 4.5.1. 도구 가용 상태 표시 (Tool Availability Indicator) + +`tool.catalog.publish`(RAWP-DPS 1.0.1 §5.4.1) 수신 시, 각 도구의 `status` 필드에 따라 가용 상태를 시각적으로 구분하여 표시해야 한다 (MUST). 도구 목록을 노출하는 모든 UI(도구 팔레트, 사이드바, 도구 호출 헤더 등)에 적용한다. + +**상태별 시각 표현:** + +| `status` | 시각 표현 | 도구명 스타일 | 상호작용 | +| ------------- | ----------------------------------------------- | ---------------------------------------------- | ------------------ | +| `available` | 없음 (기본 상태이므로 별도 표시 불필요) | 기본 텍스트 | 정상 사용 가능 | +| `unavailable` | 도구명 좌측에 금지 아이콘(🚫) 또는 빨간 점 표시 | 흐린 텍스트(opacity 50%), 취소선 적용 (SHOULD) | 클릭/선택 비활성화 | +| `degraded` | 도구명 좌측에 경고 아이콘(⚠) 또는 주황 점 표시 | 기본 텍스트 유지 | 정상 사용 가능 | + +**상태 사유 표시**: 도구의 `status_description` 필드(RAWP-DPS 1.0.1 §5.4.1)가 존재하면, 도구명 하단에 한 줄로 사유를 표시해야 한다 (MUST). `unavailable`이면 연한 빨간 텍스트, `degraded`이면 연한 주황 텍스트로 표시한다. `status_description`이 없으면 사유를 표시하지 않는다 (MUST NOT). 예: `Bash` 아래에 `실행 파일을 찾을 수 없음`. + +**진단 메시지 연동**: `diagnostics` 배열에 해당 도구의 진단(`tool_name` 일치)이 포함된 경우, 도구 항목에 호버 또는 탭 시 진단 메시지를 툴팁으로 표시할 수 있다 (MAY). + +**도구 카탈로그 갱신**: `tool.catalog.publish`가 세션 중 재수신되면, 도구 목록과 상태를 즉시 갱신해야 한다 (MUST). 이전에 `unavailable`이었던 도구가 `available`로 전이되면 금지 표시를 즉시 제거한다. + +#### 4.5.2. 도구 호출 결과 렌더링 (Tool Result Rendering) + **진행 중 표시**: `tool.invoke.request` 수신 시, 도구명과 함께 스피너를 인라인으로 표시해야 한다 (MUST). `tool.invoke.stream` 수신 시에는 실시간 출력을 점진적으로 렌더링해야 한다 (SHOULD). ... | `agent_result` | 서브에이전트 결과 접이식 블록 | 클릭 시 전체 결과 펼침 (SHOULD) | +**파일 조작 결과 헤더**: `tool.invoke.result`에서 도구가 파일 조작 도구(`category: "filesystem"`, `tool_name` ∈ {Write, Edit, MultiEdit} 또는 동등 도구)인 경우, 결과 헤더에 파일 조작 유형을 명시적으로 표시해야 한다 (MUST): + +| 조작 유형 | 헤더 표시 예시 | 시각적 힌트 | +| --------- | ----------------------- | -------------- | +| 파일 생성 | `Created: {file_path}` | 녹색 계열 강조 | +| 파일 수정 | `Modified: {file_path}` | 기본 색상 | +| 파일 삭제 | `Deleted: {file_path}` | 빨간 계열 강조 | + +조작 유형의 판단은 도구의 `tool_name`과 `input` 필드에서 유추한다. 예: `tool_name: "Write"`이면 파일 생성 또는 덮어쓰기, `tool_name: "Edit"`이면 수정. + **에러 결과 표시**: `status`가 `error`, `timeout`, `cancelled`인 경우, 에러 상태를 시각적으로 구분하여 표시해야 한다 (MUST). ... **접근성 고려**: 색상과 함께 접두 기호(`-`, `+`)를 항상 가시적으로 유지하고, 선택적으로 아이콘 또는 패턴을 병행 표시할 것을 권장한다 (SHOULD). +**변경 통계 요약 표시**: Diff 헤더 또는 푸터에 변경 통계를 한 줄로 요약 표시해야 한다 (MUST). 형식: `+{추가_라인_수} -{삭제_라인_수}`. 예: `+12 -3`. + +**파일 생성/삭제 배지**: + +- 모든 라인이 `+`(추가)인 Diff는 파일 전체가 신규 생성되었음을 의미한다. Diff 상단에 `New file` 배지를 표시해야 한다 (MUST). +- 모든 라인이 `-`(삭제)인 Diff는 파일 전체가 삭제되었음을 의미한다. Diff 상단에 `File deleted` 배지를 표시해야 한다 (MUST). +- 배지는 파일 헤더 영역 내에서 파일명과 함께 표시하며, 해당 색상(생성=녹색, 삭제=빨간) 계열의 배경을 적용한다 (SHOULD). + +**라인 수준 추가/삭제 시각화**: `tool.invoke.result`의 `output`에 라인별 추가/삭제 정보가 포함된 경우(구조화 Diff 또는 Unified Diff), 개별 라인의 추가/삭제를 본 절의 라인 수준 색상 구분 규칙(삭제=빨강, 추가=녹색)에 따라 표시해야 한다 (MUST). + ### 4.7. 에이전트 상태 표시 (Agent State Indicator) ... **전환 애니메이션**: 태스크 상태 변경 시 부드러운 전환 애니메이션을 적용해야 한다 (SHOULD). 다수의 태스크가 동시에 갱신되는 경우 개별 애니메이션을 생략하고 전체 목록을 일괄 교체할 수 있다 (MAY). +### 4.9. Turn 내 콘텐츠 순서 보장 (Content Ordering within Turn) + +에이전트의 단일 Turn은 텍스트 블록, 사고 과정, 도구 호출이 교차(interleave)하여 발생할 수 있다. 이 교차 콘텐츠의 렌더링 순서 규칙을 정의한다. + +**수신 순서 렌더링 원칙**: 모든 콘텐츠 블록은 수신 순서대로 대화 영역에 아래로 추가해야 한다 (MUST). 이미 렌더링된 요소의 순서를 재배치(reorder)해서는 안 된다 (MUST NOT). + +**마지막 텍스트 블록 최하단 보장 (Last Text Anchoring)**: 에이전트가 Turn 내에서 마지막으로 생성하는 텍스트 블록(`agent.text.delta` → `agent.text.done`)은 해당 Turn의 시각적 렌더링에서 항상 최하단에 위치해야 한다 (MUST). 이는 수신 순서 렌더링 원칙에 의해 자연스럽게 보장된다 — 마지막 텍스트 블록은 마지막에 수신되므로 최하단에 추가된다. + +**시퀀스 예시:** + +| 수신 순서 | 이벤트 | 렌더링 위치 | +| --------- | ---------------------------------- | ----------------------------- | +| 1 | `agent.text.delta` (텍스트 A) | 최상단 | +| 2 | `tool.invoke.request` (도구 X) | 텍스트 A 아래 | +| 3 | `tool.invoke.result` (도구 X 결과) | 도구 X 요청 아래 | +| 4 | `agent.text.delta` (텍스트 B) | 도구 X 결과 아래 **(최하단)** | + +텍스트 B가 에이전트의 마지막 텍스트 블록이므로, Turn 완료 시 최하단에 위치한다. 이후 추가 도구 호출 없이 `session.turn.end`가 수신되면, 텍스트 B가 사용자에게 가장 마지막으로 보이는 콘텐츠가 된다. + +**도구 호출로 Turn이 종료되는 경우**: 에이전트가 텍스트 출력 후 도구 호출을 수행하고 추가 텍스트 없이 Turn이 종료되면, 도구 결과가 최하단이 된다. 이는 허용되는 동작이다. ... diff truncated ... ``` ### 5. 시스템 메시지 (System Message) - 이전 앵커: `#5-system-message` - 현재 앵커: `#5-system-message` - 추가된 줄: 69 - 삭제된 줄: 0 ```diff **에러 상세 정보**: 에러 메시지에 기술적 상세가 포함되는 경우, §5.1의 드롭다운 패턴을 적용하여 요약 행 + 접이식 상세 영역으로 구성한다 (MUST). +### 5.4. 세션 이벤트 메시지 (Session Event Messages) + +세션 수준의 상태 변경 이벤트(`session.renamed`, `session.deleted`)는 시스템 메시지로 대화 이력에 삽입하여 사용자에게 상태 변화를 명시적으로 전달해야 한다 (MUST). §5.1의 레이아웃 원칙(중앙 정렬, 생략 금지, 시각적 비중 최소화)을 따른다. + +#### 5.4.1. 세션 이름 변경 (`session.renamed`) + +RAWP-DPS 1.0.1 §7.6.1의 `session.renamed` 이벤트 수신 시, 대화 이력에 시스템 메시지를 삽입해야 한다 (MUST). + +**렌더링 규격:** + +- **메시지 형식**: `세션 이름이 "{previous_name}"에서 "{name}"으로 변경되었습니다` 형태로 표시한다. `previous_name`이 없으면 `세션 이름이 "{name}"(으)로 변경되었습니다`로 표시한다. +- **심각도**: `info` 수준. §5.3의 `info` 스타일(연한 텍스트)을 적용한다. +- **대화 이력 기록**: 영구적 항목으로 대화 이력에 기록한다. 세션 재연결 시에도 표시되어야 한다. +- **변경 주체 표시**: `renamed_by` 값에 따라 변경 주체를 괄호 안에 부기할 수 있다 (MAY). 예: `세션 이름이 "작업 A"(으)로 변경되었습니다 (원격)`. +- **UI 제목 반영**: 대화 창의 제목 표시줄 또는 세션 목록에 세션 이름이 표시되는 경우, 해당 영역도 즉시 갱신해야 한다 (MUST). + +#### 5.4.2. 세션 종료 (`session.deleted`) + +RAWP-DPS 1.0.1 §7.7.1의 `session.deleted` 이벤트 수신 시, 대화 이력에 시스템 메시지를 삽입하고 세션의 종료 상태를 시각적으로 확정해야 한다 (MUST). + +**렌더링 규격:** + +- **`reason`별 메시지:** + +| `reason` | 시스템 메시지 예시 | 심각도 | +| ---------------- | ---------------------------------------- | --------- | +| `user_request` | `세션이 종료되었습니다` | `info` | +| `master_request` | `세션이 원격에서 종료되었습니다` | `info` | +| `timeout` | `연결 시간 초과로 세션이 종료되었습니다` | `warning` | +| `error` | `오류로 인해 세션이 종료되었습니다` | `fatal` | + +- **심각도별 스타일**: §5.3의 심각도별 시각 차등 규칙을 적용한다. +- **입력 비활성화**: 세션 종료 메시지 표시 후, 입력창을 비활성화하거나 "세션이 종료되었습니다" 플레이스홀더를 표시하여 추가 입력이 불가능함을 명확히 해야 한다 (MUST). +- **에이전트 상태 정리**: §4.7의 에이전트 상태 표시줄이 활성 상태이면 즉시 제거해야 한다 (MUST). +- **진행 중 항목 시각 전환**: 세션 종료 시점에 진행 중이었던 도구 호출 스피너(§4.5.2)가 존재하면, 스피너를 중단하고 `cancelled` 상태로 전환하여 표시해야 한다 (MUST). 이는 RAWP-DPS 1.0.1 §7.5.3에서 발송되는 `tool.invoke.result` (status: `"cancelled"`) 수신과 연동된다. +- **대화 이력 기록**: 영구적 항목으로 대화 이력에 기록한다. + +### 5.5. 연결 단절 및 복구 피드백 (Disconnect & Recovery Feedback) + +WSS Connection이 비정상 종료되거나 재연결에 성공한 경우의 렌더링 규칙을 정의한다. RAWP-DPS 1.0.1 §7.8의 Finalization/Unfinalization 절차와 연동된다. + +#### 5.5.1. 연결 단절 시 렌더링 (Finalization) + +WSS 단절이 감지되면(RAWP-DPS 1.0.1 §7.8.2) 다음을 수행해야 한다 (MUST): + +**시스템 메시지 삽입**: `⚠ 연결이 끊어졌습니다`를 §5.3의 `warning` 심각도 스타일로 대화 이력에 삽입한다. 영구적 항목으로 기록한다. + +**스트리밍 텍스트 중단**: 활성 스트리밍 중이던 텍스트(`agent.text.delta`)는 수신된 지점까지 확정하고, 하단 경계 효과(§4.3)를 즉시 제거한다 (MUST). 텍스트 끝에 시각적 절단 표시(예: `…` 또는 흐린 경계선)를 추가하여 텍스트가 완전하지 않음을 나타낼 수 있다 (MAY). + +**도구 호출 스피너 전환**: 진행 중이던 도구 호출 스피너를 즉시 중단하고, `cancelled` 상태 표시(§4.5.2의 에러 결과 표시)로 전환해야 한다 (MUST). 합성된 cancelled 결과(RAWP-DPS 1.0.1 §7.8.1의 `synthetic: true`)는 연한 회색 텍스트로 `연결 끊김으로 취소됨` 등의 메시지를 표시한다. + +**사고 과정 중단**: 활성 Thinking Indicator(§4.4)를 즉시 중단하고 접힌 상태로 전환해야 한다 (MUST). + +**에이전트 상태 표시줄 제거**: §4.7의 상태 표시줄을 즉시 제거하고 입력 가능 상태로 복원해야 한다 (MUST). + +**상호작용 요청 폐기**: 활성 상태인 상호작용 UI(승인 버튼, 선택 팝업 등)를 즉시 닫고, 해당 영역에 `연결 끊김으로 취소됨`을 표시해야 한다 (MUST). + +#### 5.5.2. 재연결 시 렌더링 (Unfinalization) + +WSS 재연결이 성공하고 `session.history`(RAWP-DPS 1.0.1 §7.1.1)를 수신하면 다음을 수행해야 한다 (MUST): + +**시스템 메시지 삽입**: `ℹ 연결이 복구되었습니다`를 §5.3의 `info` 심각도 스타일로 대화 이력에 삽입한다. + +**합성 블록 제거**: Finalization에서 삽입한 합성 cancelled 결과(`synthetic: true`)를 제거하고, `session.history`의 실제 프레임으로 대체한다 (MUST). + +**스트리밍 재개**: `session.history` 재생 후 에이전트가 응답을 계속 생성 중이면(새 `agent.text.delta` 수신), 스트리밍 렌더링을 정상 재개한다. + +**복구 불가 시**: `session.history`의 `buffer_status.truncated`가 `true`이면, `⚠ 일부 메시지가 유실되었습니다`를 `warning` 심각도로 추가 표시해야 한다 (MUST). 합성 블록은 제거하지 않고 유지한다. + --- ``` ### 부록: 관련 규격 문서 - 이전 앵커: `#-` - 현재 앵커: `#-` - 추가된 줄: 2 - 삭제된 줄: 2 ```diff | 문서 | 설명 | | ----------------------- | --------------------------------------------------------------------------- | -| **RAWP 1.0** | 원격 에이전트 제어 프로토콜 (상위 규격). 본 문서의 상위 문서. | -| **RAWP-DPS 1.0** | 데이터 평면 스트리밍 규격. 본 문서가 참조하는 이벤트 타입 및 페이로드 정의. | +| **RAWP 1.0.2** | 원격 에이전트 제어 프로토콜 (상위 규격). 본 문서의 상위 문서. | +| **RAWP-DPS 1.0.1** | 데이터 평면 스트리밍 규격. 본 문서가 참조하는 이벤트 타입 및 페이로드 정의. | | **RAWP-DPS-0.1-Legacy** | 데이터 평면 스트리밍 규격 (단종 예고). 레거시 호환용. | ```