@mrtrinhvn/ag-kit 1.1.4 → 1.1.6
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.md +10 -2
- package/bin/cli.js +53 -4
- package/package.json +3 -2
- package/template/.agent/agents/orchestrator.md +2 -0
- package/template/.agent/knowledge/model-switching-vfs.md +16 -16
- package/template/.agent/knowledge/tele-agentic-standard.md +32 -0
- package/template/.agent/skills/knowledge-management/SKILL.md +1 -1
- package/template/.agent/skills/lazy-gravity/SKILL.md +11 -14
- package/template/.agent/skills/remoat-integration/SKILL.md +13 -16
- package/template/.agent/skills/telegram-agentic-gateway/SKILL.md +43 -80
- package/template/.env.example +33 -0
- package/template/GEMINI.md +18 -18
- package/template/start.sh +25 -0
- package/template/stop_bot.sh +17 -0
package/README.md
CHANGED
|
@@ -4,8 +4,14 @@ A generic, institutional-grade AI programming framework for automating scaffoldi
|
|
|
4
4
|
|
|
5
5
|
## 📦 Quick Start
|
|
6
6
|
|
|
7
|
-
The best way to inject AG-Kit into any project is via `npx
|
|
7
|
+
The best way to inject AG-Kit into any project is via `npx`. Bạn có thể chạy trực tiếp để vào **Menu tương tác**:
|
|
8
8
|
|
|
9
|
+
```bash
|
|
10
|
+
# DASHBOARD - Menu chọn tất cả tác vụ (Khuyên dùng)
|
|
11
|
+
npx @mrtrinhvn/ag-kit@latest
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
Hoặc chạy các lệnh đơn lẻ:
|
|
9
15
|
```bash
|
|
10
16
|
# 1. Khởi tạo bộ não (Inject .agent folder)
|
|
11
17
|
npx @mrtrinhvn/ag-kit@latest init
|
|
@@ -23,6 +29,7 @@ npx @mrtrinhvn/ag-kit@latest status
|
|
|
23
29
|
|
|
24
30
|
| Lệnh | Ý nghĩa | Chi tiết |
|
|
25
31
|
|---|---|---|
|
|
32
|
+
| `ag-kit` | **Dashboard** | (Không tham số) Mở menu chọn tương tác cực kỳ tiện lợi. |
|
|
26
33
|
| `ag-kit init` | **Khởi tạo** | Cài đặt tủy não `.agent` và tạo file `.env` mẫu. |
|
|
27
34
|
| `ag-kit check` | **Kiểm tra** | Quét cổng CDP (mặc định 9555), kiểm tra Ollama và AI Models. |
|
|
28
35
|
| `ag-kit update` | **Cập nhật** | Nâng cấp Agents/Skills/Workflows mới nhất mà không làm mất dữ liệu Ký ức. |
|
|
@@ -66,7 +73,8 @@ npx @mrtrinhvn/ag-kit@latest update
|
|
|
66
73
|
|
|
67
74
|
**1. Lỗi phiên bản không khớp (Version ghosting):**
|
|
68
75
|
Nếu `status` báo phiên bản cũ hơn bản trên NPM, đó là do cache của `npx` hoặc bạn đã cài global.
|
|
69
|
-
- Cách giải quyết: Luôn thêm `@latest` sau tên gói hoặc
|
|
76
|
+
- Cách giải quyết: Luôn thêm `@latest` sau tên gói (`npx @mrtrinhvn/ag-kit@latest`) hoặc cập nhật bộ não bằng lệnh `ag-kit update`.
|
|
77
|
+
- Giờ đây, các lệnh `init` và `status` sẽ tự động phát hiện và nhắc bạn chạy `update` nếu phát hiện lệch phiên bản.
|
|
70
78
|
|
|
71
79
|
**2. Lỗi EACCES (Quyền truy cập):**
|
|
72
80
|
Nếu cài global bị báo lỗi quyền, hãy dùng `npx` (Khuyên dùng) hoặc dùng `sudo`.
|
package/bin/cli.js
CHANGED
|
@@ -90,7 +90,18 @@ program.command('init')
|
|
|
90
90
|
}
|
|
91
91
|
}
|
|
92
92
|
} else {
|
|
93
|
-
console.log('\x1b[33m⚠️ Thư mục .agent đã tồn tại
|
|
93
|
+
console.log('\x1b[33m⚠️ Thư mục .agent đã tồn tại.\x1b[0m');
|
|
94
|
+
const vPath = path.join(TARGET_AGENT_DIR, '.version');
|
|
95
|
+
if (fs.existsSync(vPath)) {
|
|
96
|
+
const installedVersion = fs.readFileSync(vPath, 'utf-8').trim();
|
|
97
|
+
if (installedVersion !== pkg.version) {
|
|
98
|
+
console.log(`\x1b[35m👉 Phát hiện phiên bản cũ (v${installedVersion}). Hãy dùng lệnh "ag-kit update" để cập nhật lên v${pkg.version}.\x1b[0m`);
|
|
99
|
+
} else {
|
|
100
|
+
console.log('\x1b[34mℹ️ Bạn đang sử dụng phiên bản khớp với bộ công cụ (v${pkg.version}).\x1b[0m');
|
|
101
|
+
}
|
|
102
|
+
} else {
|
|
103
|
+
console.log('\x1b[35m👉 Hãy dùng lệnh "ag-kit update" để đồng bộ cấu trúc mới.\x1b[0m');
|
|
104
|
+
}
|
|
94
105
|
}
|
|
95
106
|
|
|
96
107
|
console.log('\x1b[35m\n🎉 Hoàn tất! Vui lòng copy luật GEMINI vào file GEMINI.md của dự án nếu chưa có.\x1b[0m');
|
|
@@ -127,6 +138,12 @@ program.command('check')
|
|
|
127
138
|
.action(async () => {
|
|
128
139
|
const { execSync } = require('child_process');
|
|
129
140
|
console.log('\x1b[36m🔍 Đang kiểm tra hệ sinh thái Antigravity...\x1b[0m');
|
|
141
|
+
|
|
142
|
+
if (!fs.existsSync(TARGET_AGENT_DIR)) {
|
|
143
|
+
console.log('\x1b[31m❌ Hệ thống chưa được khởi tạo. Thư mục .agent không tồn tại.\x1b[0m');
|
|
144
|
+
console.log('\x1b[35m👉 Hãy chạy "ag-kit init" trước khi thực hiện kiểm tra này.\x1b[0m');
|
|
145
|
+
return;
|
|
146
|
+
}
|
|
130
147
|
|
|
131
148
|
// 1. Check .env
|
|
132
149
|
const envPath = path.join(process.cwd(), '.env');
|
|
@@ -203,8 +220,9 @@ program.command('status')
|
|
|
203
220
|
console.log(`📁 Đường dẫn : ${TARGET_AGENT_DIR}`);
|
|
204
221
|
|
|
205
222
|
const vPath = path.join(TARGET_AGENT_DIR, '.version');
|
|
223
|
+
let installedVersion = '0.0.0';
|
|
206
224
|
if (fs.existsSync(vPath)) {
|
|
207
|
-
|
|
225
|
+
installedVersion = fs.readFileSync(vPath, 'utf-8').trim();
|
|
208
226
|
console.log(`🧠 Bản cài đặt : v${installedVersion}`);
|
|
209
227
|
} else {
|
|
210
228
|
console.log(`🧠 Bản cài đặt : Không rõ (Legacy)`);
|
|
@@ -212,10 +230,41 @@ program.command('status')
|
|
|
212
230
|
|
|
213
231
|
console.log(`🏷 Bản Tool : v${pkg.version}`);
|
|
214
232
|
|
|
233
|
+
if (installedVersion !== pkg.version) {
|
|
234
|
+
console.log('\n\x1b[33m⚠️ CẢNH BÁO: Phiên bản bộ não (.agent) đang lệch với bộ công cụ (ag-kit)!\x1b[0m');
|
|
235
|
+
console.log(`\x1b[35m👉 Hãy chạy "ag-kit update" để đồng bộ ngay.\x1b[0m`);
|
|
236
|
+
}
|
|
237
|
+
|
|
215
238
|
} else {
|
|
216
|
-
console.log('\x1b[31m❌ Trạng thái : Chưa có g
|
|
239
|
+
console.log('\x1b[31m❌ Trạng thái : Chưa có gì.\x1b[0m');
|
|
240
|
+
console.log('\x1b[35m👉 Gõ "ag-kit init" để biến thư mục này thành một Agentic Workspace!\x1b[0m');
|
|
217
241
|
console.log(`🏷 Bản Tool : v${pkg.version}`);
|
|
218
242
|
}
|
|
219
243
|
});
|
|
220
244
|
|
|
221
|
-
|
|
245
|
+
|
|
246
|
+
if (process.argv.length <= 2) {
|
|
247
|
+
const inquirer = require('inquirer');
|
|
248
|
+
console.log('\x1b[35m\n🧠 ANTIGRAVITY KIT - BẢNG ĐIỀU KHIỂN TÁC VỤ\x1b[0m');
|
|
249
|
+
inquirer.prompt([
|
|
250
|
+
{
|
|
251
|
+
type: 'list',
|
|
252
|
+
name: 'action',
|
|
253
|
+
message: 'Chọn một tác vụ để thực hiện:',
|
|
254
|
+
choices: [
|
|
255
|
+
{ name: '🚀 Khởi tạo (init) - Cài đặt .agent', value: 'init' },
|
|
256
|
+
{ name: '🔄 Cập nhật (update) - Nâng cấp bộ não', value: 'update' },
|
|
257
|
+
{ name: '🔍 Kiểm tra (check) - Test môi trường', value: 'check' },
|
|
258
|
+
{ name: '📊 Trạng thái (status) - Xem version', value: 'status' },
|
|
259
|
+
new inquirer.Separator(),
|
|
260
|
+
{ name: '❌ Thoát', value: 'exit' }
|
|
261
|
+
]
|
|
262
|
+
}
|
|
263
|
+
]).then(answers => {
|
|
264
|
+
if (answers.action !== 'exit') {
|
|
265
|
+
program.parse([process.argv[0], process.argv[1], answers.action]);
|
|
266
|
+
}
|
|
267
|
+
});
|
|
268
|
+
} else {
|
|
269
|
+
program.parse(process.argv);
|
|
270
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mrtrinhvn/ag-kit",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.6",
|
|
4
4
|
"description": "Antigravity Kit Base Framework - Generic Agentic AI Programming Core",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"bin": {
|
|
@@ -29,6 +29,7 @@
|
|
|
29
29
|
"package.json"
|
|
30
30
|
],
|
|
31
31
|
"dependencies": {
|
|
32
|
-
"commander": "^14.0.3"
|
|
32
|
+
"commander": "^14.0.3",
|
|
33
|
+
"inquirer": "^8.2.5"
|
|
33
34
|
}
|
|
34
35
|
}
|
|
@@ -30,6 +30,8 @@ You are the master orchestrator agent. You coordinate multiple specialized agent
|
|
|
30
30
|
|
|
31
31
|
**Before planning, you MUST verify available runtime tools:**
|
|
32
32
|
- [ ] **Read `ARCHITECTURE.md`** to see full list of Scripts & Skills
|
|
33
|
+
- [ ] **Check `tele-agentic-standard.md`** for Remote Golden Loop awareness.
|
|
34
|
+
- [ ] **Verify IDE HUD status**: If `ag_portal_bridge.js` is active, use it for real-time reporting.
|
|
33
35
|
- [ ] **Identify relevant scripts** (e.g., `playwright_runner.py` for web, `security_scan.py` for audit)
|
|
34
36
|
- [ ] **Plan to EXECUTE** these scripts during the task (do not just read code)
|
|
35
37
|
|
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
# Tiết Kiệm Token &
|
|
1
|
+
# Tiết Kiệm Token & Chiến Lược Mô Hình (Model & VFS)
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
Trong môi trường điều khiển từ xa (Telegram), việc tối ưu hóa token là cực kỳ quan trọng để duy trì hiệu suất và chi phí.
|
|
3
|
+
Tiết kiệm tài nguyên là yếu tố sống còn khi vận hành AI Agentic lâu dài. Hệ thống tuân thủ nghiêm ngặt các nguyên tắc sau:
|
|
5
4
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
- **
|
|
9
|
-
- **
|
|
5
|
+
## 1. Giao Thức VFS (Virtual File System)
|
|
6
|
+
Dựa trên sáng kiến [VFS của TrNgTien](https://github.com/TrNgTien/vfs), chúng ta thay đổi cách AI tiếp cận mã nguồn:
|
|
7
|
+
- **Tác dụng**: Giảm lượng token tiêu thụ lên đến **98%** khi khám phá project lớn.
|
|
8
|
+
- **Quyết định**: AI KHÔNG ĐƯỢC đọc toàn bộ file ngay lập tức. Thay vào đó, AI dùng công cụ `vfs` để quét các "chữ ký" (signatures - tên hàm, lớp, kiểu dữ liệu) trước.
|
|
9
|
+
- **Thứ tự thực hiện**: `vfs search` -> `vfs read signature` -> `read file (chỉ vùng code cần thiết)`.
|
|
10
10
|
|
|
11
|
-
## 2.
|
|
12
|
-
Hệ thống sử dụng
|
|
11
|
+
## 2. Phân Tầng Lựa Chọn Mô Hình (Model Hierarchy)
|
|
12
|
+
Hệ thống sử dụng model phù hợp với "độ khó" của bệnh:
|
|
13
13
|
|
|
14
|
-
|
|
|
14
|
+
| Cấp độ | Tác vụ | Mô hình khuyến nghị | Ưu điểm |
|
|
15
15
|
| :--- | :--- | :--- | :--- |
|
|
16
|
-
| **
|
|
17
|
-
| **Trung
|
|
18
|
-
| **
|
|
16
|
+
| **Sơ cấp** | Giải thích code, Chat hỏi đáp, Refactor nhỏ | **Ollama (Local)** | 0 token cost, Bảo mật, Phản hồi tức thì. |
|
|
17
|
+
| **Trung cấp** | Fix lỗi thông thường, Thêm tính năng đơn giản | **Gemini 3 Flash** | Chi phí thấp, Context window cực lớn. |
|
|
18
|
+
| **Nâng cao** | Thiết kế kiến trúc phức tạp, Debug lỗi logic sâu | **Claude 3.5 Sonnet / Gemini 1.5 Pro** | Độ chính xác và khả năng suy luận mạnh nhất. |
|
|
19
19
|
|
|
20
|
-
## 3. Tích Hợp Local
|
|
21
|
-
- Bot kết nối trực tiếp với Ollama
|
|
22
|
-
-
|
|
20
|
+
## 3. Tích Hợp Local LLM (Ollama)
|
|
21
|
+
- Cho phép Bot kết nối trực tiếp với Ollama (thường ở `http://localhost:11434`).
|
|
22
|
+
- Thường sử dụng các model nhẹ nhưng hiệu quả như `nemotron`, `llama3`, `qwen2.5`.
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# TIÊU CHUẨN GIAO TIẾP TẬP TRUNG (TELE-AGENTIC STANDARD)
|
|
2
|
+
|
|
3
|
+
Dự án này áp dụng mô hình **Cổng Agentic Hợp Nhất (Unified Agentic Gateway)**, nơi IDE, Bot Telegram và Nhóm Telegram kết nối thành một "Bộ não" duy nhất.
|
|
4
|
+
|
|
5
|
+
## 📡 KIẾN TRÚC "COMBO VÀNG" (GOLDEN COMBO)
|
|
6
|
+
|
|
7
|
+
Hệ thống được vận hành bởi 3 trụ cột:
|
|
8
|
+
1. **IDE (Antigravity)**: Đóng vai trò là **Node Tham gia (Participant)**. Không chỉ để gõ code mà còn là Dashboard trực quan.
|
|
9
|
+
2. **Telegram Bot/Groups**: Đóng vai trò là **Cổng Giao tiếp & Phê duyệt (Gateway)**.
|
|
10
|
+
3. **CDP Bridge (`ag_portal_bridge.js`)**: Đóng vai trò là **Hệ thần kinh (Nervous System)** kết nối 2 thành phần trên.
|
|
11
|
+
|
|
12
|
+
### 1. Phân Lập Trí Nhớ Theo Topic (Group Topics)
|
|
13
|
+
Nhóm Telegram được chia thành các Topic để cô lập bối cảnh:
|
|
14
|
+
- **Topic 🔴 Surgery (Phẫu thuật)**: Chuyên dụng cho các lệnh `/heal` và workflow `@brain-surgeon`.
|
|
15
|
+
- **Topic 🟢 Signals (Tín hiệu)**: Hiển thị lệnh mua/bán từ AI.
|
|
16
|
+
- **Topic 🔵 General (Tổng quan)**: Quản trị hệ thống, lệnh `/status`.
|
|
17
|
+
|
|
18
|
+
### 2. Giao Diện IDE Portal (HUD)
|
|
19
|
+
IDE nạp file `scripts/ag_hud.js` qua CDP để hiển thị:
|
|
20
|
+
- **Gen/WinRate**: Chỉ số tiến hóa của AI Brain.
|
|
21
|
+
- **Stall Alert**: Cảnh báo đỏ khi AI ngừng tiến bộ.
|
|
22
|
+
- **Doctor Call**: Nút bấm kích hoạt Logic tự chữa lành.
|
|
23
|
+
|
|
24
|
+
## 🛠️ QUY TRÌNH VẬN HÀNH (OPERATIONAL LOOP)
|
|
25
|
+
|
|
26
|
+
1. **Phát hiện (Detect)**: `LearningService` phát hiện lỗi/stall -> Cập nhật `ai_state.json`.
|
|
27
|
+
2. **Cảnh báo (Alert)**: Bridge đẩy dữ liệu lên HUD IDE (Cảnh báo đỏ) và Bot gửi tin nhắn Telegram Group.
|
|
28
|
+
3. **Phê duyệt (Approve)**: Người dùng nhấn nút trên HUD hoặc Telegram Callback.
|
|
29
|
+
4. **Hành động (Act)**: IDE Agent (Antigravity) tự động kích hoạt workflow `/debug` để sửa code.
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
*Tham chiếu: .agent/skills/telegram-agentic-gateway*
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: knowledge-management
|
|
3
|
-
description: Systems
|
|
3
|
+
description: Hệ thống tư duy và giao thức duy trì tri thức (Systems Thinking & Knowledge Retention). MANDATORY cho việc duy trì tính nhất quán của kiến trúc, ghi chép tri thức tích hợp (API characteristics) và đảm bảo cập nhật mã nguồn hoàn chỉnh, đồng bộ. **QUY TẮC TỐI THƯỢNG: Khi cập nhật ag-kit, phải đồng bộ sang thư mục `template/`.**
|
|
4
4
|
allowed-tools: Read, Write, Glob, Grep
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -1,23 +1,20 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: lazy-gravity
|
|
3
|
-
description:
|
|
3
|
+
description: Quản lý đa dự án và phiên làm việc AI từ xa an toàn.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Vận Hành Đa Nền Tảng (LazyGravity Patterns)
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
Kỹ thuật quản lý và luân chuyển bối cảnh được kế thừa từ dự án [LazyGravity](https://github.com/tokyoweb3/LazyGravity).
|
|
9
9
|
|
|
10
|
-
##
|
|
10
|
+
## 1. Project & Workspace Discovery
|
|
11
|
+
- **Workspace Scanning**: Tự động duyệt qua `WORKSPACE_DIR` để liệt kê các thư mục dự án con.
|
|
12
|
+
- **Remote Switching**: Lệnh `/project` cho phép User chọn dự án mới. Bot sẽ cập nhật cấu hình và cảnh báo User khởi động lại flow tương ứng.
|
|
11
13
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
14
|
+
## 2. Bảo Mật & Phân Quyền
|
|
15
|
+
- **White-listing**: Chỉ cho phép `ALLOWED_USER_IDS` và `ALLOWED_CHAT_IDS` thực hiện các lệnh nhạy cảm như `/heal` hoặc `/kill`.
|
|
16
|
+
- **Auto-Accept Safety**: Tích hợp chế độ `/autoaccept` cho phép tự động nhấn nút "Accept" trong IDE, nhưng yêu cầu giám sát liên tục qua `/screenshot`.
|
|
15
17
|
|
|
16
|
-
##
|
|
17
|
-
|
|
18
|
-
- Sử dụng
|
|
19
|
-
- Khi người dùng chọn dự án, bot sẽ cung cấp thông tin hoặc tự động restart target sang dự án mới (nếu được cấp quyền).
|
|
20
|
-
|
|
21
|
-
## Phân Loại Mô Hình (Model Categorization)
|
|
22
|
-
- Phân tách rõ ràng giữa **Cloud Models** (Google Gemini, Claude) và **Local Models** (Ollama).
|
|
23
|
-
- Ưu tiên Local Models cho các yêu cầu giải thích hoặc refactor nhỏ để tiết kiệm quota Cloud.
|
|
18
|
+
## 3. Đồng Bộ Hóa Trạng Thái
|
|
19
|
+
- Đảm bảo trạng thái của IDE (Generating, Idle, Error) luôn được phản ánh kịp thời lên Telegram Group qua Notifications.
|
|
20
|
+
- Sử dụng cơ chế ID ngắn (Short ID Mapping) để quản lý danh sách Session/File một cách gọn gàng trên giao diện điện thoại.
|
|
@@ -1,24 +1,21 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: remoat-integration
|
|
3
|
-
description:
|
|
3
|
+
description: Kỹ thuật điều khiển AI Editor từ xa qua CDP (Chrome DevTools Protocol).
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
# Kỹ Thuật Điều Khiển Editor Từ Xa (Remoat
|
|
6
|
+
# Kỹ Thuật Điều Khiển Editor Từ Xa (Remoat Strategy)
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
Dựa trên nguyên lý của dự án [Remoat](https://github.com/optimistengineer/remoat), cho phép biến Antigravity thành một AI hoàn toàn có thể điều khiển từ xa.
|
|
9
9
|
|
|
10
|
-
##
|
|
10
|
+
## 1. Giao Thức Kết Nối (CDP Bridge)
|
|
11
|
+
- **Cổng Debug**: Khởi động Editor với tham số `--remote-debugging-port=9555`.
|
|
12
|
+
- **WebSocket Discovery**: Quét danh sách `/json/list` trên localhost để tìm URL WebSocket của `workbench.html`.
|
|
11
13
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
14
|
+
## 2. Các Thao Tác Chuyên Sâu
|
|
15
|
+
- **Inject Prompt**: Tự động tìm `Chat Input`, focus và chèn text, giả lập phím Enter.
|
|
16
|
+
- **Response Monitor**: Quan sát DOM chat để nhận diện khi nào AI bắt đầu/kết thúc trả lời.
|
|
17
|
+
- **Visual Feedback**: Sử dụng `Page.captureScreenshot` để chụp lại giao diện IDE, giúp User quan sát code và lỗi trực quan qua Telegram.
|
|
18
|
+
- **Terminal Control**: Điều khiển terminal của Editor để chạy test hoặc deploy qua lệnh `/cmd`.
|
|
15
19
|
|
|
16
|
-
##
|
|
17
|
-
|
|
18
|
-
- `/screenshot`: Chụp ảnh màn hình Editor để kiểm tra kết quả trực quan.
|
|
19
|
-
- `/stop`: Dừng khẩn cấp quá trình sinh code của AI.
|
|
20
|
-
- `/mode`: Chuyển đổi giữa chế độ `fast` (flash models) và `plan` (pro models).
|
|
21
|
-
|
|
22
|
-
## Cấu Hình Hạ Tầng
|
|
23
|
-
- Yêu cầu Editor mở cổng debug: `--remote-debugging-port=9555`.
|
|
24
|
-
- Sử dụng `.env` để quản lý `IDE_PORT` đồng nhất với script khởi động.
|
|
20
|
+
## 3. Hệ Thống "Single Brain"
|
|
21
|
+
Bot Telegram không xử lý logic code, nó chỉ là "lễ tân" chuyển tiếp yêu cầu vào Editor. Editor (Antigravity) là thực thể duy nhất nắm giữ bối cảnh và thực thi thay đổi.
|
|
@@ -5,83 +5,46 @@ description: Tiêu chuẩn Giao tiếp Telegram (Telegram Gateway) cho các Agen
|
|
|
5
5
|
|
|
6
6
|
# KỸ NĂNG: XÂY DỰNG TRẠM ĐIỀU HÀNH TELEGRAM (Telegram Agentic Gateway)
|
|
7
7
|
|
|
8
|
-
Khi User yêu cầu "Tạo kênh giao tiếp Telegram" hoặc "Làm cho dự án này điều khiển được qua Telegram
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
-
|
|
36
|
-
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
Để Dự án có thể tự vá lỗi source code của nó (cần kết hợp với skill `mini-antigravity-injection`), Telegram Gateway phải chứa 2 lệnh Cấp Phép Mổ:
|
|
52
|
-
|
|
53
|
-
6. **`🏥 /heal <triệu_chứng>` (Tiền Trảm Hậu Tấu)**
|
|
54
|
-
- **Tác dụng:** Bypass bước duyệt phác đồ.
|
|
55
|
-
- **Luồng hoạt động:** Nhận lệnh -> Trạng thái chờ Pass -> Nhập Pass đúng -> Cấp quyền (`hasMutationLicense = true`) -> Agent tự tìm Lỗi -> Tự Mổ code -> Tự Test Sandbox -> Tự Hot-reload -> Báo kết quả cuối cùng.
|
|
56
|
-
|
|
57
|
-
7. **`📋 /healplan <triệu_chứng>` (Khám Bệnh Kê Đơn - Tương Tác)**
|
|
58
|
-
- **Tác dụng:** Lập phác đồ, cấm chạm vào code thật.
|
|
59
|
-
- **Luồng hoạt động:** Nhận lệnh -> Trạng thái chờ Pass -> Nhập Pass đúng -> Agent đi khám bệnh -> Nhả ra Phác Đồ + 2 Nút Bấm `[✅ Proceed]` và `[❌ Cancel]`.
|
|
60
|
-
- User có thể chat qua lại để sửa bản Phác đồ ròng rã cả ngày. Lúc nào ưng ý bấm `Proceed`, Hệ thống bốc Context lôi Agent ra chém đè Code!
|
|
61
|
-
|
|
62
|
-
---
|
|
63
|
-
|
|
64
|
-
## PHẦN E: GIAO DIỆN PREMIUM (awesome-grammY Aesthetics)
|
|
65
|
-
Một Gateway chuyên nghiệp phải có UI/UX tinh tế:
|
|
66
|
-
1. **Header & Divider**: Sử dụng các thẻ `<b>` và ký tự ngăn cách (e.g. `━━━━━`) để tạo khối thông tin rõ ràng.
|
|
67
|
-
2. **Status Mapping**: Sử dụng emoji trực quan cho trạng thái (✅ Online, 🚨 Offline, 🛡️ Protected).
|
|
68
|
-
3. **Categorized Menus**: Nhóm các nút bấm theo chức năng (Hệ thống, AI, Dự án).
|
|
69
|
-
4. **Short Callback Data**: Vì Telegram giới hạn callback data là 64 bytes, hãy sử dụng `shortIdMap` để lưu trữ Title dài và map chúng với một mã ngắn (e.g. `sess_a1b2`).
|
|
70
|
-
|
|
71
|
-
---
|
|
72
|
-
|
|
73
|
-
## PHẦN F: KIẾN TẠO HẠ TẦNG & HƯỚNG DẪN (User Setup)
|
|
74
|
-
Khi triển khai, hãy hướng dẫn User:
|
|
75
|
-
1. **Tạo Nhóm (Group with Topics)**:
|
|
76
|
-
- Tạo Group Telegram. Thêm Bot làm Admin.
|
|
77
|
-
- Bật **"Topics"** trong cài đặt nhóm.
|
|
78
|
-
- Mỗi dự án hoặc tính năng lớn nên là 1 Topic riêng để cô lập ký ức.
|
|
79
|
-
2. **Cấu Hình .env**: Giải thích rõ các token:
|
|
80
|
-
- `TELEGRAM_BOT_TOKEN`: Lấy từ @BotFather.
|
|
81
|
-
- `ALLOWED_USER_IDS`: Bảo mật, chỉ cho phép chủ nhân điều khiển.
|
|
82
|
-
- `IDE_PORT`: Cổng CDP của Antigravity (thường là 9555).
|
|
83
|
-
|
|
84
|
-
---
|
|
85
|
-
|
|
86
|
-
## TỔNG KẾT TRIỂN KHAI
|
|
87
|
-
*(Ghi chú cho AI)*: Luôn tích hợp VFS (`GEMINI.md`) để tiết kiệm token khi thực hiện code discovery từ xa thông qua Bot.
|
|
8
|
+
Khi User yêu cầu "Tạo kênh giao tiếp Telegram" hoặc "Làm cho dự án này điều khiển được qua Telegram", bạn (AI) phải thiết kế một `TelegramGateway` chuyên nghiệp, tích hợp tinh hoa từ các dự án **Remoat**, **LazyGravity** và framework **grammY**.
|
|
9
|
+
|
|
10
|
+
## PHẦN A: BỘ LỆNH QUẢN TRỊ SINH TỒN (Core Management)
|
|
11
|
+
Mọi Gateway phải có các lệnh điều khiển hệ thống sau:
|
|
12
|
+
1. **`/start`**: Kiểm tra kết nối, trả về thông số Port (CDP) và trạng thái Bot.
|
|
13
|
+
2. **`/status`**: Liệt kê các Agent/Sandbox đang chạy. Sử dụng Inline Keyboard để tương tác.
|
|
14
|
+
3. **`/stop`**: Dừng khẩn cấp quá trình AI đang sinh code hoặc thực thi (Sử dụng `Page.stopLoading` qua CDP).
|
|
15
|
+
4. **`/screenshot`**: Chụp ảnh màn hình IDE (qua CDP `Page.captureScreenshot`) để giám sát trực quan từ xa.
|
|
16
|
+
|
|
17
|
+
## PHẦN B: TRÍ NHỚ PHÂN NHIỆM (Topic-Based Isolation)
|
|
18
|
+
Bắt buộc phải cô lập trí nhớ dựa trên **Telegram Topics** (Threads) để chống hiện tượng chập cheng ký ức:
|
|
19
|
+
- Sử dụng `msg.message_thread_id` làm định danh cho file context (Vd: `topic-123.json`).
|
|
20
|
+
- Mỗi Topic trong Group Telegram tương ứng với một luồng công việc/tính năng riêng biệt.
|
|
21
|
+
|
|
22
|
+
## PHẦN C: QUẢN LÝ MÔ HÌNH & TIẾT KIỆM TOKEN (Model Routing)
|
|
23
|
+
Tích hợp chiến lược chuyển đổi model linh hoạt:
|
|
24
|
+
- **`/model`**: Hiển thị menu chọn Model (Cloud vs Local).
|
|
25
|
+
- **Ưu tiên Local**: Sử dụng **Ollama** cho các tác vụ giải thích hoặc refactor nhỏ để bảo vệ quota Cloud.
|
|
26
|
+
- **VFS Integration**: Luôn tuân thủ giao thức **VFS (Virtual File System)** để tiết kiệm 98% token khi đọc code (Cấu hình tại `GEMINI.md`).
|
|
27
|
+
|
|
28
|
+
## PHẦN D: PHẪU THUẬT NÃO AI (Self-Healing & Multi-Agent)
|
|
29
|
+
Để dự án tự vá lỗi (kết hợp `mini-antigravity-injection`):
|
|
30
|
+
1. **`/heal`**: Cấp quyền tự mổ (Mutation License).
|
|
31
|
+
2. **`/healplan`**: Yêu cầu Agent lập phác đồ chữa bệnh và chờ lệnh `Proceed` từ User.
|
|
32
|
+
|
|
33
|
+
## PHẦN E: GIAO DIỆN PREMIUM (grammY Aesthetics)
|
|
34
|
+
Lấy cảm hứng từ `awesome-grammY`:
|
|
35
|
+
- Sử dụng `<b>`, `━━━━━`, và Emoji chuyên nghiệp.
|
|
36
|
+
- **Short Callback Data**: Map ID dài vào `shortIdMap` để bypass giới hạn 64 bytes của Telegram.
|
|
37
|
+
|
|
38
|
+
## PHẦN F: KIẾN TẠO HẠ TẦNG (Deployment Guide)
|
|
39
|
+
Hướng dẫn User thiết lập:
|
|
40
|
+
1. **Group with Topics**: Tạo Group, thêm Bot làm Admin, bật tính năng Topics.
|
|
41
|
+
2. **Environment**: Cấu hình `.env` khớp với `start.sh` và `stop_bot.sh`.
|
|
42
|
+
- `IDE_PORT`: Mặc định 9555 (Remote Debugging port).
|
|
43
|
+
- `ALLOWED_USER_IDS`: Danh sách trắng ID người dùng.
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
**Nguồn tham khảo & Ảnh hưởng:**
|
|
47
|
+
- [Remoat](https://github.com/optimistengineer/remoat) - Remote Command & Control.
|
|
48
|
+
- [LazyGravity](https://github.com/tokyoweb3/LazyGravity) - Multi-project & Session management.
|
|
49
|
+
- [grammY](https://grammy.dev/) - Modern Bot Framework.
|
|
50
|
+
- [VFS](https://github.com/TrNgTien/vfs) - Virtual File System for Token Efficiency.
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# 🧠 ANTIGRAVITY GATEWAY CONFIGURATION (.env.example)
|
|
2
|
+
# ----------------------------------------------------------
|
|
3
|
+
|
|
4
|
+
# [Hạ Tầng Telegram]
|
|
5
|
+
# Lấy token từ @BotFather
|
|
6
|
+
TELEGRAM_BOT_TOKEN="your_bot_token_here"
|
|
7
|
+
|
|
8
|
+
# ID người dùng được phép điều khiển (Bảo mật - Quan trọng!)
|
|
9
|
+
# Lấy ID qua @userinfobot
|
|
10
|
+
ALLOWED_USER_IDS="123456789,987654321"
|
|
11
|
+
|
|
12
|
+
# ID Chat/Group được phép hoạt động (Để tránh Bot bị kéo vào group lạ)
|
|
13
|
+
ALLOWED_CHAT_IDS="-100123456789"
|
|
14
|
+
|
|
15
|
+
# [Cấu Hình IDE]
|
|
16
|
+
# Cổng Debug của Antigravity (Mặc định là 9555)
|
|
17
|
+
# Phải khớp với tham số --remote-debugging-port khi mở Editor
|
|
18
|
+
IDE_PORT=9555
|
|
19
|
+
|
|
20
|
+
# Tên dự án để Bot tự động tìm kiếm target phù hợp trong CDP
|
|
21
|
+
PROJECT_NAME="ceogravity"
|
|
22
|
+
|
|
23
|
+
# Đường dẫn Workspace cơ sở (Dùng cho lệnh /project của LazyGravity)
|
|
24
|
+
WORKSPACE_DIR="/home/tao/Projects"
|
|
25
|
+
|
|
26
|
+
# [Local AI - Ollama]
|
|
27
|
+
# URL của Ollama server (Mặc định: http://localhost:11434)
|
|
28
|
+
OLLAMA_API_URL="http://localhost:11434"
|
|
29
|
+
OLLAMA_MODEL="nemotron"
|
|
30
|
+
|
|
31
|
+
# [Tùy Chọn Khác]
|
|
32
|
+
LOG_LEVEL="info"
|
|
33
|
+
AUTO_ACCEPT_ENABLED=true
|
package/template/GEMINI.md
CHANGED
|
@@ -1,35 +1,35 @@
|
|
|
1
|
-
# 🚀 Antigravity Core Rules
|
|
1
|
+
# 🚀 Antigravity Core Rules (v1.1.5)
|
|
2
2
|
|
|
3
|
-
>
|
|
3
|
+
> File này định nghĩa các quy tắc vận hành cốt lõi cho AI Agent trong Workspace này.
|
|
4
4
|
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
-
## 🛠️ TOKEN
|
|
7
|
+
## 🛠️ GIAO THỨC TIẾT KIỆM TOKEN: VFS (BẮT BUỘC)
|
|
8
8
|
|
|
9
|
-
**
|
|
9
|
+
**Bạn PHẢI sử dụng `vfs` để khám phá mã nguồn TRƯỚC KHI sử dụng `grep` hoặc đọc toàn bộ nội dung file.**
|
|
10
10
|
|
|
11
|
-
###
|
|
12
|
-
|
|
11
|
+
### Tại sao lại dùng VFS?
|
|
12
|
+
Theo tiêu chuẩn [VFS (Virtual File System)](https://github.com/TrNgTien/vfs), việc trích xuất chữ ký logic (hàm, lớp, kiểu) giúp tiết kiệm đến 98% token so với việc đọc file thô.
|
|
13
13
|
|
|
14
|
-
###
|
|
15
|
-
1.
|
|
16
|
-
2. **Review**:
|
|
17
|
-
3.
|
|
14
|
+
### Giao thức sử dụng
|
|
15
|
+
1. **Định vị**: Dùng `vfs search` hoặc `vfs .` để tìm cấu trúc logic.
|
|
16
|
+
2. **Review**: Phân tích các chữ ký (signatures) được trả về.
|
|
17
|
+
3. **Đọc**: Chỉ đọc những dải dòng (line ranges) cụ thể đã được xác định qua VFS.
|
|
18
18
|
|
|
19
|
-
###
|
|
19
|
+
### Lệnh thực thi
|
|
20
20
|
- **CLI**: `vfs . -f <function_name>`
|
|
21
|
-
- **MCP**:
|
|
21
|
+
- **MCP**: Sử dụng công cụ `vfs` nếu có sẵn trong bộ skill.
|
|
22
22
|
|
|
23
23
|
---
|
|
24
24
|
|
|
25
|
-
## 🤖 MODEL SELECTION
|
|
25
|
+
## 🤖 CHIẾN LƯỢC CHỌN MÔ HÌNH (MODEL SELECTION)
|
|
26
26
|
|
|
27
|
-
- **
|
|
28
|
-
- **
|
|
27
|
+
- **Tác vụ đơn giản**: Ưu tiên sử dụng mô hình Local qua **Ollama** (Vd: `nemotron`, `llama3`) để tiết kiệm chi phí cloud.
|
|
28
|
+
- **Tác vụ phức tạp**: Sử dụng các mô hình cao cấp (Vd: `Claude 3.5 Sonnet`, `Gemini 1.5 Pro`).
|
|
29
29
|
|
|
30
30
|
---
|
|
31
31
|
|
|
32
32
|
## 🧹 CLEAN CODE
|
|
33
|
-
-
|
|
34
|
-
-
|
|
35
|
-
-
|
|
33
|
+
- Viết mã tự giải thích (Self-documenting).
|
|
34
|
+
- Tránh Over-engineering.
|
|
35
|
+
- Tuân thủ các pattern định nghĩa trong `.agent/skills/clean-code`.
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
# 🧠 ANTIGRAVITY STARTUP SCRIPT (Standard v1.1.5)
|
|
4
|
+
# --------------------------------------------------
|
|
5
|
+
# Script này khởi động Antigravity Bot với cấu hình từ .env
|
|
6
|
+
|
|
7
|
+
# 1. Load configuration
|
|
8
|
+
if [ -f .env ]; then
|
|
9
|
+
export $(grep -v '^#' .env | xargs)
|
|
10
|
+
else
|
|
11
|
+
echo "❌ Lỗi: Không tìm thấy file .env. Vui lòng tạo từ .env.example"
|
|
12
|
+
exit 1
|
|
13
|
+
fi
|
|
14
|
+
|
|
15
|
+
# 2. Defaults
|
|
16
|
+
IDE_PORT=${IDE_PORT:-9555}
|
|
17
|
+
PROJECT_NAME=${PROJECT_NAME:-"ceogravity"}
|
|
18
|
+
|
|
19
|
+
echo "🚀 Đang khởi động Antigravity Gateway..."
|
|
20
|
+
echo "📂 Dự án: $PROJECT_NAME"
|
|
21
|
+
echo "🔌 Cổng Debug: $IDE_PORT"
|
|
22
|
+
|
|
23
|
+
# 3. Start Bot (Sử dụng tsx để chạy TypeScript trực tiếp)
|
|
24
|
+
# Ghi chú: Đảm bảo Antigravity IDE đã được mở với --remote-debugging-port=$IDE_PORT
|
|
25
|
+
npx tsx src/index.ts
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
# 🛑 ANTIGRAVITY STOP SCRIPT (Standard v1.1.5)
|
|
4
|
+
# --------------------------------------------------
|
|
5
|
+
|
|
6
|
+
# Tìm và giết các tiến trình liên quan đến bot
|
|
7
|
+
echo "🛑 Đang dừng Antigravity Gateway..."
|
|
8
|
+
|
|
9
|
+
# Tìm PID của tsx src/index.ts
|
|
10
|
+
PIDS=$(pgrep -f "tsx src/index.ts")
|
|
11
|
+
|
|
12
|
+
if [ -z "$PIDS" ]; then
|
|
13
|
+
echo "⚠️ Không tìm thấy tiến trình Bot đang chạy."
|
|
14
|
+
else
|
|
15
|
+
kill $PIDS
|
|
16
|
+
echo "✅ Đã dừng Bot (PIDs: $PIDS)"
|
|
17
|
+
fi
|