discord-agent-bridge 0.4.0 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.ko.md CHANGED
@@ -4,60 +4,53 @@
4
4
 
5
5
  > Self-hosted Discord bot that runs AI coding agents — Claude Code, Codex, and more — per channel. Role-based access, multi-server, extensible.
6
6
 
7
- **채널마다 Claude Code / Codex 같은 AI 코딩 에이전트를 붙여 쓰는 셀프호스팅 Discord 봇입니다.** 내 PC에서 실행되고, 역할 기반 권한 · 다중 서버 · 확장 가능 구조를 가집니다.
8
-
9
- - 현재 지원: **Claude Code**, **Codex**
10
- - 확장: 모드 플러그인 추가로 다른 에이전트(예: opencode) 연결 가능
11
-
12
- > ✅ **npm에 배포되어 있습니다.** `npx discord-agent-bridge` 로 바로 실행하거나(권장), 전역 설치·소스 빌드로도 쓸 수 있습니다. **Claude Code · Codex** 두 백엔드를 지원합니다.
7
+ **Discord 채널 하나에 Claude Code(또는 Codex)를 붙여 쓰는 셀프호스팅 봇입니다.** 봇은 내 PC에서 돌고, npm에 배포되어 있어 `npm install -g` 번과 명령 줄이면 자동 실행까지 끝납니다.
13
8
 
14
9
  ---
15
10
 
16
- ## 이게 뭐예요?
11
+ ## Why this?
17
12
 
18
- Discord 채널에서 대화하듯 메시지를 보내면,컴퓨터에서 Claude Code(또는 Codex)가 프로젝트 폴더를 대상으로 작업해 주는 봇입니다.
19
-
20
- - **채널 = 세션 = 프로젝트 하나.** 채널을 만들 작업 폴더와 백엔드(Claude/Codex)를 정합니다.
21
- - **여러 서버**에 같은 봇을 초대해 있고, **서버/프로젝트마다 설정이 따로** 적용됩니다.
22
- - **역할(Role)로 누가 있는지** 통제합니다.
13
+ - 🏠 **완전 셀프호스팅.** 봇이PC에서 돕니다. 코드도, 세션도, CLI 토큰도 밖으로 나갑니다.
14
+ - 📱 **책상 앞에 없어도 됩니다.** 지하철에서 폰으로 Discord에 지시만 던져 두세요. 스트리밍 응답, 툴 실행 로그, 권한 승인 버튼이 채널에 그대로 뜹니다.
15
+ - 🗂️ **채널 하나 = 프로젝트 하나 = 세션 하나.** 채널마다 작업 폴더 · 백엔드 · 모델 · 권한 모드가 따로 붙습니다.
16
+ - 👥 **팀 관전 친화적.** 같은 채널을 보는 사람은 세션 진행을 그대로 지켜봅니다. 3단계 역할(admin / execute / read-only)로 실제 실행 권한만 통제합니다.
17
+ - 🔀 **Claude Codex 즉시 전환.** `/mode` 한 방으로 백엔드를 바꿉니다.
18
+ - ⚙️ **터미널과 동등한 기능.** 프로젝트의 `.claude/`, `.codex/` 설정을 그대로 읽어서 서브에이전트 · 스킬 · 훅 · MCP · 플러그인 명령까지 CLI와 똑같이 동작합니다.
23
19
 
24
20
  ---
25
21
 
26
22
  ## 준비물
27
23
 
28
24
  - **Node.js 20 이상**
29
- - 사용할 백엔드에 맞는 CLI가 **설치 + 로그인**되어 있어야 합니다:
30
- - **Claude 모드** → [Claude Code](https://docs.anthropic.com/en/docs/claude-code) 인증 (`claude` 로그인 또는 `ANTHROPIC_API_KEY`). 사용량/한도 패널을 보려면 **Claude Pro/Max 구독 로그인**이 필요합니다.
31
- - **Codex 모드** → `codex` CLI 설치 + 로그인.
25
+ - 쓰려는 백엔드에 맞춰 CLI가 **설치 + 로그인** 상태:
26
+ - **Claude 모드** → [Claude Code](https://docs.anthropic.com/en/docs/claude-code) (`claude` 로그인 또는 `ANTHROPIC_API_KEY`)
27
+ - **Codex 모드** → `codex` CLI, 로그인까지
32
28
  - **Discord 봇 토큰** (아래 1단계에서 발급)
33
29
 
34
30
  ---
35
31
 
36
- ## 1단계 — Discord 봇 만들기 (Developer Portal)
32
+ ## 1단계 — Discord 봇 만들기
37
33
 
38
- 봇을 직접 하나 만들어야 합니다. 5분이면 됩니다.
34
+ 봇을 하나 직접 만들어야 합니다. 5분이면 됩니다.
39
35
 
40
- 1. **[Discord Developer Portal](https://discord.com/developers/applications)** 접속 → 오른쪽 **New Application** → 이름 입력(예: `my-agent-bot`) → **Create**.
41
- 2. 왼쪽 메뉴 **Bot** 탭 → **Reset Token** → 나오는 **토큰을 복사**해 안전한 곳에 보관.
42
- - ⚠️ 이 토큰은 비밀번호입니다. 노출되면 즉시 **Reset Token**으로 재발급하세요.
36
+ 1. **[Discord Developer Portal](https://discord.com/developers/applications)** 접속 → 우측 상단 **New Application** → 이름 입력(예: `my-agent-bot`) → **Create**.
37
+ 2. 왼쪽 메뉴 **Bot** 탭 → **Reset Token** → 나오는 **토큰을 복사**해서 안전한 곳에 보관하세요.
38
+ - ⚠️ 이 토큰은 비밀번호나 다름없습니다. 노출되면 즉시 **Reset Token**으로 재발급하세요.
43
39
  3. 같은 **Bot** 탭 아래 **Privileged Gateway Intents**:
44
- - ✅ **MESSAGE CONTENT INTENT** — **필수** (봇이 메시지 내용을 읽어야 )
45
- - ✅ **SERVER MEMBERS INTENT** — 권장 (역할 기반 권한 확인에 사용)
40
+ - ✅ **MESSAGE CONTENT INTENT** — **필수** (봇이 메시지 내용을 읽어야 합니다)
41
+ - ✅ **SERVER MEMBERS INTENT** — 권장 (역할 확인에 사용)
46
42
  - 켜고 **Save Changes**.
47
- 4. 왼쪽 **OAuth2** 탭 → **Client ID(Application ID)** 복사 (셋업에 필요).
43
+ 4. 왼쪽 **OAuth2** 탭 → **Client ID(Application ID)** 복사.
48
44
  5. **초대 링크 만들기** — OAuth2 → **URL Generator**:
49
45
  - **Scopes**: `bot`, `applications.commands`
50
46
  - **Bot Permissions**: `Manage Channels`, `Send Messages`, `Embed Links`, `Attach Files`, `Read Message History`, `Create Public Threads`, `Send Messages in Threads`, `Manage Threads`, `Add Reactions`
51
- - 생성된 URL을 브라우저에 붙여넣어 **내 서버에 초대**.
52
- - (셋업 마법사가 이 초대 링크를 자동 생성해 주기도 합니다 — 2단계 참고.)
47
+ - 생성된 URL을 브라우저에 붙여넣어 **내 서버에 초대**하세요.
53
48
 
54
49
  ---
55
50
 
56
51
  ## 2단계 — 설치 & 실행
57
52
 
58
- ### 설치 & 자동 실행 (권장)
59
-
60
- 가장 간단한 방법입니다. 아래 세 줄이면 설치부터 재부팅 자동 실행까지 끝납니다. `service install` 이 현재 OS에 맞는 자동 실행을 알아서 등록합니다 — **macOS는 launchd, Linux는 systemd, Windows는 작업 스케줄러**.
53
+ 명령 줄이면 설치부터 재부팅 자동 실행까지 끝납니다. `service install` 이 현재 OS에 맞는 자동 실행을 알아서 등록합니다 — **macOS는 launchd, Linux는 systemd, Windows는 작업 스케줄러**.
61
54
 
62
55
  ```bash
63
56
  npm install -g discord-agent-bridge # 설치
@@ -73,314 +66,54 @@ discord-agent-bridge service restart # 재시작
73
66
  discord-agent-bridge service uninstall # 등록 해제
74
67
  ```
75
68
 
76
- 업그레이드는 최신 설치 후 재시작:
77
-
78
- ```bash
79
- npm install -g discord-agent-bridge@latest
80
- discord-agent-bridge service restart
81
- ```
82
-
83
- > ⚠️ **Windows 참고**: 작업 스케줄러 로그온 트리거로 등록되어 **로그인 시 자동 시작**됩니다(관리자 권한 불필요). 단, 크래시 시 자동 재시작은 보장되지 않습니다(macOS·Linux는 보장). `service install` 이 안 되면 아래 **수동 설정 — Windows (작업 스케줄러)** 를 참고하세요.
84
-
85
- ---
86
-
87
- 아래부터는 `service install` 이 동작하지 않거나 직접 설정하고 싶을 때의 **수동 방법**입니다.
88
-
89
- ### 수동 설정 — macOS (launchd)
90
-
91
- macOS 기본 서비스 관리자인 **launchd** 로 봇을 직접 실행합니다 — 로그인하면 자동 시작되고, 꺼지면 자동으로 되살아납니다.
92
-
93
- ```bash
94
- # 1) 전역 설치 (아직이면 셋업도 한 번)
95
- npm install -g discord-agent-bridge
96
- discord-agent-bridge --setup # 이미 설정했으면 생략
97
-
98
- # 2) 실행 래퍼 생성 — nvm의 default node를 자동으로 찾으므로 node 버전이 바뀌어도 그대로 동작
99
- mkdir -p ~/.discord-agent-bridge
100
- cat > ~/.discord-agent-bridge/run.sh <<'EOF'
101
- #!/bin/bash
102
- export NVM_DIR="$HOME/.nvm"
103
- [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
104
- nvm use default >/dev/null 2>&1 || nvm use node >/dev/null 2>&1
105
- exec discord-agent-bridge
106
- EOF
107
- chmod +x ~/.discord-agent-bridge/run.sh
108
- # nvm을 안 쓴다면 run.sh 는 `#!/bin/bash` 와 `exec discord-agent-bridge` 두 줄이면 됩니다(PATH에 node가 있어야 함).
109
-
110
- # 3) LaunchAgent 등록 파일 생성 ($HOME 는 파일을 만드는 시점에 절대경로로 치환됩니다)
111
- cat > ~/Library/LaunchAgents/com.discord-agent-bridge.plist <<EOF
112
- <?xml version="1.0" encoding="UTF-8"?>
113
- <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
114
- <plist version="1.0">
115
- <dict>
116
- <key>Label</key><string>com.discord-agent-bridge</string>
117
- <key>ProgramArguments</key>
118
- <array>
119
- <string>/bin/bash</string>
120
- <string>$HOME/.discord-agent-bridge/run.sh</string>
121
- </array>
122
- <key>EnvironmentVariables</key>
123
- <dict><key>HOME</key><string>$HOME</string></dict>
124
- <key>RunAtLoad</key><true/>
125
- <key>KeepAlive</key><true/>
126
- <key>StandardOutPath</key><string>$HOME/.discord-agent-bridge/agent.out.log</string>
127
- <key>StandardErrorPath</key><string>$HOME/.discord-agent-bridge/agent.err.log</string>
128
- </dict>
129
- </plist>
130
- EOF
131
-
132
- # 4) 시작
133
- launchctl load -w ~/Library/LaunchAgents/com.discord-agent-bridge.plist
134
-
135
- # 5) 확인 — 'gateway ready' 가 뜨면 성공 (Ctrl+C 로 로그 보기만 빠져나옴, 봇은 계속 돎)
136
- tail -f ~/.discord-agent-bridge/agent.out.log
137
- ```
138
-
139
- 관리 명령:
140
-
141
- ```bash
142
- launchctl list | grep discord-agent-bridge # 상태 (1열 PID, 2열 마지막 종료코드)
143
- launchctl unload ~/Library/LaunchAgents/com.discord-agent-bridge.plist # 중지
144
- launchctl load -w ~/Library/LaunchAgents/com.discord-agent-bridge.plist # 시작
145
- ```
146
-
147
69
  업그레이드:
148
70
 
149
71
  ```bash
150
72
  npm install -g discord-agent-bridge@latest
151
- launchctl unload ~/Library/LaunchAgents/com.discord-agent-bridge.plist
152
- launchctl load -w ~/Library/LaunchAgents/com.discord-agent-bridge.plist
153
- ```
154
-
155
- > ⚠️ nvm으로 **node 버전을 바꾸면** 그 버전에서 `npm install -g discord-agent-bridge` 를 한 번 실행하세요(nvm 전역 패키지는 버전별로 분리됩니다). 래퍼가 default node를 따라가므로 plist 자체는 고칠 필요가 없습니다.
156
-
157
- ### 수동 설정 — Windows (작업 스케줄러)
158
-
159
- `discord-agent-bridge service install` 이 안 될 때 직접 등록하는 방법입니다.
160
-
161
- **명령어 (관리자 권한 불필요)** — 먼저 PowerShell에서 봇 실제 경로를 확인하세요:
162
-
163
- ```powershell
164
- where.exe discord-agent-bridge # 예: C:\Users\<나>\AppData\Roaming\npm\discord-agent-bridge.cmd
165
-
166
- # 위에서 확인한 경로로 로그온 시 자동 실행 등록
167
- schtasks /create /tn discord-agent-bridge /sc onlogon /tr "C:\Users\<나>\AppData\Roaming\npm\discord-agent-bridge.cmd" /f
168
- schtasks /query /tn discord-agent-bridge # 상태 확인
169
- schtasks /run /tn discord-agent-bridge # 지금 바로 시작
170
- schtasks /delete /tn discord-agent-bridge /f # 해제
171
- ```
172
-
173
- **GUI 로 하려면**: 시작 메뉴 → **작업 스케줄러** → **기본 작업 만들기** → 이름 `discord-agent-bridge`, 트리거 **로그온할 때**, 동작 **프로그램 시작** → 위 `where.exe` 로 확인한 `.cmd` 경로 입력 → 마침.
174
-
175
- > onlogon 작업은 **로그인 시** 실행이며 **크래시 시 자동 재시작은 보장하지 않습니다.** 크래시 자동 복구·로그인 전 실행까지 원하면 진짜 Windows 서비스가 필요합니다 — [nssm](https://nssm.cc/) 으로 등록하세요(관리자 권한 필요):
176
- >
177
- > ```powershell
178
- > nssm install discord-agent-bridge "C:\Program Files\nodejs\node.exe" "C:\Users\<나>\AppData\Roaming\npm\node_modules\discord-agent-bridge\dist\cli.js"
179
- > nssm start discord-agent-bridge
180
- > ```
181
-
182
- ### 수동 설정 — PM2 (Linux · Windows 대안)
183
-
184
- Linux·Windows에서는 [PM2](https://pm2.keymetrics.io/) 를 써도 됩니다(로그·재시작·상태 확인이 편리). **macOS에서는 PM2 대신 위 `service install`/launchd 를 쓰세요** — PM2의 fork 래퍼가 macOS에서 봇의 게이트웨이 연결을 막는 경우가 있습니다.
185
-
186
- ```bash
187
- # 1) 전역 설치 (PM2가 안정적으로 실행할 커맨드가 있어야 함)
188
- npm install -g discord-agent-bridge
189
-
190
- # 2) 아직 셋업 안 했다면 한 번 실행
191
- discord-agent-bridge --setup
192
-
193
- # 3) PM2 설치
194
- npm install -g pm2
195
-
196
- # 4) PM2에 봇을 등록·실행
197
- pm2 start discord-agent-bridge --name discord-agent-bridge
198
-
199
- # 5) 현재 프로세스 목록을 스냅샷 저장 (재부팅 시 복구 대상)
200
- pm2 save
201
-
202
- # 6) 부팅 시 PM2 자동 시작 등록 (macOS는 launchd로 등록됨)
203
- pm2 startup
204
- # ↑ 출력되는 `sudo ...` 명령을 그대로 복사해 한 번 실행하세요.
205
- ```
206
-
207
- 일상적인 관리 명령:
208
-
209
- ```bash
210
- pm2 status # 실행 상태
211
- pm2 logs discord-agent-bridge # 실시간 로그
212
- pm2 restart discord-agent-bridge # 재시작 (업그레이드 후에도 사용)
213
- pm2 stop discord-agent-bridge # 중지
214
- pm2 delete discord-agent-bridge # 등록 해제
215
- ```
216
-
217
- PM2 상태에서 업그레이드:
218
-
219
- ```bash
220
- npm install -g discord-agent-bridge@latest
221
- pm2 restart discord-agent-bridge
222
- ```
223
-
224
- > ⚠️ nvm/asdf를 쓴다면, PM2가 부팅 시점에도 셸에서 쓰는 것과 **같은 `node`** 를 찾을 수 있어야 합니다. `which node`로 확인한 경로가 부팅 환경에서도 유효해야 합니다 — 아니면 재부팅 후 PM2가 봇을 못 띄웁니다.
225
-
226
- ### npx로 실행 (빠르게 시험해보기)
227
-
228
- 설치 없이 바로 한 번 띄워보고 싶을 때 쓰세요. `npx` 가 최신 버전을 받아 실행하며, 최초 실행이면 셋업 마법사가 먼저 뜬 뒤 이어서 봇이 시작됩니다. (터미널을 닫으면 봇도 종료됩니다 — 계속 켜두려면 위 PM2 방식을 쓰세요.)
229
-
230
- ```bash
231
- # 최초 실행 — 셋업 마법사가 자동으로 뜬 뒤 이어서 봇이 시작됩니다.
232
- # (토큰/Client ID 입력, 인텐트 확인, 초대 링크 생성 — 기본값은 안 물어봄)
233
- npx discord-agent-bridge
234
-
235
- # 이후 실행 — 이미 설정돼 있으면 바로 봇이 시작됩니다.
236
- npx discord-agent-bridge
237
-
238
- # 다시 설정만 하고 싶을 때 (봇은 시작하지 않음)
239
- npx discord-agent-bridge --setup
240
- ```
241
-
242
- 전역 설치도 가능합니다: `npm install -g discord-agent-bridge` 후 `discord-agent-bridge` / `discord-agent-bridge --setup`.
243
-
244
- ### 업그레이드
245
-
246
- 새 버전이 나오면:
247
-
248
- ```bash
249
- # npx 사용자 — @latest 를 붙이면 항상 최신을 받습니다(npx는 캐시를 쓸 수 있어요).
250
- npx discord-agent-bridge@latest
251
-
252
- # 전역 설치 사용자
253
- npm install -g discord-agent-bridge@latest
73
+ discord-agent-bridge service restart
254
74
  ```
255
75
 
256
- 설치된 버전 확인: `discord-agent-bridge --version`.
257
-
258
- **셋업 마법사(`--setup`)** 가 물어보는 것 — **토큰(비밀)만 터미널에서 입력**합니다. 그 외 값은 하나도 안 물어봅니다:
259
- 1. Discord 봇 **토큰** (비밀 → 터미널에서만 붙여넣기)
260
- 2. **Client ID**
261
- 3. Message Content Intent 켰는지 확인
262
- 4. 초대 URL 생성 → 서버에 초대
263
-
264
- > **역할도, 기본값도 터미널에서 안 정합니다.** 봇을 서버에 초대한 뒤 Discord에서 **`/config`** 명령으로 설정하세요:
265
- > - **역할 티어** — 역할 이름을 **클릭**해 지정(역할 ID 복사·개발자 모드 불필요). 지정 전에는 **모두 거부(deny-by-default)**.
266
- > - **기본값** — **기본 백엔드·모델·권한 모드·언어(locale)** 는 드롭다운에서 고르면 **바로 저장**되고, **Codex 기본 경로(codexHome)** 는 "Codex 경로 설정" 버튼 → 입력창(모달)에서 지정합니다. 언어는 `한국어 (ko)` / `English (en)` 중에서 선택합니다.
267
-
268
- 설정은 `~/.discord-agent-bridge/` 에 저장됩니다(토큰 파일 권한 600). 역할·기본값은 서버별로 `servers/<guildId>.json` 에 저장됩니다.
76
+ > ⚠️ **Windows 참고**: 작업 스케줄러 로그온 트리거로 등록되므로 **로그인 시 자동 시작**됩니다(관리자 권한 불필요). 크래시 시 자동 재시작은 보장하지 않습니다(macOS · Linux는 보장).
269
77
 
270
78
  ---
271
79
 
272
80
  ## 3단계 — Discord에서 사용하기
273
81
 
274
- 봇이 서버에 들어오면 **컨트롤 채널(`#session-generator`) · 세션 카테고리 · 알림 채널(`#agent-status`)이 자동으로 생성**됩니다(봇에 채널 관리 권한이 있으면). 이후 순서: **`/config` → `/agent start`**.
82
+ 봇이 서버에 들어오면 **컨트롤 채널(`#session-generator`), 세션 카테고리, 알림 채널(`#agent-status`)이 자동으로 생성**됩니다(봇에 채널 관리 권한이 있는 한). 이후 흐름: **`/config` → `/agent start`**.
275
83
 
276
- 1. **(자동)** 봇 시작·서버 초대 위 채널 구조가 생성됩니다. 관리자가 **`/init`** 으로 수동 재생성할 수도 있습니다(기존 채널은 재사용 — 중복 생성 없음).
277
- 2. **`/config`** (관리자) 역할 티어·기본값을 지정합니다. (서버 관리자(Administrator)는 역할 설정 없이도 항상 사용할 수 있습니다.)
278
- 3. `#session-generator` 에서 **`/agent start`** **마법사**가 순서대로 안내합니다:
279
- **작업 폴더 선택 백엔드(Claude / Codex) 모델 추론 수준 권한 모드**. 단계는 **"다음" 버튼**으로 넘어갑니다. 폴더 브라우저는 **상위/다른 볼륨까지 이동 · 새 폴더 생성 · 이전 세션 재개**를 지원합니다. 확인하면 프로젝트 폴더 이름으로 **전용 세션 채널(`proj-<폴더>`)이 새로 생성**되고 그 채널에 바인딩됩니다.
280
- 4. 만들어진 세션 채널에서 **그냥 메시지로 대화**하면 됩니다. Claude 모드는 스트리밍 출력·툴 실행 스레드·권한 승인 버튼이 뜹니다.
281
- 5. 필요할 때 명령어 사용.
84
+ 1. **(자동)** 봇 시작 또는 서버 초대 시점에 위 채널 구조가 생깁니다. 관리자가 **`/init`** 으로 수동 재생성해도 됩니다(기존 채널은 재사용).
85
+ 2. **`/config`** (관리자) 역할 티어와 기본값을 지정합니다. 서버 관리자(Administrator)는 역할 설정 없이도 항상 사용할 수 있습니다.
86
+ 3. `#session-generator` 에서 **`/agent start`**. **마법사**가 순서대로 안내합니다: **작업 폴더 → 백엔드(Claude / Codex) → 모델 → 추론 수준 → 권한 모드**. 각 단계는 **"다음" 버튼**으로 넘어갑니다. 폴더 브라우저는 상위/다른 볼륨 이동, 새 폴더 생성, 이전 세션 재개까지 지원합니다. 확인하면 **전용 세션 채널(`proj-<폴더>`)** 이 새로 생기고 그 채널에 바인딩됩니다.
87
+ 4. 만들어진 세션 채널에서 **일반 메시지로 그냥 대화**하면 됩니다. Claude 모드는 스트리밍 응답, 실행 스레드, 권한 승인 버튼이 뜹니다.
282
88
 
283
89
  ### 주요 명령어
90
+
284
91
  | 명령어 | 설명 |
285
92
  |---|---|
286
- | `/init` | (관리자) 컨트롤 채널 + 세션 카테고리 생성 (재실행 재사용) |
287
- | `/agent start` | 새 세션 시작 — 마법사 확인 시 전용 세션 채널을 새로 생성 |
93
+ | `/init` | (관리자) 컨트롤 채널 + 세션 카테고리 생성 (기존이 있으면 재사용) |
94
+ | `/agent start` | 새 세션 시작 — 마법사 확인 시 전용 세션 채널 생성 |
288
95
  | `/agent resume` | 이전 세션 이어하기 |
289
96
  | `/agent close` | 세션 종료 + 세션 채널 삭제 |
290
- | `/agent stats` | 활성 세션 · 세션 통계 · Claude 사용량 보기 (본인에게만 표시) |
97
+ | `/agent stats` | 활성 세션 · 세션 통계 · Claude 사용량 (본인에게만 표시) |
291
98
  | `/mode <claude\|codex>` | 백엔드 전환 (⚠️ 새 대화로 시작 — 이전 맥락 미승계) |
292
99
  | `/mode perm <모드\|프로필>` | 권한 모드/프로필 전환 (세션 유지) |
293
100
  | `/stop` | 현재 세션 즉시 중단 (킬 스위치) |
294
101
  | `/stop-all` | (관리자) 모든 세션 중단 |
295
- | `/config` | (관리자) 역할 티어 + 기본값(백엔드·모델·권한 모드·언어·Codex 경로) 설정 역할은 **클릭**, 기본값은 드롭다운/모달에서 지정 |
102
+ | `/config` | (관리자) 역할 티어 + 기본값(백엔드 · 모델 · 권한 모드 · 언어 · Codex 경로) 설정 |
103
+
104
+ ### 권한 모드
296
105
 
297
- ### 권한 모드 (세션이 얼마나 자율적인지)
298
- - `default` — 도구 실행 전마다 **Allow/Deny 버튼**으로 확인 (가장 안전)
106
+ - `default` 툴을 실행할 때마다 **Allow/Deny 버튼**으로 물어봅니다 (가장 안전)
299
107
  - `acceptEdits` — 파일 수정은 자동 수락
300
- - `plan` — 먼저 계획만 세우고 실행은 보류
108
+ - `plan` — 계획만 세우고 실행은 보류
301
109
  - `bypassPermissions` — 전부 자동 (신뢰하는 프로젝트에서만)
302
110
 
303
- (Codex는 CLI의 승인·샌드박스 모드로 매핑됩니다.)
111
+ Codex는 자신의 승인/샌드박스 모드로 매핑합니다.
304
112
 
305
113
  ### 이벤트 알림 (`#agent-status`)
306
114
 
307
- 여러 세션의 **작업 완료·에러**를 `#agent-status` 채널 한 곳에 모아 요약해 알려줍니다. `/config` → **🔔 알림 설정** 에서 켜기/끄기와 대상 채널을 바꿀 수 있습니다.
115
+ 여러 세션의 **작업 완료와 에러**를 `#agent-status` 채널 한 곳에 요약해 알려줍니다. `/config` → **🔔 알림 설정** 에서 켜기/끄기와 대상 채널을 바꿀 수 있습니다.
308
116
 
309
117
  ---
310
118
 
311
- ## 권한 & 역할 설정 (중요)
312
-
313
- 이 봇은 **당신 PC에서, 당신 계정 권한으로** 코드를 실행합니다. 즉 봇에게 명령할 수 있는 사람은 **당신 컴퓨터에서 명령을 실행할 수 있는 사람**입니다. 그래서 역할 통제가 필수입니다.
314
-
315
- - **역할 티어 3단계** — Discord에서 **`/config`** 로 역할 이름을 **클릭**해 지정합니다(역할 ID·개발자 모드 불필요). admin ⊇ execute ⊇ read-only:
316
- - **admin** — 설정/`stop-all`/`config` 등 관리
317
- - **execute** — 세션 시작·명령 실행
318
- - **read-only** — 읽기만
319
- - > `/config` 는 처음엔 **서버 관리자(Administrator)** 권한이 있는 사람만 열 수 있고(허용 목록이 비어 있어도 부트스트랩 가능), 이후엔 admin 티어도 사용할 수 있습니다.
320
- - **기본은 거부(deny-by-default)** — 허용 목록에 없는 사람은 아무것도 못 합니다. `/config` 로 지정하기 전에는 아무도 실행할 수 없습니다.
321
- - **프로젝트별 접근 제어(ACL)** — 특정 프로젝트를 지정한 역할/사람만 쓰게 할 수 있습니다.
322
- - **감사 로그** — 누가 언제 무엇을 했는지 `~/.discord-agent-bridge/audit/` 에 기록됩니다.
323
-
324
- > ⚠️ **보안 주의:** 신뢰하지 않는 서버에 봇을 초대하거나 execute 역할을 너무 넓게 주지 마세요. 작업 폴더 밖(예: `~/.ssh`)은 봇이 접근하지 못하도록 기본 차단되어 있습니다.
325
-
326
- ---
327
-
328
- ## Claude 모드 vs Codex 모드
329
-
330
- | | Claude 모드 | Codex 모드 |
331
- |---|---|---|
332
- | 실시간 스트리밍 | ✅ | ❌ (최종 결과 위주) |
333
- | 툴 실행 스레드 | ✅ | ❌ |
334
- | 권한 승인 버튼 | ✅ | ❌ (승인/샌드박스 모드로 대체) |
335
- | 세션 이어하기 | ✅ | ✅ |
336
- | **사용량/한도 표시** | ✅ (5시간·주간·컨텍스트) | ❌ (Codex CLI 제약) |
337
-
338
- ### 터미널에서 쓰던 거랑 똑같나요?
339
-
340
- - **Claude 모드** — 터미널의 `claude`와 **같은 엔진**(공식 Claude Agent SDK)을 사용합니다. 프로젝트의 `.claude/` 설정을 그대로 읽어 **서브에이전트·스킬·훅·MCP가 동일하게** 동작하도록 만듭니다. 달라지는 건 입력이 Discord 메시지, 출력이 임베드/스레드라는 **표현 방식**뿐입니다. (터미널에서 타이핑하는 TUI 전용 슬래시 명령은 그대로 치는 방식이 아니라 SDK 방식으로 처리됩니다.)
341
- - **Codex 모드** — `codex exec`(비대화형)로 구동합니다. 같은 Codex 엔진에 설정/MCP를 로드하며, **훅(SessionStart/UserPromptSubmit/Stop 등)도 비대화형 모드에서 정상 발동함을 실측 확인**했습니다. 다만 승인 방식은 인터랙티브 모드와 다르게 매핑됩니다(아래 권한 모드 참고).
342
-
343
- ### 커스텀 슬래시 명령 / 스킬 / 플러그인 명령
344
-
345
- 세션 채널에 보내는 메시지는 가공 없이 그대로 Claude/Codex에 전달되므로, **`.claude/commands/`·`.claude/skills/`(Claude) 또는 `.codex/skills/`(Codex)에 정의된 명령·스킬, 그리고 플러그인이 설치한 명령**도 터미널과 똑같이 `/이름` 을 그대로 타이핑하면 동작합니다(Claude/Codex 실제 CLI로 실측 검증됨). Discord 자체 슬래시 명령(`/agent`, `/config` 등)과는 충돌하지 않습니다 — 세션 채널의 일반 텍스트 메시지이기 때문입니다.
346
-
347
- ---
348
-
349
- ## 설정 파일 위치
350
-
351
- ```
352
- ~/.discord-agent-bridge/
353
- ├─ config.json # 봇 토큰·Client ID·기본값·한도 (권한 600)
354
- ├─ servers/<guildId>.json # 서버별 역할 티어·기본값 · 채널 구조(control/sessions/status) ID · 알림 설정 (권한 600)
355
- ├─ state.json # 채널↔세션 바인딩 (재시작 후 자동 복구)
356
- └─ audit/audit.jsonl # 감사 로그
357
- ```
358
- 설정은 **전역 → 서버 → 프로젝트** 순으로 덮어써집니다.
359
-
360
- ---
361
-
362
- ## 문제 해결
363
-
364
- - **봇이 메시지에 반응하지 않아요** → Developer Portal에서 **Message Content Intent**가 켜져 있는지 확인.
365
- - **슬래시 명령이 안 보여요** → 초대 시 `applications.commands` 스코프를 포함했는지 확인(등록에 몇 분 걸릴 수 있음).
366
- - **권한 오류로 채널 생성 실패** → 봇에게 `Manage Channels` 권한이 있는지 확인.
367
- - **사용량 패널이 안 떠요** → Claude Pro/Max **구독 로그인**(`~/.claude`) 상태여야 합니다. API 키만 쓰면 이 패널은 숨겨집니다(정상).
368
- - **"권한이 없습니다: No authorized role for this actor (fail-secure)."** → 접속한 계정에 허용 목록(admin/execute/read-only)에 등록된 역할이 하나도 없다는 뜻입니다. 기본이 거부(deny-by-default)라 이렇게 나옵니다. 아래 중 하나로 해결하세요:
369
- 1. **가장 간단** — 그 계정에 Discord **서버 관리자(Administrator)** 권한을 부여. 서버 관리자는 허용 목록과 무관하게 admin 티어로 무조건 통과됩니다.
370
- 2. **이미 지정된 역할 부여** — Discord 서버의 구성원 화면에서, `/config`에 티어로 이미 등록되어 있는 역할을 그 계정에 붙여줍니다.
371
- 3. **역할을 티어에 추가** — 관리자 계정에서 `/config` → **역할 티어** 로 들어가, 그 계정이 가진 역할을 원하는 티어(admin/execute/read-only)에 클릭해 추가합니다.
372
-
373
- ---
374
-
375
- ## 개발
376
-
377
- ```bash
378
- npm install
379
- npm run dev # tsx watch (개발 모드)
380
- npm run typecheck # 타입 검사
381
- npm run test # 테스트 (vitest)
382
- ```
383
-
384
- ## 라이선스
385
-
386
- MIT
119
+ License: MIT
package/README.md CHANGED
@@ -4,384 +4,116 @@
4
4
 
5
5
  > Self-hosted Discord bot that runs AI coding agents — Claude Code, Codex, and more — per channel. Role-based access, multi-server, extensible.
6
6
 
7
- **A self-hosted Discord bot that connects an AI coding agent — Claude Code or Codex to each channel.** It runs on your own machine, with role-based permissions, multi-server support, and an extensible backend design.
8
-
9
- - Currently supports: **Claude Code**, **Codex**
10
- - Extensible: add a mode plugin to connect other agents (e.g. opencode) in the future
11
-
12
- > ✅ **Published on npm.** Run it instantly with `npx discord-agent-bridge` (recommended), or install globally / build from source. Supports both **Claude Code** and **Codex** backends.
7
+ **A self-hosted Discord bot that puts Claude Code (or Codex) into a Discord channel, running on your own machine.** Published on npm — one `npm install -g` and three commands to auto-start.
13
8
 
14
9
  ---
15
10
 
16
- ## What is this?
11
+ ## Why this?
17
12
 
18
- Send a message in a Discord channel like you're chatting, and Claude Code (or Codex) works on that project's folder from your own computer.
19
-
20
- - **One channel = one session = one project.** When you create a channel, you set its working folder and backend (Claude/Codex).
21
- - **Invite the same bot to multiple servers** each server/project gets its own independent configuration.
22
- - **Roles control who can use it.**
13
+ - 🏠 **Fully self-hosted.** The bot runs on your PC. Your code, your sessions, and your CLI tokens never leave your machine.
14
+ - 📱 **You don't need to be at your desk.** Fire off a task from Discord on your phone — streaming output, tool-run logs, and permission prompts all show up in the channel.
15
+ - 🗂️ **One channel = one project = one session.** Each channel is bound to its own folder, backend, model, and permission mode. Isolated by design.
16
+ - 👥 **Team-friendly by default.** Anyone in the channel can watch the session unfold. A 3-tier role system (admin / execute / read-only) controls who can actually run things.
17
+ - 🔀 **Claude Codex on the fly.** Switch backends with a single `/mode` command.
18
+ - ⚙️ **Same power as the terminal.** Reads your project's `.claude/` and `.codex/` configs as-is — subagents, skills, hooks, MCP, and plugin commands all work exactly like they do in the CLI.
23
19
 
24
20
  ---
25
21
 
26
22
  ## Prerequisites
27
23
 
28
24
  - **Node.js 20 or later**
29
- - The CLI for whichever backend you use must already be **installed and logged in**:
30
- - **Claude mode** → [Claude Code](https://docs.anthropic.com/en/docs/claude-code) authentication (`claude` login, or an `ANTHROPIC_API_KEY`). Viewing the usage/limits panel requires being **logged in with a Claude Pro/Max subscription**.
31
- - **Codex mode** → the `codex` CLI installed and logged in.
32
- - **A Discord bot token** (create one in Step 1 below)
25
+ - The CLI for whichever backend you'll use, already **installed and logged in**:
26
+ - **Claude mode** → [Claude Code](https://docs.anthropic.com/en/docs/claude-code) (`claude` login, or `ANTHROPIC_API_KEY`)
27
+ - **Codex mode** → the `codex` CLI, logged in
28
+ - **A Discord bot token** (Step 1 below)
33
29
 
34
30
  ---
35
31
 
36
- ## Step 1 — Create a Discord bot (Developer Portal)
32
+ ## Step 1 — Create a Discord bot
37
33
 
38
- You need to create your own bot. Takes about 5 minutes.
34
+ You need your own bot. About 5 minutes.
39
35
 
40
- 1. Go to the **[Discord Developer Portal](https://discord.com/developers/applications)** → top-right **New Application** → enter a name (e.g. `my-agent-bot`) → **Create**.
41
- 2. Left sidebar **Bot** tab → **Reset Token** → **copy the token** and keep it somewhere safe.
42
- - ⚠️ This token is a password. If it's ever exposed, reset it immediately with **Reset Token**.
43
- 3. Still under the **Bot** tab, in **Privileged Gateway Intents**:
44
- - ✅ **MESSAGE CONTENT INTENT** — **required** (the bot needs to read message content)
45
- - ✅ **SERVER MEMBERS INTENT** — recommended (used for role-based permission checks)
46
- - Enable them and **Save Changes**.
47
- 4. Left sidebar **OAuth2** tab → copy the **Client ID (Application ID)** (needed for setup).
36
+ 1. Open the **[Discord Developer Portal](https://discord.com/developers/applications)** → top-right **New Application** → give it a name (e.g. `my-agent-bot`) → **Create**.
37
+ 2. Left sidebar **Bot** tab → **Reset Token** → **copy the token** and stash it somewhere safe.
38
+ - ⚠️ This token is a password. If it leaks, hit **Reset Token** immediately.
39
+ 3. Still on the **Bot** tab, under **Privileged Gateway Intents**:
40
+ - ✅ **MESSAGE CONTENT INTENT** — **required** (the bot has to read message content)
41
+ - ✅ **SERVER MEMBERS INTENT** — recommended (used for role checks)
42
+ - Enable and **Save Changes**.
43
+ 4. Left sidebar **OAuth2** tab → copy the **Client ID (Application ID)**.
48
44
  5. **Build an invite link** — OAuth2 → **URL Generator**:
49
45
  - **Scopes**: `bot`, `applications.commands`
50
46
  - **Bot Permissions**: `Manage Channels`, `Send Messages`, `Embed Links`, `Attach Files`, `Read Message History`, `Create Public Threads`, `Send Messages in Threads`, `Manage Threads`, `Add Reactions`
51
47
  - Paste the generated URL into your browser and **invite it to your server**.
52
- - (The setup wizard can also generate this invite link for you automatically — see Step 2.)
53
48
 
54
49
  ---
55
50
 
56
51
  ## Step 2 — Install & run
57
52
 
58
- ### Install & auto-start (recommended)
59
-
60
- The simplest path. These three lines take you from install to auto-start on reboot. `service install` registers the right auto-start for your OS — **launchd on macOS, systemd on Linux, Task Scheduler on Windows**.
53
+ Three lines take you from install to auto-start on reboot. `service install` picks the right auto-start for your OS — **launchd on macOS, systemd on Linux, Task Scheduler on Windows**.
61
54
 
62
55
  ```bash
63
56
  npm install -g discord-agent-bridge # install
64
- discord-agent-bridge --setup # first time only (enter token, etc.)
57
+ discord-agent-bridge --setup # first run only (enter token, etc.)
65
58
  discord-agent-bridge service install # register auto-start + start now
66
59
  ```
67
60
 
68
- Management:
61
+ Manage it:
69
62
 
70
63
  ```bash
71
- discord-agent-bridge service status # registered / running?
64
+ discord-agent-bridge service status # is it registered / running?
72
65
  discord-agent-bridge service restart # restart
73
66
  discord-agent-bridge service uninstall # remove
74
67
  ```
75
68
 
76
- To upgrade, install the latest and restart:
69
+ Upgrade:
77
70
 
78
71
  ```bash
79
72
  npm install -g discord-agent-bridge@latest
80
73
  discord-agent-bridge service restart
81
74
  ```
82
75
 
83
- > ⚠️ **Windows note**: it registers a Task Scheduler logon trigger, so the bot **starts at login** (no admin needed). It does not guarantee auto-restart on crash (macOS/Linux do). If `service install` doesn't work, see **Manual setup — Windows (Task Scheduler)** below.
84
-
85
- ---
86
-
87
- The rest of this section is the **manual methods**, for when `service install` doesn't work or you want to set it up yourself.
88
-
89
- ### Manual setup — macOS (launchd)
90
-
91
- Run the bot directly under **launchd**, the built-in macOS service manager — it starts at login and restarts automatically if it stops.
92
-
93
- ```bash
94
- # 1) Install globally (and run setup once if you haven't)
95
- npm install -g discord-agent-bridge
96
- discord-agent-bridge --setup # skip if already configured
97
-
98
- # 2) Create a launcher wrapper — it finds nvm's default node dynamically,
99
- # so it keeps working even after you switch node versions.
100
- mkdir -p ~/.discord-agent-bridge
101
- cat > ~/.discord-agent-bridge/run.sh <<'EOF'
102
- #!/bin/bash
103
- export NVM_DIR="$HOME/.nvm"
104
- [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
105
- nvm use default >/dev/null 2>&1 || nvm use node >/dev/null 2>&1
106
- exec discord-agent-bridge
107
- EOF
108
- chmod +x ~/.discord-agent-bridge/run.sh
109
- # Not using nvm? run.sh can just be `#!/bin/bash` + `exec discord-agent-bridge` (node must be on PATH).
110
-
111
- # 3) Create the LaunchAgent ($HOME is expanded to an absolute path as the file is written)
112
- cat > ~/Library/LaunchAgents/com.discord-agent-bridge.plist <<EOF
113
- <?xml version="1.0" encoding="UTF-8"?>
114
- <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
115
- <plist version="1.0">
116
- <dict>
117
- <key>Label</key><string>com.discord-agent-bridge</string>
118
- <key>ProgramArguments</key>
119
- <array>
120
- <string>/bin/bash</string>
121
- <string>$HOME/.discord-agent-bridge/run.sh</string>
122
- </array>
123
- <key>EnvironmentVariables</key>
124
- <dict><key>HOME</key><string>$HOME</string></dict>
125
- <key>RunAtLoad</key><true/>
126
- <key>KeepAlive</key><true/>
127
- <key>StandardOutPath</key><string>$HOME/.discord-agent-bridge/agent.out.log</string>
128
- <key>StandardErrorPath</key><string>$HOME/.discord-agent-bridge/agent.err.log</string>
129
- </dict>
130
- </plist>
131
- EOF
132
-
133
- # 4) Start it
134
- launchctl load -w ~/Library/LaunchAgents/com.discord-agent-bridge.plist
135
-
136
- # 5) Verify — seeing 'gateway ready' means success (Ctrl+C only exits the log view; the bot keeps running)
137
- tail -f ~/.discord-agent-bridge/agent.out.log
138
- ```
139
-
140
- Management:
141
-
142
- ```bash
143
- launchctl list | grep discord-agent-bridge # status (col 1 = PID, col 2 = last exit code)
144
- launchctl unload ~/Library/LaunchAgents/com.discord-agent-bridge.plist # stop
145
- launchctl load -w ~/Library/LaunchAgents/com.discord-agent-bridge.plist # start
146
- ```
147
-
148
- Upgrading:
149
-
150
- ```bash
151
- npm install -g discord-agent-bridge@latest
152
- launchctl unload ~/Library/LaunchAgents/com.discord-agent-bridge.plist
153
- launchctl load -w ~/Library/LaunchAgents/com.discord-agent-bridge.plist
154
- ```
155
-
156
- > ⚠️ If you switch node versions with nvm, run `npm install -g discord-agent-bridge` once under the new version (nvm keeps global packages per version). The wrapper follows nvm's default node, so the plist itself never needs editing.
157
-
158
- ### Manual setup — Windows (Task Scheduler)
159
-
160
- Register it yourself when `discord-agent-bridge service install` doesn't work.
161
-
162
- **Commands (no admin needed)** — first find the bot's real path in PowerShell:
163
-
164
- ```powershell
165
- where.exe discord-agent-bridge # e.g. C:\Users\<you>\AppData\Roaming\npm\discord-agent-bridge.cmd
166
-
167
- # Register a logon-triggered task using the path from above
168
- schtasks /create /tn discord-agent-bridge /sc onlogon /tr "C:\Users\<you>\AppData\Roaming\npm\discord-agent-bridge.cmd" /f
169
- schtasks /query /tn discord-agent-bridge # status
170
- schtasks /run /tn discord-agent-bridge # start now
171
- schtasks /delete /tn discord-agent-bridge /f # remove
172
- ```
173
-
174
- **GUI**: Start menu → **Task Scheduler** → **Create Basic Task** → name `discord-agent-bridge`, trigger **When I log on**, action **Start a program** → the `.cmd` path from `where.exe` → Finish.
175
-
176
- > A logon task runs **at login** and does **not** guarantee restart on crash. For crash recovery / running before login you need a real Windows service — register one with [nssm](https://nssm.cc/) (admin required):
177
- >
178
- > ```powershell
179
- > nssm install discord-agent-bridge "C:\Program Files\nodejs\node.exe" "C:\Users\<you>\AppData\Roaming\npm\node_modules\discord-agent-bridge\dist\cli.js"
180
- > nssm start discord-agent-bridge
181
- > ```
182
-
183
- ### Manual setup — PM2 (Linux / Windows alternative)
184
-
185
- On Linux/Windows you can also use [PM2](https://pm2.keymetrics.io/) (handy logs, restart, status). **On macOS, use `service install`/launchd instead** — PM2's fork wrapper can prevent the bot from opening its gateway connection on macOS.
186
-
187
- ```bash
188
- # 1) Install the bot globally (so PM2 has a stable command to run)
189
- npm install -g discord-agent-bridge
190
-
191
- # 2) Run --setup once if you haven't yet
192
- discord-agent-bridge --setup
193
-
194
- # 3) Install PM2
195
- npm install -g pm2
196
-
197
- # 4) Register the bot with PM2 and start it
198
- pm2 start discord-agent-bridge --name discord-agent-bridge
199
-
200
- # 5) Snapshot the current process list (so PM2 knows what to restore on boot)
201
- pm2 save
202
-
203
- # 6) Register PM2 to start at boot (on macOS this wires up launchd)
204
- pm2 startup
205
- # ↑ Copy-paste the `sudo ...` command it prints and run it once.
206
- ```
207
-
208
- Day-to-day management:
209
-
210
- ```bash
211
- pm2 status # is it running?
212
- pm2 logs discord-agent-bridge # tail logs
213
- pm2 restart discord-agent-bridge # restart (also do this after upgrading)
214
- pm2 stop discord-agent-bridge # stop
215
- pm2 delete discord-agent-bridge # unregister
216
- ```
217
-
218
- Upgrading under PM2:
219
-
220
- ```bash
221
- npm install -g discord-agent-bridge@latest
222
- pm2 restart discord-agent-bridge
223
- ```
224
-
225
- > ⚠️ If you use nvm/asdf, PM2 needs to find the same `node` at boot time as it does in your shell. Verify with `which node` and make sure that path is available to the boot environment — otherwise PM2 may fail to start the bot on reboot.
226
-
227
- ### Run with npx (quick try)
228
-
229
- Use this to spin it up once without installing. `npx` fetches the latest version and runs it; on first run, the setup wizard appears first and the bot starts right after. (Closing the terminal stops the bot — use PM2 above to keep it running.)
230
-
231
- ```bash
232
- # First run — the setup wizard runs automatically, then the bot starts.
233
- # (asks for your token/Client ID, checks intents, generates an invite link — no other defaults are asked)
234
- npx discord-agent-bridge
235
-
236
- # Later runs — if already configured, the bot starts directly.
237
- npx discord-agent-bridge
238
-
239
- # To reconfigure only (without starting the bot)
240
- npx discord-agent-bridge --setup
241
- ```
242
-
243
- Global install also works: `npm install -g discord-agent-bridge`, then `discord-agent-bridge` / `discord-agent-bridge --setup`.
244
-
245
- ### Upgrading
246
-
247
- When a new version is released:
248
-
249
- ```bash
250
- # npx users — appending @latest always fetches the newest version (npx can otherwise cache).
251
- npx discord-agent-bridge@latest
252
-
253
- # Global-install users
254
- npm install -g discord-agent-bridge@latest
255
- ```
256
-
257
- Check your installed version with: `discord-agent-bridge --version`.
258
-
259
- **What the setup wizard (`--setup`) asks for** — the **token (secret) is the only thing you type into the terminal**. Nothing else is asked here:
260
- 1. Your Discord bot **token** (secret — paste it only in the terminal)
261
- 2. Your **Client ID**
262
- 3. Confirmation that Message Content Intent is enabled
263
- 4. Generates an invite URL → invite it to your server
264
-
265
- > **Roles and defaults are never configured in the terminal.** After inviting the bot to your server, configure them in Discord with the **`/config`** command:
266
- > - **Role tiers** — assign them by **clicking** a role name (no need to copy a role ID or enable Developer Mode). Until assigned, access is **deny-by-default**.
267
- > - **Defaults** — **default backend, model, permission mode, and language (locale)** are saved instantly from a dropdown; the **Codex base path (codexHome)** is set via the "Set Codex Path" button → a text-input modal. Language choices are `한국어 (ko)` / `English (en)`.
268
-
269
- Configuration is stored under `~/.discord-agent-bridge/` (token file permissions 600). Per-server roles and defaults are stored in `servers/<guildId>.json`.
76
+ > ⚠️ **Windows note**: registers a Task Scheduler logon trigger, so the bot **starts at login** (no admin needed). It doesn't guarantee auto-restart on crash (macOS/Linux do).
270
77
 
271
78
  ---
272
79
 
273
80
  ## Step 3 — Using it in Discord
274
81
 
275
- Once the bot joins a server, it **automatically creates a control channel (`#session-generator`), a sessions category, and a notifications channel (`#agent-status`)** (as long as it has the Manage Channels permission). From there, the flow is: **`/config` → `/agent start`**.
82
+ Once the bot joins a server, it **automatically creates a control channel (`#session-generator`), a sessions category, and a notifications channel (`#agent-status`)** (as long as it has Manage Channels). From there: **`/config` → `/agent start`**.
276
83
 
277
- 1. **(Automatic)** This channel structure is created when the bot starts or is invited to a server. An admin can also recreate it manually with **`/init`** (existing channels are reused — no duplicates).
278
- 2. **`/config`** (admin) set role tiers and defaults. (Server Administrators can always use the bot, even without an assigned role.)
279
- 3. In `#session-generator`, run **`/agent start`** the **wizard** walks you through, in order:
280
- **choose a working folder backend (Claude / Codex) model → reasoning effort → permission mode**. Each step advances with a **"Next" button**. The folder browser supports **navigating to parent/other volumes, creating new folders, and resuming a previous session**. Once confirmed, a **dedicated session channel (`proj-<folder>`) is created** and bound to it, named after the project folder.
281
- 4. In the newly created session channel, **just chat with normal messages**. Claude mode shows streaming output, tool-execution threads, and permission approval buttons.
282
- 5. Use the commands below whenever you need them.
84
+ 1. **(Automatic)** Channel structure is created on bot start / server invite. Admins can rebuild it manually with **`/init`** (existing channels are reused).
85
+ 2. **`/config`** (admin) set role tiers and defaults. Server Administrators can always use the bot even before roles are configured.
86
+ 3. In `#session-generator`, run **`/agent start`**. The **wizard** walks you through: **working folder → backend (Claude / Codex) → model → reasoning effort → permission mode**. Each step advances with a **Next** button. The folder browser lets you navigate to parents/other volumes, create folders, and resume prior sessions. On confirm, a **dedicated session channel (`proj-<folder>`)** is created and bound.
87
+ 4. In that session channel, **just send normal messages**. Claude mode gives you streaming output, tool-run threads, and permission approval buttons.
283
88
 
284
89
  ### Key commands
90
+
285
91
  | Command | Description |
286
92
  |---|---|
287
- | `/init` | (admin) Create the control channel + sessions category (reuses them if already present) |
288
- | `/agent start` | Start a new session — creates a dedicated session channel once the wizard is confirmed |
93
+ | `/init` | (admin) Create the control channel + sessions category (reuses existing) |
94
+ | `/agent start` | Start a new session — creates a dedicated session channel on confirm |
289
95
  | `/agent resume` | Resume a previous session |
290
- | `/agent close` | End the session and delete its session channel |
291
- | `/agent stats` | View active sessions, session statistics, and Claude usage (visible only to you) |
292
- | `/mode <claude\|codex>` | Switch backend (⚠️ starts a new conversation — prior context is not carried over) |
96
+ | `/agent close` | End the session and delete its channel |
97
+ | `/agent stats` | Active sessions, session stats, and Claude usage (only you can see it) |
98
+ | `/mode <claude\|codex>` | Switch backend (⚠️ starts a fresh conversation — prior context is not carried over) |
293
99
  | `/mode perm <mode\|profile>` | Switch permission mode/profile (session context is preserved) |
294
- | `/stop` | Immediately stop the current session (kill switch) |
295
- | `/stop-all` | (admin) Stop all sessions |
296
- | `/config` | (admin) Configure role tiers + defaults (backend, model, permission mode, language, Codex path) — roles are set by **clicking**, defaults via dropdown/modal |
297
-
298
- ### Permission modes (how autonomous a session is)
299
- - `default` — confirms every tool execution with **Allow/Deny buttons** (safest)
300
- - `acceptEdits` — file edits are accepted automatically
301
- - `plan` — only plans first, holds off on execution
302
- - `bypassPermissions` — fully automatic (only for projects you trust)
303
-
304
- (Codex maps these to the CLI's own approval/sandbox modes.)
305
-
306
- ### Event notifications (`#agent-status`)
307
-
308
- Summarizes **completions and errors** from all your sessions into a single `#agent-status` channel. Toggle it on/off and change the target channel from `/config` → **🔔 Notification Settings**.
100
+ | `/stop` | Stop the current session immediately (kill switch) |
101
+ | `/stop-all` | (admin) Stop every session |
102
+ | `/config` | (admin) Configure role tiers + defaults (backend, model, permission mode, language, Codex path) |
309
103
 
310
- ---
311
-
312
- ## Permissions & role setup (important)
313
-
314
- This bot runs code **on your machine, with your account's permissions**. That means anyone who can command the bot is effectively **someone who can run commands on your computer** — so role-based access control is essential.
315
-
316
- - **3 role tiers** — assign them in Discord via **`/config`** by **clicking** a role name (no role ID or Developer Mode needed). admin ⊇ execute ⊇ read-only:
317
- - **admin** — manages settings/`stop-all`/`config`
318
- - **execute** — can start sessions and run commands
319
- - **read-only** — read access only
320
- - > `/config` can initially only be opened by someone with **server Administrator** permission (bootstraps even with an empty allow-list); afterward, the admin tier can use it too.
321
- - **Deny-by-default** — anyone not on the allow-list can do nothing. Until you configure it via `/config`, no one can run anything.
322
- - **Per-project access control (ACL)** — restrict a specific project to only the roles/people you designate.
323
- - **Audit log** — who did what and when is recorded in `~/.discord-agent-bridge/audit/`.
324
-
325
- > ⚠️ **Security note:** Don't invite the bot to servers you don't trust, and don't grant the execute role too broadly. Access outside the working folder (e.g. `~/.ssh`) is blocked by default.
326
-
327
- ---
104
+ ### Permission modes
328
105
 
329
- ## Claude mode vs. Codex mode
106
+ - `default` asks before each tool run with **Allow/Deny buttons** (safest)
107
+ - `acceptEdits` — file edits auto-accepted
108
+ - `plan` — plans only, no execution
109
+ - `bypassPermissions` — fully automatic (trusted projects only)
330
110
 
331
- | | Claude mode | Codex mode |
332
- |---|---|---|
333
- | Real-time streaming | ✅ | ❌ (final result only) |
334
- | Tool-execution threads | ✅ | ❌ |
335
- | Permission approval buttons | ✅ | ❌ (replaced by approval/sandbox modes) |
336
- | Session resume | ✅ | ✅ |
337
- | **Usage/limits display** | ✅ (5-hour · weekly · context) | ❌ (Codex CLI limitation) |
338
-
339
- ### Is this the same as using the terminal?
340
-
341
- - **Claude mode** — uses the **same engine** as the `claude` terminal (the official Claude Agent SDK). It reads the project's `.claude/` configuration as-is, so **subagents, skills, hooks, and MCP all behave identically**. The only difference is the **presentation**: input comes from Discord messages, output renders as embeds/threads. (TUI-only slash commands you'd type in the interactive terminal are handled through the SDK's mechanism rather than the TUI's own.)
342
- - **Codex mode** — runs via `codex exec` (non-interactive). It loads the same Codex engine with your config/MCP, and we've **empirically confirmed hooks (SessionStart/UserPromptSubmit/Stop, etc.) fire correctly in non-interactive mode too**. Approval flow is mapped differently than interactive mode, though (see Permission modes above).
343
-
344
- ### Custom slash commands / skills / plugin commands
345
-
346
- Messages you send in a session channel are forwarded to Claude/Codex verbatim, so **commands/skills defined under `.claude/commands/`, `.claude/skills/` (Claude) or `.codex/skills/` (Codex), as well as commands installed by plugins**, work exactly as they do in the terminal — just type `/name` as-is (verified against the real Claude/Codex CLIs). This doesn't conflict with the bot's own Discord slash commands (`/agent`, `/config`, etc.) since it's just a plain text message in a session channel.
347
-
348
- ---
111
+ Codex maps these onto its own approval/sandbox modes.
349
112
 
350
- ## Configuration file locations
351
-
352
- ```
353
- ~/.discord-agent-bridge/
354
- ├─ config.json # bot token · Client ID · defaults · limits (permissions 600)
355
- ├─ servers/<guildId>.json # per-server role tiers · defaults · channel structure (control/sessions/status) IDs · notification settings (permissions 600)
356
- ├─ state.json # channel↔session bindings (auto-restored after restart)
357
- └─ audit/audit.jsonl # audit log
358
- ```
359
- Configuration is overridden in the order **global → server → project**.
360
-
361
- ---
362
-
363
- ## Troubleshooting
113
+ ### Event notifications (`#agent-status`)
364
114
 
365
- - **The bot doesn't respond to messages** Check that **Message Content Intent** is enabled in the Developer Portal.
366
- - **Slash commands don't show up** → Check that you included the `applications.commands` scope when inviting the bot (registration can take a few minutes).
367
- - **Channel creation fails with a permission error** → Check that the bot has the `Manage Channels` permission.
368
- - **The usage panel doesn't appear** → You need to be **logged in with a Claude Pro/Max subscription** (`~/.claude`). This panel is hidden (as expected) if you're only using an API key.
369
- - **"No authorized role for this actor (fail-secure)."** → The account you signed in with has no role on the allow-list. This is deny-by-default. Fix it with one of these:
370
- 1. **Simplest** — give that account Discord's **server Administrator** permission. Administrators are unconditionally treated as the admin tier and bypass the allow-list.
371
- 2. **Assign a listed role** — in the Discord server's member list, give the account one of the roles that's already tied to a tier under `/config`.
372
- 3. **Add the role to a tier** — from an admin account, open `/config` → **Role tiers** and click the account's role into the tier you want (admin/execute/read-only).
115
+ Completions and errors from all your sessions get summarized into a single `#agent-status` channel. Toggle it and change the target channel from `/config` → **🔔 Notification Settings**.
373
116
 
374
117
  ---
375
118
 
376
- ## Development
377
-
378
- ```bash
379
- npm install
380
- npm run dev # tsx watch (dev mode)
381
- npm run typecheck # type checking
382
- npm run test # tests (vitest)
383
- ```
384
-
385
- ## License
386
-
387
- MIT
119
+ License: MIT
@@ -167,7 +167,9 @@ export const CONFIG_DEFAULTS = {
167
167
  },
168
168
  limits: {
169
169
  maxSessionsPerUser: 0,
170
- permissionTimeoutSec: 60,
170
+ // 0 → no timer, the Allow/Always/Deny prompt waits indefinitely for a click
171
+ // (see wiring.ts withTimeout). Prevents auto-deny on slow responders.
172
+ permissionTimeoutSec: 0,
171
173
  codexTimeoutMs: 1_800_000,
172
174
  },
173
175
  policy: {
@@ -1 +1 @@
1
- {"version":3,"file":"configSchema.js","sourceRoot":"","sources":["../../src/core/configSchema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"configSchema.js","sourceRoot":"","sources":["../../src/core/configSchema.ts"],"names":[],"mappings":"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"}
@@ -36,9 +36,29 @@ export function formatNotification(ev, sessionChannelId, events) {
36
36
  case 'error': {
37
37
  if (!events.error)
38
38
  return null;
39
- let line = `❌ <#${sessionChannelId}> 에러: ${ev.message.slice(0, 500)}`;
40
- if (ev.rateLimit)
41
- line += ` · rate limit`;
39
+ return `❌ <#${sessionChannelId}> 에러: ${ev.message.slice(0, 500)}`;
40
+ }
41
+ case 'rate_limit': {
42
+ // Gated by events.error (per minimal-change guidance): a rate-limit update is
43
+ // not an error semantically, but it's operational status of the same "something
44
+ // to be aware of" kind, and adding a new filter here would ripple into config
45
+ // schema / defaults. If differentiation is needed later, split the flag.
46
+ if (!events.error)
47
+ return null;
48
+ let line = `📊 <#${sessionChannelId}> 사용량 한도`;
49
+ if (typeof ev.utilization === 'number')
50
+ line += ` · ${Math.round(ev.utilization)}%`;
51
+ if (ev.resetAt) {
52
+ const ms = Date.parse(ev.resetAt);
53
+ if (!Number.isNaN(ms)) {
54
+ const hhmm = new Date(ms).toLocaleTimeString('ko-KR', {
55
+ hour: '2-digit',
56
+ minute: '2-digit',
57
+ hour12: false,
58
+ });
59
+ line += ` · 리셋 ${hhmm}`;
60
+ }
61
+ }
42
62
  return line;
43
63
  }
44
64
  case 'tool_use': {
@@ -1 +1 @@
1
- {"version":3,"file":"notifier.js","sourceRoot":"","sources":["../../src/discord/notifier.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"notifier.js","sourceRoot":"","sources":["../../src/discord/notifier.ts"],"names":[],"mappings":"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"}
@@ -64,6 +64,9 @@ export class RendererDispatcher {
64
64
  case 'error':
65
65
  this.renderers.error(ev);
66
66
  break;
67
+ case 'rate_limit':
68
+ this.renderers.rateLimit(ev);
69
+ break;
67
70
  }
68
71
  }
69
72
  }
@@ -176,6 +179,9 @@ export function createDefaultRendererSet(options) {
176
179
  error(ev) {
177
180
  swallow(channel.send({ content: `⚠️ ${ev.message}` }));
178
181
  },
182
+ rateLimit(ev) {
183
+ swallow(channel.send({ content: formatRateLimitLine(ev) }));
184
+ },
179
185
  dispose() {
180
186
  // Cancel the streaming/thinking debounce timers so a detach mid-stream cannot
181
187
  // fire a late edit/send against a channel that is being torn down. Ended
@@ -192,4 +198,38 @@ export function createDefaultRendererSet(options) {
192
198
  // Re-export the permission handler for 7b to wire orchestrator.requestPermission
193
199
  // and button-interaction resolution (the request/resolve round-trip lives there).
194
200
  export { PermissionButtonsHandler } from './permissionButtons.js';
201
+ // Human-readable label for the SDK's rateLimitType codes. Unknown types pass through
202
+ // verbatim so a future SDK addition still renders something (not silently dropped).
203
+ function rateLimitTypeLabel(type) {
204
+ switch (type) {
205
+ case 'five_hour':
206
+ return '5시간 한도';
207
+ case 'weekly':
208
+ return '주간 한도';
209
+ default:
210
+ return type;
211
+ }
212
+ }
213
+ // One-line summary of a rate_limit event: emoji + label + optional utilization %
214
+ // and reset time. Kept as a plain function (not on RendererSet) so the notifier
215
+ // path can reuse the same phrasing if desired later.
216
+ export function formatRateLimitLine(ev) {
217
+ let line = '📊 사용량 한도 알림';
218
+ if (ev.rateLimitType)
219
+ line += ` · ${rateLimitTypeLabel(ev.rateLimitType)}`;
220
+ if (typeof ev.utilization === 'number')
221
+ line += ` · 사용량 ${Math.round(ev.utilization)}%`;
222
+ if (ev.resetAt) {
223
+ const ms = Date.parse(ev.resetAt);
224
+ if (!Number.isNaN(ms)) {
225
+ const hhmm = new Date(ms).toLocaleTimeString('ko-KR', {
226
+ hour: '2-digit',
227
+ minute: '2-digit',
228
+ hour12: false,
229
+ });
230
+ line += ` · 리셋 ${hhmm}`;
231
+ }
232
+ }
233
+ return line;
234
+ }
195
235
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/discord/renderers/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/discord/renderers/index.ts"],"names":[],"mappings":"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"}
@@ -32,7 +32,9 @@ export class SessionWiring {
32
32
  this.auditLog = deps.auditLog;
33
33
  this.configStore = deps.configStore;
34
34
  this.resolveChannel = deps.resolveChannel ?? (() => Promise.resolve(null));
35
- this.permissionTimeoutMs = Math.max(1, deps.permissionTimeoutSec) * 1000;
35
+ // 0 sentinel means "no timer" (infinite wait); withTimeout skips the setTimeout
36
+ // path so a slow-to-respond operator is not auto-denied.
37
+ this.permissionTimeoutMs = deps.permissionTimeoutSec > 0 ? deps.permissionTimeoutSec * 1000 : 0;
36
38
  this.onAlwaysAllow = deps.onAlwaysAllow;
37
39
  }
38
40
  // Build the live resolveChannel over a real gateway client (used by app boot).
@@ -247,7 +249,11 @@ export class SessionWiring {
247
249
  }
248
250
  // Race the decision against the permission timeout. On timeout, resolve the
249
251
  // pending prompt as deny (via a synthetic deny custom_id) and return deny.
252
+ // permissionTimeoutMs === 0 means "no timer": pass the decision through untouched
253
+ // so the prompt waits indefinitely for a button click.
250
254
  withTimeout(decision, reqId, wiring) {
255
+ if (this.permissionTimeoutMs === 0)
256
+ return decision;
251
257
  return new Promise((resolve) => {
252
258
  const timer = setTimeout(() => {
253
259
  void wiring.permission.resolve(`perm:${reqId}:deny`).catch(() => { });
@@ -1 +1 @@
1
- {"version":3,"file":"wiring.js","sourceRoot":"","sources":["../../src/discord/wiring.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAIhE,OAAO,EAAE,kBAAkB,EAAE,wBAAwB,EAAoB,MAAM,sBAAsB,CAAC;AACtG,OAAO,EAAE,wBAAwB,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAC3F,OAAO,EAAkB,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAGpE,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AA8DtE,SAAS,UAAU,CAAC,OAAe,EAAE,SAAiB;IACpD,OAAO,GAAG,OAAO,IAAI,SAAS,EAAE,CAAC;AACnC,CAAC;AAED,MAAM,OAAO,aAAa;IACP,QAAQ,CAAW;IACnB,YAAY,CAAe;IAC3B,eAAe,CAAkB;IACjC,YAAY,CAAe;IAC3B,MAAM,CAAS;IAChC,0EAA0E;IAC1E,+EAA+E;IAC/E,4EAA4E;IACpE,cAAc,CAAwD;IAC7D,mBAAmB,CAAS;IAC5B,QAAQ,CAAY;IACpB,WAAW,CAAe;IAC1B,aAAa,CAAuD;IAEpE,QAAQ,GAAG,IAAI,GAAG,EAAyB,CAAC;IAC7D,mFAAmF;IAC3E,SAAS,GAAuB,IAAI,CAAC;IAE7C,YAAY,IAAuB;QACjC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC9B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QACtC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;QAC5C,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QACtC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC9B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACpC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QAC3E,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,oBAAoB,CAAC,GAAG,IAAI,CAAC;QACzE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;IAC1C,CAAC;IAED,+EAA+E;IAC/E,MAAM,CAAC,iBAAiB,CAAC,MAAc;QACrC,OAAO,CAAC,SAAiB,EAAkC,EAAE,CAC3D,qBAAqB,CAAC,MAAM,EAAE,SAAS,CAAmC,CAAC;IAC/E,CAAC;IAED,8EAA8E;IAC9E,yEAAyE;IACzE,iBAAiB,CAAC,cAAqE;QACrF,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;IACvC,CAAC;IAED,kFAAkF;IAClF,kFAAkF;IAClF,iFAAiF;IACjF,oDAAoD;IACpD,iBAAiB,GAAG,KAAK,EACvB,OAAgE,EAChE,GAAsB,EACO,EAAE;QAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;QACjF,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,oCAAoC,EAAE,CAAC;QAC7E,CAAC;QACD,+EAA+E;QAC/E,2EAA2E;QAC3E,MAAM,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;QACnF,MAAM,EAAE,GAAwD;YAC9D,IAAI,EAAE,oBAAoB;YAC1B,EAAE;YACF,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,KAAK,EAAE,GAAG,CAAC,KAAK;SACjB,CAAC;QACF,gFAAgF;QAChF,6EAA6E;QAC7E,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QAChE,OAAO,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;IAChD,CAAC,CAAC;IAEF,mFAAmF;IACnF,gFAAgF;IAChF,kFAAkF;IAClF,mFAAmF;IACnF,0CAA0C;IAC1C,KAAK,CAAC,iBAAiB,CACrB,OAAe,EACf,SAAiB,EACjB,QAAgB,EAChB,OAAgB;QAEhB,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;QACjE,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QACzB,yEAAyE;QACzE,+EAA+E;QAC/E,gFAAgF;QAChF,yDAAyD;QACzD,MAAM,MAAM,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;QACvC,MAAM,UAAU,GACd,MAAM,EAAE,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACpF,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACpE,IAAI,UAAU,IAAI,QAAQ,EAAE,QAAQ,KAAK,OAAO,EAAE,CAAC;YACjD,4EAA4E;YAC5E,0EAA0E;YAC1E,4EAA4E;YAC5E,2EAA2E;YAC3E,+CAA+C;YAC/C,IAAI,CAAC,gBAAgB,CAAC,OAAO,IAAI,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;YACrE,IAAI,CAAC;gBACH,IAAI,CAAC,aAAa,EAAE,CAAC,UAAU,EAAE,EAAE,OAAO,EAAE,OAAO,IAAI,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;YACnF,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,yEAAyE;gBACzE,gEAAgE;gBAChE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,qCAAqC,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAClG,CAAC;QACH,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,gFAAgF;IAChF,+EAA+E;IAC/E,qCAAqC;IAC7B,gBAAgB,CAAC,OAAe,EAAE,OAAe,EAAE,SAAiB,EAAE,IAAY;QACxF,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,OAAO;QAC3B,IAAI,CAAC;YACH,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;gBACnB,OAAO;gBACP,QAAQ,EAAE,SAAS;gBACnB,OAAO;gBACP,SAAS;gBACT,MAAM,EAAE,cAAc;gBACtB,IAAI;gBACJ,MAAM,EAAE,SAAS;aAClB,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,8BAA8B,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC/E,CAAC;IACH,CAAC;IAED,iFAAiF;IACjF,+EAA+E;IAC/E,0CAA0C;IAC1C,KAAK,CAAC,MAAM,CAAC,OAAe,EAAE,SAAiB,EAAE,IAAY;QAC3D,MAAM,GAAG,GAAG,UAAU,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAC3C,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAEhC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QACrD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,2CAA2C,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;YACtF,OAAO;QACT,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAC7D,MAAM,OAAO,GAAG,OAAO,EAAE,OAAO,IAAI,EAAE,CAAC;QACvC,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC;QAE9D,MAAM,UAAU,GAAG,IAAI,wBAAwB,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;QAC7D,MAAM,WAAW,GAAG,wBAAwB,CAAC;YAC3C,OAAO;YACP,OAAO;YACP,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC;SAC5C,CAAC,CAAC;QACH,6EAA6E;QAC7E,2EAA2E;QAC3E,gFAAgF;QAChF,MAAM,GAAG,GAAG,EAAE,GAAG,WAAW,EAAE,UAAU,EAAE,CAAC,EAAuD,EAAE,EAAE,GAAG,KAAK,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1J,MAAM,UAAU,GAAG,IAAI,kBAAkB,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;QAC7D,MAAM,WAAW,GAAG,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;QAE5E,+EAA+E;QAC/E,8EAA8E;QAC9E,gFAAgF;QAChF,6EAA6E;QAC7E,kFAAkF;QAClF,MAAM,mBAAmB,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAE1E,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE;YACrB,WAAW;YACX,SAAS,EAAE,GAAG;YACd,UAAU;YACV,OAAO;YACP,IAAI;YACJ,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,mBAAmB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACxD,CAAC,CAAC;QACH,wEAAwE;QACxE,IAAI,YAAY,CAAC,UAAU;YAAE,KAAK,IAAI,CAAC,YAAY,EAAE,CAAC;IACxD,CAAC;IAED,qFAAqF;IACrF,0FAA0F;IAC1F,sFAAsF;IACtF,sFAAsF;IAC9E,KAAK,CAAC,cAAc,CAAC,OAAe,EAAE,SAAiB;QAC7D,IAAI,CAAC,IAAI,CAAC,WAAW;YAAE,OAAO,IAAI,CAAC;QACnC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;YAC1D,MAAM,aAAa,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC;YACnD,IAAI,CAAC,aAAa,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS;gBAAE,OAAO,IAAI,CAAC;YACpE,iEAAiE;YACjE,IAAI,aAAa,CAAC,SAAS,KAAK,SAAS;gBAAE,OAAO,IAAI,CAAC;YACvD,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;YACzE,IAAI,CAAC,aAAa;gBAAE,OAAO,IAAI,CAAC;YAChC,MAAM,QAAQ,GAAG,IAAI,eAAe,CAAC;gBACnC,aAAa;gBACb,gBAAgB,EAAE,SAAS;gBAC3B,MAAM,EAAE,aAAa,CAAC,MAAM;aAC7B,CAAC,CAAC;YACH,OAAO,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;QAC/D,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,yBAAyB,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACtF,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,kFAAkF;IAClF,iFAAiF;IACjF,kFAAkF;IAClF,8DAA8D;IAC9D,MAAM,CAAC,OAAe,EAAE,SAAiB;QACvC,MAAM,GAAG,GAAG,UAAU,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAC3C,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACtC,IAAI,CAAC,MAAM;YAAE,OAAO;QACpB,MAAM,CAAC,WAAW,EAAE,CAAC;QACrB,mFAAmF;QACnF,iDAAiD;QACjD,MAAM,CAAC,mBAAmB,EAAE,EAAE,CAAC;QAC/B,IAAI,CAAC;YACH,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,CAAC;QAC/B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mCAAmC,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAClG,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC5B,CAAC;IAED,mFAAmF;IACnF,kDAAkD;IAClD,WAAW,CAAC,OAAe,EAAE,SAAiB;QAC5C,OAAO,KAAK,EAAE,OAAe,EAAE,QAAiB,EAAmB,EAAE;YACnE,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;YACjE,IAAI,CAAC,MAAM;gBAAE,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;YACxE,MAAM,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACnG,OAAO,QAAQ,QAAQ,IAAI,OAAO,kBAAkB,CAAC;QACvD,CAAC,CAAC;IACJ,CAAC;IAED,qFAAqF;IAC7E,KAAK,CAAC,YAAY;QACxB,IAAI,CAAC;YACH,IAAI,CAAC,SAAS,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;QACtD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;IAED,+EAA+E;IAC/E,sEAAsE;IAC9D,gBAAgB,CAAC,IAAY;QACnC,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC;YACxF,OAAO,qBAAqB,EAAE,CAAC;QACjC,CAAC;QACD,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,4EAA4E;IAC5E,2EAA2E;IACnE,WAAW,CACjB,QAAqC,EACrC,KAAa,EACb,MAAqB;QAErB,OAAO,IAAI,OAAO,CAAqB,CAAC,OAAO,EAAE,EAAE;YACjD,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC5B,KAAK,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;gBACrE,OAAO,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,uCAAuC,EAAE,CAAC,CAAC;YAClF,CAAC,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;YAC7B,KAAK,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;gBACvB,YAAY,CAAC,KAAK,CAAC,CAAC;gBACpB,OAAO,CAAC,CAAC,CAAC,CAAC;YACb,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
1
+ {"version":3,"file":"wiring.js","sourceRoot":"","sources":["../../src/discord/wiring.ts"],"names":[],"mappings":"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"}
@@ -177,16 +177,12 @@ export class ClaudeSession {
177
177
  case 'rate_limit_event': {
178
178
  const info = msg.rate_limit_info;
179
179
  this.ctx.emit({
180
- kind: 'error',
181
- message: 'Rate limit updated.',
182
- retryable: true,
183
- rateLimit: {
184
- ...(info.resetsAt !== undefined
185
- ? { resetAt: new Date(info.resetsAt * 1000).toISOString() }
186
- : {}),
187
- ...(info.rateLimitType !== undefined ? { rateLimitType: info.rateLimitType } : {}),
188
- ...(info.utilization !== undefined ? { utilization: info.utilization } : {}),
189
- },
180
+ kind: 'rate_limit',
181
+ ...(info.resetsAt !== undefined
182
+ ? { resetAt: new Date(info.resetsAt * 1000).toISOString() }
183
+ : {}),
184
+ ...(info.rateLimitType !== undefined ? { rateLimitType: info.rateLimitType } : {}),
185
+ ...(info.utilization !== undefined ? { utilization: info.utilization } : {}),
190
186
  });
191
187
  return;
192
188
  }
@@ -1 +1 @@
1
- {"version":3,"file":"session.js","sourceRoot":"","sources":["../../../src/modes/claude/session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../../src/modes/claude/session.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "discord-agent-bridge",
3
- "version": "0.4.0",
3
+ "version": "0.5.0",
4
4
  "description": "Self-hosted Discord bot that runs AI coding agents — Claude Code, Codex, and more — per channel. Role-based access, multi-server, extensible.",
5
5
  "type": "module",
6
6
  "bin": {