diff --git a/i18n/README.vi.md b/i18n/README.vi.md
index d0a51de4..5e01d8aa 100644
--- a/i18n/README.vi.md
+++ b/i18n/README.vi.md
@@ -1,21 +1,15 @@
-Dưới đây là bản dịch tiếng Việt của tài liệu Markdown, giữ nguyên toàn bộ cú pháp và cấu trúc kỹ thuật.
-

- # 9Router - Free AI Router
+ # 9Router - Free AI Router & Token Saver
- **Không bao giờ ngừng code. Tự động định tuyến tới các mô hình AI MIỄN PHÍ & giá rẻ với cơ chế dự phòng thông minh.**
+ **Không bao giờ ngừng code. Tiết kiệm 20-40% token với RTK + tự động dự phòng sang các mô hình AI MIỄN PHÍ & giá rẻ.**
- **Nhà cung cấp AI Miễn cho OpenClaw.**
-
-
-
-
+ **Kết nối tất cả công cụ AI Code (Claude Code, Codex, Cursor, Cline, Copilot, Antigravity...) tới 40+ Nhà cung cấp AI & 100+ Mô hình.**
[](https://www.npmjs.com/package/9router)
[](https://www.npmjs.com/package/9router)
- [](https://github.com/decolua/9router/blob/main/LICENSE)
+ [](https://github.com/decolua/9router/blob/main/LICENSE)
[🚀 Bắt đầu nhanh](#-quick-start) • [💡 Tính năng](#-key-features) • [📖 Cài đặt](#-setup-guide) • [🌐 Website](https://9router.com)
@@ -24,19 +18,21 @@ Dưới đây là bản dịch tiếng Việt của tài liệu Markdown, giữ
## 🤔 Tại sao chọn 9Router?
-**Ngừng lãng phí tiền bạc và gặp phải giới hạn:**
+**Ngừng lãng phí tiền bạc, token và không bao giờ lo chạm giới hạn (rate limit):**
- ❌ Hạn mức gói đăng ký hết hạn mỗi tháng mà không dùng hết
-- ❌ Giới hạn tốc độ (rate limit) ngăn bạn giữaừng khi code
-- ❌ Các API đắt đỏ ($20-50/tháng cho mỗi nhà cung cấp)
-- ❌ Phải chuyển đổi thủ công giữa các nhà cung cấp
+- ❌ Giới hạn tốc độ (rate limit) làm gián đoạn công việc mid-coding
+- ❌ Kết quả của công cụ (git diff, grep, ls...) ngốn rất nhiều token
+- ❌ Chi phí API đắt đỏ ($20-50/tháng cho từng nhà cung cấp)
+- ❌ Phải chuyển đổi thủ công giữa các nhà cung cấp AI
**9Router giải quyết vấn đề này:**
-- ✅ **Tối đa hóa gói đăng ký** - Theo dõi hạn mức, sử dụng từng bit trước khi reset
-- ✅ **Tự động dự phòng** - Gói đăng ký → Giá rẻ → Miễn phí, thời gian chết bằng không
-- ✅ **Đa tài khoản** - Vòng tròn (round-robin) các tài khoản của mỗi nhà cung cấp
-- ✅ **Phổ quát** - Hoạt động với Claude Code, Codex, Gemini CLI, Cursor, Cline, bất kỳ công cụ CLI nào
+- ✅ **RTK Token Saver** - Tự động nén nội dung `tool_result`, tiết kiệm 20-40% token trên mỗi request
+- ✅ **Tối đa hóa gói đăng ký** - Theo dõi hạn mức, tận dụng triệt để trước khi reset
+- ✅ **Tự động dự phòng (Auto Fallback)** - Gói đăng ký → Giá rẻ → Miễn phí, không lo downtime
+- ✅ **Đa tài khoản (Multi-account)** - Xoay vòng (round-robin) các tài khoản cho mỗi nhà cung cấp
+- ✅ **Phổ quát (Universal)** - Hoạt động với Claude Code, Codex, Cursor, Cline, Antigravity và mọi công cụ CLI
---
@@ -44,25 +40,26 @@ Dưới đây là bản dịch tiếng Việt của tài liệu Markdown, giữ
```
┌─────────────┐
-│ Your CLI │ (Claude Code, Codex, Gemini CLI, OpenClaw, Cursor, Cline...)
-│ Tool │
+│ Công cụ │ (Claude Code, Codex, OpenClaw, Cursor, Cline, Antigravity...)
+│ CLI AI │
└──────┬──────┘
│ http://localhost:20128/v1
↓
-┌────────────────────────────────────────┐
-│ 9Router (Smart Router) │
-│ • Format translation (OpenAI ↔ Claude) │
-│ • Quota tracking │
-│ • Auto token refresh │
-└──────┬──────────────────────────────────┘
+┌─────────────────────────────────────────────┐
+│ 9Router (Smart Router) │
+│ • RTK Token Saver (nén tool_result token) │
+│ • Dịch chuyển định dạng (OpenAI ↔ Claude) │
+│ • Quota tracking (theo dõi hạn mức) │
+│ • Tự động làm mới OAuth Token │
+└──────┬──────────────────────────────────────┘
│
- ├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex, Gemini CLI
- │ ↓ quota exhausted
- ├─→ [Tier 2: CHEAP] GLM ($0.6/1M), MiniMax ($0.2/1M)
- │ budget limit
- └─→ [Tier 3: FREE] iFlow, Qwen, Kiro (unlimited)
+ ├─→ [Tier 1: GÓI ĐĂNG KÝ] Claude Code, Codex, GitHub Copilot
+ │ ↓ hết hạn mức quota
+ ├─→ [Tier 2: GIÁ RẺ] GLM ($0.6/1M), MiniMax ($0.2/1M)
+ │ ↓ chạm ngân sách
+ └─→ [Tier 3: MIỄN PHÍ] Kiro AI, OpenCode Free, Vertex AI ($300 credits)
-Result: Never stop coding, minimal cost
+Kết quả: Không bao giờ ngừng code, chi phí tối thiểu + tiết kiệm 20-40% token qua RTK
```
---
@@ -76,26 +73,26 @@ npm install -g 9router
9router
```
-🎉 Bảng điều khiển mở tại `http://localhost:20128`
+🎉 Bảng điều khiển (Dashboard) sẽ tự động mở tại `http://localhost:20128`
**2. Kết nối nhà cung cấp MIỄN PHÍ (không cần đăng ký):**
-Bảng điều khiển → Providers -> Kết nối **ude Code** hoặc **Antigravity** -> Đăng nhập OAuth -> Xong!
+Bảng điều khiển → Providers → Kết nối **Kiro AI** (~50 credits/tháng miễn phí: Claude 4.5 + GLM-5 + MiniMax) hoặc **OpenCode Free** (không cần auth) → Xong!
**3. Sử dụng trong công cụ CLI của bạn:**
```
-Cài đặt Claude Code/Codex/Gemini CLI/OpenClaw/Cursor/Cline:
+Cài đặt Claude Code/Codex/OpenClaw/Cursor/Cline/Antigravity:
Endpoint: http://localhost:20128/v1
API Key: [sao chép từ bảng điều khiển]
- Model: if/kimi-k2-thinking
+ Model: kr/claude-sonnet-4.5
```
-**Xong rồi!** Bắt đầu code với các mô hình AI MIỄN PHÍ.
+**Thế là xong!** Bắt đầu code ngay với các mô hình AI MIỄN PHÍ.
-**Phương án khác: chạy từ nguồn (k lưu trữ này):**
+**Phương án khác: chạy từ mã nguồn (repository này):**
-Gói kho lưu trữ này là riêng tư (`9router-app`), vì vậy việc thực thi nguồn/Docker là đường dẫn phát triển cục bộ dự kiến.
+Gói kho lưu trữ này là riêng tư (`9router-app`), vì vậy việc chạy từ nguồn/Docker là cách phát triển cục bộ mặc định.
```bash
cp .env.example .env
@@ -111,11 +108,12 @@ PORT=20128 HOSTNAME=0.0.0.0 NEXT_PUBLIC_BASE_URL=http://localhost:20128 npm run
```
URL mặc định:
-- Bảng điều khiển: `http://localhost:20128/dashboard`
+- Bảng điều khiển Dashboard: `http://localhost:20128/dashboard`
- API tương thích OpenAI: `http://localhost:20128/v1`
---
+
## 🎥 Hướng dẫn Video
diff --git a/i18n/README.zh-CN.md b/i18n/README.zh-CN.md
index 92e0624b..c090f608 100644
--- a/i18n/README.zh-CN.md
+++ b/i18n/README.zh-CN.md
@@ -42,25 +42,26 @@
```
┌─────────────┐
-│ Your CLI │ (Claude Code, Codex, Gemini CLI, OpenClaw, Cursor, Cline...)
+│ Your CLI │ (Claude Code, Codex, OpenClaw, Cursor, Cline, Antigravity...)
│ Tool │
└──────┬──────┘
- │ http://localhost:201281
+ │ http://localhost:20128/v1
↓
-┌─────────────────────────────────────────┐
-│ 9Router (Smart Router) │
-│ • Format translation (OpenAI ↔ Claude) │
-│ • Quota tracking │
-│ • Auto token refresh │
-└──────┬──────────────────────────────────┘
+┌─────────────────────────────────────────────┐
+│ 9Router (Smart Router) │
+│ • RTK Token Saver (节省 20-40% Token) │
+│ • 格式转换 (OpenAI ↔ Claude) │
+│ • 配额追踪 (Quota tracking) │
+│ • 自动刷新 OAuth Token │
+└──────┬──────────────────────────────────────┘
│
- ├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex, Gemini CLI
- │ ↓ quota exhausted
- ├─→ [Tier 2: CHEAP] GLM ($0.6/1M), MiniMax ($0.2/1M)
- │ ↓ budget limit
- └─→ [Tier 3: FREE] iFlow, Qwen, Kiro (unlimited)
+ ├─→ [Tier 1: 订阅] Claude Code, Codex, GitHub Copilot
+ │ ↓ 配额用尽
+ ├─→ [Tier 2: 低价] GLM ($0.6/1M), MiniMax ($0.2/1M)
+ │ ↓ 触及预算上限
+ └─→ [Tier 3: 免费] Kiro AI, OpenCode Free, Vertex AI ($300 credits)
-Result: Never stop coding, minimal cost
+结果:永不停歇的编程体验,最低成本 + 通过 RTK 节省 20-40% Token
```
---
diff --git a/tests/README.md b/tests/README.md
index 807d5fbc..20913022 100644
--- a/tests/README.md
+++ b/tests/README.md
@@ -4,25 +4,26 @@ Unit tests for the `/v1/embeddings` endpoint implementation.
## Setup
-Vitest must be installed globally or in `/tmp/node_modules` (due to npm workspace hoisting from the root Next.js project):
+Install test dependencies from the `tests/` directory:
```bash
-cd /tmp && npm install vitest
+cd tests/ && npm install
```
## Running Tests
-```bash
-cd tests/
-NODE_PATH=/tmp/node_modules /tmp/node_modules/.bin/vitest run --reporter=verbose --config ./vitest.config.js
-```
-
-Or using the package script (from the `tests/` directory):
+From the `tests/` directory:
```bash
npm test
```
+Or run vitest directly with npx:
+
+```bash
+npx vitest run --reporter=verbose --config ./vitest.config.js
+```
+
## Test Files
| File | What it tests |
diff --git a/tests/package.json b/tests/package.json
index 0237ab1e..7d3544b8 100644
--- a/tests/package.json
+++ b/tests/package.json
@@ -5,8 +5,8 @@
"type": "module",
"description": "Unit tests for 9router embeddings endpoint",
"scripts": {
- "test": "NODE_PATH=/tmp/node_modules /tmp/node_modules/.bin/vitest run --reporter=verbose",
- "test:watch": "NODE_PATH=/tmp/node_modules /tmp/node_modules/.bin/vitest --reporter=verbose"
+ "test": "vitest run --reporter=verbose",
+ "test:watch": "vitest --reporter=verbose"
},
"devDependencies": {
"vitest": "^4.0.0"