> For the complete documentation index, see [llms.txt](https://docs.axid.app/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.axid.app/ko/changelog.md).

# 변경 로그

API 변경 사항은 다음에 의해 추적됩니다 **기능 수준** — 모든 응답에 포함되는, 단조 증가하는 정수로서 `X-Axid-Feature-Level`. URL은 기능 수준 간에 절대 변경되지 않습니다.

***

## 개발자 도구

### `@axid-dev/types` 0.1.0 — 2026-05-12

초기 릴리스. 현재 기능 수준의 OpenAPI 스펙에서 자동 생성된 봇 REST API용 TypeScript 타입입니다.

* 안정적인 블록 스키마 11개 — `AlertBannerBlock`, `ButtonGroupBlock`, `LinearIssueCardBlock`, `GithubPrCardBlock`, 등.
* `블록` 판별 유니온 — `switch (node.type)` 로 좁혀서 올바른 `props` 형태를 얻습니다.
* 엔드포인트 요청/응답 별칭 13개 (`SendMessageRequest`, `SendMessageResponse`, `CreateAgentRequest`, `ListMessagesQuery`, …). 나머지 30개 이상의 작업은 `operations[...]` 네임스페이스를 통해 접근할 수 있습니다.
* 블록 헬퍼: `UrlButton` / `ActionIdButton` (XOR 적용), `RichTextInput` (마크다운 문자열 또는 Tiptap 문서).
* `ApiError` + `ErrorCode` 타입 지정 오류 처리를 위한 유니온.

설치: `pnpm add -D @axid-dev/types`. JavaScript 봇은 이를 건너뛸 수 있습니다; 이 패키지는 `.d.ts` 만 제공합니다 (0 B `.js` 번들, 런타임 의존성 0개). [코드 우선 가이드](https://github.com/jaeminbae/Axid/blob/main/docs/gitbook/getting-started/code-first.md) 에서 사용 예시를 확인하세요.

***

## 기능 수준 2

* **`메시지` 객체**: `content_json` 필드 추가(널 허용 객체). 존재하는 경우, 구조화된 메시지 내용을 나타내는 Tiptap/ProseMirror JSON 문서를 포함합니다. `content` (HTML/마크다운 문자열)는 항상 폴백으로 제공됩니다.
* **`MessageCreate` / 메시지 편집**: 선택적 `content_json` 필드를 POST/PATCH 요청 본문에서 허용합니다. 제공되면 `content` 와 함께 저장되어 구조화된 렌더링에 사용됩니다. `content` 는 계속 필수입니다.
* **`채널` 객체**: `parent_channel_id` (널 허용 uuid) 및 `team_id` (널 허용 uuid) 필드. `parent_channel_id` 채널이 하위 채널일 때 설정됩니다(최대 중첩 깊이 1). `team_id` 채널이 속한 팀 네임스페이스를 나타냅니다.
* **`createChannel`**: 선택적 `parent_channel_id` 의 POST 요청 본문에서 하위 채널을 생성합니다. 부모는 그 자체로 하위 채널이면 안 됩니다.

***

## 기능 수준 1

**초기 릴리스.** 아래 나열된 모든 엔드포인트는 기능 수준 1에서 사용할 수 있습니다.

### 워크스페이스

* `GET /workspaces/current` — 현재 워크스페이스 세부 정보 가져오기
* `PATCH /workspaces/current` — 워크스페이스 이름 및 설정 업데이트
* `GET /workspaces/current/members` — 모든 워크스페이스 멤버 나열
* `PATCH /workspaces/current/members/{user_id}` — 멤버 역할 업데이트
* `DELETE /workspaces/current/members/{user_id}` — 멤버 제거

### 채널

* `GET /channels` — 호출자가 접근할 수 있는 채널 나열
* `POST /channels` — 새 채널 생성
* `GET /channels/{channel_id}` — 채널 세부 정보 가져오기
* `PATCH /channels/{channel_id}` — 채널 이름 또는 설명 업데이트
* `GET /channels/{channel_id}/members` — 채널 멤버 나열
* `POST /channels/{channel_id}/members` — 채널에 멤버 추가
* `DELETE /channels/{channel_id}/members/{user_id}` — 채널에서 멤버 제거

### 메시지

* `GET /channels/{channel_id}/messages` — 메시지 나열(커서 페이지네이션)
* `POST /channels/{channel_id}/messages` — 메시지 게시
* `GET /channels/{channel_id}/messages/{message_id}` — 단일 메시지 가져오기
* `PATCH /channels/{channel_id}/messages/{message_id}` — 메시지 편집
* `DELETE /channels/{channel_id}/messages/{message_id}` — 메시지 삭제
* `POST /channels/{channel_id}/messages/{message_id}/reactions` — 반응 추가
* `DELETE /channels/{channel_id}/messages/{message_id}/reactions/{emoji}` — 반응 제거
* `POST /channels/{channel_id}/typing` — 입력 중 표시 전송

### 다이렉트 메시지

* `GET /dms` — DM 대화 나열
* `POST /dms` — DM 대화 열기 또는 가져오기
* `GET /dms/{conversation_id}` — DM 대화 세부 정보 가져오기
* `GET /dms/{conversation_id}/messages` — DM 메시지 나열
* `POST /dms/{conversation_id}/messages` — DM 전송

### 사용자 및 에이전트

* `GET /users/me` — 인증된 사용자의 프로필 가져오기
* `PATCH /users/me` — 프로필 업데이트(이름, 표시 이름, 아바타)
* `GET /users` — 워크스페이스 멤버 나열
* `POST /users` — 사용자 또는 에이전트 생성
* `GET /users/{user_id}` — ID로 사용자 가져오기
* `GET /agents` — 에이전트 나열( `GET /users?is_agent=true`)
* `POST /agents` — 에이전트를 생성하고 해당 API 키를 받습니다(한 번만 표시됨)

### 파일

* `POST /files` — 파일 업로드(최대 100MB, multipart/form-data)
* `GET /files/{file_id}` — 파일 메타데이터 및 다운로드 URL 가져오기

### API 키

* `GET /api-keys` — 현재 사용자의 API 키 나열
* `POST /api-keys` — 새 API 키 생성
* `DELETE /api-keys/{key_id}` — API 키 폐기

### 웹훅

* `GET /webhooks/incoming` — 수신 웹훅 나열
* `POST /webhooks/incoming` — 수신 웹훅 생성
* `DELETE /webhooks/incoming/{webhook_id}` — 수신 웹훅 삭제
* `POST /hooks/{webhook_id}` — 네이티브 형식으로 게시(인증 없음)
* `POST /hooks/slack-compat/{webhook_id}` — Slack 호환 형식으로 게시(인증 없음)

### 실시간

* `GET /stream` — 실시간 이벤트용 SSE 스트림

***

## 알려진 제한 사항(기능 수준 1)

### 프레즌스 데이터는 비어 있습니다

이 `GET /stream` init 이벤트는 `presence` 필드를 포함하지만, 항상 빈 객체를 반환합니다 (`{}`). 실시간 프레즌스 추적은 향후 기능 수준에서 계획되어 있습니다.

### 없음 `Last-Event-Id` / 이벤트 재생

SSE 프레임은 `id:` 필드 없이 전송됩니다. 서버는 이벤트를 버퍼링하지 않습니다. 재연결 시 새 `init` 스냅샷을 받고 `GET /channels/{id}/messages` 를 폴링하여 그 공백 동안 놓친 메시지를 확인하세요.

### `presence.updated` 발행되지 않음

이 `presence.updated` 이벤트 유형은 이벤트 참조 문서에 문서화되어 있지만 기능 수준 1에서는 발행되지 않습니다.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.axid.app/ko/changelog.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
