@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 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('\x1b[32m✅ Đã cài ráp thành công thư mục .agent vào Project!\x1b[0m');
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('\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');
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
- if (!fs.existsSync(TARGET_AGENT_DIR)) {
116
- console.log('\x1b[31m❌ Không tìm thấy thư mục .agent. Hãy chạy "ag-kit init" trước.\x1b[0m');
117
- return;
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(path.join(TARGET_AGENT_DIR, '.version'), pkg.version);
133
- console.log('\x1b[32m✅ Cập nhật thành công 100% Cấu trúc kỹ năng siêu cấp!\x1b[0m');
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
- if (process.argv.length <= 2) {
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
- inquirer.prompt([
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
- ]).then(answers => {
264
- if (answers.action !== 'exit') {
265
- program.parse([process.argv[0], process.argv[1], answers.action]);
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mrtrinhvn/ag-kit",
3
- "version": "1.1.5",
3
+ "version": "1.1.7",
4
4
  "description": "Antigravity Kit Base Framework - Generic Agentic AI Programming Core",
5
5
  "main": "index.js",
6
6
  "bin": {
@@ -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 & Quản Mô Hình (Model & VFS Knowledge)
1
+ # Tiết Kiệm Token & Chiến Lược Mô Hình (Model & VFS)
2
2
 
3
- ## 1. Chế Tiết Kiệm Token
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
- ### VFS (Virtual File System)
7
- - **Tác dụng**: Giảm 98% lượng token khi khám phá mã nguồn.
8
- - **Cách hoạt động**: Thay đọc toàn bộ file, AI sử dụng công cụ `vfs` để chỉ lấy chữ ký (signatures) của hàm và lớp.
9
- - **Quy tắc**: Phải luôn sử dụng `vfs` trước khi dùng `grep` hoặc đọc file đầy đủ. (Xem `GEMINI.md`).
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. Chiến Lược Lựa Chọn Mô Hình (Model Strategy)
12
- Hệ thống sử dụng chế "Phân tầng độ khó" để chọn model:
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
- | Độ khó | Tác vụ | Mô hình khuyến nghị | do |
14
+ | Cấp độ | Tác vụ | Mô hình khuyến nghị | Ưu điểm |
15
15
  | :--- | :--- | :--- | :--- |
16
- | **Thấp** | Giải thích code, Refactor nhỏ, Chat thông thường | **Ollama (Local)** | Không tốn quota, phản hồi nhanh cho tác vụ đơn giản. |
17
- | **Trung bình** | Fix lỗi, Thêm tính năng mới | **Gemini 3 Flash** | Cân bằng giữa chi phí độ thông minh. |
18
- | **Cao** | Thiết kế kiến trúc, Debug lỗi phức tạp | **Claude 3.5 Sonnet / Gemini 1.5 Pro** | Độ chính xác cao nhất cho các vấn đề hóc búa. |
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 khả năng suy luận mạnh nhất. |
19
19
 
20
- ## 3. Tích Hợp Local Model (Ollama)
21
- - Bot kết nối trực tiếp với Ollama API tại `http://localhost:11434`.
22
- - Người dùng thể chọn dùng model local qua lệnh `/model` để "đóng băng" quota Google khi không cần thiết.
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 thinking and knowledge retention protocol. MANDATORY for maintaining architectural consistency, recording integration knowledge (API characteristics), and ensuring complete, holistic code updates.
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: Cross-platform remote operation patterns for Antigravity, based on the LazyGravity project.
3
+ description: Quản đa dự án 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
- LazyGravity tập trung vào việc quản lý nhiều dự án phiên làm việc từ xa một cách an toàn linh hoạt.
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
- ## Các Đặc Điểm Chính
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
- 1. **Project Discovery**: Tự động quét các thư mục trong Workspace để cho phép người dùng chuyển đổi dự án từ xa qua lệnh `/project`.
13
- 2. **Session Management**: Quản lịch sử hội thoại (Past Conversations), cho phép chọn lại phiên để tiếp tục làm việc.
14
- 3. **Auto-Accept Flow**: Tích hợp chế tự động nhấn "Accept" cho các file edit nếu người dùng bật chế độ `/autoaccept`.
14
+ ## 2. Bảo Mật & Phân Quyền
15
+ - **White-listing**: Chỉ cho phép `ALLOWED_USER_IDS` `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
- ## Quản Dự Án (Remote Switching)
17
-
18
- - Sử dụng `WorkspaceService` để liệt các thư mục con.
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 chế ID ngắn (Short ID Mapping) để quản 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: Patterns for controlling AI code editors from Telegram, based on the Remoat project.
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 Integration)
6
+ # Kỹ Thuật Điều Khiển Editor Từ Xa (Remoat Strategy)
7
7
 
8
- Kỹ thuật này cho phép điều khiển Antigravity hoặc bất kỳ Editor nào hỗ trợ CDP (Chrome DevTools Protocol) thông qua Telegram.
8
+ Dựa trên nguyên 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 thể điều khiển từ xa.
9
9
 
10
- ## Nguyên Tắc Cốt Lõi (Remoat Strategy)
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
- 1. **Bridge qua CDP**: Không can thiệp vào mã nguồn của Editor. Sử dụng CDP để Inject Prompt và Monitor Response.
13
- 2. **Single Brain Architecture**: Bot Telegram chỉ đóng vai trò "lễ tân", nhận lệnh chuyển tiếp cho Editor. Editor là "bộ não" thực hiện công việc.
14
- 3. **Wait for Generate**: Sử dụng DOM Observation để biết khi nào AI trong Editor đang suy nghĩ hoặc đã hoàn thành.
14
+ ## 2. Các Thao Tác Chuyên Sâu
15
+ - **Inject Prompt**: Tự động tìm `Chat Input`, focuschè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
- ## Các Tập Lệnh Đặc Trưng
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. Cung cấp bộ lệnh chuẩn mực (Core Commands) để Quản lý Agent, Quản Ký ức và Cấp phép Tự Chữa Lành (Self-Healing).
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 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 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 giống Quản Đốc", bạn (AI) phải thiết kế một `TelegramGateway` tuân thủ nghiêm ngặt **Tiêu chuẩn Giao tiếp lõi** dưới đây.
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Ị BẢN (Core Management Commands)
15
- Bất kỳ dự án Agentic nào cũng phải 4 lệnh sinh tồn sau:
16
-
17
- 1. **`🚀 /start` (Ping Khởi Động)**
18
- - **Tác dụng:** Kiểm tra kết nối xem Lõi AI của dự án có đang thức không. Trả về thông số môi trường hiện tại (Vd: "Bot đang chạy Port 20130, kết nối 9Router ổn định").
19
-
20
- 2. **`📊 /status` (Camera Giám Sát)**
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) **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 (Topic-Based Memory Isolation)
33
- Khác lập trình Bot thông thường chỉ lấy `chat.id`, một **Agentic Gateway** tiêu chuẩn BẮT BUỘC phải cô lập trí nhớ dựa trên Telegram Topics (Threads).
34
- - Nếu User nhắn trong Group Telegram có tính năng Topics: Phải trích xuất `msg.message_thread_id` để làm định danh ức (Vd: `topic-1234.json`).
35
- - Nếu User nhắn Private: Dùng `chat.id` (Vd: `chat-5678.json`).
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 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: BỘ LỆNH QUẢN LÝ KÝ ỨC (Cognitive Management)
41
- Mỗi Topic/Chat trên Telegram sẽ sinh ra 1 File Ký ức lưu Context. Bắt buộc phải có lệnh dọn dẹp cống rãnh:
42
-
43
- 5. **`🧹 /forget` (Hỏa Thiêu Hồ Sơ)**
44
- - **Tác dụng:** Xóa vĩnh viễn File JSON lịch sử chat (Ký ức ngắn hạn) của Topic/Thread hiện tại.
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**: 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: BỘ LỆNH TIẾN HÓA CHỮA LÀNH (Self-Healing Mappers)
51
- Để Dự án thể tự 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ổ:
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
- 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.
42
+ ---
56
43
 
57
- 7. **`📋 /healplan <triệu_chứng>` (Khám Bệnh Đơ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 thể chat qua lại để sửa bản Phác đồ ròng cả ngày. Lúc nào ưng ý bấm `Proceed`, Hệ thống bốc Context lôi Agent ra chém đè Code!
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 E: GIAO DIỆN PREMIUM (awesome-grammY Aesthetics)
65
- Một Gateway chuyên nghiệp phải UI/UX tinh tế:
66
- 1. **Header & Divider**: Sử dụng các thẻ `<b>` 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`).
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` `OLLAMA_HOST`.
55
+ 3. **Standard Scripts**: Sử dụng bộ đôi `start.sh` (khởi chạy bot + gateway) `stop_bot.sh` (tắt an toàn).
70
56
 
71
57
  ---
72
58
 
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).
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
@@ -1,35 +1,35 @@
1
- # 🚀 Antigravity Core Rules
1
+ # 🚀 Antigravity Core Rules (v1.1.5)
2
2
 
3
- > This file defines the core operational rules for the AI Agent in this workspace.
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 SAVING: VFS PROTOCOL (MANDATORY)
7
+ ## 🛠️ GIAO THỨC TIẾT KIỆM TOKEN: VFS (BẮT BUỘC)
8
8
 
9
- **You MUST use `vfs` for code discovery before using `grep` or reading entire files.**
9
+ **Bạn PHẢI sử dụng `vfs` để khám phá nguồn TRƯỚC KHI sử dụng `grep` hoặc đọc toàn bộ nội dung file.**
10
10
 
11
- ### Why use VFS?
12
- `vfs` extracts logical signatures (functions, classes, types) without reading the bodies. This saves up to 98% of tokens compared to raw file reads.
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ữ 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
- ### Usage Protocol
15
- 1. **Locate**: Use `vfs search` or `vfs <path>` to find the logical structure.
16
- 2. **Review**: Analyze the signatures returned by `vfs`.
17
- 3. **Read**: Only read the specific line ranges identified via `vfs`.
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
- ### Commands
19
+ ### Lệnh thực thi
20
20
  - **CLI**: `vfs . -f <function_name>`
21
- - **MCP**: Use the `vfs` MCP tool if available.
21
+ - **MCP**: Sử dụng công cụ `vfs` nếu 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
- - **Simple Tasks**: Prefer local Ollama models (e.g., `nemotron`, `llama3`) to save cloud budget.
28
- - **Complex Tasks**: Use high-tier models (e.g., `Claude 3.5 Sonnet`, `Gemini 1.5 Pro`).
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
- - Write self-documenting code.
34
- - Avoid over-engineering.
35
- - Follow the patterns defined in `.agent/skills/clean-code`.
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
@@ -0,0 +1,9 @@
1
+ #!/bin/bash
2
+ # stop_bot.sh - Hạ cánh an toàn (Remoat + LazyGravity standard)
3
+
4
+ echo "🛑 Đang tắt toàn bộ trạm điều hành Agentic..."
5
+
6
+ # Gọi script hạ cánh tiêu chuẩn
7
+ ./receptionist_down.sh
8
+
9
+ echo "✅ Đã dọn dẹp xong."