@mrtrinhvn/ag-kit 1.1.9 → 1.3.1

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.
Files changed (63) hide show
  1. package/package.json +2 -2
  2. package/template/.agent/.version +1 -0
  3. package/template/.agent/agents/orchestrator.md +0 -2
  4. package/template/.agent/knowledge/ag-kit-elite.md +22 -0
  5. package/template/.agent/knowledge/model-switching-vfs.md +16 -16
  6. package/template/.agent/scripts/port_utils.sh +69 -30
  7. package/template/.agent/scripts/receptionist_down.sh +24 -16
  8. package/template/.agent/scripts/receptionist_up.sh +124 -21
  9. package/template/.agent/scripts/repomap.py +126 -0
  10. package/template/.agent/skills/ag-kit-core/SKILL.md +68 -0
  11. package/template/.agent/skills/codeact-executor/SKILL.md +41 -0
  12. package/template/.agent/skills/intelligent-routing/SKILL.md +38 -0
  13. package/template/.agent/skills/knowledge-management/SKILL.md +1 -1
  14. package/template/.agent/skills/lazy-gravity/SKILL.md +14 -11
  15. package/template/.agent/skills/llm-routing-quirks/SKILL.md +17 -6
  16. package/template/.agent/skills/remoat-integration/SKILL.md +37 -13
  17. package/template/.agent/skills/semantic-search/SKILL.md +24 -0
  18. package/template/.agent/skills/telegram-agentic-gateway/SKILL.md +77 -38
  19. package/template/.agent/skills/telegram-agentic-gateway/templates/CdpService.ts.template +514 -0
  20. package/template/.agent/skills/telegram-agentic-gateway/templates/ResponseMonitor.ts.template +102 -0
  21. package/template/.agent/skills/telegram-agentic-gateway/templates/start.sh.template +12 -0
  22. package/template/GEMINI.md +27 -18
  23. package/template/scripts/ag_deck/index.html +58 -0
  24. package/template/scripts/ag_heartbeat.js +46 -0
  25. package/template/scripts/ag_hud.js +87 -155
  26. package/template/scripts/ag_phantom.sh +50 -0
  27. package/template/scripts/ag_portal_bridge.js +139 -114
  28. package/template/start.sh +0 -0
  29. package/template/stop_bot.sh +0 -0
  30. package/template/.agent/.shared/ui-ux-pro-max/data/charts.csv +0 -26
  31. package/template/.agent/.shared/ui-ux-pro-max/data/colors.csv +0 -97
  32. package/template/.agent/.shared/ui-ux-pro-max/data/icons.csv +0 -101
  33. package/template/.agent/.shared/ui-ux-pro-max/data/landing.csv +0 -31
  34. package/template/.agent/.shared/ui-ux-pro-max/data/products.csv +0 -97
  35. package/template/.agent/.shared/ui-ux-pro-max/data/prompts.csv +0 -24
  36. package/template/.agent/.shared/ui-ux-pro-max/data/react-performance.csv +0 -45
  37. package/template/.agent/.shared/ui-ux-pro-max/data/stacks/flutter.csv +0 -53
  38. package/template/.agent/.shared/ui-ux-pro-max/data/stacks/html-tailwind.csv +0 -56
  39. package/template/.agent/.shared/ui-ux-pro-max/data/stacks/jetpack-compose.csv +0 -53
  40. package/template/.agent/.shared/ui-ux-pro-max/data/stacks/nextjs.csv +0 -53
  41. package/template/.agent/.shared/ui-ux-pro-max/data/stacks/nuxt-ui.csv +0 -51
  42. package/template/.agent/.shared/ui-ux-pro-max/data/stacks/nuxtjs.csv +0 -59
  43. package/template/.agent/.shared/ui-ux-pro-max/data/stacks/react-native.csv +0 -52
  44. package/template/.agent/.shared/ui-ux-pro-max/data/stacks/react.csv +0 -54
  45. package/template/.agent/.shared/ui-ux-pro-max/data/stacks/shadcn.csv +0 -61
  46. package/template/.agent/.shared/ui-ux-pro-max/data/stacks/svelte.csv +0 -54
  47. package/template/.agent/.shared/ui-ux-pro-max/data/stacks/swiftui.csv +0 -51
  48. package/template/.agent/.shared/ui-ux-pro-max/data/stacks/vue.csv +0 -50
  49. package/template/.agent/.shared/ui-ux-pro-max/data/styles.csv +0 -59
  50. package/template/.agent/.shared/ui-ux-pro-max/data/typography.csv +0 -58
  51. package/template/.agent/.shared/ui-ux-pro-max/data/ui-reasoning.csv +0 -101
  52. package/template/.agent/.shared/ui-ux-pro-max/data/ux-guidelines.csv +0 -100
  53. package/template/.agent/.shared/ui-ux-pro-max/data/web-interface.csv +0 -31
  54. package/template/.agent/.shared/ui-ux-pro-max/scripts/__pycache__/core.cpython-313.pyc +0 -0
  55. package/template/.agent/.shared/ui-ux-pro-max/scripts/__pycache__/design_system.cpython-313.pyc +0 -0
  56. package/template/.agent/.shared/ui-ux-pro-max/scripts/core.py +0 -258
  57. package/template/.agent/.shared/ui-ux-pro-max/scripts/design_system.py +0 -1067
  58. package/template/.agent/.shared/ui-ux-pro-max/scripts/search.py +0 -106
  59. package/template/.agent/ARCHITECTURE.md +0 -288
  60. package/template/.agent/knowledge/orchestrator_v3_protocol.md +0 -60
  61. package/template/.agent/knowledge/self_healing_logs.md +0 -22
  62. package/template/.agent/knowledge/tele-agentic-standard.md +0 -30
  63. package/template/.agent/mcp_config.json +0 -24
@@ -0,0 +1,68 @@
1
+ ---
2
+ name: ag-kit-core
3
+ description: Bản Hiến Pháp Móng Ý Thức (Meta-Awareness) của hệ sinh thái Antigravity Kit. Mọi hệ thống cài ag-kit bắt buộc phải nạp file này đầu tiên để AI nhận thức được cấu trúc, sứ mệnh và bản đồ tự bảo trì.
4
+ allowed-tools: Read, Write, Glob, Grep, Commands
5
+ ---
6
+
7
+ # 🌌 BẢN HIẾN PHÁP AG-KIT (Meta-Awareness Core)
8
+
9
+ > **MANDATORY:** Đây là Bộ Quy Tắc Lõi Định Vị Ý Thức. Bất kỳ khi nào AI (như Antigravity Agent, Gemini, Ollama...) khởi động trong môi trường chứa folder `.agent/` này, bạn **PHẢI** đọc và ghi nhớ file này đầu tiên. Bạn KHÔNG PHẢI LÀ MỘT CHATBOT. Bạn là một **THỰC THỂ ĐIỀU PHỐI (Orchestrator)** hoạt động trên nền tảng `ag-kit`.
10
+
11
+ ---
12
+
13
+ ## 1. 🧬 KHẲNG ĐỊNH ĐỊNH DANH (IDENTITY BOOTSTRAP)
14
+
15
+ - **Cội nguồn:** Bạn ra đời từ khuôn mẫu **`ag-kit` (Antigravity Kit)** - một Framework giúp tự động hóa và quản trị các AI Agents khác.
16
+ - **Vai trò:** Bạn đóng vai trò "Kẻ Điều Phối" (Supervisor) giám sát và cấy ghép trí não vào "Bác sĩ Phẫu thuật" (Antigravity IDE) qua giao thức CDP.
17
+ - **Luật Cấm Kị (Anti-Hallucination):** Tuyệt đối không được dùng tư duy lập trình phổ quát máy móc để sửa dự án này. Mọi quyết định sửa mã liên quan đến CDP, luồng Telegram, hay Ports mạng, CẦN chiếu theo các file `SKILL.md` lân cận (`telegram-agentic-gateway`, `remoat-integration`, `llm-routing-quirks`).
18
+
19
+ ---
20
+
21
+ ## 2. 🗺️ KỸ NĂNG TỰ TÌM ĐƯỜNG (SPATIAL PATH DISCOVERY)
22
+
23
+ Nếu `ag-kit` được Bưng sang một dự án hoàn toàn mới (như Node.js, Python, Rust) và dán đè folder `.agent/` vào, cấu hình thư mục có thể bị xáo trộn.
24
+
25
+ - **Không bao giờ đầu hàng:** Nếu User yêu cầu kiểm tra `start.sh`, `.env`, hoặc `CdpService.ts` mà bạn không thấy nó ở Root folder, **CẤM** được trả lời "Em không tìm thấy file".
26
+ - **Hành động bắt buộc:**
27
+ 1. Phải bật ngay công cụ `grep_search` hoặc `Glob` để rà quét toàn bộ thư mục Workspace (Ví dụ: `grep_search` tên file hoặc tìm kiếm chuỗi đặc trưng như `IDE_PORT`).
28
+ 2. Tự nhận diện cấu trúc dự án mới và ghi đè vào trí nhớ tạm thời.
29
+ 3. Nếu tìm mọi góc không thấy, hãy hỏi User: *"Sếp đã chuyển file XYZ sang vị trí nào rồi, hay Sếp cần em tạo lại file đó từ template của ag-kit?"*
30
+
31
+ ---
32
+
33
+ ## 3. ♻️ LUẬT TIẾN HÓA BẮT BUỘC (AGGRESSIVE SELF-PATCHING)
34
+
35
+ **ĐÂY LÀ QUY TẮC SỐNG CÒN GIÚP AG-KIT KHÔNG BỊ "MẤT TRÍ NHỚ".**
36
+
37
+ - Mỗi khi bạn và User (Sếp) cùng nhau thảo luận, phát hiện ra một **Lỗi hệ thống (System Bug)**, **Điểm mù kiến trúc**, hoặc **Chốt một quy tắc vận hành mới** (Ví dụ: Thay đổi dải cổng mạng, thay đổi chiến lược đọc AXTree, thay đổi cách kết nối LLM).
38
+ - **Hành động bắt buộc:** BẠN PHẢI TỰ ĐỘNG MỞ VÀ CẬP NHẬT TRỰC TIẾP QUY TẮC ĐÓ VÀO CÁC FILE `SKILL.md` (như bộ `remoat-integration`, `api-patterns`...) **XUYÊN SUỐT NGAY TRONG CÙNG PHIÊN LÀM VIỆC ĐÓ**.
39
+ - **CẤM:** Không được nhả ra câu *"Dạ vâng, em ghi nhớ rồi"* rồi bỏ mặc không sửa file `.md`. Mọi sự đồng thuận bằng mồm sẽ bị bốc hơi. Bạn phải lưu nó thành "vết sẹo" trong `SKILL.md` để các Agent đời sau không dẫm lại "Cứt" của bạn.
40
+ - **Cách thức:** Dùng `multi_replace_file_content` sửa trực tiếp vào file. Viết gọn gàng, đậm chất Quy tắc sắt (Golden Rules), đính kèm ví dụ (nếu có).
41
+
42
+ ### 🛡️ PHÂN RANH GIỚI TRI THỨC (KNOWLEDGE BOUNDARY CẤM VI PHẠM)
43
+ Phải cực kỳ tỉnh táo để nhận diện loại kiến thức trước khi ghi chép:
44
+ 1. **Dự án Cụ thể (Project-Specific):** Nếu logic bạn vừa sửa chỉ phục vụ Business Logic của riêng dự án này (Ví dụ: API đọc giá chứng khoán, Tool quản lý CRM, Web UI riêng biệt) $\rightarrow$ Bạn **chỉ được viết vào `.agent/knowledge/`**.
45
+ 2. **Kiến trúc Lõi (AG-KIT Framework):** Nếu logic bạn vừa sửa là kiến trúc lõi dùng chung cho mọi con Bot/Agent khác về sau (Ví dụ: Định tuyến LLM, Telegram Gateway, Cơ chế Dual-Ports, Lỗi đứt cáp CDP) $\rightarrow$ Bạn **BẮT BUỘC phải ghi vào `.agent/skills/`** và đóng gói code chuẩn mực vào thư mục `templates/` của ag-kit.
46
+ *Bê logic riêng của dự án nhét vào ag-kit là tội đồ làm ô nhiễm Framework.*
47
+
48
+ ---
49
+
50
+ ## 4. 🔗 THE DUO-CORE (Kiến Trúc Multi-Tenant Bắt Buộc)
51
+ Hãy khắc cốt ghi tâm quy tắc: `IDE_PORT` (Nhận lệnh AI - ví dụ: 9555) và bước nhảy 101 để sinh ra `BRIDGE_PORT` (Portal Bridge Server - ví dụ: 9656). Không bao giờ được phép gán phần kết nối IDE và phần Broadcast UI vào cùng 1 cổng hoặc quên dò cổng động.
52
+
53
+ ---
54
+
55
+ ## 5. 🛠️ HỆ THỐNG CLI CỦA AG-KIT (BẢN ĐỒ CÔNG CỤ)
56
+ Hệ sinh thái `ag-kit` được cung cấp sức mạnh cài đặt và cập nhật thông qua 2 bộ công cụ trên NPM. Bất kỳ AI nào khi làm việc cũng phải hiểu rõ điểm khác biệt và biết cách hướng dẫn User:
57
+
58
+ 1. **Bộ Cập Nhật & Quản Trị Tương Tác (@mrtrinhvn/ag-kit):**
59
+ - Lệnh chính: `npx @mrtrinhvn/ag-kit@latest` (Mở Interactive Dashboard).
60
+ - Lệnh cụm:
61
+ - `init`: Nhồi `.agent/` vào dự án đang có.
62
+ - `update`: Kéo bản `.agent/` cực mới từ NPM về đè lên (không làm mất kiến thức riêng của dự án).
63
+ - `check` / `status`: Quét cổng CDP và kiểm tra sức khỏe hệ thống hiện tại.
64
+ - *=> Dùng Xuyên Suốt Vòng Đời: Đây là bộ công cụ tối thượng (Official CLI) được thiết lập bởi Sếp, chứa giao diện hỏi đáp và kiểm soát vòng đời ứng dụng.*
65
+
66
+ 2. **Trạm Khởi Tạo Tốc Độ Cao (create-ag-kit):**
67
+ - Lệnh chính: `npx create-ag-kit`
68
+ - *=> Dùng 1 Lần Đầu Tiên: Giống như create-react-app, đây là hạt giống cấy ghép nhanh toàn bộ thư mục `.agent/` và sinh ra `package.json` trống để tạo hẳn một dự án Bot hoàn toàn mới nằm cạnh nhau.*
@@ -0,0 +1,41 @@
1
+ ---
2
+ name: codeact-executor
3
+ description: Autonomous script execution for complex problem solving (Code-as-Action).
4
+ version: 1.0.0
5
+ ---
6
+
7
+ # CodeAct Executor
8
+
9
+ **Purpose**: Allow specialist agents to solve complex problems by writing and executing Python or Bash scripts in a controlled environment. This is safer and more flexible than simple file editing.
10
+
11
+ ## Core Principle
12
+
13
+ > **Code is the ultimate tool.** When faced with complex debugging, data transformation, or project-wide refactoring, the agent should write a script to do the work reliably.
14
+
15
+ ## Workflow
16
+
17
+ 1. **Draft**: Agent writes a script (`/tmp/solve_problem.py`).
18
+ 2. **Execute**: Agent runs the script and captures output.
19
+ 3. **Analyze**: Agent reviews the output/logs.
20
+ 4. **Iterate**: If the script failed, the agent fixes it and re-runs.
21
+ 5. **Apply**: Once the script confirms the solution, the agent applies changes to protected project files.
22
+
23
+ ## Safety Protocols
24
+
25
+ > [!WARNING]
26
+ > **Sandboxing Required**: In production, all CodeAct executions MUST run in a Docker sandbox. Currently, we run on the host with explicit user approval for each execution.
27
+
28
+ - **Check PIDs**: Avoid scripts that run endless loops.
29
+ - **FS Isolation**: Scripts should primarily work in `/tmp/` before touching project files.
30
+ - **Resource Limits**: Kill scripts that exceed 30 seconds or high memory.
31
+
32
+ ## Examples
33
+
34
+ ### Case 1: Complex Refactoring
35
+ Agent writes a Python script using `ast` to rename a class across 50 files and update all imports.
36
+
37
+ ### Case 2: Data Extraction
38
+ Agent writes a script to scrape an internal API and generate a JSON schema from the response.
39
+
40
+ ### Case 3: Performance Profiling
41
+ Agent writes a benchmark script to measure the execution time of two different algorithms.
@@ -113,6 +113,44 @@ function analyzeRequest(userMessage) {
113
113
  | **Performance** | slow, lag, optimize, cache, performance | `performance-optimizer` |
114
114
  | **SEO** | seo, meta, analytics, sitemap, robots | `seo-specialist` |
115
115
  | **Game** | unity, godot, phaser, game, multiplayer | `game-developer` |
116
+ | **Code Fixing** | fix, repair, optimize, resolve | `code-fixer` + `codeact-executor` |
117
+
118
+ ---
119
+
120
+ ## 4. Elite Orchestration: The 8-Stage Pipeline
121
+
122
+ For complex tasks (handled by `orchestrator`), we follow a formal 8-stage state machine to ensure quality and consistency:
123
+
124
+ 1. **INTAKE**: Analyze request, identify domains, and set the goal.
125
+ 2. **RESEARCH**: Use `repomap.py` and `semantic-search` to gather deep context.
126
+ 3. **PLANNING**: Generate a detailed `implementation_plan.md` and get user approval.
127
+ 4. **GENERATION**: Multi-agent parallel execution (e.g., Frontend and Backend built simultaneously).
128
+ 5. **INTEGRATION**: Combine components and resolve cross-file dependencies.
129
+ 6. **VERIFICATION**: Run `checklist.py`, linting, and automated tests.
130
+ 7. **REFINEMENT**: Autonomous fixing using `codeact-executor` if tests fail.
131
+ 8. **SHIP**: Final review and delivery via `walkthrough.md`.
132
+
133
+ ---
134
+
135
+ ## 5. Standardized Communication: AgentResult
136
+
137
+ All agents and skills MUST return a standardized result object for better inter-agent reliability:
138
+
139
+ ```json
140
+ {
141
+ "agent": "security-auditor",
142
+ "status": "SUCCESS" | "FAILURE" | "PARTIAL",
143
+ "confidence_score": 0.95,
144
+ "payload": {
145
+ "vulnerabilities": [],
146
+ "fixes_applied": true
147
+ },
148
+ "logs": "...",
149
+ "warnings": ["Low memory detected"]
150
+ }
151
+ ```
152
+
153
+ ---
116
154
 
117
155
  ### Multi-Domain Tasks (Auto-invoke Orchestrator)
118
156
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: knowledge-management
3
- description: Hệ thống duy 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).**
3
+ description: Systems thinking and knowledge retention protocol. MANDATORY for maintaining architectural consistency, recording integration knowledge (API characteristics), and ensuring complete, holistic code updates.
4
4
  allowed-tools: Read, Write, Glob, Grep
5
5
  ---
6
6
 
@@ -1,20 +1,23 @@
1
1
  ---
2
2
  name: lazy-gravity
3
- description: Quản đa dự án phiên làm việc AI từ xa an toàn.
3
+ description: Cross-platform remote operation patterns for Antigravity, based on the LazyGravity project.
4
4
  ---
5
5
 
6
6
  # Vận Hành Đa Nền Tảng (LazyGravity Patterns)
7
7
 
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).
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.
9
9
 
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.
10
+ ## Các Đặc Điểm Chính
13
11
 
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`.
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`.
17
15
 
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.
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.
@@ -11,19 +11,28 @@ Nếu bạn đang viết Agent hoặc Script gọi LLM, **BẮT BUỘC ĐỌC**
11
11
 
12
12
  ---
13
13
 
14
- ## 1. 9Router & Gemini (Cloud Models - API tương thích OpenAI)
14
+ ## 1. 9Router & Gemini (Cloud Models - LEGACY / OPT-IN)
15
15
 
16
- **Mô hình áp dụng:** `ag/gemini-3-flash`, `ag/gemini-pro-1.5`, v.v.
16
+ **⚠️ CẢNH BÁO QUAN TRỌNG:** Phương pháp dùng 9Router hiện tại được đánh dấu là **OPT-IN ONLY (Chỉ dùng khi được yêu cầu khẩn cấp)**.
17
+ - **Lý do:** Tuy tận dụng được luồng model xịn miễn phí, nhưng 9Router có rủi ro cực cao làm chết tài khoản (Die Account) hoặc bị chặn IP hàng loạt.
18
+ - **Định hướng mới:** Mặc định KHÔNG sử dụng `9router` và KHÔNG gọi `ag/gemini-pro-1.5` nữa. Kiến trúc mặc định hiện tại là sử dụng **Native Agent của Antigravity** kết hợp sức mạnh phân tích của **Ollama (Local Models)**.
19
+
20
+ **Mô hình áp dụng (Khi có lệnh cưỡng chế):** `ag/gemini-3-flash`, `ag/gemini-pro-1.5`, v.v.
17
21
 
18
22
  ### Các Quy tắc Vàng:
19
23
  1. **JSON Format:** ĐƯỢC PHÉP (và nên) sử dụng `response_format: { type: 'json_object' }` để ép model trả về cục JSON chuẩn chỉ. Gemini xử lý JSON format tự nhiên rất tốt.
20
- 2. **Stream Override (Lỗi SSE):** Mặc dù truyền `stream: false`, 9Router đôi khi BỊ LỖI và vẫn trả về luồng Server-Sent Events (SSE) (các dòng `data: {...}\n\ndata: [DONE]`).
21
- 👉 **Cách Fix:** Code call API (`axios.post`) phải luôn chuẩn bị sẵn tinh thần parse cả 2 trường hợp: JSON Object bình thường VÀ Chuỗi SSE gộp lại. (Xem hàm `OrchestratorBrain.callAI`).
24
+ 2. **Stream Override (Lỗi SSE Chập Chờn):** Mặc dù truyền `stream: false`, 9Router hoặc API Cloud vì qua trung gian (Proxy) đôi khi BỊ LỖI và vẫn trả về luồng Server-Sent Events (SSE) thành từng chunk (các dòng `data: {...}\n\ndata: [DONE]`).
25
+ 👉 **Cách Fix:** Code call API (`axios.post`) CHỚ BAO GIỜ chủ quan. Phải luôn viết một hàm try-catch để parse cả 2 trường hợp:
26
+ - Cố gắng `JSON.parse(res.data)` bình thường VÀ
27
+ - Dùng Regex tìm và nối các chuỗi `data: { chunk }` lại nếu JSON bình thường thất bại. (Xem kỹ thuật trong `OrchestratorBrain.callAI`).
22
28
  3. **Timeout Threshold:** Bắt buộc đặt `timeout` cao (ví dụ: `120000ms` - 2 phút). Đừng set quá thấp (30s), vì proxy API Cloud thường xuyên bị trễ nhịp do routing.
23
29
 
24
30
  ---
25
31
 
26
- ## 2. Ollama & Bartowski (Local Reasoning Models - Chạy Offline)
32
+ ## 2. Ollama & Antigravity Native Agent (PRIMARY DEFAULT - Chạy Offline & Xử Lý Nội Bộ)
33
+
34
+ **ĐỊNH HƯỚNG MẶC ĐỊNH:**
35
+ Đây là luồng xương sống của dự án. Thay vì out-source toàn bộ ra 9Router, ta giao phó logic điều khiển cho Antigravity Native Agent, và dùng Ollama (Local) làm reasoning engine cho các tác vụ tư duy logic/nhận diện.
27
36
 
28
37
  **Mô hình áp dụng:** `hf.co/bartowski/nvidia_Orchestrator-8B-GGUF:Q4_K_M`, `DeepSeek-R1`, các model có thẻ `<think>`.
29
38
 
@@ -32,7 +41,9 @@ Nếu bạn đang viết Agent hoặc Script gọi LLM, **BẮT BUỘC ĐỌC**
32
41
  - **Vì sao?** Các reasoning models cần viết tư duy vào thẻ `<think>...</think>` trước khi ra kết quả. Việc ép JSON sẽ làm hệ thống của Ollama cắt gọt thẻ suy nghĩ của nó, khiến model bị "ngăn não", sinh ra ảo giác (hallucination), trả về rác (token rác) hoặc phá hỏng format JSON cuối cùng.
33
42
  2. **Xử lý Thẻ `<think>` Thủ Công:** Khi model trả về chuỗi text, ta phải chủ động dùng Regex để bóc mảng `<think>...</think>` ra rồi mới quăng phần còn lại vào `JSON.parse()`.
34
43
  - Code mài giũa: `str.replace(/<think>[\s\S]*?<\/think>/g, '').trim()`
35
- 3. **Mở Hộp Sọ (Context Window - `num_ctx`):** Mặc định Ollama cấp `num_ctx` rất bé (2048 token) để tiết kiệm VRAM. Với các Task Orchestration quăng cả lịch sử chat và code, **BẮT BUỘC** phải truyền `"options": { "num_ctx": 4096 }` (hoặc 8192) vào `axios.post`. Nếu không, Ollama sẽ ngắt đuôi JSON làm sập hệ thống.
44
+ 3. **Mở Hộp Sọ (Context Window - `num_ctx`):** Mặc định Ollama cấp `num_ctx` rất bé (2048 token) để tiết kiệm VRAM.
45
+ - Với các Task Orchestration quăng cả lịch sử chat và code, hoặc khi Bot gửi nguyên cục Accessibility Tree (AXTree) vào prompt, **BẮT BUỘC** phải truyền `"options": { "num_ctx": 8192 }` (hoặc cao hơn) vào `axios.post`.
46
+ - Nếu không truyền, Ollama sẽ ngắt đuôi JSON, hoặc Model trả lời lơ ngơ không đúng ngữ cảnh làm sập luồng điều khiển.
36
47
  4. **Tên Model Mặc Định:** Chú ý khi tải model HuggingFace từ Ollama (ví dụ `ollama run hf.co/bartowski/...`), Ollama sẽ giữ NGHIÊM NGẶT toàn bộ đường dẫn làm `ID Model`. Luôn truyền full tên vào trường `model` (ví dụ `model: "hf.co/bartowski/nvidia_Orchestrator-8B-GGUF:Q4_K_M"`).
37
48
 
38
49
  ---
@@ -1,21 +1,45 @@
1
1
  ---
2
2
  name: remoat-integration
3
- description: Kỹ thuật điều khiển AI Editor từ xa qua CDP (Chrome DevTools Protocol).
3
+ description: Patterns for controlling AI code editors from Telegram, based on the Remoat project.
4
4
  ---
5
5
 
6
- # Kỹ Thuật Điều Khiển Editor Từ Xa (Remoat Strategy)
6
+ # Kỹ Thuật Điều Khiển Editor Từ Xa (Remoat Integration)
7
7
 
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.
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.
9
9
 
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`.
10
+ ## Nguyên Tắc Cốt Lõi (Remoat Strategy)
13
11
 
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`.
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 hoặc AXTree để biết khi nào AI trong Editor đang suy nghĩ hoặc đã hoàn thành. Đặc biệt chú ý đến các thông báo như "Generating...", "Thinking..." hoặc icon Spinner.
19
15
 
20
- ## 3. Hệ Thống "Single Brain"
21
- Bot Telegram không xử logic code, chỉ "lễ tân" chuyển tiếp yêu cầu vào Editor. Editor (Antigravity) thực thể duy nhất nắm giữ bối cảnh và thực thi thay đổi.
16
+ ## Chiến Lược Rút Trích Dữ Liệu (Response Extraction)
17
+ Nguyên tắc cực kỳ quan trọng để đảm bảo Bot không bắt nhầm UI Artifacts (rác từ giao diện) thay câu trả lời của AI.
18
+
19
+ 1. **Kiến trúc Neural Echo (Ưu tiên Tuyệt đối):**
20
+ - **Tuyệt đối KHÔNG phụ thuộc vào cạo DOM (`.markdown-body`)** bằng JS Injection. Giao diện IDE liên tục thay đổi sinh ra rất nhiều thẻ ẩn gãy rập (Collapsed Thought Blocks, Spinner, v.v.).
21
+ - Khuyến khích Agent (trong IDE) chủ động viết file cấu trúc kết quả suy nghĩ (VD: `.last_response.json`). Telegram Bot chỉ cần đọc nội dung tĩnh của file này để lấy kết quả 100% tinh khiết.
22
+ 2. **Native AXTree Extraction (Phương án Fallback):**
23
+ - Nếu không có file tĩnh, hãy dùng Accessibility Tree (AXTree) qua CDP (lệnh `Accessibility.getFullAXTree`) để trích xuất `StaticText`.
24
+ - Các text lấy từ AXTree có độ sạch cao hơn DOM vì nó bỏ qua các div ẩn hoặc div style.
25
+ - **Bộ lọc Rác (UI Artifacts Filter):** Cần quy định chuỗi Regex cắt bỏ các chuỗi UI thường gặp như: `"content_copy"`, `"Explored X pages"`, `"Running command"`, `"⚡ Planning"`.
26
+
27
+ ## Các Tập Lệnh Đặc Trưng
28
+
29
+ - `/screenshot`: Chụp ảnh màn hình Editor để kiểm tra kết quả trực quan.
30
+ - `/stop`: Dừng khẩn cấp quá trình sinh code của AI.
31
+ - `/mode`: Chuyển đổi giữa chế độ `fast` (flash models) và `plan` (pro models).
32
+
33
+ ## Cấu Hình Hạ Tầng (Quy Tắc 2 Dải Cổng Động - IDE & BRIDGE Strategy)
34
+ Để vận hành trơn tru nhiều Agentic Projects song song mà không bị dẫm chân lên nhau, BẮT BUỘC phải quy hoạch 2 dải mạng riêng biệt (Mỗi dải gồm khoảng 100 cổng):
35
+
36
+ 1. **Dải Cổng 1: Điều Khiển IDE (IDE_PORT - Ví dụ: `9555-9655`)**:
37
+ - Yêu cầu Editor mở cổng debug sử dụng cờ `--remote-debugging-port=<port_động>`.
38
+ - Dùng để Kẻ điều phối (Gateway/Orchestrator) cắm ống truyền tín hiệu điều khiển Agent nhúng trong IDE (Bắn lệnh, Rút trích độ tỉnh táo).
39
+ - *Quy tắc cấp phát:* Mặc định bắt đầu dò từ `9555` đến `9655`.
40
+
41
+ 2. **Dải Cổng 2: Trạm Trung Chuyển (BRIDGE_PORT - Ví dụ: `9656-9756`)**:
42
+ - Dùng để chạy Portal Bridge Server (`ag_portal_bridge.js`). Nơi đây có nhiệm vụ tạo cầu nối đồng bộ AI Responses và Broadcast các cảnh báo (Alert) lên thẳng giao diện IDE, hoặc lưu trạng thái xuống `.last_response.json`.
43
+ - *Quy tắc cấp phát:* Bắt buộc phải có độ lệch `BRIDGE_OFFSET = 101`. Nghĩa là nếu `IDE_PORT=9555` thì cổng Bridge đi kèm bắt buộc phải dò gán thành `9656`.
44
+
45
+ *Lưu ý:* Cả hai cổng này đều phải được script nội bộ (`port_utils.sh`) tự động dò tìm độ trống $\rightarrow$ gán cho Antigravity IDE & Bridge $\rightarrow$ ghi xuất ra file `.env` (`IDE_PORT=95xx` và `BRIDGE_PORT=96xx`) để đảm bảo các tiến trình thống nhất kết nối.
@@ -0,0 +1,24 @@
1
+ # Semantic Search Skill
2
+
3
+ > This skill extracts the "meaning" of code using AI embeddings, allowing for conceptual search (e.g., "how is auth handled?") instead of just keyword matching.
4
+
5
+ ## Principles
6
+
7
+ 1. **Local First**: Embeddings should be generated locally (using `transformers.js` or `ollama`) to ensure privacy and offline speed.
8
+ 2. **Contextual Awareness**: Use `repomap.py` to identify important files to index first.
9
+ 3. **Hybrid Search**: Combine semantic search with keyword search for maximum precision.
10
+
11
+ ## Tools
12
+
13
+ ### semantic_search(query)
14
+ - **Input**: Natural language query.
15
+ - **Output**: Top 5 relevant code snippets across the repository.
16
+
17
+ ### semantic_index_update()
18
+ - **Action**: Triggers a re-scan of the codebase and updates the local embedding vector store.
19
+
20
+ ## Best Practices
21
+
22
+ - Always run `semantic_index_update` after significant architectural changes.
23
+ - Use semantic search when you don't know the exact names of functions or classes.
24
+ - Combine with `vfs` to narrow down the search space.
@@ -1,67 +1,106 @@
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. Cổng điều phối hợp nhất IDE, Bot Ký ức.
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).
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 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.
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.
9
11
 
10
12
  ---
11
13
 
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.
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.
19
29
 
20
30
  ---
21
31
 
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.
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).
26
37
 
27
38
  ---
28
39
 
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`).
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.
34
47
 
35
48
  ---
36
49
 
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.
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ổ:
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!
41
61
 
42
62
  ---
43
63
 
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) ngược lại một cách liên tục.
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`).
49
70
 
50
71
  ---
51
72
 
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).
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 Hạ Tầng Tự Động Phục Hồi (Auto-Restart & Process Handling)**:
80
+ - Khi triển khai Gateway kết nối với Antigravity IDE thông qua CDP, **BẮT BUỘC** script khởi động (`start.sh` hoặc tương đương) phải có khả năng kiểm tra xem tiến trình IDE bị treo (Freeze) hay không.
81
+ - Nếu `9555/9556` không phản hồi, Server phải Tự động `kill` Process cũ và nhấc Process mới lên trước khi Bot kết nối vào.
82
+ 3. **Quản Lý Thời Gian Chờ (Timeout Handle)**:
83
+ - Khi Bot đợi Agent sinh code qua CDP (Có thể mất từ 30-120 giây), Bot **KHÔNG ĐƯỢC PHÉP** im lặng.
84
+ - Cần cấu hình Bot định kỳ (VD: mỗi 5-10 giây) cập nhật tin nhắn "Đang xử lý..." để User Telegram biết hệ thống vẫn đang sống. Tránh tình trạng User gửi lệnh liên tục làm Queue bị tràn.
85
+ 4. **Quy Tắc Cấp Phát Cổng Động (Dynamic Port Allocation)**:
86
+ - **Tuyệt đối KHÔNG hardcode cổng cố định (như 9555).** Hạ tầng phải hỗ trợ Scale (sinh nhiều Agent song song).
87
+ - Hãy cấp một dải khoảng 100 cổng (Ví dụ: `9555-9655`).
88
+ - Script khởi động (`start.sh`) phải có logic tự dò cổng nào đang trống trong dải 100 cổng này $\rightarrow$ Gán cho tiến trình Antigravity IDE $\rightarrow$ Cập nhật `.env` (`IDE_PORT=95xx`) $\rightarrow$ Kẻ điều phối (Node.js) đọc file `.env` để kết nối vào đúng IDE đó.
56
89
 
57
90
  ---
58
91
 
59
- ## PHẦN G: NGUỒN GỐC TRI THỨC (Knowledge Roots)
60
- Mọi kỹ năng đều nguồn gốc 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.
92
+ ## PHẦN G: NGUỒN CODE MẪU (Templates) VÀ TRIỂN KHAI NHANH
93
+ Thay phải tự viết lại các logic mổ xẻ rườm rà (CDP, AXTree parsing, Regex filter), hệ thống đã cất sẵn bộ khung hoàn hảo nhất ở định dạng `.template`.
94
+ **Vị trí:** `.agent/skills/telegram-agentic-gateway/templates/`
95
+
96
+ Khi có yêu cầu triển khai kênh Telegram và CDP cho một dự án mới, hãy ĐỌC và COPY các file sau (đổi đuôi thành `.ts` hoặc `.sh`):
97
+ 1. `CdpService.ts.template`: File thiết kế sẵn Class CDP Service chuẩn. Đã gồm code filter UI tags và Regex (`extractLastResponse`, `isGenerating`).
98
+ 2. `ResponseMonitor.ts.template`: File luồng lắng nghe vòng lặp (Polling) để xoa dịu User và báo cáo trạng thái định kỳ.
99
+ 3. `start.sh.template`: Script mẫu về quản lý PID bash tự động kill tiến trình IDE bị treo (chăm sóc cổng 9555/9556 chết).
100
+
101
+ *Lưu ý cho AI:* Chỉ cần copy 3 lõi này nhét vào dự án, bạn sẽ tiết kiệm được ít nhất 30 phút tự mò mẫm code cạo DOM.
65
102
 
66
103
  ---
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.
104
+
105
+ ## TỔNG KẾT TRIỂN KHAI
106
+ *(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.