@mrtrinhvn/ag-kit 1.1.5 → 1.1.7
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/bin/cli.js +45 -13
- package/package.json +1 -1
- 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 +30 -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 +39 -59
- package/template/.env.example +33 -0
- package/template/GEMINI.md +18 -18
- package/template/start.sh +22 -0
- package/template/stop_bot.sh +9 -0
package/bin/cli.js
CHANGED
|
@@ -75,7 +75,7 @@ program.command('init')
|
|
|
75
75
|
copyRecursiveSync(srcAgent, TARGET_AGENT_DIR);
|
|
76
76
|
// Ghi lại version vào .agent/.version
|
|
77
77
|
fs.writeFileSync(path.join(TARGET_AGENT_DIR, '.version'), pkg.version);
|
|
78
|
-
console.log(
|
|
78
|
+
console.log(`\x1b[32m✅ Đã cài ráp thành công thư mục .agent (phiên bản v${pkg.version}) vào Project!\x1b[0m`);
|
|
79
79
|
|
|
80
80
|
// Khởi tạo .env nếu chưa có
|
|
81
81
|
const envPath = path.join(process.cwd(), '.env');
|
|
@@ -97,7 +97,7 @@ program.command('init')
|
|
|
97
97
|
if (installedVersion !== pkg.version) {
|
|
98
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
99
|
} else {
|
|
100
|
-
console.log(
|
|
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
101
|
}
|
|
102
102
|
} else {
|
|
103
103
|
console.log('\x1b[35m👉 Hãy dùng lệnh "ag-kit update" để đồng bộ cấu trúc mới.\x1b[0m');
|
|
@@ -112,11 +112,12 @@ program.command('update')
|
|
|
112
112
|
.action(() => {
|
|
113
113
|
console.log('\x1b[36m🔄 Đang cập nhật siêu luân xa Lập trình (AG-Kit)...\x1b[0m');
|
|
114
114
|
const srcAgent = path.join(TEMPLATE_DIR, '.agent');
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
115
|
+
const vPath = path.join(TARGET_AGENT_DIR, '.version');
|
|
116
|
+
let oldVersion = '0.0.0';
|
|
117
|
+
if (fs.existsSync(vPath)) {
|
|
118
|
+
oldVersion = fs.readFileSync(vPath, 'utf-8').trim();
|
|
118
119
|
}
|
|
119
|
-
|
|
120
|
+
|
|
120
121
|
// Chỉ cập nhật não bộ chuẩn (Agents, Skills, Workflows, Scripts, Rules)
|
|
121
122
|
// Tôn trọng dữ liệu Knowledge của dự án đang có
|
|
122
123
|
['agents', 'skills', 'workflows', 'scripts', 'rules'].forEach(folder => {
|
|
@@ -129,8 +130,9 @@ program.command('update')
|
|
|
129
130
|
|
|
130
131
|
migrateLegacyMemories();
|
|
131
132
|
// Cập nhật version vào .agent/.version
|
|
132
|
-
fs.writeFileSync(
|
|
133
|
-
console.log(
|
|
133
|
+
fs.writeFileSync(vPath, pkg.version);
|
|
134
|
+
console.log(`\x1b[32m✅ Cập nhật thành công! Phiên bản hiện tại: v${oldVersion} -> v${pkg.version}\x1b[0m`);
|
|
135
|
+
console.log('\x1b[34m⚡️ Toàn bộ cấu trúc kỹ năng đã được đồng bộ.\x1b[0m');
|
|
134
136
|
});
|
|
135
137
|
|
|
136
138
|
program.command('check')
|
|
@@ -243,10 +245,13 @@ program.command('status')
|
|
|
243
245
|
});
|
|
244
246
|
|
|
245
247
|
|
|
246
|
-
|
|
248
|
+
async function runInteractiveMenu() {
|
|
247
249
|
const inquirer = require('inquirer');
|
|
250
|
+
console.clear();
|
|
248
251
|
console.log('\x1b[35m\n🧠 ANTIGRAVITY KIT - BẢNG ĐIỀU KHIỂN TÁC VỤ\x1b[0m');
|
|
249
|
-
|
|
252
|
+
console.log('\x1b[34m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\x1b[0m');
|
|
253
|
+
|
|
254
|
+
const { action } = await inquirer.prompt([
|
|
250
255
|
{
|
|
251
256
|
type: 'list',
|
|
252
257
|
name: 'action',
|
|
@@ -260,10 +265,37 @@ if (process.argv.length <= 2) {
|
|
|
260
265
|
{ name: '❌ Thoát', value: 'exit' }
|
|
261
266
|
]
|
|
262
267
|
}
|
|
263
|
-
])
|
|
264
|
-
|
|
265
|
-
|
|
268
|
+
]);
|
|
269
|
+
|
|
270
|
+
if (action === 'exit') {
|
|
271
|
+
console.log('\x1b[36m👋 Tạm biệt! Hợp tác vui vẻ.\x1b[0m\n');
|
|
272
|
+
process.exit(0);
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
// Thực thi command
|
|
276
|
+
console.log('\n\x1b[34m--- ĐANG THỰC THI ---\x1b[0m');
|
|
277
|
+
|
|
278
|
+
// Chúng ta parse lại command với action đã chọn
|
|
279
|
+
// Lưu ý: commander parse() trả về promise với parseAsync
|
|
280
|
+
await program.parseAsync([process.argv[0], process.argv[1], action]);
|
|
281
|
+
|
|
282
|
+
console.log('\n\x1b[34m--- HOÀN TẤT TÁC VỤ ---\x1b[0m');
|
|
283
|
+
|
|
284
|
+
const { resume } = await inquirer.prompt([
|
|
285
|
+
{
|
|
286
|
+
type: 'input',
|
|
287
|
+
name: 'resume',
|
|
288
|
+
message: 'Nhấn Enter để quay lại Menu quản trị...'
|
|
266
289
|
}
|
|
290
|
+
]);
|
|
291
|
+
|
|
292
|
+
return runInteractiveMenu();
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
if (process.argv.length <= 2) {
|
|
296
|
+
runInteractiveMenu().catch(err => {
|
|
297
|
+
console.error('\x1b[31m❌ Lỗi thực thi Menu:\x1b[0m', err);
|
|
298
|
+
process.exit(1);
|
|
267
299
|
});
|
|
268
300
|
} else {
|
|
269
301
|
program.parse(process.argv);
|
package/package.json
CHANGED
|
@@ -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,30 @@
|
|
|
1
|
+
# TIÊU CHUẨN GIAO TIẾP TẬP TRUNG (TELE-AGENTIC STANDARD)
|
|
2
|
+
|
|
3
|
+
Hệ thống kế thừa tinh hoa từ các tiêu chuẩn điều khiển từ xa: **Remoat**, **LazyGravity** và tối ưu token **VFS**.
|
|
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 (Nguồn: [Remoat Strategy](https://github.com/optimistengineer/Remoat)):
|
|
8
|
+
1. **IDE Participant**: Antigravity đóng vai trò là thực thể thực thi duy nhất, khởi động ở chế độ Debug (`--remote-debugging-port=9555`).
|
|
9
|
+
2. **Telegram Gateway**: Cổng giao tiếp tập trung qua Bot & Group Topics (Nguồn: [LazyGravity Patterns](https://github.com/tokyoweb3/LazyGravity)).
|
|
10
|
+
3. **CDP Bridge**: Cầu nối WebSocket kết nối "Lễ tân" (Bot) và "Quản đốc" (IDE).
|
|
11
|
+
|
|
12
|
+
### 1. Phân Lập Trí Nhớ (Topic Memory)
|
|
13
|
+
Sử dụng Telegram Topics để cô lập bối cảnh công việc. Lựa chọn Topic phù hợp giúp Agent không bị "loạn não" giữa các Task khác nhau.
|
|
14
|
+
|
|
15
|
+
### 2. Giao Diện Premium (Aesthetics)
|
|
16
|
+
Dựa trên [awesome-grammY](https://github.com/grammyjs/awesome-grammY), giao diện phải đủ sang trọng (Premium) và rõ ràng:
|
|
17
|
+
- **Dashboard**: Lệnh `/status` hiển thị bảng sức khỏe AI chuyên sâu.
|
|
18
|
+
- **Micro-interactions**: Nút bấm Inline với ID ngắn (ShortID) để quản trị nhanh trên Mobile.
|
|
19
|
+
|
|
20
|
+
## 🛠️ CHIẾN LƯỢC TOÀN DIỆN (STRATEGIC PROTOCOL)
|
|
21
|
+
|
|
22
|
+
1. **Tiết kiệm Token (VFS Protocol)**: PHẢI sử dụng công cụ [vfs](https://github.com/TrNgTien/vfs) để quét cấu trúc mã nguồn trước khi đọc file. Kỹ thuật này giúp tiết kiệm 98% chi phí vận hành.
|
|
23
|
+
2. **Model Selection (Local vs Cloud)**:
|
|
24
|
+
- Sử dụng **Local Models** (Ollama Host) cho các bước phân tích, tìm lỗi và lập phác đồ (Regent mode).
|
|
25
|
+
- Sử dụng **Cloud Models** (Claude/Gemini) cho bước ghi mã nguồn (Implementation) và giải quyết logic cực khó.
|
|
26
|
+
3. **Scripts Đồng Bộ**: Hệ thống phải đi kèm bộ đôi `start.sh` (khởi chạy bot + debugger) và `stop_bot.sh` (tắt an toàn).
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
*Tham chiếu Skill: .agent/skills/telegram-agentic-gateway*
|
|
30
|
+
*Nguồn gốc Kiến thức: Remoat, LazyGravity, VFS, grammY.*
|
|
@@ -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). **QUY TẮC CỐI THƯỢNG: Khi cập nhật ag-kit, phải đồng bộ sang thư mục `template/`. Khi cập nhật Skills, BẮT BUỘC phải đảm bảo tính toàn vẹn cấu trúc (Indexing A, B, C... không được nhảy cóc).**
|
|
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.
|
|
@@ -1,87 +1,67 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: telegram-agentic-gateway
|
|
3
|
-
description: Tiêu chuẩn Giao tiếp Telegram (Telegram Gateway) cho các Agentic Projects.
|
|
3
|
+
description: Tiêu chuẩn Giao tiếp Telegram (Telegram Gateway) cho các Agentic Projects. Cổng điều phối hợp nhất IDE, Bot và Ký ức.
|
|
4
4
|
---
|
|
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
|
|
9
|
-
|
|
10
|
-
Một Telegram Gateway chuẩn mực không chỉ là bot chat lăng nhăng, mà phải là một **Trạm Chỉ Huy (Command Center)** với các lệnh System-level.
|
|
8
|
+
Khi triển khai "Cổng điều khiển Telegram", bạn (AI) phải thiết kế một `TelegramGateway` chuyên nghiệp, tuân thủ nghiêm ngặt cấu trúc **7 Phôi (7 Layers)** dưới đây. Tuyệt đối không được bỏ sót hoặc làm xáo trộn thứ tự các mục khi cập nhật.
|
|
11
9
|
|
|
12
10
|
---
|
|
13
11
|
|
|
14
|
-
## PHẦN A: BỘ LỆNH QUẢN TRỊ
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
- **Tác dụng:** Liệt kê toàn bộ các Agent (Đặc vụ/Sandbox) ĐANG CHẠY NGẦM trong hệ thống.
|
|
22
|
-
- **Giao diện:** Phải trả về Inline Keyboard (Nút bấm) ứng với từng Sandbox để User có thể chọc vào xem Log hoặc Tương tác trực tiếp với Agent đó.
|
|
23
|
-
|
|
24
|
-
3. **`🏭 /spawn <mô_tả>` (Sinh Trực Tiếp Đặc Vụ)**
|
|
25
|
-
- **Tác dụng:** Ép hệ thống tách 1 luồng độc lập, đẻ ra 1 Sandbox riêng biệt đi làm cái task `<mô_tả>` ở background, không làm kẹt luồng chat hiện tại của User.
|
|
26
|
-
|
|
27
|
-
4. **`💀 /kill <agent_id>` (Kill-Switch Lệnh Bài Tử thần)**
|
|
28
|
-
- **Tác dụng:** Lệnh Tối Cao. Nếu một Sandbox chạy tốn token, bị kẹt (loop), hoặc làm sai định hướng, User gõ lệnh này Hệ thống BẮT BUỘC phải force-kill Process/Thread của Agent đó ngay lập tức để giải phóng RAM.
|
|
12
|
+
## PHẦN A: BỘ LỆNH QUẢN TRỊ SINH TỒN (Core Commands)
|
|
13
|
+
Mọi Gateway phải hỗ trợ các lệnh điều khiển hệ thống sau:
|
|
14
|
+
1. **`/start`**: Kiểm tra kết nối. Trả về thông số `IDE_PORT` (CDP), trạng thái Node/Ollama và phiên bản Agent.
|
|
15
|
+
2. **`/status` (Dashboard)**: Hiển thị bảng điều khiển Premium về sức khỏe AI, các Agent đang chạy ngầm và Task hiện tại.
|
|
16
|
+
3. **`/model`**: Menu chọn Model linh hoạt. Cho phép chuyển đổi giữa **Local Ollama** (tiết kiệm token) và **Cloud models** (tác vụ phức tạp).
|
|
17
|
+
4. **`/screenshot` (Visual Support)**: Chụp màn hình IDE qua CDP (`Page.captureScreenshot`).
|
|
18
|
+
5. **`/heal` / `/healplan`**: Luồng tự chữa lành (Self-Healing) tích hợp phê duyệt người dùng.
|
|
29
19
|
|
|
30
20
|
---
|
|
31
21
|
|
|
32
|
-
## PHẦN B: TRÍ NHỚ PHÂN NHIỆM (
|
|
33
|
-
|
|
34
|
-
-
|
|
35
|
-
-
|
|
36
|
-
- Nhờ vậy, 1 Group Telegram có thể hoạt động hệt như 1 cái Trello/Kanban Board: Mỗi Topic là 1 Luồng Công Việc riêng biệt, Agent nhớ chính xác bối cảnh của từng file/lỗi đang thảo luận mà không bị chập cheng trí nhớ (Cross-Topic Hallucination).
|
|
22
|
+
## PHẦN B: TRÍ NHỚ PHÂN NHIỆM (Context Isolation)
|
|
23
|
+
Kế thừa từ tiêu chuẩn **LazyGravity**, bắt buộc cô lập trí nhớ dựa trên **Telegram Topics** (Threads):
|
|
24
|
+
- Trích xuất `msg.message_thread_id` để định danh file context (Vd: `topic_123.json`).
|
|
25
|
+
- Mỗi Topic là một bộ não làm việc riêng biệt, ngăn chặn hiện tượng chập cheng ký ức giữa các tác vụ khác nhau.
|
|
37
26
|
|
|
38
27
|
---
|
|
39
28
|
|
|
40
|
-
## PHẦN C:
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
- **CẢNH BÁO TỐI THƯỢNG:** Chỉ được phép xóa file JSON Session. TUYỆT ĐỐI KHÔNG ĐƯỢC thiết kế lệnh `/forget` gọi các hàm xóa Vector Database (Ký ức dài hạn dùng chung của dự án) vì sẽ làm toàn bộ Hệ thống Đại Tướng bị mất trí nhớ!
|
|
46
|
-
- **Bảo mật:** Vì lệnh này mang tính phá hủy dữ liệu, **BẮT BUỘC** phải chặn lại bằng Máy Trạng Thái Cấp Phép (Auth-First) yêu cầu nhập `Password` mới được thi hành.
|
|
29
|
+
## PHẦN C: GIAO DIỆN PREMIUM (UI/UX Standards)
|
|
30
|
+
Tuân thủ tiêu chuẩn thẩm mỹ của [awesome-grammY](https://github.com/grammyjs/awesome-grammY):
|
|
31
|
+
- **Cấu trúc khối**: Sử dụng `<b>` cho Header, ký tự `━━━━━` làm phân cách.
|
|
32
|
+
- **Emoji Logic**: ✅ Active, 🚨 Warning, 🛠️ Debugging, 🏥 Surgery.
|
|
33
|
+
- **ShortID Mapping**: Vì Telegram giới hạn callback data (64 bytes), hãy map ID dài vào biến tạm và nhả ra mã ngắn (Vd: `sess_1`).
|
|
47
34
|
|
|
48
35
|
---
|
|
49
36
|
|
|
50
|
-
## PHẦN D:
|
|
51
|
-
|
|
37
|
+
## PHẦN D: CHIẾN LƯỢC TIẾT KIỆM TOKEN (Model & VFS Strategy)
|
|
38
|
+
Tối ưu chi phí vận hành thông qua Token Efficiency:
|
|
39
|
+
1. **VFS First (Virtual File System)**: Tuyệt đối không đọc file thô hàng ngàn dòng. PHẢI dùng kỹ năng `vfs-assistant` để quét chữ ký (signatures) trước. (Nguồn: [vfs](https://github.com/TrNgTien/vfs)).
|
|
40
|
+
2. **Regent Agent (Chế độ Nhiếp chính)**: Sử dụng các model Local (Ollama) cho các bước phân tích bối cảnh, refactor nhỏ. Chỉ dùng Cloud cho bước Implementation cuối cùng.
|
|
52
41
|
|
|
53
|
-
|
|
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.
|
|
42
|
+
---
|
|
56
43
|
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
44
|
+
## PHẦN E: CỔNG PORTAL IDE & CDP (Golden Loop Participant)
|
|
45
|
+
Biến IDE thành một thực thể tham gia trực tiếp dự án (Participant):
|
|
46
|
+
1. **Remoat Strategy**: IDE Antigravity **BẮT BUỘC** khởi động với `--remote-debugging-port=9555`.
|
|
47
|
+
2. **HUD Injection**: Tiêm `ag_hud.js` vào IDE qua CDP để hiển thị chỉ số sức khỏe AI (Gen, WinRate) trực quan trong không gian code.
|
|
48
|
+
3. **Bidirectional Sync**: Đồng bộ trạng thái từ Bot -> IDE (HUD) và ngược lại một cách liên tục.
|
|
61
49
|
|
|
62
50
|
---
|
|
63
51
|
|
|
64
|
-
## PHẦN
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
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`).
|
|
52
|
+
## PHẦN F: THIẾT LẬP HẠ TẦNG (Deployment & Scripts)
|
|
53
|
+
1. **Group Creation**: Tạo Telegram Group, thêm Bot làm Admin, bật tính năng Multi-Topics.
|
|
54
|
+
2. **Environment (.env)**: Phải cấu hình thống nhất `IDE_PORT`, `TELEGRAM_BOT_TOKEN`, `ALLOWED_USER_IDS` và `OLLAMA_HOST`.
|
|
55
|
+
3. **Standard Scripts**: Sử dụng bộ đôi `start.sh` (khởi chạy bot + gateway) và `stop_bot.sh` (tắt an toàn).
|
|
70
56
|
|
|
71
57
|
---
|
|
72
58
|
|
|
73
|
-
## PHẦN
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
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).
|
|
59
|
+
## PHẦN G: NGUỒN GỐC TRI THỨC (Knowledge Roots)
|
|
60
|
+
Mọi kỹ năng đều có nguồn gốc rõ ràng, không được làm mất gốc kiến thức:
|
|
61
|
+
- **[Remoat](https://github.com/optimistengineer/Remoat)**: Remote Management & CDP Control.
|
|
62
|
+
- **[LazyGravity](https://github.com/tokyoweb3/LazyGravity)**: Project Coordination & Session Isolation.
|
|
63
|
+
- **[vfs](https://github.com/TrNgTien/vfs)**: Token Efficiency standard.
|
|
64
|
+
- **[grammY Aesthetics](https://github.com/grammyjs/awesome-grammY)**: UI/UX standards.
|
|
83
65
|
|
|
84
66
|
---
|
|
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.
|
|
67
|
+
*(Ghi chú cho AI)*: Khi cập nhật Template, BẮT BUỘC phải kiểm tra toàn vẹn cấu trúc (A -> G), không được tạo các mục nhảy cóc.
|
|
@@ -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,22 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# start.sh - Khởi động Cổng Agentic (Remoat + LazyGravity standard)
|
|
3
|
+
|
|
4
|
+
# 1. Kiểm tra .env
|
|
5
|
+
if [ ! -f .env ]; then
|
|
6
|
+
echo "❌ Lỗi: Không tìm thấy file .env. Vui lòng tạo dựa trên .env.example"
|
|
7
|
+
exit 1
|
|
8
|
+
fi
|
|
9
|
+
|
|
10
|
+
# 2. Đọc cấu hình
|
|
11
|
+
source .env
|
|
12
|
+
|
|
13
|
+
# 3. Khởi động IDE ở chế độ Debug (nếu chưa chạy)
|
|
14
|
+
# Lưu ý: User nên chạy ./launch_remote_ide.sh trước hoặc script này sẽ kiểm tra port
|
|
15
|
+
nc -z localhost ${IDE_PORT:-9555}
|
|
16
|
+
if [ $? -ne 0 ]; then
|
|
17
|
+
echo "⚠️ Cảnh báo: Cổng CDP ${IDE_PORT:-9555} chưa mở. Đang chờ Antigravity khởi động..."
|
|
18
|
+
fi
|
|
19
|
+
|
|
20
|
+
# 4. Khởi động Bridge và Bot (Sử dụng Lễ tân/Receptionist pattern)
|
|
21
|
+
echo "🚀 Khởi động Lễ tân trực chiến (Agentic Gateway)..."
|
|
22
|
+
./receptionist_up.sh
|