Skip to content

Commit afc19be

Browse files
committed
feat: align with CommandCode CLI 1.49.0
1 parent cf927f6 commit afc19be

14 files changed

Lines changed: 204 additions & 69 deletions

.env.example

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ COMMANDCODE_API_BASE=https://api.commandcode.ai
2323
COMMANDCODE_DEFAULT_MODEL=deepseek/deepseek-v4-pro
2424
COMMANDCODE_ALLOWED_MODELS=deepseek/deepseek-v4-pro,deepseek/deepseek-v4-flash
2525
COMMANDCODE_ALLOW_UNKNOWN_MODELS=false
26-
COMMANDCODE_CLI_VERSION=1.38.2
26+
COMMANDCODE_CLI_VERSION=1.49.0
2727
COMMANDCODE_TIMEOUT_MS=600000
2828
COMMANDCODE_RETRY_MAX_ATTEMPTS=5
2929
COMMANDCODE_RETRY_BACKOFF_MS=250

README.ko.md

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@
88
</p>
99

1010
<p align="center">
11-
<a href="package.json"><img src="https://img.shields.io/badge/version-1.38.2.a-b57920?style=flat-square" alt="Version 1.38.2.a"></a>
12-
<a href="src/model-catalog.ts"><img src="https://img.shields.io/badge/models-62-1f6f78?style=flat-square" alt="62 models"></a>
11+
<a href="package.json"><img src="https://img.shields.io/badge/version-1.49.0.a-b57920?style=flat-square" alt="Version 1.49.0.a"></a>
12+
<a href="src/model-catalog.ts"><img src="https://img.shields.io/badge/models-68-1f6f78?style=flat-square" alt="68 models"></a>
1313
<a href="package.json"><img src="https://img.shields.io/badge/Node.js-20%2B-9f4d2e?style=flat-square" alt="Node.js 20+"></a>
1414
<a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-28231f?style=flat-square" alt="MIT License"></a>
1515
</p>
@@ -20,7 +20,7 @@
2020

2121
<!-- README-I18N:END -->
2222

23-
CommandCode Bridge는 CommandCode 계정을 위한 신뢰 환경용 HTTP 게이트웨이입니다. 표준 OpenAI-compatible 모델·채팅 endpoint를 제공하고 eligible upstream credential 사이에서 요청을 라우팅하며, CommandCode **1.38.2**에 맞춘 정확한 **62-model** catalog를 게시합니다. Bridge 버전은 항상 현재 CommandCode CLI 버전을 따라가며 그 뒤에 문자 접미사를 붙입니다(예: **1.38.2.a**). 접미사는 bridge 전용 release를 뜻합니다.
23+
CommandCode Bridge는 CommandCode 계정을 위한 신뢰 환경용 HTTP 게이트웨이입니다. 표준 OpenAI-compatible 모델·채팅 endpoint를 제공하고 eligible upstream credential 사이에서 요청을 라우팅하며, CommandCode **1.49.0**에 맞춘 정확한 **68-model** catalog를 게시합니다. Bridge 버전은 항상 현재 CommandCode CLI 버전을 따라가며 그 뒤에 문자 접미사를 붙입니다(예: **1.49.0.a**). 접미사는 bridge 전용 release를 뜻합니다.
2424

2525
[기능](#기능) · [설치](#설치) · [사용법](#사용법) · [동작 방식](#동작-방식) · [저장소 구성](#저장소-구성) · [현재 제한](#현재-제한) · [라이선스](#라이선스)
2626

@@ -48,7 +48,7 @@ CommandCode Bridge는 CommandCode 계정을 위한 신뢰 환경용 HTTP 게이
4848

4949
### Linux rootless installer
5050

51-
installer는 Linux user systemd용이며 CommandCode CLI 1.38.2 때문에 Node.js 22+를 요구합니다. 가능한 경우 CLI auth를 가져오고 private state는 `~/.config/commandcode-bridge`, 설치본은 `~/.local/share/commandcode-bridge`에 두며 안전한 기본값은 `127.0.0.1:9992`입니다. `0.0.0.0``BRIDGE_API_KEY`를 켠 신뢰 LAN/VPN/tailnet/firewall/reverse proxy 뒤에서만 사용하십시오. 로그인 전 시작에는 `sudo loginctl enable-linger "$USER"`, 제거에는 `./uninstall.sh` 또는 `./uninstall.sh --purge-config`를 사용합니다.
51+
installer는 Linux user systemd용이며 CommandCode CLI 1.49.0 때문에 Node.js 22+를 요구합니다. 가능한 경우 CLI auth를 가져오고 private state는 `~/.config/commandcode-bridge`, 설치본은 `~/.local/share/commandcode-bridge`에 두며 안전한 기본값은 `127.0.0.1:9992`입니다. `0.0.0.0``BRIDGE_API_KEY`를 켠 신뢰 LAN/VPN/tailnet/firewall/reverse proxy 뒤에서만 사용하십시오. 로그인 전 시작에는 `sudo loginctl enable-linger "$USER"`, 제거에는 `./uninstall.sh` 또는 `./uninstall.sh --purge-config`를 사용합니다.
5252

5353
```bash
5454
./install.sh
@@ -125,13 +125,14 @@ curl -sS http://127.0.0.1:9992/v1/chat/completions \
125125

126126
### Model metadata와 정확한 catalog
127127

128-
각 model object는 `id`, `object`, `created`, provider 기반 `owned_by`를 포함합니다. 알려진 context는 `context_window`, `context_length`, `max_context_length`에 동일하게 나옵니다. Provider API를 쓸 수 있을 때는 시작 시 live `GET /provider/v1/models`로 catalog를 갱신해 새로 추가된 model도 반영합니다. 아래 표는 배포되는 1.38.2 baseline이며 “기본 활성화”는 built-in enabled state입니다.
128+
각 model object는 `id`, `object`, `created`, provider 기반 `owned_by`를 포함합니다. 알려진 context는 `context_window`, `context_length`, `max_context_length`에 동일하게 나옵니다. Provider API를 쓸 수 있을 때는 시작 시 live `GET /provider/v1/models`로 catalog를 갱신해 새로 추가된 model도 반영합니다. 아래 표는 배포되는 1.49.0 baseline이며 “기본 활성화”는 built-in enabled state입니다.
129129

130130
| Provider | Canonical model ID | Context | 기본 활성화 |
131131
| ----------------- | --------------------------------------- | --------: | :---------: |
132132
| DeepSeek | `deepseek/deepseek-v4-pro` | 1,000,000 ||
133133
| DeepSeek | `deepseek/deepseek-v4-flash` | 1,000,000 ||
134134
| DeepSeek | `deepseek/deepseek-v4-flash-vision-exp` | 1,000,000 | 아니요 |
135+
| DeepSeek | `deepseek/deepseek-v4-flash-fast` | 1,000,000 | 아니요 |
135136
| Moonshot | `moonshotai/Kimi-K3` | 1,000,000 | 아니요 |
136137
| Moonshot | `moonshotai/Kimi-K2.7-Code` | 256,000 | 아니요 |
137138
| Moonshot | `moonshotai/Kimi-K2.7-Code-Highspeed` | 262,000 | 아니요 |
@@ -145,11 +146,10 @@ curl -sS http://127.0.0.1:9992/v1/chat/completions \
145146
| Z.ai | `zai-org/GLM-5` | 200,000 | 아니요 |
146147
| MiniMax | `MiniMaxAI/MiniMax-M3` | 1,000,000 | 아니요 |
147148
| MiniMax | `MiniMaxAI/MiniMax-M2.7` | 200,000 ||
148-
| MiniMax | `minimax/minimax-m3-free` | 1,000,000 | 아니요 |
149-
| MiniMax | `minimax/minimax-m2.7-free` | 197,000 | 아니요 |
150149
| MiniMax | `MiniMaxAI/MiniMax-M2.5` | 200,000 | 아니요 |
151150
| Xiaomi | `xiaomi/mimo-v2.5-pro` | 1,000,000 | 아니요 |
152151
| Xiaomi | `xiaomi/mimo-v2.5` | 1,000,000 | 아니요 |
152+
| Qwen | `Qwen/Qwen3.8-Max-0902` | 1,000,000 | 아니요 |
153153
| Qwen | `Qwen/Qwen3.8-Max` | 1,000,000 | 아니요 |
154154
| Qwen | `Qwen/Qwen3.8-27B` | 262,144 | 아니요 |
155155
| Qwen | `Qwen/Qwen3.8-Flash` | 1,000,000 | 아니요 |
@@ -158,6 +158,7 @@ curl -sS http://127.0.0.1:9992/v1/chat/completions \
158158
| Qwen | `Qwen/Qwen3.7-Flash` | 1,000,000 | 아니요 |
159159
| Qwen | `Qwen/Qwen3.6-Max-Preview` | 200,000 | 아니요 |
160160
| Qwen | `Qwen/Qwen3.6-Plus` | 200,000 ||
161+
| Meituan | `meituan/LongCat-2.0:free` | 1,048,576 | 아니요 |
161162
| StepFun | `stepfun/Step-3.7-Flash` | 256,000 | 아니요 |
162163
| StepFun | `stepfun/Step-3.5-Flash` | 1,000,000 | 아니요 |
163164
| Tencent | `tencent/hy3-paid` | 262,144 | 아니요 |
@@ -168,18 +169,21 @@ curl -sS http://127.0.0.1:9992/v1/chat/completions \
168169
| Poolside | `poolside/laguna-s-2.1-free` | 256,000 | 아니요 |
169170
| Anthropic | `claude-sonnet-5` | 1,000,000 | 아니요 |
170171
| Anthropic | `claude-sonnet-4-6` | 1,000,000 | 아니요 |
172+
| Anthropic | `claude-fable-5-1` | 1,000,000 | 아니요 |
171173
| Anthropic | `claude-fable-5` | 1,000,000 | 아니요 |
172174
| Anthropic | `claude-opus-5` | 1,000,000 | 아니요 |
173175
| Anthropic | `claude-opus-4-8` | 1,000,000 | 아니요 |
174176
| Anthropic | `claude-opus-4-7` | 1,000,000 | 아니요 |
175177
| Anthropic | `claude-haiku-4-5-20251001` | 200,000 | 아니요 |
178+
| OpenAI | `gpt-6-astra` | 1,050,000 | 아니요 |
176179
| OpenAI | `gpt-5.6-sol` | 1,050,000 | 아니요 |
177180
| OpenAI | `gpt-5.6-terra` | 1,050,000 | 아니요 |
178181
| OpenAI | `gpt-5.6-luna` | 1,050,000 | 아니요 |
179182
| OpenAI | `gpt-5.5` | 400,000 | 아니요 |
180183
| OpenAI | `gpt-5.4` | 400,000 | 아니요 |
181184
| OpenAI | `gpt-5.3-codex` | 400,000 | 아니요 |
182185
| OpenAI | `gpt-5.4-mini` | 400,000 | 아니요 |
186+
| Google | `google/gemini-3.8-flash` | 1,000,000 | 아니요 |
183187
| Google | `google/gemini-3.7-flash` | 1,048,576 | 아니요 |
184188
| Google | `google/gemini-3.6-flash` | 1,000,000 | 아니요 |
185189
| Google | `google/gemini-3.5-flash` | 1,000,000 | 아니요 |
@@ -189,6 +193,8 @@ curl -sS http://127.0.0.1:9992/v1/chat/completions \
189193
| Meta | `meta/muse-spark-1.1` | 1,048,576 | 아니요 |
190194
| Meta | `meta/muse-spark-1.2` | 1,048,576 | 아니요 |
191195
| Meta | `meta/muse-spark-1.2-contributor` | 1,048,576 | 아니요 |
196+
| Meta | `meta/muse-spark-1.3` | 1,048,576 | 아니요 |
197+
| Meta | `meta/muse-spark-1.3-contributor` | 1,048,576 | 아니요 |
192198
| xAI | `xai/grok-4.5` | 500,000 | 아니요 |
193199
| xAI | `xai/grok-4.6` | 500,000 | 아니요 |
194200

@@ -200,11 +206,11 @@ curl -sS http://127.0.0.1:9992/v1/chat/completions \
200206

201207
### 설정과 운영
202208

203-
저장된 dashboard catalog에서 업그레이드하면 현재 model의 enabled state와 모든 custom model은 보존하고, built-in metadata는 1.38.2 canonical 정의로 갱신합니다. Ox Alpha를 포함한 retired built-in은 unknown upstream model로 전달하지 않으며, 제거된 default가 설정돼 있으면 `deepseek/deepseek-v4-pro`로 안전하게 fallback합니다.
209+
저장된 dashboard catalog에서 업그레이드하면 현재 model의 enabled state와 모든 custom model은 보존하고, built-in metadata는 1.49.0 canonical 정의로 갱신합니다. Ox Alpha와 MiniMax M3/M2.7 Free를 포함한 retired built-in은 unknown upstream model로 전달하지 않으며, 제거된 default가 설정돼 있으면 `deepseek/deepseek-v4-pro`로 안전하게 fallback합니다.
204210

205211
브라우저에 key가 저장된 기존 사용자는 그대로 동작합니다. 새 브라우저에서는 저장·재시작 전에 **현재 Admin API Key**에 기존 key를 한 번 입력합니다. key 없는 runtime은 실제 loopback 연결이며 Host도 loopback인 경우에만 bootstrap할 수 있습니다.
206212

207-
Credential 우선순위는 `COMMANDCODE_CREDENTIALS_FILE`, `COMMANDCODE_CREDENTIALS`/`COMMANDCODE_API_KEYS`, `COMMAND_CODE_API_KEY`/`COMMANDCODE_API_KEY`/`CMD_API_KEY`, CLI auth file 순입니다. 핵심 기본값은 `HOST=127.0.0.1`, `PORT=9992`, `COMMANDCODE_UPSTREAM_MODE=auto`, `COMMANDCODE_ROUTING_POLICY=daily_burn_priority`, `COMMANDCODE_MAX_IN_FLIGHT_PER_CREDENTIAL=4`, `COMMANDCODE_CLI_VERSION=1.38.2`, `COMMANDCODE_TIMEOUT_MS=600000`, `COMMANDCODE_RETRY_MAX_ATTEMPTS=5`, `COMMANDCODE_RETRY_BACKOFF_MS=250`, `COMMANDCODE_EMPTY_VISIBLE_RESPONSE_POLICY=error_on_length`입니다. 일시적 upstream 실패(429, 5xx, timeout)는 `COMMANDCODE_RETRY_MAX_ATTEMPTS`까지 지수 백오프로 재시도합니다. 401/402/403으로 실패한 키는 해당 요청에서 제외되고 다른 키를 우선하며, visible output이 나온 뒤에는 재시도하지 않습니다. `BRIDGE_API_KEY`는 설정 시 `/v1/*`를 보호하며 client는 Bearer 또는 `x-api-key`를 쓸 수 있습니다. `COMMANDCODE_UPSTREAM_MODE=auto`는 시작 시 Provider API를 프로브해 요금제가 허용하면(Provider $15/월 이상) 공식 API를 쓰고, `provider`는 공식 API를 강제하며, `alpha`는 모든 model을 legacy `/alpha/generate`로 강제합니다. `COMMANDCODE_ZDR=true`면 Provider API 요청에 `x-cmd-zdr: 1`(zero data retention)을 보냅니다. Credential JSON은 `chmod 600`으로 보호하십시오. Balance alert는 기본 off입니다. 선택적 `commandcode-router`는 여러 bridge host의 least-in-flight routing용입니다.
213+
Credential 우선순위는 `COMMANDCODE_CREDENTIALS_FILE`, `COMMANDCODE_CREDENTIALS`/`COMMANDCODE_API_KEYS`, `COMMAND_CODE_API_KEY`/`COMMANDCODE_API_KEY`/`CMD_API_KEY`, CLI auth file 순입니다. 핵심 기본값은 `HOST=127.0.0.1`, `PORT=9992`, `COMMANDCODE_UPSTREAM_MODE=auto`, `COMMANDCODE_ROUTING_POLICY=daily_burn_priority`, `COMMANDCODE_MAX_IN_FLIGHT_PER_CREDENTIAL=4`, `COMMANDCODE_CLI_VERSION=1.49.0`, `COMMANDCODE_TIMEOUT_MS=600000`, `COMMANDCODE_RETRY_MAX_ATTEMPTS=5`, `COMMANDCODE_RETRY_BACKOFF_MS=250`, `COMMANDCODE_EMPTY_VISIBLE_RESPONSE_POLICY=error_on_length`입니다. 일시적 upstream 실패(429, 5xx, timeout)는 `COMMANDCODE_RETRY_MAX_ATTEMPTS`까지 지수 백오프로 재시도합니다. 401/402/403으로 실패한 키는 해당 요청에서 제외되고 다른 키를 우선하며, visible output이 나온 뒤에는 재시도하지 않습니다. `BRIDGE_API_KEY`는 설정 시 `/v1/*`를 보호하며 client는 Bearer 또는 `x-api-key`를 쓸 수 있습니다. `COMMANDCODE_UPSTREAM_MODE=auto`는 시작 시 Provider API를 프로브해 요금제가 허용하면(Provider $15/월 이상) 공식 API를 쓰고, `provider`는 공식 API를 강제하며, `alpha`는 모든 model을 legacy `/alpha/generate`로 강제합니다. `COMMANDCODE_ZDR=true`면 Provider API 요청에 `x-cmd-zdr: 1`(zero data retention)을 보냅니다. Credential JSON은 `chmod 600`으로 보호하십시오. Balance alert는 기본 off입니다. 선택적 `commandcode-router`는 여러 bridge host의 least-in-flight routing용입니다.
208214

209215
## 동작 방식
210216

0 commit comments

Comments
 (0)